Public release history for EnterUI and the FroggDesign packages it depends on.
This changelog tracks published releases for EnterUI and the FroggDesign packages it depends on. Release notes are generated from each package CHANGELOG.md; pending Changesets stay in review until package versioning writes them into those files.
| Package | Role |
|---|---|
@froggdesign/enter-ui-react | React renderer for the EnterUI component system |
@froggdesign/enter-ui-solid | SolidJS renderer for the EnterUI component system |
@froggdesign/theme | CSS variables and theme runtime |
@froggdesign/tokens | Design tokens source |
@froggdesign/enter-ui-utils | Shared utilities |
@froggdesign/enter-ui-reactMinor Changes
--eui-* variables.
Permissions & roles
PermissionMatrix — role × permission table with controlled or uncontrolled Record<roleId:permissionId, boolean> value, category groups, per-role and per-category bulk toggles, plus a read-only mode that preserves table semantics with yes / no marks instead of disabled checkboxes.RolePicker — single (role="radiogroup") or multi (role="listbox") role picker with optional search, descriptions, badges, and disabled rows. Auto-enables search when options.length > 6.
Ops & environmentFeatureFlagToggle — operator-style toggle with title, flag name, description, environment chip, variant chip (stable | beta | experimental | deprecated), and a rollout percent slot. Backed by the existing Switch.EnvironmentBadge — compact badge for production | staging | preview | development | local | test, optional dot indicator, sm / md size for table density. Aria-label is always set so colour is never the only cue.
Developer surfacesApiKeyField — masked-by-default field for API keys / tokens with reveal, copy, status (active | expired | revoked), lastFour, createdAt, expiresAt, plus an actions slot for Rotate / Revoke. The full secret stays out of the DOM until Reveal is pressed.SecretInput — admin secret input (webhook secrets, env tokens) with reveal/hide and an optional copy action. Controlled or uncontrolled.WebhookEndpointCard — endpoint card with URL, method, status (active | paused | error), signing-secret state, event chips, last-delivery line, and Send-test / Rotate-secret / Disable callbacks.
ViewersLogViewer — admin / dev log viewer with level filter, text search, copy, and optional auto-scroll. Renders role="log" viewport with explicit LogLine.level chips so colour is not the only cue.JsonViewer — collapsible JSON viewer with token-driven syntax coloring, expand-all / collapse-all, and copy. Tree root is role="tree"; toggles are real <button> elements with aria-expanded.DiffViewer — diff viewer with unified and split modes. Accepts oldValue + newValue (LCS-based line diff computed on the fly) or pre-computed lines: DiffLine[]. Each line carries a + / − / space symbol plus an aria-label so the kind is announced by screen readers.
Each component ships with token-driven CSS (no hardcoded colours, neutral-first), a behaviour test, and a docs MDX page registered in the @froggdesign/web sidebar. Some components are also surfaced in the root showcase (PermissionMatrix, FeatureFlagToggle, ApiKeyField, EnvironmentBadge, LogViewer, JsonViewer).Toaster + useToaster (imperative toast queue with top-right / top-center / bottom-right / bottom-center viewports, semantic variants, action, and pause-on-hover), DataView (slot-based shell that pairs a toolbar, filters, view-mode switch, and loading / error / empty states), InlineEdit (single-line click-to-edit with sync/async validate, multiline mode, and Enter/Escape keyboard behaviour), DatePresetPicker (preset chips paired with DateRangePicker, plus a resolvePresetRange helper), StepperForm / StepperFormStep / StepperFormActions (multi-step form scaffold built on WizardSteps, controlled or uncontrolled, with async per-step validation and submit-loading), Autocomplete (free-typing single-select combobox with local or async-friendly options and the WAI-ARIA combobox keyboard pattern), CommentThread / CommentItem / CommentComposer (product-flavoured comments with replies, attachments, delivery status, and a labelled composer), plus medium-priority product primitives: KanbanBoard, TimelineDetail, MentionInput, RichTextEditor, TreeSelect, TransferList, DualListBox, CalendarView, and ResourceCalendar. All exports are additive, token-driven, and ship behaviour tests plus MDX docs.Patch Changes
Minor Changes
--eui-* variables.
Data & Tables
DataGrid — advanced table with row selection, bulk selection, sticky header, sorting, loading/error/empty states. Sits next to the existing DataTable.BulkActionBar — count + actions + clear bar that hides when count is 0. Supports sticky mode.FilterBuilder — rule builder over native <select> + <input> + <datalist> for "field operator value" rules.EmptySearchResult — EmptyState wrapper that surfaces the search query and a clear-filters action.SkeletonTable — table-shaped loading placeholder with aria-busy.
Layout & NavigationPageLayout — page grid with header, optional sticky toolbar, content, aside, and footer-action slots.SideNav (SideNavSection, SideNavItem, SideNavGroup) — product sidebar with grouped items, active state, badges, and collapsed mode.NavigationRail (+ NavigationRailItem) — compact icon-first vertical navigation.TopBar — product top header with breadcrumb/title/search/actions/notifications/user-menu slots.SearchCommand — search-styled trigger button with shortcut hint, intended to open a CommandMenu.
Account & DetailUserMenu — avatar + dropdown with profile/settings/sign-out items (href or onSelect).NotificationCenter — bell trigger with unread badge and a popover of read/unread items.DetailPanel — detail surface for a single object with title, status, metadata, actions.ObjectDetail — alias of DetailPanel (shares props/runtime).AuditLog — ordered timeline for activity/history with title, kind, actor, timestamp.
Forms & FeedbackFormLayout (+ FormLayoutSection) — form scaffold with two-column titled sections.SettingsSection (+ SettingsRow) — settings card with divided rows.ErrorState — page/panel-level error with retry + secondary action slots.ErrorBoundaryFallback — pre-wired ErrorState for React error-boundary fallbacks.LoadingOverlay — overlay layer for panels/forms with optional blocking backdrop.SkeletonForm — form-shaped loading placeholder with optional section dividers.
Charts & BillingStatGrid — responsive 2/3/4-column grid for repeated stat cards.KPISection — header + body wrapper for KPI groups.UsageMeter — usage primitive with auto-derived warning/error tone via thresholds.PlanUsage — billing-card shell with title, inner UsageMeter, reset note, and upgrade CTA.
FilesFileList — uploaded/attached files with name, size, progress, error, and remove action.AttachmentList — alias of FileList for comment/message attachment surfaces.
Each component ships with token-driven CSS, accessible defaults (semantic HTML, ARIA where applicable, labelled controls), behaviour tests, and a docs MDX page registered in the @froggdesign/web sidebar.Patch Changes
Spinner, Button loading, and IconButton loading indicators with a calmer orbit-ring motion, restrained brand cue, reduced-motion fallback, and forced-colors support.Minor Changes
@radix-ui/react-menubar and @radix-ui/react-navigation-menu.
Add public alias docs for already-exported aliases so they show up in the components sidebar and search index: Drawer (Sheet), DateInput (DatePicker), PinInput (OTPInput), TokenInput (TagsInput), Dropzone (FileUpload), Timeline (ActivityFeed), KeyValueList (DescriptionList), TableFooter (Table primitive), and StepperProgress (WizardSteps).Patch Changes
loading prop to Button and an optional unit slot to Gauge. Both are additive — existing variants, sizes, classNames, and type continue to work.
Button loading={true} disables the button, swaps the label for a centered spinner, sets aria-busy="true", sets data-loading="true", and applies the .eui-button--loading modifier so consumers can override styling. ConfirmDialogAction and IconButton already follow the same pattern.Gauge accepts unit?: ReactNode (for example "%") rendered next to the readout in muted typography, plus a tip cap that follows the active arc and tone-aware fill colors. The visual contract stays clean — no changes to existing layouts.apps/web/content/docs/components/button.mdx gains a Loading preview; gauge.mdx documents the new unit prop.Button and ConfirmDialogAction get explicit loading-state assertions; Gauge gains coverage for unit, hideValue, the tip cap, clamp behavior, and tone. New behavior tests for CommandMenu, ContextMenu, HoverCard, Sheet, Header, Sidebar, AppShell, SearchInput, CopyButton, CodeBlock, and Kbd ship in src/components/priority-coverage.test.tsx.test-types/consumer.tsx is type-checked against the built dist/index.d.ts via pnpm --filter @froggdesign/enter-ui-react test:types (also wired into the vitest suite when build artifacts are present), guarding declaration regressions on Button, Card, DataTable generics, TimeInput, DateRangePicker, AppShell, and Gauge.Minor Changes
Patch Changes
Minor Changes
.eui-* component classes, and themeable --eui-* variables.Patch Changes
FormField accessibility semantics by wiring a single child control to
generated label, description, and error IDs when explicit IDs are not supplied.@froggdesign/enter-ui-react/styles.css entry.@froggdesign/enter-ui-solidMinor Changes
@froggdesign/enter-ui-solid/styles.css, SSR render tests, package verification scripts, public package metadata, and the FroggDesign Limited Use License.
Initial exports include Button, ButtonGroup, IconButton, Link, Badge, Card, Avatar, Alert, Separator, Spinner, Skeleton, Text, Kbd, Form, Label, Input, TextArea, MetricCard, StatusIndicator, EmptyState, ErrorState, LoadingOverlay, Container, Stack, Cluster, Grid, AppShell, DescriptionList, KeyValueList, List, Media, ScrollArea, Toolbar, WizardSteps, StepperProgress, VStack, HStack, ZStack, DetailPanel, ObjectDetail, and KPISection.Patch Changes
@froggdesign/themePatch Changes
Minor Changes
Patch Changes
Minor Changes
.eui-* component classes, and themeable --eui-* variables.Patch Changes
@froggdesign/tokensMinor Changes
Minor Changes
.eui-* component classes, and themeable --eui-* variables.@froggdesign/enter-ui-utilsMinor Changes
Minor Changes
.eui-* component classes, and themeable --eui-* variables.Update the EnterUI runtime packages together:
pnpm update @froggdesign/enter-ui-react @froggdesign/themeUpdate the full FroggDesign package surface:
pnpm update @froggdesign/enter-ui-react @froggdesign/enter-ui-solid @froggdesign/theme @froggdesign/tokens @froggdesign/enter-ui-utils