@logicplanes/kaeso-ui 0.4.3 → 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 (490) hide show
  1. package/ai/component-guides.md +279 -98
  2. package/ai/component-registry.json +352 -236
  3. package/ai/component-registry.md +241 -219
  4. package/ai/icons.md +2 -2
  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-KIvuE8jg.js +352 -0
  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-CPXJh9cq.js → de-CqC4aSIV.js} +81 -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-CPJWE2N-.js +95 -0
  65. package/dist/chunks/{icon-DVooQfk4.js.map → icon-CPJWE2N-.js.map} +1 -1
  66. package/dist/chunks/{icon-button-CrdF_eMG.js → icon-button-Dfwpvmav.js} +7 -6
  67. package/dist/chunks/icon-button-Dfwpvmav.js.map +1 -0
  68. package/dist/chunks/{identity-BmhQ6BQ-.js → identity-3Foi5F8w.js} +7 -7
  69. package/dist/chunks/{identity-BmhQ6BQ-.js.map → identity-3Foi5F8w.js.map} +1 -1
  70. package/dist/chunks/{input-2VJuj_M4.js → input-Bo5-UZg2.js} +15 -9
  71. package/dist/chunks/input-Bo5-UZg2.js.map +1 -0
  72. package/dist/chunks/{input-group-DQ_4DoXg.js → input-group-jPcK9T_a.js} +42 -29
  73. package/dist/chunks/input-group-jPcK9T_a.js.map +1 -0
  74. package/dist/chunks/iso-field-DoqHBg8n.js +52 -0
  75. package/dist/chunks/iso-field-DoqHBg8n.js.map +1 -0
  76. package/dist/chunks/json-view-DZ2nL2Ir.js +253 -0
  77. package/dist/chunks/json-view-DZ2nL2Ir.js.map +1 -0
  78. package/dist/chunks/{kbd-BF1vKXJf.js → kbd-8A0ML_up.js} +30 -28
  79. package/dist/chunks/kbd-8A0ML_up.js.map +1 -0
  80. package/dist/chunks/label-DW24Aj0Z.js +26 -0
  81. package/dist/chunks/label-DW24Aj0Z.js.map +1 -0
  82. package/dist/chunks/{link-KWI7PevW.js → link-CMjkcLQK.js} +14 -14
  83. package/dist/chunks/link-CMjkcLQK.js.map +1 -0
  84. package/dist/chunks/list-B4G-sWwV.js +540 -0
  85. package/dist/chunks/list-B4G-sWwV.js.map +1 -0
  86. package/dist/chunks/{loader-DCfPndXa.js → loader-zo8CCIGJ.js} +2 -2
  87. package/dist/chunks/{loader-DCfPndXa.js.map → loader-zo8CCIGJ.js.map} +1 -1
  88. package/dist/chunks/markdown-C565aBR7.js +338 -0
  89. package/dist/chunks/markdown-C565aBR7.js.map +1 -0
  90. package/dist/chunks/menu-Clvv6ftq.js +485 -0
  91. package/dist/chunks/menu-Clvv6ftq.js.map +1 -0
  92. package/dist/chunks/merge-refs-BN1FyQt9.js +20 -0
  93. package/dist/chunks/merge-refs-BN1FyQt9.js.map +1 -0
  94. package/dist/chunks/meter-CASMHlxl.js +100 -0
  95. package/dist/chunks/meter-CASMHlxl.js.map +1 -0
  96. package/dist/chunks/nav-sheet-Dt6JSvzX.js +67 -0
  97. package/dist/chunks/nav-sheet-Dt6JSvzX.js.map +1 -0
  98. package/dist/chunks/{nav-wordmark-_pjheAsZ.js → nav-wordmark-J4pB_vjr.js} +4 -8
  99. package/dist/chunks/nav-wordmark-J4pB_vjr.js.map +1 -0
  100. package/dist/chunks/page-header-kS5tdmvb.js +45 -0
  101. package/dist/chunks/page-header-kS5tdmvb.js.map +1 -0
  102. package/dist/chunks/pagination-D7fAm8qg.js +147 -0
  103. package/dist/chunks/pagination-D7fAm8qg.js.map +1 -0
  104. package/dist/chunks/picker-popover-1FHb1LQG.js +119 -0
  105. package/dist/chunks/picker-popover-1FHb1LQG.js.map +1 -0
  106. package/dist/chunks/popover-Bl5QYqnh.js +51 -0
  107. package/dist/chunks/popover-Bl5QYqnh.js.map +1 -0
  108. package/dist/chunks/{portal-context-BBbzDKmY.js → portal-context-CTatR2Z8.js} +14 -4
  109. package/dist/chunks/portal-context-CTatR2Z8.js.map +1 -0
  110. package/dist/chunks/{radio-CDDFpdtL.js → radio-C6GtzF_t.js} +38 -23
  111. package/dist/chunks/radio-C6GtzF_t.js.map +1 -0
  112. package/dist/chunks/range-popup-lGiZsG3s.js +160 -0
  113. package/dist/chunks/range-popup-lGiZsG3s.js.map +1 -0
  114. package/dist/chunks/reasoning-frame-C3HdQRRS.js +51 -0
  115. package/dist/chunks/reasoning-frame-C3HdQRRS.js.map +1 -0
  116. package/dist/chunks/release-art-ChiT4T2S.js +582 -0
  117. package/dist/chunks/release-art-ChiT4T2S.js.map +1 -0
  118. package/dist/chunks/rights-B68ocZuq.js +312 -0
  119. package/dist/chunks/rights-B68ocZuq.js.map +1 -0
  120. package/dist/chunks/{scroll-area-D8MD7Vpo.js → scroll-area-_Ljh4-bG.js} +11 -6
  121. package/dist/chunks/scroll-area-_Ljh4-bG.js.map +1 -0
  122. package/dist/chunks/section-CFBYhsUi.js +77 -0
  123. package/dist/chunks/section-CFBYhsUi.js.map +1 -0
  124. package/dist/chunks/section-header-DU1Q4Tdf.js +28 -0
  125. package/dist/chunks/section-header-DU1Q4Tdf.js.map +1 -0
  126. package/dist/chunks/segmented-D9i1avik.js +119 -0
  127. package/dist/chunks/segmented-D9i1avik.js.map +1 -0
  128. package/dist/chunks/select-BqjmQOqx.js +222 -0
  129. package/dist/chunks/select-BqjmQOqx.js.map +1 -0
  130. package/dist/chunks/{separator-D7TzNHmX.js → separator-BNWf6BBj.js} +13 -8
  131. package/dist/chunks/separator-BNWf6BBj.js.map +1 -0
  132. package/dist/chunks/sidebar-Dq7oGOje.js +664 -0
  133. package/dist/chunks/sidebar-Dq7oGOje.js.map +1 -0
  134. package/dist/chunks/{sidebar-menu-BN3jkTlK.js → sidebar-menu-QSSNu1jJ.js} +2 -2
  135. package/dist/chunks/{sidebar-menu-BN3jkTlK.js.map → sidebar-menu-QSSNu1jJ.js.map} +1 -1
  136. package/dist/chunks/{skeleton-Dcz57Zyp.js → skeleton-D-qk3mes.js} +3 -3
  137. package/dist/chunks/skeleton-D-qk3mes.js.map +1 -0
  138. package/dist/chunks/slider-CcE8GtuV.js +58 -0
  139. package/dist/chunks/slider-CcE8GtuV.js.map +1 -0
  140. package/dist/chunks/{status-dot-QJTF0Yv4.js → status-dot-CP6runiC.js} +4 -4
  141. package/dist/chunks/{status-dot-QJTF0Yv4.js.map → status-dot-CP6runiC.js.map} +1 -1
  142. package/dist/chunks/{styles-CVJU9t9v.js → styles-hkFkoBbi.js} +2 -2
  143. package/dist/chunks/{styles-CVJU9t9v.js.map → styles-hkFkoBbi.js.map} +1 -1
  144. package/dist/chunks/{swap-text-Dr0Irxz6.js → swap-text-SlUjrTlG.js} +3 -3
  145. package/dist/chunks/swap-text-SlUjrTlG.js.map +1 -0
  146. package/dist/chunks/switch-ngywMQdl.js +76 -0
  147. package/dist/chunks/switch-ngywMQdl.js.map +1 -0
  148. package/dist/chunks/table-CTK5E0J7.js +102 -0
  149. package/dist/chunks/table-CTK5E0J7.js.map +1 -0
  150. package/dist/chunks/tag-BGr6lTSV.js +100 -0
  151. package/dist/chunks/tag-BGr6lTSV.js.map +1 -0
  152. package/dist/chunks/{text-CIXH8rmT.js → text-DkKdTVUf.js} +9 -9
  153. package/dist/chunks/text-DkKdTVUf.js.map +1 -0
  154. package/dist/chunks/{textarea--4FRL3Pb.js → textarea-CO0HP6fK.js} +47 -36
  155. package/dist/chunks/textarea-CO0HP6fK.js.map +1 -0
  156. package/dist/chunks/timeseries-Ck-q0wWn.js +381 -0
  157. package/dist/chunks/timeseries-Ck-q0wWn.js.map +1 -0
  158. package/dist/chunks/toolbar-u0Gm7Q7-.js +61 -0
  159. package/dist/chunks/toolbar-u0Gm7Q7-.js.map +1 -0
  160. package/dist/chunks/tooltip-Tkm-urbi.js +202 -0
  161. package/dist/chunks/tooltip-Tkm-urbi.js.map +1 -0
  162. package/dist/chunks/tooltip-root-BC_RNNiP.js +70 -0
  163. package/dist/chunks/tooltip-root-BC_RNNiP.js.map +1 -0
  164. package/dist/chunks/truncated-d1afmUJT.js +33 -0
  165. package/dist/chunks/truncated-d1afmUJT.js.map +1 -0
  166. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js +28 -0
  167. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js.map +1 -0
  168. package/dist/chunks/use-hydrating-COtYVRo4.js +8 -0
  169. package/dist/chunks/use-hydrating-COtYVRo4.js.map +1 -0
  170. package/dist/chunks/use-scroll-fade-uc8mWSDX.js +30 -0
  171. package/dist/chunks/use-scroll-fade-uc8mWSDX.js.map +1 -0
  172. package/dist/chunks/{zh-CN-29X4CDLE.js → zh-CN-BlpsT6d_.js} +80 -39
  173. package/dist/chunks/zh-CN-BlpsT6d_.js.map +1 -0
  174. package/dist/components/agent-avatar.js +1 -1
  175. package/dist/components/app-frame.js +2 -2
  176. package/dist/components/avatar.js +1 -1
  177. package/dist/components/badge.js +1 -1
  178. package/dist/components/banner.js +1 -1
  179. package/dist/components/button-group.js +22 -22
  180. package/dist/components/button-group.js.map +1 -1
  181. package/dist/components/button.js +1 -1
  182. package/dist/components/calendar.js +1 -1
  183. package/dist/components/charts/bar.js +235 -160
  184. package/dist/components/charts/bar.js.map +1 -1
  185. package/dist/components/charts/donut.js +144 -99
  186. package/dist/components/charts/donut.js.map +1 -1
  187. package/dist/components/charts/gauge.js +61 -49
  188. package/dist/components/charts/gauge.js.map +1 -1
  189. package/dist/components/charts/heatmap.js +179 -70
  190. package/dist/components/charts/heatmap.js.map +1 -1
  191. package/dist/components/charts/sankey.js +144 -77
  192. package/dist/components/charts/sankey.js.map +1 -1
  193. package/dist/components/charts/sparkline.js +54 -38
  194. package/dist/components/charts/sparkline.js.map +1 -1
  195. package/dist/components/charts/timeseries.js +1 -1
  196. package/dist/components/charts.js +2 -2
  197. package/dist/components/checkbox.js +1 -1
  198. package/dist/components/code-block.js +4 -3
  199. package/dist/components/code.js +1 -1
  200. package/dist/components/collapsible.js +77 -1
  201. package/dist/components/collapsible.js.map +1 -0
  202. package/dist/components/combobox.js +1 -1
  203. package/dist/components/command-list.js +2 -2
  204. package/dist/components/command-palette.js +89 -66
  205. package/dist/components/command-palette.js.map +1 -1
  206. package/dist/components/copy-button.js +1 -1
  207. package/dist/components/data-table.js +1 -459
  208. package/dist/components/date-picker.js +162 -151
  209. package/dist/components/date-picker.js.map +1 -1
  210. package/dist/components/dialog.js +74 -63
  211. package/dist/components/dialog.js.map +1 -1
  212. package/dist/components/display-options.js +76 -64
  213. package/dist/components/display-options.js.map +1 -1
  214. package/dist/components/empty.js +1 -1
  215. package/dist/components/field.js +1 -1
  216. package/dist/components/figure.js +2 -2
  217. package/dist/components/filter-chip.js +36 -27
  218. package/dist/components/filter-chip.js.map +1 -1
  219. package/dist/components/filter-row.js +4 -4
  220. package/dist/components/filter-row.js.map +1 -1
  221. package/dist/components/flow.js +94 -63
  222. package/dist/components/flow.js.map +1 -1
  223. package/dist/components/heading.js +1 -1
  224. package/dist/components/icon-button.js +1 -1
  225. package/dist/components/icon.js +2 -2
  226. package/dist/components/input.js +176 -98
  227. package/dist/components/input.js.map +1 -1
  228. package/dist/components/kaeso/conversation.js +51 -46
  229. package/dist/components/kaeso/conversation.js.map +1 -1
  230. package/dist/components/kaeso/identity.js +1 -1
  231. package/dist/components/kaeso/moments.js +23 -20
  232. package/dist/components/kaeso/moments.js.map +1 -1
  233. package/dist/components/kaeso/rights.js +1 -1
  234. package/dist/components/kaeso/usage.js +90 -74
  235. package/dist/components/kaeso/usage.js.map +1 -1
  236. package/dist/components/kaeso.js +200 -187
  237. package/dist/components/kaeso.js.map +1 -1
  238. package/dist/components/kbd.js +1 -1
  239. package/dist/components/key-value.js +32 -47
  240. package/dist/components/key-value.js.map +1 -1
  241. package/dist/components/label.js +1 -25
  242. package/dist/components/layout.js +2 -2
  243. package/dist/components/layout.js.map +1 -1
  244. package/dist/components/link.js +1 -1
  245. package/dist/components/list.js +1 -1
  246. package/dist/components/loader.js +11 -10
  247. package/dist/components/loader.js.map +1 -1
  248. package/dist/components/logo.js +2 -2
  249. package/dist/components/markdown.js +1 -1
  250. package/dist/components/menu.js +2 -2
  251. package/dist/components/meter.js +1 -1
  252. package/dist/components/page-header.js +1 -1
  253. package/dist/components/pagination.js +1 -1
  254. package/dist/components/playground.js +644 -529
  255. package/dist/components/playground.js.map +1 -1
  256. package/dist/components/popover.js +4 -4
  257. package/dist/components/popover.js.map +1 -1
  258. package/dist/components/portal.js +1 -1
  259. package/dist/components/qr-code.js +2 -2
  260. package/dist/components/qr-code.js.map +1 -1
  261. package/dist/components/radio.js +1 -1
  262. package/dist/components/release-art.js +1 -1
  263. package/dist/components/scroll-area.js +1 -1
  264. package/dist/components/section.js +1 -1
  265. package/dist/components/segmented.js +1 -1
  266. package/dist/components/select.js +1 -1
  267. package/dist/components/separator.js +1 -1
  268. package/dist/components/settings.js +39 -46
  269. package/dist/components/settings.js.map +1 -1
  270. package/dist/components/sheet.js +10 -9
  271. package/dist/components/sheet.js.map +1 -1
  272. package/dist/components/sidebar.js +1 -1
  273. package/dist/components/skeleton.js +1 -1
  274. package/dist/components/slider.js +1 -1
  275. package/dist/components/stat.js +98 -84
  276. package/dist/components/stat.js.map +1 -1
  277. package/dist/components/status-dot.js +1 -1
  278. package/dist/components/surface.js +1 -1
  279. package/dist/components/swap-text.js +1 -1
  280. package/dist/components/switch.js +1 -1
  281. package/dist/components/table.js +1 -1
  282. package/dist/components/tabs.js +73 -55
  283. package/dist/components/tabs.js.map +1 -1
  284. package/dist/components/tag.js +1 -1
  285. package/dist/components/text.js +1 -1
  286. package/dist/components/theme-image.js +1 -1
  287. package/dist/components/theme-menu.js +5 -2
  288. package/dist/components/theme-menu.js.map +1 -1
  289. package/dist/components/theme-select.js +1 -1
  290. package/dist/components/thumbnail.js +35 -24
  291. package/dist/components/thumbnail.js.map +1 -1
  292. package/dist/components/timeline.js +51 -35
  293. package/dist/components/timeline.js.map +1 -1
  294. package/dist/components/toast.js +76 -66
  295. package/dist/components/toast.js.map +1 -1
  296. package/dist/components/toc.js +14 -8
  297. package/dist/components/toc.js.map +1 -1
  298. package/dist/components/toolbar.js +1 -1
  299. package/dist/components/tooltip.js +1 -1
  300. package/dist/components/visually-hidden.js +1 -1
  301. package/dist/i18n-provider.js +1 -1
  302. package/dist/index.js +101 -101
  303. package/dist/kaeso.css +605 -67
  304. package/dist/styles.css +1 -1
  305. package/dist/tailwind.css +1 -1
  306. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -2
  307. package/dist/types/components/agent-avatar/agent-avatar.d.ts +24 -19
  308. package/dist/types/components/badge/badge.d.ts +3 -3
  309. package/dist/types/components/banner/banner.d.ts +3 -3
  310. package/dist/types/components/button/button.d.ts +2 -2
  311. package/dist/types/components/button-group/button-group.d.ts +1 -1
  312. package/dist/types/components/charts/domain.d.ts +11 -0
  313. package/dist/types/components/charts/marks.d.ts +1 -0
  314. package/dist/types/components/code/code.d.ts +3 -3
  315. package/dist/types/components/code-block/diff-view.d.ts +30 -0
  316. package/dist/types/components/code-block/diff.d.ts +26 -0
  317. package/dist/types/components/code-block/docs.d.ts +14 -0
  318. package/dist/types/components/code-block/index.d.ts +1 -0
  319. package/dist/types/components/code-block/json-view.d.ts +2 -1
  320. package/dist/types/components/code-block/numbers.d.ts +1 -0
  321. package/dist/types/components/collapsible/collapsible.d.ts +2 -2
  322. package/dist/types/components/collapsible/disclosure.d.ts +2 -0
  323. package/dist/types/components/data-table/data-table.d.ts +6 -5
  324. package/dist/types/components/data-table/docs.d.ts +1 -0
  325. package/dist/types/components/data-table/time-columns.d.ts +1 -0
  326. package/dist/types/components/date-picker/focus-day.d.ts +1 -0
  327. package/dist/types/components/date-picker/iso-field.d.ts +8 -1
  328. package/dist/types/components/dialog/dialog.d.ts +7 -7
  329. package/dist/types/components/field/field.d.ts +1 -1
  330. package/dist/types/components/flow/flow.d.ts +1 -1
  331. package/dist/types/components/icon-button/icon-button.d.ts +1 -1
  332. package/dist/types/components/input/input-group.d.ts +2 -0
  333. package/dist/types/components/input/number-input.d.ts +4 -4
  334. package/dist/types/components/input/otp-input.d.ts +3 -3
  335. package/dist/types/components/kaeso/client-button.d.ts +2 -1
  336. package/dist/types/components/kaeso/provider-picker.d.ts +1 -0
  337. package/dist/types/components/kaeso/rights.d.ts +1 -1
  338. package/dist/types/components/kaeso/role-picker.d.ts +1 -0
  339. package/dist/types/components/key-value/key-value.d.ts +2 -2
  340. package/dist/types/components/layout/layout.d.ts +2 -2
  341. package/dist/types/components/link/link.d.ts +4 -4
  342. package/dist/types/components/list/list.d.ts +2 -2
  343. package/dist/types/components/menu/menu.d.ts +2 -1
  344. package/dist/types/components/menu/styles.d.ts +3 -3
  345. package/dist/types/components/meter/meter.d.ts +3 -3
  346. package/dist/types/components/page-header/page-header.d.ts +1 -1
  347. package/dist/types/components/pagination/pagination.d.ts +2 -2
  348. package/dist/types/components/playground/prompt-suggestions.d.ts +1 -0
  349. package/dist/types/components/playground/reasoning-frame.d.ts +14 -0
  350. package/dist/types/components/playground/reasoning.d.ts +1 -0
  351. package/dist/types/components/popover/popover.d.ts +1 -1
  352. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  353. package/dist/types/components/section/section-header.d.ts +6 -0
  354. package/dist/types/components/segmented/segmented.d.ts +1 -0
  355. package/dist/types/components/select/select.d.ts +1 -1
  356. package/dist/types/components/sheet/sheet.d.ts +3 -3
  357. package/dist/types/components/sidebar/sidebar.d.ts +1 -0
  358. package/dist/types/components/slider/slider.d.ts +2 -2
  359. package/dist/types/components/stat/stat.d.ts +1 -1
  360. package/dist/types/components/tabs/tabs.d.ts +6 -4
  361. package/dist/types/components/text/truncated.d.ts +7 -0
  362. package/dist/types/components/timeline/timeline.d.ts +5 -5
  363. package/dist/types/components/toc/toc.d.ts +1 -1
  364. package/dist/types/components/toolbar/toolbar.d.ts +1 -1
  365. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  366. package/dist/types/components/tooltip/trigger-props.d.ts +1 -0
  367. package/dist/types/hooks/use-coarse-pointer.d.ts +1 -0
  368. package/dist/types/hooks/use-hydrating.d.ts +1 -0
  369. package/dist/types/icons/groups.d.ts +1 -1
  370. package/dist/types/icons/vocabulary.d.ts +5 -0
  371. package/dist/types/utils/arrow-focus.d.ts +4 -1
  372. package/dist/types/utils/cn.d.ts +33 -0
  373. package/dist/types/utils/portal-context.d.ts +7 -1
  374. package/dist/utils.js +2 -2
  375. package/foundations/accessibility.md +3 -2
  376. package/foundations/color.md +5 -1
  377. package/foundations/elevation.md +1 -0
  378. package/foundations/motion.md +1 -1
  379. package/foundations/shape.md +2 -2
  380. package/foundations/typography.md +12 -12
  381. package/package.json +2 -2
  382. package/dist/chunks/agent-avatar-0pdBTWkR.js +0 -171
  383. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +0 -1
  384. package/dist/chunks/app-frame-DogGRmsu.js +0 -221
  385. package/dist/chunks/app-frame-DogGRmsu.js.map +0 -1
  386. package/dist/chunks/arrow-focus-BcySmwwU.js +0 -11
  387. package/dist/chunks/arrow-focus-BcySmwwU.js.map +0 -1
  388. package/dist/chunks/avatar-CWbdwbJv.js +0 -83
  389. package/dist/chunks/avatar-CWbdwbJv.js.map +0 -1
  390. package/dist/chunks/badge-C2KtxCLB.js +0 -26
  391. package/dist/chunks/badge-C2KtxCLB.js.map +0 -1
  392. package/dist/chunks/banner-BA2ALw9M.js +0 -85
  393. package/dist/chunks/banner-BA2ALw9M.js.map +0 -1
  394. package/dist/chunks/button-CzuxqawA.js +0 -164
  395. package/dist/chunks/button-CzuxqawA.js.map +0 -1
  396. package/dist/chunks/calendar-BWaf2MXc.js.map +0 -1
  397. package/dist/chunks/checkbox-CQjwCPkc.js +0 -126
  398. package/dist/chunks/checkbox-CQjwCPkc.js.map +0 -1
  399. package/dist/chunks/cn-Dj6sRgkF.js.map +0 -1
  400. package/dist/chunks/code-block-D5A-CGXG.js +0 -330
  401. package/dist/chunks/code-block-D5A-CGXG.js.map +0 -1
  402. package/dist/chunks/code-tqj0uhBL.js.map +0 -1
  403. package/dist/chunks/collapsible-CKrCX_T9.js +0 -87
  404. package/dist/chunks/collapsible-CKrCX_T9.js.map +0 -1
  405. package/dist/chunks/combobox-DjDI7SUC.js +0 -319
  406. package/dist/chunks/combobox-DjDI7SUC.js.map +0 -1
  407. package/dist/chunks/command-list-C2Y7V_lt.js +0 -418
  408. package/dist/chunks/command-list-C2Y7V_lt.js.map +0 -1
  409. package/dist/chunks/copy-button-FJvPJn72.js.map +0 -1
  410. package/dist/chunks/core-BYns5ytV.js +0 -472
  411. package/dist/chunks/core-BYns5ytV.js.map +0 -1
  412. package/dist/chunks/date-popup-CPA_zt6o.js +0 -35
  413. package/dist/chunks/date-popup-CPA_zt6o.js.map +0 -1
  414. package/dist/chunks/de-CPXJh9cq.js.map +0 -1
  415. package/dist/chunks/dialog-Cg9A_6SF.js.map +0 -1
  416. package/dist/chunks/field-TviMvYa2.js.map +0 -1
  417. package/dist/chunks/hidden-description-B2zSmLcn.js +0 -23
  418. package/dist/chunks/hidden-description-B2zSmLcn.js.map +0 -1
  419. package/dist/chunks/icon-DVooQfk4.js +0 -94
  420. package/dist/chunks/icon-button-CrdF_eMG.js.map +0 -1
  421. package/dist/chunks/input-2VJuj_M4.js.map +0 -1
  422. package/dist/chunks/input-group-DQ_4DoXg.js.map +0 -1
  423. package/dist/chunks/iso-field-B2rTwiBo.js +0 -33
  424. package/dist/chunks/iso-field-B2rTwiBo.js.map +0 -1
  425. package/dist/chunks/json-view-Dqd2TDkc.js +0 -175
  426. package/dist/chunks/json-view-Dqd2TDkc.js.map +0 -1
  427. package/dist/chunks/kbd-BF1vKXJf.js.map +0 -1
  428. package/dist/chunks/link-KWI7PevW.js.map +0 -1
  429. package/dist/chunks/list-M1csq-d4.js +0 -494
  430. package/dist/chunks/list-M1csq-d4.js.map +0 -1
  431. package/dist/chunks/markdown-DULktoTK.js +0 -313
  432. package/dist/chunks/markdown-DULktoTK.js.map +0 -1
  433. package/dist/chunks/menu-DEmBfdPm.js +0 -450
  434. package/dist/chunks/menu-DEmBfdPm.js.map +0 -1
  435. package/dist/chunks/meter-Bj4N3Xuh.js +0 -84
  436. package/dist/chunks/meter-Bj4N3Xuh.js.map +0 -1
  437. package/dist/chunks/nav-sheet-CzgIwgAm.js +0 -60
  438. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +0 -1
  439. package/dist/chunks/nav-wordmark-_pjheAsZ.js.map +0 -1
  440. package/dist/chunks/page-header-DL2y2iZp.js +0 -41
  441. package/dist/chunks/page-header-DL2y2iZp.js.map +0 -1
  442. package/dist/chunks/pagination-Cn_qF4cg.js +0 -86
  443. package/dist/chunks/pagination-Cn_qF4cg.js.map +0 -1
  444. package/dist/chunks/picker-popover-BxyU1U9F.js +0 -106
  445. package/dist/chunks/picker-popover-BxyU1U9F.js.map +0 -1
  446. package/dist/chunks/popover-DNN4S47w.js +0 -50
  447. package/dist/chunks/popover-DNN4S47w.js.map +0 -1
  448. package/dist/chunks/portal-context-BBbzDKmY.js.map +0 -1
  449. package/dist/chunks/radio-CDDFpdtL.js.map +0 -1
  450. package/dist/chunks/range-popup-CRyWYUB1.js +0 -128
  451. package/dist/chunks/range-popup-CRyWYUB1.js.map +0 -1
  452. package/dist/chunks/release-art-ZwfFQImt.js +0 -561
  453. package/dist/chunks/release-art-ZwfFQImt.js.map +0 -1
  454. package/dist/chunks/rights-Cyp0Pzp-.js +0 -279
  455. package/dist/chunks/rights-Cyp0Pzp-.js.map +0 -1
  456. package/dist/chunks/scroll-area-D8MD7Vpo.js.map +0 -1
  457. package/dist/chunks/scroll-parent-WXvzQcUo.js +0 -14
  458. package/dist/chunks/scroll-parent-WXvzQcUo.js.map +0 -1
  459. package/dist/chunks/section-Ce1efbsP.js +0 -87
  460. package/dist/chunks/section-Ce1efbsP.js.map +0 -1
  461. package/dist/chunks/segmented-CErcoxwi.js +0 -114
  462. package/dist/chunks/segmented-CErcoxwi.js.map +0 -1
  463. package/dist/chunks/select-x4XVsdCI.js +0 -210
  464. package/dist/chunks/select-x4XVsdCI.js.map +0 -1
  465. package/dist/chunks/separator-D7TzNHmX.js.map +0 -1
  466. package/dist/chunks/sidebar-3r1ZRXlN.js +0 -621
  467. package/dist/chunks/sidebar-3r1ZRXlN.js.map +0 -1
  468. package/dist/chunks/skeleton-Dcz57Zyp.js.map +0 -1
  469. package/dist/chunks/slider-Ci83PGtj.js +0 -57
  470. package/dist/chunks/slider-Ci83PGtj.js.map +0 -1
  471. package/dist/chunks/swap-text-Dr0Irxz6.js.map +0 -1
  472. package/dist/chunks/switch-BNMq_kGt.js +0 -59
  473. package/dist/chunks/switch-BNMq_kGt.js.map +0 -1
  474. package/dist/chunks/table-BeOSKl_3.js +0 -84
  475. package/dist/chunks/table-BeOSKl_3.js.map +0 -1
  476. package/dist/chunks/tag-D_M1s2qS.js +0 -87
  477. package/dist/chunks/tag-D_M1s2qS.js.map +0 -1
  478. package/dist/chunks/text-CIXH8rmT.js.map +0 -1
  479. package/dist/chunks/textarea--4FRL3Pb.js.map +0 -1
  480. package/dist/chunks/timeseries-D1xjRXfk.js +0 -339
  481. package/dist/chunks/timeseries-D1xjRXfk.js.map +0 -1
  482. package/dist/chunks/toolbar-WA_oZgu-.js +0 -37
  483. package/dist/chunks/toolbar-WA_oZgu-.js.map +0 -1
  484. package/dist/chunks/tooltip-OcwO0VUT.js +0 -154
  485. package/dist/chunks/tooltip-OcwO0VUT.js.map +0 -1
  486. package/dist/chunks/tooltip-root-DzahJDVj.js +0 -60
  487. package/dist/chunks/tooltip-root-DzahJDVj.js.map +0 -1
  488. package/dist/chunks/zh-CN-29X4CDLE.js.map +0 -1
  489. package/dist/components/data-table.js.map +0 -1
  490. package/dist/components/label.js.map +0 -1
@@ -0,0 +1,505 @@
1
+ "use client";
2
+ import { t as e } from "./cn-BjnOAUrA.js";
3
+ import { i as t, n } from "./context-BELWW79w.js";
4
+ import { t as r } from "./merge-refs-BN1FyQt9.js";
5
+ import { t as i } from "./observe-resize-DhxhmoyB.js";
6
+ import { r as a } from "./swap-text-SlUjrTlG.js";
7
+ import { n as o } from "./button-IblhXUyZ.js";
8
+ import { r as s } from "./skeleton-D-qk3mes.js";
9
+ import { r as c } from "./table-CTK5E0J7.js";
10
+ import { forwardRef as l, useEffect as u, useLayoutEffect as d, useMemo as f, useRef as p, useState as m } from "react";
11
+ import { jsx as h, jsxs as g } from "react/jsx-runtime";
12
+ import { motion as _, tokenKindSeries as v, tokenKindTint as y } from "@logicplanes/kaeso-tokens";
13
+ //#region src/components/charts/marks.ts
14
+ function b(e) {
15
+ let t = /^var\(--k-viz-(\d)-soft\)$/.exec(e);
16
+ return t ? `var(--k-viz-${t[1]})` : void 0;
17
+ }
18
+ //#endregion
19
+ //#region src/components/charts/core.tsx
20
+ function x(e, t) {
21
+ return t.every(Number.isInteger) ? e.filter(Number.isInteger) : e;
22
+ }
23
+ var S = [
24
+ "var(--k-viz-1)",
25
+ "var(--k-viz-2)",
26
+ "var(--k-viz-3)",
27
+ "var(--k-viz-4)",
28
+ "var(--k-viz-5)",
29
+ "var(--k-viz-6)",
30
+ "var(--k-viz-7)",
31
+ "var(--k-viz-8)"
32
+ ], C = [
33
+ "var(--k-viz-thin-1)",
34
+ "var(--k-viz-thin-2)",
35
+ "var(--k-viz-thin-3)",
36
+ "var(--k-viz-thin-4)",
37
+ "var(--k-viz-thin-5)",
38
+ "var(--k-viz-thin-6)",
39
+ "var(--k-viz-thin-7)",
40
+ "var(--k-viz-thin-8)"
41
+ ];
42
+ function w(e) {
43
+ let t = 2166136261;
44
+ for (let n = 0; n < e.length; n++) t = Math.imul(t ^ e.charCodeAt(n), 16777619);
45
+ return Math.abs(t);
46
+ }
47
+ var T = {
48
+ 1: 6,
49
+ 6: 1,
50
+ 2: 5,
51
+ 5: 2,
52
+ 3: 7,
53
+ 7: 3
54
+ };
55
+ function E(e) {
56
+ return w(e) % S.length;
57
+ }
58
+ function D(e) {
59
+ let t = /* @__PURE__ */ new Map();
60
+ if (new Set(e).size === 1) return /* @__PURE__ */ new Map([[e[0], 0]]);
61
+ let n = /* @__PURE__ */ new Set(), r = (e) => n.has(e) || T[e] !== void 0 && n.has(T[e]);
62
+ for (let i of e) {
63
+ if (t.has(i)) continue;
64
+ let e = E(i);
65
+ if (r(e)) {
66
+ let t = [...S.keys()];
67
+ e = t.find((e) => !r(e)) ?? t.find((e) => !n.has(e)) ?? e;
68
+ }
69
+ n.add(e), t.set(i, e);
70
+ }
71
+ return t;
72
+ }
73
+ function O(e, t = !1) {
74
+ return new Map([...D(e)].map(([e, n]) => [e, (t ? C : S)[n]]));
75
+ }
76
+ var k = (e, t = !1) => (t ? C : S)[E(e)], ee = (e, t = !1) => y[e] ? "var(--k-viz-1-soft)" : (t ? C : S)[v[e] - 1], te = [
77
+ "input",
78
+ "cacheRead",
79
+ "cacheWrite",
80
+ "output",
81
+ "reasoning"
82
+ ];
83
+ function ne(e, t = n) {
84
+ switch (e) {
85
+ case "input": return t("tokenKind.input", "Input");
86
+ case "output": return t("tokenKind.output", "Output");
87
+ case "cacheRead": return t("tokenKind.cacheRead", "Cache read");
88
+ case "cacheWrite": return t("tokenKind.cacheWrite", "Cache write");
89
+ case "reasoning": return t("tokenKind.reasoning", "Reasoning");
90
+ }
91
+ }
92
+ function A() {
93
+ let [e, t] = m(null), [n, r] = m({
94
+ width: 0,
95
+ height: 0
96
+ });
97
+ return d(() => {
98
+ if (!e) return;
99
+ let t = () => r({
100
+ width: Math.round(e.clientWidth),
101
+ height: Math.round(e.clientHeight)
102
+ });
103
+ return t(), i([e], t);
104
+ }, [e]), [t, n];
105
+ }
106
+ var j = (e) => 1 - (1 - e) ** 3, M = () => typeof matchMedia < "u" && matchMedia("(prefers-reduced-motion: reduce)").matches, N = (e, t, n) => n >= 1 ? t : t.map((t, r) => (e[r] ?? t) + (t - (e[r] ?? t)) * j(n));
107
+ function P(e, t) {
108
+ return e.length === t.length && e.some((e) => e !== 0) && t.some((e) => e !== 0) && e.some((e, n) => e !== t[n]) && !M();
109
+ }
110
+ function F(e, t = !1) {
111
+ let n = e.join(","), [r, i] = m({
112
+ key: n,
113
+ from: e,
114
+ to: e,
115
+ t: 1,
116
+ still: t
117
+ }), a = r;
118
+ if (r.key !== n || r.still !== t) {
119
+ let o = N(r.from, r.to, r.t);
120
+ a = !t && !r.still && P(o, e) ? {
121
+ key: n,
122
+ from: o,
123
+ to: e,
124
+ t: 0,
125
+ still: t
126
+ } : {
127
+ key: n,
128
+ from: e,
129
+ to: e,
130
+ t: 1,
131
+ still: t
132
+ }, i(a);
133
+ }
134
+ let o = a.t < 1;
135
+ return u(() => {
136
+ if (!o) return;
137
+ let e = performance.now(), t = 0, r = () => {
138
+ let a = Math.max(0, Math.min(1, (performance.now() - e) / _.duration.chart));
139
+ i((e) => e.key === n ? {
140
+ ...e,
141
+ t: a
142
+ } : e), a < 1 && (t = requestAnimationFrame(r));
143
+ };
144
+ return t = requestAnimationFrame(r), () => cancelAnimationFrame(t);
145
+ }, [n, o]), N(a.from, a.to, a.t);
146
+ }
147
+ function re(e, t, n = !1) {
148
+ let r = e.some((e) => e !== 0), i = F(r ? [...e, t] : e, n);
149
+ return r ? {
150
+ values: i.slice(0, -1),
151
+ top: i[i.length - 1] ?? t
152
+ } : {
153
+ values: i,
154
+ top: t
155
+ };
156
+ }
157
+ var I = /* @__PURE__ */ l(function({ label: n, height: r, children: i, table: c, legend: l, state: u = {}, className: d, toggle: f = !0 }, p) {
158
+ let [_, v] = m(!1), y = t(), b = !!u.error, x = !!u.empty, S = _ && !!c && !b && !x, C = y("chartFrame.viewAsTable", "View as table"), w = y("chartFrame.viewAsChart", "View as chart");
159
+ return /* @__PURE__ */ g("figure", {
160
+ ref: p,
161
+ className: e("@container flex w-full min-w-0 flex-col gap-12", d),
162
+ "aria-label": n,
163
+ ...u.loading ? { "aria-busy": !0 } : {},
164
+ children: [
165
+ b ? /* @__PURE__ */ g("div", {
166
+ className: "flex flex-col items-center justify-center gap-12 px-24 text-center",
167
+ style: { height: r },
168
+ children: [/* @__PURE__ */ h("p", {
169
+ role: "alert",
170
+ className: "text-body text-pretty text-fg-secondary",
171
+ children: u.onRetry ? y("chartFrame.loadFailed", "Couldn't load this chart") : y("chartFrame.loadFailedReload", "Couldn't load this chart. Reload the page to try again.")
172
+ }), u.onRetry && /* @__PURE__ */ h(o, {
173
+ size: "sm",
174
+ variant: "secondary",
175
+ onClick: u.onRetry,
176
+ children: y("chartFrame.tryAgain", "Try again")
177
+ })]
178
+ }) : S ? /* @__PURE__ */ h("div", {
179
+ style: { height: r },
180
+ children: /* @__PURE__ */ h("div", {
181
+ role: "region",
182
+ tabIndex: 0,
183
+ "aria-label": y("chartFrame.tableLabel", "{label}, table", { label: n }),
184
+ className: "h-full overflow-auto overscroll-contain scrollbar-quiet focus-ring-inset",
185
+ children: /* @__PURE__ */ h(L, {
186
+ table: c,
187
+ sticky: !0
188
+ })
189
+ })
190
+ }) : /* @__PURE__ */ g("div", {
191
+ className: "relative",
192
+ style: { height: r },
193
+ children: [u.loading && u.empty ? /* @__PURE__ */ h(s, { className: "absolute inset-0" }) : /* @__PURE__ */ h("div", {
194
+ className: e("absolute inset-0", u.loading && "opacity-40"),
195
+ children: /* @__PURE__ */ h("div", {
196
+ className: e("absolute inset-0", u.loading && "animate-pulse-quiet"),
197
+ children: i
198
+ })
199
+ }), u.empty && !u.loading && /* @__PURE__ */ h("div", {
200
+ className: "pointer-events-none absolute inset-0 flex items-center justify-center px-24 text-center text-body text-pretty text-fg-secondary",
201
+ children: u.emptyText ?? y("chartFrame.noData", "No data for this period")
202
+ })]
203
+ }),
204
+ !b && (l || f && c && !x) && /* @__PURE__ */ g("div", {
205
+ className: "flex flex-col gap-8 @chart-legend:flex-row @chart-legend:gap-12",
206
+ children: [!S && l && /* @__PURE__ */ h("div", {
207
+ className: "min-w-0 @chart-legend:flex-1",
208
+ children: l
209
+ }), f && c && !x && /* @__PURE__ */ h("button", {
210
+ type: "button",
211
+ onClick: () => v((e) => !e),
212
+ className: "relative ml-auto inline-flex h-28 shrink-0 cursor-pointer items-center self-end rounded-pill px-10 text-small font-medium text-fg-secondary transition-control hover:bg-fill-1 hover:text-fg focus-ring tap-target",
213
+ children: /* @__PURE__ */ h(a, {
214
+ reserve: [C, w],
215
+ children: S ? w : C
216
+ })
217
+ })]
218
+ }),
219
+ c && !S && /* @__PURE__ */ h("div", {
220
+ className: "sr-only",
221
+ children: /* @__PURE__ */ h(L, {
222
+ table: c,
223
+ caption: n
224
+ })
225
+ })
226
+ ]
227
+ });
228
+ });
229
+ process.env.NODE_ENV !== "production" && (I.displayName = "ChartFrame");
230
+ var ie = /^[^\p{L}]*\d[^\p{L}]*\p{L}{0,3}$/u;
231
+ function L({ table: t, caption: n, sticky: r }) {
232
+ let i = t.columns.map((e, n) => n > 0 && t.rows.every((e) => typeof e[n] == "number" || ie.test(String(e[n] ?? "").trim()) || e[n] === "–"));
233
+ return /* @__PURE__ */ g(c, { children: [
234
+ n && /* @__PURE__ */ h("caption", {
235
+ className: "sr-only",
236
+ children: n
237
+ }),
238
+ /* @__PURE__ */ h(c.Head, { children: /* @__PURE__ */ h(c.Row, { children: t.columns.map((t, n) => /* @__PURE__ */ h(c.HeaderCell, {
239
+ align: i[n] ? "end" : "start",
240
+ className: e(r && "sticky top-0 z-10 bg-panel"),
241
+ children: t
242
+ }, t)) }) }),
243
+ /* @__PURE__ */ h(c.Body, { children: t.rows.map((e, t) => /* @__PURE__ */ h(c.Row, { children: e.map((e, t) => /* @__PURE__ */ h(c.Cell, {
244
+ align: i[t] ? "end" : "start",
245
+ children: e
246
+ }, t)) }, t)) })
247
+ ] });
248
+ }
249
+ var R = /* @__PURE__ */ l(function({ color: t, shape: n = "square", off: r }, i) {
250
+ let a = b(t);
251
+ return /* @__PURE__ */ h("span", {
252
+ ref: i,
253
+ "aria-hidden": !0,
254
+ "data-off": r ? "" : void 0,
255
+ className: e("shrink-0 data-mark transition-control", n === "line" ? "h-2 w-12 rounded-pill" : "size-10 rounded-bar"),
256
+ style: r ? n === "line" ? {
257
+ outline: `1px solid ${a ?? t}`,
258
+ outlineOffset: 1
259
+ } : { boxShadow: `inset 0 0 0 1px ${a ?? t}` } : {
260
+ background: t,
261
+ ...a && n === "square" ? { boxShadow: `inset 0 0 0 1px ${a}` } : {}
262
+ }
263
+ });
264
+ });
265
+ process.env.NODE_ENV !== "production" && (R.displayName = "Swatch");
266
+ var z = (e) => (t) => e(t).replace(/[.,]00(?=\D*$)/, "");
267
+ function B(e, t, n = 4) {
268
+ for (let r = n; r >= 1; r--) {
269
+ let n = e.ticks(r);
270
+ if (new Set(n.map(t)).size === n.length) return n;
271
+ }
272
+ let [r = 0, i = 0] = e.domain();
273
+ return t(r) === t(i) ? [r] : [r, i];
274
+ }
275
+ function V(e) {
276
+ if (e instanceof Date) return Number.isNaN(e.getTime()) ? NaN : Date.UTC(e.getFullYear(), e.getMonth(), e.getDate()) / 864e5;
277
+ let t = /^(\d{4})-(\d{2})-(\d{2})/.exec(e);
278
+ return t ? Date.UTC(Number(t[1]), Number(t[2]) - 1, Number(t[3])) / 864e5 : NaN;
279
+ }
280
+ var H = (e) => (/* @__PURE__ */ new Date(e * 864e5)).getUTCFullYear();
281
+ function U(e) {
282
+ let t = e.map(V), n = [];
283
+ return t.forEach((e, r) => {
284
+ let i = r > 0 ? t[r - 1] : t.length > 1 ? 2 * e - t[1] : NaN;
285
+ Number.isFinite(e) && Number.isFinite(i) && H(e) !== H(i) && n.push(r);
286
+ }), n;
287
+ }
288
+ var W = /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\u3000-\u303f\uff00-\uffef]/u;
289
+ function G(e) {
290
+ let t = 0;
291
+ for (let n of e) t += W.test(n) ? 1 : /\p{Lu}/u.test(n) ? .8 : /\p{Ll}/u.test(n) ? .6 : /\p{Nd}/u.test(n) ? .66 : /\s/.test(n) ? .3 : .4;
292
+ return t * Z.label.fontSize;
293
+ }
294
+ var K = 8;
295
+ function q(e, t) {
296
+ let n = e.map((e) => {
297
+ let n = G(e.label), r = e.at - n / 2 < 0 ? "start" : e.at + n / 2 > t ? "end" : "middle", i = r === "start" ? Math.max(e.at, 0) : e.at, a = r === "start" ? i : r === "end" ? i - n : i - n / 2;
298
+ return {
299
+ key: e.key,
300
+ x: i,
301
+ anchor: r,
302
+ label: e.label,
303
+ left: a,
304
+ right: a + n
305
+ };
306
+ }), r = (e, t) => !e || !t || e.right + K <= t.left;
307
+ n.length > 2 && !r(n[0], n[1]) && n.splice(1, 1), n.length > 2 && !r(n[n.length - 2], n[n.length - 1]) && n.splice(n.length - 2, 1);
308
+ let i = [];
309
+ for (let e of n) r(i[i.length - 1], e) && i.push(e);
310
+ return i.map(({ key: e, x: t, anchor: n, label: r }) => ({
311
+ key: e,
312
+ x: t,
313
+ anchor: n,
314
+ label: r
315
+ }));
316
+ }
317
+ function J(e, t, n = {
318
+ start: Infinity,
319
+ end: Infinity
320
+ }, r) {
321
+ let i = e.length;
322
+ if (i === 0) return [];
323
+ let a = (r) => G(e[r]) / 2 <= Math.min(n.start + r * t, n.end + (i - 1 - r) * t) + 1e-6, o = Math.max(48, Math.max(...e.map(G)) + 16), s = t > 0 ? Math.max(1, Math.ceil(o / t - 1e-6)) : i, c = r && r.length === i ? U(r) : [], l = s;
324
+ for (let e = s; s > 1 && e <= s * 2; e++) if (c.every((t) => (t - c[0]) % e === 0)) {
325
+ l = e;
326
+ break;
327
+ }
328
+ let u = (e) => [
329
+ c.filter((t) => t % l === e && a(t)).length,
330
+ (i - 1) % l === e && a(i - 1) ? 1 : 0,
331
+ e === 0 && a(0) ? 1 : 0,
332
+ i - 1 - (i - 1 - e) % l
333
+ ], d = 0;
334
+ for (let e = 1; e < Math.min(l, i); e++) {
335
+ let t = u(e), n = u(d), r = t.findIndex((e, t) => e !== n[t]);
336
+ r >= 0 && t[r] > n[r] && (d = e);
337
+ }
338
+ let f = [];
339
+ for (let e = d; e < i; e += l) a(e) && f.push(e);
340
+ return f;
341
+ }
342
+ var Y = /* @__PURE__ */ l(function({ items: n, hidden: r, onToggle: i, onHover: a, shape: o = "square" }, s) {
343
+ let c = t();
344
+ return /* @__PURE__ */ h("ul", {
345
+ ref: s,
346
+ className: e("flex flex-wrap items-center", i ? "gap-4" : "gap-x-16 gap-y-4"),
347
+ "aria-label": c("chartLegend.label", "Legend"),
348
+ children: n.map((t) => {
349
+ let n = r?.has(t.id);
350
+ return /* @__PURE__ */ h("li", { children: /* @__PURE__ */ g(i ? "button" : "span", {
351
+ ...i ? {
352
+ type: "button",
353
+ "aria-pressed": !n,
354
+ onClick: () => i(t.id)
355
+ } : {},
356
+ onMouseEnter: () => a?.(t.id),
357
+ onMouseLeave: () => a?.(null),
358
+ onFocus: () => a?.(t.id),
359
+ onBlur: () => a?.(null),
360
+ className: e("inline-flex h-28 items-center gap-8 text-small font-medium transition-control", i && "relative cursor-pointer rounded-pill px-10 hover:bg-fill-1 focus-ring tap-target", n ? "text-fg-tertiary" : "text-fg"),
361
+ children: [
362
+ /* @__PURE__ */ h(R, {
363
+ color: t.color,
364
+ shape: o,
365
+ off: n
366
+ }),
367
+ t.label,
368
+ t.value !== void 0 && /* @__PURE__ */ h("span", {
369
+ className: "text-fg-secondary tabular",
370
+ children: t.value
371
+ })
372
+ ]
373
+ }) }, t.id);
374
+ })
375
+ });
376
+ });
377
+ process.env.NODE_ENV !== "production" && (Y.displayName = "Legend");
378
+ var X = /* @__PURE__ */ l(function({ x: t, xLeft: n = t, y: i, width: a, heading: o, rows: s, visible: c }, l) {
379
+ let u = p(null), _ = f(() => r(u, l), [l]), [v, y] = m({
380
+ w: 0,
381
+ h: 0,
382
+ room: Infinity
383
+ });
384
+ d(() => {
385
+ let e = u.current, t = {
386
+ w: e?.offsetWidth ?? 0,
387
+ h: e?.offsetHeight ?? 0,
388
+ room: e?.offsetParent?.clientHeight ?? Infinity
389
+ };
390
+ (t.w !== v.w || t.h !== v.h || t.room !== v.room) && y(t);
391
+ }, [
392
+ v,
393
+ o,
394
+ s,
395
+ c
396
+ ]);
397
+ let b = t > a / 2, x = b ? n - 16 - v.w : t + 16, S = v.w ? Math.round(Math.max(0, Math.min(x, a - v.w))) : void 0, C = Math.round(Math.max(0, Math.min(i - 24, v.room - v.h)));
398
+ return /* @__PURE__ */ g("div", {
399
+ ref: _,
400
+ role: "presentation",
401
+ "aria-hidden": !0,
402
+ className: e("pointer-events-none absolute z-10 w-max min-w-160 max-w-360 rounded-tooltip bg-raised p-10 text-small shadow-raised opacity-motion @chart-legend:min-w-200", c && v.w ? "opacity-100" : "opacity-0"),
403
+ style: {
404
+ ...S === void 0 ? b ? { right: Math.round(a - n + 16) } : { left: Math.round(t + 16) } : { left: S },
405
+ top: C
406
+ },
407
+ children: [/* @__PURE__ */ h("div", {
408
+ className: "mb-6 text-caption font-medium text-fg tabular",
409
+ children: o
410
+ }), /* @__PURE__ */ h("div", {
411
+ className: "flex flex-col gap-4",
412
+ children: s.map((e) => /* @__PURE__ */ g("div", {
413
+ className: "flex items-center gap-8",
414
+ children: [
415
+ /* @__PURE__ */ h(R, { color: e.color }),
416
+ /* @__PURE__ */ h("span", {
417
+ className: "min-w-0 flex-1 truncate pr-12 text-fg-secondary",
418
+ children: e.label
419
+ }),
420
+ /* @__PURE__ */ h("span", {
421
+ className: "font-medium text-fg tabular",
422
+ children: e.value
423
+ }),
424
+ e.share !== void 0 && /* @__PURE__ */ h("span", {
425
+ className: "w-40 text-right text-fg-tertiary tabular",
426
+ children: e.share
427
+ })
428
+ ]
429
+ }, e.id))
430
+ })]
431
+ });
432
+ });
433
+ process.env.NODE_ENV !== "production" && (X.displayName = "ChartTooltip");
434
+ var Z = {
435
+ grid: {
436
+ stroke: "var(--k-line)",
437
+ strokeDasharray: "3 3",
438
+ strokeWidth: 1
439
+ },
440
+ baseline: {
441
+ stroke: "var(--k-line-strong)",
442
+ strokeWidth: 1
443
+ },
444
+ label: {
445
+ fill: "var(--k-text-tertiary)",
446
+ fontSize: 12,
447
+ fontWeight: 500,
448
+ style: { fontVariantNumeric: "tabular-nums" }
449
+ }
450
+ }, ae = { chrome: { default: { classes: "" } } }, oe = { chrome: "default" };
451
+ function Q(e, t, n, { vertical: r = !1, start: i = n - 1 } = {}) {
452
+ if (n <= 0) return;
453
+ let a = r ? "ArrowUp" : "ArrowLeft", o = r ? "ArrowDown" : "ArrowRight";
454
+ if (e === a) return t === null ? i : Math.max(0, t - 1);
455
+ if (e === o) return t === null ? i : Math.min(n - 1, t + 1);
456
+ if (e === "Home") return 0;
457
+ if (e === "End") return n - 1;
458
+ if (e === "Escape") return t === null ? void 0 : null;
459
+ }
460
+ function se(e, t = {}) {
461
+ let [n, r] = m(null), i = t.start ?? e - 1;
462
+ return {
463
+ index: n !== null && n < e ? n : null,
464
+ props: {
465
+ tabIndex: e > 0 ? 0 : -1,
466
+ onFocus: (e) => {
467
+ if (e.target !== e.currentTarget) return;
468
+ let t = !0;
469
+ try {
470
+ t = e.currentTarget.matches(":focus-visible");
471
+ } catch {}
472
+ t && !document.documentElement.hasAttribute("data-k-pointer") && r(Math.max(0, i));
473
+ },
474
+ onBlur: () => r(null),
475
+ onKeyDown: (a) => {
476
+ let o = Q(a.key, n, e, {
477
+ vertical: !!t.vertical,
478
+ start: i
479
+ });
480
+ o !== void 0 && (a.preventDefault(), o === null && a.stopPropagation(), r(o));
481
+ }
482
+ }
483
+ };
484
+ }
485
+ var $ = /* @__PURE__ */ l(function({ children: e }, t) {
486
+ return /* @__PURE__ */ h("div", {
487
+ ref: t,
488
+ className: "sr-only",
489
+ "aria-live": "polite",
490
+ "aria-atomic": !0,
491
+ children: e
492
+ });
493
+ });
494
+ process.env.NODE_ENV !== "production" && ($.displayName = "ChartLive");
495
+ var ce = (e, t, r = n) => r("chart.liveLine", "{heading}: {values}", {
496
+ heading: String(e),
497
+ values: t.map((e) => r("chart.liveValue", "{label} {value}", {
498
+ label: String(e.label),
499
+ value: String(e.value)
500
+ })).join(r("chart.listSeparator", ", "))
501
+ });
502
+ //#endregion
503
+ export { x as A, ee as C, A as D, se as E, b as M, F as O, z as S, P as T, q as _, oe as a, O as b, R as c, C as d, D as f, ce as g, G as h, X as i, U as j, re as k, te as l, Q as m, I as n, ae as o, J as p, $ as r, Y as s, Z as t, S as u, B as v, ne as w, E as x, k as y };
504
+
505
+ //# sourceMappingURL=core-CmK-8ObW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-CmK-8ObW.js","names":["cn","useUiText","mergeRefs","observeResize","SwapText","Button","Skeleton","Table","edgeColor","soft","color","wholeTicks","values","ticks","VIZ","VIZ_THIN","hash","h","i","s","NEAR","seriesIndex","id","assignSeries","out","ids","used","clash","k","keys","seriesColors","thin","seriesColor","tokenKindColor","tokenKindTint","tokenKindSeries","TOKEN_KIND_ORDER","tokenKindLabel","englishText","kind","useSize","el","setEl","useState","size","setSize","useLayoutEffect","set","ease","t","reducedMotion","mix","to","from","v","tweens","useTweened","key","tween","setTween","current","still","drawn","running","useEffect","start","raf","step","motion","useTweenedScale","any","top","ChartFrame","asTable","setAsTable","failed","state","blank","showTable","table","toTable","toChart","className","label","DataTablePlain","legend","toggle","NUMERIC","end","j","r","caption","sticky","c","Swatch","edge","off","shape","tickLabel","format","readableTicks","n","count","scale","lo","hi","dayNumber","d","m","yearOfDay","yearStarts","days","dates","prev","WIDE","labelWidth","em","ch","AXIS","LABEL_GAP","placeTimeLabels","placed","width","anchor","right","x","left","clear","a","b","kept","l","axisLabelIndexes","labels","fits","edges","room","every","starts","stride","score","p","best","Legend","onToggle","items","hidden","it","onHover","ChartTooltip","useRef","root","useMemo","ref","own","setOwn","node","next","heading","rows","visible","flip","wanted","xLeft","y","KAESO_CHARTS_VARIANTS","KAESO_CHARTS_DEFAULT_VARIANTS","chartKeyIndex","back","vertical","forward","index","useChartKeys","setIndex","options","keyboard","e","ChartLive","liveLine"],"sources":["../../src/components/charts/marks.ts","../../src/components/charts/core.tsx"],"sourcesContent":["export function edgeColor(color: string): string | undefined {\n const soft = /^var\\(--k-viz-(\\d)-soft\\)$/.exec(color);\n return soft ? `var(--k-viz-${soft[1]})` : undefined;\n}\n","import type * as React from \"react\";\nimport { forwardRef, useEffect, useLayoutEffect, useMemo, useRef, useState, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { observeResize } from \"../../utils/observe-resize.js\";\nimport { mergeRefs } from \"../../utils/merge-refs.js\";\nimport { motion, tokenKindSeries, tokenKindTint } from \"@logicplanes/kaeso-tokens\";\nimport { Skeleton } from \"../skeleton/skeleton.js\";\nimport { Button } from \"../button/button.js\";\nimport { SwapText } from \"../swap-text/swap-text.js\";\nimport { Table } from \"../table/table.js\";\nimport { edgeColor } from \"./marks.js\";\nimport { englishText, useUiText, type UiText } from \"../../i18n/context.js\";\n\nexport function wholeTicks(ticks: number[], values: number[]): number[] {\n return values.every(Number.isInteger) ? ticks.filter(Number.isInteger) : ticks;\n}\nexport const VIZ = [\n \"var(--k-viz-1)\",\n \"var(--k-viz-2)\",\n \"var(--k-viz-3)\",\n \"var(--k-viz-4)\",\n \"var(--k-viz-5)\",\n \"var(--k-viz-6)\",\n \"var(--k-viz-7)\",\n \"var(--k-viz-8)\",\n] as const;\nexport const VIZ_THIN = [\n \"var(--k-viz-thin-1)\",\n \"var(--k-viz-thin-2)\",\n \"var(--k-viz-thin-3)\",\n \"var(--k-viz-thin-4)\",\n \"var(--k-viz-thin-5)\",\n \"var(--k-viz-thin-6)\",\n \"var(--k-viz-thin-7)\",\n \"var(--k-viz-thin-8)\",\n] as const;\n\nfunction hash(s: string) {\n let h = 2166136261;\n for (let i = 0; i < s.length; i++) h = Math.imul(h ^ s.charCodeAt(i), 16777619);\n return Math.abs(h);\n}\nconst NEAR: Record<number, number> = { 1: 6, 6: 1, 2: 5, 5: 2, 3: 7, 7: 3 };\n\nexport function seriesIndex(id: string): number {\n return hash(id) % VIZ.length;\n}\n\nexport function assignSeries(ids: string[]): Map<string, number> {\n const out = new Map<string, number>();\n if (new Set(ids).size === 1) return new Map([[ids[0]!, 0]]);\n const used = new Set<number>();\n const clash = (k: number) => used.has(k) || (NEAR[k] !== undefined && used.has(NEAR[k]!));\n for (const id of ids) {\n if (out.has(id)) continue;\n let i = seriesIndex(id);\n if (clash(i)) {\n const keys = [...VIZ.keys()];\n i = keys.find((k) => !clash(k)) ?? keys.find((k) => !used.has(k)) ?? i;\n }\n used.add(i);\n out.set(id, i);\n }\n return out;\n}\n\nexport function seriesColors(ids: string[], thin = false): Map<string, string> {\n return new Map([...assignSeries(ids)].map(([id, i]) => [id, (thin ? VIZ_THIN : VIZ)[i]!]));\n}\n\nexport const seriesColor = (id: string, thin = false) => (thin ? VIZ_THIN : VIZ)[seriesIndex(id)]!;\n\nexport type TokenKind = keyof typeof tokenKindSeries;\nexport const tokenKindColor = (k: TokenKind, thin = false) => {\n if (tokenKindTint[k]) return \"var(--k-viz-1-soft)\";\n return (thin ? VIZ_THIN : VIZ)[tokenKindSeries[k] - 1]!;\n};\nexport const TOKEN_KIND_ORDER: TokenKind[] = [\"input\", \"cacheRead\", \"cacheWrite\", \"output\", \"reasoning\"];\nexport function tokenKindLabel(kind: TokenKind, t: UiText = englishText): string {\n switch (kind) {\n case \"input\":\n return t(\"tokenKind.input\", \"Input\");\n case \"output\":\n return t(\"tokenKind.output\", \"Output\");\n case \"cacheRead\":\n return t(\"tokenKind.cacheRead\", \"Cache read\");\n case \"cacheWrite\":\n return t(\"tokenKind.cacheWrite\", \"Cache write\");\n case \"reasoning\":\n return t(\"tokenKind.reasoning\", \"Reasoning\");\n }\n}\n\nexport function useSize<T extends HTMLElement>(): [(el: T | null) => void, { width: number; height: number }] {\n const [el, setEl] = useState<T | null>(null);\n const [size, setSize] = useState({ width: 0, height: 0 });\n useLayoutEffect(() => {\n if (!el) return;\n const set = () => setSize({ width: Math.round(el.clientWidth), height: Math.round(el.clientHeight) });\n set();\n return observeResize([el], set);\n }, [el]);\n return [setEl, size];\n}\n\nconst ease = (t: number) => 1 - Math.pow(1 - t, 3);\nconst reducedMotion = () => typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\nconst mix = (from: number[], to: number[], t: number) => (t >= 1 ? to : to.map((v, i) => (from[i] ?? v) + (v - (from[i] ?? v)) * ease(t)));\n\nexport function tweens(from: number[], to: number[]): boolean {\n return from.length === to.length && from.some((v) => v !== 0) && to.some((v) => v !== 0) && from.some((v, i) => v !== to[i]) && !reducedMotion();\n}\n\nexport function useTweened(values: number[], still = false): number[] {\n const key = values.join(\",\");\n const [tween, setTween] = useState({ key, from: values, to: values, t: 1, still });\n let current = tween;\n if (tween.key !== key || tween.still !== still) {\n const drawn = mix(tween.from, tween.to, tween.t);\n const animate = !still && !tween.still && tweens(drawn, values);\n current = animate ? { key, from: drawn, to: values, t: 0, still } : { key, from: values, to: values, t: 1, still };\n setTween(current);\n }\n const running = current.t < 1;\n useEffect(() => {\n if (!running) return;\n const start = performance.now();\n let raf = 0;\n const step = () => {\n const t = Math.max(0, Math.min(1, (performance.now() - start) / motion.duration.chart));\n setTween((s) => (s.key === key ? { ...s, t } : s));\n if (t < 1) raf = requestAnimationFrame(step);\n };\n raf = requestAnimationFrame(step);\n return () => cancelAnimationFrame(raf);\n }, [key, running]);\n return mix(current.from, current.to, current.t);\n}\n\nexport function useTweenedScale(values: number[], top: number, still = false): { values: number[]; top: number } {\n const any = values.some((v) => v !== 0);\n const drawn = useTweened(any ? [...values, top] : values, still);\n return any ? { values: drawn.slice(0, -1), top: drawn[drawn.length - 1] ?? top } : { values: drawn, top };\n}\n\nexport interface ChartState {\n loading?: boolean | undefined;\n error?: ReactNode | undefined;\n onRetry?: (() => void) | undefined;\n empty?: boolean | undefined;\n emptyText?: ReactNode | undefined;\n}\n\nexport interface TableData {\n columns: string[];\n rows: (string | number)[][];\n}\n\nexport interface ChartFrameProps {\n label: string;\n height: number;\n children: ReactNode;\n table?: TableData | undefined;\n legend?: ReactNode | undefined;\n state?: ChartState | undefined;\n className?: string | undefined;\n toggle?: boolean | undefined;\n}\n\nexport const ChartFrame = /* @__PURE__ */ forwardRef<HTMLElement, ChartFrameProps>(function ChartFrame(\n { label, height, children, table, legend, state = {}, className, toggle = true },\n ref,\n) {\n const [asTable, setAsTable] = useState(false);\n const t = useUiText();\n const failed = !!state.error;\n const blank = !!state.empty;\n const showTable = asTable && !!table && !failed && !blank;\n const toTable = t(\"chartFrame.viewAsTable\", \"View as table\");\n const toChart = t(\"chartFrame.viewAsChart\", \"View as chart\");\n return (\n <figure\n ref={ref}\n className={cn(\"@container flex w-full min-w-0 flex-col gap-12\", className)}\n aria-label={label}\n {...(state.loading ? { \"aria-busy\": true } : {})}\n >\n {failed ? (\n <div className=\"flex flex-col items-center justify-center gap-12 px-24 text-center\" style={{ height }}>\n <p role=\"alert\" className=\"text-body text-pretty text-fg-secondary\">\n {state.onRetry\n ? t(\"chartFrame.loadFailed\", \"Couldn't load this chart\")\n : t(\"chartFrame.loadFailedReload\", \"Couldn't load this chart. Reload the page to try again.\")}\n </p>\n {state.onRetry && (\n <Button size=\"sm\" variant=\"secondary\" onClick={state.onRetry}>\n {t(\"chartFrame.tryAgain\", \"Try again\")}\n </Button>\n )}\n </div>\n ) : showTable ? (\n <div style={{ height }}>\n <div\n role=\"region\"\n tabIndex={0}\n aria-label={t(\"chartFrame.tableLabel\", \"{label}, table\", { label })}\n className=\"h-full overflow-auto overscroll-contain scrollbar-quiet focus-ring-inset\"\n >\n <DataTablePlain table={table} sticky />\n </div>\n </div>\n ) : (\n <div className=\"relative\" style={{ height }}>\n {state.loading && state.empty ? (\n <Skeleton className=\"absolute inset-0\" />\n ) : (\n <div className={cn(\"absolute inset-0\", state.loading && \"opacity-40\")}>\n <div className={cn(\"absolute inset-0\", state.loading && \"animate-pulse-quiet\")}>{children}</div>\n </div>\n )}\n {state.empty && !state.loading && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center px-24 text-center text-body text-pretty text-fg-secondary\">\n {state.emptyText ?? t(\"chartFrame.noData\", \"No data for this period\")}\n </div>\n )}\n </div>\n )}\n {!failed && (legend || (toggle && table && !blank)) && (\n <div className=\"flex flex-col gap-8 @chart-legend:flex-row @chart-legend:gap-12\">\n {!showTable && legend && <div className=\"min-w-0 @chart-legend:flex-1\">{legend}</div>}\n {toggle && table && !blank && (\n <button\n type=\"button\"\n onClick={() => setAsTable((v) => !v)}\n className=\"relative ml-auto inline-flex h-28 shrink-0 cursor-pointer items-center self-end rounded-pill px-10 text-small font-medium text-fg-secondary transition-control hover:bg-fill-1 hover:text-fg focus-ring tap-target\"\n >\n <SwapText reserve={[toTable, toChart]}>{showTable ? toChart : toTable}</SwapText>\n </button>\n )}\n </div>\n )}\n {table && !showTable && (\n <div className=\"sr-only\">\n <DataTablePlain table={table} caption={label} />\n </div>\n )}\n </figure>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ChartFrame.displayName = \"ChartFrame\";\n\nconst NUMERIC = /^[^\\p{L}]*\\d[^\\p{L}]*\\p{L}{0,3}$/u;\n\nfunction DataTablePlain({ table, caption, sticky }: { table: TableData; caption?: string | undefined; sticky?: boolean | undefined }) {\n const end = table.columns.map(\n (_, j) => j > 0 && table.rows.every((r) => typeof r[j] === \"number\" || NUMERIC.test(String(r[j] ?? \"\").trim()) || r[j] === \"–\"),\n );\n return (\n <Table>\n {caption && <caption className=\"sr-only\">{caption}</caption>}\n <Table.Head>\n <Table.Row>\n {table.columns.map((c, i) => (\n <Table.HeaderCell key={c} align={end[i] ? \"end\" : \"start\"} className={cn(sticky && \"sticky top-0 z-10 bg-panel\")}>\n {c}\n </Table.HeaderCell>\n ))}\n </Table.Row>\n </Table.Head>\n <Table.Body>\n {table.rows.map((r, i) => (\n <Table.Row key={i}>\n {r.map((v, j) => (\n <Table.Cell key={j} align={end[j] ? \"end\" : \"start\"}>\n {v}\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n );\n}\n\nexport interface LegendItem {\n id: string;\n label: ReactNode;\n color: string;\n value?: ReactNode | undefined;\n}\n\nexport interface SwatchProps {\n color: string;\n shape?: \"square\" | \"line\" | undefined;\n off?: boolean | undefined;\n}\n\nexport const Swatch = /* @__PURE__ */ forwardRef<HTMLSpanElement, SwatchProps>(function Swatch({ color, shape = \"square\", off }, ref) {\n const edge = edgeColor(color);\n return (\n <span\n ref={ref}\n aria-hidden\n data-off={off ? \"\" : undefined}\n className={cn(\"shrink-0 data-mark transition-control\", shape === \"line\" ? \"h-2 w-12 rounded-pill\" : \"size-10 rounded-bar\")}\n style={\n off\n ? shape === \"line\"\n ? { outline: `1px solid ${edge ?? color}`, outlineOffset: 1 }\n : { boxShadow: `inset 0 0 0 1px ${edge ?? color}` }\n : { background: color, ...(edge && shape === \"square\" ? { boxShadow: `inset 0 0 0 1px ${edge}` } : {}) }\n }\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Swatch.displayName = \"Swatch\";\n\nexport const tickLabel = (format: (v: number) => string) => (v: number) => format(v).replace(/[.,]00(?=\\D*$)/, \"\");\n\nexport function readableTicks(scale: { ticks: (count: number) => number[]; domain: () => number[] }, label: (v: number) => string, count = 4): number[] {\n for (let n = count; n >= 1; n--) {\n const ticks = scale.ticks(n);\n if (new Set(ticks.map(label)).size === ticks.length) return ticks;\n }\n const [lo = 0, hi = 0] = scale.domain();\n return label(lo) === label(hi) ? [lo] : [lo, hi];\n}\n\nexport type AxisDate = Date | string;\n\nfunction dayNumber(d: AxisDate): number {\n if (d instanceof Date) return Number.isNaN(d.getTime()) ? NaN : Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()) / 86_400_000;\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})/.exec(d);\n return m ? Date.UTC(Number(m[1]), Number(m[2]) - 1, Number(m[3])) / 86_400_000 : NaN;\n}\nconst yearOfDay = (n: number) => new Date(n * 86_400_000).getUTCFullYear();\n\nexport function yearStarts(dates: readonly AxisDate[]): number[] {\n const days = dates.map(dayNumber);\n const out: number[] = [];\n days.forEach((d, i) => {\n const prev = i > 0 ? days[i - 1]! : days.length > 1 ? 2 * d - days[1]! : NaN;\n if (Number.isFinite(d) && Number.isFinite(prev) && yearOfDay(d) !== yearOfDay(prev)) out.push(i);\n });\n return out;\n}\n\nconst WIDE = /[\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}\\p{Script=Hangul}\\u3000-\\u303f\\uff00-\\uffef]/u;\n\nexport function labelWidth(label: string): number {\n let em = 0;\n for (const ch of label) em += WIDE.test(ch) ? 1 : /\\p{Lu}/u.test(ch) ? 0.8 : /\\p{Ll}/u.test(ch) ? 0.6 : /\\p{Nd}/u.test(ch) ? 0.66 : /\\s/.test(ch) ? 0.3 : 0.4;\n return em * AXIS.label.fontSize;\n}\n\nconst LABEL_GAP = 8;\n\nexport function placeTimeLabels(\n ticks: { key: number; at: number; label: string }[],\n right: number,\n): { key: number; x: number; anchor: \"start\" | \"middle\" | \"end\"; label: string }[] {\n const placed = ticks.map((t) => {\n const width = labelWidth(t.label);\n const anchor: \"start\" | \"middle\" | \"end\" = t.at - width / 2 < 0 ? \"start\" : t.at + width / 2 > right ? \"end\" : \"middle\";\n const x = anchor === \"start\" ? Math.max(t.at, 0) : t.at;\n const left = anchor === \"start\" ? x : anchor === \"end\" ? x - width : x - width / 2;\n return { key: t.key, x, anchor, label: t.label, left, right: left + width };\n });\n const clear = (a: { right: number } | undefined, b: { left: number } | undefined) => !a || !b || a.right + LABEL_GAP <= b.left;\n if (placed.length > 2 && !clear(placed[0], placed[1])) placed.splice(1, 1);\n if (placed.length > 2 && !clear(placed[placed.length - 2], placed[placed.length - 1])) placed.splice(placed.length - 2, 1);\n const kept: typeof placed = [];\n for (const l of placed) if (clear(kept[kept.length - 1], l)) kept.push(l);\n return kept.map(({ key, x, anchor, label }) => ({ key, x, anchor, label }));\n}\n\nexport function axisLabelIndexes(\n labels: string[],\n step: number,\n edges: { start: number; end: number } = { start: Infinity, end: Infinity },\n dates?: readonly AxisDate[] | undefined,\n): number[] {\n const n = labels.length;\n if (n === 0) return [];\n const fits = (i: number) => labelWidth(labels[i]!) / 2 <= Math.min(edges.start + i * step, edges.end + (n - 1 - i) * step) + 1e-6;\n const room = Math.max(48, Math.max(...labels.map(labelWidth)) + 16);\n const every = step > 0 ? Math.max(1, Math.ceil(room / step - 1e-6)) : n;\n const starts = dates && dates.length === n ? yearStarts(dates) : [];\n let stride = every;\n for (let s = every; every > 1 && s <= every * 2; s++) {\n if (starts.every((i) => (i - starts[0]!) % s === 0)) {\n stride = s;\n break;\n }\n }\n const score = (p: number) => [\n starts.filter((i) => i % stride === p && fits(i)).length,\n (n - 1) % stride === p && fits(n - 1) ? 1 : 0,\n p === 0 && fits(0) ? 1 : 0,\n n - 1 - ((n - 1 - p) % stride),\n ];\n let best = 0;\n for (let p = 1; p < Math.min(stride, n); p++) {\n const a = score(p);\n const b = score(best);\n const k = a.findIndex((v, j) => v !== b[j]);\n if (k >= 0 && a[k]! > b[k]!) best = p;\n }\n const out: number[] = [];\n for (let i = best; i < n; i += stride) if (fits(i)) out.push(i);\n return out;\n}\n\nexport interface LegendProps {\n items: LegendItem[];\n hidden?: Set<string> | undefined;\n onToggle?: ((id: string) => void) | undefined;\n onHover?: ((id: string | null) => void) | undefined;\n shape?: \"square\" | \"line\" | undefined;\n}\n\nexport const Legend = /* @__PURE__ */ forwardRef<HTMLUListElement, LegendProps>(function Legend({ items, hidden, onToggle, onHover, shape = \"square\" }, ref) {\n const t = useUiText();\n return (\n <ul ref={ref} className={cn(\"flex flex-wrap items-center\", onToggle ? \"gap-4\" : \"gap-x-16 gap-y-4\")} aria-label={t(\"chartLegend.label\", \"Legend\")}>\n {items.map((it) => {\n const off = hidden?.has(it.id);\n const Comp = onToggle ? \"button\" : \"span\";\n return (\n <li key={it.id}>\n <Comp\n {...(onToggle ? { type: \"button\" as const, \"aria-pressed\": !off, onClick: () => onToggle(it.id) } : {})}\n onMouseEnter={() => onHover?.(it.id)}\n onMouseLeave={() => onHover?.(null)}\n onFocus={() => onHover?.(it.id)}\n onBlur={() => onHover?.(null)}\n className={cn(\n \"inline-flex h-28 items-center gap-8 text-small font-medium transition-control\",\n onToggle && \"relative cursor-pointer rounded-pill px-10 hover:bg-fill-1 focus-ring tap-target\",\n off ? \"text-fg-tertiary\" : \"text-fg\",\n )}\n >\n <Swatch color={it.color} shape={shape} off={off} />\n {it.label}\n {it.value !== undefined && <span className=\"text-fg-secondary tabular\">{it.value}</span>}\n </Comp>\n </li>\n );\n })}\n </ul>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Legend.displayName = \"Legend\";\n\nexport interface TooltipRow {\n id: string;\n label: ReactNode;\n color: string;\n value: ReactNode;\n share?: ReactNode | undefined;\n}\n\nexport interface ChartTooltipProps {\n x: number;\n xLeft?: number | undefined;\n y: number;\n width: number;\n heading: ReactNode;\n rows: TooltipRow[];\n visible: boolean;\n}\n\nexport const ChartTooltip = /* @__PURE__ */ forwardRef<HTMLDivElement, ChartTooltipProps>(function ChartTooltip({ x, xLeft = x, y, width, heading, rows, visible }, ref) {\n const el = useRef<HTMLDivElement | null>(null);\n const root = useMemo(() => mergeRefs(el, ref), [ref]);\n const [own, setOwn] = useState({ w: 0, h: 0, room: Infinity });\n useLayoutEffect(() => {\n const node = el.current;\n const next = { w: node?.offsetWidth ?? 0, h: node?.offsetHeight ?? 0, room: (node?.offsetParent as HTMLElement | null)?.clientHeight ?? Infinity };\n if (next.w !== own.w || next.h !== own.h || next.room !== own.room) setOwn(next);\n }, [own, heading, rows, visible]);\n const flip = x > width / 2;\n const wanted = flip ? xLeft - 16 - own.w : x + 16;\n const left = own.w ? Math.round(Math.max(0, Math.min(wanted, width - own.w))) : undefined;\n const top = Math.round(Math.max(0, Math.min(y - 24, own.room - own.h)));\n return (\n <div\n ref={root}\n role=\"presentation\"\n aria-hidden\n className={cn(\n \"pointer-events-none absolute z-10 w-max min-w-160 max-w-360 rounded-tooltip bg-raised p-10 text-small shadow-raised opacity-motion @chart-legend:min-w-200\",\n visible && own.w ? \"opacity-100\" : \"opacity-0\",\n )}\n style={{\n ...(left !== undefined ? { left } : flip ? { right: Math.round(width - xLeft + 16) } : { left: Math.round(x + 16) }),\n top,\n }}\n >\n <div className=\"mb-6 text-caption font-medium text-fg tabular\">{heading}</div>\n <div className=\"flex flex-col gap-4\">\n {rows.map((r) => (\n <div key={r.id} className=\"flex items-center gap-8\">\n <Swatch color={r.color} />\n <span className=\"min-w-0 flex-1 truncate pr-12 text-fg-secondary\">{r.label}</span>\n <span className=\"font-medium text-fg tabular\">{r.value}</span>\n {r.share !== undefined && <span className=\"w-40 text-right text-fg-tertiary tabular\">{r.share}</span>}\n </div>\n ))}\n </div>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ChartTooltip.displayName = \"ChartTooltip\";\n\nexport const AXIS = {\n grid: { stroke: \"var(--k-line)\", strokeDasharray: \"3 3\", strokeWidth: 1 },\n baseline: { stroke: \"var(--k-line-strong)\", strokeWidth: 1 },\n label: { fill: \"var(--k-text-tertiary)\", fontSize: 12, fontWeight: 500, style: { fontVariantNumeric: \"tabular-nums\" as const } },\n};\n\nexport const KAESO_CHARTS_VARIANTS = {\n chrome: { default: { classes: \"\" } },\n} as const;\nexport const KAESO_CHARTS_DEFAULT_VARIANTS = { chrome: \"default\" } as const;\n\nexport function chartKeyIndex(\n key: string,\n index: number | null,\n count: number,\n { vertical = false, start = count - 1 }: { vertical?: boolean | undefined; start?: number | undefined } = {},\n): number | null | undefined {\n if (count <= 0) return undefined;\n const back = vertical ? \"ArrowUp\" : \"ArrowLeft\";\n const forward = vertical ? \"ArrowDown\" : \"ArrowRight\";\n if (key === back) return index === null ? start : Math.max(0, index - 1);\n if (key === forward) return index === null ? start : Math.min(count - 1, index + 1);\n if (key === \"Home\") return 0;\n if (key === \"End\") return count - 1;\n if (key === \"Escape\") return index === null ? undefined : null;\n return undefined;\n}\n\nexport function useChartKeys(count: number, options: { vertical?: boolean | undefined; start?: number | undefined } = {}) {\n const [index, setIndex] = useState<number | null>(null);\n const start = options.start ?? count - 1;\n const props = {\n tabIndex: count > 0 ? 0 : -1,\n onFocus: (e: React.FocusEvent<HTMLElement>) => {\n if (e.target !== e.currentTarget) return;\n let keyboard = true;\n try {\n keyboard = e.currentTarget.matches(\":focus-visible\");\n } catch {}\n if (keyboard && !document.documentElement.hasAttribute(\"data-k-pointer\")) setIndex(Math.max(0, start));\n },\n onBlur: () => setIndex(null),\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => {\n const next = chartKeyIndex(e.key, index, count, { vertical: !!options.vertical, start });\n if (next === undefined) return;\n e.preventDefault();\n if (next === null) e.stopPropagation();\n setIndex(next);\n },\n };\n return { index: index !== null && index < count ? index : null, props };\n}\n\nexport interface ChartLiveProps {\n children?: ReactNode | undefined;\n}\n\nexport const ChartLive = /* @__PURE__ */ forwardRef<HTMLDivElement, ChartLiveProps>(function ChartLive({ children }, ref) {\n return (\n <div ref={ref} className=\"sr-only\" aria-live=\"polite\" aria-atomic>\n {children}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ChartLive.displayName = \"ChartLive\";\n\nexport const liveLine = (heading: ReactNode, rows: { label: ReactNode; value: ReactNode }[], t: UiText = englishText) =>\n t(\"chart.liveLine\", \"{heading}: {values}\", {\n heading: String(heading),\n values: rows.map((r) => t(\"chart.liveValue\", \"{label} {value}\", { label: String(r.label), value: String(r.value) })).join(t(\"chart.listSeparator\", \", \")),\n });\n"],"mappings":"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"}