@gunkin/uiify 0.0.22-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 (443) hide show
  1. package/agents/index.md +1 -1
  2. package/agents/reference/components/accordion.md +23 -3
  3. package/agents/reference/components/alert-modal.md +25 -7
  4. package/agents/reference/components/alert.md +13 -1
  5. package/agents/reference/components/aspect-ratio.md +12 -0
  6. package/agents/reference/components/avatar.md +14 -0
  7. package/agents/reference/components/badge.md +4 -0
  8. package/agents/reference/components/breadcrumb.md +25 -1
  9. package/agents/reference/components/button.md +4 -0
  10. package/agents/reference/components/candle-chart.md +54 -2
  11. package/agents/reference/components/card.md +4 -0
  12. package/agents/reference/components/carousel.md +34 -1
  13. package/agents/reference/components/checkbox.md +7 -1
  14. package/agents/reference/components/collapsible.md +21 -3
  15. package/agents/reference/components/color-picker.md +22 -2
  16. package/agents/reference/components/combobox.md +24 -9
  17. package/agents/reference/components/context-menu.md +41 -5
  18. package/agents/reference/components/date-picker.md +4 -0
  19. package/agents/reference/components/description-list.md +4 -0
  20. package/agents/reference/components/drawer.md +35 -5
  21. package/agents/reference/components/dropdown-menu.md +8 -3
  22. package/agents/reference/components/empty.md +4 -0
  23. package/agents/reference/components/field.md +8 -3
  24. package/agents/reference/components/fieldset.md +4 -0
  25. package/agents/reference/components/file-upload.md +4 -0
  26. package/agents/reference/components/form-error-summary.md +15 -1
  27. package/agents/reference/components/form.md +4 -0
  28. package/agents/reference/components/header.md +4 -0
  29. package/agents/reference/components/hover-card.md +4 -0
  30. package/agents/reference/components/input-group.md +4 -0
  31. package/agents/reference/components/input.md +4 -0
  32. package/agents/reference/components/item.md +4 -0
  33. package/agents/reference/components/line-chart.md +45 -2
  34. package/agents/reference/components/modal.md +27 -3
  35. package/agents/reference/components/number-field.md +4 -0
  36. package/agents/reference/components/otp-input.md +4 -0
  37. package/agents/reference/components/pagination.md +17 -1
  38. package/agents/reference/components/popup.md +5 -0
  39. package/agents/reference/components/progress.md +4 -0
  40. package/agents/reference/components/radio-group.md +13 -2
  41. package/agents/reference/components/rating.md +13 -2
  42. package/agents/reference/components/segmented-control.md +13 -3
  43. package/agents/reference/components/select.md +5 -0
  44. package/agents/reference/components/skeleton.md +4 -0
  45. package/agents/reference/components/slider.md +17 -1
  46. package/agents/reference/components/spinner.md +14 -1
  47. package/agents/reference/components/switch.md +4 -0
  48. package/agents/reference/components/table-of-contents.md +4 -0
  49. package/agents/reference/components/table.md +20 -0
  50. package/agents/reference/components/tabs.md +26 -3
  51. package/agents/reference/components/tags-input.md +26 -1
  52. package/agents/reference/components/textarea.md +4 -0
  53. package/agents/reference/components/toast.md +59 -10
  54. package/agents/reference/components/toggle-group.md +10 -3
  55. package/agents/reference/components/toggle.md +20 -3
  56. package/agents/reference/components/toolbar.md +8 -4
  57. package/agents/reference/components/tooltip.md +4 -0
  58. package/agents/reference/components/virtual-scroll.md +35 -2
  59. package/agents/reference/elements/choice.md +21 -8
  60. package/agents/reference/elements/details.md +1 -1
  61. package/agents/reference/elements/dialog.md +1 -1
  62. package/agents/reference/elements/invoker.md +1 -1
  63. package/agents/reference/elements/popover.md +1 -1
  64. package/dist/components/accordion/Accordion.d.ts +1 -1
  65. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  66. package/dist/components/accordion/Accordion.js +62 -15
  67. package/dist/components/accordion/Accordion.js.map +1 -1
  68. package/dist/components/accordion/index.d.ts +1 -1
  69. package/dist/components/accordion/index.d.ts.map +1 -1
  70. package/dist/components/accordion/index.js.map +1 -1
  71. package/dist/components/accordion/types.d.ts +23 -2
  72. package/dist/components/accordion/types.d.ts.map +1 -1
  73. package/dist/components/alert/Alert.d.ts.map +1 -1
  74. package/dist/components/alert/Alert.js +11 -1
  75. package/dist/components/alert/Alert.js.map +1 -1
  76. package/dist/components/alert/index.d.ts +1 -1
  77. package/dist/components/alert/index.d.ts.map +1 -1
  78. package/dist/components/alert/index.js.map +1 -1
  79. package/dist/components/alert/types.d.ts +11 -1
  80. package/dist/components/alert/types.d.ts.map +1 -1
  81. package/dist/components/alert-modal/AlertModal.d.ts +1 -1
  82. package/dist/components/alert-modal/AlertModal.d.ts.map +1 -1
  83. package/dist/components/alert-modal/AlertModal.js +139 -20
  84. package/dist/components/alert-modal/AlertModal.js.map +1 -1
  85. package/dist/components/alert-modal/AlertModalParts.d.ts.map +1 -1
  86. package/dist/components/alert-modal/AlertModalParts.js +37 -4
  87. package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
  88. package/dist/components/alert-modal/index.d.ts +1 -1
  89. package/dist/components/alert-modal/index.d.ts.map +1 -1
  90. package/dist/components/alert-modal/index.js.map +1 -1
  91. package/dist/components/alert-modal/types.d.ts +40 -6
  92. package/dist/components/alert-modal/types.d.ts.map +1 -1
  93. package/dist/components/aspect-ratio/AspectRatio.d.ts.map +1 -1
  94. package/dist/components/aspect-ratio/AspectRatio.js +10 -2
  95. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
  96. package/dist/components/aspect-ratio/types.d.ts +10 -1
  97. package/dist/components/aspect-ratio/types.d.ts.map +1 -1
  98. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  99. package/dist/components/avatar/Avatar.js +19 -2
  100. package/dist/components/avatar/Avatar.js.map +1 -1
  101. package/dist/components/avatar/types.d.ts +19 -1
  102. package/dist/components/avatar/types.d.ts.map +1 -1
  103. package/dist/components/breadcrumb/Breadcrumb.d.ts +2 -2
  104. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  105. package/dist/components/breadcrumb/Breadcrumb.js +118 -26
  106. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  107. package/dist/components/breadcrumb/index.d.ts +1 -1
  108. package/dist/components/breadcrumb/index.d.ts.map +1 -1
  109. package/dist/components/breadcrumb/index.js.map +1 -1
  110. package/dist/components/breadcrumb/types.d.ts +40 -1
  111. package/dist/components/breadcrumb/types.d.ts.map +1 -1
  112. package/dist/components/candle-chart/CandleChart.d.ts +1 -1
  113. package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
  114. package/dist/components/candle-chart/CandleChart.js +269 -119
  115. package/dist/components/candle-chart/CandleChart.js.map +1 -1
  116. package/dist/components/candle-chart/client/CandleChartClient.d.ts.map +1 -1
  117. package/dist/components/candle-chart/client/CandleChartClient.js +21 -1
  118. package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
  119. package/dist/components/candle-chart/client/index.d.ts +1 -1
  120. package/dist/components/candle-chart/client/index.d.ts.map +1 -1
  121. package/dist/components/candle-chart/client/index.js.map +1 -1
  122. package/dist/components/candle-chart/index.d.ts +1 -1
  123. package/dist/components/candle-chart/index.d.ts.map +1 -1
  124. package/dist/components/candle-chart/index.js.map +1 -1
  125. package/dist/components/candle-chart/types.d.ts +129 -1
  126. package/dist/components/candle-chart/types.d.ts.map +1 -1
  127. package/dist/components/carousel/Carousel.d.ts +2 -2
  128. package/dist/components/carousel/Carousel.d.ts.map +1 -1
  129. package/dist/components/carousel/Carousel.js +2 -1
  130. package/dist/components/carousel/Carousel.js.map +1 -1
  131. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  132. package/dist/components/carousel/CarouselMarkup.js +137 -22
  133. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  134. package/dist/components/carousel/client/CarouselClient.d.ts.map +1 -1
  135. package/dist/components/carousel/client/CarouselClient.js +3 -2
  136. package/dist/components/carousel/client/CarouselClient.js.map +1 -1
  137. package/dist/components/carousel/client/carousel-controls.d.ts.map +1 -1
  138. package/dist/components/carousel/client/carousel-controls.js +2 -2
  139. package/dist/components/carousel/client/carousel-controls.js.map +1 -1
  140. package/dist/components/carousel/fade/FadeCarouselClient.d.ts.map +1 -1
  141. package/dist/components/carousel/fade/FadeCarouselClient.js +3 -2
  142. package/dist/components/carousel/fade/FadeCarouselClient.js.map +1 -1
  143. package/dist/components/carousel/index.d.ts +1 -1
  144. package/dist/components/carousel/index.d.ts.map +1 -1
  145. package/dist/components/carousel/index.js.map +1 -1
  146. package/dist/components/carousel/types.d.ts +85 -2
  147. package/dist/components/carousel/types.d.ts.map +1 -1
  148. package/dist/components/checkbox/Checkbox.d.ts +6 -1
  149. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  150. package/dist/components/checkbox/Checkbox.js +6 -1
  151. package/dist/components/checkbox/Checkbox.js.map +1 -1
  152. package/dist/components/checkbox/index.d.ts +1 -1
  153. package/dist/components/checkbox/index.d.ts.map +1 -1
  154. package/dist/components/checkbox/index.js.map +1 -1
  155. package/dist/components/checkbox/types.d.ts +3 -0
  156. package/dist/components/checkbox/types.d.ts.map +1 -1
  157. package/dist/components/collapsible/Collapsible.d.ts +1 -1
  158. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  159. package/dist/components/collapsible/Collapsible.js +35 -4
  160. package/dist/components/collapsible/Collapsible.js.map +1 -1
  161. package/dist/components/collapsible/index.d.ts +1 -1
  162. package/dist/components/collapsible/index.d.ts.map +1 -1
  163. package/dist/components/collapsible/index.js.map +1 -1
  164. package/dist/components/collapsible/types.d.ts +25 -3
  165. package/dist/components/collapsible/types.d.ts.map +1 -1
  166. package/dist/components/color-picker/ColorPicker.d.ts.map +1 -1
  167. package/dist/components/color-picker/ColorPicker.js +165 -49
  168. package/dist/components/color-picker/ColorPicker.js.map +1 -1
  169. package/dist/components/color-picker/index.d.ts +1 -1
  170. package/dist/components/color-picker/index.d.ts.map +1 -1
  171. package/dist/components/color-picker/index.js.map +1 -1
  172. package/dist/components/color-picker/types.d.ts +37 -0
  173. package/dist/components/color-picker/types.d.ts.map +1 -1
  174. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  175. package/dist/components/combobox/Combobox.js +44 -25
  176. package/dist/components/combobox/Combobox.js.map +1 -1
  177. package/dist/components/combobox/index.d.ts +1 -1
  178. package/dist/components/combobox/index.d.ts.map +1 -1
  179. package/dist/components/combobox/index.js.map +1 -1
  180. package/dist/components/combobox/types.d.ts +29 -4
  181. package/dist/components/combobox/types.d.ts.map +1 -1
  182. package/dist/components/context-menu/ContextMenu.d.ts.map +1 -1
  183. package/dist/components/context-menu/ContextMenu.js +48 -11
  184. package/dist/components/context-menu/ContextMenu.js.map +1 -1
  185. package/dist/components/context-menu/index.d.ts +1 -1
  186. package/dist/components/context-menu/index.d.ts.map +1 -1
  187. package/dist/components/context-menu/index.js.map +1 -1
  188. package/dist/components/context-menu/types.d.ts +35 -9
  189. package/dist/components/context-menu/types.d.ts.map +1 -1
  190. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  191. package/dist/components/drawer/Drawer.js +5 -1
  192. package/dist/components/drawer/Drawer.js.map +1 -1
  193. package/dist/components/drawer/DrawerNative.d.ts +1 -1
  194. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  195. package/dist/components/drawer/DrawerNative.js +254 -44
  196. package/dist/components/drawer/DrawerNative.js.map +1 -1
  197. package/dist/components/drawer/index.d.ts +1 -1
  198. package/dist/components/drawer/index.d.ts.map +1 -1
  199. package/dist/components/drawer/index.js.map +1 -1
  200. package/dist/components/drawer/types.d.ts +31 -6
  201. package/dist/components/drawer/types.d.ts.map +1 -1
  202. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  203. package/dist/components/dropdown-menu/DropdownMenu.js +8 -2
  204. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  205. package/dist/components/dropdown-menu/DropdownMenuBar.d.ts.map +1 -1
  206. package/dist/components/dropdown-menu/DropdownMenuBar.js +47 -29
  207. package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
  208. package/dist/components/dropdown-menu/types.d.ts +7 -5
  209. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  210. package/dist/components/field/types.d.ts +4 -4
  211. package/dist/components/field/types.d.ts.map +1 -1
  212. package/dist/components/form-error-summary/FormErrorSummary.d.ts.map +1 -1
  213. package/dist/components/form-error-summary/FormErrorSummary.js +35 -3
  214. package/dist/components/form-error-summary/FormErrorSummary.js.map +1 -1
  215. package/dist/components/form-error-summary/index.d.ts +1 -1
  216. package/dist/components/form-error-summary/index.d.ts.map +1 -1
  217. package/dist/components/form-error-summary/index.js.map +1 -1
  218. package/dist/components/form-error-summary/types.d.ts +20 -1
  219. package/dist/components/form-error-summary/types.d.ts.map +1 -1
  220. package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
  221. package/dist/components/internal/choice-family/ChoiceGroup.js +61 -11
  222. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  223. package/dist/components/internal/choice-family/types.d.ts +51 -1
  224. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  225. package/dist/components/internal/menu/types.d.ts +1 -0
  226. package/dist/components/internal/menu/types.d.ts.map +1 -1
  227. package/dist/components/internal/menu/use-menu-surface.d.ts.map +1 -1
  228. package/dist/components/internal/menu/use-menu-surface.js +2 -1
  229. package/dist/components/internal/menu/use-menu-surface.js.map +1 -1
  230. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -1
  231. package/dist/components/internal/native-check-control/NativeCheckControl.js +35 -3
  232. package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
  233. package/dist/components/internal/native-check-control/types.d.ts +21 -1
  234. package/dist/components/internal/native-check-control/types.d.ts.map +1 -1
  235. package/dist/components/line-chart/LineChart.d.ts +1 -1
  236. package/dist/components/line-chart/LineChart.d.ts.map +1 -1
  237. package/dist/components/line-chart/LineChart.js +260 -79
  238. package/dist/components/line-chart/LineChart.js.map +1 -1
  239. package/dist/components/line-chart/client/LineChartClient.d.ts.map +1 -1
  240. package/dist/components/line-chart/client/LineChartClient.js +21 -1
  241. package/dist/components/line-chart/client/LineChartClient.js.map +1 -1
  242. package/dist/components/line-chart/client/index.d.ts +1 -1
  243. package/dist/components/line-chart/client/index.d.ts.map +1 -1
  244. package/dist/components/line-chart/client/index.js.map +1 -1
  245. package/dist/components/line-chart/index.d.ts +1 -1
  246. package/dist/components/line-chart/index.d.ts.map +1 -1
  247. package/dist/components/line-chart/index.js.map +1 -1
  248. package/dist/components/line-chart/types.d.ts +113 -1
  249. package/dist/components/line-chart/types.d.ts.map +1 -1
  250. package/dist/components/modal/Modal.d.ts +1 -1
  251. package/dist/components/modal/Modal.d.ts.map +1 -1
  252. package/dist/components/modal/Modal.js +118 -43
  253. package/dist/components/modal/Modal.js.map +1 -1
  254. package/dist/components/modal/index.d.ts +1 -1
  255. package/dist/components/modal/index.d.ts.map +1 -1
  256. package/dist/components/modal/index.js.map +1 -1
  257. package/dist/components/modal/types.d.ts +24 -2
  258. package/dist/components/modal/types.d.ts.map +1 -1
  259. package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
  260. package/dist/components/otp-input/OtpInput.js +4 -2
  261. package/dist/components/otp-input/OtpInput.js.map +1 -1
  262. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  263. package/dist/components/pagination/Pagination.js +172 -55
  264. package/dist/components/pagination/Pagination.js.map +1 -1
  265. package/dist/components/pagination/index.d.ts +1 -1
  266. package/dist/components/pagination/index.d.ts.map +1 -1
  267. package/dist/components/pagination/index.js.map +1 -1
  268. package/dist/components/pagination/types.d.ts +33 -1
  269. package/dist/components/pagination/types.d.ts.map +1 -1
  270. package/dist/components/radio-group/RadioGroup.d.ts +1 -1
  271. package/dist/components/radio-group/RadioGroup.d.ts.map +1 -1
  272. package/dist/components/radio-group/RadioGroup.js +5 -1
  273. package/dist/components/radio-group/RadioGroup.js.map +1 -1
  274. package/dist/components/radio-group/index.d.ts +1 -1
  275. package/dist/components/radio-group/index.d.ts.map +1 -1
  276. package/dist/components/radio-group/index.js.map +1 -1
  277. package/dist/components/radio-group/types.d.ts +4 -2
  278. package/dist/components/radio-group/types.d.ts.map +1 -1
  279. package/dist/components/rating/Rating.d.ts +1 -1
  280. package/dist/components/rating/Rating.d.ts.map +1 -1
  281. package/dist/components/rating/Rating.js +5 -1
  282. package/dist/components/rating/Rating.js.map +1 -1
  283. package/dist/components/rating/client/RatingClient.d.ts +1 -1
  284. package/dist/components/rating/client/RatingClient.d.ts.map +1 -1
  285. package/dist/components/rating/client/RatingClient.js +5 -1
  286. package/dist/components/rating/client/RatingClient.js.map +1 -1
  287. package/dist/components/rating/index.d.ts +1 -1
  288. package/dist/components/rating/index.d.ts.map +1 -1
  289. package/dist/components/rating/index.js.map +1 -1
  290. package/dist/components/rating/types.d.ts +12 -1
  291. package/dist/components/rating/types.d.ts.map +1 -1
  292. package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
  293. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
  294. package/dist/components/segmented-control/SegmentedControl.js +5 -1
  295. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  296. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts +1 -1
  297. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts.map +1 -1
  298. package/dist/components/segmented-control/client/SegmentedControlClient.js +5 -1
  299. package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
  300. package/dist/components/segmented-control/index.d.ts +1 -1
  301. package/dist/components/segmented-control/index.d.ts.map +1 -1
  302. package/dist/components/segmented-control/index.js.map +1 -1
  303. package/dist/components/segmented-control/types.d.ts +4 -4
  304. package/dist/components/segmented-control/types.d.ts.map +1 -1
  305. package/dist/components/slider/client/SliderClient.d.ts.map +1 -1
  306. package/dist/components/slider/client/SliderClient.js +102 -20
  307. package/dist/components/slider/client/SliderClient.js.map +1 -1
  308. package/dist/components/slider/client/index.d.ts +1 -1
  309. package/dist/components/slider/client/index.d.ts.map +1 -1
  310. package/dist/components/slider/client/index.js.map +1 -1
  311. package/dist/components/slider/types.d.ts +46 -1
  312. package/dist/components/slider/types.d.ts.map +1 -1
  313. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  314. package/dist/components/spinner/Spinner.js +19 -3
  315. package/dist/components/spinner/Spinner.js.map +1 -1
  316. package/dist/components/spinner/index.d.ts +1 -1
  317. package/dist/components/spinner/index.d.ts.map +1 -1
  318. package/dist/components/spinner/index.js.map +1 -1
  319. package/dist/components/spinner/types.d.ts +11 -1
  320. package/dist/components/spinner/types.d.ts.map +1 -1
  321. package/dist/components/table/client/TableColumnHeader.d.ts +3 -3
  322. package/dist/components/table/client/TableColumnHeader.d.ts.map +1 -1
  323. package/dist/components/table/client/TableColumnHeader.js +24 -2
  324. package/dist/components/table/client/TableColumnHeader.js.map +1 -1
  325. package/dist/components/table/client/TableSelection.d.ts +3 -3
  326. package/dist/components/table/client/TableSelection.d.ts.map +1 -1
  327. package/dist/components/table/client/TableSelection.js +6 -4
  328. package/dist/components/table/client/TableSelection.js.map +1 -1
  329. package/dist/components/table/client.d.ts +1 -1
  330. package/dist/components/table/client.d.ts.map +1 -1
  331. package/dist/components/table/client.js.map +1 -1
  332. package/dist/components/table/types.d.ts +17 -0
  333. package/dist/components/table/types.d.ts.map +1 -1
  334. package/dist/components/tabs/Tabs.d.ts +1 -1
  335. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  336. package/dist/components/tabs/Tabs.js +45 -1
  337. package/dist/components/tabs/Tabs.js.map +1 -1
  338. package/dist/components/tabs/index.d.ts +1 -1
  339. package/dist/components/tabs/index.d.ts.map +1 -1
  340. package/dist/components/tabs/index.js.map +1 -1
  341. package/dist/components/tabs/types.d.ts +29 -3
  342. package/dist/components/tabs/types.d.ts.map +1 -1
  343. package/dist/components/tags-input/TagsInput.d.ts.map +1 -1
  344. package/dist/components/tags-input/TagsInput.js +54 -9
  345. package/dist/components/tags-input/TagsInput.js.map +1 -1
  346. package/dist/components/tags-input/index.d.ts +1 -1
  347. package/dist/components/tags-input/index.d.ts.map +1 -1
  348. package/dist/components/tags-input/index.js.map +1 -1
  349. package/dist/components/tags-input/types.d.ts +27 -4
  350. package/dist/components/tags-input/types.d.ts.map +1 -1
  351. package/dist/components/toast/Toast.d.ts +1 -1
  352. package/dist/components/toast/Toast.d.ts.map +1 -1
  353. package/dist/components/toast/Toast.js +123 -35
  354. package/dist/components/toast/Toast.js.map +1 -1
  355. package/dist/components/toast/ToastElements.d.ts.map +1 -1
  356. package/dist/components/toast/ToastElements.js +73 -12
  357. package/dist/components/toast/ToastElements.js.map +1 -1
  358. package/dist/components/toast/index.d.ts +1 -1
  359. package/dist/components/toast/index.d.ts.map +1 -1
  360. package/dist/components/toast/index.js.map +1 -1
  361. package/dist/components/toast/types.d.ts +49 -16
  362. package/dist/components/toast/types.d.ts.map +1 -1
  363. package/dist/components/toggle/Toggle.d.ts +1 -1
  364. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  365. package/dist/components/toggle/Toggle.js +63 -29
  366. package/dist/components/toggle/Toggle.js.map +1 -1
  367. package/dist/components/toggle/index.d.ts +1 -1
  368. package/dist/components/toggle/index.d.ts.map +1 -1
  369. package/dist/components/toggle/index.js.map +1 -1
  370. package/dist/components/toggle/types.d.ts +31 -3
  371. package/dist/components/toggle/types.d.ts.map +1 -1
  372. package/dist/components/toggle-group/ToggleGroup.d.ts +1 -1
  373. package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
  374. package/dist/components/toggle-group/ToggleGroup.js +5 -1
  375. package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
  376. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts +1 -1
  377. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts.map +1 -1
  378. package/dist/components/toggle-group/client/ToggleGroupClient.js +15 -1
  379. package/dist/components/toggle-group/client/ToggleGroupClient.js.map +1 -1
  380. package/dist/components/toggle-group/index.d.ts +1 -1
  381. package/dist/components/toggle-group/index.d.ts.map +1 -1
  382. package/dist/components/toggle-group/index.js.map +1 -1
  383. package/dist/components/toggle-group/types.d.ts +4 -4
  384. package/dist/components/toggle-group/types.d.ts.map +1 -1
  385. package/dist/components/toolbar/Toolbar.d.ts +3 -12
  386. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  387. package/dist/components/toolbar/Toolbar.js +22 -2
  388. package/dist/components/toolbar/Toolbar.js.map +1 -1
  389. package/dist/components/toolbar/types.d.ts +5 -5
  390. package/dist/components/toolbar/types.d.ts.map +1 -1
  391. package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
  392. package/dist/components/virtual-scroll/VirtualScroll.js +53 -20
  393. package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
  394. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts +3 -14
  395. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts.map +1 -1
  396. package/dist/components/virtual-scroll/VirtualScrollRowShell.js +6 -3
  397. package/dist/components/virtual-scroll/VirtualScrollRowShell.js.map +1 -1
  398. package/dist/components/virtual-scroll/index.d.ts +1 -1
  399. package/dist/components/virtual-scroll/index.d.ts.map +1 -1
  400. package/dist/components/virtual-scroll/index.js.map +1 -1
  401. package/dist/components/virtual-scroll/types.d.ts +35 -2
  402. package/dist/components/virtual-scroll/types.d.ts.map +1 -1
  403. package/dist/components/virtual-scroll/types.js.map +1 -1
  404. package/dist/core/slot-props.d.ts +19 -0
  405. package/dist/core/slot-props.d.ts.map +1 -0
  406. package/dist/core/slot-props.js +59 -0
  407. package/dist/core/slot-props.js.map +1 -0
  408. package/dist/core/use-popover.d.ts +2 -1
  409. package/dist/core/use-popover.d.ts.map +1 -1
  410. package/dist/core/use-popover.js +3 -1
  411. package/dist/core/use-popover.js.map +1 -1
  412. package/dist/elements/choice/Choice.d.ts.map +1 -1
  413. package/dist/elements/choice/Choice.js +47 -7
  414. package/dist/elements/choice/Choice.js.map +1 -1
  415. package/dist/elements/choice/index.d.ts +1 -1
  416. package/dist/elements/choice/index.d.ts.map +1 -1
  417. package/dist/elements/choice/index.js.map +1 -1
  418. package/dist/elements/choice/types.d.ts +25 -10
  419. package/dist/elements/choice/types.d.ts.map +1 -1
  420. package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -2
  421. package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -1
  422. package/dist/styles/index.css +1 -1
  423. package/dist/styles/tailwind.css +17 -16
  424. package/package.json +1 -1
  425. package/skills/uiify/SKILL.md +1 -1
  426. package/skills/uiify/references/elements/accordion.md +1 -1
  427. package/skills/uiify/references/elements/breadcrumb.md +1 -0
  428. package/skills/uiify/references/elements/checkbox.md +1 -1
  429. package/skills/uiify/references/elements/color-picker.md +1 -1
  430. package/skills/uiify/references/elements/combobox.md +1 -1
  431. package/skills/uiify/references/elements/context-menu.md +1 -1
  432. package/skills/uiify/references/elements/dropdown-menu.md +1 -1
  433. package/skills/uiify/references/elements/form-error-summary.md +5 -0
  434. package/skills/uiify/references/elements/pagination.md +1 -1
  435. package/skills/uiify/references/elements/radio-group.md +1 -0
  436. package/skills/uiify/references/elements/rating.md +1 -1
  437. package/skills/uiify/references/elements/segmented-control.md +1 -0
  438. package/skills/uiify/references/elements/spinner.md +1 -1
  439. package/skills/uiify/references/elements/table.md +1 -1
  440. package/skills/uiify/references/elements/tabs.md +1 -1
  441. package/skills/uiify/references/elements/tags-input.md +1 -1
  442. package/skills/uiify/references/elements/toast.md +1 -0
  443. package/skills/uiify/references/elements/toggle-group.md +1 -0
@@ -0,0 +1,59 @@
1
+ function mergeRepeatedSlotProps(common, byItemValue) {
2
+ const commonRecord = common;
3
+ const itemRecord = byItemValue;
4
+ const merged = { ...commonRecord, ...itemRecord };
5
+ if (commonRecord?.className !== void 0 || itemRecord?.className !== void 0) {
6
+ merged.className = [commonRecord?.className, itemRecord?.className].filter(Boolean).join(" ");
7
+ }
8
+ if (commonRecord?.style !== void 0 || itemRecord?.style !== void 0) {
9
+ merged.style = { ...commonRecord?.style, ...itemRecord?.style };
10
+ }
11
+ for (const [key, first] of Object.entries(commonRecord ?? {})) {
12
+ const second = itemRecord?.[key];
13
+ if (key.startsWith("on") && typeof first === "function" && typeof second === "function") {
14
+ merged[key] = (...args) => {
15
+ first(...args);
16
+ second(...args);
17
+ };
18
+ }
19
+ }
20
+ if (commonRecord?.ref !== void 0 && itemRecord?.ref !== void 0) {
21
+ const refs = [commonRecord.ref, itemRecord.ref];
22
+ merged.ref = (node) => {
23
+ const cleanups = refs.map((ref) => {
24
+ if (typeof ref === "function") {
25
+ const cleanup = ref(node);
26
+ return typeof cleanup === "function" ? cleanup : () => ref(null);
27
+ }
28
+ if (ref !== null) ref.current = node;
29
+ return () => {
30
+ if (ref !== null) ref.current = null;
31
+ };
32
+ });
33
+ return () => {
34
+ for (const cleanup of cleanups.reverse()) cleanup();
35
+ };
36
+ };
37
+ }
38
+ return merged;
39
+ }
40
+ function resolveRepeatedSlotProps(props, itemValue, protectedKeys = []) {
41
+ const { byItemValue, ...common } = props ?? {};
42
+ const itemProps = byItemValue?.[itemValue];
43
+ return omitProps(mergeRepeatedSlotProps(common, itemProps), [
44
+ "children",
45
+ "dangerouslySetInnerHTML",
46
+ ...protectedKeys
47
+ ]);
48
+ }
49
+ function omitProps(props, omittedKeys) {
50
+ const result = { ...props };
51
+ for (const key of omittedKeys) delete result[key];
52
+ return result;
53
+ }
54
+ export {
55
+ mergeRepeatedSlotProps,
56
+ omitProps,
57
+ resolveRepeatedSlotProps
58
+ };
59
+ //# sourceMappingURL=slot-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/core/slot-props.ts"],"sourcesContent":["import type { Ref } from \"react\";\n\n/** Native custom data attributes are accepted by slot objects as well as JSX. */\nexport interface ConsumerDataAttributes {\n readonly [attribute: `data-${string}`]: string | number | boolean | undefined;\n}\n\ntype NativeSlotObject = Record<string, unknown> & {\n readonly className?: string;\n readonly style?: object;\n};\n\n/**\n * Props for a repeated internal part. Common props apply to each instance;\n * `byItemValue` adds props to the item with the matching stable `value`.\n */\nexport type RepeatedSlotProps<TProps extends object, TProtected extends object = object> = Omit<\n TProps,\n \"children\" | \"dangerouslySetInnerHTML\"\n> &\n TProtected & {\n readonly byItemValue?: Readonly<\n Record<\n string,\n Omit<TProps, \"children\" | \"dangerouslySetInnerHTML\"> & ConsumerDataAttributes & TProtected\n >\n >;\n } & ConsumerDataAttributes;\n\n/** Merge consumer props without losing common/item classes, styles, or event handlers. */\nexport function mergeRepeatedSlotProps<TProps extends object>(\n common: TProps | undefined,\n byItemValue: TProps | undefined,\n): TProps {\n const commonRecord = common as NativeSlotObject | undefined;\n const itemRecord = byItemValue as NativeSlotObject | undefined;\n const merged: Record<string, unknown> = { ...commonRecord, ...itemRecord };\n\n if (commonRecord?.className !== undefined || itemRecord?.className !== undefined) {\n merged.className = [commonRecord?.className, itemRecord?.className].filter(Boolean).join(\" \");\n }\n if (commonRecord?.style !== undefined || itemRecord?.style !== undefined) {\n merged.style = { ...commonRecord?.style, ...itemRecord?.style };\n }\n\n for (const [key, first] of Object.entries(commonRecord ?? {})) {\n const second = itemRecord?.[key];\n if (key.startsWith(\"on\") && typeof first === \"function\" && typeof second === \"function\") {\n merged[key] = (...args: unknown[]) => {\n (first as (...values: unknown[]) => unknown)(...args);\n (second as (...values: unknown[]) => unknown)(...args);\n };\n }\n }\n\n if (commonRecord?.ref !== undefined && itemRecord?.ref !== undefined) {\n const refs = [commonRecord.ref, itemRecord.ref] as Array<Ref<unknown>>;\n merged.ref = (node: unknown) => {\n const cleanups = refs.map((ref) => {\n if (typeof ref === \"function\") {\n const cleanup = ref(node);\n return typeof cleanup === \"function\" ? cleanup : () => ref(null);\n }\n if (ref !== null) ref.current = node;\n return () => {\n if (ref !== null) ref.current = null;\n };\n });\n return () => {\n for (const cleanup of cleanups.reverse()) cleanup();\n };\n };\n }\n\n return merged as TProps;\n}\n\nexport function resolveRepeatedSlotProps<TProps extends object>(\n props:\n | (TProps & {\n readonly byItemValue?: Readonly<Record<string, TProps>>;\n })\n | undefined,\n itemValue: string,\n protectedKeys: readonly string[] = [],\n): TProps {\n const { byItemValue, ...common } = props ?? {};\n const itemProps = byItemValue?.[itemValue];\n return omitProps(mergeRepeatedSlotProps(common as TProps, itemProps as TProps | undefined), [\n \"children\",\n \"dangerouslySetInnerHTML\",\n ...protectedKeys,\n ]);\n}\n\n/** Remove generated content and behavior-owned properties, including values from JS callers. */\nexport function omitProps<TProps extends object>(\n props: TProps | undefined,\n omittedKeys: readonly string[],\n): TProps {\n const result = { ...props } as Record<string, unknown>;\n for (const key of omittedKeys) delete result[key];\n return result as TProps;\n}\n"],"mappings":"AA8BO,SAAS,uBACd,QACA,aACQ;AACR,QAAM,eAAe;AACrB,QAAM,aAAa;AACnB,QAAM,SAAkC,EAAE,GAAG,cAAc,GAAG,WAAW;AAEzE,MAAI,cAAc,cAAc,UAAa,YAAY,cAAc,QAAW;AAChF,WAAO,YAAY,CAAC,cAAc,WAAW,YAAY,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,EAC9F;AACA,MAAI,cAAc,UAAU,UAAa,YAAY,UAAU,QAAW;AACxE,WAAO,QAAQ,EAAE,GAAG,cAAc,OAAO,GAAG,YAAY,MAAM;AAAA,EAChE;AAEA,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,gBAAgB,CAAC,CAAC,GAAG;AAC7D,UAAM,SAAS,aAAa,GAAG;AAC/B,QAAI,IAAI,WAAW,IAAI,KAAK,OAAO,UAAU,cAAc,OAAO,WAAW,YAAY;AACvF,aAAO,GAAG,IAAI,IAAI,SAAoB;AACpC,QAAC,MAA4C,GAAG,IAAI;AACpD,QAAC,OAA6C,GAAG,IAAI;AAAA,MACvD;AAAA,IACF;AAAA,EACF;AAEA,MAAI,cAAc,QAAQ,UAAa,YAAY,QAAQ,QAAW;AACpE,UAAM,OAAO,CAAC,aAAa,KAAK,WAAW,GAAG;AAC9C,WAAO,MAAM,CAAC,SAAkB;AAC9B,YAAM,WAAW,KAAK,IAAI,CAAC,QAAQ;AACjC,YAAI,OAAO,QAAQ,YAAY;AAC7B,gBAAM,UAAU,IAAI,IAAI;AACxB,iBAAO,OAAO,YAAY,aAAa,UAAU,MAAM,IAAI,IAAI;AAAA,QACjE;AACA,YAAI,QAAQ,KAAM,KAAI,UAAU;AAChC,eAAO,MAAM;AACX,cAAI,QAAQ,KAAM,KAAI,UAAU;AAAA,QAClC;AAAA,MACF,CAAC;AACD,aAAO,MAAM;AACX,mBAAW,WAAW,SAAS,QAAQ,EAAG,SAAQ;AAAA,MACpD;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,yBACd,OAKA,WACA,gBAAmC,CAAC,GAC5B;AACR,QAAM,EAAE,aAAa,GAAG,OAAO,IAAI,SAAS,CAAC;AAC7C,QAAM,YAAY,cAAc,SAAS;AACzC,SAAO,UAAU,uBAAuB,QAAkB,SAA+B,GAAG;AAAA,IAC1F;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AACH;AAGO,SAAS,UACd,OACA,aACQ;AACR,QAAM,SAAS,EAAE,GAAG,MAAM;AAC1B,aAAW,OAAO,YAAa,QAAO,OAAO,GAAG;AAChD,SAAO;AACT;","names":[]}
@@ -3,6 +3,7 @@ import { type UseControllableOpenChangeOptions } from "./use-controllable-open-c
3
3
  export type PopoverMode = "auto" | "manual" | "hint";
4
4
  export type PopoverChangeHandler = UseControllableOpenChangeOptions["onOpenChange"];
5
5
  export interface UsePopoverOptions extends UseControllableOpenChangeOptions {
6
+ readonly id?: string;
6
7
  readonly mode?: PopoverMode;
7
8
  }
8
9
  export interface UsePopoverReturn {
@@ -16,5 +17,5 @@ export interface UsePopoverReturn {
16
17
  readonly triggerProps: ButtonHTMLAttributes<HTMLButtonElement>;
17
18
  readonly triggerRef: RefCallback<HTMLButtonElement>;
18
19
  }
19
- export declare function usePopover({ defaultOpen, mode, onOpenChange, open: controlledOpen, }?: UsePopoverOptions): UsePopoverReturn;
20
+ export declare function usePopover({ defaultOpen, id: requestedId, mode, onOpenChange, open: controlledOpen, }?: UsePopoverOptions): UsePopoverReturn;
20
21
  //# sourceMappingURL=use-popover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-popover.d.ts","sourceRoot":"","sources":["../../src/core/use-popover.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EAEd,WAAW,EACZ,MAAM,OAAO,CAAC;AAGf,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,mCAAmC,CAAC;AAE3C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AACrD,MAAM,MAAM,oBAAoB,GAAG,gCAAgC,CAAC,cAAc,CAAC,CAAC;AAEpF,MAAM,WAAW,iBAAkB,SAAQ,gCAAgC;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC/D,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;CACrD;AAMD,wBAAgB,UAAU,CAAC,EACzB,WAAmB,EACnB,IAAa,EACb,YAAY,EACZ,IAAI,EAAE,cAAc,GACrB,GAAE,iBAAsB,GAAG,gBAAgB,CA4E3C"}
1
+ {"version":3,"file":"use-popover.d.ts","sourceRoot":"","sources":["../../src/core/use-popover.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EAEd,WAAW,EACZ,MAAM,OAAO,CAAC;AAGf,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,mCAAmC,CAAC;AAE3C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AACrD,MAAM,MAAM,oBAAoB,GAAG,gCAAgC,CAAC,cAAc,CAAC,CAAC;AAEpF,MAAM,WAAW,iBAAkB,SAAQ,gCAAgC;IACzE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC/D,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;CACrD;AAMD,wBAAgB,UAAU,CAAC,EACzB,WAAmB,EACnB,EAAE,EAAE,WAAW,EACf,IAAa,EACb,YAAY,EACZ,IAAI,EAAE,cAAc,GACrB,GAAE,iBAAsB,GAAG,gBAAgB,CA6E3C"}
@@ -7,11 +7,13 @@ import {
7
7
  } from "./use-controllable-open-change.js";
8
8
  function usePopover({
9
9
  defaultOpen = false,
10
+ id: requestedId,
10
11
  mode = "auto",
11
12
  onOpenChange,
12
13
  open: controlledOpen
13
14
  } = {}) {
14
- const id = useId();
15
+ const generatedId = useId();
16
+ const id = requestedId ?? generatedId;
15
17
  const [popup, setPopup] = useState(null);
16
18
  const { open, requestChange } = useControllableOpenChange({
17
19
  defaultOpen,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/use-popover.ts"],"sourcesContent":["\"use client\";\n\nimport { useRef, useState, useSyncExternalStore } from \"react\";\nimport type {\n ButtonHTMLAttributes,\n HTMLAttributes,\n MouseEvent as ReactMouseEvent,\n RefCallback,\n} from \"react\";\nimport { useId, useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { supportsPopover } from \"./platform.js\";\nimport {\n useControllableOpenChange,\n type UseControllableOpenChangeOptions,\n} from \"./use-controllable-open-change.js\";\n\nexport type PopoverMode = \"auto\" | \"manual\" | \"hint\";\nexport type PopoverChangeHandler = UseControllableOpenChangeOptions[\"onOpenChange\"];\n\nexport interface UsePopoverOptions extends UseControllableOpenChangeOptions {\n readonly mode?: PopoverMode;\n}\n\nexport interface UsePopoverReturn {\n readonly close: () => void;\n readonly isNative: boolean;\n readonly open: boolean;\n readonly openPopover: () => void;\n readonly popupProps: HTMLAttributes<HTMLElement>;\n readonly popupRef: RefCallback<HTMLElement>;\n readonly toggle: () => void;\n readonly triggerProps: ButtonHTMLAttributes<HTMLButtonElement>;\n readonly triggerRef: RefCallback<HTMLButtonElement>;\n}\n\ninterface ToggleEventLike extends Event {\n readonly newState?: \"closed\" | \"open\";\n}\n\nexport function usePopover({\n defaultOpen = false,\n mode = \"auto\",\n onOpenChange,\n open: controlledOpen,\n}: UsePopoverOptions = {}): UsePopoverReturn {\n const id = useId();\n const [popup, setPopup] = useState<HTMLElement | null>(null);\n const { open, requestChange } = useControllableOpenChange({\n defaultOpen,\n onOpenChange,\n open: controlledOpen,\n });\n const openRef = useRef(open);\n openRef.current = open;\n // SSR markup matches the initial open state so pre-hydration toggling works.\n const isNative = useSyncExternalStore(\n () => () => {},\n () => supportsPopover(),\n () => true,\n );\n\n useIsomorphicLayoutEffect(() => {\n if (!popup || !isNative) return;\n\n const onBeforeToggle = (event: Event) => {\n const next = (event as ToggleEventLike).newState === \"open\";\n if (next !== openRef.current && !requestChange(next, \"native-toggle\", event)) {\n event.preventDefault();\n }\n };\n popup.addEventListener(\"beforetoggle\", onBeforeToggle);\n return () => popup.removeEventListener(\"beforetoggle\", onBeforeToggle);\n }, [isNative, popup, requestChange]);\n\n useIsomorphicLayoutEffect(() => {\n if (!popup || !isNative) return;\n try {\n if (open && !popup.matches(\":popover-open\")) popup.showPopover();\n if (!open && popup.matches(\":popover-open\")) popup.hidePopover();\n } catch {\n // The node may have disconnected between render and layout effect.\n }\n }, [isNative, open, popup]);\n\n const triggerProps = {\n \"aria-controls\": id,\n \"aria-expanded\": open,\n onClick(event: ReactMouseEvent<HTMLButtonElement>) {\n const accepted = requestChange(\n !open,\n isNative ? \"native-toggle\" : \"trigger-press\",\n event.nativeEvent,\n );\n // Commit the React state first, then open from the layout effect. Letting\n // the invoker open it first exposes the surface before its state/styles settle.\n if (isNative || !accepted) event.preventDefault();\n },\n type: \"button\",\n ...(isNative ? { command: \"toggle-popover\", commandfor: id } : {}),\n } as ButtonHTMLAttributes<HTMLButtonElement>;\n\n const popupProps = {\n \"data-native\": isNative ? \"\" : undefined,\n hidden: isNative ? undefined : !open,\n id,\n ...(isNative ? { popover: mode } : {}),\n ...(isNative && open ? { open: true } : {}),\n } as HTMLAttributes<HTMLElement>;\n\n return {\n close: () => requestChange(false, \"programmatic\"),\n isNative,\n open,\n openPopover: () => requestChange(true, \"programmatic\"),\n popupProps,\n popupRef: setPopup,\n toggle: () => requestChange(!open, \"programmatic\"),\n triggerProps,\n triggerRef() {},\n };\n}\n"],"mappings":";AAEA,SAAS,QAAQ,UAAU,4BAA4B;AAOvD,SAAS,OAAO,iCAAiC;AACjD,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,OAEK;AAyBA,SAAS,WAAW;AAAA,EACzB,cAAc;AAAA,EACd,OAAO;AAAA,EACP;AAAA,EACA,MAAM;AACR,IAAuB,CAAC,GAAqB;AAC3C,QAAM,KAAK,MAAM;AACjB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA6B,IAAI;AAC3D,QAAM,EAAE,MAAM,cAAc,IAAI,0BAA0B;AAAA,IACxD;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EACR,CAAC;AACD,QAAM,UAAU,OAAO,IAAI;AAC3B,UAAQ,UAAU;AAElB,QAAM,WAAW;AAAA,IACf,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,MAAM,gBAAgB;AAAA,IACtB,MAAM;AAAA,EACR;AAEA,4BAA0B,MAAM;AAC9B,QAAI,CAAC,SAAS,CAAC,SAAU;AAEzB,UAAM,iBAAiB,CAAC,UAAiB;AACvC,YAAM,OAAQ,MAA0B,aAAa;AACrD,UAAI,SAAS,QAAQ,WAAW,CAAC,cAAc,MAAM,iBAAiB,KAAK,GAAG;AAC5E,cAAM,eAAe;AAAA,MACvB;AAAA,IACF;AACA,UAAM,iBAAiB,gBAAgB,cAAc;AACrD,WAAO,MAAM,MAAM,oBAAoB,gBAAgB,cAAc;AAAA,EACvE,GAAG,CAAC,UAAU,OAAO,aAAa,CAAC;AAEnC,4BAA0B,MAAM;AAC9B,QAAI,CAAC,SAAS,CAAC,SAAU;AACzB,QAAI;AACF,UAAI,QAAQ,CAAC,MAAM,QAAQ,eAAe,EAAG,OAAM,YAAY;AAC/D,UAAI,CAAC,QAAQ,MAAM,QAAQ,eAAe,EAAG,OAAM,YAAY;AAAA,IACjE,QAAQ;AAAA,IAER;AAAA,EACF,GAAG,CAAC,UAAU,MAAM,KAAK,CAAC;AAE1B,QAAM,eAAe;AAAA,IACnB,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,QAAQ,OAA2C;AACjD,YAAM,WAAW;AAAA,QACf,CAAC;AAAA,QACD,WAAW,kBAAkB;AAAA,QAC7B,MAAM;AAAA,MACR;AAGA,UAAI,YAAY,CAAC,SAAU,OAAM,eAAe;AAAA,IAClD;AAAA,IACA,MAAM;AAAA,IACN,GAAI,WAAW,EAAE,SAAS,kBAAkB,YAAY,GAAG,IAAI,CAAC;AAAA,EAClE;AAEA,QAAM,aAAa;AAAA,IACjB,eAAe,WAAW,KAAK;AAAA,IAC/B,QAAQ,WAAW,SAAY,CAAC;AAAA,IAChC;AAAA,IACA,GAAI,WAAW,EAAE,SAAS,KAAK,IAAI,CAAC;AAAA,IACpC,GAAI,YAAY,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAAA,EAC3C;AAEA,SAAO;AAAA,IACL,OAAO,MAAM,cAAc,OAAO,cAAc;AAAA,IAChD;AAAA,IACA;AAAA,IACA,aAAa,MAAM,cAAc,MAAM,cAAc;AAAA,IACrD;AAAA,IACA,UAAU;AAAA,IACV,QAAQ,MAAM,cAAc,CAAC,MAAM,cAAc;AAAA,IACjD;AAAA,IACA,aAAa;AAAA,IAAC;AAAA,EAChB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/core/use-popover.ts"],"sourcesContent":["\"use client\";\n\nimport { useRef, useState, useSyncExternalStore } from \"react\";\nimport type {\n ButtonHTMLAttributes,\n HTMLAttributes,\n MouseEvent as ReactMouseEvent,\n RefCallback,\n} from \"react\";\nimport { useId, useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { supportsPopover } from \"./platform.js\";\nimport {\n useControllableOpenChange,\n type UseControllableOpenChangeOptions,\n} from \"./use-controllable-open-change.js\";\n\nexport type PopoverMode = \"auto\" | \"manual\" | \"hint\";\nexport type PopoverChangeHandler = UseControllableOpenChangeOptions[\"onOpenChange\"];\n\nexport interface UsePopoverOptions extends UseControllableOpenChangeOptions {\n readonly id?: string;\n readonly mode?: PopoverMode;\n}\n\nexport interface UsePopoverReturn {\n readonly close: () => void;\n readonly isNative: boolean;\n readonly open: boolean;\n readonly openPopover: () => void;\n readonly popupProps: HTMLAttributes<HTMLElement>;\n readonly popupRef: RefCallback<HTMLElement>;\n readonly toggle: () => void;\n readonly triggerProps: ButtonHTMLAttributes<HTMLButtonElement>;\n readonly triggerRef: RefCallback<HTMLButtonElement>;\n}\n\ninterface ToggleEventLike extends Event {\n readonly newState?: \"closed\" | \"open\";\n}\n\nexport function usePopover({\n defaultOpen = false,\n id: requestedId,\n mode = \"auto\",\n onOpenChange,\n open: controlledOpen,\n}: UsePopoverOptions = {}): UsePopoverReturn {\n const generatedId = useId();\n const id = requestedId ?? generatedId;\n const [popup, setPopup] = useState<HTMLElement | null>(null);\n const { open, requestChange } = useControllableOpenChange({\n defaultOpen,\n onOpenChange,\n open: controlledOpen,\n });\n const openRef = useRef(open);\n openRef.current = open;\n // SSR markup matches the initial open state so pre-hydration toggling works.\n const isNative = useSyncExternalStore(\n () => () => {},\n () => supportsPopover(),\n () => true,\n );\n\n useIsomorphicLayoutEffect(() => {\n if (!popup || !isNative) return;\n\n const onBeforeToggle = (event: Event) => {\n const next = (event as ToggleEventLike).newState === \"open\";\n if (next !== openRef.current && !requestChange(next, \"native-toggle\", event)) {\n event.preventDefault();\n }\n };\n popup.addEventListener(\"beforetoggle\", onBeforeToggle);\n return () => popup.removeEventListener(\"beforetoggle\", onBeforeToggle);\n }, [isNative, popup, requestChange]);\n\n useIsomorphicLayoutEffect(() => {\n if (!popup || !isNative) return;\n try {\n if (open && !popup.matches(\":popover-open\")) popup.showPopover();\n if (!open && popup.matches(\":popover-open\")) popup.hidePopover();\n } catch {\n // The node may have disconnected between render and layout effect.\n }\n }, [isNative, open, popup]);\n\n const triggerProps = {\n \"aria-controls\": id,\n \"aria-expanded\": open,\n onClick(event: ReactMouseEvent<HTMLButtonElement>) {\n const accepted = requestChange(\n !open,\n isNative ? \"native-toggle\" : \"trigger-press\",\n event.nativeEvent,\n );\n // Commit the React state first, then open from the layout effect. Letting\n // the invoker open it first exposes the surface before its state/styles settle.\n if (isNative || !accepted) event.preventDefault();\n },\n type: \"button\",\n ...(isNative ? { command: \"toggle-popover\", commandfor: id } : {}),\n } as ButtonHTMLAttributes<HTMLButtonElement>;\n\n const popupProps = {\n \"data-native\": isNative ? \"\" : undefined,\n hidden: isNative ? undefined : !open,\n id,\n ...(isNative ? { popover: mode } : {}),\n ...(isNative && open ? { open: true } : {}),\n } as HTMLAttributes<HTMLElement>;\n\n return {\n close: () => requestChange(false, \"programmatic\"),\n isNative,\n open,\n openPopover: () => requestChange(true, \"programmatic\"),\n popupProps,\n popupRef: setPopup,\n toggle: () => requestChange(!open, \"programmatic\"),\n triggerProps,\n triggerRef() {},\n };\n}\n"],"mappings":";AAEA,SAAS,QAAQ,UAAU,4BAA4B;AAOvD,SAAS,OAAO,iCAAiC;AACjD,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,OAEK;AA0BA,SAAS,WAAW;AAAA,EACzB,cAAc;AAAA,EACd,IAAI;AAAA,EACJ,OAAO;AAAA,EACP;AAAA,EACA,MAAM;AACR,IAAuB,CAAC,GAAqB;AAC3C,QAAM,cAAc,MAAM;AAC1B,QAAM,KAAK,eAAe;AAC1B,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA6B,IAAI;AAC3D,QAAM,EAAE,MAAM,cAAc,IAAI,0BAA0B;AAAA,IACxD;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EACR,CAAC;AACD,QAAM,UAAU,OAAO,IAAI;AAC3B,UAAQ,UAAU;AAElB,QAAM,WAAW;AAAA,IACf,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,MAAM,gBAAgB;AAAA,IACtB,MAAM;AAAA,EACR;AAEA,4BAA0B,MAAM;AAC9B,QAAI,CAAC,SAAS,CAAC,SAAU;AAEzB,UAAM,iBAAiB,CAAC,UAAiB;AACvC,YAAM,OAAQ,MAA0B,aAAa;AACrD,UAAI,SAAS,QAAQ,WAAW,CAAC,cAAc,MAAM,iBAAiB,KAAK,GAAG;AAC5E,cAAM,eAAe;AAAA,MACvB;AAAA,IACF;AACA,UAAM,iBAAiB,gBAAgB,cAAc;AACrD,WAAO,MAAM,MAAM,oBAAoB,gBAAgB,cAAc;AAAA,EACvE,GAAG,CAAC,UAAU,OAAO,aAAa,CAAC;AAEnC,4BAA0B,MAAM;AAC9B,QAAI,CAAC,SAAS,CAAC,SAAU;AACzB,QAAI;AACF,UAAI,QAAQ,CAAC,MAAM,QAAQ,eAAe,EAAG,OAAM,YAAY;AAC/D,UAAI,CAAC,QAAQ,MAAM,QAAQ,eAAe,EAAG,OAAM,YAAY;AAAA,IACjE,QAAQ;AAAA,IAER;AAAA,EACF,GAAG,CAAC,UAAU,MAAM,KAAK,CAAC;AAE1B,QAAM,eAAe;AAAA,IACnB,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,QAAQ,OAA2C;AACjD,YAAM,WAAW;AAAA,QACf,CAAC;AAAA,QACD,WAAW,kBAAkB;AAAA,QAC7B,MAAM;AAAA,MACR;AAGA,UAAI,YAAY,CAAC,SAAU,OAAM,eAAe;AAAA,IAClD;AAAA,IACA,MAAM;AAAA,IACN,GAAI,WAAW,EAAE,SAAS,kBAAkB,YAAY,GAAG,IAAI,CAAC;AAAA,EAClE;AAEA,QAAM,aAAa;AAAA,IACjB,eAAe,WAAW,KAAK;AAAA,IAC/B,QAAQ,WAAW,SAAY,CAAC;AAAA,IAChC;AAAA,IACA,GAAI,WAAW,EAAE,SAAS,KAAK,IAAI,CAAC;AAAA,IACpC,GAAI,YAAY,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAAA,EAC3C;AAEA,SAAO;AAAA,IACL,OAAO,MAAM,cAAc,OAAO,cAAc;AAAA,IAChD;AAAA,IACA;AAAA,IACA,aAAa,MAAM,cAAc,MAAM,cAAc;AAAA,IACrD;AAAA,IACA,UAAU;AAAA,IACV,QAAQ,MAAM,cAAc,CAAC,MAAM,cAAc;AAAA,IACjD;AAAA,IACA,aAAa;AAAA,IAAC;AAAA,EAChB;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Choice.d.ts","sourceRoot":"","sources":["../../../src/elements/choice/Choice.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAajE;yBAbe,WAAW;;;AAgB3B;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAsD/D;yBAtDe,UAAU;;;AAyD1B,eAAO,MAAM,MAAM;;;CAGlB,CAAC"}
1
+ {"version":3,"file":"Choice.d.ts","sourceRoot":"","sources":["../../../src/elements/choice/Choice.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAWpE;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAcjE;yBAde,WAAW;;;AAiB3B;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CA0F/D;yBA1Fe,UAAU;;;AA6F1B,eAAO,MAAM,MAAM;;;CAGlB,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { choiceGroupName, choiceIds } from "./ids.js";
3
+ function omitOwnedProps(props, keys) {
4
+ const result = { ...props };
5
+ for (const key of keys) delete result[key];
6
+ return result;
7
+ }
3
8
  function ChoiceGroup(props) {
4
9
  const {
5
10
  children,
@@ -8,7 +13,8 @@ function ChoiceGroup(props) {
8
13
  orientation = "horizontal",
9
14
  ...consumerProps
10
15
  } = props;
11
- return /* @__PURE__ */ jsx("div", { ...consumerProps, "data-orientation": orientation, "data-uiify-choice": "", children });
16
+ const nativeProps = omitOwnedProps(consumerProps, ["children", "dangerouslySetInnerHTML"]);
17
+ return /* @__PURE__ */ jsx("div", { ...nativeProps, "data-orientation": orientation, "data-uiify-choice": "", children });
12
18
  }
13
19
  ChoiceGroup.displayName = "ChoiceGroup";
14
20
  function ChoiceItem(props) {
@@ -17,24 +23,53 @@ function ChoiceItem(props) {
17
23
  checked,
18
24
  disabled = false,
19
25
  groupId,
20
- inputProps,
21
26
  kind,
22
27
  label,
23
28
  labelPart = false,
24
- labelProps,
25
29
  name,
26
30
  onValueChange,
27
31
  panel,
28
- panelProps,
32
+ slotProps,
29
33
  part = "item",
30
34
  value,
31
35
  ...consumerProps
32
36
  } = props;
33
37
  const isControlled = checked !== void 0;
38
+ const wrapperProps = omitOwnedProps(consumerProps, [
39
+ "children",
40
+ "dangerouslySetInnerHTML",
41
+ "data-part",
42
+ "data-uiify-choice"
43
+ ]);
44
+ const inputProps = omitOwnedProps(slotProps?.input, [
45
+ "children",
46
+ "dangerouslySetInnerHTML",
47
+ "aria-labelledby",
48
+ "checked",
49
+ "defaultChecked",
50
+ "disabled",
51
+ "id",
52
+ "name",
53
+ "type",
54
+ "value"
55
+ ]);
56
+ const labelProps = omitOwnedProps(slotProps?.label, [
57
+ "children",
58
+ "dangerouslySetInnerHTML",
59
+ "htmlFor",
60
+ "id",
61
+ "data-part"
62
+ ]);
63
+ const panelProps = omitOwnedProps(slotProps?.panel, [
64
+ "children",
65
+ "dangerouslySetInnerHTML",
66
+ "id",
67
+ "data-part"
68
+ ]);
34
69
  const { controlId, labelId, panelId } = choiceIds(groupId, value);
35
70
  const groupName = name ?? choiceGroupName(groupId, kind);
36
71
  const inputType = kind === "single" ? "radio" : "checkbox";
37
- return /* @__PURE__ */ jsxs("div", { ...consumerProps, "data-part": part, "data-uiify-choice": "", children: [
72
+ return /* @__PURE__ */ jsxs("div", { ...wrapperProps, "data-part": part, "data-uiify-choice": "", children: [
38
73
  /* @__PURE__ */ jsx(
39
74
  "input",
40
75
  {
@@ -46,7 +81,12 @@ function ChoiceItem(props) {
46
81
  name: groupName,
47
82
  type: inputType,
48
83
  value,
49
- ...onValueChange ? { onChange: () => onValueChange(value) } : {}
84
+ ...onValueChange ? {
85
+ onChange: (event) => {
86
+ slotProps?.input?.onChange?.(event);
87
+ if (!event.defaultPrevented) onValueChange(event.currentTarget.value);
88
+ }
89
+ } : {}
50
90
  }
51
91
  ),
52
92
  /* @__PURE__ */ jsx(
@@ -55,7 +95,7 @@ function ChoiceItem(props) {
55
95
  ...labelProps,
56
96
  htmlFor: controlId,
57
97
  id: labelId,
58
- ...labelPart ? { "data-part": "label" } : {},
98
+ ...labelPart ? { "data-part": labelPart === true ? "label" : labelPart } : {},
59
99
  children: label
60
100
  }
61
101
  ),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/choice/Choice.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { choiceGroupName, choiceIds } from \"./ids.js\";\nimport type { ChoiceGroupProps, ChoiceItemProps } from \"./types.js\";\n\n/**\n * A group of `Choice.Item`s. Purely a marked, oriented `<div>` — the actual `<input>`s are\n * siblings-by-id, not parent/child data flow (no `useContext`, no `cloneElement`: Tier 0 bans\n * both). Emits `data-orientation` and `data-uiify-choice`.\n */\nexport function ChoiceGroup(props: ChoiceGroupProps): ReactElement {\n const {\n children,\n kind: _kind,\n name: _name,\n orientation = \"horizontal\",\n ...consumerProps\n } = props;\n return (\n <div {...consumerProps} data-orientation={orientation} data-uiify-choice=\"\">\n {children}\n </div>\n );\n}\nChoiceGroup.displayName = \"ChoiceGroup\";\n\n/**\n * One radio/checkbox choice: an `<input>`, its `<label>`, and an optional panel. `groupId` and\n * `kind` are explicit (see `ChoiceGroupOwnProps.id`) — this part does not read them from its\n * `Choice.Group` ancestor. Emits `data-uiify-choice` and `data-part` (default `\"item\"`) on the\n * wrapper.\n */\nexport function ChoiceItem(props: ChoiceItemProps): ReactElement {\n const {\n defaultChecked = false,\n checked,\n disabled = false,\n groupId,\n inputProps,\n kind,\n label,\n labelPart = false,\n labelProps,\n name,\n onValueChange,\n panel,\n panelProps,\n part = \"item\",\n value,\n ...consumerProps\n } = props;\n\n const isControlled = checked !== undefined;\n\n const { controlId, labelId, panelId } = choiceIds(groupId, value);\n const groupName = name ?? choiceGroupName(groupId, kind);\n const inputType = kind === \"single\" ? \"radio\" : \"checkbox\";\n\n return (\n <div {...consumerProps} data-part={part} data-uiify-choice=\"\">\n <input\n {...inputProps}\n aria-labelledby={labelId}\n {...(isControlled ? { checked } : { defaultChecked })}\n disabled={disabled}\n id={controlId}\n name={groupName}\n type={inputType}\n value={value}\n {...(onValueChange ? { onChange: () => onValueChange(value) } : {})}\n />\n <label\n {...labelProps}\n htmlFor={controlId}\n id={labelId}\n {...(labelPart ? { \"data-part\": \"label\" } : {})}\n >\n {label}\n </label>\n {panel === undefined ? null : (\n <div {...panelProps} data-part=\"panel\" id={panelId}>\n {panel}\n </div>\n )}\n </div>\n );\n}\nChoiceItem.displayName = \"ChoiceItem\";\n\nexport const Choice = {\n Group: ChoiceGroup,\n Item: ChoiceItem,\n};\n"],"mappings":"AAkBI,cAwCA,YAxCA;AAjBJ,SAAS,iBAAiB,iBAAiB;AAQpC,SAAS,YAAY,OAAuC;AACjE,QAAM;AAAA,IACJ;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,GAAG;AAAA,EACL,IAAI;AACJ,SACE,oBAAC,SAAK,GAAG,eAAe,oBAAkB,aAAa,qBAAkB,IACtE,UACH;AAEJ;AACA,YAAY,cAAc;AAQnB,SAAS,WAAW,OAAsC;AAC/D,QAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,YAAY;AAEjC,QAAM,EAAE,WAAW,SAAS,QAAQ,IAAI,UAAU,SAAS,KAAK;AAChE,QAAM,YAAY,QAAQ,gBAAgB,SAAS,IAAI;AACvD,QAAM,YAAY,SAAS,WAAW,UAAU;AAEhD,SACE,qBAAC,SAAK,GAAG,eAAe,aAAW,MAAM,qBAAkB,IACzD;AAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,mBAAiB;AAAA,QAChB,GAAI,eAAe,EAAE,QAAQ,IAAI,EAAE,eAAe;AAAA,QACnD;AAAA,QACA,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACC,GAAI,gBAAgB,EAAE,UAAU,MAAM,cAAc,KAAK,EAAE,IAAI,CAAC;AAAA;AAAA,IACnE;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACH,GAAI,YAAY,EAAE,aAAa,QAAQ,IAAI,CAAC;AAAA,QAE5C;AAAA;AAAA,IACH;AAAA,IACC,UAAU,SAAY,OACrB,oBAAC,SAAK,GAAG,YAAY,aAAU,SAAQ,IAAI,SACxC,iBACH;AAAA,KAEJ;AAEJ;AACA,WAAW,cAAc;AAElB,MAAM,SAAS;AAAA,EACpB,OAAO;AAAA,EACP,MAAM;AACR;","names":[]}
1
+ {"version":3,"sources":["../../../src/elements/choice/Choice.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { choiceGroupName, choiceIds } from \"./ids.js\";\nimport type { ChoiceGroupProps, ChoiceItemProps } from \"./types.js\";\n\nfunction omitOwnedProps<TProps extends object>(\n props: TProps | undefined,\n keys: readonly string[],\n): TProps {\n const result = { ...props } as Record<string, unknown>;\n for (const key of keys) delete result[key];\n return result as TProps;\n}\n\n/**\n * A group of `Choice.Item`s. Purely a marked, oriented `<div>` — the actual `<input>`s are\n * siblings-by-id, not parent/child data flow (no `useContext`, no `cloneElement`: Tier 0 bans\n * both). Emits `data-orientation` and `data-uiify-choice`.\n */\nexport function ChoiceGroup(props: ChoiceGroupProps): ReactElement {\n const {\n children,\n kind: _kind,\n name: _name,\n orientation = \"horizontal\",\n ...consumerProps\n } = props;\n const nativeProps = omitOwnedProps(consumerProps, [\"children\", \"dangerouslySetInnerHTML\"]);\n return (\n <div {...nativeProps} data-orientation={orientation} data-uiify-choice=\"\">\n {children}\n </div>\n );\n}\nChoiceGroup.displayName = \"ChoiceGroup\";\n\n/**\n * One radio/checkbox choice: an `<input>`, its `<label>`, and an optional panel. `groupId` and\n * `kind` are explicit (see `ChoiceGroupOwnProps.id`) — this part does not read them from its\n * `Choice.Group` ancestor. Emits `data-uiify-choice` and `data-part` (default `\"item\"`) on the\n * wrapper.\n */\nexport function ChoiceItem(props: ChoiceItemProps): ReactElement {\n const {\n defaultChecked = false,\n checked,\n disabled = false,\n groupId,\n kind,\n label,\n labelPart = false,\n name,\n onValueChange,\n panel,\n slotProps,\n part = \"item\",\n value,\n ...consumerProps\n } = props;\n\n const isControlled = checked !== undefined;\n const wrapperProps = omitOwnedProps(consumerProps, [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"data-part\",\n \"data-uiify-choice\",\n ]);\n const inputProps = omitOwnedProps(slotProps?.input, [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"aria-labelledby\",\n \"checked\",\n \"defaultChecked\",\n \"disabled\",\n \"id\",\n \"name\",\n \"type\",\n \"value\",\n ]);\n const labelProps = omitOwnedProps(slotProps?.label, [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"htmlFor\",\n \"id\",\n \"data-part\",\n ]);\n const panelProps = omitOwnedProps(slotProps?.panel, [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"id\",\n \"data-part\",\n ]);\n\n const { controlId, labelId, panelId } = choiceIds(groupId, value);\n const groupName = name ?? choiceGroupName(groupId, kind);\n const inputType = kind === \"single\" ? \"radio\" : \"checkbox\";\n\n return (\n <div {...wrapperProps} data-part={part} data-uiify-choice=\"\">\n <input\n {...inputProps}\n aria-labelledby={labelId}\n {...(isControlled ? { checked } : { defaultChecked })}\n disabled={disabled}\n id={controlId}\n name={groupName}\n type={inputType}\n value={value}\n {...(onValueChange\n ? {\n onChange: (event) => {\n slotProps?.input?.onChange?.(event);\n if (!event.defaultPrevented) onValueChange(event.currentTarget.value);\n },\n }\n : {})}\n />\n <label\n {...labelProps}\n htmlFor={controlId}\n id={labelId}\n {...(labelPart ? { \"data-part\": labelPart === true ? \"label\" : labelPart } : {})}\n >\n {label}\n </label>\n {panel === undefined ? null : (\n <div {...panelProps} data-part=\"panel\" id={panelId}>\n {panel}\n </div>\n )}\n </div>\n );\n}\nChoiceItem.displayName = \"ChoiceItem\";\n\nexport const Choice = {\n Group: ChoiceGroup,\n Item: ChoiceItem,\n};\n"],"mappings":"AA4BI,cAqEA,YArEA;AA3BJ,SAAS,iBAAiB,iBAAiB;AAG3C,SAAS,eACP,OACA,MACQ;AACR,QAAM,SAAS,EAAE,GAAG,MAAM;AAC1B,aAAW,OAAO,KAAM,QAAO,OAAO,GAAG;AACzC,SAAO;AACT;AAOO,SAAS,YAAY,OAAuC;AACjE,QAAM;AAAA,IACJ;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,cAAc,eAAe,eAAe,CAAC,YAAY,yBAAyB,CAAC;AACzF,SACE,oBAAC,SAAK,GAAG,aAAa,oBAAkB,aAAa,qBAAkB,IACpE,UACH;AAEJ;AACA,YAAY,cAAc;AAQnB,SAAS,WAAW,OAAsC;AAC/D,QAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,YAAY;AACjC,QAAM,eAAe,eAAe,eAAe;AAAA,IACjD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,aAAa,eAAe,WAAW,OAAO;AAAA,IAClD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,aAAa,eAAe,WAAW,OAAO;AAAA,IAClD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,aAAa,eAAe,WAAW,OAAO;AAAA,IAClD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,EAAE,WAAW,SAAS,QAAQ,IAAI,UAAU,SAAS,KAAK;AAChE,QAAM,YAAY,QAAQ,gBAAgB,SAAS,IAAI;AACvD,QAAM,YAAY,SAAS,WAAW,UAAU;AAEhD,SACE,qBAAC,SAAK,GAAG,cAAc,aAAW,MAAM,qBAAkB,IACxD;AAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,mBAAiB;AAAA,QAChB,GAAI,eAAe,EAAE,QAAQ,IAAI,EAAE,eAAe;AAAA,QACnD;AAAA,QACA,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACC,GAAI,gBACD;AAAA,UACE,UAAU,CAAC,UAAU;AACnB,uBAAW,OAAO,WAAW,KAAK;AAClC,gBAAI,CAAC,MAAM,iBAAkB,eAAc,MAAM,cAAc,KAAK;AAAA,UACtE;AAAA,QACF,IACA,CAAC;AAAA;AAAA,IACP;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACH,GAAI,YAAY,EAAE,aAAa,cAAc,OAAO,UAAU,UAAU,IAAI,CAAC;AAAA,QAE7E;AAAA;AAAA,IACH;AAAA,IACC,UAAU,SAAY,OACrB,oBAAC,SAAK,GAAG,YAAY,aAAU,SAAQ,IAAI,SACxC,iBACH;AAAA,KAEJ;AAEJ;AACA,WAAW,cAAc;AAElB,MAAM,SAAS;AAAA,EACpB,OAAO;AAAA,EACP,MAAM;AACR;","names":[]}
@@ -1,4 +1,4 @@
1
1
  export { Choice, ChoiceGroup, ChoiceItem } from "./Choice.js";
2
2
  export { choiceGroupName, choiceIds } from "./ids.js";
3
- export type { ChoiceGroupOwnProps, ChoiceGroupProps, ChoiceItemOwnProps, ChoiceItemProps, ChoiceKind, ChoiceOrientation, } from "./types.js";
3
+ export type { ChoiceGroupOwnProps, ChoiceGroupProps, ChoiceInputSlotProps, ChoiceItemOwnProps, ChoiceItemProps, ChoiceItemSlotProps, ChoiceKind, ChoiceLabelSlotProps, ChoiceOrientation, ChoicePanelSlotProps, } from "./types.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/choice/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACtD,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/choice/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACtD,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/choice/index.ts"],"sourcesContent":["export { Choice, ChoiceGroup, ChoiceItem } from \"./Choice.js\";\nexport { choiceGroupName, choiceIds } from \"./ids.js\";\nexport type {\n ChoiceGroupOwnProps,\n ChoiceGroupProps,\n ChoiceItemOwnProps,\n ChoiceItemProps,\n ChoiceKind,\n ChoiceOrientation,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,QAAQ,aAAa,kBAAkB;AAChD,SAAS,iBAAiB,iBAAiB;","names":[]}
1
+ {"version":3,"sources":["../../../src/elements/choice/index.ts"],"sourcesContent":["export { Choice, ChoiceGroup, ChoiceItem } from \"./Choice.js\";\nexport { choiceGroupName, choiceIds } from \"./ids.js\";\nexport type {\n ChoiceGroupOwnProps,\n ChoiceGroupProps,\n ChoiceInputSlotProps,\n ChoiceItemOwnProps,\n ChoiceItemProps,\n ChoiceItemSlotProps,\n ChoiceKind,\n ChoiceLabelSlotProps,\n ChoiceOrientation,\n ChoicePanelSlotProps,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,QAAQ,aAAa,kBAAkB;AAChD,SAAS,iBAAiB,iBAAiB;","names":[]}
@@ -1,4 +1,7 @@
1
1
  import type { ComponentPropsWithRef, ReactNode } from "react";
2
+ export interface ConsumerDataAttributes {
3
+ readonly [attribute: `data-${string}`]: string | number | boolean | undefined;
4
+ }
2
5
  /** `"single"` renders `type="radio"`; `"multiple"` renders `type="checkbox"`. */
3
6
  export type ChoiceKind = "single" | "multiple";
4
7
  export type ChoiceOrientation = "horizontal" | "vertical";
@@ -21,7 +24,23 @@ export interface ChoiceGroupOwnProps {
21
24
  */
22
25
  readonly name?: string;
23
26
  }
24
- export type ChoiceGroupProps = ChoiceGroupOwnProps & Omit<ComponentPropsWithRef<"div">, keyof ChoiceGroupOwnProps>;
27
+ export type ChoiceGroupProps = ChoiceGroupOwnProps & Omit<ComponentPropsWithRef<"div">, keyof ChoiceGroupOwnProps | "dangerouslySetInnerHTML">;
28
+ export type ChoiceInputSlotProps = Omit<ComponentPropsWithRef<"input">, "children" | "dangerouslySetInnerHTML" | "aria-labelledby" | "checked" | "defaultChecked" | "disabled" | "id" | "name" | "type" | "value" | "data-part" | "data-uiify-choice" | "data-uiify-radio"> & ConsumerDataAttributes & {
29
+ readonly "data-part"?: never;
30
+ readonly "data-uiify-choice"?: never;
31
+ readonly "data-uiify-radio"?: never;
32
+ };
33
+ export type ChoiceLabelSlotProps = Omit<ComponentPropsWithRef<"label">, "children" | "dangerouslySetInnerHTML" | "htmlFor" | "id" | "data-part"> & ConsumerDataAttributes & {
34
+ readonly "data-part"?: never;
35
+ };
36
+ export type ChoicePanelSlotProps = Omit<ComponentPropsWithRef<"div">, "children" | "dangerouslySetInnerHTML" | "id" | "data-part"> & ConsumerDataAttributes & {
37
+ readonly "data-part"?: never;
38
+ };
39
+ export interface ChoiceItemSlotProps {
40
+ readonly input?: ChoiceInputSlotProps;
41
+ readonly label?: ChoiceLabelSlotProps;
42
+ readonly panel?: ChoicePanelSlotProps;
43
+ }
25
44
  export interface ChoiceItemOwnProps {
26
45
  readonly value: string;
27
46
  /** Rendered inside the `<label>`. */
@@ -40,14 +59,10 @@ export interface ChoiceItemOwnProps {
40
59
  readonly disabled?: boolean;
41
60
  /** Wrapper `data-part`. Defaults to `"item"`. */
42
61
  readonly part?: string;
43
- /** Adds `data-part="label"` to the `<label>`. */
44
- readonly labelPart?: boolean;
45
- /** Escape hatch: extra attributes spread onto the `<input>` (for example, `data-part="control"`). */
46
- readonly inputProps?: Record<string, unknown>;
47
- /** Escape hatch: extra attributes spread onto the `<label>`. */
48
- readonly labelProps?: Record<string, unknown>;
49
- /** Escape hatch: extra attributes spread onto the panel `<div>`. */
50
- readonly panelProps?: Record<string, unknown>;
62
+ /** Adds an owned `data-part` marker to the `<label>`; `true` means `"label"`. */
63
+ readonly labelPart?: boolean | string;
64
+ /** Native props for the generated input, label and optional panel. */
65
+ readonly slotProps?: ChoiceItemSlotProps;
51
66
  /**
52
67
  * Client-only: attaches to the input's native `change`. Passing it does not make this
53
68
  * element a client component — the *caller* must already be one. Omitted by every
@@ -55,5 +70,5 @@ export interface ChoiceItemOwnProps {
55
70
  */
56
71
  readonly onValueChange?: (value: string) => void;
57
72
  }
58
- export type ChoiceItemProps = ChoiceItemOwnProps & Omit<ComponentPropsWithRef<"div">, keyof ChoiceItemOwnProps | "children">;
73
+ export type ChoiceItemProps = ChoiceItemOwnProps & Omit<ComponentPropsWithRef<"div">, keyof ChoiceItemOwnProps | "children" | "dangerouslySetInnerHTML">;
59
74
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/choice/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9D,iFAAiF;AACjF,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE/C,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAChD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,mBAAmB,CAAC,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,qGAAqG;IACrG,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC9C,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/choice/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,SAAS,EAAE,QAAQ,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAC/E;AAED,iFAAiF;AACjF,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE/C,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAChD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,CAAC;AAE5F,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,qBAAqB,CAAC,OAAO,CAAC,EAC5B,UAAU,GACV,yBAAyB,GACzB,iBAAiB,GACjB,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,WAAW,GACX,mBAAmB,GACnB,kBAAkB,CACrB,GACC,sBAAsB,GAAG;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC;IACrC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC;CACrC,CAAC;AAEJ,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,qBAAqB,CAAC,OAAO,CAAC,EAC9B,UAAU,GAAG,yBAAyB,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,CACxE,GACC,sBAAsB,GAAG;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,qBAAqB,CAAC,KAAK,CAAC,EAC5B,UAAU,GAAG,yBAAyB,GAAG,IAAI,GAAG,WAAW,CAC5D,GACC,sBAAsB,GAAG;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACtC,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC9C,IAAI,CACF,qBAAqB,CAAC,KAAK,CAAC,EAC5B,MAAM,kBAAkB,GAAG,UAAU,GAAG,yBAAyB,CAClE,CAAC"}
@@ -1,7 +1,7 @@
1
- import { useEffect } from "react";
1
+ import { useLayoutEffect } from "react";
2
2
  /**
3
3
  * `useLayoutEffect` in the browser, `useEffect` on the server — avoids React's
4
4
  * "useLayoutEffect does nothing on the server" warning during SSR.
5
5
  */
6
- export declare const useIsomorphicLayoutEffect: typeof useEffect;
6
+ export declare const useIsomorphicLayoutEffect: typeof useLayoutEffect;
7
7
  //# sourceMappingURL=use-isomorphic-layout-effect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-isomorphic-layout-effect.d.ts","sourceRoot":"","sources":["../../src/hooks/use-isomorphic-layout-effect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAmB,MAAM,OAAO,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,kBACuB,CAAC"}
1
+ {"version":3,"file":"use-isomorphic-layout-effect.d.ts","sourceRoot":"","sources":["../../src/hooks/use-isomorphic-layout-effect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,eAAe,EAAE,MAAM,OAAO,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,wBACuB,CAAC"}