@gunkin/uiify 0.0.24-alpha → 0.0.25-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/agents/index.md +1 -1
  2. package/agents/reference/components/accordion.md +18 -3
  3. package/agents/reference/components/alert-modal.md +19 -7
  4. package/agents/reference/components/alert.md +9 -1
  5. package/agents/reference/components/aspect-ratio.md +8 -0
  6. package/agents/reference/components/avatar.md +10 -0
  7. package/agents/reference/components/breadcrumb.md +20 -1
  8. package/agents/reference/components/candle-chart.md +50 -2
  9. package/agents/reference/components/carousel.md +30 -1
  10. package/agents/reference/components/checkbox.md +3 -1
  11. package/agents/reference/components/collapsible.md +16 -3
  12. package/agents/reference/components/color-picker.md +18 -2
  13. package/agents/reference/components/combobox.md +20 -9
  14. package/agents/reference/components/context-menu.md +37 -5
  15. package/agents/reference/components/drawer.md +30 -5
  16. package/agents/reference/components/dropdown-menu.md +4 -3
  17. package/agents/reference/components/field.md +3 -3
  18. package/agents/reference/components/form-error-summary.md +11 -1
  19. package/agents/reference/components/line-chart.md +41 -2
  20. package/agents/reference/components/modal.md +22 -3
  21. package/agents/reference/components/pagination.md +13 -1
  22. package/agents/reference/components/radio-group.md +8 -2
  23. package/agents/reference/components/rating.md +8 -2
  24. package/agents/reference/components/segmented-control.md +8 -3
  25. package/agents/reference/components/slider.md +13 -1
  26. package/agents/reference/components/spinner.md +10 -1
  27. package/agents/reference/components/table.md +15 -0
  28. package/agents/reference/components/tabs.md +21 -3
  29. package/agents/reference/components/tags-input.md +22 -1
  30. package/agents/reference/components/toast.md +55 -10
  31. package/agents/reference/components/toggle-group.md +5 -3
  32. package/agents/reference/components/toggle.md +16 -3
  33. package/agents/reference/components/toolbar.md +4 -4
  34. package/agents/reference/components/virtual-scroll.md +31 -2
  35. package/agents/reference/elements/choice.md +20 -7
  36. package/dist/components/accordion/Accordion.d.ts +1 -1
  37. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  38. package/dist/components/accordion/Accordion.js +62 -15
  39. package/dist/components/accordion/Accordion.js.map +1 -1
  40. package/dist/components/accordion/index.d.ts +1 -1
  41. package/dist/components/accordion/index.d.ts.map +1 -1
  42. package/dist/components/accordion/index.js.map +1 -1
  43. package/dist/components/accordion/types.d.ts +23 -2
  44. package/dist/components/accordion/types.d.ts.map +1 -1
  45. package/dist/components/alert/Alert.d.ts.map +1 -1
  46. package/dist/components/alert/Alert.js +11 -1
  47. package/dist/components/alert/Alert.js.map +1 -1
  48. package/dist/components/alert/index.d.ts +1 -1
  49. package/dist/components/alert/index.d.ts.map +1 -1
  50. package/dist/components/alert/index.js.map +1 -1
  51. package/dist/components/alert/types.d.ts +11 -1
  52. package/dist/components/alert/types.d.ts.map +1 -1
  53. package/dist/components/alert-modal/AlertModal.d.ts +1 -1
  54. package/dist/components/alert-modal/AlertModal.d.ts.map +1 -1
  55. package/dist/components/alert-modal/AlertModal.js +139 -20
  56. package/dist/components/alert-modal/AlertModal.js.map +1 -1
  57. package/dist/components/alert-modal/AlertModalParts.d.ts.map +1 -1
  58. package/dist/components/alert-modal/AlertModalParts.js +37 -4
  59. package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
  60. package/dist/components/alert-modal/index.d.ts +1 -1
  61. package/dist/components/alert-modal/index.d.ts.map +1 -1
  62. package/dist/components/alert-modal/index.js.map +1 -1
  63. package/dist/components/alert-modal/types.d.ts +40 -6
  64. package/dist/components/alert-modal/types.d.ts.map +1 -1
  65. package/dist/components/aspect-ratio/AspectRatio.d.ts.map +1 -1
  66. package/dist/components/aspect-ratio/AspectRatio.js +10 -2
  67. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
  68. package/dist/components/aspect-ratio/types.d.ts +10 -1
  69. package/dist/components/aspect-ratio/types.d.ts.map +1 -1
  70. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  71. package/dist/components/avatar/Avatar.js +19 -2
  72. package/dist/components/avatar/Avatar.js.map +1 -1
  73. package/dist/components/avatar/types.d.ts +19 -1
  74. package/dist/components/avatar/types.d.ts.map +1 -1
  75. package/dist/components/breadcrumb/Breadcrumb.d.ts +2 -2
  76. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  77. package/dist/components/breadcrumb/Breadcrumb.js +118 -26
  78. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  79. package/dist/components/breadcrumb/index.d.ts +1 -1
  80. package/dist/components/breadcrumb/index.d.ts.map +1 -1
  81. package/dist/components/breadcrumb/index.js.map +1 -1
  82. package/dist/components/breadcrumb/types.d.ts +40 -1
  83. package/dist/components/breadcrumb/types.d.ts.map +1 -1
  84. package/dist/components/candle-chart/CandleChart.d.ts +1 -1
  85. package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
  86. package/dist/components/candle-chart/CandleChart.js +269 -119
  87. package/dist/components/candle-chart/CandleChart.js.map +1 -1
  88. package/dist/components/candle-chart/client/CandleChartClient.d.ts.map +1 -1
  89. package/dist/components/candle-chart/client/CandleChartClient.js +21 -1
  90. package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
  91. package/dist/components/candle-chart/client/index.d.ts +1 -1
  92. package/dist/components/candle-chart/client/index.d.ts.map +1 -1
  93. package/dist/components/candle-chart/client/index.js.map +1 -1
  94. package/dist/components/candle-chart/index.d.ts +1 -1
  95. package/dist/components/candle-chart/index.d.ts.map +1 -1
  96. package/dist/components/candle-chart/index.js.map +1 -1
  97. package/dist/components/candle-chart/types.d.ts +129 -1
  98. package/dist/components/candle-chart/types.d.ts.map +1 -1
  99. package/dist/components/carousel/Carousel.d.ts +2 -2
  100. package/dist/components/carousel/Carousel.d.ts.map +1 -1
  101. package/dist/components/carousel/Carousel.js +2 -1
  102. package/dist/components/carousel/Carousel.js.map +1 -1
  103. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  104. package/dist/components/carousel/CarouselMarkup.js +137 -22
  105. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  106. package/dist/components/carousel/client/CarouselClient.d.ts.map +1 -1
  107. package/dist/components/carousel/client/CarouselClient.js +3 -2
  108. package/dist/components/carousel/client/CarouselClient.js.map +1 -1
  109. package/dist/components/carousel/client/carousel-controls.d.ts.map +1 -1
  110. package/dist/components/carousel/client/carousel-controls.js +2 -2
  111. package/dist/components/carousel/client/carousel-controls.js.map +1 -1
  112. package/dist/components/carousel/fade/FadeCarouselClient.d.ts.map +1 -1
  113. package/dist/components/carousel/fade/FadeCarouselClient.js +3 -2
  114. package/dist/components/carousel/fade/FadeCarouselClient.js.map +1 -1
  115. package/dist/components/carousel/index.d.ts +1 -1
  116. package/dist/components/carousel/index.d.ts.map +1 -1
  117. package/dist/components/carousel/index.js.map +1 -1
  118. package/dist/components/carousel/types.d.ts +85 -2
  119. package/dist/components/carousel/types.d.ts.map +1 -1
  120. package/dist/components/checkbox/Checkbox.d.ts +6 -1
  121. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  122. package/dist/components/checkbox/Checkbox.js +6 -1
  123. package/dist/components/checkbox/Checkbox.js.map +1 -1
  124. package/dist/components/checkbox/index.d.ts +1 -1
  125. package/dist/components/checkbox/index.d.ts.map +1 -1
  126. package/dist/components/checkbox/index.js.map +1 -1
  127. package/dist/components/checkbox/types.d.ts +3 -0
  128. package/dist/components/checkbox/types.d.ts.map +1 -1
  129. package/dist/components/collapsible/Collapsible.d.ts +1 -1
  130. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  131. package/dist/components/collapsible/Collapsible.js +35 -4
  132. package/dist/components/collapsible/Collapsible.js.map +1 -1
  133. package/dist/components/collapsible/index.d.ts +1 -1
  134. package/dist/components/collapsible/index.d.ts.map +1 -1
  135. package/dist/components/collapsible/index.js.map +1 -1
  136. package/dist/components/collapsible/types.d.ts +25 -3
  137. package/dist/components/collapsible/types.d.ts.map +1 -1
  138. package/dist/components/color-picker/ColorPicker.d.ts.map +1 -1
  139. package/dist/components/color-picker/ColorPicker.js +165 -49
  140. package/dist/components/color-picker/ColorPicker.js.map +1 -1
  141. package/dist/components/color-picker/index.d.ts +1 -1
  142. package/dist/components/color-picker/index.d.ts.map +1 -1
  143. package/dist/components/color-picker/index.js.map +1 -1
  144. package/dist/components/color-picker/types.d.ts +37 -0
  145. package/dist/components/color-picker/types.d.ts.map +1 -1
  146. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  147. package/dist/components/combobox/Combobox.js +44 -25
  148. package/dist/components/combobox/Combobox.js.map +1 -1
  149. package/dist/components/combobox/index.d.ts +1 -1
  150. package/dist/components/combobox/index.d.ts.map +1 -1
  151. package/dist/components/combobox/index.js.map +1 -1
  152. package/dist/components/combobox/types.d.ts +29 -4
  153. package/dist/components/combobox/types.d.ts.map +1 -1
  154. package/dist/components/context-menu/ContextMenu.d.ts.map +1 -1
  155. package/dist/components/context-menu/ContextMenu.js +48 -11
  156. package/dist/components/context-menu/ContextMenu.js.map +1 -1
  157. package/dist/components/context-menu/index.d.ts +1 -1
  158. package/dist/components/context-menu/index.d.ts.map +1 -1
  159. package/dist/components/context-menu/index.js.map +1 -1
  160. package/dist/components/context-menu/types.d.ts +35 -9
  161. package/dist/components/context-menu/types.d.ts.map +1 -1
  162. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  163. package/dist/components/drawer/Drawer.js +5 -1
  164. package/dist/components/drawer/Drawer.js.map +1 -1
  165. package/dist/components/drawer/DrawerNative.d.ts +1 -1
  166. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  167. package/dist/components/drawer/DrawerNative.js +254 -44
  168. package/dist/components/drawer/DrawerNative.js.map +1 -1
  169. package/dist/components/drawer/index.d.ts +1 -1
  170. package/dist/components/drawer/index.d.ts.map +1 -1
  171. package/dist/components/drawer/index.js.map +1 -1
  172. package/dist/components/drawer/types.d.ts +31 -6
  173. package/dist/components/drawer/types.d.ts.map +1 -1
  174. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  175. package/dist/components/dropdown-menu/DropdownMenu.js +8 -2
  176. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  177. package/dist/components/dropdown-menu/DropdownMenuBar.d.ts.map +1 -1
  178. package/dist/components/dropdown-menu/DropdownMenuBar.js +47 -29
  179. package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
  180. package/dist/components/dropdown-menu/types.d.ts +7 -5
  181. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  182. package/dist/components/field/types.d.ts +4 -4
  183. package/dist/components/field/types.d.ts.map +1 -1
  184. package/dist/components/form-error-summary/FormErrorSummary.d.ts.map +1 -1
  185. package/dist/components/form-error-summary/FormErrorSummary.js +35 -3
  186. package/dist/components/form-error-summary/FormErrorSummary.js.map +1 -1
  187. package/dist/components/form-error-summary/index.d.ts +1 -1
  188. package/dist/components/form-error-summary/index.d.ts.map +1 -1
  189. package/dist/components/form-error-summary/index.js.map +1 -1
  190. package/dist/components/form-error-summary/types.d.ts +20 -1
  191. package/dist/components/form-error-summary/types.d.ts.map +1 -1
  192. package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
  193. package/dist/components/internal/choice-family/ChoiceGroup.js +61 -11
  194. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  195. package/dist/components/internal/choice-family/types.d.ts +51 -1
  196. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  197. package/dist/components/internal/menu/types.d.ts +1 -0
  198. package/dist/components/internal/menu/types.d.ts.map +1 -1
  199. package/dist/components/internal/menu/use-menu-surface.d.ts.map +1 -1
  200. package/dist/components/internal/menu/use-menu-surface.js +2 -1
  201. package/dist/components/internal/menu/use-menu-surface.js.map +1 -1
  202. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -1
  203. package/dist/components/internal/native-check-control/NativeCheckControl.js +35 -3
  204. package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
  205. package/dist/components/internal/native-check-control/types.d.ts +21 -1
  206. package/dist/components/internal/native-check-control/types.d.ts.map +1 -1
  207. package/dist/components/line-chart/LineChart.d.ts +1 -1
  208. package/dist/components/line-chart/LineChart.d.ts.map +1 -1
  209. package/dist/components/line-chart/LineChart.js +260 -79
  210. package/dist/components/line-chart/LineChart.js.map +1 -1
  211. package/dist/components/line-chart/client/LineChartClient.d.ts.map +1 -1
  212. package/dist/components/line-chart/client/LineChartClient.js +21 -1
  213. package/dist/components/line-chart/client/LineChartClient.js.map +1 -1
  214. package/dist/components/line-chart/client/index.d.ts +1 -1
  215. package/dist/components/line-chart/client/index.d.ts.map +1 -1
  216. package/dist/components/line-chart/client/index.js.map +1 -1
  217. package/dist/components/line-chart/index.d.ts +1 -1
  218. package/dist/components/line-chart/index.d.ts.map +1 -1
  219. package/dist/components/line-chart/index.js.map +1 -1
  220. package/dist/components/line-chart/types.d.ts +113 -1
  221. package/dist/components/line-chart/types.d.ts.map +1 -1
  222. package/dist/components/modal/Modal.d.ts +1 -1
  223. package/dist/components/modal/Modal.d.ts.map +1 -1
  224. package/dist/components/modal/Modal.js +118 -43
  225. package/dist/components/modal/Modal.js.map +1 -1
  226. package/dist/components/modal/index.d.ts +1 -1
  227. package/dist/components/modal/index.d.ts.map +1 -1
  228. package/dist/components/modal/index.js.map +1 -1
  229. package/dist/components/modal/types.d.ts +24 -2
  230. package/dist/components/modal/types.d.ts.map +1 -1
  231. package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
  232. package/dist/components/otp-input/OtpInput.js +4 -2
  233. package/dist/components/otp-input/OtpInput.js.map +1 -1
  234. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  235. package/dist/components/pagination/Pagination.js +172 -55
  236. package/dist/components/pagination/Pagination.js.map +1 -1
  237. package/dist/components/pagination/index.d.ts +1 -1
  238. package/dist/components/pagination/index.d.ts.map +1 -1
  239. package/dist/components/pagination/index.js.map +1 -1
  240. package/dist/components/pagination/types.d.ts +33 -1
  241. package/dist/components/pagination/types.d.ts.map +1 -1
  242. package/dist/components/radio-group/RadioGroup.d.ts +1 -1
  243. package/dist/components/radio-group/RadioGroup.d.ts.map +1 -1
  244. package/dist/components/radio-group/RadioGroup.js +5 -1
  245. package/dist/components/radio-group/RadioGroup.js.map +1 -1
  246. package/dist/components/radio-group/index.d.ts +1 -1
  247. package/dist/components/radio-group/index.d.ts.map +1 -1
  248. package/dist/components/radio-group/index.js.map +1 -1
  249. package/dist/components/radio-group/types.d.ts +4 -2
  250. package/dist/components/radio-group/types.d.ts.map +1 -1
  251. package/dist/components/rating/Rating.d.ts +1 -1
  252. package/dist/components/rating/Rating.d.ts.map +1 -1
  253. package/dist/components/rating/Rating.js +5 -1
  254. package/dist/components/rating/Rating.js.map +1 -1
  255. package/dist/components/rating/client/RatingClient.d.ts +1 -1
  256. package/dist/components/rating/client/RatingClient.d.ts.map +1 -1
  257. package/dist/components/rating/client/RatingClient.js +5 -1
  258. package/dist/components/rating/client/RatingClient.js.map +1 -1
  259. package/dist/components/rating/index.d.ts +1 -1
  260. package/dist/components/rating/index.d.ts.map +1 -1
  261. package/dist/components/rating/index.js.map +1 -1
  262. package/dist/components/rating/types.d.ts +12 -1
  263. package/dist/components/rating/types.d.ts.map +1 -1
  264. package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
  265. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
  266. package/dist/components/segmented-control/SegmentedControl.js +5 -1
  267. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  268. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts +1 -1
  269. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts.map +1 -1
  270. package/dist/components/segmented-control/client/SegmentedControlClient.js +5 -1
  271. package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
  272. package/dist/components/segmented-control/index.d.ts +1 -1
  273. package/dist/components/segmented-control/index.d.ts.map +1 -1
  274. package/dist/components/segmented-control/index.js.map +1 -1
  275. package/dist/components/segmented-control/types.d.ts +4 -4
  276. package/dist/components/segmented-control/types.d.ts.map +1 -1
  277. package/dist/components/slider/client/SliderClient.d.ts.map +1 -1
  278. package/dist/components/slider/client/SliderClient.js +102 -20
  279. package/dist/components/slider/client/SliderClient.js.map +1 -1
  280. package/dist/components/slider/client/index.d.ts +1 -1
  281. package/dist/components/slider/client/index.d.ts.map +1 -1
  282. package/dist/components/slider/client/index.js.map +1 -1
  283. package/dist/components/slider/types.d.ts +46 -1
  284. package/dist/components/slider/types.d.ts.map +1 -1
  285. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  286. package/dist/components/spinner/Spinner.js +19 -3
  287. package/dist/components/spinner/Spinner.js.map +1 -1
  288. package/dist/components/spinner/index.d.ts +1 -1
  289. package/dist/components/spinner/index.d.ts.map +1 -1
  290. package/dist/components/spinner/index.js.map +1 -1
  291. package/dist/components/spinner/types.d.ts +11 -1
  292. package/dist/components/spinner/types.d.ts.map +1 -1
  293. package/dist/components/table/client/TableColumnHeader.d.ts +3 -3
  294. package/dist/components/table/client/TableColumnHeader.d.ts.map +1 -1
  295. package/dist/components/table/client/TableColumnHeader.js +24 -2
  296. package/dist/components/table/client/TableColumnHeader.js.map +1 -1
  297. package/dist/components/table/client/TableSelection.d.ts +3 -3
  298. package/dist/components/table/client/TableSelection.d.ts.map +1 -1
  299. package/dist/components/table/client/TableSelection.js +6 -4
  300. package/dist/components/table/client/TableSelection.js.map +1 -1
  301. package/dist/components/table/client.d.ts +1 -1
  302. package/dist/components/table/client.d.ts.map +1 -1
  303. package/dist/components/table/client.js.map +1 -1
  304. package/dist/components/table/types.d.ts +17 -0
  305. package/dist/components/table/types.d.ts.map +1 -1
  306. package/dist/components/tabs/Tabs.d.ts +1 -1
  307. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  308. package/dist/components/tabs/Tabs.js +45 -1
  309. package/dist/components/tabs/Tabs.js.map +1 -1
  310. package/dist/components/tabs/index.d.ts +1 -1
  311. package/dist/components/tabs/index.d.ts.map +1 -1
  312. package/dist/components/tabs/index.js.map +1 -1
  313. package/dist/components/tabs/types.d.ts +29 -3
  314. package/dist/components/tabs/types.d.ts.map +1 -1
  315. package/dist/components/tags-input/TagsInput.d.ts.map +1 -1
  316. package/dist/components/tags-input/TagsInput.js +54 -9
  317. package/dist/components/tags-input/TagsInput.js.map +1 -1
  318. package/dist/components/tags-input/index.d.ts +1 -1
  319. package/dist/components/tags-input/index.d.ts.map +1 -1
  320. package/dist/components/tags-input/index.js.map +1 -1
  321. package/dist/components/tags-input/types.d.ts +27 -4
  322. package/dist/components/tags-input/types.d.ts.map +1 -1
  323. package/dist/components/toast/Toast.d.ts +1 -1
  324. package/dist/components/toast/Toast.d.ts.map +1 -1
  325. package/dist/components/toast/Toast.js +123 -35
  326. package/dist/components/toast/Toast.js.map +1 -1
  327. package/dist/components/toast/ToastElements.d.ts.map +1 -1
  328. package/dist/components/toast/ToastElements.js +73 -12
  329. package/dist/components/toast/ToastElements.js.map +1 -1
  330. package/dist/components/toast/index.d.ts +1 -1
  331. package/dist/components/toast/index.d.ts.map +1 -1
  332. package/dist/components/toast/index.js.map +1 -1
  333. package/dist/components/toast/types.d.ts +49 -16
  334. package/dist/components/toast/types.d.ts.map +1 -1
  335. package/dist/components/toggle/Toggle.d.ts +1 -1
  336. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  337. package/dist/components/toggle/Toggle.js +63 -29
  338. package/dist/components/toggle/Toggle.js.map +1 -1
  339. package/dist/components/toggle/index.d.ts +1 -1
  340. package/dist/components/toggle/index.d.ts.map +1 -1
  341. package/dist/components/toggle/index.js.map +1 -1
  342. package/dist/components/toggle/types.d.ts +31 -3
  343. package/dist/components/toggle/types.d.ts.map +1 -1
  344. package/dist/components/toggle-group/ToggleGroup.d.ts +1 -1
  345. package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
  346. package/dist/components/toggle-group/ToggleGroup.js +5 -1
  347. package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
  348. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts +1 -1
  349. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts.map +1 -1
  350. package/dist/components/toggle-group/client/ToggleGroupClient.js +15 -1
  351. package/dist/components/toggle-group/client/ToggleGroupClient.js.map +1 -1
  352. package/dist/components/toggle-group/index.d.ts +1 -1
  353. package/dist/components/toggle-group/index.d.ts.map +1 -1
  354. package/dist/components/toggle-group/index.js.map +1 -1
  355. package/dist/components/toggle-group/types.d.ts +4 -4
  356. package/dist/components/toggle-group/types.d.ts.map +1 -1
  357. package/dist/components/toolbar/Toolbar.d.ts +3 -12
  358. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  359. package/dist/components/toolbar/Toolbar.js +22 -2
  360. package/dist/components/toolbar/Toolbar.js.map +1 -1
  361. package/dist/components/toolbar/types.d.ts +5 -5
  362. package/dist/components/toolbar/types.d.ts.map +1 -1
  363. package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
  364. package/dist/components/virtual-scroll/VirtualScroll.js +53 -20
  365. package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
  366. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts +3 -14
  367. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts.map +1 -1
  368. package/dist/components/virtual-scroll/VirtualScrollRowShell.js +6 -3
  369. package/dist/components/virtual-scroll/VirtualScrollRowShell.js.map +1 -1
  370. package/dist/components/virtual-scroll/index.d.ts +1 -1
  371. package/dist/components/virtual-scroll/index.d.ts.map +1 -1
  372. package/dist/components/virtual-scroll/index.js.map +1 -1
  373. package/dist/components/virtual-scroll/types.d.ts +35 -2
  374. package/dist/components/virtual-scroll/types.d.ts.map +1 -1
  375. package/dist/components/virtual-scroll/types.js.map +1 -1
  376. package/dist/core/slot-props.d.ts +19 -0
  377. package/dist/core/slot-props.d.ts.map +1 -0
  378. package/dist/core/slot-props.js +59 -0
  379. package/dist/core/slot-props.js.map +1 -0
  380. package/dist/core/use-popover.d.ts +2 -1
  381. package/dist/core/use-popover.d.ts.map +1 -1
  382. package/dist/core/use-popover.js +3 -1
  383. package/dist/core/use-popover.js.map +1 -1
  384. package/dist/elements/choice/Choice.d.ts.map +1 -1
  385. package/dist/elements/choice/Choice.js +47 -7
  386. package/dist/elements/choice/Choice.js.map +1 -1
  387. package/dist/elements/choice/index.d.ts +1 -1
  388. package/dist/elements/choice/index.d.ts.map +1 -1
  389. package/dist/elements/choice/index.js.map +1 -1
  390. package/dist/elements/choice/types.d.ts +25 -10
  391. package/dist/elements/choice/types.d.ts.map +1 -1
  392. package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -2
  393. package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -1
  394. package/dist/styles/index.css +1 -1
  395. package/dist/styles/tailwind.css +17 -16
  396. package/package.json +1 -1
  397. package/skills/uiify/references/elements/accordion.md +1 -1
  398. package/skills/uiify/references/elements/breadcrumb.md +1 -0
  399. package/skills/uiify/references/elements/checkbox.md +1 -1
  400. package/skills/uiify/references/elements/color-picker.md +1 -1
  401. package/skills/uiify/references/elements/combobox.md +1 -1
  402. package/skills/uiify/references/elements/context-menu.md +1 -1
  403. package/skills/uiify/references/elements/dropdown-menu.md +1 -1
  404. package/skills/uiify/references/elements/form-error-summary.md +5 -0
  405. package/skills/uiify/references/elements/pagination.md +1 -1
  406. package/skills/uiify/references/elements/radio-group.md +1 -0
  407. package/skills/uiify/references/elements/rating.md +1 -1
  408. package/skills/uiify/references/elements/segmented-control.md +1 -0
  409. package/skills/uiify/references/elements/spinner.md +1 -1
  410. package/skills/uiify/references/elements/table.md +1 -1
  411. package/skills/uiify/references/elements/tabs.md +1 -1
  412. package/skills/uiify/references/elements/tags-input.md +1 -1
  413. package/skills/uiify/references/elements/toast.md +1 -0
  414. package/skills/uiify/references/elements/toggle-group.md +1 -0
@@ -1,6 +1,33 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useRenderElement } from "@gunkin/uiify/core/render";
3
3
  import { formatLabel } from "@gunkin/uiify/core/format-label";
4
+ import { mergeRepeatedSlotProps, omitProps } from "../../core/slot-props.js";
5
+ import { assignRef } from "../../hooks/utils/assign-ref.js";
6
+ function getPartProps(props, protectedKeys = []) {
7
+ return omitProps(props, ["children", "dangerouslySetInnerHTML", ...protectedKeys]);
8
+ }
9
+ function getIndexedPartProps(props, index, protectedKeys = []) {
10
+ const { byItemIndex, ...common } = props ?? {};
11
+ const merged = mergeRepeatedSlotProps(common, byItemIndex?.[index]);
12
+ return omitProps(merged, [
13
+ "children",
14
+ "dangerouslySetInnerHTML",
15
+ "byItemIndex",
16
+ ...protectedKeys
17
+ ]);
18
+ }
19
+ function withGeneratedStyle(props, generatedStyle) {
20
+ return { ...props, style: { ...props.style, ...generatedStyle } };
21
+ }
22
+ function forwardCandleRef(ref) {
23
+ return (element) => {
24
+ const cleanup = assignRef(ref, element);
25
+ if (typeof cleanup === "function") return cleanup;
26
+ if (ref && typeof ref !== "function" && element !== null) {
27
+ return () => assignRef(ref, null);
28
+ }
29
+ };
30
+ }
4
31
  const DEFAULT_CANDLE_CHART_LABELS = {
5
32
  chart: "Candlestick chart",
6
33
  candle: "Candle {time}",
@@ -139,10 +166,27 @@ function CandleChartCandle({
139
166
  cursorY,
140
167
  onCandleClick,
141
168
  onCandlePointerLeave,
142
- onCandlePointerMove
169
+ onCandlePointerMove,
170
+ slotProps
143
171
  }) {
144
172
  const geometry = geometryFor(candle, x, slot, min, max);
173
+ const candleSlotProps = getIndexedPartProps(slotProps?.candle, index, [
174
+ "aria-hidden",
175
+ "data-crosshair-active",
176
+ "data-direction",
177
+ "data-part",
178
+ "data-time"
179
+ ]);
180
+ const { ref: candleRef, ...candleProps } = candleSlotProps;
181
+ const candleHitSlotProps = getIndexedPartProps(slotProps?.candleHit, index, [
182
+ "aria-label",
183
+ "aria-pressed",
184
+ "data-part",
185
+ "type"
186
+ ]);
145
187
  const handleKeyDown = (event) => {
188
+ candleHitSlotProps.onKeyDown?.(event);
189
+ if (event.defaultPrevented) return;
146
190
  if (event.key !== "Enter" && event.key !== " ") return;
147
191
  event.preventDefault();
148
192
  onCandleClick?.(index);
@@ -150,23 +194,39 @@ function CandleChartCandle({
150
194
  return /* @__PURE__ */ jsx(
151
195
  Tag,
152
196
  {
197
+ ...candleProps,
198
+ ...candleRef ? { ref: forwardCandleRef(candleRef) } : {},
153
199
  "aria-hidden": interactive ? void 0 : true,
154
200
  "data-part": "candle",
155
201
  "data-direction": geometry.direction,
156
202
  "data-crosshair-active": interactive && isActive ? "" : void 0,
157
203
  "data-time": String(candle.time),
158
- style: candleStyle(geometry, isActive ? cursorY : void 0),
204
+ style: {
205
+ ...candleSlotProps.style,
206
+ ...candleStyle(geometry, isActive ? cursorY : void 0)
207
+ },
159
208
  children: interactive ? /* @__PURE__ */ jsx(
160
209
  "button",
161
210
  {
211
+ ...candleHitSlotProps,
162
212
  "data-part": "candle-hit",
163
213
  type: "button",
164
214
  "aria-label": hitLabel,
165
215
  "aria-pressed": isSelected,
166
- onClick: () => onCandleClick?.(index),
216
+ onClick: (event) => {
217
+ candleHitSlotProps.onClick?.(event);
218
+ if (!event.defaultPrevented) onCandleClick?.(index);
219
+ },
167
220
  onKeyDown: handleKeyDown,
168
- onPointerLeave: onCandlePointerLeave,
169
- onPointerMove: (event) => onCandlePointerMove?.({ index, offsetY: event.nativeEvent.offsetY })
221
+ onPointerLeave: (event) => {
222
+ candleHitSlotProps.onPointerLeave?.(event);
223
+ if (!event.defaultPrevented) onCandlePointerLeave?.();
224
+ },
225
+ onPointerMove: (event) => {
226
+ candleHitSlotProps.onPointerMove?.(event);
227
+ if (!event.defaultPrevented)
228
+ onCandlePointerMove?.({ index, offsetY: event.nativeEvent.offsetY });
229
+ }
170
230
  }
171
231
  ) : null
172
232
  }
@@ -190,6 +250,7 @@ function CandleChart(props) {
190
250
  onCandlePointerLeave,
191
251
  onCandlePointerMove,
192
252
  selectedCandleIndex,
253
+ slotProps,
193
254
  candleLayer,
194
255
  announceReadout = true,
195
256
  slotCount = data.length,
@@ -204,27 +265,36 @@ function CandleChart(props) {
204
265
  const readoutIndex = activeCandleIndex ?? selectedCandleIndex ?? (data.length > 0 ? data.length - 1 : void 0);
205
266
  const readoutCandle = readoutIndex === void 0 ? void 0 : data[readoutIndex];
206
267
  const crosshairCandle = activeCandleIndex === void 0 ? void 0 : data[activeCandleIndex];
207
- const candles = candleLayer ?? /* @__PURE__ */ jsx("ol", { "data-part": "candles", "aria-label": `${label} ${accessibleLabels.candles}`, children: data.map((candle, index) => /* @__PURE__ */ jsx(
208
- CandleChartCandle,
268
+ const candles = candleLayer ?? /* @__PURE__ */ jsx(
269
+ "ol",
209
270
  {
210
- as: "li",
211
- candle,
212
- hitLabel: formatLabel(accessibleLabels.candle, { time: String(candle.time) }, locale),
213
- index,
214
- x: index / data.length * 100,
215
- slot: 100 / data.length,
216
- min,
217
- max,
218
- interactive,
219
- isActive: activeCandleIndex === index,
220
- isSelected: selectedCandleIndex === index,
221
- cursorY,
222
- onCandleClick,
223
- onCandlePointerLeave,
224
- onCandlePointerMove
225
- },
226
- `${candle.time}-${index}`
227
- )) });
271
+ ...getPartProps(slotProps?.candles, ["aria-label", "data-part"]),
272
+ "data-part": "candles",
273
+ "aria-label": `${label} ${accessibleLabels.candles}`,
274
+ children: data.map((candle, index) => /* @__PURE__ */ jsx(
275
+ CandleChartCandle,
276
+ {
277
+ as: "li",
278
+ candle,
279
+ hitLabel: formatLabel(accessibleLabels.candle, { time: String(candle.time) }, locale),
280
+ index,
281
+ x: index / data.length * 100,
282
+ slot: 100 / data.length,
283
+ min,
284
+ max,
285
+ interactive,
286
+ isActive: activeCandleIndex === index,
287
+ isSelected: selectedCandleIndex === index,
288
+ cursorY,
289
+ onCandleClick,
290
+ onCandlePointerLeave,
291
+ onCandlePointerMove,
292
+ slotProps
293
+ },
294
+ `${candle.time}-${index}`
295
+ ))
296
+ }
297
+ );
228
298
  return useRenderElement({
229
299
  as,
230
300
  defaultTag: "figure",
@@ -234,103 +304,183 @@ function CandleChart(props) {
234
304
  "data-uiify-candle-chart": "",
235
305
  "data-interactive": interactive ? "" : void 0,
236
306
  children: /* @__PURE__ */ jsxs(Fragment, { children: [
237
- /* @__PURE__ */ jsx("figcaption", { children: label }),
238
- interactive && readoutCandle ? /* @__PURE__ */ jsxs("div", { "data-part": "readout", "aria-live": announceReadout ? "polite" : "off", children: [
239
- /* @__PURE__ */ jsx("span", { "data-part": "readout-time", children: String(readoutCandle.time) }),
240
- /* @__PURE__ */ jsxs("span", { children: [
241
- "O ",
242
- readoutCandle.open
243
- ] }),
244
- /* @__PURE__ */ jsxs("span", { children: [
245
- "H ",
246
- readoutCandle.high
247
- ] }),
248
- /* @__PURE__ */ jsxs("span", { children: [
249
- "L ",
250
- readoutCandle.low
251
- ] }),
252
- /* @__PURE__ */ jsxs("span", { children: [
253
- "C ",
254
- readoutCandle.close
255
- ] })
256
- ] }) : null,
257
- /* @__PURE__ */ jsxs("div", { "data-part": "plot", "aria-hidden": interactive ? void 0 : true, children: [
258
- /* @__PURE__ */ jsx("div", { "data-part": "scroll-viewport", children: /* @__PURE__ */ jsxs("div", { "data-part": "canvas", children: [
259
- /* @__PURE__ */ jsxs("div", { "data-part": "viewport", children: [
260
- candles,
261
- interactive && crosshairCandle && activeCandleIndex !== void 0 ? /* @__PURE__ */ jsx(
307
+ /* @__PURE__ */ jsx("figcaption", { ...getPartProps(slotProps?.caption), children: label }),
308
+ interactive && readoutCandle ? /* @__PURE__ */ jsxs(
309
+ "div",
310
+ {
311
+ ...getPartProps(slotProps?.readout, ["aria-live", "data-part"]),
312
+ "data-part": "readout",
313
+ "aria-live": announceReadout ? "polite" : "off",
314
+ children: [
315
+ /* @__PURE__ */ jsx(
316
+ "span",
317
+ {
318
+ ...getPartProps(slotProps?.readoutTime, ["data-part"]),
319
+ "data-part": "readout-time",
320
+ children: String(readoutCandle.time)
321
+ }
322
+ ),
323
+ /* @__PURE__ */ jsx("span", { ...getPartProps(slotProps?.readoutOpen), children: `O ${readoutCandle.open}` }),
324
+ /* @__PURE__ */ jsx("span", { ...getPartProps(slotProps?.readoutHigh), children: `H ${readoutCandle.high}` }),
325
+ /* @__PURE__ */ jsx("span", { ...getPartProps(slotProps?.readoutLow), children: `L ${readoutCandle.low}` }),
326
+ /* @__PURE__ */ jsx("span", { ...getPartProps(slotProps?.readoutClose), children: `C ${readoutCandle.close}` })
327
+ ]
328
+ }
329
+ ) : null,
330
+ /* @__PURE__ */ jsxs(
331
+ "div",
332
+ {
333
+ ...getPartProps(slotProps?.plot, ["aria-hidden", "data-part"]),
334
+ "data-part": "plot",
335
+ "aria-hidden": interactive ? void 0 : true,
336
+ children: [
337
+ /* @__PURE__ */ jsx(
262
338
  "div",
263
339
  {
264
- "data-part": "crosshair",
265
- "aria-hidden": "true",
266
- style: crosshairStyle(slotOffset + activeCandleIndex, slotCount, cursorY),
267
- children: /* @__PURE__ */ jsx("span", { "data-part": "crosshair-marker", children: "+" })
340
+ ...getPartProps(slotProps?.scrollViewport, ["data-part"]),
341
+ "data-part": "scroll-viewport",
342
+ children: /* @__PURE__ */ jsxs("div", { ...getPartProps(slotProps?.canvas, ["data-part"]), "data-part": "canvas", children: [
343
+ /* @__PURE__ */ jsxs("div", { ...getPartProps(slotProps?.viewport, ["data-part"]), "data-part": "viewport", children: [
344
+ candles,
345
+ interactive && crosshairCandle && activeCandleIndex !== void 0 ? /* @__PURE__ */ jsx(
346
+ "div",
347
+ {
348
+ ...getPartProps(slotProps?.crosshair, ["aria-hidden", "data-part"]),
349
+ "data-part": "crosshair",
350
+ "aria-hidden": "true",
351
+ style: {
352
+ ...slotProps?.crosshair?.style,
353
+ ...crosshairStyle(slotOffset + activeCandleIndex, slotCount, cursorY)
354
+ },
355
+ children: /* @__PURE__ */ jsx(
356
+ "span",
357
+ {
358
+ ...getPartProps(slotProps?.crosshairMarker, ["data-part"]),
359
+ "data-part": "crosshair-marker",
360
+ children: "+"
361
+ }
362
+ )
363
+ }
364
+ ) : null
365
+ ] }),
366
+ /* @__PURE__ */ jsx(
367
+ "div",
368
+ {
369
+ ...getPartProps(slotProps?.timeViewport, ["data-part"]),
370
+ "data-part": "time-viewport",
371
+ children: /* @__PURE__ */ jsxs(
372
+ "ol",
373
+ {
374
+ ...getPartProps(slotProps?.timeAxis, ["aria-label", "data-axis", "data-part"]),
375
+ "data-part": "time-axis",
376
+ "data-axis": "time",
377
+ "aria-label": `${label} ${accessibleLabels.months}`,
378
+ children: [
379
+ monthLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
380
+ "li",
381
+ {
382
+ ...withGeneratedStyle(
383
+ getIndexedPartProps(slotProps?.timeAxisLabel, index, ["data-part"]),
384
+ axisStyle("x", axisLabel.position)
385
+ ),
386
+ children: axisLabel.label
387
+ },
388
+ `${axisLabel.position}-${index}`
389
+ )),
390
+ interactive && crosshairCandle && activeCandleIndex !== void 0 ? /* @__PURE__ */ jsx(
391
+ "li",
392
+ {
393
+ ...getPartProps(slotProps?.crosshairTime, ["data-part"]),
394
+ "data-part": "crosshair-time",
395
+ style: {
396
+ ...slotProps?.crosshairTime?.style,
397
+ ...crosshairStyle(slotOffset + activeCandleIndex, slotCount, void 0)
398
+ },
399
+ children: String(crosshairCandle.time)
400
+ }
401
+ ) : null
402
+ ]
403
+ }
404
+ )
405
+ }
406
+ )
407
+ ] })
268
408
  }
269
- ) : null
270
- ] }),
271
- /* @__PURE__ */ jsx("div", { "data-part": "time-viewport", children: /* @__PURE__ */ jsxs(
272
- "ol",
273
- {
274
- "data-part": "time-axis",
275
- "data-axis": "time",
276
- "aria-label": `${label} ${accessibleLabels.months}`,
277
- children: [
278
- monthLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
279
- "li",
280
- {
281
- style: axisStyle("x", axisLabel.position),
282
- children: axisLabel.label
283
- },
284
- `${axisLabel.position}-${index}`
285
- )),
286
- interactive && crosshairCandle && activeCandleIndex !== void 0 ? /* @__PURE__ */ jsx(
287
- "li",
288
- {
289
- "data-part": "crosshair-time",
290
- style: crosshairStyle(slotOffset + activeCandleIndex, slotCount, void 0),
291
- children: String(crosshairCandle.time)
292
- }
293
- ) : null
294
- ]
295
- }
296
- ) })
297
- ] }) }),
298
- /* @__PURE__ */ jsxs(
299
- "ol",
300
- {
301
- "data-part": "price-axis",
302
- "data-axis": "price",
303
- "aria-label": `${label} ${accessibleLabels.prices}`,
304
- children: [
305
- priceLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
306
- "li",
307
- {
308
- style: axisStyle("y", axisLabel.position),
309
- children: axisLabel.label
310
- },
311
- `${axisLabel.position}-${index}`
312
- )),
313
- interactive && crosshairCandle && activeCandleIndex !== void 0 ? /* @__PURE__ */ jsx("li", { "data-part": "crosshair-price", style: cursorStyle(cursorY), children: crosshairCandle.close }) : null
314
- ]
315
- }
316
- )
317
- ] }),
318
- /* @__PURE__ */ jsxs("table", { "data-part": "data", "aria-label": `${label} ${accessibleLabels.data}`, children: [
319
- /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
320
- /* @__PURE__ */ jsx("th", { scope: "col", children: accessibleLabels.time }),
321
- /* @__PURE__ */ jsx("th", { scope: "col", children: accessibleLabels.open }),
322
- /* @__PURE__ */ jsx("th", { scope: "col", children: accessibleLabels.high }),
323
- /* @__PURE__ */ jsx("th", { scope: "col", children: accessibleLabels.low }),
324
- /* @__PURE__ */ jsx("th", { scope: "col", children: accessibleLabels.close })
325
- ] }) }),
326
- /* @__PURE__ */ jsx("tbody", { children: data.map((candle, index) => /* @__PURE__ */ jsxs("tr", { children: [
327
- /* @__PURE__ */ jsx("th", { scope: "row", children: String(candle.time) }),
328
- /* @__PURE__ */ jsx("td", { children: candle.open }),
329
- /* @__PURE__ */ jsx("td", { children: candle.high }),
330
- /* @__PURE__ */ jsx("td", { children: candle.low }),
331
- /* @__PURE__ */ jsx("td", { children: candle.close })
332
- ] }, `${candle.time}-${index}`)) })
333
- ] })
409
+ ),
410
+ /* @__PURE__ */ jsxs(
411
+ "ol",
412
+ {
413
+ ...getPartProps(slotProps?.priceAxis, ["aria-label", "data-axis", "data-part"]),
414
+ "data-part": "price-axis",
415
+ "data-axis": "price",
416
+ "aria-label": `${label} ${accessibleLabels.prices}`,
417
+ children: [
418
+ priceLabels.map((axisLabel, index) => /* @__PURE__ */ jsx(
419
+ "li",
420
+ {
421
+ ...withGeneratedStyle(
422
+ getIndexedPartProps(slotProps?.priceAxisLabel, index, ["data-part"]),
423
+ axisStyle("y", axisLabel.position)
424
+ ),
425
+ children: axisLabel.label
426
+ },
427
+ `${axisLabel.position}-${index}`
428
+ )),
429
+ interactive && crosshairCandle && activeCandleIndex !== void 0 ? /* @__PURE__ */ jsx(
430
+ "li",
431
+ {
432
+ ...getPartProps(slotProps?.crosshairPrice, ["data-part"]),
433
+ "data-part": "crosshair-price",
434
+ style: { ...slotProps?.crosshairPrice?.style, ...cursorStyle(cursorY) },
435
+ children: crosshairCandle.close
436
+ }
437
+ ) : null
438
+ ]
439
+ }
440
+ )
441
+ ]
442
+ }
443
+ ),
444
+ /* @__PURE__ */ jsxs(
445
+ "table",
446
+ {
447
+ ...getPartProps(slotProps?.dataTable, ["aria-label", "data-part"]),
448
+ "data-part": "data",
449
+ "aria-label": `${label} ${accessibleLabels.data}`,
450
+ children: [
451
+ /* @__PURE__ */ jsx("thead", { ...getPartProps(slotProps?.dataTableHead), children: /* @__PURE__ */ jsxs("tr", { ...getPartProps(slotProps?.dataTableHeaderRow), children: [
452
+ /* @__PURE__ */ jsx("th", { ...getPartProps(slotProps?.dataTableTimeHeader, ["scope"]), scope: "col", children: accessibleLabels.time }),
453
+ /* @__PURE__ */ jsx("th", { ...getPartProps(slotProps?.dataTableOpenHeader, ["scope"]), scope: "col", children: accessibleLabels.open }),
454
+ /* @__PURE__ */ jsx("th", { ...getPartProps(slotProps?.dataTableHighHeader, ["scope"]), scope: "col", children: accessibleLabels.high }),
455
+ /* @__PURE__ */ jsx("th", { ...getPartProps(slotProps?.dataTableLowHeader, ["scope"]), scope: "col", children: accessibleLabels.low }),
456
+ /* @__PURE__ */ jsx("th", { ...getPartProps(slotProps?.dataTableCloseHeader, ["scope"]), scope: "col", children: accessibleLabels.close })
457
+ ] }) }),
458
+ /* @__PURE__ */ jsx("tbody", { ...getPartProps(slotProps?.dataTableBody), children: data.map((candle, index) => /* @__PURE__ */ jsxs(
459
+ "tr",
460
+ {
461
+ ...getIndexedPartProps(slotProps?.dataTableRow, slotOffset + index),
462
+ children: [
463
+ /* @__PURE__ */ jsx(
464
+ "th",
465
+ {
466
+ ...getIndexedPartProps(slotProps?.dataTableTimeCell, slotOffset + index, [
467
+ "scope"
468
+ ]),
469
+ scope: "row",
470
+ children: String(candle.time)
471
+ }
472
+ ),
473
+ /* @__PURE__ */ jsx("td", { ...getIndexedPartProps(slotProps?.dataTableOpenCell, slotOffset + index), children: candle.open }),
474
+ /* @__PURE__ */ jsx("td", { ...getIndexedPartProps(slotProps?.dataTableHighCell, slotOffset + index), children: candle.high }),
475
+ /* @__PURE__ */ jsx("td", { ...getIndexedPartProps(slotProps?.dataTableLowCell, slotOffset + index), children: candle.low }),
476
+ /* @__PURE__ */ jsx("td", { ...getIndexedPartProps(slotProps?.dataTableCloseCell, slotOffset + index), children: candle.close })
477
+ ]
478
+ },
479
+ `${candle.time}-${index}`
480
+ )) })
481
+ ]
482
+ }
483
+ )
334
484
  ] })
335
485
  },
336
486
  render,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/candle-chart/CandleChart.tsx"],"sourcesContent":["import type {\n CSSProperties,\n ElementType,\n KeyboardEvent,\n PointerEvent,\n ReactElement,\n ReactNode,\n} from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { formatLabel } from \"@gunkin/uiify/core/format-label\";\nimport type {\n CandleChartAxisLabel,\n CandleChartCandleProps,\n CandleChartData,\n CandleChartProps,\n CandleChartViewProps,\n} from \"./types.js\";\n\nconst DEFAULT_CANDLE_CHART_LABELS = {\n chart: \"Candlestick chart\",\n candle: \"Candle {time}\",\n candles: \"candles\",\n months: \"months\",\n prices: \"prices\",\n data: \"data\",\n time: \"Time\",\n open: \"Open\",\n high: \"High\",\n low: \"Low\",\n close: \"Close\",\n} as const;\n\ninterface CandleStyle extends CSSProperties {\n \"--candle-body-height\": string;\n \"--candle-body-top\": string;\n \"--candle-slot\": string;\n \"--candle-wick-height\": string;\n \"--candle-wick-top\": string;\n \"--candle-x\": string;\n \"--candle-cursor-y\"?: string;\n}\n\ninterface CrosshairStyle extends CSSProperties {\n \"--candle-crosshair-x\": string;\n \"--candle-cursor-y\"?: string;\n}\n\ninterface CursorStyle extends CSSProperties {\n \"--candle-cursor-y\"?: string;\n}\n\ninterface AxisStyle extends CSSProperties {\n \"--candle-axis-x\"?: string;\n \"--candle-axis-y\"?: string;\n}\n\ntype CandleDirection = \"down\" | \"flat\" | \"up\";\n\ninterface CandleGeometry {\n readonly bodyHeight: string;\n readonly bodyTop: string;\n readonly direction: CandleDirection;\n readonly slot: string;\n readonly wickHeight: string;\n readonly wickTop: string;\n readonly x: string;\n}\n\nfunction percent(value: number): string {\n const rounded = Math.round(value * 10000) / 10000;\n return `${rounded}%`;\n}\n\nfunction valueToPercent(value: number, min: number, range: number): number {\n if (range === 0) return 50;\n return Math.min(100, Math.max(0, ((min + range - value) / range) * 100));\n}\n\nfunction directionFor(candle: CandleChartData): CandleDirection {\n if (candle.close > candle.open) return \"up\";\n if (candle.close < candle.open) return \"down\";\n return \"flat\";\n}\n\nexport function getPriceBounds(data: readonly CandleChartData[]): { max: number; min: number } {\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n\n for (const candle of data) {\n min = Math.min(min, candle.low);\n max = Math.max(max, candle.high);\n }\n\n if (data.length === 0) return { max: 1, min: 0 };\n return { max, min };\n}\n\ninterface AxisLabel {\n readonly label: ReactNode;\n readonly position: number;\n}\n\nfunction monthKey(time: string | number): string {\n const date = new Date(time);\n if (Number.isNaN(date.getTime())) return String(time);\n return `${date.getUTCFullYear()}-${date.getUTCMonth()}`;\n}\n\nfunction monthLabel(time: string | number, locale: string): string {\n const date = new Date(time);\n if (Number.isNaN(date.getTime())) return String(time);\n return new Intl.DateTimeFormat(locale, {\n month: \"short\",\n timeZone: \"UTC\",\n year: \"2-digit\",\n }).format(date);\n}\n\nfunction monthLabelsFor(data: readonly CandleChartData[], locale: string): AxisLabel[] {\n const labels: AxisLabel[] = [];\n const seen = new Set<string>();\n\n data.forEach((candle, index) => {\n const key = monthKey(candle.time);\n if (seen.has(key)) return;\n seen.add(key);\n labels.push({\n label: monthLabel(candle.time, locale),\n position: (index / Math.max(data.length, 1)) * 100,\n });\n });\n\n return labels;\n}\n\nfunction priceLabelsFor(min: number, max: number, locale: string): AxisLabel[] {\n const tickCount = 6;\n const range = max - min;\n\n return Array.from({ length: tickCount }, (_, index) => {\n const ratio = index / (tickCount - 1);\n const value = max - range * ratio;\n return {\n label: new Intl.NumberFormat(locale, { maximumFractionDigits: 2 }).format(value),\n position: ratio * 100,\n };\n });\n}\n\nfunction geometryFor(\n candle: CandleChartData,\n x: number,\n slot: number,\n min: number,\n max: number,\n): CandleGeometry {\n const range = max - min;\n const open = valueToPercent(candle.open, min, range);\n const close = valueToPercent(candle.close, min, range);\n const high = valueToPercent(candle.high, min, range);\n const low = valueToPercent(candle.low, min, range);\n\n return {\n bodyHeight: percent(Math.abs(close - open)),\n bodyTop: percent(Math.min(open, close)),\n direction: directionFor(candle),\n slot: percent(slot),\n wickHeight: percent(Math.max(0, low - high)),\n wickTop: percent(high),\n x: percent(x),\n };\n}\n\nfunction candleStyle(geometry: CandleGeometry, cursorY: number | undefined): CandleStyle {\n return {\n \"--candle-body-height\": geometry.bodyHeight,\n \"--candle-body-top\": geometry.bodyTop,\n \"--candle-slot\": geometry.slot,\n \"--candle-wick-height\": geometry.wickHeight,\n \"--candle-wick-top\": geometry.wickTop,\n \"--candle-x\": geometry.x,\n ...(cursorY === undefined ? {} : { \"--candle-cursor-y\": `${Math.max(0, cursorY)}px` }),\n };\n}\n\nfunction crosshairStyle(index: number, count: number, cursorY: number | undefined): CrosshairStyle {\n return {\n \"--candle-crosshair-x\": percent(((index + 0.5) / Math.max(count, 1)) * 100),\n ...(cursorY === undefined ? {} : { \"--candle-cursor-y\": `${Math.max(0, cursorY)}px` }),\n };\n}\n\nfunction cursorStyle(cursorY: number | undefined): CursorStyle {\n return cursorY === undefined ? {} : { \"--candle-cursor-y\": `${Math.max(0, cursorY)}px` };\n}\n\nfunction clampAxisPosition(position: number): number {\n return Math.min(100, Math.max(0, position));\n}\n\nfunction axisStyle(axis: \"x\" | \"y\", position: number): AxisStyle {\n const value = percent(clampAxisPosition(position));\n if (axis === \"x\") return { \"--candle-axis-x\": value };\n return { \"--candle-axis-y\": value };\n}\n\nfunction axisLabelsFor(\n overrides: readonly CandleChartAxisLabel[] | undefined,\n fallback: readonly AxisLabel[],\n): readonly AxisLabel[] {\n return overrides ?? fallback;\n}\n\n/** One candle glyph with its optional hit target; shared by the static list and virtual rows. */\nexport function CandleChartCandle({\n as: Tag,\n candle,\n hitLabel,\n index,\n x,\n slot,\n min,\n max,\n interactive,\n isActive,\n isSelected,\n cursorY,\n onCandleClick,\n onCandlePointerLeave,\n onCandlePointerMove,\n}: CandleChartCandleProps): ReactElement {\n const geometry = geometryFor(candle, x, slot, min, max);\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (event.key !== \"Enter\" && event.key !== \" \") return;\n event.preventDefault();\n onCandleClick?.(index);\n };\n\n return (\n <Tag\n aria-hidden={interactive ? undefined : true}\n data-part=\"candle\"\n data-direction={geometry.direction}\n data-crosshair-active={interactive && isActive ? \"\" : undefined}\n data-time={String(candle.time)}\n style={candleStyle(geometry, isActive ? cursorY : undefined)}\n >\n {interactive ? (\n <button\n data-part=\"candle-hit\"\n type=\"button\"\n aria-label={hitLabel}\n aria-pressed={isSelected}\n onClick={() => onCandleClick?.(index)}\n onKeyDown={handleKeyDown}\n onPointerLeave={onCandlePointerLeave}\n onPointerMove={(event: PointerEvent<HTMLButtonElement>) =>\n onCandlePointerMove?.({ index, offsetY: event.nativeEvent.offsetY })\n }\n />\n ) : null}\n </Tag>\n );\n}\nCandleChartCandle.displayName = \"CandleChartCandle\";\n\nexport function CandleChart<TAs extends ElementType = \"figure\">(\n props: CandleChartProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n data,\n xAxis,\n yAxis,\n \"aria-label\": ariaLabel,\n labels,\n activeCandleIndex,\n cursorY,\n interactive = false,\n locale = \"en-US\",\n onCandleClick,\n onCandlePointerLeave,\n onCandlePointerMove,\n selectedCandleIndex,\n candleLayer,\n announceReadout = true,\n slotCount = data.length,\n slotOffset = 0,\n ...consumerProps\n } = props as CandleChartProps<\"figure\"> & CandleChartViewProps;\n const accessibleLabels = { ...DEFAULT_CANDLE_CHART_LABELS, ...labels };\n const { min, max } = getPriceBounds(data);\n const label = ariaLabel ?? accessibleLabels.chart;\n const monthLabels = axisLabelsFor(xAxis, monthLabelsFor(data, locale));\n const priceLabels = axisLabelsFor(yAxis, priceLabelsFor(min, max, locale));\n const readoutIndex =\n activeCandleIndex ?? selectedCandleIndex ?? (data.length > 0 ? data.length - 1 : undefined);\n const readoutCandle = readoutIndex === undefined ? undefined : data[readoutIndex];\n const crosshairCandle = activeCandleIndex === undefined ? undefined : data[activeCandleIndex];\n const candles = candleLayer ?? (\n <ol data-part=\"candles\" aria-label={`${label} ${accessibleLabels.candles}`}>\n {data.map((candle, index) => (\n <CandleChartCandle\n key={`${candle.time}-${index}`}\n as=\"li\"\n candle={candle}\n hitLabel={formatLabel(accessibleLabels.candle, { time: String(candle.time) }, locale)}\n index={index}\n x={(index / data.length) * 100}\n slot={100 / data.length}\n min={min}\n max={max}\n interactive={interactive}\n isActive={activeCandleIndex === index}\n isSelected={selectedCandleIndex === index}\n cursorY={cursorY}\n onCandleClick={onCandleClick}\n onCandlePointerLeave={onCandlePointerLeave}\n onCandlePointerMove={onCandlePointerMove}\n />\n ))}\n </ol>\n );\n\n return useRenderElement({\n as,\n defaultTag: \"figure\",\n props: {\n ...consumerProps,\n \"aria-label\": label,\n \"data-uiify-candle-chart\": \"\",\n \"data-interactive\": interactive ? \"\" : undefined,\n children: (\n <>\n <figcaption>{label}</figcaption>\n {interactive && readoutCandle ? (\n <div data-part=\"readout\" aria-live={announceReadout ? \"polite\" : \"off\"}>\n <span data-part=\"readout-time\">{String(readoutCandle.time)}</span>\n <span>O {readoutCandle.open}</span>\n <span>H {readoutCandle.high}</span>\n <span>L {readoutCandle.low}</span>\n <span>C {readoutCandle.close}</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 {candles}\n {interactive && crosshairCandle && activeCandleIndex !== undefined ? (\n <div\n data-part=\"crosshair\"\n aria-hidden=\"true\"\n style={crosshairStyle(slotOffset + activeCandleIndex, slotCount, cursorY)}\n >\n <span data-part=\"crosshair-marker\">+</span>\n </div>\n ) : null}\n </div>\n <div data-part=\"time-viewport\">\n <ol\n data-part=\"time-axis\"\n data-axis=\"time\"\n aria-label={`${label} ${accessibleLabels.months}`}\n >\n {monthLabels.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 && crosshairCandle && activeCandleIndex !== undefined ? (\n <li\n data-part=\"crosshair-time\"\n style={crosshairStyle(slotOffset + activeCandleIndex, slotCount, undefined)}\n >\n {String(crosshairCandle.time)}\n </li>\n ) : null}\n </ol>\n </div>\n </div>\n </div>\n <ol\n data-part=\"price-axis\"\n data-axis=\"price\"\n aria-label={`${label} ${accessibleLabels.prices}`}\n >\n {priceLabels.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 && crosshairCandle && activeCandleIndex !== undefined ? (\n <li data-part=\"crosshair-price\" style={cursorStyle(cursorY)}>\n {crosshairCandle.close}\n </li>\n ) : null}\n </ol>\n </div>\n <table data-part=\"data\" aria-label={`${label} ${accessibleLabels.data}`}>\n <thead>\n <tr>\n <th scope=\"col\">{accessibleLabels.time}</th>\n <th scope=\"col\">{accessibleLabels.open}</th>\n <th scope=\"col\">{accessibleLabels.high}</th>\n <th scope=\"col\">{accessibleLabels.low}</th>\n <th scope=\"col\">{accessibleLabels.close}</th>\n </tr>\n </thead>\n <tbody>\n {data.map((candle, index) => (\n <tr key={`${candle.time}-${index}`}>\n <th scope=\"row\">{String(candle.time)}</th>\n <td>{candle.open}</td>\n <td>{candle.high}</td>\n <td>{candle.low}</td>\n <td>{candle.close}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </>\n ),\n },\n render,\n state: {},\n });\n}\nCandleChart.displayName = \"CandleChart\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/components/candle-chart/CandleChart.tsx"],"sourcesContent":["import type {\n CSSProperties,\n ElementType,\n KeyboardEvent,\n PointerEvent,\n ReactElement,\n ReactNode,\n Ref,\n} from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { formatLabel } from \"@gunkin/uiify/core/format-label\";\nimport { mergeRepeatedSlotProps, omitProps } from \"../../core/slot-props.js\";\nimport { assignRef } from \"../../hooks/utils/assign-ref.js\";\nimport type {\n CandleChartAxisLabel,\n CandleChartCandleProps,\n CandleChartData,\n CandleChartProps,\n CandleChartViewProps,\n} 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 forwardCandleRef(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\nconst DEFAULT_CANDLE_CHART_LABELS = {\n chart: \"Candlestick chart\",\n candle: \"Candle {time}\",\n candles: \"candles\",\n months: \"months\",\n prices: \"prices\",\n data: \"data\",\n time: \"Time\",\n open: \"Open\",\n high: \"High\",\n low: \"Low\",\n close: \"Close\",\n} as const;\n\ninterface CandleStyle extends CSSProperties {\n \"--candle-body-height\": string;\n \"--candle-body-top\": string;\n \"--candle-slot\": string;\n \"--candle-wick-height\": string;\n \"--candle-wick-top\": string;\n \"--candle-x\": string;\n \"--candle-cursor-y\"?: string;\n}\n\ninterface CrosshairStyle extends CSSProperties {\n \"--candle-crosshair-x\": string;\n \"--candle-cursor-y\"?: string;\n}\n\ninterface CursorStyle extends CSSProperties {\n \"--candle-cursor-y\"?: string;\n}\n\ninterface AxisStyle extends CSSProperties {\n \"--candle-axis-x\"?: string;\n \"--candle-axis-y\"?: string;\n}\n\ntype CandleDirection = \"down\" | \"flat\" | \"up\";\n\ninterface CandleGeometry {\n readonly bodyHeight: string;\n readonly bodyTop: string;\n readonly direction: CandleDirection;\n readonly slot: string;\n readonly wickHeight: string;\n readonly wickTop: string;\n readonly x: string;\n}\n\nfunction percent(value: number): string {\n const rounded = Math.round(value * 10000) / 10000;\n return `${rounded}%`;\n}\n\nfunction valueToPercent(value: number, min: number, range: number): number {\n if (range === 0) return 50;\n return Math.min(100, Math.max(0, ((min + range - value) / range) * 100));\n}\n\nfunction directionFor(candle: CandleChartData): CandleDirection {\n if (candle.close > candle.open) return \"up\";\n if (candle.close < candle.open) return \"down\";\n return \"flat\";\n}\n\nexport function getPriceBounds(data: readonly CandleChartData[]): { max: number; min: number } {\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n\n for (const candle of data) {\n min = Math.min(min, candle.low);\n max = Math.max(max, candle.high);\n }\n\n if (data.length === 0) return { max: 1, min: 0 };\n return { max, min };\n}\n\ninterface AxisLabel {\n readonly label: ReactNode;\n readonly position: number;\n}\n\nfunction monthKey(time: string | number): string {\n const date = new Date(time);\n if (Number.isNaN(date.getTime())) return String(time);\n return `${date.getUTCFullYear()}-${date.getUTCMonth()}`;\n}\n\nfunction monthLabel(time: string | number, locale: string): string {\n const date = new Date(time);\n if (Number.isNaN(date.getTime())) return String(time);\n return new Intl.DateTimeFormat(locale, {\n month: \"short\",\n timeZone: \"UTC\",\n year: \"2-digit\",\n }).format(date);\n}\n\nfunction monthLabelsFor(data: readonly CandleChartData[], locale: string): AxisLabel[] {\n const labels: AxisLabel[] = [];\n const seen = new Set<string>();\n\n data.forEach((candle, index) => {\n const key = monthKey(candle.time);\n if (seen.has(key)) return;\n seen.add(key);\n labels.push({\n label: monthLabel(candle.time, locale),\n position: (index / Math.max(data.length, 1)) * 100,\n });\n });\n\n return labels;\n}\n\nfunction priceLabelsFor(min: number, max: number, locale: string): AxisLabel[] {\n const tickCount = 6;\n const range = max - min;\n\n return Array.from({ length: tickCount }, (_, index) => {\n const ratio = index / (tickCount - 1);\n const value = max - range * ratio;\n return {\n label: new Intl.NumberFormat(locale, { maximumFractionDigits: 2 }).format(value),\n position: ratio * 100,\n };\n });\n}\n\nfunction geometryFor(\n candle: CandleChartData,\n x: number,\n slot: number,\n min: number,\n max: number,\n): CandleGeometry {\n const range = max - min;\n const open = valueToPercent(candle.open, min, range);\n const close = valueToPercent(candle.close, min, range);\n const high = valueToPercent(candle.high, min, range);\n const low = valueToPercent(candle.low, min, range);\n\n return {\n bodyHeight: percent(Math.abs(close - open)),\n bodyTop: percent(Math.min(open, close)),\n direction: directionFor(candle),\n slot: percent(slot),\n wickHeight: percent(Math.max(0, low - high)),\n wickTop: percent(high),\n x: percent(x),\n };\n}\n\nfunction candleStyle(geometry: CandleGeometry, cursorY: number | undefined): CandleStyle {\n return {\n \"--candle-body-height\": geometry.bodyHeight,\n \"--candle-body-top\": geometry.bodyTop,\n \"--candle-slot\": geometry.slot,\n \"--candle-wick-height\": geometry.wickHeight,\n \"--candle-wick-top\": geometry.wickTop,\n \"--candle-x\": geometry.x,\n ...(cursorY === undefined ? {} : { \"--candle-cursor-y\": `${Math.max(0, cursorY)}px` }),\n };\n}\n\nfunction crosshairStyle(index: number, count: number, cursorY: number | undefined): CrosshairStyle {\n return {\n \"--candle-crosshair-x\": percent(((index + 0.5) / Math.max(count, 1)) * 100),\n ...(cursorY === undefined ? {} : { \"--candle-cursor-y\": `${Math.max(0, cursorY)}px` }),\n };\n}\n\nfunction cursorStyle(cursorY: number | undefined): CursorStyle {\n return cursorY === undefined ? {} : { \"--candle-cursor-y\": `${Math.max(0, cursorY)}px` };\n}\n\nfunction clampAxisPosition(position: number): number {\n return Math.min(100, Math.max(0, position));\n}\n\nfunction axisStyle(axis: \"x\" | \"y\", position: number): AxisStyle {\n const value = percent(clampAxisPosition(position));\n if (axis === \"x\") return { \"--candle-axis-x\": value };\n return { \"--candle-axis-y\": value };\n}\n\nfunction axisLabelsFor(\n overrides: readonly CandleChartAxisLabel[] | undefined,\n fallback: readonly AxisLabel[],\n): readonly AxisLabel[] {\n return overrides ?? fallback;\n}\n\n/** One candle glyph with its optional hit target; shared by the static list and virtual rows. */\nexport function CandleChartCandle({\n as: Tag,\n candle,\n hitLabel,\n index,\n x,\n slot,\n min,\n max,\n interactive,\n isActive,\n isSelected,\n cursorY,\n onCandleClick,\n onCandlePointerLeave,\n onCandlePointerMove,\n slotProps,\n}: CandleChartCandleProps): ReactElement {\n const geometry = geometryFor(candle, x, slot, min, max);\n const candleSlotProps = getIndexedPartProps(slotProps?.candle, index, [\n \"aria-hidden\",\n \"data-crosshair-active\",\n \"data-direction\",\n \"data-part\",\n \"data-time\",\n ]);\n const { ref: candleRef, ...candleProps } = candleSlotProps;\n const candleHitSlotProps = getIndexedPartProps(slotProps?.candleHit, index, [\n \"aria-label\",\n \"aria-pressed\",\n \"data-part\",\n \"type\",\n ]);\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n candleHitSlotProps.onKeyDown?.(event);\n if (event.defaultPrevented) return;\n if (event.key !== \"Enter\" && event.key !== \" \") return;\n event.preventDefault();\n onCandleClick?.(index);\n };\n\n return (\n <Tag\n {...candleProps}\n {...(candleRef ? { ref: forwardCandleRef(candleRef) } : {})}\n aria-hidden={interactive ? undefined : true}\n data-part=\"candle\"\n data-direction={geometry.direction}\n data-crosshair-active={interactive && isActive ? \"\" : undefined}\n data-time={String(candle.time)}\n style={{\n ...candleSlotProps.style,\n ...candleStyle(geometry, isActive ? cursorY : undefined),\n }}\n >\n {interactive ? (\n <button\n {...candleHitSlotProps}\n data-part=\"candle-hit\"\n type=\"button\"\n aria-label={hitLabel}\n aria-pressed={isSelected}\n onClick={(event) => {\n candleHitSlotProps.onClick?.(event);\n if (!event.defaultPrevented) onCandleClick?.(index);\n }}\n onKeyDown={handleKeyDown}\n onPointerLeave={(event) => {\n candleHitSlotProps.onPointerLeave?.(event);\n if (!event.defaultPrevented) onCandlePointerLeave?.();\n }}\n onPointerMove={(event: PointerEvent<HTMLButtonElement>) => {\n candleHitSlotProps.onPointerMove?.(event);\n if (!event.defaultPrevented)\n onCandlePointerMove?.({ index, offsetY: event.nativeEvent.offsetY });\n }}\n />\n ) : null}\n </Tag>\n );\n}\nCandleChartCandle.displayName = \"CandleChartCandle\";\n\nexport function CandleChart<TAs extends ElementType = \"figure\">(\n props: CandleChartProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n data,\n xAxis,\n yAxis,\n \"aria-label\": ariaLabel,\n labels,\n activeCandleIndex,\n cursorY,\n interactive = false,\n locale = \"en-US\",\n onCandleClick,\n onCandlePointerLeave,\n onCandlePointerMove,\n selectedCandleIndex,\n slotProps,\n candleLayer,\n announceReadout = true,\n slotCount = data.length,\n slotOffset = 0,\n ...consumerProps\n } = props as CandleChartProps<\"figure\"> & CandleChartViewProps;\n const accessibleLabels = { ...DEFAULT_CANDLE_CHART_LABELS, ...labels };\n const { min, max } = getPriceBounds(data);\n const label = ariaLabel ?? accessibleLabels.chart;\n const monthLabels = axisLabelsFor(xAxis, monthLabelsFor(data, locale));\n const priceLabels = axisLabelsFor(yAxis, priceLabelsFor(min, max, locale));\n const readoutIndex =\n activeCandleIndex ?? selectedCandleIndex ?? (data.length > 0 ? data.length - 1 : undefined);\n const readoutCandle = readoutIndex === undefined ? undefined : data[readoutIndex];\n const crosshairCandle = activeCandleIndex === undefined ? undefined : data[activeCandleIndex];\n const candles = candleLayer ?? (\n <ol\n {...getPartProps(slotProps?.candles, [\"aria-label\", \"data-part\"])}\n data-part=\"candles\"\n aria-label={`${label} ${accessibleLabels.candles}`}\n >\n {data.map((candle, index) => (\n <CandleChartCandle\n key={`${candle.time}-${index}`}\n as=\"li\"\n candle={candle}\n hitLabel={formatLabel(accessibleLabels.candle, { time: String(candle.time) }, locale)}\n index={index}\n x={(index / data.length) * 100}\n slot={100 / data.length}\n min={min}\n max={max}\n interactive={interactive}\n isActive={activeCandleIndex === index}\n isSelected={selectedCandleIndex === index}\n cursorY={cursorY}\n onCandleClick={onCandleClick}\n onCandlePointerLeave={onCandlePointerLeave}\n onCandlePointerMove={onCandlePointerMove}\n slotProps={slotProps}\n />\n ))}\n </ol>\n );\n\n return useRenderElement({\n as,\n defaultTag: \"figure\",\n props: {\n ...consumerProps,\n \"aria-label\": label,\n \"data-uiify-candle-chart\": \"\",\n \"data-interactive\": interactive ? \"\" : undefined,\n children: (\n <>\n <figcaption {...getPartProps(slotProps?.caption)}>{label}</figcaption>\n {interactive && readoutCandle ? (\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(readoutCandle.time)}\n </span>\n <span {...getPartProps(slotProps?.readoutOpen)}>{`O ${readoutCandle.open}`}</span>\n <span {...getPartProps(slotProps?.readoutHigh)}>{`H ${readoutCandle.high}`}</span>\n <span {...getPartProps(slotProps?.readoutLow)}>{`L ${readoutCandle.low}`}</span>\n <span {...getPartProps(slotProps?.readoutClose)}>{`C ${readoutCandle.close}`}</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 {candles}\n {interactive && crosshairCandle && activeCandleIndex !== 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 ...crosshairStyle(slotOffset + activeCandleIndex, slotCount, 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} ${accessibleLabels.months}`}\n >\n {monthLabels.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 && crosshairCandle && activeCandleIndex !== undefined ? (\n <li\n {...getPartProps(slotProps?.crosshairTime, [\"data-part\"])}\n data-part=\"crosshair-time\"\n style={{\n ...slotProps?.crosshairTime?.style,\n ...crosshairStyle(slotOffset + activeCandleIndex, slotCount, undefined),\n }}\n >\n {String(crosshairCandle.time)}\n </li>\n ) : null}\n </ol>\n </div>\n </div>\n </div>\n <ol\n {...getPartProps(slotProps?.priceAxis, [\"aria-label\", \"data-axis\", \"data-part\"])}\n data-part=\"price-axis\"\n data-axis=\"price\"\n aria-label={`${label} ${accessibleLabels.prices}`}\n >\n {priceLabels.map((axisLabel, index) => (\n <li\n key={`${axisLabel.position}-${index}`}\n {...withGeneratedStyle(\n getIndexedPartProps(slotProps?.priceAxisLabel, index, [\"data-part\"]),\n axisStyle(\"y\", axisLabel.position),\n )}\n >\n {axisLabel.label}\n </li>\n ))}\n {interactive && crosshairCandle && activeCandleIndex !== undefined ? (\n <li\n {...getPartProps(slotProps?.crosshairPrice, [\"data-part\"])}\n data-part=\"crosshair-price\"\n style={{ ...slotProps?.crosshairPrice?.style, ...cursorStyle(cursorY) }}\n >\n {crosshairCandle.close}\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} ${accessibleLabels.data}`}\n >\n <thead {...getPartProps(slotProps?.dataTableHead)}>\n <tr {...getPartProps(slotProps?.dataTableHeaderRow)}>\n <th {...getPartProps(slotProps?.dataTableTimeHeader, [\"scope\"])} scope=\"col\">\n {accessibleLabels.time}\n </th>\n <th {...getPartProps(slotProps?.dataTableOpenHeader, [\"scope\"])} scope=\"col\">\n {accessibleLabels.open}\n </th>\n <th {...getPartProps(slotProps?.dataTableHighHeader, [\"scope\"])} scope=\"col\">\n {accessibleLabels.high}\n </th>\n <th {...getPartProps(slotProps?.dataTableLowHeader, [\"scope\"])} scope=\"col\">\n {accessibleLabels.low}\n </th>\n <th {...getPartProps(slotProps?.dataTableCloseHeader, [\"scope\"])} scope=\"col\">\n {accessibleLabels.close}\n </th>\n </tr>\n </thead>\n <tbody {...getPartProps(slotProps?.dataTableBody)}>\n {data.map((candle, index) => (\n <tr\n key={`${candle.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(candle.time)}\n </th>\n <td {...getIndexedPartProps(slotProps?.dataTableOpenCell, slotOffset + index)}>\n {candle.open}\n </td>\n <td {...getIndexedPartProps(slotProps?.dataTableHighCell, slotOffset + index)}>\n {candle.high}\n </td>\n <td {...getIndexedPartProps(slotProps?.dataTableLowCell, slotOffset + index)}>\n {candle.low}\n </td>\n <td {...getIndexedPartProps(slotProps?.dataTableCloseCell, slotOffset + index)}>\n {candle.close}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </>\n ),\n },\n render,\n state: {},\n });\n}\nCandleChart.displayName = \"CandleChart\";\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"CandleChartClient.d.ts","sourceRoot":"","sources":["../../../../src/components/candle-chart/client/CandleChartClient.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,WAAW,EAAE,YAAY,EAAO,MAAM,OAAO,CAAC;AAG3E,OAAO,KAAK,EACV,sBAAsB,EAKvB,MAAM,aAAa,CAAC;AA+BrB,wBAAgB,iBAAiB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAClE,KAAK,EAAE,sBAAsB,CAAC,GAAG,CAAC,GACjC,YAAY,GAAG,IAAI,CAsJrB;yBAxJe,iBAAiB"}
1
+ {"version":3,"file":"CandleChartClient.d.ts","sourceRoot":"","sources":["../../../../src/components/candle-chart/client/CandleChartClient.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,WAAW,EAAE,YAAY,EAAO,MAAM,OAAO,CAAC;AAI3E,OAAO,KAAK,EACV,sBAAsB,EAKvB,MAAM,aAAa,CAAC;AA+BrB,wBAAgB,iBAAiB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAClE,KAAK,EAAE,sBAAsB,CAAC,GAAG,CAAC,GACjC,YAAY,GAAG,IAAI,CAyKrB;yBA3Ke,iBAAiB"}