@logicplanes/kaeso-ui 0.4.4 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/ai/component-guides.md +250 -98
  2. package/ai/component-registry.json +264 -236
  3. package/ai/component-registry.md +222 -218
  4. package/ai/icons.md +1 -1
  5. package/ai/tokens.md +18 -14
  6. package/dist/blocks/delete-resource.js +3 -3
  7. package/dist/blocks/delete-resource.js.map +1 -1
  8. package/dist/blocks/pages.js +47 -42
  9. package/dist/blocks/pages.js.map +1 -1
  10. package/dist/blocks/resource-list.js +68 -55
  11. package/dist/blocks/resource-list.js.map +1 -1
  12. package/dist/chunks/agent-avatar-DHieggHK.js +188 -0
  13. package/dist/chunks/agent-avatar-DHieggHK.js.map +1 -0
  14. package/dist/chunks/app-frame-DysOel2X.js +232 -0
  15. package/dist/chunks/app-frame-DysOel2X.js.map +1 -0
  16. package/dist/chunks/arrow-focus-B0KdRFX8.js +20 -0
  17. package/dist/chunks/arrow-focus-B0KdRFX8.js.map +1 -0
  18. package/dist/chunks/avatar-CYNMK7uY.js +110 -0
  19. package/dist/chunks/avatar-CYNMK7uY.js.map +1 -0
  20. package/dist/chunks/badge-C0GC3B9X.js +27 -0
  21. package/dist/chunks/badge-C0GC3B9X.js.map +1 -0
  22. package/dist/chunks/banner-B3DGLTBu.js +88 -0
  23. package/dist/chunks/banner-B3DGLTBu.js.map +1 -0
  24. package/dist/chunks/button-IblhXUyZ.js +202 -0
  25. package/dist/chunks/button-IblhXUyZ.js.map +1 -0
  26. package/dist/chunks/{calendar-BWaf2MXc.js → calendar-Dc6_dl0f.js} +4 -4
  27. package/dist/chunks/calendar-Dc6_dl0f.js.map +1 -0
  28. package/dist/chunks/checkbox-9tbimmF3.js +141 -0
  29. package/dist/chunks/checkbox-9tbimmF3.js.map +1 -0
  30. package/dist/chunks/{cn-Dj6sRgkF.js → cn-BjnOAUrA.js} +45 -4
  31. package/dist/chunks/cn-BjnOAUrA.js.map +1 -0
  32. package/dist/chunks/code-block-64e-Cy1S.js +346 -0
  33. package/dist/chunks/code-block-64e-Cy1S.js.map +1 -0
  34. package/dist/chunks/{code-block-DdNPHEzI.js → code-block-KIvuE8jg.js} +122 -114
  35. package/dist/chunks/code-block-KIvuE8jg.js.map +1 -0
  36. package/dist/chunks/{code-tqj0uhBL.js → code-xqjww4Pv.js} +5 -6
  37. package/dist/chunks/code-xqjww4Pv.js.map +1 -0
  38. package/dist/chunks/combobox-DkcjkWc6.js +352 -0
  39. package/dist/chunks/combobox-DkcjkWc6.js.map +1 -0
  40. package/dist/chunks/command-list-CypqsC4T.js +456 -0
  41. package/dist/chunks/command-list-CypqsC4T.js.map +1 -0
  42. package/dist/chunks/{copy-button-FJvPJn72.js → copy-button-CwU8t_9_.js} +22 -15
  43. package/dist/chunks/copy-button-CwU8t_9_.js.map +1 -0
  44. package/dist/chunks/core-CmK-8ObW.js +505 -0
  45. package/dist/chunks/core-CmK-8ObW.js.map +1 -0
  46. package/dist/chunks/data-table-CqY8_6IS.js +581 -0
  47. package/dist/chunks/data-table-CqY8_6IS.js.map +1 -0
  48. package/dist/chunks/date-popup-DAnjptFt.js +58 -0
  49. package/dist/chunks/date-popup-DAnjptFt.js.map +1 -0
  50. package/dist/chunks/{de-D_0mmG-k.js → de-CqC4aSIV.js} +74 -40
  51. package/dist/chunks/de-CqC4aSIV.js.map +1 -0
  52. package/dist/chunks/{dialog-Cg9A_6SF.js → dialog-2zb6ClNR.js} +156 -134
  53. package/dist/chunks/dialog-2zb6ClNR.js.map +1 -0
  54. package/dist/chunks/disclosure-BtYRTDO3.js +22 -0
  55. package/dist/chunks/disclosure-BtYRTDO3.js.map +1 -0
  56. package/dist/chunks/domain-obd_w9xk.js +28 -0
  57. package/dist/chunks/domain-obd_w9xk.js.map +1 -0
  58. package/dist/chunks/{empty-DvhyMXQq.js → empty-BpiUgGzm.js} +2 -2
  59. package/dist/chunks/{empty-DvhyMXQq.js.map → empty-BpiUgGzm.js.map} +1 -1
  60. package/dist/chunks/{field-TviMvYa2.js → field-D7m-yl-D.js} +37 -34
  61. package/dist/chunks/field-D7m-yl-D.js.map +1 -0
  62. package/dist/chunks/{icon-D7ja-_Yk.js → icon-CBzOwqrX.js} +7 -6
  63. package/dist/chunks/{icon-D7ja-_Yk.js.map → icon-CBzOwqrX.js.map} +1 -1
  64. package/dist/chunks/{icon-button-CrdF_eMG.js → icon-button-Dfwpvmav.js} +7 -6
  65. package/dist/chunks/icon-button-Dfwpvmav.js.map +1 -0
  66. package/dist/chunks/{identity-BmhQ6BQ-.js → identity-3Foi5F8w.js} +7 -7
  67. package/dist/chunks/{identity-BmhQ6BQ-.js.map → identity-3Foi5F8w.js.map} +1 -1
  68. package/dist/chunks/{input-2VJuj_M4.js → input-Bo5-UZg2.js} +15 -9
  69. package/dist/chunks/input-Bo5-UZg2.js.map +1 -0
  70. package/dist/chunks/{input-group-DQ_4DoXg.js → input-group-jPcK9T_a.js} +42 -29
  71. package/dist/chunks/input-group-jPcK9T_a.js.map +1 -0
  72. package/dist/chunks/iso-field-DoqHBg8n.js +52 -0
  73. package/dist/chunks/iso-field-DoqHBg8n.js.map +1 -0
  74. package/dist/chunks/json-view-DZ2nL2Ir.js +253 -0
  75. package/dist/chunks/json-view-DZ2nL2Ir.js.map +1 -0
  76. package/dist/chunks/{kbd-BF1vKXJf.js → kbd-8A0ML_up.js} +30 -28
  77. package/dist/chunks/kbd-8A0ML_up.js.map +1 -0
  78. package/dist/chunks/label-DW24Aj0Z.js +26 -0
  79. package/dist/chunks/label-DW24Aj0Z.js.map +1 -0
  80. package/dist/chunks/{link-KWI7PevW.js → link-CMjkcLQK.js} +14 -14
  81. package/dist/chunks/link-CMjkcLQK.js.map +1 -0
  82. package/dist/chunks/list-B4G-sWwV.js +540 -0
  83. package/dist/chunks/list-B4G-sWwV.js.map +1 -0
  84. package/dist/chunks/{loader-DCfPndXa.js → loader-zo8CCIGJ.js} +2 -2
  85. package/dist/chunks/{loader-DCfPndXa.js.map → loader-zo8CCIGJ.js.map} +1 -1
  86. package/dist/chunks/markdown-C565aBR7.js +338 -0
  87. package/dist/chunks/markdown-C565aBR7.js.map +1 -0
  88. package/dist/chunks/menu-Clvv6ftq.js +485 -0
  89. package/dist/chunks/menu-Clvv6ftq.js.map +1 -0
  90. package/dist/chunks/merge-refs-BN1FyQt9.js +20 -0
  91. package/dist/chunks/merge-refs-BN1FyQt9.js.map +1 -0
  92. package/dist/chunks/meter-CASMHlxl.js +100 -0
  93. package/dist/chunks/meter-CASMHlxl.js.map +1 -0
  94. package/dist/chunks/nav-sheet-Dt6JSvzX.js +67 -0
  95. package/dist/chunks/nav-sheet-Dt6JSvzX.js.map +1 -0
  96. package/dist/chunks/{nav-wordmark-_pjheAsZ.js → nav-wordmark-J4pB_vjr.js} +4 -8
  97. package/dist/chunks/nav-wordmark-J4pB_vjr.js.map +1 -0
  98. package/dist/chunks/page-header-kS5tdmvb.js +45 -0
  99. package/dist/chunks/page-header-kS5tdmvb.js.map +1 -0
  100. package/dist/chunks/pagination-D7fAm8qg.js +147 -0
  101. package/dist/chunks/pagination-D7fAm8qg.js.map +1 -0
  102. package/dist/chunks/picker-popover-1FHb1LQG.js +119 -0
  103. package/dist/chunks/picker-popover-1FHb1LQG.js.map +1 -0
  104. package/dist/chunks/popover-Bl5QYqnh.js +51 -0
  105. package/dist/chunks/popover-Bl5QYqnh.js.map +1 -0
  106. package/dist/chunks/{portal-context-BBbzDKmY.js → portal-context-CTatR2Z8.js} +14 -4
  107. package/dist/chunks/portal-context-CTatR2Z8.js.map +1 -0
  108. package/dist/chunks/{radio-CDDFpdtL.js → radio-C6GtzF_t.js} +38 -23
  109. package/dist/chunks/radio-C6GtzF_t.js.map +1 -0
  110. package/dist/chunks/range-popup-lGiZsG3s.js +160 -0
  111. package/dist/chunks/range-popup-lGiZsG3s.js.map +1 -0
  112. package/dist/chunks/reasoning-frame-C3HdQRRS.js +51 -0
  113. package/dist/chunks/reasoning-frame-C3HdQRRS.js.map +1 -0
  114. package/dist/chunks/release-art-ChiT4T2S.js +582 -0
  115. package/dist/chunks/release-art-ChiT4T2S.js.map +1 -0
  116. package/dist/chunks/rights-B68ocZuq.js +312 -0
  117. package/dist/chunks/rights-B68ocZuq.js.map +1 -0
  118. package/dist/chunks/{scroll-area-D8MD7Vpo.js → scroll-area-_Ljh4-bG.js} +11 -6
  119. package/dist/chunks/scroll-area-_Ljh4-bG.js.map +1 -0
  120. package/dist/chunks/section-CFBYhsUi.js +77 -0
  121. package/dist/chunks/section-CFBYhsUi.js.map +1 -0
  122. package/dist/chunks/section-header-DU1Q4Tdf.js +28 -0
  123. package/dist/chunks/section-header-DU1Q4Tdf.js.map +1 -0
  124. package/dist/chunks/segmented-D9i1avik.js +119 -0
  125. package/dist/chunks/segmented-D9i1avik.js.map +1 -0
  126. package/dist/chunks/select-BqjmQOqx.js +222 -0
  127. package/dist/chunks/select-BqjmQOqx.js.map +1 -0
  128. package/dist/chunks/{separator-D7TzNHmX.js → separator-BNWf6BBj.js} +13 -8
  129. package/dist/chunks/separator-BNWf6BBj.js.map +1 -0
  130. package/dist/chunks/sidebar-Dq7oGOje.js +664 -0
  131. package/dist/chunks/sidebar-Dq7oGOje.js.map +1 -0
  132. package/dist/chunks/{sidebar-menu-BN3jkTlK.js → sidebar-menu-QSSNu1jJ.js} +2 -2
  133. package/dist/chunks/{sidebar-menu-BN3jkTlK.js.map → sidebar-menu-QSSNu1jJ.js.map} +1 -1
  134. package/dist/chunks/{skeleton-Dcz57Zyp.js → skeleton-D-qk3mes.js} +3 -3
  135. package/dist/chunks/skeleton-D-qk3mes.js.map +1 -0
  136. package/dist/chunks/slider-CcE8GtuV.js +58 -0
  137. package/dist/chunks/slider-CcE8GtuV.js.map +1 -0
  138. package/dist/chunks/{status-dot-QJTF0Yv4.js → status-dot-CP6runiC.js} +4 -4
  139. package/dist/chunks/{status-dot-QJTF0Yv4.js.map → status-dot-CP6runiC.js.map} +1 -1
  140. package/dist/chunks/{styles-CVJU9t9v.js → styles-hkFkoBbi.js} +2 -2
  141. package/dist/chunks/{styles-CVJU9t9v.js.map → styles-hkFkoBbi.js.map} +1 -1
  142. package/dist/chunks/{swap-text-Dr0Irxz6.js → swap-text-SlUjrTlG.js} +3 -3
  143. package/dist/chunks/swap-text-SlUjrTlG.js.map +1 -0
  144. package/dist/chunks/switch-ngywMQdl.js +76 -0
  145. package/dist/chunks/switch-ngywMQdl.js.map +1 -0
  146. package/dist/chunks/table-CTK5E0J7.js +102 -0
  147. package/dist/chunks/table-CTK5E0J7.js.map +1 -0
  148. package/dist/chunks/tag-BGr6lTSV.js +100 -0
  149. package/dist/chunks/tag-BGr6lTSV.js.map +1 -0
  150. package/dist/chunks/{text-CIXH8rmT.js → text-DkKdTVUf.js} +9 -9
  151. package/dist/chunks/text-DkKdTVUf.js.map +1 -0
  152. package/dist/chunks/{textarea--4FRL3Pb.js → textarea-CO0HP6fK.js} +47 -36
  153. package/dist/chunks/textarea-CO0HP6fK.js.map +1 -0
  154. package/dist/chunks/timeseries-Ck-q0wWn.js +381 -0
  155. package/dist/chunks/timeseries-Ck-q0wWn.js.map +1 -0
  156. package/dist/chunks/toolbar-u0Gm7Q7-.js +61 -0
  157. package/dist/chunks/toolbar-u0Gm7Q7-.js.map +1 -0
  158. package/dist/chunks/tooltip-Tkm-urbi.js +202 -0
  159. package/dist/chunks/tooltip-Tkm-urbi.js.map +1 -0
  160. package/dist/chunks/tooltip-root-BC_RNNiP.js +70 -0
  161. package/dist/chunks/tooltip-root-BC_RNNiP.js.map +1 -0
  162. package/dist/chunks/truncated-d1afmUJT.js +33 -0
  163. package/dist/chunks/truncated-d1afmUJT.js.map +1 -0
  164. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js +28 -0
  165. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js.map +1 -0
  166. package/dist/chunks/use-hydrating-COtYVRo4.js +8 -0
  167. package/dist/chunks/use-hydrating-COtYVRo4.js.map +1 -0
  168. package/dist/chunks/use-scroll-fade-uc8mWSDX.js +30 -0
  169. package/dist/chunks/use-scroll-fade-uc8mWSDX.js.map +1 -0
  170. package/dist/chunks/{zh-CN-Bm6UPIbW.js → zh-CN-BlpsT6d_.js} +73 -39
  171. package/dist/chunks/zh-CN-BlpsT6d_.js.map +1 -0
  172. package/dist/components/agent-avatar.js +1 -1
  173. package/dist/components/app-frame.js +2 -2
  174. package/dist/components/avatar.js +1 -1
  175. package/dist/components/badge.js +1 -1
  176. package/dist/components/banner.js +1 -1
  177. package/dist/components/button-group.js +22 -22
  178. package/dist/components/button-group.js.map +1 -1
  179. package/dist/components/button.js +1 -1
  180. package/dist/components/calendar.js +1 -1
  181. package/dist/components/charts/bar.js +235 -160
  182. package/dist/components/charts/bar.js.map +1 -1
  183. package/dist/components/charts/donut.js +144 -99
  184. package/dist/components/charts/donut.js.map +1 -1
  185. package/dist/components/charts/gauge.js +61 -49
  186. package/dist/components/charts/gauge.js.map +1 -1
  187. package/dist/components/charts/heatmap.js +179 -70
  188. package/dist/components/charts/heatmap.js.map +1 -1
  189. package/dist/components/charts/sankey.js +144 -77
  190. package/dist/components/charts/sankey.js.map +1 -1
  191. package/dist/components/charts/sparkline.js +54 -38
  192. package/dist/components/charts/sparkline.js.map +1 -1
  193. package/dist/components/charts/timeseries.js +1 -1
  194. package/dist/components/charts.js +2 -2
  195. package/dist/components/checkbox.js +1 -1
  196. package/dist/components/code-block.js +3 -3
  197. package/dist/components/code.js +1 -1
  198. package/dist/components/collapsible.js +77 -1
  199. package/dist/components/collapsible.js.map +1 -0
  200. package/dist/components/combobox.js +1 -1
  201. package/dist/components/command-list.js +2 -2
  202. package/dist/components/command-palette.js +89 -66
  203. package/dist/components/command-palette.js.map +1 -1
  204. package/dist/components/copy-button.js +1 -1
  205. package/dist/components/data-table.js +1 -459
  206. package/dist/components/date-picker.js +162 -151
  207. package/dist/components/date-picker.js.map +1 -1
  208. package/dist/components/dialog.js +74 -63
  209. package/dist/components/dialog.js.map +1 -1
  210. package/dist/components/display-options.js +76 -64
  211. package/dist/components/display-options.js.map +1 -1
  212. package/dist/components/empty.js +1 -1
  213. package/dist/components/field.js +1 -1
  214. package/dist/components/figure.js +2 -2
  215. package/dist/components/filter-chip.js +36 -27
  216. package/dist/components/filter-chip.js.map +1 -1
  217. package/dist/components/filter-row.js +4 -4
  218. package/dist/components/filter-row.js.map +1 -1
  219. package/dist/components/flow.js +94 -63
  220. package/dist/components/flow.js.map +1 -1
  221. package/dist/components/heading.js +1 -1
  222. package/dist/components/icon-button.js +1 -1
  223. package/dist/components/icon.js +1 -1
  224. package/dist/components/input.js +176 -98
  225. package/dist/components/input.js.map +1 -1
  226. package/dist/components/kaeso/conversation.js +51 -46
  227. package/dist/components/kaeso/conversation.js.map +1 -1
  228. package/dist/components/kaeso/identity.js +1 -1
  229. package/dist/components/kaeso/moments.js +23 -20
  230. package/dist/components/kaeso/moments.js.map +1 -1
  231. package/dist/components/kaeso/rights.js +1 -1
  232. package/dist/components/kaeso/usage.js +90 -74
  233. package/dist/components/kaeso/usage.js.map +1 -1
  234. package/dist/components/kaeso.js +200 -187
  235. package/dist/components/kaeso.js.map +1 -1
  236. package/dist/components/kbd.js +1 -1
  237. package/dist/components/key-value.js +32 -47
  238. package/dist/components/key-value.js.map +1 -1
  239. package/dist/components/label.js +1 -25
  240. package/dist/components/layout.js +2 -2
  241. package/dist/components/layout.js.map +1 -1
  242. package/dist/components/link.js +1 -1
  243. package/dist/components/list.js +1 -1
  244. package/dist/components/loader.js +11 -10
  245. package/dist/components/loader.js.map +1 -1
  246. package/dist/components/logo.js +2 -2
  247. package/dist/components/markdown.js +1 -1
  248. package/dist/components/menu.js +2 -2
  249. package/dist/components/meter.js +1 -1
  250. package/dist/components/page-header.js +1 -1
  251. package/dist/components/pagination.js +1 -1
  252. package/dist/components/playground.js +644 -529
  253. package/dist/components/playground.js.map +1 -1
  254. package/dist/components/popover.js +4 -4
  255. package/dist/components/popover.js.map +1 -1
  256. package/dist/components/portal.js +1 -1
  257. package/dist/components/qr-code.js +2 -2
  258. package/dist/components/qr-code.js.map +1 -1
  259. package/dist/components/radio.js +1 -1
  260. package/dist/components/release-art.js +1 -1
  261. package/dist/components/scroll-area.js +1 -1
  262. package/dist/components/section.js +1 -1
  263. package/dist/components/segmented.js +1 -1
  264. package/dist/components/select.js +1 -1
  265. package/dist/components/separator.js +1 -1
  266. package/dist/components/settings.js +39 -46
  267. package/dist/components/settings.js.map +1 -1
  268. package/dist/components/sheet.js +10 -9
  269. package/dist/components/sheet.js.map +1 -1
  270. package/dist/components/sidebar.js +1 -1
  271. package/dist/components/skeleton.js +1 -1
  272. package/dist/components/slider.js +1 -1
  273. package/dist/components/stat.js +98 -84
  274. package/dist/components/stat.js.map +1 -1
  275. package/dist/components/status-dot.js +1 -1
  276. package/dist/components/surface.js +1 -1
  277. package/dist/components/swap-text.js +1 -1
  278. package/dist/components/switch.js +1 -1
  279. package/dist/components/table.js +1 -1
  280. package/dist/components/tabs.js +73 -55
  281. package/dist/components/tabs.js.map +1 -1
  282. package/dist/components/tag.js +1 -1
  283. package/dist/components/text.js +1 -1
  284. package/dist/components/theme-image.js +1 -1
  285. package/dist/components/theme-menu.js +5 -2
  286. package/dist/components/theme-menu.js.map +1 -1
  287. package/dist/components/theme-select.js +1 -1
  288. package/dist/components/thumbnail.js +35 -24
  289. package/dist/components/thumbnail.js.map +1 -1
  290. package/dist/components/timeline.js +51 -35
  291. package/dist/components/timeline.js.map +1 -1
  292. package/dist/components/toast.js +76 -66
  293. package/dist/components/toast.js.map +1 -1
  294. package/dist/components/toc.js +14 -8
  295. package/dist/components/toc.js.map +1 -1
  296. package/dist/components/toolbar.js +1 -1
  297. package/dist/components/tooltip.js +1 -1
  298. package/dist/components/visually-hidden.js +1 -1
  299. package/dist/i18n-provider.js +1 -1
  300. package/dist/index.js +100 -100
  301. package/dist/kaeso.css +605 -67
  302. package/dist/styles.css +1 -1
  303. package/dist/tailwind.css +1 -1
  304. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -2
  305. package/dist/types/components/agent-avatar/agent-avatar.d.ts +24 -19
  306. package/dist/types/components/badge/badge.d.ts +3 -3
  307. package/dist/types/components/banner/banner.d.ts +3 -3
  308. package/dist/types/components/button/button.d.ts +2 -2
  309. package/dist/types/components/button-group/button-group.d.ts +1 -1
  310. package/dist/types/components/charts/domain.d.ts +11 -0
  311. package/dist/types/components/charts/marks.d.ts +1 -0
  312. package/dist/types/components/code/code.d.ts +3 -3
  313. package/dist/types/components/code-block/json-view.d.ts +2 -1
  314. package/dist/types/components/code-block/numbers.d.ts +1 -0
  315. package/dist/types/components/collapsible/collapsible.d.ts +2 -2
  316. package/dist/types/components/collapsible/disclosure.d.ts +2 -0
  317. package/dist/types/components/data-table/data-table.d.ts +6 -5
  318. package/dist/types/components/data-table/docs.d.ts +1 -0
  319. package/dist/types/components/data-table/time-columns.d.ts +1 -0
  320. package/dist/types/components/date-picker/focus-day.d.ts +1 -0
  321. package/dist/types/components/date-picker/iso-field.d.ts +8 -1
  322. package/dist/types/components/dialog/dialog.d.ts +7 -7
  323. package/dist/types/components/field/field.d.ts +1 -1
  324. package/dist/types/components/flow/flow.d.ts +1 -1
  325. package/dist/types/components/icon-button/icon-button.d.ts +1 -1
  326. package/dist/types/components/input/input-group.d.ts +2 -0
  327. package/dist/types/components/input/number-input.d.ts +4 -4
  328. package/dist/types/components/input/otp-input.d.ts +3 -3
  329. package/dist/types/components/kaeso/client-button.d.ts +2 -1
  330. package/dist/types/components/kaeso/provider-picker.d.ts +1 -0
  331. package/dist/types/components/kaeso/rights.d.ts +1 -1
  332. package/dist/types/components/kaeso/role-picker.d.ts +1 -0
  333. package/dist/types/components/key-value/key-value.d.ts +2 -2
  334. package/dist/types/components/layout/layout.d.ts +2 -2
  335. package/dist/types/components/link/link.d.ts +4 -4
  336. package/dist/types/components/list/list.d.ts +2 -2
  337. package/dist/types/components/menu/menu.d.ts +2 -1
  338. package/dist/types/components/menu/styles.d.ts +3 -3
  339. package/dist/types/components/meter/meter.d.ts +3 -3
  340. package/dist/types/components/page-header/page-header.d.ts +1 -1
  341. package/dist/types/components/pagination/pagination.d.ts +2 -2
  342. package/dist/types/components/playground/prompt-suggestions.d.ts +1 -0
  343. package/dist/types/components/playground/reasoning-frame.d.ts +14 -0
  344. package/dist/types/components/playground/reasoning.d.ts +1 -0
  345. package/dist/types/components/popover/popover.d.ts +1 -1
  346. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  347. package/dist/types/components/section/section-header.d.ts +6 -0
  348. package/dist/types/components/segmented/segmented.d.ts +1 -0
  349. package/dist/types/components/select/select.d.ts +1 -1
  350. package/dist/types/components/sheet/sheet.d.ts +3 -3
  351. package/dist/types/components/sidebar/sidebar.d.ts +1 -0
  352. package/dist/types/components/slider/slider.d.ts +2 -2
  353. package/dist/types/components/stat/stat.d.ts +1 -1
  354. package/dist/types/components/tabs/tabs.d.ts +6 -4
  355. package/dist/types/components/text/truncated.d.ts +7 -0
  356. package/dist/types/components/timeline/timeline.d.ts +5 -5
  357. package/dist/types/components/toc/toc.d.ts +1 -1
  358. package/dist/types/components/toolbar/toolbar.d.ts +1 -1
  359. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  360. package/dist/types/components/tooltip/trigger-props.d.ts +1 -0
  361. package/dist/types/hooks/use-coarse-pointer.d.ts +1 -0
  362. package/dist/types/hooks/use-hydrating.d.ts +1 -0
  363. package/dist/types/utils/arrow-focus.d.ts +4 -1
  364. package/dist/types/utils/cn.d.ts +33 -0
  365. package/dist/types/utils/portal-context.d.ts +7 -1
  366. package/dist/utils.js +2 -2
  367. package/foundations/accessibility.md +3 -2
  368. package/foundations/color.md +5 -1
  369. package/foundations/elevation.md +1 -0
  370. package/foundations/motion.md +1 -1
  371. package/foundations/shape.md +2 -2
  372. package/foundations/typography.md +12 -12
  373. package/package.json +2 -2
  374. package/dist/chunks/agent-avatar-0pdBTWkR.js +0 -171
  375. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +0 -1
  376. package/dist/chunks/app-frame-DogGRmsu.js +0 -221
  377. package/dist/chunks/app-frame-DogGRmsu.js.map +0 -1
  378. package/dist/chunks/arrow-focus-BcySmwwU.js +0 -11
  379. package/dist/chunks/arrow-focus-BcySmwwU.js.map +0 -1
  380. package/dist/chunks/avatar-CWbdwbJv.js +0 -83
  381. package/dist/chunks/avatar-CWbdwbJv.js.map +0 -1
  382. package/dist/chunks/badge-C2KtxCLB.js +0 -26
  383. package/dist/chunks/badge-C2KtxCLB.js.map +0 -1
  384. package/dist/chunks/banner-BA2ALw9M.js +0 -85
  385. package/dist/chunks/banner-BA2ALw9M.js.map +0 -1
  386. package/dist/chunks/button-CzuxqawA.js +0 -164
  387. package/dist/chunks/button-CzuxqawA.js.map +0 -1
  388. package/dist/chunks/calendar-BWaf2MXc.js.map +0 -1
  389. package/dist/chunks/checkbox-CQjwCPkc.js +0 -126
  390. package/dist/chunks/checkbox-CQjwCPkc.js.map +0 -1
  391. package/dist/chunks/cn-Dj6sRgkF.js.map +0 -1
  392. package/dist/chunks/code-block-BZIe_B9l.js +0 -334
  393. package/dist/chunks/code-block-BZIe_B9l.js.map +0 -1
  394. package/dist/chunks/code-block-DdNPHEzI.js.map +0 -1
  395. package/dist/chunks/code-tqj0uhBL.js.map +0 -1
  396. package/dist/chunks/collapsible-CKrCX_T9.js +0 -87
  397. package/dist/chunks/collapsible-CKrCX_T9.js.map +0 -1
  398. package/dist/chunks/combobox-DjDI7SUC.js +0 -319
  399. package/dist/chunks/combobox-DjDI7SUC.js.map +0 -1
  400. package/dist/chunks/command-list-C2Y7V_lt.js +0 -418
  401. package/dist/chunks/command-list-C2Y7V_lt.js.map +0 -1
  402. package/dist/chunks/copy-button-FJvPJn72.js.map +0 -1
  403. package/dist/chunks/core-BYns5ytV.js +0 -472
  404. package/dist/chunks/core-BYns5ytV.js.map +0 -1
  405. package/dist/chunks/date-popup-CPA_zt6o.js +0 -35
  406. package/dist/chunks/date-popup-CPA_zt6o.js.map +0 -1
  407. package/dist/chunks/de-D_0mmG-k.js.map +0 -1
  408. package/dist/chunks/dialog-Cg9A_6SF.js.map +0 -1
  409. package/dist/chunks/field-TviMvYa2.js.map +0 -1
  410. package/dist/chunks/hidden-description-B2zSmLcn.js +0 -23
  411. package/dist/chunks/hidden-description-B2zSmLcn.js.map +0 -1
  412. package/dist/chunks/icon-button-CrdF_eMG.js.map +0 -1
  413. package/dist/chunks/input-2VJuj_M4.js.map +0 -1
  414. package/dist/chunks/input-group-DQ_4DoXg.js.map +0 -1
  415. package/dist/chunks/iso-field-B2rTwiBo.js +0 -33
  416. package/dist/chunks/iso-field-B2rTwiBo.js.map +0 -1
  417. package/dist/chunks/json-view-Dqd2TDkc.js +0 -175
  418. package/dist/chunks/json-view-Dqd2TDkc.js.map +0 -1
  419. package/dist/chunks/kbd-BF1vKXJf.js.map +0 -1
  420. package/dist/chunks/link-KWI7PevW.js.map +0 -1
  421. package/dist/chunks/list-M1csq-d4.js +0 -494
  422. package/dist/chunks/list-M1csq-d4.js.map +0 -1
  423. package/dist/chunks/markdown-BupwFOae.js +0 -313
  424. package/dist/chunks/markdown-BupwFOae.js.map +0 -1
  425. package/dist/chunks/menu-DEmBfdPm.js +0 -450
  426. package/dist/chunks/menu-DEmBfdPm.js.map +0 -1
  427. package/dist/chunks/meter-Bj4N3Xuh.js +0 -84
  428. package/dist/chunks/meter-Bj4N3Xuh.js.map +0 -1
  429. package/dist/chunks/nav-sheet-CzgIwgAm.js +0 -60
  430. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +0 -1
  431. package/dist/chunks/nav-wordmark-_pjheAsZ.js.map +0 -1
  432. package/dist/chunks/page-header-DL2y2iZp.js +0 -41
  433. package/dist/chunks/page-header-DL2y2iZp.js.map +0 -1
  434. package/dist/chunks/pagination-Cn_qF4cg.js +0 -86
  435. package/dist/chunks/pagination-Cn_qF4cg.js.map +0 -1
  436. package/dist/chunks/picker-popover-BxyU1U9F.js +0 -106
  437. package/dist/chunks/picker-popover-BxyU1U9F.js.map +0 -1
  438. package/dist/chunks/popover-DNN4S47w.js +0 -50
  439. package/dist/chunks/popover-DNN4S47w.js.map +0 -1
  440. package/dist/chunks/portal-context-BBbzDKmY.js.map +0 -1
  441. package/dist/chunks/radio-CDDFpdtL.js.map +0 -1
  442. package/dist/chunks/range-popup-CRyWYUB1.js +0 -128
  443. package/dist/chunks/range-popup-CRyWYUB1.js.map +0 -1
  444. package/dist/chunks/release-art-ZwfFQImt.js +0 -561
  445. package/dist/chunks/release-art-ZwfFQImt.js.map +0 -1
  446. package/dist/chunks/rights-Cyp0Pzp-.js +0 -279
  447. package/dist/chunks/rights-Cyp0Pzp-.js.map +0 -1
  448. package/dist/chunks/scroll-area-D8MD7Vpo.js.map +0 -1
  449. package/dist/chunks/scroll-parent-WXvzQcUo.js +0 -14
  450. package/dist/chunks/scroll-parent-WXvzQcUo.js.map +0 -1
  451. package/dist/chunks/section-Ce1efbsP.js +0 -87
  452. package/dist/chunks/section-Ce1efbsP.js.map +0 -1
  453. package/dist/chunks/segmented-CErcoxwi.js +0 -114
  454. package/dist/chunks/segmented-CErcoxwi.js.map +0 -1
  455. package/dist/chunks/select-x4XVsdCI.js +0 -210
  456. package/dist/chunks/select-x4XVsdCI.js.map +0 -1
  457. package/dist/chunks/separator-D7TzNHmX.js.map +0 -1
  458. package/dist/chunks/sidebar-3r1ZRXlN.js +0 -621
  459. package/dist/chunks/sidebar-3r1ZRXlN.js.map +0 -1
  460. package/dist/chunks/skeleton-Dcz57Zyp.js.map +0 -1
  461. package/dist/chunks/slider-Ci83PGtj.js +0 -57
  462. package/dist/chunks/slider-Ci83PGtj.js.map +0 -1
  463. package/dist/chunks/swap-text-Dr0Irxz6.js.map +0 -1
  464. package/dist/chunks/switch-BNMq_kGt.js +0 -59
  465. package/dist/chunks/switch-BNMq_kGt.js.map +0 -1
  466. package/dist/chunks/table-BeOSKl_3.js +0 -84
  467. package/dist/chunks/table-BeOSKl_3.js.map +0 -1
  468. package/dist/chunks/tag-D_M1s2qS.js +0 -87
  469. package/dist/chunks/tag-D_M1s2qS.js.map +0 -1
  470. package/dist/chunks/text-CIXH8rmT.js.map +0 -1
  471. package/dist/chunks/textarea--4FRL3Pb.js.map +0 -1
  472. package/dist/chunks/timeseries-D1xjRXfk.js +0 -339
  473. package/dist/chunks/timeseries-D1xjRXfk.js.map +0 -1
  474. package/dist/chunks/toolbar-WA_oZgu-.js +0 -37
  475. package/dist/chunks/toolbar-WA_oZgu-.js.map +0 -1
  476. package/dist/chunks/tooltip-OcwO0VUT.js +0 -154
  477. package/dist/chunks/tooltip-OcwO0VUT.js.map +0 -1
  478. package/dist/chunks/tooltip-root-DzahJDVj.js +0 -60
  479. package/dist/chunks/tooltip-root-DzahJDVj.js.map +0 -1
  480. package/dist/chunks/zh-CN-Bm6UPIbW.js.map +0 -1
  481. package/dist/components/data-table.js.map +0 -1
  482. package/dist/components/label.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-Dq7oGOje.js","names":["_Fragment","__icon_Alert02Icon","__icon_UnfoldMoreIcon","__icon_ArrowLeft01Icon","__icon_SidebarLeftIcon","cn","useLinkComponent","useUiText","Icon","HandedTrigger","showsText","useLazyModule","triggerPropsStore","useHiddenDescription","Tooltip","lazyModule","mergeRefs","observeResize","NavWordmark","Skeleton","DisclosureChevron","DISCLOSURE_TRIGGER","whenIdle","Fragment$1","listeners","memory","read","raw","key","subscribe","set","onChange","onStorage","e","noSubscription","nothing","useStoredState","k","own","setOwn","useState","initial","sub","useCallback","snapshot","useSyncExternalStore","stored","useMemo","v","json","notify","strong","text","i","part","KAESO_SIDEBAR_VARIANTS","KAESO_SIDEBAR_DEFAULT_VARIANTS","Ctx","useSidebar","useContext","SidebarFloatingContext","SidebarSheetContext","Provider","rail","setRail","storageKey","defaultRail","storedWidth","setWidth","preview","previewWidth","width","clampWidth","collapsed","setCollapsedState","peeking","setPeeking","lastFocus","useRef","setCollapsed","active","leaving","returning","shortcut","onKey","TYPING","value","HINT_DELAY","SIDEBAR_MIN","SIDEBAR_MAX","Root","ariaLabel","props","t","hint","setHint","hintTimer","dragging","setDragging","endDrag","onPointerDown","handle","startX","startW","moved","last","move","ev","end","up","floating","hidden","nav","className","style","resizable","top","to","Header","Brand","BrandWordmark","children","LinkComp","href","label","sidebarMenu","LazyMenu","open","setOpen","wanted","setWanted","mod","store","button","given","trigger","buttonRef","pending","useEffect","doc","onKeyDown","want","waiting","o","Switcher","force","hasCaption","caption","named","purpose","avatar","captionTone","Alert02Icon","trailing","UnfoldMoreIcon","Place","naming","classes","inner","PlaceName","common","el","useCut","cut","setCut","useLayoutEffect","box","ref","enabled","measure","Content","refs","root","check","stop","Footer","Group","id","defaultOpen","labelId","useId","collapsible","Collapsible","DEPTH","Item","sheet","activate","onClick","depth","leading","icon","count","BackLink","ArrowLeft01Icon","Loading","rows","CollapseToggle","SidebarLeftIcon","RailToggle","Sidebar"],"sources":["../../src/hooks/use-stored-state.ts","../../src/components/sidebar/sidebar.tsx"],"sourcesContent":["import { useCallback, useMemo, useState, useSyncExternalStore } from \"react\";\n\nlet listeners: Map<string, Set<() => void>> | undefined;\nlet memory: Map<string, string> | undefined;\n\nfunction read(key: string): string | null {\n try {\n const raw = localStorage.getItem(key);\n if (raw !== null) return raw;\n } catch {}\n return memory?.get(key) ?? null;\n}\n\nfunction subscribe(key: string, onChange: () => void): () => void {\n listeners ??= new Map();\n let set = listeners.get(key);\n if (!set) listeners.set(key, (set = new Set()));\n set.add(onChange);\n const onStorage = (e: StorageEvent) => {\n if (e.key === key) onChange();\n };\n window.addEventListener(\"storage\", onStorage);\n return () => {\n set.delete(onChange);\n window.removeEventListener(\"storage\", onStorage);\n };\n}\n\nconst noSubscription = () => () => undefined;\nconst nothing = () => null;\n\nexport function useStoredState<T>(key: string | undefined, initial: T): [T, (v: T) => void] {\n const k = key ? `kaeso:${key}` : undefined;\n const [own, setOwn] = useState<T>(initial);\n const sub = useCallback((onChange: () => void) => (k ? subscribe(k, onChange) : () => undefined), [k]);\n const snapshot = useCallback(() => (k ? read(k) : null), [k]);\n const raw = useSyncExternalStore(k ? sub : noSubscription, snapshot, nothing);\n const stored = useMemo(() => {\n if (raw === null) return undefined;\n try {\n return { value: JSON.parse(raw) as T };\n } catch {\n return undefined;\n }\n }, [raw]);\n const set = useCallback(\n (v: T) => {\n if (!k) {\n setOwn(v);\n return;\n }\n const json = JSON.stringify(v);\n try {\n localStorage.setItem(k, json);\n } catch {\n (memory ??= new Map()).set(k, json);\n }\n listeners?.get(k)?.forEach((notify) => notify());\n },\n [k],\n );\n return [k ? (stored ? stored.value : initial) : own, set];\n}\n","import type * as React from \"react\";\nimport {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type MouseEvent,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { Collapsible } from \"@base-ui/react/collapsible\";\nimport { DISCLOSURE_TRIGGER, DisclosureChevron } from \"../collapsible/disclosure.js\";\nimport { cn } from \"../../utils/cn.js\";\nimport { observeResize } from \"../../utils/observe-resize.js\";\nimport { useLinkComponent } from \"../../utils/link-provider.js\";\nimport { showsText, useHiddenDescription } from \"../../utils/hidden-description.js\";\nimport { useStoredState } from \"../../hooks/use-stored-state.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { Alert02Icon as __icon_Alert02Icon, UnfoldMoreIcon as __icon_UnfoldMoreIcon, ArrowLeft01Icon as __icon_ArrowLeft01Icon, SidebarLeftIcon as __icon_SidebarLeftIcon } from \"@hugeicons/core-free-icons\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { Skeleton } from \"../skeleton/skeleton.js\";\nimport { NavWordmark } from \"../logo/nav-wordmark.js\";\nimport { lazyModule, useLazyModule } from \"../../utils/lazy-module.js\";\nimport { whenIdle } from \"../../utils/when-idle.js\";\nimport { HandedTrigger, triggerPropsStore } from \"../tooltip/trigger-props.js\";\nimport { mergeRefs } from \"../../utils/merge-refs.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nconst strong = (text: string) =>\n text.split(\"**\").map((part, i) =>\n i % 2 ? (\n <span key={i} className=\"font-semibold text-fg\">\n {part}\n </span>\n ) : (\n part\n ),\n );\n\nexport const KAESO_SIDEBAR_VARIANTS = {\n mode: {\n expanded: { classes: \"w-(--k-sidebar-width)\" },\n rail: { classes: \"w-60\" },\n },\n item: {\n default: { classes: \"text-fg hover:bg-fill-2 active:bg-fill-3\" },\n active: { classes: \"bg-fill-3 text-fg\" },\n },\n caption: {\n secondary: { classes: \"text-fg-secondary\" },\n danger: { classes: \"text-danger-text\" },\n },\n} as const;\nexport const KAESO_SIDEBAR_DEFAULT_VARIANTS = { mode: \"expanded\", item: \"default\", caption: \"secondary\" } as const;\n\ninterface SidebarCtx {\n rail: boolean;\n setRail: (v: boolean) => void;\n collapsed: boolean;\n setCollapsed: (v: boolean) => void;\n peeking: boolean;\n setPeeking: (v: boolean) => void;\n width: number;\n setWidth: (v: number) => void;\n previewWidth: (v: number | null) => void;\n storageKey: string | undefined;\n shortcut: boolean;\n}\nconst Ctx = /* @__PURE__ */ createContext<SidebarCtx>({\n rail: false,\n setRail: () => undefined,\n collapsed: false,\n setCollapsed: () => undefined,\n peeking: false,\n setPeeking: () => undefined,\n width: 248,\n setWidth: () => undefined,\n previewWidth: () => undefined,\n storageKey: undefined,\n shortcut: false,\n});\nexport const useSidebar = () => useContext(Ctx);\n\nexport const SidebarFloatingContext = /* @__PURE__ */ createContext(false);\nexport const SidebarSheetContext = /* @__PURE__ */ createContext<{ close: () => void; peek: boolean } | null>(null);\n\nexport interface SidebarProviderProps {\n children: ReactNode;\n storageKey?: string | undefined;\n defaultRail?: boolean | undefined;\n shortcut?: boolean | undefined;\n}\n\nfunction Provider({ children, storageKey, defaultRail = false, shortcut = true }: SidebarProviderProps) {\n const [rail, setRail] = useStoredState(storageKey ? `${storageKey}:rail` : undefined, defaultRail);\n const [storedWidth, setWidth] = useStoredState(storageKey ? `${storageKey}:width` : undefined, 248);\n const [preview, previewWidth] = useState<number | null>(null);\n const width = clampWidth(preview ?? storedWidth);\n const [collapsed, setCollapsedState] = useStoredState(storageKey ? `${storageKey}:collapsed` : undefined, false);\n const [peeking, setPeeking] = useState(false);\n const lastFocus = useRef<HTMLElement | null>(null);\n const setCollapsed = useCallback(\n (v: boolean) => {\n const active = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n const leaving = v && !!active?.closest(\"[data-sidebar-root]\");\n const returning = !v && !!active?.closest(\"[data-sidebar-expand]\");\n if (leaving) lastFocus.current = active;\n setCollapsedState(v);\n setPeeking(false);\n if (leaving) requestAnimationFrame(() => document.querySelector<HTMLElement>(\"[data-sidebar-expand]\")?.focus());\n if (returning)\n requestAnimationFrame(() => {\n const back = lastFocus.current?.isConnected ? lastFocus.current : null;\n (back ?? document.querySelector<HTMLElement>(\"[data-sidebar-root] [data-sidebar-collapse]\"))?.focus();\n });\n },\n [setCollapsedState],\n );\n useEffect(() => {\n if (!shortcut) return;\n const onKey = (e: KeyboardEvent) => {\n if (e.key !== \"[\" || e.defaultPrevented || e.repeat || e.metaKey || (e.ctrlKey && !e.altKey)) return;\n const t = e.target;\n if (t instanceof HTMLElement && (t.isContentEditable || t.closest(TYPING))) return;\n if (document.querySelector('[aria-modal=\"true\"]') || !window.matchMedia(\"(min-width: 1024px)\").matches) return;\n setCollapsed(!collapsed);\n };\n window.addEventListener(\"keydown\", onKey);\n return () => window.removeEventListener(\"keydown\", onKey);\n }, [collapsed, setCollapsed, shortcut]);\n const value = useMemo(\n () => ({ rail, setRail, collapsed, setCollapsed, peeking, setPeeking, width, setWidth, previewWidth, storageKey, shortcut }),\n [rail, setRail, collapsed, setCollapsed, peeking, width, setWidth, storageKey, shortcut],\n );\n return <Ctx.Provider value={value}>{children}</Ctx.Provider>;\n}\nif (process.env.NODE_ENV !== \"production\") Provider.displayName = \"Sidebar.Provider\";\n\nexport interface SidebarProps extends HTMLAttributes<HTMLElement> {\n resizable?: boolean | undefined;\n \"aria-label\"?: string | undefined;\n}\n\nconst TYPING = 'input, textarea, select, [contenteditable]:not([contenteditable=\"false\"]), [role=\"textbox\"], [role=\"combobox\"], [role=\"searchbox\"]';\n\nconst HINT_DELAY = 500;\n\nexport const SIDEBAR_MIN = 232;\nexport const SIDEBAR_MAX = 280;\n\nconst clampWidth = (v: number) => Math.round(Math.min(SIDEBAR_MAX, Math.max(SIDEBAR_MIN, Number.isFinite(v) ? v : 248)));\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLElement, SidebarProps>(function Sidebar({ resizable = true, className, children, style, \"aria-label\": ariaLabel, ...props }, ref) {\n const { rail, width, setWidth, previewWidth, collapsed, setCollapsed } = useSidebar();\n const t = useUiText();\n const [hint, setHint] = useState<number | null>(null);\n const hintTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n useEffect(() => () => clearTimeout(hintTimer.current), []);\n const [dragging, setDragging] = useState(false);\n const endDrag = useRef<(() => void) | null>(null);\n useEffect(() => () => endDrag.current?.(), []);\n const onPointerDown = useCallback(\n (e: React.PointerEvent<HTMLDivElement>) => {\n if (e.button !== 0) return;\n e.preventDefault();\n endDrag.current?.();\n const handle = e.currentTarget;\n const startX = e.clientX;\n const startW = width;\n let moved = false;\n let last = startW;\n const move = (ev: PointerEvent) => {\n if (Math.abs(ev.clientX - startX) > 3) {\n moved = true;\n setDragging(true);\n }\n if (!moved) return;\n last = clampWidth(startW + ev.clientX - startX);\n previewWidth(last);\n };\n const end = () => {\n handle.removeEventListener(\"pointermove\", move);\n handle.removeEventListener(\"pointerup\", up);\n handle.removeEventListener(\"pointercancel\", end);\n document.body.style.cursor = \"\";\n document.body.style.userSelect = \"\";\n endDrag.current = null;\n setDragging(false);\n if (moved) setWidth(last);\n previewWidth(null);\n };\n const up = () => {\n end();\n if (!moved) setCollapsed(true);\n };\n handle.setPointerCapture(e.pointerId);\n handle.addEventListener(\"pointermove\", move);\n handle.addEventListener(\"pointerup\", up);\n handle.addEventListener(\"pointercancel\", end);\n document.body.style.cursor = \"col-resize\";\n document.body.style.userSelect = \"none\";\n endDrag.current = end;\n },\n [width, setWidth, previewWidth, setCollapsed],\n );\n const floating = useContext(SidebarFloatingContext);\n const hidden = collapsed && !floating;\n const nav = (\n <nav\n ref={ref}\n aria-label={ariaLabel ?? t(\"sidebar.main\", \"Main\")}\n data-rail={rail || undefined}\n data-sidebar-root=\"\"\n className={cn(\n \"group/sidebar relative flex h-full shrink-0 flex-col bg-chrome text-fg\",\n rail ? KAESO_SIDEBAR_VARIANTS.mode.rail.classes : KAESO_SIDEBAR_VARIANTS.mode.expanded.classes,\n className,\n )}\n style={{ [\"--k-sidebar-width\" as string]: `${width}px`, ...style }}\n {...props}\n >\n {children}\n </nav>\n );\n if (floating) return nav;\n return (\n <div className=\"relative flex h-full shrink-0\">\n <div\n className=\"sidebar-motion relative h-full shrink-0\"\n style={{ width: hidden ? 8 : rail ? 60 : width }}\n {...(hidden ? { \"data-collapsed\": \"\", inert: true, \"aria-hidden\": true } : {})}\n >\n <div className=\"sidebar-content-motion h-full\" style={{ width: rail ? 60 : width }}>\n {nav}\n </div>\n </div>\n {resizable && !rail && !hidden && (\n <div\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label={t(\"sidebar.resizeOrCollapse\", \"Resize sidebar; press Enter to collapse\")}\n aria-valuemin={SIDEBAR_MIN}\n aria-valuemax={SIDEBAR_MAX}\n aria-valuenow={width}\n aria-valuetext={`${width} px`}\n tabIndex={0}\n onPointerDown={onPointerDown}\n onPointerEnter={(e) => {\n const top = Math.round(e.clientY - e.currentTarget.getBoundingClientRect().top);\n clearTimeout(hintTimer.current);\n hintTimer.current = setTimeout(() => setHint(top), HINT_DELAY);\n }}\n onPointerLeave={() => {\n clearTimeout(hintTimer.current);\n setHint(null);\n }}\n onKeyDown={(e) => {\n const to =\n e.key === \"ArrowLeft\" ? width - 8 : e.key === \"ArrowRight\" ? width + 8 : e.key === \"Home\" ? SIDEBAR_MIN : e.key === \"End\" ? SIDEBAR_MAX : null;\n if (to !== null) {\n e.preventDefault();\n setWidth(clampWidth(to));\n }\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setCollapsed(true);\n }\n }}\n className=\"group/edge absolute top-0 right-0 z-10 h-full w-8 cursor-col-resize rounded-pill focus-ring-inset\"\n >\n <span aria-hidden className=\"absolute inset-y-0 right-0 w-1 bg-line-strong opacity-0 transition-control group-hover/edge:opacity-100 forced-line\" />\n {hint !== null && !dragging && (\n <span\n aria-hidden\n className=\"pointer-events-none absolute left-16 flex w-max flex-col gap-2 rounded-tooltip-lg bg-tooltip px-12 py-8 text-small text-fg-secondary shadow-raised\"\n style={{ top: Math.max(8, hint - 24) }}\n >\n <span>{strong(t(\"sidebar.dragToResize\", \"**Drag** to resize\"))}</span>\n <span>{strong(t(\"sidebar.clickToCollapse\", \"**Click** to collapse\"))}</span>\n </span>\n )}\n </div>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"Sidebar\";\n\nconst Header = /* @__PURE__ */ forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(function SidebarHeader({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n className={cn(\"mt-8 flex h-52 shrink-0 items-center gap-4 px-8 transition-control group-data-scrolled-over/sidebar:hairline-b-strong\", className)}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Header.displayName = \"Sidebar.Header\";\n\nexport interface SidebarBrandProps {\n href?: string | undefined;\n label?: string | undefined;\n children?: ReactNode | undefined;\n className?: string | undefined;\n}\n\nconst Brand = /* @__PURE__ */ forwardRef<HTMLDivElement, SidebarBrandProps>(function SidebarBrand({ href, label = \"Kaeso\", children, className }, ref) {\n const { rail } = useSidebar();\n if (rail) {\n return (\n <Header ref={ref} className={cn(\"justify-center px-0\", className)}>\n {children}\n </Header>\n );\n }\n return (\n <Header ref={ref} className={cn(\"justify-between pr-16 pl-28\", className)}>\n <BrandWordmark href={href} label={label} />\n {children && <span className=\"flex items-center\">{children}</span>}\n </Header>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Brand.displayName = \"Sidebar.Brand\";\n\nexport interface BrandWordmarkProps {\n href?: string | undefined;\n label?: string | undefined;\n}\n\nexport const BrandWordmark = /* @__PURE__ */ forwardRef<HTMLAnchorElement | SVGSVGElement, BrandWordmarkProps>(function BrandWordmark({ href, label = \"Kaeso\" }, ref) {\n const LinkComp = useLinkComponent();\n return href ? (\n <LinkComp ref={ref as Ref<HTMLAnchorElement>} href={href} aria-label={label} className=\"-mx-4 flex h-32 items-center rounded-code px-4 text-fg focus-ring\">\n <NavWordmark decorative />\n </LinkComp>\n ) : (\n <NavWordmark ref={ref as Ref<SVGSVGElement>} title={label} className=\"text-fg\" />\n );\n});\nif (process.env.NODE_ENV !== \"production\") BrandWordmark.displayName = \"BrandWordmark\";\n\nconst sidebarMenu = /* @__PURE__ */ lazyModule(() => import(\"./sidebar-menu.js\"), { base: () => import.meta.url });\n\nfunction LazyMenu({\n trigger,\n side,\n header,\n footer,\n children,\n}: {\n trigger: ReactElement;\n side: \"top\" | \"bottom\";\n header: ReactNode;\n footer: ReactNode;\n children: ReactNode;\n}) {\n const [open, setOpen] = useState(false);\n const [wanted, setWanted] = useState(false);\n const mod = useLazyModule(sidebarMenu, wanted || open, () => {\n setWanted(false);\n setOpen(false);\n });\n const [store] = useState(triggerPropsStore);\n const button = useRef<HTMLElement | null>(null);\n const given = (trigger.props as { ref?: Ref<HTMLElement> | undefined }).ref;\n const buttonRef = useMemo(() => mergeRefs(button, given), [given]);\n const pending = open && !mod;\n useEffect(() => whenIdle(() => setWanted(true)), []);\n useEffect(() => {\n if (!pending) return;\n const doc = button.current?.ownerDocument ?? document;\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== \"Escape\") return;\n e.stopPropagation();\n setOpen(false);\n };\n const onPointerDown = (e: PointerEvent) => {\n if (!button.current?.contains(e.target as Node)) setOpen(false);\n };\n doc.addEventListener(\"keydown\", onKeyDown, true);\n doc.addEventListener(\"pointerdown\", onPointerDown, true);\n return () => {\n doc.removeEventListener(\"keydown\", onKeyDown, true);\n doc.removeEventListener(\"pointerdown\", onPointerDown, true);\n };\n }, [pending]);\n const want = () => setWanted(true);\n const waiting = mod\n ? { ref: buttonRef }\n : {\n ref: buttonRef,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n ...(open ? { \"data-popup-open\": \"\" } : {}),\n onPointerEnter: want,\n onFocus: want,\n onClick: () => setOpen((o) => !o),\n onKeyDown: (e: React.KeyboardEvent) => {\n if (e.key !== \"ArrowDown\" && e.key !== \"ArrowUp\") return;\n e.preventDefault();\n setOpen(true);\n },\n onBlur: (e: React.FocusEvent) => {\n if (open && e.relatedTarget && !e.currentTarget.contains(e.relatedTarget)) setOpen(false);\n },\n };\n return (\n <>\n <HandedTrigger store={store} merge={mod?.mergeTriggerProps} extra={waiting}>\n {trigger}\n </HandedTrigger>\n {mod && (\n <mod.SidebarMenuRoot open={open} onOpenChange={setOpen} triggerProps={store} side={side} header={header} footer={footer}>\n {children}\n </mod.SidebarMenuRoot>\n )}\n </>\n );\n}\nif (process.env.NODE_ENV !== \"production\") LazyMenu.displayName = \"Sidebar.Menu\";\n\nexport interface SidebarSwitcherProps {\n avatar: ReactNode;\n label: ReactNode;\n trailing?: ReactNode | undefined;\n caption?: ReactNode | undefined;\n captionTone?: keyof typeof KAESO_SIDEBAR_VARIANTS.caption | undefined;\n children: ReactNode;\n header?: ReactNode | undefined;\n footer?: ReactNode | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst Switcher = /* @__PURE__ */ forwardRef<HTMLButtonElement, SidebarSwitcherProps>(function SidebarSwitcher(\n { avatar, label, trailing, caption, captionTone = \"secondary\", children, header, footer, \"aria-label\": ariaLabel, className, \"data-force\": force },\n ref,\n) {\n const { rail } = useSidebar();\n const t = useUiText();\n const hasCaption = showsText(caption);\n const named = showsText(label);\n const hint = ariaLabel ?? t(\"sidebar.switchOrOpenSettings\", \"Switch or open settings\");\n const purpose = useHiddenDescription(named ? hint : undefined);\n return (\n <>\n <LazyMenu\n side=\"top\"\n header={header}\n footer={footer}\n trigger={\n <button\n ref={ref}\n type=\"button\"\n {...(named ? { \"aria-describedby\": purpose.id } : { \"aria-label\": hint })}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"group/sw flex h-36 w-full min-w-0 cursor-pointer items-center gap-8 rounded-pill px-12 text-left text-body font-medium text-fg transition-control hover:bg-fill-2 active:bg-fill-3 open:bg-fill-3 focus-ring-inset coarse:h-44\",\n rail && \"justify-center px-0\",\n className,\n )}\n >\n <span className=\"relative flex size-18 shrink-0 items-center justify-center\">\n {avatar}\n {rail && hasCaption && captionTone === \"danger\" && (\n <Icon icon={__icon_Alert02Icon} size=\"xs\" className=\"absolute -right-6 -bottom-6 rounded-pill bg-chrome text-danger-text\" />\n )}\n </span>\n {!rail &&\n (hasCaption ? (\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate\">{label}</span>\n <span className={cn(\"truncate text-caption font-regular\", KAESO_SIDEBAR_VARIANTS.caption[captionTone].classes)}>{caption}</span>\n </span>\n ) : (\n <span className=\"min-w-0 flex-1 truncate\">{label}</span>\n ))}\n {rail && named && <span className=\"sr-only\">{label}</span>}\n {rail && hasCaption && <span className=\"sr-only\">{caption}</span>}\n {!rail && trailing}\n {!rail && <Icon icon={__icon_UnfoldMoreIcon} size=\"sm\" className=\"text-fg-tertiary transition-control group-hover/sw:text-fg-secondary\" />}\n </button>\n }\n >\n {children}\n </LazyMenu>\n {purpose.node}\n </>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Switcher.displayName = \"Sidebar.Switcher\";\n\nexport interface SidebarPlaceProps {\n avatar: ReactNode;\n label: string;\n children?: ReactNode | undefined;\n href?: string | undefined;\n header?: ReactNode | undefined;\n footer?: ReactNode | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst Place = /* @__PURE__ */ forwardRef<HTMLElement, SidebarPlaceProps>(function SidebarPlace(\n { avatar, label, children, href, header, footer, \"aria-label\": ariaLabel, className, \"data-force\": force },\n ref,\n) {\n const { rail } = useSidebar();\n const t = useUiText();\n const LinkComp = useLinkComponent();\n const named = showsText(label);\n const hint = children ? (ariaLabel ?? t(\"sidebar.switchPlace\", \"Switch project\")) : ariaLabel;\n const purpose = useHiddenDescription(named ? hint : undefined);\n const naming = named ? (purpose.id ? { \"aria-describedby\": purpose.id } : {}) : hint ? { \"aria-label\": hint } : {};\n const classes = cn(\n \"group/place flex h-36 w-full min-w-0 items-center gap-8 rounded-pill px-12 text-left text-body font-medium text-fg\",\n (children || href) && \"cursor-pointer transition-control hover:bg-fill-2 active:bg-fill-3 open:bg-fill-3 focus-ring-inset coarse:h-44\",\n rail && \"justify-center px-0\",\n className,\n );\n const inner = (\n <>\n <span className=\"flex size-18 shrink-0 items-center justify-center\">{avatar}</span>\n {rail ? <span className=\"sr-only\">{label}</span> : <PlaceName label={label} />}\n {!rail && children && <Icon icon={__icon_UnfoldMoreIcon} size=\"sm\" className=\"text-fg-tertiary transition-control group-hover/place:text-fg-secondary\" />}\n </>\n );\n const common = { className: classes, ...(force ? { \"data-force\": force } : {}) };\n if (children) {\n return (\n <>\n <LazyMenu\n side=\"bottom\"\n header={header}\n footer={footer}\n trigger={\n <button ref={ref as Ref<HTMLButtonElement>} type=\"button\" {...naming} {...common}>\n {inner}\n </button>\n }\n >\n {children}\n </LazyMenu>\n {purpose.node}\n </>\n );\n }\n const el = href ? (\n <LinkComp ref={ref as Ref<HTMLAnchorElement>} href={href} {...naming} {...common}>\n {inner}\n </LinkComp>\n ) : (\n <div ref={ref as Ref<HTMLDivElement>} {...common}>\n {inner}\n </div>\n );\n return (\n <>\n {rail ? (\n <Tooltip content={label} side=\"right\">\n {el}\n </Tooltip>\n ) : (\n el\n )}\n {href && purpose.node}\n </>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Place.displayName = \"Sidebar.Place\";\n\nfunction useCut(ref: React.RefObject<HTMLElement | null>, enabled: boolean) {\n const [cut, setCut] = useState(false);\n useLayoutEffect(() => {\n const box = ref.current;\n if (!enabled || !box || typeof ResizeObserver === \"undefined\") return;\n const measure = () => setCut(box.scrollWidth > box.clientWidth);\n measure();\n return observeResize([box], measure);\n }, [ref, enabled]);\n return enabled && cut;\n}\n\nfunction PlaceName({ label }: { label: string }) {\n const ref = useRef<HTMLSpanElement>(null);\n const cut = useCut(ref, true);\n return (\n <Tooltip content={label} side=\"right\" disabled={!cut}>\n <span ref={ref} className=\"min-w-0 flex-1 truncate\">\n {label}\n </span>\n </Tooltip>\n );\n}\n\nconst Content = /* @__PURE__ */ forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(function SidebarContent({ className, ...props }, ref) {\n const { rail } = useSidebar();\n const own = useRef<HTMLDivElement | null>(null);\n const refs = useMemo(() => mergeRefs(own, ref), [ref]);\n useEffect(() => {\n const el = own.current;\n const root = el?.closest(\"[data-sidebar-root]\");\n if (!el || !root) return;\n const check = () => {\n root.toggleAttribute(\"data-scrolled-under\", el.scrollHeight - el.scrollTop - el.clientHeight > 1);\n root.toggleAttribute(\"data-scrolled-over\", el.scrollTop > 1);\n };\n check();\n el.addEventListener(\"scroll\", check, { passive: true });\n const stop = observeResize([el, ...el.children], check);\n return () => {\n el.removeEventListener(\"scroll\", check);\n stop();\n root.removeAttribute(\"data-scrolled-under\");\n root.removeAttribute(\"data-scrolled-over\");\n };\n }, []);\n return (\n <div\n ref={refs}\n className={cn(\"flex min-h-0 flex-1 flex-col gap-16 overflow-y-auto overscroll-contain pt-8 pb-16 scrollbar-quiet\", rail ? \"px-8\" : \"px-16\", className)}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Content.displayName = \"Sidebar.Content\";\n\nconst Footer = /* @__PURE__ */ forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(function SidebarFooter({ className, ...props }, ref) {\n const { rail } = useSidebar();\n return (\n <div\n ref={ref}\n className={cn(\n \"flex shrink-0 items-center gap-4 pt-8 pb-12 transition-control group-data-scrolled-under/sidebar:hairline-t-strong\",\n rail ? \"px-8\" : \"px-16\",\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Footer.displayName = \"Sidebar.Footer\";\n\nexport interface SidebarGroupProps {\n label?: ReactNode | undefined;\n id?: string | undefined;\n defaultOpen?: boolean | undefined;\n collapsible?: boolean | undefined;\n children: ReactNode;\n className?: string | undefined;\n}\n\nconst Group = /* @__PURE__ */ forwardRef<HTMLDivElement, SidebarGroupProps>(function SidebarGroup(\n { label, id, defaultOpen = true, collapsible = true, children, className },\n ref,\n) {\n const { storageKey, rail } = useSidebar();\n const [open, setOpen] = useStoredState(storageKey && id ? `${storageKey}:group:${id}` : undefined, defaultOpen);\n const labelId = useId();\n if (!label || !collapsible || rail) {\n const named = !!label && !rail;\n return (\n <div ref={ref} {...(named ? { role: \"group\", \"aria-labelledby\": labelId } : {})} className={cn(\"flex flex-col\", className)}>\n {named && (\n <div id={labelId} className=\"flex h-32 items-center px-12 text-caption font-medium text-fg-secondary\">\n {label}\n </div>\n )}\n <ul className=\"flex flex-col gap-2\">{children}</ul>\n </div>\n );\n }\n return (\n <Collapsible.Root ref={ref} open={open} onOpenChange={(o: boolean) => setOpen(o)} className={cn(\"flex flex-col\", className)}>\n <Collapsible.Trigger\n className={cn(DISCLOSURE_TRIGGER, \"h-32 text-caption font-medium text-fg-secondary hover:bg-fill-2 hover:text-fg active:bg-fill-3 coarse:h-44\")}\n >\n <span className=\"min-w-0 flex-1 truncate\">{label}</span>\n <DisclosureChevron />\n </Collapsible.Trigger>\n <Collapsible.Panel className=\"collapse-motion\">\n <ul className=\"flex flex-col gap-2 pt-2\">{children}</ul>\n </Collapsible.Panel>\n </Collapsible.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Group.displayName = \"Sidebar.Group\";\n\nexport interface SidebarItemProps {\n children: ReactNode;\n icon?: IconData | undefined;\n leading?: ReactNode | undefined;\n href?: string | undefined;\n onClick?: ((e: MouseEvent<HTMLElement>) => void) | undefined;\n active?: boolean | undefined;\n count?: number | undefined;\n trailing?: ReactNode | undefined;\n depth?: 0 | 1 | 2 | undefined;\n shortcut?: string[] | string[][] | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst DEPTH = [\"\", \"pl-32\", \"pl-52\"] as const;\n\nconst Item = /* @__PURE__ */ forwardRef<HTMLElement, SidebarItemProps>(function SidebarItem(\n { children, icon, leading, href, onClick, active, count, trailing, depth = 0, shortcut, className, \"data-force\": force },\n ref,\n) {\n const { rail } = useSidebar();\n const LinkComp = useLinkComponent();\n const sheet = useContext(SidebarSheetContext);\n const label = useRef<HTMLSpanElement>(null);\n const cut = useCut(label, !rail);\n const activate = (e: MouseEvent<HTMLElement>) => {\n onClick?.(e);\n if (sheet && !sheet.peek && !href && !e.defaultPrevented) sheet.close();\n };\n const classes = cn(\n \"group/si flex h-32 w-full min-w-0 cursor-pointer items-center gap-8 rounded-pill px-12 text-left text-body font-medium transition-control focus-ring-inset coarse:h-44\",\n active ? KAESO_SIDEBAR_VARIANTS.item.active.classes : KAESO_SIDEBAR_VARIANTS.item.default.classes,\n !rail && DEPTH[depth],\n rail && \"justify-center px-0\",\n className,\n );\n const inner = (\n <>\n {leading ? (\n <span className=\"flex size-18 shrink-0 items-center justify-center\">{leading}</span>\n ) : (\n icon && <Icon icon={icon} size=\"md\" className={cn(\"text-fg-secondary transition-control group-hover/si:text-fg\", active && \"text-fg\")} />\n )}\n {rail ? (\n <span className=\"sr-only\">{children}</span>\n ) : (\n <span ref={label} className=\"min-w-0 flex-1 truncate\">\n {children}\n </span>\n )}\n {!rail && count !== undefined && <span className={cn(\"text-caption font-medium tabular\", active ? \"text-fg\" : \"text-fg-tertiary\")}>{count}</span>}\n {!rail && trailing}\n </>\n );\n const common = {\n className: classes,\n ...(active ? { \"aria-current\": \"page\" as const } : {}),\n ...(force ? { \"data-force\": force } : {}),\n };\n const el = href ? (\n <LinkComp ref={ref as React.Ref<HTMLAnchorElement>} href={href} {...common} {...(onClick ? { onClick } : {})}>\n {inner}\n </LinkComp>\n ) : (\n <button ref={ref as React.Ref<HTMLButtonElement>} type=\"button\" {...common} onClick={activate}>\n {inner}\n </button>\n );\n return (\n <li className=\"flex\">\n <Tooltip content={children} side=\"right\" disabled={!rail && !cut} {...(rail && shortcut ? { shortcut } : {})}>\n {el}\n </Tooltip>\n </li>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Item.displayName = \"Sidebar.Item\";\n\nconst BackLink = /* @__PURE__ */ forwardRef<HTMLAnchorElement, { href: string; children?: ReactNode | undefined; className?: string | undefined }>(function SidebarBackLink(\n { href, children, className },\n ref,\n) {\n const LinkComp = useLinkComponent();\n const t = useUiText();\n return (\n <LinkComp\n ref={ref}\n href={href}\n className={cn(\n \"flex h-32 items-center gap-8 rounded-pill px-12 text-body font-medium text-fg-secondary transition-control hover:bg-fill-2 hover:text-fg active:bg-fill-3 focus-ring-inset coarse:h-44\",\n className,\n )}\n >\n <Icon icon={__icon_ArrowLeft01Icon} size=\"md\" />\n {children ?? t(\"sidebar.backToApp\", \"Back to app\")}\n </LinkComp>\n );\n});\nif (process.env.NODE_ENV !== \"production\") BackLink.displayName = \"Sidebar.BackLink\";\n\nconst Loading = /* @__PURE__ */ forwardRef<HTMLDivElement, { rows?: number | undefined }>(function SidebarLoading({ rows = 5 }, ref) {\n const t = useUiText();\n return (\n <div ref={ref} role=\"status\" aria-label={t(\"sidebar.loading\", \"Loading navigation\")} aria-busy className=\"flex flex-col gap-2\">\n {Array.from({ length: rows }, (_, i) => (\n <div key={i} className=\"flex h-32 items-center gap-8 px-12\">\n <Skeleton className=\"size-18 rounded-pill\" />\n <Skeleton className=\"h-12 rounded-pill\" style={{ width: `${48 + ((i * 37) % 40)}%` }} />\n </div>\n ))}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Loading.displayName = \"Sidebar.Loading\";\n\nconst CollapseToggle = /* @__PURE__ */ forwardRef<HTMLButtonElement, { className?: string | undefined }>(function SidebarCollapseToggle({ className }, ref) {\n const { collapsed, setCollapsed, shortcut } = useSidebar();\n const sheet = useContext(SidebarSheetContext);\n const t = useUiText();\n const label = sheet\n ? sheet.peek\n ? t(\"sidebar.keepOpen\", \"Keep sidebar open\")\n : t(\"sidebar.closeNavigation\", \"Close navigation\")\n : collapsed\n ? t(\"sidebar.expand\", \"Expand sidebar\")\n : t(\"sidebar.collapse\", \"Collapse sidebar\");\n const onClick = () => {\n if (sheet?.peek) setCollapsed(false);\n else if (sheet) sheet.close();\n else setCollapsed(!collapsed);\n };\n return (\n <Tooltip content={label} {...(shortcut && !(sheet && !sheet.peek) ? { shortcut: [\"[\"] } : {})}>\n <button\n ref={ref}\n type=\"button\"\n data-sidebar-collapse=\"\"\n aria-label={label}\n {...(sheet ? {} : { \"aria-expanded\": !collapsed })}\n onClick={onClick}\n className={cn(\n \"relative inline-flex size-32 cursor-pointer items-center justify-center rounded-pill text-fg-secondary transition-control tap-target hover:bg-fill-2 hover:text-fg active:bg-fill-3 focus-ring\",\n className,\n )}\n >\n <Icon icon={__icon_SidebarLeftIcon} size=\"sm\" />\n </button>\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CollapseToggle.displayName = \"Sidebar.CollapseToggle\";\n\nconst RailToggle = /* @__PURE__ */ forwardRef<HTMLButtonElement, { className?: string | undefined }>(function SidebarRailToggle({ className }, ref) {\n const { rail, setRail } = useSidebar();\n const t = useUiText();\n const label = t(\"sidebar.iconsOnly\", \"Icons only\");\n return (\n <Tooltip content={label} side=\"right\">\n <button\n ref={ref}\n type=\"button\"\n aria-label={label}\n aria-pressed={rail}\n onClick={() => setRail(!rail)}\n className={cn(\n \"relative inline-flex size-32 cursor-pointer items-center justify-center rounded-pill text-fg-secondary transition-control tap-target hover:bg-fill-2 hover:text-fg active:bg-fill-3 aria-pressed:bg-fill-3 aria-pressed:text-fg focus-ring\",\n className,\n )}\n >\n <Icon icon={__icon_SidebarLeftIcon} size=\"sm\" />\n </button>\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") RailToggle.displayName = \"Sidebar.RailToggle\";\n\nexport const Sidebar = /* @__PURE__ */ Object.assign(Root, {\n Provider,\n Header,\n Brand,\n Switcher,\n Place,\n Content,\n Footer,\n Group,\n Item,\n BackLink,\n Loading,\n RailToggle,\n CollapseToggle,\n});\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { c as e } from "./menu-DEmBfdPm.js";
2
+ import { c as e } from "./menu-Clvv6ftq.js";
3
3
  import { useEffect as t, useLayoutEffect as n, useState as r } from "react";
4
4
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
5
  import { mergeProps as o } from "@base-ui/react/merge-props";
@@ -30,4 +30,4 @@ function l(e, t) {
30
30
  //#endregion
31
31
  export { s as SidebarMenuRoot, l as mergeTriggerProps };
32
32
 
33
- //# sourceMappingURL=sidebar-menu-BN3jkTlK.js.map
33
+ //# sourceMappingURL=sidebar-menu-QSSNu1jJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar-menu-BN3jkTlK.js","names":["Menu","SidebarMenuRoot","mounted","setMounted","useState","useEffect","open","HandOver","triggerProps","header","footer","props","useLayoutEffect","store","mergeTriggerProps","_ref","given","mergeProps","own"],"sources":["../../src/components/sidebar/sidebar-menu.tsx"],"sourcesContent":["import { useEffect, useLayoutEffect, useState, type ReactNode } from \"react\";\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { Menu } from \"../menu/menu.js\";\nimport type { TriggerProps, TriggerPropsStore } from \"../tooltip/trigger-props.js\";\n\nexport interface SidebarMenuRootProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n triggerProps: TriggerPropsStore;\n side: \"top\" | \"bottom\";\n header?: ReactNode | undefined;\n footer?: ReactNode | undefined;\n children: ReactNode;\n}\n\nexport function SidebarMenuRoot({ open, onOpenChange, triggerProps, side, header, footer, children }: SidebarMenuRootProps) {\n const [mounted, setMounted] = useState(false);\n useEffect(() => setMounted(true), []);\n return (\n <Menu open={open && mounted} onOpenChange={onOpenChange}>\n <Menu.Trigger>\n <HandOver store={triggerProps} />\n </Menu.Trigger>\n <Menu.Content side={side} align=\"start\" {...(header ? { header } : {})} {...(footer ? { footer } : {})}>\n {children}\n </Menu.Content>\n </Menu>\n );\n}\nif (process.env.NODE_ENV !== \"production\") SidebarMenuRoot.displayName = \"Sidebar.MenuRoot\";\n\nfunction HandOver({ store, ...props }: TriggerProps & { store: TriggerPropsStore }) {\n useLayoutEffect(() => store.set(props));\n useLayoutEffect(() => () => store.set(null), [store]);\n return null;\n}\nif (process.env.NODE_ENV !== \"production\") HandOver.displayName = \"Sidebar.MenuHandOver\";\n\nexport function mergeTriggerProps(given: TriggerProps, own: object): object {\n const { ref: _ref, ...props } = given;\n return mergeProps<\"button\">(props, own);\n}\n"],"mappings":";;;;;;AAeA,SAAgBC,EAAgB,EAAE,SAAM,iBAAc,iBAAc,SAAM,WAAQ,WAAQ,eAAkC;CAC1H,IAAM,CAACC,GAASC,KAAcC,EAAS,EAAK;CAE5C,OADAC,QAAgBF,EAAW,EAAI,GAAG,CAAC,CAAC,GAElC,kBAACH,GAAD;EAAM,MAAMM,KAAQJ;EAAuB;EAA3C,UAAA,CACE,kBAACF,EAAK,SAAN,EAAA,UACE,kBAACO,GAAD,EAAU,OAAOC,EAAe,CAAA,EACpB,CAAA,GACd,kBAACR,EAAK,SAAN;GAAoB;GAAM,OAAM;GAAQ,GAAKS,IAAS,EAAE,UAAO,IAAI,CAAC;GAAI,GAAKC,IAAS,EAAE,UAAO,IAAI,CAAC;GACjG;EACW,CAAA,CACV;;AAEV;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAgB,cAAc;AAEzE,SAASH,EAAS,EAAE,UAAO,GAAGI,KAAsD;CAGlF,OAFAC,QAAsBC,EAAM,IAAIF,CAAK,CAAC,GACtCC,cAA4BC,EAAM,IAAI,IAAI,GAAG,CAACA,CAAK,CAAC,GAC7C;AACT;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc;AAElE,SAAgBC,EAAkB,GAAqB,GAAqB;CAC1E,IAAM,EAAE,KAAKC,GAAM,GAAGJ,MAAUK;CAChC,OAAOC,EAAqBN,GAAOO,CAAG;AACxC"}
1
+ {"version":3,"file":"sidebar-menu-QSSNu1jJ.js","names":["Menu","SidebarMenuRoot","mounted","setMounted","useState","useEffect","open","HandOver","triggerProps","header","footer","props","useLayoutEffect","store","mergeTriggerProps","_ref","given","mergeProps","own"],"sources":["../../src/components/sidebar/sidebar-menu.tsx"],"sourcesContent":["import { useEffect, useLayoutEffect, useState, type ReactNode } from \"react\";\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { Menu } from \"../menu/menu.js\";\nimport type { TriggerProps, TriggerPropsStore } from \"../tooltip/trigger-props.js\";\n\nexport interface SidebarMenuRootProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n triggerProps: TriggerPropsStore;\n side: \"top\" | \"bottom\";\n header?: ReactNode | undefined;\n footer?: ReactNode | undefined;\n children: ReactNode;\n}\n\nexport function SidebarMenuRoot({ open, onOpenChange, triggerProps, side, header, footer, children }: SidebarMenuRootProps) {\n const [mounted, setMounted] = useState(false);\n useEffect(() => setMounted(true), []);\n return (\n <Menu open={open && mounted} onOpenChange={onOpenChange}>\n <Menu.Trigger>\n <HandOver store={triggerProps} />\n </Menu.Trigger>\n <Menu.Content side={side} align=\"start\" {...(header ? { header } : {})} {...(footer ? { footer } : {})}>\n {children}\n </Menu.Content>\n </Menu>\n );\n}\nif (process.env.NODE_ENV !== \"production\") SidebarMenuRoot.displayName = \"Sidebar.MenuRoot\";\n\nfunction HandOver({ store, ...props }: TriggerProps & { store: TriggerPropsStore }) {\n useLayoutEffect(() => store.set(props));\n useLayoutEffect(() => () => store.set(null), [store]);\n return null;\n}\nif (process.env.NODE_ENV !== \"production\") HandOver.displayName = \"Sidebar.MenuHandOver\";\n\nexport function mergeTriggerProps(given: TriggerProps, own: object): object {\n const { ref: _ref, ...props } = given;\n return mergeProps<\"button\">(props, own);\n}\n"],"mappings":";;;;;;AAeA,SAAgBC,EAAgB,EAAE,SAAM,iBAAc,iBAAc,SAAM,WAAQ,WAAQ,eAAkC;CAC1H,IAAM,CAACC,GAASC,KAAcC,EAAS,EAAK;CAE5C,OADAC,QAAgBF,EAAW,EAAI,GAAG,CAAC,CAAC,GAElC,kBAACH,GAAD;EAAM,MAAMM,KAAQJ;EAAuB;EAA3C,UAAA,CACE,kBAACF,EAAK,SAAN,EAAA,UACE,kBAACO,GAAD,EAAU,OAAOC,EAAe,CAAA,EACpB,CAAA,GACd,kBAACR,EAAK,SAAN;GAAoB;GAAM,OAAM;GAAQ,GAAKS,IAAS,EAAE,UAAO,IAAI,CAAC;GAAI,GAAKC,IAAS,EAAE,UAAO,IAAI,CAAC;GACjG;EACW,CAAA,CACV;;AAEV;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAgB,cAAc;AAEzE,SAASH,EAAS,EAAE,UAAO,GAAGI,KAAsD;CAGlF,OAFAC,QAAsBC,EAAM,IAAIF,CAAK,CAAC,GACtCC,cAA4BC,EAAM,IAAI,IAAI,GAAG,CAACA,CAAK,CAAC,GAC7C;AACT;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc;AAElE,SAAgBC,EAAkB,GAAqB,GAAqB;CAC1E,IAAM,EAAE,KAAKC,GAAM,GAAGJ,MAAUK;CAChC,OAAOC,EAAqBN,GAAOO,CAAG;AACxC"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Dj6sRgkF.js";
2
+ import { t as e } from "./cn-BjnOAUrA.js";
3
3
  import { forwardRef as t } from "react";
4
4
  import { jsx as n } from "react/jsx-runtime";
5
5
  //#region src/components/skeleton/skeleton.tsx
@@ -12,7 +12,7 @@ var r = { shape: {
12
12
  return /* @__PURE__ */ n("div", {
13
13
  ref: o,
14
14
  "aria-hidden": !0,
15
- className: e("bg-fill-2 animate-pulse-quiet", r.shape[t].classes, i),
15
+ className: e("bg-fill-2 animate-pulse-quiet forced-colors:outline forced-colors:-outline-offset-1", r.shape[t].classes, i),
16
16
  ...a
17
17
  });
18
18
  });
@@ -33,4 +33,4 @@ process.env.NODE_ENV !== "production" && (o.displayName = "SkeletonLine");
33
33
  //#endregion
34
34
  export { o as i, r as n, a as r, i as t };
35
35
 
36
- //# sourceMappingURL=skeleton-Dcz57Zyp.js.map
36
+ //# sourceMappingURL=skeleton-D-qk3mes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton-D-qk3mes.js","names":["cn","KAESO_SKELETON_VARIANTS","KAESO_SKELETON_DEFAULT_VARIANTS","Skeleton","props","shape","className","SkeletonLine","lines","i"],"sources":["../../src/components/skeleton/skeleton.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_SKELETON_VARIANTS = {\n shape: {\n block: { classes: \"rounded-well\" },\n line: { classes: \"h-12 rounded-pill\" },\n circle: { classes: \"rounded-pill\" },\n control: { classes: \"h-36 rounded-pill\" },\n },\n} as const;\nexport const KAESO_SKELETON_DEFAULT_VARIANTS = { shape: \"block\" } as const;\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n shape?: keyof typeof KAESO_SKELETON_VARIANTS.shape | undefined;\n}\n\nexport const Skeleton = /* @__PURE__ */ forwardRef<HTMLDivElement, SkeletonProps>(function Skeleton({ shape = \"block\", className, ...props }, ref) {\n return (\n <div\n ref={ref}\n aria-hidden\n className={cn(\n \"bg-fill-2 animate-pulse-quiet forced-colors:outline forced-colors:-outline-offset-1\",\n KAESO_SKELETON_VARIANTS.shape[shape].classes,\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Skeleton.displayName = \"Skeleton\";\n\nexport const SkeletonLine = /* @__PURE__ */ forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement> & { lines?: number | undefined }>(function SkeletonLine(\n { lines = 1, className, ...props },\n ref,\n) {\n return (\n <div ref={ref} aria-hidden className={cn(\"flex flex-col gap-8\", className)} {...props}>\n {Array.from({ length: lines }, (_, i) => (\n <Skeleton key={i} shape=\"line\" className={i === lines - 1 && lines > 1 ? \"w-3/5\" : \"w-full\"} />\n ))}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") SkeletonLine.displayName = \"SkeletonLine\";\n"],"mappings":";;;;;AAGA,IAAaC,IAA0B,EACrC,OAAO;CACL,OAAO,EAAE,SAAS,eAAe;CACjC,MAAM,EAAE,SAAS,oBAAoB;CACrC,QAAQ,EAAE,SAAS,eAAe;CAClC,SAAS,EAAE,SAAS,oBAAoB;AAC1C,EACF,GACaC,IAAkC,EAAE,OAAO,QAAQ,GAMnDC,IAA2B,kBAA0C,SAAkB,EAAE,WAAQ,SAAS,cAAW,GAAGC,KAAS,GAAK;CACjJ,OACE,kBAAC,OAAD;EACO;EACL,eAAA;EACA,WAAWJ,EACT,uFACAC,EAAwB,MAAMI,EAAM,CAAC,SACrCC,CACF;EACA,GAAIF;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc;AAElE,IAAaG,IAA+B,kBAA4F,SACtI,EAAE,WAAQ,GAAG,cAAW,GAAGH,KAC3B,GACA;CACA,OACE,kBAAC,OAAD;EAAU;EAAK,eAAA;EAAY,WAAWJ,EAAG,uBAAuBM,CAAS;EAAG,GAAIF;EAC7E,UAAA,MAAM,KAAK,EAAE,QAAQI,EAAM,IAAI,GAAG,MACjC,kBAACL,GAAD;GAAkB,OAAM;GAAO,WAAWM,MAAMD,IAAQ,KAAKA,IAAQ,IAAI,UAAU;EAAW,GAA/EC,CAA+E,CAC/F;CACE,CAAA;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAa,cAAc"}
@@ -0,0 +1,58 @@
1
+ "use client";
2
+ import { t as e } from "./cn-BjnOAUrA.js";
3
+ import { i as t, r as n } from "./context-BELWW79w.js";
4
+ import { forwardRef as r } from "react";
5
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ import { Slider as o } from "@base-ui/react/slider";
7
+ //#region src/components/slider/slider.tsx
8
+ var s = { size: { md: { classes: "h-32" } } }, c = { size: "md" }, l = /* @__PURE__ */ r(function({ value: r, defaultValue: c, onValueChange: l, onValueCommitted: u, min: d = 0, max: f = 100, step: p = 1, ticks: m, formatValue: h, disabled: g, name: _, className: v, "aria-label": y, getAriaLabel: b, "data-force": x }, S) {
9
+ let C = t(), w = n(), T = h ?? (w === "en" ? String : (e) => new Intl.NumberFormat(w, {
10
+ useGrouping: !1,
11
+ maximumFractionDigits: 20
12
+ }).format(e)), E = r ?? c ?? d, D = Array.isArray(E) ? E.length : 1, O = Array.isArray(m) ? m : m ? Array.from({ length: Math.floor((f - d) / p) + 1 }, (e, t) => d + t * p) : [];
13
+ return /* @__PURE__ */ a(o.Root, {
14
+ ref: S,
15
+ ...r === void 0 ? {} : { value: r },
16
+ ...c === void 0 ? {} : { defaultValue: c },
17
+ ...l ? { onValueChange: (e) => l(Array.isArray(e) ? [...e] : e) } : {},
18
+ ...u ? { onValueCommitted: (e) => u(Array.isArray(e) ? [...e] : e) } : {},
19
+ min: d,
20
+ max: f,
21
+ step: p,
22
+ ...g === void 0 ? {} : { disabled: g },
23
+ ..._ ? { name: _ } : {},
24
+ ...w === "en" ? {} : { locale: w },
25
+ className: e("relative w-full min-w-120 touch-none select-none data-disabled:opacity-40", v),
26
+ ...x ? { "data-force": x } : {},
27
+ children: [/* @__PURE__ */ i(o.Control, {
28
+ className: e("relative flex w-full cursor-pointer items-center px-8 data-disabled:cursor-not-allowed coarse:h-44", s.size.md.classes),
29
+ children: /* @__PURE__ */ a(o.Track, {
30
+ className: "relative h-4 w-full rounded-pill slider-track",
31
+ children: [/* @__PURE__ */ i(o.Indicator, { className: "rounded-pill slider-range" }), Array.from({ length: D }, (t, n) => /* @__PURE__ */ i(o.Thumb, {
32
+ index: n,
33
+ ...b ? { getAriaLabel: b } : y ? { "aria-label": y } : {},
34
+ ...D === 2 ? { getAriaValueText: (e, t, n) => n === 0 ? C("slider.rangeStart", "Start of range: {value}", { value: e }) : C("slider.rangeEnd", "End of range: {value}", { value: e }) } : {},
35
+ ...x ? { "data-force": x } : {},
36
+ className: "group/thumb size-16 rounded-pill slider-thumb",
37
+ children: /* @__PURE__ */ i("span", {
38
+ "aria-hidden": !0,
39
+ className: e("pointer-events-none absolute bottom-full left-1/2 mb-8 inline-flex h-24 -translate-x-1/2 items-center rounded-pill bg-tooltip px-8 text-caption font-medium tabular text-fg opacity-0 shadow-xs transition-opacity duration-120 group-data-dragging/thumb:opacity-100 group-focus-within-visible/thumb:opacity-100", (x?.includes("dragging") || x?.includes("focus")) && "opacity-100"),
40
+ children: /* @__PURE__ */ i(o.Value, { children: (e, t) => T(t[n] ?? 0) })
41
+ })
42
+ }, n))]
43
+ })
44
+ }), O.length > 0 && /* @__PURE__ */ i("div", {
45
+ className: "pointer-events-none relative -mt-4 h-4 coarse:-mt-10",
46
+ "aria-hidden": !0,
47
+ children: O.map((e) => /* @__PURE__ */ i("span", {
48
+ className: "absolute top-0 h-4 w-1 -translate-x-1/2 bg-line-strong forced-line",
49
+ style: { left: `calc(8px + (100% - 16px) * ${(e - d) / (f - d)})` }
50
+ }, e))
51
+ })]
52
+ });
53
+ });
54
+ process.env.NODE_ENV !== "production" && (l.displayName = "Slider");
55
+ //#endregion
56
+ export { s as n, l as r, c as t };
57
+
58
+ //# sourceMappingURL=slider-CcE8GtuV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider-CcE8GtuV.js","names":["Slider","BaseSlider","cn","useUiText","useLocale","KAESO_SLIDER_VARIANTS","KAESO_SLIDER_DEFAULT_VARIANTS","Slider$1","formatValueProp","ariaLabel","force","t","locale","formatValue","v","initial","value","defaultValue","min","count","tickValues","ticks","max","step","i","Slider","onValueChange","onValueCommitted","disabled","name","className","getAriaLabel","index","formatted","values","tick"],"sources":["../../src/components/slider/slider.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { Slider as BaseSlider } from \"@base-ui/react/slider\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_SLIDER_VARIANTS = {\n size: {\n md: { classes: \"h-32\" },\n },\n} as const;\nexport const KAESO_SLIDER_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface SliderProps {\n value?: number | number[] | undefined;\n defaultValue?: number | number[] | undefined;\n onValueChange?: ((value: number | number[]) => void) | undefined;\n onValueCommitted?: ((value: number | number[]) => void) | undefined;\n min?: number | undefined;\n max?: number | undefined;\n step?: number | undefined;\n ticks?: boolean | number[] | undefined;\n formatValue?: ((value: number) => string) | undefined;\n disabled?: boolean | undefined;\n name?: string | undefined;\n \"aria-label\"?: string | undefined;\n getAriaLabel?: ((index: number) => string) | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const Slider = /* @__PURE__ */ forwardRef<HTMLDivElement, SliderProps>(function Slider(\n {\n value,\n defaultValue,\n onValueChange,\n onValueCommitted,\n min = 0,\n max = 100,\n step = 1,\n ticks,\n formatValue: formatValueProp,\n disabled,\n name,\n className,\n \"aria-label\": ariaLabel,\n getAriaLabel,\n \"data-force\": force,\n },\n ref,\n) {\n const t = useUiText();\n const locale = useLocale();\n const formatValue =\n formatValueProp ?? (locale === \"en\" ? String : (v: number) => new Intl.NumberFormat(locale, { useGrouping: false, maximumFractionDigits: 20 }).format(v));\n const initial = value ?? defaultValue ?? min;\n const count = Array.isArray(initial) ? initial.length : 1;\n const tickValues = Array.isArray(ticks) ? ticks : ticks ? Array.from({ length: Math.floor((max - min) / step) + 1 }, (_, i) => min + i * step) : [];\n return (\n <BaseSlider.Root\n ref={ref}\n {...(value !== undefined ? { value } : {})}\n {...(defaultValue !== undefined ? { defaultValue } : {})}\n {...(onValueChange ? { onValueChange: (v: number | readonly number[]) => onValueChange(Array.isArray(v) ? [...v] : (v as number)) } : {})}\n {...(onValueCommitted ? { onValueCommitted: (v: number | readonly number[]) => onValueCommitted(Array.isArray(v) ? [...v] : (v as number)) } : {})}\n min={min}\n max={max}\n step={step}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(name ? { name } : {})}\n {...(locale === \"en\" ? {} : { locale })}\n className={cn(\"relative w-full min-w-120 touch-none select-none data-disabled:opacity-40\", className)}\n {...(force ? { \"data-force\": force } : {})}\n >\n <BaseSlider.Control\n className={cn(\n \"relative flex w-full cursor-pointer items-center px-8 data-disabled:cursor-not-allowed coarse:h-44\",\n KAESO_SLIDER_VARIANTS.size.md.classes,\n )}\n >\n <BaseSlider.Track className=\"relative h-4 w-full rounded-pill slider-track\">\n <BaseSlider.Indicator className=\"rounded-pill slider-range\" />\n {Array.from({ length: count }, (_, i) => (\n <BaseSlider.Thumb\n key={i}\n index={i}\n {...(getAriaLabel ? { getAriaLabel } : ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(count === 2\n ? {\n getAriaValueText: (formatted: string, _v: number, index: number) =>\n index === 0\n ? t(\"slider.rangeStart\", \"Start of range: {value}\", { value: formatted })\n : t(\"slider.rangeEnd\", \"End of range: {value}\", { value: formatted }),\n }\n : {})}\n {...(force ? { \"data-force\": force } : {})}\n className=\"group/thumb size-16 rounded-pill slider-thumb\"\n >\n <span\n aria-hidden\n className={cn(\n \"pointer-events-none absolute bottom-full left-1/2 mb-8 inline-flex h-24 -translate-x-1/2 items-center rounded-pill bg-tooltip px-8 text-caption font-medium tabular text-fg opacity-0 shadow-xs transition-opacity duration-120 group-data-dragging/thumb:opacity-100 group-focus-within-visible/thumb:opacity-100\",\n (force?.includes(\"dragging\") || force?.includes(\"focus\")) && \"opacity-100\",\n )}\n >\n <BaseSlider.Value>{(_, values) => formatValue(values[i] ?? 0)}</BaseSlider.Value>\n </span>\n </BaseSlider.Thumb>\n ))}\n </BaseSlider.Track>\n </BaseSlider.Control>\n {tickValues.length > 0 && (\n <div className=\"pointer-events-none relative -mt-4 h-4 coarse:-mt-10\" aria-hidden>\n {tickValues.map((tick) => (\n <span\n key={tick}\n className=\"absolute top-0 h-4 w-1 -translate-x-1/2 bg-line-strong forced-line\"\n style={{ left: `calc(8px + (100% - 16px) * ${(tick - min) / (max - min)})` }}\n />\n ))}\n </div>\n )}\n </BaseSlider.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Slider.displayName = \"Slider\";\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Dj6sRgkF.js";
2
+ import { t as e } from "./cn-BjnOAUrA.js";
3
3
  import { t } from "./dev-CR1p7gCm.js";
4
- import { t as n } from "./icon-D7ja-_Yk.js";
4
+ import { t as n } from "./icon-CBzOwqrX.js";
5
5
  import { forwardRef as r } from "react";
6
6
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
7
  //#region src/components/status-dot/status-dot.tsx
@@ -17,7 +17,7 @@ var o = { tone: {
17
17
  className: e("inline-flex items-center gap-6 font-medium", c === "md" ? "text-body" : "text-small", o.tone[r].classes, u),
18
18
  children: [l && /* @__PURE__ */ i(n, {
19
19
  icon: l,
20
- size: "sm"
20
+ size: c === "sm" ? "xs" : "sm"
21
21
  }), s]
22
22
  });
23
23
  });
@@ -26,4 +26,4 @@ var l = c;
26
26
  //#endregion
27
27
  export { c as i, o as n, l as r, s as t };
28
28
 
29
- //# sourceMappingURL=status-dot-QJTF0Yv4.js.map
29
+ //# sourceMappingURL=status-dot-CP6runiC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-dot-QJTF0Yv4.js","names":["cn","Icon","KAESO_STATUS_DOT_VARIANTS","KAESO_STATUS_DOT_DEFAULT_VARIANTS","StatusDot","children","devWarn","size","tone","className","icon","Status"],"sources":["../../src/components/status-dot/status-dot.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { devWarn } from \"../../utils/dev.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\n\nexport const KAESO_STATUS_DOT_VARIANTS = {\n tone: {\n success: { classes: \"text-success-text\" },\n warning: { classes: \"text-warning-text\" },\n danger: { classes: \"text-danger-text\" },\n info: { classes: \"text-info-text\" },\n neutral: { classes: \"text-fg-secondary\" },\n },\n} as const;\nexport const KAESO_STATUS_DOT_DEFAULT_VARIANTS = { tone: \"neutral\" } as const;\n\nexport interface StatusDotProps {\n tone?: keyof typeof KAESO_STATUS_DOT_VARIANTS.tone | undefined;\n children?: ReactNode | undefined;\n size?: \"sm\" | \"md\" | undefined;\n icon?: IconData | undefined;\n className?: string | undefined;\n}\n\nexport const StatusDot = /* @__PURE__ */ forwardRef<HTMLSpanElement, StatusDotProps>(function StatusDot({ tone = \"neutral\", children, size = \"md\", icon, className }, ref) {\n if (children === undefined || children === null || children === \"\")\n devWarn(\"StatusDot: a status is a word in its color; pass the word as children (it renders nothing without one).\");\n return (\n <span\n ref={ref}\n className={cn(\n \"inline-flex items-center gap-6 font-medium\",\n size === \"md\" ? \"text-body\" : \"text-small\",\n KAESO_STATUS_DOT_VARIANTS.tone[tone].classes,\n className,\n )}\n >\n {icon && <Icon icon={icon} size=\"sm\" />}\n {children}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") StatusDot.displayName = \"StatusDot\";\n\nexport const Status = StatusDot;\n"],"mappings":";;;;;;;AAKA,IAAaE,IAA4B,EACvC,MAAM;CACJ,SAAS,EAAE,SAAS,oBAAoB;CACxC,SAAS,EAAE,SAAS,oBAAoB;CACxC,QAAQ,EAAE,SAAS,mBAAmB;CACtC,MAAM,EAAE,SAAS,iBAAiB;CAClC,SAAS,EAAE,SAAS,oBAAoB;AAC1C,EACF,GACaC,IAAoC,EAAE,MAAM,UAAU,GAUtDC,IAA4B,kBAA4C,SAAmB,EAAE,UAAO,WAAW,aAAU,UAAO,MAAM,SAAM,gBAAa,GAAK;CAGzK,QAFIC,KAAuC,QAAQA,MAAa,OAC9DC,EAAQ,yGAAyG,GAEjH,kBAAC,QAAD;EACO;EACL,WAAWN,EACT,8CACAO,MAAS,OAAO,cAAc,cAC9BL,EAA0B,KAAKM,EAAK,CAAC,SACrCC,CACF;EAPF,UAAA,CASGC,KAAQ,kBAACT,GAAD;GAAY;GAAM,MAAK;EAAM,CAAA,GACrCI,CACG;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAU,cAAc;AAEnE,IAAaM,IAASP"}
1
+ {"version":3,"file":"status-dot-CP6runiC.js","names":["cn","Icon","KAESO_STATUS_DOT_VARIANTS","KAESO_STATUS_DOT_DEFAULT_VARIANTS","StatusDot","children","devWarn","size","tone","className","icon","Status"],"sources":["../../src/components/status-dot/status-dot.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { devWarn } from \"../../utils/dev.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\n\nexport const KAESO_STATUS_DOT_VARIANTS = {\n tone: {\n success: { classes: \"text-success-text\" },\n warning: { classes: \"text-warning-text\" },\n danger: { classes: \"text-danger-text\" },\n info: { classes: \"text-info-text\" },\n neutral: { classes: \"text-fg-secondary\" },\n },\n} as const;\nexport const KAESO_STATUS_DOT_DEFAULT_VARIANTS = { tone: \"neutral\" } as const;\n\nexport interface StatusDotProps {\n tone?: keyof typeof KAESO_STATUS_DOT_VARIANTS.tone | undefined;\n children?: ReactNode | undefined;\n size?: \"sm\" | \"md\" | undefined;\n icon?: IconData | undefined;\n className?: string | undefined;\n}\n\nexport const StatusDot = /* @__PURE__ */ forwardRef<HTMLSpanElement, StatusDotProps>(function StatusDot({ tone = \"neutral\", children, size = \"md\", icon, className }, ref) {\n if (children === undefined || children === null || children === \"\")\n devWarn(\"StatusDot: a status is a word in its color; pass the word as children (it renders nothing without one).\");\n return (\n <span\n ref={ref}\n className={cn(\n \"inline-flex items-center gap-6 font-medium\",\n size === \"md\" ? \"text-body\" : \"text-small\",\n KAESO_STATUS_DOT_VARIANTS.tone[tone].classes,\n className,\n )}\n >\n {icon && <Icon icon={icon} size={size === \"sm\" ? \"xs\" : \"sm\"} />}\n {children}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") StatusDot.displayName = \"StatusDot\";\n\nexport const Status = StatusDot;\n"],"mappings":";;;;;;;AAKA,IAAaE,IAA4B,EACvC,MAAM;CACJ,SAAS,EAAE,SAAS,oBAAoB;CACxC,SAAS,EAAE,SAAS,oBAAoB;CACxC,QAAQ,EAAE,SAAS,mBAAmB;CACtC,MAAM,EAAE,SAAS,iBAAiB;CAClC,SAAS,EAAE,SAAS,oBAAoB;AAC1C,EACF,GACaC,IAAoC,EAAE,MAAM,UAAU,GAUtDC,IAA4B,kBAA4C,SAAmB,EAAE,UAAO,WAAW,aAAU,UAAO,MAAM,SAAM,gBAAa,GAAK;CAGzK,QAFIC,KAAuC,QAAQA,MAAa,OAC9DC,EAAQ,yGAAyG,GAEjH,kBAAC,QAAD;EACO;EACL,WAAWN,EACT,8CACAO,MAAS,OAAO,cAAc,cAC9BL,EAA0B,KAAKM,EAAK,CAAC,SACrCC,CACF;EAPF,UAAA,CASGC,KAAQ,kBAACT,GAAD;GAAY;GAAM,MAAMM,MAAS,OAAO,OAAO;EAAO,CAAA,GAC9DF,CACG;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAU,cAAc;AAEnE,IAAaM,IAASP"}
@@ -14,8 +14,8 @@ var e = Object.defineProperty, t = (t, n) => {
14
14
  MENU_LABEL: () => s,
15
15
  MENU_POPUP: () => r,
16
16
  MENU_SEPARATOR: () => c
17
- }), r = "z-50 flex min-w-220 max-w-360 flex-col overflow-y-auto overscroll-contain rounded-menu bg-raised p-6 text-body text-fg shadow-raised outline-none popup-motion scrollbar-quiet max-h-(--available-height)", i = "group/item relative flex min-h-34 w-full cursor-default items-center gap-10 rounded-item px-10 text-left text-body font-medium text-fg outline-none select-none coarse:min-h-44 highlighted:bg-item-hover active:bg-item-pressed disabled:pointer-events-none disabled:text-fg-disabled", a = "text-fg-secondary group-data-highlighted/item:text-fg group-data-disabled/item:text-fg-disabled", o = "text-danger-text highlighted:bg-danger-tint", s = "flex h-28 items-center px-10 text-caption font-medium text-fg-secondary", c = "mx-10 my-4 h-1 shrink-0 bg-line-subtle", l = "ml-auto flex shrink-0 items-center gap-4 pl-16 text-caption font-medium text-fg-tertiary tabular group-data-highlighted/item:text-fg-secondary";
17
+ }), r = "z-50 flex min-w-220 max-w-360 flex-col overflow-y-auto overscroll-contain rounded-menu bg-raised p-6 text-body text-fg shadow-raised outline-none popup-motion scrollbar-quiet max-h-(--available-height)", i = "group/item relative flex min-h-34 w-full cursor-default items-center gap-10 rounded-item px-10 text-left text-body font-medium text-fg outline-none select-none coarse:min-h-44 highlighted:bg-item-hover active:bg-item-pressed disabled:pointer-events-none disabled:text-fg-disabled", a = "text-fg-secondary group-data-highlighted/item:text-fg group-data-disabled/item:text-fg-disabled forced-colors:text-current", o = "text-danger-text highlighted:bg-danger-tint active:bg-danger-tint", s = "flex h-28 items-center px-10 text-caption font-medium text-fg-secondary", c = "mx-10 my-4 h-1 shrink-0 bg-line-subtle", l = "ml-auto flex shrink-0 items-center gap-4 pl-16 text-caption font-medium text-fg-tertiary tabular group-data-highlighted/item:text-fg-secondary forced-colors:text-current";
18
18
  //#endregion
19
19
  export { s as a, n as c, i, t as l, l as n, r as o, a as r, c as s, o as t };
20
20
 
21
- //# sourceMappingURL=styles-CVJU9t9v.js.map
21
+ //# sourceMappingURL=styles-hkFkoBbi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles-CVJU9t9v.js","names":["__defProp","__exportAll","target","name","all","no_symbols","styles_exports","MENU_DANGER","MENU_HINT","MENU_ICON","MENU_ITEM","MENU_LABEL","MENU_POPUP","MENU_SEPARATOR"],"sources":["../../src/components/menu/styles.ts"],"sourcesContent":["export const MENU_POPUP =\n \"z-50 flex min-w-220 max-w-360 flex-col overflow-y-auto overscroll-contain rounded-menu bg-raised p-6 text-body text-fg shadow-raised outline-none popup-motion scrollbar-quiet max-h-(--available-height)\";\n\nexport const MENU_ITEM =\n \"group/item relative flex min-h-34 w-full cursor-default items-center gap-10 rounded-item px-10 text-left text-body font-medium text-fg outline-none select-none coarse:min-h-44 highlighted:bg-item-hover active:bg-item-pressed disabled:pointer-events-none disabled:text-fg-disabled\";\n\nexport const MENU_ICON = \"text-fg-secondary group-data-highlighted/item:text-fg group-data-disabled/item:text-fg-disabled\";\n\nexport const MENU_DANGER = \"text-danger-text highlighted:bg-danger-tint\";\n\nexport const MENU_LABEL = \"flex h-28 items-center px-10 text-caption font-medium text-fg-secondary\";\n\nexport const MENU_SEPARATOR = \"mx-10 my-4 h-1 shrink-0 bg-line-subtle\";\n\nexport const MENU_HINT =\n \"ml-auto flex shrink-0 items-center gap-4 pl-16 text-caption font-medium text-fg-tertiary tabular group-data-highlighted/item:text-fg-secondary\";\n"],"mappings":";;;;;;;;;;;;;;;;A,IAAaY,IACX,6MAEWF,IACX,2RAEWD,IAAY,mGAEZF,IAAc,+CAEdI,IAAa,2EAEbE,IAAiB,0CAEjBL,IACX"}
1
+ {"version":3,"file":"styles-hkFkoBbi.js","names":["__defProp","__exportAll","target","name","all","no_symbols","styles_exports","MENU_DANGER","MENU_HINT","MENU_ICON","MENU_ITEM","MENU_LABEL","MENU_POPUP","MENU_SEPARATOR"],"sources":["../../src/components/menu/styles.ts"],"sourcesContent":["export const MENU_POPUP =\n \"z-50 flex min-w-220 max-w-360 flex-col overflow-y-auto overscroll-contain rounded-menu bg-raised p-6 text-body text-fg shadow-raised outline-none popup-motion scrollbar-quiet max-h-(--available-height)\";\n\nexport const MENU_ITEM =\n \"group/item relative flex min-h-34 w-full cursor-default items-center gap-10 rounded-item px-10 text-left text-body font-medium text-fg outline-none select-none coarse:min-h-44 highlighted:bg-item-hover active:bg-item-pressed disabled:pointer-events-none disabled:text-fg-disabled\";\n\nexport const MENU_ICON = \"text-fg-secondary group-data-highlighted/item:text-fg group-data-disabled/item:text-fg-disabled forced-colors:text-current\";\n\nexport const MENU_DANGER = \"text-danger-text highlighted:bg-danger-tint active:bg-danger-tint\";\n\nexport const MENU_LABEL = \"flex h-28 items-center px-10 text-caption font-medium text-fg-secondary\";\n\nexport const MENU_SEPARATOR = \"mx-10 my-4 h-1 shrink-0 bg-line-subtle\";\n\nexport const MENU_HINT =\n \"ml-auto flex shrink-0 items-center gap-4 pl-16 text-caption font-medium text-fg-tertiary tabular group-data-highlighted/item:text-fg-secondary forced-colors:text-current\";\n"],"mappings":";;;;;;;;;;;;;;;;A,IAAaY,IACX,6MAEWF,IACX,2RAEWD,IAAY,8HAEZF,IAAc,qEAEdI,IAAa,2EAEbE,IAAiB,0CAEjBL,IACX"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "./cn-Dj6sRgkF.js";
2
+ import { t as e } from "./cn-BjnOAUrA.js";
3
3
  import { forwardRef as t } from "react";
4
4
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
5
  //#region src/components/swap-text/swap-text.tsx
@@ -9,7 +9,7 @@ var i = { align: {
9
9
  } }, a = { align: "center" }, o = /* @__PURE__ */ t(function({ children: t, reserve: a, align: o = "center", className: s, ...c }, l) {
10
10
  return /* @__PURE__ */ r("span", {
11
11
  ref: l,
12
- className: e("inline-grid", i.align[o].classes, s),
12
+ className: e("inline-grid whitespace-nowrap", i.align[o].classes, s),
13
13
  ...c,
14
14
  children: [/* @__PURE__ */ n("span", {
15
15
  className: "col-start-1 row-start-1",
@@ -25,4 +25,4 @@ process.env.NODE_ENV !== "production" && (o.displayName = "SwapText");
25
25
  //#endregion
26
26
  export { i as n, o as r, a as t };
27
27
 
28
- //# sourceMappingURL=swap-text-Dr0Irxz6.js.map
28
+ //# sourceMappingURL=swap-text-SlUjrTlG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap-text-SlUjrTlG.js","names":["cn","KAESO_SWAP_TEXT_VARIANTS","KAESO_SWAP_TEXT_DEFAULT_VARIANTS","SwapText","props","align","className","reserve","r","i"],"sources":["../../src/components/swap-text/swap-text.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nexport const KAESO_SWAP_TEXT_VARIANTS = {\n align: {\n center: { classes: \"justify-items-center\" },\n start: { classes: \"justify-items-start\" },\n },\n} as const;\nexport const KAESO_SWAP_TEXT_DEFAULT_VARIANTS = { align: \"center\" } as const;\n\nexport interface SwapTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, \"children\"> {\n children: ReactNode;\n reserve: ReactNode[];\n align?: keyof typeof KAESO_SWAP_TEXT_VARIANTS.align | undefined;\n}\n\nexport const SwapText = /* @__PURE__ */ forwardRef<HTMLSpanElement, SwapTextProps>(function SwapText({ children, reserve, align = \"center\", className, ...props }, ref) {\n return (\n <span ref={ref} className={cn(\"inline-grid whitespace-nowrap\", KAESO_SWAP_TEXT_VARIANTS.align[align].classes, className)} {...props}>\n <span className=\"col-start-1 row-start-1\">{children}</span>\n {reserve.map((r, i) => (\n <span key={i} aria-hidden className=\"invisible col-start-1 row-start-1\">\n {r}\n </span>\n ))}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") SwapText.displayName = \"SwapText\";\n"],"mappings":";;;;;AAGA,IAAaC,IAA2B,EACtC,OAAO;CACL,QAAQ,EAAE,SAAS,uBAAuB;CAC1C,OAAO,EAAE,SAAS,sBAAsB;AAC1C,EACF,GACaC,IAAmC,EAAE,OAAO,SAAS,GAQrDC,IAA2B,kBAA2C,SAAkB,EAAE,aAAU,YAAS,WAAQ,UAAU,cAAW,GAAGC,KAAS,GAAK;CACtK,OACE,kBAAC,QAAD;EAAW;EAAK,WAAWJ,EAAG,iCAAiCC,EAAyB,MAAMI,EAAM,CAAC,SAASC,CAAS;EAAG,GAAIF;EAA9H,UAAA,CACE,kBAAC,QAAD;GAAM,WAAU;GAA2B;EAAe,CAAA,GACzDG,EAAQ,KAAK,GAAG,MACf,kBAAC,QAAD;GAAc,eAAA;GAAY,WAAU;GACjC,UAAAC;EACG,GAFKC,CAEL,CACP,CACG;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc"}
@@ -0,0 +1,76 @@
1
+ "use client";
2
+ import { t as e } from "./cn-BjnOAUrA.js";
3
+ import { r as t } from "./tooltip-Tkm-urbi.js";
4
+ import { i as n, r } from "./loader-zo8CCIGJ.js";
5
+ import { t as i } from "./labelled-D5udSPUI.js";
6
+ import { forwardRef as a, useId as o } from "react";
7
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
8
+ import { Switch as l } from "@base-ui/react/switch";
9
+ //#region src/components/switch/switch.tsx
10
+ var u = { size: {
11
+ sm: { classes: "h-16 w-28 p-2" },
12
+ md: { classes: "h-20 w-36 p-2" },
13
+ lg: { classes: "h-24 w-44 p-2" }
14
+ } }, d = { size: "md" }, f = {
15
+ sm: "size-12 data-checked:translate-x-12 rtl:data-checked:-translate-x-12",
16
+ md: "size-16 data-checked:translate-x-16 rtl:data-checked:-translate-x-16",
17
+ lg: "size-20 data-checked:translate-x-20 rtl:data-checked:-translate-x-20"
18
+ }, p = {
19
+ sm: "size-10 inset-y-3 end-3 group-data-checked/sw:end-auto group-data-checked/sw:start-3",
20
+ md: "size-12 inset-y-4 end-4 group-data-checked/sw:end-auto group-data-checked/sw:start-4",
21
+ lg: "size-16 inset-y-4 end-4 group-data-checked/sw:end-auto group-data-checked/sw:start-4"
22
+ }, m = /* @__PURE__ */ a(function({ checked: a, defaultChecked: d, onCheckedChange: m, disabled: h, disabledReason: g, readOnly: _, loading: v, name: y, size: b = "md", label: x, description: S, id: C, className: w, "data-force": T, ...E }, D) {
23
+ let O = o(), k = C ?? `k-switch-${O}`, A = !!g && !!h, j = n(!!v), M = A && x ? g : void 0, N = i(k, x, x ? S ?? M : void 0, E), P = /* @__PURE__ */ c(l.Root, {
24
+ ref: D,
25
+ id: k,
26
+ ...a === void 0 ? {} : { checked: a },
27
+ ...d === void 0 ? {} : { defaultChecked: d },
28
+ ...m ? { onCheckedChange: (e) => m(e) } : {},
29
+ ...h !== void 0 && !A ? { disabled: h } : {},
30
+ ..._ || v || A ? { readOnly: !0 } : {},
31
+ ...A ? { "aria-disabled": !0 } : {},
32
+ ...y ? { name: y } : {},
33
+ ...v ? { "aria-busy": !0 } : {},
34
+ ...T ? { "data-force": T } : {},
35
+ ...E,
36
+ ...N.aria,
37
+ "data-choice": "",
38
+ className: e("group/sw relative inline-flex shrink-0 cursor-pointer items-center rounded-pill choice-track focus-ring tap-target", "disabled:cursor-not-allowed disabled:opacity-40", A && "cursor-not-allowed opacity-40", u.size[b].classes, !x && w),
39
+ children: [/* @__PURE__ */ s(l.Thumb, { className: e("block rounded-pill choice-thumb", f[b]) }), j && /* @__PURE__ */ s(r, {
40
+ "aria-hidden": !0,
41
+ className: e("absolute text-fg-secondary group-data-checked/sw:text-on-ink", p[b])
42
+ })]
43
+ }), F = /* @__PURE__ */ s(t, {
44
+ content: A ? g : "",
45
+ disabled: !A,
46
+ children: P
47
+ });
48
+ return x ? /* @__PURE__ */ c("label", {
49
+ htmlFor: k,
50
+ "data-choice-row": "",
51
+ className: e("flex min-h-32 cursor-pointer items-center justify-between gap-16 coarse:min-h-44", h && "cursor-not-allowed", w),
52
+ children: [/* @__PURE__ */ c("span", {
53
+ className: "flex min-w-0 flex-col",
54
+ children: [/* @__PURE__ */ s("span", {
55
+ id: N.labelId,
56
+ className: e("text-body text-fg", h && "text-fg-disabled"),
57
+ children: x
58
+ }), (S ?? M) && /* @__PURE__ */ c("span", {
59
+ id: N.descriptionId,
60
+ className: "flex flex-col text-small text-pretty",
61
+ children: [S && /* @__PURE__ */ s("span", {
62
+ className: h && !A ? "text-fg-disabled" : "text-fg-secondary",
63
+ children: S
64
+ }), M && /* @__PURE__ */ s("span", {
65
+ className: "text-fg-secondary",
66
+ children: M
67
+ })]
68
+ })]
69
+ }), F]
70
+ }) : F;
71
+ });
72
+ process.env.NODE_ENV !== "production" && (m.displayName = "Switch");
73
+ //#endregion
74
+ export { u as n, m as r, d as t };
75
+
76
+ //# sourceMappingURL=switch-ngywMQdl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch-ngywMQdl.js","names":["Switch","BaseSwitch","cn","Tooltip","useDelayedLoading","labelled","KAESO_SWITCH_VARIANTS","KAESO_SWITCH_DEFAULT_VARIANTS","THUMB","BUSY","Switch$1","force","aria","auto","useId","sid","id","soft","disabledReason","disabled","spinning","loading","reason","label","named","description","switchEl","Switch","checked","defaultChecked","onCheckedChange","c","readOnly","name","size","className","Spinner","control"],"sources":["../../src/components/switch/switch.tsx"],"sourcesContent":["import { forwardRef, useId, type ReactNode } from \"react\";\nimport { Switch as BaseSwitch } from \"@base-ui/react/switch\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { Spinner, useDelayedLoading } from \"../loader/loader.js\";\nimport { labelled } from \"../radio/labelled.js\";\n\nexport const KAESO_SWITCH_VARIANTS = {\n size: {\n sm: { classes: \"h-16 w-28 p-2\" },\n md: { classes: \"h-20 w-36 p-2\" },\n lg: { classes: \"h-24 w-44 p-2\" },\n },\n} as const;\nexport const KAESO_SWITCH_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nconst THUMB = {\n sm: \"size-12 data-checked:translate-x-12 rtl:data-checked:-translate-x-12\",\n md: \"size-16 data-checked:translate-x-16 rtl:data-checked:-translate-x-16\",\n lg: \"size-20 data-checked:translate-x-20 rtl:data-checked:-translate-x-20\",\n} as const;\n\nconst BUSY = {\n sm: \"size-10 inset-y-3 end-3 group-data-checked/sw:end-auto group-data-checked/sw:start-3\",\n md: \"size-12 inset-y-4 end-4 group-data-checked/sw:end-auto group-data-checked/sw:start-4\",\n lg: \"size-16 inset-y-4 end-4 group-data-checked/sw:end-auto group-data-checked/sw:start-4\",\n} as const;\n\nexport interface SwitchProps {\n checked?: boolean | undefined;\n defaultChecked?: boolean | undefined;\n onCheckedChange?: ((checked: boolean) => void) | undefined;\n disabled?: boolean | undefined;\n disabledReason?: string | undefined;\n readOnly?: boolean | undefined;\n loading?: boolean | undefined;\n name?: string | undefined;\n size?: keyof typeof KAESO_SWITCH_VARIANTS.size | undefined;\n label?: ReactNode | undefined;\n description?: ReactNode | undefined;\n id?: string | undefined;\n \"aria-label\"?: string | undefined;\n \"aria-labelledby\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const Switch = /* @__PURE__ */ forwardRef<HTMLButtonElement, SwitchProps>(function Switch(\n {\n checked,\n defaultChecked,\n onCheckedChange,\n disabled,\n disabledReason,\n readOnly,\n loading,\n name,\n size = \"md\",\n label,\n description,\n id,\n className,\n \"data-force\": force,\n ...aria\n },\n ref,\n) {\n const auto = useId();\n const sid = id ?? `k-switch-${auto}`;\n const soft = !!disabledReason && !!disabled;\n const spinning = useDelayedLoading(!!loading);\n const reason = soft && label ? disabledReason : undefined;\n const named = labelled(sid, label, label ? (description ?? reason) : undefined, aria);\n const switchEl = (\n <BaseSwitch.Root\n ref={ref}\n id={sid}\n {...(checked !== undefined ? { checked } : {})}\n {...(defaultChecked !== undefined ? { defaultChecked } : {})}\n {...(onCheckedChange ? { onCheckedChange: (c: boolean) => onCheckedChange(c) } : {})}\n {...(disabled !== undefined && !soft ? { disabled } : {})}\n {...(readOnly || loading || soft ? { readOnly: true } : {})}\n {...(soft ? { \"aria-disabled\": true } : {})}\n {...(name ? { name } : {})}\n {...(loading ? { \"aria-busy\": true } : {})}\n {...(force ? { \"data-force\": force } : {})}\n {...aria}\n {...named.aria}\n data-choice=\"\"\n className={cn(\n \"group/sw relative inline-flex shrink-0 cursor-pointer items-center rounded-pill choice-track focus-ring tap-target\",\n \"disabled:cursor-not-allowed disabled:opacity-40\",\n soft && \"cursor-not-allowed opacity-40\",\n KAESO_SWITCH_VARIANTS.size[size].classes,\n !label && className,\n )}\n >\n <BaseSwitch.Thumb className={cn(\"block rounded-pill choice-thumb\", THUMB[size])} />\n {spinning && <Spinner aria-hidden className={cn(\"absolute text-fg-secondary group-data-checked/sw:text-on-ink\", BUSY[size])} />}\n </BaseSwitch.Root>\n );\n // The Tooltip stays mounted when it has nothing to say: unwrapping would remount the switch and drop its focus.\n const control = (\n <Tooltip content={soft ? disabledReason : \"\"} disabled={!soft}>\n {switchEl}\n </Tooltip>\n );\n if (!label) return control;\n return (\n <label\n htmlFor={sid}\n data-choice-row=\"\"\n className={cn(\"flex min-h-32 cursor-pointer items-center justify-between gap-16 coarse:min-h-44\", disabled && \"cursor-not-allowed\", className)}\n >\n <span className=\"flex min-w-0 flex-col\">\n <span id={named.labelId} className={cn(\"text-body text-fg\", disabled && \"text-fg-disabled\")}>\n {label}\n </span>\n {(description ?? reason) && (\n <span id={named.descriptionId} className=\"flex flex-col text-small text-pretty\">\n {description && <span className={disabled && !soft ? \"text-fg-disabled\" : \"text-fg-secondary\"}>{description}</span>}\n {reason && <span className=\"text-fg-secondary\">{reason}</span>}\n </span>\n )}\n </span>\n {control}\n </label>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Switch.displayName = \"Switch\";\n"],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ "use client";
2
+ import { t as e } from "./cn-BjnOAUrA.js";
3
+ import { i as t } from "./context-BELWW79w.js";
4
+ import { t as n } from "./observe-resize-DhxhmoyB.js";
5
+ import { t as r } from "./use-scroll-fade-uc8mWSDX.js";
6
+ import { t as i } from "./tone-CWpsHPb6.js";
7
+ import { createContext as a, forwardRef as o, useContext as s, useLayoutEffect as c, useRef as l, useState as u } from "react";
8
+ import { jsx as d } from "react/jsx-runtime";
9
+ //#region src/components/table/table.tsx
10
+ var f = {
11
+ align: {
12
+ start: { classes: "text-left" },
13
+ end: { classes: "text-right tabular" }
14
+ },
15
+ density: {
16
+ default: { classes: "px-12" },
17
+ compact: { classes: "px-8" }
18
+ }
19
+ }, p = {
20
+ align: "start",
21
+ density: "default"
22
+ }, m = /* @__PURE__ */ a("default"), h = {
23
+ start: "last:pr-2",
24
+ end: "last:pr-0"
25
+ }, g = /* @__PURE__ */ o(function({ density: i = "default", className: a, ...o }, s) {
26
+ let f = t(), p = l(null), [h, g] = u(!1);
27
+ return r(p, "table"), c(() => {
28
+ let e = p.current;
29
+ if (!e) return;
30
+ let t = () => g(e.scrollWidth > e.clientWidth + 1);
31
+ return t(), n([e, ...e.firstElementChild ? [e.firstElementChild] : []], t);
32
+ }, []), /* @__PURE__ */ d(m.Provider, {
33
+ value: i,
34
+ children: /* @__PURE__ */ d("div", {
35
+ ref: p,
36
+ ...h ? {
37
+ tabIndex: 0,
38
+ role: "group",
39
+ "aria-label": f("table.scrolls", "Table, scrolls sideways")
40
+ } : {},
41
+ className: "min-w-0 overflow-x-auto scrollbar-quiet scroll-fade-x focus-ring-inset",
42
+ children: /* @__PURE__ */ d("table", {
43
+ ref: s,
44
+ className: e("w-full border-collapse text-body", a),
45
+ ...o
46
+ })
47
+ })
48
+ });
49
+ });
50
+ process.env.NODE_ENV !== "production" && (g.displayName = "Table");
51
+ var _ = /* @__PURE__ */ o(function(e, t) {
52
+ return /* @__PURE__ */ d("thead", {
53
+ ref: t,
54
+ ...e
55
+ });
56
+ });
57
+ process.env.NODE_ENV !== "production" && (_.displayName = "Table.Head");
58
+ var v = /* @__PURE__ */ o(function(e, t) {
59
+ return /* @__PURE__ */ d("tbody", {
60
+ ref: t,
61
+ ...e
62
+ });
63
+ });
64
+ process.env.NODE_ENV !== "production" && (v.displayName = "Table.Body");
65
+ var y = /* @__PURE__ */ o(function({ className: t, ...n }, r) {
66
+ return /* @__PURE__ */ d("tr", {
67
+ ref: r,
68
+ className: e("hairline-b last:shadow-none", t),
69
+ ...n
70
+ });
71
+ });
72
+ process.env.NODE_ENV !== "production" && (y.displayName = "Table.Row");
73
+ var b = /* @__PURE__ */ o(function({ align: t = "start", wrap: n = !1, className: r, ...i }, a) {
74
+ let o = s(m);
75
+ return /* @__PURE__ */ d("th", {
76
+ ref: a,
77
+ scope: "col",
78
+ className: e("h-36 text-caption font-medium text-fg-secondary hairline-b-strong first:pl-0", f.density[o].classes, n ? "py-8 align-bottom text-balance" : "whitespace-nowrap", h[t], f.align[t].classes, r),
79
+ ...i
80
+ });
81
+ });
82
+ process.env.NODE_ENV !== "production" && (b.displayName = "Table.HeaderCell");
83
+ var x = /* @__PURE__ */ o(function({ align: t = "start", tone: n, className: r, ...a }, o) {
84
+ let c = s(m);
85
+ return /* @__PURE__ */ d("td", {
86
+ ref: o,
87
+ className: e("h-40 py-10 align-middle text-fg first:pl-0", f.density[c].classes, h[t], f.align[t].classes, n && i[n], r),
88
+ ...a
89
+ });
90
+ });
91
+ process.env.NODE_ENV !== "production" && (x.displayName = "Table.Cell");
92
+ var S = /* @__PURE__ */ Object.assign(g, {
93
+ Head: _,
94
+ Body: v,
95
+ Row: y,
96
+ HeaderCell: b,
97
+ Cell: x
98
+ });
99
+ //#endregion
100
+ export { f as n, S as r, p as t };
101
+
102
+ //# sourceMappingURL=table-CTK5E0J7.js.map