@neuronection/assistant-ui 0.48.0 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +1 -0
  3. package/dist/admin-user-table.js +1 -1
  4. package/dist/ai-magic-fill.js +1 -1
  5. package/dist/{chunk-HA7ZIB7V.js → chunk-3YIVKKT6.js} +3 -3
  6. package/dist/{chunk-HA7ZIB7V.js.map → chunk-3YIVKKT6.js.map} +1 -1
  7. package/dist/{chunk-OIET4P2M.js → chunk-47CRUWHB.js} +4 -4
  8. package/dist/{chunk-OIET4P2M.js.map → chunk-47CRUWHB.js.map} +1 -1
  9. package/dist/{chunk-GNHADPX6.js → chunk-5U45TQJE.js} +3 -3
  10. package/dist/{chunk-GNHADPX6.js.map → chunk-5U45TQJE.js.map} +1 -1
  11. package/dist/{chunk-WY5TO6R4.js → chunk-6ANLDUGL.js} +3 -3
  12. package/dist/{chunk-WY5TO6R4.js.map → chunk-6ANLDUGL.js.map} +1 -1
  13. package/dist/{chunk-OEBCS7EF.js → chunk-CCFVDJHU.js} +3 -3
  14. package/dist/{chunk-OEBCS7EF.js.map → chunk-CCFVDJHU.js.map} +1 -1
  15. package/dist/{chunk-QUVVOG7K.js → chunk-MFM4W6ZO.js} +3 -3
  16. package/dist/{chunk-QUVVOG7K.js.map → chunk-MFM4W6ZO.js.map} +1 -1
  17. package/dist/chunk-Q6LSPNCL.js +3 -0
  18. package/dist/chunk-Q6LSPNCL.js.map +1 -0
  19. package/dist/chunk-SNHU4PV3.js +169 -0
  20. package/dist/chunk-SNHU4PV3.js.map +1 -0
  21. package/dist/{chunk-UAZYDEXA.js → chunk-SVRCZUNQ.js} +6 -2
  22. package/dist/chunk-SVRCZUNQ.js.map +1 -0
  23. package/dist/{chunk-4XV2FGBS.js → chunk-UMI4M4MF.js} +21 -17
  24. package/dist/chunk-UMI4M4MF.js.map +1 -0
  25. package/dist/{chunk-YM4YN3YC.js → chunk-X6L5Z5LV.js} +3 -3
  26. package/dist/{chunk-YM4YN3YC.js.map → chunk-X6L5Z5LV.js.map} +1 -1
  27. package/dist/combobox.js +1 -1
  28. package/dist/countries.d.ts +19 -5
  29. package/dist/countries.js +212 -53
  30. package/dist/countries.js.map +1 -1
  31. package/dist/index.d.ts +66 -1
  32. package/dist/index.js +27 -26
  33. package/dist/instance-mode-control.d.ts +62 -0
  34. package/dist/instance-mode-control.js +3 -0
  35. package/dist/instance-mode-control.js.map +1 -0
  36. package/dist/languages.d.ts +28 -0
  37. package/dist/languages.js +75 -0
  38. package/dist/languages.js.map +1 -0
  39. package/dist/markdown-diff-view.js +1 -1
  40. package/dist/model-picker.js +1 -1
  41. package/dist/model-registry.js +1 -1
  42. package/dist/profile-switcher.js +1 -1
  43. package/dist/provider-form.d.ts +7 -0
  44. package/dist/provider-form.js +1 -1
  45. package/dist/styles.css +1 -1
  46. package/dist/task-assignment-picker.js +1 -1
  47. package/package.json +9 -1
  48. package/dist/chunk-4XV2FGBS.js.map +0 -1
  49. package/dist/chunk-UAZYDEXA.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -574,6 +574,13 @@ interface ProviderFormProps extends React.ComponentProps<'div'> {
574
574
  label: string;
575
575
  }[];
576
576
  countryPlaceholder?: string;
577
+ /** Search-input placeholder for the country picker (searchable — the
578
+ * catalog is ~250 entries, ADR-0024). */
579
+ countrySearchPlaceholder?: string;
580
+ /** Empty-search result label for the country picker. */
581
+ countryEmptyLabel?: string;
582
+ /** Accessible name of the country picker's clear button. */
583
+ countryClearLabel?: string;
577
584
  /** Hint under the key field; apps mention keyring storage here. */
578
585
  apiKeyHelp?: string;
579
586
  /** The provider already stores a key (write-only field shows no value). */
@@ -2974,6 +2981,64 @@ declare function describeAdminUserError(error: unknown, labels: Pick<AdminUserTa
2974
2981
  */
2975
2982
  declare const AdminUserTable: React.ForwardRefExoticComponent<AdminUserTableProps & React.RefAttributes<HTMLDivElement>>;
2976
2983
 
2984
+ type InstanceAuthMode = 'open' | 'authenticated';
2985
+ interface InstanceModeControlLabels {
2986
+ title: string;
2987
+ modeOpen: string;
2988
+ modeAuthenticated: string;
2989
+ modeOpenHint: string;
2990
+ modeAuthenticatedHint: string;
2991
+ enableLogin: string;
2992
+ enableLoginNote: (minLength: number) => string;
2993
+ disableLogin: string;
2994
+ disableLoginNote: string;
2995
+ password: string;
2996
+ confirmPassword: string;
2997
+ passwordMismatch: string;
2998
+ passwordTooShort: (minLength: number) => string;
2999
+ submitEnable: string;
3000
+ submitDisable: string;
3001
+ confirmAck: string;
3002
+ blockedServer: string;
3003
+ blockedUsers: (count: number) => string;
3004
+ auditNote: string;
3005
+ errorGeneric: string;
3006
+ errorForbidden: string;
3007
+ }
3008
+ interface InstanceModeControlIcons {
3009
+ open?: LucideIcon;
3010
+ authenticated?: LucideIcon;
3011
+ enableLogin?: LucideIcon;
3012
+ disableLogin?: LucideIcon;
3013
+ audit?: LucideIcon;
3014
+ }
3015
+ interface InstanceModeControlProps {
3016
+ mode: InstanceAuthMode;
3017
+ serverIdentity?: boolean;
3018
+ otherUserCount?: number;
3019
+ minPasswordLength?: number;
3020
+ onSetAuthenticated: (password: string) => void | Promise<unknown>;
3021
+ onSetOpen: (password: string) => void | Promise<unknown>;
3022
+ loading?: boolean;
3023
+ error?: string | null;
3024
+ labels?: Partial<InstanceModeControlLabels>;
3025
+ icons?: InstanceModeControlIcons;
3026
+ className?: string;
3027
+ }
3028
+ declare function describeInstanceModeError(error: unknown, labels: Pick<InstanceModeControlLabels, 'errorGeneric' | 'errorForbidden'>): string;
3029
+ /**
3030
+ * Presentational + controlled instance access-mode panel (identity-auth
3031
+ * §4.5, ADR-06): shows the current mode and offers the two admin
3032
+ * transitions — `open → authenticated` (the owner sets credentials in
3033
+ * the same call) and `authenticated → open` (current password plus an
3034
+ * explicit acknowledgement). Blocked states (server entrypoint, other
3035
+ * accounts existing) disable the transition with a label-driven reason.
3036
+ * Data flows in through `mode`; the transitions are events out — the app
3037
+ * persists them and re-supplies the mode. Rejections surface as
3038
+ * label-driven messages and every change carries an audit note.
3039
+ */
3040
+ declare const InstanceModeControl: React.ForwardRefExoticComponent<InstanceModeControlProps & React.RefAttributes<HTMLDivElement>>;
3041
+
2977
3042
  /**
2978
3043
  * The three states of the boot machine (identity-auth §4): `checking`
2979
3044
  * while the app's boot flow runs, `authenticated` once a session was
@@ -3195,4 +3260,4 @@ interface ChatLauncherProps {
3195
3260
  */
3196
3261
  declare const ChatLauncher: React.ForwardRefExoticComponent<ChatLauncherProps & React.RefAttributes<HTMLButtonElement>>;
3197
3262
 
3198
- export { AboutCard, type AboutCardProps, type AboutCreator, AboutFooterLine, type AboutFooterLineProps, type AboutLicense, type AboutLinkItem, AboutLinkList, type AboutLinkListProps, AboutNote, type AboutNoteContent, type AboutNoteProps, AboutPanel, type AboutPanelProps, type AboutSponsorContent, ActionMenu, type ActionMenuItem, type ActionMenuProps, type AdminUser, type AdminUserPatch, AdminUserTable, type AdminUserTableIcons, type AdminUserTableLabels, type AdminUserTableProps, type AiAction, AiActionsDropdown, type AiActionsDropdownProps, AiButton, type AiButtonProps, AiMagicFill, type AiMagicFillProps, type AiTextTransformEventHandlers, type AiTextTransformStatus, type AiTextTransformTransport, AuthGate, type AuthGateLabels, type AuthGateProps, type AuthGateStatus, Badge, type BadgeProps, type BranchNode, type BranchNodeInput, type BranchTree, type BreadcrumbItem, type BreadcrumbLinkProps, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, CUSTOM_PRESET_KEY, CapabilityChips, type CapabilityChipsProps, type CapabilityDescriptor, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CareerMark, type ChatAttachmentView, ChatBranchTree, type ChatBranchTreeIcons, type ChatBranchTreeLabels, type ChatBranchTreeNode, type ChatBranchTreeProps, ChatComposer, type ChatComposerIcons, type ChatComposerLabels, type ChatComposerProps, ChatDrawer, type ChatDrawerProps, type ChatError, type ChatExportMessage, type ChatExportOptions, ChatHistoryButton, type ChatHistoryButtonLabels, type ChatHistoryButtonProps, ChatLauncher, type ChatLauncherProps, ChatMessage, type ChatMessageAction, type ChatMessageActions, ChatMessageEditor, type ChatMessageEditorLabels, type ChatMessageEditorProps, type ChatMessageLabels, type ChatMessageProps, type ChatMessageStatus, type ChatMessageVariants, type ChatMessageView, ChatPanel, type ChatPanelProps, type ChatPanelVariant, ChatReasoning, type ChatReasoningLabels, type ChatReasoningProps, type ChatRole, ChatSessionList, type ChatSessionListIcons, type ChatSessionListLabels, type ChatSessionListProps, type ChatSessionView, type ChatStreamEvent, type ChatStreamTransport, ChatToolCard, type ChatToolCardLabels, type ChatToolCardProps, type ChatToolCatalogArgument, type ChatToolCatalogEntry, ChatToolsCatalog, type ChatToolsCatalogLabels, type ChatToolsCatalogProps, ChatTraceMeta, type ChatTraceMetaProps, ChatTraceTimeline, type ChatTraceTimelineEntry, type ChatTraceTimelineLabels, type ChatTraceTimelineProps, type ChatTraceTimelineTrace, ChatTranscript, type ChatTranscriptLabels, type ChatTranscriptProps, ChatTurnStatus, type ChatTurnStatusLabels, type ChatTurnStatusProps, CheckIndicator, type CheckIndicatorProps, ChipInput, type ChipInputProps, ChipList, type ChipListProps, type ChipVariant, Combobox, ComboboxMulti, type ComboboxMultiProps, type ComboboxOption, type ComboboxProps, ConfirmationModal, type ConfirmationModalProps, ConnectionTestRow, type ConnectionTestRowProps, type ConnectionTestStatus, ContextMenu, type ContextMenuItem, type ContextMenuProps, CopyButton, type CopyButtonProps, DatePicker, type DatePickerProps, DesktopMark, DictationButton, type DictationButtonProps, type DictationError, type DictationResult, type DictationStatus, DictationStrip, type DictationStripLabels, type DictationStripProps, type DiffCell, type DiffRow, type DiffSegment, EmptyState, type EmptyStateProps, ErrorBanner, type ErrorBannerProps, ExpandableSearch, type ExpandableSearchProps, type FamilyApp, FamilyBadge, type FamilyBadgeProps, type FamilyCreator, type FamilyMember, FieldDiff, type FieldDiffLabels, type FieldDiffProps, type FieldDiffValue, FieldLabel, type FieldLabelProps, FieldSummary, type FieldSummaryProps, FileCard, type FileCardProps, type FileCardStatus, FileQueue, type FileQueueItem, type FileQueueProps, type FlowError, FlowStatusCard, type FlowStatusCardProps, type FlowStep, type FlowStepInfo, type FlowStepStatus, FlowTelemetryStrip, type FlowTelemetryStripProps, type FlowTrace, type FlowTraceCall, FlowTraceCard, type FlowTraceCardLabels, type FlowTraceCardProps, type FlowTraceStage, type FlowTraceToolOp, FormModal, type FormModalProps, HealthMark, type HitlProposalAction, HitlProposalCard, type HitlProposalCardLabels, type HitlProposalCardProps, type HitlProposalStatus, HoverCard, HoverCardContent, HoverCardPortal, type HoverCardProps, HoverCardTrigger, InfoButton, type InfoButtonProps, InfoTooltip, type InfoTooltipProps, Input, type InputProps, type LineDiffOptions, type LineDiffResult, type LiveNodeState, type LiveToolCall, type LiveTurnAction, type LiveTurnState, type LiveTurnStatus, LoginForm, type LoginFormFieldOverrides, type LoginFormFields, type LoginFormIcons, type LoginFormLabels, type LoginFormProps, type LogoProps, type LogoTheme, MarkdownCodeBlock, type MarkdownCodeBlockLabels, type MarkdownCodeBlockProps, type MarkdownComponents, MarkdownDiffView, type MarkdownDiffViewLabels, type MarkdownDiffViewProps, MarkdownSurface, type MarkdownSurfaceProps, MarqueeBand, type MarqueePhase, type MarqueeSelection, MarqueeSurface, type MarqueeSurfaceProps, Menu, MenuCheckboxItem, type MenuCheckboxItemProps, MenuContent, MenuGroup, MenuItem, type MenuItemProps, MenuLabel, MenuSeparator, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger, MermaidDiagram, type MermaidDiagramProps, MessageVariantSwitcher, type MessageVariantSwitcherLabels, type MessageVariantSwitcherProps, Modal, ModalBody, ModalClose, ModalContent, type ModalContentProps, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, ModelPicker, type ModelPickerModel, type ModelPickerProps, type ModelPickerProvider, ModelRegistry, type ModelRegistryDraft, type ModelRegistryModel, type ModelRegistryPatch, type ModelRegistryProps, type ModelRegistryProvider, type ModelRegistryRemoteModel, type ModelRegistryRemoteState, type NavChild, type NavItem, NeuronectionMark, NeuronectionWordmark, type NeuronectionWordmarkProps, PanelModal, type PanelModalProps, Popover, PopoverAnchor, PopoverButton, type PopoverButtonProps, PopoverClose, PopoverContent, PopoverTrigger, Portal, type PortalProps, type ProfileItem, ProfileSwitcher, type ProfileSwitcherIcons, type ProfileSwitcherLabels, type ProfileSwitcherProps, ProviderForm, type ProviderFormProps, type ProviderPresetOption, RangeBar, type RangeBarProps, type Rect, RegisterForm, type RegisterFormFieldOverrides, type RegisterFormFields, type RegisterFormIcons, type RegisterFormLabels, type RegisterFormProps, RichTextEditor, type RichTextEditorIcons, type RichTextEditorLabels, type RichTextEditorProps, type RichTextToolbarGroup, ScaleSlider, type ScaleSliderProps, SearchInput, type SearchInputProps, SegmentedTabs, type SegmentedTabsItem, type SegmentedTabsProps, SelectionBar, type SelectionBarProps, type SettingsNavItem, SettingsShell, type SettingsShellProps, SidebarNav, type SidebarNavLabels, type SidebarNavProps, Skeleton, type SkeletonProps, SkeletonText, type SkeletonTextProps, Spinner, type SpinnerProps, SponsorCard, type SponsorCardProps, type SponsorChannel, Stepper, type StepperProps, type StepperStep, StudyMark, Table, type TableProps, TaskAssignmentPicker, type TaskAssignmentPickerProps, type TaskAssignmentSection, type TaskAssignmentTask, TechChips, type TechChipsProps, TextDiffView, type TextDiffViewLabels, type TextDiffViewProps, ThemeScope, type ThemeScopeProps, ThemeTokens, TimeList, type TimeListProps, TimePicker, TimePickerContent, type TimePickerContentProps, type TimePickerProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UndoNotice, type UndoNoticeProps, type UnitDiffOptions, UploadDropzone, type UploadDropzoneProps, type UseAiTextTransformOptions, type UseChatStreamOptions, type UseChatStreamResult, type UseDictationOptions, type UseMarqueeOptions, UserMenu, type UserMenuIcons, type UserMenuItem, type UserMenuLanguage, type UserMenuProps, type UserMenuStatus, type UserMenuStatusTone, type UserMenuTheme, type UserMenuUser, ViewToggle, type ViewToggleProps, type ViewToggleView, Wizard, type WizardContext, type WizardProps, type WizardStep, activePathSet, badgeVariants, buildBranchTree, buildChatMarkdown, buttonVariants, chatExportFileName, cn, computeLineDiff, computeUnitDiff, describeAdminUserError, downloadChatMarkdown, formatBytes, formatFlowLatency, hitTestIds, initialLiveTurnState, linearTree, liveTurnReducer, marqueeRect, modalContentVariants, rectsIntersect, scaleColorForValue, splitMarkdownBlocks, useAiTextTransform, useChatStream, useDictation, useLogoId, useMarquee, variantInfo, walkActivePath, wordSegments };
3263
+ export { AboutCard, type AboutCardProps, type AboutCreator, AboutFooterLine, type AboutFooterLineProps, type AboutLicense, type AboutLinkItem, AboutLinkList, type AboutLinkListProps, AboutNote, type AboutNoteContent, type AboutNoteProps, AboutPanel, type AboutPanelProps, type AboutSponsorContent, ActionMenu, type ActionMenuItem, type ActionMenuProps, type AdminUser, type AdminUserPatch, AdminUserTable, type AdminUserTableIcons, type AdminUserTableLabels, type AdminUserTableProps, type AiAction, AiActionsDropdown, type AiActionsDropdownProps, AiButton, type AiButtonProps, AiMagicFill, type AiMagicFillProps, type AiTextTransformEventHandlers, type AiTextTransformStatus, type AiTextTransformTransport, AuthGate, type AuthGateLabels, type AuthGateProps, type AuthGateStatus, Badge, type BadgeProps, type BranchNode, type BranchNodeInput, type BranchTree, type BreadcrumbItem, type BreadcrumbLinkProps, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, CUSTOM_PRESET_KEY, CapabilityChips, type CapabilityChipsProps, type CapabilityDescriptor, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CareerMark, type ChatAttachmentView, ChatBranchTree, type ChatBranchTreeIcons, type ChatBranchTreeLabels, type ChatBranchTreeNode, type ChatBranchTreeProps, ChatComposer, type ChatComposerIcons, type ChatComposerLabels, type ChatComposerProps, ChatDrawer, type ChatDrawerProps, type ChatError, type ChatExportMessage, type ChatExportOptions, ChatHistoryButton, type ChatHistoryButtonLabels, type ChatHistoryButtonProps, ChatLauncher, type ChatLauncherProps, ChatMessage, type ChatMessageAction, type ChatMessageActions, ChatMessageEditor, type ChatMessageEditorLabels, type ChatMessageEditorProps, type ChatMessageLabels, type ChatMessageProps, type ChatMessageStatus, type ChatMessageVariants, type ChatMessageView, ChatPanel, type ChatPanelProps, type ChatPanelVariant, ChatReasoning, type ChatReasoningLabels, type ChatReasoningProps, type ChatRole, ChatSessionList, type ChatSessionListIcons, type ChatSessionListLabels, type ChatSessionListProps, type ChatSessionView, type ChatStreamEvent, type ChatStreamTransport, ChatToolCard, type ChatToolCardLabels, type ChatToolCardProps, type ChatToolCatalogArgument, type ChatToolCatalogEntry, ChatToolsCatalog, type ChatToolsCatalogLabels, type ChatToolsCatalogProps, ChatTraceMeta, type ChatTraceMetaProps, ChatTraceTimeline, type ChatTraceTimelineEntry, type ChatTraceTimelineLabels, type ChatTraceTimelineProps, type ChatTraceTimelineTrace, ChatTranscript, type ChatTranscriptLabels, type ChatTranscriptProps, ChatTurnStatus, type ChatTurnStatusLabels, type ChatTurnStatusProps, CheckIndicator, type CheckIndicatorProps, ChipInput, type ChipInputProps, ChipList, type ChipListProps, type ChipVariant, Combobox, ComboboxMulti, type ComboboxMultiProps, type ComboboxOption, type ComboboxProps, ConfirmationModal, type ConfirmationModalProps, ConnectionTestRow, type ConnectionTestRowProps, type ConnectionTestStatus, ContextMenu, type ContextMenuItem, type ContextMenuProps, CopyButton, type CopyButtonProps, DatePicker, type DatePickerProps, DesktopMark, DictationButton, type DictationButtonProps, type DictationError, type DictationResult, type DictationStatus, DictationStrip, type DictationStripLabels, type DictationStripProps, type DiffCell, type DiffRow, type DiffSegment, EmptyState, type EmptyStateProps, ErrorBanner, type ErrorBannerProps, ExpandableSearch, type ExpandableSearchProps, type FamilyApp, FamilyBadge, type FamilyBadgeProps, type FamilyCreator, type FamilyMember, FieldDiff, type FieldDiffLabels, type FieldDiffProps, type FieldDiffValue, FieldLabel, type FieldLabelProps, FieldSummary, type FieldSummaryProps, FileCard, type FileCardProps, type FileCardStatus, FileQueue, type FileQueueItem, type FileQueueProps, type FlowError, FlowStatusCard, type FlowStatusCardProps, type FlowStep, type FlowStepInfo, type FlowStepStatus, FlowTelemetryStrip, type FlowTelemetryStripProps, type FlowTrace, type FlowTraceCall, FlowTraceCard, type FlowTraceCardLabels, type FlowTraceCardProps, type FlowTraceStage, type FlowTraceToolOp, FormModal, type FormModalProps, HealthMark, type HitlProposalAction, HitlProposalCard, type HitlProposalCardLabels, type HitlProposalCardProps, type HitlProposalStatus, HoverCard, HoverCardContent, HoverCardPortal, type HoverCardProps, HoverCardTrigger, InfoButton, type InfoButtonProps, InfoTooltip, type InfoTooltipProps, Input, type InputProps, type InstanceAuthMode, InstanceModeControl, type InstanceModeControlIcons, type InstanceModeControlLabels, type InstanceModeControlProps, type LineDiffOptions, type LineDiffResult, type LiveNodeState, type LiveToolCall, type LiveTurnAction, type LiveTurnState, type LiveTurnStatus, LoginForm, type LoginFormFieldOverrides, type LoginFormFields, type LoginFormIcons, type LoginFormLabels, type LoginFormProps, type LogoProps, type LogoTheme, MarkdownCodeBlock, type MarkdownCodeBlockLabels, type MarkdownCodeBlockProps, type MarkdownComponents, MarkdownDiffView, type MarkdownDiffViewLabels, type MarkdownDiffViewProps, MarkdownSurface, type MarkdownSurfaceProps, MarqueeBand, type MarqueePhase, type MarqueeSelection, MarqueeSurface, type MarqueeSurfaceProps, Menu, MenuCheckboxItem, type MenuCheckboxItemProps, MenuContent, MenuGroup, MenuItem, type MenuItemProps, MenuLabel, MenuSeparator, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger, MermaidDiagram, type MermaidDiagramProps, MessageVariantSwitcher, type MessageVariantSwitcherLabels, type MessageVariantSwitcherProps, Modal, ModalBody, ModalClose, ModalContent, type ModalContentProps, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, ModelPicker, type ModelPickerModel, type ModelPickerProps, type ModelPickerProvider, ModelRegistry, type ModelRegistryDraft, type ModelRegistryModel, type ModelRegistryPatch, type ModelRegistryProps, type ModelRegistryProvider, type ModelRegistryRemoteModel, type ModelRegistryRemoteState, type NavChild, type NavItem, NeuronectionMark, NeuronectionWordmark, type NeuronectionWordmarkProps, PanelModal, type PanelModalProps, Popover, PopoverAnchor, PopoverButton, type PopoverButtonProps, PopoverClose, PopoverContent, PopoverTrigger, Portal, type PortalProps, type ProfileItem, ProfileSwitcher, type ProfileSwitcherIcons, type ProfileSwitcherLabels, type ProfileSwitcherProps, ProviderForm, type ProviderFormProps, type ProviderPresetOption, RangeBar, type RangeBarProps, type Rect, RegisterForm, type RegisterFormFieldOverrides, type RegisterFormFields, type RegisterFormIcons, type RegisterFormLabels, type RegisterFormProps, RichTextEditor, type RichTextEditorIcons, type RichTextEditorLabels, type RichTextEditorProps, type RichTextToolbarGroup, ScaleSlider, type ScaleSliderProps, SearchInput, type SearchInputProps, SegmentedTabs, type SegmentedTabsItem, type SegmentedTabsProps, SelectionBar, type SelectionBarProps, type SettingsNavItem, SettingsShell, type SettingsShellProps, SidebarNav, type SidebarNavLabels, type SidebarNavProps, Skeleton, type SkeletonProps, SkeletonText, type SkeletonTextProps, Spinner, type SpinnerProps, SponsorCard, type SponsorCardProps, type SponsorChannel, Stepper, type StepperProps, type StepperStep, StudyMark, Table, type TableProps, TaskAssignmentPicker, type TaskAssignmentPickerProps, type TaskAssignmentSection, type TaskAssignmentTask, TechChips, type TechChipsProps, TextDiffView, type TextDiffViewLabels, type TextDiffViewProps, ThemeScope, type ThemeScopeProps, ThemeTokens, TimeList, type TimeListProps, TimePicker, TimePickerContent, type TimePickerContentProps, type TimePickerProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UndoNotice, type UndoNoticeProps, type UnitDiffOptions, UploadDropzone, type UploadDropzoneProps, type UseAiTextTransformOptions, type UseChatStreamOptions, type UseChatStreamResult, type UseDictationOptions, type UseMarqueeOptions, UserMenu, type UserMenuIcons, type UserMenuItem, type UserMenuLanguage, type UserMenuProps, type UserMenuStatus, type UserMenuStatusTone, type UserMenuTheme, type UserMenuUser, ViewToggle, type ViewToggleProps, type ViewToggleView, Wizard, type WizardContext, type WizardProps, type WizardStep, activePathSet, badgeVariants, buildBranchTree, buildChatMarkdown, buttonVariants, chatExportFileName, cn, computeLineDiff, computeUnitDiff, describeAdminUserError, describeInstanceModeError, downloadChatMarkdown, formatBytes, formatFlowLatency, hitTestIds, initialLiveTurnState, linearTree, liveTurnReducer, marqueeRect, modalContentVariants, rectsIntersect, scaleColorForValue, splitMarkdownBlocks, useAiTextTransform, useChatStream, useDictation, useLogoId, useMarquee, variantInfo, walkActivePath, wordSegments };
package/dist/index.js CHANGED
@@ -1,50 +1,54 @@
1
+ export { UserMenu } from './chunk-CYK3ZLAB.js';
2
+ export { ThemeScope } from './chunk-TGU3PKNM.js';
1
3
  export { TimeList } from './chunk-67W2OLOQ.js';
2
4
  export { TimePicker, TimePickerContent } from './chunk-WQ5MPOYG.js';
3
5
  export { InfoTooltip, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './chunk-NDZ22QGX.js';
4
6
  export { UndoNotice } from './chunk-AT32ANZW.js';
5
7
  export { ViewToggle } from './chunk-XZIJIGEB.js';
6
8
  export { Stepper, Wizard } from './chunk-ZNVWHGKM.js';
9
+ export { SelectionBar } from './chunk-LXKRUJIS.js';
10
+ export { Skeleton, SkeletonText } from './chunk-4OJXAFGA.js';
7
11
  export { HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger } from './chunk-PNYJ5VX2.js';
8
12
  export { Table } from './chunk-53JFRZAO.js';
9
- export { TaskAssignmentPicker } from './chunk-HA7ZIB7V.js';
13
+ export { TaskAssignmentPicker } from './chunk-3YIVKKT6.js';
10
14
  export { SettingsShell } from './chunk-YPDIA54W.js';
11
15
  export { SidebarNav } from './chunk-VAUB5TDF.js';
12
- export { UserMenu } from './chunk-CYK3ZLAB.js';
13
- export { ThemeScope } from './chunk-TGU3PKNM.js';
16
+ export { ScaleSlider, scaleColorForValue } from './chunk-NLHODVBI.js';
14
17
  export { SearchInput } from './chunk-UUIMMMSJ.js';
15
- export { ModelRegistry } from './chunk-GNHADPX6.js';
18
+ export { ModelRegistry } from './chunk-5U45TQJE.js';
16
19
  export { CapabilityChips } from './chunk-SY5FR4HC.js';
17
20
  export { SegmentedTabs } from './chunk-5IEBIDXQ.js';
18
- export { SelectionBar } from './chunk-LXKRUJIS.js';
19
- export { Skeleton, SkeletonText } from './chunk-4OJXAFGA.js';
21
+ export { ModelPicker } from './chunk-CCFVDJHU.js';
20
22
  export { PanelModal } from './chunk-6O4LOWZG.js';
21
- export { ProfileSwitcher } from './chunk-WY5TO6R4.js';
22
- export { CUSTOM_PRESET_KEY, ProviderForm } from './chunk-4XV2FGBS.js';
23
+ export { ProfileSwitcher } from './chunk-6ANLDUGL.js';
24
+ export { CUSTOM_PRESET_KEY, ProviderForm } from './chunk-UMI4M4MF.js';
23
25
  export { RangeBar } from './chunk-3UDWLHLD.js';
24
- export { ScaleSlider, scaleColorForValue } from './chunk-NLHODVBI.js';
25
26
  export { RichTextEditor } from './chunk-QYZNTE6Y.js';
26
27
  export { DictationButton, DictationStrip, useDictation } from './chunk-QRTECV3V.js';
27
28
  export { useAiTextTransform } from './chunk-BKAO7BTU.js';
28
29
  export { MarqueeBand, MarqueeSurface, hitTestIds, marqueeRect, rectsIntersect, useMarquee } from './chunk-RU3DEF2O.js';
29
- export { MarkdownDiffView, splitMarkdownBlocks } from './chunk-QUVVOG7K.js';
30
- export { ModelPicker } from './chunk-OEBCS7EF.js';
30
+ export { MarkdownDiffView, splitMarkdownBlocks } from './chunk-MFM4W6ZO.js';
31
+ export { FlowTelemetryStrip, FlowTraceCard, formatFlowLatency } from './chunk-HMUM3RAS.js';
31
32
  export { FieldLabel } from './chunk-UTECJFDO.js';
32
33
  export { InfoButton } from './chunk-2M4BWGLD.js';
33
34
  export { LoginForm } from './chunk-3V5EBB4N.js';
34
35
  export { RegisterForm } from './chunk-A3XTCQ7C.js';
36
+ export { DatePicker } from './chunk-QFIXMIVP.js';
35
37
  export { ExpandableSearch } from './chunk-BAXBFV7Q.js';
36
38
  export { FileQueue } from './chunk-EEKWQQW3.js';
37
39
  export { FileCard, formatBytes } from './chunk-SBVLHGDI.js';
38
40
  export { UploadDropzone } from './chunk-Q7MRRVE6.js';
39
41
  export { FlowStatusCard } from './chunk-E5GKW4XN.js';
40
- export { FlowTelemetryStrip, FlowTraceCard, formatFlowLatency } from './chunk-HMUM3RAS.js';
42
+ export { ConnectionTestRow } from './chunk-KV67D3RP.js';
41
43
  export { CheckIndicator } from './chunk-FVIIVWRC.js';
42
44
  export { ChipInput } from './chunk-HQN55NOV.js';
43
- export { Combobox, ComboboxMulti } from './chunk-UAZYDEXA.js';
45
+ export { Combobox, ComboboxMulti } from './chunk-SVRCZUNQ.js';
44
46
  export { ConfirmationModal } from './chunk-SE2AHFA5.js';
45
47
  export { ContextMenu } from './chunk-A64IW7ID.js';
46
48
  export { ActionMenu, Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuSeparator, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger } from './chunk-3UCBKZ2O.js';
47
- export { DatePicker } from './chunk-QFIXMIVP.js';
49
+ export { FieldDiff, FieldSummary, HitlProposalCard } from './chunk-452GYIS7.js';
50
+ export { TextDiffView } from './chunk-WYIHBQVV.js';
51
+ export { computeLineDiff, computeUnitDiff, wordSegments } from './chunk-QLP7K3PY.js';
48
52
  export { ChatToolCard } from './chunk-5BJ4VULP.js';
49
53
  export { ChatTurnStatus } from './chunk-TQDTFPM4.js';
50
54
  export { buildChatMarkdown, chatExportFileName, downloadChatMarkdown } from './chunk-DRJGZ5TB.js';
@@ -53,7 +57,7 @@ export { PopoverButton } from './chunk-2EC3NEAE.js';
53
57
  export { ChatTraceMeta } from './chunk-5CIRID6W.js';
54
58
  export { ChatTraceTimeline } from './chunk-HR3FYO7C.js';
55
59
  export { ChatToolsCatalog } from './chunk-OMWI53FM.js';
56
- export { ConnectionTestRow } from './chunk-KV67D3RP.js';
60
+ export { ChatPanel } from './chunk-SEZZVAGP.js';
57
61
  export { ChatTranscript } from './chunk-XOODPYJ3.js';
58
62
  export { MarkdownCodeBlock, MarkdownSurface, MermaidDiagram } from './chunk-HQ3X5SVR.js';
59
63
  export { CopyButton } from './chunk-XFYCNCPS.js';
@@ -62,35 +66,32 @@ export { ChatBranchTree } from './chunk-BG44GKXQ.js';
62
66
  export { ChatDrawer } from './chunk-UKR2WUO3.js';
63
67
  export { ChatReasoning } from './chunk-S63SYV6O.js';
64
68
  export { ChatSessionList } from './chunk-PC3CE4W2.js';
65
- export { FieldDiff, FieldSummary, HitlProposalCard } from './chunk-452GYIS7.js';
66
- export { TextDiffView } from './chunk-WYIHBQVV.js';
67
- export { computeLineDiff, computeUnitDiff, wordSegments } from './chunk-QLP7K3PY.js';
69
+ export { AiMagicFill } from './chunk-X6L5Z5LV.js';
70
+ export { FormModal } from './chunk-QPY2Y532.js';
71
+ export { Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, modalContentVariants } from './chunk-FVQWIDB5.js';
68
72
  export { Breadcrumbs } from './chunk-FILCIMXX.js';
69
73
  export { initialLiveTurnState, liveTurnReducer, useChatStream } from './chunk-6GNLY2EB.js';
70
74
  export { activePathSet, buildBranchTree, linearTree, variantInfo, walkActivePath } from './chunk-Z4IBQ53C.js';
71
75
  export { ChatLauncher } from './chunk-E3NZM4U7.js';
72
76
  export { Portal } from './chunk-XZWLTTHA.js';
73
77
  export { ChatComposer } from './chunk-NUD32RLL.js';
74
- export { ChatPanel } from './chunk-SEZZVAGP.js';
75
78
  export { rawTokens, semanticTokens } from './chunk-GDGKARRB.js';
76
79
  export { AiActionsDropdown } from './chunk-HUIKW2PK.js';
77
80
  export { AboutCard, AboutFooterLine, AboutLinkList, AboutNote, AboutPanel, FamilyBadge, SponsorCard, TechChips } from './chunk-PPW4GNM6.js';
78
81
  export { CareerMark, DesktopMark, HealthMark, NeuronectionMark, NeuronectionWordmark, StudyMark, useLogoId } from './chunk-MK6V5MA4.js';
79
82
  export { ChipList } from './chunk-UBJNPO7A.js';
80
83
  export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-2XS5Q7XT.js';
81
- export { AdminUserTable, describeAdminUserError } from './chunk-OIET4P2M.js';
82
- export { Input } from './chunk-GQDW6BBO.js';
84
+ export { AdminUserTable, describeAdminUserError } from './chunk-47CRUWHB.js';
83
85
  export { EmptyState } from './chunk-QKWFRXU6.js';
86
+ export { InstanceModeControl, describeInstanceModeError } from './chunk-SNHU4PV3.js';
87
+ export { Input } from './chunk-GQDW6BBO.js';
84
88
  export { ErrorBanner } from './chunk-HNMFDVMD.js';
89
+ export { Button, buttonVariants } from './chunk-4WBBF5LH.js';
90
+ export { Spinner } from './chunk-SQHW7TYF.js';
85
91
  export { Badge, badgeVariants } from './chunk-AIQJNN5B.js';
86
92
  export { AuthGate } from './chunk-CEXLCDPM.js';
87
93
  export { AiButton } from './chunk-OY4UOY2W.js';
88
94
  export { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger } from './chunk-VX3EQRSM.js';
89
- export { AiMagicFill } from './chunk-YM4YN3YC.js';
90
- export { FormModal } from './chunk-QPY2Y532.js';
91
- export { Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, modalContentVariants } from './chunk-FVQWIDB5.js';
92
- export { Button, buttonVariants } from './chunk-4WBBF5LH.js';
93
- export { Spinner } from './chunk-SQHW7TYF.js';
94
95
  export { cn } from './chunk-RVVXVTH3.js';
95
96
  //# sourceMappingURL=index.js.map
96
97
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,62 @@
1
+ import * as React from 'react';
2
+ import { LucideIcon } from 'lucide-react';
3
+
4
+ type InstanceAuthMode = 'open' | 'authenticated';
5
+ interface InstanceModeControlLabels {
6
+ title: string;
7
+ modeOpen: string;
8
+ modeAuthenticated: string;
9
+ modeOpenHint: string;
10
+ modeAuthenticatedHint: string;
11
+ enableLogin: string;
12
+ enableLoginNote: (minLength: number) => string;
13
+ disableLogin: string;
14
+ disableLoginNote: string;
15
+ password: string;
16
+ confirmPassword: string;
17
+ passwordMismatch: string;
18
+ passwordTooShort: (minLength: number) => string;
19
+ submitEnable: string;
20
+ submitDisable: string;
21
+ confirmAck: string;
22
+ blockedServer: string;
23
+ blockedUsers: (count: number) => string;
24
+ auditNote: string;
25
+ errorGeneric: string;
26
+ errorForbidden: string;
27
+ }
28
+ interface InstanceModeControlIcons {
29
+ open?: LucideIcon;
30
+ authenticated?: LucideIcon;
31
+ enableLogin?: LucideIcon;
32
+ disableLogin?: LucideIcon;
33
+ audit?: LucideIcon;
34
+ }
35
+ interface InstanceModeControlProps {
36
+ mode: InstanceAuthMode;
37
+ serverIdentity?: boolean;
38
+ otherUserCount?: number;
39
+ minPasswordLength?: number;
40
+ onSetAuthenticated: (password: string) => void | Promise<unknown>;
41
+ onSetOpen: (password: string) => void | Promise<unknown>;
42
+ loading?: boolean;
43
+ error?: string | null;
44
+ labels?: Partial<InstanceModeControlLabels>;
45
+ icons?: InstanceModeControlIcons;
46
+ className?: string;
47
+ }
48
+ declare function describeInstanceModeError(error: unknown, labels: Pick<InstanceModeControlLabels, 'errorGeneric' | 'errorForbidden'>): string;
49
+ /**
50
+ * Presentational + controlled instance access-mode panel (identity-auth
51
+ * §4.5, ADR-06): shows the current mode and offers the two admin
52
+ * transitions — `open → authenticated` (the owner sets credentials in
53
+ * the same call) and `authenticated → open` (current password plus an
54
+ * explicit acknowledgement). Blocked states (server entrypoint, other
55
+ * accounts existing) disable the transition with a label-driven reason.
56
+ * Data flows in through `mode`; the transitions are events out — the app
57
+ * persists them and re-supplies the mode. Rejections surface as
58
+ * label-driven messages and every change carries an audit note.
59
+ */
60
+ declare const InstanceModeControl: React.ForwardRefExoticComponent<InstanceModeControlProps & React.RefAttributes<HTMLDivElement>>;
61
+
62
+ export { type InstanceAuthMode, InstanceModeControl, type InstanceModeControlIcons, type InstanceModeControlLabels, type InstanceModeControlProps, describeInstanceModeError };
@@ -0,0 +1,3 @@
1
+ export { InstanceModeControl, describeInstanceModeError } from './chunk-SNHU4PV3.js';
2
+ //# sourceMappingURL=instance-mode-control.js.map
3
+ //# sourceMappingURL=instance-mode-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"instance-mode-control.js"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Shared language catalog: an ISO 639-1 superset (43 entries)
3
+ * with English name + nativeName (endonym — the default picker label)
4
+ * and an optional `flag` (most-associated country, presentational
5
+ * only; omitted where no uncontroversial primary exists — ar, ca, sw,
6
+ * ta). Data-only export (library ADR-006; family ADR-0024). Consumed
7
+ * via the `@neuronection/assistant-ui/languages` subpath.
8
+ *
9
+ * `nb` (Bokmål) and `no` (macro) both exist; STT surfaces may prefer
10
+ * `nb` where the provider distinguishes. Locale-tag lookups use the
11
+ * language subtag (`pt-BR` → `pt`). `pickLanguages` preserves caller
12
+ * order — Greek-first slices stay Greek-first.
13
+ */
14
+ interface LanguageOption {
15
+ code: string;
16
+ name: string;
17
+ nativeName: string;
18
+ flag?: string;
19
+ }
20
+ declare const LANGUAGES: LanguageOption[];
21
+ declare function findLanguage(code?: string): LanguageOption | undefined;
22
+ declare function isLanguageCode(code?: string): boolean;
23
+ declare function pickLanguages(codes: string[]): LanguageOption[];
24
+ /** Localized language name via Intl.DisplayNames; falls back to the
25
+ * catalog English name, then the raw code. Never throws. */
26
+ declare function languageDisplayName(code: string, locale?: string): string;
27
+
28
+ export { LANGUAGES, type LanguageOption, findLanguage, isLanguageCode, languageDisplayName, pickLanguages };
@@ -0,0 +1,75 @@
1
+ // src/lib/languages.ts
2
+ var LANGUAGES = [
3
+ { code: "ar", name: "Arabic", nativeName: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629" },
4
+ { code: "bg", name: "Bulgarian", nativeName: "\u0431\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438", flag: "\u{1F1E7}\u{1F1EC}" },
5
+ { code: "bn", name: "Bangla", nativeName: "\u09AC\u09BE\u0982\u09B2\u09BE", flag: "\u{1F1E7}\u{1F1E9}" },
6
+ { code: "ca", name: "Catalan", nativeName: "catal\xE0" },
7
+ { code: "cs", name: "Czech", nativeName: "\u010De\u0161tina", flag: "\u{1F1E8}\u{1F1FF}" },
8
+ { code: "da", name: "Danish", nativeName: "dansk", flag: "\u{1F1E9}\u{1F1F0}" },
9
+ { code: "de", name: "German", nativeName: "Deutsch", flag: "\u{1F1E9}\u{1F1EA}" },
10
+ { code: "el", name: "Greek", nativeName: "\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC", flag: "\u{1F1EC}\u{1F1F7}" },
11
+ { code: "en", name: "English", nativeName: "English", flag: "\u{1F1EC}\u{1F1E7}" },
12
+ { code: "es", name: "Spanish", nativeName: "espa\xF1ol", flag: "\u{1F1EA}\u{1F1F8}" },
13
+ { code: "fa", name: "Persian", nativeName: "\u0641\u0627\u0631\u0633\u06CC", flag: "\u{1F1EE}\u{1F1F7}" },
14
+ { code: "fi", name: "Finnish", nativeName: "suomi", flag: "\u{1F1EB}\u{1F1EE}" },
15
+ { code: "fr", name: "French", nativeName: "fran\xE7ais", flag: "\u{1F1EB}\u{1F1F7}" },
16
+ { code: "he", name: "Hebrew", nativeName: "\u05E2\u05D1\u05E8\u05D9\u05EA", flag: "\u{1F1EE}\u{1F1F1}" },
17
+ { code: "hi", name: "Hindi", nativeName: "\u0939\u093F\u0928\u094D\u0926\u0940", flag: "\u{1F1EE}\u{1F1F3}" },
18
+ { code: "hr", name: "Croatian", nativeName: "hrvatski", flag: "\u{1F1ED}\u{1F1F7}" },
19
+ { code: "hu", name: "Hungarian", nativeName: "magyar", flag: "\u{1F1ED}\u{1F1FA}" },
20
+ { code: "id", name: "Indonesian", nativeName: "Indonesia", flag: "\u{1F1EE}\u{1F1E9}" },
21
+ { code: "is", name: "Icelandic", nativeName: "\xEDslenska", flag: "\u{1F1EE}\u{1F1F8}" },
22
+ { code: "it", name: "Italian", nativeName: "italiano", flag: "\u{1F1EE}\u{1F1F9}" },
23
+ { code: "ja", name: "Japanese", nativeName: "\u65E5\u672C\u8A9E", flag: "\u{1F1EF}\u{1F1F5}" },
24
+ { code: "ko", name: "Korean", nativeName: "\uD55C\uAD6D\uC5B4", flag: "\u{1F1F0}\u{1F1F7}" },
25
+ { code: "ms", name: "Malay", nativeName: "Melayu", flag: "\u{1F1F2}\u{1F1FE}" },
26
+ { code: "nb", name: "Norwegian Bokm\xE5l", nativeName: "norsk bokm\xE5l", flag: "\u{1F1F3}\u{1F1F4}" },
27
+ { code: "nl", name: "Dutch", nativeName: "Nederlands", flag: "\u{1F1F3}\u{1F1F1}" },
28
+ { code: "nn", name: "Norwegian Nynorsk", nativeName: "norsk nynorsk", flag: "\u{1F1F3}\u{1F1F4}" },
29
+ { code: "no", name: "Norwegian", nativeName: "norsk", flag: "\u{1F1F3}\u{1F1F4}" },
30
+ { code: "pl", name: "Polish", nativeName: "polski", flag: "\u{1F1F5}\u{1F1F1}" },
31
+ { code: "pt", name: "Portuguese", nativeName: "portugu\xEAs", flag: "\u{1F1F5}\u{1F1F9}" },
32
+ { code: "ro", name: "Romanian", nativeName: "rom\xE2n\u0103", flag: "\u{1F1F7}\u{1F1F4}" },
33
+ { code: "ru", name: "Russian", nativeName: "\u0440\u0443\u0441\u0441\u043A\u0438\u0439", flag: "\u{1F1F7}\u{1F1FA}" },
34
+ { code: "sk", name: "Slovak", nativeName: "sloven\u010Dina", flag: "\u{1F1F8}\u{1F1F0}" },
35
+ { code: "sl", name: "Slovenian", nativeName: "sloven\u0161\u010Dina", flag: "\u{1F1F8}\u{1F1EE}" },
36
+ { code: "sr", name: "Serbian", nativeName: "\u0441\u0440\u043F\u0441\u043A\u0438", flag: "\u{1F1F7}\u{1F1F8}" },
37
+ { code: "sv", name: "Swedish", nativeName: "svenska", flag: "\u{1F1F8}\u{1F1EA}" },
38
+ { code: "sw", name: "Swahili", nativeName: "Kiswahili" },
39
+ { code: "ta", name: "Tamil", nativeName: "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD" },
40
+ { code: "th", name: "Thai", nativeName: "\u0E44\u0E17\u0E22", flag: "\u{1F1F9}\u{1F1ED}" },
41
+ { code: "tr", name: "Turkish", nativeName: "T\xFCrk\xE7e", flag: "\u{1F1F9}\u{1F1F7}" },
42
+ { code: "uk", name: "Ukrainian", nativeName: "\u0443\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430", flag: "\u{1F1FA}\u{1F1E6}" },
43
+ { code: "ur", name: "Urdu", nativeName: "\u0627\u0631\u062F\u0648", flag: "\u{1F1F5}\u{1F1F0}" },
44
+ { code: "vi", name: "Vietnamese", nativeName: "Ti\u1EBFng Vi\u1EC7t", flag: "\u{1F1FB}\u{1F1F3}" },
45
+ { code: "zh", name: "Chinese", nativeName: "\u4E2D\u6587", flag: "\u{1F1E8}\u{1F1F3}" }
46
+ ];
47
+ function findLanguage(code) {
48
+ if (!code) return void 0;
49
+ const base = code.trim().toLowerCase().split("-")[0];
50
+ return LANGUAGES.find((entry) => entry.code === base);
51
+ }
52
+ function isLanguageCode(code) {
53
+ return findLanguage(code) !== void 0;
54
+ }
55
+ function pickLanguages(codes) {
56
+ const picked = [];
57
+ for (const code of codes) {
58
+ const entry = findLanguage(code);
59
+ if (entry) picked.push(entry);
60
+ else console.warn(`[assistant-ui] pickLanguages: unknown language code ${code}`);
61
+ }
62
+ return picked;
63
+ }
64
+ function languageDisplayName(code, locale = "en") {
65
+ try {
66
+ const displayed = new Intl.DisplayNames([locale], { type: "language" }).of(code);
67
+ if (displayed && displayed !== code) return displayed;
68
+ } catch {
69
+ }
70
+ return findLanguage(code)?.name ?? code;
71
+ }
72
+
73
+ export { LANGUAGES, findLanguage, isLanguageCode, languageDisplayName, pickLanguages };
74
+ //# sourceMappingURL=languages.js.map
75
+ //# sourceMappingURL=languages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/languages.ts"],"names":[],"mappings":"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","file":"languages.js","sourcesContent":["/**\n * Shared language catalog: an ISO 639-1 superset (43 entries)\n * with English name + nativeName (endonym — the default picker label)\n * and an optional `flag` (most-associated country, presentational\n * only; omitted where no uncontroversial primary exists — ar, ca, sw,\n * ta). Data-only export (library ADR-006; family ADR-0024). Consumed\n * via the `@neuronection/assistant-ui/languages` subpath.\n *\n * `nb` (Bokmål) and `no` (macro) both exist; STT surfaces may prefer\n * `nb` where the provider distinguishes. Locale-tag lookups use the\n * language subtag (`pt-BR` → `pt`). `pickLanguages` preserves caller\n * order — Greek-first slices stay Greek-first.\n */\n\nexport interface LanguageOption {\n code: string\n name: string\n nativeName: string\n flag?: string\n}\n\nexport const LANGUAGES: LanguageOption[] = [\n { code: 'ar', name: 'Arabic', nativeName: 'العربية' },\n { code: 'bg', name: 'Bulgarian', nativeName: 'български', flag: '🇧🇬' },\n { code: 'bn', name: 'Bangla', nativeName: 'বাংলা', flag: '🇧🇩' },\n { code: 'ca', name: 'Catalan', nativeName: 'català' },\n { code: 'cs', name: 'Czech', nativeName: 'čeština', flag: '🇨🇿' },\n { code: 'da', name: 'Danish', nativeName: 'dansk', flag: '🇩🇰' },\n { code: 'de', name: 'German', nativeName: 'Deutsch', flag: '🇩🇪' },\n { code: 'el', name: 'Greek', nativeName: 'Ελληνικά', flag: '🇬🇷' },\n { code: 'en', name: 'English', nativeName: 'English', flag: '🇬🇧' },\n { code: 'es', name: 'Spanish', nativeName: 'español', flag: '🇪🇸' },\n { code: 'fa', name: 'Persian', nativeName: 'فارسی', flag: '🇮🇷' },\n { code: 'fi', name: 'Finnish', nativeName: 'suomi', flag: '🇫🇮' },\n { code: 'fr', name: 'French', nativeName: 'français', flag: '🇫🇷' },\n { code: 'he', name: 'Hebrew', nativeName: 'עברית', flag: '🇮🇱' },\n { code: 'hi', name: 'Hindi', nativeName: 'हिन्दी', flag: '🇮🇳' },\n { code: 'hr', name: 'Croatian', nativeName: 'hrvatski', flag: '🇭🇷' },\n { code: 'hu', name: 'Hungarian', nativeName: 'magyar', flag: '🇭🇺' },\n { code: 'id', name: 'Indonesian', nativeName: 'Indonesia', flag: '🇮🇩' },\n { code: 'is', name: 'Icelandic', nativeName: 'íslenska', flag: '🇮🇸' },\n { code: 'it', name: 'Italian', nativeName: 'italiano', flag: '🇮🇹' },\n { code: 'ja', name: 'Japanese', nativeName: '日本語', flag: '🇯🇵' },\n { code: 'ko', name: 'Korean', nativeName: '한국어', flag: '🇰🇷' },\n { code: 'ms', name: 'Malay', nativeName: 'Melayu', flag: '🇲🇾' },\n { code: 'nb', name: 'Norwegian Bokmål', nativeName: 'norsk bokmål', flag: '🇳🇴' },\n { code: 'nl', name: 'Dutch', nativeName: 'Nederlands', flag: '🇳🇱' },\n { code: 'nn', name: 'Norwegian Nynorsk', nativeName: 'norsk nynorsk', flag: '🇳🇴' },\n { code: 'no', name: 'Norwegian', nativeName: 'norsk', flag: '🇳🇴' },\n { code: 'pl', name: 'Polish', nativeName: 'polski', flag: '🇵🇱' },\n { code: 'pt', name: 'Portuguese', nativeName: 'português', flag: '🇵🇹' },\n { code: 'ro', name: 'Romanian', nativeName: 'română', flag: '🇷🇴' },\n { code: 'ru', name: 'Russian', nativeName: 'русский', flag: '🇷🇺' },\n { code: 'sk', name: 'Slovak', nativeName: 'slovenčina', flag: '🇸🇰' },\n { code: 'sl', name: 'Slovenian', nativeName: 'slovenščina', flag: '🇸🇮' },\n { code: 'sr', name: 'Serbian', nativeName: 'српски', flag: '🇷🇸' },\n { code: 'sv', name: 'Swedish', nativeName: 'svenska', flag: '🇸🇪' },\n { code: 'sw', name: 'Swahili', nativeName: 'Kiswahili' },\n { code: 'ta', name: 'Tamil', nativeName: 'தமிழ்' },\n { code: 'th', name: 'Thai', nativeName: 'ไทย', flag: '🇹🇭' },\n { code: 'tr', name: 'Turkish', nativeName: 'Türkçe', flag: '🇹🇷' },\n { code: 'uk', name: 'Ukrainian', nativeName: 'українська', flag: '🇺🇦' },\n { code: 'ur', name: 'Urdu', nativeName: 'اردو', flag: '🇵🇰' },\n { code: 'vi', name: 'Vietnamese', nativeName: 'Tiếng Việt', flag: '🇻🇳' },\n { code: 'zh', name: 'Chinese', nativeName: '中文', flag: '🇨🇳' },\n]\n\nexport function findLanguage(code?: string): LanguageOption | undefined {\n if (!code) return undefined\n const base = code.trim().toLowerCase().split('-')[0]\n return LANGUAGES.find((entry) => entry.code === base)\n}\n\nexport function isLanguageCode(code?: string): boolean {\n return findLanguage(code) !== undefined\n}\n\nexport function pickLanguages(codes: string[]): LanguageOption[] {\n const picked: LanguageOption[] = []\n for (const code of codes) {\n const entry = findLanguage(code)\n if (entry) picked.push(entry)\n else console.warn(`[assistant-ui] pickLanguages: unknown language code ${code}`)\n }\n return picked\n}\n\n/** Localized language name via Intl.DisplayNames; falls back to the\n * catalog English name, then the raw code. Never throws. */\nexport function languageDisplayName(code: string, locale = 'en'): string {\n try {\n const displayed = new Intl.DisplayNames([locale], { type: 'language' }).of(code)\n if (displayed && displayed !== code) return displayed\n } catch {\n // fall through to catalog fallback\n }\n return findLanguage(code)?.name ?? code\n}\n"]}
@@ -1,3 +1,3 @@
1
- export { MarkdownDiffView, splitMarkdownBlocks } from './chunk-QUVVOG7K.js';
1
+ export { MarkdownDiffView, splitMarkdownBlocks } from './chunk-MFM4W6ZO.js';
2
2
  //# sourceMappingURL=markdown-diff-view.js.map
3
3
  //# sourceMappingURL=markdown-diff-view.js.map
@@ -1,3 +1,3 @@
1
- export { ModelPicker } from './chunk-OEBCS7EF.js';
1
+ export { ModelPicker } from './chunk-CCFVDJHU.js';
2
2
  //# sourceMappingURL=model-picker.js.map
3
3
  //# sourceMappingURL=model-picker.js.map
@@ -1,3 +1,3 @@
1
- export { ModelRegistry } from './chunk-GNHADPX6.js';
1
+ export { ModelRegistry } from './chunk-5U45TQJE.js';
2
2
  //# sourceMappingURL=model-registry.js.map
3
3
  //# sourceMappingURL=model-registry.js.map
@@ -1,3 +1,3 @@
1
- export { ProfileSwitcher } from './chunk-WY5TO6R4.js';
1
+ export { ProfileSwitcher } from './chunk-6ANLDUGL.js';
2
2
  //# sourceMappingURL=profile-switcher.js.map
3
3
  //# sourceMappingURL=profile-switcher.js.map
@@ -47,6 +47,13 @@ interface ProviderFormProps extends React.ComponentProps<'div'> {
47
47
  label: string;
48
48
  }[];
49
49
  countryPlaceholder?: string;
50
+ /** Search-input placeholder for the country picker (searchable — the
51
+ * catalog is ~250 entries, ADR-0024). */
52
+ countrySearchPlaceholder?: string;
53
+ /** Empty-search result label for the country picker. */
54
+ countryEmptyLabel?: string;
55
+ /** Accessible name of the country picker's clear button. */
56
+ countryClearLabel?: string;
50
57
  /** Hint under the key field; apps mention keyring storage here. */
51
58
  apiKeyHelp?: string;
52
59
  /** The provider already stores a key (write-only field shows no value). */
@@ -1,3 +1,3 @@
1
- export { CUSTOM_PRESET_KEY, ProviderForm } from './chunk-4XV2FGBS.js';
1
+ export { CUSTOM_PRESET_KEY, ProviderForm } from './chunk-UMI4M4MF.js';
2
2
  //# sourceMappingURL=provider-form.js.map
3
3
  //# sourceMappingURL=provider-form.js.map