Class: PhlexKit::BaseComponent

Inherits:
Phlex::HTML
  • Object
show all
Defined in:
lib/phlex_kit/base_component.rb

Overview

Base for every PhlexKit component: a plain Phlex::HTML subclass. It stays free of any Rails-runtime coupling (no route helpers, no booted-app assumptions) so the components load and render anywhere Phlex does — that also keeps the unit suite bootable without a Rails app. A host component that needs route helpers includes Phlex::Rails::Helpers::Routes itself.

Reactivity is deliberately NOT baked in. Components pass **attrs straight through mix, so a phlex-reactive **on(:event) bundle composes onto the root element with zero coupling. on here is a safe no-op unless the host has opted into reactivity AND the component includes Phlex::Reactive::Component (which provides the real on).

Direct Known Subclasses

Accordion, AccordionContent, AccordionDefaultContent, AccordionDefaultTrigger, AccordionIcon, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Attachment, AttachmentAction, AttachmentActions, AttachmentContent, AttachmentDescription, AttachmentGroup, AttachmentMedia, AttachmentTitle, AttachmentTrigger, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Blockquote, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarBody, CalendarDays, CalendarHeader, CalendarNext, CalendarPrev, CalendarTitle, CalendarWeekdays, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Chart, Checkbox, Clipboard, ClipboardPopover, ClipboardSource, ClipboardTrigger, Codeblock, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxBadge, ComboboxBadgeTrigger, ComboboxCheckbox, ComboboxClearButton, ComboboxEmptyState, ComboboxInputTrigger, ComboboxItem, ComboboxItemIndicator, ComboboxList, ComboboxListGroup, ComboboxPopover, ComboboxRadio, ComboboxSearchInput, ComboboxToggleAllCheckbox, ComboboxTrigger, Command, CommandDialog, CommandDialogContent, CommandDialogTrigger, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DataTable, DataTableBulkActions, DataTableColumnToggle, DataTableExpandToggle, DataTableForm, DataTablePagination, DataTablePaginationBar, DataTablePerPageSelect, DataTableRowCheckbox, DataTableSearch, DataTableSelectAllCheckbox, DataTableSelectionSummary, DataTableSortHead, DataTableToolbar, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogMiddle, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormField, FormFieldError, FormFieldHint, FormFieldLabel, Heading, HoverCard, HoverCardContent, HoverCardTrigger, Icon, InlineCode, InlineLink, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputOtp, InputOtpGroup, InputOtpSeparator, InputOtpSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, Link, Marker, MarkerContent, MarkerIcon, MaskedInput, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, NativeSelect, NativeSelectGroup, NativeSelectIcon, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, RadioButton, RadioGroup, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, Select, SelectContent, SelectGroup, SelectInput, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetMiddle, SheetTitle, SheetTrigger, ShortcutKey, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarRail, SidebarSeparator, SidebarTrigger, SidebarWrapper, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Text, Textarea, ThemeToggle, ToastAction, ToastCancel, ToastClose, ToastDescription, ToastIcon, ToastItem, ToastRegion, ToastTitle, Toggle, ToggleGroup, Tooltip, TooltipContent, TooltipTrigger

Instance Method Summary collapse

Instance Method Details

#onObject

No-op fallback. A reactive component includes Phlex::Reactive::Component, whose own on shadows this and returns the real attribute bundle.



18
19
20
# File 'lib/phlex_kit/base_component.rb', line 18

def on(*, **)
  {}
end