@tutti-os/ui-system 0.0.294 → 0.0.295

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.
@@ -1,6 +1,6 @@
1
1
  import { Avatar as Avatar$1, Checkbox as Checkbox$1, ContextMenu as ContextMenu$1, Dialog as Dialog$1, DropdownMenu as DropdownMenu$1, Popover as Popover$1, Select as Select$1, Separator as Separator$1, Slider as Slider$1, Switch as Switch$1, Toast, Tooltip as Tooltip$1 } from 'radix-ui';
2
2
  import * as React$1 from 'react';
3
- import { ComponentProps, ReactNode, ComponentPropsWithoutRef, JSX, CSSProperties } from 'react';
3
+ import { ComponentProps, ReactNode, ComponentPropsWithoutRef, ImgHTMLAttributes, JSX, CSSProperties } from 'react';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import * as class_variance_authority_types from 'class-variance-authority/types';
6
6
  import { VariantProps } from 'class-variance-authority';
@@ -235,6 +235,22 @@ type InputProps = Omit<React$1.ComponentProps<"input">, "size"> & {
235
235
  };
236
236
  declare function Input({ className, size, type, variant, ...props }: InputProps): react_jsx_runtime.JSX.Element;
237
237
 
238
+ interface ImageWithFallbackProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, "src"> {
239
+ /** Content shown while retrying and after the retry budget is exhausted. */
240
+ fallback?: ReactNode;
241
+ /** Number of additional requests allowed after the first load failure. */
242
+ retryCount?: number;
243
+ /** Delay between bounded image requests. */
244
+ retryDelayMs?: number;
245
+ src?: string | null;
246
+ }
247
+ /**
248
+ * Decorative remote image with a bounded same-URL retry and caller-owned
249
+ * fallback. Retrying remounts the image without mutating the URL, so signed
250
+ * URLs remain valid and content-addressed URLs keep their cache identity.
251
+ */
252
+ declare function ImageWithFallback({ fallback, onError, retryCount, retryDelayMs, src, ...imageProps }: ImageWithFallbackProps): React.JSX.Element | null;
253
+
238
254
  type MentionPillKind = "app" | "issue" | "session" | "file";
239
255
  type MentionPillFileKind = "file" | "folder";
240
256
  type MentionPillDataAttributes = {
@@ -552,4 +568,4 @@ interface ViewportMenuSurfaceProps extends Omit<React$1.HTMLAttributes<HTMLDivEl
552
568
  }
553
569
  declare const ViewportMenuSurface: React$1.ForwardRefExoticComponent<ViewportMenuSurfaceProps & React$1.RefAttributes<HTMLDivElement>>;
554
570
 
555
- export { Avatar, type AvatarProps, Badge, BareIconButton, type BareIconButtonProps, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Combobox, type ComboboxOption, ConfirmationDialog, type ConfirmationDialogTone, ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DatePicker, type DatePickerLabels, type DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, MentionPill, type MentionPillFileKind, type MentionPillKind, type MentionPillProps, type MenuPoint, type MenuPointAlignment, type MenuSize, MenuSurface, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, RadioIndicator, type RadioIndicatorProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, type SectionTabItem, SectionTabs, SegmentBar, type SegmentBarItem, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectSplitColumn, SelectSplitColumnItems, SelectSplitColumnLabel, SelectSplitDivider, SelectSplitLayout, SelectTrigger, SelectValue, Separator, ShortcutBadge, Slider, type SliderProps, Sortable, SortableContent, SortableItem, SortableItemHandle, SortableOverlay, type SortableProps, Spinner, type SpinnerProps, StatusDot, Switch, Textarea, ToastClose, ToastDescription, ToastProvider, ToastRoot, ToastTitle, ToastViewport, Toaster, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, TruncatingPillLabel, type TruncatingPillLabelProps, type UnderlineTabItem, UnderlineTabs, type ViewportMenuPlacement, ViewportMenuSurface, type ViewportMenuSurfaceProps, badgeVariants, buttonVariants, menuItemClassName, menuItemIndicatorClassName, menuItemWithIndicatorClassName, menuSurfaceClassName, statusDotVariants, toastVariants, useTextOverflow };
571
+ export { Avatar, type AvatarProps, Badge, BareIconButton, type BareIconButtonProps, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Combobox, type ComboboxOption, ConfirmationDialog, type ConfirmationDialogTone, ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DatePicker, type DatePickerLabels, type DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ImageWithFallback, type ImageWithFallbackProps, Input, MentionPill, type MentionPillFileKind, type MentionPillKind, type MentionPillProps, type MenuPoint, type MenuPointAlignment, type MenuSize, MenuSurface, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, RadioIndicator, type RadioIndicatorProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, type SectionTabItem, SectionTabs, SegmentBar, type SegmentBarItem, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectSplitColumn, SelectSplitColumnItems, SelectSplitColumnLabel, SelectSplitDivider, SelectSplitLayout, SelectTrigger, SelectValue, Separator, ShortcutBadge, Slider, type SliderProps, Sortable, SortableContent, SortableItem, SortableItemHandle, SortableOverlay, type SortableProps, Spinner, type SpinnerProps, StatusDot, Switch, Textarea, ToastClose, ToastDescription, ToastProvider, ToastRoot, ToastTitle, ToastViewport, Toaster, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, TruncatingPillLabel, type TruncatingPillLabelProps, type UnderlineTabItem, UnderlineTabs, type ViewportMenuPlacement, ViewportMenuSurface, type ViewportMenuSurfaceProps, badgeVariants, buttonVariants, menuItemClassName, menuItemIndicatorClassName, menuItemWithIndicatorClassName, menuSurfaceClassName, statusDotVariants, toastVariants, useTextOverflow };
@@ -57,6 +57,7 @@ import {
57
57
  DropdownMenuSubContent,
58
58
  DropdownMenuSubTrigger,
59
59
  DropdownMenuTrigger,
60
+ ImageWithFallback,
60
61
  Input,
61
62
  MentionPill,
62
63
  MenuSurface,
@@ -126,7 +127,7 @@ import {
126
127
  toast,
127
128
  toastVariants,
128
129
  useTextOverflow
129
- } from "../chunk-Q3PM56DM.js";
130
+ } from "../chunk-V2BIMM2U.js";
130
131
  import "../chunk-P2ZEUUEE.js";
131
132
  import "../chunk-DGPY4WP3.js";
132
133
  export {
@@ -188,6 +189,7 @@ export {
188
189
  DropdownMenuSubContent,
189
190
  DropdownMenuSubTrigger,
190
191
  DropdownMenuTrigger,
192
+ ImageWithFallback,
191
193
  Input,
192
194
  MentionPill,
193
195
  MenuSurface,
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { Avatar, AvatarProps, Badge, BareIconButton, BareIconButtonProps, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Combobox, ComboboxOption, ConfirmationDialog, ConfirmationDialogTone, ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DatePicker, DatePickerLabels, DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, MentionPill, MentionPillFileKind, MentionPillKind, MentionPillProps, MenuPoint, MenuPointAlignment, MenuSize, MenuSurface, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, RadioIndicator, RadioIndicatorProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, SectionTabItem, SectionTabs, SegmentBar, SegmentBarItem, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectSplitColumn, SelectSplitColumnItems, SelectSplitColumnLabel, SelectSplitDivider, SelectSplitLayout, SelectTrigger, SelectValue, Separator, ShortcutBadge, Slider, SliderProps, Sortable, SortableContent, SortableItem, SortableItemHandle, SortableOverlay, SortableProps, Spinner, SpinnerProps, StatusDot, Switch, Textarea, ToastClose, ToastDescription, ToastProvider, ToastRoot, ToastTitle, ToastViewport, Toaster, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, TruncatingPillLabel, TruncatingPillLabelProps, UnderlineTabItem, UnderlineTabs, ViewportMenuPlacement, ViewportMenuSurface, ViewportMenuSurfaceProps, badgeVariants, buttonVariants, menuItemClassName, menuItemIndicatorClassName, menuItemWithIndicatorClassName, menuSurfaceClassName, statusDotVariants, toastVariants, useTextOverflow } from './components/index.js';
1
+ export { Avatar, AvatarProps, Badge, BareIconButton, BareIconButtonProps, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Combobox, ComboboxOption, ConfirmationDialog, ConfirmationDialogTone, ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DatePicker, DatePickerLabels, DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ImageWithFallback, ImageWithFallbackProps, Input, MentionPill, MentionPillFileKind, MentionPillKind, MentionPillProps, MenuPoint, MenuPointAlignment, MenuSize, MenuSurface, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, RadioIndicator, RadioIndicatorProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, SectionTabItem, SectionTabs, SegmentBar, SegmentBarItem, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectSplitColumn, SelectSplitColumnItems, SelectSplitColumnLabel, SelectSplitDivider, SelectSplitLayout, SelectTrigger, SelectValue, Separator, ShortcutBadge, Slider, SliderProps, Sortable, SortableContent, SortableItem, SortableItemHandle, SortableOverlay, SortableProps, Spinner, SpinnerProps, StatusDot, Switch, Textarea, ToastClose, ToastDescription, ToastProvider, ToastRoot, ToastTitle, ToastViewport, Toaster, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, TruncatingPillLabel, TruncatingPillLabelProps, UnderlineTabItem, UnderlineTabs, ViewportMenuPlacement, ViewportMenuSurface, ViewportMenuSurfaceProps, badgeVariants, buttonVariants, menuItemClassName, menuItemIndicatorClassName, menuItemWithIndicatorClassName, menuSurfaceClassName, statusDotVariants, toastVariants, useTextOverflow } from './components/index.js';
2
2
  export { AddIcon, AddLinedIcon, AgentSessionsIcon, AppWindowIcon, ArrowLeftIcon, ArrowRightIcon, AskLinedIcon, BillingIcon, CapabilityIcon, ChatIcon, CheckIcon, ChevronDownIcon, ChevronUpIcon, ChromeIcon, CloseEyesIcon, CloseIcon, CollapseLinedIcon, CopyIcon, CreateChatIcon, CreditsIcon, DarkModeIcon, DashboardIcon, DeleteIcon, DirectoryIcon, DiscordIcon, DownloadIcon, EditIcon, EyeIcon, FailedFilledIcon, FailedLinedIcon, FeedbackIcon, FileArchiveIcon, FileCodeIcon, FileCreateIcon, FileIcon, FileLinedIcon, FileTextIcon, FolderFailedFilledIcon, FolderFailedIcon, FolderFilledIcon, FolderIcon, FolderOpenLinedIcon, GitHubBrandIcon, GoogleBrandIcon, GridBottomLinedIcon, GridHorizontalLinedIcon, GridLeftLinedIcon, GridRightLinedIcon, GridTopLinedIcon, GridVerticalLinedIcon, GripVerticalIcon, GuideIcon, HealthIcon, IconProps, ImageFileIcon, ImageGenerateIcon, ImportLinedIcon, InspectIcon, IssueIcon, KeyboardFilledIcon, KeyboardIcon, LaunchIcon, LayoutMenuIcon, LayoutPresetIcon, LayoutPresetIconProps, LightModeIcon, LinkIcon, LoadingIcon, LoadingIconProps, LocateFolderIcon, LockGridHorizontalLinedIcon, LockGridVerticalLinedIcon, LockLayoutLinedIcon, MaximizeIcon, MessageCenterIcon, MessageSquareTextIcon, MinimizeIcon, MinusLinedIcon, MoreHorizontalIcon, NavAgentsIcon, NavApplicationsFilledIcon, NavApplicationsLinedIcon, NavLaunchIcon, NewWorkspaceIcon, NewWorkspaceLinedIcon, NoWorkspaceLinedIcon, OpenLinkLinedIcon, OpenSessionsIcon, OverviewLayoutIcon, PanelIcon, PauseIcon, PinFilledIcon, PinIcon, PlatformIcon, PlayIcon, ProductDocIcon, ProductIcon, QuoteIcon, RecentLinedIcon, RefreshIcon, RestoreIcon, RoomsHintIcon, SearchIcon, SettingsIcon, ShareLinedIcon, SignOutIcon, SuccessFilledIcon, SuccessLinedIcon, TaskIcon, TerminalLinedIcon, ThinkingIcon, ToolsIcon, TuttiMark, UnavailableChatIcon, UninstallIcon, UpgradeArrowIcon, UploadFolderIcon, UploadIcon, UserLinedIcon, VideoFileIcon, ViewGridLinedIcon, ViewListLinedIcon, WarningFilledIcon, WarningLinedIcon, WeChatIcon, WebIcon, WebScrapeIcon, WindowTrafficLightIcon, WindowTrafficLightIconName, WindowTrafficLightIconProps } from './icons/index.js';
3
3
  export { TuttiDateLocale, formatTuttiDateTime, formatTuttiShortDateTime, getCurrentTuttiDateLocale } from './date-format.js';
4
4
  export { cn } from './utils.js';
package/dist/index.js CHANGED
@@ -57,6 +57,7 @@ import {
57
57
  DropdownMenuSubContent,
58
58
  DropdownMenuSubTrigger,
59
59
  DropdownMenuTrigger,
60
+ ImageWithFallback,
60
61
  Input,
61
62
  MentionPill,
62
63
  MenuSurface,
@@ -126,7 +127,7 @@ import {
126
127
  toast,
127
128
  toastVariants,
128
129
  useTextOverflow
129
- } from "./chunk-Q3PM56DM.js";
130
+ } from "./chunk-V2BIMM2U.js";
130
131
  import {
131
132
  formatTuttiDateTime,
132
133
  formatTuttiShortDateTime,
@@ -378,6 +379,7 @@ export {
378
379
  HealthIcon,
379
380
  ImageFileIcon,
380
381
  ImageGenerateIcon,
382
+ ImageWithFallback,
381
383
  ImportLinedIcon,
382
384
  Input,
383
385
  InspectIcon,
@@ -132,6 +132,29 @@
132
132
  ],
133
133
  "storyboard": true
134
134
  },
135
+ {
136
+ "id": "image-with-fallback",
137
+ "layer": "base",
138
+ "name": "ImageWithFallback",
139
+ "export": "ImageWithFallback",
140
+ "from": "@tutti-os/ui-system/components",
141
+ "category": "primitive",
142
+ "status": "stable",
143
+ "source": "src/components/image-with-fallback/index.tsx",
144
+ "description": "Decorative remote image primitive with a bounded same-URL retry and caller-owned fallback.",
145
+ "propsType": "ImageWithFallbackProps",
146
+ "useCases": [
147
+ "Remote application icons",
148
+ "Image thumbnails",
149
+ "Decorative remote media"
150
+ ],
151
+ "migrationHints": [
152
+ "Keep retryCount small and bounded; the default retries once.",
153
+ "Do not mutate the URL to force a retry because signed URLs may become invalid.",
154
+ "Provide a stable fallback for any image that is decorative or essential to row layout."
155
+ ],
156
+ "storyboard": true
157
+ },
135
158
  {
136
159
  "id": "badge",
137
160
  "layer": "base",
@@ -133,6 +133,29 @@ var components_default = {
133
133
  ],
134
134
  storyboard: true
135
135
  },
136
+ {
137
+ id: "image-with-fallback",
138
+ layer: "base",
139
+ name: "ImageWithFallback",
140
+ export: "ImageWithFallback",
141
+ from: "@tutti-os/ui-system/components",
142
+ category: "primitive",
143
+ status: "stable",
144
+ source: "src/components/image-with-fallback/index.tsx",
145
+ description: "Decorative remote image primitive with a bounded same-URL retry and caller-owned fallback.",
146
+ propsType: "ImageWithFallbackProps",
147
+ useCases: [
148
+ "Remote application icons",
149
+ "Image thumbnails",
150
+ "Decorative remote media"
151
+ ],
152
+ migrationHints: [
153
+ "Keep retryCount small and bounded; the default retries once.",
154
+ "Do not mutate the URL to force a retry because signed URLs may become invalid.",
155
+ "Provide a stable fallback for any image that is decorative or essential to row layout."
156
+ ],
157
+ storyboard: true
158
+ },
136
159
  {
137
160
  id: "badge",
138
161
  layer: "base",