Changelog

Recent changes in Beartropy packages.

Changelog

All notable changes to this project will be documented in this file.

[v1.0.20] - 2026-06-27

Changed

  • Dev: Upgrade Pest to v4 (pestphp/pest: ^4.0, pestphp/pest-plugin-faker: ^4.0, pestphp/pest-plugin-laravel: ^4.0, pestphp/pest-plugin-livewire: ^4.1).
  • ThemeHead: Tests updated for Livewire 4 — the head script persists across wire:navigate via data-navigate-once, and the duplicate-listener guard flag is now __btThemeGuard.

[v1.0.19] - 2026-06-25

Changed

  • Dependencies: Allow Livewire 4 (livewire/livewire: ^3.6|^4.0).
  • Dev: Test against Laravel 13 via Orchestra Testbench 11 (orchestra/testbench: ^10.4|^11.0).

[v1.0.18] - 2026-04-10

Fixed

  • Dropdown: Fixed hover/active highlight invisible in dark mode for gray-scale themes (slate, gray, zinc, neutral, stone). These themes used -900 shades indistinguishable from the dropdown background.

[v1.0.17] - 2026-04-05

Fixed

  • Table: Moved max-w-[20rem] from the outer searchbox container to the search input wrapper so justify-between can push the actions slot to the right. Added searchbar preset key for outer container spacing.

[v1.0.16] - 2026-04-05

Fixed

  • Table: Fixed actions slot not being pushed to the right — wrapped search input in a block-level div so justify-between works correctly.

[v1.0.15] - 2026-04-05

Added

  • Table: actions slot for rendering content (buttons, filters) in the top-right of the table header, opposite the search input.

[v1.0.14] - 2026-03-31

Fixed

  • BeartropyAssets: Fixed render() generating different ?v= cache-busting values on every request when assets are not published to public/. The time() fallback is replaced with filemtime() on the package's source files, producing a stable version string that prevents Livewire's data-navigate-once from duplicating <script> and <link> tags during wire:navigate SPA navigation.
  • Nav: Fixed sidebar highlighting both /request and /requested when on /requested. Child item active detection now uses segment-aware path matching (/request/ boundary) instead of naive string startsWith.

[v1.0.13] - 2026-03-05

Added

  • i18n: Spanish (es) translation support for all UI components.
  • ServiceProvider: Publishable translations via beartropy-ui-lang tag.
  • DropdownBase: minWidth and maxWidth props for constraining dropdown panel dimensions.

Changed

  • DropdownBase: Teleport path now clamps width between min/max constraints instead of blindly matching trigger width. Removed $width class from teleport div to prevent w-full expanding to viewport.
  • Datetime: Set fitAnchor to false so calendar panel sizes independently from narrow triggers.
  • Select: Default min-width: 12rem, max-width: 32rem.
  • Lookup: Default min-width: 12rem, max-width: 32rem.
  • TimePicker: Default min-width: 12rem, max-width: 22rem.
  • Datetime: Default min-width: 16rem, max-width: 25rem.

Fixed

  • DropdownBase: Dropdown no longer breaks when trigger container is very narrow (e.g. max-w-40).

[v1.0.12] - 2026-02-26

Fixed

  • ToggleTheme: Fix dark mode FOUC (flash of unstyled content) during wire:navigate navigation. Added livewire:navigated event listener to re-apply theme after SPA navigation and restored data-bt-theme attribute in MutationObserver callback.

[v1.0.11] - 2026-02-23

Fixed

  • ToggleTheme / ThemeHead: Added opacity guard (html:not([data-bt-theme]) body{opacity:0}) to prevent dark-mode FOUC on Chrome/Linux. The inline script now sets data-bt-theme on <html> before body renders, lifting the guard instantly.
  • FileInput: Fixed upload spinner/status indicators not working on Livewire 3.4. Made detail.property check forgiving when the field is absent, and added fallback branches for when wire:model value is not available.

[v1.0.10] - 2026-02-23

Added

  • ToggleTheme: @beartropyHtmlClass Blade directive — reads a bt_theme cookie server-side and renders the dark class on <html> for zero-FOUC on first paint.
  • ToggleTheme: Theme preference is now persisted to a bt_theme cookie alongside localStorage, enabling server-side rendering.

Fixed

  • ToggleTheme: Eliminated dark-mode FOUC on wire:navigate by adding data-navigate-once to all @BeartropyAssets head elements, preventing Livewire from removing and re-adding the stylesheet during navigation.
  • ToggleTheme: Added inline <style> with color-scheme CSS rules so native form controls (inputs, selects) respect dark mode without waiting for JS.

[v1.0.9] - 2026-02-23

Fixed

  • ToggleTheme: Eliminated dark-mode FOUC on page refresh and wire:navigate by replacing the livewire:navigated listener with a MutationObserver that reapplies the theme before the browser repaints.

[v1.0.8] - 2026-02-23

Fixed

  • FileInput: Moved status indicators (spinner, error, success icons) from the end slot into the start area so the end slot is exclusively available for user-provided content.
  • FileInput: Simplified input ID generation to use the base class $id property.

[v1.0.7] - 2026-02-19

Fixed

  • Select: Dropdown now closes on outside click inside modals and containers that use stopPropagation.
  • Select: Highlighted option no longer uses the selected/active color — uses neutral gray to avoid confusion with the actual selection.
  • Modal: Removed unnecessary @click.stop on modal container that broke @click.outside for nested components.

[v1.0.6] - 2026-02-17

Changed

  • BeartropyAssets: @beartropyAssets now includes an inline theme script automatically, preventing FOUC without requiring <x-bt-theme-head />.
  • Docs: Updated toggle-theme and theme-head docs to clarify that @beartropyAssets handles FOUC prevention automatically.

[v1.0.5] - 2026-02-17

Added

  • ThemeHead: New <x-bt-theme-head /> component — a blocking inline script for <head> that applies the saved dark/light theme before CSS renders, preventing the light-to-dark FOUC on page load and during wire:navigate navigation.

Changed

  • ToggleTheme: initTheme() now guards against duplicate livewire:navigated listeners when <x-bt-theme-head /> is present.

[v1.0.4] - 2026-02-16

Added

  • Datetime: Added size prop to support magic size attributes.

[v1.0.3] - 2026-02-14

Changed

  • InstallSkills: Cross-package skill discovery — auto-discovers skills from all installed beartropy/* packages via convention-based scanning and optional skills.json manifest.
  • InstallSkills: Installation now cleans up stale skills before writing the new set, ensuring --force produces a clean state.
  • InstallSkills: README.md is now dynamically generated from discovered skills instead of copied from a static file.
  • InstallSkills: Output grouped by package with generic /bt-* slash command hint.
  • Skills: Renamed skill directories from beartropy-* to bt-ui-* prefix for consistency with the convention-based discovery pattern.
  • MCP Tools: Updated namespace references from beartropy to bt prefix.
  • Docs: Updated AI assistant documentation and project README.

[v1.0.2] - 2026-02-13

Added

  • MCP: Add beartropy-project-context tool that returns project configuration (version, prefix, icon set, component defaults).

Changed

  • MCP: Make ListComponents::CATEGORIES constant public for cross-tool reuse.

[v1.0.1] - 2026-02-13

Added

  • MCP Integration: Added Laravel Boost MCP tools (beartropy-component-docs, beartropy-list-components) for automatic component documentation access.
  • Skills: Added multi-agent support to beartropy:skills command (Claude, Codex, Copilot, Cursor, Windsurf).
  • Skills: Rewritten all published skills with improved v2.0.0 content.
  • Dev Skills: Added internal release and beartropy-docs-maintenance skills for maintainers.

[v0.11.22] - 2026-02-02

Added

  • ToggleTheme: Fix custom icons not showing

[v0.11.21] - 2026-01-30

Added

  • ChatInput: Added border-color prop to allow using a specific preset's border style independently.

[v0.11.20] - 2026-01-30

Added

  • ChatInput: Added white preset to chat-input configuration.

[v0.11.19] - 2026-01-28

Fixed

  • Slider: Fixed external trigger events not working across Livewire components by using native addEventListener in init().

[v0.11.18] - 2026-01-28

Added

  • Slider: Added name prop and external trigger support via $dispatch events (open-slider, close-slider, toggle-slider).

[v0.11.17] - 2026-01-16

Changed

  • Updated modal to appear at approx. 1/3 from top by default, centering only when requested.

[v0.11.16] - 2026-01-14

Fixed

  • Fixed base dropdown positioning.

[v0.11.15] - 2026-01-12

Fixed

  • Improved chat-input textarea stability with hysteresis and debounced layout changes.

[v0.11.14] - 2026-01-12

Fixed

  • Fixed glitch in chat-input textarea resize preventing internal scroll.

[v0.11.13] - 2026-01-11

Changed

[v0.11.12] - 2026-01-11

Changed

  • Added x-cloak to chat-input component to prevent flash of unstyled content.

[v0.11.11] - 2026-01-11

Changed

  • Removed placeholder:text-sm from all chat-input color presets so placeholder text matches input text size.

[v0.11.10] - 2026-01-10

Changed

  • Updated chat input preset wrapper backgrounds to use bg-{color}-300/50 instead of bg-white.

[v0.11.9] - 2026-01-10

Changed

  • Refined ChatInput styles (rounded look, responsive layout, conditional border) and updated all presets.

[v0.11.8] - 2026-01-06

Changed

  • Fix Dialog Button Visibility

[v0.11.7] - 2026-01-06

Changed

  • Added safelist for dialog button colors to ensure visibility in light mode.

[v0.11.6] - 2026-01-06

Changed

  • Fixed dialog button visibility in light mode (success, warning) and added missing confirm variant.

[v0.11.5] - 2026-01-02

Fixed

  • Added x-cloak to slider component to prevent initial loading glitch.

[v0.11.4] - 2026-01-02

Changed

  • Added comprehensive feature tests for UI components.
  • Updated documentation.

[v0.11.3] - 2025-12-31

Changed

  • Added docs

[v0.11.2] - 2025-12-30

Changed

  • Modal: Enabled attribute merging for title and footer slots to allow custom classes and attributes.
  • Modal: Refactored modal-root component for better attribute handling and cleaner code.

[v0.11.1] - 2025-12-26

Changed

  • Fixed chat input layout clearing issue

[v0.11.0] - 2025-12-25

Added

  • ChatInput: Added tools and actions slots for enhanced customization.
  • ChatInput: Added stacked, submitOnEnter, and action props for layout control and behavior.
  • ChatInput: Implemented auto-expanding textarea with dynamic single-line/stacked layout state.
  • Icon: Added support for beartropy custom icon set.

Changed

  • Refactored internal Livewire setup.

[v0.10.0] - 2025-12-24

Added

  • Added ChatInput component.

[v0.9.44] - 2025-12-24

Fixed

  • Fixed Icon component not forwarding attributes (e.g., event listeners) to the underlying element.

[v0.9.43] - 2025-12-19

Fixed

  • Fixed toast component bug where notification would disappear even when hovered (implemented global timer registry to bypass Alpine proxy issues).
Beartropy Logo

© 2026 Beartropy. All rights reserved.

Provided as-is, without warranty. Use at your own risk.