@cloudflare/kumo 1.11.0 → 1.12.1

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 (881) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/ai/component-registry.json +18 -14
  3. package/ai/component-registry.md +29 -20
  4. package/dist/.build-complete +1 -1
  5. package/dist/{Legend-AE5XCSyU.js → chunks/Legend-glsgxdtqiwf3jebj.js} +2 -2
  6. package/dist/chunks/Legend-glsgxdtqiwf3jebj.js.map +1 -0
  7. package/dist/{badge-DUfmrhhZ.js → chunks/badge-mrshucy2530o70cq.js} +2 -2
  8. package/dist/chunks/badge-mrshucy2530o70cq.js.map +1 -0
  9. package/dist/{banner-BKDBfLHA.js → chunks/banner-vzdjbqsb6em7tmdk.js} +2 -2
  10. package/dist/chunks/banner-vzdjbqsb6em7tmdk.js.map +1 -0
  11. package/dist/{shellscript-C9yrawww.js → chunks/bash-g5z23u7me5rx7bzt.js} +12 -5
  12. package/dist/chunks/bash-g5z23u7me5rx7bzt.js.map +1 -0
  13. package/dist/{breadcrumbs-BPtbCStQ.js → chunks/breadcrumbs-e564gabk59go37cg.js} +5 -5
  14. package/dist/chunks/breadcrumbs-e564gabk59go37cg.js.map +1 -0
  15. package/dist/{button-Bh96oxRL.js → chunks/button-b1yp3lbrhjr9eg07.js} +30 -30
  16. package/dist/chunks/button-b1yp3lbrhjr9eg07.js.map +1 -0
  17. package/dist/{checkbox-ZiHzIOCx.js → chunks/checkbox-khvh0efmlzvlo6qi.js} +4 -4
  18. package/dist/chunks/checkbox-khvh0efmlzvlo6qi.js.map +1 -0
  19. package/dist/{clipboard-text-DXs1GdOt.js → chunks/clipboard-text-jvrlvyz5ulm49h5b.js} +5 -5
  20. package/dist/chunks/clipboard-text-jvrlvyz5ulm49h5b.js.map +1 -0
  21. package/dist/{cloudflare-logo-Dqd1VD9z.js → chunks/cloudflare-logo-bgts2jgsdh7sslw4.js} +2 -2
  22. package/dist/chunks/cloudflare-logo-bgts2jgsdh7sslw4.js.map +1 -0
  23. package/dist/{cn-Bhsu1vx2.js → chunks/cn-ct4n7r74mh8y0f48.js} +2 -2
  24. package/dist/chunks/cn-ct4n7r74mh8y0f48.js.map +1 -0
  25. package/dist/{code-T2wPDiM0.js → chunks/code-liq1g6f5lhee305d.js} +2 -2
  26. package/dist/chunks/code-liq1g6f5lhee305d.js.map +1 -0
  27. package/dist/{collapsible-C3LJ1dfZ.js → chunks/collapsible-jhzee3ks51d3xowb.js} +2 -2
  28. package/dist/chunks/collapsible-jhzee3ks51d3xowb.js.map +1 -0
  29. package/dist/{combobox--ec3iibR.js → chunks/combobox-hdstt4dqqxbtxwod.js} +19 -13
  30. package/dist/chunks/combobox-hdstt4dqqxbtxwod.js.map +1 -0
  31. package/dist/{command-palette-B_J7o7P-.js → chunks/command-palette-l8dym46a74o7j8ci.js} +5 -5
  32. package/dist/chunks/command-palette-l8dym46a74o7j8ci.js.map +1 -0
  33. package/dist/chunks/core-dyku7qctyc40nnhh.js +5464 -0
  34. package/dist/chunks/core-dyku7qctyc40nnhh.js.map +1 -0
  35. package/dist/{css-qd-96f_M.js → chunks/css-d1mi3wy1sl3fzekh.js} +1 -1
  36. package/dist/chunks/css-d1mi3wy1sl3fzekh.js.map +1 -0
  37. package/dist/{date-picker-M6uNX5Ca.js → chunks/date-picker-mjocqqbggb76n8rt.js} +2 -2
  38. package/dist/chunks/date-picker-mjocqqbggb76n8rt.js.map +1 -0
  39. package/dist/{date-range-picker-CbKEQ9pi.js → chunks/date-range-picker-j318zxjyqz4o3dak.js} +2 -2
  40. package/dist/chunks/date-range-picker-j318zxjyqz4o3dak.js.map +1 -0
  41. package/dist/{dialog-DGaQTZVR.js → chunks/dialog-emk68n0piw8u7hkb.js} +4 -4
  42. package/dist/chunks/dialog-emk68n0piw8u7hkb.js.map +1 -0
  43. package/dist/{diff-B9PHDIQg.js → chunks/diff-cpj1h9lg0bw716mj.js} +1 -1
  44. package/dist/chunks/diff-cpj1h9lg0bw716mj.js.map +1 -0
  45. package/dist/{dropdown-DBfVqi0v.js → chunks/dropdown-ejgjnn9gq3daua1h.js} +4 -4
  46. package/dist/chunks/dropdown-ejgjnn9gq3daua1h.js.map +1 -0
  47. package/dist/{empty-D03cbzRS.js → chunks/empty-crbntv0dhud7besh.js} +3 -3
  48. package/dist/chunks/empty-crbntv0dhud7besh.js.map +1 -0
  49. package/dist/{engine-compile-D-n7xALU.js → chunks/engine-javascript-hi1kqifa6nkcridk.js} +126 -109
  50. package/dist/chunks/engine-javascript-hi1kqifa6nkcridk.js.map +1 -0
  51. package/dist/{engine-oniguruma-T2xha06Q.js → chunks/engine-oniguruma-g75h8oxao68cjmhg.js} +61 -70
  52. package/dist/chunks/engine-oniguruma-g75h8oxao68cjmhg.js.map +1 -0
  53. package/dist/{field-CQmGKOVZ.js → chunks/field-ftrgblg9mbmz9eo3.js} +4 -4
  54. package/dist/chunks/field-ftrgblg9mbmz9eo3.js.map +1 -0
  55. package/dist/{github-light-C7TbDuh5.js → chunks/github-light-ulev8flhimfg79ob.js} +1 -1
  56. package/dist/chunks/github-light-ulev8flhimfg79ob.js.map +1 -0
  57. package/dist/{graphql-CYUl2j62.js → chunks/graphql-ft2h47erta7isqn4.js} +5 -5
  58. package/dist/chunks/graphql-ft2h47erta7isqn4.js.map +1 -0
  59. package/dist/{grid-DKajRHh8.js → chunks/grid-m9r71jxo2b8q1972.js} +2 -2
  60. package/dist/chunks/grid-m9r71jxo2b8q1972.js.map +1 -0
  61. package/dist/{html-BXZx6WkT.js → chunks/html-kl304jmqj4jxj777.js} +3 -3
  62. package/dist/chunks/html-kl304jmqj4jxj777.js.map +1 -0
  63. package/dist/{input-area-BgpN8siO.js → chunks/input-area-hxtyrqpp44m18j72.js} +4 -4
  64. package/dist/chunks/input-area-hxtyrqpp44m18j72.js.map +1 -0
  65. package/dist/{input-group-DwPPwJEW.js → chunks/input-group-g6qyhe5jvpe02hee.js} +4 -4
  66. package/dist/chunks/input-group-g6qyhe5jvpe02hee.js.map +1 -0
  67. package/dist/{input-gGpJCiT7.js → chunks/input-me56hug8sl0u650q.js} +4 -4
  68. package/dist/chunks/input-me56hug8sl0u650q.js.map +1 -0
  69. package/dist/{javascript-Dcop9YgO.js → chunks/javascript-hhx3avh9uv2o27ay.js} +1 -1
  70. package/dist/chunks/javascript-hhx3avh9uv2o27ay.js.map +1 -0
  71. package/dist/{json-BONZstWZ.js → chunks/json-jovp9qemdkp5cziz.js} +1 -1
  72. package/dist/chunks/json-jovp9qemdkp5cziz.js.map +1 -0
  73. package/dist/{jsonc-CIx6BVP6.js → chunks/jsonc-jbkkgjer6ispw2u3.js} +1 -1
  74. package/dist/chunks/jsonc-jbkkgjer6ispw2u3.js.map +1 -0
  75. package/dist/{jsx-Buo8VY2N.js → chunks/jsx-ij885l2li2lzfoss.js} +1 -1
  76. package/dist/chunks/jsx-ij885l2li2lzfoss.js.map +1 -0
  77. package/dist/{label-hoE9-Nzo.js → chunks/label-eooot7dhtfvw7n3x.js} +4 -4
  78. package/dist/chunks/label-eooot7dhtfvw7n3x.js.map +1 -0
  79. package/dist/{layer-card-C8j5Hkkj.js → chunks/layer-card-8azgeai6zsrdbeoj.js} +2 -2
  80. package/dist/chunks/layer-card-8azgeai6zsrdbeoj.js.map +1 -0
  81. package/dist/{link-BFszrye7.js → chunks/link-moetfdbgxda0yhwg.js} +4 -4
  82. package/dist/chunks/link-moetfdbgxda0yhwg.js.map +1 -0
  83. package/dist/{link-provider-DPBGo-0n.js → chunks/link-provider-mn2voeohon7cj9o4.js} +1 -1
  84. package/dist/chunks/link-provider-mn2voeohon7cj9o4.js.map +1 -0
  85. package/dist/{loader-DHGMYlC6.js → chunks/loader-m5wfmqwgucrr4i5v.js} +1 -1
  86. package/dist/chunks/loader-m5wfmqwgucrr4i5v.js.map +1 -0
  87. package/dist/{markdown-CPiFXKuQ.js → chunks/markdown-n2vyyq7l68fy32wc.js} +1 -1
  88. package/dist/chunks/markdown-n2vyyq7l68fy32wc.js.map +1 -0
  89. package/dist/{menubar-DF-6twXU.js → chunks/menubar-c2zwv4mbo3xqq7is.js} +3 -3
  90. package/dist/chunks/menubar-c2zwv4mbo3xqq7is.js.map +1 -0
  91. package/dist/{meter-CP6NBKRN.js → chunks/meter-em2hfu8j2rhmf5ae.js} +3 -3
  92. package/dist/chunks/meter-em2hfu8j2rhmf5ae.js.map +1 -0
  93. package/dist/{pagination-BWkeDEqb.js → chunks/pagination-xt93wvwvow4z44lc.js} +4 -4
  94. package/dist/chunks/pagination-xt93wvwvow4z44lc.js.map +1 -0
  95. package/dist/{popover-B5CWcu7v.js → chunks/popover-irccwetx73p8pnua.js} +3 -3
  96. package/dist/chunks/popover-irccwetx73p8pnua.js.map +1 -0
  97. package/dist/{python--QhWBEuB.js → chunks/python-gg755pb8oe9ra1d1.js} +1 -1
  98. package/dist/chunks/python-gg755pb8oe9ra1d1.js.map +1 -0
  99. package/dist/{radio-BQTXNBkS.js → chunks/radio-394mfs3au5m8cgd8.js} +3 -3
  100. package/dist/chunks/radio-394mfs3au5m8cgd8.js.map +1 -0
  101. package/dist/{select-BWUNPPHQ.js → chunks/select-jxxef2rf76pgdrf8.js} +6 -6
  102. package/dist/chunks/select-jxxef2rf76pgdrf8.js.map +1 -0
  103. package/dist/{sensitive-input-A6Kw7URa.js → chunks/sensitive-input-i7ey1w0ky7nco012.js} +5 -5
  104. package/dist/chunks/sensitive-input-i7ey1w0ky7nco012.js.map +1 -0
  105. package/dist/{skeleton-line-CtpS1u1J.js → chunks/skeleton-line-1j5exu6vv07mmhfb.js} +2 -2
  106. package/dist/chunks/skeleton-line-1j5exu6vv07mmhfb.js.map +1 -0
  107. package/dist/{sql-BUQKMpen.js → chunks/sql-ovukp5mrfunfk5tv.js} +1 -1
  108. package/dist/chunks/sql-ovukp5mrfunfk5tv.js.map +1 -0
  109. package/dist/{surface-BIC6CXiz.js → chunks/surface-dhshylwccuaz91d1.js} +2 -2
  110. package/dist/chunks/surface-dhshylwccuaz91d1.js.map +1 -0
  111. package/dist/{switch-CmUFBiJv.js → chunks/switch-b0xo8fxsfzv87krj.js} +4 -4
  112. package/dist/chunks/switch-b0xo8fxsfzv87krj.js.map +1 -0
  113. package/dist/{table-CbU4Oe3o.js → chunks/table-d4ql7fjvok30xs1f.js} +3 -3
  114. package/dist/chunks/table-d4ql7fjvok30xs1f.js.map +1 -0
  115. package/dist/{tabs-uLzHh6SR.js → chunks/tabs-n3rcvuzx0gbslyy6.js} +3 -3
  116. package/dist/chunks/tabs-n3rcvuzx0gbslyy6.js.map +1 -0
  117. package/dist/{text-BEhqwMfe.js → chunks/text-gzt92mlji1lug13d.js} +2 -2
  118. package/dist/chunks/text-gzt92mlji1lug13d.js.map +1 -0
  119. package/dist/{toast-B-d56fkl.js → chunks/toast-j05qj3vk688ht1i1.js} +4 -4
  120. package/dist/chunks/toast-j05qj3vk688ht1i1.js.map +1 -0
  121. package/dist/{tooltip-C7p2iJ0y.js → chunks/tooltip-es2dwwbhftg4k2jy.js} +3 -3
  122. package/dist/chunks/tooltip-es2dwwbhftg4k2jy.js.map +1 -0
  123. package/dist/{tsx-1QZ5GNk-.js → chunks/tsx-ehy8lrzet6v54zur.js} +1 -1
  124. package/dist/chunks/tsx-ehy8lrzet6v54zur.js.map +1 -0
  125. package/dist/{typescript-CLMZXfG9.js → chunks/typescript-k4ggjrxhrhcdni6u.js} +1 -1
  126. package/dist/chunks/typescript-k4ggjrxhrhcdni6u.js.map +1 -0
  127. package/dist/{vendor-base-ui-DN1j_aJS.js → chunks/vendor-base-ui-kxxocm122zr4pipe.js} +3 -3
  128. package/dist/chunks/vendor-base-ui-kxxocm122zr4pipe.js.map +1 -0
  129. package/dist/{vendor-floating-ui-BgbEw62H.js → chunks/vendor-floating-ui-gr9m6tsa1cpqwn99.js} +1 -1
  130. package/dist/chunks/vendor-floating-ui-gr9m6tsa1cpqwn99.js.map +1 -0
  131. package/dist/{vendor-styling-BQbxAbdS.js → chunks/vendor-styling-gobnkhsy0rva4qd3.js} +1 -1
  132. package/dist/chunks/vendor-styling-gobnkhsy0rva4qd3.js.map +1 -0
  133. package/dist/{vendor-utils-DKXfkDYu.js → chunks/vendor-utils-fxk97j6xi1g42z2v.js} +1 -1
  134. package/dist/chunks/vendor-utils-fxk97j6xi1g42z2v.js.map +1 -0
  135. package/dist/{vesper-BW8Q9P3p.js → chunks/vesper-ebfu9ns65f2v830s.js} +1 -1
  136. package/dist/chunks/vesper-ebfu9ns65f2v830s.js.map +1 -0
  137. package/dist/{wasm-D5B682Xt.js → chunks/wasm-oj22f8usru9h7dzg.js} +1 -1
  138. package/dist/chunks/wasm-oj22f8usru9h7dzg.js.map +1 -0
  139. package/dist/{yaml-CqFcuW2H.js → chunks/yaml-e2v22lr79tss2brj.js} +1 -1
  140. package/dist/chunks/yaml-e2v22lr79tss2brj.js.map +1 -0
  141. package/dist/code/server.js +58 -28
  142. package/dist/code/server.js.map +1 -1
  143. package/dist/code.js +106 -81
  144. package/dist/code.js.map +1 -1
  145. package/dist/components/badge.js +1 -1
  146. package/dist/components/banner.js +1 -1
  147. package/dist/components/breadcrumbs.js +1 -1
  148. package/dist/components/button.js +1 -1
  149. package/dist/components/chart.js +1 -1
  150. package/dist/components/checkbox.js +1 -1
  151. package/dist/components/clipboard-text.js +1 -1
  152. package/dist/components/cloudflare-logo.js +1 -1
  153. package/dist/components/code.js +1 -1
  154. package/dist/components/collapsible.js +1 -1
  155. package/dist/components/combobox.js +1 -1
  156. package/dist/components/command-palette.js +1 -1
  157. package/dist/components/date-picker.js +1 -1
  158. package/dist/components/date-range-picker.js +1 -1
  159. package/dist/components/dialog.js +1 -1
  160. package/dist/components/dropdown.js +1 -1
  161. package/dist/components/empty.js +1 -1
  162. package/dist/components/field.js +1 -1
  163. package/dist/components/flow.js +1 -1
  164. package/dist/components/grid.js +1 -1
  165. package/dist/components/input.js +3 -3
  166. package/dist/components/label.js +1 -1
  167. package/dist/components/layer-card.js +1 -1
  168. package/dist/components/link.js +1 -1
  169. package/dist/components/loader.js +2 -2
  170. package/dist/components/menubar.js +1 -1
  171. package/dist/components/meter.js +1 -1
  172. package/dist/components/pagination.js +1 -1
  173. package/dist/components/popover.js +1 -1
  174. package/dist/components/radio.js +1 -1
  175. package/dist/components/select.js +1 -1
  176. package/dist/components/sensitive-input.js +1 -1
  177. package/dist/components/surface.js +1 -1
  178. package/dist/components/switch.js +1 -1
  179. package/dist/components/table.js +1 -1
  180. package/dist/components/tabs.js +1 -1
  181. package/dist/components/text.js +1 -1
  182. package/dist/components/toast.js +2 -2
  183. package/dist/components/tooltip.js +1 -1
  184. package/dist/index.js +49 -49
  185. package/dist/primitives/accordion.js +1 -1
  186. package/dist/primitives/alert-dialog.js +1 -1
  187. package/dist/primitives/autocomplete.js +1 -1
  188. package/dist/primitives/avatar.js +1 -1
  189. package/dist/primitives/button.js +1 -1
  190. package/dist/primitives/checkbox-group.js +1 -1
  191. package/dist/primitives/checkbox.js +1 -1
  192. package/dist/primitives/collapsible.js +1 -1
  193. package/dist/primitives/combobox.js +1 -1
  194. package/dist/primitives/context-menu.js +1 -1
  195. package/dist/primitives/csp-provider.js +1 -1
  196. package/dist/primitives/dialog.js +1 -1
  197. package/dist/primitives/direction-provider.js +1 -1
  198. package/dist/primitives/drawer.js +1 -1
  199. package/dist/primitives/field.js +1 -1
  200. package/dist/primitives/fieldset.js +1 -1
  201. package/dist/primitives/form.js +1 -1
  202. package/dist/primitives/input.js +1 -1
  203. package/dist/primitives/menu.js +1 -1
  204. package/dist/primitives/menubar.js +1 -1
  205. package/dist/primitives/meter.js +1 -1
  206. package/dist/primitives/navigation-menu.js +1 -1
  207. package/dist/primitives/number-field.js +1 -1
  208. package/dist/primitives/popover.js +1 -1
  209. package/dist/primitives/preview-card.js +1 -1
  210. package/dist/primitives/progress.js +1 -1
  211. package/dist/primitives/radio-group.js +1 -1
  212. package/dist/primitives/radio.js +1 -1
  213. package/dist/primitives/scroll-area.js +1 -1
  214. package/dist/primitives/select.js +1 -1
  215. package/dist/primitives/separator.js +1 -1
  216. package/dist/primitives/slider.js +1 -1
  217. package/dist/primitives/switch.js +1 -1
  218. package/dist/primitives/tabs.js +1 -1
  219. package/dist/primitives/toast.js +1 -1
  220. package/dist/primitives/toggle-group.js +1 -1
  221. package/dist/primitives/toggle.js +1 -1
  222. package/dist/primitives/toolbar.js +1 -1
  223. package/dist/primitives/tooltip.js +1 -1
  224. package/dist/primitives.js +1 -1
  225. package/dist/scripts/theme-generator/config.d.ts.map +1 -1
  226. package/dist/scripts/theme-generator/config.js +40 -23
  227. package/dist/scripts/theme-generator/config.js.map +1 -1
  228. package/dist/src/code/context.d.ts +4 -4
  229. package/dist/src/code/context.d.ts.map +1 -1
  230. package/dist/src/code/provider.d.ts.map +1 -1
  231. package/dist/src/code/server.d.ts +4 -5
  232. package/dist/src/code/server.d.ts.map +1 -1
  233. package/dist/src/code/types.d.ts +15 -5
  234. package/dist/src/code/types.d.ts.map +1 -1
  235. package/dist/src/code/use-shiki-highlighter.d.ts.map +1 -1
  236. package/dist/src/components/button/button.d.ts +3 -3
  237. package/dist/src/components/combobox/combobox.d.ts.map +1 -1
  238. package/dist/styles/kumo-binding.css +14 -14
  239. package/dist/styles/kumo-standalone.css +1 -1
  240. package/dist/styles/theme-fedramp.css +6 -0
  241. package/dist/styles/theme-kumo.css +40 -33
  242. package/dist/utils.js +2 -2
  243. package/package.json +4 -3
  244. package/scripts/theme-generator/config.ts +40 -23
  245. package/dist/Legend-AE5XCSyU.js.map +0 -1
  246. package/dist/abap-DBQ6eW1v.js +0 -8
  247. package/dist/abap-DBQ6eW1v.js.map +0 -1
  248. package/dist/actionscript-3-DiEsS-FW.js +0 -8
  249. package/dist/actionscript-3-DiEsS-FW.js.map +0 -1
  250. package/dist/ada-DGQ_5PSJ.js +0 -8
  251. package/dist/ada-DGQ_5PSJ.js.map +0 -1
  252. package/dist/andromeeda-0OVEHq5k.js +0 -6
  253. package/dist/andromeeda-0OVEHq5k.js.map +0 -1
  254. package/dist/angular-html-C3bwzvDd.js +0 -34
  255. package/dist/angular-html-C3bwzvDd.js.map +0 -1
  256. package/dist/angular-ts-fBH42fxp.js +0 -23
  257. package/dist/angular-ts-fBH42fxp.js.map +0 -1
  258. package/dist/apache-Bbrn7pkv.js +0 -8
  259. package/dist/apache-Bbrn7pkv.js.map +0 -1
  260. package/dist/apex-D7jlLUJl.js +0 -8
  261. package/dist/apex-D7jlLUJl.js.map +0 -1
  262. package/dist/apl-Cal58rzR.js +0 -18
  263. package/dist/apl-Cal58rzR.js.map +0 -1
  264. package/dist/applescript-AZMDCVmb.js +0 -8
  265. package/dist/applescript-AZMDCVmb.js.map +0 -1
  266. package/dist/ara-D7lI3smf.js +0 -8
  267. package/dist/ara-D7lI3smf.js.map +0 -1
  268. package/dist/asciidoc-B_JWnvj-.js +0 -8
  269. package/dist/asciidoc-B_JWnvj-.js.map +0 -1
  270. package/dist/asm-CF39_jeh.js +0 -8
  271. package/dist/asm-CF39_jeh.js.map +0 -1
  272. package/dist/astro-DvJenNvt.js +0 -20
  273. package/dist/astro-DvJenNvt.js.map +0 -1
  274. package/dist/aurora-x-lzSm_5DI.js +0 -6
  275. package/dist/aurora-x-lzSm_5DI.js.map +0 -1
  276. package/dist/awk-D1dwqHUl.js +0 -8
  277. package/dist/awk-D1dwqHUl.js.map +0 -1
  278. package/dist/ayu-dark-C_pOwMAx.js +0 -6
  279. package/dist/ayu-dark-C_pOwMAx.js.map +0 -1
  280. package/dist/ayu-light-C25DTeWu.js +0 -6
  281. package/dist/ayu-light-C25DTeWu.js.map +0 -1
  282. package/dist/ayu-mirage-9IoMPoai.js +0 -6
  283. package/dist/ayu-mirage-9IoMPoai.js.map +0 -1
  284. package/dist/badge-DUfmrhhZ.js.map +0 -1
  285. package/dist/ballerina-0aHuYbBL.js +0 -8
  286. package/dist/ballerina-0aHuYbBL.js.map +0 -1
  287. package/dist/banner-BKDBfLHA.js.map +0 -1
  288. package/dist/bat-hp8TkMW_.js +0 -8
  289. package/dist/bat-hp8TkMW_.js.map +0 -1
  290. package/dist/beancount-DhXwArMG.js +0 -8
  291. package/dist/beancount-DhXwArMG.js.map +0 -1
  292. package/dist/berry-SKcQ_bn6.js +0 -8
  293. package/dist/berry-SKcQ_bn6.js.map +0 -1
  294. package/dist/bibtex-CKeuI1gX.js +0 -8
  295. package/dist/bibtex-CKeuI1gX.js.map +0 -1
  296. package/dist/bicep-Bb1Z8c8o.js +0 -8
  297. package/dist/bicep-Bb1Z8c8o.js.map +0 -1
  298. package/dist/bird2-C3rWbj4Z.js +0 -8
  299. package/dist/bird2-C3rWbj4Z.js.map +0 -1
  300. package/dist/blade-THHHddQO.js +0 -22
  301. package/dist/blade-THHHddQO.js.map +0 -1
  302. package/dist/breadcrumbs-BPtbCStQ.js.map +0 -1
  303. package/dist/bsl-CflI2mMp.js +0 -10
  304. package/dist/bsl-CflI2mMp.js.map +0 -1
  305. package/dist/button-Bh96oxRL.js.map +0 -1
  306. package/dist/c-D5qA7m19.js +0 -8
  307. package/dist/c-D5qA7m19.js.map +0 -1
  308. package/dist/c3-COOn93H9.js +0 -8
  309. package/dist/c3-COOn93H9.js.map +0 -1
  310. package/dist/cadence-Dxfo-G8_.js +0 -8
  311. package/dist/cadence-Dxfo-G8_.js.map +0 -1
  312. package/dist/cairo-CY6szQm5.js +0 -10
  313. package/dist/cairo-CY6szQm5.js.map +0 -1
  314. package/dist/catppuccin-frappe-CpIXPvSU.js +0 -6
  315. package/dist/catppuccin-frappe-CpIXPvSU.js.map +0 -1
  316. package/dist/catppuccin-latte-xiJp113n.js +0 -6
  317. package/dist/catppuccin-latte-xiJp113n.js.map +0 -1
  318. package/dist/catppuccin-macchiato-CUb8G_sh.js +0 -6
  319. package/dist/catppuccin-macchiato-CUb8G_sh.js.map +0 -1
  320. package/dist/catppuccin-mocha-_pSbIuk3.js +0 -6
  321. package/dist/catppuccin-mocha-_pSbIuk3.js.map +0 -1
  322. package/dist/checkbox-ZiHzIOCx.js.map +0 -1
  323. package/dist/clarity-S9WX3mE2.js +0 -8
  324. package/dist/clarity-S9WX3mE2.js.map +0 -1
  325. package/dist/clipboard-text-DXs1GdOt.js.map +0 -1
  326. package/dist/clojure-CMSQ2cRZ.js +0 -8
  327. package/dist/clojure-CMSQ2cRZ.js.map +0 -1
  328. package/dist/cloudflare-logo-Dqd1VD9z.js.map +0 -1
  329. package/dist/cmake-BjGOmuDM.js +0 -8
  330. package/dist/cmake-BjGOmuDM.js.map +0 -1
  331. package/dist/cn-Bhsu1vx2.js.map +0 -1
  332. package/dist/cobol-CdczAIkZ.js +0 -12
  333. package/dist/cobol-CdczAIkZ.js.map +0 -1
  334. package/dist/code-T2wPDiM0.js.map +0 -1
  335. package/dist/codeowners-CJleX2EU.js +0 -8
  336. package/dist/codeowners-CJleX2EU.js.map +0 -1
  337. package/dist/codeql-C_xiqGOC.js +0 -8
  338. package/dist/codeql-C_xiqGOC.js.map +0 -1
  339. package/dist/coffee-DbwFrMGw.js +0 -10
  340. package/dist/coffee-DbwFrMGw.js.map +0 -1
  341. package/dist/collapsible-C3LJ1dfZ.js.map +0 -1
  342. package/dist/combobox--ec3iibR.js.map +0 -1
  343. package/dist/command-palette-B_J7o7P-.js.map +0 -1
  344. package/dist/common-lisp-bZFDzkJA.js +0 -8
  345. package/dist/common-lisp-bZFDzkJA.js.map +0 -1
  346. package/dist/coq-BHwvPA1n.js +0 -8
  347. package/dist/coq-BHwvPA1n.js.map +0 -1
  348. package/dist/cpp-8X-mPrPy.js +0 -20
  349. package/dist/cpp-8X-mPrPy.js.map +0 -1
  350. package/dist/crystal-ClltT4Pm.js +0 -20
  351. package/dist/crystal-ClltT4Pm.js.map +0 -1
  352. package/dist/csharp-Byem5RBI.js +0 -8
  353. package/dist/csharp-Byem5RBI.js.map +0 -1
  354. package/dist/css-qd-96f_M.js.map +0 -1
  355. package/dist/csv-CF_FKHnB.js +0 -8
  356. package/dist/csv-CF_FKHnB.js.map +0 -1
  357. package/dist/cue-I1Agx594.js +0 -8
  358. package/dist/cue-I1Agx594.js.map +0 -1
  359. package/dist/cypher-plLNBUt5.js +0 -8
  360. package/dist/cypher-plLNBUt5.js.map +0 -1
  361. package/dist/d-CEuq9VFi.js +0 -8
  362. package/dist/d-CEuq9VFi.js.map +0 -1
  363. package/dist/dark-plus-BoH9QJRG.js +0 -6
  364. package/dist/dark-plus-BoH9QJRG.js.map +0 -1
  365. package/dist/dart-BW14f2cB.js +0 -8
  366. package/dist/dart-BW14f2cB.js.map +0 -1
  367. package/dist/date-picker-M6uNX5Ca.js.map +0 -1
  368. package/dist/date-range-picker-CbKEQ9pi.js.map +0 -1
  369. package/dist/dax-3tjM9tVE.js +0 -8
  370. package/dist/dax-3tjM9tVE.js.map +0 -1
  371. package/dist/desktop-C_s7lQ2C.js +0 -8
  372. package/dist/desktop-C_s7lQ2C.js.map +0 -1
  373. package/dist/dialog-DGaQTZVR.js.map +0 -1
  374. package/dist/diff-B9PHDIQg.js.map +0 -1
  375. package/dist/docker-rmWVNdXq.js +0 -8
  376. package/dist/docker-rmWVNdXq.js.map +0 -1
  377. package/dist/dotenv-DZArZ0py.js +0 -8
  378. package/dist/dotenv-DZArZ0py.js.map +0 -1
  379. package/dist/dracula-CdWPhGUA.js +0 -6
  380. package/dist/dracula-CdWPhGUA.js.map +0 -1
  381. package/dist/dracula-soft-DRgtS4KI.js +0 -6
  382. package/dist/dracula-soft-DRgtS4KI.js.map +0 -1
  383. package/dist/dream-maker-DNRMl5wX.js +0 -8
  384. package/dist/dream-maker-DNRMl5wX.js.map +0 -1
  385. package/dist/dropdown-DBfVqi0v.js.map +0 -1
  386. package/dist/edge-CQUaQiBB.js +0 -14
  387. package/dist/edge-CQUaQiBB.js.map +0 -1
  388. package/dist/elixir-BIX3y1uJ.js +0 -10
  389. package/dist/elixir-BIX3y1uJ.js.map +0 -1
  390. package/dist/elm-DNVN4B4L.js +0 -10
  391. package/dist/elm-DNVN4B4L.js.map +0 -1
  392. package/dist/emacs-lisp-C3TqDViv.js +0 -8
  393. package/dist/emacs-lisp-C3TqDViv.js.map +0 -1
  394. package/dist/empty-D03cbzRS.js.map +0 -1
  395. package/dist/engine-compile-D-n7xALU.js.map +0 -1
  396. package/dist/engine-javascript-BGkeRc0U.js +0 -26
  397. package/dist/engine-javascript-BGkeRc0U.js.map +0 -1
  398. package/dist/engine-oniguruma-T2xha06Q.js.map +0 -1
  399. package/dist/erb-CPJOs_gM.js +0 -12
  400. package/dist/erb-CPJOs_gM.js.map +0 -1
  401. package/dist/erlang-X97pCGTS.js +0 -10
  402. package/dist/erlang-X97pCGTS.js.map +0 -1
  403. package/dist/everforest-dark-C9JXzteI.js +0 -6
  404. package/dist/everforest-dark-C9JXzteI.js.map +0 -1
  405. package/dist/everforest-light-xBi4ZMR7.js +0 -6
  406. package/dist/everforest-light-xBi4ZMR7.js.map +0 -1
  407. package/dist/fennel-fKVJGO8V.js +0 -8
  408. package/dist/fennel-fKVJGO8V.js.map +0 -1
  409. package/dist/field-CQmGKOVZ.js.map +0 -1
  410. package/dist/fish-BB5DT4M2.js +0 -8
  411. package/dist/fish-BB5DT4M2.js.map +0 -1
  412. package/dist/fluent-AMVPEbdR.js +0 -8
  413. package/dist/fluent-AMVPEbdR.js.map +0 -1
  414. package/dist/fortran-fixed-form-J4xKprxx.js +0 -10
  415. package/dist/fortran-fixed-form-J4xKprxx.js.map +0 -1
  416. package/dist/fortran-free-form-89VVYcvD.js +0 -8
  417. package/dist/fortran-free-form-89VVYcvD.js.map +0 -1
  418. package/dist/fsharp-BnRQMxrz.js +0 -10
  419. package/dist/fsharp-BnRQMxrz.js.map +0 -1
  420. package/dist/gdresource-DGR3GPIj.js +0 -12
  421. package/dist/gdresource-DGR3GPIj.js.map +0 -1
  422. package/dist/gdscript-8-4n2AaI.js +0 -8
  423. package/dist/gdscript-8-4n2AaI.js.map +0 -1
  424. package/dist/gdshader-BCM6bIM_.js +0 -8
  425. package/dist/gdshader-BCM6bIM_.js.map +0 -1
  426. package/dist/genie-CxR2u3hD.js +0 -8
  427. package/dist/genie-CxR2u3hD.js.map +0 -1
  428. package/dist/gherkin-BhW6oAYW.js +0 -8
  429. package/dist/gherkin-BhW6oAYW.js.map +0 -1
  430. package/dist/git-commit-DSzkYnqf.js +0 -10
  431. package/dist/git-commit-DSzkYnqf.js.map +0 -1
  432. package/dist/git-rebase-CY0sqDHH.js +0 -10
  433. package/dist/git-rebase-CY0sqDHH.js.map +0 -1
  434. package/dist/github-dark-EGgK0P1m.js +0 -6
  435. package/dist/github-dark-EGgK0P1m.js.map +0 -1
  436. package/dist/github-dark-default-69UGLTaR.js +0 -6
  437. package/dist/github-dark-default-69UGLTaR.js.map +0 -1
  438. package/dist/github-dark-dimmed-CnBHruXC.js +0 -6
  439. package/dist/github-dark-dimmed-CnBHruXC.js.map +0 -1
  440. package/dist/github-dark-high-contrast-Dz2ZsuOt.js +0 -6
  441. package/dist/github-dark-high-contrast-Dz2ZsuOt.js.map +0 -1
  442. package/dist/github-light-C7TbDuh5.js.map +0 -1
  443. package/dist/github-light-default-C1fruPEw.js +0 -6
  444. package/dist/github-light-default-C1fruPEw.js.map +0 -1
  445. package/dist/github-light-high-contrast-SmWFD2B-.js +0 -6
  446. package/dist/github-light-high-contrast-SmWFD2B-.js.map +0 -1
  447. package/dist/gleam-PNso-9g-.js +0 -8
  448. package/dist/gleam-PNso-9g-.js.map +0 -1
  449. package/dist/glimmer-js-DY9OBWW6.js +0 -16
  450. package/dist/glimmer-js-DY9OBWW6.js.map +0 -1
  451. package/dist/glimmer-ts-CKjdlzG3.js +0 -16
  452. package/dist/glimmer-ts-CKjdlzG3.js.map +0 -1
  453. package/dist/glsl-Bo9QfxI7.js +0 -10
  454. package/dist/glsl-Bo9QfxI7.js.map +0 -1
  455. package/dist/gn-B8imrxEe.js +0 -8
  456. package/dist/gn-B8imrxEe.js.map +0 -1
  457. package/dist/gnuplot-z48QnpzZ.js +0 -8
  458. package/dist/gnuplot-z48QnpzZ.js.map +0 -1
  459. package/dist/go-BUI2a86a.js +0 -8
  460. package/dist/go-BUI2a86a.js.map +0 -1
  461. package/dist/graphql-CYUl2j62.js.map +0 -1
  462. package/dist/grid-DKajRHh8.js.map +0 -1
  463. package/dist/groovy-BZajDB1h.js +0 -8
  464. package/dist/groovy-BZajDB1h.js.map +0 -1
  465. package/dist/gruvbox-dark-hard-DEp4fn0U.js +0 -6
  466. package/dist/gruvbox-dark-hard-DEp4fn0U.js.map +0 -1
  467. package/dist/gruvbox-dark-medium-D3l-n4N3.js +0 -6
  468. package/dist/gruvbox-dark-medium-D3l-n4N3.js.map +0 -1
  469. package/dist/gruvbox-dark-soft-Ca_lMr1K.js +0 -6
  470. package/dist/gruvbox-dark-soft-Ca_lMr1K.js.map +0 -1
  471. package/dist/gruvbox-light-hard-D5BcqPys.js +0 -6
  472. package/dist/gruvbox-light-hard-D5BcqPys.js.map +0 -1
  473. package/dist/gruvbox-light-medium-C_7vC_ep.js +0 -6
  474. package/dist/gruvbox-light-medium-C_7vC_ep.js.map +0 -1
  475. package/dist/gruvbox-light-soft-YeHuiVT9.js +0 -6
  476. package/dist/gruvbox-light-soft-YeHuiVT9.js.map +0 -1
  477. package/dist/hack-Bo7_3XMo.js +0 -12
  478. package/dist/hack-Bo7_3XMo.js.map +0 -1
  479. package/dist/haml-lAa-UgZq.js +0 -12
  480. package/dist/haml-lAa-UgZq.js.map +0 -1
  481. package/dist/handlebars-C-lypSbJ.js +0 -16
  482. package/dist/handlebars-C-lypSbJ.js.map +0 -1
  483. package/dist/haskell-CyfJi0Qi.js +0 -8
  484. package/dist/haskell-CyfJi0Qi.js.map +0 -1
  485. package/dist/haxe-DHpItfCt.js +0 -8
  486. package/dist/haxe-DHpItfCt.js.map +0 -1
  487. package/dist/hcl-C-f84Y9W.js +0 -8
  488. package/dist/hcl-C-f84Y9W.js.map +0 -1
  489. package/dist/hjson-8VYQauSm.js +0 -8
  490. package/dist/hjson-8VYQauSm.js.map +0 -1
  491. package/dist/hlsl-Bi2Lb4au.js +0 -8
  492. package/dist/hlsl-Bi2Lb4au.js.map +0 -1
  493. package/dist/horizon-DyGYchkb.js +0 -6
  494. package/dist/horizon-DyGYchkb.js.map +0 -1
  495. package/dist/horizon-bright-DatYugLo.js +0 -6
  496. package/dist/horizon-bright-DatYugLo.js.map +0 -1
  497. package/dist/houston-DaTAsj92.js +0 -6
  498. package/dist/houston-DaTAsj92.js.map +0 -1
  499. package/dist/html-BXZx6WkT.js.map +0 -1
  500. package/dist/html-derivative-CaPNhXFu.js +0 -10
  501. package/dist/html-derivative-CaPNhXFu.js.map +0 -1
  502. package/dist/http-BJ0BMq9T.js +0 -16
  503. package/dist/http-BJ0BMq9T.js.map +0 -1
  504. package/dist/hurl-D_d_bmYM.js +0 -14
  505. package/dist/hurl-D_d_bmYM.js.map +0 -1
  506. package/dist/hxml-C8H9PCaB.js +0 -10
  507. package/dist/hxml-C8H9PCaB.js.map +0 -1
  508. package/dist/hy-Cf7WyqnA.js +0 -8
  509. package/dist/hy-Cf7WyqnA.js.map +0 -1
  510. package/dist/imba-4cu8YWL6.js +0 -8
  511. package/dist/imba-4cu8YWL6.js.map +0 -1
  512. package/dist/index-yfbAkHut.js +0 -7313
  513. package/dist/index-yfbAkHut.js.map +0 -1
  514. package/dist/ini-DdlAq5Sk.js +0 -8
  515. package/dist/ini-DdlAq5Sk.js.map +0 -1
  516. package/dist/input-area-BgpN8siO.js.map +0 -1
  517. package/dist/input-gGpJCiT7.js.map +0 -1
  518. package/dist/input-group-DwPPwJEW.js.map +0 -1
  519. package/dist/java-DZX_qz_V.js +0 -8
  520. package/dist/java-DZX_qz_V.js.map +0 -1
  521. package/dist/javascript-Dcop9YgO.js.map +0 -1
  522. package/dist/jinja-CYDaN8cn.js +0 -13
  523. package/dist/jinja-CYDaN8cn.js.map +0 -1
  524. package/dist/jison-B8TKZKc6.js +0 -10
  525. package/dist/jison-B8TKZKc6.js.map +0 -1
  526. package/dist/json-BONZstWZ.js.map +0 -1
  527. package/dist/json5-C-4cnXW0.js +0 -8
  528. package/dist/json5-C-4cnXW0.js.map +0 -1
  529. package/dist/jsonc-CIx6BVP6.js.map +0 -1
  530. package/dist/jsonl-DFezC0c-.js +0 -8
  531. package/dist/jsonl-DFezC0c-.js.map +0 -1
  532. package/dist/jsonnet-CrYiLnuZ.js +0 -8
  533. package/dist/jsonnet-CrYiLnuZ.js.map +0 -1
  534. package/dist/jssm-DPqP_6Yy.js +0 -8
  535. package/dist/jssm-DPqP_6Yy.js.map +0 -1
  536. package/dist/jsx-Buo8VY2N.js.map +0 -1
  537. package/dist/julia-BGc-upw8.js +0 -18
  538. package/dist/julia-BGc-upw8.js.map +0 -1
  539. package/dist/just-Btim_Xbp.js +0 -20
  540. package/dist/just-Btim_Xbp.js.map +0 -1
  541. package/dist/kanagawa-dragon-CrRYMC-y.js +0 -6
  542. package/dist/kanagawa-dragon-CrRYMC-y.js.map +0 -1
  543. package/dist/kanagawa-lotus-CpAeLZo_.js +0 -6
  544. package/dist/kanagawa-lotus-CpAeLZo_.js.map +0 -1
  545. package/dist/kanagawa-wave-DgLnfzgl.js +0 -6
  546. package/dist/kanagawa-wave-DgLnfzgl.js.map +0 -1
  547. package/dist/kdl-D5mP0US-.js +0 -8
  548. package/dist/kdl-D5mP0US-.js.map +0 -1
  549. package/dist/kotlin-Bj4GXgal.js +0 -8
  550. package/dist/kotlin-Bj4GXgal.js.map +0 -1
  551. package/dist/kusto-xKgi3EM3.js +0 -8
  552. package/dist/kusto-xKgi3EM3.js.map +0 -1
  553. package/dist/label-hoE9-Nzo.js.map +0 -1
  554. package/dist/laserwave-DwIE46bX.js +0 -6
  555. package/dist/laserwave-DwIE46bX.js.map +0 -1
  556. package/dist/latex-Ba_x0_mo.js +0 -10
  557. package/dist/latex-Ba_x0_mo.js.map +0 -1
  558. package/dist/layer-card-C8j5Hkkj.js.map +0 -1
  559. package/dist/lean-CFZjFqaI.js +0 -8
  560. package/dist/lean-CFZjFqaI.js.map +0 -1
  561. package/dist/less-Cah4u9hl.js +0 -8
  562. package/dist/less-Cah4u9hl.js.map +0 -1
  563. package/dist/light-plus-uDz5yXau.js +0 -6
  564. package/dist/light-plus-uDz5yXau.js.map +0 -1
  565. package/dist/link-BFszrye7.js.map +0 -1
  566. package/dist/link-provider-DPBGo-0n.js.map +0 -1
  567. package/dist/liquid-DUwftMLD.js +0 -16
  568. package/dist/liquid-DUwftMLD.js.map +0 -1
  569. package/dist/llvm-p6MskI4D.js +0 -8
  570. package/dist/llvm-p6MskI4D.js.map +0 -1
  571. package/dist/loader-DHGMYlC6.js.map +0 -1
  572. package/dist/log-B-eGB3gN.js +0 -8
  573. package/dist/log-B-eGB3gN.js.map +0 -1
  574. package/dist/logo-_QhIaHqR.js +0 -8
  575. package/dist/logo-_QhIaHqR.js.map +0 -1
  576. package/dist/lua-DXBtl-xZ.js +0 -10
  577. package/dist/lua-DXBtl-xZ.js.map +0 -1
  578. package/dist/luau-cNt0OAd4.js +0 -8
  579. package/dist/luau-cNt0OAd4.js.map +0 -1
  580. package/dist/make-LOzELzzn.js +0 -8
  581. package/dist/make-LOzELzzn.js.map +0 -1
  582. package/dist/markdown-CPiFXKuQ.js.map +0 -1
  583. package/dist/marko-B5j5W6dr.js +0 -16
  584. package/dist/marko-B5j5W6dr.js.map +0 -1
  585. package/dist/material-theme-BNmHEIvm.js +0 -6
  586. package/dist/material-theme-BNmHEIvm.js.map +0 -1
  587. package/dist/material-theme-darker-DSlFkdBn.js +0 -6
  588. package/dist/material-theme-darker-DSlFkdBn.js.map +0 -1
  589. package/dist/material-theme-lighter-DMthFo49.js +0 -6
  590. package/dist/material-theme-lighter-DMthFo49.js.map +0 -1
  591. package/dist/material-theme-ocean-Bza3srwZ.js +0 -6
  592. package/dist/material-theme-ocean-Bza3srwZ.js.map +0 -1
  593. package/dist/material-theme-palenight-cC7823m_.js +0 -6
  594. package/dist/material-theme-palenight-cC7823m_.js.map +0 -1
  595. package/dist/matlab-BXc70sGh.js +0 -8
  596. package/dist/matlab-BXc70sGh.js.map +0 -1
  597. package/dist/mdc-DIfFG4VK.js +0 -14
  598. package/dist/mdc-DIfFG4VK.js.map +0 -1
  599. package/dist/mdx-DDEEGmMw.js +0 -8
  600. package/dist/mdx-DDEEGmMw.js.map +0 -1
  601. package/dist/menubar-DF-6twXU.js.map +0 -1
  602. package/dist/mermaid-BbhKaiym.js +0 -8
  603. package/dist/mermaid-BbhKaiym.js.map +0 -1
  604. package/dist/meter-CP6NBKRN.js.map +0 -1
  605. package/dist/min-dark-B2RGEXlR.js +0 -6
  606. package/dist/min-dark-B2RGEXlR.js.map +0 -1
  607. package/dist/min-light-CdvDdehu.js +0 -6
  608. package/dist/min-light-CdvDdehu.js.map +0 -1
  609. package/dist/mipsasm-A-azREv6.js +0 -8
  610. package/dist/mipsasm-A-azREv6.js.map +0 -1
  611. package/dist/mojo-eENZKkWN.js +0 -8
  612. package/dist/mojo-eENZKkWN.js.map +0 -1
  613. package/dist/monokai-DfGcBwbw.js +0 -6
  614. package/dist/monokai-DfGcBwbw.js.map +0 -1
  615. package/dist/moonbit-OY9Cnyv0.js +0 -8
  616. package/dist/moonbit-OY9Cnyv0.js.map +0 -1
  617. package/dist/move-DQ3SUBHm.js +0 -8
  618. package/dist/move-DQ3SUBHm.js.map +0 -1
  619. package/dist/narrat-DEs1QMww.js +0 -8
  620. package/dist/narrat-DEs1QMww.js.map +0 -1
  621. package/dist/nextflow-BLqoZa2U.js +0 -10
  622. package/dist/nextflow-BLqoZa2U.js.map +0 -1
  623. package/dist/nextflow-groovy-sn5GPI4S.js +0 -8
  624. package/dist/nextflow-groovy-sn5GPI4S.js.map +0 -1
  625. package/dist/nginx-DV2C2lFg.js +0 -10
  626. package/dist/nginx-DV2C2lFg.js.map +0 -1
  627. package/dist/night-owl-Cx4f311z.js +0 -6
  628. package/dist/night-owl-Cx4f311z.js.map +0 -1
  629. package/dist/night-owl-light-CFIwPg_e.js +0 -6
  630. package/dist/night-owl-light-CFIwPg_e.js.map +0 -1
  631. package/dist/nim-DX5HB9SQ.js +0 -22
  632. package/dist/nim-DX5HB9SQ.js.map +0 -1
  633. package/dist/nix-BbTJzn8W.js +0 -11
  634. package/dist/nix-BbTJzn8W.js.map +0 -1
  635. package/dist/nord-N4OTOgI2.js +0 -6
  636. package/dist/nord-N4OTOgI2.js.map +0 -1
  637. package/dist/nushell-CRsPhsIw.js +0 -8
  638. package/dist/nushell-CRsPhsIw.js.map +0 -1
  639. package/dist/objective-c-7VQzYTNs.js +0 -8
  640. package/dist/objective-c-7VQzYTNs.js.map +0 -1
  641. package/dist/objective-cpp-C_AHgfC8.js +0 -8
  642. package/dist/objective-cpp-C_AHgfC8.js.map +0 -1
  643. package/dist/ocaml-N0gcbB8P.js +0 -8
  644. package/dist/ocaml-N0gcbB8P.js.map +0 -1
  645. package/dist/odin-CbArZjV2.js +0 -8
  646. package/dist/odin-CbArZjV2.js.map +0 -1
  647. package/dist/one-dark-pro-CFjKUJ8l.js +0 -6
  648. package/dist/one-dark-pro-CFjKUJ8l.js.map +0 -1
  649. package/dist/one-light-cHFZvryT.js +0 -6
  650. package/dist/one-light-cHFZvryT.js.map +0 -1
  651. package/dist/openscad-9QYZdZML.js +0 -8
  652. package/dist/openscad-9QYZdZML.js.map +0 -1
  653. package/dist/pagination-BWkeDEqb.js.map +0 -1
  654. package/dist/pascal-Chee6n3j.js +0 -8
  655. package/dist/pascal-Chee6n3j.js.map +0 -1
  656. package/dist/perl-Bo9cWF9y.js +0 -18
  657. package/dist/perl-Bo9cWF9y.js.map +0 -1
  658. package/dist/php-Cbqedh5-.js +0 -20
  659. package/dist/php-Cbqedh5-.js.map +0 -1
  660. package/dist/pkl-DmRpyJfO.js +0 -8
  661. package/dist/pkl-DmRpyJfO.js.map +0 -1
  662. package/dist/plastic-BWaSpRpp.js +0 -6
  663. package/dist/plastic-BWaSpRpp.js.map +0 -1
  664. package/dist/plsql-DXyBT3AN.js +0 -8
  665. package/dist/plsql-DXyBT3AN.js.map +0 -1
  666. package/dist/po-Duw5KTH-.js +0 -8
  667. package/dist/po-Duw5KTH-.js.map +0 -1
  668. package/dist/poimandres-DtrtfOBO.js +0 -6
  669. package/dist/poimandres-DtrtfOBO.js.map +0 -1
  670. package/dist/polar-C9ZZjIU6.js +0 -8
  671. package/dist/polar-C9ZZjIU6.js.map +0 -1
  672. package/dist/popover-B5CWcu7v.js.map +0 -1
  673. package/dist/postcss-D9nF9Ns4.js +0 -8
  674. package/dist/postcss-D9nF9Ns4.js.map +0 -1
  675. package/dist/powerquery-Bf1siwRH.js +0 -8
  676. package/dist/powerquery-Bf1siwRH.js.map +0 -1
  677. package/dist/powershell-DbLFMYnO.js +0 -8
  678. package/dist/powershell-DbLFMYnO.js.map +0 -1
  679. package/dist/prisma-DQmdODpM.js +0 -8
  680. package/dist/prisma-DQmdODpM.js.map +0 -1
  681. package/dist/prolog-BhDhfNq2.js +0 -8
  682. package/dist/prolog-BhDhfNq2.js.map +0 -1
  683. package/dist/proto-8YBPwIZV.js +0 -8
  684. package/dist/proto-8YBPwIZV.js.map +0 -1
  685. package/dist/pug-Cd1k_DIC.js +0 -14
  686. package/dist/pug-Cd1k_DIC.js.map +0 -1
  687. package/dist/puppet-DWeotfji.js +0 -8
  688. package/dist/puppet-DWeotfji.js.map +0 -1
  689. package/dist/purescript-BlRfpTfS.js +0 -8
  690. package/dist/purescript-BlRfpTfS.js.map +0 -1
  691. package/dist/python--QhWBEuB.js.map +0 -1
  692. package/dist/qml-D5YeakZo.js +0 -10
  693. package/dist/qml-D5YeakZo.js.map +0 -1
  694. package/dist/qmldir-Cvb9I9Hu.js +0 -8
  695. package/dist/qmldir-Cvb9I9Hu.js.map +0 -1
  696. package/dist/qss-MOxpdvNy.js +0 -8
  697. package/dist/qss-MOxpdvNy.js.map +0 -1
  698. package/dist/r-CPa3sP0i.js +0 -8
  699. package/dist/r-CPa3sP0i.js.map +0 -1
  700. package/dist/racket-u4Z5W-hW.js +0 -8
  701. package/dist/racket-u4Z5W-hW.js.map +0 -1
  702. package/dist/radio-BQTXNBkS.js.map +0 -1
  703. package/dist/raku-DD1-d8EI.js +0 -8
  704. package/dist/raku-DD1-d8EI.js.map +0 -1
  705. package/dist/razor-CvgW6g5F.js +0 -12
  706. package/dist/razor-CvgW6g5F.js.map +0 -1
  707. package/dist/red-nqtx3ZzA.js +0 -6
  708. package/dist/red-nqtx3ZzA.js.map +0 -1
  709. package/dist/reg-D39ozI4Z.js +0 -8
  710. package/dist/reg-D39ozI4Z.js.map +0 -1
  711. package/dist/regexp-C-mTs3Xt.js +0 -8
  712. package/dist/regexp-C-mTs3Xt.js.map +0 -1
  713. package/dist/rel-CvIujmyu.js +0 -8
  714. package/dist/rel-CvIujmyu.js.map +0 -1
  715. package/dist/riscv-BDw_rTFU.js +0 -8
  716. package/dist/riscv-BDw_rTFU.js.map +0 -1
  717. package/dist/ron-Dr-HoCkP.js +0 -8
  718. package/dist/ron-Dr-HoCkP.js.map +0 -1
  719. package/dist/rose-pine-Ca6P34ai.js +0 -6
  720. package/dist/rose-pine-Ca6P34ai.js.map +0 -1
  721. package/dist/rose-pine-dawn-CSsyidmk.js +0 -6
  722. package/dist/rose-pine-dawn-CSsyidmk.js.map +0 -1
  723. package/dist/rose-pine-moon-DFcWGQ4j.js +0 -6
  724. package/dist/rose-pine-moon-DFcWGQ4j.js.map +0 -1
  725. package/dist/rosmsg-D3QLmOd5.js +0 -8
  726. package/dist/rosmsg-D3QLmOd5.js.map +0 -1
  727. package/dist/rst-BVJfTGcR.js +0 -24
  728. package/dist/rst-BVJfTGcR.js.map +0 -1
  729. package/dist/ruby-0gZcrdnG.js +0 -32
  730. package/dist/ruby-0gZcrdnG.js.map +0 -1
  731. package/dist/rust-CiVdiDo-.js +0 -8
  732. package/dist/rust-CiVdiDo-.js.map +0 -1
  733. package/dist/sas-Df_jutC7.js +0 -10
  734. package/dist/sas-Df_jutC7.js.map +0 -1
  735. package/dist/sass-CnN1LcIf.js +0 -8
  736. package/dist/sass-CnN1LcIf.js.map +0 -1
  737. package/dist/scala-D_7p1-Ff.js +0 -8
  738. package/dist/scala-D_7p1-Ff.js.map +0 -1
  739. package/dist/scheme-kuKKlndT.js +0 -8
  740. package/dist/scheme-kuKKlndT.js.map +0 -1
  741. package/dist/scss-Cnx3ZIbn.js +0 -10
  742. package/dist/scss-Cnx3ZIbn.js.map +0 -1
  743. package/dist/sdbl-C99B6EXT.js +0 -8
  744. package/dist/sdbl-C99B6EXT.js.map +0 -1
  745. package/dist/select-BWUNPPHQ.js.map +0 -1
  746. package/dist/sensitive-input-A6Kw7URa.js.map +0 -1
  747. package/dist/shaderlab-r5kupfNY.js +0 -10
  748. package/dist/shaderlab-r5kupfNY.js.map +0 -1
  749. package/dist/shellscript-C9yrawww.js.map +0 -1
  750. package/dist/shellsession-Vfxwd5pt.js +0 -10
  751. package/dist/shellsession-Vfxwd5pt.js.map +0 -1
  752. package/dist/skeleton-line-CtpS1u1J.js.map +0 -1
  753. package/dist/slack-dark-DPwE-fTd.js +0 -6
  754. package/dist/slack-dark-DPwE-fTd.js.map +0 -1
  755. package/dist/slack-ochin-XQpb-bu3.js +0 -6
  756. package/dist/slack-ochin-XQpb-bu3.js.map +0 -1
  757. package/dist/smalltalk-DBHjpWnU.js +0 -8
  758. package/dist/smalltalk-DBHjpWnU.js.map +0 -1
  759. package/dist/snazzy-light-B301-rZ_.js +0 -6
  760. package/dist/snazzy-light-B301-rZ_.js.map +0 -1
  761. package/dist/solarized-dark-Bmasqmd6.js +0 -6
  762. package/dist/solarized-dark-Bmasqmd6.js.map +0 -1
  763. package/dist/solarized-light-D79sTVew.js +0 -6
  764. package/dist/solarized-light-D79sTVew.js.map +0 -1
  765. package/dist/solidity-DiELThdT.js +0 -8
  766. package/dist/solidity-DiELThdT.js.map +0 -1
  767. package/dist/soy-JFzJcdvc.js +0 -10
  768. package/dist/soy-JFzJcdvc.js.map +0 -1
  769. package/dist/sparql-DFkbfk9m.js +0 -10
  770. package/dist/sparql-DFkbfk9m.js.map +0 -1
  771. package/dist/splunk-D_3lOa0g.js +0 -8
  772. package/dist/splunk-D_3lOa0g.js.map +0 -1
  773. package/dist/sql-BUQKMpen.js.map +0 -1
  774. package/dist/ssh-config-DNaBVjVu.js +0 -8
  775. package/dist/ssh-config-DNaBVjVu.js.map +0 -1
  776. package/dist/stata-DLB0gsgJ.js +0 -10
  777. package/dist/stata-DLB0gsgJ.js.map +0 -1
  778. package/dist/stylus-D51fN9sH.js +0 -8
  779. package/dist/stylus-D51fN9sH.js.map +0 -1
  780. package/dist/surface-BIC6CXiz.js.map +0 -1
  781. package/dist/surrealql-sFzY-ODM.js +0 -10
  782. package/dist/surrealql-sFzY-ODM.js.map +0 -1
  783. package/dist/svelte-CvDgWedh.js +0 -16
  784. package/dist/svelte-CvDgWedh.js.map +0 -1
  785. package/dist/swift-DwwnjRI-.js +0 -8
  786. package/dist/swift-DwwnjRI-.js.map +0 -1
  787. package/dist/switch-CmUFBiJv.js.map +0 -1
  788. package/dist/synthwave-84-H0OiUA6S.js +0 -6
  789. package/dist/synthwave-84-H0OiUA6S.js.map +0 -1
  790. package/dist/system-verilog-Crpmwi64.js +0 -8
  791. package/dist/system-verilog-Crpmwi64.js.map +0 -1
  792. package/dist/systemd-DpPksTVO.js +0 -8
  793. package/dist/systemd-DpPksTVO.js.map +0 -1
  794. package/dist/table-CbU4Oe3o.js.map +0 -1
  795. package/dist/tabs-uLzHh6SR.js.map +0 -1
  796. package/dist/talonscript-C0B9tdh0.js +0 -8
  797. package/dist/talonscript-C0B9tdh0.js.map +0 -1
  798. package/dist/tasl-De-6_1ux.js +0 -8
  799. package/dist/tasl-De-6_1ux.js.map +0 -1
  800. package/dist/tcl-tdOXVFhT.js +0 -8
  801. package/dist/tcl-tdOXVFhT.js.map +0 -1
  802. package/dist/templ-D3k0ETqq.js +0 -14
  803. package/dist/templ-D3k0ETqq.js.map +0 -1
  804. package/dist/terraform-C65cvXJK.js +0 -8
  805. package/dist/terraform-C65cvXJK.js.map +0 -1
  806. package/dist/tex-4pYKQzZ9.js +0 -10
  807. package/dist/tex-4pYKQzZ9.js.map +0 -1
  808. package/dist/text-BEhqwMfe.js.map +0 -1
  809. package/dist/toast-B-d56fkl.js.map +0 -1
  810. package/dist/tokyo-night-BcIcd5FP.js +0 -6
  811. package/dist/tokyo-night-BcIcd5FP.js.map +0 -1
  812. package/dist/toml-BTLaxjFB.js +0 -8
  813. package/dist/toml-BTLaxjFB.js.map +0 -1
  814. package/dist/tooltip-C7p2iJ0y.js.map +0 -1
  815. package/dist/ts-tags-DeeA5bAv.js +0 -43
  816. package/dist/ts-tags-DeeA5bAv.js.map +0 -1
  817. package/dist/tsv-BSiNlNds.js +0 -8
  818. package/dist/tsv-BSiNlNds.js.map +0 -1
  819. package/dist/tsx-1QZ5GNk-.js.map +0 -1
  820. package/dist/turtle-B1Pzn5av.js +0 -8
  821. package/dist/turtle-B1Pzn5av.js.map +0 -1
  822. package/dist/twig-C2HueQmu.js +0 -20
  823. package/dist/twig-C2HueQmu.js.map +0 -1
  824. package/dist/typescript-CLMZXfG9.js.map +0 -1
  825. package/dist/typespec-C5gqdlO4.js +0 -8
  826. package/dist/typespec-C5gqdlO4.js.map +0 -1
  827. package/dist/typst-pX4dU_Sd.js +0 -8
  828. package/dist/typst-pX4dU_Sd.js.map +0 -1
  829. package/dist/v-C_UlMRpP.js +0 -8
  830. package/dist/v-C_UlMRpP.js.map +0 -1
  831. package/dist/vala-B0RfnRiT.js +0 -8
  832. package/dist/vala-B0RfnRiT.js.map +0 -1
  833. package/dist/vb-DYbmUkLw.js +0 -8
  834. package/dist/vb-DYbmUkLw.js.map +0 -1
  835. package/dist/vendor-base-ui-DN1j_aJS.js.map +0 -1
  836. package/dist/vendor-floating-ui-BgbEw62H.js.map +0 -1
  837. package/dist/vendor-styling-BQbxAbdS.js.map +0 -1
  838. package/dist/vendor-utils-DKXfkDYu.js.map +0 -1
  839. package/dist/verilog-BUqLwf8h.js +0 -8
  840. package/dist/verilog-BUqLwf8h.js.map +0 -1
  841. package/dist/vesper-BW8Q9P3p.js.map +0 -1
  842. package/dist/vhdl-e6zXgkQJ.js +0 -8
  843. package/dist/vhdl-e6zXgkQJ.js.map +0 -1
  844. package/dist/viml-Bw7DMabC.js +0 -8
  845. package/dist/viml-Bw7DMabC.js.map +0 -1
  846. package/dist/vitesse-black-BBGvp4RB.js +0 -6
  847. package/dist/vitesse-black-BBGvp4RB.js.map +0 -1
  848. package/dist/vitesse-dark-qcbI9VBy.js +0 -6
  849. package/dist/vitesse-dark-qcbI9VBy.js.map +0 -1
  850. package/dist/vitesse-light-BL2wQDaR.js +0 -6
  851. package/dist/vitesse-light-BL2wQDaR.js.map +0 -1
  852. package/dist/vue-DKeMdoTK.js +0 -33
  853. package/dist/vue-DKeMdoTK.js.map +0 -1
  854. package/dist/vue-html-CEfeAKp2.js +0 -10
  855. package/dist/vue-html-CEfeAKp2.js.map +0 -1
  856. package/dist/vue-vine-CjuPBhXu.js +0 -20
  857. package/dist/vue-vine-CjuPBhXu.js.map +0 -1
  858. package/dist/vyper-Dc9KcbZ_.js +0 -8
  859. package/dist/vyper-Dc9KcbZ_.js.map +0 -1
  860. package/dist/wasm-Bae8j78o.js +0 -8
  861. package/dist/wasm-Bae8j78o.js.map +0 -1
  862. package/dist/wasm-D5B682Xt.js.map +0 -1
  863. package/dist/wenyan-j7Mu9-Zf.js +0 -8
  864. package/dist/wenyan-j7Mu9-Zf.js.map +0 -1
  865. package/dist/wgsl-DEgz941F.js +0 -8
  866. package/dist/wgsl-DEgz941F.js.map +0 -1
  867. package/dist/wikitext-CFdiH6zG.js +0 -8
  868. package/dist/wikitext-CFdiH6zG.js.map +0 -1
  869. package/dist/wit-CQDxIROw.js +0 -8
  870. package/dist/wit-CQDxIROw.js.map +0 -1
  871. package/dist/wolfram-BkETUL8d.js +0 -8
  872. package/dist/wolfram-BkETUL8d.js.map +0 -1
  873. package/dist/xml-CKSarKBc.js +0 -10
  874. package/dist/xml-CKSarKBc.js.map +0 -1
  875. package/dist/xsl-oImqe_65.js +0 -10
  876. package/dist/xsl-oImqe_65.js.map +0 -1
  877. package/dist/yaml-CqFcuW2H.js.map +0 -1
  878. package/dist/zenscript-DfbVeZ74.js +0 -8
  879. package/dist/zenscript-DfbVeZ74.js.map +0 -1
  880. package/dist/zig--LeFnMpj.js +0 -8
  881. package/dist/zig--LeFnMpj.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # @cloudflare/kumo
2
2
 
3
+ ## 1.12.1
4
+
5
+ ### Patch Changes
6
+
7
+ - eda8362: Fix combobox caret icon visibility by using fill-kumo-subtle instead of fill-kumo-ring
8
+
9
+ ## 1.12.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 4d6de27: reorganize greyscale tokens and update color preferences
14
+
15
+ ### Patch Changes
16
+
17
+ - 2ff49b7: updated button styles for outline and secondary
18
+ - 59f7935: Fix Jest module resolution failures and reduce Shiki bundle size
19
+
20
+ **Jest Fix:**
21
+ - Add `chunkFileNames` config to prevent double-dash filenames (e.g., `combobox--ec3iibR.js`) that Jest cannot resolve
22
+ - Move chunks to `dist/chunks/` subdirectory for cleaner structure
23
+
24
+ **Bundle Size Reduction:**
25
+ - Switch from full Shiki bundle to fine-grained imports via `shiki/core`
26
+ - Reduce from ~300 language/theme chunks to ~16 bundled languages
27
+ - Total JS files reduced from 358 to ~163 (54% reduction)
28
+
29
+ **Supported Languages:**
30
+ `javascript`, `typescript`, `jsx`, `tsx`, `json`, `jsonc`, `html`, `css`, `python`, `yaml`, `markdown`, `graphql`, `sql`, `bash`, `shell`, `diff`
31
+
32
+ **Breaking Change:**
33
+ - `BundledLanguage` type is now deprecated, use `SupportedLanguage` instead
34
+ - Only the languages listed above are bundled; other Shiki languages are no longer available out of the box
35
+
36
+ - 9eaf584: Fix npm publish failure by removing cross-package dependency from prepublish hook
37
+
3
38
  ## 1.11.0
4
39
 
5
40
  ### Minor Changes
@@ -318,11 +318,11 @@
318
318
  },
319
319
  "classes": {
320
320
  "primary": "bg-kumo-brand !text-white hover:bg-kumo-brand-hover focus:bg-kumo-brand-hover disabled:bg-kumo-brand/50",
321
- "secondary": "bg-kumo-control !text-kumo-default ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-control disabled:bg-kumo-control/50 disabled:!text-kumo-default/70 ring-kumo-line data-[state=open]:bg-kumo-control",
321
+ "secondary": "bg-kumo-base !text-kumo-default ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-tint disabled:bg-kumo-base/50 disabled:!text-kumo-default/70 ring-kumo-ring data-[state=open]:bg-kumo-base",
322
322
  "ghost": "text-kumo-default hover:bg-kumo-tint shadow-none bg-inherit",
323
323
  "destructive": "bg-kumo-danger !text-white hover:bg-kumo-danger/70",
324
- "secondary-destructive": "bg-kumo-control !text-kumo-danger ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-control disabled:bg-kumo-control/50 disabled:!text-kumo-danger/70 ring-kumo-line data-[state=open]:bg-kumo-control",
325
- "outline": "bg-kumo-base text-kumo-default ring ring-kumo-line"
324
+ "secondary-destructive": "bg-kumo-base !text-kumo-danger ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-base disabled:bg-kumo-base/50 disabled:!text-kumo-danger/70 ring-kumo-line data-[state=open]:bg-kumo-base",
325
+ "outline": "text-kumo-default ring-2 ring-kumo-ring"
326
326
  },
327
327
  "stateClasses": {
328
328
  "primary": {
@@ -331,9 +331,9 @@
331
331
  "disabled": "disabled:bg-kumo-brand/50"
332
332
  },
333
333
  "secondary": {
334
- "not-disabled": "not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-control",
335
- "disabled": "disabled:bg-kumo-control/50 disabled:!text-kumo-default/70",
336
- "data-state": "data-[state=open]:bg-kumo-control"
334
+ "not-disabled": "not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-tint",
335
+ "disabled": "disabled:bg-kumo-base/50 disabled:!text-kumo-default/70",
336
+ "data-state": "data-[state=open]:bg-kumo-base"
337
337
  },
338
338
  "ghost": {
339
339
  "hover": "hover:bg-kumo-tint"
@@ -342,9 +342,9 @@
342
342
  "hover": "hover:bg-kumo-danger/70"
343
343
  },
344
344
  "secondary-destructive": {
345
- "not-disabled": "not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-control",
346
- "disabled": "disabled:bg-kumo-control/50 disabled:!text-kumo-danger/70",
347
- "data-state": "data-[state=open]:bg-kumo-control"
345
+ "not-disabled": "not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-base",
346
+ "disabled": "disabled:bg-kumo-base/50 disabled:!text-kumo-danger/70",
347
+ "data-state": "data-[state=open]:bg-kumo-base"
348
348
  }
349
349
  },
350
350
  "default": "secondary"
@@ -419,7 +419,6 @@
419
419
  "bg-kumo-base",
420
420
  "bg-kumo-brand",
421
421
  "bg-kumo-brand-hover",
422
- "bg-kumo-control",
423
422
  "bg-kumo-danger",
424
423
  "bg-kumo-tint",
425
424
  "ring-kumo-line",
@@ -1939,7 +1938,13 @@
1939
1938
  "description": "Additional CSS classes merged via `cn()`."
1940
1939
  }
1941
1940
  },
1942
- "examples": [],
1941
+ "examples": [
1942
+ "<CodeBlock\n lang=\"tsx\"\n code={`const greeting = \"Hello, World!\";\nconsole.log(greeting);`}\n />",
1943
+ "<CodeBlock\n lang=\"tsx\"\n code={`interface User {\n id: string;\n name: string;\n email: string;\n}\n\nconst user: User = {\n id: \"1\",\n name: \"John Doe\",\n email: \"john@example.com\"\n};`}\n />",
1944
+ "<CodeBlock\n lang=\"bash\"\n code={`npm install @cloudflare/kumo\npnpm add @cloudflare/kumo`}\n />",
1945
+ "<CodeBlock\n lang=\"jsonc\"\n code={`{\n \"name\": \"kumo\",\n \"version\": \"1.0.0\",\n \"dependencies\": {\n \"react\": \"^19.0.0\"\n }\n}`}\n />",
1946
+ "<Code\n lang=\"bash\"\n code=\"export API_KEY={{apiKey}}\"\n values={{\n apiKey: { value: \"sk_live_123\", highlight: true },\n }}\n />"
1947
+ ],
1943
1948
  "colors": [
1944
1949
  "bg-kumo-base",
1945
1950
  "border-kumo-fill",
@@ -3456,7 +3461,7 @@
3456
3461
  "<Meter label=\"Progress\" value={40} showValue={false} />",
3457
3462
  "<Meter label=\"Quota reached\" value={100} />",
3458
3463
  "<Meter label=\"Memory usage\" value={15} />",
3459
- "<Meter\n label=\"Upload progress\"\n value={80}\n indicatorClassName=\"from-kumo-success via-kumo-success to-kumo-success\"\n />"
3464
+ "<Meter\n label=\"Upload progress\"\n value={80}\n indicatorClassName=\"from-green-500 via-green-500 to-green-500\"\n />"
3460
3465
  ],
3461
3466
  "colors": [
3462
3467
  "bg-kumo-fill",
@@ -4703,8 +4708,7 @@
4703
4708
  "examples": [
4704
4709
  "<TooltipProvider>\n <Tooltip content=\"Add new item\" asChild>\n <Button shape=\"square\" icon={PlusIcon} aria-label=\"Add new item\" />\n </Tooltip>\n </TooltipProvider>",
4705
4710
  "<TooltipProvider>\n <Tooltip content=\"Add\" asChild>\n <Button shape=\"square\" icon={PlusIcon} aria-label=\"Add\" />\n </Tooltip>\n </TooltipProvider>",
4706
- "<TooltipProvider>\n <div className=\"flex gap-2\">\n <Tooltip content=\"Add\" asChild>\n <Button shape=\"square\" icon={PlusIcon} aria-label=\"Add\" />\n </Tooltip>\n <Tooltip content=\"Change language\" asChild>\n <Button\n shape=\"square\"\n icon={TranslateIcon}\n aria-label=\"Change language\"\n />\n </Tooltip>\n </div>\n </TooltipProvider>",
4707
- "<TooltipProvider>\n <Tooltip\n content=\"Click to learn more\"\n className=\"inline-flex items-center gap-1.5 rounded-full bg-kumo-brand px-3 py-1.5 text-sm font-medium text-white shadow-md transition-transform hover:scale-105 active:scale-95\"\n >\n <Info className=\"size-4\" />\n <span>Help</span>\n </Tooltip>\n </TooltipProvider>"
4711
+ "<TooltipProvider>\n <div className=\"flex gap-2\">\n <Tooltip content=\"Add\" asChild>\n <Button shape=\"square\" icon={PlusIcon} aria-label=\"Add\" />\n </Tooltip>\n <Tooltip content=\"Change language\" asChild>\n <Button\n shape=\"square\"\n icon={TranslateIcon}\n aria-label=\"Change language\"\n />\n </Tooltip>\n </div>\n </TooltipProvider>"
4708
4712
  ],
4709
4713
  "colors": [
4710
4714
  "bg-kumo-base",
@@ -291,17 +291,17 @@ Primary action trigger. Supports multiple variants, sizes, shapes, icons, and lo
291
291
  - `focus`: `focus:bg-kumo-brand-hover`
292
292
  - `disabled`: `disabled:bg-kumo-brand/50`
293
293
  - `"secondary"`:
294
- - `not-disabled`: `not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-control`
295
- - `disabled`: `disabled:bg-kumo-control/50 disabled:!text-kumo-default/70`
296
- - `data-state`: `data-[state=open]:bg-kumo-control`
294
+ - `not-disabled`: `not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-tint`
295
+ - `disabled`: `disabled:bg-kumo-base/50 disabled:!text-kumo-default/70`
296
+ - `data-state`: `data-[state=open]:bg-kumo-base`
297
297
  - `"ghost"`:
298
298
  - `hover`: `hover:bg-kumo-tint`
299
299
  - `"destructive"`:
300
300
  - `hover`: `hover:bg-kumo-danger/70`
301
301
  - `"secondary-destructive"`:
302
- - `not-disabled`: `not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-control`
303
- - `disabled`: `disabled:bg-kumo-control/50 disabled:!text-kumo-danger/70`
304
- - `data-state`: `data-[state=open]:bg-kumo-control`
302
+ - `not-disabled`: `not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-base`
303
+ - `disabled`: `disabled:bg-kumo-base/50 disabled:!text-kumo-danger/70`
304
+ - `data-state`: `data-[state=open]:bg-kumo-base`
305
305
  - `children`: ReactNode
306
306
  - `className`: string
307
307
  - `icon`: ReactNode
@@ -318,7 +318,7 @@ Primary action trigger. Supports multiple variants, sizes, shapes, icons, and lo
318
318
 
319
319
  **Colors (kumo tokens used):**
320
320
 
321
- `bg-kumo-base`, `bg-kumo-brand`, `bg-kumo-brand-hover`, `bg-kumo-control`, `bg-kumo-danger`, `bg-kumo-tint`, `ring-kumo-line`, `ring-kumo-ring`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-subtle`
321
+ `bg-kumo-base`, `bg-kumo-brand`, `bg-kumo-brand-hover`, `bg-kumo-danger`, `bg-kumo-tint`, `ring-kumo-line`, `ring-kumo-ring`, `text-kumo-danger`, `text-kumo-default`, `text-kumo-subtle`
322
322
 
323
323
  **Examples:**
324
324
 
@@ -1077,6 +1077,27 @@ Props:
1077
1077
  - `lang`: CodeLang
1078
1078
 
1079
1079
 
1080
+ **Examples:**
1081
+
1082
+ ```tsx
1083
+ <CodeBlock
1084
+ lang="tsx"
1085
+ code={`const greeting = "Hello, World!";
1086
+ console.log(greeting);`}
1087
+ />
1088
+ ```
1089
+
1090
+ ```tsx
1091
+ <Code
1092
+ lang="bash"
1093
+ code="export API_KEY={{apiKey}}"
1094
+ values={{
1095
+ apiKey: { value: "sk_live_123", highlight: true },
1096
+ }}
1097
+ />
1098
+ ```
1099
+
1100
+
1080
1101
  ---
1081
1102
 
1082
1103
  ### Collapsible
@@ -3403,7 +3424,7 @@ Progress bar showing a measured value within a known range (e.g. quota usage).
3403
3424
  <Meter
3404
3425
  label="Upload progress"
3405
3426
  value={80}
3406
- indicatorClassName="from-kumo-success via-kumo-success to-kumo-success"
3427
+ indicatorClassName="from-green-500 via-green-500 to-green-500"
3407
3428
  />
3408
3429
  ```
3409
3430
 
@@ -5020,18 +5041,6 @@ Accessible popup that shows additional information on hover/focus. Wrap your app
5020
5041
  </TooltipProvider>
5021
5042
  ```
5022
5043
 
5023
- ```tsx
5024
- <TooltipProvider>
5025
- <Tooltip
5026
- content="Click to learn more"
5027
- className="inline-flex items-center gap-1.5 rounded-full bg-kumo-brand px-3 py-1.5 text-sm font-medium text-white shadow-md transition-transform hover:scale-105 active:scale-95"
5028
- >
5029
- <Info className="size-4" />
5030
- <span>Help</span>
5031
- </Tooltip>
5032
- </TooltipProvider>
5033
- ```
5034
-
5035
5044
 
5036
5045
  ---
5037
5046
 
@@ -1 +1 @@
1
- 1773409393878
1
+ 1773430275505
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as d, jsxs as L } from "react/jsx-runtime";
3
3
  import { forwardRef as K, useRef as $, useEffect as v, useMemo as j } from "react";
4
- import { c as F } from "./cn-Bhsu1vx2.js";
4
+ import { c as F } from "./cn-ct4n7r74mh8y0f48.js";
5
5
  var C = /* @__PURE__ */ ((e) => (e.Attention = "#FC574A", e.Warning = "#F8A054", e.Neutral = "#82B6FF", e.NeutralLight = "#B9D6FF", e.Disabled = "#B6B6B6", e.DisabledLight = "#D9D9D9", e))(C || {}), H = /* @__PURE__ */ ((e) => (e.Attention = "#FC574AE6", e.Warning = "#F8A054E6", e.Neutral = "#82B6FFE6", e.NeutralLight = "#B9D6FFE6", e.Disabled = "#B6B6B6E6", e.DisabledLight = "#D9D9D9E6", e))(H || {});
6
6
  const S = [
7
7
  "#086FFF",
@@ -385,4 +385,4 @@ export {
385
385
  te as a,
386
386
  k as b
387
387
  };
388
- //# sourceMappingURL=Legend-AE5XCSyU.js.map
388
+ //# sourceMappingURL=Legend-glsgxdtqiwf3jebj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Legend-glsgxdtqiwf3jebj.js","sources":["../../src/components/chart/Color.ts","../../src/components/chart/EChart.tsx","../../src/components/chart/TimeseriesChart.tsx","../../src/components/chart/Legend.tsx"],"sourcesContent":["/**\n * Categorical colors for light mode — used when assigning colors to data series\n * by index (e.g. the first series gets Blue, the second gets Violet, etc.).\n */\nenum ChartCategoricalLightColors {\n Blue = \"#086FFF\",\n Violet = \"#CF7EE9\",\n Cyan = \"#73CEE6\",\n Indigo = \"#5B5FEF\",\n LightBlue = \"#82B6FF\",\n Pink = \"#F5609F\",\n Indigo3 = \"#C2BDF3\",\n Violet2 = \"#8D1EB1\",\n Violet3 = \"#EBCAF6\",\n Indigo2 = \"#7366E4\",\n}\n\n/**\n * Categorical colors for dark mode — same hues as the light palette but with\n * `E6` alpha (90% opacity) appended to soften contrast on dark backgrounds.\n */\nenum ChartCategoricalDarkColors {\n Blue = \"#086FFFE6\",\n Violet = \"#CF7EE9E6\",\n Cyan = \"#73CEE6E6\",\n Indigo = \"#5B5FEFE6\",\n LightBlue = \"#82B6FFE6\",\n Pink = \"#F5609FE6\",\n Indigo3 = \"#C2BDF3E6\",\n Violet2 = \"#8D1EB1E6\",\n Violet3 = \"#EBCAF6E6\",\n Indigo2 = \"#7366E4E6\",\n}\n\n/**\n * Semantic colors for light mode — used to convey meaning (status, severity)\n * rather than just distinguishing series. Use via `ChartPalette.semantic()`.\n */\nenum ChartSemanticLightColors {\n Attention = \"#FC574A\",\n Warning = \"#F8A054\",\n Neutral = \"#82B6FF\",\n NeutralLight = \"#B9D6FF\",\n Disabled = \"#B6B6B6\",\n DisabledLight = \"#D9D9D9\",\n}\n\n/**\n * Semantic colors for dark mode — same meanings as the light palette but with\n * `E6` alpha (90% opacity) for dark backgrounds.\n */\nenum ChartSemanticDarkColors {\n Attention = \"#FC574AE6\",\n Warning = \"#F8A054E6\",\n Neutral = \"#82B6FFE6\",\n NeutralLight = \"#B9D6FFE6\",\n Disabled = \"#B6B6B6E6\",\n DisabledLight = \"#D9D9D9E6\",\n}\n\n/**\n * Ordered list of categorical colors for light mode, indexed by series position.\n * Used as the default ECharts color palette when `isDarkMode` is `false`.\n */\nexport const CHART_LIGHT_COLORS = [\n ChartCategoricalLightColors.Blue,\n ChartCategoricalLightColors.Violet,\n ChartCategoricalLightColors.Cyan,\n ChartCategoricalLightColors.Indigo,\n ChartCategoricalLightColors.LightBlue,\n ChartCategoricalLightColors.Pink,\n ChartCategoricalLightColors.Indigo3,\n ChartCategoricalLightColors.Violet2,\n ChartCategoricalLightColors.Violet3,\n ChartCategoricalLightColors.Indigo2,\n];\n\n/**\n * Ordered list of categorical colors for dark mode, indexed by series position.\n * Used as the default ECharts color palette when `isDarkMode` is `true`.\n */\nexport const CHART_DARK_COLORS = [\n ChartCategoricalDarkColors.Blue,\n ChartCategoricalDarkColors.Violet,\n ChartCategoricalDarkColors.Cyan,\n ChartCategoricalDarkColors.Indigo,\n ChartCategoricalDarkColors.LightBlue,\n ChartCategoricalDarkColors.Pink,\n ChartCategoricalDarkColors.Indigo3,\n ChartCategoricalDarkColors.Violet2,\n ChartCategoricalDarkColors.Violet3,\n ChartCategoricalDarkColors.Indigo2,\n];\n\n/**\n * Utilities for resolving Kumo chart colors by semantic name or series index.\n * Both functions accept an `isDarkMode` flag and return the appropriate hex color.\n */\nexport namespace ChartPalette {\n /**\n * Returns the hex color for a named semantic value (status, severity, etc.).\n *\n * @example\n * ```ts\n * ChartPalette.semantic(\"Attention\") // \"#FC574A\" (light)\n * ChartPalette.semantic(\"Warning\", true) // \"#F8A054E6\" (dark)\n * ```\n */\n export function semantic(\n name:\n | \"Attention\"\n | \"Warning\"\n | \"Neutral\"\n | \"NeutralLight\"\n | \"Disabled\"\n | \"DisabledLight\",\n isDarkMode = false,\n ) {\n return isDarkMode\n ? ChartSemanticDarkColors[name]\n : ChartSemanticLightColors[name];\n }\n\n /**\n * Returns the categorical color for a given series index.\n * Wraps around via modulo when `index` exceeds the palette length (10 colors).\n *\n * @example\n * ```ts\n * ChartPalette.color(0) // Blue (light)\n * ChartPalette.color(0, true) // Blue with E6 alpha (dark)\n * ChartPalette.color(10) // wraps back to Blue\n * ```\n */\n export function color(index: number, isDarkMode = false) {\n return isDarkMode\n ? CHART_DARK_COLORS[index % CHART_DARK_COLORS.length]\n : CHART_LIGHT_COLORS[index % CHART_LIGHT_COLORS.length];\n }\n}\n","import type * as echarts from \"echarts/core\";\nimport type { EChartsOption } from \"echarts\";\nimport { forwardRef, useEffect, useRef } from \"react\";\nimport { cn } from \"../../utils\";\nimport { CHART_DARK_COLORS, CHART_LIGHT_COLORS } from \"./Color\";\n\n/** Parameters passed to mouse event handlers on chart elements */\ntype EChartsMouseEventParams = {\n /** The type of component that triggered the event (e.g. \"series\", \"markPoint\") */\n componentType: string;\n /** Series type (e.g. \"line\", \"bar\") — present when componentType is \"series\" */\n seriesType?: string;\n /** Zero-based index of the series in the option.series array */\n seriesIndex?: number;\n /** Name of the series */\n seriesName?: string;\n /** Name of the data item */\n name?: string;\n /** Zero-based index of the data item within its series */\n dataIndex?: number;\n /** Raw data item value */\n data?: any;\n /** Sub-type of data (e.g. \"node\", \"edge\" for graph series) */\n dataType?: string;\n /** Numeric or array value of the data item */\n value?: number | any[];\n /** Resolved color of the series or data item */\n color?: string;\n};\n\n/**\n * ECharts event handlers that can be attached to a `Chart`.\n * Pass a subset via the `onEvents` prop; handlers are registered lazily and\n * cleaned up automatically when removed or when the chart is unmounted.\n */\nexport interface ChartEvents {\n // Mouse events — fired on chart elements (series, marks, etc.)\n click: (params: EChartsMouseEventParams) => void;\n dblclick: (params: EChartsMouseEventParams) => void;\n mousedown: (params: EChartsMouseEventParams) => void;\n mousemove: (params: EChartsMouseEventParams) => void;\n mouseup: (params: EChartsMouseEventParams) => void;\n mouseover: (params: EChartsMouseEventParams) => void;\n mouseout: (params: EChartsMouseEventParams) => void;\n /** Fired when the pointer leaves the chart canvas entirely */\n globalout: (params: any) => void;\n contextmenu: (params: any) => void;\n\n // Legend events\n /** Fired when any legend item's selected state changes */\n legendselectchanged: (params: {\n name: string;\n /** Map of series name → selected state for all legend items */\n selected: Record<string, boolean>;\n }) => void;\n legendselected: (params: any) => void;\n legendunselected: (params: any) => void;\n legendscroll: (params: any) => void;\n\n // Data zoom / timeline events\n datazoom: (params: any) => void;\n datarangeselected: (params: any) => void;\n timelinechanged: (params: any) => void;\n timelineplaychanged: (params: any) => void;\n\n // Toolbox events\n restore: (params: any) => void;\n dataviewchanged: (params: any) => void;\n magictypechanged: (params: any) => void;\n\n // Pie chart selection events\n pieselectchanged: (params: any) => void;\n pieselected: (params: any) => void;\n pieunselected: (params: any) => void;\n\n // Map / geo selection events\n mapselectchanged: (params: any) => void;\n mapselected: (params: any) => void;\n mapunselected: (params: any) => void;\n geoselectchanged: (params: any) => void;\n geoselected: (params: any) => void;\n geounselected: (params: any) => void;\n\n axisareaselected: (params: any) => void;\n\n // Brush / selection events\n brush: (params: any) => void;\n brushselected: (params: any) => void;\n /** Fired when the user finishes drawing a brush selection */\n brushend: (params: {\n areas: Array<{\n /** Coordinate range covered by the brush — interpretation depends on axis type */\n coordRange: any;\n brushType?: string;\n panelId?: string;\n range?: any;\n }>;\n }) => void;\n}\n\n/** Props for the low-level `Chart` wrapper around Apache ECharts */\nexport interface ChartProps {\n /**\n * The ECharts core instance imported by the consumer.\n * Passed in rather than imported directly so the consumer controls which\n * ECharts modules are bundled (tree-shaking).\n */\n echarts: typeof echarts;\n /** ECharts option object — passed through to `chart.setOption()` with `notMerge: true` */\n options: EChartsOption;\n /** Additional CSS classes applied to the chart container `<div>` */\n className?: string;\n /**\n * When `true`, initialises ECharts with its built-in dark theme.\n * Changing this value after mount destroys and re-creates the chart instance.\n */\n isDarkMode?: boolean;\n /** Height of the chart container in pixels. Defaults to `350`. */\n height?: number;\n /** Subset of ECharts events to listen for. Handlers are bound/unbound reactively. */\n onEvents?: Partial<ChartEvents>;\n}\n\n/**\n * Chart — a low-level wrapper around [Apache ECharts](https://echarts.apache.org).\n *\n * Manages the ECharts instance lifecycle (init, option updates, event binding,\n * resize observation, and disposal). Exposes the raw `echarts.ECharts` instance\n * via `ref` for imperative access when needed.\n *\n * Prefer `TimeseriesChart` for time-series data; use this component when you\n * need full control over the ECharts option object.\n *\n * @example\n * ```tsx\n * import * as echarts from \"echarts/core\";\n * import { BarChart } from \"echarts/charts\";\n * import { GridComponent } from \"echarts/components\";\n * import { CanvasRenderer } from \"echarts/renderers\";\n *\n * echarts.use([BarChart, GridComponent, CanvasRenderer]);\n *\n * <Chart\n * echarts={echarts}\n * options={{ xAxis: { data: [\"A\", \"B\"] }, yAxis: {}, series: [{ type: \"bar\", data: [1, 2] }] }}\n * />\n * ```\n */\nexport const Chart = forwardRef<echarts.ECharts, ChartProps>(function Chart(\n {\n echarts,\n options,\n className,\n isDarkMode,\n height = 350,\n onEvents,\n }: ChartProps,\n ref,\n) {\n // Ref to the container DOM node that ECharts renders into\n const elRef = useRef<HTMLDivElement | null>(null);\n // Ref to the active ECharts instance\n const chartRef = useRef<echarts.ECharts | null>(null);\n // Keeps the latest onEvents object without triggering re-binding on every render\n const handlersRef = useRef<Partial<ChartEvents>>({});\n // Stable wrapper functions per event name — avoids creating new closures on re-render\n const wrappersRef = useRef<Record<string, (params: any) => void>>({});\n // Tracks which event names are currently bound to the chart instance\n const boundEventsRef = useRef<Set<string>>(new Set());\n\n // Init and cleanup\n useEffect(() => {\n if (!elRef.current) return;\n\n const chart = echarts.init(\n elRef.current,\n isDarkMode\n ? \"dark\"\n : {\n color: isDarkMode ? CHART_DARK_COLORS : CHART_LIGHT_COLORS,\n },\n );\n chartRef.current = chart;\n\n if (typeof ref === \"function\") ref(chart);\n else if (ref) ref.current = chart;\n\n return () => {\n for (const event of boundEventsRef.current) {\n const wrapper = wrappersRef.current[event];\n if (wrapper) chart.off(event, wrapper);\n }\n boundEventsRef.current.clear();\n if (typeof ref === \"function\") ref(null);\n else if (ref) ref.current = null;\n chartRef.current = null;\n chart.dispose();\n };\n }, [elRef, isDarkMode]);\n\n // Update options\n useEffect(() => {\n const chart = chartRef.current;\n if (!chart) return;\n\n chart.setOption(options, { notMerge: true, lazyUpdate: true });\n }, [isDarkMode, options]);\n\n // Keep handlersRef in sync so wrapper closures always call the latest handler\n // without needing to re-bind listeners on every render\n useEffect(() => {\n handlersRef.current = onEvents ?? {};\n }, [onEvents]);\n\n // Reactively bind and unbind event listeners when onEvents changes.\n // Uses stable wrapper functions (wrappersRef) so the same function reference\n // is passed to both chart.on() and chart.off(), which ECharts requires.\n useEffect(() => {\n const chart = chartRef.current;\n if (!chart) return;\n\n const nextBound = new Set<string>();\n\n for (const [event, handler] of Object.entries(onEvents ?? {})) {\n if (typeof handler !== \"function\") continue;\n nextBound.add(event);\n\n if (!wrappersRef.current[event]) {\n wrappersRef.current[event] = (params: any) => {\n const current = handlersRef.current as Record<\n string,\n ((p: any) => void) | undefined\n >;\n current[event]?.(params);\n };\n }\n\n if (!boundEventsRef.current.has(event)) {\n chart.on(event, wrappersRef.current[event]);\n }\n }\n\n for (const event of boundEventsRef.current) {\n if (nextBound.has(event)) continue;\n const wrapper = wrappersRef.current[event];\n if (wrapper) {\n chart.off(event, wrapper);\n }\n }\n\n boundEventsRef.current = nextBound;\n }, [echarts, isDarkMode, onEvents]);\n\n // Resize handling\n useEffect(() => {\n const chart = chartRef.current;\n const el = elRef.current;\n if (!chart || !el) return;\n\n // Flag to skip the very first trigger\n let isInitial = true;\n\n const ro = new ResizeObserver(() => {\n if (isInitial) {\n isInitial = false;\n return; // Skip the first resize to let the animation play\n }\n chart.resize();\n });\n\n ro.observe(el);\n\n return () => ro.disconnect();\n }, []);\n\n return (\n <div ref={elRef} className={cn(\"w-full\", className)} style={{ height }} />\n );\n});\n\nChart.displayName = \"Chart\";\n","import type * as echarts from \"echarts/core\";\nimport type { LineSeriesOption, BarSeriesOption } from \"echarts/charts\";\nimport type { EChartsOption } from \"echarts\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { Chart, ChartEvents } from \"./EChart\";\n\n/** A single data series rendered on a `TimeseriesChart` */\nexport interface TimeseriesData {\n /** Display name shown in tooltips and legends */\n name: string;\n /** Array of `[timestamp_ms, value]` tuples ordered by time */\n data: [number, number][];\n /** Hex color string used for this series' line, bars, and legend dot */\n color: string;\n}\n\n/** Props for `TimeseriesChart` */\nexport interface TimeseriesChartProps {\n /**\n * The ECharts core instance imported by the consumer.\n * Passed in rather than imported directly so the consumer controls which\n * ECharts modules are bundled (tree-shaking).\n */\n echarts: typeof echarts;\n /** Visual style of each series. Defaults to `\"line\"`. */\n type?: \"line\" | \"bar\";\n /** Array of time series data to display on the chart */\n data: TimeseriesData[];\n /** Label for the x-axis (time axis) */\n xAxisName?: string;\n /** Number of ticks to display on the x-axis */\n xAxisTickCount?: number;\n /**\n * Custom formatter for y-axis tick labels.\n * Receives the raw value and returns a display string.\n * When omitted, ECharts' built-in formatter is used.\n *\n * @example\n * ```ts\n * yAxisTickLabelFormat={(value) => `${value}%`}\n * ```\n */\n yAxisTickLabelFormat?: (value: number) => string;\n /** Label for the y-axis (value axis) */\n yAxisName?: string;\n /** Number of ticks to display on the y-axis */\n yAxisTickCount?: number;\n /** Indicates incomplete data periods with optional before/after timestamps in ms */\n incomplete?: { before?: number; after?: number };\n /** Height of the chart in pixels. Defaults to `350`. */\n height?: number;\n /** Callback fired when user selects a time range via brush selection */\n onTimeRangeChange?: (from: number, to: number) => void;\n /** When `true`, switches the chart to ECharts' built-in dark theme */\n isDarkMode?: boolean;\n /**\n * When `true`, renders a vertical gradient fill beneath each line series.\n * The gradient fades from the series' color at the top to transparent at the bottom.\n * Has no effect when `type` is `\"bar\"`.\n */\n gradient?: boolean;\n /**\n * When `true`, hides the chart and displays an animated sine-wave skeleton\n * that oscillates back and forth to indicate that data is being fetched.\n */\n loading?: boolean;\n}\n\n/**\n * TimeseriesChart — a time-series line or bar chart.\n *\n * Built on `Chart` (Apache ECharts) with opinionated defaults for time-series data:\n * a time-typed x-axis, dashed lines for incomplete data periods, brush-based\n * time range selection, and automatic tooltip deduplication.\n *\n * @example\n * ```tsx\n * import * as echarts from \"echarts/core\";\n * import { LineChart } from \"echarts/charts\";\n * import { GridComponent, TooltipComponent, BrushComponent, ToolboxComponent } from \"echarts/components\";\n * import { CanvasRenderer } from \"echarts/renderers\";\n *\n * echarts.use([LineChart, GridComponent, TooltipComponent, BrushComponent, ToolboxComponent, CanvasRenderer]);\n *\n * const [range, setRange] = useState<[number, number]>();\n *\n * <TimeseriesChart\n * echarts={echarts}\n * data={[{ name: \"Requests\", data: [[Date.now(), 42]], color: \"#086FFF\" }]}\n * xAxisName=\"Time\"\n * xAxisTickLabelFormat={(value) => new Date(value).toLocaleTimeString()}\n * yAxisName=\"Count\"\n * onTimeRangeChange={(from, to) => setRange([from, to])}\n * />\n * ```\n */\nexport function TimeseriesChart({\n echarts,\n type = \"line\",\n data,\n xAxisName,\n xAxisTickCount,\n yAxisTickLabelFormat,\n yAxisName,\n yAxisTickCount,\n onTimeRangeChange,\n height = 350,\n incomplete,\n isDarkMode,\n gradient,\n loading,\n}: TimeseriesChartProps) {\n const chartRef = useRef<echarts.ECharts | null>(null);\n const incompleteBefore = incomplete?.before;\n const incompleteAfter = incomplete?.after;\n\n const options = useMemo(() => {\n const transformSeries: Array<LineSeriesOption | BarSeriesOption> = [];\n\n const seriesType =\n type === \"bar\"\n ? ({ type: \"bar\", stack: \"total\" } as const)\n : ({ type: \"line\", showSymbol: false } as const);\n\n for (const s of data) {\n const incompleteBeforePoints =\n incompleteBefore && type === \"line\"\n ? s.data.filter((point) => point[0] <= incompleteBefore)\n : [];\n\n const incompleteAfterPoints =\n incompleteAfter && type === \"line\"\n ? s.data.filter((point) => point[0] >= incompleteAfter)\n : [];\n\n const completePoints =\n incompleteBeforePoints.length > 0 || incompleteAfterPoints.length > 0\n ? s.data.slice(\n Math.max(0, incompleteBeforePoints.length - 1),\n Math.max(0, s.data.length - incompleteAfterPoints.length + 1),\n )\n : s.data;\n\n // Main complete data series\n const areaStyle =\n gradient && type === \"line\"\n ? {\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n { offset: 0, color: colorWithOpacity(s.color, 0.4) },\n { offset: 1, color: colorWithOpacity(s.color, 0) },\n ]),\n }\n : undefined;\n\n transformSeries.push({\n data: completePoints,\n color: s.color,\n name: s.name,\n ...(areaStyle ? { areaStyle } : {}),\n ...seriesType,\n });\n\n // Incomplete data series with dashed lines\n const incompleteSeriesConfig = {\n color: s.color,\n name: s.name,\n type: \"line\" as const,\n lineStyle: { type: \"dashed\" as const },\n showSymbol: false,\n };\n\n if (incompleteBeforePoints.length > 0) {\n transformSeries.push({\n ...incompleteSeriesConfig,\n data: incompleteBeforePoints,\n });\n }\n\n if (incompleteAfterPoints.length > 0) {\n transformSeries.push({\n ...incompleteSeriesConfig,\n data: incompleteAfterPoints,\n });\n }\n }\n\n return {\n aria: {\n enabled: true,\n },\n brush: {\n snapToData: true,\n xAxisIndex: \"all\" as const,\n brushType: \"lineX\" as const,\n brushMode: \"single\" as const,\n outOfBrush: {\n colorAlpha: 0.3,\n },\n brushStyle: {\n borderWidth: 1,\n color: \"rgba(120,140,180,0.3)\",\n borderColor: \"rgba(120,140,180,0.8)\",\n },\n },\n tooltip: {\n trigger: \"axis\" as const,\n axisPointer: { type: \"shadow\" as const },\n formatter: (params: any) => {\n const items = Array.isArray(params) ? params : [params];\n\n // Track seen series names to avoid duplicates in tooltip\n // This is needed because incomplete data series (dashed lines) and complete data series\n // can overlap at the same timestamp, causing duplicate entries in the tooltip\n const seenNames = new Set<string>();\n const filteredParams = items.filter((param: any) => {\n if (seenNames.has(param.seriesName)) return false;\n seenNames.add(param.seriesName);\n return true;\n });\n\n const first = filteredParams[0];\n const ts = first?.value?.[0] ?? first?.axisValue;\n const header =\n ts != null\n ? `<div style=\"font-weight:600;margin-bottom:4px;\">${formatTimestamp(ts)}</div>`\n : \"\";\n\n const rows = filteredParams\n .map((param: any) => {\n const value = param?.value?.[1];\n return `${param.marker} ${param.seriesName}: <strong>${yAxisTickLabelFormat ? yAxisTickLabelFormat(value) : value}</strong>`;\n })\n .join(\"<br/>\");\n\n return `${header}${rows}`;\n },\n },\n backgroundColor: \"transparent\",\n toolbox: { show: false },\n xAxis: {\n name: xAxisName,\n nameLocation: \"middle\" as const,\n nameGap: 30,\n type: \"time\" as const,\n splitLine: {\n show: false,\n },\n axisLine: { show: false },\n splitNumber: xAxisTickCount ?? 5,\n },\n yAxis: {\n name: yAxisName,\n nameLocation: \"middle\" as const,\n nameGap: 40,\n type: \"value\" as const,\n axisTick: { show: true },\n axisLabel: {\n margin: 15,\n },\n splitLine: {\n show: true,\n lineStyle: { type: \"dashed\" as const, width: 1 },\n },\n splitNumber: yAxisTickCount,\n },\n grid: {\n left: yAxisName ? 30 : 24,\n right: 24,\n top: 24,\n bottom: xAxisName ? 30 : 24,\n },\n series: transformSeries,\n };\n }, [\n data,\n xAxisName,\n xAxisTickCount,\n yAxisTickLabelFormat,\n yAxisName,\n yAxisTickCount,\n incompleteBefore,\n incompleteAfter,\n type,\n gradient,\n echarts,\n ]);\n\n const events = useMemo<Partial<ChartEvents>>(() => {\n if (!onTimeRangeChange) return {};\n\n return {\n brushend: (params) => {\n const range = params.areas[0].coordRange;\n onTimeRangeChange(range[0], range[1]);\n chartRef.current?.dispatchAction({ type: \"brush\", areas: [] });\n },\n };\n }, [onTimeRangeChange]);\n\n // Activate the lineX brush cursor when a time-range callback is provided,\n // and deactivate it on cleanup so the cursor resets when the prop is removed.\n const hasTimeRangeCallback = !!onTimeRangeChange;\n useEffect(() => {\n const chart = chartRef.current;\n if (chart && hasTimeRangeCallback) {\n chart.dispatchAction({\n type: \"takeGlobalCursor\",\n key: \"brush\",\n brushOption: {\n brushType: \"lineX\" as const,\n brushMode: \"single\" as const,\n },\n });\n\n return () => {\n chart.dispatchAction({\n type: \"takeGlobalCursor\",\n key: \"brush\",\n brushOption: {\n brushType: false,\n },\n });\n };\n }\n }, [chartRef, hasTimeRangeCallback]);\n\n return (\n <div className=\"relative w-full\" style={{ height }}>\n {loading && <ChartWaveLoader height={height} isDarkMode={isDarkMode} />}\n {!loading && (\n <Chart\n echarts={echarts}\n ref={chartRef}\n options={options as EChartsOption}\n height={height}\n isDarkMode={isDarkMode}\n onEvents={events}\n />\n )}\n </div>\n );\n}\n\n/**\n * Animated sine-wave skeleton shown while `TimeseriesChart` is in `loading` state.\n * Renders multiple staggered wave paths that sweep continuously left-to-right,\n * mimicking the motion of live time-series data being drawn.\n */\nfunction ChartWaveLoader({\n height,\n isDarkMode,\n}: {\n height: number;\n isDarkMode?: boolean;\n}) {\n const mid = height / 2;\n const amp = Math.min(height * 0.12, 28);\n const period = 400;\n const steps = 120;\n\n const points: string[] = [];\n for (let i = 0; i <= steps; i++) {\n const x = -period + (i / steps) * period * 3;\n const y = mid + Math.sin((i / steps) * 2 * Math.PI * 3) * amp;\n points.push(`${i === 0 ? \"M\" : \"L\"}${x.toFixed(2)},${y.toFixed(2)}`);\n }\n const d = points.join(\" \");\n\n const strokeColor = isDarkMode ? \"rgba(255,255,255,0.5)\" : \"rgba(0,0,0,0.2)\";\n\n return (\n <div\n aria-hidden=\"true\"\n className=\"absolute inset-0 overflow-hidden\"\n style={{ height }}\n >\n <svg\n width=\"100%\"\n height={height}\n viewBox={`0 0 ${period} ${height}`}\n preserveAspectRatio=\"none\"\n className=\"w-full animate-pulse\"\n >\n <path\n d={d}\n fill=\"none\"\n stroke={strokeColor}\n strokeWidth=\"2\"\n style={{\n animation: `kumo-chart-wave 2.4s linear infinite`,\n transformOrigin: \"0 0\",\n }}\n />\n </svg>\n </div>\n );\n}\n\n/**\n * Returns an `rgba(r, g, b, alpha)` string for any hex or rgb(a) color input,\n * replacing whatever opacity was already present with the given `alpha` (0–1).\n *\n * Handles:\n * - 6-digit hex: `#RRGGBB`\n * - 8-digit hex: `#RRGGBBAA` ← strips existing alpha\n * - 3-digit hex: `#RGB`\n * - `rgb(r, g, b)`\n * - `rgba(r, g, b, a)` ← replaces existing alpha\n */\nfunction colorWithOpacity(color: string, alpha: number): string {\n const a = Math.max(0, Math.min(1, alpha));\n\n // rgb / rgba\n const rgbMatch = color.match(\n /rgba?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)/i,\n );\n if (rgbMatch) {\n return `rgba(${rgbMatch[1]}, ${rgbMatch[2]}, ${rgbMatch[3]}, ${a})`;\n }\n\n // hex — strip leading #\n let hex = color.replace(/^#/, \"\");\n\n // expand 3-digit → 6-digit\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n\n // strip 8-digit alpha → keep only 6\n if (hex.length === 8) {\n hex = hex.slice(0, 6);\n }\n\n const r = parseInt(hex.slice(0, 2), 16);\n const g = parseInt(hex.slice(2, 4), 16);\n const b = parseInt(hex.slice(4, 6), 16);\n\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n}\n\n/** Zero-pads a number to two digits (e.g. `5` → `\"05\"`) */\nfunction pad(n: number) {\n return n.toString().padStart(2, \"0\");\n}\n\n/**\n * Formats a timestamp as `\"YYYY-MM-DD HH:mm:ss\"` for use in chart tooltips.\n * Accepts a Unix timestamp in milliseconds, an ISO date string, or a `Date` object.\n */\nfunction formatTimestamp(ts: number | string | Date): string {\n const d = new Date(ts);\n return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;\n}\n","import { cn } from \"../../utils\";\n\n/** Shared props for both legend item variants */\ninterface LegendItemProps {\n /** Series name shown as a label */\n name: string;\n /** Hex color string for the series indicator dot */\n color: string;\n /** Formatted value string to display */\n value: string;\n /** Optional unit label shown after the value (e.g. `\"ms\"`, `\"%\"`) */\n unit?: string;\n /** When `true`, renders the item at 50% opacity to indicate a deselected state */\n inactive?: boolean;\n}\n\n/**\n * Large legend item — stacked layout with a colored dot + series name on top\n * and a large value with an optional small unit below. Use for prominent\n * single-metric displays such as dashboard cards.\n */\nfunction LargeItem({ color, value, name, unit, inactive }: LegendItemProps) {\n return (\n <div className=\"inline-flex flex-col gap-2 min-w-42 py-2\">\n <div className=\"flex items-center gap-2\">\n <span\n className={cn(\"size-2 rounded-full inline-block\", {\n \"opacity-50\": inactive,\n })}\n style={{ backgroundColor: color }}\n />\n <span className={cn(\"text-xs\", { \"opacity-50\": inactive })}>\n {name}\n </span>\n </div>\n <div className=\"flex items-baseline gap-0.5\">\n <span\n className={cn(\"text-lg font-medium leading-none\", {\n \"opacity-50\": inactive,\n })}\n >\n {value}\n </span>\n {unit && (\n <span\n className={cn(\"text-xs text-kumo-subtle leading-none\", {\n \"opacity-50\": inactive,\n })}\n >\n {unit}\n </span>\n )}\n </div>\n </div>\n );\n}\n\n/**\n * Small legend item — inline layout with a colored dot, series name, and value\n * on a single row. Use for compact legends below or beside a chart.\n */\nfunction SmallItem({ color, value, name, inactive }: LegendItemProps) {\n return (\n <div className=\"inline-flex items-center gap-2\">\n <span\n className={cn(\"size-2 rounded-full inline-block\", {\n \"opacity-50\": inactive,\n })}\n style={{ backgroundColor: color }}\n />\n <span className={cn(\"text-xs\", { \"opacity-50\": inactive })}>{name}</span>\n <span className={cn(\"text-xs font-medium\", { \"opacity-50\": inactive })}>\n {value}\n </span>\n </div>\n );\n}\n\n/**\n * ChartLegend — pre-built legend item components for use alongside a chart.\n *\n * - `ChartLegend.SmallItem` — compact inline layout; suited for multi-series legends\n * - `ChartLegend.LargeItem` — stacked layout with a large value; suited for single-metric cards\n *\n * @example\n * ```tsx\n * <ChartLegend.SmallItem name=\"Requests\" color=\"#086FFF\" value=\"1,234\" />\n * <ChartLegend.LargeItem name=\"Latency\" color=\"#CF7EE9\" value=\"42\" unit=\"ms\" inactive />\n * ```\n */\nexport const ChartLegend = {\n SmallItem,\n LargeItem,\n};\n"],"names":["ChartSemanticLightColors","ChartSemanticDarkColors","CHART_LIGHT_COLORS","CHART_DARK_COLORS","ChartPalette","semantic","name","isDarkMode","color","index","Chart","forwardRef","echarts","options","className","height","onEvents","ref","elRef","useRef","chartRef","handlersRef","wrappersRef","boundEventsRef","useEffect","chart","event","wrapper","nextBound","handler","params","el","isInitial","ro","jsx","cn","TimeseriesChart","type","data","xAxisName","xAxisTickCount","yAxisTickLabelFormat","yAxisName","yAxisTickCount","onTimeRangeChange","incomplete","gradient","loading","incompleteBefore","incompleteAfter","useMemo","transformSeries","seriesType","s","incompleteBeforePoints","point","incompleteAfterPoints","completePoints","areaStyle","colorWithOpacity","incompleteSeriesConfig","items","seenNames","filteredParams","param","first","ts","header","formatTimestamp","rows","value","events","range","hasTimeRangeCallback","ChartWaveLoader","mid","amp","period","steps","points","i","x","y","d","strokeColor","alpha","rgbMatch","hex","r","g","b","pad","n","LargeItem","unit","inactive","jsxs","SmallItem","ChartLegend"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as i } from "react/jsx-runtime";
3
- import { c as a } from "./cn-Bhsu1vx2.js";
3
+ import { c as a } from "./cn-ct4n7r74mh8y0f48.js";
4
4
  const o = "inline-flex w-fit flex-none shrink-0 items-center justify-self-start rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap", r = {
5
5
  variant: {
6
6
  primary: {
@@ -53,4 +53,4 @@ export {
53
53
  l as B,
54
54
  o as K
55
55
  };
56
- //# sourceMappingURL=badge-DUfmrhhZ.js.map
56
+ //# sourceMappingURL=badge-mrshucy2530o70cq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge-mrshucy2530o70cq.js","sources":["../../src/components/badge/badge.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/** Base styles applied to all badge variants. */\nexport const KUMO_BADGE_BASE_STYLES =\n \"inline-flex w-fit flex-none shrink-0 items-center justify-self-start rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap\";\n\n/** Badge variant definitions mapping variant names to their Tailwind classes and descriptions. */\nexport const KUMO_BADGE_VARIANTS = {\n variant: {\n primary: {\n classes: \"bg-kumo-contrast text-kumo-inverse\",\n description: \"Default high-emphasis badge for important labels\",\n },\n secondary: {\n classes: \"bg-kumo-fill text-kumo-default\",\n description: \"Subtle badge for secondary information\",\n },\n destructive: {\n classes: \"bg-kumo-danger text-white\",\n description: \"Error or danger state indicator\",\n },\n success: {\n classes: \"bg-kumo-success text-white\",\n description: \"Success or positive state indicator\",\n },\n outline: {\n classes: \"border border-kumo-fill bg-transparent text-kumo-default\",\n description: \"Bordered badge with transparent background\",\n },\n beta: {\n classes:\n \"border border-dashed border-kumo-brand bg-transparent text-kumo-link\",\n description: \"Indicates beta or experimental features\",\n },\n },\n} as const;\n\nexport const KUMO_BADGE_DEFAULT_VARIANTS = {\n variant: \"primary\",\n} as const;\n\n// Derived types from KUMO_BADGE_VARIANTS\nexport type KumoBadgeVariant = keyof typeof KUMO_BADGE_VARIANTS.variant;\n\nexport interface KumoBadgeVariantsProps {\n variant?: KumoBadgeVariant;\n}\n\nexport function badgeVariants({\n variant = KUMO_BADGE_DEFAULT_VARIANTS.variant,\n}: KumoBadgeVariantsProps = {}) {\n const variantConfig = KUMO_BADGE_VARIANTS.variant[variant];\n return cn(\n // Base styles (exported as KUMO_BADGE_BASE_STYLES for Figma plugin)\n KUMO_BADGE_BASE_STYLES,\n // Apply variant styles from KUMO_BADGE_VARIANTS (fallback to primary if variant not found)\n variantConfig?.classes ??\n KUMO_BADGE_VARIANTS.variant[KUMO_BADGE_DEFAULT_VARIANTS.variant].classes,\n );\n}\n\n// Legacy type alias for backwards compatibility\nexport type BadgeVariant = KumoBadgeVariant;\n\n/**\n * Badge component props.\n *\n * @example\n * ```tsx\n * <Badge variant=\"primary\">New</Badge>\n * <Badge variant=\"destructive\">Error</Badge>\n * <Badge variant=\"beta\">Beta</Badge>\n * ```\n */\nexport interface BadgeProps {\n /**\n * Visual style of the badge.\n * - `\"primary\"` — High-emphasis badge for important labels\n * - `\"secondary\"` — Subtle badge for secondary information\n * - `\"destructive\"` — Error or danger state indicator\n * - `\"outline\"` — Bordered badge with transparent background\n * - `\"beta\"` — Dashed-border badge for beta/experimental features\n * @default \"primary\"\n */\n variant?: KumoBadgeVariant;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n /** Content rendered inside the badge. */\n children: ReactNode;\n}\n\n/**\n * Small status label for categorizing or highlighting content.\n *\n * @example\n * ```tsx\n * <Badge variant=\"primary\">Active</Badge>\n * ```\n */\nexport function Badge({\n variant = KUMO_BADGE_DEFAULT_VARIANTS.variant,\n className,\n children,\n}: BadgeProps) {\n return (\n <span className={cn(badgeVariants({ variant }), className)}>\n {children}\n </span>\n );\n}\n"],"names":["KUMO_BADGE_BASE_STYLES","KUMO_BADGE_VARIANTS","KUMO_BADGE_DEFAULT_VARIANTS","badgeVariants","variant","variantConfig","cn","Badge","className","children","jsx"],"mappings":";;;AAIO,MAAMA,IACX,uIAGWC,IAAsB;AAAA,EACjC,SAAS;AAAA,IACP,SAAS;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,WAAW;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,aAAa;AAAA,MACX,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,SAAS;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,SAAS;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,MAAM;AAAA,MACJ,SACE;AAAA,MACF,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ,GAEaC,IAA8B;AAAA,EACzC,SAAS;AACX;AASO,SAASC,EAAc;AAAA,EAC5B,SAAAC,IAAUF,EAA4B;AACxC,IAA4B,IAAI;AAC9B,QAAMG,IAAgBJ,EAAoB,QAAQG,CAAO;AACzD,SAAOE;AAAA;AAAA,IAELN;AAAA;AAAA,IAEAK,GAAe,WACbJ,EAAoB,QAAQC,EAA4B,OAAO,EAAE;AAAA,EAAA;AAEvE;AAwCO,SAASK,EAAM;AAAA,EACpB,SAAAH,IAAUF,EAA4B;AAAA,EACtC,WAAAM;AAAA,EACA,UAAAC;AACF,GAAe;AACb,SACE,gBAAAC,EAAC,QAAA,EAAK,WAAWJ,EAAGH,EAAc,EAAE,SAAAC,GAAS,GAAGI,CAAS,GACtD,UAAAC,EAAA,CACH;AAEJ;"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsxs as l, jsx as n } from "react/jsx-runtime";
3
3
  import { forwardRef as E, isValidElement as d } from "react";
4
- import { c as r } from "./cn-Bhsu1vx2.js";
4
+ import { c as r } from "./cn-ct4n7r74mh8y0f48.js";
5
5
  const R = "flex w-full items-start gap-3 rounded-lg border px-4 py-3 text-base", f = {
6
6
  variant: {
7
7
  default: {
@@ -72,4 +72,4 @@ export {
72
72
  A as B,
73
73
  p as a
74
74
  };
75
- //# sourceMappingURL=banner-BKDBfLHA.js.map
75
+ //# sourceMappingURL=banner-vzdjbqsb6em7tmdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner-vzdjbqsb6em7tmdk.js","sources":["../../src/components/banner/banner.tsx"],"sourcesContent":["import { type ReactNode, isValidElement, forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/** Base styles applied to all banner variants. */\nexport const KUMO_BANNER_BASE_STYLES =\n \"flex w-full items-start gap-3 rounded-lg border px-4 py-3 text-base\";\n\n/** Banner variant definitions mapping variant names to their Tailwind classes and descriptions. */\nexport const KUMO_BANNER_VARIANTS = {\n variant: {\n default: {\n classes:\n \"bg-kumo-info/10 border-kumo-info/30 text-kumo-info selection:bg-kumo-info-tint\",\n iconClasses: \"text-kumo-info\",\n description: \"Informational banner for general messages\",\n },\n alert: {\n classes:\n \"bg-kumo-warning/10 border-kumo-warning/30 text-kumo-warning selection:bg-kumo-warning-tint\",\n iconClasses: \"text-kumo-warning\",\n description: \"Warning banner for cautionary messages\",\n },\n error: {\n classes:\n \"bg-kumo-danger/10 border-kumo-danger/30 text-kumo-danger selection:bg-kumo-danger-tint\",\n iconClasses: \"text-kumo-danger\",\n description: \"Error banner for critical issues\",\n },\n },\n} as const;\n\nexport const KUMO_BANNER_DEFAULT_VARIANTS = {\n variant: \"default\",\n} as const;\n\n// Derived types from KUMO_BANNER_VARIANTS\nexport type KumoBannerVariant = keyof typeof KUMO_BANNER_VARIANTS.variant;\n\nexport interface KumoBannerVariantsProps {\n /**\n * Visual style of the banner.\n * - `\"default\"` — Informational banner for general messages\n * - `\"alert\"` — Warning banner for cautionary messages\n * - `\"error\"` — Error banner for critical issues\n * @default \"default\"\n */\n variant?: KumoBannerVariant;\n}\n\nexport function bannerVariants({\n variant = KUMO_BANNER_DEFAULT_VARIANTS.variant,\n}: KumoBannerVariantsProps = {}) {\n return cn(\n // Base styles (exported as KUMO_BANNER_BASE_STYLES for Figma plugin)\n KUMO_BANNER_BASE_STYLES,\n // Apply variant styles from KUMO_BANNER_VARIANTS\n KUMO_BANNER_VARIANTS.variant[variant].classes,\n );\n}\n\n// Legacy enum for backwards compatibility\nexport enum BannerVariant {\n DEFAULT,\n ALERT,\n ERROR,\n}\n\n/**\n * Banner component props.\n *\n * @example\n * ```tsx\n * <Banner title=\"Update available\" description=\"A new version is ready to install.\" />\n * <Banner variant=\"alert\" title=\"Session expiring\" description=\"Your session will expire soon.\" />\n * <Banner variant=\"error\" title=\"Save failed\" description=\"We couldn't save your changes.\" />\n * ```\n */\nexport interface BannerProps {\n /** Icon element rendered before the banner content (e.g. from `@phosphor-icons/react`). */\n icon?: ReactNode;\n /** Primary heading text for the banner. Use for i18n string injection. */\n title?: string;\n /** Secondary description text displayed below the title. Use for i18n string injection. */\n description?: ReactNode;\n /** @deprecated Use `title` and `description` instead. Will be removed in a future major version. */\n text?: string;\n /** @deprecated Use `title` and `description` instead for better i18n support. */\n children?: ReactNode;\n /**\n * Visual style of the banner.\n * - `\"default\"` — Informational blue banner for general messages\n * - `\"alert\"` — Warning yellow banner for cautionary messages\n * - `\"error\"` — Error red banner for critical issues\n * @default \"default\"\n */\n variant?: KumoBannerVariant;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n}\n\n/**\n * Full-width message bar for informational, warning, or error notices.\n * Supports structured title/description for i18n, or simple children for basic usage.\n *\n * @example\n * ```tsx\n * // Structured (recommended for i18n)\n * <Banner\n * variant=\"alert\"\n * icon={<WarningCircle />}\n * title=\"Review required\"\n * description=\"Please review your billing information.\"\n * />\n *\n * // Simple (backwards compatible)\n * <Banner variant=\"alert\" icon={<WarningCircle />}>\n * Review your billing information.\n * </Banner>\n * ```\n */\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>(function Banner(\n {\n icon,\n title,\n description,\n children,\n text,\n variant = KUMO_BANNER_DEFAULT_VARIANTS.variant,\n className,\n },\n ref,\n) {\n const variantConfig = KUMO_BANNER_VARIANTS.variant[variant];\n\n // Structured mode: title and/or description provided\n if (title || description) {\n return (\n <div ref={ref} className={cn(bannerVariants({ variant }), className)}>\n {icon && (\n <span\n className={cn(\n \"shrink-0 flex items-center h-[1.375em]\",\n variantConfig.iconClasses,\n )}\n >\n {icon}\n </span>\n )}\n <div className=\"flex flex-col gap-0.5\">\n {title && <p className=\"font-medium leading-snug\">{title}</p>}\n {description && (\n <div className=\"text-sm leading-snug\">\n {isValidElement(description) ? description : <p>{description}</p>}\n </div>\n )}\n </div>\n </div>\n );\n }\n\n // Legacy mode: children or text prop\n const value = children ?? text;\n const content = isValidElement(value) ? value : <p>{value}</p>;\n\n return (\n <div ref={ref} className={cn(bannerVariants({ variant }), className)}>\n {icon && (\n <span className={cn(\"shrink-0\", variantConfig.iconClasses)}>\n {icon}\n </span>\n )}\n {content}\n </div>\n );\n});\n\nBanner.displayName = \"Banner\";\n"],"names":["KUMO_BANNER_BASE_STYLES","KUMO_BANNER_VARIANTS","KUMO_BANNER_DEFAULT_VARIANTS","bannerVariants","variant","cn","BannerVariant","Banner","forwardRef","icon","title","description","children","text","className","ref","variantConfig","jsxs","jsx","isValidElement","value","content"],"mappings":";;;;AAIO,MAAMA,IACX,uEAGWC,IAAuB;AAAA,EAClC,SAAS;AAAA,IACP,SAAS;AAAA,MACP,SACE;AAAA,MACF,aAAa;AAAA,MACb,aAAa;AAAA,IAAA;AAAA,IAEf,OAAO;AAAA,MACL,SACE;AAAA,MACF,aAAa;AAAA,MACb,aAAa;AAAA,IAAA;AAAA,IAEf,OAAO;AAAA,MACL,SACE;AAAA,MACF,aAAa;AAAA,MACb,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ,GAEaC,IAA+B;AAAA,EAC1C,SAAS;AACX;AAgBO,SAASC,EAAe;AAAA,EAC7B,SAAAC,IAAUF,EAA6B;AACzC,IAA6B,IAAI;AAC/B,SAAOG;AAAA;AAAA,IAELL;AAAA;AAAA,IAEAC,EAAqB,QAAQG,CAAO,EAAE;AAAA,EAAA;AAE1C;AAGO,IAAKE,sBAAAA,OACVA,EAAAA,EAAA,UAAA,CAAA,IAAA,WACAA,EAAAA,EAAA,QAAA,CAAA,IAAA,SACAA,EAAAA,EAAA,QAAA,CAAA,IAAA,SAHUA,IAAAA,KAAA,CAAA,CAAA;AA2DL,MAAMC,IAASC,EAAwC,SAC5D;AAAA,EACE,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAT,IAAUF,EAA6B;AAAA,EACvC,WAAAY;AACF,GACAC,GACA;AACA,QAAMC,IAAgBf,EAAqB,QAAQG,CAAO;AAG1D,MAAIM,KAASC;AACX,WACE,gBAAAM,EAAC,OAAA,EAAI,KAAAF,GAAU,WAAWV,EAAGF,EAAe,EAAE,SAAAC,EAAA,CAAS,GAAGU,CAAS,GAChE,UAAA;AAAA,MAAAL,KACC,gBAAAS;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWb;AAAA,YACT;AAAA,YACAW,EAAc;AAAA,UAAA;AAAA,UAGf,UAAAP;AAAA,QAAA;AAAA,MAAA;AAAA,MAGL,gBAAAQ,EAAC,OAAA,EAAI,WAAU,yBACZ,UAAA;AAAA,QAAAP,KAAS,gBAAAQ,EAAC,KAAA,EAAE,WAAU,4BAA4B,UAAAR,GAAM;AAAA,QACxDC,KACC,gBAAAO,EAAC,OAAA,EAAI,WAAU,wBACZ,UAAAC,EAAeR,CAAW,IAAIA,IAAc,gBAAAO,EAAC,KAAA,EAAG,UAAAP,EAAA,CAAY,EAAA,CAC/D;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA,GACF;AAKJ,QAAMS,IAAQR,KAAYC,GACpBQ,IAAUF,EAAeC,CAAK,IAAIA,IAAQ,gBAAAF,EAAC,OAAG,UAAAE,GAAM;AAE1D,SACE,gBAAAH,EAAC,OAAA,EAAI,KAAAF,GAAU,WAAWV,EAAGF,EAAe,EAAE,SAAAC,EAAA,CAAS,GAAGU,CAAS,GAChE,UAAA;AAAA,IAAAL,KACC,gBAAAS,EAAC,UAAK,WAAWb,EAAG,YAAYW,EAAc,WAAW,GACtD,UAAAP,EAAA,CACH;AAAA,IAEDY;AAAA,EAAA,GACH;AAEJ,CAAC;AAEDd,EAAO,cAAc;"}