/** * The source of truth for the Custom JSX public component surface. * * Components marked `wrapped` require a runtime wrapper that removes unsafe props * or supplies inert/read-only behavior. `denied` entries are deliberately kept in * the registry so Mantine upgrades cannot silently expand the template surface. */ export const customJsxEnabledComponentRegistry: readonly CustomJsxComponentDescriptor[] = [ ...describe("@mantine/core", "layout", "allowed", [ "Box", "Stack", "Group", "Flex", "Grid", "Grid.Col", "SimpleGrid", "Center", "Space", "Container", "AspectRatio", "ScrollArea", "Paper", "Card", "Card.Section", "Divider", "Fieldset", "VisuallyHidden", "Typography", "FloatingIndicator", ]), ...describe("@mantine/core", "content", "allowed", [ "Text", "Title", "Code", "Highlight", "Mark", "Kbd", "Blockquote", "NumberFormatter", "Badge", "ThemeIcon", "ColorSwatch", "Table", "Table.Thead", "Table.Tbody", "Table.Tfoot", "Table.Caption", "Table.Tr", "Table.Th", "Table.Td", "List", "List.Item", "Timeline", "Timeline.Item", "Indicator", "Pill", "Image", "Avatar", "Avatar.Group", "BackgroundImage", "DataList", "DataList.Item", "DataList.ItemLabel", "DataList.ItemValue", "EmptyState", "EmptyState.Indicator", "EmptyState.Title", "EmptyState.Description", "EmptyState.Actions", "Marquee", "RollingNumber", ]), ...describe("@mantine/core", "feedback", "allowed", [ "Alert", "Progress", "Progress.Section", "RingProgress", "SemiCircleProgress", "Skeleton", "Loader", ]), ...describe("@mantine/core", "feedback", "wrapped", ["Notification", "LoadingOverlay", "Overlay"]), ...describe("@mantine/core", "navigation", "allowed", [ "Accordion", "Accordion.Item", "Accordion.Control", "Accordion.Panel", "Tabs", "Tabs.List", "Tabs.Tab", "Tabs.Panel", "Stepper.Step", "HoverCard", "HoverCard.Target", "HoverCard.Dropdown", "Menu", "Menu.Target", "Menu.Dropdown", "Menu.Item", "Menu.Label", "Menu.Divider", "Tooltip", "Spoiler", "Collapse", "Transition", ]), ...describe("@mantine/core", "navigation", "wrapped", ["Anchor", "NavLink", "Breadcrumbs", "Stepper", "Tree"]), ...describe("@mantine/core", "interaction", "wrapped", [ "Button", "ActionIcon", "Burger", "CloseButton", "Chip", "Chip.Group", "CopyButton", "Pagination", "Rating", "SegmentedControl", "Slider", "Switch", ]), ...describe("@mantine/charts", "charts", "allowed", [ "AreaChart", "BarChart", "BarsList", "BubbleChart", "ChartLegend", "ChartTooltip", "CompositeChart", "DonutChart", "FunnelChart", "Heatmap", "LineChart", "PieChart", "RadarChart", "RadialBarChart", "SankeyChart", "ScatterChart", "Sparkline", "Treemap", ]), ...describe("@mantine/dates", "dates", "wrapped", [ "Calendar", "MiniCalendar", "DatePicker", "Day", "WeekdaysRow", "Month", "CalendarHeader", "YearPicker", "MonthPicker", "TimeGrid", "PickerControl", "YearsList", "MonthsList", "DecadeLevel", "YearLevel", "MonthLevel", "LevelsGroup", "DecadeLevelGroup", "YearLevelGroup", "MonthLevelGroup", ]), ...describe("@mantine/dates", "dates", "allowed", ["TimeValue"]), ...describe("@homarr/widgets", "interaction", "allowed", [ "PaginatedList", "TabsContainer", "TabPanel", "Collapsible", "StatBar", "TypeBadge", ]), ...describe("@homarr/widgets", "network", "wrapped", [ "SubFetch", "SubData", "ActionButton", "ToggleSwitch", "RefreshButton", ]), { name: "TablerIcon", package: "@homarr/widgets", category: "content", safety: "wrapped", supportedProps: ["name", "size", "color", "stroke"], subcomponents: [], accessibilityRequirements: accessibilityByCategory.content, documentationUrl: documentationUrl("@homarr/widgets", "TablerIcon"), }, ]; import { accessibilityByCategory, describe, documentationUrl } from "./component-descriptor"; import type { CustomJsxComponentDescriptor } from "./component-descriptor";