@logicplanes/kaeso-ui 0.4.3 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/ai/component-guides.md +279 -98
  2. package/ai/component-registry.json +352 -236
  3. package/ai/component-registry.md +241 -219
  4. package/ai/icons.md +2 -2
  5. package/ai/tokens.md +18 -14
  6. package/dist/blocks/delete-resource.js +3 -3
  7. package/dist/blocks/delete-resource.js.map +1 -1
  8. package/dist/blocks/pages.js +47 -42
  9. package/dist/blocks/pages.js.map +1 -1
  10. package/dist/blocks/resource-list.js +68 -55
  11. package/dist/blocks/resource-list.js.map +1 -1
  12. package/dist/chunks/agent-avatar-DHieggHK.js +188 -0
  13. package/dist/chunks/agent-avatar-DHieggHK.js.map +1 -0
  14. package/dist/chunks/app-frame-DysOel2X.js +232 -0
  15. package/dist/chunks/app-frame-DysOel2X.js.map +1 -0
  16. package/dist/chunks/arrow-focus-B0KdRFX8.js +20 -0
  17. package/dist/chunks/arrow-focus-B0KdRFX8.js.map +1 -0
  18. package/dist/chunks/avatar-CYNMK7uY.js +110 -0
  19. package/dist/chunks/avatar-CYNMK7uY.js.map +1 -0
  20. package/dist/chunks/badge-C0GC3B9X.js +27 -0
  21. package/dist/chunks/badge-C0GC3B9X.js.map +1 -0
  22. package/dist/chunks/banner-B3DGLTBu.js +88 -0
  23. package/dist/chunks/banner-B3DGLTBu.js.map +1 -0
  24. package/dist/chunks/button-IblhXUyZ.js +202 -0
  25. package/dist/chunks/button-IblhXUyZ.js.map +1 -0
  26. package/dist/chunks/{calendar-BWaf2MXc.js → calendar-Dc6_dl0f.js} +4 -4
  27. package/dist/chunks/calendar-Dc6_dl0f.js.map +1 -0
  28. package/dist/chunks/checkbox-9tbimmF3.js +141 -0
  29. package/dist/chunks/checkbox-9tbimmF3.js.map +1 -0
  30. package/dist/chunks/{cn-Dj6sRgkF.js → cn-BjnOAUrA.js} +45 -4
  31. package/dist/chunks/cn-BjnOAUrA.js.map +1 -0
  32. package/dist/chunks/code-block-64e-Cy1S.js +346 -0
  33. package/dist/chunks/code-block-64e-Cy1S.js.map +1 -0
  34. package/dist/chunks/code-block-KIvuE8jg.js +352 -0
  35. package/dist/chunks/code-block-KIvuE8jg.js.map +1 -0
  36. package/dist/chunks/{code-tqj0uhBL.js → code-xqjww4Pv.js} +5 -6
  37. package/dist/chunks/code-xqjww4Pv.js.map +1 -0
  38. package/dist/chunks/combobox-DkcjkWc6.js +352 -0
  39. package/dist/chunks/combobox-DkcjkWc6.js.map +1 -0
  40. package/dist/chunks/command-list-CypqsC4T.js +456 -0
  41. package/dist/chunks/command-list-CypqsC4T.js.map +1 -0
  42. package/dist/chunks/{copy-button-FJvPJn72.js → copy-button-CwU8t_9_.js} +22 -15
  43. package/dist/chunks/copy-button-CwU8t_9_.js.map +1 -0
  44. package/dist/chunks/core-CmK-8ObW.js +505 -0
  45. package/dist/chunks/core-CmK-8ObW.js.map +1 -0
  46. package/dist/chunks/data-table-CqY8_6IS.js +581 -0
  47. package/dist/chunks/data-table-CqY8_6IS.js.map +1 -0
  48. package/dist/chunks/date-popup-DAnjptFt.js +58 -0
  49. package/dist/chunks/date-popup-DAnjptFt.js.map +1 -0
  50. package/dist/chunks/{de-CPXJh9cq.js → de-CqC4aSIV.js} +81 -40
  51. package/dist/chunks/de-CqC4aSIV.js.map +1 -0
  52. package/dist/chunks/{dialog-Cg9A_6SF.js → dialog-2zb6ClNR.js} +156 -134
  53. package/dist/chunks/dialog-2zb6ClNR.js.map +1 -0
  54. package/dist/chunks/disclosure-BtYRTDO3.js +22 -0
  55. package/dist/chunks/disclosure-BtYRTDO3.js.map +1 -0
  56. package/dist/chunks/domain-obd_w9xk.js +28 -0
  57. package/dist/chunks/domain-obd_w9xk.js.map +1 -0
  58. package/dist/chunks/{empty-DvhyMXQq.js → empty-BpiUgGzm.js} +2 -2
  59. package/dist/chunks/{empty-DvhyMXQq.js.map → empty-BpiUgGzm.js.map} +1 -1
  60. package/dist/chunks/{field-TviMvYa2.js → field-D7m-yl-D.js} +37 -34
  61. package/dist/chunks/field-D7m-yl-D.js.map +1 -0
  62. package/dist/chunks/{icon-D7ja-_Yk.js → icon-CBzOwqrX.js} +7 -6
  63. package/dist/chunks/{icon-D7ja-_Yk.js.map → icon-CBzOwqrX.js.map} +1 -1
  64. package/dist/chunks/icon-CPJWE2N-.js +95 -0
  65. package/dist/chunks/{icon-DVooQfk4.js.map → icon-CPJWE2N-.js.map} +1 -1
  66. package/dist/chunks/{icon-button-CrdF_eMG.js → icon-button-Dfwpvmav.js} +7 -6
  67. package/dist/chunks/icon-button-Dfwpvmav.js.map +1 -0
  68. package/dist/chunks/{identity-BmhQ6BQ-.js → identity-3Foi5F8w.js} +7 -7
  69. package/dist/chunks/{identity-BmhQ6BQ-.js.map → identity-3Foi5F8w.js.map} +1 -1
  70. package/dist/chunks/{input-2VJuj_M4.js → input-Bo5-UZg2.js} +15 -9
  71. package/dist/chunks/input-Bo5-UZg2.js.map +1 -0
  72. package/dist/chunks/{input-group-DQ_4DoXg.js → input-group-jPcK9T_a.js} +42 -29
  73. package/dist/chunks/input-group-jPcK9T_a.js.map +1 -0
  74. package/dist/chunks/iso-field-DoqHBg8n.js +52 -0
  75. package/dist/chunks/iso-field-DoqHBg8n.js.map +1 -0
  76. package/dist/chunks/json-view-DZ2nL2Ir.js +253 -0
  77. package/dist/chunks/json-view-DZ2nL2Ir.js.map +1 -0
  78. package/dist/chunks/{kbd-BF1vKXJf.js → kbd-8A0ML_up.js} +30 -28
  79. package/dist/chunks/kbd-8A0ML_up.js.map +1 -0
  80. package/dist/chunks/label-DW24Aj0Z.js +26 -0
  81. package/dist/chunks/label-DW24Aj0Z.js.map +1 -0
  82. package/dist/chunks/{link-KWI7PevW.js → link-CMjkcLQK.js} +14 -14
  83. package/dist/chunks/link-CMjkcLQK.js.map +1 -0
  84. package/dist/chunks/list-B4G-sWwV.js +540 -0
  85. package/dist/chunks/list-B4G-sWwV.js.map +1 -0
  86. package/dist/chunks/{loader-DCfPndXa.js → loader-zo8CCIGJ.js} +2 -2
  87. package/dist/chunks/{loader-DCfPndXa.js.map → loader-zo8CCIGJ.js.map} +1 -1
  88. package/dist/chunks/markdown-C565aBR7.js +338 -0
  89. package/dist/chunks/markdown-C565aBR7.js.map +1 -0
  90. package/dist/chunks/menu-Clvv6ftq.js +485 -0
  91. package/dist/chunks/menu-Clvv6ftq.js.map +1 -0
  92. package/dist/chunks/merge-refs-BN1FyQt9.js +20 -0
  93. package/dist/chunks/merge-refs-BN1FyQt9.js.map +1 -0
  94. package/dist/chunks/meter-CASMHlxl.js +100 -0
  95. package/dist/chunks/meter-CASMHlxl.js.map +1 -0
  96. package/dist/chunks/nav-sheet-Dt6JSvzX.js +67 -0
  97. package/dist/chunks/nav-sheet-Dt6JSvzX.js.map +1 -0
  98. package/dist/chunks/{nav-wordmark-_pjheAsZ.js → nav-wordmark-J4pB_vjr.js} +4 -8
  99. package/dist/chunks/nav-wordmark-J4pB_vjr.js.map +1 -0
  100. package/dist/chunks/page-header-kS5tdmvb.js +45 -0
  101. package/dist/chunks/page-header-kS5tdmvb.js.map +1 -0
  102. package/dist/chunks/pagination-D7fAm8qg.js +147 -0
  103. package/dist/chunks/pagination-D7fAm8qg.js.map +1 -0
  104. package/dist/chunks/picker-popover-1FHb1LQG.js +119 -0
  105. package/dist/chunks/picker-popover-1FHb1LQG.js.map +1 -0
  106. package/dist/chunks/popover-Bl5QYqnh.js +51 -0
  107. package/dist/chunks/popover-Bl5QYqnh.js.map +1 -0
  108. package/dist/chunks/{portal-context-BBbzDKmY.js → portal-context-CTatR2Z8.js} +14 -4
  109. package/dist/chunks/portal-context-CTatR2Z8.js.map +1 -0
  110. package/dist/chunks/{radio-CDDFpdtL.js → radio-C6GtzF_t.js} +38 -23
  111. package/dist/chunks/radio-C6GtzF_t.js.map +1 -0
  112. package/dist/chunks/range-popup-lGiZsG3s.js +160 -0
  113. package/dist/chunks/range-popup-lGiZsG3s.js.map +1 -0
  114. package/dist/chunks/reasoning-frame-C3HdQRRS.js +51 -0
  115. package/dist/chunks/reasoning-frame-C3HdQRRS.js.map +1 -0
  116. package/dist/chunks/release-art-ChiT4T2S.js +582 -0
  117. package/dist/chunks/release-art-ChiT4T2S.js.map +1 -0
  118. package/dist/chunks/rights-B68ocZuq.js +312 -0
  119. package/dist/chunks/rights-B68ocZuq.js.map +1 -0
  120. package/dist/chunks/{scroll-area-D8MD7Vpo.js → scroll-area-_Ljh4-bG.js} +11 -6
  121. package/dist/chunks/scroll-area-_Ljh4-bG.js.map +1 -0
  122. package/dist/chunks/section-CFBYhsUi.js +77 -0
  123. package/dist/chunks/section-CFBYhsUi.js.map +1 -0
  124. package/dist/chunks/section-header-DU1Q4Tdf.js +28 -0
  125. package/dist/chunks/section-header-DU1Q4Tdf.js.map +1 -0
  126. package/dist/chunks/segmented-D9i1avik.js +119 -0
  127. package/dist/chunks/segmented-D9i1avik.js.map +1 -0
  128. package/dist/chunks/select-BqjmQOqx.js +222 -0
  129. package/dist/chunks/select-BqjmQOqx.js.map +1 -0
  130. package/dist/chunks/{separator-D7TzNHmX.js → separator-BNWf6BBj.js} +13 -8
  131. package/dist/chunks/separator-BNWf6BBj.js.map +1 -0
  132. package/dist/chunks/sidebar-Dq7oGOje.js +664 -0
  133. package/dist/chunks/sidebar-Dq7oGOje.js.map +1 -0
  134. package/dist/chunks/{sidebar-menu-BN3jkTlK.js → sidebar-menu-QSSNu1jJ.js} +2 -2
  135. package/dist/chunks/{sidebar-menu-BN3jkTlK.js.map → sidebar-menu-QSSNu1jJ.js.map} +1 -1
  136. package/dist/chunks/{skeleton-Dcz57Zyp.js → skeleton-D-qk3mes.js} +3 -3
  137. package/dist/chunks/skeleton-D-qk3mes.js.map +1 -0
  138. package/dist/chunks/slider-CcE8GtuV.js +58 -0
  139. package/dist/chunks/slider-CcE8GtuV.js.map +1 -0
  140. package/dist/chunks/{status-dot-QJTF0Yv4.js → status-dot-CP6runiC.js} +4 -4
  141. package/dist/chunks/{status-dot-QJTF0Yv4.js.map → status-dot-CP6runiC.js.map} +1 -1
  142. package/dist/chunks/{styles-CVJU9t9v.js → styles-hkFkoBbi.js} +2 -2
  143. package/dist/chunks/{styles-CVJU9t9v.js.map → styles-hkFkoBbi.js.map} +1 -1
  144. package/dist/chunks/{swap-text-Dr0Irxz6.js → swap-text-SlUjrTlG.js} +3 -3
  145. package/dist/chunks/swap-text-SlUjrTlG.js.map +1 -0
  146. package/dist/chunks/switch-ngywMQdl.js +76 -0
  147. package/dist/chunks/switch-ngywMQdl.js.map +1 -0
  148. package/dist/chunks/table-CTK5E0J7.js +102 -0
  149. package/dist/chunks/table-CTK5E0J7.js.map +1 -0
  150. package/dist/chunks/tag-BGr6lTSV.js +100 -0
  151. package/dist/chunks/tag-BGr6lTSV.js.map +1 -0
  152. package/dist/chunks/{text-CIXH8rmT.js → text-DkKdTVUf.js} +9 -9
  153. package/dist/chunks/text-DkKdTVUf.js.map +1 -0
  154. package/dist/chunks/{textarea--4FRL3Pb.js → textarea-CO0HP6fK.js} +47 -36
  155. package/dist/chunks/textarea-CO0HP6fK.js.map +1 -0
  156. package/dist/chunks/timeseries-Ck-q0wWn.js +381 -0
  157. package/dist/chunks/timeseries-Ck-q0wWn.js.map +1 -0
  158. package/dist/chunks/toolbar-u0Gm7Q7-.js +61 -0
  159. package/dist/chunks/toolbar-u0Gm7Q7-.js.map +1 -0
  160. package/dist/chunks/tooltip-Tkm-urbi.js +202 -0
  161. package/dist/chunks/tooltip-Tkm-urbi.js.map +1 -0
  162. package/dist/chunks/tooltip-root-BC_RNNiP.js +70 -0
  163. package/dist/chunks/tooltip-root-BC_RNNiP.js.map +1 -0
  164. package/dist/chunks/truncated-d1afmUJT.js +33 -0
  165. package/dist/chunks/truncated-d1afmUJT.js.map +1 -0
  166. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js +28 -0
  167. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js.map +1 -0
  168. package/dist/chunks/use-hydrating-COtYVRo4.js +8 -0
  169. package/dist/chunks/use-hydrating-COtYVRo4.js.map +1 -0
  170. package/dist/chunks/use-scroll-fade-uc8mWSDX.js +30 -0
  171. package/dist/chunks/use-scroll-fade-uc8mWSDX.js.map +1 -0
  172. package/dist/chunks/{zh-CN-29X4CDLE.js → zh-CN-BlpsT6d_.js} +80 -39
  173. package/dist/chunks/zh-CN-BlpsT6d_.js.map +1 -0
  174. package/dist/components/agent-avatar.js +1 -1
  175. package/dist/components/app-frame.js +2 -2
  176. package/dist/components/avatar.js +1 -1
  177. package/dist/components/badge.js +1 -1
  178. package/dist/components/banner.js +1 -1
  179. package/dist/components/button-group.js +22 -22
  180. package/dist/components/button-group.js.map +1 -1
  181. package/dist/components/button.js +1 -1
  182. package/dist/components/calendar.js +1 -1
  183. package/dist/components/charts/bar.js +235 -160
  184. package/dist/components/charts/bar.js.map +1 -1
  185. package/dist/components/charts/donut.js +144 -99
  186. package/dist/components/charts/donut.js.map +1 -1
  187. package/dist/components/charts/gauge.js +61 -49
  188. package/dist/components/charts/gauge.js.map +1 -1
  189. package/dist/components/charts/heatmap.js +179 -70
  190. package/dist/components/charts/heatmap.js.map +1 -1
  191. package/dist/components/charts/sankey.js +144 -77
  192. package/dist/components/charts/sankey.js.map +1 -1
  193. package/dist/components/charts/sparkline.js +54 -38
  194. package/dist/components/charts/sparkline.js.map +1 -1
  195. package/dist/components/charts/timeseries.js +1 -1
  196. package/dist/components/charts.js +2 -2
  197. package/dist/components/checkbox.js +1 -1
  198. package/dist/components/code-block.js +4 -3
  199. package/dist/components/code.js +1 -1
  200. package/dist/components/collapsible.js +77 -1
  201. package/dist/components/collapsible.js.map +1 -0
  202. package/dist/components/combobox.js +1 -1
  203. package/dist/components/command-list.js +2 -2
  204. package/dist/components/command-palette.js +89 -66
  205. package/dist/components/command-palette.js.map +1 -1
  206. package/dist/components/copy-button.js +1 -1
  207. package/dist/components/data-table.js +1 -459
  208. package/dist/components/date-picker.js +162 -151
  209. package/dist/components/date-picker.js.map +1 -1
  210. package/dist/components/dialog.js +74 -63
  211. package/dist/components/dialog.js.map +1 -1
  212. package/dist/components/display-options.js +76 -64
  213. package/dist/components/display-options.js.map +1 -1
  214. package/dist/components/empty.js +1 -1
  215. package/dist/components/field.js +1 -1
  216. package/dist/components/figure.js +2 -2
  217. package/dist/components/filter-chip.js +36 -27
  218. package/dist/components/filter-chip.js.map +1 -1
  219. package/dist/components/filter-row.js +4 -4
  220. package/dist/components/filter-row.js.map +1 -1
  221. package/dist/components/flow.js +94 -63
  222. package/dist/components/flow.js.map +1 -1
  223. package/dist/components/heading.js +1 -1
  224. package/dist/components/icon-button.js +1 -1
  225. package/dist/components/icon.js +2 -2
  226. package/dist/components/input.js +176 -98
  227. package/dist/components/input.js.map +1 -1
  228. package/dist/components/kaeso/conversation.js +51 -46
  229. package/dist/components/kaeso/conversation.js.map +1 -1
  230. package/dist/components/kaeso/identity.js +1 -1
  231. package/dist/components/kaeso/moments.js +23 -20
  232. package/dist/components/kaeso/moments.js.map +1 -1
  233. package/dist/components/kaeso/rights.js +1 -1
  234. package/dist/components/kaeso/usage.js +90 -74
  235. package/dist/components/kaeso/usage.js.map +1 -1
  236. package/dist/components/kaeso.js +200 -187
  237. package/dist/components/kaeso.js.map +1 -1
  238. package/dist/components/kbd.js +1 -1
  239. package/dist/components/key-value.js +32 -47
  240. package/dist/components/key-value.js.map +1 -1
  241. package/dist/components/label.js +1 -25
  242. package/dist/components/layout.js +2 -2
  243. package/dist/components/layout.js.map +1 -1
  244. package/dist/components/link.js +1 -1
  245. package/dist/components/list.js +1 -1
  246. package/dist/components/loader.js +11 -10
  247. package/dist/components/loader.js.map +1 -1
  248. package/dist/components/logo.js +2 -2
  249. package/dist/components/markdown.js +1 -1
  250. package/dist/components/menu.js +2 -2
  251. package/dist/components/meter.js +1 -1
  252. package/dist/components/page-header.js +1 -1
  253. package/dist/components/pagination.js +1 -1
  254. package/dist/components/playground.js +644 -529
  255. package/dist/components/playground.js.map +1 -1
  256. package/dist/components/popover.js +4 -4
  257. package/dist/components/popover.js.map +1 -1
  258. package/dist/components/portal.js +1 -1
  259. package/dist/components/qr-code.js +2 -2
  260. package/dist/components/qr-code.js.map +1 -1
  261. package/dist/components/radio.js +1 -1
  262. package/dist/components/release-art.js +1 -1
  263. package/dist/components/scroll-area.js +1 -1
  264. package/dist/components/section.js +1 -1
  265. package/dist/components/segmented.js +1 -1
  266. package/dist/components/select.js +1 -1
  267. package/dist/components/separator.js +1 -1
  268. package/dist/components/settings.js +39 -46
  269. package/dist/components/settings.js.map +1 -1
  270. package/dist/components/sheet.js +10 -9
  271. package/dist/components/sheet.js.map +1 -1
  272. package/dist/components/sidebar.js +1 -1
  273. package/dist/components/skeleton.js +1 -1
  274. package/dist/components/slider.js +1 -1
  275. package/dist/components/stat.js +98 -84
  276. package/dist/components/stat.js.map +1 -1
  277. package/dist/components/status-dot.js +1 -1
  278. package/dist/components/surface.js +1 -1
  279. package/dist/components/swap-text.js +1 -1
  280. package/dist/components/switch.js +1 -1
  281. package/dist/components/table.js +1 -1
  282. package/dist/components/tabs.js +73 -55
  283. package/dist/components/tabs.js.map +1 -1
  284. package/dist/components/tag.js +1 -1
  285. package/dist/components/text.js +1 -1
  286. package/dist/components/theme-image.js +1 -1
  287. package/dist/components/theme-menu.js +5 -2
  288. package/dist/components/theme-menu.js.map +1 -1
  289. package/dist/components/theme-select.js +1 -1
  290. package/dist/components/thumbnail.js +35 -24
  291. package/dist/components/thumbnail.js.map +1 -1
  292. package/dist/components/timeline.js +51 -35
  293. package/dist/components/timeline.js.map +1 -1
  294. package/dist/components/toast.js +76 -66
  295. package/dist/components/toast.js.map +1 -1
  296. package/dist/components/toc.js +14 -8
  297. package/dist/components/toc.js.map +1 -1
  298. package/dist/components/toolbar.js +1 -1
  299. package/dist/components/tooltip.js +1 -1
  300. package/dist/components/visually-hidden.js +1 -1
  301. package/dist/i18n-provider.js +1 -1
  302. package/dist/index.js +101 -101
  303. package/dist/kaeso.css +605 -67
  304. package/dist/styles.css +1 -1
  305. package/dist/tailwind.css +1 -1
  306. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -2
  307. package/dist/types/components/agent-avatar/agent-avatar.d.ts +24 -19
  308. package/dist/types/components/badge/badge.d.ts +3 -3
  309. package/dist/types/components/banner/banner.d.ts +3 -3
  310. package/dist/types/components/button/button.d.ts +2 -2
  311. package/dist/types/components/button-group/button-group.d.ts +1 -1
  312. package/dist/types/components/charts/domain.d.ts +11 -0
  313. package/dist/types/components/charts/marks.d.ts +1 -0
  314. package/dist/types/components/code/code.d.ts +3 -3
  315. package/dist/types/components/code-block/diff-view.d.ts +30 -0
  316. package/dist/types/components/code-block/diff.d.ts +26 -0
  317. package/dist/types/components/code-block/docs.d.ts +14 -0
  318. package/dist/types/components/code-block/index.d.ts +1 -0
  319. package/dist/types/components/code-block/json-view.d.ts +2 -1
  320. package/dist/types/components/code-block/numbers.d.ts +1 -0
  321. package/dist/types/components/collapsible/collapsible.d.ts +2 -2
  322. package/dist/types/components/collapsible/disclosure.d.ts +2 -0
  323. package/dist/types/components/data-table/data-table.d.ts +6 -5
  324. package/dist/types/components/data-table/docs.d.ts +1 -0
  325. package/dist/types/components/data-table/time-columns.d.ts +1 -0
  326. package/dist/types/components/date-picker/focus-day.d.ts +1 -0
  327. package/dist/types/components/date-picker/iso-field.d.ts +8 -1
  328. package/dist/types/components/dialog/dialog.d.ts +7 -7
  329. package/dist/types/components/field/field.d.ts +1 -1
  330. package/dist/types/components/flow/flow.d.ts +1 -1
  331. package/dist/types/components/icon-button/icon-button.d.ts +1 -1
  332. package/dist/types/components/input/input-group.d.ts +2 -0
  333. package/dist/types/components/input/number-input.d.ts +4 -4
  334. package/dist/types/components/input/otp-input.d.ts +3 -3
  335. package/dist/types/components/kaeso/client-button.d.ts +2 -1
  336. package/dist/types/components/kaeso/provider-picker.d.ts +1 -0
  337. package/dist/types/components/kaeso/rights.d.ts +1 -1
  338. package/dist/types/components/kaeso/role-picker.d.ts +1 -0
  339. package/dist/types/components/key-value/key-value.d.ts +2 -2
  340. package/dist/types/components/layout/layout.d.ts +2 -2
  341. package/dist/types/components/link/link.d.ts +4 -4
  342. package/dist/types/components/list/list.d.ts +2 -2
  343. package/dist/types/components/menu/menu.d.ts +2 -1
  344. package/dist/types/components/menu/styles.d.ts +3 -3
  345. package/dist/types/components/meter/meter.d.ts +3 -3
  346. package/dist/types/components/page-header/page-header.d.ts +1 -1
  347. package/dist/types/components/pagination/pagination.d.ts +2 -2
  348. package/dist/types/components/playground/prompt-suggestions.d.ts +1 -0
  349. package/dist/types/components/playground/reasoning-frame.d.ts +14 -0
  350. package/dist/types/components/playground/reasoning.d.ts +1 -0
  351. package/dist/types/components/popover/popover.d.ts +1 -1
  352. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  353. package/dist/types/components/section/section-header.d.ts +6 -0
  354. package/dist/types/components/segmented/segmented.d.ts +1 -0
  355. package/dist/types/components/select/select.d.ts +1 -1
  356. package/dist/types/components/sheet/sheet.d.ts +3 -3
  357. package/dist/types/components/sidebar/sidebar.d.ts +1 -0
  358. package/dist/types/components/slider/slider.d.ts +2 -2
  359. package/dist/types/components/stat/stat.d.ts +1 -1
  360. package/dist/types/components/tabs/tabs.d.ts +6 -4
  361. package/dist/types/components/text/truncated.d.ts +7 -0
  362. package/dist/types/components/timeline/timeline.d.ts +5 -5
  363. package/dist/types/components/toc/toc.d.ts +1 -1
  364. package/dist/types/components/toolbar/toolbar.d.ts +1 -1
  365. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  366. package/dist/types/components/tooltip/trigger-props.d.ts +1 -0
  367. package/dist/types/hooks/use-coarse-pointer.d.ts +1 -0
  368. package/dist/types/hooks/use-hydrating.d.ts +1 -0
  369. package/dist/types/icons/groups.d.ts +1 -1
  370. package/dist/types/icons/vocabulary.d.ts +5 -0
  371. package/dist/types/utils/arrow-focus.d.ts +4 -1
  372. package/dist/types/utils/cn.d.ts +33 -0
  373. package/dist/types/utils/portal-context.d.ts +7 -1
  374. package/dist/utils.js +2 -2
  375. package/foundations/accessibility.md +3 -2
  376. package/foundations/color.md +5 -1
  377. package/foundations/elevation.md +1 -0
  378. package/foundations/motion.md +1 -1
  379. package/foundations/shape.md +2 -2
  380. package/foundations/typography.md +12 -12
  381. package/package.json +2 -2
  382. package/dist/chunks/agent-avatar-0pdBTWkR.js +0 -171
  383. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +0 -1
  384. package/dist/chunks/app-frame-DogGRmsu.js +0 -221
  385. package/dist/chunks/app-frame-DogGRmsu.js.map +0 -1
  386. package/dist/chunks/arrow-focus-BcySmwwU.js +0 -11
  387. package/dist/chunks/arrow-focus-BcySmwwU.js.map +0 -1
  388. package/dist/chunks/avatar-CWbdwbJv.js +0 -83
  389. package/dist/chunks/avatar-CWbdwbJv.js.map +0 -1
  390. package/dist/chunks/badge-C2KtxCLB.js +0 -26
  391. package/dist/chunks/badge-C2KtxCLB.js.map +0 -1
  392. package/dist/chunks/banner-BA2ALw9M.js +0 -85
  393. package/dist/chunks/banner-BA2ALw9M.js.map +0 -1
  394. package/dist/chunks/button-CzuxqawA.js +0 -164
  395. package/dist/chunks/button-CzuxqawA.js.map +0 -1
  396. package/dist/chunks/calendar-BWaf2MXc.js.map +0 -1
  397. package/dist/chunks/checkbox-CQjwCPkc.js +0 -126
  398. package/dist/chunks/checkbox-CQjwCPkc.js.map +0 -1
  399. package/dist/chunks/cn-Dj6sRgkF.js.map +0 -1
  400. package/dist/chunks/code-block-D5A-CGXG.js +0 -330
  401. package/dist/chunks/code-block-D5A-CGXG.js.map +0 -1
  402. package/dist/chunks/code-tqj0uhBL.js.map +0 -1
  403. package/dist/chunks/collapsible-CKrCX_T9.js +0 -87
  404. package/dist/chunks/collapsible-CKrCX_T9.js.map +0 -1
  405. package/dist/chunks/combobox-DjDI7SUC.js +0 -319
  406. package/dist/chunks/combobox-DjDI7SUC.js.map +0 -1
  407. package/dist/chunks/command-list-C2Y7V_lt.js +0 -418
  408. package/dist/chunks/command-list-C2Y7V_lt.js.map +0 -1
  409. package/dist/chunks/copy-button-FJvPJn72.js.map +0 -1
  410. package/dist/chunks/core-BYns5ytV.js +0 -472
  411. package/dist/chunks/core-BYns5ytV.js.map +0 -1
  412. package/dist/chunks/date-popup-CPA_zt6o.js +0 -35
  413. package/dist/chunks/date-popup-CPA_zt6o.js.map +0 -1
  414. package/dist/chunks/de-CPXJh9cq.js.map +0 -1
  415. package/dist/chunks/dialog-Cg9A_6SF.js.map +0 -1
  416. package/dist/chunks/field-TviMvYa2.js.map +0 -1
  417. package/dist/chunks/hidden-description-B2zSmLcn.js +0 -23
  418. package/dist/chunks/hidden-description-B2zSmLcn.js.map +0 -1
  419. package/dist/chunks/icon-DVooQfk4.js +0 -94
  420. package/dist/chunks/icon-button-CrdF_eMG.js.map +0 -1
  421. package/dist/chunks/input-2VJuj_M4.js.map +0 -1
  422. package/dist/chunks/input-group-DQ_4DoXg.js.map +0 -1
  423. package/dist/chunks/iso-field-B2rTwiBo.js +0 -33
  424. package/dist/chunks/iso-field-B2rTwiBo.js.map +0 -1
  425. package/dist/chunks/json-view-Dqd2TDkc.js +0 -175
  426. package/dist/chunks/json-view-Dqd2TDkc.js.map +0 -1
  427. package/dist/chunks/kbd-BF1vKXJf.js.map +0 -1
  428. package/dist/chunks/link-KWI7PevW.js.map +0 -1
  429. package/dist/chunks/list-M1csq-d4.js +0 -494
  430. package/dist/chunks/list-M1csq-d4.js.map +0 -1
  431. package/dist/chunks/markdown-DULktoTK.js +0 -313
  432. package/dist/chunks/markdown-DULktoTK.js.map +0 -1
  433. package/dist/chunks/menu-DEmBfdPm.js +0 -450
  434. package/dist/chunks/menu-DEmBfdPm.js.map +0 -1
  435. package/dist/chunks/meter-Bj4N3Xuh.js +0 -84
  436. package/dist/chunks/meter-Bj4N3Xuh.js.map +0 -1
  437. package/dist/chunks/nav-sheet-CzgIwgAm.js +0 -60
  438. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +0 -1
  439. package/dist/chunks/nav-wordmark-_pjheAsZ.js.map +0 -1
  440. package/dist/chunks/page-header-DL2y2iZp.js +0 -41
  441. package/dist/chunks/page-header-DL2y2iZp.js.map +0 -1
  442. package/dist/chunks/pagination-Cn_qF4cg.js +0 -86
  443. package/dist/chunks/pagination-Cn_qF4cg.js.map +0 -1
  444. package/dist/chunks/picker-popover-BxyU1U9F.js +0 -106
  445. package/dist/chunks/picker-popover-BxyU1U9F.js.map +0 -1
  446. package/dist/chunks/popover-DNN4S47w.js +0 -50
  447. package/dist/chunks/popover-DNN4S47w.js.map +0 -1
  448. package/dist/chunks/portal-context-BBbzDKmY.js.map +0 -1
  449. package/dist/chunks/radio-CDDFpdtL.js.map +0 -1
  450. package/dist/chunks/range-popup-CRyWYUB1.js +0 -128
  451. package/dist/chunks/range-popup-CRyWYUB1.js.map +0 -1
  452. package/dist/chunks/release-art-ZwfFQImt.js +0 -561
  453. package/dist/chunks/release-art-ZwfFQImt.js.map +0 -1
  454. package/dist/chunks/rights-Cyp0Pzp-.js +0 -279
  455. package/dist/chunks/rights-Cyp0Pzp-.js.map +0 -1
  456. package/dist/chunks/scroll-area-D8MD7Vpo.js.map +0 -1
  457. package/dist/chunks/scroll-parent-WXvzQcUo.js +0 -14
  458. package/dist/chunks/scroll-parent-WXvzQcUo.js.map +0 -1
  459. package/dist/chunks/section-Ce1efbsP.js +0 -87
  460. package/dist/chunks/section-Ce1efbsP.js.map +0 -1
  461. package/dist/chunks/segmented-CErcoxwi.js +0 -114
  462. package/dist/chunks/segmented-CErcoxwi.js.map +0 -1
  463. package/dist/chunks/select-x4XVsdCI.js +0 -210
  464. package/dist/chunks/select-x4XVsdCI.js.map +0 -1
  465. package/dist/chunks/separator-D7TzNHmX.js.map +0 -1
  466. package/dist/chunks/sidebar-3r1ZRXlN.js +0 -621
  467. package/dist/chunks/sidebar-3r1ZRXlN.js.map +0 -1
  468. package/dist/chunks/skeleton-Dcz57Zyp.js.map +0 -1
  469. package/dist/chunks/slider-Ci83PGtj.js +0 -57
  470. package/dist/chunks/slider-Ci83PGtj.js.map +0 -1
  471. package/dist/chunks/swap-text-Dr0Irxz6.js.map +0 -1
  472. package/dist/chunks/switch-BNMq_kGt.js +0 -59
  473. package/dist/chunks/switch-BNMq_kGt.js.map +0 -1
  474. package/dist/chunks/table-BeOSKl_3.js +0 -84
  475. package/dist/chunks/table-BeOSKl_3.js.map +0 -1
  476. package/dist/chunks/tag-D_M1s2qS.js +0 -87
  477. package/dist/chunks/tag-D_M1s2qS.js.map +0 -1
  478. package/dist/chunks/text-CIXH8rmT.js.map +0 -1
  479. package/dist/chunks/textarea--4FRL3Pb.js.map +0 -1
  480. package/dist/chunks/timeseries-D1xjRXfk.js +0 -339
  481. package/dist/chunks/timeseries-D1xjRXfk.js.map +0 -1
  482. package/dist/chunks/toolbar-WA_oZgu-.js +0 -37
  483. package/dist/chunks/toolbar-WA_oZgu-.js.map +0 -1
  484. package/dist/chunks/tooltip-OcwO0VUT.js +0 -154
  485. package/dist/chunks/tooltip-OcwO0VUT.js.map +0 -1
  486. package/dist/chunks/tooltip-root-DzahJDVj.js +0 -60
  487. package/dist/chunks/tooltip-root-DzahJDVj.js.map +0 -1
  488. package/dist/chunks/zh-CN-29X4CDLE.js.map +0 -1
  489. package/dist/components/data-table.js.map +0 -1
  490. package/dist/components/label.js.map +0 -1
@@ -0,0 +1,202 @@
1
+ "use client";
2
+ import { t as e } from "./cn-BjnOAUrA.js";
3
+ import { r as t } from "./portal-context-CTatR2Z8.js";
4
+ import { i as n } from "./kbd-8A0ML_up.js";
5
+ import { n as r, t as i } from "./merge-refs-BN1FyQt9.js";
6
+ import { cloneElement as a, forwardRef as o, isValidElement as s, useEffect as c, useId as l, useLayoutEffect as u, useMemo as d, useReducer as f, useRef as p, useState as m, useSyncExternalStore as h } from "react";
7
+ import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
8
+ import { createPortal as y } from "react-dom";
9
+ //#region src/utils/hidden-description.tsx
10
+ function b(e) {
11
+ let t = l();
12
+ return e ? {
13
+ id: t,
14
+ node: /* @__PURE__ */ _("span", {
15
+ id: t,
16
+ hidden: !0,
17
+ children: e
18
+ })
19
+ } : {
20
+ id: void 0,
21
+ node: null
22
+ };
23
+ }
24
+ var x = (...e) => e.filter(Boolean).join(" ") || void 0, S = (e) => e != null && e !== !1 && e !== !0 && (typeof e != "string" || e.trim() !== ""), C;
25
+ function w(e) {
26
+ let t = C ??= /* @__PURE__ */ new Set();
27
+ t.add(e);
28
+ let n = () => t.delete(e);
29
+ return e.then(n, n), e;
30
+ }
31
+ var T = /^Failed to fetch dynamically imported module: (\S+)$/, E = /\bimport\(\s*(["'`])([^"'`$]+)\1\s*\)/, D = (e) => e instanceof Error && T.test(e.message);
32
+ function O(e, t, n) {
33
+ let r = e instanceof Error ? T.exec(e.message)?.[1] : void 0, i = n?.(), a = r ?? (i ? E.exec(String(t))?.[2] : void 0);
34
+ return a && URL.canParse(a, i) ? new URL(a, i).href : void 0;
35
+ }
36
+ function k(e, t) {
37
+ let n = new URL(e);
38
+ return n.searchParams.set("retry", String(t)), n.href;
39
+ }
40
+ function A(e, { base: t, reimport: n = (e) => import(e) } = {}) {
41
+ let r, i, a = 0, o, s = () => o ? n(k(o, a)).catch((t) => D(t) ? Promise.reject(t) : e()) : e();
42
+ return {
43
+ current: () => r,
44
+ load: () => i ??= w(s().then((e) => r = e, (n) => {
45
+ throw i = void 0, a += 1, o = O(n, e, t) ?? o, n;
46
+ }))
47
+ };
48
+ }
49
+ function j(e) {
50
+ e.load().catch(() => void 0);
51
+ }
52
+ function M(e, t, n) {
53
+ let [, r] = f((e) => e + 1, 0), i = p(n);
54
+ u(() => {
55
+ i.current = n;
56
+ });
57
+ let a = e.current();
58
+ return c(() => {
59
+ if (!t || a) return;
60
+ let n = !0;
61
+ return e.load().then(() => n && r(), () => n && i.current?.()), () => {
62
+ n = !1;
63
+ };
64
+ }, [
65
+ e,
66
+ t,
67
+ a
68
+ ]), t ? a : void 0;
69
+ }
70
+ function N(e, t) {
71
+ let [n, r] = m(!1);
72
+ return [M(e, t && !n, () => r(!0)), () => r(!1)];
73
+ }
74
+ //#endregion
75
+ //#region src/components/tooltip/trigger-props.ts
76
+ function P() {
77
+ let e = null, t = null, n, i, a = /* @__PURE__ */ new Set(), o = () => {
78
+ i?.(), i = t && n ? r(n, t) : void 0;
79
+ };
80
+ return {
81
+ get: () => e,
82
+ set: (t) => {
83
+ t?.ref !== n && (n = t?.ref, o()), e = t;
84
+ for (let e of a) e();
85
+ },
86
+ subscribe: (e) => (a.add(e), () => void a.delete(e)),
87
+ ref: (e) => {
88
+ t = e, o();
89
+ },
90
+ element: () => t
91
+ };
92
+ }
93
+ function F({ store: e, merge: t, extra: n, children: r }) {
94
+ let o = h(e.subscribe, e.get, e.get), s = {
95
+ ...r.props,
96
+ ...n
97
+ }, c = d(() => i(s.ref, e.ref), [s.ref, e]);
98
+ return a(r, {
99
+ ...o && t ? t(o, s) : n,
100
+ ref: c
101
+ });
102
+ }
103
+ process.env.NODE_ENV !== "production" && (F.displayName = "HandedTrigger");
104
+ //#endregion
105
+ //#region src/components/tooltip/tooltip.tsx
106
+ var I = {
107
+ side: {
108
+ top: { classes: "" },
109
+ bottom: { classes: "" },
110
+ left: { classes: "" },
111
+ right: { classes: "" }
112
+ },
113
+ shape: {
114
+ pill: { classes: "rounded-pill h-28 px-12 whitespace-nowrap" },
115
+ multiline: { classes: "rounded-tooltip px-12 py-8 max-w-280 text-pretty wrap-anywhere" }
116
+ }
117
+ }, L = {
118
+ side: "top",
119
+ shape: "pill"
120
+ }, R = /* @__PURE__ */ A(() => import("./tooltip-root-BC_RNNiP.js"), { base: () => import.meta.url }), z = (e) => (e ?? "").replace(/\s+/g, " ").trim().toLowerCase();
121
+ function B(e) {
122
+ let t = e.getAttribute("aria-labelledby");
123
+ return t ? t.split(/\s+/).map((t) => e.ownerDocument.getElementById(t)?.textContent ?? "").join(" ") : e.getAttribute("aria-label") ?? e.textContent ?? "";
124
+ }
125
+ function V(e, t) {
126
+ let n = (t["aria-describedby"] ?? "").split(/\s+/).filter(Boolean);
127
+ return n.length ? n.map((t) => e.getElementById(t)?.textContent ?? "").join(" ") : t["aria-description"] ?? "";
128
+ }
129
+ function H(e, n, r, i) {
130
+ let a = l(), o = t(), s = p(null), [d, f] = m(!1), [h, g] = m(!1), v = typeof e == "string" || typeof e == "number" ? String(e) : null, b = v !== null && !i["aria-describedby"];
131
+ c(() => f(!0), []);
132
+ let { "aria-describedby": S, "aria-description": C } = i;
133
+ u(() => {
134
+ let e = n.element(), t = z(v ?? s.current?.textContent), i = !r && !!e && t !== "" && t !== z(B(e)) && !z(V(e.ownerDocument, {
135
+ "aria-describedby": S,
136
+ "aria-description": C
137
+ })).includes(t);
138
+ i !== h && g(i);
139
+ }, [
140
+ v,
141
+ r,
142
+ d,
143
+ e,
144
+ h,
145
+ n,
146
+ S,
147
+ C
148
+ ]);
149
+ let w = d && (v === null || h && !b) && typeof document < "u" ? y(/* @__PURE__ */ _("span", {
150
+ ref: s,
151
+ id: a,
152
+ hidden: !0,
153
+ children: e
154
+ }), o ?? document.body) : null;
155
+ return h ? {
156
+ props: b ? { "aria-description": v } : { "aria-describedby": x(i["aria-describedby"], a) },
157
+ node: w
158
+ } : {
159
+ props: void 0,
160
+ node: w
161
+ };
162
+ }
163
+ function U(e) {
164
+ let [t, n] = N(R, !0), [r] = m(P), i = s(e.children) ? e.children.props : {}, a = H(e.content, r, !!e.disabled, i);
165
+ if (!s(e.children)) return e.children;
166
+ let o = a.props, c = t ? o : {
167
+ ...o,
168
+ onPointerEnter: (e) => {
169
+ i.onPointerEnter?.(e), n();
170
+ },
171
+ onFocus: (e) => {
172
+ i.onFocus?.(e), n();
173
+ }
174
+ };
175
+ return /* @__PURE__ */ v(g, { children: [
176
+ /* @__PURE__ */ _(F, {
177
+ store: r,
178
+ merge: t?.mergeTriggerProps,
179
+ extra: c,
180
+ children: e.children
181
+ }),
182
+ a.node,
183
+ t && /* @__PURE__ */ _(t.TooltipRoot, {
184
+ ...e,
185
+ triggerProps: r
186
+ })
187
+ ] });
188
+ }
189
+ process.env.NODE_ENV !== "production" && (U.displayName = "Tooltip");
190
+ var W = /* @__PURE__ */ o(function({ children: t, shortcut: r, shape: i = "pill" }, a) {
191
+ return /* @__PURE__ */ v("div", {
192
+ ref: a,
193
+ role: "tooltip",
194
+ className: e("inline-flex items-center gap-8 bg-tooltip text-small font-medium text-fg shadow-raised", I.shape[i].classes),
195
+ children: [/* @__PURE__ */ _("span", { children: t }), r && /* @__PURE__ */ _(n, { keys: r })]
196
+ });
197
+ });
198
+ process.env.NODE_ENV !== "production" && (W.displayName = "TooltipSurface");
199
+ //#endregion
200
+ export { F as a, j as c, x as d, S as f, W as i, M as l, I as n, P as o, b as p, U as r, A as s, L as t, N as u };
201
+
202
+ //# sourceMappingURL=tooltip-Tkm-urbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-Tkm-urbi.js","names":["_Fragment","cn","usePortalContainer","KbdSequence","setRef","mergeRefs","Fragment$1","useHiddenDescription","id","useId","text","joinIds","ids","showsText","node","loading","track","all","promise","settle","CHROMIUM_FAILED_FETCH","IMPORTED","downloadFailed","error","failedAddress","named","from","base","address","load","fresh","url","attempt","lazyModule","mod","pending","failures","reimport","m","preload","useLazyModule","loaded","useReducer","n","failed","useRef","onFail","useEffect","wanted","live","useLazyModuleRetried","setFailed","useState","triggerPropsStore","props","element","given","detach","listeners","attach","next","listener","HandedTrigger","useSyncExternalStore","store","own","children","extra","ref","useMemo","cloneElement","merge","KAESO_TOOLTIP_VARIANTS","KAESO_TOOLTIP_DEFAULT_VARIANTS","tooltipRoot","words","accessibleName","labelledBy","el","ownDescription","doc","useDescription","container","mounted","setMounted","describes","setDescribes","plain","content","asAttribute","describedBy","description","trigger","off","hidden","createPortal","Tooltip","retry","isValidElement","retryOnIntent","TooltipSurface","shape","shortcut"],"sources":["../../src/utils/hidden-description.tsx","../../src/utils/lazy-module.ts","../../src/components/tooltip/trigger-props.ts","../../src/components/tooltip/tooltip.tsx"],"sourcesContent":["import { useId, type ReactNode } from \"react\";\n\ninterface HiddenDescription {\n id: string | undefined;\n node: ReactNode;\n}\n\nexport function useHiddenDescription(text: string | undefined): HiddenDescription {\n const id = useId();\n if (!text) return { id: undefined, node: null };\n return {\n id,\n node: (\n <span id={id} hidden>\n {text}\n </span>\n ),\n };\n}\n\nexport const joinIds = (...ids: (string | false | null | undefined)[]): string | undefined => ids.filter(Boolean).join(\" \") || undefined;\n\nexport const showsText = (node: ReactNode): boolean =>\n node !== undefined && node !== null && node !== false && node !== true && !(typeof node === \"string\" && node.trim() === \"\");\n","import { useEffect, useLayoutEffect, useReducer, useRef, useState } from \"react\";\n\nexport interface LazyModule<T> {\n current: () => T | undefined;\n load: () => Promise<T>;\n}\n\nlet loading: Set<Promise<unknown>> | undefined;\n\nfunction track<T>(promise: Promise<T>): Promise<T> {\n const all = (loading ??= new Set());\n all.add(promise);\n const settle = () => all.delete(promise);\n promise.then(settle, settle);\n return promise;\n}\n\nexport async function lazyModulesSettled(): Promise<void> {\n while (loading?.size) await Promise.allSettled(loading);\n}\n\nexport interface LazyModuleOptions<T> {\n base?: (() => string) | undefined;\n reimport?: ((url: string) => Promise<T>) | undefined;\n}\n\nconst CHROMIUM_FAILED_FETCH = /^Failed to fetch dynamically imported module: (\\S+)$/;\nconst IMPORTED = /\\bimport\\(\\s*([\"'`])([^\"'`$]+)\\1\\s*\\)/;\n\nconst downloadFailed = (error: unknown) => error instanceof Error && CHROMIUM_FAILED_FETCH.test(error.message);\n\nfunction failedAddress(error: unknown, load: () => unknown, base: (() => string) | undefined): string | undefined {\n const named = error instanceof Error ? CHROMIUM_FAILED_FETCH.exec(error.message)?.[1] : undefined;\n const from = base?.();\n const address = named ?? (from ? IMPORTED.exec(String(load))?.[2] : undefined);\n return address && URL.canParse(address, from) ? new URL(address, from).href : undefined;\n}\n\nfunction fresh(address: string, attempt: number): string {\n const url = new URL(address);\n url.searchParams.set(\"retry\", String(attempt));\n return url.href;\n}\n\nexport function lazyModule<T>(load: () => Promise<T>, { base, reimport = (url) => import(url) as Promise<T> }: LazyModuleOptions<T> = {}): LazyModule<T> {\n let mod: T | undefined;\n let pending: Promise<T> | undefined;\n let failures = 0;\n let address: string | undefined;\n const attempt = () =>\n address ? reimport(fresh(address, failures)).catch((error: unknown) => (downloadFailed(error) ? Promise.reject(error) : load())) : load();\n return {\n current: () => mod,\n load: () =>\n (pending ??= track(\n attempt().then(\n (m) => (mod = m),\n (error: unknown) => {\n pending = undefined;\n failures += 1;\n address = failedAddress(error, load, base) ?? address;\n throw error;\n },\n ),\n )),\n };\n}\n\nexport function preload<T>(m: LazyModule<T>): void {\n m.load().catch(() => undefined);\n}\n\nexport function useLazyModule<T>(m: LazyModule<T>, wanted: boolean, onFail?: (() => void) | undefined): T | undefined {\n const [, loaded] = useReducer((n: number) => n + 1, 0);\n const failed = useRef(onFail);\n useLayoutEffect(() => {\n failed.current = onFail;\n });\n const mod = m.current();\n useEffect(() => {\n if (!wanted || mod) return;\n let live = true;\n m.load().then(\n () => live && loaded(),\n () => live && failed.current?.(),\n );\n return () => {\n live = false;\n };\n }, [m, wanted, mod]);\n return wanted ? mod : undefined;\n}\n\nexport function useLazyModuleRetried<T>(m: LazyModule<T>, wanted: boolean): [T | undefined, () => void] {\n const [failed, setFailed] = useState(false);\n const mod = useLazyModule(m, wanted && !failed, () => setFailed(true));\n return [mod, () => setFailed(false)];\n}\n","import { cloneElement, useMemo, useSyncExternalStore, type HTMLAttributes, type ReactElement, type Ref, type RefCallback } from \"react\";\nimport { mergeRefs, setRef } from \"../../utils/merge-refs.js\";\n\nexport type TriggerProps = HTMLAttributes<Element> & { ref?: Ref<Element> | undefined };\n\nexport interface TriggerPropsStore {\n get: () => TriggerProps | null;\n set: (props: TriggerProps | null) => void;\n subscribe: (listener: () => void) => () => void;\n ref: RefCallback<Element>;\n element: () => Element | null;\n}\n\nexport function triggerPropsStore(): TriggerPropsStore {\n let props: TriggerProps | null = null;\n let element: Element | null = null;\n let given: Ref<Element> | undefined;\n let detach: (() => void) | undefined;\n const listeners = new Set<() => void>();\n const attach = () => {\n detach?.();\n detach = element && given ? setRef(given, element) : undefined;\n };\n return {\n get: () => props,\n set: (next) => {\n if (next?.ref !== given) {\n given = next?.ref;\n attach();\n }\n props = next;\n for (const listener of listeners) listener();\n },\n subscribe: (listener) => {\n listeners.add(listener);\n return () => void listeners.delete(listener);\n },\n ref: (node) => {\n element = node;\n attach();\n },\n element: () => element,\n };\n}\n\nexport function HandedTrigger({\n store,\n merge,\n extra,\n children,\n}: {\n store: TriggerPropsStore;\n merge: ((given: TriggerProps, own: object) => object) | undefined;\n extra?: object | undefined;\n children: ReactElement;\n}) {\n const given = useSyncExternalStore(store.subscribe, store.get, store.get);\n const own = { ...(children.props as object), ...extra } as { ref?: Ref<Element> | undefined };\n const ref = useMemo(() => mergeRefs(own.ref, store.ref), [own.ref, store]);\n return cloneElement(children as ReactElement<{ ref?: Ref<Element> | undefined }>, { ...(given && merge ? merge(given, own) : extra), ref });\n}\nif (process.env.NODE_ENV !== \"production\") HandedTrigger.displayName = \"HandedTrigger\";\n","import {\n forwardRef,\n isValidElement,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type FocusEvent,\n type PointerEvent,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport { joinIds } from \"../../utils/hidden-description.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { lazyModule, useLazyModuleRetried } from \"../../utils/lazy-module.js\";\nimport { HandedTrigger, triggerPropsStore, type TriggerPropsStore } from \"./trigger-props.js\";\nimport { KbdSequence } from \"../kbd/kbd.js\";\n\nexport const KAESO_TOOLTIP_VARIANTS = {\n side: {\n top: { classes: \"\" },\n bottom: { classes: \"\" },\n left: { classes: \"\" },\n right: { classes: \"\" },\n },\n shape: {\n pill: {\n classes: \"rounded-pill h-28 px-12 whitespace-nowrap\",\n },\n multiline: {\n classes: \"rounded-tooltip px-12 py-8 max-w-280 text-pretty wrap-anywhere\",\n },\n },\n} as const;\nexport const KAESO_TOOLTIP_DEFAULT_VARIANTS = { side: \"top\", shape: \"pill\" } as const;\n\nexport interface TooltipProps {\n content: ReactNode;\n shortcut?: string[] | string[][] | undefined;\n children: ReactElement;\n side?: keyof typeof KAESO_TOOLTIP_VARIANTS.side | undefined;\n shape?: keyof typeof KAESO_TOOLTIP_VARIANTS.shape | undefined;\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n disabled?: boolean | undefined;\n delay?: number | undefined;\n sideOffset?: number | undefined;\n}\n\nconst tooltipRoot = /* @__PURE__ */ lazyModule(() => import(\"./tooltip-root.js\"), { base: () => import.meta.url });\n\nconst words = (text: string | null | undefined) => (text ?? \"\").replace(/\\s+/g, \" \").trim().toLowerCase();\n\nfunction accessibleName(el: Element): string {\n const labelledBy = el.getAttribute(\"aria-labelledby\");\n if (labelledBy)\n return labelledBy\n .split(/\\s+/)\n .map((id) => el.ownerDocument.getElementById(id)?.textContent ?? \"\")\n .join(\" \");\n return el.getAttribute(\"aria-label\") ?? el.textContent ?? \"\";\n}\n\ninterface OwnDescription {\n \"aria-describedby\"?: string | undefined;\n \"aria-description\"?: string | undefined;\n}\n\nfunction ownDescription(doc: Document, own: OwnDescription): string {\n const ids = (own[\"aria-describedby\"] ?? \"\").split(/\\s+/).filter(Boolean);\n if (!ids.length) return own[\"aria-description\"] ?? \"\";\n return ids.map((id) => doc.getElementById(id)?.textContent ?? \"\").join(\" \");\n}\n\nfunction useDescription(content: ReactNode, store: TriggerPropsStore, off: boolean, own: OwnDescription) {\n const id = useId();\n const container = usePortalContainer();\n const node = useRef<HTMLSpanElement>(null);\n const [mounted, setMounted] = useState(false);\n const [describes, setDescribes] = useState(false);\n const plain = typeof content === \"string\" || typeof content === \"number\" ? String(content) : null;\n // aria-describedby overrides aria-description, so only a trigger without its own describedby can take plain text as an attribute.\n const asAttribute = plain !== null && !own[\"aria-describedby\"];\n useEffect(() => setMounted(true), []);\n const { \"aria-describedby\": describedBy, \"aria-description\": description } = own;\n useLayoutEffect(() => {\n const trigger = store.element();\n const text = words(plain ?? node.current?.textContent);\n const next =\n !off &&\n !!trigger &&\n text !== \"\" &&\n text !== words(accessibleName(trigger)) &&\n !words(ownDescription(trigger.ownerDocument, { \"aria-describedby\": describedBy, \"aria-description\": description })).includes(text);\n if (next !== describes) setDescribes(next);\n }, [plain, off, mounted, content, describes, store, describedBy, description]);\n const hidden =\n mounted && (plain === null || (describes && !asAttribute)) && typeof document !== \"undefined\"\n ? createPortal(\n <span ref={node} id={id} hidden>\n {content}\n </span>,\n container ?? document.body,\n )\n : null;\n if (!describes) return { props: undefined, node: hidden };\n return { props: asAttribute ? { \"aria-description\": plain } : { \"aria-describedby\": joinIds(own[\"aria-describedby\"], id) }, node: hidden };\n}\n\nexport function Tooltip(props: TooltipProps) {\n const [mod, retry] = useLazyModuleRetried(tooltipRoot, true);\n const [store] = useState(triggerPropsStore);\n const own = (isValidElement(props.children) ? props.children.props : {}) as OwnDescription & {\n onPointerEnter?: ((e: PointerEvent<Element>) => void) | undefined;\n onFocus?: ((e: FocusEvent<Element>) => void) | undefined;\n };\n const description = useDescription(props.content, store, !!props.disabled, own);\n if (!isValidElement(props.children)) return props.children;\n const describedBy = description.props;\n const retryOnIntent = mod\n ? describedBy\n : {\n ...describedBy,\n onPointerEnter: (e: PointerEvent<Element>) => {\n own.onPointerEnter?.(e);\n retry();\n },\n onFocus: (e: FocusEvent<Element>) => {\n own.onFocus?.(e);\n retry();\n },\n };\n return (\n <>\n <HandedTrigger store={store} merge={mod?.mergeTriggerProps} extra={retryOnIntent}>\n {props.children}\n </HandedTrigger>\n {description.node}\n {mod && <mod.TooltipRoot {...props} triggerProps={store} />}\n </>\n );\n}\nif (process.env.NODE_ENV !== \"production\") Tooltip.displayName = \"Tooltip\";\n\nexport interface TooltipSurfaceProps {\n children: ReactNode;\n shortcut?: string[] | string[][] | undefined;\n shape?: keyof typeof KAESO_TOOLTIP_VARIANTS.shape | undefined;\n}\n\nexport const TooltipSurface = /* @__PURE__ */ forwardRef<HTMLDivElement, TooltipSurfaceProps>(function TooltipSurface({ children, shortcut, shape = \"pill\" }, ref) {\n return (\n <div\n ref={ref}\n role=\"tooltip\"\n className={cn(\"inline-flex items-center gap-8 bg-tooltip text-small font-medium text-fg shadow-raised\", KAESO_TOOLTIP_VARIANTS.shape[shape].classes)}\n >\n <span>{children}</span>\n {shortcut && <KbdSequence keys={shortcut} />}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") TooltipSurface.displayName = \"TooltipSurface\";\n"],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ "use client";
2
+ import { t as e } from "./cn-BjnOAUrA.js";
3
+ import { n as t, r as n } from "./portal-context-CTatR2Z8.js";
4
+ import { i as r } from "./kbd-8A0ML_up.js";
5
+ import { n as i, t as a } from "./tooltip-Tkm-urbi.js";
6
+ import { t as o } from "./observe-resize-DhxhmoyB.js";
7
+ import { useLayoutEffect as s, useRef as c, useState as l } from "react";
8
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
9
+ import { Tooltip as f } from "@base-ui/react/tooltip";
10
+ import { mergeProps as p } from "@base-ui/react/merge-props";
11
+ //#region src/components/tooltip/tooltip-root.tsx
12
+ var m = "z-70 flex items-center gap-8 bg-tooltip text-small font-medium text-fg shadow-raised popup-motion";
13
+ function h({ content: e, shortcut: i, triggerProps: o, side: s = a.side, shape: c = a.shape, open: l, defaultOpen: p, onOpenChange: m, disabled: h, delay: _, sideOffset: y = 8 }) {
14
+ return /* @__PURE__ */ d(f.Root, {
15
+ ...l === void 0 ? {} : { open: l },
16
+ ...p === void 0 ? {} : { defaultOpen: p },
17
+ ...m ? { onOpenChange: (e) => m(e) } : {},
18
+ ...h === void 0 ? {} : { disabled: h },
19
+ children: [/* @__PURE__ */ u(f.Trigger, {
20
+ render: (e) => /* @__PURE__ */ u(g, {
21
+ store: o,
22
+ props: e
23
+ }),
24
+ ..._ === void 0 ? {} : { delay: _ }
25
+ }), /* @__PURE__ */ u(f.Portal, {
26
+ container: n(),
27
+ children: /* @__PURE__ */ u(f.Positioner, {
28
+ positionMethod: "fixed",
29
+ collisionBoundary: t(),
30
+ side: s,
31
+ sideOffset: y,
32
+ collisionPadding: 8,
33
+ children: /* @__PURE__ */ d(v, {
34
+ shape: c,
35
+ children: [/* @__PURE__ */ u("span", { children: e }), i && /* @__PURE__ */ u(r, { keys: i })]
36
+ })
37
+ })
38
+ })]
39
+ });
40
+ }
41
+ process.env.NODE_ENV !== "production" && (h.displayName = "Tooltip.Root");
42
+ function g({ store: e, props: t }) {
43
+ return s(() => e.set(t)), s(() => () => e.set(null), [e]), null;
44
+ }
45
+ process.env.NODE_ENV !== "production" && (g.displayName = "Tooltip.HandOver");
46
+ function _(e, t) {
47
+ let { ref: n, ...r } = e;
48
+ return p(r, t);
49
+ }
50
+ function v({ shape: t, children: n }) {
51
+ let r = c(null), [a, d] = l(!1);
52
+ return s(() => {
53
+ let e = r.current;
54
+ if (t !== "pill" || a || !e) return;
55
+ let n = () => {
56
+ e.scrollWidth > e.clientWidth + 1 && d(!0);
57
+ };
58
+ return n(), o([e], n);
59
+ }, [t, a]), /* @__PURE__ */ u(f.Popup, {
60
+ ref: r,
61
+ role: "tooltip",
62
+ className: e(m, i.shape[a ? "multiline" : t].classes),
63
+ style: { maxWidth: a || t === "multiline" ? "min(var(--k-width-tooltip), var(--available-width))" : "var(--available-width)" },
64
+ children: n
65
+ });
66
+ }
67
+ //#endregion
68
+ export { h as TooltipRoot, _ as mergeTriggerProps };
69
+
70
+ //# sourceMappingURL=tooltip-root-BC_RNNiP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-root-BC_RNNiP.js","names":["BaseTooltip","cn","pageBoundary","usePortalContainer","KbdSequence","KAESO_TOOLTIP_VARIANTS","KAESO_TOOLTIP_DEFAULT_VARIANTS","observeResize","popupClasses","TooltipRoot","Tooltip","open","defaultOpen","onOpenChange","o","disabled","HandOver","triggerProps","delay","TooltipPopup","content","shortcut","useLayoutEffect","store","props","mergeTriggerProps","_ref","given","mergeProps","own","ref","useRef","wraps","setWraps","useState","el","shape","check"],"sources":["../../src/components/tooltip/tooltip-root.tsx"],"sourcesContent":["import { useLayoutEffect, useRef, useState, type ReactNode } from \"react\";\nimport { Tooltip as BaseTooltip } from \"@base-ui/react/tooltip\";\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { pageBoundary, usePortalContainer } from \"../../utils/portal-context.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { observeResize } from \"../../utils/observe-resize.js\";\nimport { KbdSequence } from \"../kbd/kbd.js\";\nimport { KAESO_TOOLTIP_DEFAULT_VARIANTS, KAESO_TOOLTIP_VARIANTS, type TooltipProps } from \"./tooltip.js\";\nimport type { TriggerProps, TriggerPropsStore } from \"./trigger-props.js\";\n\nconst popupClasses = \"z-70 flex items-center gap-8 bg-tooltip text-small font-medium text-fg shadow-raised popup-motion\";\n\nexport function TooltipRoot({\n content,\n shortcut,\n triggerProps,\n side = KAESO_TOOLTIP_DEFAULT_VARIANTS.side,\n shape = KAESO_TOOLTIP_DEFAULT_VARIANTS.shape,\n open,\n defaultOpen,\n onOpenChange,\n disabled,\n delay,\n sideOffset = 8,\n}: TooltipProps & { triggerProps: TriggerPropsStore }) {\n return (\n <BaseTooltip.Root\n {...(open !== undefined ? { open } : {})}\n {...(defaultOpen !== undefined ? { defaultOpen } : {})}\n {...(onOpenChange ? { onOpenChange: (o: boolean) => onOpenChange(o) } : {})}\n {...(disabled !== undefined ? { disabled } : {})}\n >\n <BaseTooltip.Trigger render={(props) => <HandOver store={triggerProps} props={props} />} {...(delay !== undefined ? { delay } : {})} />\n <BaseTooltip.Portal container={usePortalContainer()}>\n <BaseTooltip.Positioner positionMethod=\"fixed\" collisionBoundary={pageBoundary()} side={side} sideOffset={sideOffset} collisionPadding={8}>\n <TooltipPopup shape={shape}>\n <span>{content}</span>\n {shortcut && <KbdSequence keys={shortcut} />}\n </TooltipPopup>\n </BaseTooltip.Positioner>\n </BaseTooltip.Portal>\n </BaseTooltip.Root>\n );\n}\nif (process.env.NODE_ENV !== \"production\") TooltipRoot.displayName = \"Tooltip.Root\";\n\nfunction HandOver({ store, props }: { store: TriggerPropsStore; props: TriggerProps }) {\n useLayoutEffect(() => store.set(props));\n useLayoutEffect(() => () => store.set(null), [store]);\n return null;\n}\nif (process.env.NODE_ENV !== \"production\") HandOver.displayName = \"Tooltip.HandOver\";\n\nexport function mergeTriggerProps(given: TriggerProps, own: object): object {\n const { ref: _ref, ...props } = given;\n return mergeProps<\"button\">(props, own);\n}\n\nfunction TooltipPopup({ shape, children }: { shape: keyof typeof KAESO_TOOLTIP_VARIANTS.shape; children: ReactNode }) {\n const ref = useRef<HTMLDivElement>(null);\n const [wraps, setWraps] = useState(false);\n useLayoutEffect(() => {\n const el = ref.current;\n if (shape !== \"pill\" || wraps || !el) return;\n const check = () => {\n if (el.scrollWidth > el.clientWidth + 1) setWraps(true);\n };\n check();\n return observeResize([el], check);\n }, [shape, wraps]);\n return (\n <BaseTooltip.Popup\n ref={ref}\n role=\"tooltip\"\n className={cn(popupClasses, KAESO_TOOLTIP_VARIANTS.shape[wraps ? \"multiline\" : shape].classes)}\n style={{ maxWidth: wraps || shape === \"multiline\" ? \"min(var(--k-width-tooltip), var(--available-width))\" : \"var(--available-width)\" }}\n >\n {children}\n </BaseTooltip.Popup>\n );\n}\n"],"mappings":";;;;;;;;;;;AAUA,IAAMQ,IAAe;AAErB,SAAgBC,EAAY,EAC1B,YACA,aACA,iBACA,UAAOH,EAA+B,MACtC,WAAQA,EAA+B,OACvC,SACA,gBACA,iBACA,aACA,UACA,gBAAa,KACwC;CACrD,OACE,kBAACN,EAAY,MAAb;EACE,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,GAAKC,MAAa,KAAA,IAA2B,CAAC,IAAhB,EAAE,YAAS;EAJ3C,UAAA,CAME,kBAACf,EAAY,SAAb;GAAqB,SAAS,MAAU,kBAACgB,GAAD;IAAU,OAAOC;IAAqB;GAAQ,CAAA;GAAG,GAAKC,MAAU,KAAA,IAAwB,CAAC,IAAb,EAAE,SAAM;EAAU,CAAA,GACtI,kBAAClB,EAAY,QAAb;GAAoB,WAAWG,EAAmB;GAChD,UAAA,kBAACH,EAAY,YAAb;IAAwB,gBAAe;IAAQ,mBAAmBE,EAAa;IAAS;IAAkB;IAAY,kBAAkB;IACtI,UAAA,kBAACiB,GAAD;KAAqB;KAArB,UAAA,CACE,kBAAC,QAAD,EAAA,UAAOC,EAAc,CAAA,GACpBC,KAAY,kBAACjB,GAAD,EAAa,MAAMiB,EAAW,CAAA,CAC/B;;GACQ,CAAA;EACN,CAAA,CACJ;;AAEtB;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc;AAErE,SAASL,EAAS,EAAE,UAAO,YAA4D;CAGrF,OAFAM,QAAsBC,EAAM,IAAIC,CAAK,CAAC,GACtCF,cAA4BC,EAAM,IAAI,IAAI,GAAG,CAACA,CAAK,CAAC,GAC7C;AACT;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc;AAElE,SAAgBE,EAAkB,GAAqB,GAAqB;CAC1E,IAAM,EAAE,KAAKC,GAAM,GAAGF,MAAUG;CAChC,OAAOC,EAAqBJ,GAAOK,CAAG;AACxC;AAEA,SAASV,EAAa,EAAE,UAAO,eAAuF;CACpH,IAAMW,IAAMC,EAAuB,IAAI,GACjC,CAACC,GAAOC,KAAYC,EAAS,EAAK;CAUxC,OATAZ,QAAsB;EACpB,IAAMa,IAAKL,EAAI;EACf,IAAIM,MAAU,UAAUJ,KAAS,CAACG,GAAI;EACtC,IAAME,UAAc;GAClB,AAAIF,EAAG,cAAcA,EAAG,cAAc,KAAGF,EAAS,EAAI;EACxD;EAEA,OADAI,EAAM,GACC9B,EAAc,CAAC4B,CAAE,GAAGE,CAAK;CAClC,GAAG,CAACD,GAAOJ,CAAK,CAAC,GAEf,kBAAChC,EAAY,OAAb;EACO;EACL,MAAK;EACL,WAAWC,EAAGO,GAAcH,EAAuB,MAAM2B,IAAQ,cAAcI,EAAM,CAAC,OAAO;EAC7F,OAAO,EAAE,UAAUJ,KAASI,MAAU,cAAc,wDAAwD,yBAAyB;EAEpI;CACgB,CAAA;AAEvB"}
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import { t as e } from "./cn-BjnOAUrA.js";
3
+ import { r as t } from "./tooltip-Tkm-urbi.js";
4
+ import { t as n } from "./merge-refs-BN1FyQt9.js";
5
+ import { t as r } from "./use-truncated-CW0hByYt.js";
6
+ import { forwardRef as i, useLayoutEffect as a, useRef as o, useState as s } from "react";
7
+ import { jsx as c } from "react/jsx-runtime";
8
+ //#region src/components/text/truncated.tsx
9
+ var l = "a[href], button, input, select, textarea, [tabindex]", u = /* @__PURE__ */ i(function({ children: i, className: u, wrap: d = !1, ...f }, p) {
10
+ let m = o(null), h = r(m, !d), [g, _] = s(""), [v, y] = s(!1);
11
+ a(() => {
12
+ let e = m.current;
13
+ h && e && (_(typeof i == "string" ? i : (e.textContent ?? "").trim()), y(!!e.querySelector(l)));
14
+ }, [h, i]);
15
+ let b = /* @__PURE__ */ c("span", {
16
+ ...f,
17
+ ref: n(p, m),
18
+ className: e(d ? "text-pretty" : "truncate", h && g && !v && "rounded-code focus-ring", u),
19
+ ...h && g && !v ? { tabIndex: 0 } : {},
20
+ children: i
21
+ });
22
+ return /* @__PURE__ */ c(t, {
23
+ content: g,
24
+ shape: "multiline",
25
+ disabled: !(h && g),
26
+ children: b
27
+ });
28
+ });
29
+ process.env.NODE_ENV !== "production" && (u.displayName = "TruncatedText");
30
+ //#endregion
31
+ export { u as t };
32
+
33
+ //# sourceMappingURL=truncated-d1afmUJT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truncated-d1afmUJT.js","names":["cn","Tooltip","mergeRefs","useTruncated","FOCUSABLE","TruncatedText","props","inner","useRef","cut","wrap","full","setFull","useState","nested","setNested","el","children","ref","className"],"sources":["../../src/components/text/truncated.tsx"],"sourcesContent":["import { forwardRef, useLayoutEffect, useRef, useState, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { mergeRefs } from \"../../utils/merge-refs.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\n\nconst FOCUSABLE = \"a[href], button, input, select, textarea, [tabindex]\";\n\nexport interface TruncatedTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, \"children\"> {\n children: ReactNode;\n className?: string | undefined;\n wrap?: boolean | undefined;\n}\n\nexport const TruncatedText = /* @__PURE__ */ forwardRef<HTMLSpanElement, TruncatedTextProps>(function TruncatedText({ children, className, wrap = false, ...props }, ref) {\n const inner = useRef<HTMLSpanElement | null>(null);\n const cut = useTruncated(inner, !wrap);\n const [full, setFull] = useState(\"\");\n const [nested, setNested] = useState(false);\n useLayoutEffect(() => {\n const el = inner.current;\n if (!cut || !el) return;\n setFull(typeof children === \"string\" ? children : (el.textContent ?? \"\").trim());\n setNested(!!el.querySelector(FOCUSABLE));\n }, [cut, children]);\n const el = (\n <span\n {...props}\n ref={mergeRefs(ref, inner)}\n className={cn(wrap ? \"text-pretty\" : \"truncate\", cut && full && !nested && \"rounded-code focus-ring\", className)}\n {...(cut && full && !nested ? { tabIndex: 0 } : {})}\n >\n {children}\n </span>\n );\n return (\n <Tooltip content={full} shape=\"multiline\" disabled={!(cut && full)}>\n {el}\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") TruncatedText.displayName = \"TruncatedText\";\n"],"mappings":";;;;;;;;AAMA,IAAMI,IAAY,wDAQLC,IAAgC,kBAAgD,SAAuB,EAAE,aAAU,cAAW,UAAO,IAAO,GAAGC,KAAS,GAAK;CACxK,IAAMC,IAAQC,EAA+B,IAAI,GAC3CC,IAAMN,EAAaI,GAAO,CAACG,CAAI,GAC/B,CAACC,GAAMC,KAAWC,EAAS,EAAE,GAC7B,CAACC,GAAQC,KAAaF,EAAS,EAAK;CAC1C,QAAsB;EACpB,IAAMG,IAAKT,EAAM;EACjB,AAAKE,KAAQO,MACbJ,EAAQ,OAAOK,KAAa,WAAWA,KAAYD,EAAG,eAAe,GAAA,CAAI,KAAK,CAAC,GAC/ED,EAAU,CAAC,CAACC,EAAG,cAAcZ,CAAS,CAAC;CACzC,GAAG,CAACK,GAAKQ,CAAQ,CAAC;CAClB,IAAMD,IACJ,kBAAC,QAAD;EACE,GAAIV;EACJ,KAAKJ,EAAUgB,GAAKX,CAAK;EACzB,WAAWP,EAAGU,IAAO,gBAAgB,YAAYD,KAAOE,KAAQ,CAACG,KAAU,2BAA2BK,CAAS;EAC/G,GAAKV,KAAOE,KAAQ,CAACG,IAAS,EAAE,UAAU,EAAE,IAAI,CAAC;EAEhD;CACG,CAAA;CAER,OACE,kBAACb,GAAD;EAAS,SAASU;EAAM,OAAM;EAAY,UAAU,EAAEF,KAAOE;EAC1D,UAAAK;CACM,CAAA;AAEb,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAc,cAAc"}
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { useSyncExternalStore as e } from "react";
3
+ //#region src/hooks/scroll-parent.ts
4
+ function t(e) {
5
+ let t = e?.parentElement ?? null;
6
+ for (; t;) {
7
+ let e = getComputedStyle(t);
8
+ if (/(auto|scroll|overlay)/.test(e.overflowY) && t.scrollHeight > t.clientHeight) return t;
9
+ t = t.parentElement;
10
+ }
11
+ return document.scrollingElement ?? null;
12
+ }
13
+ //#endregion
14
+ //#region src/hooks/use-coarse-pointer.ts
15
+ var n = "(pointer: coarse)";
16
+ function r(e) {
17
+ if (typeof window > "u" || !window.matchMedia) return () => {};
18
+ let t = window.matchMedia(n);
19
+ return t.addEventListener("change", e), () => t.removeEventListener("change", e);
20
+ }
21
+ var i = () => typeof window < "u" && !!window.matchMedia?.(n).matches;
22
+ function a() {
23
+ return e(r, i, () => !1);
24
+ }
25
+ //#endregion
26
+ export { t as n, a as t };
27
+
28
+ //# sourceMappingURL=use-coarse-pointer-Ml5oE6oX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-coarse-pointer-Ml5oE6oX.js","names":["scrollParent","p","el","s","COARSE","subscribe","query","onChange","coarse","useCoarsePointer","useSyncExternalStore"],"sources":["../../src/hooks/scroll-parent.ts","../../src/hooks/use-coarse-pointer.ts"],"sourcesContent":["export function scrollParent(el: HTMLElement | null): HTMLElement | null {\n let p = el?.parentElement ?? null;\n while (p) {\n const s = getComputedStyle(p);\n if (/(auto|scroll|overlay)/.test(s.overflowY) && p.scrollHeight > p.clientHeight) return p;\n p = p.parentElement;\n }\n return (document.scrollingElement as HTMLElement | null) ?? null;\n}\n","import { useSyncExternalStore } from \"react\";\n\nconst COARSE = \"(pointer: coarse)\";\n\nfunction subscribe(onChange: () => void) {\n if (typeof window === \"undefined\" || !window.matchMedia) return () => {};\n const query = window.matchMedia(COARSE);\n query.addEventListener(\"change\", onChange);\n return () => query.removeEventListener(\"change\", onChange);\n}\n\nconst coarse = () => typeof window !== \"undefined\" && !!window.matchMedia?.(COARSE).matches;\n\nexport function useCoarsePointer(): boolean {\n return useSyncExternalStore(subscribe, coarse, () => false);\n}\n"],"mappings":";;;AAAA,SAAgBA,EAAa,GAA4C;CACvE,IAAIC,IAAIC,GAAI,iBAAiB;CAC7B,OAAOD,IAAG;EACR,IAAME,IAAI,iBAAiBF,CAAC;EAC5B,IAAI,wBAAwB,KAAKE,EAAE,SAAS,KAAKF,EAAE,eAAeA,EAAE,cAAc,OAAOA;EACzF,IAAIA,EAAE;CACR;CACA,OAAQ,SAAS,oBAA2C;AAC9D;;;ACNA,IAAMG,IAAS;AAEf,SAASC,EAAU,GAAsB;CACvC,IAAI,OAAO,SAAW,OAAe,CAAC,OAAO,YAAY,aAAa,CAAC;CACvE,IAAMC,IAAQ,OAAO,WAAWF,CAAM;CAEtC,OADAE,EAAM,iBAAiB,UAAUC,CAAQ,SAC5BD,EAAM,oBAAoB,UAAUC,CAAQ;AAC3D;AAEA,IAAMC,UAAe,OAAO,SAAW,OAAe,CAAC,CAAC,OAAO,aAAaJ,CAAM,CAAC,CAAC;AAEpF,SAAgBK,IAA4B;CAC1C,OAAOC,EAAqBL,GAAWG,SAAc,EAAK;AAC5D"}
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import { useSyncExternalStore as e } from "react";
3
+ //#region src/hooks/use-hydrating.ts
4
+ var t = () => () => void 0, n = () => !1, r = () => !0, i = () => e(t, n, r);
5
+ //#endregion
6
+ export { i as t };
7
+
8
+ //# sourceMappingURL=use-hydrating-COtYVRo4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-hydrating-COtYVRo4.js","names":["noSubscription","notHydrating","isHydrating","useHydrating","useSyncExternalStore"],"sources":["../../src/hooks/use-hydrating.ts"],"sourcesContent":["import { useSyncExternalStore } from \"react\";\n\nconst noSubscription = () => () => undefined;\nconst notHydrating = () => false;\nconst isHydrating = () => true;\n\nexport const useHydrating = (): boolean => useSyncExternalStore(noSubscription, notHydrating, isHydrating);\n"],"mappings":";;;AAEA,IAAMA,gBAA6B,KAAA,GAC7BC,UAAqB,IACrBC,UAAoB,IAEbC,UAA8BC,EAAqBJ,GAAgBC,GAAcC,CAAW"}
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ import { t as e } from "./observe-resize-DhxhmoyB.js";
3
+ import { useEffect as t } from "react";
4
+ //#region src/hooks/use-scroll-fade.ts
5
+ function n(e, t, n) {
6
+ n > 0 ? e.style.setProperty(t, `${n}px`) : e.style.removeProperty(t);
7
+ }
8
+ function r(r, i, a) {
9
+ t(() => {
10
+ let t = r.current;
11
+ if (!t) return;
12
+ let a = () => {
13
+ let e = Math.abs(t.scrollLeft);
14
+ n(t, "--scroll-area-overflow-x-start", e), n(t, "--scroll-area-overflow-x-end", t.scrollWidth - t.clientWidth - e);
15
+ };
16
+ a(), t.addEventListener("scroll", a, { passive: !0 });
17
+ let o = t.querySelector(i), s = e(o ? [t, o] : [t], a);
18
+ return () => {
19
+ t.removeEventListener("scroll", a), s();
20
+ };
21
+ }, [
22
+ r,
23
+ i,
24
+ a
25
+ ]);
26
+ }
27
+ //#endregion
28
+ export { r as t };
29
+
30
+ //# sourceMappingURL=use-scroll-fade-uc8mWSDX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-scroll-fade-uc8mWSDX.js","names":["observeResize","setLength","px","el","name","useScrollFadeX","ref","update","start","inner","content","stop","key"],"sources":["../../src/hooks/use-scroll-fade.ts"],"sourcesContent":["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"],"mappings":";;;;AAGA,SAASC,EAAU,GAAiB,GAAc,GAAY;CAC5D,AAAIC,IAAK,IAAGC,EAAG,MAAM,YAAYC,GAAM,GAAGF,EAAG,GAAG,IAC3CC,EAAG,MAAM,eAAeC,CAAI;AACnC;AAEA,SAAgBC,EAAe,GAAoC,GAAiB,GAAe;CACjG,QAAgB;EACd,IAAMF,IAAKG,EAAI;EACf,IAAI,CAACH,GAAI;EACT,IAAMI,UAAe;GACnB,IAAMC,IAAQ,KAAK,IAAIL,EAAG,UAAU;GAEpC,AADAF,EAAUE,GAAI,kCAAkCK,CAAK,GACrDP,EAAUE,GAAI,gCAAgCA,EAAG,cAAcA,EAAG,cAAcK,CAAK;EACvF;EAEA,AADAD,EAAO,GACPJ,EAAG,iBAAiB,UAAUI,GAAQ,EAAE,SAAS,GAAK,CAAC;EACvD,IAAME,IAAQN,EAAG,cAAcO,CAAO,GAChCC,IAAOX,EAAcS,IAAQ,CAACN,GAAIM,CAAK,IAAI,CAACN,CAAE,GAAGI,CAAM;EAC7D,aAAa;GAEX,AADAJ,EAAG,oBAAoB,UAAUI,CAAM,GACvCI,EAAK;EACP;CACF,GAAG;EAACL;EAAKI;EAASE;CAAG,CAAC;AACxB"}