@agimon-ai/po-web-components 0.0.0-alpha.95 → 0.0.0-alpha.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/packages/core/po-web-components/src/components/AgentAvatar.d.mts +6 -2
- package/dist/packages/core/po-web-components/src/components/AgentAvatar.d.mts.map +1 -1
- package/dist/packages/core/po-web-components/src/components/AgentAvatar.mjs +1 -1
- package/dist/packages/core/po-web-components/src/components/AgentAvatar.mjs.map +1 -1
- package/dist/packages/core/po-web-components/src/components/ProfilePicker.d.mts.map +1 -1
- package/dist/packages/core/po-web-components/src/components/ProfilePicker.mjs +1 -1
- package/dist/packages/core/po-web-components/src/components/ProfilePicker.mjs.map +1 -1
- package/dist/packages/core/po-web-components/src/lib/profilePicker.d.mts +8 -0
- package/dist/packages/core/po-web-components/src/lib/profilePicker.d.mts.map +1 -1
- package/dist/packages/core/po-web-components/src/lib/profilePicker.mjs +1 -1
- package/dist/packages/core/po-web-components/src/lib/profilePicker.mjs.map +1 -1
- package/dist/src/components/AgentAvatar.cjs +1 -1
- package/dist/src/components/AgentAvatar.cjs.map +1 -1
- package/dist/src/components/ProfilePicker.cjs +1 -1
- package/dist/src/components/ProfilePicker.cjs.map +1 -1
- package/dist/src/lib/profilePicker.cjs +1 -1
- package/dist/src/lib/profilePicker.cjs.map +1 -1
- package/dist/text.cjs +1 -1
- package/dist/text.d.mts +2 -2
- package/dist/text.mjs +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require("./src/icons/icons.cjs");const ee=require("./src/lib/cn.cjs"),e=require("./src/components/Accordion.cjs"),t=require("./src/lib/ansiSpans.cjs"),n=require("./src/components/AnsiText.cjs"),r=require("./src/components/Avatar.cjs"),i=require("./src/components/Dot.cjs"),a=require("./src/components/AgentAvatar.cjs"),o=require("./src/components/Badge.cjs"),s=require("./src/components/Tooltip.cjs"),c=require("./src/components/Breadcrumb.cjs"),l=require("./src/components/Spinner.cjs"),u=require("./src/components/Button.cjs"),d=require("./src/components/Dialog.cjs"),f=require("./src/lib/review.cjs"),p=require("./src/components/DiffView.cjs"),te=require("./src/components/Drawer.cjs"),m=require("./src/components/DropdownMenu.cjs"),h=require("./src/components/Checkbox.cjs"),g=require("./src/lib/editorLanguage.cjs"),_=require("./src/lib/markdownMedia.cjs"),v=require("./src/lib/syntaxHighlight.cjs"),y=require("./src/components/SyntaxText.cjs"),ne=require("./src/components/CodeBlock.cjs"),re=require("./src/components/Skeleton.cjs"),ie=require("./src/components/CodeEditor.cjs"),b=require("./src/components/Collapsible.cjs"),x=require("./src/components/Input.cjs"),S=require("./src/lib/optionList.cjs"),C=require("./src/components/OptionList.cjs"),w=require("./src/components/Command.cjs"),T=require("./src/components/EmptyState.cjs"),E=require("./src/components/FlowGraph.cjs"),D=require("./src/lib/hashlineHighlight.cjs"),ae=require("./src/components/HashlineLines.cjs"),oe=require("./src/components/Kbd.cjs"),O=require("./src/components/McpToolWidget.cjs"),se=require("./src/components/Label.cjs"),ce=require("./src/components/MediaViewerDialog.cjs"),le=require("./src/components/Markdown.cjs"),ue=require("./src/components/ViewableImage.cjs"),de=require("./src/lib/media.cjs"),k=require("./src/components/PdfPreview.cjs"),fe=require("./src/components/MediaPreview.cjs"),A=require("./src/components/StatusBadge.cjs"),j=require("./src/components/MessageItem.cjs"),M=require("./src/components/MessageLines.cjs"),N=require("./src/components/Panel.cjs"),P=require("./src/components/Popover.cjs"),F=require("./src/components/Picker.cjs"),I=require("./src/lib/profilePicker.cjs"),L=require("./src/components/ProfilePicker.cjs"),R=require("./src/lib/runDuration.cjs"),z=require("./src/components/LiveDuration.cjs"),B=require("./src/components/Progress.cjs"),V=require("./src/components/RadioGroup.cjs"),pe=require("./src/components/Textarea.cjs"),me=require("./src/components/ReviewCommentDraft.cjs"),H=require("./src/components/ScrollArea.cjs"),he=require("./src/components/SectionLabel.cjs"),U=require("./src/components/Select.cjs"),ge=require("./src/components/Separator.cjs"),W=require("./src/components/Settings.cjs"),G=require("./src/components/Sheet.cjs"),_e=require("./src/components/StreamCursor.cjs"),ve=require("./src/components/Switch.cjs"),K=require("./src/components/Tabs.cjs"),ye=require("./src/components/TerminalView.cjs"),q=require("./src/components/Toast.cjs"),be=require("./src/components/PathText.cjs"),xe=require("./src/components/ToolPathLink.cjs"),J=require("./src/lib/collapse.cjs"),Y=require("./src/lib/hashlineView.cjs"),X=require("./src/lib/pathGroups.cjs"),Z=require("./src/lib/tone.cjs"),Se=require("./src/types/editor.cjs"),Q=require("./src/types/tone.cjs");let $=require("lucide-react");exports.ACCENT_TONES=Q.ACCENT_TONES,exports.Accordion=e.Accordion,exports.AccordionContent=e.AccordionContent,exports.AccordionItem=e.AccordionItem,exports.AccordionTrigger=e.AccordionTrigger,Object.defineProperty(exports,"ActivityIcon",{enumerable:!0,get:function(){return $.Activity}}),exports.AgentAvatar=a.AgentAvatar,Object.defineProperty(exports,"AlertIcon",{enumerable:!0,get:function(){return $.CircleAlert}}),exports.AnsiLine=n.AnsiLine,exports.AnsiText=n.AnsiText,Object.defineProperty(exports,"AppWindowIcon",{enumerable:!0,get:function(){return $.AppWindow}}),Object.defineProperty(exports,"ArrowLeftIcon",{enumerable:!0,get:function(){return $.ArrowLeft}}),Object.defineProperty(exports,"ArrowRightIcon",{enumerable:!0,get:function(){return $.ArrowRight}}),Object.defineProperty(exports,"AudioLinesIcon",{enumerable:!0,get:function(){return $.AudioLines}}),exports.Avatar=r.Avatar,exports.AvatarFallback=r.AvatarFallback,exports.AvatarImage=r.AvatarImage,exports.BREADCRUMB_ELLIPSIS=c.BREADCRUMB_ELLIPSIS,exports.Badge=o.Badge,Object.defineProperty(exports,"BellIcon",{enumerable:!0,get:function(){return $.Bell}}),Object.defineProperty(exports,"BookmarkPlusIcon",{enumerable:!0,get:function(){return $.BookmarkPlus}}),Object.defineProperty(exports,"BranchIcon",{enumerable:!0,get:function(){return $.GitBranch}}),exports.Breadcrumb=c.Breadcrumb,exports.Button=u.Button,exports.CHIP_TONES=Q.CHIP_TONES,exports.CHIP_TO_STATUS=Z.CHIP_TO_STATUS,Object.defineProperty(exports,"CalendarIcon",{enumerable:!0,get:function(){return $.Calendar}}),Object.defineProperty(exports,"CheckIcon",{enumerable:!0,get:function(){return $.Check}}),exports.Checkbox=h.Checkbox,Object.defineProperty(exports,"ChevronDownIcon",{enumerable:!0,get:function(){return $.ChevronDown}}),Object.defineProperty(exports,"ChevronRightIcon",{enumerable:!0,get:function(){return $.ChevronRight}}),Object.defineProperty(exports,"ChevronUpIcon",{enumerable:!0,get:function(){return $.ChevronUp}}),Object.defineProperty(exports,"CloseIcon",{enumerable:!0,get:function(){return $.X}}),exports.CodeBlock=ne.CodeBlock,exports.CodeEditor=ie.CodeEditor,exports.Collapsible=b.Collapsible,exports.CollapsibleContent=b.CollapsibleContent,exports.CollapsibleTrigger=b.CollapsibleTrigger,exports.CommandDialog=w.CommandDialog,exports.CommandEmpty=w.CommandEmpty,exports.CommandFooter=w.CommandFooter,exports.CommandGroup=w.CommandGroup,exports.CommandGroupLabel=w.CommandGroupLabel,exports.CommandHeader=w.CommandHeader,exports.CommandInput=w.CommandInput,exports.CommandItem=w.CommandItem,exports.CommandItemLabel=w.CommandItemLabel,exports.CommandList=w.CommandList,Object.defineProperty(exports,"CopyIcon",{enumerable:!0,get:function(){return $.Copy}}),exports.DOT_TONES=Q.DOT_TONES,exports.Dialog=d.Dialog,exports.DialogBody=d.DialogBody,exports.DialogClose=d.DialogClose,exports.DialogContent=d.DialogContent,exports.DialogDescription=d.DialogDescription,exports.DialogFooter=d.DialogFooter,exports.DialogHeader=d.DialogHeader,exports.DialogTitle=d.DialogTitle,exports.DialogTrigger=d.DialogTrigger,exports.DiffView=p.DiffView,exports.Dot=i.Dot,Object.defineProperty(exports,"DownloadIcon",{enumerable:!0,get:function(){return $.Download}}),exports.Drawer=te.Drawer,exports.DropdownMenu=m.DropdownMenu,exports.DropdownMenuCheckboxItem=m.DropdownMenuCheckboxItem,exports.DropdownMenuContent=m.DropdownMenuContent,exports.DropdownMenuGroup=m.DropdownMenuGroup,exports.DropdownMenuItem=m.DropdownMenuItem,exports.DropdownMenuLabel=m.DropdownMenuLabel,exports.DropdownMenuRadioGroup=m.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=m.DropdownMenuRadioItem,exports.DropdownMenuSeparator=m.DropdownMenuSeparator,exports.DropdownMenuShortcut=m.DropdownMenuShortcut,exports.DropdownMenuSub=m.DropdownMenuSub,exports.DropdownMenuSubContent=m.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=m.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=m.DropdownMenuTrigger,Object.defineProperty(exports,"EditIcon",{enumerable:!0,get:function(){return $.Pencil}}),exports.EmptyState=T.EmptyState,Object.defineProperty(exports,"EnterIcon",{enumerable:!0,get:function(){return $.CornerDownLeft}}),Object.defineProperty(exports,"ExternalLinkIcon",{enumerable:!0,get:function(){return $.ExternalLink}}),Object.defineProperty(exports,"FileIcon",{enumerable:!0,get:function(){return $.FileText}}),exports.FlowGraph=E.FlowGraph,Object.defineProperty(exports,"FolderIcon",{enumerable:!0,get:function(){return $.Folder}}),Object.defineProperty(exports,"ForkIcon",{enumerable:!0,get:function(){return $.GitFork}}),exports.GREP_COLLAPSED_LINES=Y.GREP_COLLAPSED_LINES,Object.defineProperty(exports,"GearIcon",{enumerable:!0,get:function(){return $.Settings}}),Object.defineProperty(exports,"GlobeIcon",{enumerable:!0,get:function(){return $.Globe}}),Object.defineProperty(exports,"GridIcon",{enumerable:!0,get:function(){return $.LayoutGrid}}),exports.HashlineLines=ae.HashlineLines,Object.defineProperty(exports,"HelpIcon",{enumerable:!0,get:function(){return $.CircleHelp}}),Object.defineProperty(exports,"HomeIcon",{enumerable:!0,get:function(){return $.House}}),Object.defineProperty(exports,"ImageIcon",{enumerable:!0,get:function(){return $.Image}}),exports.Input=x.Input,exports.Kbd=oe.Kbd,Object.defineProperty(exports,"KebabIcon",{enumerable:!0,get:function(){return $.MoreVertical}}),exports.LINE_TONE_TO_STATUS=Z.LINE_TONE_TO_STATUS,exports.Label=se.Label,Object.defineProperty(exports,"LightbulbIcon",{enumerable:!0,get:function(){return $.Lightbulb}}),Object.defineProperty(exports,"ListIcon",{enumerable:!0,get:function(){return $.List}}),exports.LiveDuration=z.LiveDuration,Object.defineProperty(exports,"LoaderIcon",{enumerable:!0,get:function(){return $.Loader2}}),Object.defineProperty(exports,"LockIcon",{enumerable:!0,get:function(){return $.Lock}}),exports.MAX_DIGIT_SHORTCUT=S.MAX_DIGIT_SHORTCUT,exports.MEDIA_KINDS=Se.MEDIA_KINDS,exports.MESSAGE_LINE_TONES=Q.MESSAGE_LINE_TONES,exports.Markdown=le.Markdown,exports.McpToolFields=O.McpToolFields,exports.McpToolFrame=O.McpToolFrame,exports.McpToolOutput=O.McpToolOutput,exports.MediaPreview=fe.MediaPreview,exports.MediaViewerDialog=ce.MediaViewerDialog,Object.defineProperty(exports,"MenuIcon",{enumerable:!0,get:function(){return $.Menu}}),Object.defineProperty(exports,"MessageIcon",{enumerable:!0,get:function(){return $.MessageCircle}}),exports.MessageItem=j.MessageItem,exports.MessageItemBody=j.MessageItemBody,exports.MessageItemGroup=j.MessageItemGroup,exports.MessageItemHeader=j.MessageItemHeader,exports.MessageItemHeaderAccessoryContext=j.MessageItemHeaderAccessoryContext,exports.MessageItemStatus=j.MessageItemStatus,exports.MessageLines=M.MessageLines,Object.defineProperty(exports,"MicIcon",{enumerable:!0,get:function(){return $.Mic}}),Object.defineProperty(exports,"MonitorIcon",{enumerable:!0,get:function(){return $.Monitor}}),exports.NavTab=K.NavTab,exports.NavTabBadge=K.NavTabBadge,exports.OptionLabel=C.OptionLabel,exports.OptionList=C.OptionList,exports.OptionRow=C.OptionRow,Object.defineProperty(exports,"PaletteIcon",{enumerable:!0,get:function(){return $.Palette}}),exports.Panel=N.Panel,exports.PanelBody=N.PanelBody,exports.PanelHeader=N.PanelHeader,Object.defineProperty(exports,"PaperclipIcon",{enumerable:!0,get:function(){return $.Paperclip}}),exports.PathText=be.PathText,exports.PdfPreview=k.PdfPreview,exports.PickerContent=F.PickerContent,Object.defineProperty(exports,"PlayCircleIcon",{enumerable:!0,get:function(){return $.CirclePlay}}),Object.defineProperty(exports,"PlusIcon",{enumerable:!0,get:function(){return $.Plus}}),exports.Popover=P.Popover,exports.PopoverAnchor=P.PopoverAnchor,exports.PopoverClose=P.PopoverClose,exports.PopoverContent=P.PopoverContent,exports.PopoverFooter=P.PopoverFooter,exports.PopoverHeader=P.PopoverHeader,exports.PopoverTrigger=P.PopoverTrigger,exports.ProfilePicker=L.ProfilePicker,exports.Progress=B.Progress,Object.defineProperty(exports,"PuzzleIcon",{enumerable:!0,get:function(){return $.Puzzle}}),Object.defineProperty(exports,"QuoteIcon",{enumerable:!0,get:function(){return $.Quote}}),exports.READ_COLLAPSED_LINES=Y.READ_COLLAPSED_LINES,exports.RadioGroup=V.RadioGroup,exports.RadioGroupCard=V.RadioGroupCard,exports.RadioGroupItem=V.RadioGroupItem,Object.defineProperty(exports,"RefreshIcon",{enumerable:!0,get:function(){return $.RefreshCw}}),exports.ReviewCommentDraft=me.ReviewCommentDraft,Object.defineProperty(exports,"RewindIcon",{enumerable:!0,get:function(){return $.Rewind}}),exports.STATUS_EDGE=A.STATUS_EDGE,exports.STATUS_GLYPH=j.STATUS_GLYPH,exports.STATUS_LABEL=j.STATUS_LABEL,exports.STATUS_TONES=Q.STATUS_TONES,exports.STATUS_TO_CHIP=Z.STATUS_TO_CHIP,exports.STATUS_TO_DOT=Z.STATUS_TO_DOT,exports.ScrollArea=H.ScrollArea,exports.ScrollBar=H.ScrollBar,Object.defineProperty(exports,"SearchIcon",{enumerable:!0,get:function(){return $.Search}}),exports.SectionLabel=he.SectionLabel,exports.Select=U.Select,exports.SelectContent=U.SelectContent,exports.SelectGroup=U.SelectGroup,exports.SelectItem=U.SelectItem,exports.SelectLabel=U.SelectLabel,exports.SelectSeparator=U.SelectSeparator,exports.SelectTrigger=U.SelectTrigger,exports.SelectValue=U.SelectValue,Object.defineProperty(exports,"SendIcon",{enumerable:!0,get:function(){return $.Send}}),exports.Separator=ge.Separator,Object.defineProperty(exports,"ServerIcon",{enumerable:!0,get:function(){return $.Server}}),exports.SettingsActions=W.SettingsActions,exports.SettingsCard=W.SettingsCard,exports.SettingsDescription=W.SettingsDescription,exports.SettingsField=W.SettingsField,exports.SettingsHeader=W.SettingsHeader,exports.SettingsNote=W.SettingsNote,exports.SettingsPage=W.SettingsPage,exports.SettingsRow=W.SettingsRow,exports.SettingsRowDescription=W.SettingsRowDescription,exports.SettingsRowText=W.SettingsRowText,exports.SettingsRowTitle=W.SettingsRowTitle,exports.SettingsSection=W.SettingsSection,exports.SettingsSectionDescription=W.SettingsSectionDescription,exports.SettingsSectionHeader=W.SettingsSectionHeader,exports.SettingsSectionTitle=W.SettingsSectionTitle,exports.SettingsTitle=W.SettingsTitle,exports.Sheet=G.Sheet,exports.SheetBody=G.SheetBody,exports.SheetClose=G.SheetClose,exports.SheetContent=G.SheetContent,exports.SheetDescription=G.SheetDescription,exports.SheetFooter=G.SheetFooter,exports.SheetHeader=G.SheetHeader,exports.SheetOverlay=G.SheetOverlay,exports.SheetTitle=G.SheetTitle,exports.SheetTrigger=G.SheetTrigger,Object.defineProperty(exports,"ShieldIcon",{enumerable:!0,get:function(){return $.ShieldCheck}}),Object.defineProperty(exports,"ShrinkIcon",{enumerable:!0,get:function(){return $.Shrink}}),exports.Skeleton=re.Skeleton,Object.defineProperty(exports,"SlidersIcon",{enumerable:!0,get:function(){return $.SlidersHorizontal}}),Object.defineProperty(exports,"SparklesIcon",{enumerable:!0,get:function(){return $.Sparkles}}),exports.Spinner=l.Spinner,exports.StatusBadge=A.StatusBadge,Object.defineProperty(exports,"StopIcon",{enumerable:!0,get:function(){return $.Square}}),exports.StreamCursor=_e.StreamCursor,exports.Switch=ve.Switch,exports.SyntaxLine=y.SyntaxLine,exports.SyntaxText=y.SyntaxText,exports.Tabs=K.Tabs,exports.TabsContent=K.TabsContent,exports.TabsList=K.TabsList,exports.TabsTrigger=K.TabsTrigger,Object.defineProperty(exports,"TaskIcon",{enumerable:!0,get:function(){return $.SquareCheckBig}}),exports.TerminalView=ye.TerminalView,exports.Textarea=pe.Textarea,exports.Toast=q.Toast,exports.ToastAction=q.ToastAction,exports.ToastClose=q.ToastClose,exports.ToastDescription=q.ToastDescription,exports.ToastProvider=q.ToastProvider,exports.ToastTitle=q.ToastTitle,exports.ToastViewport=q.ToastViewport,exports.ToolPathLink=xe.ToolPathLink,exports.Tooltip=s.Tooltip,exports.TooltipContent=s.TooltipContent,exports.TooltipProvider=s.TooltipProvider,exports.TooltipTrigger=s.TooltipTrigger,Object.defineProperty(exports,"TrashIcon",{enumerable:!0,get:function(){return $.Trash2}}),Object.defineProperty(exports,"UnlockIcon",{enumerable:!0,get:function(){return $.LockOpen}}),Object.defineProperty(exports,"UserIcon",{enumerable:!0,get:function(){return $.UserRound}}),Object.defineProperty(exports,"UsersIcon",{enumerable:!0,get:function(){return $.Users}}),exports.ViewableImage=ue.ViewableImage,Object.defineProperty(exports,"VolumeIcon",{enumerable:!0,get:function(){return $.Volume2}}),Object.defineProperty(exports,"WorkflowIcon",{enumerable:!0,get:function(){return $.Workflow}}),Object.defineProperty(exports,"WrenchIcon",{enumerable:!0,get:function(){return $.Wrench}}),exports.agentInitials=a.agentInitials,exports.ansiSpans=t.ansiSpans,exports.badgeVariants=o.badgeVariants,exports.breadcrumbSegments=c.breadcrumbSegments,exports.buildReviewPrompt=f.buildReviewPrompt,exports.buttonVariants=u.buttonVariants,exports.clockRefreshMs=R.clockRefreshMs,exports.clockText=R.clockText,exports.cn=ee.cn,exports.collapseLines=J.collapseLines,exports.compactDetails=Y.compactDetails,exports.defaultReviewHeading=f.defaultReviewHeading,exports.detectGrammar=v.detectGrammar,exports.dialogFooterVariants=d.dialogFooterVariants,exports.diffGutterWidth=f.diffGutterWidth,exports.diffRangeOf=f.diffRangeOf,exports.dotVariants=i.dotVariants,exports.drawableImageUrl=_.drawableImageUrl,exports.dropdownMenuItemVariants=m.dropdownMenuItemVariants,exports.fieldVariants=x.fieldVariants,exports.formatRunDuration=R.formatRunDuration,exports.grammarKeyOf=g.grammarKeyOf,exports.groupByDirectory=X.groupByDirectory,exports.groupRowLabel=X.groupRowLabel,exports.handleOptionListKey=S.handleOptionListKey,exports.hashlineBody=Y.hashlineBody,exports.hashlineGroups=D.hashlineGroups,exports.hashlineGroupsKey=D.hashlineGroupsKey,exports.highlightToLines=v.highlightToLines,exports.markdownMediaReview=_.markdownMediaReview,exports.markdownMediaReviewSlot=_.markdownMediaReviewSlot,exports.mediaKindOf=de.mediaKindOf,exports.messageItemRowVariants=j.messageItemRowVariants,exports.messageItemStatusVariants=j.messageItemStatusVariants,exports.messageItemVariants=j.messageItemVariants,exports.messageLineVariants=M.messageLineVariants,exports.optionListHint=S.optionListHint,exports.optionListVariants=C.optionListVariants,exports.optionMarker=S.optionMarker,exports.optionMarkerVariants=C.optionMarkerVariants,exports.optionRowVariants=C.optionRowVariants,exports.parseFileHeader=Y.parseFileHeader,exports.parseProfileCatalog=I.parseProfileCatalog,exports.parseTaggedLine=Y.parseTaggedLine,exports.presentHashlineLines=Y.presentHashlineLines,exports.resolvePdfViewportRegion=k.resolvePdfViewportRegion,exports.resultTextLines=Y.resultTextLines,exports.reviewCommentAnchor=f.reviewCommentAnchor,exports.statusBadgeVariants=A.statusBadgeVariants,exports.svgImageUrl=_.svgImageUrl,exports.syntaxStyleOf=v.syntaxStyleOf,exports.tabBadgeVariants=K.tabBadgeVariants,exports.tabVariants=K.tabVariants,exports.takeTrailingNotice=Y.takeTrailingNotice,exports.toastVariants=q.toastVariants,exports.toolTone=j.toolTone,exports.trimSnippet=f.trimSnippet,exports.useMessageItem=j.useMessageItem,exports.useProfileCatalog=L.useProfileCatalog,exports.useSyntaxLines=y.useSyntaxLines;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require("./src/icons/icons.cjs");const ee=require("./src/lib/cn.cjs"),e=require("./src/components/Accordion.cjs"),t=require("./src/lib/ansiSpans.cjs"),n=require("./src/components/AnsiText.cjs"),r=require("./src/components/Avatar.cjs"),i=require("./src/components/Dot.cjs"),a=require("./src/components/AgentAvatar.cjs"),o=require("./src/components/Badge.cjs"),s=require("./src/components/Tooltip.cjs"),c=require("./src/components/Breadcrumb.cjs"),te=require("./src/components/Spinner.cjs"),l=require("./src/components/Button.cjs"),u=require("./src/components/Dialog.cjs"),d=require("./src/lib/review.cjs"),f=require("./src/components/DiffView.cjs"),p=require("./src/components/Drawer.cjs"),m=require("./src/components/DropdownMenu.cjs"),h=require("./src/components/Checkbox.cjs"),g=require("./src/lib/editorLanguage.cjs"),_=require("./src/lib/markdownMedia.cjs"),v=require("./src/lib/syntaxHighlight.cjs"),y=require("./src/components/SyntaxText.cjs"),ne=require("./src/components/CodeBlock.cjs"),re=require("./src/components/Skeleton.cjs"),ie=require("./src/components/CodeEditor.cjs"),b=require("./src/components/Collapsible.cjs"),x=require("./src/components/Input.cjs"),S=require("./src/lib/optionList.cjs"),C=require("./src/components/OptionList.cjs"),w=require("./src/components/Command.cjs"),T=require("./src/components/EmptyState.cjs"),E=require("./src/components/FlowGraph.cjs"),D=require("./src/lib/hashlineHighlight.cjs"),ae=require("./src/components/HashlineLines.cjs"),oe=require("./src/components/Kbd.cjs"),O=require("./src/components/McpToolWidget.cjs"),se=require("./src/components/Label.cjs"),ce=require("./src/components/MediaViewerDialog.cjs"),le=require("./src/components/Markdown.cjs"),ue=require("./src/components/ViewableImage.cjs"),de=require("./src/lib/media.cjs"),k=require("./src/components/PdfPreview.cjs"),fe=require("./src/components/MediaPreview.cjs"),A=require("./src/components/StatusBadge.cjs"),j=require("./src/components/MessageItem.cjs"),M=require("./src/components/MessageLines.cjs"),N=require("./src/components/Panel.cjs"),P=require("./src/components/Popover.cjs"),F=require("./src/components/Picker.cjs"),I=require("./src/lib/profilePicker.cjs"),L=require("./src/components/ProfilePicker.cjs"),R=require("./src/lib/runDuration.cjs"),z=require("./src/components/LiveDuration.cjs"),B=require("./src/components/Progress.cjs"),V=require("./src/components/RadioGroup.cjs"),pe=require("./src/components/Textarea.cjs"),me=require("./src/components/ReviewCommentDraft.cjs"),H=require("./src/components/ScrollArea.cjs"),he=require("./src/components/SectionLabel.cjs"),U=require("./src/components/Select.cjs"),ge=require("./src/components/Separator.cjs"),W=require("./src/components/Settings.cjs"),G=require("./src/components/Sheet.cjs"),_e=require("./src/components/StreamCursor.cjs"),ve=require("./src/components/Switch.cjs"),K=require("./src/components/Tabs.cjs"),ye=require("./src/components/TerminalView.cjs"),q=require("./src/components/Toast.cjs"),be=require("./src/components/PathText.cjs"),xe=require("./src/components/ToolPathLink.cjs"),J=require("./src/lib/collapse.cjs"),Y=require("./src/lib/hashlineView.cjs"),X=require("./src/lib/pathGroups.cjs"),Z=require("./src/lib/tone.cjs"),Se=require("./src/types/editor.cjs"),Q=require("./src/types/tone.cjs");let $=require("lucide-react");exports.ACCENT_TONES=Q.ACCENT_TONES,exports.Accordion=e.Accordion,exports.AccordionContent=e.AccordionContent,exports.AccordionItem=e.AccordionItem,exports.AccordionTrigger=e.AccordionTrigger,Object.defineProperty(exports,"ActivityIcon",{enumerable:!0,get:function(){return $.Activity}}),exports.AgentAvatar=a.AgentAvatar,Object.defineProperty(exports,"AlertIcon",{enumerable:!0,get:function(){return $.CircleAlert}}),exports.AnsiLine=n.AnsiLine,exports.AnsiText=n.AnsiText,Object.defineProperty(exports,"AppWindowIcon",{enumerable:!0,get:function(){return $.AppWindow}}),Object.defineProperty(exports,"ArrowLeftIcon",{enumerable:!0,get:function(){return $.ArrowLeft}}),Object.defineProperty(exports,"ArrowRightIcon",{enumerable:!0,get:function(){return $.ArrowRight}}),Object.defineProperty(exports,"AudioLinesIcon",{enumerable:!0,get:function(){return $.AudioLines}}),exports.Avatar=r.Avatar,exports.AvatarFallback=r.AvatarFallback,exports.AvatarImage=r.AvatarImage,exports.BREADCRUMB_ELLIPSIS=c.BREADCRUMB_ELLIPSIS,exports.Badge=o.Badge,Object.defineProperty(exports,"BellIcon",{enumerable:!0,get:function(){return $.Bell}}),Object.defineProperty(exports,"BookmarkPlusIcon",{enumerable:!0,get:function(){return $.BookmarkPlus}}),Object.defineProperty(exports,"BranchIcon",{enumerable:!0,get:function(){return $.GitBranch}}),exports.Breadcrumb=c.Breadcrumb,exports.Button=l.Button,exports.CHIP_TONES=Q.CHIP_TONES,exports.CHIP_TO_STATUS=Z.CHIP_TO_STATUS,Object.defineProperty(exports,"CalendarIcon",{enumerable:!0,get:function(){return $.Calendar}}),Object.defineProperty(exports,"CheckIcon",{enumerable:!0,get:function(){return $.Check}}),exports.Checkbox=h.Checkbox,Object.defineProperty(exports,"ChevronDownIcon",{enumerable:!0,get:function(){return $.ChevronDown}}),Object.defineProperty(exports,"ChevronRightIcon",{enumerable:!0,get:function(){return $.ChevronRight}}),Object.defineProperty(exports,"ChevronUpIcon",{enumerable:!0,get:function(){return $.ChevronUp}}),Object.defineProperty(exports,"CloseIcon",{enumerable:!0,get:function(){return $.X}}),exports.CodeBlock=ne.CodeBlock,exports.CodeEditor=ie.CodeEditor,exports.Collapsible=b.Collapsible,exports.CollapsibleContent=b.CollapsibleContent,exports.CollapsibleTrigger=b.CollapsibleTrigger,exports.CommandDialog=w.CommandDialog,exports.CommandEmpty=w.CommandEmpty,exports.CommandFooter=w.CommandFooter,exports.CommandGroup=w.CommandGroup,exports.CommandGroupLabel=w.CommandGroupLabel,exports.CommandHeader=w.CommandHeader,exports.CommandInput=w.CommandInput,exports.CommandItem=w.CommandItem,exports.CommandItemLabel=w.CommandItemLabel,exports.CommandList=w.CommandList,Object.defineProperty(exports,"CopyIcon",{enumerable:!0,get:function(){return $.Copy}}),exports.DOT_TONES=Q.DOT_TONES,exports.Dialog=u.Dialog,exports.DialogBody=u.DialogBody,exports.DialogClose=u.DialogClose,exports.DialogContent=u.DialogContent,exports.DialogDescription=u.DialogDescription,exports.DialogFooter=u.DialogFooter,exports.DialogHeader=u.DialogHeader,exports.DialogTitle=u.DialogTitle,exports.DialogTrigger=u.DialogTrigger,exports.DiffView=f.DiffView,exports.Dot=i.Dot,Object.defineProperty(exports,"DownloadIcon",{enumerable:!0,get:function(){return $.Download}}),exports.Drawer=p.Drawer,exports.DropdownMenu=m.DropdownMenu,exports.DropdownMenuCheckboxItem=m.DropdownMenuCheckboxItem,exports.DropdownMenuContent=m.DropdownMenuContent,exports.DropdownMenuGroup=m.DropdownMenuGroup,exports.DropdownMenuItem=m.DropdownMenuItem,exports.DropdownMenuLabel=m.DropdownMenuLabel,exports.DropdownMenuRadioGroup=m.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=m.DropdownMenuRadioItem,exports.DropdownMenuSeparator=m.DropdownMenuSeparator,exports.DropdownMenuShortcut=m.DropdownMenuShortcut,exports.DropdownMenuSub=m.DropdownMenuSub,exports.DropdownMenuSubContent=m.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=m.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=m.DropdownMenuTrigger,Object.defineProperty(exports,"EditIcon",{enumerable:!0,get:function(){return $.Pencil}}),exports.EmptyState=T.EmptyState,Object.defineProperty(exports,"EnterIcon",{enumerable:!0,get:function(){return $.CornerDownLeft}}),Object.defineProperty(exports,"ExternalLinkIcon",{enumerable:!0,get:function(){return $.ExternalLink}}),Object.defineProperty(exports,"FileIcon",{enumerable:!0,get:function(){return $.FileText}}),exports.FlowGraph=E.FlowGraph,Object.defineProperty(exports,"FolderIcon",{enumerable:!0,get:function(){return $.Folder}}),Object.defineProperty(exports,"ForkIcon",{enumerable:!0,get:function(){return $.GitFork}}),exports.GREP_COLLAPSED_LINES=Y.GREP_COLLAPSED_LINES,Object.defineProperty(exports,"GearIcon",{enumerable:!0,get:function(){return $.Settings}}),Object.defineProperty(exports,"GlobeIcon",{enumerable:!0,get:function(){return $.Globe}}),Object.defineProperty(exports,"GridIcon",{enumerable:!0,get:function(){return $.LayoutGrid}}),exports.HashlineLines=ae.HashlineLines,Object.defineProperty(exports,"HelpIcon",{enumerable:!0,get:function(){return $.CircleHelp}}),Object.defineProperty(exports,"HomeIcon",{enumerable:!0,get:function(){return $.House}}),Object.defineProperty(exports,"ImageIcon",{enumerable:!0,get:function(){return $.Image}}),exports.Input=x.Input,exports.Kbd=oe.Kbd,Object.defineProperty(exports,"KebabIcon",{enumerable:!0,get:function(){return $.MoreVertical}}),exports.LINE_TONE_TO_STATUS=Z.LINE_TONE_TO_STATUS,exports.Label=se.Label,Object.defineProperty(exports,"LightbulbIcon",{enumerable:!0,get:function(){return $.Lightbulb}}),Object.defineProperty(exports,"ListIcon",{enumerable:!0,get:function(){return $.List}}),exports.LiveDuration=z.LiveDuration,Object.defineProperty(exports,"LoaderIcon",{enumerable:!0,get:function(){return $.Loader2}}),Object.defineProperty(exports,"LockIcon",{enumerable:!0,get:function(){return $.Lock}}),exports.MAX_DIGIT_SHORTCUT=S.MAX_DIGIT_SHORTCUT,exports.MEDIA_KINDS=Se.MEDIA_KINDS,exports.MESSAGE_LINE_TONES=Q.MESSAGE_LINE_TONES,exports.Markdown=le.Markdown,exports.McpToolFields=O.McpToolFields,exports.McpToolFrame=O.McpToolFrame,exports.McpToolOutput=O.McpToolOutput,exports.MediaPreview=fe.MediaPreview,exports.MediaViewerDialog=ce.MediaViewerDialog,Object.defineProperty(exports,"MenuIcon",{enumerable:!0,get:function(){return $.Menu}}),Object.defineProperty(exports,"MessageIcon",{enumerable:!0,get:function(){return $.MessageCircle}}),exports.MessageItem=j.MessageItem,exports.MessageItemBody=j.MessageItemBody,exports.MessageItemGroup=j.MessageItemGroup,exports.MessageItemHeader=j.MessageItemHeader,exports.MessageItemHeaderAccessoryContext=j.MessageItemHeaderAccessoryContext,exports.MessageItemStatus=j.MessageItemStatus,exports.MessageLines=M.MessageLines,Object.defineProperty(exports,"MicIcon",{enumerable:!0,get:function(){return $.Mic}}),Object.defineProperty(exports,"MonitorIcon",{enumerable:!0,get:function(){return $.Monitor}}),exports.NavTab=K.NavTab,exports.NavTabBadge=K.NavTabBadge,exports.OptionLabel=C.OptionLabel,exports.OptionList=C.OptionList,exports.OptionRow=C.OptionRow,Object.defineProperty(exports,"PaletteIcon",{enumerable:!0,get:function(){return $.Palette}}),exports.Panel=N.Panel,exports.PanelBody=N.PanelBody,exports.PanelHeader=N.PanelHeader,Object.defineProperty(exports,"PaperclipIcon",{enumerable:!0,get:function(){return $.Paperclip}}),exports.PathText=be.PathText,exports.PdfPreview=k.PdfPreview,exports.PickerContent=F.PickerContent,Object.defineProperty(exports,"PlayCircleIcon",{enumerable:!0,get:function(){return $.CirclePlay}}),Object.defineProperty(exports,"PlusIcon",{enumerable:!0,get:function(){return $.Plus}}),exports.Popover=P.Popover,exports.PopoverAnchor=P.PopoverAnchor,exports.PopoverClose=P.PopoverClose,exports.PopoverContent=P.PopoverContent,exports.PopoverFooter=P.PopoverFooter,exports.PopoverHeader=P.PopoverHeader,exports.PopoverTrigger=P.PopoverTrigger,exports.ProfilePicker=L.ProfilePicker,exports.Progress=B.Progress,Object.defineProperty(exports,"PuzzleIcon",{enumerable:!0,get:function(){return $.Puzzle}}),Object.defineProperty(exports,"QuoteIcon",{enumerable:!0,get:function(){return $.Quote}}),exports.READ_COLLAPSED_LINES=Y.READ_COLLAPSED_LINES,exports.RadioGroup=V.RadioGroup,exports.RadioGroupCard=V.RadioGroupCard,exports.RadioGroupItem=V.RadioGroupItem,Object.defineProperty(exports,"RefreshIcon",{enumerable:!0,get:function(){return $.RefreshCw}}),exports.ReviewCommentDraft=me.ReviewCommentDraft,Object.defineProperty(exports,"RewindIcon",{enumerable:!0,get:function(){return $.Rewind}}),exports.STATUS_EDGE=A.STATUS_EDGE,exports.STATUS_GLYPH=j.STATUS_GLYPH,exports.STATUS_LABEL=j.STATUS_LABEL,exports.STATUS_TONES=Q.STATUS_TONES,exports.STATUS_TO_CHIP=Z.STATUS_TO_CHIP,exports.STATUS_TO_DOT=Z.STATUS_TO_DOT,exports.ScrollArea=H.ScrollArea,exports.ScrollBar=H.ScrollBar,Object.defineProperty(exports,"SearchIcon",{enumerable:!0,get:function(){return $.Search}}),exports.SectionLabel=he.SectionLabel,exports.Select=U.Select,exports.SelectContent=U.SelectContent,exports.SelectGroup=U.SelectGroup,exports.SelectItem=U.SelectItem,exports.SelectLabel=U.SelectLabel,exports.SelectSeparator=U.SelectSeparator,exports.SelectTrigger=U.SelectTrigger,exports.SelectValue=U.SelectValue,Object.defineProperty(exports,"SendIcon",{enumerable:!0,get:function(){return $.Send}}),exports.Separator=ge.Separator,Object.defineProperty(exports,"ServerIcon",{enumerable:!0,get:function(){return $.Server}}),exports.SettingsActions=W.SettingsActions,exports.SettingsCard=W.SettingsCard,exports.SettingsDescription=W.SettingsDescription,exports.SettingsField=W.SettingsField,exports.SettingsHeader=W.SettingsHeader,exports.SettingsNote=W.SettingsNote,exports.SettingsPage=W.SettingsPage,exports.SettingsRow=W.SettingsRow,exports.SettingsRowDescription=W.SettingsRowDescription,exports.SettingsRowText=W.SettingsRowText,exports.SettingsRowTitle=W.SettingsRowTitle,exports.SettingsSection=W.SettingsSection,exports.SettingsSectionDescription=W.SettingsSectionDescription,exports.SettingsSectionHeader=W.SettingsSectionHeader,exports.SettingsSectionTitle=W.SettingsSectionTitle,exports.SettingsTitle=W.SettingsTitle,exports.Sheet=G.Sheet,exports.SheetBody=G.SheetBody,exports.SheetClose=G.SheetClose,exports.SheetContent=G.SheetContent,exports.SheetDescription=G.SheetDescription,exports.SheetFooter=G.SheetFooter,exports.SheetHeader=G.SheetHeader,exports.SheetOverlay=G.SheetOverlay,exports.SheetTitle=G.SheetTitle,exports.SheetTrigger=G.SheetTrigger,Object.defineProperty(exports,"ShieldIcon",{enumerable:!0,get:function(){return $.ShieldCheck}}),Object.defineProperty(exports,"ShrinkIcon",{enumerable:!0,get:function(){return $.Shrink}}),exports.Skeleton=re.Skeleton,Object.defineProperty(exports,"SlidersIcon",{enumerable:!0,get:function(){return $.SlidersHorizontal}}),Object.defineProperty(exports,"SparklesIcon",{enumerable:!0,get:function(){return $.Sparkles}}),exports.Spinner=te.Spinner,exports.StatusBadge=A.StatusBadge,Object.defineProperty(exports,"StopIcon",{enumerable:!0,get:function(){return $.Square}}),exports.StreamCursor=_e.StreamCursor,exports.Switch=ve.Switch,exports.SyntaxLine=y.SyntaxLine,exports.SyntaxText=y.SyntaxText,exports.Tabs=K.Tabs,exports.TabsContent=K.TabsContent,exports.TabsList=K.TabsList,exports.TabsTrigger=K.TabsTrigger,Object.defineProperty(exports,"TaskIcon",{enumerable:!0,get:function(){return $.SquareCheckBig}}),exports.TerminalView=ye.TerminalView,exports.Textarea=pe.Textarea,exports.Toast=q.Toast,exports.ToastAction=q.ToastAction,exports.ToastClose=q.ToastClose,exports.ToastDescription=q.ToastDescription,exports.ToastProvider=q.ToastProvider,exports.ToastTitle=q.ToastTitle,exports.ToastViewport=q.ToastViewport,exports.ToolPathLink=xe.ToolPathLink,exports.Tooltip=s.Tooltip,exports.TooltipContent=s.TooltipContent,exports.TooltipProvider=s.TooltipProvider,exports.TooltipTrigger=s.TooltipTrigger,Object.defineProperty(exports,"TrashIcon",{enumerable:!0,get:function(){return $.Trash2}}),Object.defineProperty(exports,"UnlockIcon",{enumerable:!0,get:function(){return $.LockOpen}}),Object.defineProperty(exports,"UserIcon",{enumerable:!0,get:function(){return $.UserRound}}),Object.defineProperty(exports,"UsersIcon",{enumerable:!0,get:function(){return $.Users}}),exports.ViewableImage=ue.ViewableImage,Object.defineProperty(exports,"VolumeIcon",{enumerable:!0,get:function(){return $.Volume2}}),Object.defineProperty(exports,"WorkflowIcon",{enumerable:!0,get:function(){return $.Workflow}}),Object.defineProperty(exports,"WrenchIcon",{enumerable:!0,get:function(){return $.Wrench}}),exports.agentInitials=a.agentInitials,exports.ansiSpans=t.ansiSpans,exports.badgeVariants=o.badgeVariants,exports.breadcrumbSegments=c.breadcrumbSegments,exports.buildReviewPrompt=d.buildReviewPrompt,exports.buttonVariants=l.buttonVariants,exports.clockRefreshMs=R.clockRefreshMs,exports.clockText=R.clockText,exports.cn=ee.cn,exports.collapseLines=J.collapseLines,exports.compactDetails=Y.compactDetails,exports.defaultReviewHeading=d.defaultReviewHeading,exports.detectGrammar=v.detectGrammar,exports.dialogFooterVariants=u.dialogFooterVariants,exports.diffGutterWidth=d.diffGutterWidth,exports.diffRangeOf=d.diffRangeOf,exports.dotVariants=i.dotVariants,exports.drawableImageUrl=_.drawableImageUrl,exports.dropdownMenuItemVariants=m.dropdownMenuItemVariants,exports.fieldVariants=x.fieldVariants,exports.formatRunDuration=R.formatRunDuration,exports.grammarKeyOf=g.grammarKeyOf,exports.groupByDirectory=X.groupByDirectory,exports.groupRowLabel=X.groupRowLabel,exports.handleOptionListKey=S.handleOptionListKey,exports.hashlineBody=Y.hashlineBody,exports.hashlineGroups=D.hashlineGroups,exports.hashlineGroupsKey=D.hashlineGroupsKey,exports.highlightToLines=v.highlightToLines,exports.inlineProfileIcon=I.inlineProfileIcon,exports.markdownMediaReview=_.markdownMediaReview,exports.markdownMediaReviewSlot=_.markdownMediaReviewSlot,exports.mediaKindOf=de.mediaKindOf,exports.messageItemRowVariants=j.messageItemRowVariants,exports.messageItemStatusVariants=j.messageItemStatusVariants,exports.messageItemVariants=j.messageItemVariants,exports.messageLineVariants=M.messageLineVariants,exports.optionListHint=S.optionListHint,exports.optionListVariants=C.optionListVariants,exports.optionMarker=S.optionMarker,exports.optionMarkerVariants=C.optionMarkerVariants,exports.optionRowVariants=C.optionRowVariants,exports.parseFileHeader=Y.parseFileHeader,exports.parseProfileCatalog=I.parseProfileCatalog,exports.parseTaggedLine=Y.parseTaggedLine,exports.presentHashlineLines=Y.presentHashlineLines,exports.resolvePdfViewportRegion=k.resolvePdfViewportRegion,exports.resultTextLines=Y.resultTextLines,exports.reviewCommentAnchor=d.reviewCommentAnchor,exports.statusBadgeVariants=A.statusBadgeVariants,exports.svgImageUrl=_.svgImageUrl,exports.syntaxStyleOf=v.syntaxStyleOf,exports.tabBadgeVariants=K.tabBadgeVariants,exports.tabVariants=K.tabVariants,exports.takeTrailingNotice=Y.takeTrailingNotice,exports.toastVariants=q.toastVariants,exports.toolTone=j.toolTone,exports.trimSnippet=d.trimSnippet,exports.useMessageItem=j.useMessageItem,exports.useProfileCatalog=L.useProfileCatalog,exports.useSyntaxLines=y.useSyntaxLines;
|
package/dist/index.d.mts
CHANGED
|
@@ -39,7 +39,7 @@ import { MessageLine, MessageLineTone, MessageLines, MessageLinesProps, messageL
|
|
|
39
39
|
import { Panel, PanelBody, PanelHeader, PanelProps } from "./packages/core/po-web-components/src/components/Panel.mjs";
|
|
40
40
|
import { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger } from "./packages/core/po-web-components/src/components/Popover.mjs";
|
|
41
41
|
import { PickerContent, PickerContentProps, PickerItem } from "./packages/core/po-web-components/src/components/Picker.mjs";
|
|
42
|
-
import { ProfileChoice, ProfilePickerCatalog, ProfilePickerProfile, ProfilePickerState, ProfilePickerStatus, parseProfileCatalog } from "./packages/core/po-web-components/src/lib/profilePicker.mjs";
|
|
42
|
+
import { ProfileChoice, ProfilePickerCatalog, ProfilePickerProfile, ProfilePickerState, ProfilePickerStatus, inlineProfileIcon, parseProfileCatalog } from "./packages/core/po-web-components/src/lib/profilePicker.mjs";
|
|
43
43
|
import { ProfilePicker, ProfilePickerProps, useProfileCatalog } from "./packages/core/po-web-components/src/components/ProfilePicker.mjs";
|
|
44
44
|
import { LiveDuration, LiveDurationProps } from "./packages/core/po-web-components/src/components/LiveDuration.mjs";
|
|
45
45
|
import { Progress } from "./packages/core/po-web-components/src/components/Progress.mjs";
|
|
@@ -76,4 +76,4 @@ import { buildReviewPrompt, defaultReviewHeading, diffGutterWidth, diffRangeOf,
|
|
|
76
76
|
import { MAX_DIGIT_SHORTCUT, handleOptionListKey, optionListHint, optionMarker } from "./packages/core/po-web-components/src/lib/optionList.mjs";
|
|
77
77
|
import { CHIP_TO_STATUS, LINE_TONE_TO_STATUS, STATUS_TO_CHIP, STATUS_TO_DOT } from "./packages/core/po-web-components/src/lib/tone.mjs";
|
|
78
78
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./packages/core/po-web-components/src/components/Tooltip.mjs";
|
|
79
|
-
export { ACCENT_TONES, type AccentTone, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityIcon, AgentAvatar, type AgentState, AlertIcon, AnsiLine, type AnsiLineProps, type AnsiSpan, AnsiText, type AnsiTextProps, AppWindowIcon, ArrowLeftIcon, ArrowRightIcon, AudioLinesIcon, Avatar, AvatarFallback, AvatarImage, BREADCRUMB_ELLIPSIS, Badge, type BadgeProps, type BadgeTone, BellIcon, BookmarkPlusIcon, BranchIcon, Breadcrumb, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CHIP_TONES, CHIP_TO_STATUS, CalendarIcon, CheckIcon, Checkbox, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon, type ChipTone, CloseIcon, CodeBlock, type CodeBlockProps, CodeEditor, type CodeEditorController, type CodeEditorProps, type CollapsedLines, Collapsible, CollapsibleContent, CollapsibleTrigger, CommandDialog, type CommandDialogProps, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandHeader, CommandInput, CommandItem, CommandItemLabel, CommandList, CopyIcon, DOT_TONES, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, DialogTitle, DialogTrigger, type DiffHunk, type DiffMarker, type DiffRow, type DiffSelection, type DiffSide, DiffView, type DiffViewProps, Dot, type DotProps, type DotTone, DownloadIcon, Drawer, type DrawerProps, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditIcon, type EditorEdit, type EditorMarkedRange, type EditorSelectionRange, type EditorTextRange, type EditorViewportRectangle, EmptyState, type EmptyStateProps, EnterIcon, ExternalLinkIcon, type FieldSize, type FieldVariant, FileIcon, FlowGraph, type FlowGraphEdge, type FlowGraphEdgeTone, type FlowGraphNode, type FlowGraphProps, FolderIcon, ForkIcon, GREP_COLLAPSED_LINES, GearIcon, GlobeIcon, type GrammarKey, type GrammarQuery, GridIcon, type HashlineBody, type HashlineGroup, HashlineLines, type HashlineLinesProps, type HashlineResult, type HashlineResultKind, HelpIcon, HomeIcon, ImageIcon, Input, type InputProps, Kbd, KebabIcon, LINE_TONE_TO_STATUS, Label, LightbulbIcon, ListIcon, LiveDuration, type LiveDurationProps, LoaderIcon, LockIcon, MAX_DIGIT_SHORTCUT, MEDIA_KINDS, MESSAGE_LINE_TONES, Markdown, type MarkdownMedia, type MarkdownMediaReview, type MarkdownMediaReviewContribution, type MarkdownMediaReviewPanelProps, McpToolFields, McpToolFrame, McpToolOutput, type MediaFrameCapture, type MediaFrameMetadata, type MediaIntrinsicSize, type MediaKind, type MediaPlaybackState, MediaPreview, type MediaPreviewController, type MediaPreviewProps, MediaViewerDialog, MenuIcon, MessageIcon, MessageItem, MessageItemBody, MessageItemGroup, type MessageItemGroupProps, MessageItemHeader, MessageItemHeaderAccessoryContext, type MessageItemHeaderProps, type MessageItemProps, type MessageItemState, MessageItemStatus, type MessageItemStatusProps, type MessageLine, type MessageLineTone, MessageLines, type MessageLinesProps, MicIcon, MonitorIcon, NavTab, NavTabBadge, type NavTabProps, OptionLabel, OptionList, type OptionListProps, OptionRow, type OptionRowProps, PaletteIcon, Panel, PanelBody, PanelHeader, type PanelProps, PaperclipIcon, type PathGroup, PathText, type PathTextProps, type PdfNormalizedRectangle, type PdfPageRegion, type PdfPageState, PdfPreview, type PdfPreviewController, type PdfPreviewProps, PickerContent, type PickerContentProps, type PickerItem, PlayCircleIcon, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger, type PresentedLine, type ProfileChoice, ProfilePicker, type ProfilePickerCatalog, type ProfilePickerProfile, type ProfilePickerProps, type ProfilePickerState, type ProfilePickerStatus, Progress, PuzzleIcon, QuoteIcon, READ_COLLAPSED_LINES, RadioGroup, RadioGroupCard, RadioGroupItem, RefreshIcon, type ReviewComment, ReviewCommentDraft, type ReviewCommentDraftProps, RewindIcon, STATUS_EDGE, STATUS_GLYPH, STATUS_LABEL, STATUS_TONES, STATUS_TO_CHIP, STATUS_TO_DOT, ScrollArea, ScrollBar, SearchIcon, SectionLabel, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, SendIcon, Separator, ServerIcon, SettingsActions, SettingsCard, SettingsDescription, SettingsField, SettingsHeader, SettingsNote, SettingsPage, SettingsRow, SettingsRowDescription, SettingsRowText, SettingsRowTitle, SettingsSection, SettingsSectionDescription, SettingsSectionHeader, SettingsSectionTitle, SettingsTitle, Sheet, SheetBody, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, type SheetHeaderProps, SheetOverlay, SheetTitle, SheetTrigger, ShieldIcon, ShrinkIcon, Skeleton, SlidersIcon, SparklesIcon, Spinner, type SpinnerProps, StatusBadge, type StatusBadgeProps, type StatusTone, StopIcon, StreamCursor, Switch, SyntaxLine, type SyntaxLineProps, type SyntaxLines, type SyntaxQuery, type SyntaxSpan, SyntaxText, type SyntaxTextProps, type SyntaxToken, Tabs, TabsContent, TabsList, TabsTrigger, type TaggedLine, type TaggedLineMarker, TaskIcon, type TerminalHandle, TerminalView, type TerminalViewProps, Textarea, type TextareaProps, Toast, ToastAction, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, ToolPathLink, type ToolPathLinkProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TrashIcon, UnlockIcon, UserIcon, UsersIcon, ViewableImage, type ViewableImageProps, VolumeIcon, WorkflowIcon, WrenchIcon, agentInitials, ansiSpans, badgeVariants, breadcrumbSegments, buildReviewPrompt, buttonVariants, clockRefreshMs, clockText, cn, collapseLines, compactDetails, defaultReviewHeading, detectGrammar, dialogFooterVariants, diffGutterWidth, diffRangeOf, dotVariants, drawableImageUrl, dropdownMenuItemVariants, fieldVariants, formatRunDuration, grammarKeyOf, groupByDirectory, groupRowLabel, handleOptionListKey, hashlineBody, hashlineGroups, hashlineGroupsKey, highlightToLines, markdownMediaReview, markdownMediaReviewSlot, mediaKindOf, messageItemRowVariants, messageItemStatusVariants, messageItemVariants, messageLineVariants, optionListHint, optionListVariants, optionMarker, optionMarkerVariants, optionRowVariants, parseFileHeader, parseProfileCatalog, parseTaggedLine, presentHashlineLines, resolvePdfViewportRegion, resultTextLines, reviewCommentAnchor, statusBadgeVariants, svgImageUrl, syntaxStyleOf, tabBadgeVariants, tabVariants, takeTrailingNotice, toastVariants, toolTone, trimSnippet, useMessageItem, useProfileCatalog, useSyntaxLines };
|
|
79
|
+
export { ACCENT_TONES, type AccentTone, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityIcon, AgentAvatar, type AgentState, AlertIcon, AnsiLine, type AnsiLineProps, type AnsiSpan, AnsiText, type AnsiTextProps, AppWindowIcon, ArrowLeftIcon, ArrowRightIcon, AudioLinesIcon, Avatar, AvatarFallback, AvatarImage, BREADCRUMB_ELLIPSIS, Badge, type BadgeProps, type BadgeTone, BellIcon, BookmarkPlusIcon, BranchIcon, Breadcrumb, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CHIP_TONES, CHIP_TO_STATUS, CalendarIcon, CheckIcon, Checkbox, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon, type ChipTone, CloseIcon, CodeBlock, type CodeBlockProps, CodeEditor, type CodeEditorController, type CodeEditorProps, type CollapsedLines, Collapsible, CollapsibleContent, CollapsibleTrigger, CommandDialog, type CommandDialogProps, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandHeader, CommandInput, CommandItem, CommandItemLabel, CommandList, CopyIcon, DOT_TONES, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, DialogTitle, DialogTrigger, type DiffHunk, type DiffMarker, type DiffRow, type DiffSelection, type DiffSide, DiffView, type DiffViewProps, Dot, type DotProps, type DotTone, DownloadIcon, Drawer, type DrawerProps, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditIcon, type EditorEdit, type EditorMarkedRange, type EditorSelectionRange, type EditorTextRange, type EditorViewportRectangle, EmptyState, type EmptyStateProps, EnterIcon, ExternalLinkIcon, type FieldSize, type FieldVariant, FileIcon, FlowGraph, type FlowGraphEdge, type FlowGraphEdgeTone, type FlowGraphNode, type FlowGraphProps, FolderIcon, ForkIcon, GREP_COLLAPSED_LINES, GearIcon, GlobeIcon, type GrammarKey, type GrammarQuery, GridIcon, type HashlineBody, type HashlineGroup, HashlineLines, type HashlineLinesProps, type HashlineResult, type HashlineResultKind, HelpIcon, HomeIcon, ImageIcon, Input, type InputProps, Kbd, KebabIcon, LINE_TONE_TO_STATUS, Label, LightbulbIcon, ListIcon, LiveDuration, type LiveDurationProps, LoaderIcon, LockIcon, MAX_DIGIT_SHORTCUT, MEDIA_KINDS, MESSAGE_LINE_TONES, Markdown, type MarkdownMedia, type MarkdownMediaReview, type MarkdownMediaReviewContribution, type MarkdownMediaReviewPanelProps, McpToolFields, McpToolFrame, McpToolOutput, type MediaFrameCapture, type MediaFrameMetadata, type MediaIntrinsicSize, type MediaKind, type MediaPlaybackState, MediaPreview, type MediaPreviewController, type MediaPreviewProps, MediaViewerDialog, MenuIcon, MessageIcon, MessageItem, MessageItemBody, MessageItemGroup, type MessageItemGroupProps, MessageItemHeader, MessageItemHeaderAccessoryContext, type MessageItemHeaderProps, type MessageItemProps, type MessageItemState, MessageItemStatus, type MessageItemStatusProps, type MessageLine, type MessageLineTone, MessageLines, type MessageLinesProps, MicIcon, MonitorIcon, NavTab, NavTabBadge, type NavTabProps, OptionLabel, OptionList, type OptionListProps, OptionRow, type OptionRowProps, PaletteIcon, Panel, PanelBody, PanelHeader, type PanelProps, PaperclipIcon, type PathGroup, PathText, type PathTextProps, type PdfNormalizedRectangle, type PdfPageRegion, type PdfPageState, PdfPreview, type PdfPreviewController, type PdfPreviewProps, PickerContent, type PickerContentProps, type PickerItem, PlayCircleIcon, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger, type PresentedLine, type ProfileChoice, ProfilePicker, type ProfilePickerCatalog, type ProfilePickerProfile, type ProfilePickerProps, type ProfilePickerState, type ProfilePickerStatus, Progress, PuzzleIcon, QuoteIcon, READ_COLLAPSED_LINES, RadioGroup, RadioGroupCard, RadioGroupItem, RefreshIcon, type ReviewComment, ReviewCommentDraft, type ReviewCommentDraftProps, RewindIcon, STATUS_EDGE, STATUS_GLYPH, STATUS_LABEL, STATUS_TONES, STATUS_TO_CHIP, STATUS_TO_DOT, ScrollArea, ScrollBar, SearchIcon, SectionLabel, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, SendIcon, Separator, ServerIcon, SettingsActions, SettingsCard, SettingsDescription, SettingsField, SettingsHeader, SettingsNote, SettingsPage, SettingsRow, SettingsRowDescription, SettingsRowText, SettingsRowTitle, SettingsSection, SettingsSectionDescription, SettingsSectionHeader, SettingsSectionTitle, SettingsTitle, Sheet, SheetBody, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, type SheetHeaderProps, SheetOverlay, SheetTitle, SheetTrigger, ShieldIcon, ShrinkIcon, Skeleton, SlidersIcon, SparklesIcon, Spinner, type SpinnerProps, StatusBadge, type StatusBadgeProps, type StatusTone, StopIcon, StreamCursor, Switch, SyntaxLine, type SyntaxLineProps, type SyntaxLines, type SyntaxQuery, type SyntaxSpan, SyntaxText, type SyntaxTextProps, type SyntaxToken, Tabs, TabsContent, TabsList, TabsTrigger, type TaggedLine, type TaggedLineMarker, TaskIcon, type TerminalHandle, TerminalView, type TerminalViewProps, Textarea, type TextareaProps, Toast, ToastAction, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, ToolPathLink, type ToolPathLinkProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TrashIcon, UnlockIcon, UserIcon, UsersIcon, ViewableImage, type ViewableImageProps, VolumeIcon, WorkflowIcon, WrenchIcon, agentInitials, ansiSpans, badgeVariants, breadcrumbSegments, buildReviewPrompt, buttonVariants, clockRefreshMs, clockText, cn, collapseLines, compactDetails, defaultReviewHeading, detectGrammar, dialogFooterVariants, diffGutterWidth, diffRangeOf, dotVariants, drawableImageUrl, dropdownMenuItemVariants, fieldVariants, formatRunDuration, grammarKeyOf, groupByDirectory, groupRowLabel, handleOptionListKey, hashlineBody, hashlineGroups, hashlineGroupsKey, highlightToLines, inlineProfileIcon, markdownMediaReview, markdownMediaReviewSlot, mediaKindOf, messageItemRowVariants, messageItemStatusVariants, messageItemVariants, messageLineVariants, optionListHint, optionListVariants, optionMarker, optionMarkerVariants, optionRowVariants, parseFileHeader, parseProfileCatalog, parseTaggedLine, presentHashlineLines, resolvePdfViewportRegion, resultTextLines, reviewCommentAnchor, statusBadgeVariants, svgImageUrl, syntaxStyleOf, tabBadgeVariants, tabVariants, takeTrailingNotice, toastVariants, toolTone, trimSnippet, useMessageItem, useProfileCatalog, useSyntaxLines };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ActivityIcon as e,AlertIcon as t,AppWindowIcon as n,ArrowLeftIcon as r,ArrowRightIcon as i,AudioLinesIcon as a,BellIcon as o,BookmarkPlusIcon as s,BranchIcon as c,CalendarIcon as l,CheckIcon as u,ChevronDownIcon as d,ChevronRightIcon as f,ChevronUpIcon as p,CloseIcon as m,CopyIcon as h,DownloadIcon as g,EditIcon as _,EnterIcon as v,ExternalLinkIcon as y,FileIcon as b,FolderIcon as x,ForkIcon as S,GearIcon as C,GlobeIcon as w,GridIcon as T,HelpIcon as E,HomeIcon as D,ImageIcon as O,KebabIcon as k,LightbulbIcon as A,ListIcon as j,LoaderIcon as M,LockIcon as N,MenuIcon as P,MessageIcon as F,MicIcon as I,MonitorIcon as L,PaletteIcon as R,PaperclipIcon as z,PlayCircleIcon as B,PlusIcon as V,PuzzleIcon as H,QuoteIcon as U,RefreshIcon as W,RewindIcon as G,SearchIcon as K,SendIcon as q,ServerIcon as J,ShieldIcon as Y,ShrinkIcon as X,SlidersIcon as Z,SparklesIcon as Q,StopIcon as $,TaskIcon as ee,TrashIcon as te,UnlockIcon as ne,UserIcon as re,UsersIcon as ie,VolumeIcon as ae,WorkflowIcon as oe,WrenchIcon as se}from"./packages/core/po-web-components/src/icons/icons.mjs";import{cn as ce}from"./packages/core/po-web-components/src/lib/cn.mjs";import{Accordion as le,AccordionContent as ue,AccordionItem as de,AccordionTrigger as fe}from"./packages/core/po-web-components/src/components/Accordion.mjs";import{ansiSpans as pe}from"./packages/core/po-web-components/src/lib/ansiSpans.mjs";import{AnsiLine as me,AnsiText as he}from"./packages/core/po-web-components/src/components/AnsiText.mjs";import{Avatar as ge,AvatarFallback as _e,AvatarImage as ve}from"./packages/core/po-web-components/src/components/Avatar.mjs";import{Dot as ye,dotVariants as be}from"./packages/core/po-web-components/src/components/Dot.mjs";import{AgentAvatar as xe,agentInitials as Se}from"./packages/core/po-web-components/src/components/AgentAvatar.mjs";import{Badge as Ce,badgeVariants as we}from"./packages/core/po-web-components/src/components/Badge.mjs";import{Tooltip as Te,TooltipContent as Ee,TooltipProvider as De,TooltipTrigger as Oe}from"./packages/core/po-web-components/src/components/Tooltip.mjs";import{BREADCRUMB_ELLIPSIS as ke,Breadcrumb as Ae,breadcrumbSegments as je}from"./packages/core/po-web-components/src/components/Breadcrumb.mjs";import{Spinner as Me}from"./packages/core/po-web-components/src/components/Spinner.mjs";import{Button as Ne,buttonVariants as Pe}from"./packages/core/po-web-components/src/components/Button.mjs";import{Dialog as Fe,DialogBody as Ie,DialogClose as Le,DialogContent as Re,DialogDescription as ze,DialogFooter as Be,DialogHeader as Ve,DialogTitle as He,DialogTrigger as Ue,dialogFooterVariants as We}from"./packages/core/po-web-components/src/components/Dialog.mjs";import{buildReviewPrompt as Ge,defaultReviewHeading as Ke,diffGutterWidth as qe,diffRangeOf as Je,reviewCommentAnchor as Ye,trimSnippet as Xe}from"./packages/core/po-web-components/src/lib/review.mjs";import{DiffView as Ze}from"./packages/core/po-web-components/src/components/DiffView.mjs";import{Drawer as Qe}from"./packages/core/po-web-components/src/components/Drawer.mjs";import{DropdownMenu as $e,DropdownMenuCheckboxItem as et,DropdownMenuContent as tt,DropdownMenuGroup as nt,DropdownMenuItem as rt,DropdownMenuLabel as it,DropdownMenuRadioGroup as at,DropdownMenuRadioItem as ot,DropdownMenuSeparator as st,DropdownMenuShortcut as ct,DropdownMenuSub as lt,DropdownMenuSubContent as ut,DropdownMenuSubTrigger as dt,DropdownMenuTrigger as ft,dropdownMenuItemVariants as pt}from"./packages/core/po-web-components/src/components/DropdownMenu.mjs";import{Checkbox as mt}from"./packages/core/po-web-components/src/components/Checkbox.mjs";import{grammarKeyOf as ht}from"./packages/core/po-web-components/src/lib/editorLanguage.mjs";import{drawableImageUrl as gt,markdownMediaReview as _t,markdownMediaReviewSlot as vt,svgImageUrl as yt}from"./packages/core/po-web-components/src/lib/markdownMedia.mjs";import{detectGrammar as bt,highlightToLines as xt,syntaxStyleOf as St}from"./packages/core/po-web-components/src/lib/syntaxHighlight.mjs";import{SyntaxLine as Ct,SyntaxText as wt,useSyntaxLines as Tt}from"./packages/core/po-web-components/src/components/SyntaxText.mjs";import{CodeBlock as Et}from"./packages/core/po-web-components/src/components/CodeBlock.mjs";import{Skeleton as Dt}from"./packages/core/po-web-components/src/components/Skeleton.mjs";import{CodeEditor as Ot}from"./packages/core/po-web-components/src/components/CodeEditor.mjs";import{Collapsible as kt,CollapsibleContent as At,CollapsibleTrigger as jt}from"./packages/core/po-web-components/src/components/Collapsible.mjs";import{Input as Mt,fieldVariants as Nt}from"./packages/core/po-web-components/src/components/Input.mjs";import{MAX_DIGIT_SHORTCUT as Pt,handleOptionListKey as Ft,optionListHint as It,optionMarker as Lt}from"./packages/core/po-web-components/src/lib/optionList.mjs";import{OptionLabel as Rt,OptionList as zt,OptionRow as Bt,optionListVariants as Vt,optionMarkerVariants as Ht,optionRowVariants as Ut}from"./packages/core/po-web-components/src/components/OptionList.mjs";import{CommandDialog as Wt,CommandEmpty as Gt,CommandFooter as Kt,CommandGroup as qt,CommandGroupLabel as Jt,CommandHeader as Yt,CommandInput as Xt,CommandItem as Zt,CommandItemLabel as Qt,CommandList as $t}from"./packages/core/po-web-components/src/components/Command.mjs";import{EmptyState as en}from"./packages/core/po-web-components/src/components/EmptyState.mjs";import{FlowGraph as tn}from"./packages/core/po-web-components/src/components/FlowGraph.mjs";import{hashlineGroups as nn,hashlineGroupsKey as rn}from"./packages/core/po-web-components/src/lib/hashlineHighlight.mjs";import{HashlineLines as an}from"./packages/core/po-web-components/src/components/HashlineLines.mjs";import{Kbd as on}from"./packages/core/po-web-components/src/components/Kbd.mjs";import{McpToolFields as sn,McpToolFrame as cn,McpToolOutput as ln}from"./packages/core/po-web-components/src/components/McpToolWidget.mjs";import{Label as un}from"./packages/core/po-web-components/src/components/Label.mjs";import{MediaViewerDialog as dn}from"./packages/core/po-web-components/src/components/MediaViewerDialog.mjs";import{Markdown as fn}from"./packages/core/po-web-components/src/components/Markdown.mjs";import{ViewableImage as pn}from"./packages/core/po-web-components/src/components/ViewableImage.mjs";import{mediaKindOf as mn}from"./packages/core/po-web-components/src/lib/media.mjs";import{PdfPreview as hn,resolvePdfViewportRegion as gn}from"./packages/core/po-web-components/src/components/PdfPreview.mjs";import{MediaPreview as _n}from"./packages/core/po-web-components/src/components/MediaPreview.mjs";import{STATUS_EDGE as vn,StatusBadge as yn,statusBadgeVariants as bn}from"./packages/core/po-web-components/src/components/StatusBadge.mjs";import{MessageItem as xn,MessageItemBody as Sn,MessageItemGroup as Cn,MessageItemHeader as wn,MessageItemHeaderAccessoryContext as Tn,MessageItemStatus as En,STATUS_GLYPH as Dn,STATUS_LABEL as On,messageItemRowVariants as kn,messageItemStatusVariants as An,messageItemVariants as jn,toolTone as Mn,useMessageItem as Nn}from"./packages/core/po-web-components/src/components/MessageItem.mjs";import{MessageLines as Pn,messageLineVariants as Fn}from"./packages/core/po-web-components/src/components/MessageLines.mjs";import{Panel as In,PanelBody as Ln,PanelHeader as Rn}from"./packages/core/po-web-components/src/components/Panel.mjs";import{Popover as zn,PopoverAnchor as Bn,PopoverClose as Vn,PopoverContent as Hn,PopoverFooter as Un,PopoverHeader as Wn,PopoverTrigger as Gn}from"./packages/core/po-web-components/src/components/Popover.mjs";import{PickerContent as Kn}from"./packages/core/po-web-components/src/components/Picker.mjs";import{parseProfileCatalog as qn}from"./packages/core/po-web-components/src/lib/profilePicker.mjs";import{ProfilePicker as Jn,useProfileCatalog as Yn}from"./packages/core/po-web-components/src/components/ProfilePicker.mjs";import{clockRefreshMs as Xn,clockText as Zn,formatRunDuration as Qn}from"./packages/core/po-web-components/src/lib/runDuration.mjs";import{LiveDuration as $n}from"./packages/core/po-web-components/src/components/LiveDuration.mjs";import{Progress as er}from"./packages/core/po-web-components/src/components/Progress.mjs";import{RadioGroup as tr,RadioGroupCard as nr,RadioGroupItem as rr}from"./packages/core/po-web-components/src/components/RadioGroup.mjs";import{Textarea as ir}from"./packages/core/po-web-components/src/components/Textarea.mjs";import{ReviewCommentDraft as ar}from"./packages/core/po-web-components/src/components/ReviewCommentDraft.mjs";import{ScrollArea as or,ScrollBar as sr}from"./packages/core/po-web-components/src/components/ScrollArea.mjs";import{SectionLabel as cr}from"./packages/core/po-web-components/src/components/SectionLabel.mjs";import{Select as lr,SelectContent as ur,SelectGroup as dr,SelectItem as fr,SelectLabel as pr,SelectSeparator as mr,SelectTrigger as hr,SelectValue as gr}from"./packages/core/po-web-components/src/components/Select.mjs";import{Separator as _r}from"./packages/core/po-web-components/src/components/Separator.mjs";import{SettingsActions as vr,SettingsCard as yr,SettingsDescription as br,SettingsField as xr,SettingsHeader as Sr,SettingsNote as Cr,SettingsPage as wr,SettingsRow as Tr,SettingsRowDescription as Er,SettingsRowText as Dr,SettingsRowTitle as Or,SettingsSection as kr,SettingsSectionDescription as Ar,SettingsSectionHeader as jr,SettingsSectionTitle as Mr,SettingsTitle as Nr}from"./packages/core/po-web-components/src/components/Settings.mjs";import{Sheet as Pr,SheetBody as Fr,SheetClose as Ir,SheetContent as Lr,SheetDescription as Rr,SheetFooter as zr,SheetHeader as Br,SheetOverlay as Vr,SheetTitle as Hr,SheetTrigger as Ur}from"./packages/core/po-web-components/src/components/Sheet.mjs";import{StreamCursor as Wr}from"./packages/core/po-web-components/src/components/StreamCursor.mjs";import{Switch as Gr}from"./packages/core/po-web-components/src/components/Switch.mjs";import{NavTab as Kr,NavTabBadge as qr,Tabs as Jr,TabsContent as Yr,TabsList as Xr,TabsTrigger as Zr,tabBadgeVariants as Qr,tabVariants as $r}from"./packages/core/po-web-components/src/components/Tabs.mjs";import{TerminalView as ei}from"./packages/core/po-web-components/src/components/TerminalView.mjs";import{Toast as ti,ToastAction as ni,ToastClose as ri,ToastDescription as ii,ToastProvider as ai,ToastTitle as oi,ToastViewport as si,toastVariants as ci}from"./packages/core/po-web-components/src/components/Toast.mjs";import{PathText as li}from"./packages/core/po-web-components/src/components/PathText.mjs";import{ToolPathLink as ui}from"./packages/core/po-web-components/src/components/ToolPathLink.mjs";import{collapseLines as di}from"./packages/core/po-web-components/src/lib/collapse.mjs";import{GREP_COLLAPSED_LINES as fi,READ_COLLAPSED_LINES as pi,compactDetails as mi,hashlineBody as hi,parseFileHeader as gi,parseTaggedLine as _i,presentHashlineLines as vi,resultTextLines as yi,takeTrailingNotice as bi}from"./packages/core/po-web-components/src/lib/hashlineView.mjs";import{groupByDirectory as xi,groupRowLabel as Si}from"./packages/core/po-web-components/src/lib/pathGroups.mjs";import{CHIP_TO_STATUS as Ci,LINE_TONE_TO_STATUS as wi,STATUS_TO_CHIP as Ti,STATUS_TO_DOT as Ei}from"./packages/core/po-web-components/src/lib/tone.mjs";import{MEDIA_KINDS as Di}from"./packages/core/po-web-components/src/types/editor.mjs";import{ACCENT_TONES as Oi,CHIP_TONES as ki,DOT_TONES as Ai,MESSAGE_LINE_TONES as ji,STATUS_TONES as Mi}from"./packages/core/po-web-components/src/types/tone.mjs";export{Oi as ACCENT_TONES,le as Accordion,ue as AccordionContent,de as AccordionItem,fe as AccordionTrigger,e as ActivityIcon,xe as AgentAvatar,t as AlertIcon,me as AnsiLine,he as AnsiText,n as AppWindowIcon,r as ArrowLeftIcon,i as ArrowRightIcon,a as AudioLinesIcon,ge as Avatar,_e as AvatarFallback,ve as AvatarImage,ke as BREADCRUMB_ELLIPSIS,Ce as Badge,o as BellIcon,s as BookmarkPlusIcon,c as BranchIcon,Ae as Breadcrumb,Ne as Button,ki as CHIP_TONES,Ci as CHIP_TO_STATUS,l as CalendarIcon,u as CheckIcon,mt as Checkbox,d as ChevronDownIcon,f as ChevronRightIcon,p as ChevronUpIcon,m as CloseIcon,Et as CodeBlock,Ot as CodeEditor,kt as Collapsible,At as CollapsibleContent,jt as CollapsibleTrigger,Wt as CommandDialog,Gt as CommandEmpty,Kt as CommandFooter,qt as CommandGroup,Jt as CommandGroupLabel,Yt as CommandHeader,Xt as CommandInput,Zt as CommandItem,Qt as CommandItemLabel,$t as CommandList,h as CopyIcon,Ai as DOT_TONES,Fe as Dialog,Ie as DialogBody,Le as DialogClose,Re as DialogContent,ze as DialogDescription,Be as DialogFooter,Ve as DialogHeader,He as DialogTitle,Ue as DialogTrigger,Ze as DiffView,ye as Dot,g as DownloadIcon,Qe as Drawer,$e as DropdownMenu,et as DropdownMenuCheckboxItem,tt as DropdownMenuContent,nt as DropdownMenuGroup,rt as DropdownMenuItem,it as DropdownMenuLabel,at as DropdownMenuRadioGroup,ot as DropdownMenuRadioItem,st as DropdownMenuSeparator,ct as DropdownMenuShortcut,lt as DropdownMenuSub,ut as DropdownMenuSubContent,dt as DropdownMenuSubTrigger,ft as DropdownMenuTrigger,_ as EditIcon,en as EmptyState,v as EnterIcon,y as ExternalLinkIcon,b as FileIcon,tn as FlowGraph,x as FolderIcon,S as ForkIcon,fi as GREP_COLLAPSED_LINES,C as GearIcon,w as GlobeIcon,T as GridIcon,an as HashlineLines,E as HelpIcon,D as HomeIcon,O as ImageIcon,Mt as Input,on as Kbd,k as KebabIcon,wi as LINE_TONE_TO_STATUS,un as Label,A as LightbulbIcon,j as ListIcon,$n as LiveDuration,M as LoaderIcon,N as LockIcon,Pt as MAX_DIGIT_SHORTCUT,Di as MEDIA_KINDS,ji as MESSAGE_LINE_TONES,fn as Markdown,sn as McpToolFields,cn as McpToolFrame,ln as McpToolOutput,_n as MediaPreview,dn as MediaViewerDialog,P as MenuIcon,F as MessageIcon,xn as MessageItem,Sn as MessageItemBody,Cn as MessageItemGroup,wn as MessageItemHeader,Tn as MessageItemHeaderAccessoryContext,En as MessageItemStatus,Pn as MessageLines,I as MicIcon,L as MonitorIcon,Kr as NavTab,qr as NavTabBadge,Rt as OptionLabel,zt as OptionList,Bt as OptionRow,R as PaletteIcon,In as Panel,Ln as PanelBody,Rn as PanelHeader,z as PaperclipIcon,li as PathText,hn as PdfPreview,Kn as PickerContent,B as PlayCircleIcon,V as PlusIcon,zn as Popover,Bn as PopoverAnchor,Vn as PopoverClose,Hn as PopoverContent,Un as PopoverFooter,Wn as PopoverHeader,Gn as PopoverTrigger,Jn as ProfilePicker,er as Progress,H as PuzzleIcon,U as QuoteIcon,pi as READ_COLLAPSED_LINES,tr as RadioGroup,nr as RadioGroupCard,rr as RadioGroupItem,W as RefreshIcon,ar as ReviewCommentDraft,G as RewindIcon,vn as STATUS_EDGE,Dn as STATUS_GLYPH,On as STATUS_LABEL,Mi as STATUS_TONES,Ti as STATUS_TO_CHIP,Ei as STATUS_TO_DOT,or as ScrollArea,sr as ScrollBar,K as SearchIcon,cr as SectionLabel,lr as Select,ur as SelectContent,dr as SelectGroup,fr as SelectItem,pr as SelectLabel,mr as SelectSeparator,hr as SelectTrigger,gr as SelectValue,q as SendIcon,_r as Separator,J as ServerIcon,vr as SettingsActions,yr as SettingsCard,br as SettingsDescription,xr as SettingsField,Sr as SettingsHeader,Cr as SettingsNote,wr as SettingsPage,Tr as SettingsRow,Er as SettingsRowDescription,Dr as SettingsRowText,Or as SettingsRowTitle,kr as SettingsSection,Ar as SettingsSectionDescription,jr as SettingsSectionHeader,Mr as SettingsSectionTitle,Nr as SettingsTitle,Pr as Sheet,Fr as SheetBody,Ir as SheetClose,Lr as SheetContent,Rr as SheetDescription,zr as SheetFooter,Br as SheetHeader,Vr as SheetOverlay,Hr as SheetTitle,Ur as SheetTrigger,Y as ShieldIcon,X as ShrinkIcon,Dt as Skeleton,Z as SlidersIcon,Q as SparklesIcon,Me as Spinner,yn as StatusBadge,$ as StopIcon,Wr as StreamCursor,Gr as Switch,Ct as SyntaxLine,wt as SyntaxText,Jr as Tabs,Yr as TabsContent,Xr as TabsList,Zr as TabsTrigger,ee as TaskIcon,ei as TerminalView,ir as Textarea,ti as Toast,ni as ToastAction,ri as ToastClose,ii as ToastDescription,ai as ToastProvider,oi as ToastTitle,si as ToastViewport,ui as ToolPathLink,Te as Tooltip,Ee as TooltipContent,De as TooltipProvider,Oe as TooltipTrigger,te as TrashIcon,ne as UnlockIcon,re as UserIcon,ie as UsersIcon,pn as ViewableImage,ae as VolumeIcon,oe as WorkflowIcon,se as WrenchIcon,Se as agentInitials,pe as ansiSpans,we as badgeVariants,je as breadcrumbSegments,Ge as buildReviewPrompt,Pe as buttonVariants,Xn as clockRefreshMs,Zn as clockText,ce as cn,di as collapseLines,mi as compactDetails,Ke as defaultReviewHeading,bt as detectGrammar,We as dialogFooterVariants,qe as diffGutterWidth,Je as diffRangeOf,be as dotVariants,gt as drawableImageUrl,pt as dropdownMenuItemVariants,Nt as fieldVariants,Qn as formatRunDuration,ht as grammarKeyOf,xi as groupByDirectory,Si as groupRowLabel,Ft as handleOptionListKey,hi as hashlineBody,nn as hashlineGroups,rn as hashlineGroupsKey,xt as highlightToLines,_t as markdownMediaReview,vt as markdownMediaReviewSlot,mn as mediaKindOf,kn as messageItemRowVariants,An as messageItemStatusVariants,jn as messageItemVariants,Fn as messageLineVariants,It as optionListHint,Vt as optionListVariants,Lt as optionMarker,Ht as optionMarkerVariants,Ut as optionRowVariants,gi as parseFileHeader,qn as parseProfileCatalog,_i as parseTaggedLine,vi as presentHashlineLines,gn as resolvePdfViewportRegion,yi as resultTextLines,Ye as reviewCommentAnchor,bn as statusBadgeVariants,yt as svgImageUrl,St as syntaxStyleOf,Qr as tabBadgeVariants,$r as tabVariants,bi as takeTrailingNotice,ci as toastVariants,Mn as toolTone,Xe as trimSnippet,Nn as useMessageItem,Yn as useProfileCatalog,Tt as useSyntaxLines};
|
|
1
|
+
import{ActivityIcon as e,AlertIcon as t,AppWindowIcon as n,ArrowLeftIcon as r,ArrowRightIcon as i,AudioLinesIcon as a,BellIcon as o,BookmarkPlusIcon as s,BranchIcon as c,CalendarIcon as l,CheckIcon as u,ChevronDownIcon as d,ChevronRightIcon as f,ChevronUpIcon as p,CloseIcon as m,CopyIcon as h,DownloadIcon as g,EditIcon as _,EnterIcon as v,ExternalLinkIcon as y,FileIcon as b,FolderIcon as x,ForkIcon as S,GearIcon as C,GlobeIcon as w,GridIcon as T,HelpIcon as E,HomeIcon as D,ImageIcon as O,KebabIcon as k,LightbulbIcon as A,ListIcon as j,LoaderIcon as M,LockIcon as N,MenuIcon as P,MessageIcon as F,MicIcon as I,MonitorIcon as L,PaletteIcon as R,PaperclipIcon as z,PlayCircleIcon as B,PlusIcon as V,PuzzleIcon as H,QuoteIcon as U,RefreshIcon as W,RewindIcon as G,SearchIcon as K,SendIcon as q,ServerIcon as J,ShieldIcon as Y,ShrinkIcon as X,SlidersIcon as Z,SparklesIcon as Q,StopIcon as $,TaskIcon as ee,TrashIcon as te,UnlockIcon as ne,UserIcon as re,UsersIcon as ie,VolumeIcon as ae,WorkflowIcon as oe,WrenchIcon as se}from"./packages/core/po-web-components/src/icons/icons.mjs";import{cn as ce}from"./packages/core/po-web-components/src/lib/cn.mjs";import{Accordion as le,AccordionContent as ue,AccordionItem as de,AccordionTrigger as fe}from"./packages/core/po-web-components/src/components/Accordion.mjs";import{ansiSpans as pe}from"./packages/core/po-web-components/src/lib/ansiSpans.mjs";import{AnsiLine as me,AnsiText as he}from"./packages/core/po-web-components/src/components/AnsiText.mjs";import{Avatar as ge,AvatarFallback as _e,AvatarImage as ve}from"./packages/core/po-web-components/src/components/Avatar.mjs";import{Dot as ye,dotVariants as be}from"./packages/core/po-web-components/src/components/Dot.mjs";import{AgentAvatar as xe,agentInitials as Se}from"./packages/core/po-web-components/src/components/AgentAvatar.mjs";import{Badge as Ce,badgeVariants as we}from"./packages/core/po-web-components/src/components/Badge.mjs";import{Tooltip as Te,TooltipContent as Ee,TooltipProvider as De,TooltipTrigger as Oe}from"./packages/core/po-web-components/src/components/Tooltip.mjs";import{BREADCRUMB_ELLIPSIS as ke,Breadcrumb as Ae,breadcrumbSegments as je}from"./packages/core/po-web-components/src/components/Breadcrumb.mjs";import{Spinner as Me}from"./packages/core/po-web-components/src/components/Spinner.mjs";import{Button as Ne,buttonVariants as Pe}from"./packages/core/po-web-components/src/components/Button.mjs";import{Dialog as Fe,DialogBody as Ie,DialogClose as Le,DialogContent as Re,DialogDescription as ze,DialogFooter as Be,DialogHeader as Ve,DialogTitle as He,DialogTrigger as Ue,dialogFooterVariants as We}from"./packages/core/po-web-components/src/components/Dialog.mjs";import{buildReviewPrompt as Ge,defaultReviewHeading as Ke,diffGutterWidth as qe,diffRangeOf as Je,reviewCommentAnchor as Ye,trimSnippet as Xe}from"./packages/core/po-web-components/src/lib/review.mjs";import{DiffView as Ze}from"./packages/core/po-web-components/src/components/DiffView.mjs";import{Drawer as Qe}from"./packages/core/po-web-components/src/components/Drawer.mjs";import{DropdownMenu as $e,DropdownMenuCheckboxItem as et,DropdownMenuContent as tt,DropdownMenuGroup as nt,DropdownMenuItem as rt,DropdownMenuLabel as it,DropdownMenuRadioGroup as at,DropdownMenuRadioItem as ot,DropdownMenuSeparator as st,DropdownMenuShortcut as ct,DropdownMenuSub as lt,DropdownMenuSubContent as ut,DropdownMenuSubTrigger as dt,DropdownMenuTrigger as ft,dropdownMenuItemVariants as pt}from"./packages/core/po-web-components/src/components/DropdownMenu.mjs";import{Checkbox as mt}from"./packages/core/po-web-components/src/components/Checkbox.mjs";import{grammarKeyOf as ht}from"./packages/core/po-web-components/src/lib/editorLanguage.mjs";import{drawableImageUrl as gt,markdownMediaReview as _t,markdownMediaReviewSlot as vt,svgImageUrl as yt}from"./packages/core/po-web-components/src/lib/markdownMedia.mjs";import{detectGrammar as bt,highlightToLines as xt,syntaxStyleOf as St}from"./packages/core/po-web-components/src/lib/syntaxHighlight.mjs";import{SyntaxLine as Ct,SyntaxText as wt,useSyntaxLines as Tt}from"./packages/core/po-web-components/src/components/SyntaxText.mjs";import{CodeBlock as Et}from"./packages/core/po-web-components/src/components/CodeBlock.mjs";import{Skeleton as Dt}from"./packages/core/po-web-components/src/components/Skeleton.mjs";import{CodeEditor as Ot}from"./packages/core/po-web-components/src/components/CodeEditor.mjs";import{Collapsible as kt,CollapsibleContent as At,CollapsibleTrigger as jt}from"./packages/core/po-web-components/src/components/Collapsible.mjs";import{Input as Mt,fieldVariants as Nt}from"./packages/core/po-web-components/src/components/Input.mjs";import{MAX_DIGIT_SHORTCUT as Pt,handleOptionListKey as Ft,optionListHint as It,optionMarker as Lt}from"./packages/core/po-web-components/src/lib/optionList.mjs";import{OptionLabel as Rt,OptionList as zt,OptionRow as Bt,optionListVariants as Vt,optionMarkerVariants as Ht,optionRowVariants as Ut}from"./packages/core/po-web-components/src/components/OptionList.mjs";import{CommandDialog as Wt,CommandEmpty as Gt,CommandFooter as Kt,CommandGroup as qt,CommandGroupLabel as Jt,CommandHeader as Yt,CommandInput as Xt,CommandItem as Zt,CommandItemLabel as Qt,CommandList as $t}from"./packages/core/po-web-components/src/components/Command.mjs";import{EmptyState as en}from"./packages/core/po-web-components/src/components/EmptyState.mjs";import{FlowGraph as tn}from"./packages/core/po-web-components/src/components/FlowGraph.mjs";import{hashlineGroups as nn,hashlineGroupsKey as rn}from"./packages/core/po-web-components/src/lib/hashlineHighlight.mjs";import{HashlineLines as an}from"./packages/core/po-web-components/src/components/HashlineLines.mjs";import{Kbd as on}from"./packages/core/po-web-components/src/components/Kbd.mjs";import{McpToolFields as sn,McpToolFrame as cn,McpToolOutput as ln}from"./packages/core/po-web-components/src/components/McpToolWidget.mjs";import{Label as un}from"./packages/core/po-web-components/src/components/Label.mjs";import{MediaViewerDialog as dn}from"./packages/core/po-web-components/src/components/MediaViewerDialog.mjs";import{Markdown as fn}from"./packages/core/po-web-components/src/components/Markdown.mjs";import{ViewableImage as pn}from"./packages/core/po-web-components/src/components/ViewableImage.mjs";import{mediaKindOf as mn}from"./packages/core/po-web-components/src/lib/media.mjs";import{PdfPreview as hn,resolvePdfViewportRegion as gn}from"./packages/core/po-web-components/src/components/PdfPreview.mjs";import{MediaPreview as _n}from"./packages/core/po-web-components/src/components/MediaPreview.mjs";import{STATUS_EDGE as vn,StatusBadge as yn,statusBadgeVariants as bn}from"./packages/core/po-web-components/src/components/StatusBadge.mjs";import{MessageItem as xn,MessageItemBody as Sn,MessageItemGroup as Cn,MessageItemHeader as wn,MessageItemHeaderAccessoryContext as Tn,MessageItemStatus as En,STATUS_GLYPH as Dn,STATUS_LABEL as On,messageItemRowVariants as kn,messageItemStatusVariants as An,messageItemVariants as jn,toolTone as Mn,useMessageItem as Nn}from"./packages/core/po-web-components/src/components/MessageItem.mjs";import{MessageLines as Pn,messageLineVariants as Fn}from"./packages/core/po-web-components/src/components/MessageLines.mjs";import{Panel as In,PanelBody as Ln,PanelHeader as Rn}from"./packages/core/po-web-components/src/components/Panel.mjs";import{Popover as zn,PopoverAnchor as Bn,PopoverClose as Vn,PopoverContent as Hn,PopoverFooter as Un,PopoverHeader as Wn,PopoverTrigger as Gn}from"./packages/core/po-web-components/src/components/Popover.mjs";import{PickerContent as Kn}from"./packages/core/po-web-components/src/components/Picker.mjs";import{inlineProfileIcon as qn,parseProfileCatalog as Jn}from"./packages/core/po-web-components/src/lib/profilePicker.mjs";import{ProfilePicker as Yn,useProfileCatalog as Xn}from"./packages/core/po-web-components/src/components/ProfilePicker.mjs";import{clockRefreshMs as Zn,clockText as Qn,formatRunDuration as $n}from"./packages/core/po-web-components/src/lib/runDuration.mjs";import{LiveDuration as er}from"./packages/core/po-web-components/src/components/LiveDuration.mjs";import{Progress as tr}from"./packages/core/po-web-components/src/components/Progress.mjs";import{RadioGroup as nr,RadioGroupCard as rr,RadioGroupItem as ir}from"./packages/core/po-web-components/src/components/RadioGroup.mjs";import{Textarea as ar}from"./packages/core/po-web-components/src/components/Textarea.mjs";import{ReviewCommentDraft as or}from"./packages/core/po-web-components/src/components/ReviewCommentDraft.mjs";import{ScrollArea as sr,ScrollBar as cr}from"./packages/core/po-web-components/src/components/ScrollArea.mjs";import{SectionLabel as lr}from"./packages/core/po-web-components/src/components/SectionLabel.mjs";import{Select as ur,SelectContent as dr,SelectGroup as fr,SelectItem as pr,SelectLabel as mr,SelectSeparator as hr,SelectTrigger as gr,SelectValue as _r}from"./packages/core/po-web-components/src/components/Select.mjs";import{Separator as vr}from"./packages/core/po-web-components/src/components/Separator.mjs";import{SettingsActions as yr,SettingsCard as br,SettingsDescription as xr,SettingsField as Sr,SettingsHeader as Cr,SettingsNote as wr,SettingsPage as Tr,SettingsRow as Er,SettingsRowDescription as Dr,SettingsRowText as Or,SettingsRowTitle as kr,SettingsSection as Ar,SettingsSectionDescription as jr,SettingsSectionHeader as Mr,SettingsSectionTitle as Nr,SettingsTitle as Pr}from"./packages/core/po-web-components/src/components/Settings.mjs";import{Sheet as Fr,SheetBody as Ir,SheetClose as Lr,SheetContent as Rr,SheetDescription as zr,SheetFooter as Br,SheetHeader as Vr,SheetOverlay as Hr,SheetTitle as Ur,SheetTrigger as Wr}from"./packages/core/po-web-components/src/components/Sheet.mjs";import{StreamCursor as Gr}from"./packages/core/po-web-components/src/components/StreamCursor.mjs";import{Switch as Kr}from"./packages/core/po-web-components/src/components/Switch.mjs";import{NavTab as qr,NavTabBadge as Jr,Tabs as Yr,TabsContent as Xr,TabsList as Zr,TabsTrigger as Qr,tabBadgeVariants as $r,tabVariants as ei}from"./packages/core/po-web-components/src/components/Tabs.mjs";import{TerminalView as ti}from"./packages/core/po-web-components/src/components/TerminalView.mjs";import{Toast as ni,ToastAction as ri,ToastClose as ii,ToastDescription as ai,ToastProvider as oi,ToastTitle as si,ToastViewport as ci,toastVariants as li}from"./packages/core/po-web-components/src/components/Toast.mjs";import{PathText as ui}from"./packages/core/po-web-components/src/components/PathText.mjs";import{ToolPathLink as di}from"./packages/core/po-web-components/src/components/ToolPathLink.mjs";import{collapseLines as fi}from"./packages/core/po-web-components/src/lib/collapse.mjs";import{GREP_COLLAPSED_LINES as pi,READ_COLLAPSED_LINES as mi,compactDetails as hi,hashlineBody as gi,parseFileHeader as _i,parseTaggedLine as vi,presentHashlineLines as yi,resultTextLines as bi,takeTrailingNotice as xi}from"./packages/core/po-web-components/src/lib/hashlineView.mjs";import{groupByDirectory as Si,groupRowLabel as Ci}from"./packages/core/po-web-components/src/lib/pathGroups.mjs";import{CHIP_TO_STATUS as wi,LINE_TONE_TO_STATUS as Ti,STATUS_TO_CHIP as Ei,STATUS_TO_DOT as Di}from"./packages/core/po-web-components/src/lib/tone.mjs";import{MEDIA_KINDS as Oi}from"./packages/core/po-web-components/src/types/editor.mjs";import{ACCENT_TONES as ki,CHIP_TONES as Ai,DOT_TONES as ji,MESSAGE_LINE_TONES as Mi,STATUS_TONES as Ni}from"./packages/core/po-web-components/src/types/tone.mjs";export{ki as ACCENT_TONES,le as Accordion,ue as AccordionContent,de as AccordionItem,fe as AccordionTrigger,e as ActivityIcon,xe as AgentAvatar,t as AlertIcon,me as AnsiLine,he as AnsiText,n as AppWindowIcon,r as ArrowLeftIcon,i as ArrowRightIcon,a as AudioLinesIcon,ge as Avatar,_e as AvatarFallback,ve as AvatarImage,ke as BREADCRUMB_ELLIPSIS,Ce as Badge,o as BellIcon,s as BookmarkPlusIcon,c as BranchIcon,Ae as Breadcrumb,Ne as Button,Ai as CHIP_TONES,wi as CHIP_TO_STATUS,l as CalendarIcon,u as CheckIcon,mt as Checkbox,d as ChevronDownIcon,f as ChevronRightIcon,p as ChevronUpIcon,m as CloseIcon,Et as CodeBlock,Ot as CodeEditor,kt as Collapsible,At as CollapsibleContent,jt as CollapsibleTrigger,Wt as CommandDialog,Gt as CommandEmpty,Kt as CommandFooter,qt as CommandGroup,Jt as CommandGroupLabel,Yt as CommandHeader,Xt as CommandInput,Zt as CommandItem,Qt as CommandItemLabel,$t as CommandList,h as CopyIcon,ji as DOT_TONES,Fe as Dialog,Ie as DialogBody,Le as DialogClose,Re as DialogContent,ze as DialogDescription,Be as DialogFooter,Ve as DialogHeader,He as DialogTitle,Ue as DialogTrigger,Ze as DiffView,ye as Dot,g as DownloadIcon,Qe as Drawer,$e as DropdownMenu,et as DropdownMenuCheckboxItem,tt as DropdownMenuContent,nt as DropdownMenuGroup,rt as DropdownMenuItem,it as DropdownMenuLabel,at as DropdownMenuRadioGroup,ot as DropdownMenuRadioItem,st as DropdownMenuSeparator,ct as DropdownMenuShortcut,lt as DropdownMenuSub,ut as DropdownMenuSubContent,dt as DropdownMenuSubTrigger,ft as DropdownMenuTrigger,_ as EditIcon,en as EmptyState,v as EnterIcon,y as ExternalLinkIcon,b as FileIcon,tn as FlowGraph,x as FolderIcon,S as ForkIcon,pi as GREP_COLLAPSED_LINES,C as GearIcon,w as GlobeIcon,T as GridIcon,an as HashlineLines,E as HelpIcon,D as HomeIcon,O as ImageIcon,Mt as Input,on as Kbd,k as KebabIcon,Ti as LINE_TONE_TO_STATUS,un as Label,A as LightbulbIcon,j as ListIcon,er as LiveDuration,M as LoaderIcon,N as LockIcon,Pt as MAX_DIGIT_SHORTCUT,Oi as MEDIA_KINDS,Mi as MESSAGE_LINE_TONES,fn as Markdown,sn as McpToolFields,cn as McpToolFrame,ln as McpToolOutput,_n as MediaPreview,dn as MediaViewerDialog,P as MenuIcon,F as MessageIcon,xn as MessageItem,Sn as MessageItemBody,Cn as MessageItemGroup,wn as MessageItemHeader,Tn as MessageItemHeaderAccessoryContext,En as MessageItemStatus,Pn as MessageLines,I as MicIcon,L as MonitorIcon,qr as NavTab,Jr as NavTabBadge,Rt as OptionLabel,zt as OptionList,Bt as OptionRow,R as PaletteIcon,In as Panel,Ln as PanelBody,Rn as PanelHeader,z as PaperclipIcon,ui as PathText,hn as PdfPreview,Kn as PickerContent,B as PlayCircleIcon,V as PlusIcon,zn as Popover,Bn as PopoverAnchor,Vn as PopoverClose,Hn as PopoverContent,Un as PopoverFooter,Wn as PopoverHeader,Gn as PopoverTrigger,Yn as ProfilePicker,tr as Progress,H as PuzzleIcon,U as QuoteIcon,mi as READ_COLLAPSED_LINES,nr as RadioGroup,rr as RadioGroupCard,ir as RadioGroupItem,W as RefreshIcon,or as ReviewCommentDraft,G as RewindIcon,vn as STATUS_EDGE,Dn as STATUS_GLYPH,On as STATUS_LABEL,Ni as STATUS_TONES,Ei as STATUS_TO_CHIP,Di as STATUS_TO_DOT,sr as ScrollArea,cr as ScrollBar,K as SearchIcon,lr as SectionLabel,ur as Select,dr as SelectContent,fr as SelectGroup,pr as SelectItem,mr as SelectLabel,hr as SelectSeparator,gr as SelectTrigger,_r as SelectValue,q as SendIcon,vr as Separator,J as ServerIcon,yr as SettingsActions,br as SettingsCard,xr as SettingsDescription,Sr as SettingsField,Cr as SettingsHeader,wr as SettingsNote,Tr as SettingsPage,Er as SettingsRow,Dr as SettingsRowDescription,Or as SettingsRowText,kr as SettingsRowTitle,Ar as SettingsSection,jr as SettingsSectionDescription,Mr as SettingsSectionHeader,Nr as SettingsSectionTitle,Pr as SettingsTitle,Fr as Sheet,Ir as SheetBody,Lr as SheetClose,Rr as SheetContent,zr as SheetDescription,Br as SheetFooter,Vr as SheetHeader,Hr as SheetOverlay,Ur as SheetTitle,Wr as SheetTrigger,Y as ShieldIcon,X as ShrinkIcon,Dt as Skeleton,Z as SlidersIcon,Q as SparklesIcon,Me as Spinner,yn as StatusBadge,$ as StopIcon,Gr as StreamCursor,Kr as Switch,Ct as SyntaxLine,wt as SyntaxText,Yr as Tabs,Xr as TabsContent,Zr as TabsList,Qr as TabsTrigger,ee as TaskIcon,ti as TerminalView,ar as Textarea,ni as Toast,ri as ToastAction,ii as ToastClose,ai as ToastDescription,oi as ToastProvider,si as ToastTitle,ci as ToastViewport,di as ToolPathLink,Te as Tooltip,Ee as TooltipContent,De as TooltipProvider,Oe as TooltipTrigger,te as TrashIcon,ne as UnlockIcon,re as UserIcon,ie as UsersIcon,pn as ViewableImage,ae as VolumeIcon,oe as WorkflowIcon,se as WrenchIcon,Se as agentInitials,pe as ansiSpans,we as badgeVariants,je as breadcrumbSegments,Ge as buildReviewPrompt,Pe as buttonVariants,Zn as clockRefreshMs,Qn as clockText,ce as cn,fi as collapseLines,hi as compactDetails,Ke as defaultReviewHeading,bt as detectGrammar,We as dialogFooterVariants,qe as diffGutterWidth,Je as diffRangeOf,be as dotVariants,gt as drawableImageUrl,pt as dropdownMenuItemVariants,Nt as fieldVariants,$n as formatRunDuration,ht as grammarKeyOf,Si as groupByDirectory,Ci as groupRowLabel,Ft as handleOptionListKey,gi as hashlineBody,nn as hashlineGroups,rn as hashlineGroupsKey,xt as highlightToLines,qn as inlineProfileIcon,_t as markdownMediaReview,vt as markdownMediaReviewSlot,mn as mediaKindOf,kn as messageItemRowVariants,An as messageItemStatusVariants,jn as messageItemVariants,Fn as messageLineVariants,It as optionListHint,Vt as optionListVariants,Lt as optionMarker,Ht as optionMarkerVariants,Ut as optionRowVariants,_i as parseFileHeader,Jn as parseProfileCatalog,vi as parseTaggedLine,yi as presentHashlineLines,gn as resolvePdfViewportRegion,bi as resultTextLines,Ye as reviewCommentAnchor,bn as statusBadgeVariants,yt as svgImageUrl,St as syntaxStyleOf,$r as tabBadgeVariants,ei as tabVariants,xi as takeTrailingNotice,li as toastVariants,Mn as toolTone,Xe as trimSnippet,Nn as useMessageItem,Xn as useProfileCatalog,Tt as useSyntaxLines};
|
|
@@ -3,10 +3,14 @@
|
|
|
3
3
|
export type AgentState = 'running' | 'waiting' | 'done' | 'failed';
|
|
4
4
|
/** One letter for a first name, two for a hyphenated agent name (`po-developer` is PD). */
|
|
5
5
|
export declare function agentInitials(name: string): string;
|
|
6
|
-
/**
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* An agent's face: its initials on a tint fixed by `seed`, with its state as a corner dot. An `image`
|
|
8
|
+
* replaces the initials once it loads; pass only inline `data:` URLs so rendering never reaches a host.
|
|
9
|
+
*/
|
|
10
|
+
export declare function AgentAvatar({ name, seed, image, state, size }: {
|
|
8
11
|
name: string;
|
|
9
12
|
seed?: string;
|
|
13
|
+
image?: string;
|
|
10
14
|
state?: AgentState;
|
|
11
15
|
size?: 'sm' | 'md';
|
|
12
16
|
}): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentAvatar.d.mts","names":[],"sources":["../../../../../../src/components/AgentAvatar.tsx"],"mappings":";;YAKY;;wBAGI,cAAc
|
|
1
|
+
{"version":3,"file":"AgentAvatar.d.mts","names":[],"sources":["../../../../../../src/components/AgentAvatar.tsx"],"mappings":";;YAKY;;wBAGI,cAAc;;;;;wBAmCd,cACd,MACA,MACA,OACA,OACA;EAEA;EACA;EACA;EACA,QAAQ;EACR;oBACD,IAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Avatar as e,AvatarFallback as t}from"./Avatar.mjs";import{Dot as
|
|
1
|
+
import{Avatar as e,AvatarFallback as t,AvatarImage as n}from"./Avatar.mjs";import{Dot as r}from"./Dot.mjs";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o(e){return e.split(/[-_.\s]+/u).filter(Boolean).slice(0,2).map(e=>e.charAt(0).toUpperCase()).join(``)}const s=[`bg-po-tint-green`,`bg-po-tint-teal`,`bg-po-tint-blue`,`bg-po-tint-cyan`,`bg-po-tint-yellow`,`bg-po-tint-violet`],c={running:`green`,waiting:`yellow`,done:`neutral`,failed:`red`};function l(e){let t=0;for(let n of e)t=(t*31+n.charCodeAt(0))%997;return s[t%s.length]??s[0]}function u({name:s,seed:u=s,image:d,state:f,size:p=`md`}){return/* @__PURE__ */ a(`span`,{role:`img`,"aria-label":f?`${s}, ${f}`:s,"data-testid":`agent-avatar`,className:`relative inline-flex shrink-0`,children:[/* @__PURE__ */ a(e,{className:`${p===`sm`?`size-6`:`size-8`} ${l(u)}`,children:[d?/* @__PURE__ */ i(n,{src:d,alt:``}):null,/* @__PURE__ */ i(t,{className:`text-sm text-po-hi`,children:o(s)})]}),f?/* @__PURE__ */ i(r,{tone:c[f],size:`md`,pulse:f===`running`,className:`absolute -right-0.5 -bottom-0.5 ring-2 ring-po-panel`}):null]})}export{u as AgentAvatar,o as agentInitials};
|
|
2
2
|
//# sourceMappingURL=AgentAvatar.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentAvatar.mjs","names":["agentInitials","name","part","TINTS","STATE_DOT","tintFor","hash","char","seed","AgentAvatar","state","Avatar","size","AvatarFallback","Dot"],"sources":["../../../../../../src/components/AgentAvatar.tsx"],"sourcesContent":["import type { DotTone } from '../types/tone';\nimport { Avatar, AvatarFallback } from './Avatar';\nimport { Dot } from './Dot';\n\n/** How an agent is doing, as the avatar's corner dot shows it. */\nexport type AgentState = 'running' | 'waiting' | 'done' | 'failed';\n\n/** One letter for a first name, two for a hyphenated agent name (`po-developer` is PD). */\nexport function agentInitials(name: string): string {\n return name\n .split(/[-_.\\s]+/u)\n .filter(Boolean)\n .slice(0, 2)\n .map((part) => part.charAt(0).toUpperCase())\n .join('');\n}\n\nconst TINTS = [\n 'bg-po-tint-green',\n 'bg-po-tint-teal',\n 'bg-po-tint-blue',\n 'bg-po-tint-cyan',\n 'bg-po-tint-yellow',\n 'bg-po-tint-violet',\n] as const;\n\nconst STATE_DOT: Readonly<Record<AgentState, DotTone>> = {\n running: 'green',\n waiting: 'yellow',\n done: 'neutral',\n failed: 'red',\n};\n\nfunction tintFor(seed: string): string {\n let hash = 0;\n for (const char of seed) hash = (hash * 31 + char.charCodeAt(0)) % 997;\n return TINTS[hash % TINTS.length] ?? TINTS[0];\n}\n\n
|
|
1
|
+
{"version":3,"file":"AgentAvatar.mjs","names":["agentInitials","name","part","TINTS","STATE_DOT","tintFor","hash","char","seed","AgentAvatar","state","Avatar","size","image","AvatarImage","AvatarFallback","Dot"],"sources":["../../../../../../src/components/AgentAvatar.tsx"],"sourcesContent":["import type { DotTone } from '../types/tone';\nimport { Avatar, AvatarFallback, AvatarImage } from './Avatar';\nimport { Dot } from './Dot';\n\n/** How an agent is doing, as the avatar's corner dot shows it. */\nexport type AgentState = 'running' | 'waiting' | 'done' | 'failed';\n\n/** One letter for a first name, two for a hyphenated agent name (`po-developer` is PD). */\nexport function agentInitials(name: string): string {\n return name\n .split(/[-_.\\s]+/u)\n .filter(Boolean)\n .slice(0, 2)\n .map((part) => part.charAt(0).toUpperCase())\n .join('');\n}\n\nconst TINTS = [\n 'bg-po-tint-green',\n 'bg-po-tint-teal',\n 'bg-po-tint-blue',\n 'bg-po-tint-cyan',\n 'bg-po-tint-yellow',\n 'bg-po-tint-violet',\n] as const;\n\nconst STATE_DOT: Readonly<Record<AgentState, DotTone>> = {\n running: 'green',\n waiting: 'yellow',\n done: 'neutral',\n failed: 'red',\n};\n\nfunction tintFor(seed: string): string {\n let hash = 0;\n for (const char of seed) hash = (hash * 31 + char.charCodeAt(0)) % 997;\n return TINTS[hash % TINTS.length] ?? TINTS[0];\n}\n\n/**\n * An agent's face: its initials on a tint fixed by `seed`, with its state as a corner dot. An `image`\n * replaces the initials once it loads; pass only inline `data:` URLs so rendering never reaches a host.\n */\nexport function AgentAvatar({\n name,\n seed = name,\n image,\n state,\n size = 'md',\n}: {\n name: string;\n seed?: string;\n image?: string;\n state?: AgentState;\n size?: 'sm' | 'md';\n}) {\n return (\n <span\n role=\"img\"\n aria-label={state ? `${name}, ${state}` : name}\n data-testid=\"agent-avatar\"\n className=\"relative inline-flex shrink-0\"\n >\n <Avatar className={`${size === 'sm' ? 'size-6' : 'size-8'} ${tintFor(seed)}`}>\n {image ? <AvatarImage src={image} alt=\"\" /> : null}\n <AvatarFallback className=\"text-sm text-po-hi\">{agentInitials(name)}</AvatarFallback>\n </Avatar>\n {state ? (\n <Dot\n tone={STATE_DOT[state]}\n size=\"md\"\n pulse={state === 'running'}\n className=\"absolute -right-0.5 -bottom-0.5 ring-2 ring-po-panel\"\n />\n ) : null}\n </span>\n );\n}\n"],"mappings":"6JAQA,SAAgBA,EAAc,EAAsB,CAClD,OAAOC,EACJ,MAAM,WAAW,CAAC,CAClB,OAAO,OAAO,CAAC,CACf,MAAM,EAAG,CAAC,CAAC,CACX,IAAK,GAASC,EAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAC3C,KAAK,EAAE,CACZ,CAEA,MAAMC,EAAQ,CACZ,mBACA,kBACA,kBACA,kBACA,oBACA,mBACF,EAEMC,EAAmD,CACvD,QAAS,QACT,QAAS,SACT,KAAM,UACN,OAAQ,KACV,EAEA,SAASC,EAAQ,EAAsB,CACrC,IAAIC,EAAO,EACX,IAAK,IAAMC,KAAQC,EAAM,GAAQF,EAAO,GAAKC,EAAK,WAAW,CAAC,GAAK,IACnE,OAAOJ,EAAMG,EAAOH,EAAM,SAAWA,EAAM,EAC7C,CAMA,SAAgBM,EAAY,CAC1B,OACA,OAAOR,EACP,QACA,QACA,OAAO,MAON,CACD,MACE,kBAAC,OAAD,CACE,KAAK,MACL,aAAYS,EAAQ,GAAGT,EAAK,IAAIS,IAAUT,EAC1C,cAAY,eACZ,UAAU,gCAJZ,SAAA,CAME,kBAACU,EAAD,CAAQ,UAAW,GAAGC,IAAS,KAAO,SAAW,SAAS,GAAGP,EAAQG,CAAI,IAAzE,SAAA,CACGK,EAAQ,kBAACC,EAAD,CAAa,IAAKD,EAAO,IAAI,EAAI,CAAA,EAAI,KAC9C,kBAACE,EAAD,CAAgB,UAAU,qBAAsB,SAAAf,EAAcC,CAAI,CAAkB,CAAA,CAC9E,CACP,CAAA,EAAAS,EACC,kBAACM,EAAD,CACE,KAAMZ,EAAUM,GAChB,KAAK,KACL,MAAOA,IAAU,UACjB,UAAU,sDACX,CAAA,EACC,IACA,GAEV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfilePicker.d.mts","names":[],"sources":["../../../../../../src/components/ProfilePicker.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ProfilePicker.d.mts","names":[],"sources":["../../../../../../src/components/ProfilePicker.tsx"],"mappings":";;iBAsBiB;EACf,mBAAmB;EACnB,QAAQ;;EAER,OAAO;EACP,WAAW,QAAQ;EACnB;EACA;EACA;;;;;;;;;;wBAac,gBAAgB,UAAU,QAAQ,OAAO,UAAU,UAAU,IAAI,aAAa,qCAAkB,IAAA;;;;;;wBAqFhG,kBACd,aACA,QAAQ,QAAQ,gBAAgB;EAC7B,QAAQ;EAAqB,mBAAmB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ChevronDownIcon as e}from"../icons/icons.mjs";import{cn as t}from"../lib/cn.mjs";import{
|
|
1
|
+
import{ChevronDownIcon as e}from"../icons/icons.mjs";import{cn as t}from"../lib/cn.mjs";import{AgentAvatar as n}from"./AgentAvatar.mjs";import{Spinner as r}from"./Spinner.mjs";import{Button as i}from"./Button.mjs";import{Popover as a,PopoverTrigger as o}from"./Popover.mjs";import{PickerContent as s}from"./Picker.mjs";import{inlineProfileIcon as c,loadProfileCatalog as l,profileChoiceLabel as u,profileChoiceOf as d,profilePickerItems as f,profileValueOf as p}from"../lib/profilePicker.mjs";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{useEffect as g,useId as _,useRef as v,useState as y}from"react";function b({profiles:l,status:g,value:v,onChange:b,disabled:x,id:S,className:C}){let[w,T]=y(!1),E=_(),D=new Map(l.map(e=>[p(e.name),e])),O=f(l).map(e=>{let t=D.get(e.value);return{...e,...t?{lead:/* @__PURE__ */ m(n,{name:e.title,seed:t.name,image:c(t.identity?.icon),size:`sm`})}:{},props:{"data-testid":`profile-option-${e.value}`}}});return/* @__PURE__ */ h(`div`,{"data-slot":`profile-picker`,"data-testid":`profile-picker`,className:t(`flex flex-col gap-1`,C),children:[/* @__PURE__ */ m(`span`,{id:E,className:`text-base font-medium text-po-text`,children:`Profile (optional)`}),/* @__PURE__ */ h(a,{open:w,onOpenChange:T,children:[/* @__PURE__ */ m(o,{asChild:!0,children:/* @__PURE__ */ h(i,{id:S,variant:`outline`,"data-testid":`profile-picker-trigger`,"aria-haspopup":`listbox`,"aria-expanded":w,"aria-labelledby":E,disabled:x,className:`w-full justify-between px-2.5 text-po-text`,children:[/* @__PURE__ */ m(`span`,{className:`truncate`,children:u(v,l)}),g===`loading`?/* @__PURE__ */ m(r,{className:`size-3 shrink-0`}):/* @__PURE__ */ m(e,{className:`size-3.5 shrink-0 opacity-60`})]})}),/* @__PURE__ */ m(s,{side:`bottom`,align:`start`,"data-testid":`profile-picker-list`,title:`Profile`,meta:g===`loading`?`loading`:`${String(l.length)} available`,items:O,value:[p(v)],filterable:O.length>9,filterPlaceholder:`Filter profiles`,className:`w-[min(360px,calc(100vw-24px))]`,onSelect:e=>{b(d(e)),T(!1)}})]}),g===`loading`?/* @__PURE__ */ m(`p`,{role:`status`,className:`text-sm text-po-dim`,children:`Loading profiles…`}):g===`unavailable`?/* @__PURE__ */ h(`p`,{role:`status`,"data-testid":`profile-picker-note`,className:`text-sm text-po-dim`,children:[l.length===0?`Profiles could not be loaded.`:`Some profiles could not be loaded.`,` `,`You can still start a session without one.`]}):null]})}function x(e,t){let[n,r]=y(),i=v(t);g(()=>{i.current=t});let a=t!==void 0;if(g(()=>{if(!a)return;let t=new AbortController;return l(e=>i.current?.(e)??Promise.resolve(void 0),t.signal).then(t=>{t!==void 0&&r({key:e,state:t})}),()=>t.abort()},[e,a]),a)return n?.key===e?n.state:{status:`loading`,profiles:[]}}export{b as ProfilePicker,x as useProfileCatalog};
|
|
2
2
|
//# sourceMappingURL=ProfilePicker.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfilePicker.mjs","names":["ProfilePicker","open","setOpen","useState","labelId","useId","items","profilePickerItems","
|
|
1
|
+
{"version":3,"file":"ProfilePicker.mjs","names":["ProfilePicker","open","setOpen","useState","labelId","useId","byValue","profiles","profileValueOf","profile","items","profilePickerItems","item","AgentAvatar","inlineProfileIcon","cn","className","Popover","PopoverTrigger","Button","profileChoiceLabel","value","status","Spinner","ChevronDownIcon","PickerContent","onChange","profileChoiceOf","next","useProfileCatalog","loaded","setLoaded","latest","useRef","load","useEffect","enabled","controller","loadProfileCatalog","signal","state","key"],"sources":["../../../../../../src/components/ProfilePicker.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState } from 'react';\n\nimport { ChevronDownIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\nimport {\n inlineProfileIcon,\n loadProfileCatalog,\n type ProfileChoice,\n profileChoiceLabel,\n profileChoiceOf,\n type ProfilePickerProfile,\n type ProfilePickerState,\n type ProfilePickerStatus,\n profilePickerItems,\n profileValueOf,\n} from '../lib/profilePicker';\nimport { AgentAvatar } from './AgentAvatar';\nimport { Button } from './Button';\nimport { PickerContent } from './Picker';\nimport { Popover, PopoverTrigger } from './Popover';\nimport { Spinner } from './Spinner';\n\nexport interface ProfilePickerProps {\n profiles: readonly ProfilePickerProfile[];\n status: ProfilePickerStatus;\n /** `undefined`: not chosen. `null`: explicit No profile. A string: that profile. */\n value: ProfileChoice;\n onChange: (choice: ProfileChoice) => void;\n disabled?: boolean;\n id?: string;\n className?: string;\n}\n\nconst UNAVAILABLE_NOTE = 'You can still start a session without one.';\n\n/**\n * Chooses the profile a new session starts with.\n *\n * It never chooses for the person: a launch with nothing picked leaves the\n * workspace default eligible, and No profile is its own explicit row. The\n * list can still be filling in while the person decides, and a source that\n * did not load is said plainly instead of leaving the list quietly short.\n */\nexport function ProfilePicker({ profiles, status, value, onChange, disabled, id, className }: ProfilePickerProps) {\n const [open, setOpen] = useState(false);\n const labelId = useId();\n const byValue = new Map(profiles.map((profile) => [profileValueOf(profile.name), profile]));\n const items = profilePickerItems(profiles).map((item) => {\n const profile = byValue.get(item.value);\n return {\n ...item,\n // A profile's own face: its inline avatar, otherwise initials. The default and No profile rows have none.\n ...(profile\n ? {\n lead: (\n <AgentAvatar\n name={item.title}\n seed={profile.name}\n image={inlineProfileIcon(profile.identity?.icon)}\n size=\"sm\"\n />\n ),\n }\n : {}),\n props: { 'data-testid': `profile-option-${item.value}` },\n };\n });\n return (\n <div data-slot=\"profile-picker\" data-testid=\"profile-picker\" className={cn('flex flex-col gap-1', className)}>\n <span id={labelId} className=\"text-base font-medium text-po-text\">\n Profile (optional)\n </span>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant=\"outline\"\n data-testid=\"profile-picker-trigger\"\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-labelledby={labelId}\n disabled={disabled}\n className=\"w-full justify-between px-2.5 text-po-text\"\n >\n <span className=\"truncate\">{profileChoiceLabel(value, profiles)}</span>\n {status === 'loading' ? (\n <Spinner className=\"size-3 shrink-0\" />\n ) : (\n <ChevronDownIcon className=\"size-3.5 shrink-0 opacity-60\" />\n )}\n </Button>\n </PopoverTrigger>\n <PickerContent\n side=\"bottom\"\n align=\"start\"\n data-testid=\"profile-picker-list\"\n title=\"Profile\"\n meta={status === 'loading' ? 'loading' : `${String(profiles.length)} available`}\n items={items}\n value={[profileValueOf(value)]}\n filterable={items.length > 9}\n filterPlaceholder=\"Filter profiles\"\n className=\"w-[min(360px,calc(100vw-24px))]\"\n onSelect={(next) => {\n onChange(profileChoiceOf(next));\n setOpen(false);\n }}\n />\n </Popover>\n {status === 'loading' ? (\n <p role=\"status\" className=\"text-sm text-po-dim\">\n Loading profiles…\n </p>\n ) : status === 'unavailable' ? (\n <p role=\"status\" data-testid=\"profile-picker-note\" className=\"text-sm text-po-dim\">\n {profiles.length === 0 ? 'Profiles could not be loaded.' : 'Some profiles could not be loaded.'}{' '}\n {UNAVAILABLE_NOTE}\n </p>\n ) : null}\n </div>\n );\n}\n\n/**\n * Loads the profile list for one target, such as a workspace, and reloads when `key` changes.\n * Undefined while no loader exists, so a host that offers none shows no picker.\n * Never chooses a profile; an unreachable server is \"unavailable\" with nothing listed.\n */\nexport function useProfileCatalog(\n key: string,\n load: ((signal: AbortSignal) => Promise<unknown>) | undefined,\n): { status: ProfilePickerStatus; profiles: readonly ProfilePickerProfile[] } | undefined {\n const [loaded, setLoaded] = useState<{ key: string; state: ProfilePickerState } | undefined>();\n // The newest loader without restarting the request each time a host rebuilds it; declared first so it runs first.\n const latest = useRef(load);\n useEffect(() => {\n latest.current = load;\n });\n const enabled = load !== undefined;\n useEffect(() => {\n if (!enabled) return;\n const controller = new AbortController();\n const request = (signal: AbortSignal): Promise<unknown> => latest.current?.(signal) ?? Promise.resolve(undefined);\n void loadProfileCatalog(request, controller.signal).then((state) => {\n if (state !== undefined) setLoaded({ key, state });\n });\n return () => controller.abort();\n }, [key, enabled]);\n if (!enabled) return undefined;\n return loaded?.key === key ? loaded.state : { status: 'loading', profiles: [] };\n}\n"],"mappings":"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"}
|
|
@@ -9,9 +9,12 @@ export type ProfileChoice = string | null | undefined;
|
|
|
9
9
|
/** What the picker may know about a profile. Never its environment, persona, bindings or secrets. */
|
|
10
10
|
export interface ProfilePickerProfile {
|
|
11
11
|
readonly name: string;
|
|
12
|
+
/** Presentation only: `role` is what the persona does, `contact` a display-only address its source supplies. */
|
|
12
13
|
readonly identity?: {
|
|
13
14
|
readonly name?: string;
|
|
14
15
|
readonly icon?: string;
|
|
16
|
+
readonly role?: string;
|
|
17
|
+
readonly contact?: string;
|
|
15
18
|
};
|
|
16
19
|
/** `files` for a profile file, otherwise the id of the plugin that contributed it. */
|
|
17
20
|
readonly sourceId: string;
|
|
@@ -26,6 +29,11 @@ export interface ProfilePickerState {
|
|
|
26
29
|
readonly status: Exclude<ProfilePickerStatus, 'loading'>;
|
|
27
30
|
readonly profiles: readonly ProfilePickerProfile[];
|
|
28
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* A profile avatar the page may draw: an inline PNG, JPEG, GIF or WebP `data:` URL within po-core's
|
|
34
|
+
* bound, so rendering never contacts a host and never runs an SVG. Anything else is undefined.
|
|
35
|
+
*/
|
|
36
|
+
export declare function inlineProfileIcon(value: unknown): string | undefined;
|
|
29
37
|
/**
|
|
30
38
|
* A server answer reduced to the fields the picker may show, or undefined when it is not a catalog.
|
|
31
39
|
* Any other field is dropped here, so nothing sensitive a server mistakenly adds can reach the page.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profilePicker.d.mts","names":[],"sources":["../../../../../../src/lib/profilePicker.ts"],"mappings":";;;;;;;YAQY;;iBAGK;WACN;
|
|
1
|
+
{"version":3,"file":"profilePicker.d.mts","names":[],"sources":["../../../../../../src/lib/profilePicker.ts"],"mappings":";;;;;;;YAQY;;iBAGK;WACN;;WAEA;aACE;aACA;aACA;aACA;;;WAGF;;iBAGM;WACN,mBAAmB;;WAEnB;;YAGC,kCAAkC;iBAE7B;WACN,QAAQ,QAAQ;WAChB,mBAAmB;;;;;;wBAqEd,kBAAkB;;;;;wBAiClB,oBAAoB,iBAAiB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=`default`,t=`none`,n=`profile:`,r=`Workspace default`,i=`No profile`;function a(r){return r===void 0?e:r===null?t:`${n}${r}`}function o(e){if(e===`none`)return null;if(e.startsWith(n))return e.slice(8)}function s(e){return e.identity?.name||e.name}function c(n){return[{value:e,title:r,subtitle:`Use what this workspace sets, if anything`},{value:t,title:i,subtitle:`Start without a profile`},...n.map(e=>({value:a(e.name),title:s(e),...
|
|
1
|
+
const e=`default`,t=`none`,n=`profile:`,r=`Workspace default`,i=`No profile`;function a(r){return r===void 0?e:r===null?t:`${n}${r}`}function o(e){if(e===`none`)return null;if(e.startsWith(n))return e.slice(8)}function s(e){return e.identity?.name||e.name}function c(e){return[e.identity?.role,e.identity?.contact].filter(Boolean).join(` · `)||(s(e)===e.name?void 0:e.name)}function l(n){return[{value:e,title:r,subtitle:`Use what this workspace sets, if anything`},{value:t,title:i,subtitle:`Start without a profile`},...n.map(e=>{let t=c(e);return{value:a(e.name),title:s(e),...t===void 0?{}:{subtitle:t}}})]}function u(e,t){if(e===void 0)return r;if(e===null)return i;let n=t.find(t=>t.name===e);return n===void 0?e:s(n)}const d=/^data:image\/(?:png|jpeg|gif|webp);base64,[A-Za-z0-9+/]+={0,2}$/;function f(e){return typeof e==`string`&&e.length<=262144&&d.test(e)?e:void 0}function p(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function m(e){if(!p(e)||typeof e.name!=`string`||e.name===``||typeof e.sourceId!=`string`||e.sourceId===``)return;let t=p(e.identity)?e.identity:void 0,n={};for(let e of[`name`,`icon`,`role`,`contact`]){let r=t?.[e];if(e===`icon`){let e=f(r);e&&(n.icon=e)}else typeof r==`string`&&r!==``&&(n[e]=r)}return{name:e.name,sourceId:e.sourceId,...Object.keys(n).length===0?{}:{identity:n}}}function h(e){if(!p(e)||!Array.isArray(e.profiles)||e.readiness!==`ready`&&e.readiness!==`unavailable`)return;let t=/* @__PURE__ */ new Set,n=[];for(let r of e.profiles){let e=m(r);e===void 0||t.has(e.name)||(t.add(e.name),n.push(e))}return{profiles:n,readiness:e.readiness}}const g={status:`unavailable`,profiles:[]};async function _(e,t){let n;try{n=await e(t)}catch{n=void 0}if(t.aborted)return;let r=h(n);return r===void 0?g:{status:r.readiness,profiles:r.profiles}}export{r as DEFAULT_PROFILE_LABEL,e as DEFAULT_PROFILE_VALUE,i as NO_PROFILE_LABEL,t as NO_PROFILE_VALUE,f as inlineProfileIcon,_ as loadProfileCatalog,h as parseProfileCatalog,u as profileChoiceLabel,o as profileChoiceOf,l as profilePickerItems,a as profileValueOf};
|
|
2
2
|
//# sourceMappingURL=profilePicker.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profilePicker.mjs","names":["DEFAULT_PROFILE_VALUE","NO_PROFILE_VALUE","PROFILE_PREFIX","DEFAULT_PROFILE_LABEL","NO_PROFILE_LABEL","profileValueOf","choice","profileChoiceOf","value","titleOf","profile","profilePickerItems","profiles","profileChoiceLabel","candidate","isRecord","profileOf","identity","identityName","identityIcon","parseProfileCatalog","seen","entry","UNAVAILABLE","loadProfileCatalog","answer","load","signal","catalog"],"sources":["../../../../../../src/lib/profilePicker.ts"],"sourcesContent":["import type { PickerChoice } from './picker';\n\n/**\n * The launch-time profile choice a person makes before a session exists.\n *\n * `undefined` is \"not chosen\": the workspace default may apply. `null` is an\n * explicit \"No profile\", which no default may override. A string names a profile.\n */\nexport type ProfileChoice = string | null | undefined;\n\n/** What the picker may know about a profile. Never its environment, persona, bindings or secrets. */\nexport interface ProfilePickerProfile {\n readonly name: string;\n readonly identity?: { readonly name?: string; readonly icon?: string };\n /** `files` for a profile file, otherwise the id of the plugin that contributed it. */\n readonly sourceId: string;\n}\n\nexport interface ProfilePickerCatalog {\n readonly profiles: readonly ProfilePickerProfile[];\n /** `unavailable`: a source did not become ready in time or failed. `profiles` lists what loaded. */\n readonly readiness: 'ready' | 'unavailable';\n}\n\nexport type ProfilePickerStatus = 'loading' | ProfilePickerCatalog['readiness'];\n\nexport interface ProfilePickerState {\n readonly status: Exclude<ProfilePickerStatus, 'loading'>;\n readonly profiles: readonly ProfilePickerProfile[];\n}\n\n/** Row values carry a prefix, so a profile named \"none\" or \"default\" cannot pass for a choice. */\nexport const DEFAULT_PROFILE_VALUE = 'default';\nexport const NO_PROFILE_VALUE = 'none';\nconst PROFILE_PREFIX = 'profile:';\n\nexport const DEFAULT_PROFILE_LABEL = 'Workspace default';\nexport const NO_PROFILE_LABEL = 'No profile';\n\nexport function profileValueOf(choice: ProfileChoice): string {\n if (choice === undefined) return DEFAULT_PROFILE_VALUE;\n if (choice === null) return NO_PROFILE_VALUE;\n return `${PROFILE_PREFIX}${choice}`;\n}\n\nexport function profileChoiceOf(value: string): ProfileChoice {\n if (value === NO_PROFILE_VALUE) return null;\n if (value.startsWith(PROFILE_PREFIX)) return value.slice(PROFILE_PREFIX.length);\n return undefined;\n}\n\nfunction titleOf(profile: ProfilePickerProfile): string {\n return profile.identity?.name || profile.name;\n}\n\n/** The workspace default and No profile first, then every profile in the order given. Nothing is preselected. */\nexport function profilePickerItems(profiles: readonly ProfilePickerProfile[]): PickerChoice[] {\n return [\n {\n value: DEFAULT_PROFILE_VALUE,\n title: DEFAULT_PROFILE_LABEL,\n subtitle: 'Use what this workspace sets, if anything',\n },\n { value: NO_PROFILE_VALUE, title: NO_PROFILE_LABEL, subtitle: 'Start without a profile' },\n ...profiles.map((profile) => ({\n value: profileValueOf(profile.name),\n title: titleOf(profile),\n ...(titleOf(profile) === profile.name ? {} : { subtitle: profile.name }),\n })),\n ];\n}\n\nexport function profileChoiceLabel(choice: ProfileChoice, profiles: readonly ProfilePickerProfile[]): string {\n if (choice === undefined) return DEFAULT_PROFILE_LABEL;\n if (choice === null) return NO_PROFILE_LABEL;\n const profile = profiles.find((candidate) => candidate.name === choice);\n return profile === undefined ? choice : titleOf(profile);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction profileOf(value: unknown): ProfilePickerProfile | undefined {\n if (!isRecord(value) || typeof value.name !== 'string' || value.name === '') return undefined;\n if (typeof value.sourceId !== 'string' || value.sourceId === '') return undefined;\n const identity = isRecord(value.identity) ? value.identity : undefined;\n const identityName = typeof identity?.name === 'string' && identity.name !== '' ? identity.name : undefined;\n const identityIcon = typeof identity?.icon === 'string' && identity.icon !== '' ? identity.icon : undefined;\n return {\n name: value.name,\n sourceId: value.sourceId,\n ...(identityName === undefined && identityIcon === undefined\n ? {}\n : {\n identity: {\n ...(identityName === undefined ? {} : { name: identityName }),\n ...(identityIcon === undefined ? {} : { icon: identityIcon }),\n },\n }),\n };\n}\n\n/**\n * A server answer reduced to the fields the picker may show, or undefined when it is not a catalog.\n * Any other field is dropped here, so nothing sensitive a server mistakenly adds can reach the page.\n */\nexport function parseProfileCatalog(value: unknown): ProfilePickerCatalog | undefined {\n if (!isRecord(value) || !Array.isArray(value.profiles)) return undefined;\n if (value.readiness !== 'ready' && value.readiness !== 'unavailable') return undefined;\n const seen = new Set<string>();\n const profiles: ProfilePickerProfile[] = [];\n for (const entry of value.profiles) {\n const profile = profileOf(entry);\n if (profile === undefined || seen.has(profile.name)) continue;\n seen.add(profile.name);\n profiles.push(profile);\n }\n return { profiles, readiness: value.readiness };\n}\n\nconst UNAVAILABLE: ProfilePickerState = { status: 'unavailable', profiles: [] };\n\n/**\n * Runs one catalog request. A failed or malformed answer is \"unavailable\" with nothing listed, so a\n * session can still start without a profile. Undefined means the caller gave up on this request.\n */\nexport async function loadProfileCatalog(\n load: (signal: AbortSignal) => Promise<unknown>,\n signal: AbortSignal,\n): Promise<ProfilePickerState | undefined> {\n let answer: unknown;\n try {\n answer = await load(signal);\n } catch {\n answer = undefined;\n }\n if (signal.aborted) return undefined;\n const catalog = parseProfileCatalog(answer);\n return catalog === undefined ? UNAVAILABLE : { status: catalog.readiness, profiles: catalog.profiles };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"profilePicker.mjs","names":["DEFAULT_PROFILE_VALUE","NO_PROFILE_VALUE","PROFILE_PREFIX","DEFAULT_PROFILE_LABEL","NO_PROFILE_LABEL","profileValueOf","choice","profileChoiceOf","value","titleOf","profile","subtitleOf","profilePickerItems","profiles","subtitle","profileChoiceLabel","candidate","INLINE_ICON","inlineProfileIcon","isRecord","profileOf","identity","presented","key","field","icon","parseProfileCatalog","seen","entry","UNAVAILABLE","loadProfileCatalog","answer","load","signal","catalog"],"sources":["../../../../../../src/lib/profilePicker.ts"],"sourcesContent":["import type { PickerChoice } from './picker';\n\n/**\n * The launch-time profile choice a person makes before a session exists.\n *\n * `undefined` is \"not chosen\": the workspace default may apply. `null` is an\n * explicit \"No profile\", which no default may override. A string names a profile.\n */\nexport type ProfileChoice = string | null | undefined;\n\n/** What the picker may know about a profile. Never its environment, persona, bindings or secrets. */\nexport interface ProfilePickerProfile {\n readonly name: string;\n /** Presentation only: `role` is what the persona does, `contact` a display-only address its source supplies. */\n readonly identity?: {\n readonly name?: string;\n readonly icon?: string;\n readonly role?: string;\n readonly contact?: string;\n };\n /** `files` for a profile file, otherwise the id of the plugin that contributed it. */\n readonly sourceId: string;\n}\n\nexport interface ProfilePickerCatalog {\n readonly profiles: readonly ProfilePickerProfile[];\n /** `unavailable`: a source did not become ready in time or failed. `profiles` lists what loaded. */\n readonly readiness: 'ready' | 'unavailable';\n}\n\nexport type ProfilePickerStatus = 'loading' | ProfilePickerCatalog['readiness'];\n\nexport interface ProfilePickerState {\n readonly status: Exclude<ProfilePickerStatus, 'loading'>;\n readonly profiles: readonly ProfilePickerProfile[];\n}\n\n/** Row values carry a prefix, so a profile named \"none\" or \"default\" cannot pass for a choice. */\nexport const DEFAULT_PROFILE_VALUE = 'default';\nexport const NO_PROFILE_VALUE = 'none';\nconst PROFILE_PREFIX = 'profile:';\n\nexport const DEFAULT_PROFILE_LABEL = 'Workspace default';\nexport const NO_PROFILE_LABEL = 'No profile';\n\nexport function profileValueOf(choice: ProfileChoice): string {\n if (choice === undefined) return DEFAULT_PROFILE_VALUE;\n if (choice === null) return NO_PROFILE_VALUE;\n return `${PROFILE_PREFIX}${choice}`;\n}\n\nexport function profileChoiceOf(value: string): ProfileChoice {\n if (value === NO_PROFILE_VALUE) return null;\n if (value.startsWith(PROFILE_PREFIX)) return value.slice(PROFILE_PREFIX.length);\n return undefined;\n}\n\nfunction titleOf(profile: ProfilePickerProfile): string {\n return profile.identity?.name || profile.name;\n}\n\n/** Role and contact under the name, otherwise the profile name when the title hides it. */\nfunction subtitleOf(profile: ProfilePickerProfile): string | undefined {\n const presented = [profile.identity?.role, profile.identity?.contact].filter(Boolean).join(' · ');\n if (presented) return presented;\n return titleOf(profile) === profile.name ? undefined : profile.name;\n}\n\n/** The workspace default and No profile first, then every profile in the order given. Nothing is preselected. */\nexport function profilePickerItems(profiles: readonly ProfilePickerProfile[]): PickerChoice[] {\n return [\n {\n value: DEFAULT_PROFILE_VALUE,\n title: DEFAULT_PROFILE_LABEL,\n subtitle: 'Use what this workspace sets, if anything',\n },\n { value: NO_PROFILE_VALUE, title: NO_PROFILE_LABEL, subtitle: 'Start without a profile' },\n ...profiles.map((profile) => {\n const subtitle = subtitleOf(profile);\n return {\n value: profileValueOf(profile.name),\n title: titleOf(profile),\n ...(subtitle === undefined ? {} : { subtitle }),\n };\n }),\n ];\n}\n\nexport function profileChoiceLabel(choice: ProfileChoice, profiles: readonly ProfilePickerProfile[]): string {\n if (choice === undefined) return DEFAULT_PROFILE_LABEL;\n if (choice === null) return NO_PROFILE_LABEL;\n const profile = profiles.find((candidate) => candidate.name === choice);\n return profile === undefined ? choice : titleOf(profile);\n}\n\nconst INLINE_ICON = /^data:image\\/(?:png|jpeg|gif|webp);base64,[A-Za-z0-9+/]+={0,2}$/;\n/** po-core's `PROFILE_ICON_MAX_DATA_URL_LENGTH`. */\nconst MAX_INLINE_ICON_LENGTH = 262_144;\n\n/**\n * A profile avatar the page may draw: an inline PNG, JPEG, GIF or WebP `data:` URL within po-core's\n * bound, so rendering never contacts a host and never runs an SVG. Anything else is undefined.\n */\nexport function inlineProfileIcon(value: unknown): string | undefined {\n return typeof value === 'string' && value.length <= MAX_INLINE_ICON_LENGTH && INLINE_ICON.test(value)\n ? value\n : undefined;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction profileOf(value: unknown): ProfilePickerProfile | undefined {\n if (!isRecord(value) || typeof value.name !== 'string' || value.name === '') return undefined;\n if (typeof value.sourceId !== 'string' || value.sourceId === '') return undefined;\n const identity = isRecord(value.identity) ? value.identity : undefined;\n const presented: Record<string, string> = {};\n for (const key of ['name', 'icon', 'role', 'contact'] as const) {\n const field = identity?.[key];\n if (key === 'icon') {\n const icon = inlineProfileIcon(field);\n if (icon) presented.icon = icon;\n } else if (typeof field === 'string' && field !== '') presented[key] = field;\n }\n return {\n name: value.name,\n sourceId: value.sourceId,\n ...(Object.keys(presented).length === 0 ? {} : { identity: presented }),\n };\n}\n\n/**\n * A server answer reduced to the fields the picker may show, or undefined when it is not a catalog.\n * Any other field is dropped here, so nothing sensitive a server mistakenly adds can reach the page.\n */\nexport function parseProfileCatalog(value: unknown): ProfilePickerCatalog | undefined {\n if (!isRecord(value) || !Array.isArray(value.profiles)) return undefined;\n if (value.readiness !== 'ready' && value.readiness !== 'unavailable') return undefined;\n const seen = new Set<string>();\n const profiles: ProfilePickerProfile[] = [];\n for (const entry of value.profiles) {\n const profile = profileOf(entry);\n if (profile === undefined || seen.has(profile.name)) continue;\n seen.add(profile.name);\n profiles.push(profile);\n }\n return { profiles, readiness: value.readiness };\n}\n\nconst UNAVAILABLE: ProfilePickerState = { status: 'unavailable', profiles: [] };\n\n/**\n * Runs one catalog request. A failed or malformed answer is \"unavailable\" with nothing listed, so a\n * session can still start without a profile. Undefined means the caller gave up on this request.\n */\nexport async function loadProfileCatalog(\n load: (signal: AbortSignal) => Promise<unknown>,\n signal: AbortSignal,\n): Promise<ProfilePickerState | undefined> {\n let answer: unknown;\n try {\n answer = await load(signal);\n } catch {\n answer = undefined;\n }\n if (signal.aborted) return undefined;\n const catalog = parseProfileCatalog(answer);\n return catalog === undefined ? UNAVAILABLE : { status: catalog.readiness, profiles: catalog.profiles };\n}\n"],"mappings":"AAsCA,MAAaA,EAAwB,UACxBC,EAAmB,OAC1BC,EAAiB,WAEVC,EAAwB,oBACxBC,EAAmB,aAEhC,SAAgBC,EAAe,EAA+B,CAG5D,OAFIC,IAAW,IAAA,GAAkBN,EAC7BM,IAAW,KAAaL,EACrB,GAAGC,IAAiBI,GAC7B,CAEA,SAAgBC,EAAgB,EAA8B,CAC5D,GAAIC,IAAA,OAA4B,OAAO,KACvC,GAAIA,EAAM,WAAWN,CAAc,EAAG,OAAOM,EAAM,MAAM,CAAqB,CAEhF,CAEA,SAASC,EAAQ,EAAuC,CACtD,OAAOC,EAAQ,UAAU,MAAQA,EAAQ,IAC3C,CAGA,SAASC,EAAW,EAAmD,CAGrE,MAFkB,CAACD,EAAQ,UAAU,KAAMA,EAAQ,UAAU,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,KACvF,IACGD,EAAQC,CAAO,IAAMA,EAAQ,KAAO,IAAA,GAAYA,EAAQ,KACjE,CAGA,SAAgBE,EAAmB,EAA2D,CAC5F,MAAO,CACL,CACE,MAAOZ,EACP,MAAOG,EACP,SAAU,2CACZ,EACA,CAAE,MAAOF,EAAkB,MAAOG,EAAkB,SAAU,yBAA0B,EACxF,GAAGS,EAAS,IAAK,GAAY,CAC3B,IAAMC,EAAWH,EAAWD,CAAO,EACnC,MAAO,CACL,MAAOL,EAAeK,EAAQ,IAAI,EAClC,MAAOD,EAAQC,CAAO,EACtB,GAAII,IAAa,IAAA,GAAY,CAAC,EAAI,CAAE,UAAS,CAC/C,CACF,CAAC,CACH,CACF,CAEA,SAAgBC,EAAmB,EAAuB,EAAmD,CAC3G,GAAIT,IAAW,IAAA,GAAW,OAAOH,EACjC,GAAIG,IAAW,KAAM,OAAOF,EAC5B,IAAMM,EAAUG,EAAS,KAAM,GAAcG,EAAU,OAASV,CAAM,EACtE,OAAOI,IAAY,IAAA,GAAYJ,EAASG,EAAQC,CAAO,CACzD,CAEA,MAAMO,EAAc,kEAQpB,SAAgBC,EAAkB,EAAoC,CACpE,OAAO,OAAOV,GAAU,UAAYA,EAAM,QAAU,QAA0BS,EAAY,KAAKT,CAAK,EAChGA,EACA,IAAA,EACN,CAEA,SAASW,EAAS,EAAkD,CAClE,OAAO,OAAOX,GAAU,YAAYA,GAAkB,CAAC,MAAM,QAAQA,CAAK,CAC5E,CAEA,SAASY,EAAU,EAAkD,CAEnE,GADI,CAACD,EAASX,CAAK,GAAK,OAAOA,EAAM,MAAS,UAAYA,EAAM,OAAS,IACrE,OAAOA,EAAM,UAAa,UAAYA,EAAM,WAAa,GAAI,OACjE,IAAMa,EAAWF,EAASX,EAAM,QAAQ,EAAIA,EAAM,SAAW,IAAA,GACvDc,EAAoC,CAAC,EAC3C,IAAK,IAAMC,IAAO,CAAC,OAAQ,OAAQ,OAAQ,SAAS,EAAY,CAC9D,IAAMC,EAAQH,IAAWE,GACzB,GAAIA,IAAQ,OAAQ,CAClB,IAAME,EAAOP,EAAkBM,CAAK,EAChCC,IAAM,EAAU,KAAOA,EAC7B,MAAW,OAAOD,GAAU,UAAYA,IAAU,KAAI,EAAUD,GAAOC,EACzE,CACA,MAAO,CACL,KAAMhB,EAAM,KACZ,SAAUA,EAAM,SAChB,GAAI,OAAO,KAAKc,CAAS,CAAC,CAAC,SAAW,EAAI,CAAC,EAAI,CAAE,SAAUA,CAAU,CACvE,CACF,CAMA,SAAgBI,EAAoB,EAAkD,CAEpF,GADI,CAACP,EAASX,CAAK,GAAK,CAAC,MAAM,QAAQA,EAAM,QAAQ,GACjDA,EAAM,YAAc,SAAWA,EAAM,YAAc,cAAe,OACtE,IAAMmB,kBAAO,IAAI,IACXd,EAAmC,CAAC,EAC1C,IAAK,IAAMe,KAASpB,EAAM,SAAU,CAClC,IAAME,EAAUU,EAAUQ,CAAK,EAC3BlB,IAAY,IAAA,IAAaiB,EAAK,IAAIjB,EAAQ,IAAI,IAClDiB,EAAK,IAAIjB,EAAQ,IAAI,EACrBG,EAAS,KAAKH,CAAO,EACvB,CACA,MAAO,CAAE,WAAU,UAAWF,EAAM,SAAU,CAChD,CAEA,MAAMqB,EAAkC,CAAE,OAAQ,cAAe,SAAU,CAAC,CAAE,EAM9E,eAAsBC,EACpB,EACA,EACyC,CACzC,IAAIC,EACJ,GAAI,CACF,EAAS,MAAMC,EAAKC,CAAM,CAC5B,MAAQ,CACN,EAAS,IAAA,EACX,CACA,GAAIA,EAAO,QAAS,OACpB,IAAMC,EAAUR,EAAoBK,CAAM,EAC1C,OAAOG,IAAY,IAAA,GAAYL,EAAc,CAAE,OAAQK,EAAQ,UAAW,SAAUA,EAAQ,QAAS,CACvG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./Avatar.cjs"),t=require("./Dot.cjs");let n=require("react/jsx-runtime");function r(e){return e.split(/[-_.\s]+/u).filter(Boolean).slice(0,2).map(e=>e.charAt(0).toUpperCase()).join(``)}const i=[`bg-po-tint-green`,`bg-po-tint-teal`,`bg-po-tint-blue`,`bg-po-tint-cyan`,`bg-po-tint-yellow`,`bg-po-tint-violet`],a={running:`green`,waiting:`yellow`,done:`neutral`,failed:`red`};function o(e){let t=0;for(let n of e)t=(t*31+n.charCodeAt(0))%997;return i[t%i.length]??i[0]}function s({name:i,seed:s=i,
|
|
1
|
+
const e=require("./Avatar.cjs"),t=require("./Dot.cjs");let n=require("react/jsx-runtime");function r(e){return e.split(/[-_.\s]+/u).filter(Boolean).slice(0,2).map(e=>e.charAt(0).toUpperCase()).join(``)}const i=[`bg-po-tint-green`,`bg-po-tint-teal`,`bg-po-tint-blue`,`bg-po-tint-cyan`,`bg-po-tint-yellow`,`bg-po-tint-violet`],a={running:`green`,waiting:`yellow`,done:`neutral`,failed:`red`};function o(e){let t=0;for(let n of e)t=(t*31+n.charCodeAt(0))%997;return i[t%i.length]??i[0]}function s({name:i,seed:s=i,image:c,state:l,size:u=`md`}){return/* @__PURE__ */ (0,n.jsxs)(`span`,{role:`img`,"aria-label":l?`${i}, ${l}`:i,"data-testid":`agent-avatar`,className:`relative inline-flex shrink-0`,children:[/* @__PURE__ */ (0,n.jsxs)(e.Avatar,{className:`${u===`sm`?`size-6`:`size-8`} ${o(s)}`,children:[c?/* @__PURE__ */ (0,n.jsx)(e.AvatarImage,{src:c,alt:``}):null,/* @__PURE__ */ (0,n.jsx)(e.AvatarFallback,{className:`text-sm text-po-hi`,children:r(i)})]}),l?/* @__PURE__ */ (0,n.jsx)(t.Dot,{tone:a[l],size:`md`,pulse:l===`running`,className:`absolute -right-0.5 -bottom-0.5 ring-2 ring-po-panel`}):null]})}exports.AgentAvatar=s,exports.agentInitials=r;
|
|
2
2
|
//# sourceMappingURL=AgentAvatar.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentAvatar.cjs","names":["Avatar","AvatarFallback","Dot","require_Avatar","require_Dot","react_jsx_runtime","agentInitials","name","part","TINTS","STATE_DOT","tintFor","hash","char","seed","AgentAvatar","state","size"],"sources":["../../../src/components/AgentAvatar.tsx"],"sourcesContent":["import type { DotTone } from '../types/tone';\nimport { Avatar, AvatarFallback } from './Avatar';\nimport { Dot } from './Dot';\n\n/** How an agent is doing, as the avatar's corner dot shows it. */\nexport type AgentState = 'running' | 'waiting' | 'done' | 'failed';\n\n/** One letter for a first name, two for a hyphenated agent name (`po-developer` is PD). */\nexport function agentInitials(name: string): string {\n return name\n .split(/[-_.\\s]+/u)\n .filter(Boolean)\n .slice(0, 2)\n .map((part) => part.charAt(0).toUpperCase())\n .join('');\n}\n\nconst TINTS = [\n 'bg-po-tint-green',\n 'bg-po-tint-teal',\n 'bg-po-tint-blue',\n 'bg-po-tint-cyan',\n 'bg-po-tint-yellow',\n 'bg-po-tint-violet',\n] as const;\n\nconst STATE_DOT: Readonly<Record<AgentState, DotTone>> = {\n running: 'green',\n waiting: 'yellow',\n done: 'neutral',\n failed: 'red',\n};\n\nfunction tintFor(seed: string): string {\n let hash = 0;\n for (const char of seed) hash = (hash * 31 + char.charCodeAt(0)) % 997;\n return TINTS[hash % TINTS.length] ?? TINTS[0];\n}\n\n
|
|
1
|
+
{"version":3,"file":"AgentAvatar.cjs","names":["Avatar","AvatarImage","AvatarFallback","Dot","require_Avatar","require_Dot","react_jsx_runtime","agentInitials","name","part","TINTS","STATE_DOT","tintFor","hash","char","seed","AgentAvatar","state","size","image"],"sources":["../../../src/components/AgentAvatar.tsx"],"sourcesContent":["import type { DotTone } from '../types/tone';\nimport { Avatar, AvatarFallback, AvatarImage } from './Avatar';\nimport { Dot } from './Dot';\n\n/** How an agent is doing, as the avatar's corner dot shows it. */\nexport type AgentState = 'running' | 'waiting' | 'done' | 'failed';\n\n/** One letter for a first name, two for a hyphenated agent name (`po-developer` is PD). */\nexport function agentInitials(name: string): string {\n return name\n .split(/[-_.\\s]+/u)\n .filter(Boolean)\n .slice(0, 2)\n .map((part) => part.charAt(0).toUpperCase())\n .join('');\n}\n\nconst TINTS = [\n 'bg-po-tint-green',\n 'bg-po-tint-teal',\n 'bg-po-tint-blue',\n 'bg-po-tint-cyan',\n 'bg-po-tint-yellow',\n 'bg-po-tint-violet',\n] as const;\n\nconst STATE_DOT: Readonly<Record<AgentState, DotTone>> = {\n running: 'green',\n waiting: 'yellow',\n done: 'neutral',\n failed: 'red',\n};\n\nfunction tintFor(seed: string): string {\n let hash = 0;\n for (const char of seed) hash = (hash * 31 + char.charCodeAt(0)) % 997;\n return TINTS[hash % TINTS.length] ?? TINTS[0];\n}\n\n/**\n * An agent's face: its initials on a tint fixed by `seed`, with its state as a corner dot. An `image`\n * replaces the initials once it loads; pass only inline `data:` URLs so rendering never reaches a host.\n */\nexport function AgentAvatar({\n name,\n seed = name,\n image,\n state,\n size = 'md',\n}: {\n name: string;\n seed?: string;\n image?: string;\n state?: AgentState;\n size?: 'sm' | 'md';\n}) {\n return (\n <span\n role=\"img\"\n aria-label={state ? `${name}, ${state}` : name}\n data-testid=\"agent-avatar\"\n className=\"relative inline-flex shrink-0\"\n >\n <Avatar className={`${size === 'sm' ? 'size-6' : 'size-8'} ${tintFor(seed)}`}>\n {image ? <AvatarImage src={image} alt=\"\" /> : null}\n <AvatarFallback className=\"text-sm text-po-hi\">{agentInitials(name)}</AvatarFallback>\n </Avatar>\n {state ? (\n <Dot\n tone={STATE_DOT[state]}\n size=\"md\"\n pulse={state === 'running'}\n className=\"absolute -right-0.5 -bottom-0.5 ring-2 ring-po-panel\"\n />\n ) : null}\n </span>\n );\n}\n"],"mappings":"0FAQA,SAAgBO,EAAc,EAAsB,CAClD,OAAOC,EACJ,MAAM,WAAW,CAAC,CAClB,OAAO,OAAO,CAAC,CACf,MAAM,EAAG,CAAC,CAAC,CACX,IAAK,GAASC,EAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAC3C,KAAK,EAAE,CACZ,CAEA,MAAMC,EAAQ,CACZ,mBACA,kBACA,kBACA,kBACA,oBACA,mBACF,EAEMC,EAAmD,CACvD,QAAS,QACT,QAAS,SACT,KAAM,UACN,OAAQ,KACV,EAEA,SAASC,EAAQ,EAAsB,CACrC,IAAIC,EAAO,EACX,IAAK,IAAMC,KAAQC,EAAM,GAAQF,EAAO,GAAKC,EAAK,WAAW,CAAC,GAAK,IACnE,OAAOJ,EAAMG,EAAOH,EAAM,SAAWA,EAAM,EAC7C,CAMA,SAAgBM,EAAY,CAC1B,OACA,OAAOR,EACP,QACA,QACA,OAAO,MAON,CACD,MACE,iBAAA,EAAAF,EAAA,KAAA,CAAC,OAAD,CACE,KAAK,MACL,aAAYW,EAAQ,GAAGT,EAAK,IAAIS,IAAUT,EAC1C,cAAY,eACZ,UAAU,gCAJZ,SAAA,CAME,iBAAA,EAAAF,EAAA,KAAA,CAACN,EAAAA,OAAD,CAAQ,UAAW,GAAGkB,IAAS,KAAO,SAAW,SAAS,GAAGN,EAAQG,CAAI,IAAzE,SAAA,CACGI,EAAQ,iBAAA,EAAAb,EAAA,IAAA,CAACL,EAAAA,YAAD,CAAa,IAAKkB,EAAO,IAAI,EAAI,CAAA,EAAI,KAC9C,iBAAA,EAAAb,EAAA,IAAA,CAACJ,EAAAA,eAAD,CAAgB,UAAU,qBAAsB,SAAAK,EAAcC,CAAI,CAAkB,CAAA,CAC9E,CACP,CAAA,EAAAS,EACC,iBAAA,EAAAX,EAAA,IAAA,CAACH,EAAAA,IAAD,CACE,KAAMQ,EAAUM,GAChB,KAAK,KACL,MAAOA,IAAU,UACjB,UAAU,sDACX,CAAA,EACC,IACA,GAEV"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("../icons/icons.cjs");const e=require("../lib/cn.cjs"),t=require("./
|
|
1
|
+
require("../icons/icons.cjs");const e=require("../lib/cn.cjs"),t=require("./AgentAvatar.cjs"),n=require("./Spinner.cjs"),r=require("./Button.cjs"),i=require("./Popover.cjs"),a=require("./Picker.cjs"),o=require("../lib/profilePicker.cjs");let s=require("react/jsx-runtime"),c=require("react"),l=require("lucide-react");function u({profiles:u,status:d,value:f,onChange:p,disabled:m,id:h,className:g}){let[_,v]=(0,c.useState)(!1),y=(0,c.useId)(),b=new Map(u.map(e=>[o.profileValueOf(e.name),e])),x=o.profilePickerItems(u).map(e=>{let n=b.get(e.value);return{...e,...n?{lead:/* @__PURE__ */ (0,s.jsx)(t.AgentAvatar,{name:e.title,seed:n.name,image:o.inlineProfileIcon(n.identity?.icon),size:`sm`})}:{},props:{"data-testid":`profile-option-${e.value}`}}});return/* @__PURE__ */ (0,s.jsxs)(`div`,{"data-slot":`profile-picker`,"data-testid":`profile-picker`,className:e.cn(`flex flex-col gap-1`,g),children:[/* @__PURE__ */ (0,s.jsx)(`span`,{id:y,className:`text-base font-medium text-po-text`,children:`Profile (optional)`}),/* @__PURE__ */ (0,s.jsxs)(i.Popover,{open:_,onOpenChange:v,children:[/* @__PURE__ */ (0,s.jsx)(i.PopoverTrigger,{asChild:!0,children:/* @__PURE__ */ (0,s.jsxs)(r.Button,{id:h,variant:`outline`,"data-testid":`profile-picker-trigger`,"aria-haspopup":`listbox`,"aria-expanded":_,"aria-labelledby":y,disabled:m,className:`w-full justify-between px-2.5 text-po-text`,children:[/* @__PURE__ */ (0,s.jsx)(`span`,{className:`truncate`,children:o.profileChoiceLabel(f,u)}),d===`loading`?/* @__PURE__ */ (0,s.jsx)(n.Spinner,{className:`size-3 shrink-0`}):/* @__PURE__ */ (0,s.jsx)(l.ChevronDown,{className:`size-3.5 shrink-0 opacity-60`})]})}),/* @__PURE__ */ (0,s.jsx)(a.PickerContent,{side:`bottom`,align:`start`,"data-testid":`profile-picker-list`,title:`Profile`,meta:d===`loading`?`loading`:`${String(u.length)} available`,items:x,value:[o.profileValueOf(f)],filterable:x.length>9,filterPlaceholder:`Filter profiles`,className:`w-[min(360px,calc(100vw-24px))]`,onSelect:e=>{p(o.profileChoiceOf(e)),v(!1)}})]}),d===`loading`?/* @__PURE__ */ (0,s.jsx)(`p`,{role:`status`,className:`text-sm text-po-dim`,children:`Loading profiles…`}):d===`unavailable`?/* @__PURE__ */ (0,s.jsxs)(`p`,{role:`status`,"data-testid":`profile-picker-note`,className:`text-sm text-po-dim`,children:[u.length===0?`Profiles could not be loaded.`:`Some profiles could not be loaded.`,` `,`You can still start a session without one.`]}):null]})}function d(e,t){let[n,r]=(0,c.useState)(),i=(0,c.useRef)(t);(0,c.useEffect)(()=>{i.current=t});let a=t!==void 0;if((0,c.useEffect)(()=>{if(!a)return;let t=new AbortController;return o.loadProfileCatalog(e=>i.current?.(e)??Promise.resolve(void 0),t.signal).then(t=>{t!==void 0&&r({key:e,state:t})}),()=>t.abort()},[e,a]),a)return n?.key===e?n.state:{status:`loading`,profiles:[]}}exports.ProfilePicker=u,exports.useProfileCatalog=d;
|
|
2
2
|
//# sourceMappingURL=ProfilePicker.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfilePicker.cjs","names":["useState","useId","profilePickerItems","cn","Popover","PopoverTrigger","Button","profileChoiceLabel","Spinner","ChevronDownIcon","PickerContent","
|
|
1
|
+
{"version":3,"file":"ProfilePicker.cjs","names":["useState","useId","profileValueOf","profilePickerItems","AgentAvatar","inlineProfileIcon","cn","Popover","PopoverTrigger","Button","profileChoiceLabel","Spinner","ChevronDownIcon","PickerContent","profileChoiceOf","useRef","loadProfileCatalog","require_cn","require_AgentAvatar","require_Spinner","require_Button","require_Popover","require_Picker","require_profilePicker","react_jsx_runtime","react","lucide_react","ProfilePicker","open","setOpen","labelId","byValue","profiles","profile","items","item","className","value","status","onChange","next","useProfileCatalog","loaded","setLoaded","latest","load","enabled","controller","signal","state","key"],"sources":["../../../src/components/ProfilePicker.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState } from 'react';\n\nimport { ChevronDownIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\nimport {\n inlineProfileIcon,\n loadProfileCatalog,\n type ProfileChoice,\n profileChoiceLabel,\n profileChoiceOf,\n type ProfilePickerProfile,\n type ProfilePickerState,\n type ProfilePickerStatus,\n profilePickerItems,\n profileValueOf,\n} from '../lib/profilePicker';\nimport { AgentAvatar } from './AgentAvatar';\nimport { Button } from './Button';\nimport { PickerContent } from './Picker';\nimport { Popover, PopoverTrigger } from './Popover';\nimport { Spinner } from './Spinner';\n\nexport interface ProfilePickerProps {\n profiles: readonly ProfilePickerProfile[];\n status: ProfilePickerStatus;\n /** `undefined`: not chosen. `null`: explicit No profile. A string: that profile. */\n value: ProfileChoice;\n onChange: (choice: ProfileChoice) => void;\n disabled?: boolean;\n id?: string;\n className?: string;\n}\n\nconst UNAVAILABLE_NOTE = 'You can still start a session without one.';\n\n/**\n * Chooses the profile a new session starts with.\n *\n * It never chooses for the person: a launch with nothing picked leaves the\n * workspace default eligible, and No profile is its own explicit row. The\n * list can still be filling in while the person decides, and a source that\n * did not load is said plainly instead of leaving the list quietly short.\n */\nexport function ProfilePicker({ profiles, status, value, onChange, disabled, id, className }: ProfilePickerProps) {\n const [open, setOpen] = useState(false);\n const labelId = useId();\n const byValue = new Map(profiles.map((profile) => [profileValueOf(profile.name), profile]));\n const items = profilePickerItems(profiles).map((item) => {\n const profile = byValue.get(item.value);\n return {\n ...item,\n // A profile's own face: its inline avatar, otherwise initials. The default and No profile rows have none.\n ...(profile\n ? {\n lead: (\n <AgentAvatar\n name={item.title}\n seed={profile.name}\n image={inlineProfileIcon(profile.identity?.icon)}\n size=\"sm\"\n />\n ),\n }\n : {}),\n props: { 'data-testid': `profile-option-${item.value}` },\n };\n });\n return (\n <div data-slot=\"profile-picker\" data-testid=\"profile-picker\" className={cn('flex flex-col gap-1', className)}>\n <span id={labelId} className=\"text-base font-medium text-po-text\">\n Profile (optional)\n </span>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant=\"outline\"\n data-testid=\"profile-picker-trigger\"\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-labelledby={labelId}\n disabled={disabled}\n className=\"w-full justify-between px-2.5 text-po-text\"\n >\n <span className=\"truncate\">{profileChoiceLabel(value, profiles)}</span>\n {status === 'loading' ? (\n <Spinner className=\"size-3 shrink-0\" />\n ) : (\n <ChevronDownIcon className=\"size-3.5 shrink-0 opacity-60\" />\n )}\n </Button>\n </PopoverTrigger>\n <PickerContent\n side=\"bottom\"\n align=\"start\"\n data-testid=\"profile-picker-list\"\n title=\"Profile\"\n meta={status === 'loading' ? 'loading' : `${String(profiles.length)} available`}\n items={items}\n value={[profileValueOf(value)]}\n filterable={items.length > 9}\n filterPlaceholder=\"Filter profiles\"\n className=\"w-[min(360px,calc(100vw-24px))]\"\n onSelect={(next) => {\n onChange(profileChoiceOf(next));\n setOpen(false);\n }}\n />\n </Popover>\n {status === 'loading' ? (\n <p role=\"status\" className=\"text-sm text-po-dim\">\n Loading profiles…\n </p>\n ) : status === 'unavailable' ? (\n <p role=\"status\" data-testid=\"profile-picker-note\" className=\"text-sm text-po-dim\">\n {profiles.length === 0 ? 'Profiles could not be loaded.' : 'Some profiles could not be loaded.'}{' '}\n {UNAVAILABLE_NOTE}\n </p>\n ) : null}\n </div>\n );\n}\n\n/**\n * Loads the profile list for one target, such as a workspace, and reloads when `key` changes.\n * Undefined while no loader exists, so a host that offers none shows no picker.\n * Never chooses a profile; an unreachable server is \"unavailable\" with nothing listed.\n */\nexport function useProfileCatalog(\n key: string,\n load: ((signal: AbortSignal) => Promise<unknown>) | undefined,\n): { status: ProfilePickerStatus; profiles: readonly ProfilePickerProfile[] } | undefined {\n const [loaded, setLoaded] = useState<{ key: string; state: ProfilePickerState } | undefined>();\n // The newest loader without restarting the request each time a host rebuilds it; declared first so it runs first.\n const latest = useRef(load);\n useEffect(() => {\n latest.current = load;\n });\n const enabled = load !== undefined;\n useEffect(() => {\n if (!enabled) return;\n const controller = new AbortController();\n const request = (signal: AbortSignal): Promise<unknown> => latest.current?.(signal) ?? Promise.resolve(undefined);\n void loadProfileCatalog(request, controller.signal).then((state) => {\n if (state !== undefined) setLoaded({ key, state });\n });\n return () => controller.abort();\n }, [key, enabled]);\n if (!enabled) return undefined;\n return loaded?.key === key ? loaded.state : { status: 'loading', profiles: [] };\n}\n"],"mappings":"8TA2CA,SAAgB2B,EAAc,CAAE,WAAU,SAAQ,QAAO,WAAU,WAAU,KAAI,aAAiC,CAChH,GAAM,CAACC,EAAMC,IAAA,EAAW7B,EAAAA,SAAAA,CAAS,EAAK,EAChC8B,GAAA,EAAU7B,EAAAA,MAAAA,CAAM,EAChB8B,EAAU,IAAI,IAAIC,EAAS,IAAK,GAAY,CAAC9B,EAAAA,eAAe+B,EAAQ,IAAI,EAAGA,CAAO,CAAC,CAAC,EACpFC,EAAQ/B,EAAAA,mBAAmB6B,CAAQ,CAAC,CAAC,IAAK,GAAS,CACvD,IAAMC,EAAUF,EAAQ,IAAII,EAAK,KAAK,EACtC,MAAO,CACL,GAAGA,EAEH,GAAIF,EACA,CACE,KACE,iBAAA,EAAAT,EAAA,IAAA,CAACpB,EAAAA,YAAD,CACE,KAAM+B,EAAK,MACX,KAAMF,EAAQ,KACd,MAAO5B,EAAAA,kBAAkB4B,EAAQ,UAAU,IAAI,EAC/C,KAAK,IACN,CAAA,CAEL,EACA,CAAC,EACL,MAAO,CAAE,cAAe,kBAAkBE,EAAK,OAAQ,CACzD,CACF,CAAC,EACD,MACE,iBAAA,EAAAX,EAAA,KAAA,CAAC,MAAD,CAAK,YAAU,iBAAiB,cAAY,iBAAiB,UAAWlB,EAAAA,GAAG,sBAAuB8B,CAAS,EAA3G,SAAA,CACE,iBAAA,EAAAZ,EAAA,IAAA,CAAC,OAAD,CAAM,GAAIM,EAAS,UAAU,qCAAqC,SAAA,oBAE5D,CAAA,EACN,iBAAA,EAAAN,EAAA,KAAA,CAACjB,EAAAA,QAAD,CAAe,OAAM,aAAcsB,EAAnC,SAAA,CACE,iBAAA,EAAAL,EAAA,IAAA,CAAChB,EAAAA,eAAD,CAAgB,QAAA,GACd,SAAA,iBAAA,EAAAgB,EAAA,KAAA,CAACf,EAAAA,OAAD,CACM,KACJ,QAAQ,UACR,cAAY,yBACZ,gBAAc,UACd,gBAAemB,EACf,kBAAiBE,EACP,WACV,UAAU,6CARZ,SAAA,CAUE,iBAAA,EAAAN,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,WAAYd,SAAAA,EAAAA,mBAAmB2B,EAAOL,CAAQ,CAAQ,CAAA,EACrEM,IAAW,UACV,iBAAA,EAAAd,EAAA,IAAA,CAACb,EAAAA,QAAD,CAAS,UAAU,iBAAmB,CAAA,EAEtC,iBAAA,EAAAa,EAAA,IAAA,CAACZ,EAAAA,YAAD,CAAiB,UAAU,8BAAgC,CAAA,CAEvD,GACM,CAAA,EAChB,iBAAA,EAAAY,EAAA,IAAA,CAACX,EAAAA,cAAD,CACE,KAAK,SACL,MAAM,QACN,cAAY,sBACZ,MAAM,UACN,KAAMyB,IAAW,UAAY,UAAY,GAAG,OAAON,EAAS,MAAM,EAAE,YAC7D,QACP,MAAO,CAAC9B,EAAAA,eAAemC,CAAK,CAAC,EAC7B,WAAYH,EAAM,OAAS,EAC3B,kBAAkB,kBAClB,UAAU,kCACV,SAAW,GAAS,CAClBK,EAASzB,EAAAA,gBAAgB0B,CAAI,CAAC,EAC9BX,EAAQ,EAAK,CACf,CACD,CAAA,CACM,IACRS,IAAW,UACV,iBAAA,EAAAd,EAAA,IAAA,CAAC,IAAD,CAAG,KAAK,SAAS,UAAU,sBAAsB,SAAA,mBAE9C,CAAA,EACDc,IAAW,cACb,iBAAA,EAAAd,EAAA,KAAA,CAAC,IAAD,CAAG,KAAK,SAAS,cAAY,sBAAsB,UAAU,sBAA7D,SAAA,CACGQ,EAAS,SAAW,EAAI,gCAAkC,qCAAsC,IAChG,4CACA,CACD,CAAA,EAAA,IACD,GAET,CAOA,SAAgBS,EACd,EACA,EACwF,CACxF,GAAM,CAACC,EAAQC,IAAA,EAAa3C,EAAAA,SAAAA,CAAiE,EAEvF4C,GAAA,EAAS7B,EAAAA,OAAAA,CAAO8B,CAAI,GAC1B,EAAApB,EAAA,UAAA,KAAgB,CACd,EAAO,QAAUoB,CACnB,CAAC,EACD,IAAMC,EAAUD,IAAS,IAAA,GAUzB,IATA,EAAApB,EAAA,UAAA,KAAgB,CACd,GAAI,CAACqB,EAAS,OACd,IAAMC,EAAa,IAAI,gBAKvB,OAHAxB,EAAKP,mBADY,GAA0C4B,EAAO,UAAUI,CAAM,GAAK,QAAQ,QAAQ,IAAA,EAAS,EAC/ED,EAAW,MAAM,CAAC,CAAC,KAAM,GAAU,CAC9DE,IAAU,IAAA,IAAWN,EAAU,CAAE,MAAK,OAAM,CAAC,CACnD,CAAC,MACYI,EAAW,MAAM,CAChC,EAAG,CAACG,EAAKJ,CAAO,CAAC,EACZA,EACL,OAAOJ,GAAQ,MAAQQ,EAAMR,EAAO,MAAQ,CAAE,OAAQ,UAAW,SAAU,CAAC,CAAE,CAChF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=`default`,t=`none`,n=`profile:`,r=`Workspace default`,i=`No profile`;function a(r){return r===void 0?e:r===null?t:`${n}${r}`}function o(e){if(e===`none`)return null;if(e.startsWith(n))return e.slice(8)}function s(e){return e.identity?.name||e.name}function c(n){return[{value:e,title:r,subtitle:`Use what this workspace sets, if anything`},{value:t,title:i,subtitle:`Start without a profile`},...n.map(e=>({value:a(e.name),title:s(e),...
|
|
1
|
+
const e=`default`,t=`none`,n=`profile:`,r=`Workspace default`,i=`No profile`;function a(r){return r===void 0?e:r===null?t:`${n}${r}`}function o(e){if(e===`none`)return null;if(e.startsWith(n))return e.slice(8)}function s(e){return e.identity?.name||e.name}function c(e){return[e.identity?.role,e.identity?.contact].filter(Boolean).join(` · `)||(s(e)===e.name?void 0:e.name)}function l(n){return[{value:e,title:r,subtitle:`Use what this workspace sets, if anything`},{value:t,title:i,subtitle:`Start without a profile`},...n.map(e=>{let t=c(e);return{value:a(e.name),title:s(e),...t===void 0?{}:{subtitle:t}}})]}function u(e,t){if(e===void 0)return r;if(e===null)return i;let n=t.find(t=>t.name===e);return n===void 0?e:s(n)}const d=/^data:image\/(?:png|jpeg|gif|webp);base64,[A-Za-z0-9+/]+={0,2}$/;function f(e){return typeof e==`string`&&e.length<=262144&&d.test(e)?e:void 0}function p(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function m(e){if(!p(e)||typeof e.name!=`string`||e.name===``||typeof e.sourceId!=`string`||e.sourceId===``)return;let t=p(e.identity)?e.identity:void 0,n={};for(let e of[`name`,`icon`,`role`,`contact`]){let r=t?.[e];if(e===`icon`){let e=f(r);e&&(n.icon=e)}else typeof r==`string`&&r!==``&&(n[e]=r)}return{name:e.name,sourceId:e.sourceId,...Object.keys(n).length===0?{}:{identity:n}}}function h(e){if(!p(e)||!Array.isArray(e.profiles)||e.readiness!==`ready`&&e.readiness!==`unavailable`)return;let t=/* @__PURE__ */ new Set,n=[];for(let r of e.profiles){let e=m(r);e===void 0||t.has(e.name)||(t.add(e.name),n.push(e))}return{profiles:n,readiness:e.readiness}}const g={status:`unavailable`,profiles:[]};async function _(e,t){let n;try{n=await e(t)}catch{n=void 0}if(t.aborted)return;let r=h(n);return r===void 0?g:{status:r.readiness,profiles:r.profiles}}exports.DEFAULT_PROFILE_LABEL=r,exports.DEFAULT_PROFILE_VALUE=e,exports.NO_PROFILE_LABEL=i,exports.NO_PROFILE_VALUE=t,exports.inlineProfileIcon=f,exports.loadProfileCatalog=_,exports.parseProfileCatalog=h,exports.profileChoiceLabel=u,exports.profileChoiceOf=o,exports.profilePickerItems=l,exports.profileValueOf=a;
|
|
2
2
|
//# sourceMappingURL=profilePicker.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profilePicker.cjs","names":["DEFAULT_PROFILE_VALUE","NO_PROFILE_VALUE","PROFILE_PREFIX","DEFAULT_PROFILE_LABEL","NO_PROFILE_LABEL","profileValueOf","choice","profileChoiceOf","value","titleOf","profile","profilePickerItems","profiles","profileChoiceLabel","candidate","isRecord","profileOf","identity","identityName","identityIcon","parseProfileCatalog","seen","entry","UNAVAILABLE","loadProfileCatalog","answer","load","signal","catalog"],"sources":["../../../src/lib/profilePicker.ts"],"sourcesContent":["import type { PickerChoice } from './picker';\n\n/**\n * The launch-time profile choice a person makes before a session exists.\n *\n * `undefined` is \"not chosen\": the workspace default may apply. `null` is an\n * explicit \"No profile\", which no default may override. A string names a profile.\n */\nexport type ProfileChoice = string | null | undefined;\n\n/** What the picker may know about a profile. Never its environment, persona, bindings or secrets. */\nexport interface ProfilePickerProfile {\n readonly name: string;\n readonly identity?: { readonly name?: string; readonly icon?: string };\n /** `files` for a profile file, otherwise the id of the plugin that contributed it. */\n readonly sourceId: string;\n}\n\nexport interface ProfilePickerCatalog {\n readonly profiles: readonly ProfilePickerProfile[];\n /** `unavailable`: a source did not become ready in time or failed. `profiles` lists what loaded. */\n readonly readiness: 'ready' | 'unavailable';\n}\n\nexport type ProfilePickerStatus = 'loading' | ProfilePickerCatalog['readiness'];\n\nexport interface ProfilePickerState {\n readonly status: Exclude<ProfilePickerStatus, 'loading'>;\n readonly profiles: readonly ProfilePickerProfile[];\n}\n\n/** Row values carry a prefix, so a profile named \"none\" or \"default\" cannot pass for a choice. */\nexport const DEFAULT_PROFILE_VALUE = 'default';\nexport const NO_PROFILE_VALUE = 'none';\nconst PROFILE_PREFIX = 'profile:';\n\nexport const DEFAULT_PROFILE_LABEL = 'Workspace default';\nexport const NO_PROFILE_LABEL = 'No profile';\n\nexport function profileValueOf(choice: ProfileChoice): string {\n if (choice === undefined) return DEFAULT_PROFILE_VALUE;\n if (choice === null) return NO_PROFILE_VALUE;\n return `${PROFILE_PREFIX}${choice}`;\n}\n\nexport function profileChoiceOf(value: string): ProfileChoice {\n if (value === NO_PROFILE_VALUE) return null;\n if (value.startsWith(PROFILE_PREFIX)) return value.slice(PROFILE_PREFIX.length);\n return undefined;\n}\n\nfunction titleOf(profile: ProfilePickerProfile): string {\n return profile.identity?.name || profile.name;\n}\n\n/** The workspace default and No profile first, then every profile in the order given. Nothing is preselected. */\nexport function profilePickerItems(profiles: readonly ProfilePickerProfile[]): PickerChoice[] {\n return [\n {\n value: DEFAULT_PROFILE_VALUE,\n title: DEFAULT_PROFILE_LABEL,\n subtitle: 'Use what this workspace sets, if anything',\n },\n { value: NO_PROFILE_VALUE, title: NO_PROFILE_LABEL, subtitle: 'Start without a profile' },\n ...profiles.map((profile) => ({\n value: profileValueOf(profile.name),\n title: titleOf(profile),\n ...(titleOf(profile) === profile.name ? {} : { subtitle: profile.name }),\n })),\n ];\n}\n\nexport function profileChoiceLabel(choice: ProfileChoice, profiles: readonly ProfilePickerProfile[]): string {\n if (choice === undefined) return DEFAULT_PROFILE_LABEL;\n if (choice === null) return NO_PROFILE_LABEL;\n const profile = profiles.find((candidate) => candidate.name === choice);\n return profile === undefined ? choice : titleOf(profile);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction profileOf(value: unknown): ProfilePickerProfile | undefined {\n if (!isRecord(value) || typeof value.name !== 'string' || value.name === '') return undefined;\n if (typeof value.sourceId !== 'string' || value.sourceId === '') return undefined;\n const identity = isRecord(value.identity) ? value.identity : undefined;\n const identityName = typeof identity?.name === 'string' && identity.name !== '' ? identity.name : undefined;\n const identityIcon = typeof identity?.icon === 'string' && identity.icon !== '' ? identity.icon : undefined;\n return {\n name: value.name,\n sourceId: value.sourceId,\n ...(identityName === undefined && identityIcon === undefined\n ? {}\n : {\n identity: {\n ...(identityName === undefined ? {} : { name: identityName }),\n ...(identityIcon === undefined ? {} : { icon: identityIcon }),\n },\n }),\n };\n}\n\n/**\n * A server answer reduced to the fields the picker may show, or undefined when it is not a catalog.\n * Any other field is dropped here, so nothing sensitive a server mistakenly adds can reach the page.\n */\nexport function parseProfileCatalog(value: unknown): ProfilePickerCatalog | undefined {\n if (!isRecord(value) || !Array.isArray(value.profiles)) return undefined;\n if (value.readiness !== 'ready' && value.readiness !== 'unavailable') return undefined;\n const seen = new Set<string>();\n const profiles: ProfilePickerProfile[] = [];\n for (const entry of value.profiles) {\n const profile = profileOf(entry);\n if (profile === undefined || seen.has(profile.name)) continue;\n seen.add(profile.name);\n profiles.push(profile);\n }\n return { profiles, readiness: value.readiness };\n}\n\nconst UNAVAILABLE: ProfilePickerState = { status: 'unavailable', profiles: [] };\n\n/**\n * Runs one catalog request. A failed or malformed answer is \"unavailable\" with nothing listed, so a\n * session can still start without a profile. Undefined means the caller gave up on this request.\n */\nexport async function loadProfileCatalog(\n load: (signal: AbortSignal) => Promise<unknown>,\n signal: AbortSignal,\n): Promise<ProfilePickerState | undefined> {\n let answer: unknown;\n try {\n answer = await load(signal);\n } catch {\n answer = undefined;\n }\n if (signal.aborted) return undefined;\n const catalog = parseProfileCatalog(answer);\n return catalog === undefined ? UNAVAILABLE : { status: catalog.readiness, profiles: catalog.profiles };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"profilePicker.cjs","names":["DEFAULT_PROFILE_VALUE","NO_PROFILE_VALUE","PROFILE_PREFIX","DEFAULT_PROFILE_LABEL","NO_PROFILE_LABEL","profileValueOf","choice","profileChoiceOf","value","titleOf","profile","subtitleOf","profilePickerItems","profiles","subtitle","profileChoiceLabel","candidate","INLINE_ICON","inlineProfileIcon","isRecord","profileOf","identity","presented","key","field","icon","parseProfileCatalog","seen","entry","UNAVAILABLE","loadProfileCatalog","answer","load","signal","catalog"],"sources":["../../../src/lib/profilePicker.ts"],"sourcesContent":["import type { PickerChoice } from './picker';\n\n/**\n * The launch-time profile choice a person makes before a session exists.\n *\n * `undefined` is \"not chosen\": the workspace default may apply. `null` is an\n * explicit \"No profile\", which no default may override. A string names a profile.\n */\nexport type ProfileChoice = string | null | undefined;\n\n/** What the picker may know about a profile. Never its environment, persona, bindings or secrets. */\nexport interface ProfilePickerProfile {\n readonly name: string;\n /** Presentation only: `role` is what the persona does, `contact` a display-only address its source supplies. */\n readonly identity?: {\n readonly name?: string;\n readonly icon?: string;\n readonly role?: string;\n readonly contact?: string;\n };\n /** `files` for a profile file, otherwise the id of the plugin that contributed it. */\n readonly sourceId: string;\n}\n\nexport interface ProfilePickerCatalog {\n readonly profiles: readonly ProfilePickerProfile[];\n /** `unavailable`: a source did not become ready in time or failed. `profiles` lists what loaded. */\n readonly readiness: 'ready' | 'unavailable';\n}\n\nexport type ProfilePickerStatus = 'loading' | ProfilePickerCatalog['readiness'];\n\nexport interface ProfilePickerState {\n readonly status: Exclude<ProfilePickerStatus, 'loading'>;\n readonly profiles: readonly ProfilePickerProfile[];\n}\n\n/** Row values carry a prefix, so a profile named \"none\" or \"default\" cannot pass for a choice. */\nexport const DEFAULT_PROFILE_VALUE = 'default';\nexport const NO_PROFILE_VALUE = 'none';\nconst PROFILE_PREFIX = 'profile:';\n\nexport const DEFAULT_PROFILE_LABEL = 'Workspace default';\nexport const NO_PROFILE_LABEL = 'No profile';\n\nexport function profileValueOf(choice: ProfileChoice): string {\n if (choice === undefined) return DEFAULT_PROFILE_VALUE;\n if (choice === null) return NO_PROFILE_VALUE;\n return `${PROFILE_PREFIX}${choice}`;\n}\n\nexport function profileChoiceOf(value: string): ProfileChoice {\n if (value === NO_PROFILE_VALUE) return null;\n if (value.startsWith(PROFILE_PREFIX)) return value.slice(PROFILE_PREFIX.length);\n return undefined;\n}\n\nfunction titleOf(profile: ProfilePickerProfile): string {\n return profile.identity?.name || profile.name;\n}\n\n/** Role and contact under the name, otherwise the profile name when the title hides it. */\nfunction subtitleOf(profile: ProfilePickerProfile): string | undefined {\n const presented = [profile.identity?.role, profile.identity?.contact].filter(Boolean).join(' · ');\n if (presented) return presented;\n return titleOf(profile) === profile.name ? undefined : profile.name;\n}\n\n/** The workspace default and No profile first, then every profile in the order given. Nothing is preselected. */\nexport function profilePickerItems(profiles: readonly ProfilePickerProfile[]): PickerChoice[] {\n return [\n {\n value: DEFAULT_PROFILE_VALUE,\n title: DEFAULT_PROFILE_LABEL,\n subtitle: 'Use what this workspace sets, if anything',\n },\n { value: NO_PROFILE_VALUE, title: NO_PROFILE_LABEL, subtitle: 'Start without a profile' },\n ...profiles.map((profile) => {\n const subtitle = subtitleOf(profile);\n return {\n value: profileValueOf(profile.name),\n title: titleOf(profile),\n ...(subtitle === undefined ? {} : { subtitle }),\n };\n }),\n ];\n}\n\nexport function profileChoiceLabel(choice: ProfileChoice, profiles: readonly ProfilePickerProfile[]): string {\n if (choice === undefined) return DEFAULT_PROFILE_LABEL;\n if (choice === null) return NO_PROFILE_LABEL;\n const profile = profiles.find((candidate) => candidate.name === choice);\n return profile === undefined ? choice : titleOf(profile);\n}\n\nconst INLINE_ICON = /^data:image\\/(?:png|jpeg|gif|webp);base64,[A-Za-z0-9+/]+={0,2}$/;\n/** po-core's `PROFILE_ICON_MAX_DATA_URL_LENGTH`. */\nconst MAX_INLINE_ICON_LENGTH = 262_144;\n\n/**\n * A profile avatar the page may draw: an inline PNG, JPEG, GIF or WebP `data:` URL within po-core's\n * bound, so rendering never contacts a host and never runs an SVG. Anything else is undefined.\n */\nexport function inlineProfileIcon(value: unknown): string | undefined {\n return typeof value === 'string' && value.length <= MAX_INLINE_ICON_LENGTH && INLINE_ICON.test(value)\n ? value\n : undefined;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction profileOf(value: unknown): ProfilePickerProfile | undefined {\n if (!isRecord(value) || typeof value.name !== 'string' || value.name === '') return undefined;\n if (typeof value.sourceId !== 'string' || value.sourceId === '') return undefined;\n const identity = isRecord(value.identity) ? value.identity : undefined;\n const presented: Record<string, string> = {};\n for (const key of ['name', 'icon', 'role', 'contact'] as const) {\n const field = identity?.[key];\n if (key === 'icon') {\n const icon = inlineProfileIcon(field);\n if (icon) presented.icon = icon;\n } else if (typeof field === 'string' && field !== '') presented[key] = field;\n }\n return {\n name: value.name,\n sourceId: value.sourceId,\n ...(Object.keys(presented).length === 0 ? {} : { identity: presented }),\n };\n}\n\n/**\n * A server answer reduced to the fields the picker may show, or undefined when it is not a catalog.\n * Any other field is dropped here, so nothing sensitive a server mistakenly adds can reach the page.\n */\nexport function parseProfileCatalog(value: unknown): ProfilePickerCatalog | undefined {\n if (!isRecord(value) || !Array.isArray(value.profiles)) return undefined;\n if (value.readiness !== 'ready' && value.readiness !== 'unavailable') return undefined;\n const seen = new Set<string>();\n const profiles: ProfilePickerProfile[] = [];\n for (const entry of value.profiles) {\n const profile = profileOf(entry);\n if (profile === undefined || seen.has(profile.name)) continue;\n seen.add(profile.name);\n profiles.push(profile);\n }\n return { profiles, readiness: value.readiness };\n}\n\nconst UNAVAILABLE: ProfilePickerState = { status: 'unavailable', profiles: [] };\n\n/**\n * Runs one catalog request. A failed or malformed answer is \"unavailable\" with nothing listed, so a\n * session can still start without a profile. Undefined means the caller gave up on this request.\n */\nexport async function loadProfileCatalog(\n load: (signal: AbortSignal) => Promise<unknown>,\n signal: AbortSignal,\n): Promise<ProfilePickerState | undefined> {\n let answer: unknown;\n try {\n answer = await load(signal);\n } catch {\n answer = undefined;\n }\n if (signal.aborted) return undefined;\n const catalog = parseProfileCatalog(answer);\n return catalog === undefined ? UNAVAILABLE : { status: catalog.readiness, profiles: catalog.profiles };\n}\n"],"mappings":"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"}
|
package/dist/text.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src/lib/ansiSpans.cjs"),t=require("./src/lib/review.cjs"),n=require("./src/lib/syntaxHighlight.cjs"),r=require("./src/lib/hashlineHighlight.cjs"),i=require("./src/lib/profilePicker.cjs"),a=require("./src/lib/runDuration.cjs"),o=require("./src/lib/collapse.cjs"),s=require("./src/lib/hashlineView.cjs");exports.ansiSpans=e.ansiSpans,exports.buildReviewPrompt=t.buildReviewPrompt,exports.clockRefreshMs=a.clockRefreshMs,exports.clockText=a.clockText,exports.collapseLines=o.collapseLines,exports.detectGrammar=n.detectGrammar,exports.formatRunDuration=a.formatRunDuration,exports.hashlineBody=s.hashlineBody,exports.hashlineGroups=r.hashlineGroups,exports.hashlineGroupsKey=r.hashlineGroupsKey,exports.highlightToLines=n.highlightToLines,exports.parseProfileCatalog=i.parseProfileCatalog,exports.resultTextLines=s.resultTextLines;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src/lib/ansiSpans.cjs"),t=require("./src/lib/review.cjs"),n=require("./src/lib/syntaxHighlight.cjs"),r=require("./src/lib/hashlineHighlight.cjs"),i=require("./src/lib/profilePicker.cjs"),a=require("./src/lib/runDuration.cjs"),o=require("./src/lib/collapse.cjs"),s=require("./src/lib/hashlineView.cjs");exports.ansiSpans=e.ansiSpans,exports.buildReviewPrompt=t.buildReviewPrompt,exports.clockRefreshMs=a.clockRefreshMs,exports.clockText=a.clockText,exports.collapseLines=o.collapseLines,exports.detectGrammar=n.detectGrammar,exports.formatRunDuration=a.formatRunDuration,exports.hashlineBody=s.hashlineBody,exports.hashlineGroups=r.hashlineGroups,exports.hashlineGroupsKey=r.hashlineGroupsKey,exports.highlightToLines=n.highlightToLines,exports.inlineProfileIcon=i.inlineProfileIcon,exports.parseProfileCatalog=i.parseProfileCatalog,exports.resultTextLines=s.resultTextLines;
|
package/dist/text.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ReviewComment } from "./packages/core/po-web-components/src/types/diff.mjs";
|
|
2
2
|
import { PresentedLine, hashlineBody, resultTextLines } from "./packages/core/po-web-components/src/lib/hashlineView.mjs";
|
|
3
|
-
import { parseProfileCatalog } from "./packages/core/po-web-components/src/lib/profilePicker.mjs";
|
|
3
|
+
import { inlineProfileIcon, parseProfileCatalog } from "./packages/core/po-web-components/src/lib/profilePicker.mjs";
|
|
4
4
|
import { SyntaxSpan, SyntaxToken, detectGrammar, highlightToLines } from "./packages/core/po-web-components/src/lib/syntaxHighlight.mjs";
|
|
5
5
|
import { AnsiSpan, ansiSpans } from "./packages/core/po-web-components/src/lib/ansiSpans.mjs";
|
|
6
6
|
import { collapseLines } from "./packages/core/po-web-components/src/lib/collapse.mjs";
|
|
7
7
|
import { clockRefreshMs, clockText, formatRunDuration } from "./packages/core/po-web-components/src/lib/runDuration.mjs";
|
|
8
8
|
import { hashlineGroups, hashlineGroupsKey } from "./packages/core/po-web-components/src/lib/hashlineHighlight.mjs";
|
|
9
9
|
import { buildReviewPrompt } from "./packages/core/po-web-components/src/lib/review.mjs";
|
|
10
|
-
export { type AnsiSpan, type PresentedLine, type ReviewComment, type SyntaxSpan, type SyntaxToken, ansiSpans, buildReviewPrompt, clockRefreshMs, clockText, collapseLines, detectGrammar, formatRunDuration, hashlineBody, hashlineGroups, hashlineGroupsKey, highlightToLines, parseProfileCatalog, resultTextLines };
|
|
10
|
+
export { type AnsiSpan, type PresentedLine, type ReviewComment, type SyntaxSpan, type SyntaxToken, ansiSpans, buildReviewPrompt, clockRefreshMs, clockText, collapseLines, detectGrammar, formatRunDuration, hashlineBody, hashlineGroups, hashlineGroupsKey, highlightToLines, inlineProfileIcon, parseProfileCatalog, resultTextLines };
|
package/dist/text.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ansiSpans as e}from"./packages/core/po-web-components/src/lib/ansiSpans.mjs";import{buildReviewPrompt as t}from"./packages/core/po-web-components/src/lib/review.mjs";import{detectGrammar as n,highlightToLines as r}from"./packages/core/po-web-components/src/lib/syntaxHighlight.mjs";import{hashlineGroups as i,hashlineGroupsKey as a}from"./packages/core/po-web-components/src/lib/hashlineHighlight.mjs";import{parseProfileCatalog as
|
|
1
|
+
import{ansiSpans as e}from"./packages/core/po-web-components/src/lib/ansiSpans.mjs";import{buildReviewPrompt as t}from"./packages/core/po-web-components/src/lib/review.mjs";import{detectGrammar as n,highlightToLines as r}from"./packages/core/po-web-components/src/lib/syntaxHighlight.mjs";import{hashlineGroups as i,hashlineGroupsKey as a}from"./packages/core/po-web-components/src/lib/hashlineHighlight.mjs";import{inlineProfileIcon as o,parseProfileCatalog as s}from"./packages/core/po-web-components/src/lib/profilePicker.mjs";import{clockRefreshMs as c,clockText as l,formatRunDuration as u}from"./packages/core/po-web-components/src/lib/runDuration.mjs";import{collapseLines as d}from"./packages/core/po-web-components/src/lib/collapse.mjs";import{hashlineBody as f,resultTextLines as p}from"./packages/core/po-web-components/src/lib/hashlineView.mjs";export{e as ansiSpans,t as buildReviewPrompt,c as clockRefreshMs,l as clockText,d as collapseLines,n as detectGrammar,u as formatRunDuration,f as hashlineBody,i as hashlineGroups,a as hashlineGroupsKey,r as highlightToLines,o as inlineProfileIcon,s as parseProfileCatalog,p as resultTextLines};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/po-web-components",
|
|
3
|
-
"version": "0.0.0-alpha.
|
|
3
|
+
"version": "0.0.0-alpha.97",
|
|
4
4
|
"description": "Shared web components and theme tokens for the Po cockpit and its web plugins: shadcn-style primitives on Radix, tuned to the Po palette, with runtime theme configs.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -107,8 +107,8 @@
|
|
|
107
107
|
"tailwind-merge": "3.7.0"
|
|
108
108
|
},
|
|
109
109
|
"devDependencies": {
|
|
110
|
-
"@agimon-ai/po-core": "0.0.0-alpha.
|
|
111
|
-
"@agimon-ai/vibe-lint-plugin-po-web": "0.0.0-alpha.
|
|
110
|
+
"@agimon-ai/po-core": "0.0.0-alpha.97",
|
|
111
|
+
"@agimon-ai/vibe-lint-plugin-po-web": "0.0.0-alpha.97",
|
|
112
112
|
"@types/node": "26.6.5",
|
|
113
113
|
"@types/react": "19.3.0",
|
|
114
114
|
"@types/react-dom": "19.3.0",
|