@logicplanes/kaeso-ui 0.4.4 → 0.4.5

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 (482) hide show
  1. package/ai/component-guides.md +250 -98
  2. package/ai/component-registry.json +264 -236
  3. package/ai/component-registry.md +222 -218
  4. package/ai/icons.md +1 -1
  5. package/ai/tokens.md +18 -14
  6. package/dist/blocks/delete-resource.js +3 -3
  7. package/dist/blocks/delete-resource.js.map +1 -1
  8. package/dist/blocks/pages.js +47 -42
  9. package/dist/blocks/pages.js.map +1 -1
  10. package/dist/blocks/resource-list.js +68 -55
  11. package/dist/blocks/resource-list.js.map +1 -1
  12. package/dist/chunks/agent-avatar-DHieggHK.js +188 -0
  13. package/dist/chunks/agent-avatar-DHieggHK.js.map +1 -0
  14. package/dist/chunks/app-frame-DysOel2X.js +232 -0
  15. package/dist/chunks/app-frame-DysOel2X.js.map +1 -0
  16. package/dist/chunks/arrow-focus-B0KdRFX8.js +20 -0
  17. package/dist/chunks/arrow-focus-B0KdRFX8.js.map +1 -0
  18. package/dist/chunks/avatar-CYNMK7uY.js +110 -0
  19. package/dist/chunks/avatar-CYNMK7uY.js.map +1 -0
  20. package/dist/chunks/badge-C0GC3B9X.js +27 -0
  21. package/dist/chunks/badge-C0GC3B9X.js.map +1 -0
  22. package/dist/chunks/banner-B3DGLTBu.js +88 -0
  23. package/dist/chunks/banner-B3DGLTBu.js.map +1 -0
  24. package/dist/chunks/button-IblhXUyZ.js +202 -0
  25. package/dist/chunks/button-IblhXUyZ.js.map +1 -0
  26. package/dist/chunks/{calendar-BWaf2MXc.js → calendar-Dc6_dl0f.js} +4 -4
  27. package/dist/chunks/calendar-Dc6_dl0f.js.map +1 -0
  28. package/dist/chunks/checkbox-9tbimmF3.js +141 -0
  29. package/dist/chunks/checkbox-9tbimmF3.js.map +1 -0
  30. package/dist/chunks/{cn-Dj6sRgkF.js → cn-BjnOAUrA.js} +45 -4
  31. package/dist/chunks/cn-BjnOAUrA.js.map +1 -0
  32. package/dist/chunks/code-block-64e-Cy1S.js +346 -0
  33. package/dist/chunks/code-block-64e-Cy1S.js.map +1 -0
  34. package/dist/chunks/{code-block-DdNPHEzI.js → code-block-KIvuE8jg.js} +122 -114
  35. package/dist/chunks/code-block-KIvuE8jg.js.map +1 -0
  36. package/dist/chunks/{code-tqj0uhBL.js → code-xqjww4Pv.js} +5 -6
  37. package/dist/chunks/code-xqjww4Pv.js.map +1 -0
  38. package/dist/chunks/combobox-DkcjkWc6.js +352 -0
  39. package/dist/chunks/combobox-DkcjkWc6.js.map +1 -0
  40. package/dist/chunks/command-list-CypqsC4T.js +456 -0
  41. package/dist/chunks/command-list-CypqsC4T.js.map +1 -0
  42. package/dist/chunks/{copy-button-FJvPJn72.js → copy-button-CwU8t_9_.js} +22 -15
  43. package/dist/chunks/copy-button-CwU8t_9_.js.map +1 -0
  44. package/dist/chunks/core-CmK-8ObW.js +505 -0
  45. package/dist/chunks/core-CmK-8ObW.js.map +1 -0
  46. package/dist/chunks/data-table-CqY8_6IS.js +581 -0
  47. package/dist/chunks/data-table-CqY8_6IS.js.map +1 -0
  48. package/dist/chunks/date-popup-DAnjptFt.js +58 -0
  49. package/dist/chunks/date-popup-DAnjptFt.js.map +1 -0
  50. package/dist/chunks/{de-D_0mmG-k.js → de-CqC4aSIV.js} +74 -40
  51. package/dist/chunks/de-CqC4aSIV.js.map +1 -0
  52. package/dist/chunks/{dialog-Cg9A_6SF.js → dialog-2zb6ClNR.js} +156 -134
  53. package/dist/chunks/dialog-2zb6ClNR.js.map +1 -0
  54. package/dist/chunks/disclosure-BtYRTDO3.js +22 -0
  55. package/dist/chunks/disclosure-BtYRTDO3.js.map +1 -0
  56. package/dist/chunks/domain-obd_w9xk.js +28 -0
  57. package/dist/chunks/domain-obd_w9xk.js.map +1 -0
  58. package/dist/chunks/{empty-DvhyMXQq.js → empty-BpiUgGzm.js} +2 -2
  59. package/dist/chunks/{empty-DvhyMXQq.js.map → empty-BpiUgGzm.js.map} +1 -1
  60. package/dist/chunks/{field-TviMvYa2.js → field-D7m-yl-D.js} +37 -34
  61. package/dist/chunks/field-D7m-yl-D.js.map +1 -0
  62. package/dist/chunks/{icon-D7ja-_Yk.js → icon-CBzOwqrX.js} +7 -6
  63. package/dist/chunks/{icon-D7ja-_Yk.js.map → icon-CBzOwqrX.js.map} +1 -1
  64. package/dist/chunks/{icon-button-CrdF_eMG.js → icon-button-Dfwpvmav.js} +7 -6
  65. package/dist/chunks/icon-button-Dfwpvmav.js.map +1 -0
  66. package/dist/chunks/{identity-BmhQ6BQ-.js → identity-3Foi5F8w.js} +7 -7
  67. package/dist/chunks/{identity-BmhQ6BQ-.js.map → identity-3Foi5F8w.js.map} +1 -1
  68. package/dist/chunks/{input-2VJuj_M4.js → input-Bo5-UZg2.js} +15 -9
  69. package/dist/chunks/input-Bo5-UZg2.js.map +1 -0
  70. package/dist/chunks/{input-group-DQ_4DoXg.js → input-group-jPcK9T_a.js} +42 -29
  71. package/dist/chunks/input-group-jPcK9T_a.js.map +1 -0
  72. package/dist/chunks/iso-field-DoqHBg8n.js +52 -0
  73. package/dist/chunks/iso-field-DoqHBg8n.js.map +1 -0
  74. package/dist/chunks/json-view-DZ2nL2Ir.js +253 -0
  75. package/dist/chunks/json-view-DZ2nL2Ir.js.map +1 -0
  76. package/dist/chunks/{kbd-BF1vKXJf.js → kbd-8A0ML_up.js} +30 -28
  77. package/dist/chunks/kbd-8A0ML_up.js.map +1 -0
  78. package/dist/chunks/label-DW24Aj0Z.js +26 -0
  79. package/dist/chunks/label-DW24Aj0Z.js.map +1 -0
  80. package/dist/chunks/{link-KWI7PevW.js → link-CMjkcLQK.js} +14 -14
  81. package/dist/chunks/link-CMjkcLQK.js.map +1 -0
  82. package/dist/chunks/list-B4G-sWwV.js +540 -0
  83. package/dist/chunks/list-B4G-sWwV.js.map +1 -0
  84. package/dist/chunks/{loader-DCfPndXa.js → loader-zo8CCIGJ.js} +2 -2
  85. package/dist/chunks/{loader-DCfPndXa.js.map → loader-zo8CCIGJ.js.map} +1 -1
  86. package/dist/chunks/markdown-C565aBR7.js +338 -0
  87. package/dist/chunks/markdown-C565aBR7.js.map +1 -0
  88. package/dist/chunks/menu-Clvv6ftq.js +485 -0
  89. package/dist/chunks/menu-Clvv6ftq.js.map +1 -0
  90. package/dist/chunks/merge-refs-BN1FyQt9.js +20 -0
  91. package/dist/chunks/merge-refs-BN1FyQt9.js.map +1 -0
  92. package/dist/chunks/meter-CASMHlxl.js +100 -0
  93. package/dist/chunks/meter-CASMHlxl.js.map +1 -0
  94. package/dist/chunks/nav-sheet-Dt6JSvzX.js +67 -0
  95. package/dist/chunks/nav-sheet-Dt6JSvzX.js.map +1 -0
  96. package/dist/chunks/{nav-wordmark-_pjheAsZ.js → nav-wordmark-J4pB_vjr.js} +4 -8
  97. package/dist/chunks/nav-wordmark-J4pB_vjr.js.map +1 -0
  98. package/dist/chunks/page-header-kS5tdmvb.js +45 -0
  99. package/dist/chunks/page-header-kS5tdmvb.js.map +1 -0
  100. package/dist/chunks/pagination-D7fAm8qg.js +147 -0
  101. package/dist/chunks/pagination-D7fAm8qg.js.map +1 -0
  102. package/dist/chunks/picker-popover-1FHb1LQG.js +119 -0
  103. package/dist/chunks/picker-popover-1FHb1LQG.js.map +1 -0
  104. package/dist/chunks/popover-Bl5QYqnh.js +51 -0
  105. package/dist/chunks/popover-Bl5QYqnh.js.map +1 -0
  106. package/dist/chunks/{portal-context-BBbzDKmY.js → portal-context-CTatR2Z8.js} +14 -4
  107. package/dist/chunks/portal-context-CTatR2Z8.js.map +1 -0
  108. package/dist/chunks/{radio-CDDFpdtL.js → radio-C6GtzF_t.js} +38 -23
  109. package/dist/chunks/radio-C6GtzF_t.js.map +1 -0
  110. package/dist/chunks/range-popup-lGiZsG3s.js +160 -0
  111. package/dist/chunks/range-popup-lGiZsG3s.js.map +1 -0
  112. package/dist/chunks/reasoning-frame-C3HdQRRS.js +51 -0
  113. package/dist/chunks/reasoning-frame-C3HdQRRS.js.map +1 -0
  114. package/dist/chunks/release-art-ChiT4T2S.js +582 -0
  115. package/dist/chunks/release-art-ChiT4T2S.js.map +1 -0
  116. package/dist/chunks/rights-B68ocZuq.js +312 -0
  117. package/dist/chunks/rights-B68ocZuq.js.map +1 -0
  118. package/dist/chunks/{scroll-area-D8MD7Vpo.js → scroll-area-_Ljh4-bG.js} +11 -6
  119. package/dist/chunks/scroll-area-_Ljh4-bG.js.map +1 -0
  120. package/dist/chunks/section-CFBYhsUi.js +77 -0
  121. package/dist/chunks/section-CFBYhsUi.js.map +1 -0
  122. package/dist/chunks/section-header-DU1Q4Tdf.js +28 -0
  123. package/dist/chunks/section-header-DU1Q4Tdf.js.map +1 -0
  124. package/dist/chunks/segmented-D9i1avik.js +119 -0
  125. package/dist/chunks/segmented-D9i1avik.js.map +1 -0
  126. package/dist/chunks/select-BqjmQOqx.js +222 -0
  127. package/dist/chunks/select-BqjmQOqx.js.map +1 -0
  128. package/dist/chunks/{separator-D7TzNHmX.js → separator-BNWf6BBj.js} +13 -8
  129. package/dist/chunks/separator-BNWf6BBj.js.map +1 -0
  130. package/dist/chunks/sidebar-Dq7oGOje.js +664 -0
  131. package/dist/chunks/sidebar-Dq7oGOje.js.map +1 -0
  132. package/dist/chunks/{sidebar-menu-BN3jkTlK.js → sidebar-menu-QSSNu1jJ.js} +2 -2
  133. package/dist/chunks/{sidebar-menu-BN3jkTlK.js.map → sidebar-menu-QSSNu1jJ.js.map} +1 -1
  134. package/dist/chunks/{skeleton-Dcz57Zyp.js → skeleton-D-qk3mes.js} +3 -3
  135. package/dist/chunks/skeleton-D-qk3mes.js.map +1 -0
  136. package/dist/chunks/slider-CcE8GtuV.js +58 -0
  137. package/dist/chunks/slider-CcE8GtuV.js.map +1 -0
  138. package/dist/chunks/{status-dot-QJTF0Yv4.js → status-dot-CP6runiC.js} +4 -4
  139. package/dist/chunks/{status-dot-QJTF0Yv4.js.map → status-dot-CP6runiC.js.map} +1 -1
  140. package/dist/chunks/{styles-CVJU9t9v.js → styles-hkFkoBbi.js} +2 -2
  141. package/dist/chunks/{styles-CVJU9t9v.js.map → styles-hkFkoBbi.js.map} +1 -1
  142. package/dist/chunks/{swap-text-Dr0Irxz6.js → swap-text-SlUjrTlG.js} +3 -3
  143. package/dist/chunks/swap-text-SlUjrTlG.js.map +1 -0
  144. package/dist/chunks/switch-ngywMQdl.js +76 -0
  145. package/dist/chunks/switch-ngywMQdl.js.map +1 -0
  146. package/dist/chunks/table-CTK5E0J7.js +102 -0
  147. package/dist/chunks/table-CTK5E0J7.js.map +1 -0
  148. package/dist/chunks/tag-BGr6lTSV.js +100 -0
  149. package/dist/chunks/tag-BGr6lTSV.js.map +1 -0
  150. package/dist/chunks/{text-CIXH8rmT.js → text-DkKdTVUf.js} +9 -9
  151. package/dist/chunks/text-DkKdTVUf.js.map +1 -0
  152. package/dist/chunks/{textarea--4FRL3Pb.js → textarea-CO0HP6fK.js} +47 -36
  153. package/dist/chunks/textarea-CO0HP6fK.js.map +1 -0
  154. package/dist/chunks/timeseries-Ck-q0wWn.js +381 -0
  155. package/dist/chunks/timeseries-Ck-q0wWn.js.map +1 -0
  156. package/dist/chunks/toolbar-u0Gm7Q7-.js +61 -0
  157. package/dist/chunks/toolbar-u0Gm7Q7-.js.map +1 -0
  158. package/dist/chunks/tooltip-Tkm-urbi.js +202 -0
  159. package/dist/chunks/tooltip-Tkm-urbi.js.map +1 -0
  160. package/dist/chunks/tooltip-root-BC_RNNiP.js +70 -0
  161. package/dist/chunks/tooltip-root-BC_RNNiP.js.map +1 -0
  162. package/dist/chunks/truncated-d1afmUJT.js +33 -0
  163. package/dist/chunks/truncated-d1afmUJT.js.map +1 -0
  164. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js +28 -0
  165. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js.map +1 -0
  166. package/dist/chunks/use-hydrating-COtYVRo4.js +8 -0
  167. package/dist/chunks/use-hydrating-COtYVRo4.js.map +1 -0
  168. package/dist/chunks/use-scroll-fade-uc8mWSDX.js +30 -0
  169. package/dist/chunks/use-scroll-fade-uc8mWSDX.js.map +1 -0
  170. package/dist/chunks/{zh-CN-Bm6UPIbW.js → zh-CN-BlpsT6d_.js} +73 -39
  171. package/dist/chunks/zh-CN-BlpsT6d_.js.map +1 -0
  172. package/dist/components/agent-avatar.js +1 -1
  173. package/dist/components/app-frame.js +2 -2
  174. package/dist/components/avatar.js +1 -1
  175. package/dist/components/badge.js +1 -1
  176. package/dist/components/banner.js +1 -1
  177. package/dist/components/button-group.js +22 -22
  178. package/dist/components/button-group.js.map +1 -1
  179. package/dist/components/button.js +1 -1
  180. package/dist/components/calendar.js +1 -1
  181. package/dist/components/charts/bar.js +235 -160
  182. package/dist/components/charts/bar.js.map +1 -1
  183. package/dist/components/charts/donut.js +144 -99
  184. package/dist/components/charts/donut.js.map +1 -1
  185. package/dist/components/charts/gauge.js +61 -49
  186. package/dist/components/charts/gauge.js.map +1 -1
  187. package/dist/components/charts/heatmap.js +179 -70
  188. package/dist/components/charts/heatmap.js.map +1 -1
  189. package/dist/components/charts/sankey.js +144 -77
  190. package/dist/components/charts/sankey.js.map +1 -1
  191. package/dist/components/charts/sparkline.js +54 -38
  192. package/dist/components/charts/sparkline.js.map +1 -1
  193. package/dist/components/charts/timeseries.js +1 -1
  194. package/dist/components/charts.js +2 -2
  195. package/dist/components/checkbox.js +1 -1
  196. package/dist/components/code-block.js +3 -3
  197. package/dist/components/code.js +1 -1
  198. package/dist/components/collapsible.js +77 -1
  199. package/dist/components/collapsible.js.map +1 -0
  200. package/dist/components/combobox.js +1 -1
  201. package/dist/components/command-list.js +2 -2
  202. package/dist/components/command-palette.js +89 -66
  203. package/dist/components/command-palette.js.map +1 -1
  204. package/dist/components/copy-button.js +1 -1
  205. package/dist/components/data-table.js +1 -459
  206. package/dist/components/date-picker.js +162 -151
  207. package/dist/components/date-picker.js.map +1 -1
  208. package/dist/components/dialog.js +74 -63
  209. package/dist/components/dialog.js.map +1 -1
  210. package/dist/components/display-options.js +76 -64
  211. package/dist/components/display-options.js.map +1 -1
  212. package/dist/components/empty.js +1 -1
  213. package/dist/components/field.js +1 -1
  214. package/dist/components/figure.js +2 -2
  215. package/dist/components/filter-chip.js +36 -27
  216. package/dist/components/filter-chip.js.map +1 -1
  217. package/dist/components/filter-row.js +4 -4
  218. package/dist/components/filter-row.js.map +1 -1
  219. package/dist/components/flow.js +94 -63
  220. package/dist/components/flow.js.map +1 -1
  221. package/dist/components/heading.js +1 -1
  222. package/dist/components/icon-button.js +1 -1
  223. package/dist/components/icon.js +1 -1
  224. package/dist/components/input.js +176 -98
  225. package/dist/components/input.js.map +1 -1
  226. package/dist/components/kaeso/conversation.js +51 -46
  227. package/dist/components/kaeso/conversation.js.map +1 -1
  228. package/dist/components/kaeso/identity.js +1 -1
  229. package/dist/components/kaeso/moments.js +23 -20
  230. package/dist/components/kaeso/moments.js.map +1 -1
  231. package/dist/components/kaeso/rights.js +1 -1
  232. package/dist/components/kaeso/usage.js +90 -74
  233. package/dist/components/kaeso/usage.js.map +1 -1
  234. package/dist/components/kaeso.js +200 -187
  235. package/dist/components/kaeso.js.map +1 -1
  236. package/dist/components/kbd.js +1 -1
  237. package/dist/components/key-value.js +32 -47
  238. package/dist/components/key-value.js.map +1 -1
  239. package/dist/components/label.js +1 -25
  240. package/dist/components/layout.js +2 -2
  241. package/dist/components/layout.js.map +1 -1
  242. package/dist/components/link.js +1 -1
  243. package/dist/components/list.js +1 -1
  244. package/dist/components/loader.js +11 -10
  245. package/dist/components/loader.js.map +1 -1
  246. package/dist/components/logo.js +2 -2
  247. package/dist/components/markdown.js +1 -1
  248. package/dist/components/menu.js +2 -2
  249. package/dist/components/meter.js +1 -1
  250. package/dist/components/page-header.js +1 -1
  251. package/dist/components/pagination.js +1 -1
  252. package/dist/components/playground.js +644 -529
  253. package/dist/components/playground.js.map +1 -1
  254. package/dist/components/popover.js +4 -4
  255. package/dist/components/popover.js.map +1 -1
  256. package/dist/components/portal.js +1 -1
  257. package/dist/components/qr-code.js +2 -2
  258. package/dist/components/qr-code.js.map +1 -1
  259. package/dist/components/radio.js +1 -1
  260. package/dist/components/release-art.js +1 -1
  261. package/dist/components/scroll-area.js +1 -1
  262. package/dist/components/section.js +1 -1
  263. package/dist/components/segmented.js +1 -1
  264. package/dist/components/select.js +1 -1
  265. package/dist/components/separator.js +1 -1
  266. package/dist/components/settings.js +39 -46
  267. package/dist/components/settings.js.map +1 -1
  268. package/dist/components/sheet.js +10 -9
  269. package/dist/components/sheet.js.map +1 -1
  270. package/dist/components/sidebar.js +1 -1
  271. package/dist/components/skeleton.js +1 -1
  272. package/dist/components/slider.js +1 -1
  273. package/dist/components/stat.js +98 -84
  274. package/dist/components/stat.js.map +1 -1
  275. package/dist/components/status-dot.js +1 -1
  276. package/dist/components/surface.js +1 -1
  277. package/dist/components/swap-text.js +1 -1
  278. package/dist/components/switch.js +1 -1
  279. package/dist/components/table.js +1 -1
  280. package/dist/components/tabs.js +73 -55
  281. package/dist/components/tabs.js.map +1 -1
  282. package/dist/components/tag.js +1 -1
  283. package/dist/components/text.js +1 -1
  284. package/dist/components/theme-image.js +1 -1
  285. package/dist/components/theme-menu.js +5 -2
  286. package/dist/components/theme-menu.js.map +1 -1
  287. package/dist/components/theme-select.js +1 -1
  288. package/dist/components/thumbnail.js +35 -24
  289. package/dist/components/thumbnail.js.map +1 -1
  290. package/dist/components/timeline.js +51 -35
  291. package/dist/components/timeline.js.map +1 -1
  292. package/dist/components/toast.js +76 -66
  293. package/dist/components/toast.js.map +1 -1
  294. package/dist/components/toc.js +14 -8
  295. package/dist/components/toc.js.map +1 -1
  296. package/dist/components/toolbar.js +1 -1
  297. package/dist/components/tooltip.js +1 -1
  298. package/dist/components/visually-hidden.js +1 -1
  299. package/dist/i18n-provider.js +1 -1
  300. package/dist/index.js +100 -100
  301. package/dist/kaeso.css +605 -67
  302. package/dist/styles.css +1 -1
  303. package/dist/tailwind.css +1 -1
  304. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -2
  305. package/dist/types/components/agent-avatar/agent-avatar.d.ts +24 -19
  306. package/dist/types/components/badge/badge.d.ts +3 -3
  307. package/dist/types/components/banner/banner.d.ts +3 -3
  308. package/dist/types/components/button/button.d.ts +2 -2
  309. package/dist/types/components/button-group/button-group.d.ts +1 -1
  310. package/dist/types/components/charts/domain.d.ts +11 -0
  311. package/dist/types/components/charts/marks.d.ts +1 -0
  312. package/dist/types/components/code/code.d.ts +3 -3
  313. package/dist/types/components/code-block/json-view.d.ts +2 -1
  314. package/dist/types/components/code-block/numbers.d.ts +1 -0
  315. package/dist/types/components/collapsible/collapsible.d.ts +2 -2
  316. package/dist/types/components/collapsible/disclosure.d.ts +2 -0
  317. package/dist/types/components/data-table/data-table.d.ts +6 -5
  318. package/dist/types/components/data-table/docs.d.ts +1 -0
  319. package/dist/types/components/data-table/time-columns.d.ts +1 -0
  320. package/dist/types/components/date-picker/focus-day.d.ts +1 -0
  321. package/dist/types/components/date-picker/iso-field.d.ts +8 -1
  322. package/dist/types/components/dialog/dialog.d.ts +7 -7
  323. package/dist/types/components/field/field.d.ts +1 -1
  324. package/dist/types/components/flow/flow.d.ts +1 -1
  325. package/dist/types/components/icon-button/icon-button.d.ts +1 -1
  326. package/dist/types/components/input/input-group.d.ts +2 -0
  327. package/dist/types/components/input/number-input.d.ts +4 -4
  328. package/dist/types/components/input/otp-input.d.ts +3 -3
  329. package/dist/types/components/kaeso/client-button.d.ts +2 -1
  330. package/dist/types/components/kaeso/provider-picker.d.ts +1 -0
  331. package/dist/types/components/kaeso/rights.d.ts +1 -1
  332. package/dist/types/components/kaeso/role-picker.d.ts +1 -0
  333. package/dist/types/components/key-value/key-value.d.ts +2 -2
  334. package/dist/types/components/layout/layout.d.ts +2 -2
  335. package/dist/types/components/link/link.d.ts +4 -4
  336. package/dist/types/components/list/list.d.ts +2 -2
  337. package/dist/types/components/menu/menu.d.ts +2 -1
  338. package/dist/types/components/menu/styles.d.ts +3 -3
  339. package/dist/types/components/meter/meter.d.ts +3 -3
  340. package/dist/types/components/page-header/page-header.d.ts +1 -1
  341. package/dist/types/components/pagination/pagination.d.ts +2 -2
  342. package/dist/types/components/playground/prompt-suggestions.d.ts +1 -0
  343. package/dist/types/components/playground/reasoning-frame.d.ts +14 -0
  344. package/dist/types/components/playground/reasoning.d.ts +1 -0
  345. package/dist/types/components/popover/popover.d.ts +1 -1
  346. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  347. package/dist/types/components/section/section-header.d.ts +6 -0
  348. package/dist/types/components/segmented/segmented.d.ts +1 -0
  349. package/dist/types/components/select/select.d.ts +1 -1
  350. package/dist/types/components/sheet/sheet.d.ts +3 -3
  351. package/dist/types/components/sidebar/sidebar.d.ts +1 -0
  352. package/dist/types/components/slider/slider.d.ts +2 -2
  353. package/dist/types/components/stat/stat.d.ts +1 -1
  354. package/dist/types/components/tabs/tabs.d.ts +6 -4
  355. package/dist/types/components/text/truncated.d.ts +7 -0
  356. package/dist/types/components/timeline/timeline.d.ts +5 -5
  357. package/dist/types/components/toc/toc.d.ts +1 -1
  358. package/dist/types/components/toolbar/toolbar.d.ts +1 -1
  359. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  360. package/dist/types/components/tooltip/trigger-props.d.ts +1 -0
  361. package/dist/types/hooks/use-coarse-pointer.d.ts +1 -0
  362. package/dist/types/hooks/use-hydrating.d.ts +1 -0
  363. package/dist/types/utils/arrow-focus.d.ts +4 -1
  364. package/dist/types/utils/cn.d.ts +33 -0
  365. package/dist/types/utils/portal-context.d.ts +7 -1
  366. package/dist/utils.js +2 -2
  367. package/foundations/accessibility.md +3 -2
  368. package/foundations/color.md +5 -1
  369. package/foundations/elevation.md +1 -0
  370. package/foundations/motion.md +1 -1
  371. package/foundations/shape.md +2 -2
  372. package/foundations/typography.md +12 -12
  373. package/package.json +2 -2
  374. package/dist/chunks/agent-avatar-0pdBTWkR.js +0 -171
  375. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +0 -1
  376. package/dist/chunks/app-frame-DogGRmsu.js +0 -221
  377. package/dist/chunks/app-frame-DogGRmsu.js.map +0 -1
  378. package/dist/chunks/arrow-focus-BcySmwwU.js +0 -11
  379. package/dist/chunks/arrow-focus-BcySmwwU.js.map +0 -1
  380. package/dist/chunks/avatar-CWbdwbJv.js +0 -83
  381. package/dist/chunks/avatar-CWbdwbJv.js.map +0 -1
  382. package/dist/chunks/badge-C2KtxCLB.js +0 -26
  383. package/dist/chunks/badge-C2KtxCLB.js.map +0 -1
  384. package/dist/chunks/banner-BA2ALw9M.js +0 -85
  385. package/dist/chunks/banner-BA2ALw9M.js.map +0 -1
  386. package/dist/chunks/button-CzuxqawA.js +0 -164
  387. package/dist/chunks/button-CzuxqawA.js.map +0 -1
  388. package/dist/chunks/calendar-BWaf2MXc.js.map +0 -1
  389. package/dist/chunks/checkbox-CQjwCPkc.js +0 -126
  390. package/dist/chunks/checkbox-CQjwCPkc.js.map +0 -1
  391. package/dist/chunks/cn-Dj6sRgkF.js.map +0 -1
  392. package/dist/chunks/code-block-BZIe_B9l.js +0 -334
  393. package/dist/chunks/code-block-BZIe_B9l.js.map +0 -1
  394. package/dist/chunks/code-block-DdNPHEzI.js.map +0 -1
  395. package/dist/chunks/code-tqj0uhBL.js.map +0 -1
  396. package/dist/chunks/collapsible-CKrCX_T9.js +0 -87
  397. package/dist/chunks/collapsible-CKrCX_T9.js.map +0 -1
  398. package/dist/chunks/combobox-DjDI7SUC.js +0 -319
  399. package/dist/chunks/combobox-DjDI7SUC.js.map +0 -1
  400. package/dist/chunks/command-list-C2Y7V_lt.js +0 -418
  401. package/dist/chunks/command-list-C2Y7V_lt.js.map +0 -1
  402. package/dist/chunks/copy-button-FJvPJn72.js.map +0 -1
  403. package/dist/chunks/core-BYns5ytV.js +0 -472
  404. package/dist/chunks/core-BYns5ytV.js.map +0 -1
  405. package/dist/chunks/date-popup-CPA_zt6o.js +0 -35
  406. package/dist/chunks/date-popup-CPA_zt6o.js.map +0 -1
  407. package/dist/chunks/de-D_0mmG-k.js.map +0 -1
  408. package/dist/chunks/dialog-Cg9A_6SF.js.map +0 -1
  409. package/dist/chunks/field-TviMvYa2.js.map +0 -1
  410. package/dist/chunks/hidden-description-B2zSmLcn.js +0 -23
  411. package/dist/chunks/hidden-description-B2zSmLcn.js.map +0 -1
  412. package/dist/chunks/icon-button-CrdF_eMG.js.map +0 -1
  413. package/dist/chunks/input-2VJuj_M4.js.map +0 -1
  414. package/dist/chunks/input-group-DQ_4DoXg.js.map +0 -1
  415. package/dist/chunks/iso-field-B2rTwiBo.js +0 -33
  416. package/dist/chunks/iso-field-B2rTwiBo.js.map +0 -1
  417. package/dist/chunks/json-view-Dqd2TDkc.js +0 -175
  418. package/dist/chunks/json-view-Dqd2TDkc.js.map +0 -1
  419. package/dist/chunks/kbd-BF1vKXJf.js.map +0 -1
  420. package/dist/chunks/link-KWI7PevW.js.map +0 -1
  421. package/dist/chunks/list-M1csq-d4.js +0 -494
  422. package/dist/chunks/list-M1csq-d4.js.map +0 -1
  423. package/dist/chunks/markdown-BupwFOae.js +0 -313
  424. package/dist/chunks/markdown-BupwFOae.js.map +0 -1
  425. package/dist/chunks/menu-DEmBfdPm.js +0 -450
  426. package/dist/chunks/menu-DEmBfdPm.js.map +0 -1
  427. package/dist/chunks/meter-Bj4N3Xuh.js +0 -84
  428. package/dist/chunks/meter-Bj4N3Xuh.js.map +0 -1
  429. package/dist/chunks/nav-sheet-CzgIwgAm.js +0 -60
  430. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +0 -1
  431. package/dist/chunks/nav-wordmark-_pjheAsZ.js.map +0 -1
  432. package/dist/chunks/page-header-DL2y2iZp.js +0 -41
  433. package/dist/chunks/page-header-DL2y2iZp.js.map +0 -1
  434. package/dist/chunks/pagination-Cn_qF4cg.js +0 -86
  435. package/dist/chunks/pagination-Cn_qF4cg.js.map +0 -1
  436. package/dist/chunks/picker-popover-BxyU1U9F.js +0 -106
  437. package/dist/chunks/picker-popover-BxyU1U9F.js.map +0 -1
  438. package/dist/chunks/popover-DNN4S47w.js +0 -50
  439. package/dist/chunks/popover-DNN4S47w.js.map +0 -1
  440. package/dist/chunks/portal-context-BBbzDKmY.js.map +0 -1
  441. package/dist/chunks/radio-CDDFpdtL.js.map +0 -1
  442. package/dist/chunks/range-popup-CRyWYUB1.js +0 -128
  443. package/dist/chunks/range-popup-CRyWYUB1.js.map +0 -1
  444. package/dist/chunks/release-art-ZwfFQImt.js +0 -561
  445. package/dist/chunks/release-art-ZwfFQImt.js.map +0 -1
  446. package/dist/chunks/rights-Cyp0Pzp-.js +0 -279
  447. package/dist/chunks/rights-Cyp0Pzp-.js.map +0 -1
  448. package/dist/chunks/scroll-area-D8MD7Vpo.js.map +0 -1
  449. package/dist/chunks/scroll-parent-WXvzQcUo.js +0 -14
  450. package/dist/chunks/scroll-parent-WXvzQcUo.js.map +0 -1
  451. package/dist/chunks/section-Ce1efbsP.js +0 -87
  452. package/dist/chunks/section-Ce1efbsP.js.map +0 -1
  453. package/dist/chunks/segmented-CErcoxwi.js +0 -114
  454. package/dist/chunks/segmented-CErcoxwi.js.map +0 -1
  455. package/dist/chunks/select-x4XVsdCI.js +0 -210
  456. package/dist/chunks/select-x4XVsdCI.js.map +0 -1
  457. package/dist/chunks/separator-D7TzNHmX.js.map +0 -1
  458. package/dist/chunks/sidebar-3r1ZRXlN.js +0 -621
  459. package/dist/chunks/sidebar-3r1ZRXlN.js.map +0 -1
  460. package/dist/chunks/skeleton-Dcz57Zyp.js.map +0 -1
  461. package/dist/chunks/slider-Ci83PGtj.js +0 -57
  462. package/dist/chunks/slider-Ci83PGtj.js.map +0 -1
  463. package/dist/chunks/swap-text-Dr0Irxz6.js.map +0 -1
  464. package/dist/chunks/switch-BNMq_kGt.js +0 -59
  465. package/dist/chunks/switch-BNMq_kGt.js.map +0 -1
  466. package/dist/chunks/table-BeOSKl_3.js +0 -84
  467. package/dist/chunks/table-BeOSKl_3.js.map +0 -1
  468. package/dist/chunks/tag-D_M1s2qS.js +0 -87
  469. package/dist/chunks/tag-D_M1s2qS.js.map +0 -1
  470. package/dist/chunks/text-CIXH8rmT.js.map +0 -1
  471. package/dist/chunks/textarea--4FRL3Pb.js.map +0 -1
  472. package/dist/chunks/timeseries-D1xjRXfk.js +0 -339
  473. package/dist/chunks/timeseries-D1xjRXfk.js.map +0 -1
  474. package/dist/chunks/toolbar-WA_oZgu-.js +0 -37
  475. package/dist/chunks/toolbar-WA_oZgu-.js.map +0 -1
  476. package/dist/chunks/tooltip-OcwO0VUT.js +0 -154
  477. package/dist/chunks/tooltip-OcwO0VUT.js.map +0 -1
  478. package/dist/chunks/tooltip-root-DzahJDVj.js +0 -60
  479. package/dist/chunks/tooltip-root-DzahJDVj.js.map +0 -1
  480. package/dist/chunks/zh-CN-Bm6UPIbW.js.map +0 -1
  481. package/dist/components/data-table.js.map +0 -1
  482. package/dist/components/label.js.map +0 -1
@@ -0,0 +1,381 @@
1
+ "use client";
2
+ import { t as e } from "./cn-BjnOAUrA.js";
3
+ import { i as t, r as n } from "./context-BELWW79w.js";
4
+ import { dateFormatter as r, formatNumber as i, formatPercent as a, formatTimeZone as o } from "../format.js";
5
+ import { A as ee, D as s, E as c, O as l, S as te, _ as u, b as ne, g as re, i as ie, n as ae, p as oe, r as se, s as ce, t as d, v as le } from "./core-CmK-8ObW.js";
6
+ import { t as ue } from "./linear-scale-BWKeRqDX.js";
7
+ import { a as de, n as fe, o as pe, r as me, s as he, t as ge } from "./domain-obd_w9xk.js";
8
+ import { forwardRef as f, useId as _e, useMemo as ve, useState as ye } from "react";
9
+ import { Fragment as be, jsx as p, jsxs as m } from "react/jsx-runtime";
10
+ import { area as xe, curveMonotoneX as h, line as Se, stack as Ce, stackOffsetDiverging as we } from "d3-shape";
11
+ import { bisector as Te, max as Ee, min as De } from "d3-array";
12
+ import { utcTicks as Oe } from "d3-time";
13
+ //#region src/components/charts/time-axis.ts
14
+ var g = /* @__PURE__ */ new Map();
15
+ function ke(e) {
16
+ if (!e) return (e) => e.getTime() - e.getTimezoneOffset() * 6e4;
17
+ if (e === "UTC") return (e) => e.getTime();
18
+ let t = g.get(e);
19
+ if (!t) {
20
+ let n = new Intl.DateTimeFormat("en-US", {
21
+ timeZone: e,
22
+ hourCycle: "h23",
23
+ year: "numeric",
24
+ month: "numeric",
25
+ day: "numeric",
26
+ hour: "numeric",
27
+ minute: "numeric",
28
+ second: "numeric"
29
+ });
30
+ t = (e) => {
31
+ let t = Object.fromEntries(n.formatToParts(e).map((e) => [e.type, Number(e.value)]));
32
+ return Date.UTC(t.year ?? 1970, (t.month ?? 1) - 1, t.day ?? 1, t.hour ?? 0, t.minute ?? 0, t.second ?? 0) + e.getUTCMilliseconds();
33
+ }, g.set(e, t);
34
+ }
35
+ return t;
36
+ }
37
+ function Ae(e, t) {
38
+ let n = e - (t(new Date(e)) - e);
39
+ return new Date(e - (t(new Date(n)) - n));
40
+ }
41
+ function _(e, t, n, r) {
42
+ return Oe(new Date(r(e)), new Date(r(t)), n).flatMap((e) => {
43
+ let t = Ae(e.getTime(), r);
44
+ return r(t) === e.getTime() ? [t] : [];
45
+ });
46
+ }
47
+ var je = (e, t) => new Date(t(e)).toISOString().slice(0, 10), Me = { kind: {
48
+ line: { classes: "" },
49
+ area: { classes: "" },
50
+ stacked: { classes: "" }
51
+ } }, Ne = { kind: "line" };
52
+ function v(e, t, n) {
53
+ return r({
54
+ ...t,
55
+ ...n ? { timeZone: n } : {}
56
+ }, e);
57
+ }
58
+ var Pe = {
59
+ hour: "2-digit",
60
+ minute: "2-digit",
61
+ hourCycle: "h23"
62
+ }, y = {
63
+ month: "short",
64
+ day: "numeric"
65
+ }, Fe = 36e5;
66
+ function Ie(e, t, n, r) {
67
+ if (t <= 48 * Fe) return v(e, Pe, n);
68
+ if (t <= 2160 * Fe) return v(e, y, n);
69
+ let i = v(e, { month: "short" }, n);
70
+ return (e) => {
71
+ let t = new Date(r(e));
72
+ return t.getUTCMonth() === 0 ? String(t.getUTCFullYear()) : i(e);
73
+ };
74
+ }
75
+ var Le = 864e5;
76
+ function Re(e, t, n, r, i, a, o, ee) {
77
+ let s = [];
78
+ for (let c = Math.max(2, Math.min(10, Math.floor(n / 64))); c >= 1; c--) {
79
+ let n = _(e, t, c, o).filter((e) => !ee || o(e) % Le === 0).filter((e, t, n) => t === 0 || a(e) !== a(n[t - 1])), l = u(n.map((e) => ({
80
+ key: e.getTime(),
81
+ at: Math.round(i(e)),
82
+ label: a(e)
83
+ })), r);
84
+ if (l.length === n.length && l.length >= 2) return l;
85
+ l.length > s.length && (s = l);
86
+ }
87
+ if (s.length < 2 && t.getTime() > e.getTime()) {
88
+ let n = u([e, t].map((e) => ({
89
+ key: e.getTime(),
90
+ at: Math.round(i(e)),
91
+ label: a(e)
92
+ })), r);
93
+ if (n.length === 2) return n;
94
+ }
95
+ return s;
96
+ }
97
+ var ze = /* @__PURE__ */ f(function({ series: r, kind: u = "line", height: f = 240, formatValue: Oe, threshold: g, hideLegend: Ae, highlight: _, formatTime: Me, formatTick: Ne, tickAt: Le = "time", timeZone: ze, shares: Be = !0, partial: b, className: Ve, "aria-label": He, ...x }, Ue) {
98
+ let S = t(), We = n(), Ge = Oe ?? ((e) => i(e)), [Ke, C] = s(), w = _e().replace(/:/g, ""), qe = te(Oe ?? fe), [Je, Ye] = ye(/* @__PURE__ */ new Set()), [T, Xe] = ye(null), [E, Ze] = ye(null), D = r.filter((e) => !Je.has(e.id)), O = ve(() => (r[0]?.points ?? []).map((e) => new Date(e.t)), [r]), k = D.flatMap((e) => e.points.map((e) => e.v)), Qe = r.length > 0 && D.length === 0, A = x.empty ?? (Qe || O.length === 0 || !de(k)), j = u === "stacked", $e = (e) => O.map((t, n) => D.reduce((t, r) => t + (Number.isFinite(r.points[n]?.v) && (r.points[n]?.v ?? 0) * e > 0 ? r.points[n].v : 0), 0)), et = he(j ? [...$e(1), ...$e(-1)] : k, g ? [g.value] : []), M = ue().domain(et).nice(4), [tt = 0, nt = 1] = M.domain(), N = l([
99
+ ...k.map((e) => Number.isFinite(e) ? e : 0),
100
+ tt,
101
+ nt
102
+ ], !!x.loading), P = N[N.length - 2] ?? tt, rt = N[N.length - 1] ?? nt, it = A ? [] : pe(k) ? [0] : ee(le(M, qe), me(k)).filter((e) => e >= P - 1e-9 && e <= rt + 1e-9), F = {
103
+ top: 8,
104
+ right: ge(it.map(qe), { max: C.width ? C.width * .4 : Infinity }),
105
+ bottom: 28,
106
+ left: 0
107
+ }, I = Math.max(0, C.width - F.left - F.right), L = Math.max(0, f - F.top - F.bottom);
108
+ M.range([L, 0]);
109
+ let at = D.map((e, t) => D.slice(0, t).reduce((e, t) => e + t.points.length, 0)), R = D.map((e, t) => e.points.map((e, n) => Number.isFinite(e.v) ? N[at[t] + n] ?? 0 : NaN)), ot = M.copy().domain([P, rt === P ? P + 1 : rt]), z = (e) => ot(e), B = Math.round(Math.max(0, Math.min(L, z(0)))), V = De(O) ?? /* @__PURE__ */ new Date(0), st = Ee(O) ?? V, H = Le === "points" && O.length > 0, U = H ? I / O.length : 0, W = ue().domain([V.getTime(), st.getTime()]).range([0, I]), G = (e) => H ? (e + .5) * U : W(O[e] ?? V), ct = j ? Ce().keys(D.map((e, t) => String(t))).offset(we)(O.map((e, t) => D.map((e, n) => Number.isFinite(R[n]?.[t]) ? R[n][t] : 0))) : null, K = ze ?? o(), lt = ke(K), ut = (O[O.length - 1]?.getTime() ?? 0) - (O[0]?.getTime() ?? 0), dt = Ne ?? (O.length === 1 ? v(We, y, K) : Ie(We, ut, K, lt)), ft = Le === "points" || O.length === 1 ? oe(O.map(dt), H ? U : I, H ? {
110
+ start: U / 2,
111
+ end: U / 2 + F.right
112
+ } : {
113
+ start: I / 2,
114
+ end: I / 2 + F.right
115
+ }, O.map((e) => je(e, lt))).map((e) => ({
116
+ key: O[e].getTime(),
117
+ x: Math.round(G(e)),
118
+ anchor: "middle",
119
+ label: dt(O[e])
120
+ })) : O.length ? Re(V, st, I, I + F.right, (e) => W(e.getTime()), dt, lt, !Ne && ut > 48 * Fe) : [], pt = (O[1]?.getTime() ?? 0) - (O[0]?.getTime() ?? 0), mt = Me ?? v(We, pt && pt < 864e5 ? {
121
+ weekday: "short",
122
+ ...y,
123
+ ...Pe
124
+ } : ut <= 7776e6 ? {
125
+ weekday: "short",
126
+ ...y
127
+ } : {
128
+ ...y,
129
+ year: "numeric"
130
+ }, K), q = O.length - 1, ht = (e) => {
131
+ let t = mt(O[e]);
132
+ return b?.ongoing && e === q ? S("chart.soFar", "{heading}, so far", { heading: t }) : b?.last && e === q || b?.first && e === 0 ? S("chart.partial", "{heading}, partial", { heading: t }) : t;
133
+ }, J = !!b?.first && q >= 1, Y = !!(b?.last || b?.ongoing) && q >= 1, gt = J ? Math.round(G(1)) : -F.left, _t = Y ? Math.round(G(q - 1)) : I + F.right, vt = (e) => !J && !Y ? /* @__PURE__ */ p("path", { ...e }) : /* @__PURE__ */ m(be, { children: [/* @__PURE__ */ p("path", {
134
+ ...e,
135
+ clipPath: `url(#${w}-whole)`
136
+ }), /* @__PURE__ */ p("path", {
137
+ ...e,
138
+ clipPath: `url(#${w}-partial)`,
139
+ strokeDasharray: "4 4",
140
+ "data-partial": ""
141
+ })] }), yt = Se().defined(Number.isFinite).x((e, t) => Math.round(G(t))).y((e) => z(e)).curve(h), bt = xe().defined(Number.isFinite).x((e, t) => Math.round(G(t))).y0(B).y1((e) => z(e)).curve(h), xt = xe().x((e, t) => Math.round(G(t))).y0((e) => z(e[0])).y1((e) => z(e[1])).curve(h), St = Se().x((e, t) => Math.round(G(t))).y((e) => z(e[0] < 0 && e[1] <= 0 ? e[0] : e[1])).curve(h), Ct = (e) => e.flatMap((t, n) => Number.isFinite(t) && !Number.isFinite(e[n - 1] ?? NaN) && !Number.isFinite(e[n + 1] ?? NaN) ? [n] : []), wt = ve(() => ne(r.map((e) => e.id)), [r]), X = (e) => e.color ?? wt.get(e.id), Tt = Te((e) => e.getTime()).center, Et = (e) => {
142
+ let t = e.currentTarget.getBoundingClientRect(), n = e.clientX - t.left, r = H ? Math.max(0, Math.min(O.length - 1, Math.floor(n / U))) : Tt(O, W.invert(n));
143
+ Ze({
144
+ i: r,
145
+ y: Math.round(e.clientY - t.top + F.top)
146
+ });
147
+ }, Dt = {
148
+ columns: [S("timeseriesChart.time", "Time"), ...r.map((e) => e.label)],
149
+ rows: O.map((e, t) => [ht(t), ...r.map((e) => Number.isFinite(e.points[t]?.v) ? Ge(e.points[t].v) : "–")])
150
+ }, Ot = !!x.loading || A, Z = c(Ot || x.error ? 0 : O.length), Q = Ot || x.error ? null : E?.i ?? Z.index ?? (_ !== void 0 && _ < O.length ? _ : null), $ = Q === null ? 0 : Math.round(G(Q)) + F.left, kt = (e) => Math.max(0, Math.min(L, e)), At = Q === null ? 0 : E && E.i === Q ? E.y : F.top + Math.round(kt(j ? Math.min(B, ...(ct ?? []).map((e) => z(e[Q]?.[1] ?? 0))) : Math.min(...R.map((e) => Number.isFinite(e[Q]) ? z(e[Q]) : L)))), jt = (e) => D.map((t) => {
151
+ let n = t.points[e]?.v ?? NaN, r = D.reduce((t, n) => t + Math.abs(Number.isFinite(n.points[e]?.v) ? n.points[e].v : 0), 0);
152
+ return {
153
+ id: t.id,
154
+ label: t.label,
155
+ color: X(t),
156
+ value: Number.isFinite(n) ? Ge(n) : "–",
157
+ ...Be && D.length > 1 && r && Number.isFinite(n) ? { share: a(Math.round(Math.abs(n) / r * 100) / 100, 0) } : {}
158
+ };
159
+ });
160
+ return /* @__PURE__ */ p("div", {
161
+ ref: Ue,
162
+ className: e("min-w-0", Ve),
163
+ children: /* @__PURE__ */ p(ae, {
164
+ label: He,
165
+ height: f,
166
+ table: Dt,
167
+ state: {
168
+ ...x,
169
+ empty: A,
170
+ ...Qe && !x.empty ? { emptyText: S("chart.allHidden", "Every series is hidden. Choose one in the legend to show it.") } : {}
171
+ },
172
+ legend: !Ae && r.length > 1 ? /* @__PURE__ */ p(ce, {
173
+ items: r.map((e) => ({
174
+ id: e.id,
175
+ label: e.label,
176
+ color: X(e)
177
+ })),
178
+ hidden: Je,
179
+ shape: u === "line" ? "line" : "square",
180
+ onToggle: (e) => {
181
+ let t = new Set(Je);
182
+ t.has(e) ? t.delete(e) : t.add(e), Ye(t);
183
+ },
184
+ onHover: Xe
185
+ }) : void 0,
186
+ children: /* @__PURE__ */ m("div", {
187
+ ref: Ke,
188
+ role: "group",
189
+ "aria-label": He,
190
+ ...Z.props,
191
+ className: "absolute inset-0 rounded-cell focus-ring",
192
+ children: [
193
+ C.width > 0 && /* @__PURE__ */ m("svg", {
194
+ width: C.width,
195
+ height: f,
196
+ className: "block overflow-visible",
197
+ role: "presentation",
198
+ children: [/* @__PURE__ */ m("defs", { children: [
199
+ /* @__PURE__ */ p("clipPath", {
200
+ id: `${w}-plot`,
201
+ children: /* @__PURE__ */ p("rect", {
202
+ x: -F.left - 4,
203
+ y: -4,
204
+ width: I + F.left + 8,
205
+ height: L + 8
206
+ })
207
+ }),
208
+ (J || Y) && /* @__PURE__ */ m(be, { children: [/* @__PURE__ */ p("clipPath", {
209
+ id: `${w}-whole`,
210
+ children: /* @__PURE__ */ p("rect", {
211
+ x: gt,
212
+ y: -F.top,
213
+ width: Math.max(0, _t - gt),
214
+ height: f
215
+ })
216
+ }), /* @__PURE__ */ m("clipPath", {
217
+ id: `${w}-partial`,
218
+ children: [J && /* @__PURE__ */ p("rect", {
219
+ x: -F.left,
220
+ y: -F.top,
221
+ width: gt + F.left,
222
+ height: f
223
+ }), Y && /* @__PURE__ */ p("rect", {
224
+ x: _t,
225
+ y: -F.top,
226
+ width: I + F.right - _t,
227
+ height: f
228
+ })]
229
+ })] }),
230
+ D.map((e) => /* @__PURE__ */ m("linearGradient", {
231
+ id: `${w}-${e.id}`,
232
+ x1: "0",
233
+ y1: "0",
234
+ x2: "0",
235
+ y2: "1",
236
+ children: [/* @__PURE__ */ p("stop", {
237
+ offset: "0%",
238
+ stopColor: X(e),
239
+ className: "chart-fill-top"
240
+ }), /* @__PURE__ */ p("stop", {
241
+ offset: "100%",
242
+ stopColor: X(e),
243
+ stopOpacity: 0
244
+ })]
245
+ }, e.id))
246
+ ] }), /* @__PURE__ */ m("g", {
247
+ transform: `translate(${F.left},${F.top})`,
248
+ children: [
249
+ it.map((e) => /* @__PURE__ */ m("g", {
250
+ transform: `translate(0,${Math.round(z(e)) + .5})`,
251
+ children: [e !== 0 && /* @__PURE__ */ p("line", {
252
+ x2: I,
253
+ ...d.grid
254
+ }), /* @__PURE__ */ p("text", {
255
+ x: I + 12,
256
+ dy: "0.32em",
257
+ ...d.label,
258
+ children: qe(e)
259
+ })]
260
+ }, e)),
261
+ /* @__PURE__ */ p("line", {
262
+ x2: I,
263
+ y1: B + .5,
264
+ y2: B + .5,
265
+ ...d.baseline
266
+ }),
267
+ ft.map((e) => /* @__PURE__ */ p("text", {
268
+ x: e.x,
269
+ y: L + 20,
270
+ textAnchor: e.anchor,
271
+ ...d.label,
272
+ children: e.label
273
+ }, e.key)),
274
+ /* @__PURE__ */ p("g", {
275
+ clipPath: `url(#${w}-plot)`,
276
+ children: A ? null : j && ct ? ct.map((e, t) => {
277
+ let n = D[t];
278
+ return /* @__PURE__ */ m("g", {
279
+ opacity: T && T !== n.id ? .3 : 1,
280
+ className: "opacity-motion",
281
+ children: [/* @__PURE__ */ p("path", {
282
+ d: xt(e) ?? "",
283
+ fill: X(n),
284
+ className: "chart-stack-fill"
285
+ }), vt({
286
+ d: St(e) ?? "",
287
+ fill: "none",
288
+ stroke: X(n),
289
+ strokeWidth: 1.5,
290
+ strokeLinejoin: "round",
291
+ strokeLinecap: "round"
292
+ })]
293
+ }, n.id);
294
+ }) : D.map((e, t) => /* @__PURE__ */ m("g", {
295
+ opacity: T && T !== e.id ? .3 : 1,
296
+ className: "opacity-motion",
297
+ children: [
298
+ u === "area" && /* @__PURE__ */ p("path", {
299
+ d: bt(R[t] ?? []) ?? "",
300
+ fill: `url(#${w}-${e.id})`
301
+ }),
302
+ vt({
303
+ d: yt(R[t] ?? []) ?? "",
304
+ fill: "none",
305
+ stroke: X(e),
306
+ strokeWidth: 2,
307
+ strokeLinejoin: "round",
308
+ strokeLinecap: "round"
309
+ }),
310
+ Ct(R[t] ?? []).map((n) => /* @__PURE__ */ p("circle", {
311
+ "data-point": "",
312
+ cx: Math.round(G(n)),
313
+ cy: z(R[t][n]),
314
+ r: 2.5,
315
+ fill: X(e)
316
+ }, n))
317
+ ]
318
+ }, e.id))
319
+ }),
320
+ g && z(g.value) >= 0 && z(g.value) <= L && /* @__PURE__ */ m("g", {
321
+ transform: `translate(0,${Math.round(z(g.value)) + .5})`,
322
+ children: [/* @__PURE__ */ p("line", {
323
+ x2: I,
324
+ stroke: "var(--k-danger)",
325
+ strokeDasharray: "4 4",
326
+ strokeWidth: 1
327
+ }), /* @__PURE__ */ p("text", {
328
+ x: 0,
329
+ dy: -6,
330
+ fill: "var(--k-danger-text)",
331
+ fontSize: 12,
332
+ fontWeight: 500,
333
+ children: g.label
334
+ })]
335
+ }),
336
+ Q !== null && /* @__PURE__ */ m("g", {
337
+ "aria-hidden": !0,
338
+ children: [/* @__PURE__ */ p("line", {
339
+ x1: $ - F.left + .5,
340
+ x2: $ - F.left + .5,
341
+ y2: L,
342
+ ...d.grid,
343
+ stroke: "var(--k-line-strong)"
344
+ }), !j && D.map((e, t) => Number.isFinite(R[t]?.[Q]) ? /* @__PURE__ */ p("circle", {
345
+ cx: $ - F.left,
346
+ cy: kt(z(R[t][Q])),
347
+ r: 4,
348
+ fill: X(e),
349
+ stroke: "var(--k-bg-panel)",
350
+ strokeWidth: 2
351
+ }, e.id) : null)]
352
+ }),
353
+ /* @__PURE__ */ p("rect", {
354
+ width: I,
355
+ height: L,
356
+ fill: "transparent",
357
+ onPointerMove: Et,
358
+ onPointerLeave: () => Ze(null)
359
+ })
360
+ ]
361
+ })]
362
+ }),
363
+ Q !== null && O[Q] && /* @__PURE__ */ p(ie, {
364
+ x: $,
365
+ y: At,
366
+ width: C.width,
367
+ visible: !0,
368
+ heading: ht(Q),
369
+ rows: jt(Q)
370
+ }),
371
+ /* @__PURE__ */ p(se, { children: Z.index !== null && Q !== null && O[Z.index] ? re(ht(Z.index), jt(Z.index), S) : null })
372
+ ]
373
+ })
374
+ })
375
+ });
376
+ });
377
+ process.env.NODE_ENV !== "production" && (ze.displayName = "TimeseriesChart");
378
+ //#endregion
379
+ export { Me as n, ze as r, Ne as t };
380
+
381
+ //# sourceMappingURL=timeseries-Ck-q0wWn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeseries-Ck-q0wWn.js","names":["d3min","d3max","d3stack","_Fragment","d3line","d3area","cn","useUiText","useLocale","wholeTicks","useSize","useChartKeys","useTweened","tickLabel","placeTimeLabels","seriesColors","liveLine","ChartTooltip","ChartFrame","axisLabelIndexes","ChartLive","Legend","AXIS","readableTicks","scaleLinear","hasPoints","compactAxis","onlyZero","finite","valueExtent","axisRoom","Fragment$1","clocks","wallClock","timeZone","d","clock","f","p","x","fromWall","guess","wall","zoneTicks","utcTicks","from","to","count","w","wallDay","KAESO_TIMESERIES_CHART_VARIANTS","KAESO_TIMESERIES_CHART_DEFAULT_VARIANTS","timeFormat","dateFormatter","options","locale","CLOCK","DAY","H","tickFormat","span","month","DAY_MS","timeLabels","fallback","ticks","t0","t1","days","i","label","all","placed","at","right","ends","TimeseriesChart","ariaLabel","state","t","format","formatValue","formatNumber","v","box","size","gid","useId","axisLabel","hidden","setHidden","useState","focus","setFocus","hover","setHover","visible","series","s","times","useMemo","flatValues","allHidden","empty","stacked","kind","stackSums","a","ti","sign","extent","threshold","axis","niceLo","niceHi","drawn","lo","hi","yTicks","M","h","height","offsets","si","values","pi","yScale","y","zero","min","max","ordinal","tickAt","slot","stackData","stack","stackOffsetDiverging","zone","formatTimeZone","fmt","formatTick","xLabels","step","pointFormat","formatTime","last","headingFormat","heading","partial","dashedFirst","dashedLast","cutStart","cutEnd","partialLine","stroke","lineGen","line","curveMonotoneX","areaGen","area","stackArea","stackTop","lonely","vs","palette","color","bis","bisector","onMove","r","px","table","blank","keys","active","highlight","activeX","clampY","activeY","layer","sv","rowsFor","total","acc","ss","shares","formatPercent","className","hideLegend","n","id","tick","l","li"],"sources":["../../src/components/charts/time-axis.ts","../../src/components/charts/timeseries.tsx"],"sourcesContent":["import { utcTicks } from \"d3-time\";\n\nexport type WallClock = (d: Date) => number;\n\nconst clocks = new Map<string, WallClock>();\n\nexport function wallClock(timeZone: string | undefined): WallClock {\n if (!timeZone) return (d) => d.getTime() - d.getTimezoneOffset() * 60_000;\n if (timeZone === \"UTC\") return (d) => d.getTime();\n let clock = clocks.get(timeZone);\n if (!clock) {\n const f = new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n hourCycle: \"h23\",\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n });\n clock = (d) => {\n const p = Object.fromEntries(f.formatToParts(d).map((x) => [x.type, Number(x.value)]));\n return Date.UTC(p.year ?? 1970, (p.month ?? 1) - 1, p.day ?? 1, p.hour ?? 0, p.minute ?? 0, p.second ?? 0) + d.getUTCMilliseconds();\n };\n clocks.set(timeZone, clock);\n }\n return clock;\n}\n\nexport function fromWall(wall: number, clock: WallClock): Date {\n const guess = wall - (clock(new Date(wall)) - wall);\n return new Date(wall - (clock(new Date(guess)) - guess));\n}\n\nexport function zoneTicks(from: Date, to: Date, count: number, clock: WallClock): Date[] {\n return utcTicks(new Date(clock(from)), new Date(clock(to)), count).flatMap((w) => {\n const d = fromWall(w.getTime(), clock);\n // A wall time skipped when clocks spring forward has no instant; it would land on the next tick.\n return clock(d) === w.getTime() ? [d] : [];\n });\n}\n\nexport const wallDay = (d: Date, clock: WallClock) => new Date(clock(d)).toISOString().slice(0, 10);\n","import type * as React from \"react\";\nimport { forwardRef, useId, useMemo, useState, type ReactNode } from \"react\";\nimport { scaleLinear } from \"./linear-scale.js\";\nimport { area as d3area, curveMonotoneX, line as d3line, stack as d3stack, stackOffsetDiverging, type SeriesPoint } from \"d3-shape\";\nimport { bisector, max as d3max, min as d3min } from \"d3-array\";\nimport { cn } from \"../../utils/cn.js\";\nimport { dateFormatter, formatNumber, formatPercent, formatTimeZone } from \"../../format/index.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\nimport {\n AXIS,\n axisLabelIndexes,\n ChartFrame,\n ChartLive,\n ChartTooltip,\n Legend,\n placeTimeLabels,\n liveLine,\n seriesColors,\n readableTicks,\n tickLabel,\n useChartKeys,\n useSize,\n useTweened,\n wholeTicks,\n type ChartState,\n} from \"./core.js\";\nimport { axisRoom, compactAxis, finite, onlyZero, hasPoints, valueExtent } from \"./domain.js\";\nimport { wallClock, wallDay, zoneTicks, type WallClock } from \"./time-axis.js\";\n\nexport const KAESO_TIMESERIES_CHART_VARIANTS = {\n kind: {\n line: { classes: \"\" },\n area: { classes: \"\" },\n stacked: { classes: \"\" },\n },\n} as const;\nexport const KAESO_TIMESERIES_CHART_DEFAULT_VARIANTS = { kind: \"line\" } as const;\n\nexport interface TimePoint {\n t: Date | number | string;\n v: number;\n}\nexport interface TimeSeries {\n id: string;\n label: string;\n points: TimePoint[];\n color?: string | undefined;\n}\n\nexport interface TimeseriesChartProps extends ChartState {\n series: TimeSeries[];\n kind?: keyof typeof KAESO_TIMESERIES_CHART_VARIANTS.kind | undefined;\n height?: number | undefined;\n formatValue?: ((v: number) => string) | undefined;\n threshold?: { value: number; label: string } | undefined;\n hideLegend?: boolean | undefined;\n highlight?: number | undefined;\n formatTime?: ((t: Date) => string) | undefined;\n formatTick?: ((t: Date) => string) | undefined;\n tickAt?: \"time\" | \"points\" | undefined;\n timeZone?: string | undefined;\n shares?: boolean | undefined;\n partial?: { first?: boolean | undefined; last?: boolean | undefined; ongoing?: boolean | undefined } | undefined;\n \"aria-label\": string;\n className?: string | undefined;\n}\n\nfunction timeFormat(locale: string, options: Intl.DateTimeFormatOptions, timeZone: string | undefined): (d: Date) => string {\n return dateFormatter({ ...options, ...(timeZone ? { timeZone } : {}) }, locale);\n}\nconst CLOCK = { hour: \"2-digit\", minute: \"2-digit\", hourCycle: \"h23\" } as const;\nconst DAY = { month: \"short\", day: \"numeric\" } as const;\nconst H = 3_600_000;\n\nfunction tickFormat(locale: string, span: number, timeZone: string | undefined, clock: WallClock) {\n if (span <= 48 * H) return timeFormat(locale, CLOCK, timeZone);\n if (span <= 90 * 24 * H) return timeFormat(locale, DAY, timeZone);\n const month = timeFormat(locale, { month: \"short\" }, timeZone);\n return (d: Date) => {\n const wall = new Date(clock(d));\n return wall.getUTCMonth() === 0 ? String(wall.getUTCFullYear()) : month(d);\n };\n}\n\ntype PlacedLabel = { key: number; x: number; anchor: \"start\" | \"middle\" | \"end\"; label: string };\n\nconst DAY_MS = 86_400_000;\n\nfunction timeLabels(\n t0: Date,\n t1: Date,\n w: number,\n right: number,\n at: (d: Date) => number,\n label: (d: Date) => string,\n clock: WallClock,\n days: boolean,\n): PlacedLabel[] {\n let fallback: PlacedLabel[] = [];\n for (let count = Math.max(2, Math.min(10, Math.floor(w / 64))); count >= 1; count--) {\n const ticks = zoneTicks(t0, t1, count, clock)\n .filter((d) => !days || clock(d) % DAY_MS === 0)\n .filter((d, i, all) => i === 0 || label(d) !== label(all[i - 1]!));\n const placed = placeTimeLabels(\n ticks.map((d) => ({ key: d.getTime(), at: Math.round(at(d)), label: label(d) })),\n right,\n );\n if (placed.length === ticks.length && placed.length >= 2) return placed;\n if (placed.length > fallback.length) fallback = placed;\n }\n if (fallback.length < 2 && t1.getTime() > t0.getTime()) {\n const ends = placeTimeLabels(\n [t0, t1].map((d) => ({ key: d.getTime(), at: Math.round(at(d)), label: label(d) })),\n right,\n );\n if (ends.length === 2) return ends;\n }\n return fallback;\n}\n\nexport const TimeseriesChart = /* @__PURE__ */ forwardRef<HTMLDivElement, TimeseriesChartProps>(function TimeseriesChart(\n {\n series,\n kind = \"line\",\n height = 240,\n formatValue,\n threshold,\n hideLegend,\n highlight,\n formatTime,\n formatTick,\n tickAt = \"time\",\n timeZone,\n shares = true,\n partial,\n className,\n \"aria-label\": ariaLabel,\n ...state\n },\n ref,\n) {\n const t = useUiText();\n const locale = useLocale();\n const format = formatValue ?? ((v: number) => formatNumber(v));\n const [box, size] = useSize<HTMLDivElement>();\n const gid = useId().replace(/:/g, \"\");\n const axisLabel = tickLabel(formatValue ?? compactAxis);\n const [hidden, setHidden] = useState<Set<string>>(new Set());\n const [focus, setFocus] = useState<string | null>(null);\n const [hover, setHover] = useState<{ i: number; y: number } | null>(null);\n const visible = series.filter((s) => !hidden.has(s.id));\n const times = useMemo(() => (series[0]?.points ?? []).map((p) => new Date(p.t)), [series]);\n const flatValues = visible.flatMap((s) => s.points.map((p) => p.v));\n const allHidden = series.length > 0 && visible.length === 0;\n const empty = state.empty ?? (allHidden || times.length === 0 || !hasPoints(flatValues));\n const stacked = kind === \"stacked\";\n const stackSums = (sign: number) =>\n times.map((_, ti) => visible.reduce((a, s) => a + (Number.isFinite(s.points[ti]?.v) && (s.points[ti]?.v ?? 0) * sign > 0 ? s.points[ti]!.v : 0), 0));\n const extent = valueExtent(stacked ? [...stackSums(1), ...stackSums(-1)] : flatValues, threshold ? [threshold.value] : []);\n const axis = scaleLinear().domain(extent).nice(4);\n const [niceLo = 0, niceHi = 1] = axis.domain();\n const drawn = useTweened([...flatValues.map((v) => (Number.isFinite(v) ? v : 0)), niceLo, niceHi], !!state.loading);\n const lo = drawn[drawn.length - 2] ?? niceLo;\n const hi = drawn[drawn.length - 1] ?? niceHi;\n const yTicks = empty\n ? []\n : onlyZero(flatValues)\n ? [0]\n : wholeTicks(readableTicks(axis, axisLabel), finite(flatValues)).filter((v) => v >= lo - 1e-9 && v <= hi + 1e-9);\n const M = { top: 8, right: axisRoom(yTicks.map(axisLabel), { max: size.width ? size.width * 0.4 : Infinity }), bottom: 28, left: 0 };\n const w = Math.max(0, size.width - M.left - M.right);\n const h = Math.max(0, height - M.top - M.bottom);\n axis.range([h, 0]);\n const offsets = visible.map((_, si) => visible.slice(0, si).reduce((a, s) => a + s.points.length, 0));\n const values = visible.map((s, si) => s.points.map((p, pi) => (Number.isFinite(p.v) ? (drawn[offsets[si]! + pi] ?? 0) : NaN)));\n const yScale = axis.copy().domain([lo, hi === lo ? lo + 1 : hi]);\n const y = (v: number) => yScale(v);\n const zero = Math.round(Math.max(0, Math.min(h, y(0))));\n const t0 = d3min(times) ?? new Date(0);\n const t1 = d3max(times) ?? t0;\n const ordinal = tickAt === \"points\" && times.length > 0;\n const slot = ordinal ? w / times.length : 0;\n const x = scaleLinear().domain([t0.getTime(), t1.getTime()]).range([0, w]);\n const at = (i: number) => (ordinal ? (i + 0.5) * slot : x(times[i] ?? t0));\n const stackData = stacked\n ? d3stack<number[]>()\n .keys(visible.map((_, i) => String(i)))\n .offset(stackOffsetDiverging)(times.map((_, ti) => visible.map((_, si) => (Number.isFinite(values[si]?.[ti]) ? values[si]![ti]! : 0))))\n : null;\n const zone = timeZone ?? formatTimeZone();\n const clock = wallClock(zone);\n const span = (times[times.length - 1]?.getTime() ?? 0) - (times[0]?.getTime() ?? 0);\n const fmt = formatTick ?? (times.length === 1 ? timeFormat(locale, DAY, zone) : tickFormat(locale, span, zone, clock));\n const xLabels: PlacedLabel[] =\n tickAt === \"points\" || times.length === 1\n ? axisLabelIndexes(\n times.map(fmt),\n ordinal ? slot : w,\n ordinal ? { start: slot / 2, end: slot / 2 + M.right } : { start: w / 2, end: w / 2 + M.right },\n times.map((d) => wallDay(d, clock)),\n ).map((i) => ({ key: times[i]!.getTime(), x: Math.round(at(i)), anchor: \"middle\", label: fmt(times[i]!) }))\n : times.length\n ? timeLabels(t0, t1, w, w + M.right, (d) => x(d.getTime()), fmt, clock, !formatTick && span > 48 * H)\n : [];\n const step = (times[1]?.getTime() ?? 0) - (times[0]?.getTime() ?? 0);\n const pointFormat =\n formatTime ??\n timeFormat(\n locale,\n step && step < 86_400_000 ? { weekday: \"short\", ...DAY, ...CLOCK } : span <= 90 * 86_400_000 ? { weekday: \"short\", ...DAY } : { ...DAY, year: \"numeric\" },\n zone,\n );\n const last = times.length - 1;\n const headingFormat = (i: number) => {\n const heading = pointFormat(times[i]!);\n if (partial?.ongoing && i === last) return t(\"chart.soFar\", \"{heading}, so far\", { heading });\n if ((partial?.last && i === last) || (partial?.first && i === 0)) return t(\"chart.partial\", \"{heading}, partial\", { heading });\n return heading;\n };\n const dashedFirst = !!partial?.first && last >= 1;\n const dashedLast = !!(partial?.last || partial?.ongoing) && last >= 1;\n const cutStart = dashedFirst ? Math.round(at(1)) : -M.left;\n const cutEnd = dashedLast ? Math.round(at(last - 1)) : w + M.right;\n const partialLine = (stroke: React.SVGProps<SVGPathElement>) => {\n if (!dashedFirst && !dashedLast) return <path {...stroke} />;\n return (\n <>\n <path {...stroke} clipPath={`url(#${gid}-whole)`} />\n <path {...stroke} clipPath={`url(#${gid}-partial)`} strokeDasharray=\"4 4\" data-partial=\"\" />\n </>\n );\n };\n const lineGen = d3line<number>()\n .defined(Number.isFinite)\n .x((_, i) => Math.round(at(i)))\n .y((v) => y(v))\n .curve(curveMonotoneX);\n const areaGen = d3area<number>()\n .defined(Number.isFinite)\n .x((_, i) => Math.round(at(i)))\n .y0(zero)\n .y1((v) => y(v))\n .curve(curveMonotoneX);\n const stackArea = d3area<SeriesPoint<number[]>>()\n .x((_, i) => Math.round(at(i)))\n .y0((d) => y(d[0]))\n .y1((d) => y(d[1]))\n .curve(curveMonotoneX);\n const stackTop = d3line<SeriesPoint<number[]>>()\n .x((_, i) => Math.round(at(i)))\n .y((d) => y(d[0] < 0 && d[1] <= 0 ? d[0] : d[1]))\n .curve(curveMonotoneX);\n const lonely = (vs: number[]) =>\n vs.flatMap((v, i) => (Number.isFinite(v) && !Number.isFinite(vs[i - 1] ?? NaN) && !Number.isFinite(vs[i + 1] ?? NaN) ? [i] : []));\n const palette = useMemo(() => seriesColors(series.map((s) => s.id)), [series]);\n const color = (s: TimeSeries) => s.color ?? palette.get(s.id)!;\n const bis = bisector((d: Date) => d.getTime()).center;\n const onMove = (e: React.PointerEvent<SVGRectElement>) => {\n const r = e.currentTarget.getBoundingClientRect();\n const px = e.clientX - r.left;\n const i = ordinal ? Math.max(0, Math.min(times.length - 1, Math.floor(px / slot))) : bis(times, x.invert(px));\n setHover({ i, y: Math.round(e.clientY - r.top + M.top) });\n };\n\n const table = {\n columns: [t(\"timeseriesChart.time\", \"Time\"), ...series.map((s) => s.label)],\n rows: times.map((_, i) => [headingFormat(i), ...series.map((s) => (Number.isFinite(s.points[i]?.v) ? format(s.points[i]!.v) : \"–\"))]),\n };\n\n const blank = !!state.loading || empty;\n const keys = useChartKeys(blank || state.error ? 0 : times.length);\n const active = blank || !!state.error ? null : (hover?.i ?? keys.index ?? (highlight !== undefined && highlight < times.length ? highlight : null));\n const activeX = active === null ? 0 : Math.round(at(active)) + M.left;\n const clampY = (v: number) => Math.max(0, Math.min(h, v));\n const activeY =\n active === null\n ? 0\n : hover && hover.i === active\n ? hover.y\n : M.top +\n Math.round(\n clampY(\n stacked\n ? Math.min(zero, ...(stackData ?? []).map((layer) => y(layer[active]?.[1] ?? 0)))\n : Math.min(...values.map((sv) => (Number.isFinite(sv[active]) ? y(sv[active]!) : h))),\n ),\n );\n const rowsFor = (i: number) =>\n visible.map((s) => {\n const v = s.points[i]?.v ?? NaN;\n const total = visible.reduce((acc, ss) => acc + Math.abs(Number.isFinite(ss.points[i]?.v) ? ss.points[i]!.v : 0), 0);\n return {\n id: s.id,\n label: s.label,\n color: color(s),\n value: Number.isFinite(v) ? format(v) : \"–\",\n ...(shares && visible.length > 1 && total && Number.isFinite(v) ? { share: formatPercent(Math.round((Math.abs(v) / total) * 100) / 100, 0) } : {}),\n } as { id: string; label: ReactNode; color: string; value: ReactNode; share?: ReactNode | undefined };\n });\n\n return (\n <div ref={ref} className={cn(\"min-w-0\", className)}>\n <ChartFrame\n label={ariaLabel}\n height={height}\n table={table}\n state={{\n ...state,\n empty,\n ...(allHidden && !state.empty ? { emptyText: t(\"chart.allHidden\", \"Every series is hidden. Choose one in the legend to show it.\") } : {}),\n }}\n legend={\n !hideLegend && series.length > 1 ? (\n <Legend\n items={series.map((s) => ({ id: s.id, label: s.label, color: color(s) }))}\n hidden={hidden}\n shape={kind === \"line\" ? \"line\" : \"square\"}\n onToggle={(id) => {\n const n = new Set(hidden);\n if (n.has(id)) n.delete(id);\n else n.add(id);\n setHidden(n);\n }}\n onHover={setFocus}\n />\n ) : undefined\n }\n >\n <div ref={box} role=\"group\" aria-label={ariaLabel} {...keys.props} className=\"absolute inset-0 rounded-cell focus-ring\">\n {size.width > 0 && (\n <svg width={size.width} height={height} className=\"block overflow-visible\" role=\"presentation\">\n <defs>\n <clipPath id={`${gid}-plot`}>\n <rect x={-M.left - 4} y={-4} width={w + M.left + 8} height={h + 8} />\n </clipPath>\n {(dashedFirst || dashedLast) && (\n <>\n <clipPath id={`${gid}-whole`}>\n <rect x={cutStart} y={-M.top} width={Math.max(0, cutEnd - cutStart)} height={height} />\n </clipPath>\n <clipPath id={`${gid}-partial`}>\n {dashedFirst && <rect x={-M.left} y={-M.top} width={cutStart + M.left} height={height} />}\n {dashedLast && <rect x={cutEnd} y={-M.top} width={w + M.right - cutEnd} height={height} />}\n </clipPath>\n </>\n )}\n {visible.map((s) => (\n <linearGradient key={s.id} id={`${gid}-${s.id}`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={color(s)} className=\"chart-fill-top\" />\n <stop offset=\"100%\" stopColor={color(s)} stopOpacity={0} />\n </linearGradient>\n ))}\n </defs>\n <g transform={`translate(${M.left},${M.top})`}>\n {yTicks.map((tick) => (\n <g key={tick} transform={`translate(0,${Math.round(y(tick)) + 0.5})`}>\n {tick !== 0 && <line x2={w} {...AXIS.grid} />}\n <text x={w + 12} dy=\"0.32em\" {...AXIS.label}>\n {axisLabel(tick)}\n </text>\n </g>\n ))}\n <line x2={w} y1={zero + 0.5} y2={zero + 0.5} {...AXIS.baseline} />\n {xLabels.map((l) => (\n <text key={l.key} x={l.x} y={h + 20} textAnchor={l.anchor} {...AXIS.label}>\n {l.label}\n </text>\n ))}\n <g clipPath={`url(#${gid}-plot)`}>\n {empty\n ? null\n : stacked && stackData\n ? stackData.map((layer, li) => {\n const s = visible[li]!;\n return (\n <g key={s.id} opacity={focus && focus !== s.id ? 0.3 : 1} className=\"opacity-motion\">\n <path d={stackArea(layer) ?? \"\"} fill={color(s)} className=\"chart-stack-fill\" />\n {partialLine({\n d: stackTop(layer) ?? \"\",\n fill: \"none\",\n stroke: color(s),\n strokeWidth: 1.5,\n strokeLinejoin: \"round\",\n strokeLinecap: \"round\",\n })}\n </g>\n );\n })\n : visible.map((s, si) => (\n <g key={s.id} opacity={focus && focus !== s.id ? 0.3 : 1} className=\"opacity-motion\">\n {kind === \"area\" && <path d={areaGen(values[si] ?? []) ?? \"\"} fill={`url(#${gid}-${s.id})`} />}\n {partialLine({\n d: lineGen(values[si] ?? []) ?? \"\",\n fill: \"none\",\n stroke: color(s),\n strokeWidth: 2,\n strokeLinejoin: \"round\",\n strokeLinecap: \"round\",\n })}\n {lonely(values[si] ?? []).map((i) => (\n <circle key={i} data-point=\"\" cx={Math.round(at(i))} cy={y(values[si]![i]!)} r={2.5} fill={color(s)} />\n ))}\n </g>\n ))}\n </g>\n {threshold && y(threshold.value) >= 0 && y(threshold.value) <= h && (\n <g transform={`translate(0,${Math.round(y(threshold.value)) + 0.5})`}>\n <line x2={w} stroke=\"var(--k-danger)\" strokeDasharray=\"4 4\" strokeWidth={1} />\n <text x={0} dy={-6} fill=\"var(--k-danger-text)\" fontSize={12} fontWeight={500}>\n {threshold.label}\n </text>\n </g>\n )}\n {active !== null && (\n <g aria-hidden>\n <line x1={activeX - M.left + 0.5} x2={activeX - M.left + 0.5} y2={h} {...AXIS.grid} stroke=\"var(--k-line-strong)\" />\n {!stacked &&\n visible.map((s, si) =>\n Number.isFinite(values[si]?.[active]) ? (\n <circle\n key={s.id}\n cx={activeX - M.left}\n cy={clampY(y(values[si]![active]!))}\n r={4}\n fill={color(s)}\n stroke=\"var(--k-bg-panel)\"\n strokeWidth={2}\n />\n ) : null,\n )}\n </g>\n )}\n <rect width={w} height={h} fill=\"transparent\" onPointerMove={onMove} onPointerLeave={() => setHover(null)} />\n </g>\n </svg>\n )}\n {active !== null && times[active] && (\n <ChartTooltip x={activeX} y={activeY} width={size.width} visible heading={headingFormat(active)} rows={rowsFor(active)} />\n )}\n <ChartLive>\n {keys.index !== null && active !== null && times[keys.index] ? liveLine(headingFormat(keys.index), rowsFor(keys.index), t) : null}\n </ChartLive>\n </div>\n </ChartFrame>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") TimeseriesChart.displayName = \"TimeseriesChart\";\n"],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ "use client";
2
+ import { t as e } from "./cn-BjnOAUrA.js";
3
+ import { a as t } from "./inset-BUzyXLK4.js";
4
+ import { t as n } from "./merge-refs-BN1FyQt9.js";
5
+ import { n as r, t as i } from "./arrow-focus-B0KdRFX8.js";
6
+ import { forwardRef as a, useEffect as o, useMemo as s, useRef as c } from "react";
7
+ import { jsx as l } from "react/jsx-runtime";
8
+ //#region src/components/toolbar/toolbar.tsx
9
+ var u = { size: {
10
+ md: { classes: "min-h-48 gap-8 px-24 py-6" },
11
+ inset: { classes: "min-h-48 gap-8 px-0 py-6" }
12
+ } }, d = { size: "md" }, f = /* @__PURE__ */ a(function({ size: a, className: d, onKeyDown: f, onFocus: p, ...m }, h) {
13
+ let g = t(), _ = a ?? (g ? "inset" : "md"), v = c(null), y = s(() => n(v, h), [h]), b = c(null);
14
+ return o(() => {
15
+ let e = v.current;
16
+ if (!e) return;
17
+ let t = () => {
18
+ let t = r(e), n = b.current && t.includes(b.current) ? b.current : t[0];
19
+ for (let e of t) e.dataset.roving = "", e.tabIndex = e === n ? 0 : -1;
20
+ };
21
+ t();
22
+ let n = new MutationObserver(t);
23
+ return n.observe(e, {
24
+ childList: !0,
25
+ subtree: !0,
26
+ attributes: !0,
27
+ attributeFilter: ["disabled", "hidden"]
28
+ }), () => n.disconnect();
29
+ }, []), /* @__PURE__ */ l("div", {
30
+ ref: y,
31
+ role: "toolbar",
32
+ "aria-orientation": "horizontal",
33
+ className: e("flex shrink-0 flex-wrap items-center", u.size[_].classes, d),
34
+ onFocus: (e) => {
35
+ p?.(e);
36
+ let t = v.current, n = e.target;
37
+ if (t && r(t).includes(n)) {
38
+ b.current = n;
39
+ for (let e of r(t)) e.tabIndex = e === n ? 0 : -1;
40
+ }
41
+ },
42
+ onKeyDown: (e) => {
43
+ f?.(e), i(e);
44
+ },
45
+ ...m
46
+ });
47
+ });
48
+ process.env.NODE_ENV !== "production" && (f.displayName = "Toolbar");
49
+ var p = /* @__PURE__ */ a(function(e, t) {
50
+ return /* @__PURE__ */ l("span", {
51
+ ref: t,
52
+ "aria-hidden": !0,
53
+ className: "flex-1"
54
+ });
55
+ });
56
+ process.env.NODE_ENV !== "production" && (p.displayName = "Toolbar.Spacer");
57
+ var m = /* @__PURE__ */ Object.assign(f, { Spacer: p });
58
+ //#endregion
59
+ export { u as n, m as r, d as t };
60
+
61
+ //# sourceMappingURL=toolbar-u0Gm7Q7-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar-u0Gm7Q7-.js","names":["cn","useInset","mergeRefs","focusables","arrowFocus","KAESO_TOOLBAR_VARIANTS","KAESO_TOOLBAR_DEFAULT_VARIANTS","Root","sizeProp","props","inset","size","own","useRef","refs","useMemo","ref","current","useEffect","bar","rove","items","stop","el","watch","className","target","onKeyDown","Spacer","Toolbar"],"sources":["../../src/components/toolbar/toolbar.tsx"],"sourcesContent":["import { forwardRef, useEffect, useMemo, useRef, type HTMLAttributes, type KeyboardEvent } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useInset } from \"../../utils/inset.js\";\nimport { arrowFocus, focusables } from \"../../utils/arrow-focus.js\";\nimport { mergeRefs } from \"../../utils/merge-refs.js\";\n\nexport const KAESO_TOOLBAR_VARIANTS = {\n size: {\n md: {\n classes: \"min-h-48 gap-8 px-24 py-6\",\n },\n inset: { classes: \"min-h-48 gap-8 px-0 py-6\" },\n },\n} as const;\nexport const KAESO_TOOLBAR_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface ToolbarProps extends HTMLAttributes<HTMLDivElement> {\n size?: keyof typeof KAESO_TOOLBAR_VARIANTS.size | undefined;\n \"aria-label\": string;\n}\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLDivElement, ToolbarProps>(function Toolbar({ size: sizeProp, className, onKeyDown, onFocus, ...props }, ref) {\n const inset = useInset();\n const size = sizeProp ?? (inset ? \"inset\" : \"md\");\n const own = useRef<HTMLDivElement | null>(null);\n const refs = useMemo(() => mergeRefs(own, ref), [ref]);\n const current = useRef<HTMLElement | null>(null);\n useEffect(() => {\n const bar = own.current;\n if (!bar) return;\n const rove = () => {\n const items = focusables(bar);\n const stop = current.current && items.includes(current.current) ? current.current : items[0];\n for (const el of items) {\n el.dataset.roving = \"\";\n el.tabIndex = el === stop ? 0 : -1;\n }\n };\n rove();\n const watch = new MutationObserver(rove);\n watch.observe(bar, { childList: true, subtree: true, attributes: true, attributeFilter: [\"disabled\", \"hidden\"] });\n return () => watch.disconnect();\n }, []);\n return (\n <div\n ref={refs}\n role=\"toolbar\"\n aria-orientation=\"horizontal\"\n className={cn(\"flex shrink-0 flex-wrap items-center\", KAESO_TOOLBAR_VARIANTS.size[size].classes, className)}\n onFocus={(e) => {\n onFocus?.(e);\n const bar = own.current;\n const target = e.target as HTMLElement;\n if (!bar || !focusables(bar).includes(target)) return;\n current.current = target;\n for (const el of focusables(bar)) el.tabIndex = el === target ? 0 : -1;\n }}\n onKeyDown={(e: KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e);\n arrowFocus(e);\n }}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"Toolbar\";\n\nconst Spacer = /* @__PURE__ */ forwardRef<HTMLSpanElement>(function ToolbarSpacer(_props, ref) {\n return <span ref={ref} aria-hidden className=\"flex-1\" />;\n});\nif (process.env.NODE_ENV !== \"production\") Spacer.displayName = \"Toolbar.Spacer\";\n\nexport const Toolbar = /* @__PURE__ */ Object.assign(Root, { Spacer });\n"],"mappings":";;;;;;;;AAMA,IAAaK,IAAyB,EACpC,MAAM;CACJ,IAAI,EACF,SAAS,4BACX;CACA,OAAO,EAAE,SAAS,2BAA2B;AAC/C,EACF,GACaC,IAAiC,EAAE,MAAM,KAAK,GAOrDC,IAAuB,kBAAyC,SAAiB,EAAE,MAAMC,GAAU,cAAW,cAAW,YAAS,GAAGC,KAAS,GAAK;CACvJ,IAAMC,IAAQT,EAAS,GACjBU,IAAOH,MAAaE,IAAQ,UAAU,OACtCE,IAAMC,EAA8B,IAAI,GACxCC,IAAOC,QAAcb,EAAUU,GAAKI,CAAG,GAAG,CAACA,CAAG,CAAC,GAC/CC,IAAUJ,EAA2B,IAAI;CAiB/C,OAhBAK,QAAgB;EACd,IAAMC,IAAMP,EAAI;EAChB,IAAI,CAACO,GAAK;EACV,IAAMC,UAAa;GACjB,IAAMC,IAAQlB,EAAWgB,CAAG,GACtBG,IAAOL,EAAQ,WAAWI,EAAM,SAASJ,EAAQ,OAAO,IAAIA,EAAQ,UAAUI,EAAM;GAC1F,KAAK,IAAME,KAAMF,GAEf,AADA,EAAG,QAAQ,SAAS,IACpB,EAAG,WAAWE,MAAOD,IAAO,IAAI;EAEpC;EACA,EAAK;EACL,IAAME,IAAQ,IAAI,iBAAiBJ,CAAI;EAEvC,OADAI,EAAM,QAAQL,GAAK;GAAE,WAAW;GAAM,SAAS;GAAM,YAAY;GAAM,iBAAiB,CAAC,YAAY,QAAQ;EAAE,CAAC,SACnGK,EAAM,WAAW;CAChC,GAAG,CAAC,CAAC,GAEH,kBAAC,OAAD;EACE,KAAKV;EACL,MAAK;EACL,oBAAiB;EACjB,WAAWd,EAAG,wCAAwCK,EAAuB,KAAKM,EAAK,CAAC,SAASc,CAAS;EAC1G,UAAU,MAAM;GACd,IAAU,CAAC;GACX,IAAMN,IAAMP,EAAI,SACVc,IAAS,EAAE;GACjB,IAAKP,KAAQhB,EAAWgB,CAAG,CAAC,CAAC,SAASO,CAAM,GAC5C;MAAQ,UAAUA;IAClB,KAAK,IAAMH,KAAMpB,EAAWgB,CAAG,GAAG,EAAG,WAAWI,MAAOG,IAAS,IAAI;GADlD;EAEpB;EACA,YAAY,MAAqC;GAE/C,AADAC,IAAY,CAAC,GACbvB,EAAW,CAAC;EACd;EACA,GAAIK;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAE9D,IAAMmB,IAAyB,kBAA4B,SAAuB,GAAQ,GAAK;CAC7F,OAAO,kBAAC,QAAD;EAAW;EAAK,eAAA;EAAY,WAAU;CAAU,CAAA;AACzD,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAO,cAAc;AAEhE,IAAaC,IAA0B,uBAAO,OAAOtB,GAAM,EAAE,UAAO,CAAC"}