@k2b/ui 0.3.0 → 0.4.1

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 (121) hide show
  1. package/dist/browser/actions/index.js +2 -2
  2. package/dist/browser/actions/index.js.map +1 -1
  3. package/dist/browser/chat/ChatComposer.js +1 -1
  4. package/dist/browser/chat/ChatComposer.js.map +1 -1
  5. package/dist/browser/chat/ChatContextPopup.js.map +1 -1
  6. package/dist/browser/chat/ChatPrimitives.js +2 -2
  7. package/dist/browser/chat/ChatPrimitives.js.map +1 -1
  8. package/dist/browser/chat/ChatTasks.js +1 -1
  9. package/dist/browser/chat/ChatTasks.js.map +1 -1
  10. package/dist/browser/chat/ChatTimeline.js +1 -1
  11. package/dist/browser/chat/ChatTimeline.js.map +1 -1
  12. package/dist/browser/chat/composer-document.js.map +1 -1
  13. package/dist/browser/chat/index.js.map +1 -1
  14. package/dist/browser/content/Chart.js +3 -3
  15. package/dist/browser/content/Chart.js.map +1 -1
  16. package/dist/browser/content/ChartExplorer.js +4 -4
  17. package/dist/browser/content/ChartExplorer.js.map +1 -1
  18. package/dist/browser/content/ChartExplorerControls.js +1 -1
  19. package/dist/browser/content/ChartExplorerControls.js.map +1 -1
  20. package/dist/browser/content/ChartFilterControls.js +2 -2
  21. package/dist/browser/content/ChartFilterControls.js.map +1 -1
  22. package/dist/browser/content/ChartSnapshotView.js +2 -1
  23. package/dist/browser/content/ChartSnapshotView.js.map +1 -1
  24. package/dist/browser/content/FileView.js +7 -3
  25. package/dist/browser/content/FileView.js.map +1 -1
  26. package/dist/browser/content/MarkdownView.js.map +1 -1
  27. package/dist/browser/content/Pagination.js.map +1 -1
  28. package/dist/browser/content/chart-explorer.js.map +1 -1
  29. package/dist/browser/content/chart-inspection.js.map +1 -1
  30. package/dist/browser/content/chart-line-gaps.js.map +1 -1
  31. package/dist/browser/content/chart-snapshot.js.map +1 -1
  32. package/dist/browser/content/file-view-preview.js.map +1 -1
  33. package/dist/browser/content/index.js +9 -9
  34. package/dist/browser/content/index.js.map +1 -1
  35. package/dist/browser/feedback/toast.js.map +1 -1
  36. package/dist/browser/inputs/ChoiceGroups.js.map +1 -1
  37. package/dist/browser/inputs/NumberInput.js +9 -1
  38. package/dist/browser/inputs/NumberInput.js.map +1 -1
  39. package/dist/browser/inputs/Select.js.map +1 -1
  40. package/dist/browser/inputs/markdown/behaviors.js +1 -1
  41. package/dist/browser/inputs/markdown/behaviors.js.map +1 -1
  42. package/dist/browser/layout/AppWorkspace.js +264 -248
  43. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  44. package/dist/browser/layout/DetailPanel.js +1 -1
  45. package/dist/browser/layout/DetailPanel.js.map +1 -1
  46. package/dist/browser/layout/ScrollArea.js.map +1 -1
  47. package/dist/browser/layout/SidebarItemPreview.js +1 -1
  48. package/dist/browser/layout/SidebarItemPreview.js.map +1 -1
  49. package/dist/browser/layout/app-workspace-controller.js +1 -1
  50. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  51. package/dist/browser/layout/app-workspace-state.js.map +1 -1
  52. package/dist/browser/layout/index.js +3 -3
  53. package/dist/browser/layout/index.js.map +1 -1
  54. package/dist/ssr/actions/index.js +2 -2
  55. package/dist/ssr/actions/index.js.map +1 -1
  56. package/dist/ssr/chat/ChatComposer.js +1 -1
  57. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  58. package/dist/ssr/chat/ChatContextPopup.js.map +1 -1
  59. package/dist/ssr/chat/ChatPrimitives.js +2 -2
  60. package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
  61. package/dist/ssr/chat/ChatTasks.js +1 -1
  62. package/dist/ssr/chat/ChatTasks.js.map +1 -1
  63. package/dist/ssr/chat/ChatTimeline.js +1 -1
  64. package/dist/ssr/chat/ChatTimeline.js.map +1 -1
  65. package/dist/ssr/chat/composer-document.js.map +1 -1
  66. package/dist/ssr/chat/index.js.map +1 -1
  67. package/dist/ssr/content/Chart.js +3 -3
  68. package/dist/ssr/content/Chart.js.map +1 -1
  69. package/dist/ssr/content/ChartExplorer.js +4 -4
  70. package/dist/ssr/content/ChartExplorer.js.map +1 -1
  71. package/dist/ssr/content/ChartExplorerControls.js +1 -1
  72. package/dist/ssr/content/ChartExplorerControls.js.map +1 -1
  73. package/dist/ssr/content/ChartFilterControls.js +2 -2
  74. package/dist/ssr/content/ChartFilterControls.js.map +1 -1
  75. package/dist/ssr/content/ChartSnapshotView.js +2 -1
  76. package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
  77. package/dist/ssr/content/FileView.js +7 -3
  78. package/dist/ssr/content/FileView.js.map +1 -1
  79. package/dist/ssr/content/MarkdownView.js.map +1 -1
  80. package/dist/ssr/content/Pagination.js.map +1 -1
  81. package/dist/ssr/content/chart-explorer.js.map +1 -1
  82. package/dist/ssr/content/chart-inspection.js.map +1 -1
  83. package/dist/ssr/content/chart-line-gaps.js.map +1 -1
  84. package/dist/ssr/content/chart-snapshot.js.map +1 -1
  85. package/dist/ssr/content/file-view-preview.js.map +1 -1
  86. package/dist/ssr/content/index.js +9 -9
  87. package/dist/ssr/content/index.js.map +1 -1
  88. package/dist/ssr/feedback/toast.js.map +1 -1
  89. package/dist/ssr/inputs/ChoiceGroups.js.map +1 -1
  90. package/dist/ssr/inputs/NumberInput.js +9 -1
  91. package/dist/ssr/inputs/NumberInput.js.map +1 -1
  92. package/dist/ssr/inputs/Select.js.map +1 -1
  93. package/dist/ssr/inputs/markdown/behaviors.js +1 -1
  94. package/dist/ssr/inputs/markdown/behaviors.js.map +1 -1
  95. package/dist/ssr/layout/AppWorkspace.js +74 -62
  96. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  97. package/dist/ssr/layout/DetailPanel.js +1 -1
  98. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  99. package/dist/ssr/layout/ScrollArea.js.map +1 -1
  100. package/dist/ssr/layout/SidebarItemPreview.js +1 -1
  101. package/dist/ssr/layout/SidebarItemPreview.js.map +1 -1
  102. package/dist/ssr/layout/app-workspace-controller.js +1 -1
  103. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  104. package/dist/ssr/layout/app-workspace-state.js.map +1 -1
  105. package/dist/ssr/layout/index.js +3 -3
  106. package/dist/ssr/layout/index.js.map +1 -1
  107. package/dist/styles.css +1 -1
  108. package/dist/types/actions/index.d.ts +4 -4
  109. package/dist/types/chat/ChatComposer.d.ts +1 -1
  110. package/dist/types/chat/index.d.ts +1 -1
  111. package/dist/types/content/Chart.d.ts +2 -2
  112. package/dist/types/content/ChartExplorer.d.ts +2 -2
  113. package/dist/types/content/ChartExplorerControls.d.ts +1 -1
  114. package/dist/types/content/ChartSnapshotView.d.ts +1 -1
  115. package/dist/types/content/chart-inspection.d.ts +1 -1
  116. package/dist/types/content/index.d.ts +15 -15
  117. package/dist/types/inputs/NumberInput.d.ts +2 -0
  118. package/dist/types/layout/AppWorkspace.d.ts +1 -1
  119. package/dist/types/layout/SidebarItemPreview.d.ts +1 -1
  120. package/dist/types/layout/index.d.ts +3 -3
  121. package/package.json +2 -4
@@ -1,13 +1,13 @@
1
1
  export { Button, ButtonLink, IconButton, IconButtonLink } from "./Button";
2
+ export { ContextMenu } from "./ContextMenu";
2
3
  export { CopyButton } from "./CopyButton";
3
4
  export { Disclosure } from "./Disclosure";
4
5
  export { Dropdown, DropdownItem, dropdownPosition } from "./Dropdown";
5
6
  export { FilterChip } from "./FilterChip";
6
- export { ContextMenu } from "./ContextMenu";
7
7
  export { RemoveButton } from "./RemoveButton";
8
- export { openSpotlightSearch, SpotlightButton } from "./SpotlightSearch";
9
8
  export { SegmentedControl } from "./SegmentedControl";
10
9
  export { SplitButton } from "./SplitButton";
10
+ export { openSpotlightSearch, SpotlightButton } from "./SpotlightSearch";
11
11
  export { Tabs } from "./Tabs";
12
12
  export { Toolbar } from "./Toolbar";
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Button","ButtonLink","IconButton","IconButtonLink","CopyButton","Disclosure","Dropdown","DropdownItem","dropdownPosition","FilterChip","ContextMenu","RemoveButton","openSpotlightSearch","SpotlightButton","SegmentedControl","SplitButton","Tabs","Toolbar"],"sources":["actions/index.ts"],"sourcesContent":["export type { ButtonLinkProps, ButtonProps, ButtonSize, ButtonVariant, IconButtonLinkProps, IconButtonProps } from \"./Button\";\nexport { Button, ButtonLink, IconButton, IconButtonLink } from \"./Button\";\nexport type { CopyButtonProps, CopyButtonValue } from \"./CopyButton\";\nexport { CopyButton } from \"./CopyButton\";\nexport type { DisclosureProps } from \"./Disclosure\";\nexport { Disclosure } from \"./Disclosure\";\nexport type {\n DropdownAction,\n DropdownActionBase,\n DropdownChoice,\n DropdownItemProps,\n DropdownPosition,\n DropdownProps,\n DropdownSection,\n DropdownTriggerProps,\n} from \"./Dropdown\";\nexport { Dropdown, DropdownItem, dropdownPosition } from \"./Dropdown\";\nexport type { FilterChipOption, FilterChipProps, FilterChipSection } from \"./FilterChip\";\nexport { FilterChip } from \"./FilterChip\";\nexport type { ContextMenuProps } from \"./ContextMenu\";\nexport { ContextMenu } from \"./ContextMenu\";\nexport type { RemoveButtonProps } from \"./RemoveButton\";\nexport { RemoveButton } from \"./RemoveButton\";\nexport type {\n SpotlightButtonProps,\n SpotlightButtonVariant,\n SpotlightSearchOptions,\n SpotlightSearchResolver,\n} from \"./SpotlightSearch\";\nexport {\n openSpotlightSearch,\n SpotlightButton,\n} from \"./SpotlightSearch\";\nexport type { SegmentedControlProps, SegmentOption } from \"./SegmentedControl\";\nexport { SegmentedControl } from \"./SegmentedControl\";\nexport type { SplitButtonProps } from \"./SplitButton\";\nexport { SplitButton } from \"./SplitButton\";\nexport type { TabOption, TabsItemProps, TabsProps } from \"./Tabs\";\nexport { Tabs } from \"./Tabs\";\nexport type { ToolbarGroupProps, ToolbarProps, ToolbarSeparatorProps } from \"./Toolbar\";\nexport { Toolbar } from \"./Toolbar\";\n"],"mappings":"AACA,SAASA,MAAM,EAAEC,UAAU,EAAEC,UAAU,EAAEC,cAAc,QAAQ,UAAU;AAEzE,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,UAAU,QAAQ,cAAc;AAWzC,SAASC,QAAQ,EAAEC,YAAY,EAAEC,gBAAgB,QAAQ,YAAY;AAErE,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,YAAY,QAAQ,gBAAgB;AAO7C,SACEC,mBAAmB,EACnBC,eAAe,QACV,mBAAmB;AAE1B,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,OAAO,QAAQ,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["Button","ButtonLink","IconButton","IconButtonLink","ContextMenu","CopyButton","Disclosure","Dropdown","DropdownItem","dropdownPosition","FilterChip","RemoveButton","SegmentedControl","SplitButton","openSpotlightSearch","SpotlightButton","Tabs","Toolbar"],"sources":["actions/index.ts"],"sourcesContent":["export type { ButtonLinkProps, ButtonProps, ButtonSize, ButtonVariant, IconButtonLinkProps, IconButtonProps } from \"./Button\";\nexport { Button, ButtonLink, IconButton, IconButtonLink } from \"./Button\";\nexport type { ContextMenuProps } from \"./ContextMenu\";\nexport { ContextMenu } from \"./ContextMenu\";\nexport type { CopyButtonProps, CopyButtonValue } from \"./CopyButton\";\nexport { CopyButton } from \"./CopyButton\";\nexport type { DisclosureProps } from \"./Disclosure\";\nexport { Disclosure } from \"./Disclosure\";\nexport type {\n DropdownAction,\n DropdownActionBase,\n DropdownChoice,\n DropdownItemProps,\n DropdownPosition,\n DropdownProps,\n DropdownSection,\n DropdownTriggerProps,\n} from \"./Dropdown\";\nexport { Dropdown, DropdownItem, dropdownPosition } from \"./Dropdown\";\nexport type { FilterChipOption, FilterChipProps, FilterChipSection } from \"./FilterChip\";\nexport { FilterChip } from \"./FilterChip\";\nexport type { RemoveButtonProps } from \"./RemoveButton\";\nexport { RemoveButton } from \"./RemoveButton\";\nexport type { SegmentedControlProps, SegmentOption } from \"./SegmentedControl\";\nexport { SegmentedControl } from \"./SegmentedControl\";\nexport type { SplitButtonProps } from \"./SplitButton\";\nexport { SplitButton } from \"./SplitButton\";\nexport type {\n SpotlightButtonProps,\n SpotlightButtonVariant,\n SpotlightSearchOptions,\n SpotlightSearchResolver,\n} from \"./SpotlightSearch\";\nexport {\n openSpotlightSearch,\n SpotlightButton,\n} from \"./SpotlightSearch\";\nexport type { TabOption, TabsItemProps, TabsProps } from \"./Tabs\";\nexport { Tabs } from \"./Tabs\";\nexport type { ToolbarGroupProps, ToolbarProps, ToolbarSeparatorProps } from \"./Toolbar\";\nexport { Toolbar } from \"./Toolbar\";\n"],"mappings":"AACA,SAASA,MAAM,EAAEC,UAAU,EAAEC,UAAU,EAAEC,cAAc,QAAQ,UAAU;AAEzE,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,UAAU,QAAQ,cAAc;AAWzC,SAASC,QAAQ,EAAEC,YAAY,EAAEC,gBAAgB,QAAQ,YAAY;AAErE,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,SAASC,WAAW,QAAQ,eAAe;AAO3C,SACEC,mBAAmB,EACnBC,eAAe,QACV,mBAAmB;AAE1B,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,OAAO,QAAQ,WAAW","ignoreList":[]}
@@ -40,7 +40,7 @@ var _tmpl$ = /*#__PURE__*/_$template(`<span><strong>`),
40
40
  _tmpl$23 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__submit><!$><!/><!$><!/><!$><!/><!$><!/>`),
41
41
  _tmpl$24 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__icon-action><i aria-hidden=true>`),
42
42
  _tmpl$25 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__send><i aria-hidden=true>`);
43
- import { children, createEffect, createMemo, createSignal, createUniqueId, For, onMount, onCleanup, untrack, Show } from "solid-js";
43
+ import { children, createEffect, createMemo, createSignal, createUniqueId, For, onCleanup, onMount, Show, untrack } from "solid-js";
44
44
  import { Dropdown } from "../actions/Dropdown";
45
45
  import { SelectChip } from "../inputs/SelectChip";
46
46
  import { useUiMessages } from "../intl/messages";
@@ -1 +1 @@
1
- {"version":3,"names":["children","createEffect","createMemo","createSignal","createUniqueId","For","onMount","onCleanup","untrack","Show","Dropdown","SelectChip","useUiMessages","ChatContextUsage","ContextUsage","executeChatAction","nextChatCommandIndex","reportChatFailure","runChatSubmission","chatCommandQuery","chatMentionSegments","reconcileChatMentions","composerMaxInputHeight","composerUndoBudgetChars","attachmentIcon","attachment","icon","kind","ChatComposer","props","accessory","hasAccessory","toArray","some","item","messages","commandListId","replace","selectedCommandIndex","setSelectedCommandIndex","dragActive","setDragActive","addingFiles","setAddingFiles","submitting","setSubmitting","composerRef","textareaRef","fileInputRef","sawRunning","state","running","stopping","runningSubmitIntent","attachments","caret","setCaret","selectionEnd","setSelectionEnd","dismissed","setDismissed","composing","setComposing","searchResults","setSearchResults","searching","setSearching","searchError","setSearchError","executing","setExecuting","highlightRef","commandListRef","mentions","commandQuery","value","commandMatches","token","commands","filter","command","name","toLowerCase","includes","query","commandsOpen","Boolean","length","searchCommands","disposed","measure","top","window","visualViewport","offsetTop","parent","parentElement","test","getComputedStyle","overflowY","Math","max","getBoundingClientRect","bottom","style","setProperty","queueMicrotask","addEventListener","removeEventListener","abort","AbortController","timer","setTimeout","Promise","resolve","signal","then","results","aborted","catch","finally","clearTimeout","history","historyIndex","draftKey","snapshot","selectionStart","sameMentions","a","b","every","index","start","end","record","splice","push","size","reduce","total","entry","shift","edit","nextMentions","onValueChange","onMentionsChange","restoreHistory","direction","next","setSelectionRange","syncCaret","selectedCommand","blocked","disabled","hasDraft","trim","canSubmit","canSelectFiles","fileSelection","hasAddMenu","menuActions","hasContextUsage","contextPopupAction","context","contextUsage","contextWindow","Number","isFinite","usage","input","output","menuItems","items","label","attachFiles","action","click","variant","onError","autoResize","height","min","scrollHeight","focus","focusToken","undefined","list","querySelector","isConnected","scrollTop","offsetHeight","clientHeight","active","document","focused","activeElement","insideComposer","contains","editingElsewhere","body","matches","isContentEditable","closest","setAttachments","onAttachmentsChange","renderAttachmentCopy","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_$insert","_$effect","_$setAttribute","runFiles","files","selected","Array","from","onSelect","error","submit","intent","previousValue","previousAttachments","previousMentions","text","clear","perform","onSubmit","restore","executeCommand","previous","key","replacement","mention","nextValue","slice","submitRequested","setValue","onKeyDown","event","isComposing","ctrlKey","metaKey","preventDefault","shiftKey","_el$3","_tmpl$1","_el$47","_el$48","_co$11","_$getNextMarker","nextSibling","_el$25","_el$43","_el$44","_co$1","_el$27","_el$34","_el$35","_co$8","_el$36","_el$37","_co$9","_el$33","_el$45","_el$46","_co$10","_el$42","_$createComponent","when","_el$4","_tmpl$6","_el$5","_el$23","_el$24","_co$6","_el$6","_tmpl$5","_el$7","_el$15","_el$16","_co$2","_el$17","_el$18","_co$3","_el$19","_el$20","_co$4","_el$21","_el$22","_co$5","_ref$","_$use","each","_el$49","_tmpl$10","_el$50","_el$51","_el$52","$$click","$$pointerdown","description","_p$","_v$15","_v$16","_v$17","_v$18","_v$19","e","t","o","i","_$className","_$runHydrationEvents","_el$8","_tmpl$2","_el$9","_el$0","loading","_el$1","_tmpl$3","_el$10","_el$11","_el$12","_el$13","_co$","_$memo","_el$14","_tmpl$4","noResults","_v$","_v$2","_$setStyleProperty","_$setProperty","_ref$2","_el$26","_tmpl$7","_el$53","_tmpl$12","_el$54","_el$55","_el$56","_co$12","_el$57","_el$58","_co$13","_el$60","_el$61","_co$14","href","fallback","_el$62","_tmpl$14","_el$64","_el$65","_co$15","_el$66","_el$67","_co$16","previewUrl","_el$68","_tmpl$15","_el$63","_tmpl$13","_v$22","_v$23","alt","_el$69","_tmpl$16","_el$71","_el$72","_co$17","_el$73","_el$74","_co$18","_el$75","_el$70","_v$24","_v$25","_v$26","_v$27","openInNewTab","_el$76","_tmpl$17","_el$77","_el$78","_co$19","_el$79","_el$80","_co$20","_el$81","_el$59","_tmpl$11","candidate","id","_v$20","removeNamed","_v$21","classList","toggle","dataTransfer","types","currentTarget","relatedTarget","_el$28","_tmpl$8","dropFilesToAttach","_el$29","_tmpl$9","_el$31","_el$32","_co$7","_el$30","_ref$3","part","_el$82","_tmpl$18","$$keydown","$$beforeinput","inputType","$$keyup","clipboardData","onPaste","$$input","_ref$4","_el$38","_tmpl$0","_el$39","_el$40","_el$41","_co$0","footerContent","_el$83","_tmpl$21","_el$86","_el$87","_co$21","_el$88","_el$89","_co$22","_el$90","_el$91","_co$23","_el$92","_el$93","_co$24","_el$94","_el$95","_co$25","footerTools","Root","position","width","addToChat","Trigger","appearance","title","_tmpl$19","_el$85","_tmpl$20","_ref$5","_v$28","accept","_v$29","multiple","models","aria-label","chooseModel","menuWidth","placeholder","model","selectedModelId","options","map","image","onModelChange","modelId","modelDetails","_el$96","_tmpl$23","_el$99","_el$100","_co$26","_el$101","_el$102","_co$27","_el$103","_el$104","_co$28","_el$105","_el$106","_co$29","contextActions","_el$107","_tmpl$24","_el$108","_v$34","_v$35","_v$36","pressed","_v$37","_v$38","_v$39","n","_$mergeProps","onActionError","submitTools","onStop","_el$109","_tmpl$25","_el$110","_v$40","_v$41","queueing","steering","sending","queueMessage","steerResponse","sendMessage","_v$42","_v$43","_el$97","_tmpl$22","_el$98","_v$30","_v$31","stopResponse","_v$32","_v$33","content","_v$3","class","_v$4","_v$5","_v$6","messageComposer","_v$7","messageInput","_v$8","_v$9","_v$0","addGuidance","writeMessage","_v$1","inputLabel","message","_v$10","_v$11","_v$12","_v$13","_v$14","s","h","r","d","l","u","c","w","_$delegateEvents"],"sources":["chat/ChatComposer.tsx"],"sourcesContent":["import { children, createEffect, createMemo, createSignal, createUniqueId, For, type JSX, onMount, onCleanup, untrack, Show } from \"solid-js\";\nimport { Dropdown, type DropdownItem as DropdownItemData } from \"../actions/Dropdown\";\nimport { SelectChip } from \"../inputs/SelectChip\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { ChatContextUsage as ContextUsage } from \"./ChatPrimitives\";\nimport { executeChatAction, nextChatCommandIndex, reportChatFailure, runChatSubmission } from \"./chat-behavior\";\nimport type { ChatAction, ChatAttachment, ChatMention, ChatComposerState, ChatContextUsageData, ChatModelOption, ChatSubmitInput } from \"./types\";\n\nimport { chatCommandQuery, chatMentionSegments, reconcileChatMentions } from \"./composer-document\";\n\nconst composerMaxInputHeight = 309;\n// Keep editor undo text within approximately 2 MiB, plus the current edit.\nconst composerUndoBudgetChars = 1_000_000;\n\nexport type ChatCommandContext = {\n setValue: (value: string) => void;\n submit: () => void;\n focus: () => void;\n};\n\nexport type ChatCommand = {\n name: string;\n description: string;\n icon?: string;\n action?: (context: ChatCommandContext) => void | Promise<void>;\n /** Selecting a reference inserts its display name and retains its opaque payload. */\n mention?: ChatAttachment;\n label?: string;\n disabled?: boolean;\n};\n\nexport type ChatFileSelection = {\n onSelect: (files: readonly File[]) => void | Promise<void>;\n onError?: (error: unknown) => void;\n accept?: string;\n multiple?: boolean;\n disabled?: boolean;\n label?: string;\n};\n\nexport type ChatPasteHandler = (event: ClipboardEvent & { currentTarget: HTMLTextAreaElement; target: Element }) => void;\n\nexport type ChatComposerProps = {\n value: string;\n onValueChange: (value: string) => void;\n onSubmit: (input: ChatSubmitInput) => boolean | void | Promise<boolean | void>;\n /** Submit intent used for drafts entered while a response is running. Defaults to `steer`. */\n runningSubmitIntent?: \"steer\" | \"queue\";\n onStop?: () => void | Promise<void>;\n onError?: (error: unknown) => void;\n state?: ChatComposerState;\n attachments?: readonly ChatAttachment[];\n onAttachmentsChange?: (attachments: readonly ChatAttachment[]) => void;\n fileSelection?: ChatFileSelection;\n /** Handle non-file clipboard content. Pasted files already use `fileSelection`. */\n onPaste?: ChatPasteHandler;\n menuActions?: readonly ChatAction[];\n models?: readonly ChatModelOption[];\n selectedModelId?: string | null;\n onModelChange?: (modelId: string) => void;\n /** Compact application-owned details immediately after the model selector. */\n modelDetails?: JSX.Element;\n commands?: readonly ChatCommand[];\n searchCommands?: (query: string, signal: AbortSignal) => Promise<readonly ChatCommand[]>;\n mentions?: readonly ChatMention[];\n onMentionsChange?: (mentions: readonly ChatMention[]) => void;\n /** Shared surface above the editor; suggestions temporarily replace this content. */\n accessory?: JSX.Element;\n contextUsage?: ChatContextUsageData;\n contextActions?: readonly ChatAction[];\n /** Optional action inside the context details popup. */\n contextPopupAction?: ChatAction;\n /** Additional compact controls rendered with the add/model controls. */\n footerTools?: JSX.Element;\n /** Compact application controls immediately before the send/stop button. */\n submitTools?: JSX.Element;\n /** Replaces footer controls during an application-owned interaction, preserving the editor. */\n footerContent?: JSX.Element;\n placeholder?: string;\n label?: string;\n inputLabel?: string;\n disabled?: boolean;\n error?: string;\n focusToken?: unknown;\n draftKey?: unknown;\n class?: string;\n};\n\nconst attachmentIcon = (attachment: ChatAttachment): string =>\n attachment.icon ?? (attachment.kind === \"image\" ? \"ti ti-photo\" : attachment.kind === \"resource\" ? \"ti ti-link\" : \"ti ti-file\");\n\nexport function ChatComposer(props: ChatComposerProps): JSX.Element {\n const accessory = children(() => props.accessory);\n const hasAccessory = () => accessory.toArray().some(item => item != null && typeof item !== \"boolean\" && item !== \"\");\n const messages = useUiMessages();\n const commandListId = `k2b-chat-commands-${createUniqueId().replace(/[^A-Za-z0-9_-]/g, \"-\")}`;\n const [selectedCommandIndex, setSelectedCommandIndex] = createSignal(0);\n const [dragActive, setDragActive] = createSignal(false);\n const [addingFiles, setAddingFiles] = createSignal(false);\n const [submitting, setSubmitting] = createSignal(false);\n let composerRef: HTMLElement | undefined;\n let textareaRef: HTMLTextAreaElement | undefined;\n let fileInputRef: HTMLInputElement | undefined;\n let sawRunning = props.state === \"running\";\n\n const state = () => props.state ?? \"idle\";\n const running = () => state() === \"running\";\n const stopping = () => state() === \"stopping\";\n const runningSubmitIntent = () => props.runningSubmitIntent ?? \"steer\";\n const attachments = () => props.attachments ?? [];\n const [caret, setCaret] = createSignal(0);\n const [selectionEnd, setSelectionEnd] = createSignal(0);\n const [dismissed, setDismissed] = createSignal(false);\n const [composing, setComposing] = createSignal(false);\n const [searchResults, setSearchResults] = createSignal<readonly ChatCommand[]>([]);\n const [searching, setSearching] = createSignal(false);\n const [searchError, setSearchError] = createSignal(false);\n const [executing, setExecuting] = createSignal(false);\n let highlightRef: HTMLDivElement | undefined;\n let commandListRef: HTMLDivElement | undefined;\n const mentions = () => props.mentions ?? [];\n const commandQuery = createMemo(() => dismissed() || composing() ? null : chatCommandQuery(props.value, caret(), selectionEnd()));\n const commandMatches = createMemo(() => {\n const token = commandQuery();\n if (!token) return [];\n return [...(props.commands ?? []).filter(command => command.name.toLowerCase().includes(token.query.toLowerCase())), ...searchResults()];\n });\n const commandsOpen = () => Boolean(commandQuery() && (props.commands?.length || props.searchCommands));\n createEffect(() => {\n if (!commandsOpen()) return;\n let disposed = false;\n const measure = () => {\n if (disposed || !commandListRef) return;\n let top = window.visualViewport?.offsetTop ?? 0;\n for (let parent = commandListRef.parentElement; parent; parent = parent.parentElement) {\n if (/(auto|scroll|hidden|clip)/.test(window.getComputedStyle(parent).overflowY)) {\n top = Math.max(top, parent.getBoundingClientRect().top);\n }\n }\n const bottom = commandListRef.parentElement!.getBoundingClientRect().bottom;\n commandListRef.style.setProperty(\"--k2b-chat-command-space\", `${Math.max(40, bottom - top - 8)}px`);\n };\n queueMicrotask(measure);\n window.addEventListener(\"resize\", measure);\n window.addEventListener(\"scroll\", measure, true);\n window.visualViewport?.addEventListener(\"resize\", measure);\n onCleanup(() => {\n disposed = true;\n window.removeEventListener(\"resize\", measure);\n window.removeEventListener(\"scroll\", measure, true);\n window.visualViewport?.removeEventListener(\"resize\", measure);\n });\n });\n createEffect(() => {\n const token = commandQuery();\n setSearchResults([]);\n setSearchError(false);\n if (!token || !props.searchCommands) { setSearching(false); return; }\n const abort = new AbortController();\n setSearching(true);\n const timer = setTimeout(() => {\n Promise.resolve(props.searchCommands!(token.query, abort.signal)).then(results => {\n if (!abort.signal.aborted) setSearchResults(results);\n }).catch(() => { if (!abort.signal.aborted) setSearchError(true); }).finally(() => {\n if (!abort.signal.aborted) setSearching(false);\n });\n }, 120);\n onCleanup(() => { clearTimeout(timer); abort.abort(); });\n });\n const history: { value: string; mentions: readonly ChatMention[]; caret: number }[] = [];\n let historyIndex = -1;\n createEffect(() => { props.draftKey; untrack(() => { history.length = 0; historyIndex = -1; setDismissed(true); }); });\n const snapshot = () => ({ value: props.value, mentions: [...mentions()], caret: textareaRef?.selectionStart ?? 0 });\n const sameMentions = (a: readonly ChatMention[], b: readonly ChatMention[]) => a.length === b.length && a.every((item, index) => item.start === b[index]?.start && item.end === b[index]?.end && item.attachment === b[index]?.attachment);\n const record = () => {\n if (history[historyIndex]?.value !== props.value || !sameMentions(history[historyIndex]?.mentions ?? [], mentions())) {\n history.splice(historyIndex + 1);\n history.push(snapshot());\n let size = history.reduce((total, entry) => total + entry.value.length, 0);\n while (history.length > 2 && size > composerUndoBudgetChars) size -= history.shift()!.value.length;\n historyIndex = history.length - 1;\n }\n };\n const edit = (value: string, nextMentions = reconcileChatMentions(props.value, value, mentions())) => {\n record();\n props.onValueChange(value);\n props.onMentionsChange?.(nextMentions);\n record();\n setDismissed(false);\n };\n const restoreHistory = (direction: -1 | 1) => {\n record();\n const next = history[historyIndex + direction];\n if (!next) return;\n historyIndex += direction;\n props.onValueChange(next.value);\n props.onMentionsChange?.(next.mentions);\n queueMicrotask(() => { textareaRef?.setSelectionRange(next.caret, next.caret); syncCaret(); });\n };\n const syncCaret = () => {\n setCaret(textareaRef?.selectionStart ?? props.value.length);\n setSelectionEnd(textareaRef?.selectionEnd ?? props.value.length);\n };\n const selectedCommand = () => commandMatches()[selectedCommandIndex()];\n const blocked = () => Boolean(props.disabled || stopping() || state() === \"submitting\" || executing() || addingFiles() || submitting());\n const hasDraft = () => Boolean(props.value.trim() || (!running() && attachments().length > 0));\n const canSubmit = () => !blocked() && hasDraft() && !(running() && runningSubmitIntent() === \"steer\" && mentions().length);\n const canSelectFiles = () => Boolean(props.fileSelection && !props.fileSelection.disabled && !running() && !blocked());\n const hasAddMenu = () => Boolean(props.fileSelection || props.menuActions?.length);\n const hasContextUsage = () => {\n if (props.contextPopupAction) return true;\n const context = props.contextUsage;\n if (!context || typeof context.contextWindow !== \"number\" || !Number.isFinite(context.contextWindow) || context.contextWindow <= 0) {\n return false;\n }\n return [context.usage?.total, context.usage?.input, context.usage?.output].some(\n (value) => typeof value === \"number\" && Number.isFinite(value) && value >= 0,\n );\n };\n\n const menuItems = (): readonly DropdownItemData[] => {\n const items: DropdownItemData[] = [];\n if (props.fileSelection) {\n items.push({\n icon: addingFiles() ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-paperclip\",\n label: props.fileSelection.label ?? messages().attachFiles,\n disabled: !canSelectFiles(),\n action: () => fileInputRef?.click(),\n });\n }\n for (const action of props.menuActions ?? []) {\n items.push({\n icon: action.icon,\n label: action.label,\n variant: action.variant,\n disabled: action.disabled,\n action: () => reportChatFailure(() => executeChatAction(action), props.onError),\n });\n }\n return items;\n };\n\n const autoResize = () => {\n if (!textareaRef) return;\n textareaRef.style.height = \"auto\";\n textareaRef.style.height = `${Math.min(textareaRef.scrollHeight, composerMaxInputHeight)}px`;\n };\n\n const focus = () => textareaRef?.focus();\n\n onMount(() => {\n autoResize();\n if (props.focusToken !== undefined) focus();\n });\n\n createEffect(() => {\n commandMatches();\n setSelectedCommandIndex(0);\n });\n\n createEffect(() => {\n const index = selectedCommandIndex();\n commandMatches();\n queueMicrotask(() => {\n const list = commandListRef;\n const item = list?.querySelector<HTMLElement>(`[id=\"${commandListId}-${index}\"]`);\n if (!list || !item?.isConnected) return;\n if (item.offsetTop < list.scrollTop) list.scrollTop = item.offsetTop;\n else if (item.offsetTop + item.offsetHeight > list.scrollTop + list.clientHeight) {\n list.scrollTop = item.offsetTop + item.offsetHeight - list.clientHeight;\n }\n });\n });\n\n createEffect(() => {\n props.value;\n queueMicrotask(autoResize);\n });\n\n createEffect(() => {\n props.focusToken;\n if (props.focusToken !== undefined) queueMicrotask(focus);\n });\n\n createEffect(() => {\n const active = running();\n if (sawRunning && !active && !props.disabled && typeof document !== \"undefined\") {\n const focused = document.activeElement as HTMLElement | null;\n const insideComposer = Boolean(focused && composerRef?.contains(focused));\n const editingElsewhere = Boolean(\n focused &&\n focused !== document.body &&\n !insideComposer &&\n (focused.matches(\"input, textarea, select\") || focused.isContentEditable || focused.closest(\"[role='dialog'], [popover]\")),\n );\n if (!editingElsewhere) queueMicrotask(focus);\n }\n sawRunning = active;\n });\n\n const setAttachments = (next: readonly ChatAttachment[]) => props.onAttachmentsChange?.(next);\n\n const renderAttachmentCopy = (attachment: ChatAttachment) => (\n <span>\n <strong title={attachment.name}>{attachment.name}</strong>\n </span>\n );\n\n const runFiles = async (files: FileList | readonly File[]) => {\n if (!canSelectFiles()) return;\n const selected = Array.from(files);\n if (selected.length === 0) return;\n setAddingFiles(true);\n try {\n await props.fileSelection?.onSelect(selected);\n } catch (error) {\n (props.fileSelection?.onError ?? props.onError)?.(error);\n } finally {\n setAddingFiles(false);\n if (fileInputRef) fileInputRef.value = \"\";\n queueMicrotask(focus);\n }\n };\n\n const submit = async () => {\n if (!canSubmit()) return;\n const intent = running() ? runningSubmitIntent() : \"send\";\n const previousValue = props.value;\n const previousAttachments = attachments();\n const previousMentions = mentions();\n const input: ChatSubmitInput = {\n intent,\n text: previousValue,\n mentions: previousMentions,\n attachments: intent !== \"steer\" ? previousAttachments : [],\n };\n\n setSubmitting(true);\n try {\n await runChatSubmission({\n clear: () => {\n props.onValueChange(\"\");\n props.onMentionsChange?.([]);\n if (intent !== \"steer\") setAttachments([]);\n },\n perform: () => props.onSubmit(input),\n restore: () => {\n props.onValueChange(previousValue);\n props.onMentionsChange?.(previousMentions);\n if (intent !== \"steer\") setAttachments(previousAttachments);\n },\n onError: props.onError,\n });\n } finally {\n setSubmitting(false);\n queueMicrotask(() => {\n autoResize();\n focus();\n });\n }\n };\n\n const executeCommand = async (command: ChatCommand) => {\n const token = commandQuery();\n if (!token || command.disabled || blocked()) return;\n const previous = snapshot();\n const key = props.draftKey;\n const replacement = command.mention ? command.mention.name + \" \" : \"\";\n const nextValue = props.value.slice(0, token.start) + replacement + props.value.slice(token.end);\n const nextMentions = reconcileChatMentions(props.value, nextValue, mentions());\n if (command.mention) nextMentions.push({ start: token.start, end: token.start + command.mention.name.length, attachment: command.mention });\n edit(nextValue, nextMentions);\n setDismissed(true);\n setExecuting(true);\n let submitRequested = false;\n try {\n await command.action?.({ setValue: value => edit(value), submit: () => { submitRequested = true; }, focus });\n } catch (error) {\n submitRequested = false;\n if (props.draftKey === key && props.value === nextValue) { props.onValueChange(previous.value); props.onMentionsChange?.(previous.mentions); }\n props.onError?.(error);\n } finally { setExecuting(false); }\n if (submitRequested && props.draftKey === key) await submit();\n queueMicrotask(() => {\n if (props.draftKey !== key) return;\n textareaRef?.setSelectionRange(token.start + replacement.length, token.start + replacement.length);\n syncCaret(); autoResize(); focus();\n });\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.isComposing || composing()) return;\n if ((event.ctrlKey || event.metaKey) && event.key.toLowerCase() === \"z\") {\n event.preventDefault(); restoreHistory(event.shiftKey ? 1 : -1); return;\n }\n const matches = commandMatches();\n if (commandsOpen()) {\n if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n event.preventDefault();\n setSelectedCommandIndex((index) => nextChatCommandIndex(index, matches.length, event.key === \"ArrowUp\" ? -1 : 1));\n return;\n }\n if ((event.key === \"Enter\" || event.key === \"Tab\") && matches.length > 0) {\n event.preventDefault();\n const command = selectedCommand();\n if (command) void executeCommand(command);\n return;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n setDismissed(true);\n return;\n }\n }\n if (event.key === \"Enter\" && !event.shiftKey && !event.isComposing) {\n event.preventDefault();\n void submit();\n }\n };\n\n return (\n <div class=\"k2b-chat-composer-shell\">\n <Show when={commandsOpen() || hasAccessory()}>\n <div class=\"k2b-chat-composer-slot\">\n <div style={{ visibility: commandsOpen() ? \"hidden\" : undefined }} inert={commandsOpen()}>{accessory()}</div>\n <Show when={commandsOpen()}><div class=\"k2b-chat-composer-accessory\">\n <div ref={commandListRef} id={commandListId} class=\"k2b-chat-composer__commands\" role=\"listbox\" aria-label={messages().commands}>\n <For each={commandMatches()}>{(command, index) =>\n <button id={`${commandListId}-${index()}`} type=\"button\" role=\"option\" tabIndex={-1}\n aria-selected={index() === selectedCommandIndex()} aria-disabled={command.disabled}\n data-active={index() === selectedCommandIndex() ? \"true\" : undefined}\n onPointerDown={event => event.preventDefault()} onClick={() => void executeCommand(command)}>\n <i class={command.icon ?? \"ti ti-slash\"} aria-hidden=\"true\" />\n <strong>{command.label ?? `/${command.name}`}</strong><small>{command.description}</small>\n </button>\n }</For>\n <Show when={searching()}><div role=\"status\" class=\"k2b-chat-composer__loading\"><i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" /><strong>{messages().loading}</strong></div></Show>\n <Show when={searchError()}><div role=\"status\"><i class=\"ti ti-alert-circle\" /> {messages().error}</div></Show>\n <Show when={!searching() && !searchError() && commandMatches().length === 0}><div role=\"status\">{messages().noResults}</div></Show>\n </div>\n </div></Show>\n </div>\n </Show>\n <section\n ref={composerRef}\n class={`k2b-chat-composer ${props.class ?? \"\"}`}\n data-running={running() ? \"true\" : undefined}\n data-drag-active={dragActive() ? \"true\" : undefined}\n role=\"group\"\n aria-label={props.label ?? messages().messageComposer}\n >\n <Show when={attachments().length > 0}>\n <div class=\"k2b-chat-composer__attachments\" role=\"list\" aria-label={messages().attachments} tabIndex={0}>\n <For each={attachments()}>\n {(attachment) => (\n <div class=\"k2b-chat-composer__attachment\" role=\"listitem\">\n <div\n class=\"k2b-chat-composer__attachment-content\"\n classList={{ \"k2b-chat-composer__attachment-content--action\": Boolean(attachment.action) }}\n >\n <Show\n when={attachment.href}\n fallback={\n <div class=\"k2b-chat-composer__attachment-identity\">\n <Show\n when={attachment.kind === \"image\" && attachment.previewUrl}\n fallback={<i class={attachmentIcon(attachment)} aria-hidden=\"true\" />}\n >\n <img src={attachment.previewUrl} alt={attachment.alt ?? \"\"} />\n </Show>\n {renderAttachmentCopy(attachment)}\n </div>\n }\n >\n {(href) => (\n <a\n class=\"k2b-chat-composer__attachment-link\"\n href={href()}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={messages().openInNewTab({ name: attachment.name })}\n >\n <Show\n when={attachment.kind === \"image\" && attachment.previewUrl}\n fallback={<i class={attachmentIcon(attachment)} aria-hidden=\"true\" />}\n >\n <img src={attachment.previewUrl} alt={attachment.alt ?? \"\"} />\n </Show>\n {renderAttachmentCopy(attachment)}\n </a>\n )}\n </Show>\n <Show when={attachment.action}>\n {(action) => (\n <button\n type=\"button\"\n class=\"k2b-chat-composer__attachment-action\"\n disabled={blocked() || action().disabled}\n onClick={() => reportChatFailure(() => executeChatAction(action()), props.onError)}\n >\n <Show when={action().icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n {action().label}\n </button>\n )}\n </Show>\n </div>\n <Show when={props.onAttachmentsChange}>\n <button\n type=\"button\"\n class=\"k2b-chat-composer__attachment-remove\"\n aria-label={messages().removeNamed({ name: attachment.name })}\n disabled={blocked()}\n onClick={() => setAttachments(attachments().filter((candidate) => candidate.id !== attachment.id))}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n )}\n </For>\n </div>\n </Show>\n\n <div\n class=\"k2b-chat-composer__input\"\n role=\"group\"\n aria-label={messages().messageInput}\n onDragEnter={(event) => {\n if (!canSelectFiles() || !event.dataTransfer?.types.includes(\"Files\")) return;\n event.preventDefault();\n setDragActive(true);\n }}\n onDragOver={(event) => {\n if (!canSelectFiles() || !event.dataTransfer?.types.includes(\"Files\")) return;\n event.preventDefault();\n setDragActive(true);\n }}\n onDragLeave={(event) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) setDragActive(false);\n }}\n onDrop={(event) => {\n if (!event.dataTransfer?.types.includes(\"Files\")) return;\n event.preventDefault();\n setDragActive(false);\n if (canSelectFiles() && event.dataTransfer.files.length) void runFiles(event.dataTransfer.files);\n }}\n >\n <Show when={dragActive()}>\n <div class=\"k2b-chat-composer__drop\" aria-hidden=\"true\">\n {messages().dropFilesToAttach}\n </div>\n </Show>\n <Show when={mentions().length > 0}><div ref={highlightRef} class=\"k2b-chat-composer__highlight\" aria-hidden=\"true\">\n <For each={chatMentionSegments(props.value, mentions())}>{part => <span classList={{ \"k2b-chat-composer__mention\": Boolean(part.mention) }}>{part.text}</span>}</For>{\"\\n\"}\n </div></Show>\n {/* biome-ignore lint/a11y/useAriaPropsSupportedByRole: popup attributes are conditional with the combobox role */}\n <textarea\n ref={textareaRef}\n classList={{ \"k2b-chat-composer__textarea--highlighted\": mentions().length > 0 }}\n rows={1}\n value={props.value}\n disabled={blocked()}\n placeholder={props.placeholder ?? (running() ? messages().addGuidance : messages().writeMessage)}\n aria-label={props.inputLabel ?? messages().message}\n role={commandsOpen() ? \"combobox\" : undefined}\n aria-autocomplete={commandsOpen() ? \"list\" : undefined}\n aria-controls={commandsOpen() ? commandListId : undefined}\n aria-expanded={commandsOpen() ? \"true\" : undefined}\n aria-activedescendant={selectedCommand() ? `${commandListId}-${selectedCommandIndex()}` : undefined}\n onInput={(event) => {\n edit(event.currentTarget.value);\n syncCaret(); autoResize();\n }}\n onPaste={(event) => {\n const clipboardData = event.clipboardData;\n if (canSelectFiles() && clipboardData?.files.length) {\n event.preventDefault();\n void runFiles(clipboardData.files);\n return;\n }\n props.onPaste?.(event);\n }}\n onSelect={syncCaret}\n onBlur={() => setDismissed(true)}\n onClick={() => { setDismissed(false); syncCaret(); }}\n onKeyUp={syncCaret}\n onCompositionStart={() => setComposing(true)}\n onCompositionEnd={() => { setComposing(false); syncCaret(); }}\n onScroll={() => { if (highlightRef && textareaRef) highlightRef.scrollTop = textareaRef.scrollTop; }}\n onBeforeInput={event => {\n if (event.inputType === \"historyUndo\" || event.inputType === \"historyRedo\") {\n event.preventDefault(); restoreHistory(event.inputType === \"historyUndo\" ? -1 : 1);\n }\n }}\n onKeyDown={onKeyDown}\n />\n </div>\n\n <Show when={props.error}>\n <div class=\"k2b-chat-composer__error\" role=\"alert\">\n <i class=\"ti ti-alert-circle\" aria-hidden=\"true\" />\n {props.error}\n </div>\n </Show>\n\n <footer class=\"k2b-chat-composer__footer\">\n <Show\n when={props.footerContent}\n fallback={\n <>\n <div class=\"k2b-chat-composer__tools\">\n {props.footerTools}\n <Show when={hasAddMenu()}>\n <Dropdown.Root position=\"top-right\" width=\"12rem\" label={messages().addToChat} items={menuItems()} disabled={blocked()}>\n <Dropdown.Trigger\n appearance=\"plain\"\n class=\"k2b-chat-composer__icon-action\"\n label={messages().addToChat}\n title={messages().addToChat}\n >\n <i class=\"ti ti-plus\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </Show>\n <Show when={props.fileSelection}>\n <input\n ref={fileInputRef}\n class=\"k2b-sr-only\"\n type=\"file\"\n tabIndex={-1}\n aria-hidden=\"true\"\n accept={props.fileSelection?.accept}\n multiple={props.fileSelection?.multiple ?? true}\n onChange={(event) => {\n if (event.currentTarget.files?.length) void runFiles(event.currentTarget.files);\n }}\n />\n </Show>\n <Show when={(props.models?.length ?? 0) > 0}>\n <SelectChip\n aria-label={messages().chooseModel}\n position=\"top-right\"\n class=\"k2b-chat-composer__model\"\n menuWidth=\"15rem\"\n placeholder={messages().model}\n value={() => props.selectedModelId ?? \"\"}\n options={(props.models ?? []).map((model) => ({\n value: model.id,\n label: model.label,\n description: model.description,\n icon: model.icon,\n image: model.image,\n }))}\n disabled={blocked() || running() || !props.onModelChange}\n onValueChange={(modelId) => {\n props.onModelChange?.(modelId);\n queueMicrotask(focus);\n }}\n />\n </Show>\n {props.modelDetails}\n </div>\n\n <div class=\"k2b-chat-composer__submit\">\n <For each={props.contextActions}>\n {(action) => (\n <button\n type=\"button\"\n class=\"k2b-chat-composer__icon-action\"\n data-tone={action.variant === \"danger\" ? \"danger\" : undefined}\n disabled={action.disabled}\n aria-pressed={action.pressed}\n aria-label={action.label}\n title={action.label}\n onClick={() => reportChatFailure(() => executeChatAction(action), props.onError)}\n >\n <i class={action.icon ?? \"ti ti-dots\"} aria-hidden=\"true\" />\n </button>\n )}\n </For>\n <Show when={hasContextUsage() ? (props.contextUsage ?? {}) : undefined}>\n {(usage) => <ContextUsage {...usage()} action={props.contextPopupAction} onActionError={props.onError} />}\n </Show>\n {props.submitTools}\n <Show\n when={running() && !hasDraft() && props.onStop}\n fallback={\n <button\n type=\"button\"\n class=\"k2b-chat-composer__send\"\n disabled={!canSubmit()}\n aria-label={\n submitting()\n ? running()\n ? runningSubmitIntent() === \"queue\"\n ? messages().queueing\n : messages().steering\n : messages().sending\n : running()\n ? runningSubmitIntent() === \"queue\"\n ? messages().queueMessage\n : messages().steerResponse\n : messages().sendMessage\n }\n title={\n running()\n ? runningSubmitIntent() === \"queue\"\n ? messages().queueMessage\n : messages().steerResponse\n : messages().sendMessage\n }\n onClick={() => void submit()}\n >\n <i class={submitting() ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-arrow-up\"} aria-hidden=\"true\" />\n </button>\n }\n >\n <button\n type=\"button\"\n class=\"k2b-chat-composer__stop\"\n disabled={stopping()}\n aria-label={stopping() ? messages().stopping : messages().stopResponse}\n title={stopping() ? messages().stopping : messages().stopResponse}\n onClick={() => reportChatFailure(() => props.onStop?.(), props.onError)}\n >\n <i class={stopping() ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-player-stop\"} aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n </>\n }\n >\n {(content) => content()}\n </Show>\n </footer>\n </section>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["children","createEffect","createMemo","createSignal","createUniqueId","For","onCleanup","onMount","Show","untrack","Dropdown","SelectChip","useUiMessages","ChatContextUsage","ContextUsage","executeChatAction","nextChatCommandIndex","reportChatFailure","runChatSubmission","chatCommandQuery","chatMentionSegments","reconcileChatMentions","composerMaxInputHeight","composerUndoBudgetChars","attachmentIcon","attachment","icon","kind","ChatComposer","props","accessory","hasAccessory","toArray","some","item","messages","commandListId","replace","selectedCommandIndex","setSelectedCommandIndex","dragActive","setDragActive","addingFiles","setAddingFiles","submitting","setSubmitting","composerRef","textareaRef","fileInputRef","sawRunning","state","running","stopping","runningSubmitIntent","attachments","caret","setCaret","selectionEnd","setSelectionEnd","dismissed","setDismissed","composing","setComposing","searchResults","setSearchResults","searching","setSearching","searchError","setSearchError","executing","setExecuting","highlightRef","commandListRef","mentions","commandQuery","value","commandMatches","token","commands","filter","command","name","toLowerCase","includes","query","commandsOpen","Boolean","length","searchCommands","disposed","measure","top","window","visualViewport","offsetTop","parent","parentElement","test","getComputedStyle","overflowY","Math","max","getBoundingClientRect","bottom","style","setProperty","queueMicrotask","addEventListener","removeEventListener","abort","AbortController","timer","setTimeout","Promise","resolve","signal","then","results","aborted","catch","finally","clearTimeout","history","historyIndex","draftKey","snapshot","selectionStart","sameMentions","a","b","every","index","start","end","record","splice","push","size","reduce","total","entry","shift","edit","nextMentions","onValueChange","onMentionsChange","restoreHistory","direction","next","setSelectionRange","syncCaret","selectedCommand","blocked","disabled","hasDraft","trim","canSubmit","canSelectFiles","fileSelection","hasAddMenu","menuActions","hasContextUsage","contextPopupAction","context","contextUsage","contextWindow","Number","isFinite","usage","input","output","menuItems","items","label","attachFiles","action","click","variant","onError","autoResize","height","min","scrollHeight","focus","focusToken","undefined","list","querySelector","isConnected","scrollTop","offsetHeight","clientHeight","active","document","focused","activeElement","insideComposer","contains","editingElsewhere","body","matches","isContentEditable","closest","setAttachments","onAttachmentsChange","renderAttachmentCopy","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_$insert","_$effect","_$setAttribute","runFiles","files","selected","Array","from","onSelect","error","submit","intent","previousValue","previousAttachments","previousMentions","text","clear","perform","onSubmit","restore","executeCommand","previous","key","replacement","mention","nextValue","slice","submitRequested","setValue","onKeyDown","event","isComposing","ctrlKey","metaKey","preventDefault","shiftKey","_el$3","_tmpl$1","_el$47","_el$48","_co$11","_$getNextMarker","nextSibling","_el$25","_el$43","_el$44","_co$1","_el$27","_el$34","_el$35","_co$8","_el$36","_el$37","_co$9","_el$33","_el$45","_el$46","_co$10","_el$42","_$createComponent","when","_el$4","_tmpl$6","_el$5","_el$23","_el$24","_co$6","_el$6","_tmpl$5","_el$7","_el$15","_el$16","_co$2","_el$17","_el$18","_co$3","_el$19","_el$20","_co$4","_el$21","_el$22","_co$5","_ref$","_$use","each","_el$49","_tmpl$10","_el$50","_el$51","_el$52","$$click","$$pointerdown","description","_p$","_v$15","_v$16","_v$17","_v$18","_v$19","e","t","o","i","_$className","_$runHydrationEvents","_el$8","_tmpl$2","_el$9","_el$0","loading","_el$1","_tmpl$3","_el$10","_el$11","_el$12","_el$13","_co$","_$memo","_el$14","_tmpl$4","noResults","_v$","_v$2","_$setStyleProperty","_$setProperty","_ref$2","_el$26","_tmpl$7","_el$53","_tmpl$12","_el$54","_el$55","_el$56","_co$12","_el$57","_el$58","_co$13","_el$60","_el$61","_co$14","href","fallback","_el$62","_tmpl$14","_el$64","_el$65","_co$15","_el$66","_el$67","_co$16","previewUrl","_el$68","_tmpl$15","_el$63","_tmpl$13","_v$22","_v$23","alt","_el$69","_tmpl$16","_el$71","_el$72","_co$17","_el$73","_el$74","_co$18","_el$75","_el$70","_v$24","_v$25","_v$26","_v$27","openInNewTab","_el$76","_tmpl$17","_el$77","_el$78","_co$19","_el$79","_el$80","_co$20","_el$81","_el$59","_tmpl$11","candidate","id","_v$20","removeNamed","_v$21","classList","toggle","dataTransfer","types","currentTarget","relatedTarget","_el$28","_tmpl$8","dropFilesToAttach","_el$29","_tmpl$9","_el$31","_el$32","_co$7","_el$30","_ref$3","part","_el$82","_tmpl$18","$$keydown","$$beforeinput","inputType","$$keyup","clipboardData","onPaste","$$input","_ref$4","_el$38","_tmpl$0","_el$39","_el$40","_el$41","_co$0","footerContent","_el$83","_tmpl$21","_el$86","_el$87","_co$21","_el$88","_el$89","_co$22","_el$90","_el$91","_co$23","_el$92","_el$93","_co$24","_el$94","_el$95","_co$25","footerTools","Root","position","width","addToChat","Trigger","appearance","title","_tmpl$19","_el$85","_tmpl$20","_ref$5","_v$28","accept","_v$29","multiple","models","aria-label","chooseModel","menuWidth","placeholder","model","selectedModelId","options","map","image","onModelChange","modelId","modelDetails","_el$96","_tmpl$23","_el$99","_el$100","_co$26","_el$101","_el$102","_co$27","_el$103","_el$104","_co$28","_el$105","_el$106","_co$29","contextActions","_el$107","_tmpl$24","_el$108","_v$34","_v$35","_v$36","pressed","_v$37","_v$38","_v$39","n","_$mergeProps","onActionError","submitTools","onStop","_el$109","_tmpl$25","_el$110","_v$40","_v$41","queueing","steering","sending","queueMessage","steerResponse","sendMessage","_v$42","_v$43","_el$97","_tmpl$22","_el$98","_v$30","_v$31","stopResponse","_v$32","_v$33","content","_v$3","class","_v$4","_v$5","_v$6","messageComposer","_v$7","messageInput","_v$8","_v$9","_v$0","addGuidance","writeMessage","_v$1","inputLabel","message","_v$10","_v$11","_v$12","_v$13","_v$14","s","h","r","d","l","u","c","w","_$delegateEvents"],"sources":["chat/ChatComposer.tsx"],"sourcesContent":["import {\n children,\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n type JSX,\n onCleanup,\n onMount,\n Show,\n untrack,\n} from \"solid-js\";\nimport { Dropdown, type DropdownItem as DropdownItemData } from \"../actions/Dropdown\";\nimport { SelectChip } from \"../inputs/SelectChip\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { ChatContextUsage as ContextUsage } from \"./ChatPrimitives\";\nimport { executeChatAction, nextChatCommandIndex, reportChatFailure, runChatSubmission } from \"./chat-behavior\";\nimport { chatCommandQuery, chatMentionSegments, reconcileChatMentions } from \"./composer-document\";\nimport type {\n ChatAction,\n ChatAttachment,\n ChatComposerState,\n ChatContextUsageData,\n ChatMention,\n ChatModelOption,\n ChatSubmitInput,\n} from \"./types\";\n\nconst composerMaxInputHeight = 309;\n// Keep editor undo text within approximately 2 MiB, plus the current edit.\nconst composerUndoBudgetChars = 1_000_000;\n\nexport type ChatCommandContext = {\n setValue: (value: string) => void;\n submit: () => void;\n focus: () => void;\n};\n\nexport type ChatCommand = {\n name: string;\n description: string;\n icon?: string;\n action?: (context: ChatCommandContext) => void | Promise<void>;\n /** Selecting a reference inserts its display name and retains its opaque payload. */\n mention?: ChatAttachment;\n label?: string;\n disabled?: boolean;\n};\n\nexport type ChatFileSelection = {\n onSelect: (files: readonly File[]) => void | Promise<void>;\n onError?: (error: unknown) => void;\n accept?: string;\n multiple?: boolean;\n disabled?: boolean;\n label?: string;\n};\n\nexport type ChatPasteHandler = (event: ClipboardEvent & { currentTarget: HTMLTextAreaElement; target: Element }) => void;\n\nexport type ChatComposerProps = {\n value: string;\n onValueChange: (value: string) => void;\n onSubmit: (input: ChatSubmitInput) => boolean | void | Promise<boolean | void>;\n /** Submit intent used for drafts entered while a response is running. Defaults to `steer`. */\n runningSubmitIntent?: \"steer\" | \"queue\";\n onStop?: () => void | Promise<void>;\n onError?: (error: unknown) => void;\n state?: ChatComposerState;\n attachments?: readonly ChatAttachment[];\n onAttachmentsChange?: (attachments: readonly ChatAttachment[]) => void;\n fileSelection?: ChatFileSelection;\n /** Handle non-file clipboard content. Pasted files already use `fileSelection`. */\n onPaste?: ChatPasteHandler;\n menuActions?: readonly ChatAction[];\n models?: readonly ChatModelOption[];\n selectedModelId?: string | null;\n onModelChange?: (modelId: string) => void;\n /** Compact application-owned details immediately after the model selector. */\n modelDetails?: JSX.Element;\n commands?: readonly ChatCommand[];\n searchCommands?: (query: string, signal: AbortSignal) => Promise<readonly ChatCommand[]>;\n mentions?: readonly ChatMention[];\n onMentionsChange?: (mentions: readonly ChatMention[]) => void;\n /** Shared surface above the editor; suggestions temporarily replace this content. */\n accessory?: JSX.Element;\n contextUsage?: ChatContextUsageData;\n contextActions?: readonly ChatAction[];\n /** Optional action inside the context details popup. */\n contextPopupAction?: ChatAction;\n /** Additional compact controls rendered with the add/model controls. */\n footerTools?: JSX.Element;\n /** Compact application controls immediately before the send/stop button. */\n submitTools?: JSX.Element;\n /** Replaces footer controls during an application-owned interaction, preserving the editor. */\n footerContent?: JSX.Element;\n placeholder?: string;\n label?: string;\n inputLabel?: string;\n disabled?: boolean;\n error?: string;\n focusToken?: unknown;\n draftKey?: unknown;\n class?: string;\n};\n\nconst attachmentIcon = (attachment: ChatAttachment): string =>\n attachment.icon ?? (attachment.kind === \"image\" ? \"ti ti-photo\" : attachment.kind === \"resource\" ? \"ti ti-link\" : \"ti ti-file\");\n\nexport function ChatComposer(props: ChatComposerProps): JSX.Element {\n const accessory = children(() => props.accessory);\n const hasAccessory = () => accessory.toArray().some((item) => item != null && typeof item !== \"boolean\" && item !== \"\");\n const messages = useUiMessages();\n const commandListId = `k2b-chat-commands-${createUniqueId().replace(/[^A-Za-z0-9_-]/g, \"-\")}`;\n const [selectedCommandIndex, setSelectedCommandIndex] = createSignal(0);\n const [dragActive, setDragActive] = createSignal(false);\n const [addingFiles, setAddingFiles] = createSignal(false);\n const [submitting, setSubmitting] = createSignal(false);\n let composerRef: HTMLElement | undefined;\n let textareaRef: HTMLTextAreaElement | undefined;\n let fileInputRef: HTMLInputElement | undefined;\n let sawRunning = props.state === \"running\";\n\n const state = () => props.state ?? \"idle\";\n const running = () => state() === \"running\";\n const stopping = () => state() === \"stopping\";\n const runningSubmitIntent = () => props.runningSubmitIntent ?? \"steer\";\n const attachments = () => props.attachments ?? [];\n const [caret, setCaret] = createSignal(0);\n const [selectionEnd, setSelectionEnd] = createSignal(0);\n const [dismissed, setDismissed] = createSignal(false);\n const [composing, setComposing] = createSignal(false);\n const [searchResults, setSearchResults] = createSignal<readonly ChatCommand[]>([]);\n const [searching, setSearching] = createSignal(false);\n const [searchError, setSearchError] = createSignal(false);\n const [executing, setExecuting] = createSignal(false);\n let highlightRef: HTMLDivElement | undefined;\n let commandListRef: HTMLDivElement | undefined;\n const mentions = () => props.mentions ?? [];\n const commandQuery = createMemo(() => (dismissed() || composing() ? null : chatCommandQuery(props.value, caret(), selectionEnd())));\n const commandMatches = createMemo(() => {\n const token = commandQuery();\n if (!token) return [];\n return [\n ...(props.commands ?? []).filter((command) => command.name.toLowerCase().includes(token.query.toLowerCase())),\n ...searchResults(),\n ];\n });\n const commandsOpen = () => Boolean(commandQuery() && (props.commands?.length || props.searchCommands));\n createEffect(() => {\n if (!commandsOpen()) return;\n let disposed = false;\n const measure = () => {\n if (disposed || !commandListRef) return;\n let top = window.visualViewport?.offsetTop ?? 0;\n for (let parent = commandListRef.parentElement; parent; parent = parent.parentElement) {\n if (/(auto|scroll|hidden|clip)/.test(window.getComputedStyle(parent).overflowY)) {\n top = Math.max(top, parent.getBoundingClientRect().top);\n }\n }\n const bottom = commandListRef.parentElement!.getBoundingClientRect().bottom;\n commandListRef.style.setProperty(\"--k2b-chat-command-space\", `${Math.max(40, bottom - top - 8)}px`);\n };\n queueMicrotask(measure);\n window.addEventListener(\"resize\", measure);\n window.addEventListener(\"scroll\", measure, true);\n window.visualViewport?.addEventListener(\"resize\", measure);\n onCleanup(() => {\n disposed = true;\n window.removeEventListener(\"resize\", measure);\n window.removeEventListener(\"scroll\", measure, true);\n window.visualViewport?.removeEventListener(\"resize\", measure);\n });\n });\n createEffect(() => {\n const token = commandQuery();\n setSearchResults([]);\n setSearchError(false);\n if (!token || !props.searchCommands) {\n setSearching(false);\n return;\n }\n const abort = new AbortController();\n setSearching(true);\n const timer = setTimeout(() => {\n Promise.resolve(props.searchCommands!(token.query, abort.signal))\n .then((results) => {\n if (!abort.signal.aborted) setSearchResults(results);\n })\n .catch(() => {\n if (!abort.signal.aborted) setSearchError(true);\n })\n .finally(() => {\n if (!abort.signal.aborted) setSearching(false);\n });\n }, 120);\n onCleanup(() => {\n clearTimeout(timer);\n abort.abort();\n });\n });\n const history: { value: string; mentions: readonly ChatMention[]; caret: number }[] = [];\n let historyIndex = -1;\n createEffect(() => {\n props.draftKey;\n untrack(() => {\n history.length = 0;\n historyIndex = -1;\n setDismissed(true);\n });\n });\n const snapshot = () => ({ value: props.value, mentions: [...mentions()], caret: textareaRef?.selectionStart ?? 0 });\n const sameMentions = (a: readonly ChatMention[], b: readonly ChatMention[]) =>\n a.length === b.length &&\n a.every((item, index) => item.start === b[index]?.start && item.end === b[index]?.end && item.attachment === b[index]?.attachment);\n const record = () => {\n if (history[historyIndex]?.value !== props.value || !sameMentions(history[historyIndex]?.mentions ?? [], mentions())) {\n history.splice(historyIndex + 1);\n history.push(snapshot());\n let size = history.reduce((total, entry) => total + entry.value.length, 0);\n while (history.length > 2 && size > composerUndoBudgetChars) size -= history.shift()!.value.length;\n historyIndex = history.length - 1;\n }\n };\n const edit = (value: string, nextMentions = reconcileChatMentions(props.value, value, mentions())) => {\n record();\n props.onValueChange(value);\n props.onMentionsChange?.(nextMentions);\n record();\n setDismissed(false);\n };\n const restoreHistory = (direction: -1 | 1) => {\n record();\n const next = history[historyIndex + direction];\n if (!next) return;\n historyIndex += direction;\n props.onValueChange(next.value);\n props.onMentionsChange?.(next.mentions);\n queueMicrotask(() => {\n textareaRef?.setSelectionRange(next.caret, next.caret);\n syncCaret();\n });\n };\n const syncCaret = () => {\n setCaret(textareaRef?.selectionStart ?? props.value.length);\n setSelectionEnd(textareaRef?.selectionEnd ?? props.value.length);\n };\n const selectedCommand = () => commandMatches()[selectedCommandIndex()];\n const blocked = () => Boolean(props.disabled || stopping() || state() === \"submitting\" || executing() || addingFiles() || submitting());\n const hasDraft = () => Boolean(props.value.trim() || (!running() && attachments().length > 0));\n const canSubmit = () => !blocked() && hasDraft() && !(running() && runningSubmitIntent() === \"steer\" && mentions().length);\n const canSelectFiles = () => Boolean(props.fileSelection && !props.fileSelection.disabled && !running() && !blocked());\n const hasAddMenu = () => Boolean(props.fileSelection || props.menuActions?.length);\n const hasContextUsage = () => {\n if (props.contextPopupAction) return true;\n const context = props.contextUsage;\n if (!context || typeof context.contextWindow !== \"number\" || !Number.isFinite(context.contextWindow) || context.contextWindow <= 0) {\n return false;\n }\n return [context.usage?.total, context.usage?.input, context.usage?.output].some(\n (value) => typeof value === \"number\" && Number.isFinite(value) && value >= 0,\n );\n };\n\n const menuItems = (): readonly DropdownItemData[] => {\n const items: DropdownItemData[] = [];\n if (props.fileSelection) {\n items.push({\n icon: addingFiles() ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-paperclip\",\n label: props.fileSelection.label ?? messages().attachFiles,\n disabled: !canSelectFiles(),\n action: () => fileInputRef?.click(),\n });\n }\n for (const action of props.menuActions ?? []) {\n items.push({\n icon: action.icon,\n label: action.label,\n variant: action.variant,\n disabled: action.disabled,\n action: () => reportChatFailure(() => executeChatAction(action), props.onError),\n });\n }\n return items;\n };\n\n const autoResize = () => {\n if (!textareaRef) return;\n textareaRef.style.height = \"auto\";\n textareaRef.style.height = `${Math.min(textareaRef.scrollHeight, composerMaxInputHeight)}px`;\n };\n\n const focus = () => textareaRef?.focus();\n\n onMount(() => {\n autoResize();\n if (props.focusToken !== undefined) focus();\n });\n\n createEffect(() => {\n commandMatches();\n setSelectedCommandIndex(0);\n });\n\n createEffect(() => {\n const index = selectedCommandIndex();\n commandMatches();\n queueMicrotask(() => {\n const list = commandListRef;\n const item = list?.querySelector<HTMLElement>(`[id=\"${commandListId}-${index}\"]`);\n if (!list || !item?.isConnected) return;\n if (item.offsetTop < list.scrollTop) list.scrollTop = item.offsetTop;\n else if (item.offsetTop + item.offsetHeight > list.scrollTop + list.clientHeight) {\n list.scrollTop = item.offsetTop + item.offsetHeight - list.clientHeight;\n }\n });\n });\n\n createEffect(() => {\n props.value;\n queueMicrotask(autoResize);\n });\n\n createEffect(() => {\n props.focusToken;\n if (props.focusToken !== undefined) queueMicrotask(focus);\n });\n\n createEffect(() => {\n const active = running();\n if (sawRunning && !active && !props.disabled && typeof document !== \"undefined\") {\n const focused = document.activeElement as HTMLElement | null;\n const insideComposer = Boolean(focused && composerRef?.contains(focused));\n const editingElsewhere = Boolean(\n focused &&\n focused !== document.body &&\n !insideComposer &&\n (focused.matches(\"input, textarea, select\") || focused.isContentEditable || focused.closest(\"[role='dialog'], [popover]\")),\n );\n if (!editingElsewhere) queueMicrotask(focus);\n }\n sawRunning = active;\n });\n\n const setAttachments = (next: readonly ChatAttachment[]) => props.onAttachmentsChange?.(next);\n\n const renderAttachmentCopy = (attachment: ChatAttachment) => (\n <span>\n <strong title={attachment.name}>{attachment.name}</strong>\n </span>\n );\n\n const runFiles = async (files: FileList | readonly File[]) => {\n if (!canSelectFiles()) return;\n const selected = Array.from(files);\n if (selected.length === 0) return;\n setAddingFiles(true);\n try {\n await props.fileSelection?.onSelect(selected);\n } catch (error) {\n (props.fileSelection?.onError ?? props.onError)?.(error);\n } finally {\n setAddingFiles(false);\n if (fileInputRef) fileInputRef.value = \"\";\n queueMicrotask(focus);\n }\n };\n\n const submit = async () => {\n if (!canSubmit()) return;\n const intent = running() ? runningSubmitIntent() : \"send\";\n const previousValue = props.value;\n const previousAttachments = attachments();\n const previousMentions = mentions();\n const input: ChatSubmitInput = {\n intent,\n text: previousValue,\n mentions: previousMentions,\n attachments: intent !== \"steer\" ? previousAttachments : [],\n };\n\n setSubmitting(true);\n try {\n await runChatSubmission({\n clear: () => {\n props.onValueChange(\"\");\n props.onMentionsChange?.([]);\n if (intent !== \"steer\") setAttachments([]);\n },\n perform: () => props.onSubmit(input),\n restore: () => {\n props.onValueChange(previousValue);\n props.onMentionsChange?.(previousMentions);\n if (intent !== \"steer\") setAttachments(previousAttachments);\n },\n onError: props.onError,\n });\n } finally {\n setSubmitting(false);\n queueMicrotask(() => {\n autoResize();\n focus();\n });\n }\n };\n\n const executeCommand = async (command: ChatCommand) => {\n const token = commandQuery();\n if (!token || command.disabled || blocked()) return;\n const previous = snapshot();\n const key = props.draftKey;\n const replacement = command.mention ? command.mention.name + \" \" : \"\";\n const nextValue = props.value.slice(0, token.start) + replacement + props.value.slice(token.end);\n const nextMentions = reconcileChatMentions(props.value, nextValue, mentions());\n if (command.mention)\n nextMentions.push({ start: token.start, end: token.start + command.mention.name.length, attachment: command.mention });\n edit(nextValue, nextMentions);\n setDismissed(true);\n setExecuting(true);\n let submitRequested = false;\n try {\n await command.action?.({\n setValue: (value) => edit(value),\n submit: () => {\n submitRequested = true;\n },\n focus,\n });\n } catch (error) {\n submitRequested = false;\n if (props.draftKey === key && props.value === nextValue) {\n props.onValueChange(previous.value);\n props.onMentionsChange?.(previous.mentions);\n }\n props.onError?.(error);\n } finally {\n setExecuting(false);\n }\n if (submitRequested && props.draftKey === key) await submit();\n queueMicrotask(() => {\n if (props.draftKey !== key) return;\n textareaRef?.setSelectionRange(token.start + replacement.length, token.start + replacement.length);\n syncCaret();\n autoResize();\n focus();\n });\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.isComposing || composing()) return;\n if ((event.ctrlKey || event.metaKey) && event.key.toLowerCase() === \"z\") {\n event.preventDefault();\n restoreHistory(event.shiftKey ? 1 : -1);\n return;\n }\n const matches = commandMatches();\n if (commandsOpen()) {\n if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n event.preventDefault();\n setSelectedCommandIndex((index) => nextChatCommandIndex(index, matches.length, event.key === \"ArrowUp\" ? -1 : 1));\n return;\n }\n if ((event.key === \"Enter\" || event.key === \"Tab\") && matches.length > 0) {\n event.preventDefault();\n const command = selectedCommand();\n if (command) void executeCommand(command);\n return;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n setDismissed(true);\n return;\n }\n }\n if (event.key === \"Enter\" && !event.shiftKey && !event.isComposing) {\n event.preventDefault();\n void submit();\n }\n };\n\n return (\n <div class=\"k2b-chat-composer-shell\">\n <Show when={commandsOpen() || hasAccessory()}>\n <div class=\"k2b-chat-composer-slot\">\n <div style={{ visibility: commandsOpen() ? \"hidden\" : undefined }} inert={commandsOpen()}>\n {accessory()}\n </div>\n <Show when={commandsOpen()}>\n <div class=\"k2b-chat-composer-accessory\">\n <div\n ref={commandListRef}\n id={commandListId}\n class=\"k2b-chat-composer__commands\"\n role=\"listbox\"\n aria-label={messages().commands}\n >\n <For each={commandMatches()}>\n {(command, index) => (\n <button\n id={`${commandListId}-${index()}`}\n type=\"button\"\n role=\"option\"\n tabIndex={-1}\n aria-selected={index() === selectedCommandIndex()}\n aria-disabled={command.disabled}\n data-active={index() === selectedCommandIndex() ? \"true\" : undefined}\n onPointerDown={(event) => event.preventDefault()}\n onClick={() => void executeCommand(command)}\n >\n <i class={command.icon ?? \"ti ti-slash\"} aria-hidden=\"true\" />\n <strong>{command.label ?? `/${command.name}`}</strong>\n <small>{command.description}</small>\n </button>\n )}\n </For>\n <Show when={searching()}>\n <div role=\"status\" class=\"k2b-chat-composer__loading\">\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />\n <strong>{messages().loading}</strong>\n </div>\n </Show>\n <Show when={searchError()}>\n <div role=\"status\">\n <i class=\"ti ti-alert-circle\" /> {messages().error}\n </div>\n </Show>\n <Show when={!searching() && !searchError() && commandMatches().length === 0}>\n <div role=\"status\">{messages().noResults}</div>\n </Show>\n </div>\n </div>\n </Show>\n </div>\n </Show>\n <section\n ref={composerRef}\n class={`k2b-chat-composer ${props.class ?? \"\"}`}\n data-running={running() ? \"true\" : undefined}\n data-drag-active={dragActive() ? \"true\" : undefined}\n role=\"group\"\n aria-label={props.label ?? messages().messageComposer}\n >\n <Show when={attachments().length > 0}>\n <div class=\"k2b-chat-composer__attachments\" role=\"list\" aria-label={messages().attachments} tabIndex={0}>\n <For each={attachments()}>\n {(attachment) => (\n <div class=\"k2b-chat-composer__attachment\" role=\"listitem\">\n <div\n class=\"k2b-chat-composer__attachment-content\"\n classList={{ \"k2b-chat-composer__attachment-content--action\": Boolean(attachment.action) }}\n >\n <Show\n when={attachment.href}\n fallback={\n <div class=\"k2b-chat-composer__attachment-identity\">\n <Show\n when={attachment.kind === \"image\" && attachment.previewUrl}\n fallback={<i class={attachmentIcon(attachment)} aria-hidden=\"true\" />}\n >\n <img src={attachment.previewUrl} alt={attachment.alt ?? \"\"} />\n </Show>\n {renderAttachmentCopy(attachment)}\n </div>\n }\n >\n {(href) => (\n <a\n class=\"k2b-chat-composer__attachment-link\"\n href={href()}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={messages().openInNewTab({ name: attachment.name })}\n >\n <Show\n when={attachment.kind === \"image\" && attachment.previewUrl}\n fallback={<i class={attachmentIcon(attachment)} aria-hidden=\"true\" />}\n >\n <img src={attachment.previewUrl} alt={attachment.alt ?? \"\"} />\n </Show>\n {renderAttachmentCopy(attachment)}\n </a>\n )}\n </Show>\n <Show when={attachment.action}>\n {(action) => (\n <button\n type=\"button\"\n class=\"k2b-chat-composer__attachment-action\"\n disabled={blocked() || action().disabled}\n onClick={() => reportChatFailure(() => executeChatAction(action()), props.onError)}\n >\n <Show when={action().icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n {action().label}\n </button>\n )}\n </Show>\n </div>\n <Show when={props.onAttachmentsChange}>\n <button\n type=\"button\"\n class=\"k2b-chat-composer__attachment-remove\"\n aria-label={messages().removeNamed({ name: attachment.name })}\n disabled={blocked()}\n onClick={() => setAttachments(attachments().filter((candidate) => candidate.id !== attachment.id))}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n )}\n </For>\n </div>\n </Show>\n\n <div\n class=\"k2b-chat-composer__input\"\n role=\"group\"\n aria-label={messages().messageInput}\n onDragEnter={(event) => {\n if (!canSelectFiles() || !event.dataTransfer?.types.includes(\"Files\")) return;\n event.preventDefault();\n setDragActive(true);\n }}\n onDragOver={(event) => {\n if (!canSelectFiles() || !event.dataTransfer?.types.includes(\"Files\")) return;\n event.preventDefault();\n setDragActive(true);\n }}\n onDragLeave={(event) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) setDragActive(false);\n }}\n onDrop={(event) => {\n if (!event.dataTransfer?.types.includes(\"Files\")) return;\n event.preventDefault();\n setDragActive(false);\n if (canSelectFiles() && event.dataTransfer.files.length) void runFiles(event.dataTransfer.files);\n }}\n >\n <Show when={dragActive()}>\n <div class=\"k2b-chat-composer__drop\" aria-hidden=\"true\">\n {messages().dropFilesToAttach}\n </div>\n </Show>\n <Show when={mentions().length > 0}>\n <div ref={highlightRef} class=\"k2b-chat-composer__highlight\" aria-hidden=\"true\">\n <For each={chatMentionSegments(props.value, mentions())}>\n {(part) => <span classList={{ \"k2b-chat-composer__mention\": Boolean(part.mention) }}>{part.text}</span>}\n </For>\n {\"\\n\"}\n </div>\n </Show>\n {/* biome-ignore lint/a11y/useAriaPropsSupportedByRole: popup attributes are conditional with the combobox role */}\n <textarea\n ref={textareaRef}\n classList={{ \"k2b-chat-composer__textarea--highlighted\": mentions().length > 0 }}\n rows={1}\n value={props.value}\n disabled={blocked()}\n placeholder={props.placeholder ?? (running() ? messages().addGuidance : messages().writeMessage)}\n aria-label={props.inputLabel ?? messages().message}\n role={commandsOpen() ? \"combobox\" : undefined}\n aria-autocomplete={commandsOpen() ? \"list\" : undefined}\n aria-controls={commandsOpen() ? commandListId : undefined}\n aria-expanded={commandsOpen() ? \"true\" : undefined}\n aria-activedescendant={selectedCommand() ? `${commandListId}-${selectedCommandIndex()}` : undefined}\n onInput={(event) => {\n edit(event.currentTarget.value);\n syncCaret();\n autoResize();\n }}\n onPaste={(event) => {\n const clipboardData = event.clipboardData;\n if (canSelectFiles() && clipboardData?.files.length) {\n event.preventDefault();\n void runFiles(clipboardData.files);\n return;\n }\n props.onPaste?.(event);\n }}\n onSelect={syncCaret}\n onBlur={() => setDismissed(true)}\n onClick={() => {\n setDismissed(false);\n syncCaret();\n }}\n onKeyUp={syncCaret}\n onCompositionStart={() => setComposing(true)}\n onCompositionEnd={() => {\n setComposing(false);\n syncCaret();\n }}\n onScroll={() => {\n if (highlightRef && textareaRef) highlightRef.scrollTop = textareaRef.scrollTop;\n }}\n onBeforeInput={(event) => {\n if (event.inputType === \"historyUndo\" || event.inputType === \"historyRedo\") {\n event.preventDefault();\n restoreHistory(event.inputType === \"historyUndo\" ? -1 : 1);\n }\n }}\n onKeyDown={onKeyDown}\n />\n </div>\n\n <Show when={props.error}>\n <div class=\"k2b-chat-composer__error\" role=\"alert\">\n <i class=\"ti ti-alert-circle\" aria-hidden=\"true\" />\n {props.error}\n </div>\n </Show>\n\n <footer class=\"k2b-chat-composer__footer\">\n <Show\n when={props.footerContent}\n fallback={\n <>\n <div class=\"k2b-chat-composer__tools\">\n {props.footerTools}\n <Show when={hasAddMenu()}>\n <Dropdown.Root position=\"top-right\" width=\"12rem\" label={messages().addToChat} items={menuItems()} disabled={blocked()}>\n <Dropdown.Trigger\n appearance=\"plain\"\n class=\"k2b-chat-composer__icon-action\"\n label={messages().addToChat}\n title={messages().addToChat}\n >\n <i class=\"ti ti-plus\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </Show>\n <Show when={props.fileSelection}>\n <input\n ref={fileInputRef}\n class=\"k2b-sr-only\"\n type=\"file\"\n tabIndex={-1}\n aria-hidden=\"true\"\n accept={props.fileSelection?.accept}\n multiple={props.fileSelection?.multiple ?? true}\n onChange={(event) => {\n if (event.currentTarget.files?.length) void runFiles(event.currentTarget.files);\n }}\n />\n </Show>\n <Show when={(props.models?.length ?? 0) > 0}>\n <SelectChip\n aria-label={messages().chooseModel}\n position=\"top-right\"\n class=\"k2b-chat-composer__model\"\n menuWidth=\"15rem\"\n placeholder={messages().model}\n value={() => props.selectedModelId ?? \"\"}\n options={(props.models ?? []).map((model) => ({\n value: model.id,\n label: model.label,\n description: model.description,\n icon: model.icon,\n image: model.image,\n }))}\n disabled={blocked() || running() || !props.onModelChange}\n onValueChange={(modelId) => {\n props.onModelChange?.(modelId);\n queueMicrotask(focus);\n }}\n />\n </Show>\n {props.modelDetails}\n </div>\n\n <div class=\"k2b-chat-composer__submit\">\n <For each={props.contextActions}>\n {(action) => (\n <button\n type=\"button\"\n class=\"k2b-chat-composer__icon-action\"\n data-tone={action.variant === \"danger\" ? \"danger\" : undefined}\n disabled={action.disabled}\n aria-pressed={action.pressed}\n aria-label={action.label}\n title={action.label}\n onClick={() => reportChatFailure(() => executeChatAction(action), props.onError)}\n >\n <i class={action.icon ?? \"ti ti-dots\"} aria-hidden=\"true\" />\n </button>\n )}\n </For>\n <Show when={hasContextUsage() ? (props.contextUsage ?? {}) : undefined}>\n {(usage) => <ContextUsage {...usage()} action={props.contextPopupAction} onActionError={props.onError} />}\n </Show>\n {props.submitTools}\n <Show\n when={running() && !hasDraft() && props.onStop}\n fallback={\n <button\n type=\"button\"\n class=\"k2b-chat-composer__send\"\n disabled={!canSubmit()}\n aria-label={\n submitting()\n ? running()\n ? runningSubmitIntent() === \"queue\"\n ? messages().queueing\n : messages().steering\n : messages().sending\n : running()\n ? runningSubmitIntent() === \"queue\"\n ? messages().queueMessage\n : messages().steerResponse\n : messages().sendMessage\n }\n title={\n running()\n ? runningSubmitIntent() === \"queue\"\n ? messages().queueMessage\n : messages().steerResponse\n : messages().sendMessage\n }\n onClick={() => void submit()}\n >\n <i class={submitting() ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-arrow-up\"} aria-hidden=\"true\" />\n </button>\n }\n >\n <button\n type=\"button\"\n class=\"k2b-chat-composer__stop\"\n disabled={stopping()}\n aria-label={stopping() ? messages().stopping : messages().stopResponse}\n title={stopping() ? messages().stopping : messages().stopResponse}\n onClick={() => reportChatFailure(() => props.onStop?.(), props.onError)}\n >\n <i class={stopping() ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-player-stop\"} aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n </>\n }\n >\n {(content) => content()}\n </Show>\n </footer>\n </section>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createSignal","createUniqueId","onCleanup","onMount","splitProps","positionTooltipSurface","ChatContextPopup","props","local","rest","id","open","setOpen","pinned","trigger","surface","timer","clear","clearTimeout","undefined","position","show","showPopover","close","restoreFocus","hidePopover","focus","preview","event","pointerType","setTimeout","leave","contains","document","activeElement","resize","ResizeObserver","observe","outside","path","composedPath","includes","escape","key","preventDefault","stopPropagation","Boolean","addEventListener","window","disconnect","removeEventListener","_el$","_$getNextElement","_tmpl$","_ref$","_$use","_$spread","_$mergeProps","aria-expanded","onClick","_$insert","children","_$runHydrationEvents","_el$2","_tmpl$2","$$focusout","next","relatedTarget","Node","$$focusin","_ref$2","_$setAttribute","content","_$effect","_$delegateEvents"],"sources":["chat/ChatContextPopup.tsx"],"sourcesContent":["import { createSignal, createUniqueId, type JSX, onCleanup, onMount, splitProps } from \"solid-js\";\nimport { positionTooltipSurface } from \"../feedback/tooltip-position\";\n\nexport type ChatContextPopupProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"content\" | \"ref\" | \"onClick\" | \"onPointerEnter\" | \"onPointerLeave\"> & { content: JSX.Element };\n\n/** Context details support hover preview and deliberate click-to-pin without changing tooltip behavior. */\nexport function ChatContextPopup(props: ChatContextPopupProps): JSX.Element {\n const [local, rest] = splitProps(props, [\"content\", \"children\"]);\n const id = `chat-context-${createUniqueId()}`;\n const [open, setOpen] = createSignal(false);\n let pinned = false;\n let trigger: HTMLButtonElement | undefined;\n let surface: HTMLDivElement | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const clear = () => {\n clearTimeout(timer);\n timer = undefined;\n };\n const position = () => {\n if (open() && surface && trigger) positionTooltipSurface(surface, trigger, \"top\");\n };\n const show = () => {\n clear();\n if (!surface || open()) return;\n surface.showPopover();\n setOpen(true);\n position();\n };\n const close = (restoreFocus = false) => {\n clear();\n pinned = false;\n if (open()) surface?.hidePopover();\n setOpen(false);\n if (restoreFocus) trigger?.focus();\n };\n const preview = (event: PointerEvent) => {\n clear();\n if (event.pointerType !== \"touch\" && !open()) timer = setTimeout(show, 250);\n };\n const leave = () => {\n clear();\n timer = setTimeout(() => {\n if (!pinned && !surface?.contains(document.activeElement)) close();\n }, 180);\n };\n onMount(() => {\n const resize = new ResizeObserver(position);\n if (surface) resize.observe(surface);\n const outside = (event: PointerEvent) => {\n const path = event.composedPath();\n if (!path.includes(trigger!) && !path.includes(surface!)) close();\n };\n const escape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && open()) {\n event.preventDefault();\n event.stopPropagation();\n close(Boolean(surface?.contains(document.activeElement)));\n }\n };\n document.addEventListener(\"pointerdown\", outside);\n document.addEventListener(\"keydown\", escape);\n window.addEventListener(\"resize\", position);\n window.addEventListener(\"scroll\", position, true);\n onCleanup(() => {\n resize.disconnect();\n clear();\n document.removeEventListener(\"pointerdown\", outside);\n document.removeEventListener(\"keydown\", escape);\n window.removeEventListener(\"resize\", position);\n window.removeEventListener(\"scroll\", position, true);\n });\n });\n return (\n <>\n <button\n type=\"button\"\n {...rest}\n ref={trigger}\n aria-expanded={open()}\n aria-controls={id}\n aria-haspopup=\"dialog\"\n onPointerEnter={preview}\n onPointerLeave={leave}\n onClick={() => {\n if (pinned) close();\n else {\n pinned = true;\n show();\n }\n }}\n >\n {local.children}\n </button>\n <div\n ref={surface}\n id={id}\n popover=\"manual\"\n role=\"dialog\"\n aria-label={props[\"aria-label\"]}\n class=\"k2b-chat-context-popup\"\n onPointerEnter={clear}\n onPointerLeave={leave}\n onFocusIn={clear}\n onFocusOut={(event) => {\n const next = event.relatedTarget;\n if (!(next instanceof Node) || (!surface?.contains(next) && next !== trigger)) close();\n }}\n >\n {local.content}\n </div>\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createSignal","createUniqueId","onCleanup","onMount","splitProps","positionTooltipSurface","ChatContextPopup","props","local","rest","id","open","setOpen","pinned","trigger","surface","timer","clear","clearTimeout","undefined","position","show","showPopover","close","restoreFocus","hidePopover","focus","preview","event","pointerType","setTimeout","leave","contains","document","activeElement","resize","ResizeObserver","observe","outside","path","composedPath","includes","escape","key","preventDefault","stopPropagation","Boolean","addEventListener","window","disconnect","removeEventListener","_el$","_$getNextElement","_tmpl$","_ref$","_$use","_$spread","_$mergeProps","aria-expanded","onClick","_$insert","children","_$runHydrationEvents","_el$2","_tmpl$2","$$focusout","next","relatedTarget","Node","$$focusin","_ref$2","_$setAttribute","content","_$effect","_$delegateEvents"],"sources":["chat/ChatContextPopup.tsx"],"sourcesContent":["import { createSignal, createUniqueId, type JSX, onCleanup, onMount, splitProps } from \"solid-js\";\nimport { positionTooltipSurface } from \"../feedback/tooltip-position\";\n\nexport type ChatContextPopupProps = Omit<\n JSX.ButtonHTMLAttributes<HTMLButtonElement>,\n \"content\" | \"ref\" | \"onClick\" | \"onPointerEnter\" | \"onPointerLeave\"\n> & { content: JSX.Element };\n\n/** Context details support hover preview and deliberate click-to-pin without changing tooltip behavior. */\nexport function ChatContextPopup(props: ChatContextPopupProps): JSX.Element {\n const [local, rest] = splitProps(props, [\"content\", \"children\"]);\n const id = `chat-context-${createUniqueId()}`;\n const [open, setOpen] = createSignal(false);\n let pinned = false;\n let trigger: HTMLButtonElement | undefined;\n let surface: HTMLDivElement | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const clear = () => {\n clearTimeout(timer);\n timer = undefined;\n };\n const position = () => {\n if (open() && surface && trigger) positionTooltipSurface(surface, trigger, \"top\");\n };\n const show = () => {\n clear();\n if (!surface || open()) return;\n surface.showPopover();\n setOpen(true);\n position();\n };\n const close = (restoreFocus = false) => {\n clear();\n pinned = false;\n if (open()) surface?.hidePopover();\n setOpen(false);\n if (restoreFocus) trigger?.focus();\n };\n const preview = (event: PointerEvent) => {\n clear();\n if (event.pointerType !== \"touch\" && !open()) timer = setTimeout(show, 250);\n };\n const leave = () => {\n clear();\n timer = setTimeout(() => {\n if (!pinned && !surface?.contains(document.activeElement)) close();\n }, 180);\n };\n onMount(() => {\n const resize = new ResizeObserver(position);\n if (surface) resize.observe(surface);\n const outside = (event: PointerEvent) => {\n const path = event.composedPath();\n if (!path.includes(trigger!) && !path.includes(surface!)) close();\n };\n const escape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && open()) {\n event.preventDefault();\n event.stopPropagation();\n close(Boolean(surface?.contains(document.activeElement)));\n }\n };\n document.addEventListener(\"pointerdown\", outside);\n document.addEventListener(\"keydown\", escape);\n window.addEventListener(\"resize\", position);\n window.addEventListener(\"scroll\", position, true);\n onCleanup(() => {\n resize.disconnect();\n clear();\n document.removeEventListener(\"pointerdown\", outside);\n document.removeEventListener(\"keydown\", escape);\n window.removeEventListener(\"resize\", position);\n window.removeEventListener(\"scroll\", position, true);\n });\n });\n return (\n <>\n <button\n type=\"button\"\n {...rest}\n ref={trigger}\n aria-expanded={open()}\n aria-controls={id}\n aria-haspopup=\"dialog\"\n onPointerEnter={preview}\n onPointerLeave={leave}\n onClick={() => {\n if (pinned) close();\n else {\n pinned = true;\n show();\n }\n }}\n >\n {local.children}\n </button>\n <div\n ref={surface}\n id={id}\n popover=\"manual\"\n role=\"dialog\"\n aria-label={props[\"aria-label\"]}\n class=\"k2b-chat-context-popup\"\n onPointerEnter={clear}\n onPointerLeave={leave}\n onFocusIn={clear}\n onFocusOut={(event) => {\n const next = event.relatedTarget;\n if (!(next instanceof Node) || (!surface?.contains(next) && next !== trigger)) close();\n }}\n >\n {local.content}\n </div>\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAAA,SAASA,YAAY,EAAEC,cAAc,EAAYC,SAAS,EAAEC,OAAO,EAAEC,UAAU,QAAQ,UAAU;AACjG,SAASC,sBAAsB,QAAQ,8BAA8B;AAOrE;AACA,OAAO,SAASC,gBAAgBA,CAACC,KAA4B,EAAe;EAC1E,MAAM,CAACC,KAAK,EAAEC,IAAI,CAAC,GAAGL,UAAU,CAACG,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;EAChE,MAAMG,EAAE,GAAG,gBAAgBT,cAAc,CAAC,CAAC,EAAE;EAC7C,MAAM,CAACU,IAAI,EAAEC,OAAO,CAAC,GAAGZ,YAAY,CAAC,KAAK,CAAC;EAC3C,IAAIa,MAAM,GAAG,KAAK;EAClB,IAAIC,OAAsC;EAC1C,IAAIC,OAAmC;EACvC,IAAIC,KAAgD;EACpD,MAAMC,KAAK,GAAGA,CAAA,KAAM;IAClBC,YAAY,CAACF,KAAK,CAAC;IACnBA,KAAK,GAAGG,SAAS;EACnB,CAAC;EACD,MAAMC,QAAQ,GAAGA,CAAA,KAAM;IACrB,IAAIT,IAAI,CAAC,CAAC,IAAII,OAAO,IAAID,OAAO,EAAET,sBAAsB,CAACU,OAAO,EAAED,OAAO,EAAE,KAAK,CAAC;EACnF,CAAC;EACD,MAAMO,IAAI,GAAGA,CAAA,KAAM;IACjBJ,KAAK,CAAC,CAAC;IACP,IAAI,CAACF,OAAO,IAAIJ,IAAI,CAAC,CAAC,EAAE;IACxBI,OAAO,CAACO,WAAW,CAAC,CAAC;IACrBV,OAAO,CAAC,IAAI,CAAC;IACbQ,QAAQ,CAAC,CAAC;EACZ,CAAC;EACD,MAAMG,KAAK,GAAGA,CAACC,YAAY,GAAG,KAAK,KAAK;IACtCP,KAAK,CAAC,CAAC;IACPJ,MAAM,GAAG,KAAK;IACd,IAAIF,IAAI,CAAC,CAAC,EAAEI,OAAO,EAAEU,WAAW,CAAC,CAAC;IAClCb,OAAO,CAAC,KAAK,CAAC;IACd,IAAIY,YAAY,EAAEV,OAAO,EAAEY,KAAK,CAAC,CAAC;EACpC,CAAC;EACD,MAAMC,OAAO,GAAIC,KAAmB,IAAK;IACvCX,KAAK,CAAC,CAAC;IACP,IAAIW,KAAK,CAACC,WAAW,KAAK,OAAO,IAAI,CAAClB,IAAI,CAAC,CAAC,EAAEK,KAAK,GAAGc,UAAU,CAACT,IAAI,EAAE,GAAG,CAAC;EAC7E,CAAC;EACD,MAAMU,KAAK,GAAGA,CAAA,KAAM;IAClBd,KAAK,CAAC,CAAC;IACPD,KAAK,GAAGc,UAAU,CAAC,MAAM;MACvB,IAAI,CAACjB,MAAM,IAAI,CAACE,OAAO,EAAEiB,QAAQ,CAACC,QAAQ,CAACC,aAAa,CAAC,EAAEX,KAAK,CAAC,CAAC;IACpE,CAAC,EAAE,GAAG,CAAC;EACT,CAAC;EACDpB,OAAO,CAAC,MAAM;IACZ,MAAMgC,MAAM,GAAG,IAAIC,cAAc,CAAChB,QAAQ,CAAC;IAC3C,IAAIL,OAAO,EAAEoB,MAAM,CAACE,OAAO,CAACtB,OAAO,CAAC;IACpC,MAAMuB,OAAO,GAAIV,KAAmB,IAAK;MACvC,MAAMW,IAAI,GAAGX,KAAK,CAACY,YAAY,CAAC,CAAC;MACjC,IAAI,CAACD,IAAI,CAACE,QAAQ,CAAC3B,OAAQ,CAAC,IAAI,CAACyB,IAAI,CAACE,QAAQ,CAAC1B,OAAQ,CAAC,EAAEQ,KAAK,CAAC,CAAC;IACnE,CAAC;IACD,MAAMmB,MAAM,GAAId,KAAoB,IAAK;MACvC,IAAIA,KAAK,CAACe,GAAG,KAAK,QAAQ,IAAIhC,IAAI,CAAC,CAAC,EAAE;QACpCiB,KAAK,CAACgB,cAAc,CAAC,CAAC;QACtBhB,KAAK,CAACiB,eAAe,CAAC,CAAC;QACvBtB,KAAK,CAACuB,OAAO,CAAC/B,OAAO,EAAEiB,QAAQ,CAACC,QAAQ,CAACC,aAAa,CAAC,CAAC,CAAC;MAC3D;IACF,CAAC;IACDD,QAAQ,CAACc,gBAAgB,CAAC,aAAa,EAAET,OAAO,CAAC;IACjDL,QAAQ,CAACc,gBAAgB,CAAC,SAAS,EAAEL,MAAM,CAAC;IAC5CM,MAAM,CAACD,gBAAgB,CAAC,QAAQ,EAAE3B,QAAQ,CAAC;IAC3C4B,MAAM,CAACD,gBAAgB,CAAC,QAAQ,EAAE3B,QAAQ,EAAE,IAAI,CAAC;IACjDlB,SAAS,CAAC,MAAM;MACdiC,MAAM,CAACc,UAAU,CAAC,CAAC;MACnBhC,KAAK,CAAC,CAAC;MACPgB,QAAQ,CAACiB,mBAAmB,CAAC,aAAa,EAAEZ,OAAO,CAAC;MACpDL,QAAQ,CAACiB,mBAAmB,CAAC,SAAS,EAAER,MAAM,CAAC;MAC/CM,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAE9B,QAAQ,CAAC;MAC9C4B,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAE9B,QAAQ,EAAE,IAAI,CAAC;IACtD,CAAC,CAAC;EACJ,CAAC,CAAC;EACF;IAAA,IAAA+B,IAAA,GAAAC,gBAAA,CAAAC,MAAA;IAAA,IAAAC,KAAA,GAKWxC,OAAO;IAAA,OAAAwC,KAAA,kBAAAC,KAAA,CAAAD,KAAA,EAAAH,IAAA,IAAPrC,OAAO,GAAAqC,IAAA;IAAAK,QAAA,CAAAL,IAAA,EAAAM,YAAA,CADRhD,IAAI;MAAA,qBAAAiD,CAAA;QAAA,OAEO/C,IAAI,CAAC,CAAC;MAAA;MAAA,iBACND,EAAE;MAAA,iBACH,QAAQ;MAAA,kBACNiB,OAAO;MAAA,kBACPI,KAAK;MAAA,WACZ4B,CAAA,KAAM;QACb,IAAI9C,MAAM,EAAEU,KAAK,CAAC,CAAC,CAAC,KACf;UACHV,MAAM,GAAG,IAAI;UACbQ,IAAI,CAAC,CAAC;QACR;MACF;IAAC;IAAAuC,QAAA,CAAAT,IAAA,QAEA3C,KAAK,CAACqD,QAAQ;IAAAC,oBAAA;IAAA,OAAAX,IAAA;EAAA;IAAA,IAAAY,KAAA,GAAAX,gBAAA,CAAAY,OAAA;IAAAD,KAAA,CAAAE,UAAA,GAYFrC,KAAK,IAAK;MACrB,MAAMsC,IAAI,GAAGtC,KAAK,CAACuC,aAAa;MAChC,IAAI,EAAED,IAAI,YAAYE,IAAI,CAAC,IAAK,CAACrD,OAAO,EAAEiB,QAAQ,CAACkC,IAAI,CAAC,IAAIA,IAAI,KAAKpD,OAAQ,EAAES,KAAK,CAAC,CAAC;IACxF,CAAC;IAAAwC,KAAA,CAAAM,SAAA,GAJUpD,KAAK;IAAA8C,KAAA,CAAAhB,gBAAA,iBADAhB,KAAK;IAAAgC,KAAA,CAAAhB,gBAAA,iBADL9B,KAAK;IAAA,IAAAqD,MAAA,GANhBvD,OAAO;IAAA,OAAAuD,MAAA,kBAAAf,KAAA,CAAAe,MAAA,EAAAP,KAAA,IAAPhD,OAAO,GAAAgD,KAAA;IAAAQ,cAAA,CAAAR,KAAA,QACRrD,EAAE;IAAAkD,QAAA,CAAAG,KAAA,QAaLvD,KAAK,CAACgE,OAAO;IAAAC,QAAA,OAAAF,cAAA,CAAAR,KAAA,gBAVFxD,KAAK,CAAC,YAAY,CAAC;IAAAuD,oBAAA;IAAA,OAAAC,KAAA;EAAA;AAcvC;AAACW,gBAAA","ignoreList":[]}
@@ -40,11 +40,11 @@ var _tmpl$ = /*#__PURE__*/_$template(`<span class=k2b-chat-progress-dots aria-hi
40
40
  _tmpl$24 = /*#__PURE__*/_$template(`<div><dt></dt><dd>`),
41
41
  _tmpl$25 = /*#__PURE__*/_$template(`<div class=k2b-chat-context__tooltip><strong></strong><!$><!/><dl><!$><!/><div><dt></dt><dd></dd></div><div><dt></dt><dd></dd></div><!$><!/><div><dt></dt><dd></dd></div><!$><!/></dl><!$><!/>`);
42
42
  import { createSignal, For, onCleanup, Show } from "solid-js";
43
- import { Dropdown } from "../actions/Dropdown";
44
- import { ChatContextPopup } from "./ChatContextPopup";
45
43
  import { Button } from "../actions/Button";
44
+ import { Dropdown } from "../actions/Dropdown";
46
45
  import { useUiMessages } from "../intl/messages";
47
46
  import { ProgressBar } from "../surfaces/ProgressBar";
47
+ import { ChatContextPopup } from "./ChatContextPopup";
48
48
  import { executeChatAction } from "./chat-behavior";
49
49
  const roleLabel = (role, messages) => {
50
50
  if (role === "assistant") return messages.assistant;