@logicplanes/kaeso-ui 0.4.2 → 0.4.4

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 (279) hide show
  1. package/NOTICE.md +1 -1
  2. package/ai/component-guides.md +312 -21
  3. package/ai/component-registry.json +616 -25
  4. package/ai/component-registry.md +154 -26
  5. package/ai/icons.md +4 -4
  6. package/ai/tokens.md +1 -1
  7. package/dist/blocks/delete-resource.js +15 -14
  8. package/dist/blocks/delete-resource.js.map +1 -1
  9. package/dist/blocks/pages.js +2 -2
  10. package/dist/blocks/resource-list.js +41 -40
  11. package/dist/blocks/resource-list.js.map +1 -1
  12. package/dist/chunks/agent-avatar-0pdBTWkR.js +171 -0
  13. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +1 -0
  14. package/dist/chunks/{app-frame-C8csevkL.js → app-frame-DogGRmsu.js} +22 -21
  15. package/dist/chunks/app-frame-DogGRmsu.js.map +1 -0
  16. package/dist/chunks/{banner-Cb8OWnqJ.js → banner-BA2ALw9M.js} +2 -2
  17. package/dist/chunks/{banner-Cb8OWnqJ.js.map → banner-BA2ALw9M.js.map} +1 -1
  18. package/dist/chunks/{button-Dzu7_csE.js → button-CzuxqawA.js} +3 -3
  19. package/dist/chunks/{button-Dzu7_csE.js.map → button-CzuxqawA.js.map} +1 -1
  20. package/dist/chunks/{calendar--YemJsv4.js → calendar-BWaf2MXc.js} +57 -41
  21. package/dist/chunks/calendar-BWaf2MXc.js.map +1 -0
  22. package/dist/chunks/{checkbox-CDfC6E-M.js → checkbox-CQjwCPkc.js} +11 -9
  23. package/dist/chunks/checkbox-CQjwCPkc.js.map +1 -0
  24. package/dist/chunks/{code-block-U5fCqwgC.js → code-block-BZIe_B9l.js} +41 -37
  25. package/dist/chunks/code-block-BZIe_B9l.js.map +1 -0
  26. package/dist/chunks/code-block-DdNPHEzI.js +344 -0
  27. package/dist/chunks/code-block-DdNPHEzI.js.map +1 -0
  28. package/dist/chunks/combobox-DjDI7SUC.js +319 -0
  29. package/dist/chunks/combobox-DjDI7SUC.js.map +1 -0
  30. package/dist/chunks/{command-list-0RR4DpUe.js → command-list-C2Y7V_lt.js} +2 -2
  31. package/dist/chunks/{command-list-0RR4DpUe.js.map → command-list-C2Y7V_lt.js.map} +1 -1
  32. package/dist/chunks/{copy-button-7-irieJw.js → copy-button-FJvPJn72.js} +3 -3
  33. package/dist/chunks/{copy-button-7-irieJw.js.map → copy-button-FJvPJn72.js.map} +1 -1
  34. package/dist/chunks/{core-Bl9NrBLS.js → core-BYns5ytV.js} +145 -139
  35. package/dist/chunks/core-BYns5ytV.js.map +1 -0
  36. package/dist/chunks/{date-popup-RQkqhko4.js → date-popup-CPA_zt6o.js} +4 -4
  37. package/dist/chunks/{date-popup-RQkqhko4.js.map → date-popup-CPA_zt6o.js.map} +1 -1
  38. package/dist/chunks/{de-BnNQtBSV.js → de-D_0mmG-k.js} +10 -1
  39. package/dist/chunks/de-D_0mmG-k.js.map +1 -0
  40. package/dist/chunks/dialog-Cg9A_6SF.js +383 -0
  41. package/dist/chunks/dialog-Cg9A_6SF.js.map +1 -0
  42. package/dist/chunks/icon-CPJWE2N-.js +95 -0
  43. package/dist/chunks/icon-CPJWE2N-.js.map +1 -0
  44. package/dist/chunks/{icon-button-CPYR21Sz.js → icon-button-CrdF_eMG.js} +3 -3
  45. package/dist/chunks/{icon-button-CPYR21Sz.js.map → icon-button-CrdF_eMG.js.map} +1 -1
  46. package/dist/chunks/{identity-DPuTkMsa.js → identity-BmhQ6BQ-.js} +15 -15
  47. package/dist/chunks/identity-BmhQ6BQ-.js.map +1 -0
  48. package/dist/chunks/{input-TyLIaQ5k.js → input-2VJuj_M4.js} +10 -5
  49. package/dist/chunks/input-2VJuj_M4.js.map +1 -0
  50. package/dist/chunks/{input-group-CUSNsQjQ.js → input-group-DQ_4DoXg.js} +2 -2
  51. package/dist/chunks/{input-group-CUSNsQjQ.js.map → input-group-DQ_4DoXg.js.map} +1 -1
  52. package/dist/chunks/{inset-BnBj8NJV.js → inset-BUzyXLK4.js} +14 -4
  53. package/dist/chunks/inset-BUzyXLK4.js.map +1 -0
  54. package/dist/chunks/{iso-field-CWbxlll-.js → iso-field-B2rTwiBo.js} +2 -2
  55. package/dist/chunks/{iso-field-CWbxlll-.js.map → iso-field-B2rTwiBo.js.map} +1 -1
  56. package/dist/chunks/{link-B2I55xg9.js → link-KWI7PevW.js} +2 -2
  57. package/dist/chunks/{link-B2I55xg9.js.map → link-KWI7PevW.js.map} +1 -1
  58. package/dist/chunks/link-provider-cvl8lSTT.js +29 -0
  59. package/dist/chunks/link-provider-cvl8lSTT.js.map +1 -0
  60. package/dist/chunks/{list-CkOozrVY.js → list-M1csq-d4.js} +18 -16
  61. package/dist/chunks/{list-CkOozrVY.js.map → list-M1csq-d4.js.map} +1 -1
  62. package/dist/chunks/{markdown-BEgwZFlu.js → markdown-BupwFOae.js} +5 -5
  63. package/dist/chunks/{markdown-BEgwZFlu.js.map → markdown-BupwFOae.js.map} +1 -1
  64. package/dist/chunks/{menu-fl_QQb38.js → menu-DEmBfdPm.js} +29 -26
  65. package/dist/chunks/menu-DEmBfdPm.js.map +1 -0
  66. package/dist/chunks/nav-sheet-CzgIwgAm.js +60 -0
  67. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +1 -0
  68. package/dist/chunks/{page-header-DjUMDG69.js → page-header-DL2y2iZp.js} +2 -2
  69. package/dist/chunks/{page-header-DjUMDG69.js.map → page-header-DL2y2iZp.js.map} +1 -1
  70. package/dist/chunks/{pagination-BaY8jdli.js → pagination-Cn_qF4cg.js} +3 -3
  71. package/dist/chunks/{pagination-BaY8jdli.js.map → pagination-Cn_qF4cg.js.map} +1 -1
  72. package/dist/chunks/{picker-popover-DShea4b8.js → picker-popover-BxyU1U9F.js} +14 -13
  73. package/dist/chunks/{picker-popover-DShea4b8.js.map → picker-popover-BxyU1U9F.js.map} +1 -1
  74. package/dist/chunks/{popover-CFMwaeIP.js → popover-DNN4S47w.js} +2 -2
  75. package/dist/chunks/{popover-CFMwaeIP.js.map → popover-DNN4S47w.js.map} +1 -1
  76. package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -1
  77. package/dist/chunks/{radio-Yl0nO-Sj.js → radio-CDDFpdtL.js} +4 -4
  78. package/dist/chunks/{radio-Yl0nO-Sj.js.map → radio-CDDFpdtL.js.map} +1 -1
  79. package/dist/chunks/{range-popup-CkhsK3wI.js → range-popup-CRyWYUB1.js} +5 -5
  80. package/dist/chunks/{range-popup-CkhsK3wI.js.map → range-popup-CRyWYUB1.js.map} +1 -1
  81. package/dist/chunks/{rights-BlQx9C_j.js → rights-Cyp0Pzp-.js} +5 -5
  82. package/dist/chunks/{rights-BlQx9C_j.js.map → rights-Cyp0Pzp-.js.map} +1 -1
  83. package/dist/chunks/{segmented-C97zvDR1.js → segmented-CErcoxwi.js} +2 -2
  84. package/dist/chunks/{segmented-C97zvDR1.js.map → segmented-CErcoxwi.js.map} +1 -1
  85. package/dist/chunks/{sidebar-DtFlejU7.js → sidebar-3r1ZRXlN.js} +253 -235
  86. package/dist/chunks/sidebar-3r1ZRXlN.js.map +1 -0
  87. package/dist/chunks/{sidebar-menu-CxQbGwyj.js → sidebar-menu-BN3jkTlK.js} +2 -2
  88. package/dist/chunks/{sidebar-menu-CxQbGwyj.js.map → sidebar-menu-BN3jkTlK.js.map} +1 -1
  89. package/dist/chunks/{switch-b-VkStWj.js → switch-BNMq_kGt.js} +2 -2
  90. package/dist/chunks/{switch-b-VkStWj.js.map → switch-BNMq_kGt.js.map} +1 -1
  91. package/dist/chunks/{tag-DNdX1XRR.js → tag-D_M1s2qS.js} +2 -2
  92. package/dist/chunks/{tag-DNdX1XRR.js.map → tag-D_M1s2qS.js.map} +1 -1
  93. package/dist/chunks/{text-DCGGNqTM.js → text-CIXH8rmT.js} +2 -2
  94. package/dist/chunks/{text-DCGGNqTM.js.map → text-CIXH8rmT.js.map} +1 -1
  95. package/dist/chunks/{textarea-CT2S2JVM.js → textarea--4FRL3Pb.js} +3 -3
  96. package/dist/chunks/{textarea-CT2S2JVM.js.map → textarea--4FRL3Pb.js.map} +1 -1
  97. package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -1
  98. package/dist/chunks/{timeseries-B-8OfeZm.js → timeseries-D1xjRXfk.js} +2 -2
  99. package/dist/chunks/{timeseries-B-8OfeZm.js.map → timeseries-D1xjRXfk.js.map} +1 -1
  100. package/dist/chunks/{toolbar-DL6zVrzU.js → toolbar-WA_oZgu-.js} +5 -4
  101. package/dist/chunks/{toolbar-DL6zVrzU.js.map → toolbar-WA_oZgu-.js.map} +1 -1
  102. package/dist/chunks/tooltip-OcwO0VUT.js +154 -0
  103. package/dist/chunks/tooltip-OcwO0VUT.js.map +1 -0
  104. package/dist/chunks/{tooltip-root-BeAMXzxU.js → tooltip-root-DzahJDVj.js} +2 -2
  105. package/dist/chunks/{tooltip-root-BeAMXzxU.js.map → tooltip-root-DzahJDVj.js.map} +1 -1
  106. package/dist/chunks/{use-scroll-margin-DfdTc_5D.js → use-scroll-margin-atRtf0v_.js} +14 -10
  107. package/dist/chunks/use-scroll-margin-atRtf0v_.js.map +1 -0
  108. package/dist/chunks/{virtual-rows-yAMjeAwj.js → virtual-rows-CC_kc2PR.js} +2 -2
  109. package/dist/chunks/{virtual-rows-yAMjeAwj.js.map → virtual-rows-CC_kc2PR.js.map} +1 -1
  110. package/dist/chunks/{zh-CN-CKffAT7j.js → zh-CN-Bm6UPIbW.js} +10 -1
  111. package/dist/chunks/zh-CN-Bm6UPIbW.js.map +1 -0
  112. package/dist/components/agent-avatar.js +2 -0
  113. package/dist/components/app-frame.js +2 -2
  114. package/dist/components/banner.js +1 -1
  115. package/dist/components/button-group.js +2 -2
  116. package/dist/components/button.js +1 -1
  117. package/dist/components/calendar.js +1 -1
  118. package/dist/components/charts/bar.js +1 -1
  119. package/dist/components/charts/donut.js +1 -1
  120. package/dist/components/charts/gauge.js +1 -1
  121. package/dist/components/charts/sankey.js +1 -1
  122. package/dist/components/charts/timeseries.js +1 -1
  123. package/dist/components/charts.js +2 -2
  124. package/dist/components/checkbox.js +1 -1
  125. package/dist/components/code-block.js +3 -2
  126. package/dist/components/combobox.js +1 -1
  127. package/dist/components/command-list.js +2 -2
  128. package/dist/components/command-palette.js +85 -81
  129. package/dist/components/command-palette.js.map +1 -1
  130. package/dist/components/copy-button.js +1 -1
  131. package/dist/components/data-table.js +191 -187
  132. package/dist/components/data-table.js.map +1 -1
  133. package/dist/components/date-picker.js +6 -4
  134. package/dist/components/date-picker.js.map +1 -1
  135. package/dist/components/dialog.js +125 -91
  136. package/dist/components/dialog.js.map +1 -1
  137. package/dist/components/display-options.js +49 -46
  138. package/dist/components/display-options.js.map +1 -1
  139. package/dist/components/filter-chip.js +3 -3
  140. package/dist/components/filter-chip.js.map +1 -1
  141. package/dist/components/filter-row.js +1 -1
  142. package/dist/components/icon-button.js +1 -1
  143. package/dist/components/icon.js +1 -1
  144. package/dist/components/input.js +49 -49
  145. package/dist/components/input.js.map +1 -1
  146. package/dist/components/kaeso/conversation.js +3 -3
  147. package/dist/components/kaeso/identity.js +1 -1
  148. package/dist/components/kaeso/moments.js +3 -3
  149. package/dist/components/kaeso/rights.js +1 -1
  150. package/dist/components/kaeso/usage.js +8 -8
  151. package/dist/components/kaeso/usage.js.map +1 -1
  152. package/dist/components/kaeso.js +263 -95
  153. package/dist/components/kaeso.js.map +1 -1
  154. package/dist/components/key-value.js +2 -2
  155. package/dist/components/link.js +1 -1
  156. package/dist/components/list.js +1 -1
  157. package/dist/components/markdown.js +1 -1
  158. package/dist/components/menu.js +2 -2
  159. package/dist/components/page-header.js +1 -1
  160. package/dist/components/pagination.js +1 -1
  161. package/dist/components/playground.js +27 -26
  162. package/dist/components/playground.js.map +1 -1
  163. package/dist/components/popover.js +12 -11
  164. package/dist/components/popover.js.map +1 -1
  165. package/dist/components/radio.js +1 -1
  166. package/dist/components/segmented.js +1 -1
  167. package/dist/components/settings.js +8 -8
  168. package/dist/components/settings.js.map +1 -1
  169. package/dist/components/sheet.js +2 -2
  170. package/dist/components/sidebar.js +1 -1
  171. package/dist/components/switch.js +1 -1
  172. package/dist/components/tabs.js +22 -22
  173. package/dist/components/tabs.js.map +1 -1
  174. package/dist/components/tag.js +1 -1
  175. package/dist/components/text.js +1 -1
  176. package/dist/components/theme-menu.js +33 -30
  177. package/dist/components/theme-menu.js.map +1 -1
  178. package/dist/components/thumbnail.js +41 -0
  179. package/dist/components/thumbnail.js.map +1 -0
  180. package/dist/components/toast.js +96 -87
  181. package/dist/components/toast.js.map +1 -1
  182. package/dist/components/toolbar.js +1 -1
  183. package/dist/components/tooltip.js +1 -1
  184. package/dist/format.js.map +1 -1
  185. package/dist/i18n-provider.js +1 -1
  186. package/dist/index.js +90 -88
  187. package/dist/kaeso.css +3 -0
  188. package/dist/styles.css +1 -1
  189. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -5
  190. package/dist/types/blocks/resource-list/resource-list.d.ts +1 -4
  191. package/dist/types/component-docs.d.ts +1 -1
  192. package/dist/types/components/agent-avatar/agent-avatar.d.ts +94 -0
  193. package/dist/types/components/agent-avatar/docs.d.ts +19 -0
  194. package/dist/types/components/agent-avatar/index.d.ts +3 -0
  195. package/dist/types/components/agent-avatar/model-name.d.ts +9 -0
  196. package/dist/types/components/agent-avatar/models.d.ts +4 -0
  197. package/dist/types/components/app-frame/app-frame.d.ts +3 -8
  198. package/dist/types/components/app-frame/nav-sheet.d.ts +2 -4
  199. package/dist/types/components/calendar/calendar.d.ts +1 -4
  200. package/dist/types/components/charts/core.d.ts +11 -18
  201. package/dist/types/components/checkbox/checkbox.d.ts +2 -0
  202. package/dist/types/components/code-block/diff-view.d.ts +30 -0
  203. package/dist/types/components/code-block/diff.d.ts +26 -0
  204. package/dist/types/components/code-block/docs.d.ts +14 -0
  205. package/dist/types/components/code-block/index.d.ts +1 -0
  206. package/dist/types/components/combobox/combobox.d.ts +26 -2
  207. package/dist/types/components/command-list/picker-popover.d.ts +1 -4
  208. package/dist/types/components/command-palette/command-palette.d.ts +1 -4
  209. package/dist/types/components/data-table/data-table.d.ts +2 -1
  210. package/dist/types/components/data-table/docs.d.ts +1 -0
  211. package/dist/types/components/dialog/dialog.d.ts +7 -9
  212. package/dist/types/components/dialog/docs.d.ts +2 -0
  213. package/dist/types/components/dialog/scope.d.ts +2 -0
  214. package/dist/types/components/dialog/step-dialog.d.ts +38 -5
  215. package/dist/types/components/display-options/display-options.d.ts +2 -5
  216. package/dist/types/components/input/input.d.ts +23 -0
  217. package/dist/types/components/kaeso/client-button.d.ts +17 -0
  218. package/dist/types/components/kaeso/docs.d.ts +18 -0
  219. package/dist/types/components/kaeso/grant-summary.d.ts +12 -0
  220. package/dist/types/components/kaeso/identity.d.ts +2 -0
  221. package/dist/types/components/kaeso/index.d.ts +2 -0
  222. package/dist/types/components/kaeso/provider-picker.d.ts +5 -0
  223. package/dist/types/components/kaeso/usage.d.ts +2 -0
  224. package/dist/types/components/list/list.d.ts +4 -8
  225. package/dist/types/components/menu/docs.d.ts +8 -1
  226. package/dist/types/components/menu/menu.d.ts +19 -31
  227. package/dist/types/components/playground/parameter-panel.d.ts +1 -4
  228. package/dist/types/components/popover/hover-card.d.ts +2 -0
  229. package/dist/types/components/radio/docs.d.ts +15 -0
  230. package/dist/types/components/radio/radio.d.ts +2 -4
  231. package/dist/types/components/settings/settings.d.ts +2 -0
  232. package/dist/types/components/sidebar/sidebar.d.ts +13 -35
  233. package/dist/types/components/tabs/tabs.d.ts +15 -0
  234. package/dist/types/components/theme-menu/docs.d.ts +2 -0
  235. package/dist/types/components/theme-menu/theme-menu.d.ts +6 -5
  236. package/dist/types/components/thumbnail/docs.d.ts +10 -0
  237. package/dist/types/components/thumbnail/index.d.ts +1 -0
  238. package/dist/types/components/thumbnail/thumbnail.d.ts +26 -0
  239. package/dist/types/components/toast/toast.d.ts +5 -12
  240. package/dist/types/components/toolbar/toolbar.d.ts +1 -6
  241. package/dist/types/components/tooltip/tooltip.d.ts +2 -4
  242. package/dist/types/components/tooltip/trigger-props.d.ts +0 -1
  243. package/dist/types/format/index.d.ts +5 -5
  244. package/dist/types/hooks/use-scroll-margin.d.ts +1 -1
  245. package/dist/types/icons/groups.d.ts +3 -3
  246. package/dist/types/icons/vocabulary.d.ts +20 -0
  247. package/dist/types/index.d.ts +2 -0
  248. package/dist/types/utils/inset.d.ts +4 -0
  249. package/dist/types/utils/link-provider.d.ts +1 -1
  250. package/dist/types/utils/merge-refs.d.ts +3 -0
  251. package/dist/types/utils/portal-context.d.ts +1 -1
  252. package/dist/utils.js +3 -3
  253. package/foundations/shape.md +1 -1
  254. package/package.json +2 -2
  255. package/dist/chunks/app-frame-C8csevkL.js.map +0 -1
  256. package/dist/chunks/calendar--YemJsv4.js.map +0 -1
  257. package/dist/chunks/checkbox-CDfC6E-M.js.map +0 -1
  258. package/dist/chunks/code-block-U5fCqwgC.js.map +0 -1
  259. package/dist/chunks/combobox-BARyrpXH.js +0 -314
  260. package/dist/chunks/combobox-BARyrpXH.js.map +0 -1
  261. package/dist/chunks/core-Bl9NrBLS.js.map +0 -1
  262. package/dist/chunks/de-BnNQtBSV.js.map +0 -1
  263. package/dist/chunks/dialog-DQ9vZ7vr.js +0 -353
  264. package/dist/chunks/dialog-DQ9vZ7vr.js.map +0 -1
  265. package/dist/chunks/icon-CBzvyEqC.js +0 -91
  266. package/dist/chunks/icon-CBzvyEqC.js.map +0 -1
  267. package/dist/chunks/identity-DPuTkMsa.js.map +0 -1
  268. package/dist/chunks/input-TyLIaQ5k.js.map +0 -1
  269. package/dist/chunks/inset-BnBj8NJV.js.map +0 -1
  270. package/dist/chunks/link-provider-BsUxhZKG.js +0 -27
  271. package/dist/chunks/link-provider-BsUxhZKG.js.map +0 -1
  272. package/dist/chunks/menu-fl_QQb38.js.map +0 -1
  273. package/dist/chunks/nav-sheet-B2rNb8GB.js +0 -60
  274. package/dist/chunks/nav-sheet-B2rNb8GB.js.map +0 -1
  275. package/dist/chunks/sidebar-DtFlejU7.js.map +0 -1
  276. package/dist/chunks/tooltip-BMQ9BtPp.js +0 -151
  277. package/dist/chunks/tooltip-BMQ9BtPp.js.map +0 -1
  278. package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +0 -1
  279. package/dist/chunks/zh-CN-CKffAT7j.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"copy-button-7-irieJw.js","names":["__icon_Tick02Icon","__icon_Copy01Icon","cn","useUiText","Icon","useTruncated","Button","useCopy","KAESO_COPY_BUTTON_VARIANTS","KAESO_COPY_BUTTON_DEFAULT_VARIANTS","CopyButton","labelProp","props","hover","setHover","useState","t","label","done","Tooltip","copied","Tick02Icon","Copy01Icon","copy","value","onCopy","KAESO_CLIPBOARD_TEXT_VARIANTS","KAESO_CLIPBOARD_TEXT_DEFAULT_VARIANTS","ClipboardText","size","className","display","ICON_ROOM","sharesLine","sibling","style","parent","hasRoomAfter","node","el","overflow","useRoomAfter","button","setButton","room","setRoom","useLayoutEffect","touch","check","watch","InlineCopyText","buttonRef","useCallback","ref","text","useRef","cut","children"],"sources":["../../src/components/copy-button/copy-button.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef, useCallback, useLayoutEffect, useRef, useState, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useCopy } from \"../../hooks/use-copy.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { Button, type ButtonSize } from \"../button/button.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Tick02Icon as __icon_Tick02Icon, Copy01Icon as __icon_Copy01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_COPY_BUTTON_VARIANTS = {\n variant: {\n ghost: { classes: \"material-ghost\" },\n secondary: { classes: \"material-secondary\" },\n },\n size: {\n xs: { classes: \"size-24\" },\n sm: { classes: \"size-32\" },\n md: { classes: \"size-36\" },\n lg: { classes: \"size-40\" },\n xl: { classes: \"size-48\" },\n },\n} as const;\nexport const KAESO_COPY_BUTTON_DEFAULT_VARIANTS = { variant: \"ghost\", size: \"sm\" } as const;\n\nexport interface CopyButtonProps {\n value: string;\n label?: string | undefined;\n size?: ButtonSize | undefined;\n variant?: keyof typeof KAESO_COPY_BUTTON_VARIANTS.variant | undefined;\n onCopy?: ((value: string) => void) | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const CopyButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, CopyButtonProps>(function CopyButton(\n { value, label: labelProp, size = \"sm\", variant = \"ghost\", onCopy, className, ...props },\n ref,\n) {\n const { copied, copy } = useCopy();\n const [hover, setHover] = useState(false);\n const t = useUiText();\n const label = labelProp ?? t(\"copyButton.copy\", \"Copy\");\n const done = t(\"copyButton.copied\", \"Copied\");\n return (\n <Tooltip content={copied ? done : label} open={copied || hover} onOpenChange={setHover}>\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n size={size}\n variant={variant}\n icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n aria-label={copied ? done : label}\n className={className}\n onClick={async () => {\n if (await copy(value)) onCopy?.(value);\n }}\n {...props}\n />\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CopyButton.displayName = \"CopyButton\";\n\nexport const KAESO_CLIPBOARD_TEXT_VARIANTS = {\n size: {\n sm: { classes: \"h-32 pl-12 pr-0 text-small\" },\n md: { classes: \"h-36 pl-16 pr-2 text-small\" },\n lg: { classes: \"h-40 pl-18 pr-4 text-small\" },\n },\n} as const;\nexport const KAESO_CLIPBOARD_TEXT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface ClipboardTextProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n value: string;\n display?: ReactNode | undefined;\n label?: string | undefined;\n size?: keyof typeof KAESO_CLIPBOARD_TEXT_VARIANTS.size | undefined;\n}\n\nexport const ClipboardText = /* @__PURE__ */ forwardRef<HTMLDivElement, ClipboardTextProps>(function ClipboardText(\n { value, display, label, size = \"md\", className, ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={cn(\"inline-flex min-w-0 max-w-full items-center gap-8 rounded-pill bg-fill-1\", KAESO_CLIPBOARD_TEXT_VARIANTS.size[size].classes, className)}\n {...props}\n >\n <span className=\"mono min-w-0 flex-1 truncate text-fg select-all\">{display ?? value}</span>\n <CopyButton value={value} label={label} size=\"sm\" />\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ClipboardText.displayName = \"ClipboardText\";\n\nexport interface InlineCopyTextProps extends Omit<HTMLAttributes<HTMLButtonElement>, \"children\" | \"onCopy\"> {\n value: string;\n children?: ReactNode | undefined;\n label?: string | undefined;\n onCopy?: ((value: string) => void) | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst ICON_ROOM = 18;\n\nfunction sharesLine(sibling: Node, parent: CSSStyleDeclaration): boolean {\n if (sibling.nodeType === Node.TEXT_NODE) return !!sibling.textContent?.trim();\n if (!(sibling instanceof Element)) return false;\n const style = getComputedStyle(sibling);\n if (style.display === \"none\" || style.position === \"absolute\" || style.position === \"fixed\") return false;\n if (parent.display.endsWith(\"flex\")) return !parent.flexDirection.startsWith(\"column\");\n if (parent.display === \"block\" || parent.display === \"flow-root\" || parent.display === \"list-item\") return style.display.startsWith(\"inline\");\n return true;\n}\n\nfunction hasRoomAfter(el: Element): boolean {\n let node = el;\n for (let parent = el.parentElement; parent; node = parent, parent = parent.parentElement) {\n const style = getComputedStyle(parent);\n for (let sibling = node.nextSibling; sibling; sibling = sibling.nextSibling) if (sharesLine(sibling, style)) return false;\n if ((parseFloat(style.direction === \"rtl\" ? style.paddingLeft : style.paddingRight) || 0) >= ICON_ROOM) return true;\n const overflow = style.overflowX || style.overflow;\n if (overflow && overflow !== \"visible\") return false;\n }\n return true;\n}\n\nfunction useRoomAfter() {\n const [button, setButton] = useState<HTMLButtonElement | null>(null);\n const [room, setRoom] = useState(false);\n useLayoutEffect(() => {\n const parent = button?.parentElement;\n if (!button || !parent) return;\n const touch = typeof window.matchMedia === \"function\" ? window.matchMedia(\"(pointer: coarse)\") : null;\n const check = () => setRoom(!touch?.matches && hasRoomAfter(button));\n check();\n const watch = new MutationObserver(check);\n watch.observe(parent, { childList: true });\n touch?.addEventListener(\"change\", check);\n return () => {\n watch.disconnect();\n touch?.removeEventListener(\"change\", check);\n };\n }, [button]);\n return [room, setButton] as const;\n}\n\nexport const InlineCopyText = /* @__PURE__ */ forwardRef<HTMLButtonElement, InlineCopyTextProps>(function InlineCopyText(\n { value, children, label, onCopy, className, ...props },\n ref,\n) {\n const { copied, copy } = useCopy();\n const [hover, setHover] = useState(false);\n const [room, setButton] = useRoomAfter();\n const buttonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n setButton(el);\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n },\n [ref, setButton],\n );\n const text = useRef<HTMLSpanElement>(null);\n const cut = useTruncated(text);\n const t = useUiText();\n const done = t(\"copyButton.copied\", \"Copied\");\n return (\n <Tooltip\n content={copied ? done : cut ? value : (label ?? t(\"copyButton.copy\", \"Copy\"))}\n shape={cut && !copied ? \"multiline\" : \"pill\"}\n open={copied || hover}\n onOpenChange={setHover}\n >\n <button\n ref={buttonRef}\n type=\"button\"\n onClick={async () => {\n if (await copy(value)) onCopy?.(value);\n }}\n className={cn(\n \"group/copy relative -mx-4 inline-flex max-w-full-bleed-4 min-w-0 items-center gap-4 rounded-code px-4 align-baseline mono text-small text-fg transition-control focus-ring tap-target\",\n \"hover:bg-fill-1 active:bg-fill-2 cursor-copy\",\n className,\n )}\n {...props}\n >\n <span ref={text} className=\"min-w-0 truncate\">\n {children ?? value}\n </span>\n <Icon\n icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n size=\"xs\"\n className={cn(\n room && \"pointer-events-none absolute start-full group-hover/copy:pointer-events-auto group-focus-visible/copy:pointer-events-auto\",\n \"text-fg-tertiary opacity-0 transition-control group-hover/copy:opacity-100 coarse:opacity-100 group-focus-visible/copy:opacity-100\",\n copied && \"pointer-events-auto opacity-100 text-fg\",\n )}\n />\n <span className=\"sr-only\" aria-live=\"polite\">\n {copied ? done : \"\"}\n </span>\n </button>\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") InlineCopyText.displayName = \"InlineCopyText\";\n"],"mappings":";;;;;;;;;;;;AAWA,IAAaQ,IAA6B;CACxC,SAAS;EACP,OAAO,EAAE,SAAS,iBAAiB;EACnC,WAAW,EAAE,SAAS,qBAAqB;CAC7C;CACA,MAAM;EACJ,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;CAC3B;AACF,GACaC,IAAqC;CAAE,SAAS;CAAS,MAAM;AAAK,GAYpEC,IAA6B,kBAA+C,SACvF,EAAE,UAAO,OAAOC,GAAW,UAAO,MAAM,aAAU,SAAS,WAAQ,cAAW,GAAGC,KACjF,GACA;CACA,IAAM,EAAE,WAAQ,YAASL,EAAQ,GAC3B,CAACM,GAAOC,KAAYC,EAAS,EAAK,GAClCC,IAAIb,EAAU,GACdc,IAAQN,KAAaK,EAAE,mBAAmB,MAAM,GAChDE,IAAOF,EAAE,qBAAqB,QAAQ;CAC5C,OACE,kBAACG,GAAD;EAAS,SAASC,IAASF,IAAOD;EAAO,MAAMG,KAAUP;EAAO,cAAcC;EAC5E,UAAA,kBAACR,GAAD;GACO;GACL,OAAM;GACA;GACG;GACT,MAAMc,IAASpB,IAAoBC;GACnC,cAAYmB,IAASF,IAAOD;GACjB;GACX,SAAS,YAAY;IACnB,AAAI,MAAMM,EAAKC,CAAK,KAAGC,IAASD,CAAK;GACvC;GACA,GAAIZ;EACL,CAAA;CACM,CAAA;AAEb,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc;AAEpE,IAAac,IAAgC,EAC3C,MAAM;CACJ,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;AAC9C,EACF,GACaC,IAAwC,EAAE,MAAM,KAAK,GASrDC,IAAgC,kBAA+C,SAC1F,EAAE,UAAO,YAAS,UAAO,UAAO,MAAM,cAAW,GAAGhB,KACpD,GACA;CACA,OACE,kBAAC,OAAD;EACO;EACL,WAAWV,EAAG,4EAA4EwB,EAA8B,KAAKG,EAAK,CAAC,SAASC,CAAS;EACrJ,GAAIlB;EAHN,UAAA,CAKE,kBAAC,QAAD;GAAM,WAAU;GAAmD,UAAAmB,KAAWP;EAAY,CAAA,GAC1F,kBAACd,GAAD;GAAmB;GAAc;GAAO,MAAK;EAAM,CAAA,CAChD;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAc,cAAc;AAUvE,IAAMsB,IAAY;AAElB,SAASC,EAAW,GAAe,GAAsC;CACvE,IAAIC,EAAQ,aAAa,KAAK,WAAW,OAAO,CAAC,CAACA,EAAQ,aAAa,KAAK;CAC5E,IAAI,EAAEA,aAAmB,UAAU,OAAO;CAC1C,IAAMC,IAAQ,iBAAiBD,CAAO;CAItC,OAHIC,EAAM,YAAY,UAAUA,EAAM,aAAa,cAAcA,EAAM,aAAa,UAAgB,KAChGC,EAAO,QAAQ,SAAS,MAAM,IAAU,CAACA,EAAO,cAAc,WAAW,QAAQ,IACjFA,EAAO,YAAY,WAAWA,EAAO,YAAY,eAAeA,EAAO,YAAY,cAAoBD,EAAM,QAAQ,WAAW,QAAQ,IACrI;AACT;AAEA,SAASE,EAAa,GAAsB;CAC1C,IAAIC,IAAOC;CACX,KAAK,IAAIH,IAASG,EAAG,eAAeH,GAAQ,IAAOA,GAAQ,IAASA,EAAO,eAAe;EACxF,IAAMD,IAAQ,iBAAiBC,CAAM;EACrC,KAAK,IAAIF,IAAUI,EAAK,aAAaJ,GAAS,IAAUA,EAAQ,aAAa,IAAID,EAAWC,GAASC,CAAK,GAAG,OAAO;EACpH,KAAK,WAAWA,EAAM,cAAc,QAAQA,EAAM,cAAcA,EAAM,YAAY,KAAK,MAAMH,GAAW,OAAO;EAC/G,IAAMQ,IAAWL,EAAM,aAAaA,EAAM;EAC1C,IAAIK,KAAYA,MAAa,WAAW,OAAO;CACjD;CACA,OAAO;AACT;AAEA,SAASC,IAAe;CACtB,IAAM,CAACC,GAAQC,KAAa5B,EAAmC,IAAI,GAC7D,CAAC6B,GAAMC,KAAW9B,EAAS,EAAK;CAetC,OAdA+B,QAAsB;EACpB,IAAMV,IAASM,GAAQ;EACvB,IAAI,CAACA,KAAU,CAACN,GAAQ;EACxB,IAAMW,IAAQ,OAAO,OAAO,cAAe,aAAa,OAAO,WAAW,mBAAmB,IAAI,MAC3FC,UAAcH,EAAQ,CAACE,GAAO,WAAWV,EAAaK,CAAM,CAAC;EACnE,EAAM;EACN,IAAMO,IAAQ,IAAI,iBAAiBD,CAAK;EAGxC,OAFAC,EAAM,QAAQb,GAAQ,EAAE,WAAW,GAAK,CAAC,GACzCW,GAAO,iBAAiB,UAAUC,CAAK,SAC1B;GAEX,AADAC,EAAM,WAAW,GACjBF,GAAO,oBAAoB,UAAUC,CAAK;EAC5C;CACF,GAAG,CAACN,CAAM,CAAC,GACJ,CAACE,GAAMD,CAAS;AACzB;AAEA,IAAaO,IAAiC,kBAAmD,SAC/F,EAAE,UAAO,aAAU,UAAO,WAAQ,cAAW,GAAGtC,KAChD,GACA;CACA,IAAM,EAAE,WAAQ,YAASL,EAAQ,GAC3B,CAACM,GAAOC,KAAYC,EAAS,EAAK,GAClC,CAAC6B,GAAMD,KAAaF,EAAa,GACjCU,IAAYC,GACf,MAAiC;EAEhC,AADAT,EAAUJ,CAAE,GACR,OAAOc,KAAQ,aAAYA,EAAId,CAAE,IAC5Bc,MAAK,EAAI,UAAUd;CAC9B,GACA,CAACc,GAAKV,CAAS,CACjB,GACMW,IAAOC,EAAwB,IAAI,GACnCC,IAAMnD,EAAaiD,CAAI,GACvBtC,IAAIb,EAAU,GACde,IAAOF,EAAE,qBAAqB,QAAQ;CAC5C,OACE,kBAACG,GAAD;EACE,SAASC,IAASF,IAAOsC,IAAMhC,IAASP,KAASD,EAAE,mBAAmB,MAAM;EAC5E,OAAOwC,KAAO,CAACpC,IAAS,cAAc;EACtC,MAAMA,KAAUP;EAChB,cAAcC;EAEd,UAAA,kBAAC,UAAD;GACE,KAAKqC;GACL,MAAK;GACL,SAAS,YAAY;IACnB,AAAI,MAAM5B,EAAKC,CAAK,KAAGC,IAASD,CAAK;GACvC;GACA,WAAWtB,EACT,yLACA,gDACA4B,CACF;GACA,GAAIlB;GAXN,UAAA;IAaE,kBAAC,QAAD;KAAM,KAAK0C;KAAM,WAAU;KACxB,UAAAG,KAAYjC;IACT,CAAA;IACN,kBAACpB,GAAD;KACE,MAAMgB,IAASpB,IAAoBC;KACnC,MAAK;KACL,WAAWC,EACT0C,KAAQ,6HACR,sIACAxB,KAAU,yCACZ;IACD,CAAA;IACD,kBAAC,QAAD;KAAM,WAAU;KAAU,aAAU;KACjC,UAAAA,IAASF,IAAO;IACb,CAAA;GACA;;CACD,CAAA;AAEb,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAe,cAAc"}
1
+ {"version":3,"file":"copy-button-FJvPJn72.js","names":["__icon_Tick02Icon","__icon_Copy01Icon","cn","useUiText","Icon","useTruncated","Button","useCopy","KAESO_COPY_BUTTON_VARIANTS","KAESO_COPY_BUTTON_DEFAULT_VARIANTS","CopyButton","labelProp","props","hover","setHover","useState","t","label","done","Tooltip","copied","Tick02Icon","Copy01Icon","copy","value","onCopy","KAESO_CLIPBOARD_TEXT_VARIANTS","KAESO_CLIPBOARD_TEXT_DEFAULT_VARIANTS","ClipboardText","size","className","display","ICON_ROOM","sharesLine","sibling","style","parent","hasRoomAfter","node","el","overflow","useRoomAfter","button","setButton","room","setRoom","useLayoutEffect","touch","check","watch","InlineCopyText","buttonRef","useCallback","ref","text","useRef","cut","children"],"sources":["../../src/components/copy-button/copy-button.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef, useCallback, useLayoutEffect, useRef, useState, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useCopy } from \"../../hooks/use-copy.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { Button, type ButtonSize } from \"../button/button.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Tick02Icon as __icon_Tick02Icon, Copy01Icon as __icon_Copy01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_COPY_BUTTON_VARIANTS = {\n variant: {\n ghost: { classes: \"material-ghost\" },\n secondary: { classes: \"material-secondary\" },\n },\n size: {\n xs: { classes: \"size-24\" },\n sm: { classes: \"size-32\" },\n md: { classes: \"size-36\" },\n lg: { classes: \"size-40\" },\n xl: { classes: \"size-48\" },\n },\n} as const;\nexport const KAESO_COPY_BUTTON_DEFAULT_VARIANTS = { variant: \"ghost\", size: \"sm\" } as const;\n\nexport interface CopyButtonProps {\n value: string;\n label?: string | undefined;\n size?: ButtonSize | undefined;\n variant?: keyof typeof KAESO_COPY_BUTTON_VARIANTS.variant | undefined;\n onCopy?: ((value: string) => void) | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const CopyButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, CopyButtonProps>(function CopyButton(\n { value, label: labelProp, size = \"sm\", variant = \"ghost\", onCopy, className, ...props },\n ref,\n) {\n const { copied, copy } = useCopy();\n const [hover, setHover] = useState(false);\n const t = useUiText();\n const label = labelProp ?? t(\"copyButton.copy\", \"Copy\");\n const done = t(\"copyButton.copied\", \"Copied\");\n return (\n <Tooltip content={copied ? done : label} open={copied || hover} onOpenChange={setHover}>\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n size={size}\n variant={variant}\n icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n aria-label={copied ? done : label}\n className={className}\n onClick={async () => {\n if (await copy(value)) onCopy?.(value);\n }}\n {...props}\n />\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CopyButton.displayName = \"CopyButton\";\n\nexport const KAESO_CLIPBOARD_TEXT_VARIANTS = {\n size: {\n sm: { classes: \"h-32 pl-12 pr-0 text-small\" },\n md: { classes: \"h-36 pl-16 pr-2 text-small\" },\n lg: { classes: \"h-40 pl-18 pr-4 text-small\" },\n },\n} as const;\nexport const KAESO_CLIPBOARD_TEXT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface ClipboardTextProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n value: string;\n display?: ReactNode | undefined;\n label?: string | undefined;\n size?: keyof typeof KAESO_CLIPBOARD_TEXT_VARIANTS.size | undefined;\n}\n\nexport const ClipboardText = /* @__PURE__ */ forwardRef<HTMLDivElement, ClipboardTextProps>(function ClipboardText(\n { value, display, label, size = \"md\", className, ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={cn(\"inline-flex min-w-0 max-w-full items-center gap-8 rounded-pill bg-fill-1\", KAESO_CLIPBOARD_TEXT_VARIANTS.size[size].classes, className)}\n {...props}\n >\n <span className=\"mono min-w-0 flex-1 truncate text-fg select-all\">{display ?? value}</span>\n <CopyButton value={value} label={label} size=\"sm\" />\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ClipboardText.displayName = \"ClipboardText\";\n\nexport interface InlineCopyTextProps extends Omit<HTMLAttributes<HTMLButtonElement>, \"children\" | \"onCopy\"> {\n value: string;\n children?: ReactNode | undefined;\n label?: string | undefined;\n onCopy?: ((value: string) => void) | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst ICON_ROOM = 18;\n\nfunction sharesLine(sibling: Node, parent: CSSStyleDeclaration): boolean {\n if (sibling.nodeType === Node.TEXT_NODE) return !!sibling.textContent?.trim();\n if (!(sibling instanceof Element)) return false;\n const style = getComputedStyle(sibling);\n if (style.display === \"none\" || style.position === \"absolute\" || style.position === \"fixed\") return false;\n if (parent.display.endsWith(\"flex\")) return !parent.flexDirection.startsWith(\"column\");\n if (parent.display === \"block\" || parent.display === \"flow-root\" || parent.display === \"list-item\") return style.display.startsWith(\"inline\");\n return true;\n}\n\nfunction hasRoomAfter(el: Element): boolean {\n let node = el;\n for (let parent = el.parentElement; parent; node = parent, parent = parent.parentElement) {\n const style = getComputedStyle(parent);\n for (let sibling = node.nextSibling; sibling; sibling = sibling.nextSibling) if (sharesLine(sibling, style)) return false;\n if ((parseFloat(style.direction === \"rtl\" ? style.paddingLeft : style.paddingRight) || 0) >= ICON_ROOM) return true;\n const overflow = style.overflowX || style.overflow;\n if (overflow && overflow !== \"visible\") return false;\n }\n return true;\n}\n\nfunction useRoomAfter() {\n const [button, setButton] = useState<HTMLButtonElement | null>(null);\n const [room, setRoom] = useState(false);\n useLayoutEffect(() => {\n const parent = button?.parentElement;\n if (!button || !parent) return;\n const touch = typeof window.matchMedia === \"function\" ? window.matchMedia(\"(pointer: coarse)\") : null;\n const check = () => setRoom(!touch?.matches && hasRoomAfter(button));\n check();\n const watch = new MutationObserver(check);\n watch.observe(parent, { childList: true });\n touch?.addEventListener(\"change\", check);\n return () => {\n watch.disconnect();\n touch?.removeEventListener(\"change\", check);\n };\n }, [button]);\n return [room, setButton] as const;\n}\n\nexport const InlineCopyText = /* @__PURE__ */ forwardRef<HTMLButtonElement, InlineCopyTextProps>(function InlineCopyText(\n { value, children, label, onCopy, className, ...props },\n ref,\n) {\n const { copied, copy } = useCopy();\n const [hover, setHover] = useState(false);\n const [room, setButton] = useRoomAfter();\n const buttonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n setButton(el);\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n },\n [ref, setButton],\n );\n const text = useRef<HTMLSpanElement>(null);\n const cut = useTruncated(text);\n const t = useUiText();\n const done = t(\"copyButton.copied\", \"Copied\");\n return (\n <Tooltip\n content={copied ? done : cut ? value : (label ?? t(\"copyButton.copy\", \"Copy\"))}\n shape={cut && !copied ? \"multiline\" : \"pill\"}\n open={copied || hover}\n onOpenChange={setHover}\n >\n <button\n ref={buttonRef}\n type=\"button\"\n onClick={async () => {\n if (await copy(value)) onCopy?.(value);\n }}\n className={cn(\n \"group/copy relative -mx-4 inline-flex max-w-full-bleed-4 min-w-0 items-center gap-4 rounded-code px-4 align-baseline mono text-small text-fg transition-control focus-ring tap-target\",\n \"hover:bg-fill-1 active:bg-fill-2 cursor-copy\",\n className,\n )}\n {...props}\n >\n <span ref={text} className=\"min-w-0 truncate\">\n {children ?? value}\n </span>\n <Icon\n icon={copied ? __icon_Tick02Icon : __icon_Copy01Icon}\n size=\"xs\"\n className={cn(\n room && \"pointer-events-none absolute start-full group-hover/copy:pointer-events-auto group-focus-visible/copy:pointer-events-auto\",\n \"text-fg-tertiary opacity-0 transition-control group-hover/copy:opacity-100 coarse:opacity-100 group-focus-visible/copy:opacity-100\",\n copied && \"pointer-events-auto opacity-100 text-fg\",\n )}\n />\n <span className=\"sr-only\" aria-live=\"polite\">\n {copied ? done : \"\"}\n </span>\n </button>\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") InlineCopyText.displayName = \"InlineCopyText\";\n"],"mappings":"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"}
@@ -1,17 +1,18 @@
1
1
  "use client";
2
2
  import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { i as t, n } from "./context-BELWW79w.js";
4
- import { t as r } from "./observe-resize-DhxhmoyB.js";
5
- import { n as i } from "./button-Dzu7_csE.js";
6
- import { r as a } from "./skeleton-Dcz57Zyp.js";
7
- import { useEffect as o, useLayoutEffect as s, useRef as c, useState as l } from "react";
8
- import { jsx as u, jsxs as d } from "react/jsx-runtime";
9
- import { motion as f, tokenKindSeries as p, tokenKindTint as m } from "@logicplanes/kaeso-tokens";
4
+ import { s as r } from "./tooltip-OcwO0VUT.js";
5
+ import { t as i } from "./observe-resize-DhxhmoyB.js";
6
+ import { n as a } from "./button-CzuxqawA.js";
7
+ import { r as o } from "./skeleton-Dcz57Zyp.js";
8
+ import { forwardRef as s, useEffect as c, useLayoutEffect as l, useMemo as u, useRef as d, useState as f } from "react";
9
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
10
+ import { motion as h, tokenKindSeries as g, tokenKindTint as _ } from "@logicplanes/kaeso-tokens";
10
11
  //#region src/components/charts/core.tsx
11
- function h(e, t) {
12
+ function v(e, t) {
12
13
  return t.every(Number.isInteger) ? e.filter(Number.isInteger) : e;
13
14
  }
14
- var g = [
15
+ var y = [
15
16
  "var(--k-viz-1)",
16
17
  "var(--k-viz-2)",
17
18
  "var(--k-viz-3)",
@@ -20,7 +21,7 @@ var g = [
20
21
  "var(--k-viz-6)",
21
22
  "var(--k-viz-7)",
22
23
  "var(--k-viz-8)"
23
- ], _ = [
24
+ ], b = [
24
25
  "var(--k-viz-thin-1)",
25
26
  "var(--k-viz-thin-2)",
26
27
  "var(--k-viz-thin-3)",
@@ -30,12 +31,12 @@ var g = [
30
31
  "var(--k-viz-thin-7)",
31
32
  "var(--k-viz-thin-8)"
32
33
  ];
33
- function v(e) {
34
+ function x(e) {
34
35
  let t = 2166136261;
35
36
  for (let n = 0; n < e.length; n++) t = Math.imul(t ^ e.charCodeAt(n), 16777619);
36
37
  return Math.abs(t);
37
38
  }
38
- var y = {
39
+ var S = {
39
40
  1: 6,
40
41
  6: 1,
41
42
  2: 5,
@@ -43,33 +44,33 @@ var y = {
43
44
  3: 7,
44
45
  7: 3
45
46
  };
46
- function b(e) {
47
- return v(e) % g.length;
47
+ function C(e) {
48
+ return x(e) % y.length;
48
49
  }
49
- function x(e) {
50
- let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), r = (e) => n.has(e) || y[e] !== void 0 && n.has(y[e]);
50
+ function w(e) {
51
+ let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), r = (e) => n.has(e) || S[e] !== void 0 && n.has(S[e]);
51
52
  for (let i of e) {
52
53
  if (t.has(i)) continue;
53
- let e = b(i);
54
+ let e = C(i);
54
55
  if (r(e)) {
55
- let t = [...g.keys()];
56
+ let t = [...y.keys()];
56
57
  e = t.find((e) => !r(e)) ?? t.find((e) => !n.has(e)) ?? e;
57
58
  }
58
59
  n.add(e), t.set(i, e);
59
60
  }
60
61
  return t;
61
62
  }
62
- function S(e, t = !1) {
63
- return new Map([...x(e)].map(([e, n]) => [e, (t ? _ : g)[n]]));
63
+ function T(e, t = !1) {
64
+ return new Map([...w(e)].map(([e, n]) => [e, (t ? b : y)[n]]));
64
65
  }
65
- var C = (e, t = !1) => (t ? _ : g)[b(e)], w = (e, t = !1) => m[e] ? "var(--k-viz-1-soft)" : (t ? _ : g)[p[e] - 1], T = [
66
+ var E = (e, t = !1) => (t ? b : y)[C(e)], D = (e, t = !1) => _[e] ? "var(--k-viz-1-soft)" : (t ? b : y)[g[e] - 1], O = [
66
67
  "input",
67
68
  "cacheRead",
68
69
  "cacheWrite",
69
70
  "output",
70
71
  "reasoning"
71
72
  ];
72
- function E(e, t = n) {
73
+ function ee(e, t = n) {
73
74
  switch (e) {
74
75
  case "input": return t("tokenKind.input", "Input");
75
76
  case "output": return t("tokenKind.output", "Output");
@@ -78,26 +79,26 @@ function E(e, t = n) {
78
79
  case "reasoning": return t("tokenKind.reasoning", "Reasoning");
79
80
  }
80
81
  }
81
- function D() {
82
- let [e, t] = l(null), [n, i] = l({
82
+ function te() {
83
+ let [e, t] = f(null), [n, r] = f({
83
84
  width: 0,
84
85
  height: 0
85
86
  });
86
- return s(() => {
87
+ return l(() => {
87
88
  if (!e) return;
88
- let t = () => i({
89
+ let t = () => r({
89
90
  width: Math.round(e.clientWidth),
90
91
  height: Math.round(e.clientHeight)
91
92
  });
92
- return t(), r([e], t);
93
+ return t(), i([e], t);
93
94
  }, [e]), [t, n];
94
95
  }
95
- var O = (e) => 1 - (1 - e) ** 3, ee = () => typeof matchMedia < "u" && matchMedia("(prefers-reduced-motion: reduce)").matches, k = (e, t, n) => n >= 1 ? t : t.map((t, r) => (e[r] ?? t) + (t - (e[r] ?? t)) * O(n));
96
- function A(e, t) {
97
- return e.length === t.length && e.some((e) => e !== 0) && t.some((e) => e !== 0) && e.some((e, n) => e !== t[n]) && !ee();
96
+ var k = (e) => 1 - (1 - e) ** 3, A = () => typeof matchMedia < "u" && matchMedia("(prefers-reduced-motion: reduce)").matches, j = (e, t, n) => n >= 1 ? t : t.map((t, r) => (e[r] ?? t) + (t - (e[r] ?? t)) * k(n));
97
+ function M(e, t) {
98
+ return e.length === t.length && e.some((e) => e !== 0) && t.some((e) => e !== 0) && e.some((e, n) => e !== t[n]) && !A();
98
99
  }
99
- function j(e, t = !1) {
100
- let n = e.join(","), [r, i] = l({
100
+ function N(e, t = !1) {
101
+ let n = e.join(","), [r, i] = f({
101
102
  key: n,
102
103
  from: e,
103
104
  to: e,
@@ -105,8 +106,8 @@ function j(e, t = !1) {
105
106
  still: t
106
107
  }), a = r;
107
108
  if (r.key !== n || r.still !== t) {
108
- let o = k(r.from, r.to, r.t);
109
- a = !t && !r.still && A(o, e) ? {
109
+ let o = j(r.from, r.to, r.t);
110
+ a = !t && !r.still && M(o, e) ? {
110
111
  key: n,
111
112
  from: o,
112
113
  to: e,
@@ -120,21 +121,21 @@ function j(e, t = !1) {
120
121
  still: t
121
122
  }, i(a);
122
123
  }
123
- let s = a.t < 1;
124
- return o(() => {
125
- if (!s) return;
124
+ let o = a.t < 1;
125
+ return c(() => {
126
+ if (!o) return;
126
127
  let e = performance.now(), t = 0, r = () => {
127
- let a = Math.max(0, Math.min(1, (performance.now() - e) / f.duration.chart));
128
+ let a = Math.max(0, Math.min(1, (performance.now() - e) / h.duration.chart));
128
129
  i((e) => e.key === n ? {
129
130
  ...e,
130
131
  t: a
131
132
  } : e), a < 1 && (t = requestAnimationFrame(r));
132
133
  };
133
134
  return t = requestAnimationFrame(r), () => cancelAnimationFrame(t);
134
- }, [n, s]), k(a.from, a.to, a.t);
135
+ }, [n, o]), j(a.from, a.to, a.t);
135
136
  }
136
- function M(e, t, n = !1) {
137
- let r = e.some((e) => e !== 0), i = j(r ? [...e, t] : e, n);
137
+ function P(e, t, n = !1) {
138
+ let r = e.some((e) => e !== 0), i = N(r ? [...e, t] : e, n);
138
139
  return r ? {
139
140
  values: i.slice(0, -1),
140
141
  top: i[i.length - 1] ?? t
@@ -143,82 +144,84 @@ function M(e, t, n = !1) {
143
144
  top: t
144
145
  };
145
146
  }
146
- function N({ label: n, height: r, children: o, table: s, legend: c, state: f = {}, className: p, toggle: m = !0 }) {
147
- let [h, g] = l(!1), _ = t();
148
- return /* @__PURE__ */ d("figure", {
149
- className: e("@container flex min-w-0 flex-col gap-12", p),
147
+ var F = /* @__PURE__ */ s(function({ label: n, height: r, children: i, table: s, legend: c, state: l = {}, className: u, toggle: d = !0 }, h) {
148
+ let [g, _] = f(!1), v = t();
149
+ return /* @__PURE__ */ m("figure", {
150
+ ref: h,
151
+ className: e("@container flex min-w-0 flex-col gap-12", u),
150
152
  "aria-label": n,
151
153
  children: [
152
- f.error ? /* @__PURE__ */ d("div", {
154
+ l.error ? /* @__PURE__ */ m("div", {
153
155
  className: "flex flex-col items-center justify-center gap-8 text-center",
154
156
  style: { height: r },
155
- children: [/* @__PURE__ */ u("p", {
157
+ children: [/* @__PURE__ */ p("p", {
156
158
  role: "alert",
157
159
  className: "text-body text-fg-secondary",
158
- children: _("chartFrame.loadFailed", "Couldn't load this chart")
159
- }), f.onRetry && /* @__PURE__ */ u(i, {
160
+ children: v("chartFrame.loadFailed", "Couldn't load this chart")
161
+ }), l.onRetry && /* @__PURE__ */ p(a, {
160
162
  size: "sm",
161
- onClick: f.onRetry,
162
- children: _("chartFrame.tryAgain", "Try again")
163
+ onClick: l.onRetry,
164
+ children: v("chartFrame.tryAgain", "Try again")
163
165
  })]
164
- }) : h && s ? /* @__PURE__ */ u("div", {
166
+ }) : g && s ? /* @__PURE__ */ p("div", {
165
167
  className: "overflow-auto scrollbar-quiet",
166
168
  style: { minHeight: r },
167
- children: /* @__PURE__ */ u(P, { table: s })
168
- }) : /* @__PURE__ */ d("div", {
169
+ children: /* @__PURE__ */ p(I, { table: s })
170
+ }) : /* @__PURE__ */ m("div", {
169
171
  className: "relative",
170
172
  style: { height: r },
171
173
  children: [
172
- f.loading && f.empty ? /* @__PURE__ */ u(a, { className: "absolute inset-0" }) : o,
173
- f.loading && !f.empty && /* @__PURE__ */ u(a, { className: "absolute inset-x-0 bottom-0 h-2 rounded-pill" }),
174
- f.empty && !f.loading && /* @__PURE__ */ u("div", {
174
+ l.loading && l.empty ? /* @__PURE__ */ p(o, { className: "absolute inset-0" }) : i,
175
+ l.loading && !l.empty && /* @__PURE__ */ p(o, { className: "absolute inset-x-0 bottom-0 h-2 rounded-pill" }),
176
+ l.empty && !l.loading && /* @__PURE__ */ p("div", {
175
177
  className: "absolute inset-0 flex items-center justify-center text-body text-fg-secondary",
176
- children: f.emptyText ?? _("chartFrame.noData", "No data for this period")
178
+ children: l.emptyText ?? v("chartFrame.noData", "No data for this period")
177
179
  })
178
180
  ]
179
181
  }),
180
- (c || m && s) && /* @__PURE__ */ d("div", {
182
+ (c || d && s) && /* @__PURE__ */ m("div", {
181
183
  className: "flex flex-col gap-8 @chart-legend:flex-row @chart-legend:gap-12",
182
- children: [!h && c && /* @__PURE__ */ u("div", {
184
+ children: [!g && c && /* @__PURE__ */ p("div", {
183
185
  className: "min-w-0 @chart-legend:flex-1",
184
186
  children: c
185
- }), m && s && /* @__PURE__ */ u("button", {
187
+ }), d && s && /* @__PURE__ */ p("button", {
186
188
  type: "button",
187
- onClick: () => g((e) => !e),
188
- "aria-pressed": h,
189
+ onClick: () => _((e) => !e),
190
+ "aria-pressed": g,
189
191
  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",
190
- children: h ? _("chartFrame.viewAsChart", "View as chart") : _("chartFrame.viewAsTable", "View as table")
192
+ children: g ? v("chartFrame.viewAsChart", "View as chart") : v("chartFrame.viewAsTable", "View as table")
191
193
  })]
192
194
  }),
193
- s && !h && /* @__PURE__ */ u("div", {
195
+ s && !g && /* @__PURE__ */ p("div", {
194
196
  className: "sr-only",
195
- children: /* @__PURE__ */ u(P, {
197
+ children: /* @__PURE__ */ p(I, {
196
198
  table: s,
197
199
  caption: n
198
200
  })
199
201
  })
200
202
  ]
201
203
  });
202
- }
203
- function P({ table: t, caption: n }) {
204
- return /* @__PURE__ */ d("table", {
204
+ });
205
+ process.env.NODE_ENV !== "production" && (F.displayName = "ChartFrame");
206
+ function I({ table: t, caption: n }) {
207
+ return /* @__PURE__ */ m("table", {
205
208
  className: "w-full text-body",
206
209
  children: [
207
- n && /* @__PURE__ */ u("caption", {
210
+ n && /* @__PURE__ */ p("caption", {
208
211
  className: "sr-only",
209
212
  children: n
210
213
  }),
211
- /* @__PURE__ */ u("thead", { children: /* @__PURE__ */ u("tr", {
214
+ /* @__PURE__ */ p("thead", { children: /* @__PURE__ */ p("tr", {
212
215
  className: "hairline-b-strong",
213
- children: t.columns.map((t, n) => /* @__PURE__ */ u("th", {
216
+ children: t.columns.map((t, n) => /* @__PURE__ */ p("th", {
214
217
  scope: "col",
215
218
  className: e("h-36 px-12 text-caption font-medium text-fg-secondary first:pl-0", n > 0 ? "text-right" : "text-left"),
216
219
  children: t
217
220
  }, t))
218
221
  }) }),
219
- /* @__PURE__ */ u("tbody", { children: t.rows.map((t, n) => /* @__PURE__ */ u("tr", {
222
+ /* @__PURE__ */ p("tbody", { children: t.rows.map((t, n) => /* @__PURE__ */ p("tr", {
220
223
  className: "hairline-b",
221
- children: t.map((t, n) => /* @__PURE__ */ u("td", {
224
+ children: t.map((t, n) => /* @__PURE__ */ p("td", {
222
225
  className: e("h-36 px-12 first:pl-0", n > 0 ? "text-right tabular" : "text-left"),
223
226
  children: t
224
227
  }, n))
@@ -226,16 +229,17 @@ function P({ table: t, caption: n }) {
226
229
  ]
227
230
  });
228
231
  }
229
- function F({ color: t, shape: n = "square", off: r }) {
230
- return /* @__PURE__ */ u("span", {
232
+ var L = /* @__PURE__ */ s(function({ color: t, shape: n = "square", off: r }, i) {
233
+ return /* @__PURE__ */ p("span", {
234
+ ref: i,
231
235
  "aria-hidden": !0,
232
236
  className: e("shrink-0 transition-control", n === "line" ? "h-2 w-12 rounded-pill" : "size-10 rounded-bar", r && "opacity-30"),
233
237
  style: { background: t }
234
238
  });
235
- }
236
- process.env.NODE_ENV !== "production" && (F.displayName = "Swatch");
237
- var I = (e) => (t) => e(t).replace(/[.,]00(?=\D*$)/, "");
238
- function L(e, t, n = 4) {
239
+ });
240
+ process.env.NODE_ENV !== "production" && (L.displayName = "Swatch");
241
+ var R = (e) => (t) => e(t).replace(/[.,]00(?=\D*$)/, "");
242
+ function z(e, t, n = 4) {
239
243
  for (let r = n; r >= 1; r--) {
240
244
  let n = e.ticks(r);
241
245
  if (new Set(n.map(t)).size === n.length) return n;
@@ -243,29 +247,29 @@ function L(e, t, n = 4) {
243
247
  let [r = 0, i = 0] = e.domain();
244
248
  return t(r) === t(i) ? [r] : [r, i];
245
249
  }
246
- function R(e) {
250
+ function B(e) {
247
251
  if (e instanceof Date) return Number.isNaN(e.getTime()) ? NaN : Date.UTC(e.getFullYear(), e.getMonth(), e.getDate()) / 864e5;
248
252
  let t = /^(\d{4})-(\d{2})-(\d{2})/.exec(e);
249
253
  return t ? Date.UTC(Number(t[1]), Number(t[2]) - 1, Number(t[3])) / 864e5 : NaN;
250
254
  }
251
- var z = (e) => (/* @__PURE__ */ new Date(e * 864e5)).getUTCFullYear();
252
- function B(e) {
253
- let t = e.map(R), n = [];
255
+ var V = (e) => (/* @__PURE__ */ new Date(e * 864e5)).getUTCFullYear();
256
+ function H(e) {
257
+ let t = e.map(B), n = [];
254
258
  return t.forEach((e, r) => {
255
259
  let i = r > 0 ? t[r - 1] : t.length > 1 ? 2 * e - t[1] : NaN;
256
- Number.isFinite(e) && Number.isFinite(i) && z(e) !== z(i) && n.push(r);
260
+ Number.isFinite(e) && Number.isFinite(i) && V(e) !== V(i) && n.push(r);
257
261
  }), n;
258
262
  }
259
- var V = /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\u3000-\u303f\uff00-\uffef]/u;
260
- function H(e) {
263
+ var U = /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\u3000-\u303f\uff00-\uffef]/u;
264
+ function W(e) {
261
265
  let t = 0;
262
- for (let n of e) t += V.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;
263
- return t * J.label.fontSize;
266
+ for (let n of e) t += U.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;
267
+ return t * X.label.fontSize;
264
268
  }
265
- var U = 8;
266
- function W(e, t) {
269
+ var G = 8;
270
+ function K(e, t) {
267
271
  let n = e.map((e) => {
268
- let n = H(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;
272
+ let n = W(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;
269
273
  return {
270
274
  key: e.key,
271
275
  x: i,
@@ -274,7 +278,7 @@ function W(e, t) {
274
278
  left: a,
275
279
  right: a + n
276
280
  };
277
- }), r = (e, t) => !e || !t || e.right + U <= t.left;
281
+ }), r = (e, t) => !e || !t || e.right + G <= t.left;
278
282
  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);
279
283
  let i = [];
280
284
  for (let e of n) r(i[i.length - 1], e) && i.push(e);
@@ -285,13 +289,13 @@ function W(e, t) {
285
289
  label: r
286
290
  }));
287
291
  }
288
- function G(e, t, n = {
292
+ function q(e, t, n = {
289
293
  start: Infinity,
290
294
  end: Infinity
291
295
  }, r) {
292
296
  let i = e.length;
293
297
  if (i === 0) return [];
294
- let a = (r) => H(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(H)) + 16), s = t > 0 ? Math.max(1, Math.ceil(o / t - 1e-6)) : i, c = r && r.length === i ? B(r) : [], l = s;
298
+ let a = (r) => W(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(W)) + 16), s = t > 0 ? Math.max(1, Math.ceil(o / t - 1e-6)) : i, c = r && r.length === i ? H(r) : [], l = s;
295
299
  for (let e = s; s > 1 && e <= s * 2; e++) if (c.every((t) => (t - c[0]) % e === 0)) {
296
300
  l = e;
297
301
  break;
@@ -310,14 +314,15 @@ function G(e, t, n = {
310
314
  for (let e = d; e < i; e += l) a(e) && f.push(e);
311
315
  return f;
312
316
  }
313
- function K({ items: n, hidden: r, onToggle: i, onHover: a, shape: o = "square" }) {
314
- let s = t();
315
- return /* @__PURE__ */ u("ul", {
317
+ var J = /* @__PURE__ */ s(function({ items: n, hidden: r, onToggle: i, onHover: a, shape: o = "square" }, s) {
318
+ let c = t();
319
+ return /* @__PURE__ */ p("ul", {
320
+ ref: s,
316
321
  className: "flex flex-wrap items-center gap-4",
317
- "aria-label": s("chartLegend.label", "Legend"),
322
+ "aria-label": c("chartLegend.label", "Legend"),
318
323
  children: n.map((t) => {
319
324
  let n = r?.has(t.id);
320
- return /* @__PURE__ */ u("li", { children: /* @__PURE__ */ d(i ? "button" : "span", {
325
+ return /* @__PURE__ */ p("li", { children: /* @__PURE__ */ m(i ? "button" : "span", {
321
326
  ...i ? {
322
327
  type: "button",
323
328
  "aria-pressed": !n,
@@ -329,13 +334,13 @@ function K({ items: n, hidden: r, onToggle: i, onHover: a, shape: o = "square" }
329
334
  onBlur: () => a?.(null),
330
335
  className: e("inline-flex h-28 items-center gap-8 rounded-pill px-10 text-small font-medium transition-control", i && "relative cursor-pointer hover:bg-fill-1 focus-ring tap-target", n ? "text-fg-tertiary" : "text-fg"),
331
336
  children: [
332
- /* @__PURE__ */ u(F, {
337
+ /* @__PURE__ */ p(L, {
333
338
  color: t.color,
334
339
  shape: o,
335
340
  off: n
336
341
  }),
337
342
  t.label,
338
- t.value !== void 0 && /* @__PURE__ */ u("span", {
343
+ t.value !== void 0 && /* @__PURE__ */ p("span", {
339
344
  className: "text-fg-secondary tabular",
340
345
  children: t.value
341
346
  })
@@ -343,47 +348,47 @@ function K({ items: n, hidden: r, onToggle: i, onHover: a, shape: o = "square" }
343
348
  }) }, t.id);
344
349
  })
345
350
  });
346
- }
347
- process.env.NODE_ENV !== "production" && (K.displayName = "Legend");
348
- function q({ x: t, xLeft: n = t, y: r, width: i, heading: a, rows: o, visible: f }) {
349
- let p = c(null), [m, h] = l(0);
350
- s(() => {
351
- let e = p.current?.offsetWidth ?? 0;
352
- e !== m && h(e);
351
+ });
352
+ process.env.NODE_ENV !== "production" && (J.displayName = "Legend");
353
+ var Y = /* @__PURE__ */ s(function({ x: t, xLeft: n = t, y: i, width: a, heading: o, rows: s, visible: c }, h) {
354
+ let g = d(null), _ = u(() => r(g, h), [h]), [v, y] = f(0);
355
+ l(() => {
356
+ let e = g.current?.offsetWidth ?? 0;
357
+ e !== v && y(e);
353
358
  }, [
354
- m,
355
- a,
359
+ v,
356
360
  o,
357
- f
361
+ s,
362
+ c
358
363
  ]);
359
- let g = t > i / 2, _ = g ? n - 16 - m : t + 16, v = m ? Math.round(Math.max(0, Math.min(_, i - m))) : void 0;
360
- return /* @__PURE__ */ d("div", {
361
- ref: p,
364
+ let b = t > a / 2, x = b ? n - 16 - v : t + 16, S = v ? Math.round(Math.max(0, Math.min(x, a - v))) : void 0;
365
+ return /* @__PURE__ */ m("div", {
366
+ ref: _,
362
367
  role: "presentation",
363
368
  "aria-hidden": !0,
364
- className: e("pointer-events-none absolute z-10 w-max min-w-200 max-w-360 rounded-tooltip bg-raised p-10 text-small shadow-raised opacity-motion", f && m ? "opacity-100" : "opacity-0"),
369
+ className: e("pointer-events-none absolute z-10 w-max min-w-200 max-w-360 rounded-tooltip bg-raised p-10 text-small shadow-raised opacity-motion", c && v ? "opacity-100" : "opacity-0"),
365
370
  style: {
366
- ...v === void 0 ? g ? { right: Math.round(i - n + 16) } : { left: Math.round(t + 16) } : { left: v },
367
- top: Math.round(Math.max(0, r - 24))
371
+ ...S === void 0 ? b ? { right: Math.round(a - n + 16) } : { left: Math.round(t + 16) } : { left: S },
372
+ top: Math.round(Math.max(0, i - 24))
368
373
  },
369
- children: [/* @__PURE__ */ u("div", {
374
+ children: [/* @__PURE__ */ p("div", {
370
375
  className: "mb-6 text-caption font-medium text-fg tabular",
371
- children: a
372
- }), /* @__PURE__ */ u("div", {
376
+ children: o
377
+ }), /* @__PURE__ */ p("div", {
373
378
  className: "flex flex-col gap-4",
374
- children: o.map((e) => /* @__PURE__ */ d("div", {
379
+ children: s.map((e) => /* @__PURE__ */ m("div", {
375
380
  className: "flex items-center gap-8",
376
381
  children: [
377
- /* @__PURE__ */ u(F, { color: e.color }),
378
- /* @__PURE__ */ u("span", {
382
+ /* @__PURE__ */ p(L, { color: e.color }),
383
+ /* @__PURE__ */ p("span", {
379
384
  className: "min-w-0 flex-1 truncate pr-12 text-fg-secondary",
380
385
  children: e.label
381
386
  }),
382
- /* @__PURE__ */ u("span", {
387
+ /* @__PURE__ */ p("span", {
383
388
  className: "font-medium text-fg tabular",
384
389
  children: e.value
385
390
  }),
386
- e.share !== void 0 && /* @__PURE__ */ u("span", {
391
+ e.share !== void 0 && /* @__PURE__ */ p("span", {
387
392
  className: "w-40 text-right text-fg-tertiary tabular",
388
393
  children: e.share
389
394
  })
@@ -391,9 +396,9 @@ function q({ x: t, xLeft: n = t, y: r, width: i, heading: a, rows: o, visible: f
391
396
  }, e.id))
392
397
  })]
393
398
  });
394
- }
395
- process.env.NODE_ENV !== "production" && (q.displayName = "ChartTooltip");
396
- var J = {
399
+ });
400
+ process.env.NODE_ENV !== "production" && (Y.displayName = "ChartTooltip");
401
+ var X = {
397
402
  grid: {
398
403
  stroke: "var(--k-line)",
399
404
  strokeDasharray: "3 3",
@@ -409,8 +414,8 @@ var J = {
409
414
  fontWeight: 500,
410
415
  style: { fontVariantNumeric: "tabular-nums" }
411
416
  }
412
- }, Y = { chrome: { default: { classes: "" } } }, X = { chrome: "default" };
413
- function Z(e, t, n, { vertical: r = !1, start: i = n - 1 } = {}) {
417
+ }, Z = { chrome: { default: { classes: "" } } }, ne = { chrome: "default" };
418
+ function Q(e, t, n, { vertical: r = !1, start: i = n - 1 } = {}) {
414
419
  if (n <= 0) return;
415
420
  let a = r ? "ArrowUp" : "ArrowLeft", o = r ? "ArrowDown" : "ArrowRight";
416
421
  if (e === a) return t === null ? i : Math.max(0, t - 1);
@@ -419,8 +424,8 @@ function Z(e, t, n, { vertical: r = !1, start: i = n - 1 } = {}) {
419
424
  if (e === "End") return n - 1;
420
425
  if (e === "Escape") return t === null ? void 0 : null;
421
426
  }
422
- function Q(e, t = {}) {
423
- let [n, r] = l(null), i = t.start ?? e - 1;
427
+ function re(e, t = {}) {
428
+ let [n, r] = f(null), i = t.start ?? e - 1;
424
429
  return {
425
430
  index: n !== null && n < e ? n : null,
426
431
  props: {
@@ -435,7 +440,7 @@ function Q(e, t = {}) {
435
440
  },
436
441
  onBlur: () => r(null),
437
442
  onKeyDown: (a) => {
438
- let o = Z(a.key, n, e, {
443
+ let o = Q(a.key, n, e, {
439
444
  vertical: !!t.vertical,
440
445
  start: i
441
446
  });
@@ -444,16 +449,17 @@ function Q(e, t = {}) {
444
449
  }
445
450
  };
446
451
  }
447
- function $({ children: e }) {
448
- return /* @__PURE__ */ u("div", {
452
+ var $ = /* @__PURE__ */ s(function({ children: e }, t) {
453
+ return /* @__PURE__ */ p("div", {
454
+ ref: t,
449
455
  className: "sr-only",
450
456
  "aria-live": "polite",
451
457
  "aria-atomic": !0,
452
458
  children: e
453
459
  });
454
- }
460
+ });
455
461
  process.env.NODE_ENV !== "production" && ($.displayName = "ChartLive");
456
- var te = (e, t, r = n) => r("chart.liveLine", "{heading}: {values}", {
462
+ var ie = (e, t, r = n) => r("chart.liveLine", "{heading}: {values}", {
457
463
  heading: String(e),
458
464
  values: t.map((e) => r("chart.liveValue", "{label} {value}", {
459
465
  label: String(e.label),
@@ -461,6 +467,6 @@ var te = (e, t, r = n) => r("chart.liveLine", "{heading}: {values}", {
461
467
  })).join(r("chart.listSeparator", ", "))
462
468
  });
463
469
  //#endregion
464
- export { h as A, w as C, D, Q as E, j as O, I as S, A as T, W as _, X as a, S as b, F as c, _ as d, x as f, te as g, H as h, q as i, B as j, M as k, T as l, Z as m, N as n, Y as o, G as p, $ as r, K as s, J as t, g as u, L as v, E as w, b as x, C as y };
470
+ export { v as A, D as C, te as D, re as E, N as O, R as S, M as T, K as _, ne as a, T as b, L as c, b as d, w as f, ie as g, W as h, Y as i, H as j, P as k, O as l, Q as m, F as n, Z as o, q as p, $ as r, J as s, X as t, y as u, z as v, ee as w, C as x, E as y };
465
471
 
466
- //# sourceMappingURL=core-Bl9NrBLS.js.map
472
+ //# sourceMappingURL=core-BYns5ytV.js.map