@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.
- package/dist/{create-tween-qs-jjvNA.js → create-tween-BmBnlg25.js} +1 -1
- package/dist/{create-tween-COnPwAQN.js → create-tween-CTT5l1bo.js} +1 -1
- package/dist/{create-tween-DmTUaXWE.js → create-tween-vA7upv0h.js} +1 -1
- package/dist/elements/agent-card.js +1 -1
- package/dist/elements/artifact.js +1 -1
- package/dist/elements/attachments.js +1 -1
- package/dist/elements/audio-visualizer.js +1 -1
- package/dist/elements/avatar.js +1 -1
- package/dist/elements/badge.js +1 -1
- package/dist/elements/button.js +1 -1
- package/dist/elements/card.js +1 -1
- package/dist/elements/cards.js +1 -1
- package/dist/elements/chain-of-thought.js +1 -1
- package/dist/elements/chat-scope-picker.js +1 -1
- package/dist/elements/chat-workspace.js +1 -1
- package/dist/elements/chat.js +1 -1
- package/dist/elements/checkpoint.js +1 -1
- package/dist/elements/choice.js +1 -1
- package/dist/elements/chunks/{Icon-CHG5z5L7.js → Icon-b5A8hlHs.js} +1 -1
- package/dist/elements/chunks/{action-icons-BAtCEEgg.js → action-icons-DW9muWrY.js} +1 -1
- package/dist/elements/chunks/arrow-left-iJVnQmxA.js +1 -0
- package/dist/elements/chunks/{artifact-fBZOE4SO.js → artifact-BhJIuh3D.js} +1 -1
- package/dist/elements/chunks/{attachments-DpYMe5VQ.js → attachments-CL6TaqIb.js} +1 -1
- package/dist/elements/chunks/{audio-visualizer-DFwzAcuL.js → audio-visualizer-BuUqQmaO.js} +1 -1
- package/dist/elements/chunks/{badge-D6zodm6E.js → badge-TIMiJFKc.js} +1 -1
- package/dist/elements/chunks/{button-C42vrGvO.js → button-B9okqG73.js} +1 -1
- package/dist/elements/chunks/{card-renderer-DMZsSuvU.js → card-renderer-aNA0WRFH.js} +1 -1
- package/dist/elements/chunks/{chat-thread-CNNEhol-.js → chat-thread-DN9evldr.js} +1 -1
- package/dist/elements/chunks/check-MdLzbxrm.js +1 -0
- package/dist/elements/chunks/chevron-down-MK7IzDqe.js +1 -0
- package/dist/elements/chunks/chevron-right-C5jXhmtV.js +1 -0
- package/dist/elements/chunks/{choice-card-YoWjpsFV.js → choice-card-kNsjU2m8.js} +1 -1
- package/dist/elements/chunks/circle-BG7VkPep.js +1 -0
- package/dist/elements/chunks/circle-check-GqvO2UBs.js +1 -0
- package/dist/elements/chunks/{circle-x-QIxXda6k.js → circle-x-mhH7pOK2.js} +1 -1
- package/dist/elements/chunks/{code-block-CqeugReY.js → code-block-ClhQO9RW.js} +1 -1
- package/dist/elements/chunks/{collapsible-sTv-_5lF.js → collapsible-DBcBkFPh.js} +1 -1
- package/dist/elements/chunks/{composer-ldQyeVEB.js → composer-CZZmtYOT.js} +1 -1
- package/dist/elements/chunks/{confirm-card-C0RNOwfn.js → confirm-card-CEvFmVhz.js} +1 -1
- package/dist/elements/chunks/{context-5qgypNHC.js → context-hKjNqiyQ.js} +1 -1
- package/dist/elements/chunks/{conversation-list-DLzOacXz.js → conversation-list-CsGJjSKG.js} +1 -1
- package/dist/elements/chunks/{create-tween-V4TXZ93X.js → create-tween-CUrM6D_o.js} +1 -1
- package/dist/elements/chunks/{default-input-DeeRSDHc.js → default-input-B1Mem5wu.js} +1 -1
- package/dist/elements/chunks/{define-lE-QvQFn.js → define-B_tXMYRm.js} +1 -1
- package/dist/elements/chunks/{disclosure-DZSa9jog.js → disclosure-DAoYOKew.js} +1 -1
- package/dist/elements/chunks/{download-B2ZmnGqW.js → download-DnCyWFJE.js} +1 -1
- package/dist/elements/chunks/{dropdown-R3B7cSRE.js → dropdown-CmNna5lT.js} +1 -1
- package/dist/elements/chunks/{ellipsis-BmxceY4l.js → ellipsis-CVxqfsDZ.js} +1 -1
- package/dist/elements/chunks/{embed-BVrtTZPo.js → embed-CjAD2jSi.js} +1 -1
- package/dist/elements/chunks/{external-link-BbdR7YO7.js → external-link-DG2sRdQL.js} +1 -1
- package/dist/elements/chunks/{file-text-D7dijo1A.js → file-text-D0J9F6M7.js} +1 -1
- package/dist/elements/chunks/file-tree-yGWNK0Js.js +1 -0
- package/dist/elements/chunks/{folder-D8z58t7B.js → folder-NV1pi_ud.js} +1 -1
- package/dist/elements/chunks/{form-p5BKJNw5.js → form-lUuJjz6s.js} +1 -1
- package/dist/elements/chunks/{hover-card-CN9s2md5.js → hover-card-6KtXpLwT.js} +1 -1
- package/dist/elements/chunks/{icon-CNiKP37E.js → icon-97R8SR2p.js} +1 -1
- package/dist/elements/chunks/{info-BSnuJiHI.js → info-C8r5Q6cc.js} +1 -1
- package/dist/elements/chunks/{input-BauDmzxX.js → input-DrseEjhp.js} +1 -1
- package/dist/elements/chunks/{kbd-BlHJaP9b.js → kbd-OGJDUT-O.js} +1 -1
- package/dist/elements/chunks/{link-DEi5iUWC.js → link-BdsfLB7b.js} +1 -1
- package/dist/elements/chunks/{link-preview-BaHyM6W4.js → link-preview-C9-jNJBf.js} +1 -1
- package/dist/elements/chunks/{loader-CmJG_Fkq.js → loader-B5QzK_8_.js} +1 -1
- package/dist/elements/chunks/{markdown-D2jaMpCN.js → markdown-BpAHnBJz.js} +1 -1
- package/dist/elements/chunks/{message-C5UfXZ2Z.js → message-CoqLuLkd.js} +1 -1
- package/dist/elements/chunks/{message-CXWLmmLn.js → message-_oYx5mk1.js} +1 -1
- package/dist/elements/chunks/message-square-C9ovmtOo.js +1 -0
- package/dist/elements/chunks/{minimize-2-C9ytZFMU.js → minimize-2-SegJ_oku.js} +1 -1
- package/dist/elements/chunks/{model-switcher-CivGfD7-.js → model-switcher-D7JrFFHp.js} +1 -1
- package/dist/elements/chunks/{overlay-DJL_sbOm.js → overlay-CV7z2YuX.js} +1 -1
- package/dist/elements/chunks/{paperclip-CFaB8naM.js → paperclip-Bg0ITU3b.js} +1 -1
- package/dist/elements/chunks/{progress-bar-Br5SksfR.js → progress-bar-D1_rzt6N.js} +1 -1
- package/dist/elements/chunks/{prompt-suggestion-CMIvtAhU.js → prompt-suggestion-D5Sm8xF1.js} +1 -1
- package/dist/elements/chunks/{reasoning-DpZcNzLq.js → reasoning-D26Bb4p6.js} +1 -1
- package/dist/elements/chunks/{resizable-Q8i3T9a_.js → resizable-Dpzjlvp4.js} +1 -1
- package/dist/elements/chunks/{rotate-cw-B5IHCBFV.js → rotate-cw-DzVDJOA1.js} +1 -1
- package/dist/elements/chunks/{scroll-area-eLeydBje.js → scroll-area-93A1bbeG.js} +1 -1
- package/dist/elements/chunks/{scroll-button-DWbz0yA1.js → scroll-button-CrTo7wm4.js} +1 -1
- package/dist/elements/chunks/{separator-Xic78AD_.js → separator-DH2r_ZSZ.js} +1 -1
- package/dist/elements/chunks/{settings-B8H51pAx.js → settings-BFMOd6yB.js} +1 -1
- package/dist/elements/chunks/{settings-group-CsG9eYLe.js → settings-group-B3VZKIcz.js} +1 -1
- package/dist/elements/chunks/{share-CNTx0z__.js → share-DgNbkJKY.js} +1 -1
- package/dist/elements/chunks/{skeleton-CLlHTcMI.js → skeleton-N8BuWYmf.js} +1 -1
- package/dist/elements/chunks/{source-BoVcU5ok.js → source-eJurW_-L.js} +1 -1
- package/dist/elements/chunks/{star-CxQVTVhI.js → star-DHvACxtm.js} +1 -1
- package/dist/elements/chunks/{store-CLtS5CUG.js → store-HIPGhNz9.js} +1 -1
- package/dist/elements/chunks/{tasks-card-CzlkLmUt.js → tasks-card-CfqrkoVO.js} +1 -1
- package/dist/elements/chunks/{text-shimmer-D5NhpIQ1.js → text-shimmer-BY_rI3s5.js} +1 -1
- package/dist/elements/chunks/{textarea-x5Uxsmtm.js → textarea-DPfuhswM.js} +1 -1
- package/dist/elements/chunks/{thumbs-up-UobcJnx9.js → thumbs-up-DQe0hvkZ.js} +1 -1
- package/dist/elements/chunks/{toast-store-BOfs9eXq.js → toast-store-VUZZBhzH.js} +1 -1
- package/dist/elements/chunks/{tool-Be6Dh_dt.js → tool-C1YtxwPu.js} +1 -1
- package/dist/elements/chunks/{tooltip-RxMxyCLF.js → tooltip-BqwnFWhn.js} +1 -1
- package/dist/elements/chunks/{triangle-alert-C4yxH2XN.js → triangle-alert-B6or7F5u.js} +1 -1
- package/dist/elements/chunks/{use-card-resolution-jva9ehH6.js → use-card-resolution-DJg32jGH.js} +1 -1
- package/dist/elements/chunks/{variant-aurora-Dx4VRcjS.js → variant-aurora-QXTZPyST.js} +1 -1
- package/dist/elements/chunks/{variant-custom-Y1ZTWgEa.js → variant-custom-D5ZlmziF.js} +1 -1
- package/dist/elements/chunks/{variant-wave-B9gml9Cg.js → variant-wave-DDCwhLas.js} +1 -1
- package/dist/elements/chunks/{video-CrPHsytT.js → video-Bb86fVYI.js} +1 -1
- package/dist/elements/chunks/x-BOhjBeOd.js +1 -0
- package/dist/elements/coachmark.js +1 -1
- package/dist/elements/code-block.js +1 -1
- package/dist/elements/command.js +1 -1
- package/dist/elements/compare.js +1 -1
- package/dist/elements/composer.js +1 -1
- package/dist/elements/confirm-card.js +1 -1
- package/dist/elements/context-meter.js +1 -1
- package/dist/elements/conversation-list.js +1 -1
- package/dist/elements/dialog.js +1 -1
- package/dist/elements/editable-label.js +1 -1
- package/dist/elements/embed.js +1 -1
- package/dist/elements/empty.js +1 -1
- package/dist/elements/feedback-bar.js +1 -1
- package/dist/elements/file-tree.js +1 -1
- package/dist/elements/file-upload.js +1 -1
- package/dist/elements/form.js +1 -1
- package/dist/elements/hover-card.js +1 -1
- package/dist/elements/icon.js +1 -1
- package/dist/elements/image.js +1 -1
- package/dist/elements/input.js +1 -1
- package/dist/elements/kbd.js +1 -1
- package/dist/elements/link-preview.js +1 -1
- package/dist/elements/loader.js +1 -1
- package/dist/elements/markdown.js +1 -1
- package/dist/elements/menu.js +1 -1
- package/dist/elements/message-skills.js +1 -1
- package/dist/elements/message.js +1 -1
- package/dist/elements/model-switcher.js +1 -1
- package/dist/elements/nav.js +1 -1
- package/dist/elements/notice.js +1 -1
- package/dist/elements/pane-group.js +1 -1
- package/dist/elements/pane.js +1 -1
- package/dist/elements/popover.js +1 -1
- package/dist/elements/progress-bar.js +1 -1
- package/dist/elements/prompt-dock.js +1 -1
- package/dist/elements/prompt-input.js +1 -1
- package/dist/elements/prompt-suggestions.js +1 -1
- package/dist/elements/reasoning.js +1 -1
- package/dist/elements/remote.js +1 -1
- package/dist/elements/resizable.js +1 -1
- package/dist/elements/response-stream.js +1 -1
- package/dist/elements/screen.js +1 -1
- package/dist/elements/scroll-area.js +1 -1
- package/dist/elements/scroll-button.js +1 -1
- package/dist/elements/search.js +1 -1
- package/dist/elements/segmented.js +1 -1
- package/dist/elements/separator.js +1 -1
- package/dist/elements/setting-item.js +1 -1
- package/dist/elements/settings-group.js +1 -1
- package/dist/elements/skeleton.js +1 -1
- package/dist/elements/source.js +1 -1
- package/dist/elements/status.js +1 -1
- package/dist/elements/switch.js +1 -1
- package/dist/elements/tabs.js +1 -1
- package/dist/elements/tasks.js +1 -1
- package/dist/elements/text-shimmer.js +1 -1
- package/dist/elements/thinking-bar.js +1 -1
- package/dist/elements/thread.js +1 -1
- package/dist/elements/toast.js +1 -1
- package/dist/elements/tool.js +1 -1
- package/dist/elements/tooltip.js +1 -1
- package/dist/elements/voice-input.js +1 -1
- package/dist/elements/voice-output.js +1 -1
- package/dist/index.js +1423 -1425
- package/dist/index.server.js +1212 -1214
- package/dist/kai.es.js +1 -1
- package/dist/mcp.es.js +99 -11
- package/dist/{register-impl-AxIlqjo7.js → register-impl-C96AnOJn.js} +18 -18
- package/dist/{solid-Dt2nEwfl.js → solid-BuqWLn6x.js} +1034 -1036
- package/dist/{solid-BGYSJyHG.js → solid-C76UXJuy.js} +1719 -1721
- package/dist/solid.js +1 -1
- package/dist/solid.server.js +1 -1
- package/dist/{variant-aurora-Ds5ou9BH.js → variant-aurora-CD35fdJF.js} +2 -2
- package/dist/{variant-aurora-B44X69AG.js → variant-aurora-Dau5Z4yR.js} +1 -1
- package/dist/{variant-aurora-BRhV8Flk.js → variant-aurora-Dc-2RVH9.js} +2 -2
- package/dist/{variant-custom-D6Rtvneb.js → variant-custom-CHr_jbMU.js} +2 -2
- package/dist/{variant-custom-B20FhtYj.js → variant-custom-Cyu8zx4A.js} +2 -2
- package/dist/{variant-custom-BvA1Schl.js → variant-custom-Df7QvXyZ.js} +1 -1
- package/dist/{variant-wave-DXC6_LcH.js → variant-wave-BkVpxkVF.js} +2 -2
- package/dist/{variant-wave-BUQtkryq.js → variant-wave-CXcaP_9W.js} +1 -1
- package/dist/{variant-wave-BVYnqy9L.js → variant-wave-DcGqjVnK.js} +2 -2
- package/package.json +3 -1
- package/src/agent-tooling/mcp/tools/scaffold.ts +81 -11
- package/src/components/file-tree.tsx +7 -3
- package/src/elements/compiled.css +1 -1
- package/src/wire/encode.ts +5 -0
- package/dist/elements/chunks/arrow-left-CFPTeL1Y.js +0 -1
- package/dist/elements/chunks/check-7Q3K-iXE.js +0 -1
- package/dist/elements/chunks/chevron-down-CpNYLn7E.js +0 -1
- package/dist/elements/chunks/chevron-right-DrH85Fha.js +0 -1
- package/dist/elements/chunks/circle-C9KRjKYv.js +0 -1
- package/dist/elements/chunks/circle-check-Dmi7Y4zw.js +0 -1
- package/dist/elements/chunks/file-tree-0upJ5jeb.js +0 -1
- package/dist/elements/chunks/message-square-hXylwsy0.js +0 -1
- package/dist/elements/chunks/x-_-OPHept.js +0 -1
package/src/wire/encode.ts
CHANGED
|
@@ -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};
|