@gunkin/uiify 0.0.24-alpha → 0.0.26-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/agents/index.md +1 -1
  2. package/agents/reference/components/accordion.md +18 -3
  3. package/agents/reference/components/alert-modal.md +19 -7
  4. package/agents/reference/components/alert.md +9 -1
  5. package/agents/reference/components/aspect-ratio.md +8 -0
  6. package/agents/reference/components/avatar.md +10 -0
  7. package/agents/reference/components/breadcrumb.md +22 -4
  8. package/agents/reference/components/candle-chart.md +51 -3
  9. package/agents/reference/components/carousel.md +26 -1
  10. package/agents/reference/components/checkbox.md +3 -1
  11. package/agents/reference/components/collapsible.md +16 -3
  12. package/agents/reference/components/color-picker.md +18 -2
  13. package/agents/reference/components/combobox.md +15 -14
  14. package/agents/reference/components/context-menu.md +16 -5
  15. package/agents/reference/components/date-picker.md +2 -1
  16. package/agents/reference/components/drawer.md +28 -17
  17. package/agents/reference/components/dropdown-menu.md +3 -3
  18. package/agents/reference/components/field.md +13 -13
  19. package/agents/reference/components/form-error-summary.md +11 -1
  20. package/agents/reference/components/input-group.md +1 -0
  21. package/agents/reference/components/input.md +1 -0
  22. package/agents/reference/components/line-chart.md +42 -3
  23. package/agents/reference/components/modal.md +22 -5
  24. package/agents/reference/components/number-field.md +1 -1
  25. package/agents/reference/components/otp-input.md +2 -1
  26. package/agents/reference/components/pagination.md +15 -4
  27. package/agents/reference/components/radio-group.md +8 -2
  28. package/agents/reference/components/rating.md +8 -2
  29. package/agents/reference/components/segmented-control.md +9 -3
  30. package/agents/reference/components/select.md +1 -0
  31. package/agents/reference/components/slider.md +13 -1
  32. package/agents/reference/components/spinner.md +10 -1
  33. package/agents/reference/components/table.md +15 -0
  34. package/agents/reference/components/tabs.md +21 -3
  35. package/agents/reference/components/tags-input.md +15 -1
  36. package/agents/reference/components/toast.md +50 -12
  37. package/agents/reference/components/toggle-group.md +5 -3
  38. package/agents/reference/components/toggle.md +17 -3
  39. package/agents/reference/components/toolbar.md +4 -4
  40. package/agents/reference/components/virtual-scroll.md +32 -4
  41. package/agents/reference/elements/choice.md +20 -7
  42. package/agents/reference/elements/details.md +2 -2
  43. package/agents/reference/elements/popover.md +3 -3
  44. package/dist/components/accordion/Accordion.d.ts +1 -1
  45. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  46. package/dist/components/accordion/Accordion.js +36 -15
  47. package/dist/components/accordion/Accordion.js.map +1 -1
  48. package/dist/components/accordion/index.d.ts +1 -1
  49. package/dist/components/accordion/index.d.ts.map +1 -1
  50. package/dist/components/accordion/index.js.map +1 -1
  51. package/dist/components/accordion/types.d.ts +14 -2
  52. package/dist/components/accordion/types.d.ts.map +1 -1
  53. package/dist/components/alert/Alert.d.ts.map +1 -1
  54. package/dist/components/alert/Alert.js +6 -5
  55. package/dist/components/alert/Alert.js.map +1 -1
  56. package/dist/components/alert/index.d.ts +1 -1
  57. package/dist/components/alert/index.d.ts.map +1 -1
  58. package/dist/components/alert/index.js.map +1 -1
  59. package/dist/components/alert/types.d.ts +6 -0
  60. package/dist/components/alert/types.d.ts.map +1 -1
  61. package/dist/components/alert-modal/AlertModal.d.ts +1 -1
  62. package/dist/components/alert-modal/AlertModal.d.ts.map +1 -1
  63. package/dist/components/alert-modal/AlertModal.js +18 -8
  64. package/dist/components/alert-modal/AlertModal.js.map +1 -1
  65. package/dist/components/alert-modal/AlertModalParts.d.ts.map +1 -1
  66. package/dist/components/alert-modal/AlertModalParts.js +1 -1
  67. package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
  68. package/dist/components/alert-modal/index.d.ts +1 -1
  69. package/dist/components/alert-modal/index.d.ts.map +1 -1
  70. package/dist/components/alert-modal/index.js.map +1 -1
  71. package/dist/components/alert-modal/types.d.ts +23 -7
  72. package/dist/components/alert-modal/types.d.ts.map +1 -1
  73. package/dist/components/aspect-ratio/AspectRatio.d.ts.map +1 -1
  74. package/dist/components/aspect-ratio/AspectRatio.js +5 -5
  75. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
  76. package/dist/components/aspect-ratio/types.d.ts +6 -0
  77. package/dist/components/aspect-ratio/types.d.ts.map +1 -1
  78. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  79. package/dist/components/avatar/Avatar.js +5 -5
  80. package/dist/components/avatar/Avatar.js.map +1 -1
  81. package/dist/components/avatar/types.d.ts +8 -0
  82. package/dist/components/avatar/types.d.ts.map +1 -1
  83. package/dist/components/breadcrumb/Breadcrumb.d.ts +2 -2
  84. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  85. package/dist/components/breadcrumb/Breadcrumb.js +59 -47
  86. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  87. package/dist/components/breadcrumb/index.d.ts +1 -1
  88. package/dist/components/breadcrumb/index.d.ts.map +1 -1
  89. package/dist/components/breadcrumb/index.js.map +1 -1
  90. package/dist/components/breadcrumb/types.d.ts +19 -3
  91. package/dist/components/breadcrumb/types.d.ts.map +1 -1
  92. package/dist/components/candle-chart/CandleChart.d.ts +1 -1
  93. package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
  94. package/dist/components/candle-chart/CandleChart.js +161 -75
  95. package/dist/components/candle-chart/CandleChart.js.map +1 -1
  96. package/dist/components/candle-chart/client/CandleChartClient.d.ts.map +1 -1
  97. package/dist/components/candle-chart/client/CandleChartClient.js +19 -6
  98. package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
  99. package/dist/components/candle-chart/client/index.d.ts +1 -1
  100. package/dist/components/candle-chart/client/index.d.ts.map +1 -1
  101. package/dist/components/candle-chart/client/index.js.map +1 -1
  102. package/dist/components/candle-chart/index.d.ts +1 -1
  103. package/dist/components/candle-chart/index.d.ts.map +1 -1
  104. package/dist/components/candle-chart/index.js.map +1 -1
  105. package/dist/components/candle-chart/types.d.ts +56 -2
  106. package/dist/components/candle-chart/types.d.ts.map +1 -1
  107. package/dist/components/carousel/Carousel.d.ts +2 -2
  108. package/dist/components/carousel/Carousel.d.ts.map +1 -1
  109. package/dist/components/carousel/Carousel.js +2 -1
  110. package/dist/components/carousel/Carousel.js.map +1 -1
  111. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  112. package/dist/components/carousel/CarouselMarkup.js +38 -10
  113. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  114. package/dist/components/carousel/client/CarouselClient.d.ts.map +1 -1
  115. package/dist/components/carousel/client/CarouselClient.js +3 -2
  116. package/dist/components/carousel/client/CarouselClient.js.map +1 -1
  117. package/dist/components/carousel/client/carousel-controls.d.ts.map +1 -1
  118. package/dist/components/carousel/client/carousel-controls.js +2 -2
  119. package/dist/components/carousel/client/carousel-controls.js.map +1 -1
  120. package/dist/components/carousel/fade/FadeCarouselClient.d.ts.map +1 -1
  121. package/dist/components/carousel/fade/FadeCarouselClient.js +3 -2
  122. package/dist/components/carousel/fade/FadeCarouselClient.js.map +1 -1
  123. package/dist/components/carousel/index.d.ts +1 -1
  124. package/dist/components/carousel/index.d.ts.map +1 -1
  125. package/dist/components/carousel/index.js.map +1 -1
  126. package/dist/components/carousel/types.d.ts +18 -2
  127. package/dist/components/carousel/types.d.ts.map +1 -1
  128. package/dist/components/checkbox/Checkbox.d.ts +6 -1
  129. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  130. package/dist/components/checkbox/Checkbox.js +6 -1
  131. package/dist/components/checkbox/Checkbox.js.map +1 -1
  132. package/dist/components/checkbox/index.d.ts +1 -1
  133. package/dist/components/checkbox/index.d.ts.map +1 -1
  134. package/dist/components/checkbox/index.js.map +1 -1
  135. package/dist/components/checkbox/types.d.ts +3 -0
  136. package/dist/components/checkbox/types.d.ts.map +1 -1
  137. package/dist/components/collapsible/Collapsible.d.ts +2 -6
  138. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  139. package/dist/components/collapsible/Collapsible.js +5 -4
  140. package/dist/components/collapsible/Collapsible.js.map +1 -1
  141. package/dist/components/collapsible/index.d.ts +1 -1
  142. package/dist/components/collapsible/index.d.ts.map +1 -1
  143. package/dist/components/collapsible/index.js.map +1 -1
  144. package/dist/components/collapsible/types.d.ts +11 -3
  145. package/dist/components/collapsible/types.d.ts.map +1 -1
  146. package/dist/components/color-picker/ColorPicker.d.ts.map +1 -1
  147. package/dist/components/color-picker/ColorPicker.js +73 -52
  148. package/dist/components/color-picker/ColorPicker.js.map +1 -1
  149. package/dist/components/color-picker/index.d.ts +1 -1
  150. package/dist/components/color-picker/index.d.ts.map +1 -1
  151. package/dist/components/color-picker/index.js.map +1 -1
  152. package/dist/components/color-picker/types.d.ts +20 -2
  153. package/dist/components/color-picker/types.d.ts.map +1 -1
  154. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  155. package/dist/components/combobox/Combobox.js +59 -33
  156. package/dist/components/combobox/Combobox.js.map +1 -1
  157. package/dist/components/combobox/index.d.ts +1 -1
  158. package/dist/components/combobox/index.d.ts.map +1 -1
  159. package/dist/components/combobox/index.js.map +1 -1
  160. package/dist/components/combobox/types.d.ts +13 -8
  161. package/dist/components/combobox/types.d.ts.map +1 -1
  162. package/dist/components/context-menu/ContextMenu.d.ts.map +1 -1
  163. package/dist/components/context-menu/ContextMenu.js +33 -19
  164. package/dist/components/context-menu/ContextMenu.js.map +1 -1
  165. package/dist/components/context-menu/index.d.ts +1 -1
  166. package/dist/components/context-menu/index.d.ts.map +1 -1
  167. package/dist/components/context-menu/index.js.map +1 -1
  168. package/dist/components/context-menu/types.d.ts +10 -9
  169. package/dist/components/context-menu/types.d.ts.map +1 -1
  170. package/dist/components/date-picker/DatePicker.d.ts +1 -1
  171. package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
  172. package/dist/components/date-picker/DatePicker.js +2 -1
  173. package/dist/components/date-picker/DatePicker.js.map +1 -1
  174. package/dist/components/date-picker/types.d.ts +4 -1
  175. package/dist/components/date-picker/types.d.ts.map +1 -1
  176. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  177. package/dist/components/drawer/Drawer.js +17 -13
  178. package/dist/components/drawer/Drawer.js.map +1 -1
  179. package/dist/components/drawer/DrawerNative.d.ts +1 -1
  180. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  181. package/dist/components/drawer/DrawerNative.js +30 -25
  182. package/dist/components/drawer/DrawerNative.js.map +1 -1
  183. package/dist/components/drawer/index.d.ts +1 -1
  184. package/dist/components/drawer/index.d.ts.map +1 -1
  185. package/dist/components/drawer/index.js.map +1 -1
  186. package/dist/components/drawer/types.d.ts +31 -11
  187. package/dist/components/drawer/types.d.ts.map +1 -1
  188. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  189. package/dist/components/dropdown-menu/DropdownMenu.js +34 -25
  190. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  191. package/dist/components/dropdown-menu/DropdownMenuBar.d.ts.map +1 -1
  192. package/dist/components/dropdown-menu/DropdownMenuBar.js +43 -29
  193. package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
  194. package/dist/components/dropdown-menu/types.d.ts +4 -5
  195. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  196. package/dist/components/field/Field.js +7 -7
  197. package/dist/components/field/Field.js.map +1 -1
  198. package/dist/components/field/types.d.ts +14 -14
  199. package/dist/components/field/types.d.ts.map +1 -1
  200. package/dist/components/form-error-summary/FormErrorSummary.d.ts.map +1 -1
  201. package/dist/components/form-error-summary/FormErrorSummary.js +23 -5
  202. package/dist/components/form-error-summary/FormErrorSummary.js.map +1 -1
  203. package/dist/components/form-error-summary/index.d.ts +1 -1
  204. package/dist/components/form-error-summary/index.d.ts.map +1 -1
  205. package/dist/components/form-error-summary/index.js.map +1 -1
  206. package/dist/components/form-error-summary/types.d.ts +9 -0
  207. package/dist/components/form-error-summary/types.d.ts.map +1 -1
  208. package/dist/components/hover-card/HoverCard.d.ts.map +1 -1
  209. package/dist/components/hover-card/HoverCard.js +9 -9
  210. package/dist/components/hover-card/HoverCard.js.map +1 -1
  211. package/dist/components/input/Input.d.ts.map +1 -1
  212. package/dist/components/input/Input.js +2 -0
  213. package/dist/components/input/Input.js.map +1 -1
  214. package/dist/components/input/types.d.ts +3 -0
  215. package/dist/components/input/types.d.ts.map +1 -1
  216. package/dist/components/input-group/InputGroup.d.ts.map +1 -1
  217. package/dist/components/input-group/InputGroup.js +2 -1
  218. package/dist/components/input-group/InputGroup.js.map +1 -1
  219. package/dist/components/input-group/types.d.ts +3 -0
  220. package/dist/components/input-group/types.d.ts.map +1 -1
  221. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.d.ts +2 -2
  222. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.d.ts.map +1 -1
  223. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.js +11 -3
  224. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.js.map +1 -1
  225. package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
  226. package/dist/components/internal/choice-family/ChoiceGroup.js +25 -12
  227. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  228. package/dist/components/internal/choice-family/types.d.ts +19 -1
  229. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  230. package/dist/components/internal/control-size/types.d.ts +3 -0
  231. package/dist/components/internal/control-size/types.d.ts.map +1 -0
  232. package/dist/components/internal/control-size/types.js +1 -0
  233. package/dist/components/internal/control-size/types.js.map +1 -0
  234. package/dist/components/internal/live-chart/types.d.ts +3 -1
  235. package/dist/components/internal/live-chart/types.d.ts.map +1 -1
  236. package/dist/components/internal/live-chart/use-live-chart-window.d.ts.map +1 -1
  237. package/dist/components/internal/live-chart/use-live-chart-window.js +21 -5
  238. package/dist/components/internal/live-chart/use-live-chart-window.js.map +1 -1
  239. package/dist/components/internal/menu/menu-parts.d.ts.map +1 -1
  240. package/dist/components/internal/menu/menu-parts.js +3 -3
  241. package/dist/components/internal/menu/menu-parts.js.map +1 -1
  242. package/dist/components/internal/menu/types.d.ts +1 -0
  243. package/dist/components/internal/menu/types.d.ts.map +1 -1
  244. package/dist/components/internal/menu/use-menu-surface.d.ts.map +1 -1
  245. package/dist/components/internal/menu/use-menu-surface.js +2 -1
  246. package/dist/components/internal/menu/use-menu-surface.js.map +1 -1
  247. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -1
  248. package/dist/components/internal/native-check-control/NativeCheckControl.js +12 -4
  249. package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
  250. package/dist/components/internal/native-check-control/types.d.ts +6 -0
  251. package/dist/components/internal/native-check-control/types.d.ts.map +1 -1
  252. package/dist/components/line-chart/LineChart.d.ts +1 -1
  253. package/dist/components/line-chart/LineChart.d.ts.map +1 -1
  254. package/dist/components/line-chart/LineChart.js +182 -75
  255. package/dist/components/line-chart/LineChart.js.map +1 -1
  256. package/dist/components/line-chart/client/LineChartClient.d.ts.map +1 -1
  257. package/dist/components/line-chart/client/LineChartClient.js +19 -6
  258. package/dist/components/line-chart/client/LineChartClient.js.map +1 -1
  259. package/dist/components/line-chart/client/index.d.ts +1 -1
  260. package/dist/components/line-chart/client/index.d.ts.map +1 -1
  261. package/dist/components/line-chart/client/index.js.map +1 -1
  262. package/dist/components/line-chart/index.d.ts +1 -1
  263. package/dist/components/line-chart/index.d.ts.map +1 -1
  264. package/dist/components/line-chart/index.js.map +1 -1
  265. package/dist/components/line-chart/types.d.ts +47 -2
  266. package/dist/components/line-chart/types.d.ts.map +1 -1
  267. package/dist/components/modal/Modal.d.ts +1 -1
  268. package/dist/components/modal/Modal.d.ts.map +1 -1
  269. package/dist/components/modal/Modal.js +21 -27
  270. package/dist/components/modal/Modal.js.map +1 -1
  271. package/dist/components/modal/ModalAnatomy.js +6 -6
  272. package/dist/components/modal/ModalAnatomy.js.map +1 -1
  273. package/dist/components/modal/ModalParts.js +1 -1
  274. package/dist/components/modal/ModalParts.js.map +1 -1
  275. package/dist/components/modal/client/ModalClientContent.d.ts.map +1 -1
  276. package/dist/components/modal/client/ModalClientContent.js +2 -2
  277. package/dist/components/modal/client/ModalClientContent.js.map +1 -1
  278. package/dist/components/modal/index.d.ts +1 -1
  279. package/dist/components/modal/index.d.ts.map +1 -1
  280. package/dist/components/modal/index.js.map +1 -1
  281. package/dist/components/modal/types.d.ts +26 -4
  282. package/dist/components/modal/types.d.ts.map +1 -1
  283. package/dist/components/number-field/NumberField.d.ts.map +1 -1
  284. package/dist/components/number-field/NumberField.js +13 -11
  285. package/dist/components/number-field/NumberField.js.map +1 -1
  286. package/dist/components/number-field/types.d.ts +1 -1
  287. package/dist/components/number-field/types.d.ts.map +1 -1
  288. package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
  289. package/dist/components/otp-input/OtpInput.js +12 -10
  290. package/dist/components/otp-input/OtpInput.js.map +1 -1
  291. package/dist/components/otp-input/types.d.ts +4 -1
  292. package/dist/components/otp-input/types.d.ts.map +1 -1
  293. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  294. package/dist/components/pagination/Pagination.js +135 -61
  295. package/dist/components/pagination/Pagination.js.map +1 -1
  296. package/dist/components/pagination/PaginationShell.d.ts.map +1 -1
  297. package/dist/components/pagination/PaginationShell.js +5 -6
  298. package/dist/components/pagination/PaginationShell.js.map +1 -1
  299. package/dist/components/pagination/index.d.ts +1 -1
  300. package/dist/components/pagination/index.d.ts.map +1 -1
  301. package/dist/components/pagination/index.js.map +1 -1
  302. package/dist/components/pagination/types.d.ts +12 -3
  303. package/dist/components/pagination/types.d.ts.map +1 -1
  304. package/dist/components/radio-group/RadioGroup.d.ts +1 -1
  305. package/dist/components/radio-group/RadioGroup.d.ts.map +1 -1
  306. package/dist/components/radio-group/RadioGroup.js +5 -1
  307. package/dist/components/radio-group/RadioGroup.js.map +1 -1
  308. package/dist/components/radio-group/index.d.ts +1 -1
  309. package/dist/components/radio-group/index.d.ts.map +1 -1
  310. package/dist/components/radio-group/index.js.map +1 -1
  311. package/dist/components/radio-group/types.d.ts +4 -2
  312. package/dist/components/radio-group/types.d.ts.map +1 -1
  313. package/dist/components/rating/Rating.d.ts +1 -1
  314. package/dist/components/rating/Rating.d.ts.map +1 -1
  315. package/dist/components/rating/Rating.js +5 -1
  316. package/dist/components/rating/Rating.js.map +1 -1
  317. package/dist/components/rating/client/RatingClient.d.ts +1 -1
  318. package/dist/components/rating/client/RatingClient.d.ts.map +1 -1
  319. package/dist/components/rating/client/RatingClient.js +5 -1
  320. package/dist/components/rating/client/RatingClient.js.map +1 -1
  321. package/dist/components/rating/index.d.ts +1 -1
  322. package/dist/components/rating/index.d.ts.map +1 -1
  323. package/dist/components/rating/index.js.map +1 -1
  324. package/dist/components/rating/types.d.ts +8 -1
  325. package/dist/components/rating/types.d.ts.map +1 -1
  326. package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
  327. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
  328. package/dist/components/segmented-control/SegmentedControl.js +9 -3
  329. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  330. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts +1 -1
  331. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts.map +1 -1
  332. package/dist/components/segmented-control/client/SegmentedControlClient.js +9 -3
  333. package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
  334. package/dist/components/segmented-control/index.d.ts +1 -1
  335. package/dist/components/segmented-control/index.d.ts.map +1 -1
  336. package/dist/components/segmented-control/index.js.map +1 -1
  337. package/dist/components/segmented-control/types.d.ts +7 -4
  338. package/dist/components/segmented-control/types.d.ts.map +1 -1
  339. package/dist/components/select/Select.d.ts.map +1 -1
  340. package/dist/components/select/Select.js +2 -0
  341. package/dist/components/select/Select.js.map +1 -1
  342. package/dist/components/select/types.d.ts +3 -0
  343. package/dist/components/select/types.d.ts.map +1 -1
  344. package/dist/components/slider/Slider.d.ts.map +1 -1
  345. package/dist/components/slider/Slider.js +12 -7
  346. package/dist/components/slider/Slider.js.map +1 -1
  347. package/dist/components/slider/client/SliderClient.d.ts.map +1 -1
  348. package/dist/components/slider/client/SliderClient.js +55 -20
  349. package/dist/components/slider/client/SliderClient.js.map +1 -1
  350. package/dist/components/slider/client/index.d.ts +1 -1
  351. package/dist/components/slider/client/index.d.ts.map +1 -1
  352. package/dist/components/slider/client/index.js.map +1 -1
  353. package/dist/components/slider/types.d.ts +15 -0
  354. package/dist/components/slider/types.d.ts.map +1 -1
  355. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  356. package/dist/components/spinner/Spinner.js +12 -4
  357. package/dist/components/spinner/Spinner.js.map +1 -1
  358. package/dist/components/spinner/index.d.ts +1 -1
  359. package/dist/components/spinner/index.d.ts.map +1 -1
  360. package/dist/components/spinner/index.js.map +1 -1
  361. package/dist/components/spinner/types.d.ts +7 -0
  362. package/dist/components/spinner/types.d.ts.map +1 -1
  363. package/dist/components/table/client/TableColumnHeader.d.ts +3 -3
  364. package/dist/components/table/client/TableColumnHeader.d.ts.map +1 -1
  365. package/dist/components/table/client/TableColumnHeader.js +10 -2
  366. package/dist/components/table/client/TableColumnHeader.js.map +1 -1
  367. package/dist/components/table/client/TableSelection.d.ts +3 -3
  368. package/dist/components/table/client/TableSelection.d.ts.map +1 -1
  369. package/dist/components/table/client/TableSelection.js +6 -4
  370. package/dist/components/table/client/TableSelection.js.map +1 -1
  371. package/dist/components/table/client.d.ts +1 -1
  372. package/dist/components/table/client.d.ts.map +1 -1
  373. package/dist/components/table/client.js.map +1 -1
  374. package/dist/components/table/types.d.ts +13 -0
  375. package/dist/components/table/types.d.ts.map +1 -1
  376. package/dist/components/tabs/Tabs.d.ts +1 -1
  377. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  378. package/dist/components/tabs/Tabs.js +12 -2
  379. package/dist/components/tabs/Tabs.js.map +1 -1
  380. package/dist/components/tabs/index.d.ts +1 -1
  381. package/dist/components/tabs/index.d.ts.map +1 -1
  382. package/dist/components/tabs/index.js.map +1 -1
  383. package/dist/components/tabs/types.d.ts +17 -4
  384. package/dist/components/tabs/types.d.ts.map +1 -1
  385. package/dist/components/tags-input/TagsInput.d.ts.map +1 -1
  386. package/dist/components/tags-input/TagsInput.js +45 -11
  387. package/dist/components/tags-input/TagsInput.js.map +1 -1
  388. package/dist/components/tags-input/index.d.ts +1 -1
  389. package/dist/components/tags-input/index.d.ts.map +1 -1
  390. package/dist/components/tags-input/index.js.map +1 -1
  391. package/dist/components/tags-input/types.d.ts +12 -4
  392. package/dist/components/tags-input/types.d.ts.map +1 -1
  393. package/dist/components/toast/Toast.d.ts +1 -1
  394. package/dist/components/toast/Toast.d.ts.map +1 -1
  395. package/dist/components/toast/Toast.js +74 -35
  396. package/dist/components/toast/Toast.js.map +1 -1
  397. package/dist/components/toast/ToastElements.d.ts.map +1 -1
  398. package/dist/components/toast/ToastElements.js +36 -12
  399. package/dist/components/toast/ToastElements.js.map +1 -1
  400. package/dist/components/toast/index.d.ts +1 -1
  401. package/dist/components/toast/index.d.ts.map +1 -1
  402. package/dist/components/toast/index.js.map +1 -1
  403. package/dist/components/toast/types.d.ts +32 -26
  404. package/dist/components/toast/types.d.ts.map +1 -1
  405. package/dist/components/toggle/Toggle.d.ts +1 -1
  406. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  407. package/dist/components/toggle/Toggle.js +13 -4
  408. package/dist/components/toggle/Toggle.js.map +1 -1
  409. package/dist/components/toggle/index.d.ts +1 -1
  410. package/dist/components/toggle/index.d.ts.map +1 -1
  411. package/dist/components/toggle/index.js.map +1 -1
  412. package/dist/components/toggle/types.d.ts +12 -3
  413. package/dist/components/toggle/types.d.ts.map +1 -1
  414. package/dist/components/toggle-group/ToggleGroup.d.ts +1 -1
  415. package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
  416. package/dist/components/toggle-group/ToggleGroup.js +5 -1
  417. package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
  418. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts +1 -1
  419. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts.map +1 -1
  420. package/dist/components/toggle-group/client/ToggleGroupClient.js +15 -1
  421. package/dist/components/toggle-group/client/ToggleGroupClient.js.map +1 -1
  422. package/dist/components/toggle-group/index.d.ts +1 -1
  423. package/dist/components/toggle-group/index.d.ts.map +1 -1
  424. package/dist/components/toggle-group/index.js.map +1 -1
  425. package/dist/components/toggle-group/types.d.ts +4 -4
  426. package/dist/components/toggle-group/types.d.ts.map +1 -1
  427. package/dist/components/toolbar/Toolbar.d.ts +3 -12
  428. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  429. package/dist/components/toolbar/Toolbar.js +22 -2
  430. package/dist/components/toolbar/Toolbar.js.map +1 -1
  431. package/dist/components/toolbar/types.d.ts +5 -5
  432. package/dist/components/toolbar/types.d.ts.map +1 -1
  433. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  434. package/dist/components/tooltip/Tooltip.js +4 -4
  435. package/dist/components/tooltip/Tooltip.js.map +1 -1
  436. package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
  437. package/dist/components/virtual-scroll/VirtualScroll.js +99 -44
  438. package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
  439. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts +3 -14
  440. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts.map +1 -1
  441. package/dist/components/virtual-scroll/VirtualScrollRowShell.js +6 -3
  442. package/dist/components/virtual-scroll/VirtualScrollRowShell.js.map +1 -1
  443. package/dist/components/virtual-scroll/index.d.ts +1 -1
  444. package/dist/components/virtual-scroll/index.d.ts.map +1 -1
  445. package/dist/components/virtual-scroll/index.js.map +1 -1
  446. package/dist/components/virtual-scroll/types.d.ts +23 -3
  447. package/dist/components/virtual-scroll/types.d.ts.map +1 -1
  448. package/dist/components/virtual-scroll/types.js.map +1 -1
  449. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.d.ts +3 -0
  450. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.d.ts.map +1 -1
  451. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.js +11 -2
  452. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.js.map +1 -1
  453. package/dist/core/class-names.d.ts +3 -0
  454. package/dist/core/class-names.d.ts.map +1 -0
  455. package/dist/core/class-names.js +7 -0
  456. package/dist/core/class-names.js.map +1 -0
  457. package/dist/core/part-names.d.ts +8 -0
  458. package/dist/core/part-names.d.ts.map +1 -0
  459. package/dist/core/part-names.js +111 -0
  460. package/dist/core/part-names.js.map +1 -0
  461. package/dist/core/polymorphic.d.ts +10 -3
  462. package/dist/core/polymorphic.d.ts.map +1 -1
  463. package/dist/core/render-native-invoker.d.ts +1 -0
  464. package/dist/core/render-native-invoker.d.ts.map +1 -1
  465. package/dist/core/render-native-invoker.js +6 -6
  466. package/dist/core/render-native-invoker.js.map +1 -1
  467. package/dist/core/roving-focus.d.ts +2 -2
  468. package/dist/core/roving-focus.d.ts.map +1 -1
  469. package/dist/core/roving-focus.js +6 -7
  470. package/dist/core/roving-focus.js.map +1 -1
  471. package/dist/core/slot-props.d.ts +21 -0
  472. package/dist/core/slot-props.d.ts.map +1 -0
  473. package/dist/core/slot-props.js +49 -0
  474. package/dist/core/slot-props.js.map +1 -0
  475. package/dist/core/use-popover.d.ts +2 -1
  476. package/dist/core/use-popover.d.ts.map +1 -1
  477. package/dist/core/use-popover.js +3 -1
  478. package/dist/core/use-popover.js.map +1 -1
  479. package/dist/elements/choice/Choice.d.ts.map +1 -1
  480. package/dist/elements/choice/Choice.js +13 -10
  481. package/dist/elements/choice/Choice.js.map +1 -1
  482. package/dist/elements/choice/index.d.ts +1 -1
  483. package/dist/elements/choice/index.d.ts.map +1 -1
  484. package/dist/elements/choice/index.js.map +1 -1
  485. package/dist/elements/choice/types.d.ts +18 -10
  486. package/dist/elements/choice/types.d.ts.map +1 -1
  487. package/dist/elements/details/Details.d.ts.map +1 -1
  488. package/dist/elements/details/Details.js +4 -5
  489. package/dist/elements/details/Details.js.map +1 -1
  490. package/dist/elements/details/types.d.ts +3 -3
  491. package/dist/elements/details/types.d.ts.map +1 -1
  492. package/dist/elements/dialog/Dialog.d.ts.map +1 -1
  493. package/dist/elements/dialog/Dialog.js +1 -1
  494. package/dist/elements/dialog/Dialog.js.map +1 -1
  495. package/dist/elements/invoker/Invoker.js +3 -3
  496. package/dist/elements/invoker/Invoker.js.map +1 -1
  497. package/dist/elements/popover/Popover.d.ts.map +1 -1
  498. package/dist/elements/popover/Popover.js +3 -3
  499. package/dist/elements/popover/Popover.js.map +1 -1
  500. package/dist/elements/popover/types.d.ts +6 -4
  501. package/dist/elements/popover/types.d.ts.map +1 -1
  502. package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -2
  503. package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -1
  504. package/dist/styles/index.css +1 -1
  505. package/dist/styles/tailwind.css +17 -16
  506. package/dist/styles/tokens.css +1 -1
  507. package/package.json +1 -1
  508. package/skills/uiify/references/elements/accordion.md +1 -1
  509. package/skills/uiify/references/elements/aspect-ratio.md +1 -1
  510. package/skills/uiify/references/elements/breadcrumb.md +1 -0
  511. package/skills/uiify/references/elements/checkbox.md +1 -1
  512. package/skills/uiify/references/elements/color-picker.md +1 -1
  513. package/skills/uiify/references/elements/combobox.md +1 -1
  514. package/skills/uiify/references/elements/context-menu.md +1 -1
  515. package/skills/uiify/references/elements/dropdown-menu.md +1 -1
  516. package/skills/uiify/references/elements/field.md +1 -1
  517. package/skills/uiify/references/elements/form-error-summary.md +5 -0
  518. package/skills/uiify/references/elements/pagination.md +1 -1
  519. package/skills/uiify/references/elements/radio-group.md +1 -0
  520. package/skills/uiify/references/elements/rating.md +1 -1
  521. package/skills/uiify/references/elements/segmented-control.md +1 -0
  522. package/skills/uiify/references/elements/spinner.md +1 -1
  523. package/skills/uiify/references/elements/table.md +1 -1
  524. package/skills/uiify/references/elements/tabs.md +1 -1
  525. package/skills/uiify/references/elements/tags-input.md +1 -1
  526. package/skills/uiify/references/elements/toast.md +1 -0
  527. package/skills/uiify/references/elements/toggle-group.md +1 -0
  528. package/skills/uiify/references/elements/toggle.md +1 -0
@@ -1,5 +1,47 @@
1
- import type { ElementType, ReactNode } from "react";
1
+ import type { ElementType, DOMAttributes, ReactNode, Ref } from "react";
2
2
  import type { RenderableProps } from "@gunkin/uiify/core/render";
3
+ import type { SlotProps } from "../../core/slot-props.js";
4
+ type LineChartIndexedSlotProps<TProps extends object> = TProps & {
5
+ readonly byItemIndex?: Readonly<Record<number, TProps>>;
6
+ };
7
+ type LineChartRepeatedSlotProps<TTag extends ElementType> = LineChartIndexedSlotProps<SlotProps<TTag>>;
8
+ type LineChartPointElementProps = Omit<SlotProps<"div">, keyof DOMAttributes<HTMLElement> | "ref"> & Omit<DOMAttributes<HTMLElement>, "children" | "dangerouslySetInnerHTML"> & {
9
+ readonly ref?: Ref<HTMLElement> | undefined;
10
+ };
11
+ export interface LineChartSlotProps {
12
+ readonly caption?: SlotProps<"figcaption">;
13
+ readonly readout?: SlotProps<"div">;
14
+ readonly readoutTime?: SlotProps<"span">;
15
+ readonly readoutValue?: SlotProps<"span">;
16
+ readonly plot?: SlotProps<"div">;
17
+ readonly scrollViewport?: SlotProps<"div">;
18
+ readonly canvas?: SlotProps<"div">;
19
+ readonly viewport?: SlotProps<"div">;
20
+ readonly points?: SlotProps<"ol">;
21
+ readonly point?: LineChartIndexedSlotProps<LineChartPointElementProps>;
22
+ readonly pointHit?: LineChartRepeatedSlotProps<"button">;
23
+ readonly crosshair?: SlotProps<"div">;
24
+ readonly crosshairMarker?: SlotProps<"span">;
25
+ readonly timeViewport?: SlotProps<"div">;
26
+ readonly timeAxis?: SlotProps<"ol">;
27
+ readonly timeAxisLabel?: LineChartRepeatedSlotProps<"li">;
28
+ readonly crosshairTime?: SlotProps<"li">;
29
+ readonly valueAxis?: SlotProps<"ol">;
30
+ readonly valueAxisLabel?: LineChartRepeatedSlotProps<"li">;
31
+ readonly crosshairValue?: SlotProps<"li">;
32
+ readonly liveScrollport?: SlotProps<"div">;
33
+ readonly liveSpacer?: SlotProps<"div">;
34
+ readonly livePointRow?: LineChartRepeatedSlotProps<"div">;
35
+ readonly dataTable?: SlotProps<"table">;
36
+ readonly dataTableHead?: SlotProps<"thead">;
37
+ readonly dataTableHeaderRow?: SlotProps<"tr">;
38
+ readonly dataTableTimeHeader?: SlotProps<"th">;
39
+ readonly dataTableValueHeader?: SlotProps<"th">;
40
+ readonly dataTableBody?: SlotProps<"tbody">;
41
+ readonly dataTableRow?: LineChartRepeatedSlotProps<"tr">;
42
+ readonly dataTableTimeCell?: LineChartRepeatedSlotProps<"th">;
43
+ readonly dataTableValueCell?: LineChartRepeatedSlotProps<"td">;
44
+ }
3
45
  export interface LineChartData {
4
46
  readonly time: string | number;
5
47
  readonly value: number;
@@ -15,7 +57,7 @@ export interface LineChartPointerPosition {
15
57
  readonly offsetY: number;
16
58
  }
17
59
  export interface LineChartOwnProps {
18
- readonly "aria-label"?: string;
60
+ readonly "aria-label"?: string | undefined;
19
61
  readonly activePointIndex?: number;
20
62
  readonly cursorY?: number;
21
63
  readonly data: readonly LineChartData[];
@@ -26,6 +68,7 @@ export interface LineChartOwnProps {
26
68
  readonly onPointPointerLeave?: () => void;
27
69
  readonly onPointPointerMove?: (position: LineChartPointerPosition) => void;
28
70
  readonly selectedPointIndex?: number;
71
+ readonly slotProps?: LineChartSlotProps;
29
72
  readonly xAxis?: readonly LineChartAxisLabel[];
30
73
  readonly yAxis?: readonly LineChartAxisLabel[];
31
74
  }
@@ -71,5 +114,7 @@ export interface LineChartPointProps {
71
114
  readonly onPointClick?: ((index: number) => void) | undefined;
72
115
  readonly onPointPointerLeave?: (() => void) | undefined;
73
116
  readonly onPointPointerMove?: ((position: LineChartPointerPosition) => void) | undefined;
117
+ readonly slotProps?: Pick<LineChartSlotProps, "point" | "pointHit"> | undefined;
74
118
  }
119
+ export {};
75
120
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/line-chart/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/line-chart/types.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import type { ModalProps } from "./types.js";
6
6
  * Controlled or initially open dialogs use `ModalClientContent` from
7
7
  * `@gunkin/uiify/components/modal/client`.
8
8
  */
9
- export declare function Modal({ id, trigger, title, description, children, closeLabel, labels, footer, className, align, backdrop, dismiss, size, }: ModalProps): ReactElement;
9
+ export declare function Modal({ id, trigger, title, description, children, closeLabel, labels, footer, slotProps, align, backdrop, dismiss, size, ...rootProps }: ModalProps): ReactElement;
10
10
  export declare namespace Modal {
11
11
  var displayName: string;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,OAAO,CAAC;AAYrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAyB7C;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,EACpB,EAAE,EACF,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,UAAU,EACV,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAI,GACL,EAAE,UAAU,GAAG,YAAY,CAiC3B;yBA/Ce,KAAK"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,OAAO,CAAC;AAYrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS7C;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,EACpB,EAAE,EACF,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,UAAU,EACV,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,GAAG,SAAS,EACb,EAAE,UAAU,GAAG,YAAY,CA0C3B;yBAzDe,KAAK"}
@@ -11,21 +11,6 @@ import {
11
11
  ModalTrigger
12
12
  } from "./ModalParts.js";
13
13
  const DEFAULT_MODAL_LABELS = { close: "Close" };
14
- const CLOSE_ICON = /* @__PURE__ */ jsx(
15
- "svg",
16
- {
17
- "aria-hidden": "true",
18
- fill: "none",
19
- focusable: "false",
20
- height: "14",
21
- stroke: "currentColor",
22
- strokeLinecap: "round",
23
- strokeWidth: "1.75",
24
- viewBox: "0 0 16 16",
25
- width: "14",
26
- children: /* @__PURE__ */ jsx("path", { d: "M3 3l10 10M13 3L3 13" })
27
- }
28
- );
29
14
  function isAbsent(node) {
30
15
  return node === null || node === void 0;
31
16
  }
@@ -38,17 +23,18 @@ function Modal({
38
23
  closeLabel,
39
24
  labels,
40
25
  footer,
41
- className,
26
+ slotProps,
42
27
  align,
43
28
  backdrop,
44
29
  dismiss,
45
- size
30
+ size,
31
+ ...rootProps
46
32
  }) {
47
33
  const titleId = `${id}-title`;
48
34
  const descriptionId = `${id}-description`;
49
35
  const effectiveCloseLabel = closeLabel ?? labels?.close ?? DEFAULT_MODAL_LABELS.close;
50
- return /* @__PURE__ */ jsxs("div", { "data-part": "root", "data-uiify-modal": "", children: [
51
- /* @__PURE__ */ jsx(ModalTrigger, { target: id, children: trigger }),
36
+ return /* @__PURE__ */ jsxs("div", { "data-part": "root", "data-uiify-modal": "", ...rootProps, children: [
37
+ /* @__PURE__ */ jsx(ModalTrigger, { target: id, ...slotProps?.trigger, children: trigger }),
52
38
  /* @__PURE__ */ jsxs(
53
39
  ModalContent,
54
40
  {
@@ -56,19 +42,27 @@ function Modal({
56
42
  "aria-describedby": isAbsent(description) ? void 0 : descriptionId,
57
43
  "aria-labelledby": titleId,
58
44
  backdrop,
59
- className,
60
45
  dismiss,
61
46
  id,
62
47
  size,
48
+ ...slotProps?.content,
63
49
  children: [
64
- /* @__PURE__ */ jsx(ModalGrabber, {}),
65
- /* @__PURE__ */ jsxs(ModalHeader, { children: [
66
- /* @__PURE__ */ jsx(ModalTitle, { id: titleId, children: title }),
67
- isAbsent(description) ? null : /* @__PURE__ */ jsx(ModalDescription, { id: descriptionId, children: description }),
68
- /* @__PURE__ */ jsx(ModalClose, { "aria-label": effectiveCloseLabel, target: id, children: CLOSE_ICON })
50
+ /* @__PURE__ */ jsx(ModalGrabber, { ...slotProps?.grabber }),
51
+ /* @__PURE__ */ jsxs(ModalHeader, { ...slotProps?.header, children: [
52
+ /* @__PURE__ */ jsx(ModalTitle, { id: titleId, ...slotProps?.title, children: title }),
53
+ isAbsent(description) ? null : /* @__PURE__ */ jsx(ModalDescription, { id: descriptionId, ...slotProps?.description, children: description }),
54
+ /* @__PURE__ */ jsx(
55
+ ModalClose,
56
+ {
57
+ "aria-label": effectiveCloseLabel,
58
+ "data-size": "icon",
59
+ target: id,
60
+ ...slotProps?.close
61
+ }
62
+ )
69
63
  ] }),
70
- isAbsent(children) ? null : /* @__PURE__ */ jsx(ModalBody, { children }),
71
- isAbsent(footer) ? null : /* @__PURE__ */ jsx(ModalFooter, { children: footer })
64
+ isAbsent(children) ? null : /* @__PURE__ */ jsx(ModalBody, { ...slotProps?.body, children }),
65
+ isAbsent(footer) ? null : /* @__PURE__ */ jsx(ModalFooter, { ...slotProps?.footer, children: footer })
72
66
  ]
73
67
  }
74
68
  )
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/modal/Modal.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from \"react\";\nimport {\n ModalBody,\n ModalClose,\n ModalContent,\n ModalDescription,\n ModalFooter,\n ModalGrabber,\n ModalHeader,\n ModalTitle,\n ModalTrigger,\n} from \"./ModalParts.js\";\nimport type { ModalProps } from \"./types.js\";\n\nconst DEFAULT_MODAL_LABELS = { close: \"Close\" } as const;\n\nconst CLOSE_ICON = (\n <svg\n aria-hidden=\"true\"\n fill=\"none\"\n focusable=\"false\"\n height=\"14\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeWidth=\"1.75\"\n viewBox=\"0 0 16 16\"\n width=\"14\"\n >\n <path d=\"M3 3l10 10M13 3L3 13\" />\n </svg>\n);\n\n/** `null` and `undefined` both mean \"not given\": no empty part, no dangling `aria-describedby`. */\nfunction isAbsent(node: ReactNode): node is null | undefined {\n return node === null || node === undefined;\n}\n\n/**\n * Convenience shell over the native parts: one trigger and one modal `<dialog>`\n * with a header (title, description, close icon), a body and an optional footer.\n * Controlled or initially open dialogs use `ModalClientContent` from\n * `@gunkin/uiify/components/modal/client`.\n */\nexport function Modal({\n id,\n trigger,\n title,\n description,\n children,\n closeLabel,\n labels,\n footer,\n className,\n align,\n backdrop,\n dismiss,\n size,\n}: ModalProps): ReactElement {\n const titleId = `${id}-title`;\n const descriptionId = `${id}-description`;\n const effectiveCloseLabel = closeLabel ?? labels?.close ?? DEFAULT_MODAL_LABELS.close;\n\n return (\n <div data-part=\"root\" data-uiify-modal=\"\">\n <ModalTrigger target={id}>{trigger}</ModalTrigger>\n <ModalContent\n align={align}\n aria-describedby={isAbsent(description) ? undefined : descriptionId}\n aria-labelledby={titleId}\n backdrop={backdrop}\n className={className}\n dismiss={dismiss}\n id={id}\n size={size}\n >\n <ModalGrabber />\n <ModalHeader>\n <ModalTitle id={titleId}>{title}</ModalTitle>\n {isAbsent(description) ? null : (\n <ModalDescription id={descriptionId}>{description}</ModalDescription>\n )}\n <ModalClose aria-label={effectiveCloseLabel} target={id}>\n {CLOSE_ICON}\n </ModalClose>\n </ModalHeader>\n {isAbsent(children) ? null : <ModalBody>{children}</ModalBody>}\n {isAbsent(footer) ? null : <ModalFooter>{footer}</ModalFooter>}\n </ModalContent>\n </div>\n );\n}\nModal.displayName = \"Modal\";\n"],"mappings":"AA4BI,cAgDI,YAhDJ;AA3BJ;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,MAAM,uBAAuB,EAAE,OAAO,QAAQ;AAE9C,MAAM,aACJ;AAAA,EAAC;AAAA;AAAA,IACC,eAAY;AAAA,IACZ,MAAK;AAAA,IACL,WAAU;AAAA,IACV,QAAO;AAAA,IACP,QAAO;AAAA,IACP,eAAc;AAAA,IACd,aAAY;AAAA,IACZ,SAAQ;AAAA,IACR,OAAM;AAAA,IAEN,8BAAC,UAAK,GAAE,wBAAuB;AAAA;AACjC;AAIF,SAAS,SAAS,MAA2C;AAC3D,SAAO,SAAS,QAAQ,SAAS;AACnC;AAQO,SAAS,MAAM;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA6B;AAC3B,QAAM,UAAU,GAAG,EAAE;AACrB,QAAM,gBAAgB,GAAG,EAAE;AAC3B,QAAM,sBAAsB,cAAc,QAAQ,SAAS,qBAAqB;AAEhF,SACE,qBAAC,SAAI,aAAU,QAAO,oBAAiB,IACrC;AAAA,wBAAC,gBAAa,QAAQ,IAAK,mBAAQ;AAAA,IACnC;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,oBAAkB,SAAS,WAAW,IAAI,SAAY;AAAA,QACtD,mBAAiB;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QAEA;AAAA,8BAAC,gBAAa;AAAA,UACd,qBAAC,eACC;AAAA,gCAAC,cAAW,IAAI,SAAU,iBAAM;AAAA,YAC/B,SAAS,WAAW,IAAI,OACvB,oBAAC,oBAAiB,IAAI,eAAgB,uBAAY;AAAA,YAEpD,oBAAC,cAAW,cAAY,qBAAqB,QAAQ,IAClD,sBACH;AAAA,aACF;AAAA,UACC,SAAS,QAAQ,IAAI,OAAO,oBAAC,aAAW,UAAS;AAAA,UACjD,SAAS,MAAM,IAAI,OAAO,oBAAC,eAAa,kBAAO;AAAA;AAAA;AAAA,IAClD;AAAA,KACF;AAEJ;AACA,MAAM,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/modal/Modal.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from \"react\";\nimport {\n ModalBody,\n ModalClose,\n ModalContent,\n ModalDescription,\n ModalFooter,\n ModalGrabber,\n ModalHeader,\n ModalTitle,\n ModalTrigger,\n} from \"./ModalParts.js\";\nimport type { ModalProps } from \"./types.js\";\n\nconst DEFAULT_MODAL_LABELS = { close: \"Close\" } as const;\n\n/** `null` and `undefined` both mean \"not given\": no empty part, no dangling `aria-describedby`. */\nfunction isAbsent(node: ReactNode): node is null | undefined {\n return node === null || node === undefined;\n}\n\n/**\n * Convenience shell over the native parts: one trigger and one modal `<dialog>`\n * with a header (title, description, close icon), a body and an optional footer.\n * Controlled or initially open dialogs use `ModalClientContent` from\n * `@gunkin/uiify/components/modal/client`.\n */\nexport function Modal({\n id,\n trigger,\n title,\n description,\n children,\n closeLabel,\n labels,\n footer,\n slotProps,\n align,\n backdrop,\n dismiss,\n size,\n ...rootProps\n}: ModalProps): ReactElement {\n const titleId = `${id}-title`;\n const descriptionId = `${id}-description`;\n const effectiveCloseLabel = closeLabel ?? labels?.close ?? DEFAULT_MODAL_LABELS.close;\n\n return (\n <div data-part=\"root\" data-uiify-modal=\"\" {...rootProps}>\n <ModalTrigger target={id} {...slotProps?.trigger}>\n {trigger}\n </ModalTrigger>\n <ModalContent\n align={align}\n aria-describedby={isAbsent(description) ? undefined : descriptionId}\n aria-labelledby={titleId}\n backdrop={backdrop}\n dismiss={dismiss}\n id={id}\n size={size}\n {...slotProps?.content}\n >\n <ModalGrabber {...slotProps?.grabber} />\n <ModalHeader {...slotProps?.header}>\n <ModalTitle id={titleId} {...slotProps?.title}>\n {title}\n </ModalTitle>\n {isAbsent(description) ? null : (\n <ModalDescription id={descriptionId} {...slotProps?.description}>\n {description}\n </ModalDescription>\n )}\n <ModalClose\n aria-label={effectiveCloseLabel}\n data-size=\"icon\"\n target={id}\n {...slotProps?.close}\n />\n </ModalHeader>\n {isAbsent(children) ? null : <ModalBody {...slotProps?.body}>{children}</ModalBody>}\n {isAbsent(footer) ? null : <ModalFooter {...slotProps?.footer}>{footer}</ModalFooter>}\n </ModalContent>\n </div>\n );\n}\nModal.displayName = \"Modal\";\n"],"mappings":"AAiDM,cAcE,YAdF;AAhDN;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,MAAM,uBAAuB,EAAE,OAAO,QAAQ;AAG9C,SAAS,SAAS,MAA2C;AAC3D,SAAO,SAAS,QAAQ,SAAS;AACnC;AAQO,SAAS,MAAM;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA6B;AAC3B,QAAM,UAAU,GAAG,EAAE;AACrB,QAAM,gBAAgB,GAAG,EAAE;AAC3B,QAAM,sBAAsB,cAAc,QAAQ,SAAS,qBAAqB;AAEhF,SACE,qBAAC,SAAI,aAAU,QAAO,oBAAiB,IAAI,GAAG,WAC5C;AAAA,wBAAC,gBAAa,QAAQ,IAAK,GAAG,WAAW,SACtC,mBACH;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,oBAAkB,SAAS,WAAW,IAAI,SAAY;AAAA,QACtD,mBAAiB;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG,WAAW;AAAA,QAEf;AAAA,8BAAC,gBAAc,GAAG,WAAW,SAAS;AAAA,UACtC,qBAAC,eAAa,GAAG,WAAW,QAC1B;AAAA,gCAAC,cAAW,IAAI,SAAU,GAAG,WAAW,OACrC,iBACH;AAAA,YACC,SAAS,WAAW,IAAI,OACvB,oBAAC,oBAAiB,IAAI,eAAgB,GAAG,WAAW,aACjD,uBACH;AAAA,YAEF;AAAA,cAAC;AAAA;AAAA,gBACC,cAAY;AAAA,gBACZ,aAAU;AAAA,gBACV,QAAQ;AAAA,gBACP,GAAG,WAAW;AAAA;AAAA,YACjB;AAAA,aACF;AAAA,UACC,SAAS,QAAQ,IAAI,OAAO,oBAAC,aAAW,GAAG,WAAW,MAAO,UAAS;AAAA,UACtE,SAAS,MAAM,IAAI,OAAO,oBAAC,eAAa,GAAG,WAAW,QAAS,kBAAO;AAAA;AAAA;AAAA,IACzE;AAAA,KACF;AAEJ;AACA,MAAM,cAAc;","names":[]}
@@ -1,26 +1,26 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  function ModalHeader(props) {
3
- return /* @__PURE__ */ jsx("div", { ...props, "data-part": "header", "data-uiify-modal": "" });
3
+ return /* @__PURE__ */ jsx("div", { "data-part": "header", "data-uiify-modal": "", ...props });
4
4
  }
5
5
  ModalHeader.displayName = "ModalHeader";
6
6
  function ModalTitle(props) {
7
- return /* @__PURE__ */ jsx("h2", { ...props, "data-part": "title", "data-uiify-modal": "" });
7
+ return /* @__PURE__ */ jsx("h2", { "data-part": "title", "data-uiify-modal": "", ...props });
8
8
  }
9
9
  ModalTitle.displayName = "ModalTitle";
10
10
  function ModalDescription(props) {
11
- return /* @__PURE__ */ jsx("p", { ...props, "data-part": "description", "data-uiify-modal": "" });
11
+ return /* @__PURE__ */ jsx("p", { "data-part": "description", "data-uiify-modal": "", ...props });
12
12
  }
13
13
  ModalDescription.displayName = "ModalDescription";
14
14
  function ModalBody(props) {
15
- return /* @__PURE__ */ jsx("div", { ...props, "data-part": "body", "data-uiify-modal": "" });
15
+ return /* @__PURE__ */ jsx("div", { "data-part": "body", "data-uiify-modal": "", ...props });
16
16
  }
17
17
  ModalBody.displayName = "ModalBody";
18
18
  function ModalFooter(props) {
19
- return /* @__PURE__ */ jsx("div", { ...props, "data-part": "footer", "data-uiify-modal": "" });
19
+ return /* @__PURE__ */ jsx("div", { "data-part": "footer", "data-uiify-modal": "", ...props });
20
20
  }
21
21
  ModalFooter.displayName = "ModalFooter";
22
22
  function ModalGrabber(props) {
23
- return /* @__PURE__ */ jsx("div", { ...props, "aria-hidden": "true", "data-part": "grabber", "data-uiify-modal": "" });
23
+ return /* @__PURE__ */ jsx("div", { "aria-hidden": "true", "data-part": "grabber", "data-uiify-modal": "", ...props });
24
24
  }
25
25
  ModalGrabber.displayName = "ModalGrabber";
26
26
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/modal/ModalAnatomy.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport type {\n ModalBodyProps,\n ModalDescriptionProps,\n ModalFooterProps,\n ModalGrabberProps,\n ModalHeaderProps,\n ModalTitleProps,\n} from \"./types.js\";\n\n// Kept apart from ModalParts.tsx: each `displayName` assignment is a top-level side effect, so\n// parts sharing a module with ModalTrigger/ModalContent/ModalClose would ship with them even\n// when unused. As their own module, a bundler drops them whole, because package.json declares\n// `\"sideEffects\": [\"**/*.css\"]`; widening that field would bring the unused parts back.\n\n/** Pinned top row: title, description and the close control. */\nexport function ModalHeader(props: ModalHeaderProps): ReactElement {\n return <div {...props} data-part=\"header\" data-uiify-modal=\"\" />;\n}\nModalHeader.displayName = \"ModalHeader\";\n\n/** Accessible name of the dialog; reference its `id` from `aria-labelledby`. */\nexport function ModalTitle(props: ModalTitleProps): ReactElement {\n return <h2 {...props} data-part=\"title\" data-uiify-modal=\"\" />;\n}\nModalTitle.displayName = \"ModalTitle\";\n\n/** Supporting text; reference its `id` from `aria-describedby`. */\nexport function ModalDescription(props: ModalDescriptionProps): ReactElement {\n return <p {...props} data-part=\"description\" data-uiify-modal=\"\" />;\n}\nModalDescription.displayName = \"ModalDescription\";\n\n/** The scrolling region between header and footer. */\nexport function ModalBody(props: ModalBodyProps): ReactElement {\n return <div {...props} data-part=\"body\" data-uiify-modal=\"\" />;\n}\nModalBody.displayName = \"ModalBody\";\n\n/** Actions row pinned under the body. */\nexport function ModalFooter(props: ModalFooterProps): ReactElement {\n return <div {...props} data-part=\"footer\" data-uiify-modal=\"\" />;\n}\nModalFooter.displayName = \"ModalFooter\";\n\n/** Decorative drag handle shown on the mobile sheet; the swipe enhancement starts here. */\nexport function ModalGrabber(props: ModalGrabberProps): ReactElement {\n return <div {...props} aria-hidden=\"true\" data-part=\"grabber\" data-uiify-modal=\"\" />;\n}\nModalGrabber.displayName = \"ModalGrabber\";\n"],"mappings":"AAiBS;AADF,SAAS,YAAY,OAAuC;AACjE,SAAO,oBAAC,SAAK,GAAG,OAAO,aAAU,UAAS,oBAAiB,IAAG;AAChE;AACA,YAAY,cAAc;AAGnB,SAAS,WAAW,OAAsC;AAC/D,SAAO,oBAAC,QAAI,GAAG,OAAO,aAAU,SAAQ,oBAAiB,IAAG;AAC9D;AACA,WAAW,cAAc;AAGlB,SAAS,iBAAiB,OAA4C;AAC3E,SAAO,oBAAC,OAAG,GAAG,OAAO,aAAU,eAAc,oBAAiB,IAAG;AACnE;AACA,iBAAiB,cAAc;AAGxB,SAAS,UAAU,OAAqC;AAC7D,SAAO,oBAAC,SAAK,GAAG,OAAO,aAAU,QAAO,oBAAiB,IAAG;AAC9D;AACA,UAAU,cAAc;AAGjB,SAAS,YAAY,OAAuC;AACjE,SAAO,oBAAC,SAAK,GAAG,OAAO,aAAU,UAAS,oBAAiB,IAAG;AAChE;AACA,YAAY,cAAc;AAGnB,SAAS,aAAa,OAAwC;AACnE,SAAO,oBAAC,SAAK,GAAG,OAAO,eAAY,QAAO,aAAU,WAAU,oBAAiB,IAAG;AACpF;AACA,aAAa,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/modal/ModalAnatomy.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport type {\n ModalBodyProps,\n ModalDescriptionProps,\n ModalFooterProps,\n ModalGrabberProps,\n ModalHeaderProps,\n ModalTitleProps,\n} from \"./types.js\";\n\n// Kept apart from ModalParts.tsx: each `displayName` assignment is a top-level side effect, so\n// parts sharing a module with ModalTrigger/ModalContent/ModalClose would ship with them even\n// when unused. As their own module, a bundler drops them whole, because package.json declares\n// `\"sideEffects\": [\"**/*.css\"]`; widening that field would bring the unused parts back.\n\n/** Pinned top row: title, description and the close control. */\nexport function ModalHeader(props: ModalHeaderProps): ReactElement {\n return <div data-part=\"header\" data-uiify-modal=\"\" {...props} />;\n}\nModalHeader.displayName = \"ModalHeader\";\n\n/** Accessible name of the dialog; reference its `id` from `aria-labelledby`. */\nexport function ModalTitle(props: ModalTitleProps): ReactElement {\n return <h2 data-part=\"title\" data-uiify-modal=\"\" {...props} />;\n}\nModalTitle.displayName = \"ModalTitle\";\n\n/** Supporting text; reference its `id` from `aria-describedby`. */\nexport function ModalDescription(props: ModalDescriptionProps): ReactElement {\n return <p data-part=\"description\" data-uiify-modal=\"\" {...props} />;\n}\nModalDescription.displayName = \"ModalDescription\";\n\n/** The scrolling region between header and footer. */\nexport function ModalBody(props: ModalBodyProps): ReactElement {\n return <div data-part=\"body\" data-uiify-modal=\"\" {...props} />;\n}\nModalBody.displayName = \"ModalBody\";\n\n/** Actions row pinned under the body. */\nexport function ModalFooter(props: ModalFooterProps): ReactElement {\n return <div data-part=\"footer\" data-uiify-modal=\"\" {...props} />;\n}\nModalFooter.displayName = \"ModalFooter\";\n\n/** Decorative drag handle shown on the mobile sheet; the swipe enhancement starts here. */\nexport function ModalGrabber(props: ModalGrabberProps): ReactElement {\n return <div aria-hidden=\"true\" data-part=\"grabber\" data-uiify-modal=\"\" {...props} />;\n}\nModalGrabber.displayName = \"ModalGrabber\";\n"],"mappings":"AAiBS;AADF,SAAS,YAAY,OAAuC;AACjE,SAAO,oBAAC,SAAI,aAAU,UAAS,oBAAiB,IAAI,GAAG,OAAO;AAChE;AACA,YAAY,cAAc;AAGnB,SAAS,WAAW,OAAsC;AAC/D,SAAO,oBAAC,QAAG,aAAU,SAAQ,oBAAiB,IAAI,GAAG,OAAO;AAC9D;AACA,WAAW,cAAc;AAGlB,SAAS,iBAAiB,OAA4C;AAC3E,SAAO,oBAAC,OAAE,aAAU,eAAc,oBAAiB,IAAI,GAAG,OAAO;AACnE;AACA,iBAAiB,cAAc;AAGxB,SAAS,UAAU,OAAqC;AAC7D,SAAO,oBAAC,SAAI,aAAU,QAAO,oBAAiB,IAAI,GAAG,OAAO;AAC9D;AACA,UAAU,cAAc;AAGjB,SAAS,YAAY,OAAuC;AACjE,SAAO,oBAAC,SAAI,aAAU,UAAS,oBAAiB,IAAI,GAAG,OAAO;AAChE;AACA,YAAY,cAAc;AAGnB,SAAS,aAAa,OAAwC;AACnE,SAAO,oBAAC,SAAI,eAAY,QAAO,aAAU,WAAU,oBAAiB,IAAI,GAAG,OAAO;AACpF;AACA,aAAa,cAAc;","names":[]}
@@ -27,10 +27,10 @@ function ModalContent(props) {
27
27
  return /* @__PURE__ */ jsx(
28
28
  "dialog",
29
29
  {
30
- ...dialogProps,
31
30
  ...modalAppearanceAttributes({ align, backdrop, dismiss, size }),
32
31
  "data-part": "content",
33
32
  "data-uiify-modal": "",
33
+ ...dialogProps,
34
34
  children
35
35
  }
36
36
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/modal/ModalParts.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { renderNativeInvoker } from \"@gunkin/uiify/core/render\";\nimport { modalAppearanceAttributes } from \"./attributes.js\";\nimport type { ModalCloseProps, ModalContentProps, ModalTriggerProps } from \"./types.js\";\n\nexport {\n ModalBody,\n ModalDescription,\n ModalFooter,\n ModalGrabber,\n ModalHeader,\n ModalTitle,\n} from \"./ModalAnatomy.js\";\n\n/** Native modal invoker with modal identity and trigger anatomy. */\nexport function ModalTrigger<TAs extends ElementType = \"button\">(\n props: ModalTriggerProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as ModalTriggerProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-modal\",\n \"trigger\",\n \"show-modal\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true },\n );\n}\nModalTrigger.displayName = \"ModalTrigger\";\n\n/** Native modal dialog content with modal identity and content anatomy. */\nexport function ModalContent(props: ModalContentProps): ReactElement {\n const { align, backdrop, children, dismiss, size, ...dialogProps } = props;\n return (\n <dialog\n {...dialogProps}\n {...modalAppearanceAttributes({ align, backdrop, dismiss, size })}\n data-part=\"content\"\n data-uiify-modal=\"\"\n >\n {children}\n </dialog>\n );\n}\nModalContent.displayName = \"ModalContent\";\n\n/** Native modal close invoker. */\nexport function ModalClose<TAs extends ElementType = \"button\">(\n props: ModalCloseProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as ModalCloseProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-modal\",\n \"close\",\n \"request-close\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true, variant: \"ghost\" },\n );\n}\nModalClose.displayName = \"ModalClose\";\n"],"mappings":"AAmCI;AAlCJ,SAAS,2BAA2B;AACpC,SAAS,iCAAiC;AAG1C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGA,SAAS,aACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,QAAQ,KAAK;AAAA,EACjB;AACF;AACA,aAAa,cAAc;AAGpB,SAAS,aAAa,OAAwC;AACnE,QAAM,EAAE,OAAO,UAAU,UAAU,SAAS,MAAM,GAAG,YAAY,IAAI;AACrE,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACH,GAAG,0BAA0B,EAAE,OAAO,UAAU,SAAS,KAAK,CAAC;AAAA,MAChE,aAAU;AAAA,MACV,oBAAiB;AAAA,MAEhB;AAAA;AAAA,EACH;AAEJ;AACA,aAAa,cAAc;AAGpB,SAAS,WACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,QAAQ,MAAM,SAAS,QAAQ;AAAA,EACnC;AACF;AACA,WAAW,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/modal/ModalParts.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { renderNativeInvoker } from \"@gunkin/uiify/core/render\";\nimport { modalAppearanceAttributes } from \"./attributes.js\";\nimport type { ModalCloseProps, ModalContentProps, ModalTriggerProps } from \"./types.js\";\n\nexport {\n ModalBody,\n ModalDescription,\n ModalFooter,\n ModalGrabber,\n ModalHeader,\n ModalTitle,\n} from \"./ModalAnatomy.js\";\n\n/** Native modal invoker with modal identity and trigger anatomy. */\nexport function ModalTrigger<TAs extends ElementType = \"button\">(\n props: ModalTriggerProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as ModalTriggerProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-modal\",\n \"trigger\",\n \"show-modal\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true },\n );\n}\nModalTrigger.displayName = \"ModalTrigger\";\n\n/** Native modal dialog content with modal identity and content anatomy. */\nexport function ModalContent(props: ModalContentProps): ReactElement {\n const { align, backdrop, children, dismiss, size, ...dialogProps } = props;\n return (\n <dialog\n {...modalAppearanceAttributes({ align, backdrop, dismiss, size })}\n data-part=\"content\"\n data-uiify-modal=\"\"\n {...dialogProps}\n >\n {children}\n </dialog>\n );\n}\nModalContent.displayName = \"ModalContent\";\n\n/** Native modal close invoker. */\nexport function ModalClose<TAs extends ElementType = \"button\">(\n props: ModalCloseProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as ModalCloseProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-modal\",\n \"close\",\n \"request-close\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true, variant: \"ghost\" },\n );\n}\nModalClose.displayName = \"ModalClose\";\n"],"mappings":"AAmCI;AAlCJ,SAAS,2BAA2B;AACpC,SAAS,iCAAiC;AAG1C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGA,SAAS,aACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,QAAQ,KAAK;AAAA,EACjB;AACF;AACA,aAAa,cAAc;AAGpB,SAAS,aAAa,OAAwC;AACnE,QAAM,EAAE,OAAO,UAAU,UAAU,SAAS,MAAM,GAAG,YAAY,IAAI;AACrE,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG,0BAA0B,EAAE,OAAO,UAAU,SAAS,KAAK,CAAC;AAAA,MAChE,aAAU;AAAA,MACV,oBAAiB;AAAA,MAChB,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;AACA,aAAa,cAAc;AAGpB,SAAS,WACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,QAAQ,MAAM,SAAS,QAAQ;AAAA,EACnC;AACF;AACA,WAAW,cAAc;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ModalClientContent.d.ts","sourceRoot":"","sources":["../../../../src/components/modal/client/ModalClientContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AA4B3D;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,YAAY,CA4G/E;yBA5Ge,kBAAkB"}
1
+ {"version":3,"file":"ModalClientContent.d.ts","sourceRoot":"","sources":["../../../../src/components/modal/client/ModalClientContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAwB3D;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,YAAY,CAuG/E;yBAvGe,kBAAkB"}
@@ -89,12 +89,12 @@ function ModalClientContent(props) {
89
89
  return /* @__PURE__ */ jsx(
90
90
  "dialog",
91
91
  {
92
- ...dialogProps,
93
92
  ...modalAppearanceAttributes({ align, backdrop, dismiss, size }),
94
93
  "data-part": "content",
95
94
  "data-uiify-modal": "",
96
- ref: mergedRef,
97
95
  suppressHydrationWarning: true,
96
+ ...dialogProps,
97
+ ref: mergedRef,
98
98
  children
99
99
  }
100
100
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/modal/client/ModalClientContent.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useReducer, useRef, useState } from \"react\";\nimport type { ReactElement } from \"react\";\nimport { useMergedRefs } from \"@gunkin/uiify/hooks\";\nimport { modalAppearanceAttributes } from \"../attributes.js\";\nimport type { ModalClientContentProps } from \"../types.js\";\n\nfunction increment(count: number): number {\n return count + 1;\n}\n\n/** A dialog nested in this one would stay open (and invisible) after its parent closes. */\nfunction closeNestedDialogs(dialog: HTMLDialogElement): void {\n for (const nested of dialog.querySelectorAll<HTMLDialogElement>(\"dialog[open]\")) {\n nested.close();\n }\n}\n\n/**\n * Runs `done` once the dialog's own transitions have finished; at once when there are none.\n * An `infinite` animation inside (a Spinner or Skeleton) never finishes, so it is not waited on.\n */\nfunction afterMotion(dialog: HTMLDialogElement, done: () => void): void {\n requestAnimationFrame(() => {\n const running = dialog.getAnimations?.({ subtree: true }) ?? [];\n void Promise.allSettled(\n running.map((animation) =>\n animation.effect?.getComputedTiming().endTime === Infinity ? 0 : animation.finished,\n ),\n ).then(done);\n });\n}\n\n/**\n * Controlled/initially-open adapter over a native modal `<dialog>`.\n *\n * The browser stays the owner of modality: opening is `showModal()`, closing is\n * `close()`, and every change — invoker command, Escape, `requestClose()`,\n * `form method=\"dialog\"`, programmatic — is observed through the single native\n * `toggle` event (Chrome 132, Firefox 133, Safari 26). SSR never emits `open`;\n * `defaultOpen` and controlled `open` are applied after mount.\n */\nexport function ModalClientContent(props: ModalClientContentProps): ReactElement {\n const {\n align,\n backdrop,\n children,\n defaultOpen = false,\n dismiss,\n onOpenChange,\n onOpenChangeComplete,\n open,\n ref,\n size,\n ...dialogProps\n } = props;\n\n const elementRef = useRef<HTMLDialogElement | null>(null);\n const mergedRef = useMergedRefs<HTMLDialogElement>(elementRef, ref);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n // Bumped on every native toggle so the sync effect re-runs after the parent\n // has had its render: a controlling parent that rejected the change is then\n // reconciled by reverting the element.\n const [nativeVersion, recordNativeToggle] = useReducer(increment, 0);\n const controlled = open !== undefined;\n const wantOpen = controlled ? open : uncontrolledOpen;\n\n const wantOpenRef = useRef(wantOpen);\n wantOpenRef.current = wantOpen;\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n const onOpenChangeCompleteRef = useRef(onOpenChangeComplete);\n onOpenChangeCompleteRef.current = onOpenChangeComplete;\n // One-shot: has the first-mount reconciliation below already run?\n const reconciledRef = useRef(false);\n\n useEffect(() => {\n const dialog = elementRef.current;\n if (!dialog) return;\n if (!reconciledRef.current) {\n reconciledRef.current = true;\n // SSR markup is always closed. If the dialog is already open at mount,\n // that can only mean a native invoker command opened it in the window\n // between initial paint and this effect running — the `toggle` event\n // fired with no listener attached yet, and that notification is\n // otherwise lost forever. Recover it exactly like a native toggle.\n //\n // The reverse (closed at mount) is never reconciled: it's indistinguishable\n // from \"nothing happened\" versus a pre-hydration open+close cycle that\n // netted back to closed, and it's also the normal starting shape for\n // defaultOpen (open before hydration) is reconciled when the DOM catches up.\n if (dialog.open && !wantOpenRef.current) {\n if (!controlled) setUncontrolledOpen(true);\n onOpenChangeRef.current?.(true);\n // Defer enacting show/close to the next pass, once the controlling\n // parent (if any) has had a chance to react to the report above —\n // the DOM already matches what was just reported, so there is\n // nothing to enact this pass regardless.\n recordNativeToggle();\n return;\n }\n }\n if (wantOpen && !dialog.open) dialog.showModal();\n else if (!wantOpen && dialog.open) {\n closeNestedDialogs(dialog);\n dialog.close();\n }\n // `controlled` is read above (line 66) and must be a dependency; the sibling\n // `toggle`-listener effect below lists it for the same reason.\n }, [nativeVersion, wantOpen, controlled]);\n\n useEffect(() => {\n const dialog = elementRef.current;\n if (!dialog) return;\n let disposed = false;\n const onToggle = (event: Event): void => {\n const next = (event as ToggleEvent).newState === \"open\";\n afterMotion(dialog, () => {\n if (!disposed) onOpenChangeCompleteRef.current?.(next);\n });\n // Programmatic changes already match the desired state; only report\n // changes the browser initiated.\n if (next === wantOpenRef.current) return;\n if (!controlled) setUncontrolledOpen(next);\n onOpenChangeRef.current?.(next);\n recordNativeToggle();\n };\n dialog.addEventListener(\"toggle\", onToggle);\n return () => {\n disposed = true;\n dialog.removeEventListener(\"toggle\", onToggle);\n };\n }, [controlled]);\n\n return (\n <dialog\n {...dialogProps}\n {...modalAppearanceAttributes({ align, backdrop, dismiss, size })}\n data-part=\"content\"\n data-uiify-modal=\"\"\n ref={mergedRef}\n // SSR markup is always closed, but the browser may have already opened this\n // dialog via a native invoker command before hydration (see the effect above,\n // which reconciles exactly that). React's hydration diff otherwise flags the\n // resulting `open` mismatch as an error; it is the documented recovery path.\n suppressHydrationWarning\n >\n {children}\n </dialog>\n );\n}\nModalClientContent.displayName = \"ModalClientContent\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/modal/client/ModalClientContent.tsx"],"sourcesContent":["\"use client\";\nimport { useEffect, useReducer, useRef, useState } from \"react\";\nimport type { ReactElement } from \"react\";\nimport { useMergedRefs } from \"@gunkin/uiify/hooks\";\nimport { modalAppearanceAttributes } from \"../attributes.js\";\nimport type { ModalClientContentProps } from \"../types.js\";\nfunction increment(count: number): number {\n return count + 1;\n}\n/** A dialog nested in this one would stay open (and invisible) after its parent closes. */\nfunction closeNestedDialogs(dialog: HTMLDialogElement): void {\n for (const nested of dialog.querySelectorAll<HTMLDialogElement>(\"dialog[open]\")) {\n nested.close();\n }\n}\n/**\n * Runs `done` once the dialog's own transitions have finished; at once when there are none.\n * An `infinite` animation inside (a Spinner or Skeleton) never finishes, so it is not waited on.\n */\nfunction afterMotion(dialog: HTMLDialogElement, done: () => void): void {\n requestAnimationFrame(() => {\n const running = dialog.getAnimations?.({ subtree: true }) ?? [];\n void Promise.allSettled(\n running.map((animation) =>\n animation.effect?.getComputedTiming().endTime === Infinity ? 0 : animation.finished,\n ),\n ).then(done);\n });\n}\n/**\n * Controlled/initially-open adapter over a native modal `<dialog>`.\n *\n * The browser stays the owner of modality: opening is `showModal()`, closing is\n * `close()`, and every change — invoker command, Escape, `requestClose()`,\n * `form method=\"dialog\"`, programmatic — is observed through the single native\n * `toggle` event (Chrome 132, Firefox 133, Safari 26). SSR never emits `open`;\n * `defaultOpen` and controlled `open` are applied after mount.\n */\nexport function ModalClientContent(props: ModalClientContentProps): ReactElement {\n const {\n align,\n backdrop,\n children,\n defaultOpen = false,\n dismiss,\n onOpenChange,\n onOpenChangeComplete,\n open,\n ref,\n size,\n ...dialogProps\n } = props;\n const elementRef = useRef<HTMLDialogElement | null>(null);\n const mergedRef = useMergedRefs<HTMLDialogElement>(elementRef, ref);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n // Bumped on every native toggle so the sync effect re-runs after the parent\n // has had its render: a controlling parent that rejected the change is then\n // reconciled by reverting the element.\n const [nativeVersion, recordNativeToggle] = useReducer(increment, 0);\n const controlled = open !== undefined;\n const wantOpen = controlled ? open : uncontrolledOpen;\n const wantOpenRef = useRef(wantOpen);\n wantOpenRef.current = wantOpen;\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n const onOpenChangeCompleteRef = useRef(onOpenChangeComplete);\n onOpenChangeCompleteRef.current = onOpenChangeComplete;\n // One-shot: has the first-mount reconciliation below already run?\n const reconciledRef = useRef(false);\n useEffect(() => {\n const dialog = elementRef.current;\n if (!dialog) return;\n if (!reconciledRef.current) {\n reconciledRef.current = true;\n // SSR markup is always closed. If the dialog is already open at mount,\n // that can only mean a native invoker command opened it in the window\n // between initial paint and this effect running — the `toggle` event\n // fired with no listener attached yet, and that notification is\n // otherwise lost forever. Recover it exactly like a native toggle.\n //\n // The reverse (closed at mount) is never reconciled: it's indistinguishable\n // from \"nothing happened\" versus a pre-hydration open+close cycle that\n // netted back to closed, and it's also the normal starting shape for\n // defaultOpen (open before hydration) is reconciled when the DOM catches up.\n if (dialog.open && !wantOpenRef.current) {\n if (!controlled) setUncontrolledOpen(true);\n onOpenChangeRef.current?.(true);\n // Defer enacting show/close to the next pass, once the controlling\n // parent (if any) has had a chance to react to the report above —\n // the DOM already matches what was just reported, so there is\n // nothing to enact this pass regardless.\n recordNativeToggle();\n return;\n }\n }\n if (wantOpen && !dialog.open) dialog.showModal();\n else if (!wantOpen && dialog.open) {\n closeNestedDialogs(dialog);\n dialog.close();\n }\n // `controlled` is read above (line 66) and must be a dependency; the sibling\n // `toggle`-listener effect below lists it for the same reason.\n }, [nativeVersion, wantOpen, controlled]);\n useEffect(() => {\n const dialog = elementRef.current;\n if (!dialog) return;\n let disposed = false;\n const onToggle = (event: Event): void => {\n const next = (event as ToggleEvent).newState === \"open\";\n afterMotion(dialog, () => {\n if (!disposed) onOpenChangeCompleteRef.current?.(next);\n });\n // Programmatic changes already match the desired state; only report\n // changes the browser initiated.\n if (next === wantOpenRef.current) return;\n if (!controlled) setUncontrolledOpen(next);\n onOpenChangeRef.current?.(next);\n recordNativeToggle();\n };\n dialog.addEventListener(\"toggle\", onToggle);\n return () => {\n disposed = true;\n dialog.removeEventListener(\"toggle\", onToggle);\n };\n }, [controlled]);\n return (\n <dialog\n {...modalAppearanceAttributes({ align, backdrop, dismiss, size })}\n data-part=\"content\"\n data-uiify-modal=\"\"\n // SSR markup is always closed, but the browser may have already opened this\n // dialog via a native invoker command before hydration (see the effect above,\n // which reconciles exactly that). React's hydration diff otherwise flags the\n // resulting `open` mismatch as an error; it is the documented recovery path.\n suppressHydrationWarning\n {...dialogProps}\n ref={mergedRef}\n >\n {children}\n </dialog>\n );\n}\nModalClientContent.displayName = \"ModalClientContent\";\n"],"mappings":"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","names":[]}
@@ -1,4 +1,4 @@
1
1
  export { Modal } from "./Modal.js";
2
2
  export { ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalGrabber, ModalHeader, ModalTitle, ModalTrigger, } from "./ModalParts.js";
3
- export type { ModalAlign, ModalAppearanceProps, ModalBackdrop, ModalBodyProps, ModalCloseOwnProps, ModalCloseProps, ModalContentOwnProps, ModalContentProps, ModalDescriptionProps, ModalDismiss, ModalFooterProps, ModalGrabberProps, ModalHeaderProps, ModalProps, ModalLabels, ModalSize, ModalTitleProps, ModalTriggerOwnProps, ModalTriggerProps, } from "./types.js";
3
+ export type { ModalAlign, ModalAppearanceProps, ModalBackdrop, ModalBodyProps, ModalCloseOwnProps, ModalCloseProps, ModalContentOwnProps, ModalContentProps, ModalDescriptionProps, ModalDismiss, ModalFooterProps, ModalGrabberProps, ModalHeaderProps, ModalProps, ModalLabels, ModalOwnProps, ModalSlotProps, ModalSize, ModalTitleProps, ModalTriggerOwnProps, ModalTriggerProps, } from "./types.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/modal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/modal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,aAAa,EACb,cAAc,EACd,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/modal/index.ts"],"sourcesContent":["export { Modal } from \"./Modal.js\";\nexport {\n ModalBody,\n ModalClose,\n ModalContent,\n ModalDescription,\n ModalFooter,\n ModalGrabber,\n ModalHeader,\n ModalTitle,\n ModalTrigger,\n} from \"./ModalParts.js\";\nexport type {\n ModalAlign,\n ModalAppearanceProps,\n ModalBackdrop,\n ModalBodyProps,\n ModalCloseOwnProps,\n ModalCloseProps,\n ModalContentOwnProps,\n ModalContentProps,\n ModalDescriptionProps,\n ModalDismiss,\n ModalFooterProps,\n ModalGrabberProps,\n ModalHeaderProps,\n ModalProps,\n ModalLabels,\n ModalSize,\n ModalTitleProps,\n ModalTriggerOwnProps,\n ModalTriggerProps,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/modal/index.ts"],"sourcesContent":["export { Modal } from \"./Modal.js\";\nexport {\n ModalBody,\n ModalClose,\n ModalContent,\n ModalDescription,\n ModalFooter,\n ModalGrabber,\n ModalHeader,\n ModalTitle,\n ModalTrigger,\n} from \"./ModalParts.js\";\nexport type {\n ModalAlign,\n ModalAppearanceProps,\n ModalBackdrop,\n ModalBodyProps,\n ModalCloseOwnProps,\n ModalCloseProps,\n ModalContentOwnProps,\n ModalContentProps,\n ModalDescriptionProps,\n ModalDismiss,\n ModalFooterProps,\n ModalGrabberProps,\n ModalHeaderProps,\n ModalProps,\n ModalLabels,\n ModalOwnProps,\n ModalSlotProps,\n ModalSize,\n ModalTitleProps,\n ModalTriggerOwnProps,\n ModalTriggerProps,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
@@ -1,5 +1,6 @@
1
1
  import type { ComponentPropsWithRef, ElementType, ReactNode } from "react";
2
2
  import type { NativeButtonProps } from "@gunkin/uiify/core/render";
3
+ import type { SlotProps } from "../../core/slot-props.js";
3
4
  export type ModalSize = "sm" | "md" | "lg" | "full";
4
5
  export type ModalAlign = "center" | "start";
5
6
  export type ModalDismiss = "any" | "closerequest" | "none";
@@ -22,7 +23,7 @@ export interface ModalAppearanceProps {
22
23
  /** Backdrop treatment. Default `opaque`. */
23
24
  readonly backdrop?: ModalBackdrop | undefined;
24
25
  }
25
- export interface ModalProps extends ModalAppearanceProps {
26
+ export interface ModalOwnProps extends ModalAppearanceProps {
26
27
  readonly id: string;
27
28
  readonly trigger: ReactNode;
28
29
  readonly title: ReactNode;
@@ -33,8 +34,28 @@ export interface ModalProps extends ModalAppearanceProps {
33
34
  readonly labels?: Partial<ModalLabels>;
34
35
  /** Actions row pinned under the body. */
35
36
  readonly footer?: ReactNode;
36
- readonly className?: string;
37
+ /** Native props for the elements created by this convenience component. */
38
+ readonly slotProps?: ModalSlotProps;
37
39
  }
40
+ /**
41
+ * Popover attributes contradict a command invoker; `open`/`popover` contradict a modal dialog; the
42
+ * dialog `id` is the Modal's own `id` prop, which the trigger and close `target` reference.
43
+ */
44
+ type CommandInvokerSlotProps = Omit<SlotProps<"button">, "popoverTarget" | "popoverTargetAction">;
45
+ /** Native props for Modal's generated inner elements; consumer values replace the defaults. */
46
+ export interface ModalSlotProps {
47
+ readonly trigger?: CommandInvokerSlotProps;
48
+ readonly content?: Omit<SlotProps<"dialog">, "id" | "open" | "popover">;
49
+ readonly grabber?: SlotProps<"div">;
50
+ readonly header?: SlotProps<"div">;
51
+ readonly title?: SlotProps<"h2">;
52
+ readonly description?: SlotProps<"p">;
53
+ readonly close?: CommandInvokerSlotProps;
54
+ readonly body?: SlotProps<"div">;
55
+ readonly footer?: SlotProps<"div">;
56
+ }
57
+ /** Native props for Modal's root div plus its dialog and trigger contract. */
58
+ export type ModalProps = ModalOwnProps & Omit<SlotProps<"div">, keyof ModalOwnProps>;
38
59
  export interface ModalLabels {
39
60
  readonly close: string;
40
61
  }
@@ -58,7 +79,7 @@ export interface ModalContentOwnProps extends ModalAppearanceProps {
58
79
  readonly id: string;
59
80
  }
60
81
  /** A plain, initially closed `<dialog>`: `open` and `popover` are not part of the native contract. */
61
- export type ModalContentProps = ModalContentOwnProps & Omit<ComponentPropsWithRef<"dialog">, keyof ModalContentOwnProps | "open" | "popover" | "closedby">;
82
+ export type ModalContentProps = ModalContentOwnProps & Omit<ComponentPropsWithRef<"dialog">, keyof ModalContentOwnProps | "open" | "popover">;
62
83
  export interface ModalClientContentOwnProps extends ModalAppearanceProps {
63
84
  readonly children?: ReactNode;
64
85
  /** Uncontrolled initial state, applied with `showModal()` after hydration; SSR markup stays closed. */
@@ -82,11 +103,12 @@ export interface ModalClientContentOwnProps extends ModalAppearanceProps {
82
103
  readonly open?: boolean;
83
104
  }
84
105
  /** Props of the client adapter; `popover` is excluded because the adapter is always modal. */
85
- export type ModalClientContentProps = ModalClientContentOwnProps & Omit<ComponentPropsWithRef<"dialog">, keyof ModalClientContentOwnProps | "popover" | "closedby">;
106
+ export type ModalClientContentProps = ModalClientContentOwnProps & Omit<ComponentPropsWithRef<"dialog">, keyof ModalClientContentOwnProps | "popover">;
86
107
  export type ModalHeaderProps = ComponentPropsWithRef<"div">;
87
108
  export type ModalTitleProps = ComponentPropsWithRef<"h2">;
88
109
  export type ModalDescriptionProps = ComponentPropsWithRef<"p">;
89
110
  export type ModalBodyProps = ComponentPropsWithRef<"div">;
90
111
  export type ModalFooterProps = ComponentPropsWithRef<"div">;
91
112
  export type ModalGrabberProps = Omit<ComponentPropsWithRef<"div">, "children">;
113
+ export {};
92
114
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/modal/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/modal/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NumberField.d.ts","sourceRoot":"","sources":["../../../src/components/number-field/NumberField.tsx"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,WAAW,EAIhB,KAAK,YAAY,EAGlB,MAAM,OAAO,CAAC;AAef,OAAO,KAAK,EAEV,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAKpB,wBAAgB,eAAe,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC7D,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAC/B,YAAY,GAAG,IAAI,CAqIrB;yBAvIe,eAAe;;;AA0I/B,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC9D,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAChC,YAAY,GAAG,IAAI,CAerB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EAChE,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAChC,YAAY,GAAG,IAAI,CA0FrB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EACrE,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,GACpC,YAAY,GAAG,IAAI,CAuCrB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EACrE,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,GACpC,YAAY,GAAG,IAAI,CAuCrB;AAED,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC"}
1
+ {"version":3,"file":"NumberField.d.ts","sourceRoot":"","sources":["../../../src/components/number-field/NumberField.tsx"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,WAAW,EAIhB,KAAK,YAAY,EAGlB,MAAM,OAAO,CAAC;AAef,OAAO,KAAK,EAEV,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAKpB,wBAAgB,eAAe,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC7D,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAC/B,YAAY,GAAG,IAAI,CAqIrB;yBAvIe,eAAe;;;AA0I/B,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC9D,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAChC,YAAY,GAAG,IAAI,CAerB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EAChE,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAChC,YAAY,GAAG,IAAI,CA4FrB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EACrE,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,GACpC,YAAY,GAAG,IAAI,CAuCrB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EACrE,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,GACpC,YAAY,GAAG,IAAI,CAuCrB;AAED,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC"}
@@ -6,8 +6,8 @@ import {
6
6
  useRef,
7
7
  useState
8
8
  } from "react";
9
- import { useControllableState, useId } from "@gunkin/uiify/hooks";
10
- import { createPartContext } from "@gunkin/uiify/core";
9
+ import { useControllableState, useId, useMergedRefs } from "@gunkin/uiify/hooks";
10
+ import { createPartContext, splitRef } from "@gunkin/uiify/core";
11
11
  import { isComposingKeyEvent } from "@gunkin/uiify/core/ime";
12
12
  import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers";
13
13
  import { useRenderElement } from "@gunkin/uiify/core/render";
@@ -132,9 +132,9 @@ function NumberFieldRoot(props) {
132
132
  as,
133
133
  defaultTag: "div",
134
134
  props: {
135
- ...consumerProps,
136
135
  "data-disabled": disabled ? "" : void 0,
137
- "data-uiify-number-field": ""
136
+ "data-uiify-number-field": "",
137
+ ...consumerProps
138
138
  },
139
139
  render,
140
140
  state: { disabled, readOnly, required }
@@ -149,9 +149,9 @@ function NumberFieldGroup(props) {
149
149
  as,
150
150
  defaultTag: "div",
151
151
  props: {
152
- ...consumerProps,
153
152
  "data-disabled": disabled ? "" : void 0,
154
- "data-part": "group"
153
+ "data-part": "group",
154
+ ...consumerProps
155
155
  },
156
156
  render,
157
157
  state: { disabled }
@@ -176,6 +176,8 @@ function NumberFieldInput(props) {
176
176
  setDisplayValue,
177
177
  setEditing
178
178
  } = useNumberFieldContext("Input");
179
+ const [consumerRef] = splitRef(consumerProps);
180
+ const mergedRef = useMergedRefs(inputRef, consumerRef);
179
181
  const onKeyDown = (event) => {
180
182
  if (isComposingKeyEvent(event)) return;
181
183
  if (disabled || readOnly) return;
@@ -212,9 +214,7 @@ function NumberFieldInput(props) {
212
214
  as,
213
215
  defaultTag: "input",
214
216
  props: {
215
- ...consumerProps,
216
- id: consumerProps.id ?? inputId,
217
- ref: inputRef,
217
+ id: inputId,
218
218
  role: "spinbutton",
219
219
  "data-part": "input",
220
220
  inputMode: "decimal",
@@ -228,6 +228,8 @@ function NumberFieldInput(props) {
228
228
  readOnly: readOnly || void 0,
229
229
  required: required || void 0,
230
230
  value: displayValue,
231
+ ...consumerProps,
232
+ ref: mergedRef,
231
233
  onFocus: composeEventHandlers(consumerProps.onFocus, () => setEditing(true)),
232
234
  onBlur: composeEventHandlers(consumerProps.onBlur, (event) => {
233
235
  setEditing(false);
@@ -255,12 +257,12 @@ function NumberFieldIncrement(props) {
255
257
  as,
256
258
  defaultTag: "button",
257
259
  props: {
258
- ...consumerProps,
259
260
  type: "button",
260
261
  tabIndex: -1,
261
262
  "data-part": "increment",
262
263
  "data-disabled": inactive ? "" : void 0,
263
264
  disabled: inactive || void 0,
265
+ ...consumerProps,
264
266
  onClick: composeEventHandlers(
265
267
  consumerProps.onClick,
266
268
  (event) => {
@@ -291,12 +293,12 @@ function NumberFieldDecrement(props) {
291
293
  as,
292
294
  defaultTag: "button",
293
295
  props: {
294
- ...consumerProps,
295
296
  type: "button",
296
297
  tabIndex: -1,
297
298
  "data-part": "decrement",
298
299
  "data-disabled": inactive ? "" : void 0,
299
300
  disabled: inactive || void 0,
301
+ ...consumerProps,
300
302
  onClick: composeEventHandlers(
301
303
  consumerProps.onClick,
302
304
  (event) => {