@logicplanes/kaeso-ui 0.2.1 → 0.3.0

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 (356) hide show
  1. package/AGENTS.md +2 -0
  2. package/NOTICE.md +1 -1
  3. package/ai/component-guides.md +249 -24
  4. package/ai/component-registry.json +1044 -67
  5. package/ai/component-registry.md +238 -50
  6. package/ai/icons.md +1 -1
  7. package/ai/tokens.md +7 -3
  8. package/dist/blocks/delete-resource.js +1 -1
  9. package/dist/blocks/pages.js +5 -5
  10. package/dist/blocks/resource-list.js +4 -4
  11. package/dist/chunks/app-frame-B9vrgwaE.js +220 -0
  12. package/dist/chunks/app-frame-B9vrgwaE.js.map +1 -0
  13. package/dist/chunks/{avatar-D2nJNbtC.js → avatar-DOzOhYJr.js} +2 -2
  14. package/dist/chunks/{avatar-D2nJNbtC.js.map → avatar-DOzOhYJr.js.map} +1 -1
  15. package/dist/chunks/{badge-Dkyhs0_j.js → badge-wUHlj7m3.js} +2 -2
  16. package/dist/chunks/{badge-Dkyhs0_j.js.map → badge-wUHlj7m3.js.map} +1 -1
  17. package/dist/chunks/{banner-DxGBPQ7p.js → banner-BBlNFHd-.js} +4 -4
  18. package/dist/chunks/{banner-DxGBPQ7p.js.map → banner-BBlNFHd-.js.map} +1 -1
  19. package/dist/chunks/{button-DQvoOxVQ.js → button-CAPyW-v8.js} +8 -8
  20. package/dist/chunks/{button-DQvoOxVQ.js.map → button-CAPyW-v8.js.map} +1 -1
  21. package/dist/chunks/{calendar-CN3YJi2k.js → calendar-CBeptQFq.js} +2 -2
  22. package/dist/chunks/{calendar-CN3YJi2k.js.map → calendar-CBeptQFq.js.map} +1 -1
  23. package/dist/chunks/{checkbox-BgRdbfCE.js → checkbox-C5yvSS7O.js} +3 -3
  24. package/dist/chunks/{checkbox-BgRdbfCE.js.map → checkbox-C5yvSS7O.js.map} +1 -1
  25. package/dist/chunks/{cn-CidVUKMm.js → cn-DUDmdLpZ.js} +3 -1
  26. package/dist/chunks/cn-DUDmdLpZ.js.map +1 -0
  27. package/dist/chunks/{code-BADhvsgC.js → code-C49NzHUQ.js} +2 -2
  28. package/dist/chunks/{code-BADhvsgC.js.map → code-C49NzHUQ.js.map} +1 -1
  29. package/dist/chunks/{code-block-DxtladFW.js → code-block-DREsvJ-g.js} +24 -21
  30. package/dist/chunks/code-block-DREsvJ-g.js.map +1 -0
  31. package/dist/chunks/{collapsible-Cw_1aem5.js → collapsible-CDQq1Y9x.js} +6 -6
  32. package/dist/chunks/collapsible-CDQq1Y9x.js.map +1 -0
  33. package/dist/chunks/combobox-DqtzsAKG.js +314 -0
  34. package/dist/chunks/combobox-DqtzsAKG.js.map +1 -0
  35. package/dist/chunks/command-list-D5k0uvkR.js +417 -0
  36. package/dist/chunks/command-list-D5k0uvkR.js.map +1 -0
  37. package/dist/chunks/{copy-button-DXxn-YYZ.js → copy-button-CNpEnS04.js} +6 -6
  38. package/dist/chunks/{copy-button-DXxn-YYZ.js.map → copy-button-CNpEnS04.js.map} +1 -1
  39. package/dist/chunks/{core-K960A4OT.js → core-CqLWVMDI.js} +36 -36
  40. package/dist/chunks/core-CqLWVMDI.js.map +1 -0
  41. package/dist/chunks/{date-popup-B-6xhb-1.js → date-popup-BgDz6SUj.js} +4 -4
  42. package/dist/chunks/{date-popup-B-6xhb-1.js.map → date-popup-BgDz6SUj.js.map} +1 -1
  43. package/dist/chunks/{de-CTAo4KL7.js → de-CkXZKaBD.js} +37 -5
  44. package/dist/chunks/de-CkXZKaBD.js.map +1 -0
  45. package/dist/chunks/dialog-truWH0qe.js +353 -0
  46. package/dist/chunks/dialog-truWH0qe.js.map +1 -0
  47. package/dist/chunks/{empty-DIbBpytW.js → empty-YXmSkKzR.js} +2 -2
  48. package/dist/chunks/{empty-DIbBpytW.js.map → empty-YXmSkKzR.js.map} +1 -1
  49. package/dist/chunks/{field-d8V94bvZ.js → field-BZriODU7.js} +3 -3
  50. package/dist/chunks/field-BZriODU7.js.map +1 -0
  51. package/dist/chunks/{icon-CeNQtobn.js → icon-BqujXDUc.js} +2 -2
  52. package/dist/chunks/{icon-CeNQtobn.js.map → icon-BqujXDUc.js.map} +1 -1
  53. package/dist/chunks/{icon-button-_x1RUphC.js → icon-button-D4O4puwH.js} +3 -3
  54. package/dist/chunks/{icon-button-_x1RUphC.js.map → icon-button-D4O4puwH.js.map} +1 -1
  55. package/dist/chunks/identity-CsZvAUwu.js +361 -0
  56. package/dist/chunks/identity-CsZvAUwu.js.map +1 -0
  57. package/dist/chunks/{input-CNTfI6YE.js → input-B0wtkcNh.js} +5 -5
  58. package/dist/chunks/{input-CNTfI6YE.js.map → input-B0wtkcNh.js.map} +1 -1
  59. package/dist/chunks/{input-group-CYA1MEoZ.js → input-group-BQLw06B0.js} +33 -27
  60. package/dist/chunks/input-group-BQLw06B0.js.map +1 -0
  61. package/dist/chunks/{inset-BLMdxX4I.js → inset-BnBj8NJV.js} +12 -2
  62. package/dist/chunks/inset-BnBj8NJV.js.map +1 -0
  63. package/dist/chunks/{iso-field-1qmg7TP8.js → iso-field-BUXgY1dB.js} +5 -3
  64. package/dist/chunks/{iso-field-1qmg7TP8.js.map → iso-field-BUXgY1dB.js.map} +1 -1
  65. package/dist/chunks/{json-view-B6KHIWzh.js → json-view-BkG2hTXV.js} +11 -10
  66. package/dist/chunks/{json-view-B6KHIWzh.js.map → json-view-BkG2hTXV.js.map} +1 -1
  67. package/dist/chunks/{kbd-CBcBDvqU.js → kbd-DqWmbr_e.js} +2 -2
  68. package/dist/chunks/{kbd-CBcBDvqU.js.map → kbd-DqWmbr_e.js.map} +1 -1
  69. package/dist/chunks/{link-vz9aV8WX.js → link-YMcxM-BZ.js} +4 -4
  70. package/dist/chunks/{link-vz9aV8WX.js.map → link-YMcxM-BZ.js.map} +1 -1
  71. package/dist/chunks/{link-provider---9JdxTg.js → link-provider-BsUxhZKG.js} +2 -2
  72. package/dist/chunks/{link-provider---9JdxTg.js.map → link-provider-BsUxhZKG.js.map} +1 -1
  73. package/dist/chunks/list-wXZIZo_s.js +492 -0
  74. package/dist/chunks/list-wXZIZo_s.js.map +1 -0
  75. package/dist/chunks/{loader-CUehxvSZ.js → loader-ENBh2Fbt.js} +2 -2
  76. package/dist/chunks/{loader-CUehxvSZ.js.map → loader-ENBh2Fbt.js.map} +1 -1
  77. package/dist/chunks/{markdown-5NyaHHfN.js → markdown-DWyxjsSY.js} +10 -10
  78. package/dist/chunks/{markdown-5NyaHHfN.js.map → markdown-DWyxjsSY.js.map} +1 -1
  79. package/dist/chunks/{menu-DyVPwgfF.js → menu-Bnfi9P3t.js} +7 -7
  80. package/dist/chunks/{menu-DyVPwgfF.js.map → menu-Bnfi9P3t.js.map} +1 -1
  81. package/dist/chunks/{meter-DWhyzFGQ.js → meter-DhTnem4k.js} +2 -2
  82. package/dist/chunks/{meter-DWhyzFGQ.js.map → meter-DhTnem4k.js.map} +1 -1
  83. package/dist/chunks/nav-sheet-QqNRHo-y.js +60 -0
  84. package/dist/chunks/nav-sheet-QqNRHo-y.js.map +1 -0
  85. package/dist/chunks/{nav-wordmark-DLkItdvo.js → nav-wordmark-DmbT1Aiw.js} +2 -2
  86. package/dist/chunks/{nav-wordmark-DLkItdvo.js.map → nav-wordmark-DmbT1Aiw.js.map} +1 -1
  87. package/dist/chunks/option-checkbox-Df7WhGn4.js +25 -0
  88. package/dist/chunks/option-checkbox-Df7WhGn4.js.map +1 -0
  89. package/dist/chunks/over-sheet-B8vzr_zU.js +8 -0
  90. package/dist/chunks/over-sheet-B8vzr_zU.js.map +1 -0
  91. package/dist/chunks/{page-header-CEPZzhRp.js → page-header-Ccnrspbp.js} +5 -5
  92. package/dist/chunks/{page-header-CEPZzhRp.js.map → page-header-Ccnrspbp.js.map} +1 -1
  93. package/dist/chunks/{pagination-CCMxQ5pH.js → pagination-CEmWZNjp.js} +5 -4
  94. package/dist/chunks/{pagination-CCMxQ5pH.js.map → pagination-CEmWZNjp.js.map} +1 -1
  95. package/dist/chunks/picker-popover-C4ElNk7t.js +102 -0
  96. package/dist/chunks/picker-popover-C4ElNk7t.js.map +1 -0
  97. package/dist/chunks/{popover-BE7VO-a4.js → popover-bjxg020P.js} +3 -3
  98. package/dist/chunks/{popover-BE7VO-a4.js.map → popover-bjxg020P.js.map} +1 -1
  99. package/dist/chunks/{radio-CUxbLCvD.js → radio-DwYcXAzv.js} +2 -2
  100. package/dist/chunks/{radio-CUxbLCvD.js.map → radio-DwYcXAzv.js.map} +1 -1
  101. package/dist/chunks/range-popup-CG9Jo5B7.js +128 -0
  102. package/dist/chunks/range-popup-CG9Jo5B7.js.map +1 -0
  103. package/dist/chunks/release-art-Chd8l9Rf.js +555 -0
  104. package/dist/chunks/release-art-Chd8l9Rf.js.map +1 -0
  105. package/dist/chunks/{resize-motion-CMaidkwe.js → resize-motion-BWGMchyP.js} +27 -23
  106. package/dist/chunks/resize-motion-BWGMchyP.js.map +1 -0
  107. package/dist/chunks/{rights-BbiJ0AJB.js → rights-hMoaFasn.js} +12 -12
  108. package/dist/chunks/rights-hMoaFasn.js.map +1 -0
  109. package/dist/chunks/{section-DzOLLN1p.js → section-BsET7Fo-.js} +4 -4
  110. package/dist/chunks/{section-DzOLLN1p.js.map → section-BsET7Fo-.js.map} +1 -1
  111. package/dist/chunks/{segmented-MrinfDL8.js → segmented-DXKVF-nY.js} +4 -4
  112. package/dist/chunks/{segmented-MrinfDL8.js.map → segmented-DXKVF-nY.js.map} +1 -1
  113. package/dist/chunks/{select-Bc4kRiSG.js → select-Bbv2f5F8.js} +63 -80
  114. package/dist/chunks/select-Bbv2f5F8.js.map +1 -0
  115. package/dist/chunks/{separator-D5AzVFTS.js → separator-CpAUELNs.js} +2 -2
  116. package/dist/chunks/{separator-D5AzVFTS.js.map → separator-CpAUELNs.js.map} +1 -1
  117. package/dist/chunks/{sidebar-5IA18LuP.js → sidebar-Dey1ZfGt.js} +54 -51
  118. package/dist/chunks/sidebar-Dey1ZfGt.js.map +1 -0
  119. package/dist/chunks/{sidebar-menu-DRWRxcJ3.js → sidebar-menu-ct8IiL4z.js} +2 -2
  120. package/dist/chunks/{sidebar-menu-DRWRxcJ3.js.map → sidebar-menu-ct8IiL4z.js.map} +1 -1
  121. package/dist/chunks/{skeleton-kfuqdl1a.js → skeleton-BM797MAg.js} +2 -2
  122. package/dist/chunks/{skeleton-kfuqdl1a.js.map → skeleton-BM797MAg.js.map} +1 -1
  123. package/dist/chunks/{slider-DbhjJ3ML.js → slider-Ds-tqY-1.js} +2 -2
  124. package/dist/chunks/{slider-DbhjJ3ML.js.map → slider-Ds-tqY-1.js.map} +1 -1
  125. package/dist/chunks/status-dot-BqVOlShY.js +29 -0
  126. package/dist/chunks/status-dot-BqVOlShY.js.map +1 -0
  127. package/dist/chunks/{styles-Btvg2DCf.js → styles-CVJU9t9v.js} +2 -2
  128. package/dist/chunks/{styles-Btvg2DCf.js.map → styles-CVJU9t9v.js.map} +1 -1
  129. package/dist/chunks/{swap-text-BhPI8DOf.js → swap-text-Cica0pUr.js} +2 -2
  130. package/dist/chunks/{swap-text-BhPI8DOf.js.map → swap-text-Cica0pUr.js.map} +1 -1
  131. package/dist/chunks/{switch-XMY_CQE-.js → switch-CSKMEomo.js} +3 -3
  132. package/dist/chunks/{switch-XMY_CQE-.js.map → switch-CSKMEomo.js.map} +1 -1
  133. package/dist/chunks/{table-DYKa86af.js → table-D-36EM7f.js} +2 -2
  134. package/dist/chunks/{table-DYKa86af.js.map → table-D-36EM7f.js.map} +1 -1
  135. package/dist/chunks/{tag-Dg89uYpV.js → tag-CwDKXVHj.js} +4 -4
  136. package/dist/chunks/{tag-Dg89uYpV.js.map → tag-CwDKXVHj.js.map} +1 -1
  137. package/dist/chunks/{text--5MKh2G4.js → text-Dvvgg5Jt.js} +3 -3
  138. package/dist/chunks/{text--5MKh2G4.js.map → text-Dvvgg5Jt.js.map} +1 -1
  139. package/dist/chunks/{textarea-Cj8iR82R.js → textarea-2d373OyU.js} +35 -31
  140. package/dist/chunks/textarea-2d373OyU.js.map +1 -0
  141. package/dist/chunks/timeseries-LRDAZHV0.js +339 -0
  142. package/dist/chunks/timeseries-LRDAZHV0.js.map +1 -0
  143. package/dist/chunks/{toolbar-Dw3uxpsE.js → toolbar-nVLFWH2i.js} +3 -3
  144. package/dist/chunks/{toolbar-Dw3uxpsE.js.map → toolbar-nVLFWH2i.js.map} +1 -1
  145. package/dist/chunks/{tooltip-DEbCCsru.js → tooltip-S1DmyLVl.js} +4 -4
  146. package/dist/chunks/{tooltip-DEbCCsru.js.map → tooltip-S1DmyLVl.js.map} +1 -1
  147. package/dist/chunks/{tooltip-root-DRd4ciUv.js → tooltip-root-vjylFUqw.js} +4 -4
  148. package/dist/chunks/{tooltip-root-DRd4ciUv.js.map → tooltip-root-vjylFUqw.js.map} +1 -1
  149. package/dist/chunks/{virtual-rows-BZe49bKi.js → virtual-rows-yAMjeAwj.js} +4 -3
  150. package/dist/chunks/virtual-rows-yAMjeAwj.js.map +1 -0
  151. package/dist/chunks/{zh-CN-C7GmVswt.js → zh-CN-CqEA4PCM.js} +37 -5
  152. package/dist/chunks/zh-CN-CqEA4PCM.js.map +1 -0
  153. package/dist/components/app-frame.js +2 -2
  154. package/dist/components/avatar.js +1 -1
  155. package/dist/components/badge.js +1 -1
  156. package/dist/components/banner.js +1 -1
  157. package/dist/components/button-group.js +33 -32
  158. package/dist/components/button-group.js.map +1 -1
  159. package/dist/components/button.js +1 -1
  160. package/dist/components/calendar.js +1 -1
  161. package/dist/components/charts/bar.js +34 -31
  162. package/dist/components/charts/bar.js.map +1 -1
  163. package/dist/components/charts/donut.js +2 -2
  164. package/dist/components/charts/gauge.js +2 -2
  165. package/dist/components/charts/heatmap.js +1 -1
  166. package/dist/components/charts/sankey.js +2 -2
  167. package/dist/components/charts/sparkline.js +1 -1
  168. package/dist/components/charts/timeseries.js +1 -252
  169. package/dist/components/charts.js +3 -3
  170. package/dist/components/checkbox.js +1 -1
  171. package/dist/components/code-block.js +2 -2
  172. package/dist/components/code.js +1 -1
  173. package/dist/components/collapsible.js +1 -1
  174. package/dist/components/combobox.js +1 -1
  175. package/dist/components/command-list.js +4 -0
  176. package/dist/components/command-palette.js +120 -171
  177. package/dist/components/command-palette.js.map +1 -1
  178. package/dist/components/copy-button.js +1 -1
  179. package/dist/components/data-table.js +251 -193
  180. package/dist/components/data-table.js.map +1 -1
  181. package/dist/components/date-picker.js +7 -7
  182. package/dist/components/date-picker.js.map +1 -1
  183. package/dist/components/dialog.js +7 -9
  184. package/dist/components/dialog.js.map +1 -1
  185. package/dist/components/display-options.js +67 -53
  186. package/dist/components/display-options.js.map +1 -1
  187. package/dist/components/empty.js +1 -1
  188. package/dist/components/field.js +1 -1
  189. package/dist/components/filter-chip.js +138 -63
  190. package/dist/components/filter-chip.js.map +1 -1
  191. package/dist/components/filter-row.js +2 -2
  192. package/dist/components/flow.js +2 -2
  193. package/dist/components/heading.js +1 -1
  194. package/dist/components/icon-button.js +1 -1
  195. package/dist/components/icon.js +1 -1
  196. package/dist/components/input.js +56 -54
  197. package/dist/components/input.js.map +1 -1
  198. package/dist/components/kaeso/conversation.js +88 -79
  199. package/dist/components/kaeso/conversation.js.map +1 -1
  200. package/dist/components/kaeso/identity.js +1 -1
  201. package/dist/components/kaeso/moments.js +8 -8
  202. package/dist/components/kaeso/moments.js.map +1 -1
  203. package/dist/components/kaeso/rights.js +1 -1
  204. package/dist/components/kaeso/usage.js +6 -6
  205. package/dist/components/kaeso/usage.js.map +1 -1
  206. package/dist/components/kaeso.js +212 -84
  207. package/dist/components/kaeso.js.map +1 -1
  208. package/dist/components/kbd.js +1 -1
  209. package/dist/components/key-value.js +3 -3
  210. package/dist/components/label.js +1 -1
  211. package/dist/components/layout.js +1 -1
  212. package/dist/components/link.js +1 -1
  213. package/dist/components/list.js +1 -1
  214. package/dist/components/loader.js +2 -2
  215. package/dist/components/logo.js +2 -2
  216. package/dist/components/markdown.js +1 -1
  217. package/dist/components/menu.js +2 -2
  218. package/dist/components/meter.js +1 -1
  219. package/dist/components/page-header.js +1 -1
  220. package/dist/components/pagination.js +1 -1
  221. package/dist/components/playground.js +654 -381
  222. package/dist/components/playground.js.map +1 -1
  223. package/dist/components/popover.js +2 -2
  224. package/dist/components/qr-code.js +1 -1
  225. package/dist/components/radio.js +1 -1
  226. package/dist/components/release-art.js +2 -0
  227. package/dist/components/scroll-area.js +1 -1
  228. package/dist/components/section.js +1 -1
  229. package/dist/components/segmented.js +1 -1
  230. package/dist/components/select.js +1 -1
  231. package/dist/components/separator.js +1 -1
  232. package/dist/components/settings.js +3 -3
  233. package/dist/components/sheet.js +69 -52
  234. package/dist/components/sheet.js.map +1 -1
  235. package/dist/components/sidebar.js +1 -1
  236. package/dist/components/skeleton.js +1 -1
  237. package/dist/components/slider.js +1 -1
  238. package/dist/components/stat.js +88 -74
  239. package/dist/components/stat.js.map +1 -1
  240. package/dist/components/status-dot.js +1 -1
  241. package/dist/components/surface.js +1 -1
  242. package/dist/components/swap-text.js +1 -1
  243. package/dist/components/switch.js +1 -1
  244. package/dist/components/table.js +1 -1
  245. package/dist/components/tabs.js +48 -49
  246. package/dist/components/tabs.js.map +1 -1
  247. package/dist/components/tag.js +1 -1
  248. package/dist/components/text.js +1 -1
  249. package/dist/components/theme-image.js +1 -1
  250. package/dist/components/theme-menu.js +2 -2
  251. package/dist/components/theme-select.js +1 -1
  252. package/dist/components/timeline.js +1 -1
  253. package/dist/components/toast.js +4 -4
  254. package/dist/components/toc.js +1 -1
  255. package/dist/components/toolbar.js +1 -1
  256. package/dist/components/tooltip.js +1 -1
  257. package/dist/components/visually-hidden.js +1 -1
  258. package/dist/format.js +132 -79
  259. package/dist/format.js.map +1 -1
  260. package/dist/i18n-provider.js +1 -1
  261. package/dist/index.js +115 -111
  262. package/dist/kaeso.css +43 -8
  263. package/dist/styles.css +1 -1
  264. package/dist/types/components/charts/bar.d.ts +6 -0
  265. package/dist/types/components/charts/core.d.ts +2 -2
  266. package/dist/types/components/charts/docs.d.ts +7 -0
  267. package/dist/types/components/charts/time-axis.d.ts +5 -0
  268. package/dist/types/components/charts/timeseries.d.ts +9 -0
  269. package/dist/types/components/code-block/highlighter.d.ts +2 -0
  270. package/dist/types/components/combobox/combobox.d.ts +2 -0
  271. package/dist/types/components/combobox/docs.d.ts +2 -4
  272. package/dist/types/components/command-list/command-list.d.ts +84 -0
  273. package/dist/types/components/command-list/docs.d.ts +52 -0
  274. package/dist/types/components/command-list/index.d.ts +3 -0
  275. package/dist/types/components/command-list/match.d.ts +1 -0
  276. package/dist/types/components/command-list/picker-popover.d.ts +44 -0
  277. package/dist/types/components/data-table/data-table.d.ts +3 -2
  278. package/dist/types/components/data-table/docs.d.ts +1 -0
  279. package/dist/types/components/date-picker/docs.d.ts +0 -6
  280. package/dist/types/components/dialog/dialog.d.ts +24 -0
  281. package/dist/types/components/dialog/docs.d.ts +4 -0
  282. package/dist/types/components/display-options/display-options.d.ts +1 -0
  283. package/dist/types/components/filter-chip/docs.d.ts +4 -0
  284. package/dist/types/components/filter-chip/filter-chip.d.ts +7 -0
  285. package/dist/types/components/input/docs.d.ts +2 -12
  286. package/dist/types/components/input/number-input.d.ts +1 -0
  287. package/dist/types/components/input/tag-input.d.ts +1 -0
  288. package/dist/types/components/kaeso/docs.d.ts +34 -0
  289. package/dist/types/components/kaeso/identity.d.ts +10 -1
  290. package/dist/types/components/kaeso/index.d.ts +1 -0
  291. package/dist/types/components/kaeso/provider-marks.d.ts +5 -1
  292. package/dist/types/components/kaeso/provider-picker.d.ts +42 -0
  293. package/dist/types/components/list/docs.d.ts +2 -0
  294. package/dist/types/components/list/list.d.ts +2 -0
  295. package/dist/types/components/menu/styles.d.ts +1 -1
  296. package/dist/types/components/playground/docs.d.ts +32 -0
  297. package/dist/types/components/playground/index.d.ts +1 -0
  298. package/dist/types/components/playground/model-picker.d.ts +39 -4
  299. package/dist/types/components/playground/reasoning.d.ts +29 -0
  300. package/dist/types/components/playground/response-view.d.ts +7 -1
  301. package/dist/types/components/release-art/docs.d.ts +13 -0
  302. package/dist/types/components/release-art/drawing.d.ts +48 -0
  303. package/dist/types/components/release-art/index.d.ts +1 -0
  304. package/dist/types/components/release-art/release-art.d.ts +37 -0
  305. package/dist/types/components/select/docs.d.ts +0 -2
  306. package/dist/types/components/select/option-checkbox.d.ts +1 -0
  307. package/dist/types/components/sidebar/sidebar.d.ts +1 -0
  308. package/dist/types/components/stat/docs.d.ts +1 -0
  309. package/dist/types/components/stat/stat.d.ts +1 -0
  310. package/dist/types/components/status-dot/docs.d.ts +2 -0
  311. package/dist/types/components/status-dot/status-dot.d.ts +2 -0
  312. package/dist/types/format/index.d.ts +8 -0
  313. package/dist/types/index.d.ts +2 -0
  314. package/dist/types/utils/index.d.ts +1 -1
  315. package/dist/types/utils/inset.d.ts +5 -0
  316. package/dist/types/utils/over-sheet.d.ts +1 -0
  317. package/dist/types/utils/restore-focus.d.ts +1 -1
  318. package/dist/utils.js +4 -4
  319. package/foundations/accessibility.md +1 -0
  320. package/foundations/layout.md +45 -0
  321. package/foundations/writing.md +1 -0
  322. package/package.json +2 -2
  323. package/dist/chunks/app-frame-BXh-06HL.js +0 -214
  324. package/dist/chunks/app-frame-BXh-06HL.js.map +0 -1
  325. package/dist/chunks/cn-CidVUKMm.js.map +0 -1
  326. package/dist/chunks/code-block-DxtladFW.js.map +0 -1
  327. package/dist/chunks/collapsible-Cw_1aem5.js.map +0 -1
  328. package/dist/chunks/combobox-D30Wt11R.js +0 -291
  329. package/dist/chunks/combobox-D30Wt11R.js.map +0 -1
  330. package/dist/chunks/core-K960A4OT.js.map +0 -1
  331. package/dist/chunks/de-CTAo4KL7.js.map +0 -1
  332. package/dist/chunks/dialog-LNKgPEsV.js +0 -319
  333. package/dist/chunks/dialog-LNKgPEsV.js.map +0 -1
  334. package/dist/chunks/field-d8V94bvZ.js.map +0 -1
  335. package/dist/chunks/field-press-DwzBFafd.js +0 -10
  336. package/dist/chunks/field-press-DwzBFafd.js.map +0 -1
  337. package/dist/chunks/identity-BtZC_d_Q.js +0 -342
  338. package/dist/chunks/identity-BtZC_d_Q.js.map +0 -1
  339. package/dist/chunks/input-group-CYA1MEoZ.js.map +0 -1
  340. package/dist/chunks/inset-BLMdxX4I.js.map +0 -1
  341. package/dist/chunks/list-CzaiyNja.js +0 -483
  342. package/dist/chunks/list-CzaiyNja.js.map +0 -1
  343. package/dist/chunks/nav-sheet-BIErlV74.js +0 -58
  344. package/dist/chunks/nav-sheet-BIErlV74.js.map +0 -1
  345. package/dist/chunks/range-popup-DGOnGGag.js +0 -111
  346. package/dist/chunks/range-popup-DGOnGGag.js.map +0 -1
  347. package/dist/chunks/resize-motion-CMaidkwe.js.map +0 -1
  348. package/dist/chunks/rights-BbiJ0AJB.js.map +0 -1
  349. package/dist/chunks/select-Bc4kRiSG.js.map +0 -1
  350. package/dist/chunks/sidebar-5IA18LuP.js.map +0 -1
  351. package/dist/chunks/status-dot-CBoQpyL4.js +0 -25
  352. package/dist/chunks/status-dot-CBoQpyL4.js.map +0 -1
  353. package/dist/chunks/textarea-Cj8iR82R.js.map +0 -1
  354. package/dist/chunks/virtual-rows-BZe49bKi.js.map +0 -1
  355. package/dist/chunks/zh-CN-C7GmVswt.js.map +0 -1
  356. package/dist/components/charts/timeseries.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { t as e } from "../../chunks/cn-CidVUKMm.js";
2
+ import { t as e } from "../../chunks/cn-DUDmdLpZ.js";
3
3
  import { i as t } from "../../chunks/context-BELWW79w.js";
4
4
  import { formatNumber as n, formatPercent as r } from "../../format.js";
5
- import { A as i, D as a, E as o, S as s, b as c, g as l, i as u, k as d, n as ee, p as te, r as ne, s as re, t as f, v as ie } from "../../chunks/core-K960A4OT.js";
5
+ import { A as i, D as a, E as o, S as s, b as c, g as l, i as u, k as d, n as ee, p as te, r as ne, s as re, t as f, v as ie } from "../../chunks/core-CqLWVMDI.js";
6
6
  import { t as ae } from "../../chunks/linear-scale-BWKeRqDX.js";
7
7
  import { forwardRef as p, useState as m } from "react";
8
8
  import { Fragment as oe, jsx as h, jsxs as g } from "react/jsx-runtime";
@@ -13,8 +13,8 @@ var v = { layout: {
13
13
  grouped: { classes: "" },
14
14
  stacked: { classes: "" },
15
15
  horizontal: { classes: "" }
16
- } }, y = { layout: "grouped" }, b = /* @__PURE__ */ p(function({ categories: p, series: v, layout: y = "grouped", height: b = 240, formatValue: S = (e) => n(e), highlight: C, axisLabels: w, dates: ce, className: le, "aria-label": T, ...E }, ue) {
17
- let D = t(), [de, O] = a(), [k, A] = m(null), [j, fe] = m(null), M = y === "horizontal", N = y === "stacked", P = v.flatMap((e) => e.values), pe = se(N ? p.map((e, t) => v.reduce((e, n) => e + (n.values[t] ?? 0), 0)) : P) ?? 0, F = ae().domain([0, pe * 1.08 || 1]).nice(4), I = d(P, F.domain()[1] ?? 1, !!E.loading), L = v.map((e, t) => e.values.map((n, r) => I.values[t * e.values.length + r] ?? 0)), me = c(v.map((e) => e.id)), R = (e) => e.color ?? me.get(e.id), z = M ? {
16
+ } }, y = { layout: "grouped" }, b = /* @__PURE__ */ p(function({ categories: p, series: v, layout: y = "grouped", height: b = 240, formatValue: x = (e) => n(e), highlight: S, axisLabels: C, dates: le, shares: ue = !0, partial: w, className: de, "aria-label": T, ...E }, fe) {
17
+ let D = t(), [pe, O] = a(), [k, A] = m(null), [j, me] = m(null), M = y === "horizontal", N = y === "stacked", P = v.flatMap((e) => e.values), he = se(N ? p.map((e, t) => v.reduce((e, n) => e + (n.values[t] ?? 0), 0)) : P) ?? 0, F = ae().domain([0, he * 1.08 || 1]).nice(4), I = d(P, F.domain()[1] ?? 1, !!E.loading), L = v.map((e, t) => e.values.map((n, r) => I.values[t * e.values.length + r] ?? 0)), ge = c(v.map((e) => e.id)), R = (e) => e.color ?? ge.get(e.id), z = M ? {
18
18
  top: 0,
19
19
  right: 56,
20
20
  bottom: 0,
@@ -26,16 +26,19 @@ var v = { layout: {
26
26
  left: 0
27
27
  }, B = Math.max(0, O.width - z.left - z.right), V = Math.max(0, b - z.top - z.bottom), H = p.map((e, t) => L.reduce((e, n) => e + (n[t] ?? 0), 0)), U = _().domain(p).range(M ? [0, V] : [0, B]).paddingInner(.24).paddingOuter(.12);
28
28
  F.range(M ? [0, B] : [V, 0]);
29
- let W = F.copy().domain([0, I.top || 1]), G = (e) => M ? Math.min(B, W(e)) : Math.max(0, W(e)), he = _().domain(v.map((e) => e.id)).range([0, U.bandwidth()]).paddingInner(.12), ge = M ? 20 : N || v.length === 1 ? 40 : 20, K = Math.max(4, Math.min(ge, Math.round(N || M ? U.bandwidth() : he.bandwidth()))), q = N || M ? K : v.length * K + (v.length - 1) * 4, J = s(S), Y = [p[0], p[p.length - 1]].map((e) => e === void 0 ? 0 : (U(e) ?? 0) + U.bandwidth() / 2), _e = new Set(M ? [] : te(p.map((e, t) => w?.[t] ?? e), U.step(), {
30
- start: z.left + Y[0],
31
- end: B - Y[1] + z.right
32
- }, ce)), ve = {
29
+ let W = F.copy().domain([0, I.top || 1]), G = (e) => M ? Math.min(B, W(e)) : Math.max(0, W(e)), _e = _().domain(v.map((e) => e.id)).range([0, U.bandwidth()]).paddingInner(.12), ve = M ? 20 : N || v.length === 1 ? 40 : 20, K = Math.max(4, Math.min(ve, Math.round(N || M ? U.bandwidth() : _e.bandwidth()))), q = N || M ? K : v.length * K + (v.length - 1) * 4, J = s(x), ye = [p[0], p[p.length - 1]].map((e) => e === void 0 ? 0 : (U(e) ?? 0) + U.bandwidth() / 2), be = new Set(M ? [] : te(p.map((e, t) => C?.[t] ?? e), U.step(), {
30
+ start: z.left + ye[0],
31
+ end: B - ye[1] + z.right
32
+ }, le)), xe = p.length - 1, Se = (e) => !!(w?.last || w?.ongoing) && e === xe || !!w?.first && e === 0, Y = (e) => {
33
+ let t = p[e] ?? "";
34
+ return w?.ongoing && e === xe ? D("chart.soFar", "{heading}, so far", { heading: t }) : Se(e) ? D("chart.partial", "{heading}, partial", { heading: t }) : t;
35
+ }, Ce = {
33
36
  columns: [D("barChart.category", "Category"), ...v.map((e) => e.label)],
34
- rows: p.map((e, t) => [e, ...v.map((e) => S(e.values[t] ?? 0))])
35
- }, ye = (E.loading ? F.ticks(4) : i(ie(F, J), P)).filter((e) => e <= (I.top || 1) + 1e-9), X = !!E.loading || !!E.empty || !!E.error, Z = o(X ? 0 : p.length, M ? {
37
+ rows: p.map((e, t) => [Y(t), ...v.map((e) => x(e.values[t] ?? 0))])
38
+ }, we = (E.loading ? F.ticks(4) : i(ie(F, J), P)).filter((e) => e <= (I.top || 1) + 1e-9), X = !!E.loading || !!E.empty || !!E.error, Z = o(X ? 0 : p.length, M ? {
36
39
  vertical: !0,
37
40
  start: 0
38
- } : {}), Q = X ? null : k?.i ?? Z.index ?? (C !== void 0 && C < p.length ? C : null), be = (e) => {
41
+ } : {}), Q = X ? null : k?.i ?? Z.index ?? (S !== void 0 && S < p.length ? S : null), Te = (e) => {
39
42
  let t = Math.round(U(p[e]) ?? 0);
40
43
  if (M) {
41
44
  let n = z.top + Math.round(t + U.bandwidth() / 2 - K / 2 - $), r = n + K + $ * 2, i = e < p.length / 2, a = 40 + v.length * 22;
@@ -50,20 +53,20 @@ var v = { layout: {
50
53
  xLeft: Math.round(r - n / 2) + 8,
51
54
  y: k && k.i === e ? k.y : z.top + Math.round(G(i))
52
55
  };
53
- }, xe = (e) => v.map((t) => ({
56
+ }, Ee = (e) => v.map((t) => ({
54
57
  id: t.id,
55
58
  label: t.label,
56
59
  color: R(t),
57
- value: S(t.values[e] ?? 0),
58
- ...v.length > 1 && H[e] ? { share: r(Math.round((t.values[e] ?? 0) / (H[e] ?? 1) * 100) / 100, 0) } : {}
60
+ value: x(t.values[e] ?? 0),
61
+ ...ue && v.length > 1 && H[e] ? { share: r(Math.round((t.values[e] ?? 0) / (H[e] ?? 1) * 100) / 100, 0) } : {}
59
62
  })), $ = 8;
60
63
  return /* @__PURE__ */ h("div", {
61
- ref: ue,
62
- className: e("min-w-0", le),
64
+ ref: fe,
65
+ className: e("min-w-0", de),
63
66
  children: /* @__PURE__ */ h(ee, {
64
67
  label: T,
65
68
  height: b,
66
- table: ve,
69
+ table: Ce,
67
70
  state: E,
68
71
  legend: v.length > 1 ? /* @__PURE__ */ h(re, {
69
72
  items: v.map((e) => ({
@@ -71,10 +74,10 @@ var v = { layout: {
71
74
  label: e.label,
72
75
  color: R(e)
73
76
  })),
74
- onHover: fe
77
+ onHover: me
75
78
  }) : void 0,
76
79
  children: /* @__PURE__ */ g("div", {
77
- ref: de,
80
+ ref: pe,
78
81
  role: "group",
79
82
  "aria-label": T,
80
83
  ...Z.props,
@@ -88,7 +91,7 @@ var v = { layout: {
88
91
  children: /* @__PURE__ */ g("g", {
89
92
  transform: `translate(${z.left},${z.top})`,
90
93
  children: [
91
- !M && ye.map((e) => /* @__PURE__ */ g("g", {
94
+ !M && we.map((e) => /* @__PURE__ */ g("g", {
92
95
  transform: `translate(0,${Math.round(G(e)) + .5})`,
93
96
  children: [e !== 0 && /* @__PURE__ */ h("line", {
94
97
  x2: B,
@@ -124,7 +127,7 @@ var v = { layout: {
124
127
  (() => {
125
128
  let e = n + U.bandwidth() / 2, r = Math.round(e - q / 2), i = v.map((e, n) => (L[n]?.[t] ?? 0) > 0).lastIndexOf(!0), o = M ? 0 : V;
126
129
  return v.map((n, s) => {
127
- let c = L[s]?.[t] ?? 0, l = j && j !== n.id ? .3 : 1;
130
+ let c = L[s]?.[t] ?? 0, l = (j && j !== n.id ? .3 : 1) * (Se(t) ? .5 : 1);
128
131
  if (M) {
129
132
  let t = N ? Math.round(G(a)) : 0;
130
133
  a += c;
@@ -145,14 +148,14 @@ var v = { layout: {
145
148
  o = e;
146
149
  let u = t - e;
147
150
  return c <= 0 || u <= 0 ? null : /* @__PURE__ */ h("path", {
148
- d: x(r, e, K, u, s === i ? 4 : 0),
151
+ d: ce(r, e, K, u, s === i ? 4 : 0),
149
152
  fill: R(n),
150
153
  opacity: l
151
154
  }, n.id);
152
155
  }
153
156
  let u = Math.round(G(c)), d = Math.max(c > 0 ? 2 : 0, V - u);
154
157
  return /* @__PURE__ */ h("path", {
155
- d: x(r + s * (K + 4), V - d, K, d, 4),
158
+ d: ce(r + s * (K + 4), V - d, K, d, 4),
156
159
  fill: R(n),
157
160
  opacity: l
158
161
  }, n.id);
@@ -189,13 +192,13 @@ var v = { layout: {
189
192
  dy: "0.32em",
190
193
  ...f.label,
191
194
  fill: "var(--k-text-secondary)",
192
- children: S(N ? H[t] ?? 0 : v[0]?.values[t] ?? 0)
193
- })] }) : _e.has(t) && /* @__PURE__ */ h("text", {
195
+ children: x(N ? H[t] ?? 0 : v[0]?.values[t] ?? 0)
196
+ })] }) : be.has(t) && /* @__PURE__ */ h("text", {
194
197
  x: n + U.bandwidth() / 2,
195
198
  y: V + 20,
196
199
  textAnchor: "middle",
197
200
  ...f.label,
198
- children: w?.[t] ?? e
201
+ children: C?.[t] ?? e
199
202
  })
200
203
  ] }, e);
201
204
  }),
@@ -209,20 +212,20 @@ var v = { layout: {
209
212
  })
210
213
  }),
211
214
  Q !== null && O.width > 0 && /* @__PURE__ */ h(u, {
212
- ...be(Q),
215
+ ...Te(Q),
213
216
  width: O.width,
214
217
  visible: !0,
215
- heading: p[Q],
216
- rows: xe(Q)
218
+ heading: Y(Q),
219
+ rows: Ee(Q)
217
220
  }),
218
- /* @__PURE__ */ h(ne, { children: Z.index !== null && !X ? l(p[Z.index], xe(Z.index), D) : null })
221
+ /* @__PURE__ */ h(ne, { children: Z.index !== null && !X ? l(Y(Z.index), Ee(Z.index), D) : null })
219
222
  ]
220
223
  })
221
224
  })
222
225
  });
223
226
  });
224
227
  process.env.NODE_ENV !== "production" && (b.displayName = "BarChart");
225
- function x(e, t, n, r, i) {
228
+ function ce(e, t, n, r, i) {
226
229
  let a = Math.min(i, n / 2, r);
227
230
  return a <= 0 ? `M${e} ${t}h${n}v${r}h${-n}z` : `M${e} ${t + r}V${t + a}Q${e} ${t} ${e + a} ${t}H${e + n - a}Q${e + n} ${t} ${e + n} ${t + a}V${t + r}z`;
228
231
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bar.js","names":["d3max","_Fragment","cn","useUiText","wholeTicks","useSize","useChartKeys","tickLabel","seriesColors","liveLine","ChartTooltip","useTweenedScale","ChartFrame","axisLabelIndexes","ChartLive","Legend","AXIS","readableTicks","scaleLinear","Fragment$1","KAESO_BAR_CHART_VARIANTS","KAESO_BAR_CHART_DEFAULT_VARIANTS","BarChart","formatNumber","v","ariaLabel","state","t","box","size","hover","setHover","useState","focus","setFocus","horizontal","layout","stacked","flat","series","s","dataTop","max","categories","a","ci","axis","tween","vals","si","palette","color","M","w","h","height","totals","band","scaleBand","scale","n","inner","MAX","barW","groupW","axisLabel","formatValue","centers","c","shown","axisLabels","dates","table","ticks","quiet","keys","active","highlight","anchor","b","rowTop","PAD","rowBottom","below","tall","lit","center","tallest","sv","rowsFor","formatPercent","className","gap","acc","start","lastVisible","val","dim","x0","len","y","top","bottom","bh","roundedTop","r","rr","x"],"sources":["../../../src/components/charts/bar.tsx"],"sourcesContent":["import { forwardRef, useState } from \"react\";\nimport { scaleBand } from \"d3-scale\";\nimport { scaleLinear } from \"./linear-scale.js\";\nimport { max as d3max } from \"d3-array\";\nimport { cn } from \"../../utils/cn.js\";\nimport { formatNumber, formatPercent } from \"../../format/index.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport {\n AXIS,\n axisLabelIndexes,\n type AxisDate,\n ChartFrame,\n ChartLive,\n ChartTooltip,\n Legend,\n liveLine,\n seriesColors,\n readableTicks,\n tickLabel,\n useChartKeys,\n useSize,\n useTweenedScale,\n wholeTicks,\n type ChartState,\n} from \"./core.js\";\n\nexport const KAESO_BAR_CHART_VARIANTS = {\n layout: {\n grouped: { classes: \"\" },\n stacked: { classes: \"\" },\n horizontal: { classes: \"\" },\n },\n} as const;\nexport const KAESO_BAR_CHART_DEFAULT_VARIANTS = { layout: \"grouped\" } as const;\n\nexport interface BarSeries {\n id: string;\n label: string;\n values: number[];\n color?: string | undefined;\n}\n\nexport interface BarChartProps extends ChartState {\n categories: string[];\n series: BarSeries[];\n layout?: keyof typeof KAESO_BAR_CHART_VARIANTS.layout | undefined;\n height?: number | undefined;\n formatValue?: ((v: number) => string) | undefined;\n highlight?: number | undefined;\n axisLabels?: string[] | undefined;\n dates?: readonly AxisDate[] | undefined;\n \"aria-label\": string;\n className?: string | undefined;\n}\n\nexport const BarChart = /* @__PURE__ */ forwardRef<HTMLDivElement, BarChartProps>(function BarChart(\n {\n categories,\n series,\n layout = \"grouped\",\n height = 240,\n formatValue = (v) => formatNumber(v),\n highlight,\n axisLabels,\n dates,\n className,\n \"aria-label\": ariaLabel,\n ...state\n },\n ref,\n) {\n const t = useUiText();\n const [box, size] = useSize<HTMLDivElement>();\n const [hover, setHover] = useState<{ i: number; y: number } | null>(null);\n const [focus, setFocus] = useState<string | null>(null);\n const horizontal = layout === \"horizontal\";\n const stacked = layout === \"stacked\";\n const flat = series.flatMap((s) => s.values);\n const dataTop = (stacked ? d3max(categories.map((_, ci) => series.reduce((a, s) => a + (s.values[ci] ?? 0), 0))) : d3max(flat)) ?? 0;\n const axis = scaleLinear()\n .domain([0, dataTop * 1.08 || 1])\n .nice(4);\n const tween = useTweenedScale(flat, axis.domain()[1] ?? 1, !!state.loading);\n const vals = series.map((s, si) => s.values.map((_, ci) => tween.values[si * s.values.length + ci] ?? 0));\n const palette = seriesColors(series.map((s) => s.id));\n const color = (s: BarSeries) => s.color ?? palette.get(s.id)!;\n const M = horizontal ? { top: 0, right: 56, bottom: 0, left: 140 } : { top: 8, right: 52, 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 const totals = categories.map((_, ci) => vals.reduce((a, v) => a + (v[ci] ?? 0), 0));\n const band = scaleBand<string>()\n .domain(categories)\n .range(horizontal ? [0, h] : [0, w])\n .paddingInner(0.24)\n .paddingOuter(0.12);\n axis.range(horizontal ? [0, w] : [h, 0]);\n const scale = axis.copy().domain([0, tween.top || 1]);\n const v = (n: number) => (horizontal ? Math.min(w, scale(n)) : Math.max(0, scale(n)));\n const inner = scaleBand<string>()\n .domain(series.map((s) => s.id))\n .range([0, band.bandwidth()])\n .paddingInner(0.12);\n const MAX = horizontal ? 20 : stacked || series.length === 1 ? 40 : 20;\n const barW = Math.max(4, Math.min(MAX, Math.round(stacked || horizontal ? band.bandwidth() : inner.bandwidth())));\n const groupW = stacked || horizontal ? barW : series.length * barW + (series.length - 1) * 4;\n const axisLabel = tickLabel(formatValue);\n const centers = [categories[0], categories[categories.length - 1]].map((c) => (c === undefined ? 0 : (band(c) ?? 0) + band.bandwidth() / 2));\n const shown = new Set(\n horizontal\n ? []\n : axisLabelIndexes(\n categories.map((c, ci) => axisLabels?.[ci] ?? c),\n band.step(),\n { start: M.left + centers[0]!, end: w - centers[1]! + M.right },\n dates,\n ),\n );\n const GAP = 2;\n const table = {\n columns: [t(\"barChart.category\", \"Category\"), ...series.map((s) => s.label)],\n rows: categories.map((c, ci) => [c, ...series.map((s) => formatValue(s.values[ci] ?? 0))]),\n };\n const ticks = (state.loading ? axis.ticks(4) : wholeTicks(readableTicks(axis, axisLabel), flat)).filter((t) => t <= (tween.top || 1) + 1e-9);\n const quiet = !!state.loading || !!state.empty || !!state.error;\n const keys = useChartKeys(quiet ? 0 : categories.length, horizontal ? { vertical: true, start: 0 } : {});\n const active = quiet ? null : (hover?.i ?? keys.index ?? (highlight !== undefined && highlight < categories.length ? highlight : null));\n const anchor = (ci: number) => {\n const b = Math.round(band(categories[ci]!) ?? 0);\n if (horizontal) {\n const rowTop = M.top + Math.round(b + band.bandwidth() / 2 - barW / 2 - PAD);\n const rowBottom = rowTop + barW + PAD * 2;\n const below = ci < categories.length / 2;\n const tall = 40 + series.length * 22;\n return { x: M.left - 16, y: below ? rowBottom + 24 + 4 : rowTop - tall + 24 - 4 };\n }\n const lit = Math.min(band.bandwidth(), groupW + PAD * 2);\n const center = M.left + b + band.bandwidth() / 2;\n const tallest = stacked ? (totals[ci] ?? 0) : Math.max(0, ...vals.map((sv) => sv[ci] ?? 0));\n return {\n x: Math.round(center + lit / 2) - 8,\n xLeft: Math.round(center - lit / 2) + 8,\n y: hover && hover.i === ci ? hover.y : M.top + Math.round(v(tallest)),\n };\n };\n const rowsFor = (ci: number) =>\n series.map((s) => ({\n id: s.id,\n label: s.label,\n color: color(s),\n value: formatValue(s.values[ci] ?? 0),\n ...(series.length > 1 && totals[ci] ? { share: formatPercent(Math.round(((s.values[ci] ?? 0) / (totals[ci] ?? 1)) * 100) / 100, 0) } : {}),\n }));\n const PAD = 8;\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={state}\n legend={series.length > 1 ? <Legend items={series.map((s) => ({ id: s.id, label: s.label, color: color(s) }))} onHover={setFocus} /> : undefined}\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 <g transform={`translate(${M.left},${M.top})`}>\n {!horizontal &&\n ticks.map((t) => (\n <g key={t} transform={`translate(0,${Math.round(v(t)) + 0.5})`}>\n {t !== 0 && <line x2={w} {...AXIS.grid} />}\n {!state.loading && (\n <text x={w + 12} dy=\"0.32em\" {...AXIS.label}>\n {axisLabel(t)}\n </text>\n )}\n </g>\n ))}\n {categories.map((c, ci) => {\n const b = Math.round(band(c) ?? 0);\n const gap = Math.round((band.step() - band.bandwidth()) / 2);\n const lit = Math.min(band.bandwidth(), groupW + PAD * 2);\n let acc = 0;\n return (\n <g key={c}>\n <rect\n aria-hidden\n className=\"opacity-motion\"\n opacity={active === ci ? 1 : 0}\n fill=\"var(--k-fill-1)\"\n rx={6}\n {...(horizontal\n ? { x: -M.left + PAD, y: Math.round(b + band.bandwidth() / 2 - barW / 2 - PAD), width: size.width - PAD * 2, height: barW + PAD * 2 }\n : { x: Math.round(b + band.bandwidth() / 2 - lit / 2), y: 0, width: lit, height: h })}\n />\n {(() => {\n const center = b + band.bandwidth() / 2;\n const start = Math.round(center - groupW / 2);\n const lastVisible = series.map((_, si) => (vals[si]?.[ci] ?? 0) > 0).lastIndexOf(true);\n let below = horizontal ? 0 : h;\n return series.map((s, si) => {\n const val = vals[si]?.[ci] ?? 0;\n const dim = focus && focus !== s.id ? 0.3 : 1;\n if (horizontal) {\n const x0 = stacked ? Math.round(v(acc)) : 0;\n acc += val;\n const len = Math.max(val > 0 ? 2 : 0, Math.round(v(stacked ? acc : val)) - x0);\n const y = Math.round(center - barW / 2);\n return <rect key={s.id} x={x0} y={y} width={len} height={barW} rx={Math.min(4, barW / 2)} fill={color(s)} opacity={dim} />;\n }\n if (stacked) {\n acc += val;\n const top = Math.round(v(acc));\n const first = below === h;\n const bottom = first ? below : below - GAP;\n below = top;\n const bh = bottom - top;\n if (val <= 0 || bh <= 0) return null;\n return <path key={s.id} d={roundedTop(start, top, barW, bh, si === lastVisible ? 4 : 0)} fill={color(s)} opacity={dim} />;\n }\n const top = Math.round(v(val));\n const bh = Math.max(val > 0 ? 2 : 0, h - top);\n return <path key={s.id} d={roundedTop(start + si * (barW + 4), h - bh, barW, bh, 4)} fill={color(s)} opacity={dim} />;\n });\n })()}\n <rect\n x={horizontal ? -M.left : b - gap}\n y={horizontal ? b - gap : 0}\n width={horizontal ? size.width : band.step()}\n height={horizontal ? band.step() : h}\n fill=\"transparent\"\n onPointerMove={(e) => {\n if (quiet) return;\n const r = (e.currentTarget.ownerSVGElement ?? e.currentTarget).getBoundingClientRect();\n setHover({ i: ci, y: Math.round(e.clientY - r.top) });\n }}\n onPointerLeave={() => setHover(null)}\n />\n {horizontal ? (\n <>\n <text x={-12} y={b + band.bandwidth() / 2} dy=\"0.32em\" textAnchor=\"end\" fill=\"var(--k-text-secondary)\" fontSize={13} fontWeight={500}>\n {c}\n </text>\n <text\n x={Math.round(v(stacked ? (totals[ci] ?? 0) : (vals[0]?.[ci] ?? 0))) + 10}\n y={b + band.bandwidth() / 2}\n dy=\"0.32em\"\n {...AXIS.label}\n fill=\"var(--k-text-secondary)\"\n >\n {formatValue(stacked ? (totals[ci] ?? 0) : (series[0]?.values[ci] ?? 0))}\n </text>\n </>\n ) : (\n shown.has(ci) && (\n <text x={b + band.bandwidth() / 2} y={h + 20} textAnchor=\"middle\" {...AXIS.label}>\n {axisLabels?.[ci] ?? c}\n </text>\n )\n )}\n </g>\n );\n })}\n {!horizontal && <line x2={w} y1={h + 0.5} y2={h + 0.5} {...AXIS.baseline} />}\n </g>\n </svg>\n )}\n {active !== null && size.width > 0 && (\n <ChartTooltip {...anchor(active)} width={size.width} visible heading={categories[active]} rows={rowsFor(active)} />\n )}\n <ChartLive>{keys.index !== null && !quiet ? liveLine(categories[keys.index], rowsFor(keys.index), t) : null}</ChartLive>\n </div>\n </ChartFrame>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") BarChart.displayName = \"BarChart\";\n\nfunction roundedTop(x: number, y: number, w: number, h: number, r: number) {\n const rr = Math.min(r, w / 2, h);\n if (rr <= 0) return `M${x} ${y}h${w}v${h}h${-w}z`;\n return `M${x} ${y + h}V${y + rr}Q${x} ${y} ${x + rr} ${y}H${x + w - rr}Q${x + w} ${y} ${x + w} ${y + rr}V${y + h}z`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"bar.js","names":["d3max","_Fragment","cn","useUiText","wholeTicks","useSize","useChartKeys","tickLabel","seriesColors","liveLine","ChartTooltip","useTweenedScale","ChartFrame","axisLabelIndexes","ChartLive","Legend","AXIS","readableTicks","scaleLinear","Fragment$1","KAESO_BAR_CHART_VARIANTS","KAESO_BAR_CHART_DEFAULT_VARIANTS","BarChart","formatNumber","v","ariaLabel","state","t","box","size","hover","setHover","useState","focus","setFocus","horizontal","layout","stacked","flat","series","s","dataTop","max","categories","a","ci","axis","tween","vals","si","palette","color","M","w","h","height","totals","band","scaleBand","scale","n","inner","MAX","barW","groupW","axisLabel","formatValue","centers","c","shown","axisLabels","dates","lastCategory","isPartial","partial","heading","name","table","ticks","quiet","keys","active","highlight","anchor","b","rowTop","PAD","rowBottom","below","tall","lit","center","tallest","sv","rowsFor","shares","formatPercent","className","gap","acc","start","lastVisible","val","dim","x0","len","y","top","bottom","bh","roundedTop","r","rr","x"],"sources":["../../../src/components/charts/bar.tsx"],"sourcesContent":["import { forwardRef, useState } from \"react\";\nimport { scaleBand } from \"d3-scale\";\nimport { scaleLinear } from \"./linear-scale.js\";\nimport { max as d3max } from \"d3-array\";\nimport { cn } from \"../../utils/cn.js\";\nimport { formatNumber, formatPercent } from \"../../format/index.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport {\n AXIS,\n axisLabelIndexes,\n type AxisDate,\n ChartFrame,\n ChartLive,\n ChartTooltip,\n Legend,\n liveLine,\n seriesColors,\n readableTicks,\n tickLabel,\n useChartKeys,\n useSize,\n useTweenedScale,\n wholeTicks,\n type ChartState,\n} from \"./core.js\";\n\nexport const KAESO_BAR_CHART_VARIANTS = {\n layout: {\n grouped: { classes: \"\" },\n stacked: { classes: \"\" },\n horizontal: { classes: \"\" },\n },\n} as const;\nexport const KAESO_BAR_CHART_DEFAULT_VARIANTS = { layout: \"grouped\" } as const;\n\nexport interface BarSeries {\n id: string;\n label: string;\n values: number[];\n color?: string | undefined;\n}\n\nexport interface BarChartProps extends ChartState {\n categories: string[];\n series: BarSeries[];\n layout?: keyof typeof KAESO_BAR_CHART_VARIANTS.layout | undefined;\n height?: number | undefined;\n formatValue?: ((v: number) => string) | undefined;\n highlight?: number | undefined;\n axisLabels?: string[] | undefined;\n dates?: readonly AxisDate[] | 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\nexport const BarChart = /* @__PURE__ */ forwardRef<HTMLDivElement, BarChartProps>(function BarChart(\n {\n categories,\n series,\n layout = \"grouped\",\n height = 240,\n formatValue = (v) => formatNumber(v),\n highlight,\n axisLabels,\n dates,\n shares = true,\n partial,\n className,\n \"aria-label\": ariaLabel,\n ...state\n },\n ref,\n) {\n const t = useUiText();\n const [box, size] = useSize<HTMLDivElement>();\n const [hover, setHover] = useState<{ i: number; y: number } | null>(null);\n const [focus, setFocus] = useState<string | null>(null);\n const horizontal = layout === \"horizontal\";\n const stacked = layout === \"stacked\";\n const flat = series.flatMap((s) => s.values);\n const dataTop = (stacked ? d3max(categories.map((_, ci) => series.reduce((a, s) => a + (s.values[ci] ?? 0), 0))) : d3max(flat)) ?? 0;\n const axis = scaleLinear()\n .domain([0, dataTop * 1.08 || 1])\n .nice(4);\n const tween = useTweenedScale(flat, axis.domain()[1] ?? 1, !!state.loading);\n const vals = series.map((s, si) => s.values.map((_, ci) => tween.values[si * s.values.length + ci] ?? 0));\n const palette = seriesColors(series.map((s) => s.id));\n const color = (s: BarSeries) => s.color ?? palette.get(s.id)!;\n const M = horizontal ? { top: 0, right: 56, bottom: 0, left: 140 } : { top: 8, right: 52, 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 const totals = categories.map((_, ci) => vals.reduce((a, v) => a + (v[ci] ?? 0), 0));\n const band = scaleBand<string>()\n .domain(categories)\n .range(horizontal ? [0, h] : [0, w])\n .paddingInner(0.24)\n .paddingOuter(0.12);\n axis.range(horizontal ? [0, w] : [h, 0]);\n const scale = axis.copy().domain([0, tween.top || 1]);\n const v = (n: number) => (horizontal ? Math.min(w, scale(n)) : Math.max(0, scale(n)));\n const inner = scaleBand<string>()\n .domain(series.map((s) => s.id))\n .range([0, band.bandwidth()])\n .paddingInner(0.12);\n const MAX = horizontal ? 20 : stacked || series.length === 1 ? 40 : 20;\n const barW = Math.max(4, Math.min(MAX, Math.round(stacked || horizontal ? band.bandwidth() : inner.bandwidth())));\n const groupW = stacked || horizontal ? barW : series.length * barW + (series.length - 1) * 4;\n const axisLabel = tickLabel(formatValue);\n const centers = [categories[0], categories[categories.length - 1]].map((c) => (c === undefined ? 0 : (band(c) ?? 0) + band.bandwidth() / 2));\n const shown = new Set(\n horizontal\n ? []\n : axisLabelIndexes(\n categories.map((c, ci) => axisLabels?.[ci] ?? c),\n band.step(),\n { start: M.left + centers[0]!, end: w - centers[1]! + M.right },\n dates,\n ),\n );\n const GAP = 2;\n const lastCategory = categories.length - 1;\n const isPartial = (ci: number) => (!!(partial?.last || partial?.ongoing) && ci === lastCategory) || (!!partial?.first && ci === 0);\n const heading = (ci: number) => {\n const name = categories[ci] ?? \"\";\n if (partial?.ongoing && ci === lastCategory) return t(\"chart.soFar\", \"{heading}, so far\", { heading: name });\n return isPartial(ci) ? t(\"chart.partial\", \"{heading}, partial\", { heading: name }) : name;\n };\n const table = {\n columns: [t(\"barChart.category\", \"Category\"), ...series.map((s) => s.label)],\n rows: categories.map((_, ci) => [heading(ci), ...series.map((s) => formatValue(s.values[ci] ?? 0))]),\n };\n const ticks = (state.loading ? axis.ticks(4) : wholeTicks(readableTicks(axis, axisLabel), flat)).filter((t) => t <= (tween.top || 1) + 1e-9);\n const quiet = !!state.loading || !!state.empty || !!state.error;\n const keys = useChartKeys(quiet ? 0 : categories.length, horizontal ? { vertical: true, start: 0 } : {});\n const active = quiet ? null : (hover?.i ?? keys.index ?? (highlight !== undefined && highlight < categories.length ? highlight : null));\n const anchor = (ci: number) => {\n const b = Math.round(band(categories[ci]!) ?? 0);\n if (horizontal) {\n const rowTop = M.top + Math.round(b + band.bandwidth() / 2 - barW / 2 - PAD);\n const rowBottom = rowTop + barW + PAD * 2;\n const below = ci < categories.length / 2;\n const tall = 40 + series.length * 22;\n return { x: M.left - 16, y: below ? rowBottom + 24 + 4 : rowTop - tall + 24 - 4 };\n }\n const lit = Math.min(band.bandwidth(), groupW + PAD * 2);\n const center = M.left + b + band.bandwidth() / 2;\n const tallest = stacked ? (totals[ci] ?? 0) : Math.max(0, ...vals.map((sv) => sv[ci] ?? 0));\n return {\n x: Math.round(center + lit / 2) - 8,\n xLeft: Math.round(center - lit / 2) + 8,\n y: hover && hover.i === ci ? hover.y : M.top + Math.round(v(tallest)),\n };\n };\n const rowsFor = (ci: number) =>\n series.map((s) => ({\n id: s.id,\n label: s.label,\n color: color(s),\n value: formatValue(s.values[ci] ?? 0),\n ...(shares && series.length > 1 && totals[ci] ? { share: formatPercent(Math.round(((s.values[ci] ?? 0) / (totals[ci] ?? 1)) * 100) / 100, 0) } : {}),\n }));\n const PAD = 8;\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={state}\n legend={series.length > 1 ? <Legend items={series.map((s) => ({ id: s.id, label: s.label, color: color(s) }))} onHover={setFocus} /> : undefined}\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 <g transform={`translate(${M.left},${M.top})`}>\n {!horizontal &&\n ticks.map((t) => (\n <g key={t} transform={`translate(0,${Math.round(v(t)) + 0.5})`}>\n {t !== 0 && <line x2={w} {...AXIS.grid} />}\n {!state.loading && (\n <text x={w + 12} dy=\"0.32em\" {...AXIS.label}>\n {axisLabel(t)}\n </text>\n )}\n </g>\n ))}\n {categories.map((c, ci) => {\n const b = Math.round(band(c) ?? 0);\n const gap = Math.round((band.step() - band.bandwidth()) / 2);\n const lit = Math.min(band.bandwidth(), groupW + PAD * 2);\n let acc = 0;\n return (\n <g key={c}>\n <rect\n aria-hidden\n className=\"opacity-motion\"\n opacity={active === ci ? 1 : 0}\n fill=\"var(--k-fill-1)\"\n rx={6}\n {...(horizontal\n ? { x: -M.left + PAD, y: Math.round(b + band.bandwidth() / 2 - barW / 2 - PAD), width: size.width - PAD * 2, height: barW + PAD * 2 }\n : { x: Math.round(b + band.bandwidth() / 2 - lit / 2), y: 0, width: lit, height: h })}\n />\n {(() => {\n const center = b + band.bandwidth() / 2;\n const start = Math.round(center - groupW / 2);\n const lastVisible = series.map((_, si) => (vals[si]?.[ci] ?? 0) > 0).lastIndexOf(true);\n let below = horizontal ? 0 : h;\n return series.map((s, si) => {\n const val = vals[si]?.[ci] ?? 0;\n const dim = (focus && focus !== s.id ? 0.3 : 1) * (isPartial(ci) ? 0.5 : 1);\n if (horizontal) {\n const x0 = stacked ? Math.round(v(acc)) : 0;\n acc += val;\n const len = Math.max(val > 0 ? 2 : 0, Math.round(v(stacked ? acc : val)) - x0);\n const y = Math.round(center - barW / 2);\n return <rect key={s.id} x={x0} y={y} width={len} height={barW} rx={Math.min(4, barW / 2)} fill={color(s)} opacity={dim} />;\n }\n if (stacked) {\n acc += val;\n const top = Math.round(v(acc));\n const first = below === h;\n const bottom = first ? below : below - GAP;\n below = top;\n const bh = bottom - top;\n if (val <= 0 || bh <= 0) return null;\n return <path key={s.id} d={roundedTop(start, top, barW, bh, si === lastVisible ? 4 : 0)} fill={color(s)} opacity={dim} />;\n }\n const top = Math.round(v(val));\n const bh = Math.max(val > 0 ? 2 : 0, h - top);\n return <path key={s.id} d={roundedTop(start + si * (barW + 4), h - bh, barW, bh, 4)} fill={color(s)} opacity={dim} />;\n });\n })()}\n <rect\n x={horizontal ? -M.left : b - gap}\n y={horizontal ? b - gap : 0}\n width={horizontal ? size.width : band.step()}\n height={horizontal ? band.step() : h}\n fill=\"transparent\"\n onPointerMove={(e) => {\n if (quiet) return;\n const r = (e.currentTarget.ownerSVGElement ?? e.currentTarget).getBoundingClientRect();\n setHover({ i: ci, y: Math.round(e.clientY - r.top) });\n }}\n onPointerLeave={() => setHover(null)}\n />\n {horizontal ? (\n <>\n <text x={-12} y={b + band.bandwidth() / 2} dy=\"0.32em\" textAnchor=\"end\" fill=\"var(--k-text-secondary)\" fontSize={13} fontWeight={500}>\n {c}\n </text>\n <text\n x={Math.round(v(stacked ? (totals[ci] ?? 0) : (vals[0]?.[ci] ?? 0))) + 10}\n y={b + band.bandwidth() / 2}\n dy=\"0.32em\"\n {...AXIS.label}\n fill=\"var(--k-text-secondary)\"\n >\n {formatValue(stacked ? (totals[ci] ?? 0) : (series[0]?.values[ci] ?? 0))}\n </text>\n </>\n ) : (\n shown.has(ci) && (\n <text x={b + band.bandwidth() / 2} y={h + 20} textAnchor=\"middle\" {...AXIS.label}>\n {axisLabels?.[ci] ?? c}\n </text>\n )\n )}\n </g>\n );\n })}\n {!horizontal && <line x2={w} y1={h + 0.5} y2={h + 0.5} {...AXIS.baseline} />}\n </g>\n </svg>\n )}\n {active !== null && size.width > 0 && (\n <ChartTooltip {...anchor(active)} width={size.width} visible heading={heading(active)} rows={rowsFor(active)} />\n )}\n <ChartLive>{keys.index !== null && !quiet ? liveLine(heading(keys.index), rowsFor(keys.index), t) : null}</ChartLive>\n </div>\n </ChartFrame>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") BarChart.displayName = \"BarChart\";\n\nfunction roundedTop(x: number, y: number, w: number, h: number, r: number) {\n const rr = Math.min(r, w / 2, h);\n if (rr <= 0) return `M${x} ${y}h${w}v${h}h${-w}z`;\n return `M${x} ${y + h}V${y + rr}Q${x} ${y} ${x + rr} ${y}H${x + w - rr}Q${x + w} ${y} ${x + w} ${y + rr}V${y + h}z`;\n}\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- import { t as e } from "../../chunks/cn-CidVUKMm.js";
2
+ import { t as e } from "../../chunks/cn-DUDmdLpZ.js";
3
3
  import { i as t, n } from "../../chunks/context-BELWW79w.js";
4
4
  import { formatNumber as r, formatPercent as i } from "../../format.js";
5
5
  import { n as a } from "../../chunks/use-layout-width-CbSDbRb0.js";
6
- import { O as o, b as s, c, n as l, s as u } from "../../chunks/core-K960A4OT.js";
6
+ import { O as o, b as s, c, n as l, s as u } from "../../chunks/core-CqLWVMDI.js";
7
7
  import { forwardRef as d, useRef as f, useState as p } from "react";
8
8
  import { jsx as m, jsxs as h } from "react/jsx-runtime";
9
9
  import { arc as g, pie as _ } from "d3-shape";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { t as e } from "../../chunks/cn-CidVUKMm.js";
2
+ import { t as e } from "../../chunks/cn-DUDmdLpZ.js";
3
3
  import { r as t } from "../../chunks/context-BELWW79w.js";
4
4
  import { formatPercent as n } from "../../format.js";
5
- import { O as r } from "../../chunks/core-K960A4OT.js";
5
+ import { O as r } from "../../chunks/core-CqLWVMDI.js";
6
6
  import { forwardRef as i } from "react";
7
7
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
8
8
  //#region src/components/charts/gauge.tsx
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "../../chunks/cn-CidVUKMm.js";
2
+ import { t as e } from "../../chunks/cn-DUDmdLpZ.js";
3
3
  import { i as t } from "../../chunks/context-BELWW79w.js";
4
4
  import { formatNumber as n } from "../../format.js";
5
5
  import { forwardRef as r } from "react";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { t as e } from "../../chunks/cn-CidVUKMm.js";
2
+ import { t as e } from "../../chunks/cn-DUDmdLpZ.js";
3
3
  import { i as t } from "../../chunks/context-BELWW79w.js";
4
4
  import { formatNumber as n } from "../../format.js";
5
- import { D as r, b as i, n as a } from "../../chunks/core-K960A4OT.js";
5
+ import { D as r, b as i, n as a } from "../../chunks/core-CqLWVMDI.js";
6
6
  import { forwardRef as o, useId as s, useMemo as c, useState as l } from "react";
7
7
  import { jsx as u, jsxs as d } from "react/jsx-runtime";
8
8
  import { sankey as f, sankeyLinkHorizontal as p } from "d3-sankey";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "../../chunks/cn-CidVUKMm.js";
2
+ import { t as e } from "../../chunks/cn-DUDmdLpZ.js";
3
3
  import { forwardRef as t, useId as n } from "react";
4
4
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
5
  import { area as a, curveMonotoneX as o, line as s } from "d3-shape";
@@ -1,253 +1,2 @@
1
1
  "use client";
2
- import { t as e } from "../../chunks/cn-CidVUKMm.js";
3
- import { i as t, r as n } from "../../chunks/context-BELWW79w.js";
4
- import { formatNumber as r, formatPercent as ee } from "../../format.js";
5
- import { A as te, D as ne, E as re, S as ie, _ as ae, b as oe, g as se, i as ce, k as le, n as ue, r as de, s as fe, t as i, v as pe } from "../../chunks/core-K960A4OT.js";
6
- import { t as me } from "../../chunks/linear-scale-BWKeRqDX.js";
7
- import { forwardRef as a, useId as he, useMemo as o, useState as s } from "react";
8
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
9
- import { area as u, curveMonotoneX as d, line as f, stack as ge } from "d3-shape";
10
- import { bisector as _e, max as p, min as ve } from "d3-array";
11
- import { timeTicks as ye } from "d3-time";
12
- //#region src/components/charts/timeseries.tsx
13
- var m = { kind: {
14
- line: { classes: "" },
15
- area: { classes: "" },
16
- stacked: { classes: "" }
17
- } }, h = { kind: "line" }, g = {
18
- top: 8,
19
- right: 52,
20
- bottom: 28,
21
- left: 0
22
- };
23
- function _(e, t) {
24
- let n = new Intl.DateTimeFormat(e === "en" ? "en-US" : e, t);
25
- return (e) => n.format(e);
26
- }
27
- var v = {
28
- hour: "2-digit",
29
- minute: "2-digit",
30
- hourCycle: "h23"
31
- }, y = {
32
- month: "short",
33
- day: "numeric"
34
- };
35
- function be(e, t) {
36
- let n = 36e5;
37
- if (t <= 48 * n) return _(e, v);
38
- if (t <= 2160 * n) return _(e, y);
39
- let r = _(e, { month: "short" });
40
- return (e) => e.getMonth() === 0 ? String(e.getFullYear()) : r(e);
41
- }
42
- var b = /* @__PURE__ */ a(function({ series: a, kind: m = "line", height: h = 240, formatValue: b = (e) => r(e), threshold: x, hideLegend: xe, highlight: S, formatTime: C, className: Se, "aria-label": w, ...T }, Ce) {
43
- let we = t(), Te = n(), [Ee, E] = ne(), D = he().replace(/:/g, ""), De = ie(b), [O, Oe] = s(/* @__PURE__ */ new Set()), [k, ke] = s(null), [A, Ae] = s(null), j = a.filter((e) => !O.has(e.id)), M = o(() => (a[0]?.points ?? []).map((e) => new Date(e.t)), [a]), N = j.flatMap((e) => e.points.map((e) => e.v)), P = Math.max(0, E.width - g.left - g.right), F = Math.max(0, h - g.top - g.bottom), I = m === "stacked", je = I ? p(M.map((e, t) => j.reduce((e, n) => e + (n.points[t]?.v ?? 0), 0))) ?? 0 : p(N) ?? 0, L = me().domain([0, Math.max(je, x?.value ?? 0) * 1.08 || 1]).nice(4).range([F, 0]), R = le(N, L.domain()[1] ?? 1, !!T.loading), z = o(() => {
44
- let e = 0;
45
- return j.map((t) => t.points.map(() => R.values[e++] ?? 0));
46
- }, [j, R.values]), Me = L.copy().domain([0, R.top || 1]), B = ve(M) ?? /* @__PURE__ */ new Date(), V = p(M) ?? /* @__PURE__ */ new Date(), H = me().domain([B.getTime(), V.getTime()]).range([0, P]), U = I ? ge().keys(j.map((e, t) => String(t)))(M.map((e, t) => j.map((e, n) => z[n]?.[t] ?? 0))) : null, W = (e) => Math.max(0, Me(e)), Ne = (T.loading ? L.ticks(4) : te(pe(L, De), N)).filter((e) => e <= (R.top || 1) + 1e-9), Pe = ye(B, V, Math.max(2, Math.min(8, Math.floor(P / 96)))), G = (M[M.length - 1]?.getTime() ?? 0) - (M[0]?.getTime() ?? 0), K = be(Te, G), q = (M[1]?.getTime() ?? 0) - (M[0]?.getTime() ?? 0), J = C ?? _(Te, q && q < 864e5 ? {
47
- weekday: "short",
48
- ...y,
49
- ...v
50
- } : G <= 7776e6 ? {
51
- weekday: "short",
52
- ...y
53
- } : {
54
- ...y,
55
- year: "numeric"
56
- }), Fe = f().x((e, t) => Math.round(H(M[t] ?? /* @__PURE__ */ new Date()))).y((e) => W(e)).curve(d), Ie = u().x((e, t) => Math.round(H(M[t] ?? /* @__PURE__ */ new Date()))).y0(F).y1((e) => W(e)).curve(d), Le = u().x((e, t) => Math.round(H(M[t] ?? /* @__PURE__ */ new Date()))).y0((e) => W(e[0])).y1((e) => W(e[1])).curve(d), Re = f().x((e, t) => Math.round(H(M[t] ?? /* @__PURE__ */ new Date()))).y((e) => W(e[1])).curve(d), ze = o(() => oe(a.map((e) => e.id)), [a]), Y = (e) => e.color ?? ze.get(e.id), Be = _e((e) => e.getTime()).center, Ve = (e) => {
57
- let t = e.currentTarget.getBoundingClientRect(), n = Be(M, H.invert(e.clientX - t.left));
58
- Ae({
59
- i: n,
60
- y: Math.round(e.clientY - t.top + g.top)
61
- });
62
- }, He = {
63
- columns: [we("timeseriesChart.time", "Time"), ...a.map((e) => e.label)],
64
- rows: M.map((e, t) => [(C ?? K)(e), ...a.map((e) => b(e.points[t]?.v ?? 0))])
65
- }, Ue = T.empty ?? a.every((e) => e.points.every((e) => e.v === 0)), X = !!T.loading || Ue, Z = re(X || T.error ? 0 : M.length), Q = X || T.error ? null : A?.i ?? Z.index ?? (S !== void 0 && S < M.length ? S : null), $ = Q === null ? 0 : Math.round(H(M[Q])) + g.left, We = Q === null ? 0 : A && A.i === Q ? A.y : g.top + Math.round(W(I ? U?.[U.length - 1]?.[Q]?.[1] ?? 0 : Math.max(0, ...z.map((e) => e[Q] ?? 0)))), Ge = (e) => j.map((t) => {
66
- let n = t.points[e]?.v ?? 0, r = j.reduce((t, n) => t + (n.points[e]?.v ?? 0), 0);
67
- return {
68
- id: t.id,
69
- label: t.label,
70
- color: Y(t),
71
- value: b(n),
72
- ...j.length > 1 && r ? { share: ee(Math.round(n / r * 100) / 100, 0) } : {}
73
- };
74
- });
75
- return /* @__PURE__ */ c("div", {
76
- ref: Ce,
77
- className: e("min-w-0", Se),
78
- children: /* @__PURE__ */ c(ue, {
79
- label: w,
80
- height: h,
81
- table: He,
82
- state: {
83
- ...T,
84
- empty: Ue
85
- },
86
- legend: !xe && a.length > 1 ? /* @__PURE__ */ c(fe, {
87
- items: a.map((e) => ({
88
- id: e.id,
89
- label: e.label,
90
- color: Y(e)
91
- })),
92
- hidden: O,
93
- shape: m === "line" ? "line" : "square",
94
- onToggle: (e) => {
95
- let t = new Set(O);
96
- t.has(e) ? t.delete(e) : t.add(e), Oe(t);
97
- },
98
- onHover: ke
99
- }) : void 0,
100
- children: /* @__PURE__ */ l("div", {
101
- ref: Ee,
102
- role: "group",
103
- "aria-label": w,
104
- ...Z.props,
105
- className: "absolute inset-0 rounded-cell focus-ring",
106
- children: [
107
- E.width > 0 && /* @__PURE__ */ l("svg", {
108
- width: E.width,
109
- height: h,
110
- className: "block overflow-visible",
111
- role: "presentation",
112
- children: [/* @__PURE__ */ c("defs", { children: j.map((e) => /* @__PURE__ */ l("linearGradient", {
113
- id: `${D}-${e.id}`,
114
- x1: "0",
115
- y1: "0",
116
- x2: "0",
117
- y2: "1",
118
- children: [/* @__PURE__ */ c("stop", {
119
- offset: "0%",
120
- stopColor: Y(e),
121
- className: "chart-fill-top"
122
- }), /* @__PURE__ */ c("stop", {
123
- offset: "100%",
124
- stopColor: Y(e),
125
- stopOpacity: 0
126
- })]
127
- }, e.id)) }), /* @__PURE__ */ l("g", {
128
- transform: `translate(${g.left},${g.top})`,
129
- children: [
130
- Ne.map((e) => /* @__PURE__ */ l("g", {
131
- transform: `translate(0,${Math.round(W(e)) + .5})`,
132
- children: [e !== 0 && /* @__PURE__ */ c("line", {
133
- x2: P,
134
- ...i.grid
135
- }), !T.loading && /* @__PURE__ */ c("text", {
136
- x: P + 12,
137
- dy: "0.32em",
138
- ...i.label,
139
- children: De(e)
140
- })]
141
- }, e)),
142
- /* @__PURE__ */ c("line", {
143
- x2: P,
144
- y1: F + .5,
145
- y2: F + .5,
146
- ...i.baseline
147
- }),
148
- ae(Pe.map((e) => ({
149
- key: e.getTime(),
150
- at: Math.round(H(e)),
151
- label: K(e)
152
- })), P + g.right).map((e) => /* @__PURE__ */ c("text", {
153
- x: e.x,
154
- y: F + 20,
155
- textAnchor: e.anchor,
156
- ...i.label,
157
- children: e.label
158
- }, e.key)),
159
- X ? null : I && U ? U.map((e, t) => {
160
- let n = j[t];
161
- return /* @__PURE__ */ l("g", {
162
- opacity: k && k !== n.id ? .3 : 1,
163
- className: "opacity-motion",
164
- children: [/* @__PURE__ */ c("path", {
165
- d: Le(e) ?? "",
166
- fill: Y(n),
167
- className: "chart-stack-fill"
168
- }), /* @__PURE__ */ c("path", {
169
- d: Re(e) ?? "",
170
- fill: "none",
171
- stroke: Y(n),
172
- strokeWidth: 1.5,
173
- strokeLinejoin: "round",
174
- strokeLinecap: "round"
175
- })]
176
- }, n.id);
177
- }) : j.map((e, t) => /* @__PURE__ */ l("g", {
178
- opacity: k && k !== e.id ? .3 : 1,
179
- className: "opacity-motion",
180
- children: [m === "area" && /* @__PURE__ */ c("path", {
181
- d: Ie(z[t] ?? []) ?? "",
182
- fill: `url(#${D}-${e.id})`
183
- }), /* @__PURE__ */ c("path", {
184
- d: Fe(z[t] ?? []) ?? "",
185
- fill: "none",
186
- stroke: Y(e),
187
- strokeWidth: 2,
188
- strokeLinejoin: "round",
189
- strokeLinecap: "round"
190
- })]
191
- }, e.id)),
192
- x && /* @__PURE__ */ l("g", {
193
- transform: `translate(0,${Math.round(W(x.value)) + .5})`,
194
- children: [/* @__PURE__ */ c("line", {
195
- x2: P,
196
- stroke: "var(--k-danger)",
197
- strokeDasharray: "4 4",
198
- strokeWidth: 1
199
- }), /* @__PURE__ */ c("text", {
200
- x: 0,
201
- dy: -6,
202
- fill: "var(--k-danger-text)",
203
- fontSize: 12,
204
- fontWeight: 500,
205
- children: x.label
206
- })]
207
- }),
208
- Q !== null && /* @__PURE__ */ l("g", {
209
- "aria-hidden": !0,
210
- children: [/* @__PURE__ */ c("line", {
211
- x1: $ - g.left + .5,
212
- x2: $ - g.left + .5,
213
- y2: F,
214
- ...i.grid,
215
- stroke: "var(--k-line-strong)"
216
- }), !I && j.map((e, t) => /* @__PURE__ */ c("circle", {
217
- cx: $ - g.left,
218
- cy: W(z[t]?.[Q] ?? 0),
219
- r: 4,
220
- fill: Y(e),
221
- stroke: "var(--k-bg-panel)",
222
- strokeWidth: 2
223
- }, e.id))]
224
- }),
225
- /* @__PURE__ */ c("rect", {
226
- width: P,
227
- height: F,
228
- fill: "transparent",
229
- onPointerMove: Ve,
230
- onPointerLeave: () => Ae(null)
231
- })
232
- ]
233
- })]
234
- }),
235
- Q !== null && M[Q] && /* @__PURE__ */ c(ce, {
236
- x: $,
237
- y: We,
238
- width: E.width,
239
- visible: !0,
240
- heading: J(M[Q]),
241
- rows: Ge(Q)
242
- }),
243
- /* @__PURE__ */ c(de, { children: Z.index !== null && Q !== null && M[Z.index] ? se(J(M[Z.index]), Ge(Z.index), we) : null })
244
- ]
245
- })
246
- })
247
- });
248
- });
249
- process.env.NODE_ENV !== "production" && (b.displayName = "TimeseriesChart");
250
- //#endregion
251
- export { h as KAESO_TIMESERIES_CHART_DEFAULT_VARIANTS, m as KAESO_TIMESERIES_CHART_VARIANTS, b as TimeseriesChart };
252
-
253
- //# sourceMappingURL=timeseries.js.map
2
+ export { t as KAESO_TIMESERIES_CHART_DEFAULT_VARIANTS, n as KAESO_TIMESERIES_CHART_VARIANTS, r as TimeseriesChart } from "../../chunks/timeseries-LRDAZHV0.js";
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { KAESO_SPARKLINE_DEFAULT_VARIANTS as e, KAESO_SPARKLINE_VARIANTS as t, Sparkline as n } from "./charts/sparkline.js";
3
- import { A as r, C as i, D as a, E as o, O as s, S as c, T as l, _ as u, a as d, b as f, c as p, d as m, f as h, g, h as _, i as v, j as y, k as b, l as x, m as S, n as C, o as w, p as T, r as E, s as D, t as O, u as k, v as A, w as j, x as M, y as N } from "../chunks/core-K960A4OT.js";
4
- import { KAESO_TIMESERIES_CHART_DEFAULT_VARIANTS as P, KAESO_TIMESERIES_CHART_VARIANTS as F, TimeseriesChart as I } from "./charts/timeseries.js";
3
+ import { A as r, C as i, D as a, E as o, O as s, S as c, T as l, _ as u, a as d, b as f, c as p, d as m, f as h, g, h as _, i as v, j as y, k as b, l as x, m as S, n as C, o as w, p as T, r as E, s as D, t as O, u as k, v as A, w as j, x as M, y as N } from "../chunks/core-CqLWVMDI.js";
4
+ import { n as P, r as F, t as I } from "../chunks/timeseries-LRDAZHV0.js";
5
5
  import { BarChart as L, KAESO_BAR_CHART_DEFAULT_VARIANTS as R, KAESO_BAR_CHART_VARIANTS as z } from "./charts/bar.js";
6
6
  import { Donut as B, KAESO_DONUT_DEFAULT_VARIANTS as V, KAESO_DONUT_VARIANTS as H, KAESO_SHARE_BAR_DEFAULT_VARIANTS as U, KAESO_SHARE_BAR_VARIANTS as W, Ring as G, ShareBar as K, groupSmall as q, shareLabel as J, wholeShares as Y } from "./charts/donut.js";
7
7
  import { Heatmap as X, KAESO_HEATMAP_DEFAULT_VARIANTS as Z, KAESO_HEATMAP_VARIANTS as Q } from "./charts/heatmap.js";
8
8
  import { Gauge as $, KAESO_GAUGE_DEFAULT_VARIANTS as ee, KAESO_GAUGE_VARIANTS as te } from "./charts/gauge.js";
9
9
  import { KAESO_SANKEY_DEFAULT_VARIANTS as ne, KAESO_SANKEY_VARIANTS as re, Sankey as ie } from "./charts/sankey.js";
10
- export { O as AXIS, L as BarChart, C as ChartFrame, E as ChartLive, v as ChartTooltip, B as Donut, $ as Gauge, X as Heatmap, R as KAESO_BAR_CHART_DEFAULT_VARIANTS, z as KAESO_BAR_CHART_VARIANTS, d as KAESO_CHARTS_DEFAULT_VARIANTS, w as KAESO_CHARTS_VARIANTS, V as KAESO_DONUT_DEFAULT_VARIANTS, H as KAESO_DONUT_VARIANTS, ee as KAESO_GAUGE_DEFAULT_VARIANTS, te as KAESO_GAUGE_VARIANTS, Z as KAESO_HEATMAP_DEFAULT_VARIANTS, Q as KAESO_HEATMAP_VARIANTS, ne as KAESO_SANKEY_DEFAULT_VARIANTS, re as KAESO_SANKEY_VARIANTS, U as KAESO_SHARE_BAR_DEFAULT_VARIANTS, W as KAESO_SHARE_BAR_VARIANTS, e as KAESO_SPARKLINE_DEFAULT_VARIANTS, t as KAESO_SPARKLINE_VARIANTS, P as KAESO_TIMESERIES_CHART_DEFAULT_VARIANTS, F as KAESO_TIMESERIES_CHART_VARIANTS, D as Legend, G as Ring, ie as Sankey, K as ShareBar, n as Sparkline, p as Swatch, x as TOKEN_KIND_ORDER, I as TimeseriesChart, k as VIZ, m as VIZ_THIN, h as assignSeries, T as axisLabelIndexes, S as chartKeyIndex, q as groupSmall, _ as labelWidth, g as liveLine, u as placeTimeLabels, A as readableTicks, N as seriesColor, f as seriesColors, M as seriesIndex, J as shareLabel, c as tickLabel, i as tokenKindColor, j as tokenKindLabel, l as tweens, o as useChartKeys, a as useSize, s as useTweened, b as useTweenedScale, Y as wholeShares, r as wholeTicks, y as yearStarts };
10
+ export { O as AXIS, L as BarChart, C as ChartFrame, E as ChartLive, v as ChartTooltip, B as Donut, $ as Gauge, X as Heatmap, R as KAESO_BAR_CHART_DEFAULT_VARIANTS, z as KAESO_BAR_CHART_VARIANTS, d as KAESO_CHARTS_DEFAULT_VARIANTS, w as KAESO_CHARTS_VARIANTS, V as KAESO_DONUT_DEFAULT_VARIANTS, H as KAESO_DONUT_VARIANTS, ee as KAESO_GAUGE_DEFAULT_VARIANTS, te as KAESO_GAUGE_VARIANTS, Z as KAESO_HEATMAP_DEFAULT_VARIANTS, Q as KAESO_HEATMAP_VARIANTS, ne as KAESO_SANKEY_DEFAULT_VARIANTS, re as KAESO_SANKEY_VARIANTS, U as KAESO_SHARE_BAR_DEFAULT_VARIANTS, W as KAESO_SHARE_BAR_VARIANTS, e as KAESO_SPARKLINE_DEFAULT_VARIANTS, t as KAESO_SPARKLINE_VARIANTS, I as KAESO_TIMESERIES_CHART_DEFAULT_VARIANTS, P as KAESO_TIMESERIES_CHART_VARIANTS, D as Legend, G as Ring, ie as Sankey, K as ShareBar, n as Sparkline, p as Swatch, x as TOKEN_KIND_ORDER, F as TimeseriesChart, k as VIZ, m as VIZ_THIN, h as assignSeries, T as axisLabelIndexes, S as chartKeyIndex, q as groupSmall, _ as labelWidth, g as liveLine, u as placeTimeLabels, A as readableTicks, N as seriesColor, f as seriesColors, M as seriesIndex, J as shareLabel, c as tickLabel, i as tokenKindColor, j as tokenKindLabel, l as tweens, o as useChartKeys, a as useSize, s as useTweened, b as useTweenedScale, Y as wholeShares, r as wholeTicks, y as yearStarts };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as Checkbox, n as CheckboxBox, r as CheckboxGroup, i as KAESO_CHECKBOX_DEFAULT_VARIANTS, a as KAESO_CHECKBOX_VARIANTS } from "../chunks/checkbox-BgRdbfCE.js";
2
+ export { t as Checkbox, n as CheckboxBox, r as CheckboxGroup, i as KAESO_CHECKBOX_DEFAULT_VARIANTS, a as KAESO_CHECKBOX_VARIANTS } from "../chunks/checkbox-C5yvSS7O.js";
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../chunks/code-block-DxtladFW.js";
3
- import { n as s, r as c, t as l } from "../chunks/json-view-B6KHIWzh.js";
2
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../chunks/code-block-DREsvJ-g.js";
3
+ import { n as s, r as c, t as l } from "../chunks/json-view-BkG2hTXV.js";
4
4
  export { e as CODE_LANGS, o as CodeBlock, n as CodeHighlighted, l as JsonView, i as KAESO_CODE_BLOCK_DEFAULT_VARIANTS, t as KAESO_CODE_BLOCK_VARIANTS, s as KAESO_JSON_VIEW_DEFAULT_VARIANTS, c as KAESO_JSON_VIEW_VARIANTS, r as highlight, a as kaesoShikiTheme };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as Code, n as KAESO_CODE_DEFAULT_VARIANTS, r as KAESO_CODE_VARIANTS } from "../chunks/code-BADhvsgC.js";
2
+ export { t as Code, n as KAESO_CODE_DEFAULT_VARIANTS, r as KAESO_CODE_VARIANTS } from "../chunks/code-C49NzHUQ.js";