@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.
- package/dist/{chunk-Q3PM56DM.js → chunk-V2BIMM2U.js} +227 -136
- package/dist/chunk-V2BIMM2U.js.map +1 -0
- package/dist/components/index.d.ts +18 -2
- package/dist/components/index.js +3 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -1
- package/dist/metadata/components.json +23 -0
- package/dist/metadata/index.js +23 -0
- package/dist/metadata/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-Q3PM56DM.js.map +0 -1
|
@@ -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 };
|
package/dist/components/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-
|
|
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-
|
|
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",
|
package/dist/metadata/index.js
CHANGED
|
@@ -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",
|