@logicplanes/kaeso-ui 0.4.4 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/ai/component-guides.md +250 -98
  2. package/ai/component-registry.json +264 -236
  3. package/ai/component-registry.md +222 -218
  4. package/ai/icons.md +1 -1
  5. package/ai/tokens.md +18 -14
  6. package/dist/blocks/delete-resource.js +3 -3
  7. package/dist/blocks/delete-resource.js.map +1 -1
  8. package/dist/blocks/pages.js +47 -42
  9. package/dist/blocks/pages.js.map +1 -1
  10. package/dist/blocks/resource-list.js +68 -55
  11. package/dist/blocks/resource-list.js.map +1 -1
  12. package/dist/chunks/agent-avatar-DHieggHK.js +188 -0
  13. package/dist/chunks/agent-avatar-DHieggHK.js.map +1 -0
  14. package/dist/chunks/app-frame-DysOel2X.js +232 -0
  15. package/dist/chunks/app-frame-DysOel2X.js.map +1 -0
  16. package/dist/chunks/arrow-focus-B0KdRFX8.js +20 -0
  17. package/dist/chunks/arrow-focus-B0KdRFX8.js.map +1 -0
  18. package/dist/chunks/avatar-CYNMK7uY.js +110 -0
  19. package/dist/chunks/avatar-CYNMK7uY.js.map +1 -0
  20. package/dist/chunks/badge-C0GC3B9X.js +27 -0
  21. package/dist/chunks/badge-C0GC3B9X.js.map +1 -0
  22. package/dist/chunks/banner-B3DGLTBu.js +88 -0
  23. package/dist/chunks/banner-B3DGLTBu.js.map +1 -0
  24. package/dist/chunks/button-IblhXUyZ.js +202 -0
  25. package/dist/chunks/button-IblhXUyZ.js.map +1 -0
  26. package/dist/chunks/{calendar-BWaf2MXc.js → calendar-Dc6_dl0f.js} +4 -4
  27. package/dist/chunks/calendar-Dc6_dl0f.js.map +1 -0
  28. package/dist/chunks/checkbox-9tbimmF3.js +141 -0
  29. package/dist/chunks/checkbox-9tbimmF3.js.map +1 -0
  30. package/dist/chunks/{cn-Dj6sRgkF.js → cn-BjnOAUrA.js} +45 -4
  31. package/dist/chunks/cn-BjnOAUrA.js.map +1 -0
  32. package/dist/chunks/code-block-64e-Cy1S.js +346 -0
  33. package/dist/chunks/code-block-64e-Cy1S.js.map +1 -0
  34. package/dist/chunks/{code-block-DdNPHEzI.js → code-block-KIvuE8jg.js} +122 -114
  35. package/dist/chunks/code-block-KIvuE8jg.js.map +1 -0
  36. package/dist/chunks/{code-tqj0uhBL.js → code-xqjww4Pv.js} +5 -6
  37. package/dist/chunks/code-xqjww4Pv.js.map +1 -0
  38. package/dist/chunks/combobox-DkcjkWc6.js +352 -0
  39. package/dist/chunks/combobox-DkcjkWc6.js.map +1 -0
  40. package/dist/chunks/command-list-CypqsC4T.js +456 -0
  41. package/dist/chunks/command-list-CypqsC4T.js.map +1 -0
  42. package/dist/chunks/{copy-button-FJvPJn72.js → copy-button-CwU8t_9_.js} +22 -15
  43. package/dist/chunks/copy-button-CwU8t_9_.js.map +1 -0
  44. package/dist/chunks/core-CmK-8ObW.js +505 -0
  45. package/dist/chunks/core-CmK-8ObW.js.map +1 -0
  46. package/dist/chunks/data-table-CqY8_6IS.js +581 -0
  47. package/dist/chunks/data-table-CqY8_6IS.js.map +1 -0
  48. package/dist/chunks/date-popup-DAnjptFt.js +58 -0
  49. package/dist/chunks/date-popup-DAnjptFt.js.map +1 -0
  50. package/dist/chunks/{de-D_0mmG-k.js → de-CqC4aSIV.js} +74 -40
  51. package/dist/chunks/de-CqC4aSIV.js.map +1 -0
  52. package/dist/chunks/{dialog-Cg9A_6SF.js → dialog-2zb6ClNR.js} +156 -134
  53. package/dist/chunks/dialog-2zb6ClNR.js.map +1 -0
  54. package/dist/chunks/disclosure-BtYRTDO3.js +22 -0
  55. package/dist/chunks/disclosure-BtYRTDO3.js.map +1 -0
  56. package/dist/chunks/domain-obd_w9xk.js +28 -0
  57. package/dist/chunks/domain-obd_w9xk.js.map +1 -0
  58. package/dist/chunks/{empty-DvhyMXQq.js → empty-BpiUgGzm.js} +2 -2
  59. package/dist/chunks/{empty-DvhyMXQq.js.map → empty-BpiUgGzm.js.map} +1 -1
  60. package/dist/chunks/{field-TviMvYa2.js → field-D7m-yl-D.js} +37 -34
  61. package/dist/chunks/field-D7m-yl-D.js.map +1 -0
  62. package/dist/chunks/{icon-D7ja-_Yk.js → icon-CBzOwqrX.js} +7 -6
  63. package/dist/chunks/{icon-D7ja-_Yk.js.map → icon-CBzOwqrX.js.map} +1 -1
  64. package/dist/chunks/{icon-button-CrdF_eMG.js → icon-button-Dfwpvmav.js} +7 -6
  65. package/dist/chunks/icon-button-Dfwpvmav.js.map +1 -0
  66. package/dist/chunks/{identity-BmhQ6BQ-.js → identity-3Foi5F8w.js} +7 -7
  67. package/dist/chunks/{identity-BmhQ6BQ-.js.map → identity-3Foi5F8w.js.map} +1 -1
  68. package/dist/chunks/{input-2VJuj_M4.js → input-Bo5-UZg2.js} +15 -9
  69. package/dist/chunks/input-Bo5-UZg2.js.map +1 -0
  70. package/dist/chunks/{input-group-DQ_4DoXg.js → input-group-jPcK9T_a.js} +42 -29
  71. package/dist/chunks/input-group-jPcK9T_a.js.map +1 -0
  72. package/dist/chunks/iso-field-DoqHBg8n.js +52 -0
  73. package/dist/chunks/iso-field-DoqHBg8n.js.map +1 -0
  74. package/dist/chunks/json-view-DZ2nL2Ir.js +253 -0
  75. package/dist/chunks/json-view-DZ2nL2Ir.js.map +1 -0
  76. package/dist/chunks/{kbd-BF1vKXJf.js → kbd-8A0ML_up.js} +30 -28
  77. package/dist/chunks/kbd-8A0ML_up.js.map +1 -0
  78. package/dist/chunks/label-DW24Aj0Z.js +26 -0
  79. package/dist/chunks/label-DW24Aj0Z.js.map +1 -0
  80. package/dist/chunks/{link-KWI7PevW.js → link-CMjkcLQK.js} +14 -14
  81. package/dist/chunks/link-CMjkcLQK.js.map +1 -0
  82. package/dist/chunks/list-B4G-sWwV.js +540 -0
  83. package/dist/chunks/list-B4G-sWwV.js.map +1 -0
  84. package/dist/chunks/{loader-DCfPndXa.js → loader-zo8CCIGJ.js} +2 -2
  85. package/dist/chunks/{loader-DCfPndXa.js.map → loader-zo8CCIGJ.js.map} +1 -1
  86. package/dist/chunks/markdown-C565aBR7.js +338 -0
  87. package/dist/chunks/markdown-C565aBR7.js.map +1 -0
  88. package/dist/chunks/menu-Clvv6ftq.js +485 -0
  89. package/dist/chunks/menu-Clvv6ftq.js.map +1 -0
  90. package/dist/chunks/merge-refs-BN1FyQt9.js +20 -0
  91. package/dist/chunks/merge-refs-BN1FyQt9.js.map +1 -0
  92. package/dist/chunks/meter-CASMHlxl.js +100 -0
  93. package/dist/chunks/meter-CASMHlxl.js.map +1 -0
  94. package/dist/chunks/nav-sheet-Dt6JSvzX.js +67 -0
  95. package/dist/chunks/nav-sheet-Dt6JSvzX.js.map +1 -0
  96. package/dist/chunks/{nav-wordmark-_pjheAsZ.js → nav-wordmark-J4pB_vjr.js} +4 -8
  97. package/dist/chunks/nav-wordmark-J4pB_vjr.js.map +1 -0
  98. package/dist/chunks/page-header-kS5tdmvb.js +45 -0
  99. package/dist/chunks/page-header-kS5tdmvb.js.map +1 -0
  100. package/dist/chunks/pagination-D7fAm8qg.js +147 -0
  101. package/dist/chunks/pagination-D7fAm8qg.js.map +1 -0
  102. package/dist/chunks/picker-popover-1FHb1LQG.js +119 -0
  103. package/dist/chunks/picker-popover-1FHb1LQG.js.map +1 -0
  104. package/dist/chunks/popover-Bl5QYqnh.js +51 -0
  105. package/dist/chunks/popover-Bl5QYqnh.js.map +1 -0
  106. package/dist/chunks/{portal-context-BBbzDKmY.js → portal-context-CTatR2Z8.js} +14 -4
  107. package/dist/chunks/portal-context-CTatR2Z8.js.map +1 -0
  108. package/dist/chunks/{radio-CDDFpdtL.js → radio-C6GtzF_t.js} +38 -23
  109. package/dist/chunks/radio-C6GtzF_t.js.map +1 -0
  110. package/dist/chunks/range-popup-lGiZsG3s.js +160 -0
  111. package/dist/chunks/range-popup-lGiZsG3s.js.map +1 -0
  112. package/dist/chunks/reasoning-frame-C3HdQRRS.js +51 -0
  113. package/dist/chunks/reasoning-frame-C3HdQRRS.js.map +1 -0
  114. package/dist/chunks/release-art-ChiT4T2S.js +582 -0
  115. package/dist/chunks/release-art-ChiT4T2S.js.map +1 -0
  116. package/dist/chunks/rights-B68ocZuq.js +312 -0
  117. package/dist/chunks/rights-B68ocZuq.js.map +1 -0
  118. package/dist/chunks/{scroll-area-D8MD7Vpo.js → scroll-area-_Ljh4-bG.js} +11 -6
  119. package/dist/chunks/scroll-area-_Ljh4-bG.js.map +1 -0
  120. package/dist/chunks/section-CFBYhsUi.js +77 -0
  121. package/dist/chunks/section-CFBYhsUi.js.map +1 -0
  122. package/dist/chunks/section-header-DU1Q4Tdf.js +28 -0
  123. package/dist/chunks/section-header-DU1Q4Tdf.js.map +1 -0
  124. package/dist/chunks/segmented-D9i1avik.js +119 -0
  125. package/dist/chunks/segmented-D9i1avik.js.map +1 -0
  126. package/dist/chunks/select-BqjmQOqx.js +222 -0
  127. package/dist/chunks/select-BqjmQOqx.js.map +1 -0
  128. package/dist/chunks/{separator-D7TzNHmX.js → separator-BNWf6BBj.js} +13 -8
  129. package/dist/chunks/separator-BNWf6BBj.js.map +1 -0
  130. package/dist/chunks/sidebar-Dq7oGOje.js +664 -0
  131. package/dist/chunks/sidebar-Dq7oGOje.js.map +1 -0
  132. package/dist/chunks/{sidebar-menu-BN3jkTlK.js → sidebar-menu-QSSNu1jJ.js} +2 -2
  133. package/dist/chunks/{sidebar-menu-BN3jkTlK.js.map → sidebar-menu-QSSNu1jJ.js.map} +1 -1
  134. package/dist/chunks/{skeleton-Dcz57Zyp.js → skeleton-D-qk3mes.js} +3 -3
  135. package/dist/chunks/skeleton-D-qk3mes.js.map +1 -0
  136. package/dist/chunks/slider-CcE8GtuV.js +58 -0
  137. package/dist/chunks/slider-CcE8GtuV.js.map +1 -0
  138. package/dist/chunks/{status-dot-QJTF0Yv4.js → status-dot-CP6runiC.js} +4 -4
  139. package/dist/chunks/{status-dot-QJTF0Yv4.js.map → status-dot-CP6runiC.js.map} +1 -1
  140. package/dist/chunks/{styles-CVJU9t9v.js → styles-hkFkoBbi.js} +2 -2
  141. package/dist/chunks/{styles-CVJU9t9v.js.map → styles-hkFkoBbi.js.map} +1 -1
  142. package/dist/chunks/{swap-text-Dr0Irxz6.js → swap-text-SlUjrTlG.js} +3 -3
  143. package/dist/chunks/swap-text-SlUjrTlG.js.map +1 -0
  144. package/dist/chunks/switch-ngywMQdl.js +76 -0
  145. package/dist/chunks/switch-ngywMQdl.js.map +1 -0
  146. package/dist/chunks/table-CTK5E0J7.js +102 -0
  147. package/dist/chunks/table-CTK5E0J7.js.map +1 -0
  148. package/dist/chunks/tag-BGr6lTSV.js +100 -0
  149. package/dist/chunks/tag-BGr6lTSV.js.map +1 -0
  150. package/dist/chunks/{text-CIXH8rmT.js → text-DkKdTVUf.js} +9 -9
  151. package/dist/chunks/text-DkKdTVUf.js.map +1 -0
  152. package/dist/chunks/{textarea--4FRL3Pb.js → textarea-CO0HP6fK.js} +47 -36
  153. package/dist/chunks/textarea-CO0HP6fK.js.map +1 -0
  154. package/dist/chunks/timeseries-Ck-q0wWn.js +381 -0
  155. package/dist/chunks/timeseries-Ck-q0wWn.js.map +1 -0
  156. package/dist/chunks/toolbar-u0Gm7Q7-.js +61 -0
  157. package/dist/chunks/toolbar-u0Gm7Q7-.js.map +1 -0
  158. package/dist/chunks/tooltip-Tkm-urbi.js +202 -0
  159. package/dist/chunks/tooltip-Tkm-urbi.js.map +1 -0
  160. package/dist/chunks/tooltip-root-BC_RNNiP.js +70 -0
  161. package/dist/chunks/tooltip-root-BC_RNNiP.js.map +1 -0
  162. package/dist/chunks/truncated-d1afmUJT.js +33 -0
  163. package/dist/chunks/truncated-d1afmUJT.js.map +1 -0
  164. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js +28 -0
  165. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js.map +1 -0
  166. package/dist/chunks/use-hydrating-COtYVRo4.js +8 -0
  167. package/dist/chunks/use-hydrating-COtYVRo4.js.map +1 -0
  168. package/dist/chunks/use-scroll-fade-uc8mWSDX.js +30 -0
  169. package/dist/chunks/use-scroll-fade-uc8mWSDX.js.map +1 -0
  170. package/dist/chunks/{zh-CN-Bm6UPIbW.js → zh-CN-BlpsT6d_.js} +73 -39
  171. package/dist/chunks/zh-CN-BlpsT6d_.js.map +1 -0
  172. package/dist/components/agent-avatar.js +1 -1
  173. package/dist/components/app-frame.js +2 -2
  174. package/dist/components/avatar.js +1 -1
  175. package/dist/components/badge.js +1 -1
  176. package/dist/components/banner.js +1 -1
  177. package/dist/components/button-group.js +22 -22
  178. package/dist/components/button-group.js.map +1 -1
  179. package/dist/components/button.js +1 -1
  180. package/dist/components/calendar.js +1 -1
  181. package/dist/components/charts/bar.js +235 -160
  182. package/dist/components/charts/bar.js.map +1 -1
  183. package/dist/components/charts/donut.js +144 -99
  184. package/dist/components/charts/donut.js.map +1 -1
  185. package/dist/components/charts/gauge.js +61 -49
  186. package/dist/components/charts/gauge.js.map +1 -1
  187. package/dist/components/charts/heatmap.js +179 -70
  188. package/dist/components/charts/heatmap.js.map +1 -1
  189. package/dist/components/charts/sankey.js +144 -77
  190. package/dist/components/charts/sankey.js.map +1 -1
  191. package/dist/components/charts/sparkline.js +54 -38
  192. package/dist/components/charts/sparkline.js.map +1 -1
  193. package/dist/components/charts/timeseries.js +1 -1
  194. package/dist/components/charts.js +2 -2
  195. package/dist/components/checkbox.js +1 -1
  196. package/dist/components/code-block.js +3 -3
  197. package/dist/components/code.js +1 -1
  198. package/dist/components/collapsible.js +77 -1
  199. package/dist/components/collapsible.js.map +1 -0
  200. package/dist/components/combobox.js +1 -1
  201. package/dist/components/command-list.js +2 -2
  202. package/dist/components/command-palette.js +89 -66
  203. package/dist/components/command-palette.js.map +1 -1
  204. package/dist/components/copy-button.js +1 -1
  205. package/dist/components/data-table.js +1 -459
  206. package/dist/components/date-picker.js +162 -151
  207. package/dist/components/date-picker.js.map +1 -1
  208. package/dist/components/dialog.js +74 -63
  209. package/dist/components/dialog.js.map +1 -1
  210. package/dist/components/display-options.js +76 -64
  211. package/dist/components/display-options.js.map +1 -1
  212. package/dist/components/empty.js +1 -1
  213. package/dist/components/field.js +1 -1
  214. package/dist/components/figure.js +2 -2
  215. package/dist/components/filter-chip.js +36 -27
  216. package/dist/components/filter-chip.js.map +1 -1
  217. package/dist/components/filter-row.js +4 -4
  218. package/dist/components/filter-row.js.map +1 -1
  219. package/dist/components/flow.js +94 -63
  220. package/dist/components/flow.js.map +1 -1
  221. package/dist/components/heading.js +1 -1
  222. package/dist/components/icon-button.js +1 -1
  223. package/dist/components/icon.js +1 -1
  224. package/dist/components/input.js +176 -98
  225. package/dist/components/input.js.map +1 -1
  226. package/dist/components/kaeso/conversation.js +51 -46
  227. package/dist/components/kaeso/conversation.js.map +1 -1
  228. package/dist/components/kaeso/identity.js +1 -1
  229. package/dist/components/kaeso/moments.js +23 -20
  230. package/dist/components/kaeso/moments.js.map +1 -1
  231. package/dist/components/kaeso/rights.js +1 -1
  232. package/dist/components/kaeso/usage.js +90 -74
  233. package/dist/components/kaeso/usage.js.map +1 -1
  234. package/dist/components/kaeso.js +200 -187
  235. package/dist/components/kaeso.js.map +1 -1
  236. package/dist/components/kbd.js +1 -1
  237. package/dist/components/key-value.js +32 -47
  238. package/dist/components/key-value.js.map +1 -1
  239. package/dist/components/label.js +1 -25
  240. package/dist/components/layout.js +2 -2
  241. package/dist/components/layout.js.map +1 -1
  242. package/dist/components/link.js +1 -1
  243. package/dist/components/list.js +1 -1
  244. package/dist/components/loader.js +11 -10
  245. package/dist/components/loader.js.map +1 -1
  246. package/dist/components/logo.js +2 -2
  247. package/dist/components/markdown.js +1 -1
  248. package/dist/components/menu.js +2 -2
  249. package/dist/components/meter.js +1 -1
  250. package/dist/components/page-header.js +1 -1
  251. package/dist/components/pagination.js +1 -1
  252. package/dist/components/playground.js +644 -529
  253. package/dist/components/playground.js.map +1 -1
  254. package/dist/components/popover.js +4 -4
  255. package/dist/components/popover.js.map +1 -1
  256. package/dist/components/portal.js +1 -1
  257. package/dist/components/qr-code.js +2 -2
  258. package/dist/components/qr-code.js.map +1 -1
  259. package/dist/components/radio.js +1 -1
  260. package/dist/components/release-art.js +1 -1
  261. package/dist/components/scroll-area.js +1 -1
  262. package/dist/components/section.js +1 -1
  263. package/dist/components/segmented.js +1 -1
  264. package/dist/components/select.js +1 -1
  265. package/dist/components/separator.js +1 -1
  266. package/dist/components/settings.js +39 -46
  267. package/dist/components/settings.js.map +1 -1
  268. package/dist/components/sheet.js +10 -9
  269. package/dist/components/sheet.js.map +1 -1
  270. package/dist/components/sidebar.js +1 -1
  271. package/dist/components/skeleton.js +1 -1
  272. package/dist/components/slider.js +1 -1
  273. package/dist/components/stat.js +98 -84
  274. package/dist/components/stat.js.map +1 -1
  275. package/dist/components/status-dot.js +1 -1
  276. package/dist/components/surface.js +1 -1
  277. package/dist/components/swap-text.js +1 -1
  278. package/dist/components/switch.js +1 -1
  279. package/dist/components/table.js +1 -1
  280. package/dist/components/tabs.js +73 -55
  281. package/dist/components/tabs.js.map +1 -1
  282. package/dist/components/tag.js +1 -1
  283. package/dist/components/text.js +1 -1
  284. package/dist/components/theme-image.js +1 -1
  285. package/dist/components/theme-menu.js +5 -2
  286. package/dist/components/theme-menu.js.map +1 -1
  287. package/dist/components/theme-select.js +1 -1
  288. package/dist/components/thumbnail.js +35 -24
  289. package/dist/components/thumbnail.js.map +1 -1
  290. package/dist/components/timeline.js +51 -35
  291. package/dist/components/timeline.js.map +1 -1
  292. package/dist/components/toast.js +76 -66
  293. package/dist/components/toast.js.map +1 -1
  294. package/dist/components/toc.js +14 -8
  295. package/dist/components/toc.js.map +1 -1
  296. package/dist/components/toolbar.js +1 -1
  297. package/dist/components/tooltip.js +1 -1
  298. package/dist/components/visually-hidden.js +1 -1
  299. package/dist/i18n-provider.js +1 -1
  300. package/dist/index.js +100 -100
  301. package/dist/kaeso.css +605 -67
  302. package/dist/styles.css +1 -1
  303. package/dist/tailwind.css +1 -1
  304. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -2
  305. package/dist/types/components/agent-avatar/agent-avatar.d.ts +24 -19
  306. package/dist/types/components/badge/badge.d.ts +3 -3
  307. package/dist/types/components/banner/banner.d.ts +3 -3
  308. package/dist/types/components/button/button.d.ts +2 -2
  309. package/dist/types/components/button-group/button-group.d.ts +1 -1
  310. package/dist/types/components/charts/domain.d.ts +11 -0
  311. package/dist/types/components/charts/marks.d.ts +1 -0
  312. package/dist/types/components/code/code.d.ts +3 -3
  313. package/dist/types/components/code-block/json-view.d.ts +2 -1
  314. package/dist/types/components/code-block/numbers.d.ts +1 -0
  315. package/dist/types/components/collapsible/collapsible.d.ts +2 -2
  316. package/dist/types/components/collapsible/disclosure.d.ts +2 -0
  317. package/dist/types/components/data-table/data-table.d.ts +6 -5
  318. package/dist/types/components/data-table/docs.d.ts +1 -0
  319. package/dist/types/components/data-table/time-columns.d.ts +1 -0
  320. package/dist/types/components/date-picker/focus-day.d.ts +1 -0
  321. package/dist/types/components/date-picker/iso-field.d.ts +8 -1
  322. package/dist/types/components/dialog/dialog.d.ts +7 -7
  323. package/dist/types/components/field/field.d.ts +1 -1
  324. package/dist/types/components/flow/flow.d.ts +1 -1
  325. package/dist/types/components/icon-button/icon-button.d.ts +1 -1
  326. package/dist/types/components/input/input-group.d.ts +2 -0
  327. package/dist/types/components/input/number-input.d.ts +4 -4
  328. package/dist/types/components/input/otp-input.d.ts +3 -3
  329. package/dist/types/components/kaeso/client-button.d.ts +2 -1
  330. package/dist/types/components/kaeso/provider-picker.d.ts +1 -0
  331. package/dist/types/components/kaeso/rights.d.ts +1 -1
  332. package/dist/types/components/kaeso/role-picker.d.ts +1 -0
  333. package/dist/types/components/key-value/key-value.d.ts +2 -2
  334. package/dist/types/components/layout/layout.d.ts +2 -2
  335. package/dist/types/components/link/link.d.ts +4 -4
  336. package/dist/types/components/list/list.d.ts +2 -2
  337. package/dist/types/components/menu/menu.d.ts +2 -1
  338. package/dist/types/components/menu/styles.d.ts +3 -3
  339. package/dist/types/components/meter/meter.d.ts +3 -3
  340. package/dist/types/components/page-header/page-header.d.ts +1 -1
  341. package/dist/types/components/pagination/pagination.d.ts +2 -2
  342. package/dist/types/components/playground/prompt-suggestions.d.ts +1 -0
  343. package/dist/types/components/playground/reasoning-frame.d.ts +14 -0
  344. package/dist/types/components/playground/reasoning.d.ts +1 -0
  345. package/dist/types/components/popover/popover.d.ts +1 -1
  346. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  347. package/dist/types/components/section/section-header.d.ts +6 -0
  348. package/dist/types/components/segmented/segmented.d.ts +1 -0
  349. package/dist/types/components/select/select.d.ts +1 -1
  350. package/dist/types/components/sheet/sheet.d.ts +3 -3
  351. package/dist/types/components/sidebar/sidebar.d.ts +1 -0
  352. package/dist/types/components/slider/slider.d.ts +2 -2
  353. package/dist/types/components/stat/stat.d.ts +1 -1
  354. package/dist/types/components/tabs/tabs.d.ts +6 -4
  355. package/dist/types/components/text/truncated.d.ts +7 -0
  356. package/dist/types/components/timeline/timeline.d.ts +5 -5
  357. package/dist/types/components/toc/toc.d.ts +1 -1
  358. package/dist/types/components/toolbar/toolbar.d.ts +1 -1
  359. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  360. package/dist/types/components/tooltip/trigger-props.d.ts +1 -0
  361. package/dist/types/hooks/use-coarse-pointer.d.ts +1 -0
  362. package/dist/types/hooks/use-hydrating.d.ts +1 -0
  363. package/dist/types/utils/arrow-focus.d.ts +4 -1
  364. package/dist/types/utils/cn.d.ts +33 -0
  365. package/dist/types/utils/portal-context.d.ts +7 -1
  366. package/dist/utils.js +2 -2
  367. package/foundations/accessibility.md +3 -2
  368. package/foundations/color.md +5 -1
  369. package/foundations/elevation.md +1 -0
  370. package/foundations/motion.md +1 -1
  371. package/foundations/shape.md +2 -2
  372. package/foundations/typography.md +12 -12
  373. package/package.json +2 -2
  374. package/dist/chunks/agent-avatar-0pdBTWkR.js +0 -171
  375. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +0 -1
  376. package/dist/chunks/app-frame-DogGRmsu.js +0 -221
  377. package/dist/chunks/app-frame-DogGRmsu.js.map +0 -1
  378. package/dist/chunks/arrow-focus-BcySmwwU.js +0 -11
  379. package/dist/chunks/arrow-focus-BcySmwwU.js.map +0 -1
  380. package/dist/chunks/avatar-CWbdwbJv.js +0 -83
  381. package/dist/chunks/avatar-CWbdwbJv.js.map +0 -1
  382. package/dist/chunks/badge-C2KtxCLB.js +0 -26
  383. package/dist/chunks/badge-C2KtxCLB.js.map +0 -1
  384. package/dist/chunks/banner-BA2ALw9M.js +0 -85
  385. package/dist/chunks/banner-BA2ALw9M.js.map +0 -1
  386. package/dist/chunks/button-CzuxqawA.js +0 -164
  387. package/dist/chunks/button-CzuxqawA.js.map +0 -1
  388. package/dist/chunks/calendar-BWaf2MXc.js.map +0 -1
  389. package/dist/chunks/checkbox-CQjwCPkc.js +0 -126
  390. package/dist/chunks/checkbox-CQjwCPkc.js.map +0 -1
  391. package/dist/chunks/cn-Dj6sRgkF.js.map +0 -1
  392. package/dist/chunks/code-block-BZIe_B9l.js +0 -334
  393. package/dist/chunks/code-block-BZIe_B9l.js.map +0 -1
  394. package/dist/chunks/code-block-DdNPHEzI.js.map +0 -1
  395. package/dist/chunks/code-tqj0uhBL.js.map +0 -1
  396. package/dist/chunks/collapsible-CKrCX_T9.js +0 -87
  397. package/dist/chunks/collapsible-CKrCX_T9.js.map +0 -1
  398. package/dist/chunks/combobox-DjDI7SUC.js +0 -319
  399. package/dist/chunks/combobox-DjDI7SUC.js.map +0 -1
  400. package/dist/chunks/command-list-C2Y7V_lt.js +0 -418
  401. package/dist/chunks/command-list-C2Y7V_lt.js.map +0 -1
  402. package/dist/chunks/copy-button-FJvPJn72.js.map +0 -1
  403. package/dist/chunks/core-BYns5ytV.js +0 -472
  404. package/dist/chunks/core-BYns5ytV.js.map +0 -1
  405. package/dist/chunks/date-popup-CPA_zt6o.js +0 -35
  406. package/dist/chunks/date-popup-CPA_zt6o.js.map +0 -1
  407. package/dist/chunks/de-D_0mmG-k.js.map +0 -1
  408. package/dist/chunks/dialog-Cg9A_6SF.js.map +0 -1
  409. package/dist/chunks/field-TviMvYa2.js.map +0 -1
  410. package/dist/chunks/hidden-description-B2zSmLcn.js +0 -23
  411. package/dist/chunks/hidden-description-B2zSmLcn.js.map +0 -1
  412. package/dist/chunks/icon-button-CrdF_eMG.js.map +0 -1
  413. package/dist/chunks/input-2VJuj_M4.js.map +0 -1
  414. package/dist/chunks/input-group-DQ_4DoXg.js.map +0 -1
  415. package/dist/chunks/iso-field-B2rTwiBo.js +0 -33
  416. package/dist/chunks/iso-field-B2rTwiBo.js.map +0 -1
  417. package/dist/chunks/json-view-Dqd2TDkc.js +0 -175
  418. package/dist/chunks/json-view-Dqd2TDkc.js.map +0 -1
  419. package/dist/chunks/kbd-BF1vKXJf.js.map +0 -1
  420. package/dist/chunks/link-KWI7PevW.js.map +0 -1
  421. package/dist/chunks/list-M1csq-d4.js +0 -494
  422. package/dist/chunks/list-M1csq-d4.js.map +0 -1
  423. package/dist/chunks/markdown-BupwFOae.js +0 -313
  424. package/dist/chunks/markdown-BupwFOae.js.map +0 -1
  425. package/dist/chunks/menu-DEmBfdPm.js +0 -450
  426. package/dist/chunks/menu-DEmBfdPm.js.map +0 -1
  427. package/dist/chunks/meter-Bj4N3Xuh.js +0 -84
  428. package/dist/chunks/meter-Bj4N3Xuh.js.map +0 -1
  429. package/dist/chunks/nav-sheet-CzgIwgAm.js +0 -60
  430. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +0 -1
  431. package/dist/chunks/nav-wordmark-_pjheAsZ.js.map +0 -1
  432. package/dist/chunks/page-header-DL2y2iZp.js +0 -41
  433. package/dist/chunks/page-header-DL2y2iZp.js.map +0 -1
  434. package/dist/chunks/pagination-Cn_qF4cg.js +0 -86
  435. package/dist/chunks/pagination-Cn_qF4cg.js.map +0 -1
  436. package/dist/chunks/picker-popover-BxyU1U9F.js +0 -106
  437. package/dist/chunks/picker-popover-BxyU1U9F.js.map +0 -1
  438. package/dist/chunks/popover-DNN4S47w.js +0 -50
  439. package/dist/chunks/popover-DNN4S47w.js.map +0 -1
  440. package/dist/chunks/portal-context-BBbzDKmY.js.map +0 -1
  441. package/dist/chunks/radio-CDDFpdtL.js.map +0 -1
  442. package/dist/chunks/range-popup-CRyWYUB1.js +0 -128
  443. package/dist/chunks/range-popup-CRyWYUB1.js.map +0 -1
  444. package/dist/chunks/release-art-ZwfFQImt.js +0 -561
  445. package/dist/chunks/release-art-ZwfFQImt.js.map +0 -1
  446. package/dist/chunks/rights-Cyp0Pzp-.js +0 -279
  447. package/dist/chunks/rights-Cyp0Pzp-.js.map +0 -1
  448. package/dist/chunks/scroll-area-D8MD7Vpo.js.map +0 -1
  449. package/dist/chunks/scroll-parent-WXvzQcUo.js +0 -14
  450. package/dist/chunks/scroll-parent-WXvzQcUo.js.map +0 -1
  451. package/dist/chunks/section-Ce1efbsP.js +0 -87
  452. package/dist/chunks/section-Ce1efbsP.js.map +0 -1
  453. package/dist/chunks/segmented-CErcoxwi.js +0 -114
  454. package/dist/chunks/segmented-CErcoxwi.js.map +0 -1
  455. package/dist/chunks/select-x4XVsdCI.js +0 -210
  456. package/dist/chunks/select-x4XVsdCI.js.map +0 -1
  457. package/dist/chunks/separator-D7TzNHmX.js.map +0 -1
  458. package/dist/chunks/sidebar-3r1ZRXlN.js +0 -621
  459. package/dist/chunks/sidebar-3r1ZRXlN.js.map +0 -1
  460. package/dist/chunks/skeleton-Dcz57Zyp.js.map +0 -1
  461. package/dist/chunks/slider-Ci83PGtj.js +0 -57
  462. package/dist/chunks/slider-Ci83PGtj.js.map +0 -1
  463. package/dist/chunks/swap-text-Dr0Irxz6.js.map +0 -1
  464. package/dist/chunks/switch-BNMq_kGt.js +0 -59
  465. package/dist/chunks/switch-BNMq_kGt.js.map +0 -1
  466. package/dist/chunks/table-BeOSKl_3.js +0 -84
  467. package/dist/chunks/table-BeOSKl_3.js.map +0 -1
  468. package/dist/chunks/tag-D_M1s2qS.js +0 -87
  469. package/dist/chunks/tag-D_M1s2qS.js.map +0 -1
  470. package/dist/chunks/text-CIXH8rmT.js.map +0 -1
  471. package/dist/chunks/textarea--4FRL3Pb.js.map +0 -1
  472. package/dist/chunks/timeseries-D1xjRXfk.js +0 -339
  473. package/dist/chunks/timeseries-D1xjRXfk.js.map +0 -1
  474. package/dist/chunks/toolbar-WA_oZgu-.js +0 -37
  475. package/dist/chunks/toolbar-WA_oZgu-.js.map +0 -1
  476. package/dist/chunks/tooltip-OcwO0VUT.js +0 -154
  477. package/dist/chunks/tooltip-OcwO0VUT.js.map +0 -1
  478. package/dist/chunks/tooltip-root-DzahJDVj.js +0 -60
  479. package/dist/chunks/tooltip-root-DzahJDVj.js.map +0 -1
  480. package/dist/chunks/zh-CN-Bm6UPIbW.js.map +0 -1
  481. package/dist/components/data-table.js.map +0 -1
  482. package/dist/components/label.js.map +0 -1
@@ -1,334 +0,0 @@
1
- "use client";
2
- import { t as e } from "./cn-Dj6sRgkF.js";
3
- import { i as t } from "./context-BELWW79w.js";
4
- import { t as n } from "./observe-resize-DhxhmoyB.js";
5
- import { n as r } from "./copy-button-FJvPJn72.js";
6
- import { forwardRef as i, useEffect as a, useMemo as o, useRef as s, useState as c } from "react";
7
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
8
- import { Tabs as d } from "@base-ui/react/tabs";
9
- //#region src/components/code-block/kaeso-theme.ts
10
- var f = {
11
- text: {
12
- color: "var(--k-text)",
13
- className: ""
14
- },
15
- quiet: {
16
- color: "var(--k-text-tertiary)",
17
- className: "text-fg-tertiary"
18
- },
19
- secondary: {
20
- color: "var(--k-text-secondary)",
21
- className: "text-fg-secondary"
22
- },
23
- string: {
24
- color: "var(--k-info-text)",
25
- className: "text-info-text"
26
- },
27
- constant: {
28
- color: "var(--k-warning-text)",
29
- className: "text-warning-text"
30
- }
31
- }, p = 1, m = 2;
32
- function h(e, t) {
33
- let n = t ?? 0;
34
- return [
35
- Object.values(f).find((t) => t.color === e?.toLowerCase())?.className ?? "",
36
- n & p ? "italic" : "",
37
- n & m ? "font-semibold" : ""
38
- ].filter(Boolean).join(" ");
39
- }
40
- var g = {
41
- name: "kaeso",
42
- type: "light",
43
- colors: {
44
- "editor.background": "transparent",
45
- "editor.foreground": f.text.color
46
- },
47
- settings: [
48
- { settings: {
49
- foreground: f.text.color,
50
- background: "transparent"
51
- } },
52
- {
53
- scope: ["comment", "punctuation.definition.comment"],
54
- settings: {
55
- foreground: f.quiet.color,
56
- fontStyle: "italic"
57
- }
58
- },
59
- {
60
- scope: [
61
- "string",
62
- "string.quoted",
63
- "string.template",
64
- "punctuation.definition.string",
65
- "markup.inline.raw"
66
- ],
67
- settings: { foreground: f.string.color }
68
- },
69
- {
70
- scope: [
71
- "constant.numeric",
72
- "constant.language.boolean",
73
- "constant.language.null",
74
- "constant.language"
75
- ],
76
- settings: { foreground: f.constant.color }
77
- },
78
- {
79
- scope: [
80
- "keyword",
81
- "storage",
82
- "storage.type",
83
- "storage.modifier",
84
- "keyword.control",
85
- "keyword.operator.new",
86
- "variable.language"
87
- ],
88
- settings: {
89
- foreground: f.text.color,
90
- fontStyle: "bold"
91
- }
92
- },
93
- {
94
- scope: [
95
- "punctuation",
96
- "meta.brace",
97
- "punctuation.separator",
98
- "punctuation.terminator",
99
- "keyword.operator",
100
- "meta.tag punctuation"
101
- ],
102
- settings: { foreground: f.quiet.color }
103
- },
104
- {
105
- scope: [
106
- "entity.name.function",
107
- "support.function",
108
- "entity.name.tag",
109
- "support.class.component"
110
- ],
111
- settings: { foreground: f.text.color }
112
- },
113
- {
114
- scope: [
115
- "support.type.property-name",
116
- "meta.object-literal.key",
117
- "entity.other.attribute-name",
118
- "variable.other.property"
119
- ],
120
- settings: { foreground: f.text.color }
121
- },
122
- {
123
- scope: [
124
- "entity.name.type",
125
- "support.type",
126
- "entity.other.inherited-class"
127
- ],
128
- settings: { foreground: f.secondary.color }
129
- }
130
- ]
131
- }, _ = null, v = 2e3, y = [
132
- "ts",
133
- "tsx",
134
- "js",
135
- "json",
136
- "bash",
137
- "python",
138
- "yaml",
139
- "diff"
140
- ];
141
- function b() {
142
- return _ ??= (async () => {
143
- let [{ createHighlighterCore: e }, { createJavaScriptRegexEngine: t }] = await Promise.all([import("shiki/core"), import("shiki/engine/javascript")]);
144
- return await e({
145
- themes: [g],
146
- langs: [],
147
- engine: t()
148
- });
149
- })().catch((e) => {
150
- throw _ = null, e;
151
- }), _;
152
- }
153
- var x = {
154
- ts: () => import("shiki/dist/langs/typescript.mjs"),
155
- tsx: () => import("shiki/dist/langs/tsx.mjs"),
156
- js: () => import("shiki/dist/langs/javascript.mjs"),
157
- json: () => import("shiki/dist/langs/json.mjs"),
158
- bash: () => import("shiki/dist/langs/bash.mjs"),
159
- python: () => import("shiki/dist/langs/python.mjs"),
160
- yaml: () => import("shiki/dist/langs/yaml.mjs"),
161
- diff: () => import("shiki/dist/langs/diff.mjs")
162
- };
163
- async function S(e, t) {
164
- if (t === "text" || e.length > 2e5) return null;
165
- let n = await b();
166
- if (!n.getLoadedLanguages().includes(t)) {
167
- let e = x[t];
168
- if (!e) return null;
169
- await n.loadLanguage((await e()).default);
170
- }
171
- return n.codeToTokens(e, {
172
- lang: t,
173
- theme: "kaeso",
174
- tokenizeMaxLineLength: v
175
- }).tokens.map((e) => e.map((e) => ({
176
- content: e.content,
177
- className: h(e.color, e.fontStyle)
178
- })));
179
- }
180
- //#endregion
181
- //#region src/components/code-block/indent.ts
182
- var C = /^[ \t]+/;
183
- function w(e, t) {
184
- let n = t;
185
- return e.flatMap((e) => {
186
- if (n === 0) return [e];
187
- let t = Math.min(n, e.content.length);
188
- return n -= t, t === e.content.length ? [] : [{
189
- ...e,
190
- content: e.content.slice(t)
191
- }];
192
- });
193
- }
194
- //#endregion
195
- //#region src/hooks/use-scroll-fade.ts
196
- function T(e, t, n) {
197
- n > 0 ? e.style.setProperty(t, `${n}px`) : e.style.removeProperty(t);
198
- }
199
- function E(e, t, r) {
200
- a(() => {
201
- let r = e.current;
202
- if (!r) return;
203
- let i = () => {
204
- let e = Math.abs(r.scrollLeft);
205
- T(r, "--scroll-area-overflow-x-start", e), T(r, "--scroll-area-overflow-x-end", r.scrollWidth - r.clientWidth - e);
206
- };
207
- i(), r.addEventListener("scroll", i, { passive: !0 });
208
- let a = r.querySelector(t), o = n(a ? [r, a] : [r], i);
209
- return () => {
210
- r.removeEventListener("scroll", i), o();
211
- };
212
- }, [
213
- e,
214
- t,
215
- r
216
- ]);
217
- }
218
- //#endregion
219
- //#region src/components/code-block/code-block.tsx
220
- var D = { surface: {
221
- well: { classes: "rounded-well bg-fill-1" },
222
- plain: { classes: "bg-transparent" }
223
- } }, O = { surface: "well" };
224
- function k(e) {
225
- return e.startsWith("+") && !e.startsWith("+++") ? "bg-diff-added" : e.startsWith("-") && !e.startsWith("---") ? "bg-diff-removed" : !1;
226
- }
227
- var A = /* @__PURE__ */ i(function({ code: n = "", lang: i = "ts", tabs: f, tab: p, onTabChange: m, title: h, lineNumbers: g, highlightLines: _ = [], collapseAfter: v = 24, surface: y = "well", copy: b = !0, wrap: x = !1, className: T }, O) {
228
- let [A, j] = c(0), M = p === void 0 ? -1 : f?.findIndex((e) => e.label === p) ?? -1, N = M >= 0 ? M : A, P = (e) => {
229
- j(e);
230
- let t = f?.[e]?.label;
231
- t !== void 0 && m?.(t);
232
- }, F = t(), I = f?.[N] ?? {
233
- label: "",
234
- code: n,
235
- lang: i
236
- }, L = I.code.replace(/\n$/, ""), R = o(() => L.split("\n"), [L]), [z, B] = c(null), [V, H] = c(!1);
237
- a(() => {
238
- let e = !0, t = I.lang ?? "ts";
239
- return S(L, t).then((n) => e && B({
240
- text: L,
241
- lang: t,
242
- tokens: n
243
- })).catch(() => void 0), () => {
244
- e = !1;
245
- };
246
- }, [L, I.lang]);
247
- let U = z && z.lang === (I.lang ?? "ts") && z.text === L ? z.tokens : null, W = v > 0 && R.length > v && !V, G = W ? v : R.length, K = s(null);
248
- E(K, "code", !!f);
249
- let q = e("relative overflow-x-auto py-16 scrollbar-quiet scroll-fade-x focus-ring-inset", W && "overflow-y-hidden", b && "coarse:mr-40"), J = /* @__PURE__ */ l("pre", {
250
- className: "mono text-small text-fg",
251
- children: /* @__PURE__ */ l("code", {
252
- className: e("grid", !x && "min-w-max", x === "phone" && "sm:min-w-max"),
253
- children: R.slice(0, G).map((t, n) => /* @__PURE__ */ u("span", {
254
- className: e("flex px-16 leading-code", x === !0 && "whitespace-pre-wrap wrap-anywhere", x === "phone" && "max-sm:whitespace-pre-wrap max-sm:wrap-anywhere", I.lang === "diff" && k(t), _.includes(n + 1) && "bg-fill-2"),
255
- children: [
256
- g && /* @__PURE__ */ l("span", {
257
- className: "mr-16 inline-block w-24 shrink-0 text-right text-fg-tertiary select-none tabular",
258
- children: n + 1
259
- }),
260
- x && C.test(t) && /* @__PURE__ */ l("span", {
261
- className: "shrink-0 whitespace-pre",
262
- children: C.exec(t)?.[0]
263
- }),
264
- /* @__PURE__ */ l("span", {
265
- className: e("min-w-0", x === !0 && "pl-16 -indent-16", x === "phone" && "max-sm:pl-16 max-sm:-indent-16"),
266
- children: U?.[n]?.length ? w(U[n], x ? C.exec(t)?.[0].length ?? 0 : 0).map((e, t) => /* @__PURE__ */ l("span", {
267
- className: e.className || void 0,
268
- children: e.content
269
- }, t)) : (x ? t.replace(C, "") : t) || " "
270
- })
271
- ]
272
- }, n))
273
- })
274
- });
275
- return /* @__PURE__ */ u("div", {
276
- ref: O,
277
- className: e("group/code relative min-w-0", D.surface[y].classes, T),
278
- children: [
279
- /* @__PURE__ */ u(d.Root, {
280
- value: N,
281
- onValueChange: (e) => P(Number(e)),
282
- children: [(h || f) && /* @__PURE__ */ u("div", {
283
- className: "flex h-44 items-center gap-4 px-8 hairline-b",
284
- children: [h && /* @__PURE__ */ l("span", {
285
- className: "px-8 mono text-small text-fg-secondary",
286
- children: h
287
- }), f && /* @__PURE__ */ l(d.List, {
288
- "aria-label": F("codeBlock.language", "Language"),
289
- className: "flex items-center gap-2",
290
- children: f.map((t, n) => /* @__PURE__ */ l(d.Tab, {
291
- value: n,
292
- className: e("inline-flex h-28 cursor-pointer items-center rounded-pill px-10 text-small font-medium transition-control focus-ring", n === N ? "bg-fill-2 text-fg" : "text-fg-secondary hover:bg-fill-2 hover:text-fg"),
293
- children: t.label
294
- }, t.label))
295
- })]
296
- }), f ? /* @__PURE__ */ l(d.Panel, {
297
- ref: K,
298
- value: N,
299
- className: q,
300
- children: J
301
- }) : /* @__PURE__ */ l("div", {
302
- ref: K,
303
- tabIndex: 0,
304
- role: "region",
305
- "aria-label": typeof h == "string" ? F("codeBlock.titledCode", "{title} code", { title: h }) : F("codeBlock.code", "Code"),
306
- className: q,
307
- children: J
308
- })]
309
- }),
310
- v > 0 && R.length > v && /* @__PURE__ */ l("div", {
311
- className: "flex justify-center pb-12",
312
- children: /* @__PURE__ */ l("button", {
313
- type: "button",
314
- onClick: () => H((e) => !e),
315
- className: "inline-flex h-28 cursor-pointer items-center rounded-pill px-12 text-small font-medium text-fg-secondary transition-control hover:bg-fill-2 hover:text-fg focus-ring",
316
- children: V ? F("codeBlock.showLess", "Show less") : F("codeBlock.showAllLines", "Show all {count} lines", { count: String(R.length) })
317
- })
318
- }),
319
- b && /* @__PURE__ */ l("div", {
320
- className: e("absolute right-8 opacity-0 transition-control group-hover/code:opacity-100 coarse:opacity-100 focus-within:opacity-100", h || f ? "top-52" : "top-8"),
321
- children: /* @__PURE__ */ l(r, {
322
- value: L,
323
- label: F("codeBlock.copy", "Copy code")
324
- })
325
- })
326
- ]
327
- });
328
- });
329
- process.env.NODE_ENV !== "production" && (A.displayName = "CodeBlock");
330
- var j = A;
331
- //#endregion
332
- export { E as a, S as c, D as i, g as l, j as n, C as o, O as r, y as s, A as t };
333
-
334
- //# sourceMappingURL=code-block-BZIe_B9l.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-block-BZIe_B9l.js","names":["BaseTabs","cn","useUiText","observeResize","CopyButton","TONES","ITALIC","BOLD","codeTokenClass","style","fontStyle","tone","color","kaesoShikiTheme","instance","HIGHLIGHT_MAX_LINE","CODE_LANGS","getHighlighter","createHighlighterCore","createJavaScriptRegexEngine","error","LOADERS","highlight","lang","code","h","loader","line","token","INDENT","dropIndent","left","n","tokens","t","cut","setLength","px","el","name","useScrollFadeX","ref","update","start","inner","content","stop","key","KAESO_CODE_BLOCK_VARIANTS","KAESO_CODE_BLOCK_DEFAULT_VARIANTS","diffLineClass","CodeBlock","chosen","own","setOwn","useState","match","tabs","item","tab","choose","i","label","onTabChange","current","text","lines","useMemo","highlighted","setHighlighted","expanded","setExpanded","alive","tokenLines","collapsed","collapseAfter","visible","scroller","useRef","codeClass","copy","source","wrap","highlightLines","lineNumbers","j","surface","className","Tabs","v","title","CodeHighlighted"],"sources":["../../src/components/code-block/kaeso-theme.ts","../../src/components/code-block/highlighter.ts","../../src/components/code-block/indent.ts","../../src/hooks/use-scroll-fade.ts","../../src/components/code-block/code-block.tsx"],"sourcesContent":["const TONES = {\n text: { color: \"var(--k-text)\", className: \"\" },\n quiet: { color: \"var(--k-text-tertiary)\", className: \"text-fg-tertiary\" },\n secondary: { color: \"var(--k-text-secondary)\", className: \"text-fg-secondary\" },\n string: { color: \"var(--k-info-text)\", className: \"text-info-text\" },\n constant: { color: \"var(--k-warning-text)\", className: \"text-warning-text\" },\n} as const;\n\nconst ITALIC = 1;\nconst BOLD = 2;\n\nexport function codeTokenClass(color: string | undefined, fontStyle: number | undefined): string {\n const style = fontStyle ?? 0;\n return [\n Object.values(TONES).find((tone) => tone.color === color?.toLowerCase())?.className ?? \"\",\n style & ITALIC ? \"italic\" : \"\",\n style & BOLD ? \"font-semibold\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n}\n\nexport const kaesoShikiTheme = {\n name: \"kaeso\",\n type: \"light\" as const,\n colors: { \"editor.background\": \"transparent\", \"editor.foreground\": TONES.text.color },\n settings: [\n { settings: { foreground: TONES.text.color, background: \"transparent\" } },\n { scope: [\"comment\", \"punctuation.definition.comment\"], settings: { foreground: TONES.quiet.color, fontStyle: \"italic\" } },\n {\n scope: [\"string\", \"string.quoted\", \"string.template\", \"punctuation.definition.string\", \"markup.inline.raw\"],\n settings: { foreground: TONES.string.color },\n },\n {\n scope: [\"constant.numeric\", \"constant.language.boolean\", \"constant.language.null\", \"constant.language\"],\n settings: { foreground: TONES.constant.color },\n },\n {\n scope: [\"keyword\", \"storage\", \"storage.type\", \"storage.modifier\", \"keyword.control\", \"keyword.operator.new\", \"variable.language\"],\n settings: { foreground: TONES.text.color, fontStyle: \"bold\" },\n },\n {\n scope: [\"punctuation\", \"meta.brace\", \"punctuation.separator\", \"punctuation.terminator\", \"keyword.operator\", \"meta.tag punctuation\"],\n settings: { foreground: TONES.quiet.color },\n },\n { scope: [\"entity.name.function\", \"support.function\", \"entity.name.tag\", \"support.class.component\"], settings: { foreground: TONES.text.color } },\n {\n scope: [\"support.type.property-name\", \"meta.object-literal.key\", \"entity.other.attribute-name\", \"variable.other.property\"],\n settings: { foreground: TONES.text.color },\n },\n { scope: [\"entity.name.type\", \"support.type\", \"entity.other.inherited-class\"], settings: { foreground: TONES.secondary.color } },\n ],\n};\n","import { codeTokenClass, kaesoShikiTheme } from \"./kaeso-theme.js\";\n\ntype Highlighter = {\n codeToTokens: (\n code: string,\n o: { lang: string; theme: string; tokenizeMaxLineLength?: number | undefined },\n ) => { tokens: { content: string; color?: string | undefined; fontStyle?: number | undefined }[][] };\n getLoadedLanguages: () => string[];\n loadLanguage: (...l: unknown[]) => Promise<void>;\n};\nlet instance: Promise<Highlighter> | null = null;\n\nexport const HIGHLIGHT_MAX_CHARS = 200_000;\n\nconst HIGHLIGHT_MAX_LINE = 2_000;\n\nexport const CODE_LANGS = [\"ts\", \"tsx\", \"js\", \"json\", \"bash\", \"python\", \"yaml\", \"diff\"] as const;\nexport type CodeLang = (typeof CODE_LANGS)[number] | \"text\";\n\nexport function getHighlighter(): Promise<Highlighter> {\n instance ??= (async () => {\n const [{ createHighlighterCore }, { createJavaScriptRegexEngine }] = await Promise.all([import(\"shiki/core\"), import(\"shiki/engine/javascript\")]);\n return (await createHighlighterCore({ themes: [kaesoShikiTheme as never], langs: [], engine: createJavaScriptRegexEngine() })) as unknown as Highlighter;\n })().catch((error: unknown) => {\n instance = null;\n throw error;\n });\n return instance;\n}\n\nconst LOADERS: Record<Exclude<CodeLang, \"text\">, () => Promise<{ default: unknown }>> = {\n ts: () => import(\"shiki/dist/langs/typescript.mjs\"),\n tsx: () => import(\"shiki/dist/langs/tsx.mjs\"),\n js: () => import(\"shiki/dist/langs/javascript.mjs\"),\n json: () => import(\"shiki/dist/langs/json.mjs\"),\n bash: () => import(\"shiki/dist/langs/bash.mjs\"),\n python: () => import(\"shiki/dist/langs/python.mjs\"),\n yaml: () => import(\"shiki/dist/langs/yaml.mjs\"),\n diff: () => import(\"shiki/dist/langs/diff.mjs\"),\n};\n\nexport interface CodeToken {\n content: string;\n className: string;\n}\n\nexport async function highlight(code: string, lang: CodeLang): Promise<CodeToken[][] | null> {\n if (lang === \"text\" || code.length > HIGHLIGHT_MAX_CHARS) return null;\n const h = await getHighlighter();\n if (!h.getLoadedLanguages().includes(lang)) {\n const loader = LOADERS[lang];\n if (!loader) return null;\n await h.loadLanguage((await loader()).default);\n }\n return h\n .codeToTokens(code, { lang, theme: \"kaeso\", tokenizeMaxLineLength: HIGHLIGHT_MAX_LINE })\n .tokens.map((line) => line.map((token) => ({ content: token.content, className: codeTokenClass(token.color, token.fontStyle) })));\n}\n","import type { CodeToken } from \"./highlighter.js\";\n\nexport const INDENT = /^[ \\t]+/;\n\nexport function dropIndent(tokens: CodeToken[], n: number): CodeToken[] {\n let left = n;\n return tokens.flatMap((t) => {\n if (left === 0) return [t];\n const cut = Math.min(left, t.content.length);\n left -= cut;\n return cut === t.content.length ? [] : [{ ...t, content: t.content.slice(cut) }];\n });\n}\n","import { useEffect, type RefObject } from \"react\";\nimport { observeResize } from \"../utils/observe-resize.js\";\n\nfunction setLength(el: HTMLElement, name: string, px: number) {\n if (px > 0) el.style.setProperty(name, `${px}px`);\n else el.style.removeProperty(name);\n}\n\nexport function useScrollFadeX(ref: RefObject<HTMLElement | null>, content: string, key?: unknown) {\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const update = () => {\n const start = Math.abs(el.scrollLeft);\n setLength(el, \"--scroll-area-overflow-x-start\", start);\n setLength(el, \"--scroll-area-overflow-x-end\", el.scrollWidth - el.clientWidth - start);\n };\n update();\n el.addEventListener(\"scroll\", update, { passive: true });\n const inner = el.querySelector(content);\n const stop = observeResize(inner ? [el, inner] : [el], update);\n return () => {\n el.removeEventListener(\"scroll\", update);\n stop();\n };\n }, [ref, content, key]);\n}\n","import { forwardRef, useEffect, useMemo, useRef, useState, type ReactNode } from \"react\";\nimport { Tabs as BaseTabs } from \"@base-ui/react/tabs\";\nimport { cn } from \"../../utils/cn.js\";\nimport { CopyButton } from \"../copy-button/copy-button.js\";\nimport { highlight, type CodeLang, type CodeToken } from \"./highlighter.js\";\nimport { INDENT, dropIndent } from \"./indent.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { useScrollFadeX } from \"../../hooks/use-scroll-fade.js\";\n\nexport const KAESO_CODE_BLOCK_VARIANTS = {\n surface: {\n well: { classes: \"rounded-well bg-fill-1\" },\n plain: { classes: \"bg-transparent\" },\n },\n} as const;\nexport const KAESO_CODE_BLOCK_DEFAULT_VARIANTS = { surface: \"well\" } as const;\n\nfunction diffLineClass(line: string): string | false {\n if (line.startsWith(\"+\") && !line.startsWith(\"+++\")) return \"bg-diff-added\";\n if (line.startsWith(\"-\") && !line.startsWith(\"---\")) return \"bg-diff-removed\";\n return false;\n}\n\nexport interface CodeTab {\n label: string;\n code: string;\n lang?: CodeLang | undefined;\n}\n\nexport interface CodeBlockProps {\n code?: string | undefined;\n lang?: CodeLang | undefined;\n tabs?: CodeTab[] | undefined;\n tab?: string | undefined;\n onTabChange?: ((label: string) => void) | undefined;\n title?: ReactNode | undefined;\n lineNumbers?: boolean | undefined;\n highlightLines?: number[] | undefined;\n collapseAfter?: number | undefined;\n surface?: keyof typeof KAESO_CODE_BLOCK_VARIANTS.surface | undefined;\n copy?: boolean | undefined;\n wrap?: boolean | \"phone\" | undefined;\n className?: string | undefined;\n}\n\nexport const CodeBlock = /* @__PURE__ */ forwardRef<HTMLDivElement, CodeBlockProps>(function CodeBlock(\n {\n code = \"\",\n lang = \"ts\",\n tabs,\n tab: chosen,\n onTabChange,\n title,\n lineNumbers,\n highlightLines = [],\n collapseAfter = 24,\n surface = \"well\",\n copy = true,\n wrap = false,\n className,\n },\n ref,\n) {\n const [own, setOwn] = useState(0);\n const match = chosen === undefined ? -1 : (tabs?.findIndex((item) => item.label === chosen) ?? -1);\n const tab = match >= 0 ? match : own;\n const choose = (i: number) => {\n setOwn(i);\n const label = tabs?.[i]?.label;\n if (label !== undefined) onTabChange?.(label);\n };\n const t = useUiText();\n const current = tabs?.[tab] ?? { label: \"\", code, lang };\n const text = current.code.replace(/\\n$/, \"\");\n const lines = useMemo(() => text.split(\"\\n\"), [text]);\n const [highlighted, setHighlighted] = useState<{ text: string; lang: CodeLang; tokens: CodeToken[][] | null } | null>(null);\n const [expanded, setExpanded] = useState(false);\n useEffect(() => {\n let alive = true;\n const lang = current.lang ?? \"ts\";\n highlight(text, lang)\n .then((tokens) => alive && setHighlighted({ text, lang, tokens }))\n .catch(() => undefined);\n return () => {\n alive = false;\n };\n }, [text, current.lang]);\n const tokenLines = highlighted && highlighted.lang === (current.lang ?? \"ts\") && highlighted.text === text ? highlighted.tokens : null;\n const collapsed = collapseAfter > 0 && lines.length > collapseAfter && !expanded;\n const visible = collapsed ? collapseAfter : lines.length;\n const scroller = useRef<HTMLDivElement | null>(null);\n useScrollFadeX(scroller, \"code\", !!tabs);\n const codeClass = cn(\n \"relative overflow-x-auto py-16 scrollbar-quiet scroll-fade-x focus-ring-inset\",\n collapsed && \"overflow-y-hidden\",\n copy && \"coarse:mr-40\",\n );\n const source = (\n <pre className=\"mono text-small text-fg\">\n <code className={cn(\"grid\", !wrap && \"min-w-max\", wrap === \"phone\" && \"sm:min-w-max\")}>\n {lines.slice(0, visible).map((line, i) => (\n <span\n key={i}\n className={cn(\n \"flex px-16 leading-code\",\n wrap === true && \"whitespace-pre-wrap wrap-anywhere\",\n wrap === \"phone\" && \"max-sm:whitespace-pre-wrap max-sm:wrap-anywhere\",\n current.lang === \"diff\" && diffLineClass(line),\n highlightLines.includes(i + 1) && \"bg-fill-2\",\n )}\n >\n {lineNumbers && <span className=\"mr-16 inline-block w-24 shrink-0 text-right text-fg-tertiary select-none tabular\">{i + 1}</span>}\n {wrap && INDENT.test(line) && <span className=\"shrink-0 whitespace-pre\">{INDENT.exec(line)?.[0]}</span>}\n <span className={cn(\"min-w-0\", wrap === true && \"pl-16 -indent-16\", wrap === \"phone\" && \"max-sm:pl-16 max-sm:-indent-16\")}>\n {tokenLines?.[i]?.length\n ? dropIndent(tokenLines[i], wrap ? (INDENT.exec(line)?.[0].length ?? 0) : 0).map((token, j) => (\n <span key={j} className={token.className || undefined}>\n {token.content}\n </span>\n ))\n : (wrap ? line.replace(INDENT, \"\") : line) || \" \"}\n </span>\n </span>\n ))}\n </code>\n </pre>\n );\n\n return (\n <div ref={ref} className={cn(\"group/code relative min-w-0\", KAESO_CODE_BLOCK_VARIANTS.surface[surface].classes, className)}>\n <BaseTabs.Root value={tab} onValueChange={(v: unknown) => choose(Number(v))}>\n {(title || tabs) && (\n <div className=\"flex h-44 items-center gap-4 px-8 hairline-b\">\n {title && <span className=\"px-8 mono text-small text-fg-secondary\">{title}</span>}\n {tabs && (\n <BaseTabs.List aria-label={t(\"codeBlock.language\", \"Language\")} className=\"flex items-center gap-2\">\n {tabs.map((item, i) => (\n <BaseTabs.Tab\n key={item.label}\n value={i}\n className={cn(\n \"inline-flex h-28 cursor-pointer items-center rounded-pill px-10 text-small font-medium transition-control focus-ring\",\n i === tab ? \"bg-fill-2 text-fg\" : \"text-fg-secondary hover:bg-fill-2 hover:text-fg\",\n )}\n >\n {item.label}\n </BaseTabs.Tab>\n ))}\n </BaseTabs.List>\n )}\n </div>\n )}\n {tabs ? (\n <BaseTabs.Panel ref={scroller} value={tab} className={codeClass}>\n {source}\n </BaseTabs.Panel>\n ) : (\n <div\n ref={scroller}\n tabIndex={0}\n role=\"region\"\n aria-label={typeof title === \"string\" ? t(\"codeBlock.titledCode\", \"{title} code\", { title }) : t(\"codeBlock.code\", \"Code\")}\n className={codeClass}\n >\n {source}\n </div>\n )}\n </BaseTabs.Root>\n {collapseAfter > 0 && lines.length > collapseAfter && (\n <div className=\"flex justify-center pb-12\">\n <button\n type=\"button\"\n onClick={() => setExpanded((e) => !e)}\n className=\"inline-flex h-28 cursor-pointer items-center rounded-pill px-12 text-small font-medium text-fg-secondary transition-control hover:bg-fill-2 hover:text-fg focus-ring\"\n >\n {expanded ? t(\"codeBlock.showLess\", \"Show less\") : t(\"codeBlock.showAllLines\", \"Show all {count} lines\", { count: String(lines.length) })}\n </button>\n </div>\n )}\n {copy && (\n <div\n className={cn(\n \"absolute right-8 opacity-0 transition-control group-hover/code:opacity-100 coarse:opacity-100 focus-within:opacity-100\",\n title || tabs ? \"top-52\" : \"top-8\",\n )}\n >\n <CopyButton value={text} label={t(\"codeBlock.copy\", \"Copy code\")} />\n </div>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CodeBlock.displayName = \"CodeBlock\";\n\nexport const CodeHighlighted = CodeBlock;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-block-DdNPHEzI.js","names":["WORD","_Fragment","__icon_UnfoldMoreIcon","cn","useUiText","Icon","CopyButton","useScrollFadeX","highlight","Fragment$1","MAX_CELLS","MAX_WORD_TOKENS","WORD$1","lcsPairs","a","b","width","table","j","pairs","i","wordChanges","before","after","keptText","longest","ranges","line","tokens","out","at","end","token","keptAt","k","last","markWords","removed","added","r","words","diffLines","head","tail","anchors","ai","bj","diffStats","lines","l","largestLineNumber","largest","unifiedDiff","foldUnchanged","near","d","context","rows","open","m","KAESO_DIFF_VIEW_VARIANTS","KAESO_DIFF_VIEW_DEFAULT_VARIANTS","NONE_OPEN","LINE","WORD","MARK","segments","source","text","start","pos","inside","changes","s","e","next","cut","dropChars","left","n","parts","p","Code","groups","part","spans","group","kind","g","numberWidth","digits","count","DiffView","t","useMemo","stats","setTokens","useState","alive","lang","o","current","setOpen","opened","scroller","useRef","unchanged","lineNumbers","lineTokens","surface","className","title","copy","wrap","row","UnfoldMoreIcon","mark","indent","INDENT"],"sources":["../../src/components/code-block/diff.ts","../../src/components/code-block/diff-view.tsx"],"sourcesContent":["export type DiffKind = \"same\" | \"removed\" | \"added\";\n\nexport interface DiffLine {\n kind: DiffKind;\n text: string;\n oldNumber?: number | undefined;\n newNumber?: number | undefined;\n changes?: [number, number][] | undefined;\n}\n\nexport interface DiffStats {\n added: number;\n removed: number;\n}\n\n// Past this many cells the quadratic table costs more memory than a readable diff is worth.\nconst MAX_CELLS = 4_000_000;\nconst MAX_WORD_TOKENS = 400;\nconst WORD = /\\w+|\\s+|[^\\w\\s]/g;\n\nfunction lcsPairs<T>(a: readonly T[], b: readonly T[]): [number, number][] | null {\n if (a.length * b.length > MAX_CELLS) return null;\n const width = b.length + 1;\n const table = new Uint32Array((a.length + 1) * width);\n for (let i = a.length - 1; i >= 0; i--)\n for (let j = b.length - 1; j >= 0; j--)\n table[i * width + j] =\n a[i] === b[j] ? (table[(i + 1) * width + j + 1] ?? 0) + 1 : Math.max(table[(i + 1) * width + j] ?? 0, table[i * width + j + 1] ?? 0);\n const pairs: [number, number][] = [];\n let i = 0;\n let j = 0;\n while (i < a.length && j < b.length) {\n if (a[i] === b[j]) {\n pairs.push([i, j]);\n i++;\n j++;\n } else if ((table[(i + 1) * width + j] ?? 0) >= (table[i * width + j + 1] ?? 0)) i++;\n else j++;\n }\n return pairs;\n}\n\nfunction wordChanges(before: string, after: string): [[number, number][], [number, number][]] | null {\n const a = before.match(WORD) ?? [];\n const b = after.match(WORD) ?? [];\n if (a.length > MAX_WORD_TOKENS || b.length > MAX_WORD_TOKENS) return null;\n const pairs = lcsPairs(a, b) ?? [];\n const keptText = pairs.map(([i]) => a[i] ?? \"\").join(\"\");\n const longest = Math.max(before.replace(/\\s/g, \"\").length, after.replace(/\\s/g, \"\").length);\n if (longest === 0 || (!/\\w/.test(keptText) && keptText.replace(/\\s/g, \"\").length / longest < 0.4)) return null;\n const ranges = (tokens: string[], keptAt: Set<number>) => {\n const line = tokens.join(\"\");\n const out: [number, number][] = [];\n let at = 0;\n tokens.forEach((token, k) => {\n const end = at + token.length;\n if (!keptAt.has(k) && token.trim()) {\n const last = out[out.length - 1];\n if (last && !line.slice(last[1], at).trim()) last[1] = end;\n else out.push([at, end]);\n }\n at = end;\n });\n return out;\n };\n return [ranges(a, new Set(pairs.map(([i]) => i))), ranges(b, new Set(pairs.map(([, j]) => j)))];\n}\n\nfunction markWords(removed: DiffLine[], added: DiffLine[]) {\n const n = Math.min(removed.length, added.length);\n for (let k = 0; k < n; k++) {\n const r = removed[k] as DiffLine;\n const a = added[k] as DiffLine;\n const words = wordChanges(r.text, a.text);\n if (!words) continue;\n r.changes = words[0];\n a.changes = words[1];\n }\n}\n\nexport function diffLines(before: string, after: string): DiffLine[] {\n const a = before === \"\" ? [] : before.replace(/\\n$/, \"\").split(\"\\n\");\n const b = after === \"\" ? [] : after.replace(/\\n$/, \"\").split(\"\\n\");\n let head = 0;\n while (head < a.length && head < b.length && a[head] === b[head]) head++;\n let tail = 0;\n while (tail < a.length - head && tail < b.length - head && a[a.length - 1 - tail] === b[b.length - 1 - tail]) tail++;\n const midA = a.slice(head, a.length - tail);\n const midB = b.slice(head, b.length - tail);\n const pairs = (lcsPairs(midA, midB) ?? []).map(([i, j]): [number, number] => [i + head, j + head]);\n const anchors: [number, number][] = [\n ...Array.from({ length: head }, (_, k): [number, number] => [k, k]),\n ...pairs,\n ...Array.from({ length: tail }, (_, k): [number, number] => [a.length - tail + k, b.length - tail + k]),\n [a.length, b.length],\n ];\n const out: DiffLine[] = [];\n let i = 0;\n let j = 0;\n for (const [ai, bj] of anchors) {\n const removed = a.slice(i, ai).map((text, k): DiffLine => ({ kind: \"removed\", text, oldNumber: i + k + 1 }));\n const added = b.slice(j, bj).map((text, k): DiffLine => ({ kind: \"added\", text, newNumber: j + k + 1 }));\n markWords(removed, added);\n out.push(...removed, ...added);\n if (ai < a.length) out.push({ kind: \"same\", text: a[ai] as string, oldNumber: ai + 1, newNumber: bj + 1 });\n i = ai + 1;\n j = bj + 1;\n }\n return out;\n}\n\nexport function diffStats(lines: readonly DiffLine[]): DiffStats {\n return {\n added: lines.filter((l) => l.kind === \"added\").length,\n removed: lines.filter((l) => l.kind === \"removed\").length,\n };\n}\n\nexport function largestLineNumber(lines: readonly DiffLine[]): number {\n let largest = 1;\n for (const l of lines) largest = Math.max(largest, l.oldNumber ?? 0, l.newNumber ?? 0);\n return largest;\n}\n\nexport function unifiedDiff(lines: readonly DiffLine[]): string {\n return lines.map((l) => `${l.kind === \"added\" ? \"+\" : l.kind === \"removed\" ? \"-\" : \" \"} ${l.text}`).join(\"\\n\");\n}\n\nexport type DiffRow = { type: \"line\"; line: DiffLine; index: number } | { type: \"fold\"; from: number; to: number };\n\nexport function foldUnchanged(lines: readonly DiffLine[], context: number, open: ReadonlySet<number>): DiffRow[] {\n const near = Array.from({ length: lines.length }, () => false);\n lines.forEach((l, k) => {\n if (l.kind === \"same\") return;\n for (let d = Math.max(0, k - context); d <= Math.min(lines.length - 1, k + context); d++) near[d] = true;\n });\n const rows: DiffRow[] = [];\n let k = 0;\n while (k < lines.length) {\n if (near[k] || lines[k]?.kind !== \"same\") {\n rows.push({ type: \"line\", line: lines[k] as DiffLine, index: k });\n k++;\n continue;\n }\n let end = k;\n while (end < lines.length && !near[end]) end++;\n if (end - k < 2 || open.has(k)) for (let m = k; m < end; m++) rows.push({ type: \"line\", line: lines[m] as DiffLine, index: m });\n else rows.push({ type: \"fold\", from: k, to: end });\n k = end;\n }\n return rows;\n}\n","import { forwardRef, useEffect, useMemo, useRef, useState, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { UnfoldMoreIcon as __icon_UnfoldMoreIcon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { CopyButton } from \"../copy-button/copy-button.js\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { useScrollFadeX } from \"../../hooks/use-scroll-fade.js\";\nimport { highlight, type CodeLang, type CodeToken } from \"./highlighter.js\";\nimport { INDENT } from \"./indent.js\";\nimport { diffLines, diffStats, foldUnchanged, largestLineNumber, unifiedDiff, type DiffKind, type DiffLine } from \"./diff.js\";\n\nexport const KAESO_DIFF_VIEW_VARIANTS = {\n surface: {\n well: { classes: \"rounded-well bg-fill-1\" },\n plain: { classes: \"bg-transparent\" },\n },\n} as const;\nexport const KAESO_DIFF_VIEW_DEFAULT_VARIANTS = { surface: \"well\" } as const;\n\nconst NONE_OPEN: ReadonlySet<number> = new Set();\nconst LINE: Record<DiffKind, string> = { same: \"\", removed: \"bg-diff-removed\", added: \"bg-diff-added\" };\nconst WORD: Record<DiffKind, string> = { same: \"\", removed: \"bg-diff-removed-word\", added: \"bg-diff-added-word\" };\nconst MARK: Record<DiffKind, { sign: string; className: string }> = {\n same: { sign: \" \", className: \"\" },\n removed: { sign: \"−\", className: \"text-danger-text\" },\n added: { sign: \"+\", className: \"text-success-text\" },\n};\n\nexport interface DiffViewProps {\n before: string;\n after: string;\n lang?: CodeLang | undefined;\n title?: ReactNode | undefined;\n context?: number | undefined;\n lineNumbers?: boolean | undefined;\n surface?: keyof typeof KAESO_DIFF_VIEW_VARIANTS.surface | undefined;\n copy?: boolean | undefined;\n wrap?: boolean | undefined;\n className?: string | undefined;\n}\n\ninterface Segment {\n text: string;\n className: string;\n changed: boolean;\n}\n\nfunction segments(text: string, tokens: CodeToken[] | undefined, changes: readonly [number, number][] = []): Segment[] {\n const source = tokens?.length ? tokens : [{ content: text, className: \"\" }];\n const out: Segment[] = [];\n let at = 0;\n for (const token of source) {\n let start = 0;\n while (start < token.content.length) {\n const pos = at + start;\n const inside = changes.find(([s, e]) => pos >= s && pos < e);\n const next = inside ? inside[1] : Math.min(Infinity, ...changes.map(([s]) => s).filter((s) => s > pos));\n const cut = Math.min(token.content.length, next - at);\n out.push({ text: token.content.slice(start, cut), className: token.className, changed: !!inside });\n start = cut;\n }\n at += token.content.length;\n }\n return out;\n}\n\nfunction dropChars(parts: Segment[], n: number): Segment[] {\n let left = n;\n return parts.flatMap((p) => {\n if (left === 0) return [p];\n const cut = Math.min(left, p.text.length);\n left -= cut;\n return cut === p.text.length ? [] : [{ ...p, text: p.text.slice(cut) }];\n });\n}\n\nfunction Code({ parts, kind }: { parts: Segment[]; kind: DiffKind }) {\n const groups: Segment[][] = [];\n for (const part of parts) {\n const last = groups[groups.length - 1];\n if (last && last[0]?.changed === part.changed) last.push(part);\n else groups.push([part]);\n }\n return (\n <>\n {groups.map((group, g) => {\n const spans = group.map((p, k) => (\n <span key={k} className={(group[0]?.changed ? p.className.replace(/text-fg-(tertiary|secondary)/, \"text-fg\") : p.className) || undefined}>\n {p.text}\n </span>\n ));\n return group[0]?.changed ? (\n <span key={g} data-diff-change=\"\" className={cn(\"rounded-cell\", WORD[kind])}>\n {spans}\n </span>\n ) : (\n spans\n );\n })}\n </>\n );\n}\n\nfunction numberWidth(count: number): string {\n const digits = String(count).length;\n return digits <= 2 ? \"w-16\" : digits === 3 ? \"w-24\" : digits === 4 ? \"w-32\" : \"w-40\";\n}\n\nexport const DiffView = /* @__PURE__ */ forwardRef<HTMLDivElement, DiffViewProps>(function DiffView(\n { before, after, lang = \"text\", title, context = 3, lineNumbers, surface = \"well\", copy = true, wrap = false, className },\n ref,\n) {\n const t = useUiText();\n const lines = useMemo(() => diffLines(before, after), [before, after]);\n const stats = useMemo(() => diffStats(lines), [lines]);\n const [tokens, setTokens] = useState<{ before: string; after: string; lang: CodeLang; old: CodeToken[][] | null; new: CodeToken[][] | null } | null>(null);\n useEffect(() => {\n let alive = true;\n Promise.all([highlight(before.replace(/\\n$/, \"\"), lang), highlight(after.replace(/\\n$/, \"\"), lang)])\n .then(([o, n]) => alive && setTokens({ before, after, lang, old: o, new: n }))\n .catch(() => undefined);\n return () => {\n alive = false;\n };\n }, [before, after, lang]);\n const current = tokens && tokens.before === before && tokens.after === after && tokens.lang === lang ? tokens : null;\n const [open, setOpen] = useState<{ lines: DiffLine[]; at: ReadonlySet<number> }>({ lines, at: new Set() });\n const opened = open.lines === lines ? open.at : NONE_OPEN;\n const rows = useMemo(() => foldUnchanged(lines, context, opened), [lines, context, opened]);\n const scroller = useRef<HTMLDivElement | null>(null);\n useScrollFadeX(scroller, \"code\");\n const unchanged = stats.added === 0 && stats.removed === 0;\n const width = lineNumbers ? numberWidth(largestLineNumber(lines)) : \"\";\n\n const lineTokens = (line: DiffLine) => (line.kind === \"added\" ? current?.new?.[(line.newNumber ?? 0) - 1] : current?.old?.[(line.oldNumber ?? 0) - 1]);\n\n return (\n <div ref={ref} className={cn(\"relative min-w-0\", KAESO_DIFF_VIEW_VARIANTS.surface[surface].classes, className)}>\n <div className=\"flex h-44 items-center gap-4 px-8 hairline-b\">\n {title && <span className=\"min-w-0 truncate px-8 mono text-small text-fg-secondary\">{title}</span>}\n <span className=\"ml-auto flex shrink-0 items-center gap-8 px-8 mono text-small tabular\">\n {unchanged ? (\n <span className=\"text-fg-secondary\">{t(\"diffView.noChanges\", \"No changes\")}</span>\n ) : (\n <>\n {stats.added > 0 && (\n <span aria-hidden=\"true\" className=\"text-success-text\">\n +{stats.added}\n </span>\n )}\n {stats.removed > 0 && (\n <span aria-hidden=\"true\" className=\"text-danger-text\">\n −{stats.removed}\n </span>\n )}\n <span className=\"sr-only\">\n {t(\"diffView.summary\", \"{added, plural, one {# line added} other {# lines added}}, {removed, plural, one {# removed} other {# removed}}\", {\n added: stats.added,\n removed: stats.removed,\n })}\n </span>\n </>\n )}\n </span>\n {copy && <CopyButton value={unifiedDiff(lines)} label={t(\"diffView.copy\", \"Copy diff\")} />}\n </div>\n <div\n ref={scroller}\n tabIndex={0}\n role=\"region\"\n aria-label={typeof title === \"string\" ? title : t(\"diffView.label\", \"Changes\")}\n className=\"relative overflow-x-auto py-8 scrollbar-quiet scroll-fade-x focus-ring-inset\"\n >\n <pre className=\"mono text-small text-fg\">\n <code className={cn(\"grid\", !wrap && \"min-w-max\")}>\n {rows.map((row) => {\n if (row.type === \"fold\") {\n const count = row.to - row.from;\n return (\n <button\n key={`fold-${row.from}`}\n type=\"button\"\n onClick={() => {\n scroller.current?.focus({ preventScroll: true });\n setOpen({ lines, at: new Set([...opened, row.from]) });\n }}\n className=\"flex h-32 cursor-pointer items-center bg-fill-2 font-sans text-small text-fg-secondary transition-control hover:text-fg focus-ring-inset\"\n >\n <span className=\"sticky left-0 flex items-center gap-8 px-16\">\n <Icon icon={__icon_UnfoldMoreIcon} size=\"xs\" />\n {t(\"diffView.showUnchanged\", \"{count, plural, one {Show # unchanged line} other {Show # unchanged lines}}\", { count })}\n </span>\n </button>\n );\n }\n const { line } = row;\n const mark = MARK[line.kind];\n const indent = wrap ? (INDENT.exec(line.text)?.[0] ?? \"\") : \"\";\n const parts = dropChars(segments(line.text, lineTokens(line), line.changes), indent.length);\n return (\n <span key={row.index} data-diff={line.kind} className={cn(\"flex leading-code\", LINE[line.kind])}>\n {lineNumbers && (\n <>\n <span aria-hidden=\"true\" className={cn(\"ml-8 shrink-0 text-right text-fg-tertiary select-none tabular\", width)}>\n {line.oldNumber && line.kind !== \"added\" ? line.oldNumber : \"\"}\n </span>\n <span aria-hidden=\"true\" className={cn(\"ml-8 shrink-0 text-right text-fg-tertiary select-none tabular\", width)}>\n {line.newNumber && line.kind !== \"removed\" ? line.newNumber : \"\"}\n </span>\n </>\n )}\n <span aria-hidden=\"true\" className={cn(\"w-32 shrink-0 text-center select-none\", mark.className)}>\n {mark.sign}\n </span>\n {line.kind !== \"same\" && (\n <span className=\"sr-only\">{line.kind === \"added\" ? t(\"diffView.added\", \"Added\") : t(\"diffView.removed\", \"Removed\")} </span>\n )}\n {indent && <span className=\"shrink-0 whitespace-pre\">{indent}</span>}\n <span className={cn(\"min-w-0 pr-16\", wrap && \"pl-16 -indent-16 whitespace-pre-wrap wrap-anywhere\")}>\n {parts.length ? <Code parts={parts} kind={line.kind} /> : \" \"}\n </span>\n </span>\n );\n })}\n </code>\n </pre>\n </div>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") DiffView.displayName = \"DiffView\";\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-tqj0uhBL.js","names":["cn","KAESO_CODE_VARIANTS","KAESO_CODE_DEFAULT_VARIANTS","Code","props","oneWord","children","flow","shape","className"],"sources":["../../src/components/code/code.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_CODE_VARIANTS = {\n shape: {\n auto: { classes: \"\" },\n pill: { classes: \"rounded-pill\" },\n rounded: { classes: \"rounded-code\" },\n },\n flow: {\n box: { classes: \"inline-block\" },\n text: {\n classes: \"inline box-decoration-clone\",\n },\n cell: {\n classes: \"inline\",\n },\n },\n} as const;\nexport const KAESO_CODE_DEFAULT_VARIANTS = { shape: \"auto\", flow: \"box\" } as const;\n\nexport interface CodeProps extends HTMLAttributes<HTMLElement> {\n shape?: keyof typeof KAESO_CODE_VARIANTS.shape | undefined;\n flow?: keyof typeof KAESO_CODE_VARIANTS.flow | undefined;\n}\n\nexport const Code = /* @__PURE__ */ forwardRef<HTMLElement, CodeProps>(function Code({ shape = \"auto\", flow = \"box\", className, children, ...props }, ref) {\n const oneWord = typeof children === \"string\" && !/\\s/.test(children);\n return (\n <code\n ref={ref}\n className={cn(\n \"mono bg-fill-1 px-4 py-2 align-baseline text-small leading-none text-fg\",\n KAESO_CODE_VARIANTS.flow[flow].classes,\n shape === \"auto\" ? (oneWord ? \"rounded-pill\" : \"rounded-code\") : KAESO_CODE_VARIANTS.shape[shape].classes,\n className,\n )}\n {...props}\n >\n {children}\n </code>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Code.displayName = \"Code\";\n"],"mappings":";;;;;AAGA,IAAaC,IAAsB;CACjC,OAAO;EACL,MAAM,EAAE,SAAS,GAAG;EACpB,MAAM,EAAE,SAAS,eAAe;EAChC,SAAS,EAAE,SAAS,eAAe;CACrC;CACA,MAAM;EACJ,KAAK,EAAE,SAAS,eAAe;EAC/B,MAAM,EACJ,SAAS,8BACX;EACA,MAAM,EACJ,SAAS,SACX;CACF;AACF,GACaC,IAA8B;CAAE,OAAO;CAAQ,MAAM;AAAM,GAO3DC,IAAuB,kBAAmC,SAAc,EAAE,WAAQ,QAAQ,UAAO,OAAO,cAAW,aAAU,GAAGC,KAAS,GAAK;CACzJ,IAAMC,IAAU,OAAOC,KAAa,YAAY,CAAC,KAAK,KAAKA,CAAQ;CACnE,OACE,kBAAC,QAAD;EACO;EACL,WAAWN,EACT,2EACAC,EAAoB,KAAKM,EAAK,CAAC,SAC/BC,MAAU,SAAUH,IAAU,iBAAiB,iBAAkBJ,EAAoB,MAAMO,EAAM,CAAC,SAClGC,CACF;EACA,GAAIL;EAEH;CACG,CAAA;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc"}
@@ -1,87 +0,0 @@
1
- "use client";
2
- import { t as e } from "./cn-Dj6sRgkF.js";
3
- import { t } from "./icon-D7ja-_Yk.js";
4
- import { forwardRef as n } from "react";
5
- import { jsx as r, jsxs as i } from "react/jsx-runtime";
6
- import { ArrowDown01Icon as a, ArrowRight01Icon as o } from "@hugeicons/core-free-icons";
7
- import { Collapsible as s } from "@base-ui/react/collapsible";
8
- import { Accordion as c } from "@base-ui/react/accordion";
9
- //#region src/components/collapsible/collapsible.tsx
10
- var l = { state: {
11
- closed: { classes: "" },
12
- open: { classes: "group-data-panel-open/dt:rotate-90" }
13
- } }, u = { state: "closed" }, d = "group/dt flex min-h-40 w-full cursor-pointer items-center gap-8 rounded-item px-12 text-left text-body font-medium text-fg transition-control hover:bg-fill-1 focus-ring-inset", f = /* @__PURE__ */ n(function({ title: n, children: a, open: c, defaultOpen: u, onOpenChange: d, hint: f, className: p }, m) {
14
- return /* @__PURE__ */ i(s.Root, {
15
- ref: m,
16
- ...c === void 0 ? {} : { open: c },
17
- ...u === void 0 ? {} : { defaultOpen: u },
18
- ...d ? { onOpenChange: (e) => d(e) } : {},
19
- className: e("flex flex-col", p),
20
- children: [/* @__PURE__ */ i(s.Trigger, {
21
- className: "group/dt flex min-h-40 w-full cursor-pointer items-center gap-8 rounded-item text-left text-body font-medium text-fg focus-ring",
22
- children: [
23
- /* @__PURE__ */ r(t, {
24
- icon: o,
25
- size: "sm",
26
- className: e("text-fg-tertiary transition-transform duration-180 ease-overlay group-hover/dt:text-fg", l.state.open.classes)
27
- }),
28
- /* @__PURE__ */ r("span", {
29
- className: "min-w-0 flex-1",
30
- children: n
31
- }),
32
- f && /* @__PURE__ */ r("span", {
33
- className: "text-small font-regular text-fg-secondary transition-control group-hover/dt:text-fg",
34
- children: f
35
- })
36
- ]
37
- }), /* @__PURE__ */ r(s.Panel, {
38
- className: "collapse-motion",
39
- children: /* @__PURE__ */ r("div", {
40
- className: "pt-4 pb-12 pl-24",
41
- children: a
42
- })
43
- })]
44
- });
45
- });
46
- process.env.NODE_ENV !== "production" && (f.displayName = "Collapsible");
47
- var p = /* @__PURE__ */ n(function({ items: n, multiple: o = !1, defaultValue: s, className: l }, u) {
48
- return /* @__PURE__ */ r(c.Root, {
49
- ref: u,
50
- ...o ? { multiple: !0 } : {},
51
- ...s ? { defaultValue: s } : {},
52
- className: e("flex flex-col", l),
53
- children: n.map((n) => /* @__PURE__ */ i(c.Item, {
54
- value: n.value,
55
- className: "hairline-b",
56
- children: [/* @__PURE__ */ r(c.Header, { children: /* @__PURE__ */ i(c.Trigger, {
57
- className: e(d, "min-h-48"),
58
- children: [
59
- /* @__PURE__ */ r("span", {
60
- className: "min-w-0 flex-1",
61
- children: n.title
62
- }),
63
- n.hint && /* @__PURE__ */ r("span", {
64
- className: "text-small font-regular text-fg-secondary",
65
- children: n.hint
66
- }),
67
- /* @__PURE__ */ r(t, {
68
- icon: a,
69
- size: "sm",
70
- className: "text-fg-tertiary transition-transform duration-180 ease-overlay group-data-panel-open/dt:rotate-180"
71
- })
72
- ]
73
- }) }), /* @__PURE__ */ r(c.Panel, {
74
- className: "collapse-motion",
75
- children: /* @__PURE__ */ r("div", {
76
- className: "px-12 pb-16 text-body text-fg-secondary",
77
- children: n.content
78
- })
79
- })]
80
- }, n.value))
81
- });
82
- });
83
- process.env.NODE_ENV !== "production" && (p.displayName = "Accordion");
84
- //#endregion
85
- export { l as i, f as n, u as r, p as t };
86
-
87
- //# sourceMappingURL=collapsible-CKrCX_T9.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collapsible-CKrCX_T9.js","names":["Collapsible","BaseCollapsible","__icon_ArrowRight01Icon","Accordion","BaseAccordion","__icon_ArrowDown01Icon","cn","KAESO_COLLAPSIBLE_VARIANTS","KAESO_COLLAPSIBLE_DEFAULT_VARIANTS","TRIGGER","Collapsible$1","Collapsible","open","defaultOpen","onOpenChange","o","className","Icon","ArrowRight01Icon","title","hint","Accordion$1","Accordion","multiple","defaultValue","items","it","ArrowDown01Icon"],"sources":["../../src/components/collapsible/collapsible.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { Collapsible as BaseCollapsible } from \"@base-ui/react/collapsible\";\nimport { Accordion as BaseAccordion } from \"@base-ui/react/accordion\";\nimport { cn } from \"../../utils/cn.js\";\nimport { ArrowRight01Icon as __icon_ArrowRight01Icon, ArrowDown01Icon as __icon_ArrowDown01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\n\nexport const KAESO_COLLAPSIBLE_VARIANTS = {\n state: {\n closed: { classes: \"\" },\n open: { classes: \"group-data-panel-open/dt:rotate-90\" },\n },\n} as const;\nexport const KAESO_COLLAPSIBLE_DEFAULT_VARIANTS = { state: \"closed\" } as const;\n\nconst TRIGGER =\n \"group/dt flex min-h-40 w-full cursor-pointer items-center gap-8 rounded-item px-12 text-left text-body font-medium text-fg transition-control hover:bg-fill-1 focus-ring-inset\";\n\nexport interface CollapsibleProps {\n title: ReactNode;\n children: ReactNode;\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n hint?: ReactNode | undefined;\n className?: string | undefined;\n}\n\nexport const Collapsible = /* @__PURE__ */ forwardRef<HTMLDivElement, CollapsibleProps>(function Collapsible(\n { title, children, open, defaultOpen, onOpenChange, hint, className },\n ref,\n) {\n return (\n <BaseCollapsible.Root\n ref={ref}\n {...(open !== undefined ? { open } : {})}\n {...(defaultOpen !== undefined ? { defaultOpen } : {})}\n {...(onOpenChange ? { onOpenChange: (o: boolean) => onOpenChange(o) } : {})}\n className={cn(\"flex flex-col\", className)}\n >\n <BaseCollapsible.Trigger className=\"group/dt flex min-h-40 w-full cursor-pointer items-center gap-8 rounded-item text-left text-body font-medium text-fg focus-ring\">\n <Icon\n icon={__icon_ArrowRight01Icon}\n size=\"sm\"\n className={cn(\n \"text-fg-tertiary transition-transform duration-180 ease-overlay group-hover/dt:text-fg\",\n KAESO_COLLAPSIBLE_VARIANTS.state.open.classes,\n )}\n />\n <span className=\"min-w-0 flex-1\">{title}</span>\n {hint && <span className=\"text-small font-regular text-fg-secondary transition-control group-hover/dt:text-fg\">{hint}</span>}\n </BaseCollapsible.Trigger>\n <BaseCollapsible.Panel className=\"collapse-motion\">\n <div className=\"pt-4 pb-12 pl-24\">{children}</div>\n </BaseCollapsible.Panel>\n </BaseCollapsible.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Collapsible.displayName = \"Collapsible\";\n\nexport interface AccordionItem {\n value: string;\n title: ReactNode;\n content: ReactNode;\n hint?: ReactNode | undefined;\n}\n\nexport interface AccordionProps {\n items: AccordionItem[];\n multiple?: boolean | undefined;\n defaultValue?: string[] | undefined;\n className?: string | undefined;\n}\n\nexport const Accordion = /* @__PURE__ */ forwardRef<HTMLDivElement, AccordionProps>(function Accordion({ items, multiple = false, defaultValue, className }, ref) {\n return (\n <BaseAccordion.Root\n ref={ref}\n {...(multiple ? { multiple: true } : {})}\n {...(defaultValue ? { defaultValue } : {})}\n className={cn(\"flex flex-col\", className)}\n >\n {items.map((it) => (\n <BaseAccordion.Item key={it.value} value={it.value} className=\"hairline-b\">\n <BaseAccordion.Header>\n <BaseAccordion.Trigger className={cn(TRIGGER, \"min-h-48\")}>\n <span className=\"min-w-0 flex-1\">{it.title}</span>\n {it.hint && <span className=\"text-small font-regular text-fg-secondary\">{it.hint}</span>}\n <Icon\n icon={__icon_ArrowDown01Icon}\n size=\"sm\"\n className=\"text-fg-tertiary transition-transform duration-180 ease-overlay group-data-panel-open/dt:rotate-180\"\n />\n </BaseAccordion.Trigger>\n </BaseAccordion.Header>\n <BaseAccordion.Panel className=\"collapse-motion\">\n <div className=\"px-12 pb-16 text-body text-fg-secondary\">{it.content}</div>\n </BaseAccordion.Panel>\n </BaseAccordion.Item>\n ))}\n </BaseAccordion.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Accordion.displayName = \"Accordion\";\n"],"mappings":";;;;;;;;;AAOA,IAAaO,IAA6B,EACxC,OAAO;CACL,QAAQ,EAAE,SAAS,GAAG;CACtB,MAAM,EAAE,SAAS,qCAAqC;AACxD,EACF,GACaC,IAAqC,EAAE,OAAO,SAAS,GAE9DC,IACJ,kLAYWT,IAA8B,kBAA6C,SACtF,EAAE,UAAO,aAAU,SAAM,gBAAa,iBAAc,SAAM,gBAC1D,GACA;CACA,OACE,kBAACC,EAAgB,MAAjB;EACO;EACL,GAAKW,MAAS,KAAA,IAAuB,CAAC,IAAZ,EAAE,QAAK;EACjC,GAAKC,MAAgB,KAAA,IAA8B,CAAC,IAAnB,EAAE,eAAY;EAC/C,GAAKC,IAAe,EAAE,eAAe,MAAeA,EAAaC,CAAC,EAAE,IAAI,CAAC;EACzE,WAAWT,EAAG,iBAAiBU,CAAS;EAL1C,UAAA,CAOE,kBAACf,EAAgB,SAAjB;GAAyB,WAAU;GAAnC,UAAA;IACE,kBAACgB,GAAD;KACE,MAAMf;KACN,MAAK;KACL,WAAWI,EACT,0FACAC,EAA2B,MAAM,KAAK,OACxC;IACD,CAAA;IACD,kBAAC,QAAD;KAAM,WAAU;KAAkB,UAAAY;IAAY,CAAA;IAC7CC,KAAQ,kBAAC,QAAD;KAAM,WAAU;KAAuF,UAAAA;IAAW,CAAA;GACpG;EACzB,CAAA,GAAA,kBAACnB,EAAgB,OAAjB;GAAuB,WAAU;GAC/B,UAAA,kBAAC,OAAD;IAAK,WAAU;IAAoB;GAAc,CAAA;EAC5B,CAAA,CACH;;AAE1B,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc;AAgBrE,IAAaE,IAA4B,kBAA2C,SAAmB,EAAE,UAAO,cAAW,IAAO,iBAAc,gBAAa,GAAK;CAChK,OACE,kBAACC,EAAc,MAAf;EACO;EACL,GAAKmB,IAAW,EAAE,UAAU,GAAK,IAAI,CAAC;EACtC,GAAKC,IAAe,EAAE,gBAAa,IAAI,CAAC;EACxC,WAAWlB,EAAG,iBAAiBU,CAAS;EAEvC,UAAAS,EAAM,KAAK,MACV,kBAACrB,EAAc,MAAf;GAAmC,OAAOsB,EAAG;GAAO,WAAU;GAA9D,UAAA,CACE,kBAACtB,EAAc,QAAf,EAAA,UACE,kBAACA,EAAc,SAAf;IAAuB,WAAWE,EAAGG,GAAS,UAAU;IAAxD,UAAA;KACE,kBAAC,QAAD;MAAM,WAAU;MAAkB,UAAAiB,EAAG;KAAY,CAAA;KAChDA,EAAG,QAAQ,kBAAC,QAAD;MAAM,WAAU;MAA6C,UAAAA,EAAG;KAAW,CAAA;KACvF,kBAACT,GAAD;MACE,MAAMZ;MACN,MAAK;MACL,WAAU;KACX,CAAA;IACoB;GACH,CAAA,EAAA,CAAA,GACtB,kBAACD,EAAc,OAAf;IAAqB,WAAU;IAC7B,UAAA,kBAAC,OAAD;KAAK,WAAU;KAA2C,UAAAsB,EAAG;IAAa,CAAA;GACvD,CAAA,CACH;EAfK,GAAAA,EAAG,KAeR,CACrB;CACiB,CAAA;AAExB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAU,cAAc"}