@gunkin/uiify 0.0.25-alpha → 0.0.27-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 (393) hide show
  1. package/README.md +59 -0
  2. package/agents/components.md +2 -0
  3. package/agents/index.md +1 -0
  4. package/agents/reference/components/accordion.md +4 -4
  5. package/agents/reference/components/alert-modal.md +10 -10
  6. package/agents/reference/components/alert.md +1 -1
  7. package/agents/reference/components/aspect-ratio.md +1 -1
  8. package/agents/reference/components/avatar.md +2 -2
  9. package/agents/reference/components/breadcrumb.md +9 -10
  10. package/agents/reference/components/candle-chart.md +35 -35
  11. package/agents/reference/components/carousel.md +10 -14
  12. package/agents/reference/components/collapsible.md +3 -3
  13. package/agents/reference/components/color-picker.md +6 -6
  14. package/agents/reference/components/combobox.md +7 -17
  15. package/agents/reference/components/context-menu.md +5 -26
  16. package/agents/reference/components/date-picker.md +2 -1
  17. package/agents/reference/components/drawer.md +17 -31
  18. package/agents/reference/components/dropdown-menu.md +2 -3
  19. package/agents/reference/components/field.md +11 -11
  20. package/agents/reference/components/form-error-summary.md +4 -4
  21. package/agents/reference/components/input-group.md +1 -0
  22. package/agents/reference/components/input.md +1 -0
  23. package/agents/reference/components/line-chart.md +29 -29
  24. package/agents/reference/components/modal.md +13 -15
  25. package/agents/reference/components/number-field.md +1 -1
  26. package/agents/reference/components/otp-input.md +2 -1
  27. package/agents/reference/components/pagination.md +7 -8
  28. package/agents/reference/components/rating.md +1 -1
  29. package/agents/reference/components/segmented-control.md +1 -0
  30. package/agents/reference/components/select.md +1 -0
  31. package/agents/reference/components/slider.md +4 -4
  32. package/agents/reference/components/spinner.md +1 -1
  33. package/agents/reference/components/table.md +1 -1
  34. package/agents/reference/components/tabs.md +6 -6
  35. package/agents/reference/components/tags-input.md +5 -12
  36. package/agents/reference/components/toast.md +8 -15
  37. package/agents/reference/components/toggle.md +4 -3
  38. package/agents/reference/components/virtual-scroll.md +4 -5
  39. package/agents/reference/elements/choice.md +3 -3
  40. package/agents/reference/elements/details.md +2 -2
  41. package/agents/reference/elements/popover.md +3 -3
  42. package/dist/ai/UiDocument.d.ts +16 -0
  43. package/dist/ai/UiDocument.d.ts.map +1 -0
  44. package/dist/ai/UiDocument.js +33 -0
  45. package/dist/ai/UiDocument.js.map +1 -0
  46. package/dist/ai/catalog.generated.d.ts +2766 -0
  47. package/dist/ai/catalog.generated.d.ts.map +1 -0
  48. package/dist/ai/catalog.generated.js +214 -0
  49. package/dist/ai/catalog.generated.js.map +1 -0
  50. package/dist/ai/index.d.ts +9 -0
  51. package/dist/ai/index.d.ts.map +1 -0
  52. package/dist/ai/index.js +13 -0
  53. package/dist/ai/index.js.map +1 -0
  54. package/dist/ai/issues.d.ts +10 -0
  55. package/dist/ai/issues.d.ts.map +1 -0
  56. package/dist/ai/issues.js +178 -0
  57. package/dist/ai/issues.js.map +1 -0
  58. package/dist/ai/layout.d.ts +26 -0
  59. package/dist/ai/layout.d.ts.map +1 -0
  60. package/dist/ai/layout.js +46 -0
  61. package/dist/ai/layout.js.map +1 -0
  62. package/dist/ai/limits.d.ts +16 -0
  63. package/dist/ai/limits.d.ts.map +1 -0
  64. package/dist/ai/limits.js +99 -0
  65. package/dist/ai/limits.js.map +1 -0
  66. package/dist/ai/load.d.ts +16 -0
  67. package/dist/ai/load.d.ts.map +1 -0
  68. package/dist/ai/load.js +69 -0
  69. package/dist/ai/load.js.map +1 -0
  70. package/dist/ai/loaders.generated.d.ts +5 -0
  71. package/dist/ai/loaders.generated.d.ts.map +1 -0
  72. package/dist/ai/loaders.generated.js +122 -0
  73. package/dist/ai/loaders.generated.js.map +1 -0
  74. package/dist/ai/rules.d.ts +11 -0
  75. package/dist/ai/rules.d.ts.map +1 -0
  76. package/dist/ai/rules.js +126 -0
  77. package/dist/ai/rules.js.map +1 -0
  78. package/dist/ai/schema.generated.d.ts +8 -0
  79. package/dist/ai/schema.generated.d.ts.map +1 -0
  80. package/dist/ai/schema.generated.js +3316 -0
  81. package/dist/ai/schema.generated.js.map +1 -0
  82. package/dist/ai/types.d.ts +33 -0
  83. package/dist/ai/types.d.ts.map +1 -0
  84. package/dist/ai/types.js +14 -0
  85. package/dist/ai/types.js.map +1 -0
  86. package/dist/ai/validate.d.ts +15 -0
  87. package/dist/ai/validate.d.ts.map +1 -0
  88. package/dist/ai/validate.js +32 -0
  89. package/dist/ai/validate.js.map +1 -0
  90. package/dist/ai/validator.generated.d.ts +13 -0
  91. package/dist/ai/validator.generated.d.ts.map +1 -0
  92. package/dist/ai/validator.generated.js +49133 -0
  93. package/dist/ai/validator.generated.js.map +1 -0
  94. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  95. package/dist/components/accordion/Accordion.js +20 -46
  96. package/dist/components/accordion/Accordion.js.map +1 -1
  97. package/dist/components/accordion/types.d.ts +6 -15
  98. package/dist/components/accordion/types.d.ts.map +1 -1
  99. package/dist/components/alert/Alert.d.ts.map +1 -1
  100. package/dist/components/alert/Alert.js +5 -14
  101. package/dist/components/alert/Alert.js.map +1 -1
  102. package/dist/components/alert/types.d.ts +3 -7
  103. package/dist/components/alert/types.d.ts.map +1 -1
  104. package/dist/components/alert-modal/AlertModal.d.ts.map +1 -1
  105. package/dist/components/alert-modal/AlertModal.js +28 -137
  106. package/dist/components/alert-modal/AlertModal.js.map +1 -1
  107. package/dist/components/alert-modal/AlertModalParts.d.ts.map +1 -1
  108. package/dist/components/alert-modal/AlertModalParts.js +4 -37
  109. package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
  110. package/dist/components/alert-modal/types.d.ts +15 -33
  111. package/dist/components/alert-modal/types.d.ts.map +1 -1
  112. package/dist/components/aspect-ratio/AspectRatio.d.ts.map +1 -1
  113. package/dist/components/aspect-ratio/AspectRatio.js +4 -12
  114. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
  115. package/dist/components/aspect-ratio/types.d.ts +3 -6
  116. package/dist/components/aspect-ratio/types.d.ts.map +1 -1
  117. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  118. package/dist/components/avatar/Avatar.js +4 -21
  119. package/dist/components/avatar/Avatar.js.map +1 -1
  120. package/dist/components/avatar/types.d.ts +4 -14
  121. package/dist/components/avatar/types.d.ts.map +1 -1
  122. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  123. package/dist/components/breadcrumb/Breadcrumb.js +43 -123
  124. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  125. package/dist/components/breadcrumb/types.d.ts +12 -35
  126. package/dist/components/breadcrumb/types.d.ts.map +1 -1
  127. package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
  128. package/dist/components/candle-chart/CandleChart.js +122 -186
  129. package/dist/components/candle-chart/CandleChart.js.map +1 -1
  130. package/dist/components/candle-chart/client/CandleChartClient.d.ts.map +1 -1
  131. package/dist/components/candle-chart/client/CandleChartClient.js +8 -15
  132. package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
  133. package/dist/components/candle-chart/types.d.ts +42 -116
  134. package/dist/components/candle-chart/types.d.ts.map +1 -1
  135. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  136. package/dist/components/carousel/CarouselMarkup.js +55 -142
  137. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  138. package/dist/components/carousel/types.d.ts +13 -80
  139. package/dist/components/carousel/types.d.ts.map +1 -1
  140. package/dist/components/collapsible/Collapsible.d.ts +1 -5
  141. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  142. package/dist/components/collapsible/Collapsible.js +3 -33
  143. package/dist/components/collapsible/Collapsible.js.map +1 -1
  144. package/dist/components/collapsible/types.d.ts +4 -18
  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 +28 -123
  148. package/dist/components/color-picker/ColorPicker.js.map +1 -1
  149. package/dist/components/color-picker/types.d.ts +11 -30
  150. package/dist/components/color-picker/types.d.ts.map +1 -1
  151. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  152. package/dist/components/combobox/Combobox.js +30 -23
  153. package/dist/components/combobox/Combobox.js.map +1 -1
  154. package/dist/components/combobox/types.d.ts +9 -29
  155. package/dist/components/combobox/types.d.ts.map +1 -1
  156. package/dist/components/context-menu/ContextMenu.d.ts.map +1 -1
  157. package/dist/components/context-menu/ContextMenu.js +30 -53
  158. package/dist/components/context-menu/ContextMenu.js.map +1 -1
  159. package/dist/components/context-menu/types.d.ts +6 -31
  160. package/dist/components/context-menu/types.d.ts.map +1 -1
  161. package/dist/components/date-picker/DatePicker.d.ts +1 -1
  162. package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
  163. package/dist/components/date-picker/DatePicker.js +2 -1
  164. package/dist/components/date-picker/DatePicker.js.map +1 -1
  165. package/dist/components/date-picker/types.d.ts +4 -1
  166. package/dist/components/date-picker/types.d.ts.map +1 -1
  167. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  168. package/dist/components/drawer/Drawer.js +12 -12
  169. package/dist/components/drawer/Drawer.js.map +1 -1
  170. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  171. package/dist/components/drawer/DrawerNative.js +47 -252
  172. package/dist/components/drawer/DrawerNative.js.map +1 -1
  173. package/dist/components/drawer/types.d.ts +25 -30
  174. package/dist/components/drawer/types.d.ts.map +1 -1
  175. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  176. package/dist/components/dropdown-menu/DropdownMenu.js +30 -27
  177. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  178. package/dist/components/dropdown-menu/DropdownMenuBar.d.ts.map +1 -1
  179. package/dist/components/dropdown-menu/DropdownMenuBar.js +3 -7
  180. package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
  181. package/dist/components/dropdown-menu/types.d.ts +2 -5
  182. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  183. package/dist/components/field/Field.js +7 -7
  184. package/dist/components/field/Field.js.map +1 -1
  185. package/dist/components/field/types.d.ts +11 -11
  186. package/dist/components/field/types.d.ts.map +1 -1
  187. package/dist/components/form-error-summary/FormErrorSummary.d.ts.map +1 -1
  188. package/dist/components/form-error-summary/FormErrorSummary.js +20 -34
  189. package/dist/components/form-error-summary/FormErrorSummary.js.map +1 -1
  190. package/dist/components/form-error-summary/types.d.ts +6 -16
  191. package/dist/components/form-error-summary/types.d.ts.map +1 -1
  192. package/dist/components/hover-card/HoverCard.d.ts.map +1 -1
  193. package/dist/components/hover-card/HoverCard.js +9 -9
  194. package/dist/components/hover-card/HoverCard.js.map +1 -1
  195. package/dist/components/input/Input.d.ts.map +1 -1
  196. package/dist/components/input/Input.js +2 -0
  197. package/dist/components/input/Input.js.map +1 -1
  198. package/dist/components/input/types.d.ts +3 -0
  199. package/dist/components/input/types.d.ts.map +1 -1
  200. package/dist/components/input-group/InputGroup.d.ts.map +1 -1
  201. package/dist/components/input-group/InputGroup.js +2 -1
  202. package/dist/components/input-group/InputGroup.js.map +1 -1
  203. package/dist/components/input-group/types.d.ts +3 -0
  204. package/dist/components/input-group/types.d.ts.map +1 -1
  205. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.d.ts +2 -2
  206. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.d.ts.map +1 -1
  207. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.js +11 -3
  208. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.js.map +1 -1
  209. package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
  210. package/dist/components/internal/choice-family/ChoiceGroup.js +14 -51
  211. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  212. package/dist/components/internal/choice-family/types.d.ts +8 -40
  213. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  214. package/dist/components/internal/control-size/types.d.ts +3 -0
  215. package/dist/components/internal/control-size/types.d.ts.map +1 -0
  216. package/dist/components/internal/control-size/types.js +1 -0
  217. package/dist/components/internal/control-size/types.js.map +1 -0
  218. package/dist/components/internal/live-chart/types.d.ts +3 -1
  219. package/dist/components/internal/live-chart/types.d.ts.map +1 -1
  220. package/dist/components/internal/live-chart/use-live-chart-window.d.ts.map +1 -1
  221. package/dist/components/internal/live-chart/use-live-chart-window.js +21 -5
  222. package/dist/components/internal/live-chart/use-live-chart-window.js.map +1 -1
  223. package/dist/components/internal/menu/menu-parts.d.ts.map +1 -1
  224. package/dist/components/internal/menu/menu-parts.js +3 -3
  225. package/dist/components/internal/menu/menu-parts.js.map +1 -1
  226. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -1
  227. package/dist/components/internal/native-check-control/NativeCheckControl.js +8 -32
  228. package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
  229. package/dist/components/internal/native-check-control/types.d.ts +4 -18
  230. package/dist/components/internal/native-check-control/types.d.ts.map +1 -1
  231. package/dist/components/line-chart/LineChart.d.ts.map +1 -1
  232. package/dist/components/line-chart/LineChart.js +134 -208
  233. package/dist/components/line-chart/LineChart.js.map +1 -1
  234. package/dist/components/line-chart/client/LineChartClient.d.ts.map +1 -1
  235. package/dist/components/line-chart/client/LineChartClient.js +8 -15
  236. package/dist/components/line-chart/client/LineChartClient.js.map +1 -1
  237. package/dist/components/line-chart/types.d.ts +36 -103
  238. package/dist/components/line-chart/types.d.ts.map +1 -1
  239. package/dist/components/modal/Modal.d.ts.map +1 -1
  240. package/dist/components/modal/Modal.js +34 -115
  241. package/dist/components/modal/Modal.js.map +1 -1
  242. package/dist/components/modal/ModalAnatomy.js +6 -6
  243. package/dist/components/modal/ModalAnatomy.js.map +1 -1
  244. package/dist/components/modal/ModalParts.js +1 -1
  245. package/dist/components/modal/ModalParts.js.map +1 -1
  246. package/dist/components/modal/client/ModalClientContent.d.ts.map +1 -1
  247. package/dist/components/modal/client/ModalClientContent.js +2 -2
  248. package/dist/components/modal/client/ModalClientContent.js.map +1 -1
  249. package/dist/components/modal/types.d.ts +19 -19
  250. package/dist/components/modal/types.d.ts.map +1 -1
  251. package/dist/components/number-field/NumberField.d.ts.map +1 -1
  252. package/dist/components/number-field/NumberField.js +13 -11
  253. package/dist/components/number-field/NumberField.js.map +1 -1
  254. package/dist/components/number-field/types.d.ts +1 -1
  255. package/dist/components/number-field/types.d.ts.map +1 -1
  256. package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
  257. package/dist/components/otp-input/OtpInput.js +9 -9
  258. package/dist/components/otp-input/OtpInput.js.map +1 -1
  259. package/dist/components/otp-input/types.d.ts +4 -1
  260. package/dist/components/otp-input/types.d.ts.map +1 -1
  261. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  262. package/dist/components/pagination/Pagination.js +26 -69
  263. package/dist/components/pagination/Pagination.js.map +1 -1
  264. package/dist/components/pagination/PaginationShell.d.ts.map +1 -1
  265. package/dist/components/pagination/PaginationShell.js +5 -6
  266. package/dist/components/pagination/PaginationShell.js.map +1 -1
  267. package/dist/components/pagination/types.d.ts +9 -32
  268. package/dist/components/pagination/types.d.ts.map +1 -1
  269. package/dist/components/rating/types.d.ts +1 -5
  270. package/dist/components/rating/types.d.ts.map +1 -1
  271. package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
  272. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
  273. package/dist/components/segmented-control/SegmentedControl.js +4 -2
  274. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  275. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts +1 -1
  276. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts.map +1 -1
  277. package/dist/components/segmented-control/client/SegmentedControlClient.js +4 -2
  278. package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
  279. package/dist/components/segmented-control/types.d.ts +3 -0
  280. package/dist/components/segmented-control/types.d.ts.map +1 -1
  281. package/dist/components/select/Select.d.ts.map +1 -1
  282. package/dist/components/select/Select.js +2 -0
  283. package/dist/components/select/Select.js.map +1 -1
  284. package/dist/components/select/types.d.ts +3 -0
  285. package/dist/components/select/types.d.ts.map +1 -1
  286. package/dist/components/slider/Slider.d.ts.map +1 -1
  287. package/dist/components/slider/Slider.js +12 -7
  288. package/dist/components/slider/Slider.js.map +1 -1
  289. package/dist/components/slider/client/SliderClient.d.ts.map +1 -1
  290. package/dist/components/slider/client/SliderClient.js +53 -100
  291. package/dist/components/slider/client/SliderClient.js.map +1 -1
  292. package/dist/components/slider/types.d.ts +8 -38
  293. package/dist/components/slider/types.d.ts.map +1 -1
  294. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  295. package/dist/components/spinner/Spinner.js +2 -10
  296. package/dist/components/spinner/Spinner.js.map +1 -1
  297. package/dist/components/spinner/types.d.ts +3 -6
  298. package/dist/components/spinner/types.d.ts.map +1 -1
  299. package/dist/components/table/client/TableColumnHeader.d.ts.map +1 -1
  300. package/dist/components/table/client/TableColumnHeader.js +1 -15
  301. package/dist/components/table/client/TableColumnHeader.js.map +1 -1
  302. package/dist/components/table/types.d.ts +2 -6
  303. package/dist/components/table/types.d.ts.map +1 -1
  304. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  305. package/dist/components/tabs/Tabs.js +9 -43
  306. package/dist/components/tabs/Tabs.js.map +1 -1
  307. package/dist/components/tabs/types.d.ts +8 -21
  308. package/dist/components/tabs/types.d.ts.map +1 -1
  309. package/dist/components/tags-input/TagsInput.d.ts.map +1 -1
  310. package/dist/components/tags-input/TagsInput.js +16 -27
  311. package/dist/components/tags-input/TagsInput.js.map +1 -1
  312. package/dist/components/tags-input/types.d.ts +8 -23
  313. package/dist/components/tags-input/types.d.ts.map +1 -1
  314. package/dist/components/toast/Toast.d.ts.map +1 -1
  315. package/dist/components/toast/Toast.js +13 -62
  316. package/dist/components/toast/Toast.js.map +1 -1
  317. package/dist/components/toast/ToastElements.d.ts.map +1 -1
  318. package/dist/components/toast/ToastElements.js +20 -57
  319. package/dist/components/toast/ToastElements.js.map +1 -1
  320. package/dist/components/toast/types.d.ts +9 -36
  321. package/dist/components/toast/types.d.ts.map +1 -1
  322. package/dist/components/toggle/Toggle.d.ts +1 -1
  323. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  324. package/dist/components/toggle/Toggle.js +36 -61
  325. package/dist/components/toggle/Toggle.js.map +1 -1
  326. package/dist/components/toggle/types.d.ts +5 -24
  327. package/dist/components/toggle/types.d.ts.map +1 -1
  328. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  329. package/dist/components/tooltip/Tooltip.js +4 -4
  330. package/dist/components/tooltip/Tooltip.js.map +1 -1
  331. package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
  332. package/dist/components/virtual-scroll/VirtualScroll.js +66 -44
  333. package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
  334. package/dist/components/virtual-scroll/VirtualScrollRowShell.js +2 -2
  335. package/dist/components/virtual-scroll/VirtualScrollRowShell.js.map +1 -1
  336. package/dist/components/virtual-scroll/types.d.ts +7 -20
  337. package/dist/components/virtual-scroll/types.d.ts.map +1 -1
  338. package/dist/components/virtual-scroll/types.js.map +1 -1
  339. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.d.ts +3 -0
  340. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.d.ts.map +1 -1
  341. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.js +11 -2
  342. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.js.map +1 -1
  343. package/dist/core/class-names.d.ts +3 -0
  344. package/dist/core/class-names.d.ts.map +1 -0
  345. package/dist/core/class-names.js +7 -0
  346. package/dist/core/class-names.js.map +1 -0
  347. package/dist/core/part-names.d.ts +8 -0
  348. package/dist/core/part-names.d.ts.map +1 -0
  349. package/dist/core/part-names.js +111 -0
  350. package/dist/core/part-names.js.map +1 -0
  351. package/dist/core/polymorphic.d.ts +10 -3
  352. package/dist/core/polymorphic.d.ts.map +1 -1
  353. package/dist/core/render-native-invoker.d.ts +1 -0
  354. package/dist/core/render-native-invoker.d.ts.map +1 -1
  355. package/dist/core/render-native-invoker.js +6 -6
  356. package/dist/core/render-native-invoker.js.map +1 -1
  357. package/dist/core/roving-focus.d.ts +2 -2
  358. package/dist/core/roving-focus.d.ts.map +1 -1
  359. package/dist/core/roving-focus.js +6 -7
  360. package/dist/core/roving-focus.js.map +1 -1
  361. package/dist/core/slot-props.d.ts +9 -7
  362. package/dist/core/slot-props.d.ts.map +1 -1
  363. package/dist/core/slot-props.js +4 -14
  364. package/dist/core/slot-props.js.map +1 -1
  365. package/dist/elements/choice/Choice.d.ts.map +1 -1
  366. package/dist/elements/choice/Choice.js +5 -42
  367. package/dist/elements/choice/Choice.js.map +1 -1
  368. package/dist/elements/choice/types.d.ts +4 -11
  369. package/dist/elements/choice/types.d.ts.map +1 -1
  370. package/dist/elements/details/Details.d.ts.map +1 -1
  371. package/dist/elements/details/Details.js +4 -5
  372. package/dist/elements/details/Details.js.map +1 -1
  373. package/dist/elements/details/types.d.ts +3 -3
  374. package/dist/elements/details/types.d.ts.map +1 -1
  375. package/dist/elements/dialog/Dialog.d.ts.map +1 -1
  376. package/dist/elements/dialog/Dialog.js +1 -1
  377. package/dist/elements/dialog/Dialog.js.map +1 -1
  378. package/dist/elements/invoker/Invoker.js +3 -3
  379. package/dist/elements/invoker/Invoker.js.map +1 -1
  380. package/dist/elements/popover/Popover.d.ts.map +1 -1
  381. package/dist/elements/popover/Popover.js +3 -3
  382. package/dist/elements/popover/Popover.js.map +1 -1
  383. package/dist/elements/popover/types.d.ts +6 -4
  384. package/dist/elements/popover/types.d.ts.map +1 -1
  385. package/dist/styles/index.css +1 -1
  386. package/dist/styles/tailwind.css +2 -2
  387. package/dist/styles/tokens.css +1 -1
  388. package/package.json +10 -1
  389. package/skills/uiify/SKILL.md +14 -10
  390. package/skills/uiify/references/elements/aspect-ratio.md +1 -1
  391. package/skills/uiify/references/elements/field.md +1 -1
  392. package/skills/uiify/references/elements/toggle.md +1 -0
  393. package/skills/uiify/references/guides/verification.md +13 -2
@@ -1,6 +1,7 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers";
2
3
  import { useRenderElement } from "@gunkin/uiify/core/render";
3
- import { mergeRepeatedSlotProps, omitProps } from "../../core/slot-props.js";
4
+ import { mergeRepeatedSlotProps } from "../../core/slot-props.js";
4
5
  import { assignRef } from "../../hooks/utils/assign-ref.js";
5
6
  import {
6
7
  axisLabelsFor,
@@ -15,21 +16,12 @@ import {
15
16
  slotCrosshairStyle,
16
17
  valueLabelsFor
17
18
  } from "./line-chart-geometry.js";
18
- function getPartProps(props, protectedKeys = []) {
19
- return omitProps(props, ["children", "dangerouslySetInnerHTML", ...protectedKeys]);
20
- }
21
- function getIndexedPartProps(props, index, protectedKeys = []) {
19
+ function getIndexedPartProps(props, index) {
22
20
  const { byItemIndex, ...common } = props ?? {};
23
- const merged = mergeRepeatedSlotProps(common, byItemIndex?.[index]);
24
- return omitProps(merged, [
25
- "children",
26
- "dangerouslySetInnerHTML",
27
- "byItemIndex",
28
- ...protectedKeys
29
- ]);
21
+ return mergeRepeatedSlotProps(common, byItemIndex?.[index]);
30
22
  }
31
23
  function withGeneratedStyle(props, generatedStyle) {
32
- return { ...props, style: { ...props.style, ...generatedStyle } };
24
+ return { ...props, style: { ...generatedStyle, ...props.style } };
33
25
  }
34
26
  function forwardPointRef(ref) {
35
27
  return (element) => {
@@ -58,25 +50,10 @@ function LineChartPoint({
58
50
  slotProps
59
51
  }) {
60
52
  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
- ]);
53
+ const pointSlotProps = getIndexedPartProps(slotProps?.point, index);
70
54
  const { ref: pointRef, ...pointProps } = pointSlotProps;
71
- const pointHitSlotProps = getIndexedPartProps(slotProps?.pointHit, index, [
72
- "aria-label",
73
- "aria-pressed",
74
- "data-part",
75
- "type"
76
- ]);
55
+ const pointHitSlotProps = getIndexedPartProps(slotProps?.pointHit, index);
77
56
  const handleKeyDown = (event) => {
78
- pointHitSlotProps.onKeyDown?.(event);
79
- if (event.defaultPrevented) return;
80
57
  if (event.key !== "Enter" && event.key !== " ") return;
81
58
  event.preventDefault();
82
59
  onPointClick?.(index);
@@ -84,8 +61,6 @@ function LineChartPoint({
84
61
  return /* @__PURE__ */ jsx(
85
62
  Tag,
86
63
  {
87
- ...pointProps,
88
- ...pointRef ? { ref: forwardPointRef(pointRef) } : {},
89
64
  "aria-hidden": interactive ? void 0 : true,
90
65
  "data-part": "point",
91
66
  "data-first": previousPoint === void 0 ? "" : void 0,
@@ -93,32 +68,30 @@ function LineChartPoint({
93
68
  "data-point-selected": interactive && isSelected ? "" : void 0,
94
69
  "data-time": String(point.time),
95
70
  "data-trend": geometry.trend,
71
+ ...pointProps,
72
+ ...pointRef ? { ref: forwardPointRef(pointRef) } : {},
96
73
  style: {
97
- ...pointSlotProps.style,
98
- ...pointStyle(geometry, isActive ? cursorY : void 0)
74
+ ...pointStyle(geometry, isActive ? cursorY : void 0),
75
+ ...pointSlotProps.style
99
76
  },
100
77
  children: interactive ? /* @__PURE__ */ jsx(
101
78
  "button",
102
79
  {
103
- ...pointHitSlotProps,
104
80
  "data-part": "point-hit",
105
81
  type: "button",
106
82
  "aria-label": `Point ${String(point.time)}`,
107
83
  "aria-pressed": isSelected,
108
- onClick: (event) => {
109
- pointHitSlotProps.onClick?.(event);
110
- if (!event.defaultPrevented) onPointClick?.(index);
111
- },
112
- onKeyDown: handleKeyDown,
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
- }
84
+ ...pointHitSlotProps,
85
+ onClick: composeEventHandlers(pointHitSlotProps.onClick, () => onPointClick?.(index)),
86
+ onKeyDown: composeEventHandlers(pointHitSlotProps.onKeyDown, handleKeyDown),
87
+ onPointerLeave: composeEventHandlers(
88
+ pointHitSlotProps.onPointerLeave,
89
+ () => onPointPointerLeave?.()
90
+ ),
91
+ onPointerMove: composeEventHandlers(
92
+ pointHitSlotProps.onPointerMove,
93
+ (event) => onPointPointerMove?.({ index, offsetY: event.nativeEvent.offsetY })
94
+ )
122
95
  }
123
96
  ) : null
124
97
  }
@@ -132,7 +105,6 @@ function LineChart(props) {
132
105
  data,
133
106
  xAxis,
134
107
  yAxis,
135
- "aria-label": ariaLabel,
136
108
  activePointIndex,
137
109
  cursorY,
138
110
  interactive = false,
@@ -149,7 +121,7 @@ function LineChart(props) {
149
121
  ...consumerProps
150
122
  } = props;
151
123
  const { min, max } = getValueBounds(data);
152
- const label = ariaLabel ?? "Line chart";
124
+ const label = consumerProps["aria-label"] ?? "Line chart";
153
125
  const timeLabels = axisLabelsFor(xAxis, monthLabelsFor(data, locale));
154
126
  const valueLabels = axisLabelsFor(yAxis, valueLabelsFor(min, max, locale));
155
127
  const readoutIndex = activePointIndex ?? selectedPointIndex ?? (data.length > 0 ? data.length - 1 : void 0);
@@ -158,10 +130,10 @@ function LineChart(props) {
158
130
  const points = pointLayer ?? /* @__PURE__ */ jsx(
159
131
  "ol",
160
132
  {
161
- ...getPartProps(slotProps?.points, ["aria-label", "data-part"]),
162
133
  "data-part": "points",
163
134
  "aria-label": `${label} points`,
164
- style: { ...slotProps?.points?.style, ...pointsStyle(data.length) },
135
+ ...slotProps?.points,
136
+ style: { ...pointsStyle(data.length), ...slotProps?.points?.style },
165
137
  children: data.map((point, index) => /* @__PURE__ */ jsx(
166
138
  LineChartPoint,
167
139
  {
@@ -190,179 +162,133 @@ function LineChart(props) {
190
162
  as,
191
163
  defaultTag: "figure",
192
164
  props: {
193
- ...consumerProps,
194
165
  "aria-label": label,
195
166
  "data-uiify-line-chart": "",
196
167
  "data-interactive": interactive ? "" : void 0,
168
+ ...consumerProps,
197
169
  children: /* @__PURE__ */ jsxs(Fragment, { children: [
198
- /* @__PURE__ */ jsx("figcaption", { ...getPartProps(slotProps?.caption), children: label }),
170
+ /* @__PURE__ */ jsx("figcaption", { ...slotProps?.caption, children: label }),
199
171
  interactive && readoutPoint ? /* @__PURE__ */ jsxs(
200
172
  "div",
201
173
  {
202
- ...getPartProps(slotProps?.readout, ["aria-live", "data-part"]),
203
174
  "data-part": "readout",
204
175
  "aria-live": announceReadout ? "polite" : "off",
176
+ ...slotProps?.readout,
205
177
  children: [
206
- /* @__PURE__ */ jsx(
207
- "span",
208
- {
209
- ...getPartProps(slotProps?.readoutTime, ["data-part"]),
210
- "data-part": "readout-time",
211
- children: String(readoutPoint.time)
212
- }
213
- ),
214
- /* @__PURE__ */ jsx("span", { ...getPartProps(slotProps?.readoutValue), children: readoutPoint.value })
178
+ /* @__PURE__ */ jsx("span", { "data-part": "readout-time", ...slotProps?.readoutTime, children: String(readoutPoint.time) }),
179
+ /* @__PURE__ */ jsx("span", { ...slotProps?.readoutValue, children: readoutPoint.value })
215
180
  ]
216
181
  }
217
182
  ) : 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(
183
+ /* @__PURE__ */ jsxs("div", { "data-part": "plot", "aria-hidden": interactive ? void 0 : true, ...slotProps?.plot, children: [
184
+ /* @__PURE__ */ jsx("div", { "data-part": "scroll-viewport", ...slotProps?.scrollViewport, children: /* @__PURE__ */ jsxs("div", { "data-part": "canvas", ...slotProps?.canvas, children: [
185
+ /* @__PURE__ */ jsxs("div", { "data-part": "viewport", ...slotProps?.viewport, children: [
186
+ points,
187
+ interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
226
188
  "div",
227
189
  {
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
- ] })
190
+ "data-part": "crosshair",
191
+ "aria-hidden": "true",
192
+ ...slotProps?.crosshair,
193
+ style: {
194
+ ...crosshairFor(activePointIndex, cursorY),
195
+ ...slotProps?.crosshair?.style
196
+ },
197
+ children: /* @__PURE__ */ jsx("span", { "data-part": "crosshair-marker", ...slotProps?.crosshairMarker, children: "+" })
296
198
  }
297
- ),
298
- /* @__PURE__ */ jsxs(
299
- "ol",
300
- {
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
199
+ ) : null
200
+ ] }),
201
+ /* @__PURE__ */ jsx("div", { "data-part": "time-viewport", ...slotProps?.timeViewport, children: /* @__PURE__ */ jsxs(
202
+ "ol",
203
+ {
204
+ "data-part": "time-axis",
205
+ "data-axis": "time",
206
+ "aria-label": `${label} dates`,
207
+ ...slotProps?.timeAxis,
208
+ children: [
209
+ timeLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
210
+ "li",
211
+ {
212
+ ...withGeneratedStyle(
213
+ getIndexedPartProps(slotProps?.timeAxisLabel, index),
214
+ axisStyle("x", axisLabel.position)
215
+ ),
216
+ children: axisLabel.label
217
+ },
218
+ `${axisLabel.position}-${index}`
219
+ )),
220
+ interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
221
+ "li",
222
+ {
223
+ "data-part": "crosshair-time",
224
+ ...slotProps?.crosshairTime,
225
+ style: {
226
+ ...crosshairFor(activePointIndex, void 0),
227
+ ...slotProps?.crosshairTime?.style
314
228
  },
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
- ]
327
- }
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
- }
229
+ children: String(crosshairPoint.time)
230
+ }
231
+ ) : null
232
+ ]
233
+ }
234
+ ) })
235
+ ] }) }),
236
+ /* @__PURE__ */ jsxs(
237
+ "ol",
238
+ {
239
+ "data-part": "value-axis",
240
+ "data-axis": "value",
241
+ "aria-label": `${label} values`,
242
+ ...slotProps?.valueAxis,
243
+ children: [
244
+ valueLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
245
+ "li",
246
+ {
247
+ ...withGeneratedStyle(
248
+ getIndexedPartProps(slotProps?.valueAxisLabel, index),
249
+ axisStyle("y", axisLabel.position)
357
250
  ),
358
- /* @__PURE__ */ jsx("td", { ...getIndexedPartProps(slotProps?.dataTableValueCell, slotOffset + index), children: point.value })
359
- ]
360
- },
361
- `${point.time}-${index}`
362
- )) })
363
- ]
364
- }
365
- )
251
+ children: axisLabel.label
252
+ },
253
+ `${axisLabel.position}-${index}`
254
+ )),
255
+ interactive && crosshairPoint && activePointIndex !== void 0 ? /* @__PURE__ */ jsx(
256
+ "li",
257
+ {
258
+ "data-part": "crosshair-value",
259
+ ...slotProps?.crosshairValue,
260
+ style: { ...cursorStyle(cursorY), ...slotProps?.crosshairValue?.style },
261
+ children: crosshairPoint.value
262
+ }
263
+ ) : null
264
+ ]
265
+ }
266
+ )
267
+ ] }),
268
+ /* @__PURE__ */ jsxs("table", { "data-part": "data", "aria-label": `${label} data`, ...slotProps?.dataTable, children: [
269
+ /* @__PURE__ */ jsx("thead", { ...slotProps?.dataTableHead, children: /* @__PURE__ */ jsxs("tr", { ...slotProps?.dataTableHeaderRow, children: [
270
+ /* @__PURE__ */ jsx("th", { scope: "col", ...slotProps?.dataTableTimeHeader, children: "Time" }),
271
+ /* @__PURE__ */ jsx("th", { scope: "col", ...slotProps?.dataTableValueHeader, children: "Value" })
272
+ ] }) }),
273
+ /* @__PURE__ */ jsx("tbody", { ...slotProps?.dataTableBody, children: data.map((point, index) => /* @__PURE__ */ jsxs(
274
+ "tr",
275
+ {
276
+ ...getIndexedPartProps(slotProps?.dataTableRow, slotOffset + index),
277
+ children: [
278
+ /* @__PURE__ */ jsx(
279
+ "th",
280
+ {
281
+ scope: "row",
282
+ ...getIndexedPartProps(slotProps?.dataTableTimeCell, slotOffset + index),
283
+ children: String(point.time)
284
+ }
285
+ ),
286
+ /* @__PURE__ */ jsx("td", { ...getIndexedPartProps(slotProps?.dataTableValueCell, slotOffset + index), children: point.value })
287
+ ]
288
+ },
289
+ `${point.time}-${index}`
290
+ )) })
291
+ ] })
366
292
  ] })
367
293
  },
368
294
  render,
@@ -1 +1 @@
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":"AAsHQ,SAuGA,UAvGA,KA0GI,YA1GJ;AArHR,SAAS,wBAAwB;AACjC,SAAS,wBAAwB,iBAAiB;AAClD,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,SAAS,aACP,OACA,gBAAmC,CAAC,GACjC;AACH,SAAO,UAAU,OAAO,CAAC,YAAY,2BAA2B,GAAG,aAAa,CAAC;AACnF;AAEA,SAAS,oBACP,OACA,OACA,gBAAmC,CAAC,GACjC;AACH,QAAM,EAAE,aAAa,GAAG,OAAO,IAAI,SAAS,CAAC;AAC7C,QAAM,SAAS,uBAAuB,QAAa,cAAc,KAAK,CAAC;AACvE,SAAO,UAAU,QAAQ;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AACH;AAEA,SAAS,mBACP,OACA,gBACG;AACH,SAAO,EAAE,GAAG,OAAO,OAAO,EAAE,GAAG,MAAM,OAAO,GAAG,eAAe,EAAE;AAClE;AAEA,SAAS,gBAAgB,KAAmC;AAC1D,SAAO,CAAC,YAAwE;AAC9E,UAAM,UAAU,UAAU,KAAK,OAAO;AACtC,QAAI,OAAO,YAAY,WAAY,QAAO;AAC1C,QAAI,OAAO,OAAO,QAAQ,cAAc,YAAY,MAAM;AACxD,aAAO,MAAM,UAAU,KAAK,IAAI;AAAA,IAClC;AAAA,EACF;AACF;AAGO,SAAS,eAAe;AAAA,EAC7B,IAAI;AAAA,EACJ;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;AACF,GAAsC;AACpC,QAAM,WAAW,YAAY,OAAO,eAAe,OAAO,OAAO,KAAK,GAAG;AACzE,QAAM,iBAAiB,oBAAoB,WAAW,OAAO,OAAO;AAAA,IAClE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,EAAE,KAAK,UAAU,GAAG,WAAW,IAAI;AACzC,QAAM,oBAAoB,oBAAoB,WAAW,UAAU,OAAO;AAAA,IACxE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,gBAAgB,CAAC,UAA4C;AACjE,sBAAkB,YAAY,KAAK;AACnC,QAAI,MAAM,iBAAkB;AAC5B,QAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,IAAK;AAChD,UAAM,eAAe;AACrB,mBAAe,KAAK;AAAA,EACtB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACH,GAAI,WAAW,EAAE,KAAK,gBAAgB,QAAQ,EAAE,IAAI,CAAC;AAAA,MACtD,eAAa,cAAc,SAAY;AAAA,MACvC,aAAU;AAAA,MACV,cAAY,kBAAkB,SAAY,KAAK;AAAA,MAC/C,yBAAuB,eAAe,WAAW,KAAK;AAAA,MACtD,uBAAqB,eAAe,aAAa,KAAK;AAAA,MACtD,aAAW,OAAO,MAAM,IAAI;AAAA,MAC5B,cAAY,SAAS;AAAA,MACrB,OAAO;AAAA,QACL,GAAG,eAAe;AAAA,QAClB,GAAG,WAAW,UAAU,WAAW,UAAU,MAAS;AAAA,MACxD;AAAA,MAEC,wBACC;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ,aAAU;AAAA,UACV,MAAK;AAAA,UACL,cAAY,SAAS,OAAO,MAAM,IAAI,CAAC;AAAA,UACvC,gBAAc;AAAA,UACd,SAAS,CAAC,UAAU;AAClB,8BAAkB,UAAU,KAAK;AACjC,gBAAI,CAAC,MAAM,iBAAkB,gBAAe,KAAK;AAAA,UACnD;AAAA,UACA,WAAW;AAAA,UACX,gBAAgB,CAAC,UAAU;AACzB,8BAAkB,iBAAiB,KAAK;AACxC,gBAAI,CAAC,MAAM,iBAAkB,uBAAsB;AAAA,UACrD;AAAA,UACA,eAAe,CAAC,UAA2C;AACzD,8BAAkB,gBAAgB,KAAK;AACvC,gBAAI,CAAC,MAAM;AACT,mCAAqB,EAAE,OAAO,SAAS,MAAM,YAAY,QAAQ,CAAC;AAAA,UACtE;AAAA;AAAA,MACF,IACE;AAAA;AAAA,EACN;AAEJ;AACA,eAAe,cAAc;AAEtB,SAAS,UACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,kBAAkB;AAAA,IAClB;AAAA,IACA,aAAa;AAAA,IACb,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,EAAE,KAAK,IAAI,IAAI,eAAe,IAAI;AACxC,QAAM,QAAQ,aAAa;AAC3B,QAAM,aAAa,cAAc,OAAO,eAAe,MAAM,MAAM,CAAC;AACpE,QAAM,cAAc,cAAc,OAAO,eAAe,KAAK,KAAK,MAAM,CAAC;AACzE,QAAM,eACJ,oBAAoB,uBAAuB,KAAK,SAAS,IAAI,KAAK,SAAS,IAAI;AACjF,QAAM,eAAe,iBAAiB,SAAY,SAAY,KAAK,YAAY;AAC/E,QAAM,iBAAiB,qBAAqB,SAAY,SAAY,KAAK,gBAAgB;AACzF,QAAM,SAAS,cACb;AAAA,IAAC;AAAA;AAAA,MACE,GAAG,aAAa,WAAW,QAAQ,CAAC,cAAc,WAAW,CAAC;AAAA,MAC/D,aAAU;AAAA,MACV,cAAY,GAAG,KAAK;AAAA,MACpB,OAAO,EAAE,GAAG,WAAW,QAAQ,OAAO,GAAG,YAAY,KAAK,MAAM,EAAE;AAAA,MAEjE,eAAK,IAAI,CAAC,OAAO,UAChB;AAAA,QAAC;AAAA;AAAA,UAEC,IAAG;AAAA,UACH;AAAA,UACA,eAAe,KAAK,QAAQ,CAAC;AAAA,UAC7B;AAAA,UACA,OAAO,KAAK;AAAA,UACZ;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU,qBAAqB;AAAA,UAC/B,YAAY,uBAAuB;AAAA,UACnC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,QAfK,GAAG,MAAM,IAAI,IAAI,KAAK;AAAA,MAgB7B,CACD;AAAA;AAAA,EACH;AAEF,QAAM,eAAe,CAAC,OAAe,MACnC,cAAc,SACV,eAAe,OAAO,KAAK,QAAQ,CAAC,IACpC,mBAAmB,aAAa,OAAO,WAAW,CAAC;AAEzD,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,cAAc;AAAA,MACd,yBAAyB;AAAA,MACzB,oBAAoB,cAAc,KAAK;AAAA,MACvC,UACE,iCACE;AAAA,4BAAC,gBAAY,GAAG,aAAa,WAAW,OAAO,GAAI,iBAAM;AAAA,QACxD,eAAe,eACd;AAAA,UAAC;AAAA;AAAA,YACE,GAAG,aAAa,WAAW,SAAS,CAAC,aAAa,WAAW,CAAC;AAAA,YAC/D,aAAU;AAAA,YACV,aAAW,kBAAkB,WAAW;AAAA,YAExC;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACE,GAAG,aAAa,WAAW,aAAa,CAAC,WAAW,CAAC;AAAA,kBACtD,aAAU;AAAA,kBAET,iBAAO,aAAa,IAAI;AAAA;AAAA,cAC3B;AAAA,cACA,oBAAC,UAAM,GAAG,aAAa,WAAW,YAAY,GAAI,uBAAa,OAAM;AAAA;AAAA;AAAA,QACvE,IACE;AAAA,QACJ;AAAA,UAAC;AAAA;AAAA,YACE,GAAG,aAAa,WAAW,MAAM,CAAC,eAAe,WAAW,CAAC;AAAA,YAC9D,aAAU;AAAA,YACV,eAAa,cAAc,SAAY;AAAA,YAEvC;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACE,GAAG,aAAa,WAAW,gBAAgB,CAAC,WAAW,CAAC;AAAA,kBACzD,aAAU;AAAA,kBAEV,+BAAC,SAAK,GAAG,aAAa,WAAW,QAAQ,CAAC,WAAW,CAAC,GAAG,aAAU,UACjE;AAAA,yCAAC,SAAK,GAAG,aAAa,WAAW,UAAU,CAAC,WAAW,CAAC,GAAG,aAAU,YAClE;AAAA;AAAA,sBACA,eAAe,kBAAkB,qBAAqB,SACrD;AAAA,wBAAC;AAAA;AAAA,0BACE,GAAG,aAAa,WAAW,WAAW,CAAC,eAAe,WAAW,CAAC;AAAA,0BACnE,aAAU;AAAA,0BACV,eAAY;AAAA,0BACZ,OAAO;AAAA,4BACL,GAAG,WAAW,WAAW;AAAA,4BACzB,GAAG,aAAa,kBAAkB,OAAO;AAAA,0BAC3C;AAAA,0BAEA;AAAA,4BAAC;AAAA;AAAA,8BACE,GAAG,aAAa,WAAW,iBAAiB,CAAC,WAAW,CAAC;AAAA,8BAC1D,aAAU;AAAA,8BACX;AAAA;AAAA,0BAED;AAAA;AAAA,sBACF,IACE;AAAA,uBACN;AAAA,oBACA;AAAA,sBAAC;AAAA;AAAA,wBACE,GAAG,aAAa,WAAW,cAAc,CAAC,WAAW,CAAC;AAAA,wBACvD,aAAU;AAAA,wBAEV;AAAA,0BAAC;AAAA;AAAA,4BACE,GAAG,aAAa,WAAW,UAAU,CAAC,cAAc,aAAa,WAAW,CAAC;AAAA,4BAC9E,aAAU;AAAA,4BACV,aAAU;AAAA,4BACV,cAAY,GAAG,KAAK;AAAA,4BAEnB;AAAA,yCAAW,IAAI,CAAC,WAAW,UAC1B;AAAA,gCAAC;AAAA;AAAA,kCAEE,GAAG;AAAA,oCACF,oBAAoB,WAAW,eAAe,OAAO,CAAC,WAAW,CAAC;AAAA,oCAClE,UAAU,KAAK,UAAU,QAAQ;AAAA,kCACnC;AAAA,kCAEC,oBAAU;AAAA;AAAA,gCANN,GAAG,UAAU,QAAQ,IAAI,KAAK;AAAA,8BAOrC,CACD;AAAA,8BACA,eAAe,kBAAkB,qBAAqB,SACrD;AAAA,gCAAC;AAAA;AAAA,kCACE,GAAG,aAAa,WAAW,eAAe,CAAC,WAAW,CAAC;AAAA,kCACxD,aAAU;AAAA,kCACV,OAAO;AAAA,oCACL,GAAG,WAAW,eAAe;AAAA,oCAC7B,GAAG,aAAa,kBAAkB,MAAS;AAAA,kCAC7C;AAAA,kCAEC,iBAAO,eAAe,IAAI;AAAA;AAAA,8BAC7B,IACE;AAAA;AAAA;AAAA,wBACN;AAAA;AAAA,oBACF;AAAA,qBACF;AAAA;AAAA,cACF;AAAA,cACA;AAAA,gBAAC;AAAA;AAAA,kBACE,GAAG,aAAa,WAAW,WAAW,CAAC,cAAc,aAAa,WAAW,CAAC;AAAA,kBAC/E,aAAU;AAAA,kBACV,aAAU;AAAA,kBACV,cAAY,GAAG,KAAK;AAAA,kBAEnB;AAAA,gCAAY,IAAI,CAAC,WAAW,UAC3B;AAAA,sBAAC;AAAA;AAAA,wBAEE,GAAG;AAAA,0BACF,oBAAoB,WAAW,gBAAgB,OAAO,CAAC,WAAW,CAAC;AAAA,0BACnE,UAAU,KAAK,UAAU,QAAQ;AAAA,wBACnC;AAAA,wBAEC,oBAAU;AAAA;AAAA,sBANN,GAAG,UAAU,QAAQ,IAAI,KAAK;AAAA,oBAOrC,CACD;AAAA,oBACA,eAAe,kBAAkB,qBAAqB,SACrD;AAAA,sBAAC;AAAA;AAAA,wBACE,GAAG,aAAa,WAAW,gBAAgB,CAAC,WAAW,CAAC;AAAA,wBACzD,aAAU;AAAA,wBACV,OAAO,EAAE,GAAG,WAAW,gBAAgB,OAAO,GAAG,YAAY,OAAO,EAAE;AAAA,wBAErE,yBAAe;AAAA;AAAA,oBAClB,IACE;AAAA;AAAA;AAAA,cACN;AAAA;AAAA;AAAA,QACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACE,GAAG,aAAa,WAAW,WAAW,CAAC,cAAc,WAAW,CAAC;AAAA,YAClE,aAAU;AAAA,YACV,cAAY,GAAG,KAAK;AAAA,YAEpB;AAAA,kCAAC,WAAO,GAAG,aAAa,WAAW,aAAa,GAC9C,+BAAC,QAAI,GAAG,aAAa,WAAW,kBAAkB,GAChD;AAAA,oCAAC,QAAI,GAAG,aAAa,WAAW,qBAAqB,CAAC,OAAO,CAAC,GAAG,OAAM,OAAM,kBAE7E;AAAA,gBACA,oBAAC,QAAI,GAAG,aAAa,WAAW,sBAAsB,CAAC,OAAO,CAAC,GAAG,OAAM,OAAM,mBAE9E;AAAA,iBACF,GACF;AAAA,cACA,oBAAC,WAAO,GAAG,aAAa,WAAW,aAAa,GAC7C,eAAK,IAAI,CAAC,OAAO,UAChB;AAAA,gBAAC;AAAA;AAAA,kBAEE,GAAG,oBAAoB,WAAW,cAAc,aAAa,KAAK;AAAA,kBAEnE;AAAA;AAAA,sBAAC;AAAA;AAAA,wBACE,GAAG,oBAAoB,WAAW,mBAAmB,aAAa,OAAO;AAAA,0BACxE;AAAA,wBACF,CAAC;AAAA,wBACD,OAAM;AAAA,wBAEL,iBAAO,MAAM,IAAI;AAAA;AAAA,oBACpB;AAAA,oBACA,oBAAC,QAAI,GAAG,oBAAoB,WAAW,oBAAoB,aAAa,KAAK,GAC1E,gBAAM,OACT;AAAA;AAAA;AAAA,gBAbK,GAAG,MAAM,IAAI,IAAI,KAAK;AAAA,cAc7B,CACD,GACH;AAAA;AAAA;AAAA,QACF;AAAA,SACF;AAAA,IAEJ;AAAA,IACA;AAAA,IACA,OAAO,CAAC;AAAA,EACV,CAAC;AACH;AACA,UAAU,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/line-chart/LineChart.tsx"],"sourcesContent":["import type { ElementType, KeyboardEvent, PointerEvent, ReactElement, Ref } from \"react\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { mergeRepeatedSlotProps } 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 getIndexedPartProps<T extends object>(\n props: (T & { readonly byItemIndex?: Readonly<Record<number, T>> }) | undefined,\n index: number,\n): T {\n const { byItemIndex, ...common } = props ?? {};\n return mergeRepeatedSlotProps(common as T, byItemIndex?.[index]);\n}\n\nfunction withGeneratedStyle<T extends { readonly style?: object | undefined }>(\n props: T,\n generatedStyle: object,\n): T {\n return { ...props, style: { ...generatedStyle, ...props.style } };\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 const { ref: pointRef, ...pointProps } = pointSlotProps;\n const pointHitSlotProps = getIndexedPartProps(slotProps?.pointHit, index);\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 {...pointProps}\n {...(pointRef ? { ref: forwardPointRef(pointRef) } : {})}\n style={{\n ...pointStyle(geometry, isActive ? cursorY : undefined),\n ...pointSlotProps.style,\n }}\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 {...pointHitSlotProps}\n onClick={composeEventHandlers(pointHitSlotProps.onClick, () => onPointClick?.(index))}\n onKeyDown={composeEventHandlers(pointHitSlotProps.onKeyDown, handleKeyDown)}\n onPointerLeave={composeEventHandlers(pointHitSlotProps.onPointerLeave, () =>\n onPointPointerLeave?.(),\n )}\n onPointerMove={composeEventHandlers(\n pointHitSlotProps.onPointerMove,\n (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 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 = consumerProps[\"aria-label\"] ?? \"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 data-part=\"points\"\n aria-label={`${label} points`}\n {...slotProps?.points}\n style={{ ...pointsStyle(data.length), ...slotProps?.points?.style }}\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 \"aria-label\": label,\n \"data-uiify-line-chart\": \"\",\n \"data-interactive\": interactive ? \"\" : undefined,\n ...consumerProps,\n children: (\n <>\n <figcaption {...slotProps?.caption}>{label}</figcaption>\n {interactive && readoutPoint ? (\n <div\n data-part=\"readout\"\n aria-live={announceReadout ? \"polite\" : \"off\"}\n {...slotProps?.readout}\n >\n <span data-part=\"readout-time\" {...slotProps?.readoutTime}>\n {String(readoutPoint.time)}\n </span>\n <span {...slotProps?.readoutValue}>{readoutPoint.value}</span>\n </div>\n ) : null}\n <div data-part=\"plot\" aria-hidden={interactive ? undefined : true} {...slotProps?.plot}>\n <div data-part=\"scroll-viewport\" {...slotProps?.scrollViewport}>\n <div data-part=\"canvas\" {...slotProps?.canvas}>\n <div data-part=\"viewport\" {...slotProps?.viewport}>\n {points}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <div\n data-part=\"crosshair\"\n aria-hidden=\"true\"\n {...slotProps?.crosshair}\n style={{\n ...crosshairFor(activePointIndex, cursorY),\n ...slotProps?.crosshair?.style,\n }}\n >\n <span data-part=\"crosshair-marker\" {...slotProps?.crosshairMarker}>\n +\n </span>\n </div>\n ) : null}\n </div>\n <div data-part=\"time-viewport\" {...slotProps?.timeViewport}>\n <ol\n data-part=\"time-axis\"\n data-axis=\"time\"\n aria-label={`${label} dates`}\n {...slotProps?.timeAxis}\n >\n {timeLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n {...withGeneratedStyle(\n getIndexedPartProps(slotProps?.timeAxisLabel, index),\n axisStyle(\"x\", axisLabel.position),\n )}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <li\n data-part=\"crosshair-time\"\n {...slotProps?.crosshairTime}\n style={{\n ...crosshairFor(activePointIndex, undefined),\n ...slotProps?.crosshairTime?.style,\n }}\n >\n {String(crosshairPoint.time)}\n </li>\n ) : null}\n </ol>\n </div>\n </div>\n </div>\n <ol\n data-part=\"value-axis\"\n data-axis=\"value\"\n aria-label={`${label} values`}\n {...slotProps?.valueAxis}\n >\n {valueLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n {...withGeneratedStyle(\n getIndexedPartProps(slotProps?.valueAxisLabel, index),\n axisStyle(\"y\", axisLabel.position),\n )}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairPoint && activePointIndex !== undefined ? (\n <li\n data-part=\"crosshair-value\"\n {...slotProps?.crosshairValue}\n style={{ ...cursorStyle(cursorY), ...slotProps?.crosshairValue?.style }}\n >\n {crosshairPoint.value}\n </li>\n ) : null}\n </ol>\n </div>\n <table data-part=\"data\" aria-label={`${label} data`} {...slotProps?.dataTable}>\n <thead {...slotProps?.dataTableHead}>\n <tr {...slotProps?.dataTableHeaderRow}>\n <th scope=\"col\" {...slotProps?.dataTableTimeHeader}>\n Time\n </th>\n <th scope=\"col\" {...slotProps?.dataTableValueHeader}>\n Value\n </th>\n </tr>\n </thead>\n <tbody {...slotProps?.dataTableBody}>\n {data.map((point, index) => (\n <tr\n key={`${point.time}-${index}`}\n {...getIndexedPartProps(slotProps?.dataTableRow, slotOffset + index)}\n >\n <th\n scope=\"row\"\n {...getIndexedPartProps(slotProps?.dataTableTimeCell, slotOffset + index)}\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;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"}
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,CAkKrB;yBApKe,eAAe"}
@@ -9,7 +9,6 @@ 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";
13
12
  import { VirtualScroll } from "../../virtual-scroll/VirtualScroll.js";
14
13
  import { LineChart, LineChartPoint } from "../LineChart.js";
15
14
  import { getValueBounds } from "../line-chart-geometry.js";
@@ -42,9 +41,10 @@ function LineChartClient(props) {
42
41
  visibleCount,
43
42
  itemWidth: viewport.itemWidth,
44
43
  figureHeight: figureSize?.height,
45
- scrollVariable: "--line-scroll-x"
44
+ scrollVariable: "--line-scroll-x",
45
+ consumerStyle
46
46
  });
47
- useScrollbarReserve(liveWindow.chartRef, "--line-scrollbar-size");
47
+ useScrollbarReserve(liveWindow.chartRef, "--line-scrollbar-size", consumerStyle);
48
48
  const [cursor, setCursor] = useState(null);
49
49
  const [selectedPointIndex, setSelectedPointIndex] = useState();
50
50
  const chartRef = useMergedRefs(viewport.ref, consumerRef, liveWindow.chartRef);
@@ -71,8 +71,8 @@ function LineChartClient(props) {
71
71
  [data, live]
72
72
  );
73
73
  const style = {
74
- ...consumerStyle,
75
- "--line-scale": String(viewport.scale)
74
+ "--line-scale": String(viewport.scale),
75
+ ...consumerStyle
76
76
  };
77
77
  if (!live) {
78
78
  const chartProps2 = {
@@ -131,15 +131,7 @@ function LineChartClient(props) {
131
131
  }
132
132
  );
133
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
- ]),
134
+ ...liveScrollportProps,
143
135
  ...liveScrollportRef ? { ref: liveScrollportRef } : {},
144
136
  slotProps: {
145
137
  ...slotProps?.liveSpacer ? { spacer: slotProps.liveSpacer } : {},
@@ -152,7 +144,8 @@ function LineChartClient(props) {
152
144
  "--line-content-size": `${contentSize}px`,
153
145
  "--line-plot-height": `${plotHeight}px`,
154
146
  // One virtual row: the viewport holds `visibleCount` of them.
155
- "--line-run": String(100 / visibleCount)
147
+ "--line-run": String(100 / visibleCount),
148
+ ...consumerStyle
156
149
  };
157
150
  const chartProps = {
158
151
  ...consumerProps,