@logicplanes/kaeso-ui 0.4.2 → 0.4.4

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 (279) hide show
  1. package/NOTICE.md +1 -1
  2. package/ai/component-guides.md +312 -21
  3. package/ai/component-registry.json +616 -25
  4. package/ai/component-registry.md +154 -26
  5. package/ai/icons.md +4 -4
  6. package/ai/tokens.md +1 -1
  7. package/dist/blocks/delete-resource.js +15 -14
  8. package/dist/blocks/delete-resource.js.map +1 -1
  9. package/dist/blocks/pages.js +2 -2
  10. package/dist/blocks/resource-list.js +41 -40
  11. package/dist/blocks/resource-list.js.map +1 -1
  12. package/dist/chunks/agent-avatar-0pdBTWkR.js +171 -0
  13. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +1 -0
  14. package/dist/chunks/{app-frame-C8csevkL.js → app-frame-DogGRmsu.js} +22 -21
  15. package/dist/chunks/app-frame-DogGRmsu.js.map +1 -0
  16. package/dist/chunks/{banner-Cb8OWnqJ.js → banner-BA2ALw9M.js} +2 -2
  17. package/dist/chunks/{banner-Cb8OWnqJ.js.map → banner-BA2ALw9M.js.map} +1 -1
  18. package/dist/chunks/{button-Dzu7_csE.js → button-CzuxqawA.js} +3 -3
  19. package/dist/chunks/{button-Dzu7_csE.js.map → button-CzuxqawA.js.map} +1 -1
  20. package/dist/chunks/{calendar--YemJsv4.js → calendar-BWaf2MXc.js} +57 -41
  21. package/dist/chunks/calendar-BWaf2MXc.js.map +1 -0
  22. package/dist/chunks/{checkbox-CDfC6E-M.js → checkbox-CQjwCPkc.js} +11 -9
  23. package/dist/chunks/checkbox-CQjwCPkc.js.map +1 -0
  24. package/dist/chunks/{code-block-U5fCqwgC.js → code-block-BZIe_B9l.js} +41 -37
  25. package/dist/chunks/code-block-BZIe_B9l.js.map +1 -0
  26. package/dist/chunks/code-block-DdNPHEzI.js +344 -0
  27. package/dist/chunks/code-block-DdNPHEzI.js.map +1 -0
  28. package/dist/chunks/combobox-DjDI7SUC.js +319 -0
  29. package/dist/chunks/combobox-DjDI7SUC.js.map +1 -0
  30. package/dist/chunks/{command-list-0RR4DpUe.js → command-list-C2Y7V_lt.js} +2 -2
  31. package/dist/chunks/{command-list-0RR4DpUe.js.map → command-list-C2Y7V_lt.js.map} +1 -1
  32. package/dist/chunks/{copy-button-7-irieJw.js → copy-button-FJvPJn72.js} +3 -3
  33. package/dist/chunks/{copy-button-7-irieJw.js.map → copy-button-FJvPJn72.js.map} +1 -1
  34. package/dist/chunks/{core-Bl9NrBLS.js → core-BYns5ytV.js} +145 -139
  35. package/dist/chunks/core-BYns5ytV.js.map +1 -0
  36. package/dist/chunks/{date-popup-RQkqhko4.js → date-popup-CPA_zt6o.js} +4 -4
  37. package/dist/chunks/{date-popup-RQkqhko4.js.map → date-popup-CPA_zt6o.js.map} +1 -1
  38. package/dist/chunks/{de-BnNQtBSV.js → de-D_0mmG-k.js} +10 -1
  39. package/dist/chunks/de-D_0mmG-k.js.map +1 -0
  40. package/dist/chunks/dialog-Cg9A_6SF.js +383 -0
  41. package/dist/chunks/dialog-Cg9A_6SF.js.map +1 -0
  42. package/dist/chunks/icon-CPJWE2N-.js +95 -0
  43. package/dist/chunks/icon-CPJWE2N-.js.map +1 -0
  44. package/dist/chunks/{icon-button-CPYR21Sz.js → icon-button-CrdF_eMG.js} +3 -3
  45. package/dist/chunks/{icon-button-CPYR21Sz.js.map → icon-button-CrdF_eMG.js.map} +1 -1
  46. package/dist/chunks/{identity-DPuTkMsa.js → identity-BmhQ6BQ-.js} +15 -15
  47. package/dist/chunks/identity-BmhQ6BQ-.js.map +1 -0
  48. package/dist/chunks/{input-TyLIaQ5k.js → input-2VJuj_M4.js} +10 -5
  49. package/dist/chunks/input-2VJuj_M4.js.map +1 -0
  50. package/dist/chunks/{input-group-CUSNsQjQ.js → input-group-DQ_4DoXg.js} +2 -2
  51. package/dist/chunks/{input-group-CUSNsQjQ.js.map → input-group-DQ_4DoXg.js.map} +1 -1
  52. package/dist/chunks/{inset-BnBj8NJV.js → inset-BUzyXLK4.js} +14 -4
  53. package/dist/chunks/inset-BUzyXLK4.js.map +1 -0
  54. package/dist/chunks/{iso-field-CWbxlll-.js → iso-field-B2rTwiBo.js} +2 -2
  55. package/dist/chunks/{iso-field-CWbxlll-.js.map → iso-field-B2rTwiBo.js.map} +1 -1
  56. package/dist/chunks/{link-B2I55xg9.js → link-KWI7PevW.js} +2 -2
  57. package/dist/chunks/{link-B2I55xg9.js.map → link-KWI7PevW.js.map} +1 -1
  58. package/dist/chunks/link-provider-cvl8lSTT.js +29 -0
  59. package/dist/chunks/link-provider-cvl8lSTT.js.map +1 -0
  60. package/dist/chunks/{list-CkOozrVY.js → list-M1csq-d4.js} +18 -16
  61. package/dist/chunks/{list-CkOozrVY.js.map → list-M1csq-d4.js.map} +1 -1
  62. package/dist/chunks/{markdown-BEgwZFlu.js → markdown-BupwFOae.js} +5 -5
  63. package/dist/chunks/{markdown-BEgwZFlu.js.map → markdown-BupwFOae.js.map} +1 -1
  64. package/dist/chunks/{menu-fl_QQb38.js → menu-DEmBfdPm.js} +29 -26
  65. package/dist/chunks/menu-DEmBfdPm.js.map +1 -0
  66. package/dist/chunks/nav-sheet-CzgIwgAm.js +60 -0
  67. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +1 -0
  68. package/dist/chunks/{page-header-DjUMDG69.js → page-header-DL2y2iZp.js} +2 -2
  69. package/dist/chunks/{page-header-DjUMDG69.js.map → page-header-DL2y2iZp.js.map} +1 -1
  70. package/dist/chunks/{pagination-BaY8jdli.js → pagination-Cn_qF4cg.js} +3 -3
  71. package/dist/chunks/{pagination-BaY8jdli.js.map → pagination-Cn_qF4cg.js.map} +1 -1
  72. package/dist/chunks/{picker-popover-DShea4b8.js → picker-popover-BxyU1U9F.js} +14 -13
  73. package/dist/chunks/{picker-popover-DShea4b8.js.map → picker-popover-BxyU1U9F.js.map} +1 -1
  74. package/dist/chunks/{popover-CFMwaeIP.js → popover-DNN4S47w.js} +2 -2
  75. package/dist/chunks/{popover-CFMwaeIP.js.map → popover-DNN4S47w.js.map} +1 -1
  76. package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -1
  77. package/dist/chunks/{radio-Yl0nO-Sj.js → radio-CDDFpdtL.js} +4 -4
  78. package/dist/chunks/{radio-Yl0nO-Sj.js.map → radio-CDDFpdtL.js.map} +1 -1
  79. package/dist/chunks/{range-popup-CkhsK3wI.js → range-popup-CRyWYUB1.js} +5 -5
  80. package/dist/chunks/{range-popup-CkhsK3wI.js.map → range-popup-CRyWYUB1.js.map} +1 -1
  81. package/dist/chunks/{rights-BlQx9C_j.js → rights-Cyp0Pzp-.js} +5 -5
  82. package/dist/chunks/{rights-BlQx9C_j.js.map → rights-Cyp0Pzp-.js.map} +1 -1
  83. package/dist/chunks/{segmented-C97zvDR1.js → segmented-CErcoxwi.js} +2 -2
  84. package/dist/chunks/{segmented-C97zvDR1.js.map → segmented-CErcoxwi.js.map} +1 -1
  85. package/dist/chunks/{sidebar-DtFlejU7.js → sidebar-3r1ZRXlN.js} +253 -235
  86. package/dist/chunks/sidebar-3r1ZRXlN.js.map +1 -0
  87. package/dist/chunks/{sidebar-menu-CxQbGwyj.js → sidebar-menu-BN3jkTlK.js} +2 -2
  88. package/dist/chunks/{sidebar-menu-CxQbGwyj.js.map → sidebar-menu-BN3jkTlK.js.map} +1 -1
  89. package/dist/chunks/{switch-b-VkStWj.js → switch-BNMq_kGt.js} +2 -2
  90. package/dist/chunks/{switch-b-VkStWj.js.map → switch-BNMq_kGt.js.map} +1 -1
  91. package/dist/chunks/{tag-DNdX1XRR.js → tag-D_M1s2qS.js} +2 -2
  92. package/dist/chunks/{tag-DNdX1XRR.js.map → tag-D_M1s2qS.js.map} +1 -1
  93. package/dist/chunks/{text-DCGGNqTM.js → text-CIXH8rmT.js} +2 -2
  94. package/dist/chunks/{text-DCGGNqTM.js.map → text-CIXH8rmT.js.map} +1 -1
  95. package/dist/chunks/{textarea-CT2S2JVM.js → textarea--4FRL3Pb.js} +3 -3
  96. package/dist/chunks/{textarea-CT2S2JVM.js.map → textarea--4FRL3Pb.js.map} +1 -1
  97. package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -1
  98. package/dist/chunks/{timeseries-B-8OfeZm.js → timeseries-D1xjRXfk.js} +2 -2
  99. package/dist/chunks/{timeseries-B-8OfeZm.js.map → timeseries-D1xjRXfk.js.map} +1 -1
  100. package/dist/chunks/{toolbar-DL6zVrzU.js → toolbar-WA_oZgu-.js} +5 -4
  101. package/dist/chunks/{toolbar-DL6zVrzU.js.map → toolbar-WA_oZgu-.js.map} +1 -1
  102. package/dist/chunks/tooltip-OcwO0VUT.js +154 -0
  103. package/dist/chunks/tooltip-OcwO0VUT.js.map +1 -0
  104. package/dist/chunks/{tooltip-root-BeAMXzxU.js → tooltip-root-DzahJDVj.js} +2 -2
  105. package/dist/chunks/{tooltip-root-BeAMXzxU.js.map → tooltip-root-DzahJDVj.js.map} +1 -1
  106. package/dist/chunks/{use-scroll-margin-DfdTc_5D.js → use-scroll-margin-atRtf0v_.js} +14 -10
  107. package/dist/chunks/use-scroll-margin-atRtf0v_.js.map +1 -0
  108. package/dist/chunks/{virtual-rows-yAMjeAwj.js → virtual-rows-CC_kc2PR.js} +2 -2
  109. package/dist/chunks/{virtual-rows-yAMjeAwj.js.map → virtual-rows-CC_kc2PR.js.map} +1 -1
  110. package/dist/chunks/{zh-CN-CKffAT7j.js → zh-CN-Bm6UPIbW.js} +10 -1
  111. package/dist/chunks/zh-CN-Bm6UPIbW.js.map +1 -0
  112. package/dist/components/agent-avatar.js +2 -0
  113. package/dist/components/app-frame.js +2 -2
  114. package/dist/components/banner.js +1 -1
  115. package/dist/components/button-group.js +2 -2
  116. package/dist/components/button.js +1 -1
  117. package/dist/components/calendar.js +1 -1
  118. package/dist/components/charts/bar.js +1 -1
  119. package/dist/components/charts/donut.js +1 -1
  120. package/dist/components/charts/gauge.js +1 -1
  121. package/dist/components/charts/sankey.js +1 -1
  122. package/dist/components/charts/timeseries.js +1 -1
  123. package/dist/components/charts.js +2 -2
  124. package/dist/components/checkbox.js +1 -1
  125. package/dist/components/code-block.js +3 -2
  126. package/dist/components/combobox.js +1 -1
  127. package/dist/components/command-list.js +2 -2
  128. package/dist/components/command-palette.js +85 -81
  129. package/dist/components/command-palette.js.map +1 -1
  130. package/dist/components/copy-button.js +1 -1
  131. package/dist/components/data-table.js +191 -187
  132. package/dist/components/data-table.js.map +1 -1
  133. package/dist/components/date-picker.js +6 -4
  134. package/dist/components/date-picker.js.map +1 -1
  135. package/dist/components/dialog.js +125 -91
  136. package/dist/components/dialog.js.map +1 -1
  137. package/dist/components/display-options.js +49 -46
  138. package/dist/components/display-options.js.map +1 -1
  139. package/dist/components/filter-chip.js +3 -3
  140. package/dist/components/filter-chip.js.map +1 -1
  141. package/dist/components/filter-row.js +1 -1
  142. package/dist/components/icon-button.js +1 -1
  143. package/dist/components/icon.js +1 -1
  144. package/dist/components/input.js +49 -49
  145. package/dist/components/input.js.map +1 -1
  146. package/dist/components/kaeso/conversation.js +3 -3
  147. package/dist/components/kaeso/identity.js +1 -1
  148. package/dist/components/kaeso/moments.js +3 -3
  149. package/dist/components/kaeso/rights.js +1 -1
  150. package/dist/components/kaeso/usage.js +8 -8
  151. package/dist/components/kaeso/usage.js.map +1 -1
  152. package/dist/components/kaeso.js +263 -95
  153. package/dist/components/kaeso.js.map +1 -1
  154. package/dist/components/key-value.js +2 -2
  155. package/dist/components/link.js +1 -1
  156. package/dist/components/list.js +1 -1
  157. package/dist/components/markdown.js +1 -1
  158. package/dist/components/menu.js +2 -2
  159. package/dist/components/page-header.js +1 -1
  160. package/dist/components/pagination.js +1 -1
  161. package/dist/components/playground.js +27 -26
  162. package/dist/components/playground.js.map +1 -1
  163. package/dist/components/popover.js +12 -11
  164. package/dist/components/popover.js.map +1 -1
  165. package/dist/components/radio.js +1 -1
  166. package/dist/components/segmented.js +1 -1
  167. package/dist/components/settings.js +8 -8
  168. package/dist/components/settings.js.map +1 -1
  169. package/dist/components/sheet.js +2 -2
  170. package/dist/components/sidebar.js +1 -1
  171. package/dist/components/switch.js +1 -1
  172. package/dist/components/tabs.js +22 -22
  173. package/dist/components/tabs.js.map +1 -1
  174. package/dist/components/tag.js +1 -1
  175. package/dist/components/text.js +1 -1
  176. package/dist/components/theme-menu.js +33 -30
  177. package/dist/components/theme-menu.js.map +1 -1
  178. package/dist/components/thumbnail.js +41 -0
  179. package/dist/components/thumbnail.js.map +1 -0
  180. package/dist/components/toast.js +96 -87
  181. package/dist/components/toast.js.map +1 -1
  182. package/dist/components/toolbar.js +1 -1
  183. package/dist/components/tooltip.js +1 -1
  184. package/dist/format.js.map +1 -1
  185. package/dist/i18n-provider.js +1 -1
  186. package/dist/index.js +90 -88
  187. package/dist/kaeso.css +3 -0
  188. package/dist/styles.css +1 -1
  189. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -5
  190. package/dist/types/blocks/resource-list/resource-list.d.ts +1 -4
  191. package/dist/types/component-docs.d.ts +1 -1
  192. package/dist/types/components/agent-avatar/agent-avatar.d.ts +94 -0
  193. package/dist/types/components/agent-avatar/docs.d.ts +19 -0
  194. package/dist/types/components/agent-avatar/index.d.ts +3 -0
  195. package/dist/types/components/agent-avatar/model-name.d.ts +9 -0
  196. package/dist/types/components/agent-avatar/models.d.ts +4 -0
  197. package/dist/types/components/app-frame/app-frame.d.ts +3 -8
  198. package/dist/types/components/app-frame/nav-sheet.d.ts +2 -4
  199. package/dist/types/components/calendar/calendar.d.ts +1 -4
  200. package/dist/types/components/charts/core.d.ts +11 -18
  201. package/dist/types/components/checkbox/checkbox.d.ts +2 -0
  202. package/dist/types/components/code-block/diff-view.d.ts +30 -0
  203. package/dist/types/components/code-block/diff.d.ts +26 -0
  204. package/dist/types/components/code-block/docs.d.ts +14 -0
  205. package/dist/types/components/code-block/index.d.ts +1 -0
  206. package/dist/types/components/combobox/combobox.d.ts +26 -2
  207. package/dist/types/components/command-list/picker-popover.d.ts +1 -4
  208. package/dist/types/components/command-palette/command-palette.d.ts +1 -4
  209. package/dist/types/components/data-table/data-table.d.ts +2 -1
  210. package/dist/types/components/data-table/docs.d.ts +1 -0
  211. package/dist/types/components/dialog/dialog.d.ts +7 -9
  212. package/dist/types/components/dialog/docs.d.ts +2 -0
  213. package/dist/types/components/dialog/scope.d.ts +2 -0
  214. package/dist/types/components/dialog/step-dialog.d.ts +38 -5
  215. package/dist/types/components/display-options/display-options.d.ts +2 -5
  216. package/dist/types/components/input/input.d.ts +23 -0
  217. package/dist/types/components/kaeso/client-button.d.ts +17 -0
  218. package/dist/types/components/kaeso/docs.d.ts +18 -0
  219. package/dist/types/components/kaeso/grant-summary.d.ts +12 -0
  220. package/dist/types/components/kaeso/identity.d.ts +2 -0
  221. package/dist/types/components/kaeso/index.d.ts +2 -0
  222. package/dist/types/components/kaeso/provider-picker.d.ts +5 -0
  223. package/dist/types/components/kaeso/usage.d.ts +2 -0
  224. package/dist/types/components/list/list.d.ts +4 -8
  225. package/dist/types/components/menu/docs.d.ts +8 -1
  226. package/dist/types/components/menu/menu.d.ts +19 -31
  227. package/dist/types/components/playground/parameter-panel.d.ts +1 -4
  228. package/dist/types/components/popover/hover-card.d.ts +2 -0
  229. package/dist/types/components/radio/docs.d.ts +15 -0
  230. package/dist/types/components/radio/radio.d.ts +2 -4
  231. package/dist/types/components/settings/settings.d.ts +2 -0
  232. package/dist/types/components/sidebar/sidebar.d.ts +13 -35
  233. package/dist/types/components/tabs/tabs.d.ts +15 -0
  234. package/dist/types/components/theme-menu/docs.d.ts +2 -0
  235. package/dist/types/components/theme-menu/theme-menu.d.ts +6 -5
  236. package/dist/types/components/thumbnail/docs.d.ts +10 -0
  237. package/dist/types/components/thumbnail/index.d.ts +1 -0
  238. package/dist/types/components/thumbnail/thumbnail.d.ts +26 -0
  239. package/dist/types/components/toast/toast.d.ts +5 -12
  240. package/dist/types/components/toolbar/toolbar.d.ts +1 -6
  241. package/dist/types/components/tooltip/tooltip.d.ts +2 -4
  242. package/dist/types/components/tooltip/trigger-props.d.ts +0 -1
  243. package/dist/types/format/index.d.ts +5 -5
  244. package/dist/types/hooks/use-scroll-margin.d.ts +1 -1
  245. package/dist/types/icons/groups.d.ts +3 -3
  246. package/dist/types/icons/vocabulary.d.ts +20 -0
  247. package/dist/types/index.d.ts +2 -0
  248. package/dist/types/utils/inset.d.ts +4 -0
  249. package/dist/types/utils/link-provider.d.ts +1 -1
  250. package/dist/types/utils/merge-refs.d.ts +3 -0
  251. package/dist/types/utils/portal-context.d.ts +1 -1
  252. package/dist/utils.js +3 -3
  253. package/foundations/shape.md +1 -1
  254. package/package.json +2 -2
  255. package/dist/chunks/app-frame-C8csevkL.js.map +0 -1
  256. package/dist/chunks/calendar--YemJsv4.js.map +0 -1
  257. package/dist/chunks/checkbox-CDfC6E-M.js.map +0 -1
  258. package/dist/chunks/code-block-U5fCqwgC.js.map +0 -1
  259. package/dist/chunks/combobox-BARyrpXH.js +0 -314
  260. package/dist/chunks/combobox-BARyrpXH.js.map +0 -1
  261. package/dist/chunks/core-Bl9NrBLS.js.map +0 -1
  262. package/dist/chunks/de-BnNQtBSV.js.map +0 -1
  263. package/dist/chunks/dialog-DQ9vZ7vr.js +0 -353
  264. package/dist/chunks/dialog-DQ9vZ7vr.js.map +0 -1
  265. package/dist/chunks/icon-CBzvyEqC.js +0 -91
  266. package/dist/chunks/icon-CBzvyEqC.js.map +0 -1
  267. package/dist/chunks/identity-DPuTkMsa.js.map +0 -1
  268. package/dist/chunks/input-TyLIaQ5k.js.map +0 -1
  269. package/dist/chunks/inset-BnBj8NJV.js.map +0 -1
  270. package/dist/chunks/link-provider-BsUxhZKG.js +0 -27
  271. package/dist/chunks/link-provider-BsUxhZKG.js.map +0 -1
  272. package/dist/chunks/menu-fl_QQb38.js.map +0 -1
  273. package/dist/chunks/nav-sheet-B2rNb8GB.js +0 -60
  274. package/dist/chunks/nav-sheet-B2rNb8GB.js.map +0 -1
  275. package/dist/chunks/sidebar-DtFlejU7.js.map +0 -1
  276. package/dist/chunks/tooltip-BMQ9BtPp.js +0 -151
  277. package/dist/chunks/tooltip-BMQ9BtPp.js.map +0 -1
  278. package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +0 -1
  279. package/dist/chunks/zh-CN-CKffAT7j.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-Cg9A_6SF.js","names":["BaseDialog","__icon_Cancel01Icon","Dialog","BaseAlertDialog","AlertDialog","__icon_ArrowLeft01Icon","cn","usePortalContainer","GutterContent","useUiText","mergeRefs","KAESO_BUTTON_VARIANTS","Button","IconButton","Input","useRestoreFocus","useScopedDialog","useResizeMotion","OverNonModalSheet","DIALOG_FIELD","FOCUSABLE","usable","el","firstUsable","scope","selector","initialDialogControl","content","frame","toolbar","footer","actions","dangerSecondary","safe","a","danger","primary","focusDialogSection","section","previous","KAESO_DIALOG_VARIANTS","KAESO_DIALOG_DEFAULT_VARIANTS","BACKDROP","DIALOG_VIEWPORT","DIALOG_POPUP","DialogBusy","LayerSlots","useScrolledUnder","ref","useRef","under","setUnder","useState","scrolled","setScrolled","check","useCallback","useEffect","useKeepFocus","rendered","first","active","inline","box","SINGLE_LINE","submitsOnEnter","target","useBox","setBox","DialogFrame","slots","use","boxRef","frameRef","useMemo","rootRef","t","Title","Dialog","closeButton","Cancel01Icon","busy","close","hideClose","Description","anchor","size","className","onSubmit","headerStart","title","description","children","footerStart","RaisedContent","focusFirstControl","open","Root","props","focus","container","overSheet","settled","defaultOpen","o","details","persistent","trigger","InsetContent","Close","cloneElement","Dialog$1","KAESO_ALERT_DIALOG_VARIANTS","KAESO_ALERT_DIALOG_DEFAULT_VARIANTS","AlertFrame","cancelProp","typed","setTyped","pending","cancelLabel","typeBefore","typeAfter","AlertDialog","ok","confirmText","confirm","loading","r","onConfirm","setBusy","done","tone","confirmLabel","AlertDialog$1","inner","setInner","isOpen","setOpen","onOpenChange","KAESO_LAYER_DIALOG_VARIANTS","KAESO_LAYER_DIALOG_DEFAULT_VARIANTS","bodyOf","LayerDialog","wanted","layer","index","layers","sections","focused","tops","left","shown","useLayoutEffect","from","back","body","go","i","onLayerChange","stack","current","remember","e","l","ArrowLeft01Icon"],"sources":["../../src/components/dialog/focus.ts","../../src/components/dialog/dialog.tsx"],"sourcesContent":["import { KAESO_BUTTON_VARIANTS } from \"../button/button.js\";\n\nconst DIALOG_FIELD =\n 'input:not([type=hidden]):not([tabindex=\"-1\"]):not([aria-hidden=\"true\"]), textarea, select, [role=combobox]:not([tabindex=\"-1\"]), [role=radio][tabindex=\"0\"], [role=checkbox]:not([tabindex=\"-1\"]), [role=switch]:not([tabindex=\"-1\"]), [role=listbox]:not([tabindex=\"-1\"]), [role=grid] [data-index][tabindex=\"0\"], button[data-picker]';\nconst FOCUSABLE = 'a[href], button, input:not([type=hidden]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\nconst usable = (el: HTMLElement) => !el.closest(\"[hidden], [inert]\") && !el.matches(\":disabled, [aria-disabled=true]\");\nconst firstUsable = (scope: ParentNode, selector: string) => [...scope.querySelectorAll<HTMLElement>(selector)].find(usable) ?? null;\n\nexport function initialDialogControl(frame: HTMLElement, scope?: HTMLElement | undefined): HTMLElement | null {\n const content = scope ?? frame.querySelector<HTMLElement>(\"[data-dialog-body]\");\n const toolbar = frame.querySelector<HTMLElement>(\"[data-dialog-toolbar]\");\n const footer = frame.querySelector<HTMLElement>(\"[data-dialog-footer]\");\n const actions = footer ? [...footer.querySelectorAll<HTMLElement>(\"button, a[href]\")].filter(usable) : [];\n const { primary, danger, \"danger-secondary\": dangerSecondary } = KAESO_BUTTON_VARIANTS.variant;\n const safe = actions.filter((a) => !a.classList.contains(danger.classes) && !a.classList.contains(dangerSecondary.classes));\n return (\n (toolbar && firstUsable(toolbar, \"[data-autofocus]\")) ??\n (content && (firstUsable(content, \"[data-autofocus]\") ?? firstUsable(content, DIALOG_FIELD))) ??\n (toolbar && firstUsable(toolbar, DIALOG_FIELD)) ??\n safe.find((a) => a.classList.contains(primary.classes)) ??\n safe[0] ??\n (content && firstUsable(content, FOCUSABLE)) ??\n firstUsable(frame, FOCUSABLE)\n );\n}\n\nexport function focusDialogSection(section: HTMLElement | null | undefined, previous?: HTMLElement | null | undefined) {\n const frame = section?.closest<HTMLElement>(\"[data-dialog-frame]\");\n if (!section || !frame || frame.closest(\"[data-closed]\")) return;\n const back = previous?.isConnected && frame.contains(previous) && usable(previous) ? previous : null;\n (back ?? initialDialogControl(frame, section))?.focus({ preventScroll: true });\n}\n","import { GutterContent, InsetContent, RaisedContent } from \"../../utils/inset.js\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport {\n cloneElement,\n createContext,\n forwardRef,\n use,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type FocusEvent,\n type KeyboardEvent,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { Dialog as BaseDialog } from \"@base-ui/react/dialog\";\nimport { AlertDialog as BaseAlertDialog } from \"@base-ui/react/alert-dialog\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useRestoreFocus } from \"../../utils/restore-focus.js\";\nimport { useScopedDialog } from \"../../utils/dialog-scope.js\";\nimport { OverNonModalSheet } from \"../../utils/over-sheet.js\";\nimport { Cancel01Icon as __icon_Cancel01Icon, ArrowLeft01Icon as __icon_ArrowLeft01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { Button } from \"../button/button.js\";\nimport { Input } from \"../input/input.js\";\nimport { focusDialogSection, initialDialogControl } from \"./focus.js\";\nimport { useResizeMotion } from \"../../utils/resize-motion.js\";\nimport { mergeRefs } from \"../../utils/merge-refs.js\";\n\nexport const KAESO_DIALOG_VARIANTS = {\n size: {\n sm: { classes: \"w-440\" },\n md: { classes: \"w-560\" },\n lg: { classes: \"w-720\" },\n },\n anchor: {\n center: { classes: \"items-center\" },\n top: { classes: \"items-start pt-dialog-top\" },\n },\n} as const;\nexport const KAESO_DIALOG_DEFAULT_VARIANTS = { size: \"md\", anchor: \"center\" } as const;\n\nconst BACKDROP = \"fixed inset-0 z-50 bg-overlay backdrop-motion\";\nconst DIALOG_VIEWPORT = \"fixed inset-0 z-50 flex justify-center p-16\";\nconst DIALOG_POPUP = \"relative flex dialog-limits flex-col overflow-hidden rounded-dialog bg-raised text-fg shadow-dialog outline-none dialog-motion\";\n\nconst DialogBusy = /* @__PURE__ */ createContext(false);\nconst LayerSlots = /* @__PURE__ */ createContext({ toolbar: true, footerStart: true });\n\nfunction useScrolledUnder<T extends HTMLElement>() {\n const ref = useRef<T | null>(null);\n const [under, setUnder] = useState(false);\n const [scrolled, setScrolled] = useState(false);\n const check = useCallback(() => {\n const el = ref.current;\n if (!el || el.closest(\"[data-resizing]\")) return;\n setUnder(el.scrollHeight - el.scrollTop - el.clientHeight > 1);\n setScrolled(el.scrollTop > 0);\n }, []);\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n check();\n el.addEventListener(\"scroll\", check, { passive: true });\n window.addEventListener(\"resize\", check);\n return () => {\n el.removeEventListener(\"scroll\", check);\n window.removeEventListener(\"resize\", check);\n };\n }, [check]);\n return { ref, under, scrolled, check };\n}\n\nfunction useKeepFocus(box: HTMLElement | null, inline: boolean | undefined) {\n const rendered = useRef(false);\n useEffect(() => {\n const first = !rendered.current;\n rendered.current = true;\n const active = document.activeElement;\n if (first || inline || !box || (active && active !== document.body) || box.matches(\"[data-ending-style], [data-closed]\")) return;\n const frame = box.querySelector<HTMLElement>(\"[data-dialog-frame]\");\n if (frame) initialDialogControl(frame)?.focus({ preventScroll: true });\n });\n}\n\nconst SINGLE_LINE = new Set([\"text\", \"email\", \"password\", \"tel\", \"url\", \"number\"]);\n\nfunction submitsOnEnter(e: KeyboardEvent): boolean {\n // Safari ends composition before the Enter that confirms it, leaving only keyCode 229: https://bugs.webkit.org/show_bug.cgi?id=165004\n if (e.key !== \"Enter\" || e.altKey || e.nativeEvent.isComposing || e.keyCode === 229) return false;\n if (e.metaKey || e.ctrlKey) return true;\n const target = e.target as HTMLElement;\n return !e.defaultPrevented && !e.shiftKey && target instanceof HTMLInputElement && SINGLE_LINE.has(target.type) && target.getAttribute(\"role\") !== \"combobox\";\n}\n\nfunction useBox(inline: boolean | undefined) {\n const [box, setBox] = useState<HTMLElement | null>(null);\n const ref = useCallback((el: HTMLElement | null) => setBox(inline ? el : (el?.parentElement ?? null)), [inline]);\n return [box, ref] as const;\n}\n\nexport interface DialogProps {\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n trigger?: ReactElement | undefined;\n title: ReactNode;\n description?: ReactNode | undefined;\n busy?: boolean | undefined;\n size?: keyof typeof KAESO_DIALOG_VARIANTS.size | undefined;\n anchor?: keyof typeof KAESO_DIALOG_VARIANTS.anchor | undefined;\n children?: ReactNode | undefined;\n toolbar?: ReactNode | undefined;\n footer?: ReactNode | undefined;\n footerStart?: ReactNode | undefined;\n onSubmit?: (() => void) | undefined;\n hideClose?: boolean | undefined;\n headerStart?: ReactNode | undefined;\n className?: string | undefined;\n inline?: boolean | undefined;\n persistent?: boolean | undefined;\n}\n\nfunction DialogFrame({\n title,\n description,\n children,\n toolbar,\n footer,\n footerStart,\n onSubmit,\n hideClose,\n headerStart,\n size = \"md\",\n anchor = \"center\",\n className,\n inline,\n busy,\n rootRef,\n}: DialogProps & { rootRef?: Ref<HTMLDivElement> | undefined }) {\n const { ref, under, scrolled, check } = useScrolledUnder<HTMLDivElement>();\n const slots = use(LayerSlots);\n const [box, boxRef] = useBox(inline);\n const frameRef = useMemo(() => mergeRefs(boxRef, rootRef), [boxRef, rootRef]);\n useResizeMotion(box, check);\n useKeepFocus(box, inline);\n const t = useUiText();\n const Title = inline ? \"h2\" : BaseDialog.Title;\n const closeButton = <IconButton icon={__icon_Cancel01Icon} aria-label={t(\"dialog.close\", \"Close\")} tooltip={false} disabled={!!busy} />;\n const close = hideClose ? null : inline ? closeButton : <BaseDialog.Close render={closeButton} />;\n const Description = inline ? \"p\" : BaseDialog.Description;\n return (\n <DialogBusy value={!!busy}>\n <div\n ref={frameRef}\n data-dialog-frame=\"\"\n className={cn(\n \"flex min-h-0 flex-col\",\n inline ? \"rounded-dialog bg-raised shadow-dialog\" : cn(\"flex-1 self-center\", anchor === \"top\" ? \"dialog-limits-top\" : \"dialog-limits\"),\n KAESO_DIALOG_VARIANTS.size[size].classes,\n className,\n )}\n onKeyDown={(e: KeyboardEvent) => {\n if (onSubmit && !busy && submitsOnEnter(e)) {\n e.preventDefault();\n onSubmit();\n }\n }}\n >\n <div className=\"flex items-start gap-12 px-24 pt-20 pb-4\">\n {headerStart ? <span className=\"flex shrink-0 items-center\">{headerStart}</span> : null}\n <div className=\"flex min-w-0 flex-1 flex-col gap-4 pt-4\">\n <Title className=\"text-title-sm font-semibold text-fg text-balance\">{title}</Title>\n {description && <Description className=\"text-body text-fg-secondary text-pretty\">{description}</Description>}\n </div>\n {close && <span className=\"flex\">{close}</span>}\n </div>\n {toolbar && (\n <div\n data-dialog-toolbar=\"\"\n hidden={!slots.toolbar}\n className={cn(\"flex shrink-0 flex-wrap items-center gap-8 px-24 pt-16 pb-12 transition-control\", scrolled && \"hairline-b\")}\n >\n {toolbar}\n </div>\n )}\n {children && (\n <div\n ref={ref}\n data-dialog-body=\"\"\n className={cn(\"min-h-0 flex-1 overflow-y-auto px-24 scrollbar-quiet\", toolbar ? \"pt-0\" : \"pt-16\", footer || footerStart ? \"pb-8\" : \"pb-24\")}\n >\n <GutterContent>\n <RaisedContent>{children}</RaisedContent>\n </GutterContent>\n </div>\n )}\n {(footer || footerStart) && (\n <div\n data-dialog-footer=\"\"\n className={cn(\"flex shrink-0 flex-wrap items-center justify-end gap-8 px-24 pt-16 pb-20 transition-control\", under && \"hairline-t\")}\n >\n {footerStart && (\n <div hidden={!slots.footerStart} className=\"mr-auto flex min-w-0 items-center gap-8\">\n {footerStart}\n </div>\n )}\n {footer}\n </div>\n )}\n </div>\n </DialogBusy>\n );\n}\n\nfunction focusFirstControl(): HTMLElement | true {\n const open = [...document.querySelectorAll<HTMLElement>(\"[role=dialog], [role=alertdialog]\")].pop();\n const frame = open?.querySelector<HTMLElement>(\"[data-dialog-frame]\");\n return (frame && initialDialogControl(frame)) ?? open ?? true;\n}\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLDivElement, DialogProps>(function Dialog(props, ref) {\n const { open, defaultOpen, onOpenChange, trigger, size = \"md\", anchor = \"center\", inline, busy, persistent } = props;\n const focus = useRestoreFocus(open, focusFirstControl);\n const container = usePortalContainer();\n const overSheet = use(OverNonModalSheet);\n const settled = useScopedDialog(inline ? false : open);\n if (inline) return <DialogFrame {...props} rootRef={ref} />;\n return (\n <BaseDialog.Root\n {...(open !== undefined ? { open } : {})}\n {...(defaultOpen !== undefined ? { defaultOpen } : {})}\n onOpenChange={(o: boolean, details: BaseDialog.Root.ChangeEventDetails) => {\n if (!o && busy) return details.cancel();\n onOpenChange?.(o);\n }}\n onOpenChangeComplete={settled}\n {...(persistent ? { disablePointerDismissal: true } : {})}\n >\n {trigger && <BaseDialog.Trigger render={trigger} />}\n <BaseDialog.Portal container={container}>\n <BaseDialog.Backdrop className={BACKDROP} forceRender={overSheet} />\n <BaseDialog.Viewport className={cn(DIALOG_VIEWPORT, KAESO_DIALOG_VARIANTS.anchor[anchor].classes)}>\n <BaseDialog.Popup\n ref={ref}\n initialFocus={focus.initialFocus}\n finalFocus={focus.finalFocus}\n className={cn(DIALOG_POPUP, KAESO_DIALOG_VARIANTS.size[size].classes, anchor === \"top\" && \"dialog-limits-top\")}\n >\n <InsetContent inset={false}>\n <OverNonModalSheet value={false}>\n <DialogFrame {...props} />\n </OverNonModalSheet>\n </InsetContent>\n </BaseDialog.Popup>\n </BaseDialog.Viewport>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"Dialog\";\n\nfunction Close({ children }: { children: ReactElement<{ disabled?: boolean | undefined }> }) {\n const busy = use(DialogBusy);\n return <BaseDialog.Close render={busy ? cloneElement(children, { disabled: true }) : children} />;\n}\nif (process.env.NODE_ENV !== \"production\") Close.displayName = \"Dialog.Close\";\n\nexport const Dialog = /* @__PURE__ */ Object.assign(Root, { Close });\n\nexport const KAESO_ALERT_DIALOG_VARIANTS = {\n tone: {\n danger: { classes: \"bg-danger-tint text-danger-text\" },\n warning: { classes: \"bg-warning-tint text-warning-text\" },\n info: { classes: \"bg-info-tint text-info-text\" },\n },\n} as const;\nexport const KAESO_ALERT_DIALOG_DEFAULT_VARIANTS = { tone: \"danger\" } as const;\n\nexport interface AlertDialogProps {\n open?: boolean | undefined;\n defaultOpen?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n trigger?: ReactElement | undefined;\n title: ReactNode;\n description: ReactNode;\n confirmLabel: string;\n cancelLabel?: string | undefined;\n onConfirm: () => void | Promise<unknown>;\n tone?: keyof typeof KAESO_ALERT_DIALOG_VARIANTS.tone | undefined;\n confirmText?: string | undefined;\n loading?: boolean | undefined;\n inline?: boolean | undefined;\n}\n\nfunction AlertFrame({\n title,\n description,\n confirmLabel,\n cancelLabel: cancelProp,\n onConfirm,\n tone = \"danger\",\n confirmText,\n loading,\n inline,\n close,\n busy,\n setBusy,\n rootRef,\n}: AlertDialogProps & { close: () => void; busy: boolean; setBusy: (busy: boolean) => void; rootRef?: Ref<HTMLDivElement> | undefined }) {\n const [typed, setTyped] = useState(\"\");\n const pending = useRef(false);\n const t = useUiText();\n const [box, boxRef] = useBox(inline);\n const frameRef = useMemo(() => mergeRefs(boxRef, rootRef), [boxRef, rootRef]);\n useResizeMotion(box);\n const cancelLabel = cancelProp ?? t(\"alertDialog.cancel\", \"Cancel\");\n const [typeBefore, typeAfter = \"\"] = t(\"alertDialog.typeToConfirm\", \"Type {text} to confirm\").split(\"{text}\");\n const Title = inline ? \"h2\" : BaseAlertDialog.Title;\n const Description = inline ? \"p\" : BaseAlertDialog.Description;\n const ok = !confirmText || typed === confirmText;\n const confirm = async () => {\n if (!ok || loading || pending.current) return;\n const r = onConfirm();\n if (!(r instanceof Promise)) return close();\n pending.current = true;\n setBusy(true);\n const done = await r.then(\n () => true,\n () => false,\n );\n pending.current = false;\n setBusy(false);\n if (done) close();\n };\n return (\n <div ref={frameRef} className={cn(\"flex w-440 flex-col gap-20 p-24\", inline ? \"rounded-dialog bg-raised shadow-dialog\" : \"self-center dialog-limits\")}>\n <div className=\"flex flex-col gap-6\">\n <Title className=\"text-title-sm font-semibold text-fg text-balance\">{title}</Title>\n <Description className=\"text-body text-fg-secondary text-pretty\">{description}</Description>\n </div>\n {confirmText && (\n <Input\n label={\n <span className=\"font-regular text-fg-secondary\">\n {typeBefore}\n <span className=\"mono font-medium text-fg\">{confirmText}</span>\n {typeAfter}\n </span>\n }\n value={typed}\n onChange={(e) => setTyped(e.target.value)}\n autoComplete=\"off\"\n spellCheck={false}\n onKeyDown={(e) => e.key === \"Enter\" && confirm()}\n />\n )}\n <div className=\"flex flex-wrap justify-end gap-8\">\n {inline ? <Button>{cancelLabel}</Button> : <BaseAlertDialog.Close render={<Button disabled={busy || !!loading}>{cancelLabel}</Button>} />}\n <Button variant={tone === \"danger\" ? \"danger\" : \"primary\"} onClick={confirm} disabled={!ok} loading={busy || loading}>\n {confirmLabel}\n </Button>\n </div>\n </div>\n );\n}\n\nexport const AlertDialog = /* @__PURE__ */ forwardRef<HTMLDivElement, AlertDialogProps>(function AlertDialog(props, ref) {\n const { open, defaultOpen, onOpenChange, trigger, inline } = props;\n const [inner, setInner] = useState(defaultOpen ?? false);\n const isOpen = open ?? inner;\n const setOpen = (o: boolean) => {\n if (open === undefined) setInner(o);\n onOpenChange?.(o);\n };\n const [busy, setBusy] = useState(false);\n const focus = useRestoreFocus(isOpen);\n const container = usePortalContainer();\n const overSheet = use(OverNonModalSheet);\n const settled = useScopedDialog(inline ? false : isOpen);\n if (inline) return <AlertFrame {...props} close={() => undefined} busy={busy} setBusy={setBusy} rootRef={ref} />;\n return (\n <BaseAlertDialog.Root\n open={isOpen}\n onOpenChange={(o: boolean, details: BaseAlertDialog.Root.ChangeEventDetails) => {\n if (!o && (busy || props.loading)) return details.cancel();\n setOpen(o);\n }}\n onOpenChangeComplete={settled}\n >\n {trigger && <BaseAlertDialog.Trigger render={trigger} />}\n <BaseAlertDialog.Portal container={container}>\n <BaseAlertDialog.Backdrop className={BACKDROP} forceRender={overSheet} />\n <BaseAlertDialog.Viewport className={cn(DIALOG_VIEWPORT, KAESO_DIALOG_VARIANTS.anchor.center.classes)}>\n <BaseAlertDialog.Popup ref={ref} initialFocus={focus.initialFocus} finalFocus={focus.finalFocus} className={cn(DIALOG_POPUP, \"w-440\")}>\n <InsetContent inset={false}>\n <AlertFrame {...props} close={() => setOpen(false)} busy={busy} setBusy={setBusy} />\n </InsetContent>\n </BaseAlertDialog.Popup>\n </BaseAlertDialog.Viewport>\n </BaseAlertDialog.Portal>\n </BaseAlertDialog.Root>\n );\n});\nif (process.env.NODE_ENV !== \"production\") AlertDialog.displayName = \"AlertDialog\";\n\nexport const KAESO_LAYER_DIALOG_VARIANTS = KAESO_DIALOG_VARIANTS;\nexport const KAESO_LAYER_DIALOG_DEFAULT_VARIANTS = KAESO_DIALOG_DEFAULT_VARIANTS;\n\nexport interface DialogLayer {\n title: ReactNode;\n description?: ReactNode | undefined;\n toolbar?: ReactNode | undefined;\n content: ReactNode;\n footer?: ReactNode | undefined;\n footerStart?: ReactNode | undefined;\n}\n\nexport interface LayerDialogProps extends Omit<DialogProps, \"title\" | \"description\" | \"children\" | \"toolbar\" | \"footer\" | \"footerStart\" | \"headerStart\"> {\n layers: DialogLayer[];\n layer?: number | undefined;\n onLayerChange?: ((layer: number) => void) | undefined;\n}\n\nconst bodyOf = (el: HTMLElement | null | undefined) => el?.closest<HTMLElement>(\"[data-dialog-body]\") ?? null;\n\nexport const LayerDialog = /* @__PURE__ */ forwardRef<HTMLDivElement, LayerDialogProps>(function LayerDialog({ layers, layer, onLayerChange, ...props }, ref) {\n const [inner, setInner] = useState(0);\n const t = useUiText();\n const wanted = layer ?? inner;\n const index = wanted > 0 && wanted < layers.length ? wanted : 0;\n const sections = useRef<(HTMLDivElement | null)[]>([]);\n const focused = useRef<(HTMLElement | null)[]>([]);\n const tops = useRef<number[]>([]);\n const left = useRef(index);\n const shown = useRef(index);\n if (left.current !== index) {\n tops.current[left.current] = bodyOf(sections.current[left.current])?.scrollTop ?? 0;\n left.current = index;\n }\n useLayoutEffect(() => {\n const from = shown.current;\n shown.current = index;\n if (from === index) return;\n const back = index < from;\n if (!back) focused.current[index] = null;\n focused.current.length = index + 1;\n const section = sections.current[index];\n const body = bodyOf(section);\n if (body) body.scrollTop = back ? (tops.current[index] ?? 0) : 0;\n focusDialogSection(section, back ? focused.current[index] : null);\n }, [index]);\n const go = (i: number) => {\n if (props.busy) return;\n if (layer === undefined) setInner(i);\n onLayerChange?.(i);\n };\n const stack = layers.slice(0, index + 1);\n const current = stack[index];\n if (!current) return null;\n const remember = (i: number) => (e: FocusEvent<HTMLElement>) => {\n if (e.target instanceof HTMLElement) focused.current[i] = e.target;\n };\n return (\n <LayerSlots value={{ toolbar: !!current.toolbar, footerStart: !!current.footerStart }}>\n <Dialog\n ref={ref}\n {...props}\n title={current.title}\n description={current.description}\n toolbar={\n stack.some((l) => l.toolbar)\n ? stack.map((l, i) =>\n l.toolbar ? (\n <div key={i} hidden={i !== index} className=\"contents\" onFocus={remember(i)}>\n {l.toolbar}\n </div>\n ) : null,\n )\n : undefined\n }\n footerStart={\n stack.some((l) => l.footerStart)\n ? stack.map((l, i) =>\n l.footerStart ? (\n <div key={i} hidden={i !== index} className=\"contents\" onFocus={remember(i)}>\n {l.footerStart}\n </div>\n ) : null,\n )\n : undefined\n }\n footer={\n current.footer\n ? stack.map((l, i) =>\n l.footer ? (\n <div key={i} hidden={i !== index} className=\"contents\" onFocus={remember(i)}>\n {l.footer}\n </div>\n ) : null,\n )\n : undefined\n }\n headerStart={\n index > 0 ? (\n <IconButton\n key=\"back\"\n icon={__icon_ArrowLeft01Icon}\n aria-label={t(\"dialog.back\", \"Back\")}\n onClick={() => go(index - 1)}\n disabled={!!props.busy}\n className=\"animate-layer-in\"\n />\n ) : null\n }\n >\n {stack.map((l, i) => (\n <div\n key={i}\n ref={(el) => {\n sections.current[i] = el;\n }}\n hidden={i !== index}\n className=\"animate-layer-in\"\n onFocus={remember(i)}\n >\n {l.content}\n </div>\n ))}\n </Dialog>\n </LayerSlots>\n );\n});\nif (process.env.NODE_ENV !== \"production\") LayerDialog.displayName = \"LayerDialog\";\n"],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { Add01Icon as e, AiBrain01Icon as t, AiComputerIcon as n, Alert02Icon as r, AlertCircleIcon as ee, Analytics01Icon as i, ArrowDataTransferVerticalIcon as a, ArrowDown01Icon as o, ArrowExpand01Icon as s, ArrowLeft01Icon as c, ArrowReloadHorizontalIcon as l, ArrowRight01Icon as u, ArrowShrink02Icon as d, ArrowUp01Icon as f, ArrowUpRight01Icon as p, Audit01Icon as m, Building03Icon as h, Calendar03Icon as g, Cancel01Icon as _, ChartLineData01Icon as v, CheckmarkCircle02Icon as y, Clock01Icon as b, CodeIcon as x, ComputerIcon as S, Copy01Icon as C, CpuIcon as w, DashboardSquare01Icon as T, Database01Icon as E, Delete02Icon as D, Download01Icon as O, Edit02Icon as k, EyeIcon as A, FilterHorizontalIcon as j, Folder01Icon as M, GaugeIcon as N, GithubIcon as P, Globe02Icon as F, GridViewIcon as I, HelpCircleIcon as L, Home01Icon as R, Image01Icon as z, InformationCircleIcon as B, Key01Icon as V, KeyboardIcon as H, LaptopIcon as U, Layers01Icon as W, LeftToRightListBulletIcon as G, Link01Icon as K, LinkSquare02Icon as te, LockKeyIcon as q, Logout01Icon as J, Mail01Icon as Y, Menu01Icon as X, MinusSignIcon as Z, Moon02Icon as Q, MoreHorizontalIcon as ne, Notification03Icon as re, PackageReceive01Icon as ie, Pdf01Icon as ae, PlugSocketIcon as oe, Refresh01Icon as se, Robot01Icon as ce, Route01Icon as le, Search01Icon as ue, SectionIcon as de, ServerStack01Icon as fe, Settings01Icon as pe, ShieldKeyIcon as me, SidebarLeftIcon as he, SidebarRightIcon as ge, SlidersHorizontalIcon as _e, Sorting05Icon as ve, SourceCodeIcon as ye, Sun03Icon as be, TestTube01Icon as xe, Tick02Icon as Se, ToolsIcon as Ce, UnfoldMoreIcon as $, Upload01Icon as we, User03Icon as Te, UserGroupIcon as Ee, ViewIcon as De, ViewOffSlashIcon as Oe, Wallet01Icon as ke } from "@hugeicons/core-free-icons";
2
+ //#region src/icons/vocabulary.ts
3
+ var Ae = {
4
+ key: V,
5
+ providerKey: me,
6
+ project: M,
7
+ organization: h,
8
+ model: t,
9
+ playground: xe,
10
+ alias: K,
11
+ limit: N,
12
+ budget: ke,
13
+ requestLog: G,
14
+ usage: i,
15
+ member: Te,
16
+ members: Ee,
17
+ serviceAccount: ce,
18
+ agent: n,
19
+ settings: pe,
20
+ audit: m,
21
+ instance: fe,
22
+ provider: oe,
23
+ route: le,
24
+ gateway: a,
25
+ database: E,
26
+ update: ie,
27
+ security: q,
28
+ session: U,
29
+ overview: T,
30
+ chart: v,
31
+ home: R,
32
+ tools: Ce,
33
+ reasoning: w,
34
+ vision: z,
35
+ pdf: ae,
36
+ structuredOutput: ye,
37
+ signOut: J,
38
+ copy: C,
39
+ externalLink: p,
40
+ openExternal: te,
41
+ add: e,
42
+ close: _,
43
+ edit: k,
44
+ delete: D,
45
+ download: O,
46
+ upload: we,
47
+ refresh: se,
48
+ retry: l,
49
+ search: ue,
50
+ filter: j,
51
+ displayOptions: _e,
52
+ more: ne,
53
+ menu: X,
54
+ sort: ve,
55
+ switcher: $,
56
+ unfold: $,
57
+ expand: s,
58
+ collapse: d,
59
+ show: De,
60
+ hide: Oe,
61
+ reveal: A,
62
+ sidebar: he,
63
+ sidePanel: ge,
64
+ list: G,
65
+ board: I,
66
+ stack: W,
67
+ check: Se,
68
+ success: y,
69
+ warning: r,
70
+ error: ee,
71
+ info: B,
72
+ minus: Z,
73
+ notification: re,
74
+ chevronDown: o,
75
+ chevronUp: f,
76
+ chevronLeft: c,
77
+ chevronRight: u,
78
+ arrowRight: u,
79
+ calendar: g,
80
+ time: b,
81
+ code: x,
82
+ mail: Y,
83
+ keyboard: H,
84
+ help: L,
85
+ github: P,
86
+ themeLight: be,
87
+ themeDark: Q,
88
+ themeSystem: S,
89
+ language: F,
90
+ legal: de
91
+ };
92
+ //#endregion
93
+ export { Ae as t };
94
+
95
+ //# sourceMappingURL=icon-CPJWE2N-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-CPJWE2N-.js","names":["icons","Key01Icon","ShieldKeyIcon","Folder01Icon","Building03Icon","AiBrain01Icon","TestTube01Icon","Link01Icon","GaugeIcon","Wallet01Icon","LeftToRightListBulletIcon","Analytics01Icon","User03Icon","UserGroupIcon","Robot01Icon","AiComputerIcon","Settings01Icon","Audit01Icon","ServerStack01Icon","PlugSocketIcon","Route01Icon","ArrowDataTransferVerticalIcon","Database01Icon","PackageReceive01Icon","LockKeyIcon","LaptopIcon","DashboardSquare01Icon","ChartLineData01Icon","Home01Icon","ToolsIcon","CpuIcon","Image01Icon","Pdf01Icon","SourceCodeIcon","Logout01Icon","Copy01Icon","ArrowUpRight01Icon","LinkSquare02Icon","Add01Icon","Cancel01Icon","Edit02Icon","Delete02Icon","Download01Icon","Upload01Icon","Refresh01Icon","ArrowReloadHorizontalIcon","Search01Icon","FilterHorizontalIcon","SlidersHorizontalIcon","MoreHorizontalIcon","Menu01Icon","Sorting05Icon","UnfoldMoreIcon","ArrowExpand01Icon","ArrowShrink02Icon","ViewIcon","ViewOffSlashIcon","EyeIcon","SidebarLeftIcon","SidebarRightIcon","GridViewIcon","Layers01Icon","Tick02Icon","CheckmarkCircle02Icon","Alert02Icon","AlertCircleIcon","InformationCircleIcon","MinusSignIcon","Notification03Icon","ArrowDown01Icon","ArrowUp01Icon","ArrowLeft01Icon","ArrowRight01Icon","Calendar03Icon","Clock01Icon","CodeIcon","Mail01Icon","KeyboardIcon","HelpCircleIcon","GithubIcon","Sun03Icon","Moon02Icon","ComputerIcon","Globe02Icon","SectionIcon"],"sources":["../../src/icons/vocabulary.ts"],"sourcesContent":["import {\n Add01Icon,\n AiBrain01Icon,\n AiComputerIcon,\n TestTube01Icon,\n Alert02Icon,\n AlertCircleIcon,\n Analytics01Icon,\n ArrowDown01Icon,\n ArrowLeft01Icon,\n ArrowRight01Icon,\n ArrowUp01Icon,\n ArrowUpRight01Icon,\n ArrowDataTransferVerticalIcon,\n Audit01Icon,\n Building03Icon,\n Calendar03Icon,\n Cancel01Icon,\n CheckmarkCircle02Icon,\n Clock01Icon,\n CodeIcon,\n Copy01Icon,\n CpuIcon,\n Database01Icon,\n Delete02Icon,\n Download01Icon,\n Edit02Icon,\n EyeIcon,\n FilterHorizontalIcon,\n Globe02Icon,\n SectionIcon,\n Folder01Icon,\n GaugeIcon,\n GithubIcon,\n HelpCircleIcon,\n Home01Icon,\n Image01Icon,\n InformationCircleIcon,\n Key01Icon,\n KeyboardIcon,\n LeftToRightListBulletIcon,\n Link01Icon,\n LinkSquare02Icon,\n LockKeyIcon,\n Logout01Icon,\n Mail01Icon,\n Menu01Icon,\n Moon02Icon,\n MoreHorizontalIcon,\n PackageReceive01Icon,\n Pdf01Icon,\n PlugSocketIcon,\n Refresh01Icon,\n Robot01Icon,\n Route01Icon,\n Search01Icon,\n ServerStack01Icon,\n Settings01Icon,\n ShieldKeyIcon,\n SidebarLeftIcon,\n SidebarRightIcon,\n SlidersHorizontalIcon,\n Sorting05Icon,\n SourceCodeIcon,\n Sun03Icon,\n Tick02Icon,\n ToolsIcon,\n User03Icon,\n UserGroupIcon,\n ViewIcon,\n ViewOffSlashIcon,\n Wallet01Icon,\n ComputerIcon,\n DashboardSquare01Icon,\n ChartLineData01Icon,\n GridViewIcon,\n Layers01Icon,\n ArrowExpand01Icon,\n ArrowShrink02Icon,\n MinusSignIcon,\n Upload01Icon,\n Notification03Icon,\n ArrowReloadHorizontalIcon,\n UnfoldMoreIcon,\n LaptopIcon,\n} from \"@hugeicons/core-free-icons\";\n\nexport const icons = {\n key: Key01Icon,\n providerKey: ShieldKeyIcon,\n project: Folder01Icon,\n organization: Building03Icon,\n model: AiBrain01Icon,\n playground: TestTube01Icon,\n alias: Link01Icon,\n limit: GaugeIcon,\n budget: Wallet01Icon,\n requestLog: LeftToRightListBulletIcon,\n usage: Analytics01Icon,\n member: User03Icon,\n members: UserGroupIcon,\n serviceAccount: Robot01Icon,\n agent: AiComputerIcon,\n settings: Settings01Icon,\n audit: Audit01Icon,\n instance: ServerStack01Icon,\n provider: PlugSocketIcon,\n route: Route01Icon,\n gateway: ArrowDataTransferVerticalIcon,\n database: Database01Icon,\n update: PackageReceive01Icon,\n security: LockKeyIcon,\n session: LaptopIcon,\n overview: DashboardSquare01Icon,\n chart: ChartLineData01Icon,\n home: Home01Icon,\n tools: ToolsIcon,\n reasoning: CpuIcon,\n vision: Image01Icon,\n pdf: Pdf01Icon,\n structuredOutput: SourceCodeIcon,\n signOut: Logout01Icon,\n copy: Copy01Icon,\n externalLink: ArrowUpRight01Icon,\n openExternal: LinkSquare02Icon,\n add: Add01Icon,\n close: Cancel01Icon,\n edit: Edit02Icon,\n delete: Delete02Icon,\n download: Download01Icon,\n upload: Upload01Icon,\n refresh: Refresh01Icon,\n retry: ArrowReloadHorizontalIcon,\n search: Search01Icon,\n filter: FilterHorizontalIcon,\n displayOptions: SlidersHorizontalIcon,\n more: MoreHorizontalIcon,\n menu: Menu01Icon,\n sort: Sorting05Icon,\n switcher: UnfoldMoreIcon,\n unfold: UnfoldMoreIcon,\n expand: ArrowExpand01Icon,\n collapse: ArrowShrink02Icon,\n show: ViewIcon,\n hide: ViewOffSlashIcon,\n reveal: EyeIcon,\n sidebar: SidebarLeftIcon,\n sidePanel: SidebarRightIcon,\n list: LeftToRightListBulletIcon,\n board: GridViewIcon,\n stack: Layers01Icon,\n check: Tick02Icon,\n success: CheckmarkCircle02Icon,\n warning: Alert02Icon,\n error: AlertCircleIcon,\n info: InformationCircleIcon,\n minus: MinusSignIcon,\n notification: Notification03Icon,\n chevronDown: ArrowDown01Icon,\n chevronUp: ArrowUp01Icon,\n chevronLeft: ArrowLeft01Icon,\n chevronRight: ArrowRight01Icon,\n arrowRight: ArrowRight01Icon,\n calendar: Calendar03Icon,\n time: Clock01Icon,\n code: CodeIcon,\n mail: Mail01Icon,\n keyboard: KeyboardIcon,\n help: HelpCircleIcon,\n github: GithubIcon,\n themeLight: Sun03Icon,\n themeDark: Moon02Icon,\n themeSystem: ComputerIcon,\n language: Globe02Icon,\n legal: SectionIcon,\n} as const;\n\nexport type IconName = keyof typeof icons;\n"],"mappings":";;AAuFA,IAAaA,KAAQ;CACnB,KAAKC;CACL,aAAaC;CACb,SAASC;CACT,cAAcC;CACd,OAAOC;CACP,YAAYC;CACZ,OAAOC;CACP,OAAOC;CACP,QAAQC;CACR,YAAYC;CACZ,OAAOC;CACP,QAAQC;CACR,SAASC;CACT,gBAAgBC;CAChB,OAAOC;CACP,UAAUC;CACV,OAAOC;CACP,UAAUC;CACV,UAAUC;CACV,OAAOC;CACP,SAASC;CACT,UAAUC;CACV,QAAQC;CACR,UAAUC;CACV,SAASC;CACT,UAAUC;CACV,OAAOC;CACP,MAAMC;CACN,OAAOC;CACP,WAAWC;CACX,QAAQC;CACR,KAAKC;CACL,kBAAkBC;CAClB,SAASC;CACT,MAAMC;CACN,cAAcC;CACd,cAAcC;CACd,KAAKC;CACL,OAAOC;CACP,MAAMC;CACN,QAAQC;CACR,UAAUC;CACV,QAAQC;CACR,SAASC;CACT,OAAOC;CACP,QAAQC;CACR,QAAQC;CACR,gBAAgBC;CAChB,MAAMC;CACN,MAAMC;CACN,MAAMC;CACN,UAAUC;CACV,QAAQA;CACR,QAAQC;CACR,UAAUC;CACV,MAAMC;CACN,MAAMC;CACN,QAAQC;CACR,SAASC;CACT,WAAWC;CACX,MAAMjD;CACN,OAAOkD;CACP,OAAOC;CACP,OAAOC;CACP,SAASC;CACT,SAASC;CACT,OAAOC;CACP,MAAMC;CACN,OAAOC;CACP,cAAcC;CACd,aAAaC;CACb,WAAWC;CACX,aAAaC;CACb,cAAcC;CACd,YAAYA;CACZ,UAAUC;CACV,MAAMC;CACN,MAAMC;CACN,MAAMC;CACN,UAAUC;CACV,MAAMC;CACN,QAAQC;CACR,YAAYC;CACZ,WAAWC;CACX,aAAaC;CACb,UAAUC;CACV,OAAOC;AACT"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { r as e } from "./tooltip-BMQ9BtPp.js";
3
- import { n as t } from "./button-Dzu7_csE.js";
2
+ import { r as e } from "./tooltip-OcwO0VUT.js";
3
+ import { n as t } from "./button-CzuxqawA.js";
4
4
  import { forwardRef as n } from "react";
5
5
  import { jsx as r } from "react/jsx-runtime";
6
6
  //#region src/components/icon-button/icon-button.tsx
@@ -47,4 +47,4 @@ process.env.NODE_ENV !== "production" && (o.displayName = "IconButton");
47
47
  //#endregion
48
48
  export { a as n, i as r, o as t };
49
49
 
50
- //# sourceMappingURL=icon-button-CPYR21Sz.js.map
50
+ //# sourceMappingURL=icon-button-CrdF_eMG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button-CPYR21Sz.js","names":["Tooltip","Button","KAESO_ICON_BUTTON_VARIANTS","KAESO_ICON_BUTTON_DEFAULT_VARIANTS","IconButton","label","props","btn","disabled","disabledReason","tooltip","tooltipSide","shortcut"],"sources":["../../src/components/icon-button/icon-button.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Button, type ButtonSize, type ButtonVariant } from \"../button/button.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport type { IconData } from \"../icon/icon.js\";\n\nexport const KAESO_ICON_BUTTON_VARIANTS = {\n variant: {\n ghost: { classes: \"material-ghost\" },\n quiet: { classes: \"material-ghost text-fg-secondary hover:text-fg\" },\n secondary: { classes: \"material-secondary\" },\n soft: { classes: \"material-soft\" },\n primary: { classes: \"material-primary\" },\n danger: { classes: \"material-danger\" },\n \"danger-secondary\": { classes: \"material-danger-secondary\" },\n },\n size: {\n xs: { classes: \"size-24\" },\n sm: { classes: \"size-32\" },\n md: { classes: \"size-36\" },\n lg: { classes: \"size-40\" },\n xl: { classes: \"size-48\" },\n },\n} as const;\nexport const KAESO_ICON_BUTTON_DEFAULT_VARIANTS = { variant: \"ghost\", size: \"sm\" } as const;\n\nexport interface IconButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n icon: IconData;\n \"aria-label\": string;\n variant?: Exclude<ButtonVariant, \"link\"> | undefined;\n size?: ButtonSize | undefined;\n shortcut?: string[] | string[][] | undefined;\n tooltip?: boolean | undefined;\n tooltipSide?: \"top\" | \"bottom\" | \"left\" | \"right\" | undefined;\n loading?: boolean | undefined;\n disabledReason?: string | undefined;\n href?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const IconButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, IconButtonProps>(function IconButton(\n { icon, variant = \"ghost\", size = \"sm\", shortcut, tooltip = true, tooltipSide = \"top\", \"aria-label\": label, disabledReason, disabled, ...props },\n ref,\n) {\n const btn = (\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n icon={icon}\n aria-label={label}\n variant={variant}\n size={size}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(disabledReason !== undefined ? { disabledReason } : {})}\n {...props}\n />\n );\n if (!tooltip || disabled) return btn;\n return (\n <Tooltip content={label} side={tooltipSide} {...(shortcut ? { shortcut } : {})}>\n {btn}\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") IconButton.displayName = \"IconButton\";\n"],"mappings":";;;;;;AAMA,IAAaE,IAA6B;CACxC,SAAS;EACP,OAAO,EAAE,SAAS,iBAAiB;EACnC,OAAO,EAAE,SAAS,iDAAiD;EACnE,WAAW,EAAE,SAAS,qBAAqB;EAC3C,MAAM,EAAE,SAAS,gBAAgB;EACjC,SAAS,EAAE,SAAS,mBAAmB;EACvC,QAAQ,EAAE,SAAS,kBAAkB;EACrC,oBAAoB,EAAE,SAAS,4BAA4B;CAC7D;CACA,MAAM;EACJ,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;CAC3B;AACF,GACaC,IAAqC;CAAE,SAAS;CAAS,MAAM;AAAK,GAgBpEC,IAA6B,kBAA+C,SACvF,EAAE,SAAM,aAAU,SAAS,UAAO,MAAM,aAAU,aAAU,IAAM,iBAAc,OAAO,cAAcC,GAAO,mBAAgB,aAAU,GAAGC,KACzI,GACA;CACA,IAAMC,IACJ,kBAACN,GAAD;EACO;EACL,OAAM;EACA;EACN,cAAYI;EACH;EACH;EACN,GAAKG,MAAa,KAAA,IAA2B,CAAC,IAAhB,EAAE,YAAS;EACzC,GAAKC,MAAmB,KAAA,IAAiC,CAAC,IAAtB,EAAE,kBAAe;EACrD,GAAIH;CACL,CAAA;CAGH,OADI,CAACI,KAAWF,IAAiBD,IAE/B,kBAACP,GAAD;EAAS,SAASK;EAAO,MAAMM;EAAa,GAAKC,IAAW,EAAE,YAAS,IAAI,CAAC;EACzE,UAAAL;CACM,CAAA;AAEb,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
1
+ {"version":3,"file":"icon-button-CrdF_eMG.js","names":["Tooltip","Button","KAESO_ICON_BUTTON_VARIANTS","KAESO_ICON_BUTTON_DEFAULT_VARIANTS","IconButton","label","props","btn","disabled","disabledReason","tooltip","tooltipSide","shortcut"],"sources":["../../src/components/icon-button/icon-button.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport { Button, type ButtonSize, type ButtonVariant } from \"../button/button.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport type { IconData } from \"../icon/icon.js\";\n\nexport const KAESO_ICON_BUTTON_VARIANTS = {\n variant: {\n ghost: { classes: \"material-ghost\" },\n quiet: { classes: \"material-ghost text-fg-secondary hover:text-fg\" },\n secondary: { classes: \"material-secondary\" },\n soft: { classes: \"material-soft\" },\n primary: { classes: \"material-primary\" },\n danger: { classes: \"material-danger\" },\n \"danger-secondary\": { classes: \"material-danger-secondary\" },\n },\n size: {\n xs: { classes: \"size-24\" },\n sm: { classes: \"size-32\" },\n md: { classes: \"size-36\" },\n lg: { classes: \"size-40\" },\n xl: { classes: \"size-48\" },\n },\n} as const;\nexport const KAESO_ICON_BUTTON_DEFAULT_VARIANTS = { variant: \"ghost\", size: \"sm\" } as const;\n\nexport interface IconButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n icon: IconData;\n \"aria-label\": string;\n variant?: Exclude<ButtonVariant, \"link\"> | undefined;\n size?: ButtonSize | undefined;\n shortcut?: string[] | string[][] | undefined;\n tooltip?: boolean | undefined;\n tooltipSide?: \"top\" | \"bottom\" | \"left\" | \"right\" | undefined;\n loading?: boolean | undefined;\n disabledReason?: string | undefined;\n href?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const IconButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, IconButtonProps>(function IconButton(\n { icon, variant = \"ghost\", size = \"sm\", shortcut, tooltip = true, tooltipSide = \"top\", \"aria-label\": label, disabledReason, disabled, ...props },\n ref,\n) {\n const btn = (\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n icon={icon}\n aria-label={label}\n variant={variant}\n size={size}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(disabledReason !== undefined ? { disabledReason } : {})}\n {...props}\n />\n );\n if (!tooltip || disabled) return btn;\n return (\n <Tooltip content={label} side={tooltipSide} {...(shortcut ? { shortcut } : {})}>\n {btn}\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") IconButton.displayName = \"IconButton\";\n"],"mappings":";;;;;;AAMA,IAAaE,IAA6B;CACxC,SAAS;EACP,OAAO,EAAE,SAAS,iBAAiB;EACnC,OAAO,EAAE,SAAS,iDAAiD;EACnE,WAAW,EAAE,SAAS,qBAAqB;EAC3C,MAAM,EAAE,SAAS,gBAAgB;EACjC,SAAS,EAAE,SAAS,mBAAmB;EACvC,QAAQ,EAAE,SAAS,kBAAkB;EACrC,oBAAoB,EAAE,SAAS,4BAA4B;CAC7D;CACA,MAAM;EACJ,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;EACzB,IAAI,EAAE,SAAS,UAAU;CAC3B;AACF,GACaC,IAAqC;CAAE,SAAS;CAAS,MAAM;AAAK,GAgBpEC,IAA6B,kBAA+C,SACvF,EAAE,SAAM,aAAU,SAAS,UAAO,MAAM,aAAU,aAAU,IAAM,iBAAc,OAAO,cAAcC,GAAO,mBAAgB,aAAU,GAAGC,KACzI,GACA;CACA,IAAMC,IACJ,kBAACN,GAAD;EACO;EACL,OAAM;EACA;EACN,cAAYI;EACH;EACH;EACN,GAAKG,MAAa,KAAA,IAA2B,CAAC,IAAhB,EAAE,YAAS;EACzC,GAAKC,MAAmB,KAAA,IAAiC,CAAC,IAAtB,EAAE,kBAAe;EACrD,GAAIH;CACL,CAAA;CAGH,OADI,CAACI,KAAWF,IAAiBD,IAE/B,kBAACP,GAAD;EAAS,SAASK;EAAO,MAAMM;EAAa,GAAKC,IAAW,EAAE,YAAS,IAAI,CAAC;EACzE,UAAAL;CACM,CAAA;AAEb,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAW,cAAc"}
@@ -3,8 +3,8 @@ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { i as t } from "./context-BELWW79w.js";
4
4
  import { formatNumber as n } from "../format.js";
5
5
  import { t as r } from "./icon-D7ja-_Yk.js";
6
- import { r as i } from "./tooltip-BMQ9BtPp.js";
7
- import { n as a } from "./copy-button-7-irieJw.js";
6
+ import { r as i } from "./tooltip-OcwO0VUT.js";
7
+ import { n as a } from "./copy-button-FJvPJn72.js";
8
8
  import { t as o } from "./badge-C2KtxCLB.js";
9
9
  import { forwardRef as s } from "react";
10
10
  import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
@@ -175,7 +175,7 @@ function A(e) {
175
175
  archived: e("keyDisplay.archived", "Archived")
176
176
  };
177
177
  }
178
- var j = /* @__PURE__ */ s(function({ redacted: n, state: r = "active", stateBadge: i = !0, access: s, copy: c = !0, className: d }, f) {
178
+ var j = {}, M = {}, N = /* @__PURE__ */ s(function({ redacted: n, state: r = "active", stateBadge: i = !0, access: s, copy: c = !0, className: d }, f) {
179
179
  let p = t();
180
180
  return /* @__PURE__ */ u("span", {
181
181
  ref: f,
@@ -204,9 +204,9 @@ var j = /* @__PURE__ */ s(function({ redacted: n, state: r = "active", stateBadg
204
204
  ]
205
205
  });
206
206
  });
207
- process.env.NODE_ENV !== "production" && (j.displayName = "KeyDisplay");
208
- var M = (e) => e >= 500 ? "danger" : e >= 400 ? "warning" : "neutral";
209
- function N(e) {
207
+ process.env.NODE_ENV !== "production" && (N.displayName = "KeyDisplay");
208
+ var P = (e) => e >= 500 ? "danger" : e >= 400 ? "warning" : "neutral";
209
+ function F(e) {
210
210
  return {
211
211
  200: e("statusCode.ok", "OK"),
212
212
  201: e("statusCode.created", "Created"),
@@ -228,8 +228,8 @@ function N(e) {
228
228
  529: e("statusCode.overloaded", "Overloaded")
229
229
  };
230
230
  }
231
- var P = /* @__PURE__ */ s(function({ code: n, showText: r, className: a }, o) {
232
- let s = t(), c = N(s)[n], d = M(n), f = {
231
+ var I = /* @__PURE__ */ s(function({ code: n, showText: r, className: a }, o) {
232
+ let s = t(), c = F(s)[n], d = P(n), f = {
233
233
  danger: "text-danger-text",
234
234
  warning: "text-warning-text",
235
235
  neutral: n >= 200 && n < 300 ? "text-fg" : "text-fg-secondary"
@@ -260,8 +260,8 @@ var P = /* @__PURE__ */ s(function({ code: n, showText: r, className: a }, o) {
260
260
  children: p
261
261
  });
262
262
  });
263
- process.env.NODE_ENV !== "production" && (P.displayName = "StatusCode");
264
- var F = /* @__PURE__ */ s(function({ ttfbMs: r, totalMs: i, width: a = 240, className: o }, s) {
263
+ process.env.NODE_ENV !== "production" && (I.displayName = "StatusCode");
264
+ var L = /* @__PURE__ */ s(function({ ttfbMs: r, totalMs: i, width: a = 240, className: o }, s) {
265
265
  let c = t(), d = i > 0 ? Math.min(1, r / i) : 0, f = (e) => e < 1e3 ? `${Math.round(e)} ms` : `${n(e / 1e3, {
266
266
  minimumFractionDigits: 1,
267
267
  maximumFractionDigits: 1,
@@ -305,8 +305,8 @@ var F = /* @__PURE__ */ s(function({ ttfbMs: r, totalMs: i, width: a = 240, clas
305
305
  })]
306
306
  });
307
307
  });
308
- process.env.NODE_ENV !== "production" && (F.displayName = "RequestTimeline");
309
- var I = /* @__PURE__ */ s(function({ provider: n, name: r, connected: i, status: a, keyLabel: s, detail: c, actions: d, className: f }, p) {
308
+ process.env.NODE_ENV !== "production" && (L.displayName = "RequestTimeline");
309
+ var R = /* @__PURE__ */ s(function({ provider: n, name: r, connected: i, status: a, keyLabel: s, detail: c, actions: d, className: f }, p) {
310
310
  let m = t(), h = y(n, r);
311
311
  return /* @__PURE__ */ u("section", {
312
312
  ref: p,
@@ -354,8 +354,8 @@ var I = /* @__PURE__ */ s(function({ provider: n, name: r, connected: i, status:
354
354
  ]
355
355
  });
356
356
  });
357
- process.env.NODE_ENV !== "production" && (I.displayName = "ProviderCard");
357
+ process.env.NODE_ENV !== "production" && (R.displayName = "ProviderCard");
358
358
  //#endregion
359
- export { E as a, F as c, j as i, P as l, v as n, S as o, _ as r, I as s, D as t, y as u };
359
+ export { j as a, S as c, I as d, y as f, M as i, R as l, v as n, N as o, _ as r, E as s, D as t, L as u };
360
360
 
361
- //# sourceMappingURL=identity-DPuTkMsa.js.map
361
+ //# sourceMappingURL=identity-BmhQ6BQ-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-BmhQ6BQ-.js","names":["__icon_ToolsIcon","__icon_CpuIcon","__icon_Image01Icon","__icon_Pdf01Icon","__icon_SourceCodeIcon","_Fragment","cn","useUiText","Icon","Tooltip","CopyButton","Badge","Fragment$1","PROVIDER_MARKS","KAESO_IDENTITY_VARIANTS","KAESO_IDENTITY_DEFAULT_VARIANTS","providerName","name","id","providerLetter","MARK_SIZE","ProviderBadge","mark","provider","label","tile","withName","size","className","CAP_ICON","ToolsIcon","CpuIcon","Image01Icon","Pdf01Icon","SourceCodeIcon","capabilityLabels","t","SHORT_ID","ModelLabel","providerDisplayName","model","capabilities","CapabilityIcons","capLabel","c","KEY_TONE","accessLabels","stateLabels","KAESO_KEY_DISPLAY_VARIANTS","KAESO_KEY_DISPLAY_DEFAULT_VARIANTS","KeyDisplay","state","redacted","stateBadge","access","copy","STATUS_CLASS","code","statusTexts","StatusCode","text","tone","color","el","showText","RequestTimeline","ratio","totalMs","ttfbMs","fmt","ms","formatNumber","width","ProviderCard","status","connected","keyLabel","detail","actions"],"sources":["../../src/components/kaeso/provider-marks.ts","../../src/components/kaeso/identity.tsx"],"sourcesContent":["export interface ProviderMark {\n d: string;\n color: string;\n}\n\nexport const PROVIDER_MARKS: Record<string, ProviderMark> = {\n openai: {\n d: \"M9.205 8.765v-2.26c0-.19.071-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.567 0 .166 0 .356-.024.547l-4.71-2.76a.8.8 0 0 0-.856 0zm10.608 8.8v-5.399c0-.333-.142-.57-.428-.737l-5.97-3.472 1.95-1.118a.43.43 0 0 1 .476 0l4.544 2.616c1.308.761 2.188 2.379 2.188 3.948 0 1.808-1.07 3.473-2.76 4.163ZM7.802 12.81l-1.95-1.142a.45.45 0 0 1-.239-.428V6.006c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.174c-.285.166-.428.404-.428.737zM12 15.235l-2.795-1.57v-3.33L12 8.765l2.795 1.57v3.33zm1.796 7.23a4.45 4.45 0 0 1-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472Zm-5.638-5.303-4.543-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.48 4.48 0 0 1 4.21 6.434v5.424c0 .333.142.57.428.737l5.947 3.449-1.951 1.118a.43.43 0 0 1-.476 0m-.261 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71a.8.8 0 0 0 .857 0l5.97-3.448v2.26c0 .19-.072.333-.238.428l-4.543 2.616c-.619.357-1.356.524-2.117.524Zm5.899 2.831a5.95 5.95 0 0 0 5.828-4.757c2.663-.69 4.376-3.188 4.376-5.733a6 6 0 0 0-1.998-4.447c.119-.5.19-1 .19-1.499 0-3.401-2.759-5.947-5.946-5.947a5.7 5.7 0 0 0-1.88.31A5.96 5.96 0 0 0 10.205.107a5.95 5.95 0 0 0-5.828 4.757C1.712 5.554 0 8.052 0 10.597c0 1.665.713 3.282 1.998 4.448-.12.5-.19.999-.19 1.498 0 3.401 2.759 5.947 5.946 5.947a5.7 5.7 0 0 0 1.88-.31 5.96 5.96 0 0 0 4.162 1.713\",\n color: \"text-mark-openai\",\n },\n anthropic: {\n d: \"M17.304 3.541h-3.672l6.696 16.918H24zm-10.608 0L0 20.459h3.744l1.37-3.553h7.005l1.369 3.553h3.744L10.536 3.541zm-.372 10.223L8.616 7.82l2.292 5.945z\",\n color: \"text-fg\",\n },\n deepseek: {\n d: \"M23.748 4.651c-.254-.124-.364.113-.512.233-.051.04-.094.09-.137.137-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.155-.708-.311-.955-.65-.172-.24-.219-.509-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.094.172.187.129.323-.082.28-.18.553-.266.833-.055.179-.137.218-.328.14a5.5 5.5 0 0 1-1.737-1.179c-.857-.828-1.631-1.743-2.597-2.46a12 12 0 0 0-.689-.47c-.985-.957.13-1.743.387-1.836.27-.098.094-.433-.778-.428-.872.003-1.67.295-2.687.685a3 3 0 0 1-.465.136 9.6 9.6 0 0 0-2.883-.101c-1.885.21-3.39 1.1-4.497 2.622C.082 8.776-.231 10.854.152 13.02c.403 2.284 1.568 4.175 3.36 5.653 1.857 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.132-.284 4.994-1.86.47.234.962.328 1.78.398.629.058 1.235-.031 1.705-.129.735-.155.684-.836.418-.961-2.155-1.004-1.682-.595-2.112-.926 1.095-1.295 2.768-3.598 3.284-6.733.05-.346.115-.834.108-1.114-.005-.171.035-.238.23-.257a4.2 4.2 0 0 0 1.545-.475c1.397-.763 1.96-2.016 2.093-3.517.02-.23-.005-.467-.247-.588M11.58 18.168c-2.088-1.642-3.101-2.183-3.52-2.16-.39.024-.32.472-.234.763.09.288.207.487.371.74.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.168-1.361-.801-2.5-1.86-3.301-3.306-.775-1.393-1.225-2.888-1.299-4.482-.02-.385.094-.522.477-.592a4.7 4.7 0 0 1 1.53-.038c2.131.311 3.946 1.264 5.467 2.774.868.86 1.525 1.887 2.202 2.89.72 1.066 1.494 2.082 2.48 2.915.348.291.626.513.892.677-.802.09-2.14.109-3.055-.615zm1.001-6.44a.306.306 0 0 1 .415-.287.3.3 0 0 1 .113.074.3.3 0 0 1 .086.214c0 .17-.136.307-.308.307a.303.303 0 0 1-.306-.307m3.11 1.596c-.2.081-.4.151-.591.16a1.25 1.25 0 0 1-.798-.254c-.274-.23-.47-.358-.551-.758a1.7 1.7 0 0 1 .015-.588c.07-.327-.007-.537-.238-.727-.188-.156-.426-.199-.689-.199a.6.6 0 0 1-.254-.078.253.253 0 0 1-.114-.358 1 1 0 0 1 .192-.21c.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.392.451.462.576.685.915.176.264.336.536.446.848.066.194-.02.353-.25.45\",\n color: \"text-fg\",\n },\n xai: {\n d: \"M7.168 12.02.391 7.035h5.766l4.182 3.01q-1.677.964-3.17 1.975m9.512 7.1-5.077-3.745q1.7-1.287 2.872-2.114l7.995 5.859Zm-10.844 0H0l.69-.644q3.17-3.101 8.741-6.812Q14.622 8.207 24 4.88v1.931q-1.085.482-2.196 1.005-8.846 4.158-15.968 11.304\",\n color: \"text-mark-xai\",\n },\n togetherai: {\n d: \"M21.33 5.172a5 5 0 0 0-6.83-1.83 4.98 4.98 0 0 0-2.496 4.111L17 7.46v.428h-4.996a5 5 0 1 0 9.325-2.716M2.67 5.17A5 5 0 0 0 4.5 12a4.98 4.98 0 0 0 4.808.105l-2.492-4.33.371-.214 2.498 4.327A5 5 0 1 0 2.67 5.17M11.999 21.33a5 5 0 0 0 4.999-5c0-1.775-.916-3.33-2.312-4.216l-2.504 4.324-.37-.215 2.497-4.327A5 5 0 1 0 12 21.33Z\",\n color: \"text-mark-togetherai\",\n },\n groq: {\n d: \"M15.955 0 3.944 12.538l7.43 1.904L8.045 24l12.011-12.538-7.43-1.904z\",\n color: \"text-fg\",\n },\n openrouter: {\n d: \"M18.376 3.806c2.693 0 4.876 2.201 4.876 4.917s-2.183 4.916-4.876 4.916l4.836 4.876c.615.62.18 1.679-.689 1.679H8.626C4.138 20.194.5 16.525.5 12s3.638-8.194 8.126-8.194zm-9.75 3.278c-2.693 0-4.876 2.2-4.876 4.916 0 2.715 2.183 4.916 4.876 4.916 2.692 0 4.875-2.2 4.875-4.916 0-2.715-2.183-4.916-4.875-4.916\",\n color: \"text-mark-openrouter\",\n },\n mistral: {\n d: \"M8 5H5v3h3zm0 9H5v3h3zm3 3H2v3h9zm0-9H5v3h6zm3 6h-3v3h3zm6-3H5v3h15zm0-3h-6v3h6zm0-3h-3v3h3zm0 9h-3v3h3zm3 3h-9v3h9z\",\n color: \"text-mark-mistral\",\n },\n};\n","import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { ToolsIcon as __icon_ToolsIcon, CpuIcon as __icon_CpuIcon, Image01Icon as __icon_Image01Icon, Pdf01Icon as __icon_Pdf01Icon, SourceCodeIcon as __icon_SourceCodeIcon } from \"@hugeicons/core-free-icons\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { Badge } from \"../badge/badge.js\";\nimport { CopyButton } from \"../copy-button/copy-button.js\";\nimport { PROVIDER_MARKS } from \"./provider-marks.js\";\nimport { formatNumber } from \"../../format/index.js\";\nimport { useUiText, type UiText } from \"../../i18n/context.js\";\n\nexport const KAESO_IDENTITY_VARIANTS = {\n provider: {\n sm: { classes: \"size-16 rounded-cell text-micro\" },\n md: { classes: \"size-20 rounded-avatar text-micro\" },\n lg: { classes: \"size-28 rounded-org text-caption\" },\n xl: { classes: \"size-40 rounded-org text-body\" },\n },\n} as const;\nexport const KAESO_IDENTITY_DEFAULT_VARIANTS = { provider: \"md\" } as const;\n\nexport const providerName = (id: string, name?: string | undefined) => name?.trim() || id;\nconst providerLetter = (id: string, name?: string | undefined) => (/[\\p{L}\\p{N}]/u.exec(providerName(id, name))?.[0] ?? id.slice(0, 1)).toLocaleUpperCase();\n\nconst MARK_SIZE = { sm: \"size-10\", md: \"size-12\", lg: \"size-16\", xl: \"size-24\" } as const;\n\nexport const ProviderBadge = /* @__PURE__ */ forwardRef<\n HTMLSpanElement,\n {\n provider: string;\n name?: string | undefined;\n size?: keyof typeof KAESO_IDENTITY_VARIANTS.provider | undefined;\n withName?: boolean | undefined;\n className?: string | undefined;\n }\n>(function ProviderBadge({ provider, name, size = \"md\", withName, className }, ref) {\n const mark = PROVIDER_MARKS[provider];\n const label = providerName(provider, name);\n const tile = (\n <span\n aria-hidden={withName || undefined}\n {...(!withName ? { role: \"img\", \"aria-label\": label } : {})}\n className={cn(\n \"inline-flex shrink-0 items-center justify-center bg-fill-1 font-semibold shadow-ring\",\n mark ? mark.color : \"text-fg-secondary\",\n KAESO_IDENTITY_VARIANTS.provider[size].classes,\n )}\n >\n {mark ? (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" fillRule=\"evenodd\" aria-hidden focusable=\"false\" className={MARK_SIZE[size]}>\n <path d={mark.d} />\n </svg>\n ) : (\n providerLetter(provider, name)\n )}\n </span>\n );\n if (!withName)\n return (\n <span ref={ref} className={cn(\"inline-flex\", className)}>\n {tile}\n </span>\n );\n return (\n <span ref={ref} className={cn(\"inline-flex max-w-full min-w-0 items-center gap-8 text-body text-fg\", className)}>\n {tile}\n <span className=\"min-w-0 truncate\">{label}</span>\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ProviderBadge.displayName = \"ProviderBadge\";\n\nexport type Capability = \"tools\" | \"reasoning\" | \"vision\" | \"pdf\" | \"structuredOutput\";\nconst CAP_ICON: Record<Capability, IconData> = {\n tools: __icon_ToolsIcon,\n reasoning: __icon_CpuIcon,\n vision: __icon_Image01Icon,\n pdf: __icon_Pdf01Icon,\n structuredOutput: __icon_SourceCodeIcon,\n};\nfunction capabilityLabels(t: UiText): Record<Capability, string> {\n return {\n tools: t(\"modelLabel.toolCalling\", \"Tool calling\"),\n reasoning: t(\"modelLabel.reasoning\", \"Reasoning\"),\n vision: t(\"modelLabel.imageInput\", \"Image input\"),\n pdf: t(\"modelLabel.pdfInput\", \"PDF input\"),\n structuredOutput: t(\"modelLabel.structuredOutput\", \"Structured output\"),\n };\n}\n\nconst SHORT_ID = 14;\n\nexport interface ModelLabelProps {\n provider: string;\n providerName?: string | undefined;\n model: string;\n name?: string | undefined;\n capabilities?: Capability[] | undefined;\n mark?: boolean | undefined;\n className?: string | undefined;\n}\n\nexport const ModelLabel = /* @__PURE__ */ forwardRef<HTMLSpanElement, ModelLabelProps>(function ModelLabel(\n { provider, providerName: providerDisplayName, model, name, capabilities = [], mark = true, className },\n ref,\n) {\n return (\n <span ref={ref} className={cn(\"inline-flex max-w-full min-w-0 items-center gap-8\", className)}>\n {mark && <ProviderBadge provider={provider} name={providerDisplayName} />}\n {name ? (\n <>\n <span className=\"min-w-0 truncate text-body text-fg\">{name}</span>\n <span className=\"flex h-20 min-w-0 flex-1 basis-0 flex-wrap content-start items-center overflow-hidden\">\n <span aria-hidden className=\"h-20 w-0\" />\n <span className={cn(\"flex-1 truncate mono text-small text-fg-secondary\", model.length <= SHORT_ID ? \"min-w-max\" : \"min-w-96\")}>{model}</span>\n </span>\n </>\n ) : (\n <span className=\"min-w-0 truncate mono text-small text-fg\">{model}</span>\n )}\n {capabilities.length > 0 && <CapabilityIcons capabilities={capabilities} className=\"hidden sm:flex\" />}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ModelLabel.displayName = \"ModelLabel\";\n\nexport const CapabilityIcons = /* @__PURE__ */ forwardRef<HTMLSpanElement, { capabilities: Capability[]; className?: string | undefined }>(function CapabilityIcons(\n { capabilities, className },\n ref,\n) {\n const t = useUiText();\n const capLabel = capabilityLabels(t);\n if (capabilities.length === 0) return null;\n return (\n <span\n ref={ref}\n role=\"img\"\n className={cn(\"flex shrink-0 items-center gap-2\", className)}\n aria-label={t(\"modelLabel.capabilities\", \"Capabilities: {list}\", {\n list: capabilities.map((c) => capLabel[c]).join(t(\"modelLabel.listSeparator\", \", \")),\n })}\n >\n {capabilities.map((c) => (\n <Tooltip key={c} content={capLabel[c]}>\n <span className=\"inline-flex size-20 items-center justify-center rounded-pill text-fg-tertiary hover:text-fg\">\n <Icon icon={CAP_ICON[c]} size=\"xs\" />\n </span>\n </Tooltip>\n ))}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") CapabilityIcons.displayName = \"CapabilityIcons\";\n\nexport type KeyState = \"active\" | \"disabled\" | \"expired\" | \"archived\";\nconst KEY_TONE: Record<KeyState, \"success\" | \"neutral\" | \"warning\"> = { active: \"success\", disabled: \"neutral\", expired: \"warning\", archived: \"neutral\" };\n\nexport interface KeyDisplayProps {\n redacted: string;\n state?: KeyState | undefined;\n access?: \"inference\" | \"platform\" | \"both\" | undefined;\n copy?: boolean | undefined;\n className?: string | undefined;\n stateBadge?: boolean | undefined;\n}\n\nfunction accessLabels(t: UiText) {\n return {\n inference: t(\"keyDisplay.inference\", \"Inference\"),\n platform: t(\"keyDisplay.platform\", \"Platform\"),\n both: t(\"keyDisplay.inferenceAndPlatform\", \"Inference + platform\"),\n };\n}\n\nfunction stateLabels(t: UiText): Record<KeyState, string> {\n return {\n active: t(\"keyDisplay.active\", \"Active\"),\n disabled: t(\"keyDisplay.disabled\", \"Disabled\"),\n expired: t(\"keyDisplay.expired\", \"Expired\"),\n archived: t(\"keyDisplay.archived\", \"Archived\"),\n };\n}\n\nexport const KAESO_KEY_DISPLAY_VARIANTS = {} as const;\nexport const KAESO_KEY_DISPLAY_DEFAULT_VARIANTS = {} as const;\n\nexport const KeyDisplay = /* @__PURE__ */ forwardRef<HTMLSpanElement, KeyDisplayProps>(function KeyDisplay(\n { redacted, state = \"active\", stateBadge = true, access, copy = true, className },\n ref,\n) {\n const t = useUiText();\n return (\n <span ref={ref} className={cn(\"group/key inline-flex max-w-full min-w-0 items-center gap-8\", className)}>\n <span className={cn(\"min-w-0 truncate mono text-small\", state === \"active\" ? \"text-fg\" : \"text-fg-secondary\")}>{redacted}</span>\n {stateBadge && state !== \"active\" && <Badge tone={KEY_TONE[state] === \"warning\" ? \"warning\" : \"neutral\"}>{stateLabels(t)[state]}</Badge>}\n {access && <Badge tone={access === \"inference\" ? \"neutral\" : \"outline\"}>{accessLabels(t)[access]}</Badge>}\n {copy && (\n <span className=\"opacity-0 transition-control group-hover/key:opacity-100 coarse:opacity-100 focus-within:opacity-100\">\n <CopyButton value={redacted} size=\"xs\" label={t(\"keyDisplay.copyRedactedKey\", \"Copy redacted key\")} />\n </span>\n )}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") KeyDisplay.displayName = \"KeyDisplay\";\n\nconst STATUS_CLASS = (code: number) => (code >= 500 ? \"danger\" : code >= 400 ? \"warning\" : \"neutral\") as \"danger\" | \"warning\" | \"neutral\";\nfunction statusTexts(t: UiText): Record<number, string> {\n return {\n 200: t(\"statusCode.ok\", \"OK\"),\n 201: t(\"statusCode.created\", \"Created\"),\n 204: t(\"statusCode.noContent\", \"No content\"),\n 400: t(\"statusCode.badRequest\", \"Bad request\"),\n 401: t(\"statusCode.unauthorized\", \"Unauthorized\"),\n 403: t(\"statusCode.forbidden\", \"Forbidden\"),\n 404: t(\"statusCode.notFound\", \"Not found\"),\n 408: t(\"statusCode.timeout\", \"Timeout\"),\n 409: t(\"statusCode.conflict\", \"Conflict\"),\n 413: t(\"statusCode.tooLarge\", \"Too large\"),\n 422: t(\"statusCode.unprocessable\", \"Unprocessable\"),\n 429: t(\"statusCode.rateLimited\", \"Rate limited\"),\n 499: t(\"statusCode.clientClosed\", \"Client closed\"),\n 500: t(\"statusCode.serverError\", \"Server error\"),\n 502: t(\"statusCode.badGateway\", \"Bad gateway\"),\n 503: t(\"statusCode.unavailable\", \"Unavailable\"),\n 504: t(\"statusCode.gatewayTimeout\", \"Gateway timeout\"),\n 529: t(\"statusCode.overloaded\", \"Overloaded\"),\n };\n}\n\nexport const StatusCode = /* @__PURE__ */ forwardRef<HTMLSpanElement, { code: number; showText?: boolean | undefined; className?: string | undefined }>(function StatusCode(\n { code, showText, className },\n ref,\n) {\n const t = useUiText();\n const text = statusTexts(t)[code];\n const tone = STATUS_CLASS(code);\n const color = { danger: \"text-danger-text\", warning: \"text-warning-text\", neutral: code >= 200 && code < 300 ? \"text-fg\" : \"text-fg-secondary\" }[tone];\n const el = (\n <span ref={ref} tabIndex={showText ? undefined : 0} className={cn(\"inline-flex items-center gap-6 outline-none\", className)}>\n <span className={cn(\"mono text-small font-medium tabular\", color)}>{code}</span>\n {showText && <span className=\"text-small text-fg-secondary\">{text ?? \"\"}</span>}\n <span className=\"sr-only\">{text ?? \"\"}</span>\n </span>\n );\n return showText || !text ? el : <Tooltip content={t(\"statusCode.tooltip\", \"{code} {text}\", { code: String(code), text })}>{el}</Tooltip>;\n});\nif (process.env.NODE_ENV !== \"production\") StatusCode.displayName = \"StatusCode\";\n\nexport const RequestTimeline = /* @__PURE__ */ forwardRef<\n HTMLDivElement,\n { ttfbMs: number; totalMs: number; width?: 160 | 240 | \"full\" | undefined; className?: string | undefined }\n>(function RequestTimeline({ ttfbMs, totalMs, width = 240, className }, ref) {\n const t = useUiText();\n const ratio = totalMs > 0 ? Math.min(1, ttfbMs / totalMs) : 0;\n const fmt = (ms: number) =>\n ms < 1000 ? `${Math.round(ms)} ms` : `${formatNumber(ms / 1000, { minimumFractionDigits: 1, maximumFractionDigits: 1, useGrouping: false })} s`;\n return (\n <div\n ref={ref}\n className={cn(\"flex flex-col gap-6\", width === \"full\" ? \"w-full\" : width === 240 ? \"w-240\" : \"w-160\", className)}\n role=\"img\"\n aria-label={t(\"requestTimeline.label\", \"Time to first byte {ttfb} of {total} total\", { ttfb: fmt(ttfbMs), total: fmt(totalMs) })}\n >\n <div className=\"flex h-6 w-full gap-2 overflow-hidden rounded-pill\">\n <span className=\"h-full rounded-l-pill bg-viz-1\" style={{ width: `${ratio * 100}%` }} />\n <span className=\"h-full flex-1 rounded-r-pill bg-fill-3\" />\n </div>\n <div className=\"flex justify-between gap-8 text-caption font-medium text-fg-tertiary\">\n <span className=\"flex min-w-0 flex-col\">\n <span className=\"whitespace-nowrap text-fg-secondary tabular\">{fmt(ttfbMs)}</span>\n <span className=\"wrap-break-word\">{t(\"requestTimeline.firstByte\", \"First byte\")}</span>\n </span>\n <span className=\"flex min-w-0 flex-col items-end text-right\">\n <span className=\"whitespace-nowrap text-fg-secondary tabular\">{fmt(totalMs)}</span>\n <span className=\"wrap-break-word\">{t(\"requestTimeline.totalTime\", \"Total\")}</span>\n </span>\n </div>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") RequestTimeline.displayName = \"RequestTimeline\";\n\nexport interface ProviderCardProps {\n provider: string;\n name?: string | undefined;\n connected: boolean;\n status: ReactNode;\n keyLabel?: ReactNode | undefined;\n detail?: ReactNode | undefined;\n actions?: ReactNode | undefined;\n className?: string | undefined;\n}\n\nexport const ProviderCard = /* @__PURE__ */ forwardRef<HTMLDivElement, ProviderCardProps>(function ProviderCard(\n { provider, name, connected, status, keyLabel, detail, actions, className },\n ref,\n) {\n const t = useUiText();\n const label = providerName(provider, name);\n return (\n <section ref={ref} aria-label={label} className={cn(\"flex min-w-0 flex-col gap-16 rounded-group bg-raised p-20 shadow-xs\", className)}>\n <div className=\"flex min-w-0 items-center gap-12\">\n <ProviderBadge provider={provider} name={name} size=\"xl\" />\n <div className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <h3 className=\"truncate text-body-lg font-semibold text-fg\">{label}</h3>\n <span className=\"text-small text-fg-secondary text-pretty\">{status}</span>\n </div>\n <Badge tone={connected ? \"success\" : \"neutral\"}>\n {connected ? t(\"providerCard.connected\", \"Connected\") : t(\"providerCard.notConnected\", \"Not connected\")}\n </Badge>\n </div>\n {(keyLabel || detail) && (\n <div className=\"flex min-w-0 flex-col gap-2 rounded-well bg-fill-1 px-12 py-10\">\n {keyLabel && <span className=\"truncate text-body text-fg\">{keyLabel}</span>}\n {detail && <span className=\"truncate text-small text-fg-tertiary\">{detail}</span>}\n </div>\n )}\n {actions && <div className=\"mt-auto flex flex-wrap items-center gap-8\">{actions}</div>}\n </section>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ProviderCard.displayName = \"ProviderCard\";\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { i as t } from "./context-BELWW79w.js";
4
4
  import { t as n } from "./icon-D7ja-_Yk.js";
5
5
  import { i as r } from "./kbd-BF1vKXJf.js";
6
6
  import { a as i, o as a, s as o } from "./field-TviMvYa2.js";
7
- import { n as s, t as c } from "./input-group-CUSNsQjQ.js";
7
+ import { n as s, t as c } from "./input-group-DQ_4DoXg.js";
8
8
  import { forwardRef as l, useRef as u, useState as d } from "react";
9
9
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
10
10
  import { Cancel01Icon as m, Search01Icon as h } from "@hugeicons/core-free-icons";
@@ -76,7 +76,12 @@ function y({ size: e, leadingIcon: t, prefix: r, suffix: i, trailing: a, invalid
76
76
  ]
77
77
  });
78
78
  }
79
- var b = /* @__PURE__ */ l(function({ shortcut: e, onClear: n, value: i, defaultValue: a, onChange: o, onKeyDown: c, placeholder: l, size: p = "sm", ...g }, _) {
79
+ var b = { size: {
80
+ sm: { classes: g.size.sm.classes },
81
+ md: { classes: g.size.md.classes },
82
+ lg: { classes: g.size.lg.classes },
83
+ xl: { classes: g.size.xl.classes }
84
+ } }, x = { size: "sm" }, S = /* @__PURE__ */ l(function({ shortcut: e, onClear: n, value: i, defaultValue: a, onChange: o, onKeyDown: c, placeholder: l, size: p = "sm", ...g }, _) {
80
85
  let y = t(), [b, x] = d(String(a ?? "")), S = i !== void 0, C = S ? String(i) : b, w = u(null), T = () => {
81
86
  let e = w.current;
82
87
  S ? e && !n && (Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value")?.set?.call(e, ""), e.dispatchEvent(new Event("input", { bubbles: !0 }))) : x(""), n?.(), e?.focus();
@@ -107,8 +112,8 @@ var b = /* @__PURE__ */ l(function({ shortcut: e, onClear: n, value: i, defaultV
107
112
  ...g
108
113
  });
109
114
  });
110
- process.env.NODE_ENV !== "production" && (b.displayName = "SearchInput");
115
+ process.env.NODE_ENV !== "production" && (S.displayName = "SearchInput");
111
116
  //#endregion
112
- export { b as i, _ as n, g as r, v as t };
117
+ export { b as a, x as i, _ as n, S as o, g as r, v as t };
113
118
 
114
- //# sourceMappingURL=input-TyLIaQ5k.js.map
119
+ //# sourceMappingURL=input-2VJuj_M4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-2VJuj_M4.js","names":["__icon_Search01Icon","__icon_Cancel01Icon","warnStylingClassName","useUiText","Icon","KbdSequence","useField","useFieldControl","withField","InputGroup","INPUT_ICON_SIZE","KAESO_INPUT_VARIANTS","KAESO_INPUT_DEFAULT_VARIANTS","Input","force","rest","props","className","field","fc","inner","InputGroupFromField","invalid","error","label","description","align","id","leadingIcon","trailing","size","prefix","children","suffix","KAESO_SEARCH_INPUT_VARIANTS","KAESO_SEARCH_INPUT_DEFAULT_VARIANTS","SearchInput","t","setInner","useState","defaultValue","controlled","value","current","input","useRef","clear","el","onClear","ref","Search01Icon","placeholder","onChange","onKeyDown","Cancel01Icon","shortcut"],"sources":["../../src/components/input/input.tsx"],"sourcesContent":["import { forwardRef, useRef, useState, type InputHTMLAttributes, type KeyboardEvent, type ReactNode } from \"react\";\nimport { warnStylingClassName } from \"../../utils/dev.js\";\nimport { useField, useFieldControl, withField, type FieldWrapProps } from \"../field/field.js\";\nimport { InputGroup, INPUT_ICON_SIZE, type InputSize } from \"./input-group.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { KbdSequence } from \"../kbd/kbd.js\";\nimport { Search01Icon as __icon_Search01Icon, Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_INPUT_VARIANTS = {\n size: {\n sm: { classes: \"h-32\" },\n md: { classes: \"h-36\" },\n lg: { classes: \"h-40\" },\n xl: { classes: \"h-48\" },\n },\n} as const;\nexport const KAESO_INPUT_DEFAULT_VARIANTS = { size: \"md\" } as const;\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\" | \"prefix\">, FieldWrapProps {\n size?: InputSize | undefined;\n leadingIcon?: IconData | undefined;\n prefix?: ReactNode | undefined;\n suffix?: ReactNode | undefined;\n trailing?: ReactNode | undefined;\n invalid?: boolean | undefined;\n align?: \"start\" | \"end\" | undefined;\n \"data-force\"?: string | undefined;\n className?: string | undefined;\n}\n\nexport const Input = /* @__PURE__ */ forwardRef<HTMLInputElement, InputProps>(function Input(props, ref) {\n const {\n size = \"md\",\n leadingIcon,\n prefix,\n suffix,\n trailing,\n invalid,\n align,\n label,\n description,\n error,\n optional,\n required,\n layout,\n className,\n disabled,\n readOnly,\n id,\n \"data-force\": force,\n ...rest\n } = props;\n warnStylingClassName(\"Input\", className);\n const field = useField();\n const fc = useFieldControl(props);\n const inner = (\n <InputGroupFromField\n size={size}\n leadingIcon={leadingIcon}\n prefix={prefix}\n suffix={suffix}\n trailing={trailing}\n invalid={invalid || !!error}\n disabled={disabled}\n readOnly={readOnly}\n force={force}\n className={label || description || error ? undefined : className}\n >\n <InputGroup.Input\n ref={ref}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n className={align === \"end\" ? \"text-right tabular\" : undefined}\n {...(id ? { id } : {})}\n {...fc.controlProps}\n {...(invalid || error ? { \"aria-invalid\": true } : {})}\n {...rest}\n />\n </InputGroupFromField>\n );\n if (field) return inner;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId ?? id, disabled, className }, inner);\n});\nif (process.env.NODE_ENV !== \"production\") Input.displayName = \"Input\";\n\nfunction InputGroupFromField({\n size,\n leadingIcon,\n prefix,\n suffix,\n trailing,\n invalid,\n disabled,\n readOnly,\n force,\n className,\n children,\n}: {\n size: InputSize;\n leadingIcon?: IconData | undefined;\n prefix?: ReactNode | undefined;\n suffix?: ReactNode | undefined;\n trailing?: ReactNode | undefined;\n invalid?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n force?: string | undefined;\n className?: string | undefined;\n children: ReactNode;\n}) {\n return (\n <InputGroup\n size={size}\n leadingIcon={!!leadingIcon}\n trailingButton={!!trailing}\n invalid={invalid}\n disabled={disabled}\n readOnly={readOnly}\n className={className}\n {...(force ? { \"data-force\": force } : {})}\n >\n {leadingIcon && <Icon icon={leadingIcon} size={INPUT_ICON_SIZE[size]} className=\"text-fg-tertiary\" />}\n {prefix && <InputGroup.Addon>{prefix}</InputGroup.Addon>}\n {children}\n {suffix && <InputGroup.Addon>{suffix}</InputGroup.Addon>}\n {trailing}\n </InputGroup>\n );\n}\n\nexport const KAESO_SEARCH_INPUT_VARIANTS = {\n size: {\n sm: { classes: KAESO_INPUT_VARIANTS.size.sm.classes },\n md: { classes: KAESO_INPUT_VARIANTS.size.md.classes },\n lg: { classes: KAESO_INPUT_VARIANTS.size.lg.classes },\n xl: { classes: KAESO_INPUT_VARIANTS.size.xl.classes },\n },\n} as const;\nexport const KAESO_SEARCH_INPUT_DEFAULT_VARIANTS = { size: \"sm\" } as const;\n\nexport interface SearchInputProps extends Omit<InputProps, \"leadingIcon\" | \"type\" | \"prefix\" | \"suffix\"> {\n shortcut?: string[] | undefined;\n onClear?: (() => void) | undefined;\n placeholder?: string | undefined;\n}\n\nexport const SearchInput = /* @__PURE__ */ forwardRef<HTMLInputElement, SearchInputProps>(function SearchInput(\n { shortcut, onClear, value, defaultValue, onChange, onKeyDown, placeholder, size = \"sm\", ...props },\n ref,\n) {\n const t = useUiText();\n const [inner, setInner] = useState(String(defaultValue ?? \"\"));\n const controlled = value !== undefined;\n const current = controlled ? String(value) : inner;\n const input = useRef<HTMLInputElement | null>(null);\n const clear = () => {\n const el = input.current;\n if (!controlled) setInner(\"\");\n else if (el && !onClear) {\n Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, \"value\")?.set?.call(el, \"\");\n el.dispatchEvent(new Event(\"input\", { bubbles: true }));\n }\n onClear?.();\n el?.focus();\n };\n return (\n <Input\n ref={(el) => {\n input.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n type=\"search\"\n size={size}\n leadingIcon={__icon_Search01Icon}\n placeholder={placeholder ?? t(\"searchInput.placeholder\", \"Search\")}\n autoComplete=\"off\"\n spellCheck={false}\n value={current}\n onChange={(e) => {\n if (!controlled) setInner(e.target.value);\n onChange?.(e);\n }}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Escape\" && current) {\n e.stopPropagation();\n clear();\n }\n onKeyDown?.(e);\n }}\n trailing={current ? <InputGroup.Button icon={__icon_Cancel01Icon} aria-label={t(\"searchInput.clear\", \"Clear search\")} onClick={clear} /> : undefined}\n suffix={!current && shortcut ? <KbdSequence keys={shortcut} /> : undefined}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") SearchInput.displayName = \"SearchInput\";\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { t } from "./icon-D7ja-_Yk.js";
4
- import { n } from "./button-Dzu7_csE.js";
4
+ import { n } from "./button-CzuxqawA.js";
5
5
  import { createContext as r, forwardRef as i, useContext as a } from "react";
6
6
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
7
7
  //#region src/utils/field-press.ts
@@ -90,4 +90,4 @@ var y = /* @__PURE__ */ Object.assign(h, {
90
90
  //#endregion
91
91
  export { b as a, l as i, y as n, u as r, p as t };
92
92
 
93
- //# sourceMappingURL=input-group-CUSNsQjQ.js.map
93
+ //# sourceMappingURL=input-group-DQ_4DoXg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-group-CUSNsQjQ.js","names":["cn","focusInputOnPress","input","KAESO_INPUT_GROUP_VARIANTS","KAESO_INPUT_GROUP_DEFAULT_VARIANTS","LEADING","TRAILING_BUTTON","INPUT_ICON_SIZE","Ctx","Root","props","size","leadingIcon","trailingButton","disabled","className","invalid","readOnly","Input","Addon","useContext","icon","Icon","children","GroupButton","Button","InputGroup","useInputGroupSize"],"sources":["../../src/utils/field-press.ts","../../src/components/input/input-group.tsx"],"sourcesContent":["import type { MouseEvent } from \"react\";\n\nexport function focusInputOnPress(e: MouseEvent<HTMLElement>) {\n if (e.target !== e.currentTarget) return;\n const input = e.currentTarget.querySelector(\"input:not([type=hidden])\") as HTMLInputElement | null;\n if (!input || input.disabled) return;\n e.preventDefault();\n input.focus();\n}\n","import type * as React from \"react\";\nimport { createContext, forwardRef, useContext, type HTMLAttributes, type InputHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { focusInputOnPress } from \"../../utils/field-press.js\";\nimport { Icon, type IconData, type IconSize } from \"../icon/icon.js\";\nimport { Button } from \"../button/button.js\";\n\nexport const KAESO_INPUT_GROUP_VARIANTS = {\n size: {\n sm: { classes: \"h-32 px-12 gap-6 text-body\" },\n md: { classes: \"h-36 px-16 gap-8 text-body\" },\n lg: { classes: \"h-40 px-18 gap-8 text-body\" },\n xl: { classes: \"h-48 px-22 gap-8 text-body-lg\" },\n },\n} as const;\nexport const KAESO_INPUT_GROUP_DEFAULT_VARIANTS = { size: \"md\" } as const;\nexport type InputSize = keyof typeof KAESO_INPUT_GROUP_VARIANTS.size;\n\nconst LEADING: Record<InputSize, string> = { sm: \"pl-10\", md: \"pl-14\", lg: \"pl-16\", xl: \"pl-20\" };\nconst TRAILING_BUTTON: Record<InputSize, string> = { sm: \"pr-4\", md: \"pr-2\", lg: \"pr-4\", xl: \"pr-6\" };\nexport const INPUT_ICON_SIZE: Record<InputSize, IconSize> = { sm: \"sm\", md: \"sm\", lg: \"md\", xl: \"lg\" };\n\nconst Ctx = /* @__PURE__ */ createContext<{ size: InputSize }>({ size: \"md\" });\n\nexport interface InputGroupProps extends HTMLAttributes<HTMLDivElement> {\n size?: InputSize | undefined;\n leadingIcon?: boolean | undefined;\n trailingButton?: boolean | undefined;\n invalid?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLDivElement, InputGroupProps>(function InputGroup(\n { size = \"md\", leadingIcon, trailingButton, invalid, disabled, readOnly, className, children, ...props },\n ref,\n) {\n return (\n <Ctx.Provider value={{ size }}>\n <div\n ref={ref}\n className={cn(\n \"relative flex w-full min-w-0 items-center rounded-pill material-field transition-control cursor-text\",\n KAESO_INPUT_GROUP_VARIANTS.size[size].classes,\n leadingIcon && LEADING[size],\n trailingButton && TRAILING_BUTTON[size],\n disabled && \"cursor-not-allowed\",\n className,\n )}\n {...(invalid ? { \"data-invalid\": \"\" } : {})}\n {...(disabled ? { \"data-disabled\": \"\" } : {})}\n {...(readOnly ? { \"data-readonly\": \"\" } : {})}\n onMouseDown={focusInputOnPress}\n {...props}\n >\n {children}\n </div>\n </Ctx.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"InputGroup\";\n\nexport interface InputGroupInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\"> {}\n\nconst Input = /* @__PURE__ */ forwardRef<HTMLInputElement, InputGroupInputProps>(function InputGroupInput({ className, ...props }, ref) {\n return (\n <input\n ref={ref}\n className={cn(\n \"min-w-0 flex-1 bg-transparent bidi-plaintext text-inherit text-fg outline-none placeholder:text-fg-tertiary disabled:cursor-not-allowed disabled:text-fg-disabled read-only:cursor-text\",\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Input.displayName = \"InputGroup.Input\";\n\nexport interface InputGroupAddonProps extends HTMLAttributes<HTMLSpanElement> {\n icon?: IconData | undefined;\n}\n\nconst Addon = /* @__PURE__ */ forwardRef<HTMLSpanElement, InputGroupAddonProps>(function InputGroupAddon({ icon, className, children, ...props }, ref) {\n const { size } = useContext(Ctx);\n return (\n <span ref={ref} className={cn(\"inline-flex shrink-0 items-center gap-4 bidi-plaintext text-fg-secondary select-none\", className)} {...props}>\n {icon && <Icon icon={icon} size={INPUT_ICON_SIZE[size]} />}\n {children}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Addon.displayName = \"InputGroup.Addon\";\n\nexport interface InputGroupButtonProps {\n icon: IconData;\n \"aria-label\": string;\n onClick?: (() => void) | undefined;\n disabled?: boolean | undefined;\n className?: string | undefined;\n}\n\nconst GroupButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, InputGroupButtonProps>(function InputGroupButton({ icon, className, ...props }, ref) {\n const { size } = useContext(Ctx);\n return (\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n variant=\"quiet\"\n size={size === \"xl\" ? \"md\" : size === \"lg\" ? \"sm\" : size === \"md\" ? \"sm\" : \"xs\"}\n icon={icon}\n className={className}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") GroupButton.displayName = \"InputGroup.Button\";\n\nexport const InputGroup = /* @__PURE__ */ Object.assign(Root, { Input, Addon, Button: GroupButton });\nexport const useInputGroupSize = () => useContext(Ctx).size;\n"],"mappings":";;;;;;;AAEA,SAAgBC,EAAkB,GAA4B;CAC5D,IAAI,EAAE,WAAW,EAAE,eAAe;CAClC,IAAMC,IAAQ,EAAE,cAAc,cAAc,0BAA0B;CACtE,AAAKA,KAAS,GAAM,aACpB,EAAE,eAAe,GACjBA,EAAM,MAAM;AACd;;;ACDA,IAAaC,IAA6B,EACxC,MAAM;CACJ,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,gCAAgC;AACjD,EACF,GACaC,IAAqC,EAAE,MAAM,KAAK,GAGzDC,IAAqC;CAAE,IAAI;CAAS,IAAI;CAAS,IAAI;CAAS,IAAI;AAAQ,GAC1FC,IAA6C;CAAE,IAAI;CAAQ,IAAI;CAAQ,IAAI;CAAQ,IAAI;AAAO,GACvFC,IAA+C;CAAE,IAAI;CAAM,IAAI;CAAM,IAAI;CAAM,IAAI;AAAK,GAE/FC,IAAsB,kBAAmC,EAAE,MAAM,KAAK,CAAC,GAYvEC,IAAuB,kBAA4C,SACvE,EAAE,UAAO,MAAM,gBAAa,mBAAgB,YAAS,aAAU,aAAU,cAAW,aAAU,GAAGC,KACjG,GACA;CACA,OACE,kBAACF,EAAI,UAAL;EAAc,OAAO,EAAE,QAAK;EAC1B,UAAA,kBAAC,OAAD;GACO;GACL,WAAWR,EACT,wGACAG,EAA2B,KAAKQ,EAAK,CAAC,SACtCC,KAAeP,EAAQM,IACvBE,KAAkBP,EAAgBK,IAClCG,KAAY,sBACZC,CACF;GACA,GAAKC,IAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;GACzC,GAAKF,IAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;GAC3C,GAAKG,IAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;GAC3C,aAAahB;GACb,GAAIS;GAEH;EACE,CAAA;CACO,CAAA;AAElB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAI9D,IAAMQ,IAAwB,kBAAmD,SAAyB,EAAE,cAAW,GAAGR,KAAS,GAAK;CACtI,OACE,kBAAC,SAAD;EACO;EACL,WAAWV,EACT,2LACAe,CACF;EACA,GAAIL;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAM/D,IAAMS,IAAwB,kBAAkD,SAAyB,EAAE,SAAM,cAAW,aAAU,GAAGT,KAAS,GAAK;CACrJ,IAAM,EAAE,YAASU,EAAWZ,CAAG;CAC/B,OACE,kBAAC,QAAD;EAAW;EAAK,WAAWR,EAAG,wFAAwFe,CAAS;EAAG,GAAIL;EAAtI,UAAA,CACGW,KAAQ,kBAACC,GAAD;GAAY;GAAM,MAAMf,EAAgBI;EAAQ,CAAA,GACxDY,CACG;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAU/D,IAAMC,IAA8B,kBAAqD,SAA0B,EAAE,SAAM,cAAW,GAAGd,KAAS,GAAK;CACrJ,IAAM,EAAE,YAASU,EAAWZ,CAAG;CAC/B,OACE,kBAACiB,GAAD;EACO;EACL,OAAM;EACN,SAAQ;EACR,MAAMd,MAAS,OAAO,OAAOA,MAAS,QAAcA,MAAS,OAAhB,OAA8B;EACrE;EACK;EACX,GAAID;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc;AAErE,IAAagB,IAA6B,uBAAO,OAAOjB,GAAM;CAAE;CAAO;CAAO,QAAQe;AAAY,CAAC,GACtFG,UAA0BP,EAAWZ,CAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"input-group-DQ_4DoXg.js","names":["cn","focusInputOnPress","input","KAESO_INPUT_GROUP_VARIANTS","KAESO_INPUT_GROUP_DEFAULT_VARIANTS","LEADING","TRAILING_BUTTON","INPUT_ICON_SIZE","Ctx","Root","props","size","leadingIcon","trailingButton","disabled","className","invalid","readOnly","Input","Addon","useContext","icon","Icon","children","GroupButton","Button","InputGroup","useInputGroupSize"],"sources":["../../src/utils/field-press.ts","../../src/components/input/input-group.tsx"],"sourcesContent":["import type { MouseEvent } from \"react\";\n\nexport function focusInputOnPress(e: MouseEvent<HTMLElement>) {\n if (e.target !== e.currentTarget) return;\n const input = e.currentTarget.querySelector(\"input:not([type=hidden])\") as HTMLInputElement | null;\n if (!input || input.disabled) return;\n e.preventDefault();\n input.focus();\n}\n","import type * as React from \"react\";\nimport { createContext, forwardRef, useContext, type HTMLAttributes, type InputHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { focusInputOnPress } from \"../../utils/field-press.js\";\nimport { Icon, type IconData, type IconSize } from \"../icon/icon.js\";\nimport { Button } from \"../button/button.js\";\n\nexport const KAESO_INPUT_GROUP_VARIANTS = {\n size: {\n sm: { classes: \"h-32 px-12 gap-6 text-body\" },\n md: { classes: \"h-36 px-16 gap-8 text-body\" },\n lg: { classes: \"h-40 px-18 gap-8 text-body\" },\n xl: { classes: \"h-48 px-22 gap-8 text-body-lg\" },\n },\n} as const;\nexport const KAESO_INPUT_GROUP_DEFAULT_VARIANTS = { size: \"md\" } as const;\nexport type InputSize = keyof typeof KAESO_INPUT_GROUP_VARIANTS.size;\n\nconst LEADING: Record<InputSize, string> = { sm: \"pl-10\", md: \"pl-14\", lg: \"pl-16\", xl: \"pl-20\" };\nconst TRAILING_BUTTON: Record<InputSize, string> = { sm: \"pr-4\", md: \"pr-2\", lg: \"pr-4\", xl: \"pr-6\" };\nexport const INPUT_ICON_SIZE: Record<InputSize, IconSize> = { sm: \"sm\", md: \"sm\", lg: \"md\", xl: \"lg\" };\n\nconst Ctx = /* @__PURE__ */ createContext<{ size: InputSize }>({ size: \"md\" });\n\nexport interface InputGroupProps extends HTMLAttributes<HTMLDivElement> {\n size?: InputSize | undefined;\n leadingIcon?: boolean | undefined;\n trailingButton?: boolean | undefined;\n invalid?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst Root = /* @__PURE__ */ forwardRef<HTMLDivElement, InputGroupProps>(function InputGroup(\n { size = \"md\", leadingIcon, trailingButton, invalid, disabled, readOnly, className, children, ...props },\n ref,\n) {\n return (\n <Ctx.Provider value={{ size }}>\n <div\n ref={ref}\n className={cn(\n \"relative flex w-full min-w-0 items-center rounded-pill material-field transition-control cursor-text\",\n KAESO_INPUT_GROUP_VARIANTS.size[size].classes,\n leadingIcon && LEADING[size],\n trailingButton && TRAILING_BUTTON[size],\n disabled && \"cursor-not-allowed\",\n className,\n )}\n {...(invalid ? { \"data-invalid\": \"\" } : {})}\n {...(disabled ? { \"data-disabled\": \"\" } : {})}\n {...(readOnly ? { \"data-readonly\": \"\" } : {})}\n onMouseDown={focusInputOnPress}\n {...props}\n >\n {children}\n </div>\n </Ctx.Provider>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Root.displayName = \"InputGroup\";\n\nexport interface InputGroupInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\"> {}\n\nconst Input = /* @__PURE__ */ forwardRef<HTMLInputElement, InputGroupInputProps>(function InputGroupInput({ className, ...props }, ref) {\n return (\n <input\n ref={ref}\n className={cn(\n \"min-w-0 flex-1 bg-transparent bidi-plaintext text-inherit text-fg outline-none placeholder:text-fg-tertiary disabled:cursor-not-allowed disabled:text-fg-disabled read-only:cursor-text\",\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Input.displayName = \"InputGroup.Input\";\n\nexport interface InputGroupAddonProps extends HTMLAttributes<HTMLSpanElement> {\n icon?: IconData | undefined;\n}\n\nconst Addon = /* @__PURE__ */ forwardRef<HTMLSpanElement, InputGroupAddonProps>(function InputGroupAddon({ icon, className, children, ...props }, ref) {\n const { size } = useContext(Ctx);\n return (\n <span ref={ref} className={cn(\"inline-flex shrink-0 items-center gap-4 bidi-plaintext text-fg-secondary select-none\", className)} {...props}>\n {icon && <Icon icon={icon} size={INPUT_ICON_SIZE[size]} />}\n {children}\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Addon.displayName = \"InputGroup.Addon\";\n\nexport interface InputGroupButtonProps {\n icon: IconData;\n \"aria-label\": string;\n onClick?: (() => void) | undefined;\n disabled?: boolean | undefined;\n className?: string | undefined;\n}\n\nconst GroupButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, InputGroupButtonProps>(function InputGroupButton({ icon, className, ...props }, ref) {\n const { size } = useContext(Ctx);\n return (\n <Button\n ref={ref as React.Ref<HTMLButtonElement & HTMLAnchorElement>}\n shape=\"circle\"\n variant=\"quiet\"\n size={size === \"xl\" ? \"md\" : size === \"lg\" ? \"sm\" : size === \"md\" ? \"sm\" : \"xs\"}\n icon={icon}\n className={className}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") GroupButton.displayName = \"InputGroup.Button\";\n\nexport const InputGroup = /* @__PURE__ */ Object.assign(Root, { Input, Addon, Button: GroupButton });\nexport const useInputGroupSize = () => useContext(Ctx).size;\n"],"mappings":";;;;;;;AAEA,SAAgBC,EAAkB,GAA4B;CAC5D,IAAI,EAAE,WAAW,EAAE,eAAe;CAClC,IAAMC,IAAQ,EAAE,cAAc,cAAc,0BAA0B;CACtE,AAAKA,KAAS,GAAM,aACpB,EAAE,eAAe,GACjBA,EAAM,MAAM;AACd;;;ACDA,IAAaC,IAA6B,EACxC,MAAM;CACJ,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,gCAAgC;AACjD,EACF,GACaC,IAAqC,EAAE,MAAM,KAAK,GAGzDC,IAAqC;CAAE,IAAI;CAAS,IAAI;CAAS,IAAI;CAAS,IAAI;AAAQ,GAC1FC,IAA6C;CAAE,IAAI;CAAQ,IAAI;CAAQ,IAAI;CAAQ,IAAI;AAAO,GACvFC,IAA+C;CAAE,IAAI;CAAM,IAAI;CAAM,IAAI;CAAM,IAAI;AAAK,GAE/FC,IAAsB,kBAAmC,EAAE,MAAM,KAAK,CAAC,GAYvEC,IAAuB,kBAA4C,SACvE,EAAE,UAAO,MAAM,gBAAa,mBAAgB,YAAS,aAAU,aAAU,cAAW,aAAU,GAAGC,KACjG,GACA;CACA,OACE,kBAACF,EAAI,UAAL;EAAc,OAAO,EAAE,QAAK;EAC1B,UAAA,kBAAC,OAAD;GACO;GACL,WAAWR,EACT,wGACAG,EAA2B,KAAKQ,EAAK,CAAC,SACtCC,KAAeP,EAAQM,IACvBE,KAAkBP,EAAgBK,IAClCG,KAAY,sBACZC,CACF;GACA,GAAKC,IAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;GACzC,GAAKF,IAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;GAC3C,GAAKG,IAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;GAC3C,aAAahB;GACb,GAAIS;GAEH;EACE,CAAA;CACO,CAAA;AAElB,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAI9D,IAAMQ,IAAwB,kBAAmD,SAAyB,EAAE,cAAW,GAAGR,KAAS,GAAK;CACtI,OACE,kBAAC,SAAD;EACO;EACL,WAAWV,EACT,2LACAe,CACF;EACA,GAAIL;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAM/D,IAAMS,IAAwB,kBAAkD,SAAyB,EAAE,SAAM,cAAW,aAAU,GAAGT,KAAS,GAAK;CACrJ,IAAM,EAAE,YAASU,EAAWZ,CAAG;CAC/B,OACE,kBAAC,QAAD;EAAW;EAAK,WAAWR,EAAG,wFAAwFe,CAAS;EAAG,GAAIL;EAAtI,UAAA,CACGW,KAAQ,kBAACC,GAAD;GAAY;GAAM,MAAMf,EAAgBI;EAAQ,CAAA,GACxDY,CACG;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAU/D,IAAMC,IAA8B,kBAAqD,SAA0B,EAAE,SAAM,cAAW,GAAGd,KAAS,GAAK;CACrJ,IAAM,EAAE,YAASU,EAAWZ,CAAG;CAC/B,OACE,kBAACiB,GAAD;EACO;EACL,OAAM;EACN,SAAQ;EACR,MAAMd,MAAS,OAAO,OAAOA,MAAS,QAAcA,MAAS,OAAhB,OAA8B;EACrE;EACK;EACX,GAAID;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc;AAErE,IAAagB,IAA6B,uBAAO,OAAOjB,GAAM;CAAE;CAAO;CAAO,QAAQe;AAAY,CAAC,GACtFG,UAA0BP,EAAWZ,CAAG,CAAC,CAAC"}
@@ -13,16 +13,26 @@ function a() {
13
13
  return t(r);
14
14
  }
15
15
  var o = /* @__PURE__ */ e(!1);
16
- function s({ children: e, padded: t = !0 }) {
16
+ function s({ children: e }) {
17
17
  return /* @__PURE__ */ n(o.Provider, {
18
- value: t,
18
+ value: !0,
19
19
  children: e
20
20
  });
21
21
  }
22
22
  function c() {
23
23
  return t(o);
24
24
  }
25
+ var l = /* @__PURE__ */ e(!1);
26
+ function u({ children: e, padded: t = !0 }) {
27
+ return /* @__PURE__ */ n(l.Provider, {
28
+ value: t,
29
+ children: e
30
+ });
31
+ }
32
+ function d() {
33
+ return t(l);
34
+ }
25
35
  //#endregion
26
- export { a as i, i as n, c as r, s as t };
36
+ export { a, d as i, i as n, c as o, s as r, u as t };
27
37
 
28
- //# sourceMappingURL=inset-BnBj8NJV.js.map
38
+ //# sourceMappingURL=inset-BUzyXLK4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inset-BUzyXLK4.js","names":["InsetContext","InsetContent","inset","useInset","useContext","RaisedContext","RaisedContent","useRaised","GutterContext","GutterContent","padded","useGutterPadded"],"sources":["../../src/utils/inset.tsx"],"sourcesContent":["import { createContext, useContext, type ReactNode } from \"react\";\n\nconst InsetContext = /* @__PURE__ */ createContext(false);\n\nexport function InsetContent({ children, inset = true }: { children: ReactNode; inset?: boolean | undefined }) {\n return <InsetContext.Provider value={inset}>{children}</InsetContext.Provider>;\n}\n\nexport function useInset(): boolean {\n return useContext(InsetContext);\n}\n\nconst RaisedContext = /* @__PURE__ */ createContext(false);\n\nexport function RaisedContent({ children }: { children: ReactNode }) {\n return <RaisedContext.Provider value>{children}</RaisedContext.Provider>;\n}\n\nexport function useRaised(): boolean {\n return useContext(RaisedContext);\n}\n\nconst GutterContext = /* @__PURE__ */ createContext(false);\n\nexport function GutterContent({ children, padded = true }: { children: ReactNode; padded?: boolean | undefined }) {\n return <GutterContext.Provider value={padded}>{children}</GutterContext.Provider>;\n}\n\nexport function useGutterPadded(): boolean {\n return useContext(GutterContext);\n}\n"],"mappings":";;;;AAEA,IAAMA,IAA+B,kBAAc,EAAK;AAExD,SAAgBC,EAAa,EAAE,aAAU,WAAQ,MAA8D;CAC7G,OAAO,kBAACD,EAAa,UAAd;EAAuB,OAAOE;EAAQ;CAAgC,CAAA;AAC/E;AAEA,SAAgBC,IAAoB;CAClC,OAAOC,EAAWJ,CAAY;AAChC;AAEA,IAAMK,IAAgC,kBAAc,EAAK;AAEzD,SAAgBC,EAAc,EAAE,eAAqC;CACnE,OAAO,kBAACD,EAAc,UAAf;EAAwB,OAAA;EAAO;CAAiC,CAAA;AACzE;AAEA,SAAgBE,IAAqB;CACnC,OAAOH,EAAWC,CAAa;AACjC;AAEA,IAAMG,IAAgC,kBAAc,EAAK;AAEzD,SAAgBC,EAAc,EAAE,aAAU,YAAS,MAA+D;CAChH,OAAO,kBAACD,EAAc,UAAf;EAAwB,OAAOE;EAAS;CAAiC,CAAA;AAClF;AAEA,SAAgBC,IAA2B;CACzC,OAAOP,EAAWI,CAAa;AACjC"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { i as e } from "./context-BELWW79w.js";
3
3
  import { formatISODate as t, parseISODate as n } from "../format.js";
4
- import { n as r } from "./input-group-CUSNsQjQ.js";
4
+ import { n as r } from "./input-group-DQ_4DoXg.js";
5
5
  import { useState as i } from "react";
6
6
  import { jsx as a } from "react/jsx-runtime";
7
7
  //#region src/components/date-picker/iso-field.tsx
@@ -30,4 +30,4 @@ function o({ label: o, value: s, onCommit: c }) {
30
30
  //#endregion
31
31
  export { o as t };
32
32
 
33
- //# sourceMappingURL=iso-field-CWbxlll-.js.map
33
+ //# sourceMappingURL=iso-field-B2rTwiBo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"iso-field-CWbxlll-.js","names":["useUiText","InputGroup","IsoField","t","text","setText","useState","value","formatISODate","shown","setShown","label","d","parseISODate","onCommit"],"sources":["../../src/components/date-picker/iso-field.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { InputGroup } from \"../input/input-group.js\";\nimport { formatISODate, parseISODate } from \"../../format/index.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport function IsoField({ label, value, onCommit }: { label: string; value: Date | undefined; onCommit: (d: Date) => boolean | void }) {\n const t = useUiText();\n const [text, setText] = useState(value ? formatISODate(value) : \"\");\n const [shown, setShown] = useState(value);\n if (value !== shown) {\n setShown(value);\n setText(value ? formatISODate(value) : \"\");\n }\n return (\n <InputGroup size=\"sm\" className=\"flex-1\">\n <InputGroup.Input\n aria-label={label}\n placeholder={t(\"datePicker.isoPlaceholder\", \"YYYY-MM-DD\")}\n value={text}\n inputMode=\"numeric\"\n className=\"mono text-small\"\n onChange={(e) => setText(e.target.value)}\n onBlur={() => {\n const d = parseISODate(text);\n if (!d || onCommit(d) === false) setText(value ? formatISODate(value) : \"\");\n }}\n onKeyDown={(e) => {\n if (e.key !== \"Enter\") return;\n e.preventDefault();\n (e.target as HTMLInputElement).blur();\n }}\n />\n </InputGroup>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgBE,EAAS,EAAE,UAAO,UAAO,eAA+F;CACtI,IAAMC,IAAIH,EAAU,GACd,CAACI,GAAMC,KAAWC,EAASC,IAAQC,EAAcD,CAAK,IAAI,EAAE,GAC5D,CAACE,GAAOC,KAAYJ,EAASC,CAAK;CAKxC,OAJIA,MAAUE,MACZC,EAASH,CAAK,GACdF,EAAQE,IAAQC,EAAcD,CAAK,IAAI,EAAE,IAGzC,kBAACN,GAAD;EAAY,MAAK;EAAK,WAAU;EAC9B,UAAA,kBAACA,EAAW,OAAZ;GACE,cAAYU;GACZ,aAAaR,EAAE,6BAA6B,YAAY;GACxD,OAAOC;GACP,WAAU;GACV,WAAU;GACV,WAAW,MAAMC,EAAQ,EAAE,OAAO,KAAK;GACvC,cAAc;IACZ,IAAMO,IAAIC,EAAaT,CAAI;IAC3B,CAAI,CAACQ,KAAKE,EAASF,CAAC,MAAM,OAAOP,EAAQE,IAAQC,EAAcD,CAAK,IAAI,EAAE;GAC5E;GACA,YAAY,MAAM;IAChB,AAAI,EAAE,QAAQ,YACd,EAAE,eAAe,GACjB,EAAG,OAA4B,KAAK;GACtC;EACD,CAAA;CACS,CAAA;AAEhB"}
1
+ {"version":3,"file":"iso-field-B2rTwiBo.js","names":["useUiText","InputGroup","IsoField","t","text","setText","useState","value","formatISODate","shown","setShown","label","d","parseISODate","onCommit"],"sources":["../../src/components/date-picker/iso-field.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { InputGroup } from \"../input/input-group.js\";\nimport { formatISODate, parseISODate } from \"../../format/index.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport function IsoField({ label, value, onCommit }: { label: string; value: Date | undefined; onCommit: (d: Date) => boolean | void }) {\n const t = useUiText();\n const [text, setText] = useState(value ? formatISODate(value) : \"\");\n const [shown, setShown] = useState(value);\n if (value !== shown) {\n setShown(value);\n setText(value ? formatISODate(value) : \"\");\n }\n return (\n <InputGroup size=\"sm\" className=\"flex-1\">\n <InputGroup.Input\n aria-label={label}\n placeholder={t(\"datePicker.isoPlaceholder\", \"YYYY-MM-DD\")}\n value={text}\n inputMode=\"numeric\"\n className=\"mono text-small\"\n onChange={(e) => setText(e.target.value)}\n onBlur={() => {\n const d = parseISODate(text);\n if (!d || onCommit(d) === false) setText(value ? formatISODate(value) : \"\");\n }}\n onKeyDown={(e) => {\n if (e.key !== \"Enter\") return;\n e.preventDefault();\n (e.target as HTMLInputElement).blur();\n }}\n />\n </InputGroup>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgBE,EAAS,EAAE,UAAO,UAAO,eAA+F;CACtI,IAAMC,IAAIH,EAAU,GACd,CAACI,GAAMC,KAAWC,EAASC,IAAQC,EAAcD,CAAK,IAAI,EAAE,GAC5D,CAACE,GAAOC,KAAYJ,EAASC,CAAK;CAKxC,OAJIA,MAAUE,MACZC,EAASH,CAAK,GACdF,EAAQE,IAAQC,EAAcD,CAAK,IAAI,EAAE,IAGzC,kBAACN,GAAD;EAAY,MAAK;EAAK,WAAU;EAC9B,UAAA,kBAACA,EAAW,OAAZ;GACE,cAAYU;GACZ,aAAaR,EAAE,6BAA6B,YAAY;GACxD,OAAOC;GACP,WAAU;GACV,WAAU;GACV,WAAW,MAAMC,EAAQ,EAAE,OAAO,KAAK;GACvC,cAAc;IACZ,IAAMO,IAAIC,EAAaT,CAAI;IAC3B,CAAI,CAACQ,KAAKE,EAASF,CAAC,MAAM,OAAOP,EAAQE,IAAQC,EAAcD,CAAK,IAAI,EAAE;GAC5E;GACA,YAAY,MAAM;IAChB,AAAI,EAAE,QAAQ,YACd,EAAE,eAAe,GACjB,EAAG,OAA4B,KAAK;GACtC;EACD,CAAA;CACS,CAAA;AAEhB"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as e } from "./cn-Dj6sRgkF.js";
3
- import { n as t, r as n } from "./link-provider-BsUxhZKG.js";
3
+ import { n as t, r as n } from "./link-provider-cvl8lSTT.js";
4
4
  import { i as r } from "./context-BELWW79w.js";
5
5
  import { t as i } from "./icon-D7ja-_Yk.js";
6
6
  import { forwardRef as a } from "react";
@@ -51,4 +51,4 @@ process.env.NODE_ENV !== "production" && (d.displayName = "Link");
51
51
  //#endregion
52
52
  export { l as n, d as r, u as t };
53
53
 
54
- //# sourceMappingURL=link-B2I55xg9.js.map
54
+ //# sourceMappingURL=link-KWI7PevW.js.map