@kitn.ai/ui 0.22.0 → 0.22.2

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 (194) hide show
  1. package/dist/{create-tween-qs-jjvNA.js → create-tween-BmBnlg25.js} +1 -1
  2. package/dist/{create-tween-COnPwAQN.js → create-tween-CTT5l1bo.js} +1 -1
  3. package/dist/{create-tween-DmTUaXWE.js → create-tween-vA7upv0h.js} +1 -1
  4. package/dist/elements/agent-card.js +1 -1
  5. package/dist/elements/artifact.js +1 -1
  6. package/dist/elements/attachments.js +1 -1
  7. package/dist/elements/audio-visualizer.js +1 -1
  8. package/dist/elements/avatar.js +1 -1
  9. package/dist/elements/badge.js +1 -1
  10. package/dist/elements/button.js +1 -1
  11. package/dist/elements/card.js +1 -1
  12. package/dist/elements/cards.js +1 -1
  13. package/dist/elements/chain-of-thought.js +1 -1
  14. package/dist/elements/chat-scope-picker.js +1 -1
  15. package/dist/elements/chat-workspace.js +1 -1
  16. package/dist/elements/chat.js +1 -1
  17. package/dist/elements/checkpoint.js +1 -1
  18. package/dist/elements/choice.js +1 -1
  19. package/dist/elements/chunks/{Icon-CHG5z5L7.js → Icon-b5A8hlHs.js} +1 -1
  20. package/dist/elements/chunks/{action-icons-BAtCEEgg.js → action-icons-DW9muWrY.js} +1 -1
  21. package/dist/elements/chunks/arrow-left-iJVnQmxA.js +1 -0
  22. package/dist/elements/chunks/{artifact-fBZOE4SO.js → artifact-BhJIuh3D.js} +1 -1
  23. package/dist/elements/chunks/{attachments-DpYMe5VQ.js → attachments-CL6TaqIb.js} +1 -1
  24. package/dist/elements/chunks/{audio-visualizer-DFwzAcuL.js → audio-visualizer-BuUqQmaO.js} +1 -1
  25. package/dist/elements/chunks/{badge-D6zodm6E.js → badge-TIMiJFKc.js} +1 -1
  26. package/dist/elements/chunks/{button-C42vrGvO.js → button-B9okqG73.js} +1 -1
  27. package/dist/elements/chunks/{card-renderer-DMZsSuvU.js → card-renderer-aNA0WRFH.js} +1 -1
  28. package/dist/elements/chunks/{chat-thread-CNNEhol-.js → chat-thread-DN9evldr.js} +1 -1
  29. package/dist/elements/chunks/check-MdLzbxrm.js +1 -0
  30. package/dist/elements/chunks/chevron-down-MK7IzDqe.js +1 -0
  31. package/dist/elements/chunks/chevron-right-C5jXhmtV.js +1 -0
  32. package/dist/elements/chunks/{choice-card-YoWjpsFV.js → choice-card-kNsjU2m8.js} +1 -1
  33. package/dist/elements/chunks/circle-BG7VkPep.js +1 -0
  34. package/dist/elements/chunks/circle-check-GqvO2UBs.js +1 -0
  35. package/dist/elements/chunks/{circle-x-QIxXda6k.js → circle-x-mhH7pOK2.js} +1 -1
  36. package/dist/elements/chunks/{code-block-CqeugReY.js → code-block-ClhQO9RW.js} +1 -1
  37. package/dist/elements/chunks/{collapsible-sTv-_5lF.js → collapsible-DBcBkFPh.js} +1 -1
  38. package/dist/elements/chunks/{composer-ldQyeVEB.js → composer-CZZmtYOT.js} +1 -1
  39. package/dist/elements/chunks/{confirm-card-C0RNOwfn.js → confirm-card-CEvFmVhz.js} +1 -1
  40. package/dist/elements/chunks/{context-5qgypNHC.js → context-hKjNqiyQ.js} +1 -1
  41. package/dist/elements/chunks/{conversation-list-DLzOacXz.js → conversation-list-CsGJjSKG.js} +1 -1
  42. package/dist/elements/chunks/{create-tween-V4TXZ93X.js → create-tween-CUrM6D_o.js} +1 -1
  43. package/dist/elements/chunks/{default-input-DeeRSDHc.js → default-input-B1Mem5wu.js} +1 -1
  44. package/dist/elements/chunks/{define-lE-QvQFn.js → define-B_tXMYRm.js} +1 -1
  45. package/dist/elements/chunks/{disclosure-DZSa9jog.js → disclosure-DAoYOKew.js} +1 -1
  46. package/dist/elements/chunks/{download-B2ZmnGqW.js → download-DnCyWFJE.js} +1 -1
  47. package/dist/elements/chunks/{dropdown-R3B7cSRE.js → dropdown-CmNna5lT.js} +1 -1
  48. package/dist/elements/chunks/{ellipsis-BmxceY4l.js → ellipsis-CVxqfsDZ.js} +1 -1
  49. package/dist/elements/chunks/{embed-BVrtTZPo.js → embed-CjAD2jSi.js} +1 -1
  50. package/dist/elements/chunks/{external-link-BbdR7YO7.js → external-link-DG2sRdQL.js} +1 -1
  51. package/dist/elements/chunks/{file-text-D7dijo1A.js → file-text-D0J9F6M7.js} +1 -1
  52. package/dist/elements/chunks/file-tree-yGWNK0Js.js +1 -0
  53. package/dist/elements/chunks/{folder-D8z58t7B.js → folder-NV1pi_ud.js} +1 -1
  54. package/dist/elements/chunks/{form-p5BKJNw5.js → form-lUuJjz6s.js} +1 -1
  55. package/dist/elements/chunks/{hover-card-CN9s2md5.js → hover-card-6KtXpLwT.js} +1 -1
  56. package/dist/elements/chunks/{icon-CNiKP37E.js → icon-97R8SR2p.js} +1 -1
  57. package/dist/elements/chunks/{info-BSnuJiHI.js → info-C8r5Q6cc.js} +1 -1
  58. package/dist/elements/chunks/{input-BauDmzxX.js → input-DrseEjhp.js} +1 -1
  59. package/dist/elements/chunks/{kbd-BlHJaP9b.js → kbd-OGJDUT-O.js} +1 -1
  60. package/dist/elements/chunks/{link-DEi5iUWC.js → link-BdsfLB7b.js} +1 -1
  61. package/dist/elements/chunks/{link-preview-BaHyM6W4.js → link-preview-C9-jNJBf.js} +1 -1
  62. package/dist/elements/chunks/{loader-CmJG_Fkq.js → loader-B5QzK_8_.js} +1 -1
  63. package/dist/elements/chunks/{markdown-D2jaMpCN.js → markdown-BpAHnBJz.js} +1 -1
  64. package/dist/elements/chunks/{message-C5UfXZ2Z.js → message-CoqLuLkd.js} +1 -1
  65. package/dist/elements/chunks/{message-CXWLmmLn.js → message-_oYx5mk1.js} +1 -1
  66. package/dist/elements/chunks/message-square-C9ovmtOo.js +1 -0
  67. package/dist/elements/chunks/{minimize-2-C9ytZFMU.js → minimize-2-SegJ_oku.js} +1 -1
  68. package/dist/elements/chunks/{model-switcher-CivGfD7-.js → model-switcher-D7JrFFHp.js} +1 -1
  69. package/dist/elements/chunks/{overlay-DJL_sbOm.js → overlay-CV7z2YuX.js} +1 -1
  70. package/dist/elements/chunks/{paperclip-CFaB8naM.js → paperclip-Bg0ITU3b.js} +1 -1
  71. package/dist/elements/chunks/{progress-bar-Br5SksfR.js → progress-bar-D1_rzt6N.js} +1 -1
  72. package/dist/elements/chunks/{prompt-suggestion-CMIvtAhU.js → prompt-suggestion-D5Sm8xF1.js} +1 -1
  73. package/dist/elements/chunks/{reasoning-DpZcNzLq.js → reasoning-D26Bb4p6.js} +1 -1
  74. package/dist/elements/chunks/{resizable-Q8i3T9a_.js → resizable-Dpzjlvp4.js} +1 -1
  75. package/dist/elements/chunks/{rotate-cw-B5IHCBFV.js → rotate-cw-DzVDJOA1.js} +1 -1
  76. package/dist/elements/chunks/{scroll-area-eLeydBje.js → scroll-area-93A1bbeG.js} +1 -1
  77. package/dist/elements/chunks/{scroll-button-DWbz0yA1.js → scroll-button-CrTo7wm4.js} +1 -1
  78. package/dist/elements/chunks/{separator-Xic78AD_.js → separator-DH2r_ZSZ.js} +1 -1
  79. package/dist/elements/chunks/{settings-B8H51pAx.js → settings-BFMOd6yB.js} +1 -1
  80. package/dist/elements/chunks/{settings-group-CsG9eYLe.js → settings-group-B3VZKIcz.js} +1 -1
  81. package/dist/elements/chunks/{share-CNTx0z__.js → share-DgNbkJKY.js} +1 -1
  82. package/dist/elements/chunks/{skeleton-CLlHTcMI.js → skeleton-N8BuWYmf.js} +1 -1
  83. package/dist/elements/chunks/{source-BoVcU5ok.js → source-eJurW_-L.js} +1 -1
  84. package/dist/elements/chunks/{star-CxQVTVhI.js → star-DHvACxtm.js} +1 -1
  85. package/dist/elements/chunks/{store-CLtS5CUG.js → store-HIPGhNz9.js} +1 -1
  86. package/dist/elements/chunks/{tasks-card-CzlkLmUt.js → tasks-card-CfqrkoVO.js} +1 -1
  87. package/dist/elements/chunks/{text-shimmer-D5NhpIQ1.js → text-shimmer-BY_rI3s5.js} +1 -1
  88. package/dist/elements/chunks/{textarea-x5Uxsmtm.js → textarea-DPfuhswM.js} +1 -1
  89. package/dist/elements/chunks/{thumbs-up-UobcJnx9.js → thumbs-up-DQe0hvkZ.js} +1 -1
  90. package/dist/elements/chunks/{toast-store-BOfs9eXq.js → toast-store-VUZZBhzH.js} +1 -1
  91. package/dist/elements/chunks/{tool-Be6Dh_dt.js → tool-C1YtxwPu.js} +1 -1
  92. package/dist/elements/chunks/{tooltip-RxMxyCLF.js → tooltip-BqwnFWhn.js} +1 -1
  93. package/dist/elements/chunks/{triangle-alert-C4yxH2XN.js → triangle-alert-B6or7F5u.js} +1 -1
  94. package/dist/elements/chunks/{use-card-resolution-jva9ehH6.js → use-card-resolution-DJg32jGH.js} +1 -1
  95. package/dist/elements/chunks/{variant-aurora-Dx4VRcjS.js → variant-aurora-QXTZPyST.js} +1 -1
  96. package/dist/elements/chunks/{variant-custom-Y1ZTWgEa.js → variant-custom-D5ZlmziF.js} +1 -1
  97. package/dist/elements/chunks/{variant-wave-B9gml9Cg.js → variant-wave-DDCwhLas.js} +1 -1
  98. package/dist/elements/chunks/{video-CrPHsytT.js → video-Bb86fVYI.js} +1 -1
  99. package/dist/elements/chunks/x-BOhjBeOd.js +1 -0
  100. package/dist/elements/coachmark.js +1 -1
  101. package/dist/elements/code-block.js +1 -1
  102. package/dist/elements/command.js +1 -1
  103. package/dist/elements/compare.js +1 -1
  104. package/dist/elements/composer.js +1 -1
  105. package/dist/elements/confirm-card.js +1 -1
  106. package/dist/elements/context-meter.js +1 -1
  107. package/dist/elements/conversation-list.js +1 -1
  108. package/dist/elements/dialog.js +1 -1
  109. package/dist/elements/editable-label.js +1 -1
  110. package/dist/elements/embed.js +1 -1
  111. package/dist/elements/empty.js +1 -1
  112. package/dist/elements/feedback-bar.js +1 -1
  113. package/dist/elements/file-tree.js +1 -1
  114. package/dist/elements/file-upload.js +1 -1
  115. package/dist/elements/form.js +1 -1
  116. package/dist/elements/hover-card.js +1 -1
  117. package/dist/elements/icon.js +1 -1
  118. package/dist/elements/image.js +1 -1
  119. package/dist/elements/input.js +1 -1
  120. package/dist/elements/kbd.js +1 -1
  121. package/dist/elements/link-preview.js +1 -1
  122. package/dist/elements/loader.js +1 -1
  123. package/dist/elements/markdown.js +1 -1
  124. package/dist/elements/menu.js +1 -1
  125. package/dist/elements/message-skills.js +1 -1
  126. package/dist/elements/message.js +1 -1
  127. package/dist/elements/model-switcher.js +1 -1
  128. package/dist/elements/nav.js +1 -1
  129. package/dist/elements/notice.js +1 -1
  130. package/dist/elements/pane-group.js +1 -1
  131. package/dist/elements/pane.js +1 -1
  132. package/dist/elements/popover.js +1 -1
  133. package/dist/elements/progress-bar.js +1 -1
  134. package/dist/elements/prompt-dock.js +1 -1
  135. package/dist/elements/prompt-input.js +1 -1
  136. package/dist/elements/prompt-suggestions.js +1 -1
  137. package/dist/elements/reasoning.js +1 -1
  138. package/dist/elements/remote.js +1 -1
  139. package/dist/elements/resizable.js +1 -1
  140. package/dist/elements/response-stream.js +1 -1
  141. package/dist/elements/screen.js +1 -1
  142. package/dist/elements/scroll-area.js +1 -1
  143. package/dist/elements/scroll-button.js +1 -1
  144. package/dist/elements/search.js +1 -1
  145. package/dist/elements/segmented.js +1 -1
  146. package/dist/elements/separator.js +1 -1
  147. package/dist/elements/setting-item.js +1 -1
  148. package/dist/elements/settings-group.js +1 -1
  149. package/dist/elements/skeleton.js +1 -1
  150. package/dist/elements/source.js +1 -1
  151. package/dist/elements/status.js +1 -1
  152. package/dist/elements/switch.js +1 -1
  153. package/dist/elements/tabs.js +1 -1
  154. package/dist/elements/tasks.js +1 -1
  155. package/dist/elements/text-shimmer.js +1 -1
  156. package/dist/elements/thinking-bar.js +1 -1
  157. package/dist/elements/thread.js +1 -1
  158. package/dist/elements/toast.js +1 -1
  159. package/dist/elements/tool.js +1 -1
  160. package/dist/elements/tooltip.js +1 -1
  161. package/dist/elements/voice-input.js +1 -1
  162. package/dist/elements/voice-output.js +1 -1
  163. package/dist/index.js +1423 -1425
  164. package/dist/index.server.js +1212 -1214
  165. package/dist/kai.es.js +1 -1
  166. package/dist/mcp.es.js +99 -11
  167. package/dist/{register-impl-AxIlqjo7.js → register-impl-C96AnOJn.js} +18 -18
  168. package/dist/{solid-Dt2nEwfl.js → solid-BuqWLn6x.js} +1034 -1036
  169. package/dist/{solid-BGYSJyHG.js → solid-C76UXJuy.js} +1719 -1721
  170. package/dist/solid.js +1 -1
  171. package/dist/solid.server.js +1 -1
  172. package/dist/{variant-aurora-Ds5ou9BH.js → variant-aurora-CD35fdJF.js} +2 -2
  173. package/dist/{variant-aurora-B44X69AG.js → variant-aurora-Dau5Z4yR.js} +1 -1
  174. package/dist/{variant-aurora-BRhV8Flk.js → variant-aurora-Dc-2RVH9.js} +2 -2
  175. package/dist/{variant-custom-D6Rtvneb.js → variant-custom-CHr_jbMU.js} +2 -2
  176. package/dist/{variant-custom-B20FhtYj.js → variant-custom-Cyu8zx4A.js} +2 -2
  177. package/dist/{variant-custom-BvA1Schl.js → variant-custom-Df7QvXyZ.js} +1 -1
  178. package/dist/{variant-wave-DXC6_LcH.js → variant-wave-BkVpxkVF.js} +2 -2
  179. package/dist/{variant-wave-BUQtkryq.js → variant-wave-CXcaP_9W.js} +1 -1
  180. package/dist/{variant-wave-BVYnqy9L.js → variant-wave-DcGqjVnK.js} +2 -2
  181. package/package.json +3 -1
  182. package/src/agent-tooling/mcp/tools/scaffold.ts +81 -11
  183. package/src/components/file-tree.tsx +7 -3
  184. package/src/elements/compiled.css +1 -1
  185. package/src/wire/encode.ts +5 -0
  186. package/dist/elements/chunks/arrow-left-CFPTeL1Y.js +0 -1
  187. package/dist/elements/chunks/check-7Q3K-iXE.js +0 -1
  188. package/dist/elements/chunks/chevron-down-CpNYLn7E.js +0 -1
  189. package/dist/elements/chunks/chevron-right-DrH85Fha.js +0 -1
  190. package/dist/elements/chunks/circle-C9KRjKYv.js +0 -1
  191. package/dist/elements/chunks/circle-check-Dmi7Y4zw.js +0 -1
  192. package/dist/elements/chunks/file-tree-0upJ5jeb.js +0 -1
  193. package/dist/elements/chunks/message-square-hXylwsy0.js +0 -1
  194. package/dist/elements/chunks/x-_-OPHept.js +0 -1
@@ -143,6 +143,7 @@ type SettledTool = ToolPart & { toolCallId: string };
143
143
 
144
144
  const isTextPart = (p: MessagePart): p is TextPart => p.type === 'text';
145
145
 
146
+ // lint-silent-drops: drops reasoning,tool,card,source,file -- text projection by name and contract, used for the plain-string form of a turn; every caller that needs the other variants encodes them itself before falling back here.
146
147
  const textOf = (parts: MessagePart[]): string =>
147
148
  parts
148
149
  .filter(isTextPart)
@@ -423,6 +424,7 @@ function reasoningDetailOf(part: ReasoningPart): OpenAIReasoningDetail | undefin
423
424
  * or document content in an assistant message, so there is nothing to encode it
424
425
  * to; attachments belong to the user turn that sent them.
425
426
  */
427
+ // lint-silent-drops: drops card,source -- kit-side parts with no OpenAI wire representation; cards come from tool calls, which ARE encoded, and sources are UI citations.
426
428
  export function toOpenAIMessages(
427
429
  messages: ChatMessage[],
428
430
  options: OpenAIEncodeOptions = {},
@@ -449,6 +451,7 @@ export function toOpenAIMessages(
449
451
  buffered = '';
450
452
  };
451
453
 
454
+ // lint-silent-drops: drops reasoning,tool,card,source -- a USER turn carries authored content only; reasoning and tool parts are assistant-side, cards and sources are kit-side UI with no OpenAI wire form.
452
455
  message.parts.forEach((part, partIndex) => {
453
456
  if (part.type === 'text') {
454
457
  buffered += part.text;
@@ -593,6 +596,7 @@ export function toAnthropicMessages(
593
596
  if (message.role === 'user') {
594
597
  // Part order, for the same reason as `toOpenAIMessages`.
595
598
  const userBlocks: AnthropicContentBlock[] = [];
599
+ // lint-silent-drops: drops reasoning,tool,card,source -- a USER turn carries authored content only; reasoning and tool parts are assistant-side, cards and sources are kit-side UI with no Anthropic wire form.
596
600
  message.parts.forEach((part, partIndex) => {
597
601
  if (part.type === 'text') {
598
602
  if (part.text !== '') userBlocks.push({ type: 'text', text: part.text });
@@ -619,6 +623,7 @@ export function toAnthropicMessages(
619
623
  results = [];
620
624
  };
621
625
 
626
+ // lint-silent-drops: drops card,source,file -- cards and sources are kit-side UI; a file part on an ASSISTANT turn has no Anthropic representation, since the API takes image and document content on user turns only.
622
627
  message.parts.forEach((part, partIndex) => {
623
628
  switch (part.type) {
624
629
  case 'reasoning': {
@@ -1 +0,0 @@
1
- import{I as o}from"./Icon-CHG5z5L7.js";import{c as m,m as r}from"./define-lE-QvQFn.js";var e=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],t=a=>m(o,r(a,{name:"ArrowLeft",iconNode:e})),p=t;export{p as a};
@@ -1 +0,0 @@
1
- import{I as m}from"./Icon-CHG5z5L7.js";import{c as o,m as r}from"./define-lE-QvQFn.js";var c=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],e=a=>o(m,r(a,{name:"Check",iconNode:c})),f=e;export{f as c};
@@ -1 +0,0 @@
1
- import{I as r}from"./Icon-CHG5z5L7.js";import{c as a,m}from"./define-lE-QvQFn.js";var e=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],n=o=>a(r,m(o,{name:"ChevronDown",iconNode:e})),p=n;export{p as c};
@@ -1 +0,0 @@
1
- import{I as o}from"./Icon-CHG5z5L7.js";import{c as a,m as r}from"./define-lE-QvQFn.js";var t=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],e=m=>a(o,r(m,{name:"ChevronRight",iconNode:t})),h=e;export{h as c};
@@ -1 +0,0 @@
1
- import{I as c}from"./Icon-CHG5z5L7.js";import{c as m,m as o}from"./define-lE-QvQFn.js";var a=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],e=r=>m(c,o(r,{name:"Circle",iconNode:a})),i=e;export{i as c};
@@ -1 +0,0 @@
1
- import{I as c}from"./Icon-CHG5z5L7.js";import{c as r,m as a}from"./define-lE-QvQFn.js";var e=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],o=m=>r(c,a(m,{name:"CircleCheck",iconNode:e})),i=o;export{i as c};
@@ -1 +0,0 @@
1
- import{c as u,m as M,s as ee,l as V,g as j,i as s,S,a as O,b as H,d as $,q as te,F as L,t as b,p as R,e as ne}from"./define-lE-QvQFn.js";import{c as F}from"./cn-CU7UAWzk.js";import{c as re}from"./chevron-right-DrH85Fha.js";import{I as P}from"./Icon-CHG5z5L7.js";import{f as ie}from"./file-text-D7dijo1A.js";import{f as ae}from"./folder-D8z58t7B.js";var de=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]],oe=e=>u(P,M(e,{name:"FileImage",iconNode:de})),le=oe,se=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 13v-1h6v1",key:"1bb014"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M11 18h2",key:"12mj7e"}]],ue=e=>u(P,M(e,{name:"FileType",iconNode:se})),ce=ue,he=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]],fe=e=>u(P,M(e,{name:"File",iconNode:he})),pe=fe,ge=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],ve=e=>u(P,M(e,{name:"FolderOpen",iconNode:ge})),me=ve,ke=b('<span class="text-tool-green tabular-nums">+'),be=b('<span class="text-tool-red tabular-nums">-'),xe=b("<button type=button>"),ye=b('<div part=summary class="flex items-center gap-2 px-2 py-1.5 text-xs text-muted-foreground border-b border-border"><span class="font-medium text-foreground"> <!> changed'),we=b("<div role=tree aria-label=Files>"),Se=b("<div role=group>"),$e=b('<div role=none><div role=treeitem data-tree-kind=folder><span class="truncate font-medium">'),Fe=b('<span part=stat-additions class="text-tool-green tabular-nums">+'),Ce=b('<span part=stat-deletions class="text-tool-red tabular-nums">-'),De=b("<span part=status>"),Me=b('<span class="ml-auto flex items-center gap-1.5 shrink-0 pl-2 text-xs"aria-hidden=true>'),qe=b('<div role=treeitem data-tree-kind=file><span class="w-3.5 shrink-0"></span><span>');const T={added:{letter:"A",label:"added",class:"text-tool-green"},modified:{letter:"M",label:"modified",class:"text-tool-amber"},deleted:{letter:"D",label:"deleted",class:"text-tool-red"},renamed:{letter:"R",label:"renamed",class:"text-tool-blue"},untracked:{letter:"U",label:"untracked",class:"text-muted-foreground"}};function Ee(e){const n={children:[]};for(const t of e){const f=t.path.split("/").filter(l=>l.length>0);if(f.length===0)continue;let v=n;for(let l=0;l<f.length-1;l++){const x=f[l],a=f.slice(0,l+1).join("/");let d=v.children.find(k=>k.kind==="folder"&&k.name===x);d||(d={kind:"folder",name:x,path:a,children:[]},v.children.push(d)),v=d}const w=f[f.length-1],c=v.children.find(l=>l.kind==="file"&&l.name===w);c?c.file=t:v.children.push({kind:"file",name:w,path:t.path,file:t})}return U(n.children),n.children}function U(e){e.sort((n,t)=>n.kind!==t.kind?n.kind==="folder"?-1:1:n.name.localeCompare(t.name,void 0,{sensitivity:"base"}));for(const n of e)n.kind==="folder"&&U(n.children)}function _(e,n,t=[]){for(const f of e)t.push(f),f.kind==="folder"&&n(f.path)&&_(f.children,n,t);return t}function Ae(e){switch(e){case"image":return le;case"pdf":return ce;case"html":return ie;default:return pe}}function B(e,n=[]){for(const t of e)t.kind==="folder"&&(n.push(t.path),B(t.children,n));return n}function G(e,n=[]){for(const t of e)t.kind==="folder"?G(t.children,n):n.push(t.file);return n}function ze(e){return e.status!==void 0||e.additions!==void 0||e.deletions!==void 0}function He(e,n){if(!ze(n))return;const t=[];return n.status&&t.push(T[n.status].label),n.additions!==void 0&&t.push(`${n.additions} addition${n.additions===1?"":"s"}`),n.deletions!==void 0&&t.push(`${n.deletions} deletion${n.deletions===1?"":"s"}`),[e,...t].join(", ")}function Ne(e){const n=M({files:[]},e),[t,f]=ee(n,["files","activeFile","onSelect","defaultExpanded","summary","class"]),v=V(()=>Ee(t.files)),w=()=>t.defaultExpanded===void 0,[c,l]=j(new Set(t.defaultExpanded??[]),{equals:!1}),[x,a]=j(new Set,{equals:!1}),d=r=>w()?!x().has(r):c().has(r),k=r=>{w()?a(o=>{const p=new Set(o);return p.has(r)?p.delete(r):p.add(r),p}):l(o=>{const p=new Set(o);return p.has(r)?p.delete(r):p.add(r),p})},y=V(()=>B(v())),i=V(()=>G(v())),h=()=>i().length,q=()=>i().reduce((r,o)=>r+(o.additions??0),0),E=()=>i().reduce((r,o)=>r+(o.deletions??0),0),C=()=>y().some(r=>d(r)),K=()=>{w()?a(new Set(y())):l(new Set)},N=()=>{w()?a(new Set):l(new Set(y()))},Q=()=>C()?K():N(),[W,Z]=j(),I=r=>{var o;Z(r.path),(o=t.onSelect)==null||o.call(t,r.path,r.file)},X=(r,o)=>{const p=_(v(),d),D=p.findIndex(m=>m.path===o.path&&m.kind===o.kind),g=m=>{var A,z;if(!m)return;Z(m.path);const Y=`[data-tree-path="${Oe(m.path)}"][data-tree-kind="${m.kind}"]`;(z=(A=r.currentTarget.closest('[role="tree"]'))==null?void 0:A.querySelector(Y))==null||z.focus()};switch(r.key){case"ArrowDown":r.preventDefault(),g(p[D+1]);break;case"ArrowUp":r.preventDefault(),g(p[D-1]);break;case"ArrowRight":r.preventDefault(),o.kind==="folder"&&(d(o.path)?g(p[D+1]):k(o.path));break;case"ArrowLeft":r.preventDefault(),o.kind==="folder"&&d(o.path)&&k(o.path);break;case"Enter":case" ":r.preventDefault(),o.kind==="folder"?k(o.path):I(o);break}};return[u(S,{get when(){return t.summary},get children(){var r=ye(),o=r.firstChild,p=o.firstChild,D=p.nextSibling;return D.nextSibling,s(o,h,p),s(o,()=>h()===1?"file":"files",D),s(r,u(S,{get when(){return q()>0},get children(){var g=ke();return g.firstChild,s(g,q,null),g}}),null),s(r,u(S,{get when(){return E()>0},get children(){var g=be();return g.firstChild,s(g,E,null),g}}),null),s(r,u(S,{get when(){return y().length>0},get children(){var g=xe();return g.$$click=Q,s(g,()=>C()?"Collapse all":"Expand all"),O(m=>{var A=F("ml-auto rounded-md px-1.5 py-0.5 font-medium text-muted-foreground outline-none","hover:bg-muted hover:text-foreground","focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset"),z=C()?"Collapse all folders":"Expand all folders";return A!==m.e&&H(g,m.e=A),z!==m.t&&$(g,"aria-label",m.t=z),m},{e:void 0,t:void 0}),g}}),null),r}}),(()=>{var r=we();return te(r,M({get class(){return F("text-sm select-none",t.class)}},f),!1,!0),s(r,u(L,{get each(){return v()},children:o=>u(J,{node:o,depth:0,isOpen:d,toggle:k,activeFile:()=>t.activeFile,focusedPath:W,onSelectFile:I,onKeyDown:X})})),r})()]}function J(e){const n=()=>e.node,t=()=>e.node.kind==="folder"&&e.isOpen(e.node.path),f=()=>e.node.kind==="file"&&e.activeFile()===e.node.path,v=()=>{const c=e.focusedPath();return c!==void 0?e.node.path===c?0:-1:f()?0:-1},w=()=>({"padding-left":`${e.depth*12+8}px`});return u(S,{get when(){return e.node.kind==="folder"},get fallback(){const c=e.node.file,l=He(n().name,c),x=l!==void 0,a=c.status?T[c.status]:void 0;return(()=>{var d=qe(),k=d.firstChild,y=k.nextSibling;return d.$$keydown=i=>e.onKeyDown(i,e.node),d.$$click=()=>e.onSelectFile(e.node),$(d,"aria-label",l),s(d,()=>{const i=Ae(c.type);return u(i,{size:14,class:"shrink-0 opacity-70","aria-hidden":"true"})},y),s(y,()=>n().name),s(d,u(S,{when:x,get children(){var i=Me();return s(i,u(S,{get when(){return c.additions!==void 0},get children(){var h=Fe();return h.firstChild,s(h,()=>c.additions,null),h}}),null),s(i,u(S,{get when(){return c.deletions!==void 0},get children(){var h=Ce();return h.firstChild,s(h,()=>c.deletions,null),h}}),null),s(i,u(S,{when:a,get children(){var h=De();return s(h,()=>a.letter),O(()=>H(h,F("w-3 text-center font-mono font-semibold",a.class))),h}}),null),i}}),null),O(i=>{var h=f(),q=e.node.path,E=v(),C=F("flex items-center gap-1.5 rounded-md py-1 pr-2 cursor-pointer outline-none","focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset",f()?"bg-primary/10 text-foreground font-medium":"text-muted-foreground hover:bg-muted hover:text-foreground"),K=w(),N=F("truncate",x&&"min-w-0 flex-1");return h!==i.e&&$(d,"aria-selected",i.e=h),q!==i.t&&$(d,"data-tree-path",i.t=q),E!==i.a&&$(d,"tabindex",i.a=E),C!==i.o&&H(d,i.o=C),i.i=R(d,K,i.i),N!==i.n&&H(y,i.n=N),i},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),d})()},get children(){var c=$e(),l=c.firstChild,x=l.firstChild;return l.$$keydown=a=>e.onKeyDown(a,e.node),l.$$click=()=>e.toggle(e.node.path),s(l,u(re,{size:14,get class(){return F("shrink-0 transition-transform opacity-70",t()&&"rotate-90")},"aria-hidden":"true"}),x),s(l,()=>{const a=t()?me:ae;return u(a,{size:14,class:"shrink-0 text-primary/80","aria-hidden":"true"})},x),s(x,()=>n().name),s(c,u(S,{get when(){return t()},get children(){var a=Se();return s(a,u(L,{get each(){return e.node.children},children:d=>u(J,{node:d,get depth(){return e.depth+1},get isOpen(){return e.isOpen},get toggle(){return e.toggle},get activeFile(){return e.activeFile},get focusedPath(){return e.focusedPath},get onSelectFile(){return e.onSelectFile},get onKeyDown(){return e.onKeyDown}})})),a}}),null),O(a=>{var d=t(),k=e.node.path,y=v(),i=F("flex items-center gap-1.5 rounded-md py-1 pr-2 cursor-pointer outline-none text-foreground","hover:bg-muted focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset"),h=w();return d!==a.e&&$(l,"aria-expanded",a.e=d),k!==a.t&&$(l,"data-tree-path",a.t=k),y!==a.a&&$(l,"tabindex",a.a=y),i!==a.o&&H(l,a.o=i),a.i=R(l,h,a.i),a},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),c}})}function Oe(e){return typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(e):e.replace(/["\\]/g,"\\$&")}ne(["click","keydown"]);export{Ne as F};
@@ -1 +0,0 @@
1
- import{I as e}from"./Icon-CHG5z5L7.js";import{c as m,m as o}from"./define-lE-QvQFn.js";var r=[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]],s=a=>m(e,o(a,{name:"MessageSquare",iconNode:r})),i=s;export{i as m};
@@ -1 +0,0 @@
1
- import{I as m}from"./Icon-CHG5z5L7.js";import{c as o,m as r}from"./define-lE-QvQFn.js";var e=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],t=a=>o(m,r(a,{name:"X",iconNode:e})),p=t;export{p as x};