@logicplanes/kaeso-ui 0.4.1 → 0.4.3

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 (372) hide show
  1. package/NOTICE.md +1 -1
  2. package/ai/component-guides.md +333 -21
  3. package/ai/component-registry.json +631 -32
  4. package/ai/component-registry.md +164 -28
  5. package/ai/icons.md +3 -3
  6. package/ai/tokens.md +1 -1
  7. package/dist/blocks/delete-resource.js +15 -14
  8. package/dist/blocks/delete-resource.js.map +1 -1
  9. package/dist/blocks/pages.js +5 -5
  10. package/dist/blocks/resource-list.js +42 -41
  11. package/dist/blocks/resource-list.js.map +1 -1
  12. package/dist/chunks/agent-avatar-0pdBTWkR.js +171 -0
  13. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +1 -0
  14. package/dist/chunks/{app-frame-DZPEf2NQ.js → app-frame-DogGRmsu.js} +23 -22
  15. package/dist/chunks/app-frame-DogGRmsu.js.map +1 -0
  16. package/dist/chunks/{avatar-HnvBUoe5.js → avatar-CWbdwbJv.js} +2 -2
  17. package/dist/chunks/{avatar-HnvBUoe5.js.map → avatar-CWbdwbJv.js.map} +1 -1
  18. package/dist/chunks/{badge-CM8ahjDR.js → badge-C2KtxCLB.js} +2 -2
  19. package/dist/chunks/{badge-CM8ahjDR.js.map → badge-C2KtxCLB.js.map} +1 -1
  20. package/dist/chunks/{banner-CvYgPwCc.js → banner-BA2ALw9M.js} +4 -4
  21. package/dist/chunks/{banner-CvYgPwCc.js.map → banner-BA2ALw9M.js.map} +1 -1
  22. package/dist/chunks/{button-9q66Ta23.js → button-CzuxqawA.js} +8 -8
  23. package/dist/chunks/{button-9q66Ta23.js.map → button-CzuxqawA.js.map} +1 -1
  24. package/dist/chunks/{calendar-CeNcqLFd.js → calendar-BWaf2MXc.js} +58 -42
  25. package/dist/chunks/calendar-BWaf2MXc.js.map +1 -0
  26. package/dist/chunks/{checkbox-C_DrNA2N.js → checkbox-CQjwCPkc.js} +12 -10
  27. package/dist/chunks/checkbox-CQjwCPkc.js.map +1 -0
  28. package/dist/chunks/{cn-Isw2DnQX.js → cn-Dj6sRgkF.js} +8 -1
  29. package/dist/chunks/cn-Dj6sRgkF.js.map +1 -0
  30. package/dist/chunks/{code-block-mEH6Sy3h.js → code-block-D5A-CGXG.js} +75 -54
  31. package/dist/chunks/code-block-D5A-CGXG.js.map +1 -0
  32. package/dist/chunks/{code-Bp2p9AuD.js → code-tqj0uhBL.js} +2 -2
  33. package/dist/chunks/{code-Bp2p9AuD.js.map → code-tqj0uhBL.js.map} +1 -1
  34. package/dist/chunks/{collapsible-CtQNJn9b.js → collapsible-CKrCX_T9.js} +3 -3
  35. package/dist/chunks/{collapsible-CtQNJn9b.js.map → collapsible-CKrCX_T9.js.map} +1 -1
  36. package/dist/chunks/combobox-DjDI7SUC.js +319 -0
  37. package/dist/chunks/combobox-DjDI7SUC.js.map +1 -0
  38. package/dist/chunks/{command-list-CzMbdtJs.js → command-list-C2Y7V_lt.js} +54 -54
  39. package/dist/chunks/command-list-C2Y7V_lt.js.map +1 -0
  40. package/dist/chunks/{copy-button-Cdea0wKl.js → copy-button-FJvPJn72.js} +5 -5
  41. package/dist/chunks/{copy-button-Cdea0wKl.js.map → copy-button-FJvPJn72.js.map} +1 -1
  42. package/dist/chunks/{core-FtMDNELx.js → core-BYns5ytV.js} +146 -140
  43. package/dist/chunks/core-BYns5ytV.js.map +1 -0
  44. package/dist/chunks/{date-popup-NytWvSNh.js → date-popup-CPA_zt6o.js} +4 -4
  45. package/dist/chunks/{date-popup-NytWvSNh.js.map → date-popup-CPA_zt6o.js.map} +1 -1
  46. package/dist/chunks/{de-BnNQtBSV.js → de-CPXJh9cq.js} +3 -1
  47. package/dist/chunks/de-CPXJh9cq.js.map +1 -0
  48. package/dist/chunks/dialog-Cg9A_6SF.js +383 -0
  49. package/dist/chunks/dialog-Cg9A_6SF.js.map +1 -0
  50. package/dist/chunks/{empty-By1qTJr6.js → empty-DvhyMXQq.js} +2 -2
  51. package/dist/chunks/{empty-By1qTJr6.js.map → empty-DvhyMXQq.js.map} +1 -1
  52. package/dist/chunks/{field-DfITT6Jm.js → field-TviMvYa2.js} +2 -2
  53. package/dist/chunks/{field-DfITT6Jm.js.map → field-TviMvYa2.js.map} +1 -1
  54. package/dist/chunks/{icon-D5uD_mnL.js → icon-D7ja-_Yk.js} +2 -2
  55. package/dist/chunks/{icon-D5uD_mnL.js.map → icon-D7ja-_Yk.js.map} +1 -1
  56. package/dist/chunks/icon-DVooQfk4.js +94 -0
  57. package/dist/chunks/icon-DVooQfk4.js.map +1 -0
  58. package/dist/chunks/{icon-button-C7Du4pvb.js → icon-button-CrdF_eMG.js} +3 -3
  59. package/dist/chunks/{icon-button-C7Du4pvb.js.map → icon-button-CrdF_eMG.js.map} +1 -1
  60. package/dist/chunks/{identity-BcVQd-7H.js → identity-BmhQ6BQ-.js} +18 -18
  61. package/dist/chunks/identity-BmhQ6BQ-.js.map +1 -0
  62. package/dist/chunks/{input-B6Docqrk.js → input-2VJuj_M4.js} +13 -8
  63. package/dist/chunks/input-2VJuj_M4.js.map +1 -0
  64. package/dist/chunks/{input-group-Dgdb0JpZ.js → input-group-DQ_4DoXg.js} +4 -4
  65. package/dist/chunks/{input-group-Dgdb0JpZ.js.map → input-group-DQ_4DoXg.js.map} +1 -1
  66. package/dist/chunks/{inset-BnBj8NJV.js → inset-BUzyXLK4.js} +14 -4
  67. package/dist/chunks/inset-BUzyXLK4.js.map +1 -0
  68. package/dist/chunks/{iso-field-SOZ7Z-yE.js → iso-field-B2rTwiBo.js} +2 -2
  69. package/dist/chunks/{iso-field-SOZ7Z-yE.js.map → iso-field-B2rTwiBo.js.map} +1 -1
  70. package/dist/chunks/{json-view-DCTMY_j4.js → json-view-Dqd2TDkc.js} +3 -3
  71. package/dist/chunks/{json-view-DCTMY_j4.js.map → json-view-Dqd2TDkc.js.map} +1 -1
  72. package/dist/chunks/{kbd-9A9rX60U.js → kbd-BF1vKXJf.js} +2 -2
  73. package/dist/chunks/{kbd-9A9rX60U.js.map → kbd-BF1vKXJf.js.map} +1 -1
  74. package/dist/chunks/{link-CtII7u3h.js → link-KWI7PevW.js} +4 -4
  75. package/dist/chunks/{link-CtII7u3h.js.map → link-KWI7PevW.js.map} +1 -1
  76. package/dist/chunks/link-provider-cvl8lSTT.js +29 -0
  77. package/dist/chunks/link-provider-cvl8lSTT.js.map +1 -0
  78. package/dist/chunks/{list-CMXBTVkI.js → list-M1csq-d4.js} +21 -19
  79. package/dist/chunks/{list-CMXBTVkI.js.map → list-M1csq-d4.js.map} +1 -1
  80. package/dist/chunks/{loader-DqOUwS1j.js → loader-DCfPndXa.js} +2 -2
  81. package/dist/chunks/{loader-DqOUwS1j.js.map → loader-DCfPndXa.js.map} +1 -1
  82. package/dist/chunks/{markdown-CwVQ0niB.js → markdown-DULktoTK.js} +9 -9
  83. package/dist/chunks/{markdown-CwVQ0niB.js.map → markdown-DULktoTK.js.map} +1 -1
  84. package/dist/chunks/{menu-Cjg4RggA.js → menu-DEmBfdPm.js} +32 -29
  85. package/dist/chunks/menu-DEmBfdPm.js.map +1 -0
  86. package/dist/chunks/{meter-VrC2J2GF.js → meter-Bj4N3Xuh.js} +2 -2
  87. package/dist/chunks/{meter-VrC2J2GF.js.map → meter-Bj4N3Xuh.js.map} +1 -1
  88. package/dist/chunks/nav-sheet-CzgIwgAm.js +60 -0
  89. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +1 -0
  90. package/dist/chunks/{nav-wordmark-CjWM3NYa.js → nav-wordmark-_pjheAsZ.js} +2 -2
  91. package/dist/chunks/{nav-wordmark-CjWM3NYa.js.map → nav-wordmark-_pjheAsZ.js.map} +1 -1
  92. package/dist/chunks/{page-header-CZCQVHYE.js → page-header-DL2y2iZp.js} +4 -4
  93. package/dist/chunks/{page-header-CZCQVHYE.js.map → page-header-DL2y2iZp.js.map} +1 -1
  94. package/dist/chunks/{pagination-BStrMDqM.js → pagination-Cn_qF4cg.js} +4 -4
  95. package/dist/chunks/{pagination-BStrMDqM.js.map → pagination-Cn_qF4cg.js.map} +1 -1
  96. package/dist/chunks/{picker-popover-BerQAEBT.js → picker-popover-BxyU1U9F.js} +17 -16
  97. package/dist/chunks/{picker-popover-BerQAEBT.js.map → picker-popover-BxyU1U9F.js.map} +1 -1
  98. package/dist/chunks/{popover-CgLt_4yG.js → popover-DNN4S47w.js} +3 -3
  99. package/dist/chunks/{popover-CgLt_4yG.js.map → popover-DNN4S47w.js.map} +1 -1
  100. package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -1
  101. package/dist/chunks/{radio-07Muf4cX.js → radio-CDDFpdtL.js} +5 -5
  102. package/dist/chunks/{radio-07Muf4cX.js.map → radio-CDDFpdtL.js.map} +1 -1
  103. package/dist/chunks/{range-popup-BCov1iPe.js → range-popup-CRyWYUB1.js} +6 -6
  104. package/dist/chunks/{range-popup-BCov1iPe.js.map → range-popup-CRyWYUB1.js.map} +1 -1
  105. package/dist/chunks/{release-art-69WpgVik.js → release-art-ZwfFQImt.js} +2 -2
  106. package/dist/chunks/{release-art-69WpgVik.js.map → release-art-ZwfFQImt.js.map} +1 -1
  107. package/dist/chunks/{rights-UVngOX_4.js → rights-Cyp0Pzp-.js} +9 -9
  108. package/dist/chunks/{rights-UVngOX_4.js.map → rights-Cyp0Pzp-.js.map} +1 -1
  109. package/dist/chunks/scroll-area-D8MD7Vpo.js +42 -0
  110. package/dist/chunks/scroll-area-D8MD7Vpo.js.map +1 -0
  111. package/dist/chunks/{section-Bvg0EUnr.js → section-Ce1efbsP.js} +3 -3
  112. package/dist/chunks/{section-Bvg0EUnr.js.map → section-Ce1efbsP.js.map} +1 -1
  113. package/dist/chunks/{segmented-DRLDN8EW.js → segmented-CErcoxwi.js} +4 -4
  114. package/dist/chunks/{segmented-DRLDN8EW.js.map → segmented-CErcoxwi.js.map} +1 -1
  115. package/dist/chunks/{select-eFTHLeYG.js → select-x4XVsdCI.js} +4 -4
  116. package/dist/chunks/{select-eFTHLeYG.js.map → select-x4XVsdCI.js.map} +1 -1
  117. package/dist/chunks/{separator-D86IW7Ge.js → separator-D7TzNHmX.js} +2 -2
  118. package/dist/chunks/{separator-D86IW7Ge.js.map → separator-D7TzNHmX.js.map} +1 -1
  119. package/dist/chunks/{sidebar-DifJ5KgE.js → sidebar-3r1ZRXlN.js} +255 -237
  120. package/dist/chunks/sidebar-3r1ZRXlN.js.map +1 -0
  121. package/dist/chunks/{sidebar-menu-XKOiwrQp.js → sidebar-menu-BN3jkTlK.js} +2 -2
  122. package/dist/chunks/{sidebar-menu-XKOiwrQp.js.map → sidebar-menu-BN3jkTlK.js.map} +1 -1
  123. package/dist/chunks/{skeleton-Cu74kGJA.js → skeleton-Dcz57Zyp.js} +2 -2
  124. package/dist/chunks/{skeleton-Cu74kGJA.js.map → skeleton-Dcz57Zyp.js.map} +1 -1
  125. package/dist/chunks/{slider-Dh0qq1wa.js → slider-Ci83PGtj.js} +2 -2
  126. package/dist/chunks/{slider-Dh0qq1wa.js.map → slider-Ci83PGtj.js.map} +1 -1
  127. package/dist/chunks/{status-dot-u4Izk-uC.js → status-dot-QJTF0Yv4.js} +3 -3
  128. package/dist/chunks/{status-dot-u4Izk-uC.js.map → status-dot-QJTF0Yv4.js.map} +1 -1
  129. package/dist/chunks/{swap-text-CC77iKJF.js → swap-text-Dr0Irxz6.js} +2 -2
  130. package/dist/chunks/{swap-text-CC77iKJF.js.map → swap-text-Dr0Irxz6.js.map} +1 -1
  131. package/dist/chunks/{switch-CbU9m9gi.js → switch-BNMq_kGt.js} +3 -3
  132. package/dist/chunks/{switch-CbU9m9gi.js.map → switch-BNMq_kGt.js.map} +1 -1
  133. package/dist/chunks/table-BeOSKl_3.js +84 -0
  134. package/dist/chunks/table-BeOSKl_3.js.map +1 -0
  135. package/dist/chunks/{tag-CqSk8F7M.js → tag-D_M1s2qS.js} +4 -4
  136. package/dist/chunks/{tag-CqSk8F7M.js.map → tag-D_M1s2qS.js.map} +1 -1
  137. package/dist/chunks/{text-hFc6TDp9.js → text-CIXH8rmT.js} +3 -3
  138. package/dist/chunks/{text-hFc6TDp9.js.map → text-CIXH8rmT.js.map} +1 -1
  139. package/dist/chunks/{textarea-17Ftvph_.js → textarea--4FRL3Pb.js} +5 -5
  140. package/dist/chunks/{textarea-17Ftvph_.js.map → textarea--4FRL3Pb.js.map} +1 -1
  141. package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -1
  142. package/dist/chunks/{timeseries-CbnSFD5q.js → timeseries-D1xjRXfk.js} +3 -3
  143. package/dist/chunks/{timeseries-CbnSFD5q.js.map → timeseries-D1xjRXfk.js.map} +1 -1
  144. package/dist/chunks/{toolbar-B_960Ttx.js → toolbar-WA_oZgu-.js} +6 -5
  145. package/dist/chunks/{toolbar-B_960Ttx.js.map → toolbar-WA_oZgu-.js.map} +1 -1
  146. package/dist/chunks/tooltip-OcwO0VUT.js +154 -0
  147. package/dist/chunks/tooltip-OcwO0VUT.js.map +1 -0
  148. package/dist/chunks/{tooltip-root-Dssjjp-E.js → tooltip-root-DzahJDVj.js} +4 -4
  149. package/dist/chunks/{tooltip-root-Dssjjp-E.js.map → tooltip-root-DzahJDVj.js.map} +1 -1
  150. package/dist/chunks/{use-scroll-margin-DfdTc_5D.js → use-scroll-margin-atRtf0v_.js} +14 -10
  151. package/dist/chunks/use-scroll-margin-atRtf0v_.js.map +1 -0
  152. package/dist/chunks/{virtual-rows-yAMjeAwj.js → virtual-rows-CC_kc2PR.js} +2 -2
  153. package/dist/chunks/{virtual-rows-yAMjeAwj.js.map → virtual-rows-CC_kc2PR.js.map} +1 -1
  154. package/dist/chunks/{zh-CN-CKffAT7j.js → zh-CN-29X4CDLE.js} +3 -1
  155. package/dist/chunks/zh-CN-29X4CDLE.js.map +1 -0
  156. package/dist/components/agent-avatar.js +2 -0
  157. package/dist/components/app-frame.js +2 -2
  158. package/dist/components/avatar.js +1 -1
  159. package/dist/components/badge.js +1 -1
  160. package/dist/components/banner.js +1 -1
  161. package/dist/components/button-group.js +4 -4
  162. package/dist/components/button.js +1 -1
  163. package/dist/components/calendar.js +1 -1
  164. package/dist/components/charts/bar.js +2 -2
  165. package/dist/components/charts/donut.js +2 -2
  166. package/dist/components/charts/gauge.js +2 -2
  167. package/dist/components/charts/heatmap.js +1 -1
  168. package/dist/components/charts/sankey.js +2 -2
  169. package/dist/components/charts/sparkline.js +1 -1
  170. package/dist/components/charts/timeseries.js +1 -1
  171. package/dist/components/charts.js +2 -2
  172. package/dist/components/checkbox.js +1 -1
  173. package/dist/components/code-block.js +2 -2
  174. package/dist/components/code.js +1 -1
  175. package/dist/components/collapsible.js +1 -1
  176. package/dist/components/combobox.js +1 -1
  177. package/dist/components/command-list.js +2 -2
  178. package/dist/components/command-palette.js +89 -84
  179. package/dist/components/command-palette.js.map +1 -1
  180. package/dist/components/copy-button.js +1 -1
  181. package/dist/components/data-table.js +193 -189
  182. package/dist/components/data-table.js.map +1 -1
  183. package/dist/components/date-picker.js +9 -7
  184. package/dist/components/date-picker.js.map +1 -1
  185. package/dist/components/dialog.js +125 -91
  186. package/dist/components/dialog.js.map +1 -1
  187. package/dist/components/display-options.js +52 -49
  188. package/dist/components/display-options.js.map +1 -1
  189. package/dist/components/empty.js +1 -1
  190. package/dist/components/field.js +1 -1
  191. package/dist/components/figure.js +60 -0
  192. package/dist/components/figure.js.map +1 -0
  193. package/dist/components/filter-chip.js +5 -5
  194. package/dist/components/filter-chip.js.map +1 -1
  195. package/dist/components/filter-row.js +2 -2
  196. package/dist/components/flow.js +2 -2
  197. package/dist/components/heading.js +1 -1
  198. package/dist/components/icon-button.js +1 -1
  199. package/dist/components/icon.js +2 -2
  200. package/dist/components/input.js +51 -51
  201. package/dist/components/input.js.map +1 -1
  202. package/dist/components/kaeso/conversation.js +8 -8
  203. package/dist/components/kaeso/identity.js +1 -1
  204. package/dist/components/kaeso/moments.js +5 -5
  205. package/dist/components/kaeso/rights.js +1 -1
  206. package/dist/components/kaeso/usage.js +12 -12
  207. package/dist/components/kaeso/usage.js.map +1 -1
  208. package/dist/components/kaeso.js +264 -96
  209. package/dist/components/kaeso.js.map +1 -1
  210. package/dist/components/kbd.js +1 -1
  211. package/dist/components/key-value.js +3 -3
  212. package/dist/components/label.js +1 -1
  213. package/dist/components/layout.js +1 -1
  214. package/dist/components/link.js +1 -1
  215. package/dist/components/list.js +1 -1
  216. package/dist/components/loader.js +2 -2
  217. package/dist/components/logo.js +2 -2
  218. package/dist/components/markdown.js +1 -1
  219. package/dist/components/menu.js +2 -2
  220. package/dist/components/meter.js +1 -1
  221. package/dist/components/page-header.js +1 -1
  222. package/dist/components/pagination.js +1 -1
  223. package/dist/components/playground.js +32 -31
  224. package/dist/components/playground.js.map +1 -1
  225. package/dist/components/popover.js +13 -12
  226. package/dist/components/popover.js.map +1 -1
  227. package/dist/components/qr-code.js +1 -1
  228. package/dist/components/radio.js +1 -1
  229. package/dist/components/release-art.js +1 -1
  230. package/dist/components/scroll-area.js +1 -41
  231. package/dist/components/section.js +1 -1
  232. package/dist/components/segmented.js +1 -1
  233. package/dist/components/select.js +1 -1
  234. package/dist/components/separator.js +1 -1
  235. package/dist/components/settings.js +10 -10
  236. package/dist/components/settings.js.map +1 -1
  237. package/dist/components/sheet.js +3 -3
  238. package/dist/components/sidebar.js +1 -1
  239. package/dist/components/skeleton.js +1 -1
  240. package/dist/components/slider.js +1 -1
  241. package/dist/components/stat.js +3 -3
  242. package/dist/components/status-dot.js +1 -1
  243. package/dist/components/surface.js +1 -1
  244. package/dist/components/swap-text.js +1 -1
  245. package/dist/components/switch.js +1 -1
  246. package/dist/components/table.js +1 -1
  247. package/dist/components/tabs.js +24 -24
  248. package/dist/components/tabs.js.map +1 -1
  249. package/dist/components/tag.js +1 -1
  250. package/dist/components/text.js +1 -1
  251. package/dist/components/theme-image.js +1 -1
  252. package/dist/components/theme-menu.js +33 -30
  253. package/dist/components/theme-menu.js.map +1 -1
  254. package/dist/components/theme-select.js +1 -1
  255. package/dist/components/thumbnail.js +41 -0
  256. package/dist/components/thumbnail.js.map +1 -0
  257. package/dist/components/timeline.js +1 -1
  258. package/dist/components/toast.js +100 -91
  259. package/dist/components/toast.js.map +1 -1
  260. package/dist/components/toc.js +37 -22
  261. package/dist/components/toc.js.map +1 -1
  262. package/dist/components/toolbar.js +1 -1
  263. package/dist/components/tooltip.js +1 -1
  264. package/dist/components/visually-hidden.js +1 -1
  265. package/dist/format.js.map +1 -1
  266. package/dist/i18n-provider.js +1 -1
  267. package/dist/index.js +99 -95
  268. package/dist/kaeso.css +3 -0
  269. package/dist/styles.css +1 -1
  270. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -5
  271. package/dist/types/blocks/resource-list/resource-list.d.ts +1 -4
  272. package/dist/types/component-docs.d.ts +1 -1
  273. package/dist/types/components/agent-avatar/agent-avatar.d.ts +94 -0
  274. package/dist/types/components/agent-avatar/docs.d.ts +19 -0
  275. package/dist/types/components/agent-avatar/index.d.ts +3 -0
  276. package/dist/types/components/agent-avatar/model-name.d.ts +9 -0
  277. package/dist/types/components/agent-avatar/models.d.ts +4 -0
  278. package/dist/types/components/app-frame/app-frame.d.ts +3 -8
  279. package/dist/types/components/app-frame/nav-sheet.d.ts +2 -4
  280. package/dist/types/components/calendar/calendar.d.ts +1 -4
  281. package/dist/types/components/charts/core.d.ts +11 -18
  282. package/dist/types/components/checkbox/checkbox.d.ts +2 -0
  283. package/dist/types/components/code-block/code-block.d.ts +1 -1
  284. package/dist/types/components/code-block/indent.d.ts +3 -0
  285. package/dist/types/components/combobox/combobox.d.ts +26 -2
  286. package/dist/types/components/command-list/command-list.d.ts +1 -0
  287. package/dist/types/components/command-list/docs.d.ts +1 -0
  288. package/dist/types/components/command-list/picker-popover.d.ts +1 -4
  289. package/dist/types/components/command-palette/command-palette.d.ts +2 -4
  290. package/dist/types/components/command-palette/docs.d.ts +1 -0
  291. package/dist/types/components/data-table/data-table.d.ts +2 -1
  292. package/dist/types/components/data-table/docs.d.ts +1 -0
  293. package/dist/types/components/dialog/dialog.d.ts +7 -9
  294. package/dist/types/components/dialog/docs.d.ts +2 -0
  295. package/dist/types/components/dialog/scope.d.ts +2 -0
  296. package/dist/types/components/dialog/step-dialog.d.ts +38 -5
  297. package/dist/types/components/display-options/display-options.d.ts +2 -5
  298. package/dist/types/components/figure/docs.d.ts +12 -0
  299. package/dist/types/components/figure/figure.d.ts +25 -0
  300. package/dist/types/components/figure/index.d.ts +1 -0
  301. package/dist/types/components/input/input.d.ts +23 -0
  302. package/dist/types/components/kaeso/client-button.d.ts +17 -0
  303. package/dist/types/components/kaeso/docs.d.ts +18 -0
  304. package/dist/types/components/kaeso/grant-summary.d.ts +12 -0
  305. package/dist/types/components/kaeso/identity.d.ts +2 -0
  306. package/dist/types/components/kaeso/index.d.ts +2 -0
  307. package/dist/types/components/kaeso/provider-picker.d.ts +5 -0
  308. package/dist/types/components/kaeso/usage.d.ts +2 -0
  309. package/dist/types/components/list/list.d.ts +4 -8
  310. package/dist/types/components/menu/docs.d.ts +8 -1
  311. package/dist/types/components/menu/menu.d.ts +19 -31
  312. package/dist/types/components/playground/parameter-panel.d.ts +1 -4
  313. package/dist/types/components/popover/hover-card.d.ts +2 -0
  314. package/dist/types/components/radio/docs.d.ts +15 -0
  315. package/dist/types/components/radio/radio.d.ts +2 -4
  316. package/dist/types/components/settings/settings.d.ts +2 -0
  317. package/dist/types/components/sidebar/sidebar.d.ts +13 -35
  318. package/dist/types/components/table/docs.d.ts +3 -1
  319. package/dist/types/components/table/table.d.ts +18 -1
  320. package/dist/types/components/tabs/tabs.d.ts +15 -0
  321. package/dist/types/components/theme-menu/docs.d.ts +2 -0
  322. package/dist/types/components/theme-menu/theme-menu.d.ts +6 -5
  323. package/dist/types/components/thumbnail/docs.d.ts +10 -0
  324. package/dist/types/components/thumbnail/index.d.ts +1 -0
  325. package/dist/types/components/thumbnail/thumbnail.d.ts +26 -0
  326. package/dist/types/components/toast/toast.d.ts +5 -12
  327. package/dist/types/components/toolbar/toolbar.d.ts +1 -6
  328. package/dist/types/components/tooltip/tooltip.d.ts +2 -4
  329. package/dist/types/components/tooltip/trigger-props.d.ts +0 -1
  330. package/dist/types/format/index.d.ts +5 -5
  331. package/dist/types/hooks/use-scroll-margin.d.ts +1 -1
  332. package/dist/types/icons/groups.d.ts +2 -2
  333. package/dist/types/icons/vocabulary.d.ts +15 -0
  334. package/dist/types/index.d.ts +3 -0
  335. package/dist/types/utils/cn.d.ts +4 -0
  336. package/dist/types/utils/inset.d.ts +4 -0
  337. package/dist/types/utils/link-provider.d.ts +1 -1
  338. package/dist/types/utils/merge-refs.d.ts +3 -0
  339. package/dist/types/utils/portal-context.d.ts +1 -1
  340. package/dist/utils.js +4 -4
  341. package/foundations/shape.md +1 -1
  342. package/package.json +3 -3
  343. package/dist/chunks/app-frame-DZPEf2NQ.js.map +0 -1
  344. package/dist/chunks/calendar-CeNcqLFd.js.map +0 -1
  345. package/dist/chunks/checkbox-C_DrNA2N.js.map +0 -1
  346. package/dist/chunks/cn-Isw2DnQX.js.map +0 -1
  347. package/dist/chunks/code-block-mEH6Sy3h.js.map +0 -1
  348. package/dist/chunks/combobox-D8ZOm8uT.js +0 -314
  349. package/dist/chunks/combobox-D8ZOm8uT.js.map +0 -1
  350. package/dist/chunks/command-list-CzMbdtJs.js.map +0 -1
  351. package/dist/chunks/core-FtMDNELx.js.map +0 -1
  352. package/dist/chunks/de-BnNQtBSV.js.map +0 -1
  353. package/dist/chunks/dialog-BZCVFmGF.js +0 -353
  354. package/dist/chunks/dialog-BZCVFmGF.js.map +0 -1
  355. package/dist/chunks/icon-CBzvyEqC.js +0 -91
  356. package/dist/chunks/icon-CBzvyEqC.js.map +0 -1
  357. package/dist/chunks/identity-BcVQd-7H.js.map +0 -1
  358. package/dist/chunks/input-B6Docqrk.js.map +0 -1
  359. package/dist/chunks/inset-BnBj8NJV.js.map +0 -1
  360. package/dist/chunks/link-provider-BsUxhZKG.js +0 -27
  361. package/dist/chunks/link-provider-BsUxhZKG.js.map +0 -1
  362. package/dist/chunks/menu-Cjg4RggA.js.map +0 -1
  363. package/dist/chunks/nav-sheet-Y2Ite-iF.js +0 -60
  364. package/dist/chunks/nav-sheet-Y2Ite-iF.js.map +0 -1
  365. package/dist/chunks/sidebar-DifJ5KgE.js.map +0 -1
  366. package/dist/chunks/table-CTxDp7zC.js +0 -67
  367. package/dist/chunks/table-CTxDp7zC.js.map +0 -1
  368. package/dist/chunks/tooltip-CRApbLF6.js +0 -151
  369. package/dist/chunks/tooltip-CRApbLF6.js.map +0 -1
  370. package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +0 -1
  371. package/dist/chunks/zh-CN-CKffAT7j.js.map +0 -1
  372. package/dist/components/scroll-area.js.map +0 -1
@@ -1,31 +1,31 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-Isw2DnQX.js";
2
+ import { t as e } from "../chunks/cn-Dj6sRgkF.js";
3
3
  import { r as t } from "../chunks/portal-context-BBbzDKmY.js";
4
4
  import { i as n } from "../chunks/context-BELWW79w.js";
5
- import { t as r } from "../chunks/icon-D5uD_mnL.js";
5
+ import { t as r } from "../chunks/icon-D7ja-_Yk.js";
6
6
  import { t as i } from "../chunks/observe-resize-DhxhmoyB.js";
7
- import { r as a } from "../chunks/loader-DqOUwS1j.js";
8
- import { r as o } from "../chunks/swap-text-CC77iKJF.js";
9
- import { useLayoutEffect as s, useRef as c, useState as l } from "react";
10
- import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
11
- import { Alert02Icon as p, AlertCircleIcon as m, Cancel01Icon as h, CheckmarkCircle02Icon as g, InformationCircleIcon as _ } from "@hugeicons/core-free-icons";
12
- import { Toast as v } from "@base-ui/react/toast";
7
+ import { r as a } from "../chunks/loader-DCfPndXa.js";
8
+ import { r as o } from "../chunks/swap-text-Dr0Irxz6.js";
9
+ import { forwardRef as s, useLayoutEffect as c, useRef as l, useState as u } from "react";
10
+ import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
11
+ import { Alert02Icon as m, AlertCircleIcon as h, Cancel01Icon as g, CheckmarkCircle02Icon as _, InformationCircleIcon as v } from "@hugeicons/core-free-icons";
12
+ import { Toast as y } from "@base-ui/react/toast";
13
13
  //#region src/components/toast/toast.tsx
14
- var y = { tone: {
14
+ var b = { tone: {
15
15
  neutral: { classes: "" },
16
16
  success: { classes: "text-success" },
17
17
  error: { classes: "text-danger" },
18
18
  warning: { classes: "text-warning" },
19
19
  info: { classes: "text-info" },
20
20
  loading: { classes: "text-toast-fg-secondary" }
21
- } }, b = { tone: "neutral" }, x = {
22
- success: g,
23
- error: m,
24
- warning: p,
25
- info: _
26
- }, S = /* @__PURE__ */ v.createToastManager();
27
- function C(e, t, n = {}) {
28
- return S.add({
21
+ } }, x = { tone: "neutral" }, S = {
22
+ success: _,
23
+ error: h,
24
+ warning: m,
25
+ info: v
26
+ }, C = /* @__PURE__ */ y.createToastManager();
27
+ function w(e, t, n = {}) {
28
+ return C.add({
29
29
  title: t,
30
30
  type: e,
31
31
  ...n.description === void 0 ? {} : { description: n.description },
@@ -38,19 +38,19 @@ function C(e, t, n = {}) {
38
38
  } } : {}
39
39
  });
40
40
  }
41
- var w = /* @__PURE__ */ Object.assign((e, t) => C("neutral", e, t), {
42
- success: (e, t) => C("success", e, t),
43
- error: (e, t) => C("error", e, t),
44
- warning: (e, t) => C("warning", e, t),
45
- info: (e, t) => C("info", e, t),
46
- dismiss: (e) => S.close(e),
41
+ var T = /* @__PURE__ */ Object.assign((e, t) => w("neutral", e, t), {
42
+ success: (e, t) => w("success", e, t),
43
+ error: (e, t) => w("error", e, t),
44
+ warning: (e, t) => w("warning", e, t),
45
+ info: (e, t) => w("info", e, t),
46
+ dismiss: (e) => C.close(e),
47
47
  promise: (e, t) => {
48
48
  let n = [
49
49
  t.loading,
50
50
  ...typeof t.success == "string" ? [t.success] : [],
51
51
  ...typeof t.error == "string" ? [t.error] : []
52
52
  ];
53
- return S.promise(e, {
53
+ return C.promise(e, {
54
54
  loading: {
55
55
  title: t.loading,
56
56
  type: "loading",
@@ -71,63 +71,64 @@ var w = /* @__PURE__ */ Object.assign((e, t) => C("neutral", e, t), {
71
71
  });
72
72
  }
73
73
  });
74
- function T({ tone: t }) {
75
- return t === "neutral" ? null : /* @__PURE__ */ d("span", {
76
- className: e("flex shrink-0", y.tone[t].classes),
77
- children: t === "loading" ? /* @__PURE__ */ d(a, { size: "sm" }) : /* @__PURE__ */ d(r, {
78
- icon: x[t],
74
+ function E({ tone: t }) {
75
+ return t === "neutral" ? null : /* @__PURE__ */ f("span", {
76
+ className: e("flex shrink-0", b.tone[t].classes),
77
+ children: t === "loading" ? /* @__PURE__ */ f(a, { size: "sm" }) : /* @__PURE__ */ f(r, {
78
+ icon: S[t],
79
79
  size: "sm"
80
80
  })
81
81
  });
82
82
  }
83
- var E = "relative flex min-h-44 max-w-560 items-center gap-10 bg-toast py-8 text-body font-medium text-toast-fg shadow-toast", D = "inline-flex h-32 shrink-0 cursor-pointer items-center rounded-pill bg-toast-action px-12 text-body font-medium text-toast-fg transition-control hover:bg-toast-action-hover focus-ring", O = "k-toast-close absolute -top-6 -left-6 inline-flex size-20 cursor-pointer items-center justify-center rounded-pill bg-toast text-toast-fg-secondary shadow-toast hover:text-toast-fg focus-ring";
84
- function k(e, t) {
85
- let n = c(null), [r, i] = l(!1);
86
- return s(() => {
83
+ var D = "relative flex min-h-44 max-w-560 items-center gap-10 bg-toast py-8 text-body font-medium text-toast-fg shadow-toast", O = "inline-flex h-32 shrink-0 cursor-pointer items-center rounded-pill bg-toast-action px-12 text-body font-medium text-toast-fg transition-control hover:bg-toast-action-hover focus-ring", k = "k-toast-close absolute -top-6 -left-6 inline-flex size-20 cursor-pointer items-center justify-center rounded-pill bg-toast text-toast-fg-secondary shadow-toast hover:text-toast-fg focus-ring";
84
+ function A(e, t) {
85
+ let n = l(null), [r, i] = u(!1);
86
+ return c(() => {
87
87
  let e = n.current;
88
88
  e && i(e.offsetHeight > 46);
89
89
  }, [e, t]), [n, r];
90
90
  }
91
- function A({ tone: t = "neutral", title: i, description: a, action: o, closable: s, "data-force": c }) {
92
- let [l, u] = k(i, a), p = n();
93
- return /* @__PURE__ */ f("div", {
91
+ var j = /* @__PURE__ */ s(function({ tone: t = "neutral", title: i, description: a, action: o, closable: s, "data-force": c }, l) {
92
+ let [u, d] = A(i, a), m = n();
93
+ return /* @__PURE__ */ p("div", {
94
+ ref: l,
94
95
  role: "status",
95
96
  className: "k-toast-static relative w-max",
96
- children: [/* @__PURE__ */ f("div", {
97
- ref: l,
98
- className: e(E, u ? "rounded-toast" : "rounded-pill", t === "neutral" ? "pl-16" : "pl-14", o ? "pr-6" : "pr-16"),
97
+ children: [/* @__PURE__ */ p("div", {
98
+ ref: u,
99
+ className: e(D, d ? "rounded-toast" : "rounded-pill", t === "neutral" ? "pl-16" : "pl-14", o ? "pr-6" : "pr-16"),
99
100
  children: [
100
- /* @__PURE__ */ d(T, { tone: t }),
101
- /* @__PURE__ */ f("span", {
101
+ /* @__PURE__ */ f(E, { tone: t }),
102
+ /* @__PURE__ */ p("span", {
102
103
  className: "min-w-0 text-pretty",
103
- children: [i, a && /* @__PURE__ */ f("span", {
104
+ children: [i, a && /* @__PURE__ */ p("span", {
104
105
  className: "font-regular text-toast-fg-secondary",
105
106
  children: [" ", a]
106
107
  })]
107
108
  }),
108
- o && /* @__PURE__ */ d("button", {
109
+ o && /* @__PURE__ */ f("button", {
109
110
  type: "button",
110
- className: D,
111
+ className: O,
111
112
  children: o
112
113
  })
113
114
  ]
114
- }), s && /* @__PURE__ */ d("button", {
115
+ }), s && /* @__PURE__ */ f("button", {
115
116
  type: "button",
116
- "aria-label": p("toast.dismiss", "Dismiss"),
117
- className: O,
117
+ "aria-label": m("toast.dismiss", "Dismiss"),
118
+ className: k,
118
119
  "data-force": c ? `visible ${c}` : "visible",
119
- children: /* @__PURE__ */ d(r, {
120
- icon: h,
120
+ children: /* @__PURE__ */ f(r, {
121
+ icon: g,
121
122
  size: "xs",
122
123
  className: "size-12"
123
124
  })
124
125
  })]
125
126
  });
126
- }
127
- process.env.NODE_ENV !== "production" && (A.displayName = "ToastCapsule");
128
- function j({ item: t, index: a, limit: c, onFrontWidth: l }) {
129
- let p = n(), m = t.type ?? "neutral", g = t.data?.reserve, [_, y] = k(t.title, t.description);
130
- return s(() => {
127
+ });
128
+ process.env.NODE_ENV !== "production" && (j.displayName = "ToastCapsule");
129
+ function M({ item: t, index: a, limit: s, onFrontWidth: l }) {
130
+ let u = n(), m = t.type ?? "neutral", h = t.data?.reserve, [_, v] = A(t.title, t.description);
131
+ return c(() => {
131
132
  let e = _.current;
132
133
  if (a !== 0 || !e) return;
133
134
  let t = () => l(Math.round(e.offsetWidth));
@@ -136,7 +137,7 @@ function j({ item: t, index: a, limit: c, onFrontWidth: l }) {
136
137
  a,
137
138
  l,
138
139
  _
139
- ]), /* @__PURE__ */ f(v.Root, {
140
+ ]), /* @__PURE__ */ p(y.Root, {
140
141
  toast: t,
141
142
  swipeDirection: [
142
143
  "down",
@@ -145,69 +146,77 @@ function j({ item: t, index: a, limit: c, onFrontWidth: l }) {
145
146
  ],
146
147
  className: "k-toast outline-none",
147
148
  ...a > 0 ? { "data-behind": "" } : {},
148
- ...a >= c ? { "data-index-hidden": "" } : {},
149
- children: [/* @__PURE__ */ d("div", {
149
+ ...a >= s ? { "data-index-hidden": "" } : {},
150
+ children: [/* @__PURE__ */ f("div", {
150
151
  ref: _,
151
- className: e("k-toast-surface", E, y ? "rounded-toast" : "rounded-pill", m === "neutral" ? "pl-16" : "pl-14", t.actionProps ? "pr-6" : "pr-16"),
152
- children: /* @__PURE__ */ f("div", {
152
+ className: e("k-toast-surface", D, v ? "rounded-toast" : "rounded-pill", m === "neutral" ? "pl-16" : "pl-14", t.actionProps ? "pr-6" : "pr-16"),
153
+ children: /* @__PURE__ */ p("div", {
153
154
  className: "k-toast-content flex min-w-0 items-center gap-10",
154
155
  children: [
155
- /* @__PURE__ */ d(T, { tone: m }),
156
- /* @__PURE__ */ f("span", {
156
+ /* @__PURE__ */ f(E, { tone: m }),
157
+ /* @__PURE__ */ p("span", {
157
158
  className: "min-w-0 text-pretty",
158
- children: [g ? /* @__PURE__ */ d(o, {
159
- reserve: g,
159
+ children: [h ? /* @__PURE__ */ f(o, {
160
+ reserve: h,
160
161
  align: "start",
161
- children: /* @__PURE__ */ d(v.Title, { render: /* @__PURE__ */ d("span", {}) })
162
- }) : /* @__PURE__ */ d(v.Title, { render: /* @__PURE__ */ d("span", {}) }), t.description && /* @__PURE__ */ f(u, { children: [" ", /* @__PURE__ */ d(v.Description, {
163
- render: /* @__PURE__ */ d("span", {}),
162
+ children: /* @__PURE__ */ f(y.Title, { render: /* @__PURE__ */ f("span", {}) })
163
+ }) : /* @__PURE__ */ f(y.Title, { render: /* @__PURE__ */ f("span", {}) }), t.description && /* @__PURE__ */ p(d, { children: [" ", /* @__PURE__ */ f(y.Description, {
164
+ render: /* @__PURE__ */ f("span", {}),
164
165
  className: "font-regular text-toast-fg-secondary"
165
166
  })] })]
166
167
  }),
167
- t.actionProps && /* @__PURE__ */ d(v.Action, { className: D })
168
+ t.actionProps && /* @__PURE__ */ f(y.Action, { className: O })
168
169
  ]
169
170
  })
170
- }), /* @__PURE__ */ d(v.Close, {
171
- "aria-label": p("toast.dismiss", "Dismiss"),
172
- className: O,
173
- children: /* @__PURE__ */ d(r, {
174
- icon: h,
171
+ }), /* @__PURE__ */ f(y.Close, {
172
+ "aria-label": u("toast.dismiss", "Dismiss"),
173
+ className: k,
174
+ children: /* @__PURE__ */ f(r, {
175
+ icon: g,
175
176
  size: "xs",
176
177
  className: "size-12"
177
178
  })
178
179
  })]
179
180
  });
180
181
  }
181
- function M({ limit: e }) {
182
- let { toasts: r } = v.useToastManager(), i = r.filter((e) => e.transitionStatus !== "ending"), [a, o] = l(0), s = n();
183
- return /* @__PURE__ */ d(v.Portal, {
182
+ function N({ limit: e, viewportRef: r }) {
183
+ let { toasts: i } = y.useToastManager(), a = i.filter((e) => e.transitionStatus !== "ending"), [o, s] = u(0), c = n();
184
+ return /* @__PURE__ */ f(y.Portal, {
184
185
  container: t(),
185
- children: /* @__PURE__ */ d(v.Viewport, {
186
- "aria-label": s("toast.notifications", "Notifications"),
186
+ children: /* @__PURE__ */ f(y.Viewport, {
187
+ ref: r,
188
+ "aria-label": c("toast.notifications", "Notifications"),
187
189
  className: "fixed right-0 bottom-24 left-0 z-60 mx-auto h-0 w-full toast-viewport-width outline-none",
188
- style: { "--k-front-width": a ? `${a}px` : "auto" },
189
- children: r.map((t) => /* @__PURE__ */ d(j, {
190
+ style: { "--k-front-width": o ? `${o}px` : "auto" },
191
+ children: i.map((t) => /* @__PURE__ */ f(M, {
190
192
  item: t,
191
- index: Math.max(0, i.indexOf(t)),
193
+ index: Math.max(0, a.indexOf(t)),
192
194
  limit: e,
193
- onFrontWidth: o
195
+ onFrontWidth: s
194
196
  }, t.id))
195
197
  })
196
198
  });
197
199
  }
198
- function N({ limit: e = 3, timeout: t = 5e3 }) {
199
- return /* @__PURE__ */ d(v.Provider, {
200
- toastManager: S,
200
+ var P = /* @__PURE__ */ s(function({ limit: e = 3, timeout: t = 5e3 }, n) {
201
+ return /* @__PURE__ */ f(y.Provider, {
202
+ toastManager: C,
201
203
  limit: e,
202
204
  timeout: t,
203
- children: /* @__PURE__ */ d(M, { limit: e })
205
+ children: /* @__PURE__ */ f(N, {
206
+ limit: e,
207
+ viewportRef: n
208
+ })
204
209
  });
205
- }
206
- process.env.NODE_ENV !== "production" && (N.displayName = "Toaster");
207
- var P = /* @__PURE__ */ Object.assign(function(e) {
208
- return /* @__PURE__ */ d(N, { ...e });
209
- }, { add: w });
210
+ });
211
+ process.env.NODE_ENV !== "production" && (P.displayName = "Toaster");
212
+ var F = /* @__PURE__ */ Object.assign(/* @__PURE__ */ s(function(e, t) {
213
+ return /* @__PURE__ */ f(P, {
214
+ ref: t,
215
+ ...e
216
+ });
217
+ }), { add: T });
218
+ process.env.NODE_ENV !== "production" && (F.displayName = "Toast");
210
219
  //#endregion
211
- export { b as KAESO_TOAST_DEFAULT_VARIANTS, y as KAESO_TOAST_VARIANTS, P as Toast, A as ToastCapsule, N as Toaster, w as toast, S as toastManager };
220
+ export { x as KAESO_TOAST_DEFAULT_VARIANTS, b as KAESO_TOAST_VARIANTS, F as Toast, j as ToastCapsule, P as Toaster, T as toast, C as toastManager };
212
221
 
213
222
  //# sourceMappingURL=toast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast.js","names":["__icon_CheckmarkCircle02Icon","__icon_AlertCircleIcon","__icon_Alert02Icon","__icon_InformationCircleIcon","__icon_Cancel01Icon","BaseToast","_Fragment","cn","usePortalContainer","useUiText","Icon","observeResize","Spinner","SwapText","Fragment$1","Toast$1","KAESO_TOAST_VARIANTS","KAESO_TOAST_DEFAULT_VARIANTS","ICON","CheckmarkCircle02Icon","AlertCircleIcon","Alert02Icon","InformationCircleIcon","toastManager","add","tone","o","toast","title","id","reserve","m","p","v","ToneIcon","SURFACE","ACTION","CLOSE","useMultiline","ref","useRef","multi","setMulti","useState","useLayoutEffect","el","description","ToastCapsule","force","t","action","closable","Cancel01Icon","ToastItem","item","index","report","onFrontWidth","limit","List","live","toasts","frontWidth","setFrontWidth","Toaster","Toast","props"],"sources":["../../src/components/toast/toast.tsx"],"sourcesContent":["import { useLayoutEffect, useRef, useState, type ReactNode } from \"react\";\nimport { Toast as BaseToast } from \"@base-ui/react/toast\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport { observeResize } from \"../../utils/observe-resize.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { CheckmarkCircle02Icon as __icon_CheckmarkCircle02Icon, AlertCircleIcon as __icon_AlertCircleIcon, Alert02Icon as __icon_Alert02Icon, InformationCircleIcon as __icon_InformationCircleIcon, Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Spinner } from \"../loader/loader.js\";\nimport { SwapText } from \"../swap-text/swap-text.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_TOAST_VARIANTS = {\n tone: {\n neutral: { classes: \"\" },\n success: { classes: \"text-success\" },\n error: { classes: \"text-danger\" },\n warning: { classes: \"text-warning\" },\n info: { classes: \"text-info\" },\n loading: { classes: \"text-toast-fg-secondary\" },\n },\n} as const;\nexport const KAESO_TOAST_DEFAULT_VARIANTS = { tone: \"neutral\" } as const;\ntype Tone = keyof typeof KAESO_TOAST_VARIANTS.tone;\n\nconst ICON = { success: __icon_CheckmarkCircle02Icon, error: __icon_AlertCircleIcon, warning: __icon_Alert02Icon, info: __icon_InformationCircleIcon } as const;\n\nexport const toastManager = /* @__PURE__ */ BaseToast.createToastManager();\n\nexport interface ToastOptions {\n description?: ReactNode | undefined;\n action?: { label: string; onClick: () => void } | undefined;\n timeout?: number | undefined;\n id?: string | undefined;\n}\n\ninterface ToastData {\n reserve?: ReactNode[] | undefined;\n}\n\nfunction add(tone: Tone, title: ReactNode, o: ToastOptions = {}) {\n return toastManager.add({\n title,\n type: tone,\n ...(o.description !== undefined ? { description: o.description } : {}),\n ...(o.timeout !== undefined ? { timeout: o.timeout } : {}),\n ...(o.id ? { id: o.id } : {}),\n ...(tone === \"error\" ? { priority: \"high\" as const } : {}),\n ...(o.action ? { actionProps: { children: o.action.label, onClick: o.action.onClick } } : {}),\n });\n}\n\nexport const toast = /* @__PURE__ */ Object.assign((title: ReactNode, o?: ToastOptions) => add(\"neutral\", title, o), {\n success: (title: ReactNode, o?: ToastOptions) => add(\"success\", title, o),\n error: (title: ReactNode, o?: ToastOptions) => add(\"error\", title, o),\n warning: (title: ReactNode, o?: ToastOptions) => add(\"warning\", title, o),\n info: (title: ReactNode, o?: ToastOptions) => add(\"info\", title, o),\n dismiss: (id?: string) => toastManager.close(id),\n promise: <T,>(p: Promise<T>, m: { loading: string; success: string | ((v: T) => string); error: string | ((e: unknown) => string) }) => {\n const reserve = [m.loading, ...(typeof m.success === \"string\" ? [m.success] : []), ...(typeof m.error === \"string\" ? [m.error] : [])];\n return toastManager.promise(p, {\n loading: { title: m.loading, type: \"loading\", timeout: 0, data: { reserve } },\n success: (v: T) => ({ title: typeof m.success === \"function\" ? m.success(v) : m.success, type: \"success\", data: { reserve } }),\n error: (e: unknown) => ({ title: typeof m.error === \"function\" ? m.error(e) : m.error, type: \"error\", priority: \"high\", data: { reserve } }),\n });\n },\n});\n\nfunction ToneIcon({ tone }: { tone: Tone }) {\n if (tone === \"neutral\") return null;\n return (\n <span className={cn(\"flex shrink-0\", KAESO_TOAST_VARIANTS.tone[tone].classes)}>\n {tone === \"loading\" ? <Spinner size=\"sm\" /> : <Icon icon={ICON[tone]} size=\"sm\" />}\n </span>\n );\n}\n\nconst SURFACE = \"relative flex min-h-44 max-w-560 items-center gap-10 bg-toast py-8 text-body font-medium text-toast-fg shadow-toast\";\nconst ACTION =\n \"inline-flex h-32 shrink-0 cursor-pointer items-center rounded-pill bg-toast-action px-12 text-body font-medium text-toast-fg transition-control hover:bg-toast-action-hover focus-ring\";\nconst CLOSE =\n \"k-toast-close absolute -top-6 -left-6 inline-flex size-20 cursor-pointer items-center justify-center rounded-pill bg-toast text-toast-fg-secondary shadow-toast hover:text-toast-fg focus-ring\";\n\nfunction useMultiline(title: ReactNode, description: ReactNode) {\n const ref = useRef<HTMLDivElement>(null);\n const [multi, setMulti] = useState(false);\n useLayoutEffect(() => {\n const el = ref.current;\n if (el) setMulti(el.offsetHeight > 46);\n }, [title, description]);\n return [ref, multi] as const;\n}\n\nexport function ToastCapsule({\n tone = \"neutral\",\n title,\n description,\n action,\n closable,\n \"data-force\": force,\n}: {\n tone?: Tone | undefined;\n title: ReactNode;\n description?: ReactNode | undefined;\n action?: string | undefined;\n closable?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}) {\n const [ref, multi] = useMultiline(title, description);\n const t = useUiText();\n return (\n <div role=\"status\" className=\"k-toast-static relative w-max\">\n <div ref={ref} className={cn(SURFACE, multi ? \"rounded-toast\" : \"rounded-pill\", tone === \"neutral\" ? \"pl-16\" : \"pl-14\", action ? \"pr-6\" : \"pr-16\")}>\n <ToneIcon tone={tone} />\n <span className=\"min-w-0 text-pretty\">\n {title}\n {description && <span className=\"font-regular text-toast-fg-secondary\"> {description}</span>}\n </span>\n {action && (\n <button type=\"button\" className={ACTION}>\n {action}\n </button>\n )}\n </div>\n {closable && (\n <button type=\"button\" aria-label={t(\"toast.dismiss\", \"Dismiss\")} className={CLOSE} data-force={force ? `visible ${force}` : \"visible\"}>\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" className=\"size-12\" />\n </button>\n )}\n </div>\n );\n}\nif (process.env.NODE_ENV !== \"production\") ToastCapsule.displayName = \"ToastCapsule\";\n\ntype ManagedToast = ReturnType<typeof BaseToast.useToastManager>[\"toasts\"][number];\n\nfunction ToastItem({ item, index, limit, onFrontWidth }: { item: ManagedToast; index: number; limit: number; onFrontWidth: (w: number) => void }) {\n const t = useUiText();\n const tone = ((item.type as Tone) ?? \"neutral\") as Tone;\n const reserve = (item.data as ToastData | undefined)?.reserve;\n const [ref, multi] = useMultiline(item.title, item.description);\n useLayoutEffect(() => {\n const el = ref.current;\n if (index !== 0 || !el) return;\n const report = () => onFrontWidth(Math.round(el.offsetWidth));\n report();\n return observeResize([el], report);\n }, [index, onFrontWidth, ref]);\n return (\n <BaseToast.Root\n toast={item}\n swipeDirection={[\"down\", \"left\", \"right\"]}\n className=\"k-toast outline-none\"\n {...(index > 0 ? { \"data-behind\": \"\" } : {})}\n {...(index >= limit ? { \"data-index-hidden\": \"\" } : {})}\n >\n <div\n ref={ref}\n className={cn(\n \"k-toast-surface\",\n SURFACE,\n multi ? \"rounded-toast\" : \"rounded-pill\",\n tone === \"neutral\" ? \"pl-16\" : \"pl-14\",\n item.actionProps ? \"pr-6\" : \"pr-16\",\n )}\n >\n <div className=\"k-toast-content flex min-w-0 items-center gap-10\">\n <ToneIcon tone={tone} />\n <span className=\"min-w-0 text-pretty\">\n {reserve ? (\n <SwapText reserve={reserve} align=\"start\">\n <BaseToast.Title render={<span />} />\n </SwapText>\n ) : (\n <BaseToast.Title render={<span />} />\n )}\n {item.description && (\n <>\n {\" \"}\n <BaseToast.Description render={<span />} className=\"font-regular text-toast-fg-secondary\" />\n </>\n )}\n </span>\n {item.actionProps && <BaseToast.Action className={ACTION} />}\n </div>\n </div>\n <BaseToast.Close aria-label={t(\"toast.dismiss\", \"Dismiss\")} className={CLOSE}>\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" className=\"size-12\" />\n </BaseToast.Close>\n </BaseToast.Root>\n );\n}\n\nfunction List({ limit }: { limit: number }) {\n const { toasts } = BaseToast.useToastManager();\n const live = toasts.filter((item) => item.transitionStatus !== \"ending\");\n const [frontWidth, setFrontWidth] = useState(0);\n const t = useUiText();\n return (\n <BaseToast.Portal container={usePortalContainer()}>\n <BaseToast.Viewport\n aria-label={t(\"toast.notifications\", \"Notifications\")}\n className=\"fixed right-0 bottom-24 left-0 z-60 mx-auto h-0 w-full toast-viewport-width outline-none\"\n style={{ [\"--k-front-width\" as string]: frontWidth ? `${frontWidth}px` : \"auto\" }}\n >\n {toasts.map((item) => (\n <ToastItem key={item.id} item={item} index={Math.max(0, live.indexOf(item))} limit={limit} onFrontWidth={setFrontWidth} />\n ))}\n </BaseToast.Viewport>\n </BaseToast.Portal>\n );\n}\n\nexport function Toaster({ limit = 3, timeout = 5000 }: { limit?: number | undefined; timeout?: number | undefined }) {\n return (\n <BaseToast.Provider toastManager={toastManager} limit={limit} timeout={timeout}>\n <List limit={limit} />\n </BaseToast.Provider>\n );\n}\nif (process.env.NODE_ENV !== \"production\") Toaster.displayName = \"Toaster\";\n\nexport const Toast = /* @__PURE__ */ Object.assign(\n function Toast(props: { limit?: number | undefined; timeout?: number | undefined }) {\n return <Toaster {...props} />;\n },\n { add: toast },\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"toast.js","names":["__icon_CheckmarkCircle02Icon","__icon_AlertCircleIcon","__icon_Alert02Icon","__icon_InformationCircleIcon","__icon_Cancel01Icon","BaseToast","_Fragment","cn","usePortalContainer","useUiText","Icon","observeResize","Spinner","SwapText","Fragment$1","Toast$1","KAESO_TOAST_VARIANTS","KAESO_TOAST_DEFAULT_VARIANTS","ICON","CheckmarkCircle02Icon","AlertCircleIcon","Alert02Icon","InformationCircleIcon","toastManager","add","tone","o","toast","title","id","reserve","m","p","v","ToneIcon","SURFACE","ACTION","CLOSE","useMultiline","ref","useRef","multi","setMulti","useState","useLayoutEffect","el","description","ToastCapsule","force","surface","t","action","closable","Cancel01Icon","ToastItem","item","index","report","onFrontWidth","limit","List","live","toasts","frontWidth","setFrontWidth","viewportRef","Toaster","Toast","props"],"sources":["../../src/components/toast/toast.tsx"],"sourcesContent":["import { forwardRef, useLayoutEffect, useRef, useState, type ReactNode, type Ref } from \"react\";\nimport { Toast as BaseToast } from \"@base-ui/react/toast\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport { observeResize } from \"../../utils/observe-resize.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { CheckmarkCircle02Icon as __icon_CheckmarkCircle02Icon, AlertCircleIcon as __icon_AlertCircleIcon, Alert02Icon as __icon_Alert02Icon, InformationCircleIcon as __icon_InformationCircleIcon, Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Spinner } from \"../loader/loader.js\";\nimport { SwapText } from \"../swap-text/swap-text.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_TOAST_VARIANTS = {\n tone: {\n neutral: { classes: \"\" },\n success: { classes: \"text-success\" },\n error: { classes: \"text-danger\" },\n warning: { classes: \"text-warning\" },\n info: { classes: \"text-info\" },\n loading: { classes: \"text-toast-fg-secondary\" },\n },\n} as const;\nexport const KAESO_TOAST_DEFAULT_VARIANTS = { tone: \"neutral\" } as const;\ntype Tone = keyof typeof KAESO_TOAST_VARIANTS.tone;\n\nconst ICON = { success: __icon_CheckmarkCircle02Icon, error: __icon_AlertCircleIcon, warning: __icon_Alert02Icon, info: __icon_InformationCircleIcon } as const;\n\nexport const toastManager = /* @__PURE__ */ BaseToast.createToastManager();\n\nexport interface ToastOptions {\n description?: ReactNode | undefined;\n action?: { label: string; onClick: () => void } | undefined;\n timeout?: number | undefined;\n id?: string | undefined;\n}\n\ninterface ToastData {\n reserve?: ReactNode[] | undefined;\n}\n\nfunction add(tone: Tone, title: ReactNode, o: ToastOptions = {}) {\n return toastManager.add({\n title,\n type: tone,\n ...(o.description !== undefined ? { description: o.description } : {}),\n ...(o.timeout !== undefined ? { timeout: o.timeout } : {}),\n ...(o.id ? { id: o.id } : {}),\n ...(tone === \"error\" ? { priority: \"high\" as const } : {}),\n ...(o.action ? { actionProps: { children: o.action.label, onClick: o.action.onClick } } : {}),\n });\n}\n\nexport const toast = /* @__PURE__ */ Object.assign((title: ReactNode, o?: ToastOptions) => add(\"neutral\", title, o), {\n success: (title: ReactNode, o?: ToastOptions) => add(\"success\", title, o),\n error: (title: ReactNode, o?: ToastOptions) => add(\"error\", title, o),\n warning: (title: ReactNode, o?: ToastOptions) => add(\"warning\", title, o),\n info: (title: ReactNode, o?: ToastOptions) => add(\"info\", title, o),\n dismiss: (id?: string) => toastManager.close(id),\n promise: <T,>(p: Promise<T>, m: { loading: string; success: string | ((v: T) => string); error: string | ((e: unknown) => string) }) => {\n const reserve = [m.loading, ...(typeof m.success === \"string\" ? [m.success] : []), ...(typeof m.error === \"string\" ? [m.error] : [])];\n return toastManager.promise(p, {\n loading: { title: m.loading, type: \"loading\", timeout: 0, data: { reserve } },\n success: (v: T) => ({ title: typeof m.success === \"function\" ? m.success(v) : m.success, type: \"success\", data: { reserve } }),\n error: (e: unknown) => ({ title: typeof m.error === \"function\" ? m.error(e) : m.error, type: \"error\", priority: \"high\", data: { reserve } }),\n });\n },\n});\n\nfunction ToneIcon({ tone }: { tone: Tone }) {\n if (tone === \"neutral\") return null;\n return (\n <span className={cn(\"flex shrink-0\", KAESO_TOAST_VARIANTS.tone[tone].classes)}>\n {tone === \"loading\" ? <Spinner size=\"sm\" /> : <Icon icon={ICON[tone]} size=\"sm\" />}\n </span>\n );\n}\n\nconst SURFACE = \"relative flex min-h-44 max-w-560 items-center gap-10 bg-toast py-8 text-body font-medium text-toast-fg shadow-toast\";\nconst ACTION =\n \"inline-flex h-32 shrink-0 cursor-pointer items-center rounded-pill bg-toast-action px-12 text-body font-medium text-toast-fg transition-control hover:bg-toast-action-hover focus-ring\";\nconst CLOSE =\n \"k-toast-close absolute -top-6 -left-6 inline-flex size-20 cursor-pointer items-center justify-center rounded-pill bg-toast text-toast-fg-secondary shadow-toast hover:text-toast-fg focus-ring\";\n\nfunction useMultiline(title: ReactNode, description: ReactNode) {\n const ref = useRef<HTMLDivElement>(null);\n const [multi, setMulti] = useState(false);\n useLayoutEffect(() => {\n const el = ref.current;\n if (el) setMulti(el.offsetHeight > 46);\n }, [title, description]);\n return [ref, multi] as const;\n}\n\nexport interface ToastCapsuleProps {\n tone?: Tone | undefined;\n title: ReactNode;\n description?: ReactNode | undefined;\n action?: string | undefined;\n closable?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const ToastCapsule = /* @__PURE__ */ forwardRef<HTMLDivElement, ToastCapsuleProps>(function ToastCapsule(\n { tone = \"neutral\", title, description, action, closable, \"data-force\": force },\n ref,\n) {\n const [surface, multi] = useMultiline(title, description);\n const t = useUiText();\n return (\n <div ref={ref} role=\"status\" className=\"k-toast-static relative w-max\">\n <div ref={surface} className={cn(SURFACE, multi ? \"rounded-toast\" : \"rounded-pill\", tone === \"neutral\" ? \"pl-16\" : \"pl-14\", action ? \"pr-6\" : \"pr-16\")}>\n <ToneIcon tone={tone} />\n <span className=\"min-w-0 text-pretty\">\n {title}\n {description && <span className=\"font-regular text-toast-fg-secondary\"> {description}</span>}\n </span>\n {action && (\n <button type=\"button\" className={ACTION}>\n {action}\n </button>\n )}\n </div>\n {closable && (\n <button type=\"button\" aria-label={t(\"toast.dismiss\", \"Dismiss\")} className={CLOSE} data-force={force ? `visible ${force}` : \"visible\"}>\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" className=\"size-12\" />\n </button>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ToastCapsule.displayName = \"ToastCapsule\";\n\ntype ManagedToast = ReturnType<typeof BaseToast.useToastManager>[\"toasts\"][number];\n\nfunction ToastItem({ item, index, limit, onFrontWidth }: { item: ManagedToast; index: number; limit: number; onFrontWidth: (w: number) => void }) {\n const t = useUiText();\n const tone = ((item.type as Tone) ?? \"neutral\") as Tone;\n const reserve = (item.data as ToastData | undefined)?.reserve;\n const [ref, multi] = useMultiline(item.title, item.description);\n useLayoutEffect(() => {\n const el = ref.current;\n if (index !== 0 || !el) return;\n const report = () => onFrontWidth(Math.round(el.offsetWidth));\n report();\n return observeResize([el], report);\n }, [index, onFrontWidth, ref]);\n return (\n <BaseToast.Root\n toast={item}\n swipeDirection={[\"down\", \"left\", \"right\"]}\n className=\"k-toast outline-none\"\n {...(index > 0 ? { \"data-behind\": \"\" } : {})}\n {...(index >= limit ? { \"data-index-hidden\": \"\" } : {})}\n >\n <div\n ref={ref}\n className={cn(\n \"k-toast-surface\",\n SURFACE,\n multi ? \"rounded-toast\" : \"rounded-pill\",\n tone === \"neutral\" ? \"pl-16\" : \"pl-14\",\n item.actionProps ? \"pr-6\" : \"pr-16\",\n )}\n >\n <div className=\"k-toast-content flex min-w-0 items-center gap-10\">\n <ToneIcon tone={tone} />\n <span className=\"min-w-0 text-pretty\">\n {reserve ? (\n <SwapText reserve={reserve} align=\"start\">\n <BaseToast.Title render={<span />} />\n </SwapText>\n ) : (\n <BaseToast.Title render={<span />} />\n )}\n {item.description && (\n <>\n {\" \"}\n <BaseToast.Description render={<span />} className=\"font-regular text-toast-fg-secondary\" />\n </>\n )}\n </span>\n {item.actionProps && <BaseToast.Action className={ACTION} />}\n </div>\n </div>\n <BaseToast.Close aria-label={t(\"toast.dismiss\", \"Dismiss\")} className={CLOSE}>\n <Icon icon={__icon_Cancel01Icon} size=\"xs\" className=\"size-12\" />\n </BaseToast.Close>\n </BaseToast.Root>\n );\n}\n\nfunction List({ limit, viewportRef }: { limit: number; viewportRef: Ref<HTMLDivElement> }) {\n const { toasts } = BaseToast.useToastManager();\n const live = toasts.filter((item) => item.transitionStatus !== \"ending\");\n const [frontWidth, setFrontWidth] = useState(0);\n const t = useUiText();\n return (\n <BaseToast.Portal container={usePortalContainer()}>\n <BaseToast.Viewport\n ref={viewportRef}\n aria-label={t(\"toast.notifications\", \"Notifications\")}\n className=\"fixed right-0 bottom-24 left-0 z-60 mx-auto h-0 w-full toast-viewport-width outline-none\"\n style={{ [\"--k-front-width\" as string]: frontWidth ? `${frontWidth}px` : \"auto\" }}\n >\n {toasts.map((item) => (\n <ToastItem key={item.id} item={item} index={Math.max(0, live.indexOf(item))} limit={limit} onFrontWidth={setFrontWidth} />\n ))}\n </BaseToast.Viewport>\n </BaseToast.Portal>\n );\n}\n\nexport interface ToasterProps {\n limit?: number | undefined;\n timeout?: number | undefined;\n}\n\nexport const Toaster = /* @__PURE__ */ forwardRef<HTMLDivElement, ToasterProps>(function Toaster({ limit = 3, timeout = 5000 }, ref) {\n return (\n <BaseToast.Provider toastManager={toastManager} limit={limit} timeout={timeout}>\n <List limit={limit} viewportRef={ref} />\n </BaseToast.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Toaster.displayName = \"Toaster\";\n\nexport const Toast = /* @__PURE__ */ Object.assign(\n /* @__PURE__ */ forwardRef<HTMLDivElement, ToasterProps>(function Toast(props, ref) {\n return <Toaster ref={ref} {...props} />;\n }),\n { add: toast },\n);\nif (process.env.NODE_ENV !== \"production\") Toast.displayName = \"Toast\";\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-Isw2DnQX.js";
2
+ import { t as e } from "../chunks/cn-Dj6sRgkF.js";
3
3
  import { i as t } from "../chunks/context-BELWW79w.js";
4
4
  import { forwardRef as n, useEffect as r, useState as i } from "react";
5
5
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
@@ -7,33 +7,48 @@ import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
7
  var s = { state: {
8
8
  default: { classes: "text-fg-secondary hover:text-fg" },
9
9
  active: { classes: "text-fg" }
10
- } }, c = { state: "default" }, l = /* @__PURE__ */ n(function({ items: n, title: c, active: l, className: u }, d) {
11
- let f = t(), p = c ?? f("tableOfContents.title", "On this page"), [m, h] = i(n[0]?.id);
10
+ } }, c = { state: "default" }, l = .3;
11
+ function u(e) {
12
+ for (let t = e.parentElement; t; t = t.parentElement) if (/(auto|scroll)/.test(getComputedStyle(t).overflowY) && t.scrollHeight > t.clientHeight) return t;
13
+ return document.scrollingElement ?? document.documentElement;
14
+ }
15
+ var d = /* @__PURE__ */ n(function({ items: n, title: c, active: d, className: f }, p) {
16
+ let m = t(), h = c ?? m("tableOfContents.title", "On this page"), [g, _] = i(n[0]?.id);
12
17
  r(() => {
13
- if (l !== void 0 || typeof IntersectionObserver > "u") return;
14
- let e = new IntersectionObserver((e) => {
15
- for (let t of e) t.isIntersecting && h(t.target.id);
16
- }, { rootMargin: "0px 0px -70% 0px" });
17
- return n.forEach((t) => {
18
- let n = document.getElementById(t.id);
19
- n && e.observe(n);
20
- }), () => e.disconnect();
21
- }, [n, l]);
22
- let g = l ?? m;
18
+ if (d !== void 0) return;
19
+ let e = n.map((e) => document.getElementById(e.id)).filter((e) => e !== null), t = e[0];
20
+ if (!t) return;
21
+ let r = u(t), i = 0, a = () => {
22
+ i = 0;
23
+ let n = window.innerHeight * l, a = t.id;
24
+ for (let t of e) t.getBoundingClientRect().top <= n && (a = t.id);
25
+ let o = r.scrollTop > 0 && r.scrollTop + r.clientHeight >= r.scrollHeight - 2;
26
+ _(o ? e.at(-1)?.id ?? a : a);
27
+ }, o = () => {
28
+ i ||= requestAnimationFrame(a);
29
+ };
30
+ return a(), document.addEventListener("scroll", o, {
31
+ capture: !0,
32
+ passive: !0
33
+ }), window.addEventListener("resize", o), () => {
34
+ cancelAnimationFrame(i), document.removeEventListener("scroll", o, { capture: !0 }), window.removeEventListener("resize", o);
35
+ };
36
+ }, [n, d]);
37
+ let v = d ?? g;
23
38
  return /* @__PURE__ */ o("nav", {
24
- ref: d,
25
- "aria-label": p,
26
- className: e("flex flex-col", u),
39
+ ref: p,
40
+ "aria-label": h,
41
+ className: e("flex flex-col", f),
27
42
  children: [/* @__PURE__ */ a("span", {
28
43
  className: "mb-8 text-caption font-medium text-fg-secondary",
29
- children: p
44
+ children: h
30
45
  }), /* @__PURE__ */ a("ul", {
31
46
  className: "flex flex-col hairline-l",
32
47
  children: n.map((t) => /* @__PURE__ */ a("li", { children: /* @__PURE__ */ o("a", {
33
48
  href: `#${t.id}`,
34
- "aria-current": t.id === g ? "location" : void 0,
35
- className: e("relative flex min-h-28 items-center py-4 text-small transition-control focus-ring-inset rounded-code", t.depth ? "pl-24" : "pl-12", s.state[t.id === g ? "active" : "default"].classes),
36
- children: [t.id === g && /* @__PURE__ */ a("span", {
49
+ "aria-current": t.id === v ? "location" : void 0,
50
+ className: e("relative flex min-h-28 items-center py-4 text-small transition-control focus-ring-inset rounded-code", t.depth ? "pl-24" : "pl-12", s.state[t.id === v ? "active" : "default"].classes),
51
+ children: [t.id === v && /* @__PURE__ */ a("span", {
37
52
  "aria-hidden": !0,
38
53
  className: "absolute inset-y-4 left-0 w-2 rounded-pill bg-ink"
39
54
  }), t.label]
@@ -41,8 +56,8 @@ var s = { state: {
41
56
  })]
42
57
  });
43
58
  });
44
- process.env.NODE_ENV !== "production" && (l.displayName = "TableOfContents");
59
+ process.env.NODE_ENV !== "production" && (d.displayName = "TableOfContents");
45
60
  //#endregion
46
- export { c as KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS, s as KAESO_TABLE_OF_CONTENTS_VARIANTS, l as TableOfContents };
61
+ export { c as KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS, s as KAESO_TABLE_OF_CONTENTS_VARIANTS, d as TableOfContents };
47
62
 
48
63
  //# sourceMappingURL=toc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toc.js","names":["cn","useUiText","KAESO_TABLE_OF_CONTENTS_VARIANTS","KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS","TableOfContents","titleProp","t","title","seen","setSeen","useState","items","active","io","e","entries","el","i","current","className"],"sources":["../../src/components/toc/toc.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_TABLE_OF_CONTENTS_VARIANTS = {\n state: {\n default: { classes: \"text-fg-secondary hover:text-fg\" },\n active: { classes: \"text-fg\" },\n },\n} as const;\nexport const KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS = { state: \"default\" } as const;\n\nexport interface TocItem {\n id: string;\n label: string;\n depth?: 0 | 1 | undefined;\n}\n\nexport interface TableOfContentsProps {\n items: TocItem[];\n title?: string | undefined;\n active?: string | undefined;\n className?: string | undefined;\n}\n\nexport const TableOfContents = /* @__PURE__ */ forwardRef<HTMLElement, TableOfContentsProps>(function TableOfContents({ items, title: titleProp, active, className }, ref) {\n const t = useUiText();\n const title = titleProp ?? t(\"tableOfContents.title\", \"On this page\");\n const [seen, setSeen] = useState(items[0]?.id);\n useEffect(() => {\n if (active !== undefined || typeof IntersectionObserver === \"undefined\") return;\n const io = new IntersectionObserver(\n (entries) => {\n for (const e of entries) if (e.isIntersecting) setSeen(e.target.id);\n },\n { rootMargin: \"0px 0px -70% 0px\" },\n );\n items.forEach((i) => {\n const el = document.getElementById(i.id);\n if (el) io.observe(el);\n });\n return () => io.disconnect();\n }, [items, active]);\n const current = active ?? seen;\n return (\n <nav ref={ref} aria-label={title} className={cn(\"flex flex-col\", className)}>\n <span className=\"mb-8 text-caption font-medium text-fg-secondary\">{title}</span>\n <ul className=\"flex flex-col hairline-l\">\n {items.map((i) => (\n <li key={i.id}>\n <a\n href={`#${i.id}`}\n aria-current={i.id === current ? \"location\" : undefined}\n className={cn(\n \"relative flex min-h-28 items-center py-4 text-small transition-control focus-ring-inset rounded-code\",\n i.depth ? \"pl-24\" : \"pl-12\",\n KAESO_TABLE_OF_CONTENTS_VARIANTS.state[i.id === current ? \"active\" : \"default\"].classes,\n )}\n >\n {i.id === current && <span aria-hidden className=\"absolute inset-y-4 left-0 w-2 rounded-pill bg-ink\" />}\n {i.label}\n </a>\n </li>\n ))}\n </ul>\n </nav>\n );\n});\nif (process.env.NODE_ENV !== \"production\") TableOfContents.displayName = \"TableOfContents\";\n"],"mappings":";;;;;;AAIA,IAAaE,IAAmC,EAC9C,OAAO;CACL,SAAS,EAAE,SAAS,kCAAkC;CACtD,QAAQ,EAAE,SAAS,UAAU;AAC/B,EACF,GACaC,IAA2C,EAAE,OAAO,UAAU,GAe9DC,IAAkC,kBAA8C,SAAyB,EAAE,UAAO,OAAOC,GAAW,WAAQ,gBAAa,GAAK;CACzK,IAAMC,IAAIL,EAAU,GACdM,IAAQF,KAAaC,EAAE,yBAAyB,cAAc,GAC9D,CAACE,GAAMC,KAAWC,EAASC,EAAM,EAAE,EAAE,EAAE;CAC7C,QAAgB;EACd,IAAIC,MAAW,KAAA,KAAa,OAAO,uBAAyB,KAAa;EACzE,IAAMC,IAAK,IAAI,sBACZ,MAAY;GACX,KAAK,IAAMC,KAAKC,GAAS,AAAID,EAAE,kBAAgBL,EAAQK,EAAE,OAAO,EAAE;EACpE,GACA,EAAE,YAAY,mBAAmB,CACnC;EAKA,OAJAH,EAAM,SAAS,MAAM;GACnB,IAAMK,IAAK,SAAS,eAAeC,EAAE,EAAE;GACvC,AAAID,KAAIH,EAAG,QAAQG,CAAE;EACvB,CAAC,SACYH,EAAG,WAAW;CAC7B,GAAG,CAACF,GAAOC,CAAM,CAAC;CAClB,IAAMM,IAAUN,KAAUJ;CAC1B,OACE,kBAAC,OAAD;EAAU;EAAK,cAAYD;EAAO,WAAWP,EAAG,iBAAiBmB,CAAS;EAA1E,UAAA,CACE,kBAAC,QAAD;GAAM,WAAU;GAAmD,UAAAZ;EAAY,CAAA,GAC/E,kBAAC,MAAD;GAAI,WAAU;GACX,UAAAI,EAAM,KAAK,MACV,kBAAC,MAAD,EAAA,UACE,kBAAC,KAAD;IACE,MAAM,IAAIM,EAAE;IACZ,gBAAcA,EAAE,OAAOC,IAAU,aAAa,KAAA;IAC9C,WAAWlB,EACT,wGACAiB,EAAE,QAAQ,UAAU,SACpBf,EAAiC,MAAMe,EAAE,OAAOC,IAAU,WAAW,UAAU,CAAC,OAClF;IAPF,UAAA,CASGD,EAAE,OAAOC,KAAW,kBAAC,QAAD;KAAM,eAAA;KAAY,WAAU;IAAqD,CAAA,GACrGD,EAAE,KACF;GACD,CAAA,EAAA,GAbKA,EAAE,EAaP,CACL;EACC,CAAA,CACD;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAgB,cAAc"}
1
+ {"version":3,"file":"toc.js","names":["cn","useUiText","KAESO_TABLE_OF_CONTENTS_VARIANTS","KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS","READING_LINE","scrollParent","parent","el","TableOfContents","titleProp","t","title","seen","setSeen","useState","items","active","headings","i","first","scroller","frame","pick","line","id","h","end","schedule","current","className"],"sources":["../../src/components/toc/toc.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_TABLE_OF_CONTENTS_VARIANTS = {\n state: {\n default: { classes: \"text-fg-secondary hover:text-fg\" },\n active: { classes: \"text-fg\" },\n },\n} as const;\nexport const KAESO_TABLE_OF_CONTENTS_DEFAULT_VARIANTS = { state: \"default\" } as const;\n\nexport interface TocItem {\n id: string;\n label: string;\n depth?: 0 | 1 | undefined;\n}\n\nexport interface TableOfContentsProps {\n items: TocItem[];\n title?: string | undefined;\n active?: string | undefined;\n className?: string | undefined;\n}\n\nconst READING_LINE = 0.3;\n\nfunction scrollParent(el: HTMLElement): Element {\n for (let parent = el.parentElement; parent; parent = parent.parentElement) {\n if (/(auto|scroll)/.test(getComputedStyle(parent).overflowY) && parent.scrollHeight > parent.clientHeight) return parent;\n }\n return document.scrollingElement ?? document.documentElement;\n}\n\nexport const TableOfContents = /* @__PURE__ */ forwardRef<HTMLElement, TableOfContentsProps>(function TableOfContents({ items, title: titleProp, active, className }, ref) {\n const t = useUiText();\n const title = titleProp ?? t(\"tableOfContents.title\", \"On this page\");\n const [seen, setSeen] = useState(items[0]?.id);\n useEffect(() => {\n if (active !== undefined) return;\n const headings = items.map((i) => document.getElementById(i.id)).filter((el): el is HTMLElement => el !== null);\n const first = headings[0];\n if (!first) return;\n const scroller = scrollParent(first);\n let frame = 0;\n const pick = () => {\n frame = 0;\n const line = window.innerHeight * READING_LINE;\n let id = first.id;\n for (const h of headings) if (h.getBoundingClientRect().top <= line) id = h.id;\n const end = scroller.scrollTop > 0 && scroller.scrollTop + scroller.clientHeight >= scroller.scrollHeight - 2;\n setSeen(end ? (headings.at(-1)?.id ?? id) : id);\n };\n const schedule = () => {\n frame ||= requestAnimationFrame(pick);\n };\n pick();\n document.addEventListener(\"scroll\", schedule, { capture: true, passive: true });\n window.addEventListener(\"resize\", schedule);\n return () => {\n cancelAnimationFrame(frame);\n document.removeEventListener(\"scroll\", schedule, { capture: true });\n window.removeEventListener(\"resize\", schedule);\n };\n }, [items, active]);\n const current = active ?? seen;\n return (\n <nav ref={ref} aria-label={title} className={cn(\"flex flex-col\", className)}>\n <span className=\"mb-8 text-caption font-medium text-fg-secondary\">{title}</span>\n <ul className=\"flex flex-col hairline-l\">\n {items.map((i) => (\n <li key={i.id}>\n <a\n href={`#${i.id}`}\n aria-current={i.id === current ? \"location\" : undefined}\n className={cn(\n \"relative flex min-h-28 items-center py-4 text-small transition-control focus-ring-inset rounded-code\",\n i.depth ? \"pl-24\" : \"pl-12\",\n KAESO_TABLE_OF_CONTENTS_VARIANTS.state[i.id === current ? \"active\" : \"default\"].classes,\n )}\n >\n {i.id === current && <span aria-hidden className=\"absolute inset-y-4 left-0 w-2 rounded-pill bg-ink\" />}\n {i.label}\n </a>\n </li>\n ))}\n </ul>\n </nav>\n );\n});\nif (process.env.NODE_ENV !== \"production\") TableOfContents.displayName = \"TableOfContents\";\n"],"mappings":";;;;;;AAIA,IAAaE,IAAmC,EAC9C,OAAO;CACL,SAAS,EAAE,SAAS,kCAAkC;CACtD,QAAQ,EAAE,SAAS,UAAU;AAC/B,EACF,GACaC,IAA2C,EAAE,OAAO,UAAU,GAerEC,IAAe;AAErB,SAASC,EAAa,GAA0B;CAC9C,KAAK,IAAIC,IAASC,EAAG,eAAeD,GAAQ,IAASA,EAAO,eAC1D,IAAI,gBAAgB,KAAK,iBAAiBA,CAAM,CAAC,CAAC,SAAS,KAAKA,EAAO,eAAeA,EAAO,cAAc,OAAOA;CAEpH,OAAO,SAAS,oBAAoB,SAAS;AAC/C;AAEA,IAAaE,IAAkC,kBAA8C,SAAyB,EAAE,UAAO,OAAOC,GAAW,WAAQ,gBAAa,GAAK;CACzK,IAAMC,IAAIT,EAAU,GACdU,IAAQF,KAAaC,EAAE,yBAAyB,cAAc,GAC9D,CAACE,GAAMC,KAAWC,EAASC,EAAM,EAAE,EAAE,EAAE;CAC7C,QAAgB;EACd,IAAIC,MAAW,KAAA,GAAW;EAC1B,IAAMC,IAAWF,EAAM,KAAK,MAAM,SAAS,eAAeG,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,MAA0BX,MAAO,IAAI,GACxGY,IAAQF,EAAS;EACvB,IAAI,CAACE,GAAO;EACZ,IAAMC,IAAWf,EAAac,CAAK,GAC/BE,IAAQ,GACNC,UAAa;GACjB,IAAQ;GACR,IAAMC,IAAO,OAAO,cAAcnB,GAC9BoB,IAAKL,EAAM;GACf,KAAK,IAAMM,KAAKR,GAAU,AAAIQ,EAAE,sBAAsB,CAAC,CAAC,OAAOF,MAAM,IAAKE,EAAE;GAC5E,IAAMC,IAAMN,EAAS,YAAY,KAAKA,EAAS,YAAYA,EAAS,gBAAgBA,EAAS,eAAe;GAC5G,EAAQM,IAAOT,EAAS,GAAG,EAAE,CAAC,EAAE,MAAMO,IAAMA,CAAE;EAChD,GACMG,UAAiB;GACrB,MAAU,sBAAsBL,CAAI;EACtC;EAIA,OAHAA,EAAK,GACL,SAAS,iBAAiB,UAAUK,GAAU;GAAE,SAAS;GAAM,SAAS;EAAK,CAAC,GAC9E,OAAO,iBAAiB,UAAUA,CAAQ,SAC7B;GAGX,AAFA,qBAAqBN,CAAK,GAC1B,SAAS,oBAAoB,UAAUM,GAAU,EAAE,SAAS,GAAK,CAAC,GAClE,OAAO,oBAAoB,UAAUA,CAAQ;EAC/C;CACF,GAAG,CAACZ,GAAOC,CAAM,CAAC;CAClB,IAAMY,IAAUZ,KAAUJ;CAC1B,OACE,kBAAC,OAAD;EAAU;EAAK,cAAYD;EAAO,WAAWX,EAAG,iBAAiB6B,CAAS;EAA1E,UAAA,CACE,kBAAC,QAAD;GAAM,WAAU;GAAmD,UAAAlB;EAAY,CAAA,GAC/E,kBAAC,MAAD;GAAI,WAAU;GACX,UAAAI,EAAM,KAAK,MACV,kBAAC,MAAD,EAAA,UACE,kBAAC,KAAD;IACE,MAAM,IAAIG,EAAE;IACZ,gBAAcA,EAAE,OAAOU,IAAU,aAAa,KAAA;IAC9C,WAAW5B,EACT,wGACAkB,EAAE,QAAQ,UAAU,SACpBhB,EAAiC,MAAMgB,EAAE,OAAOU,IAAU,WAAW,UAAU,CAAC,OAClF;IAPF,UAAA,CASGV,EAAE,OAAOU,KAAW,kBAAC,QAAD;KAAM,eAAA;KAAY,WAAU;IAAqD,CAAA,GACrGV,EAAE,KACF;GACD,CAAA,EAAA,GAbKA,EAAE,EAaP,CACL;EACC,CAAA,CACD;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAgB,cAAc"}
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as KAESO_TOOLBAR_DEFAULT_VARIANTS, n as KAESO_TOOLBAR_VARIANTS, r as Toolbar } from "../chunks/toolbar-B_960Ttx.js";
2
+ export { t as KAESO_TOOLBAR_DEFAULT_VARIANTS, n as KAESO_TOOLBAR_VARIANTS, r as Toolbar } from "../chunks/toolbar-WA_oZgu-.js";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { i as e, n as t, r as n, t as r } from "../chunks/tooltip-CRApbLF6.js";
2
+ import { i as e, n as t, r as n, t as r } from "../chunks/tooltip-OcwO0VUT.js";
3
3
  import { jsx as i } from "react/jsx-runtime";
4
4
  import { Tooltip as a } from "@base-ui/react/tooltip";
5
5
  //#region src/components/tooltip/tooltip-provider.tsx
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-Isw2DnQX.js";
2
+ import { t as e } from "../chunks/cn-Dj6sRgkF.js";
3
3
  import { forwardRef as t } from "react";
4
4
  import { jsx as n } from "react/jsx-runtime";
5
5
  //#region src/components/visually-hidden/visually-hidden.tsx