@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
@@ -1,5 +1,23 @@
1
- import type { ReactNode } from "react";
1
+ import type { ComponentPropsWithRef, ReactNode } from "react";
2
+ import type { ConsumerDataAttributes } from "../../../core/slot-props.js";
2
3
  export type CheckedState = boolean | "indeterminate";
4
+ type NativeCheckControlInputOwnedAttributes = {
5
+ readonly "aria-checked"?: never;
6
+ readonly "aria-label"?: never;
7
+ readonly "aria-labelledby"?: never;
8
+ readonly "data-disabled"?: never;
9
+ readonly "data-part"?: never;
10
+ readonly "data-state"?: never;
11
+ readonly "data-uiify-checkbox"?: never;
12
+ };
13
+ type NativeCheckControlLabelOwnedAttributes = {
14
+ readonly "data-uiify-checkbox"?: never;
15
+ readonly id?: never;
16
+ };
17
+ export interface NativeCheckControlSlotProps {
18
+ readonly input?: Omit<ComponentPropsWithRef<"input">, "aria-checked" | "aria-label" | "aria-labelledby" | "checked" | "children" | "defaultChecked" | "defaultValue" | "disabled" | "dangerouslySetInnerHTML" | "id" | "name" | "type" | "value" | "data-disabled" | "data-part" | "data-state" | "data-uiify-checkbox"> & ConsumerDataAttributes & NativeCheckControlInputOwnedAttributes;
19
+ readonly label?: Omit<ComponentPropsWithRef<"label">, "children" | "dangerouslySetInnerHTML" | "htmlFor" | "id" | "data-uiify-checkbox"> & ConsumerDataAttributes & NativeCheckControlLabelOwnedAttributes;
20
+ }
3
21
  export interface NativeCheckControlProps {
4
22
  readonly id: string;
5
23
  readonly label?: ReactNode;
@@ -10,6 +28,8 @@ export interface NativeCheckControlProps {
10
28
  readonly value?: string;
11
29
  readonly className?: string;
12
30
  readonly onCheckedChange?: (checked: boolean) => void;
31
+ readonly slotProps?: NativeCheckControlSlotProps;
13
32
  readonly "aria-label"?: string;
14
33
  }
34
+ export {};
15
35
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/native-check-control/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,eAAe,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/native-check-control/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,eAAe,CAAC;AAErD,KAAK,sCAAsC,GAAG;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC;CACxC,CAAC;AAEF,KAAK,sCAAsC,GAAG;IAC5C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CACnB,qBAAqB,CAAC,OAAO,CAAC,EAC5B,cAAc,GACd,YAAY,GACZ,iBAAiB,GACjB,SAAS,GACT,UAAU,GACV,gBAAgB,GAChB,cAAc,GACd,UAAU,GACV,yBAAyB,GACzB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,eAAe,GACf,WAAW,GACX,YAAY,GACZ,qBAAqB,CACxB,GACC,sBAAsB,GACtB,sCAAsC,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CACnB,qBAAqB,CAAC,OAAO,CAAC,EAC9B,UAAU,GAAG,yBAAyB,GAAG,SAAS,GAAG,IAAI,GAAG,qBAAqB,CAClF,GACC,sBAAsB,GACtB,sCAAsC,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACjD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC"}
@@ -1,7 +1,7 @@
1
1
  import type { ElementType, ReactElement } from "react";
2
2
  import type { LineChartPointProps, LineChartProps } from "./types.js";
3
3
  /** One point and the segment from its predecessor; shared by the static list and virtual rows. */
4
- export declare function LineChartPoint({ as: Tag, point, previousPoint, index, count, min, max, interactive, isActive, isSelected, cursorY, onPointClick, onPointPointerLeave, onPointPointerMove, }: LineChartPointProps): ReactElement;
4
+ export declare function LineChartPoint({ as: Tag, point, previousPoint, index, count, min, max, interactive, isActive, isSelected, cursorY, onPointClick, onPointPointerLeave, onPointPointerMove, slotProps, }: LineChartPointProps): ReactElement;
5
5
  export declare namespace LineChartPoint {
6
6
  var displayName: string;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../src/components/line-chart/LineChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA+B,YAAY,EAAE,MAAM,OAAO,CAAC;AAepF,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAsB,MAAM,YAAY,CAAC;AAE1F,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,EAC7B,EAAE,EAAE,GAAG,EACP,KAAK,EACL,aAAa,EACb,KAAK,EACL,KAAK,EACL,GAAG,EACH,GAAG,EACH,WAAW,EACX,QAAQ,EACR,UAAU,EACV,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,EAAE,mBAAmB,GAAG,YAAY,CAmCpC;yBAlDe,cAAc;;;AAqD9B,wBAAgB,SAAS,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAC1D,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,GACzB,YAAY,GAAG,IAAI,CAsJrB;yBAxJe,SAAS"}
1
+ {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../src/components/line-chart/LineChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA+B,YAAY,EAAO,MAAM,OAAO,CAAC;AAiBzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAsB,MAAM,YAAY,CAAC;AAyC1F,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,EAC7B,EAAE,EAAE,GAAG,EACP,KAAK,EACL,aAAa,EACb,KAAK,EACL,KAAK,EACL,GAAG,EACH,GAAG,EACH,WAAW,EACX,QAAQ,EACR,UAAU,EACV,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,GACV,EAAE,mBAAmB,GAAG,YAAY,CAmEpC;yBAnFe,cAAc;;;AAsF9B,wBAAgB,SAAS,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAC1D,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,GACzB,YAAY,GAAG,IAAI,CAqOrB;yBAvOe,SAAS"}
@@ -1,5 +1,7 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useRenderElement } from "@gunkin/uiify/core/render";
3
+ import { mergeRepeatedSlotProps, omitProps } from "../../core/slot-props.js";
4
+ import { assignRef } from "../../hooks/utils/assign-ref.js";
3
5
  import {
4
6
  axisLabelsFor,
5
7
  axisStyle,
@@ -13,6 +15,31 @@ import {
13
15
  slotCrosshairStyle,
14
16
  valueLabelsFor
15
17
  } from "./line-chart-geometry.js";
18
+ function getPartProps(props, protectedKeys = []) {
19
+ return omitProps(props, ["children", "dangerouslySetInnerHTML", ...protectedKeys]);
20
+ }
21
+ function getIndexedPartProps(props, index, protectedKeys = []) {
22
+ const { byItemIndex, ...common } = props ?? {};
23
+ const merged = mergeRepeatedSlotProps(common, byItemIndex?.[index]);
24
+ return omitProps(merged, [
25
+ "children",
26
+ "dangerouslySetInnerHTML",
27
+ "byItemIndex",
28
+ ...protectedKeys
29
+ ]);
30
+ }
31
+ function withGeneratedStyle(props, generatedStyle) {
32
+ return { ...props, style: { ...props.style, ...generatedStyle } };
33
+ }
34
+ function forwardPointRef(ref) {
35
+ return (element) => {
36
+ const cleanup = assignRef(ref, element);
37
+ if (typeof cleanup === "function") return cleanup;
38
+ if (ref && typeof ref !== "function" && element !== null) {
39
+ return () => assignRef(ref, null);
40
+ }
41
+ };
42
+ }
16
43
  function LineChartPoint({
17
44
  as: Tag,
18
45
  point,
@@ -27,10 +54,29 @@ function LineChartPoint({
27
54
  cursorY,
28
55
  onPointClick,
29
56
  onPointPointerLeave,
30
- onPointPointerMove
57
+ onPointPointerMove,
58
+ slotProps
31
59
  }) {
32
60
  const geometry = geometryFor(point, previousPoint, index, count, min, max);
61
+ const pointSlotProps = getIndexedPartProps(slotProps?.point, index, [
62
+ "aria-hidden",
63
+ "data-crosshair-active",
64
+ "data-first",
65
+ "data-part",
66
+ "data-point-selected",
67
+ "data-time",
68
+ "data-trend"
69
+ ]);
70
+ const { ref: pointRef, ...pointProps } = pointSlotProps;
71
+ const pointHitSlotProps = getIndexedPartProps(slotProps?.pointHit, index, [
72
+ "aria-label",
73
+ "aria-pressed",
74
+ "data-part",
75
+ "type"
76
+ ]);
33
77
  const handleKeyDown = (event) => {
78
+ pointHitSlotProps.onKeyDown?.(event);
79
+ if (event.defaultPrevented) return;
34
80
  if (event.key !== "Enter" && event.key !== " ") return;
35
81
  event.preventDefault();
36
82
  onPointClick?.(index);
@@ -38,6 +84,8 @@ function LineChartPoint({
38
84
  return /* @__PURE__ */ jsx(
39
85
  Tag,
40
86
  {
87
+ ...pointProps,
88
+ ...pointRef ? { ref: forwardPointRef(pointRef) } : {},
41
89
  "aria-hidden": interactive ? void 0 : true,
42
90
  "data-part": "point",
43
91
  "data-first": previousPoint === void 0 ? "" : void 0,
@@ -45,18 +93,32 @@ function LineChartPoint({
45
93
  "data-point-selected": interactive && isSelected ? "" : void 0,
46
94
  "data-time": String(point.time),
47
95
  "data-trend": geometry.trend,
48
- style: pointStyle(geometry, isActive ? cursorY : void 0),
96
+ style: {
97
+ ...pointSlotProps.style,
98
+ ...pointStyle(geometry, isActive ? cursorY : void 0)
99
+ },
49
100
  children: interactive ? /* @__PURE__ */ jsx(
50
101
  "button",
51
102
  {
103
+ ...pointHitSlotProps,
52
104
  "data-part": "point-hit",
53
105
  type: "button",
54
106
  "aria-label": `Point ${String(point.time)}`,
55
107
  "aria-pressed": isSelected,
56
- onClick: () => onPointClick?.(index),
108
+ onClick: (event) => {
109
+ pointHitSlotProps.onClick?.(event);
110
+ if (!event.defaultPrevented) onPointClick?.(index);
111
+ },
57
112
  onKeyDown: handleKeyDown,
58
- onPointerLeave: onPointPointerLeave,
59
- onPointerMove: (event) => onPointPointerMove?.({ index, offsetY: event.nativeEvent.offsetY })
113
+ onPointerLeave: (event) => {
114
+ pointHitSlotProps.onPointerLeave?.(event);
115
+ if (!event.defaultPrevented) onPointPointerLeave?.();
116
+ },
117
+ onPointerMove: (event) => {
118
+ pointHitSlotProps.onPointerMove?.(event);
119
+ if (!event.defaultPrevented)
120
+ onPointPointerMove?.({ index, offsetY: event.nativeEvent.offsetY });
121
+ }
60
122
  }
61
123
  ) : null
62
124
  }
@@ -79,6 +141,7 @@ function LineChart(props) {
79
141
  onPointPointerLeave,
80
142
  onPointPointerMove,
81
143
  selectedPointIndex,
144
+ slotProps,
82
145
  pointLayer,
83
146
  announceReadout = true,
84
147
  slotCount,
@@ -92,26 +155,36 @@ function LineChart(props) {
92
155
  const readoutIndex = activePointIndex ?? selectedPointIndex ?? (data.length > 0 ? data.length - 1 : void 0);
93
156
  const readoutPoint = readoutIndex === void 0 ? void 0 : data[readoutIndex];
94
157
  const crosshairPoint = activePointIndex === void 0 ? void 0 : data[activePointIndex];
95
- const points = pointLayer ?? /* @__PURE__ */ jsx("ol", { "data-part": "points", "aria-label": `${label} points`, style: pointsStyle(data.length), children: data.map((point, index) => /* @__PURE__ */ jsx(
96
- LineChartPoint,
158
+ const points = pointLayer ?? /* @__PURE__ */ jsx(
159
+ "ol",
97
160
  {
98
- as: "li",
99
- point,
100
- previousPoint: data[index - 1],
101
- index,
102
- count: data.length,
103
- min,
104
- max,
105
- interactive,
106
- isActive: activePointIndex === index,
107
- isSelected: selectedPointIndex === index,
108
- cursorY,
109
- onPointClick,
110
- onPointPointerLeave,
111
- onPointPointerMove
112
- },
113
- `${point.time}-${index}`
114
- )) });
161
+ ...getPartProps(slotProps?.points, ["aria-label", "data-part"]),
162
+ "data-part": "points",
163
+ "aria-label": `${label} points`,
164
+ style: { ...slotProps?.points?.style, ...pointsStyle(data.length) },
165
+ children: data.map((point, index) => /* @__PURE__ */ jsx(
166
+ LineChartPoint,
167
+ {
168
+ as: "li",
169
+ point,
170
+ previousPoint: data[index - 1],
171
+ index,
172
+ count: data.length,
173
+ min,
174
+ max,
175
+ interactive,
176
+ isActive: activePointIndex === index,
177
+ isSelected: selectedPointIndex === index,
178
+ cursorY,
179
+ onPointClick,
180
+ onPointPointerLeave,
181
+ onPointPointerMove,
182
+ slotProps
183
+ },
184
+ `${point.time}-${index}`
185
+ ))
186
+ }
187
+ );
115
188
  const crosshairFor = (index, y) => slotCount === void 0 ? crosshairStyle(index, data.length, y) : slotCrosshairStyle(slotOffset + index, slotCount, y);
116
189
  return useRenderElement({
117
190
  as,
@@ -122,66 +195,174 @@ function LineChart(props) {
122
195
  "data-uiify-line-chart": "",
123
196
  "data-interactive": interactive ? "" : void 0,
124
197
  children: /* @__PURE__ */ jsxs(Fragment, { children: [
125
- /* @__PURE__ */ jsx("figcaption", { children: label }),
126
- interactive && readoutPoint ? /* @__PURE__ */ jsxs("div", { "data-part": "readout", "aria-live": announceReadout ? "polite" : "off", children: [
127
- /* @__PURE__ */ jsx("span", { "data-part": "readout-time", children: String(readoutPoint.time) }),
128
- /* @__PURE__ */ jsx("span", { children: readoutPoint.value })
129
- ] }) : null,
130
- /* @__PURE__ */ jsxs("div", { "data-part": "plot", "aria-hidden": interactive ? void 0 : true, children: [
131
- /* @__PURE__ */ jsx("div", { "data-part": "scroll-viewport", children: /* @__PURE__ */ jsxs("div", { "data-part": "canvas", children: [
132
- /* @__PURE__ */ jsxs("div", { "data-part": "viewport", children: [
133
- points,
134
- interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
135
- "div",
198
+ /* @__PURE__ */ jsx("figcaption", { ...getPartProps(slotProps?.caption), children: label }),
199
+ interactive && readoutPoint ? /* @__PURE__ */ jsxs(
200
+ "div",
201
+ {
202
+ ...getPartProps(slotProps?.readout, ["aria-live", "data-part"]),
203
+ "data-part": "readout",
204
+ "aria-live": announceReadout ? "polite" : "off",
205
+ children: [
206
+ /* @__PURE__ */ jsx(
207
+ "span",
136
208
  {
137
- "data-part": "crosshair",
138
- "aria-hidden": "true",
139
- style: crosshairFor(activePointIndex, cursorY),
140
- children: /* @__PURE__ */ jsx("span", { "data-part": "crosshair-marker", children: "+" })
209
+ ...getPartProps(slotProps?.readoutTime, ["data-part"]),
210
+ "data-part": "readout-time",
211
+ children: String(readoutPoint.time)
141
212
  }
142
- ) : null
143
- ] }),
144
- /* @__PURE__ */ jsx("div", { "data-part": "time-viewport", children: /* @__PURE__ */ jsxs("ol", { "data-part": "time-axis", "data-axis": "time", "aria-label": `${label} dates`, children: [
145
- timeLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
146
- "li",
213
+ ),
214
+ /* @__PURE__ */ jsx("span", { ...getPartProps(slotProps?.readoutValue), children: readoutPoint.value })
215
+ ]
216
+ }
217
+ ) : null,
218
+ /* @__PURE__ */ jsxs(
219
+ "div",
220
+ {
221
+ ...getPartProps(slotProps?.plot, ["aria-hidden", "data-part"]),
222
+ "data-part": "plot",
223
+ "aria-hidden": interactive ? void 0 : true,
224
+ children: [
225
+ /* @__PURE__ */ jsx(
226
+ "div",
147
227
  {
148
- style: axisStyle("x", axisLabel.position),
149
- children: axisLabel.label
150
- },
151
- `${axisLabel.position}-${index}`
152
- )),
153
- interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
154
- "li",
228
+ ...getPartProps(slotProps?.scrollViewport, ["data-part"]),
229
+ "data-part": "scroll-viewport",
230
+ children: /* @__PURE__ */ jsxs("div", { ...getPartProps(slotProps?.canvas, ["data-part"]), "data-part": "canvas", children: [
231
+ /* @__PURE__ */ jsxs("div", { ...getPartProps(slotProps?.viewport, ["data-part"]), "data-part": "viewport", children: [
232
+ points,
233
+ interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
234
+ "div",
235
+ {
236
+ ...getPartProps(slotProps?.crosshair, ["aria-hidden", "data-part"]),
237
+ "data-part": "crosshair",
238
+ "aria-hidden": "true",
239
+ style: {
240
+ ...slotProps?.crosshair?.style,
241
+ ...crosshairFor(activePointIndex, cursorY)
242
+ },
243
+ children: /* @__PURE__ */ jsx(
244
+ "span",
245
+ {
246
+ ...getPartProps(slotProps?.crosshairMarker, ["data-part"]),
247
+ "data-part": "crosshair-marker",
248
+ children: "+"
249
+ }
250
+ )
251
+ }
252
+ ) : null
253
+ ] }),
254
+ /* @__PURE__ */ jsx(
255
+ "div",
256
+ {
257
+ ...getPartProps(slotProps?.timeViewport, ["data-part"]),
258
+ "data-part": "time-viewport",
259
+ children: /* @__PURE__ */ jsxs(
260
+ "ol",
261
+ {
262
+ ...getPartProps(slotProps?.timeAxis, ["aria-label", "data-axis", "data-part"]),
263
+ "data-part": "time-axis",
264
+ "data-axis": "time",
265
+ "aria-label": `${label} dates`,
266
+ children: [
267
+ timeLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
268
+ "li",
269
+ {
270
+ ...withGeneratedStyle(
271
+ getIndexedPartProps(slotProps?.timeAxisLabel, index, ["data-part"]),
272
+ axisStyle("x", axisLabel.position)
273
+ ),
274
+ children: axisLabel.label
275
+ },
276
+ `${axisLabel.position}-${index}`
277
+ )),
278
+ interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
279
+ "li",
280
+ {
281
+ ...getPartProps(slotProps?.crosshairTime, ["data-part"]),
282
+ "data-part": "crosshair-time",
283
+ style: {
284
+ ...slotProps?.crosshairTime?.style,
285
+ ...crosshairFor(activePointIndex, void 0)
286
+ },
287
+ children: String(crosshairPoint.time)
288
+ }
289
+ ) : null
290
+ ]
291
+ }
292
+ )
293
+ }
294
+ )
295
+ ] })
296
+ }
297
+ ),
298
+ /* @__PURE__ */ jsxs(
299
+ "ol",
155
300
  {
156
- "data-part": "crosshair-time",
157
- style: crosshairFor(activePointIndex, void 0),
158
- children: String(crosshairPoint.time)
301
+ ...getPartProps(slotProps?.valueAxis, ["aria-label", "data-axis", "data-part"]),
302
+ "data-part": "value-axis",
303
+ "data-axis": "value",
304
+ "aria-label": `${label} values`,
305
+ children: [
306
+ valueLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
307
+ "li",
308
+ {
309
+ ...withGeneratedStyle(
310
+ getIndexedPartProps(slotProps?.valueAxisLabel, index, ["data-part"]),
311
+ axisStyle("y", axisLabel.position)
312
+ ),
313
+ children: axisLabel.label
314
+ },
315
+ `${axisLabel.position}-${index}`
316
+ )),
317
+ interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
318
+ "li",
319
+ {
320
+ ...getPartProps(slotProps?.crosshairValue, ["data-part"]),
321
+ "data-part": "crosshair-value",
322
+ style: { ...slotProps?.crosshairValue?.style, ...cursorStyle(cursorY) },
323
+ children: crosshairPoint.value
324
+ }
325
+ ) : null
326
+ ]
159
327
  }
160
- ) : null
161
- ] }) })
162
- ] }) }),
163
- /* @__PURE__ */ jsxs("ol", { "data-part": "value-axis", "data-axis": "value", "aria-label": `${label} values`, children: [
164
- valueLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
165
- "li",
166
- {
167
- style: axisStyle("y", axisLabel.position),
168
- children: axisLabel.label
169
- },
170
- `${axisLabel.position}-${index}`
171
- )),
172
- interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx("li", { "data-part": "crosshair-value", style: cursorStyle(cursorY), children: crosshairPoint.value }) : null
173
- ] })
174
- ] }),
175
- /* @__PURE__ */ jsxs("table", { "data-part": "data", "aria-label": `${label} data`, children: [
176
- /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
177
- /* @__PURE__ */ jsx("th", { scope: "col", children: "Time" }),
178
- /* @__PURE__ */ jsx("th", { scope: "col", children: "Value" })
179
- ] }) }),
180
- /* @__PURE__ */ jsx("tbody", { children: data.map((point, index) => /* @__PURE__ */ jsxs("tr", { children: [
181
- /* @__PURE__ */ jsx("th", { scope: "row", children: String(point.time) }),
182
- /* @__PURE__ */ jsx("td", { children: point.value })
183
- ] }, `${point.time}-${index}`)) })
184
- ] })
328
+ )
329
+ ]
330
+ }
331
+ ),
332
+ /* @__PURE__ */ jsxs(
333
+ "table",
334
+ {
335
+ ...getPartProps(slotProps?.dataTable, ["aria-label", "data-part"]),
336
+ "data-part": "data",
337
+ "aria-label": `${label} data`,
338
+ children: [
339
+ /* @__PURE__ */ jsx("thead", { ...getPartProps(slotProps?.dataTableHead), children: /* @__PURE__ */ jsxs("tr", { ...getPartProps(slotProps?.dataTableHeaderRow), children: [
340
+ /* @__PURE__ */ jsx("th", { ...getPartProps(slotProps?.dataTableTimeHeader, ["scope"]), scope: "col", children: "Time" }),
341
+ /* @__PURE__ */ jsx("th", { ...getPartProps(slotProps?.dataTableValueHeader, ["scope"]), scope: "col", children: "Value" })
342
+ ] }) }),
343
+ /* @__PURE__ */ jsx("tbody", { ...getPartProps(slotProps?.dataTableBody), children: data.map((point, index) => /* @__PURE__ */ jsxs(
344
+ "tr",
345
+ {
346
+ ...getIndexedPartProps(slotProps?.dataTableRow, slotOffset + index),
347
+ children: [
348
+ /* @__PURE__ */ jsx(
349
+ "th",
350
+ {
351
+ ...getIndexedPartProps(slotProps?.dataTableTimeCell, slotOffset + index, [
352
+ "scope"
353
+ ]),
354
+ scope: "row",
355
+ children: String(point.time)
356
+ }
357
+ ),
358
+ /* @__PURE__ */ jsx("td", { ...getIndexedPartProps(slotProps?.dataTableValueCell, slotOffset + index), children: point.value })
359
+ ]
360
+ },
361
+ `${point.time}-${index}`
362
+ )) })
363
+ ]
364
+ }
365
+ )
185
366
  ] })
186
367
  },
187
368
  render,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/line-chart/LineChart.tsx"],"sourcesContent":["import type { ElementType, KeyboardEvent, PointerEvent, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport {\n axisLabelsFor,\n axisStyle,\n crosshairStyle,\n cursorStyle,\n geometryFor,\n getValueBounds,\n monthLabelsFor,\n pointStyle,\n pointsStyle,\n slotCrosshairStyle,\n valueLabelsFor,\n} from \"./line-chart-geometry.js\";\nimport type { LineChartPointProps, LineChartProps, LineChartViewProps } from \"./types.js\";\n\n/** One point and the segment from its predecessor; shared by the static list and virtual rows. */\nexport function LineChartPoint({\n as: Tag,\n point,\n previousPoint,\n index,\n count,\n min,\n max,\n interactive,\n isActive,\n isSelected,\n cursorY,\n onPointClick,\n onPointPointerLeave,\n onPointPointerMove,\n}: LineChartPointProps): ReactElement {\n const geometry = geometryFor(point, previousPoint, index, count, min, max);\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (event.key !== \"Enter\" && event.key !== \" \") return;\n event.preventDefault();\n onPointClick?.(index);\n };\n\n return (\n <Tag\n aria-hidden={interactive ? undefined : true}\n data-part=\"point\"\n data-first={previousPoint === undefined ? \"\" : undefined}\n data-crosshair-active={interactive && isActive ? \"\" : undefined}\n data-point-selected={interactive && isSelected ? \"\" : undefined}\n data-time={String(point.time)}\n data-trend={geometry.trend}\n style={pointStyle(geometry, isActive ? cursorY : undefined)}\n >\n {interactive ? (\n <button\n data-part=\"point-hit\"\n type=\"button\"\n aria-label={`Point ${String(point.time)}`}\n aria-pressed={isSelected}\n onClick={() => onPointClick?.(index)}\n onKeyDown={handleKeyDown}\n onPointerLeave={onPointPointerLeave}\n onPointerMove={(event: PointerEvent<HTMLButtonElement>) =>\n onPointPointerMove?.({ index, offsetY: event.nativeEvent.offsetY })\n }\n />\n ) : null}\n </Tag>\n );\n}\nLineChartPoint.displayName = \"LineChartPoint\";\n\nexport function LineChart<TAs extends ElementType = \"figure\">(\n props: LineChartProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n data,\n xAxis,\n yAxis,\n \"aria-label\": ariaLabel,\n activePointIndex,\n cursorY,\n interactive = false,\n locale = \"en-US\",\n onPointClick,\n onPointPointerLeave,\n onPointPointerMove,\n selectedPointIndex,\n pointLayer,\n announceReadout = true,\n slotCount,\n slotOffset = 0,\n ...consumerProps\n } = props as LineChartProps<\"figure\"> & LineChartViewProps;\n const { min, max } = getValueBounds(data);\n const label = ariaLabel ?? \"Line chart\";\n const timeLabels = axisLabelsFor(xAxis, monthLabelsFor(data, locale));\n const valueLabels = axisLabelsFor(yAxis, valueLabelsFor(min, max, locale));\n const readoutIndex =\n activePointIndex ?? selectedPointIndex ?? (data.length > 0 ? data.length - 1 : undefined);\n const readoutPoint = readoutIndex === undefined ? undefined : data[readoutIndex];\n const crosshairPoint = activePointIndex === undefined ? undefined : data[activePointIndex];\n const points = pointLayer ?? (\n <ol data-part=\"points\" aria-label={`${label} points`} style={pointsStyle(data.length)}>\n {data.map((point, index) => (\n <LineChartPoint\n key={`${point.time}-${index}`}\n as=\"li\"\n point={point}\n previousPoint={data[index - 1]}\n index={index}\n count={data.length}\n min={min}\n max={max}\n interactive={interactive}\n isActive={activePointIndex === index}\n isSelected={selectedPointIndex === index}\n cursorY={cursorY}\n onPointClick={onPointClick}\n onPointPointerLeave={onPointPointerLeave}\n onPointPointerMove={onPointPointerMove}\n />\n ))}\n </ol>\n );\n const crosshairFor = (index: number, y: number | undefined) =>\n slotCount === undefined\n ? crosshairStyle(index, data.length, y)\n : slotCrosshairStyle(slotOffset + index, slotCount, y);\n\n return useRenderElement({\n as,\n defaultTag: \"figure\",\n props: {\n ...consumerProps,\n \"aria-label\": label,\n \"data-uiify-line-chart\": \"\",\n \"data-interactive\": interactive ? \"\" : undefined,\n children: (\n <>\n <figcaption>{label}</figcaption>\n {interactive && readoutPoint ? (\n <div data-part=\"readout\" aria-live={announceReadout ? \"polite\" : \"off\"}>\n <span data-part=\"readout-time\">{String(readoutPoint.time)}</span>\n <span>{readoutPoint.value}</span>\n </div>\n ) : null}\n <div data-part=\"plot\" aria-hidden={interactive ? undefined : true}>\n <div data-part=\"scroll-viewport\">\n <div data-part=\"canvas\">\n <div data-part=\"viewport\">\n {points}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <div\n data-part=\"crosshair\"\n aria-hidden=\"true\"\n style={crosshairFor(activePointIndex, cursorY)}\n >\n <span data-part=\"crosshair-marker\">+</span>\n </div>\n ) : null}\n </div>\n <div data-part=\"time-viewport\">\n <ol data-part=\"time-axis\" data-axis=\"time\" aria-label={`${label} dates`}>\n {timeLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n style={axisStyle(\"x\", axisLabel.position)}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <li\n data-part=\"crosshair-time\"\n style={crosshairFor(activePointIndex, undefined)}\n >\n {String(crosshairPoint.time)}\n </li>\n ) : null}\n </ol>\n </div>\n </div>\n </div>\n <ol data-part=\"value-axis\" data-axis=\"value\" aria-label={`${label} values`}>\n {valueLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n style={axisStyle(\"y\", axisLabel.position)}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <li data-part=\"crosshair-value\" style={cursorStyle(cursorY)}>\n {crosshairPoint.value}\n </li>\n ) : null}\n </ol>\n </div>\n <table data-part=\"data\" aria-label={`${label} data`}>\n <thead>\n <tr>\n <th scope=\"col\">Time</th>\n <th scope=\"col\">Value</th>\n </tr>\n </thead>\n <tbody>\n {data.map((point, index) => (\n <tr key={`${point.time}-${index}`}>\n <th scope=\"row\">{String(point.time)}</th>\n <td>{point.value}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </>\n ),\n },\n render,\n state: {},\n });\n}\nLineChart.displayName = \"LineChart\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/components/line-chart/LineChart.tsx"],"sourcesContent":["import type { ElementType, KeyboardEvent, PointerEvent, ReactElement, Ref } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { mergeRepeatedSlotProps, omitProps } from \"../../core/slot-props.js\";\nimport { assignRef } from \"../../hooks/utils/assign-ref.js\";\nimport {\n axisLabelsFor,\n axisStyle,\n crosshairStyle,\n cursorStyle,\n geometryFor,\n getValueBounds,\n monthLabelsFor,\n pointStyle,\n pointsStyle,\n slotCrosshairStyle,\n valueLabelsFor,\n} from \"./line-chart-geometry.js\";\nimport type { LineChartPointProps, LineChartProps, LineChartViewProps } from \"./types.js\";\n\nfunction getPartProps<T extends object>(\n props: T | undefined,\n protectedKeys: readonly string[] = [],\n): T {\n return omitProps(props, [\"children\", \"dangerouslySetInnerHTML\", ...protectedKeys]);\n}\n\nfunction getIndexedPartProps<T extends object>(\n props: (T & { readonly byItemIndex?: Readonly<Record<number, T>> }) | undefined,\n index: number,\n protectedKeys: readonly string[] = [],\n): T {\n const { byItemIndex, ...common } = props ?? {};\n const merged = mergeRepeatedSlotProps(common as T, byItemIndex?.[index]);\n return omitProps(merged, [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"byItemIndex\",\n ...protectedKeys,\n ]);\n}\n\nfunction withGeneratedStyle<T extends { readonly style?: object | undefined }>(\n props: T,\n generatedStyle: object,\n): T {\n return { ...props, style: { ...props.style, ...generatedStyle } };\n}\n\nfunction forwardPointRef(ref: Ref<HTMLElement> | undefined) {\n return (element: HTMLLIElement | HTMLDivElement | null): void | (() => void) => {\n const cleanup = assignRef(ref, element);\n if (typeof cleanup === \"function\") return cleanup;\n if (ref && typeof ref !== \"function\" && element !== null) {\n return () => assignRef(ref, null);\n }\n };\n}\n\n/** One point and the segment from its predecessor; shared by the static list and virtual rows. */\nexport function LineChartPoint({\n as: Tag,\n point,\n previousPoint,\n index,\n count,\n min,\n max,\n interactive,\n isActive,\n isSelected,\n cursorY,\n onPointClick,\n onPointPointerLeave,\n onPointPointerMove,\n slotProps,\n}: LineChartPointProps): ReactElement {\n const geometry = geometryFor(point, previousPoint, index, count, min, max);\n const pointSlotProps = getIndexedPartProps(slotProps?.point, index, [\n \"aria-hidden\",\n \"data-crosshair-active\",\n \"data-first\",\n \"data-part\",\n \"data-point-selected\",\n \"data-time\",\n \"data-trend\",\n ]);\n const { ref: pointRef, ...pointProps } = pointSlotProps;\n const pointHitSlotProps = getIndexedPartProps(slotProps?.pointHit, index, [\n \"aria-label\",\n \"aria-pressed\",\n \"data-part\",\n \"type\",\n ]);\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n pointHitSlotProps.onKeyDown?.(event);\n if (event.defaultPrevented) return;\n if (event.key !== \"Enter\" && event.key !== \" \") return;\n event.preventDefault();\n onPointClick?.(index);\n };\n\n return (\n <Tag\n {...pointProps}\n {...(pointRef ? { ref: forwardPointRef(pointRef) } : {})}\n aria-hidden={interactive ? undefined : true}\n data-part=\"point\"\n data-first={previousPoint === undefined ? \"\" : undefined}\n data-crosshair-active={interactive && isActive ? \"\" : undefined}\n data-point-selected={interactive && isSelected ? \"\" : undefined}\n data-time={String(point.time)}\n data-trend={geometry.trend}\n style={{\n ...pointSlotProps.style,\n ...pointStyle(geometry, isActive ? cursorY : undefined),\n }}\n >\n {interactive ? (\n <button\n {...pointHitSlotProps}\n data-part=\"point-hit\"\n type=\"button\"\n aria-label={`Point ${String(point.time)}`}\n aria-pressed={isSelected}\n onClick={(event) => {\n pointHitSlotProps.onClick?.(event);\n if (!event.defaultPrevented) onPointClick?.(index);\n }}\n onKeyDown={handleKeyDown}\n onPointerLeave={(event) => {\n pointHitSlotProps.onPointerLeave?.(event);\n if (!event.defaultPrevented) onPointPointerLeave?.();\n }}\n onPointerMove={(event: PointerEvent<HTMLButtonElement>) => {\n pointHitSlotProps.onPointerMove?.(event);\n if (!event.defaultPrevented)\n onPointPointerMove?.({ index, offsetY: event.nativeEvent.offsetY });\n }}\n />\n ) : null}\n </Tag>\n );\n}\nLineChartPoint.displayName = \"LineChartPoint\";\n\nexport function LineChart<TAs extends ElementType = \"figure\">(\n props: LineChartProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n data,\n xAxis,\n yAxis,\n \"aria-label\": ariaLabel,\n activePointIndex,\n cursorY,\n interactive = false,\n locale = \"en-US\",\n onPointClick,\n onPointPointerLeave,\n onPointPointerMove,\n selectedPointIndex,\n slotProps,\n pointLayer,\n announceReadout = true,\n slotCount,\n slotOffset = 0,\n ...consumerProps\n } = props as LineChartProps<\"figure\"> & LineChartViewProps;\n const { min, max } = getValueBounds(data);\n const label = ariaLabel ?? \"Line chart\";\n const timeLabels = axisLabelsFor(xAxis, monthLabelsFor(data, locale));\n const valueLabels = axisLabelsFor(yAxis, valueLabelsFor(min, max, locale));\n const readoutIndex =\n activePointIndex ?? selectedPointIndex ?? (data.length > 0 ? data.length - 1 : undefined);\n const readoutPoint = readoutIndex === undefined ? undefined : data[readoutIndex];\n const crosshairPoint = activePointIndex === undefined ? undefined : data[activePointIndex];\n const points = pointLayer ?? (\n <ol\n {...getPartProps(slotProps?.points, [\"aria-label\", \"data-part\"])}\n data-part=\"points\"\n aria-label={`${label} points`}\n style={{ ...slotProps?.points?.style, ...pointsStyle(data.length) }}\n >\n {data.map((point, index) => (\n <LineChartPoint\n key={`${point.time}-${index}`}\n as=\"li\"\n point={point}\n previousPoint={data[index - 1]}\n index={index}\n count={data.length}\n min={min}\n max={max}\n interactive={interactive}\n isActive={activePointIndex === index}\n isSelected={selectedPointIndex === index}\n cursorY={cursorY}\n onPointClick={onPointClick}\n onPointPointerLeave={onPointPointerLeave}\n onPointPointerMove={onPointPointerMove}\n slotProps={slotProps}\n />\n ))}\n </ol>\n );\n const crosshairFor = (index: number, y: number | undefined) =>\n slotCount === undefined\n ? crosshairStyle(index, data.length, y)\n : slotCrosshairStyle(slotOffset + index, slotCount, y);\n\n return useRenderElement({\n as,\n defaultTag: \"figure\",\n props: {\n ...consumerProps,\n \"aria-label\": label,\n \"data-uiify-line-chart\": \"\",\n \"data-interactive\": interactive ? \"\" : undefined,\n children: (\n <>\n <figcaption {...getPartProps(slotProps?.caption)}>{label}</figcaption>\n {interactive && readoutPoint ? (\n <div\n {...getPartProps(slotProps?.readout, [\"aria-live\", \"data-part\"])}\n data-part=\"readout\"\n aria-live={announceReadout ? \"polite\" : \"off\"}\n >\n <span\n {...getPartProps(slotProps?.readoutTime, [\"data-part\"])}\n data-part=\"readout-time\"\n >\n {String(readoutPoint.time)}\n </span>\n <span {...getPartProps(slotProps?.readoutValue)}>{readoutPoint.value}</span>\n </div>\n ) : null}\n <div\n {...getPartProps(slotProps?.plot, [\"aria-hidden\", \"data-part\"])}\n data-part=\"plot\"\n aria-hidden={interactive ? undefined : true}\n >\n <div\n {...getPartProps(slotProps?.scrollViewport, [\"data-part\"])}\n data-part=\"scroll-viewport\"\n >\n <div {...getPartProps(slotProps?.canvas, [\"data-part\"])} data-part=\"canvas\">\n <div {...getPartProps(slotProps?.viewport, [\"data-part\"])} data-part=\"viewport\">\n {points}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <div\n {...getPartProps(slotProps?.crosshair, [\"aria-hidden\", \"data-part\"])}\n data-part=\"crosshair\"\n aria-hidden=\"true\"\n style={{\n ...slotProps?.crosshair?.style,\n ...crosshairFor(activePointIndex, cursorY),\n }}\n >\n <span\n {...getPartProps(slotProps?.crosshairMarker, [\"data-part\"])}\n data-part=\"crosshair-marker\"\n >\n +\n </span>\n </div>\n ) : null}\n </div>\n <div\n {...getPartProps(slotProps?.timeViewport, [\"data-part\"])}\n data-part=\"time-viewport\"\n >\n <ol\n {...getPartProps(slotProps?.timeAxis, [\"aria-label\", \"data-axis\", \"data-part\"])}\n data-part=\"time-axis\"\n data-axis=\"time\"\n aria-label={`${label} dates`}\n >\n {timeLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n {...withGeneratedStyle(\n getIndexedPartProps(slotProps?.timeAxisLabel, index, [\"data-part\"]),\n axisStyle(\"x\", axisLabel.position),\n )}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <li\n {...getPartProps(slotProps?.crosshairTime, [\"data-part\"])}\n data-part=\"crosshair-time\"\n style={{\n ...slotProps?.crosshairTime?.style,\n ...crosshairFor(activePointIndex, undefined),\n }}\n >\n {String(crosshairPoint.time)}\n </li>\n ) : null}\n </ol>\n </div>\n </div>\n </div>\n <ol\n {...getPartProps(slotProps?.valueAxis, [\"aria-label\", \"data-axis\", \"data-part\"])}\n data-part=\"value-axis\"\n data-axis=\"value\"\n aria-label={`${label} values`}\n >\n {valueLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n {...withGeneratedStyle(\n getIndexedPartProps(slotProps?.valueAxisLabel, index, [\"data-part\"]),\n axisStyle(\"y\", axisLabel.position),\n )}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <li\n {...getPartProps(slotProps?.crosshairValue, [\"data-part\"])}\n data-part=\"crosshair-value\"\n style={{ ...slotProps?.crosshairValue?.style, ...cursorStyle(cursorY) }}\n >\n {crosshairPoint.value}\n </li>\n ) : null}\n </ol>\n </div>\n <table\n {...getPartProps(slotProps?.dataTable, [\"aria-label\", \"data-part\"])}\n data-part=\"data\"\n aria-label={`${label} data`}\n >\n <thead {...getPartProps(slotProps?.dataTableHead)}>\n <tr {...getPartProps(slotProps?.dataTableHeaderRow)}>\n <th {...getPartProps(slotProps?.dataTableTimeHeader, [\"scope\"])} scope=\"col\">\n Time\n </th>\n <th {...getPartProps(slotProps?.dataTableValueHeader, [\"scope\"])} scope=\"col\">\n Value\n </th>\n </tr>\n </thead>\n <tbody {...getPartProps(slotProps?.dataTableBody)}>\n {data.map((point, index) => (\n <tr\n key={`${point.time}-${index}`}\n {...getIndexedPartProps(slotProps?.dataTableRow, slotOffset + index)}\n >\n <th\n {...getIndexedPartProps(slotProps?.dataTableTimeCell, slotOffset + index, [\n \"scope\",\n ])}\n scope=\"row\"\n >\n {String(point.time)}\n </th>\n <td {...getIndexedPartProps(slotProps?.dataTableValueCell, slotOffset + index)}>\n {point.value}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </>\n ),\n },\n render,\n state: {},\n });\n}\nLineChart.displayName = \"LineChart\";\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"LineChartClient.d.ts","sourceRoot":"","sources":["../../../../src/components/line-chart/client/LineChartClient.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,WAAW,EAAE,YAAY,EAAO,MAAM,OAAO,CAAC;AAY3E,OAAO,KAAK,EACV,oBAAoB,EAKrB,MAAM,aAAa,CAAC;AAwBrB,wBAAgB,eAAe,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAChE,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAC/B,YAAY,GAAG,IAAI,CAqJrB;yBAvJe,eAAe"}
1
+ {"version":3,"file":"LineChartClient.d.ts","sourceRoot":"","sources":["../../../../src/components/line-chart/client/LineChartClient.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,WAAW,EAAE,YAAY,EAAO,MAAM,OAAO,CAAC;AAa3E,OAAO,KAAK,EACV,oBAAoB,EAKrB,MAAM,aAAa,CAAC;AAwBrB,wBAAgB,eAAe,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAChE,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAC/B,YAAY,GAAG,IAAI,CAwKrB;yBA1Ke,eAAe"}
@@ -9,6 +9,7 @@ import {
9
9
  useLiveChartWindow
10
10
  } from "../../internal/live-chart/use-live-chart-window.js";
11
11
  import { useScrollbarReserve } from "../../internal/chart-scrollbar/use-scrollbar-reserve.js";
12
+ import { omitProps } from "../../../core/slot-props.js";
12
13
  import { VirtualScroll } from "../../virtual-scroll/VirtualScroll.js";
13
14
  import { LineChart, LineChartPoint } from "../LineChart.js";
14
15
  import { getValueBounds } from "../line-chart-geometry.js";
@@ -23,6 +24,7 @@ function LineChartClient(props) {
23
24
  onPointClick: consumerOnPointClick,
24
25
  onPointPointerLeave: consumerOnPointPointerLeave,
25
26
  onPointPointerMove: consumerOnPointPointerMove,
27
+ slotProps,
26
28
  ...consumerProps
27
29
  } = props;
28
30
  const live = visibleCount !== void 0 && visibleCount > 0;
@@ -83,6 +85,7 @@ function LineChartClient(props) {
83
85
  onPointClick: handlePointClick,
84
86
  onPointPointerLeave: handlePointPointerLeave,
85
87
  onPointPointerMove: handlePointPointerMove,
88
+ ...slotProps ? { slotProps } : {},
86
89
  ref: chartRef,
87
90
  selectedPointIndex,
88
91
  style
@@ -93,6 +96,7 @@ function LineChartClient(props) {
93
96
  const slice = data.slice(sliceStart, sliceEnd);
94
97
  const { min, max } = getValueBounds(slice);
95
98
  const toSliceIndex = (index) => index !== void 0 && index >= sliceStart && index < sliceEnd ? index - sliceStart : void 0;
99
+ const { ref: liveScrollportRef, ...liveScrollportProps } = slotProps?.liveScrollport ?? {};
96
100
  const pointLayer = /* @__PURE__ */ jsx(
97
101
  VirtualScroll,
98
102
  {
@@ -122,9 +126,24 @@ function LineChartClient(props) {
122
126
  cursorY: isActive ? cursor?.offsetY : void 0,
123
127
  onPointClick: handlePointClick,
124
128
  onPointPointerLeave: handlePointPointerLeave,
125
- onPointPointerMove: handlePointPointerMove
129
+ onPointPointerMove: handlePointPointerMove,
130
+ slotProps
126
131
  }
127
132
  );
133
+ },
134
+ ...omitProps(liveScrollportProps, [
135
+ "children",
136
+ "dangerouslySetInnerHTML",
137
+ "data-dynamic-layout",
138
+ "data-orientation",
139
+ "data-part",
140
+ "data-uiify-virtual-scroll",
141
+ "role"
142
+ ]),
143
+ ...liveScrollportRef ? { ref: liveScrollportRef } : {},
144
+ slotProps: {
145
+ ...slotProps?.liveSpacer ? { spacer: slotProps.liveSpacer } : {},
146
+ ...slotProps?.livePointRow ? { row: slotProps.livePointRow } : {}
128
147
  }
129
148
  }
130
149
  );
@@ -144,6 +163,7 @@ function LineChartClient(props) {
144
163
  pointLayer,
145
164
  cursorY: cursor?.offsetY,
146
165
  interactive: true,
166
+ ...slotProps ? { slotProps } : {},
147
167
  ref: chartRef,
148
168
  selectedPointIndex: toSliceIndex(selectedPointIndex),
149
169
  slotCount: data.length,