tests / feature (8.4) (push) Successful in 2m0s
tests / feature (8.5) (push) Successful in 2m0s
tests / browser (chrome, chromium) (push) Failing after 8m3s
tests / browser (firefox, firefox) (push) Failing after 12m58s
tests / browser (safari, webkit) (push) Failing after 13m8s
Tailwind left the stack in 2.0.0, but the package still carried about 330 mentions of it. What the guard's Tailwind detection protected — a class that compiles to nothing — is now protected by a check that does not care where a dead class came from. DesignGuard: about 500 lines of Tailwind tables, scales, palettes and "2.0.0 replacement" hints give way to one check — a class a view or PHP file writes that neither the application's stylesheets nor the package's own declare. It catches a utility of any framework, a typo and a class whose rules were deleted alike, so it also found two classes ReStride draws nothing with. A stylesheet has to be in reach for it: the `.css` files among the scanned paths, or what the `missingStylesheets()` entry imports. The class reader no longer mistakes an array index for a class list (`$block['base']`), and it reads the array a class helper is given, where it read nothing before. The package's own three Tailwind self-guards go with it. Only their one unique check stays, as a test of its own: every `matchMedia` width in resources/js is an M3 breakpoint. The pagination views are `material.blade.php` and `simple-material.blade.php`; only Laravel's and Livewire's default theme names ever made them `tailwind`. The provider sets `Paginator`'s default views and switches `livewire.pagination_theme` to `material` when it is still Livewire's own default, so no application can forget the config; a theme an application chose, and a component's own `$paginationTheme` or `paginationView()`, still win. The rest is prose: the layer-order guidance for an application that still builds Tailwind, the Tailwind wording in the README, the Boost guidelines and the development skill, and about 25 "this used to be a Tailwind utility" comments, along with every "plan step NN" pointer into a gitignored folder. The reset keeps its credit, and NOTICE now carries it too. Feature suite 1159 passed, Chrome browser suite 299 passed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
115 lines
4.4 KiB
CSS
115 lines
4.4 KiB
CSS
/*
|
|
* Livewire Material for an application that wants everything: the foundation, every layout
|
|
* stylesheet and every component stylesheet, each imported once. The blocks below are the same
|
|
* groups `components.css` and `layout.css` used before this file replaced both of them — one
|
|
* block per group, so a stylesheet still lands in a predictable place — plus the Layout block
|
|
* those two files didn't share.
|
|
*
|
|
* This is not the recommended way to bring the package's CSS in: importing `all.css` pulls in
|
|
* every component's rules whether an application's views render them or not. The recommended path
|
|
* is `foundation.css` (the one required import) followed by only the component stylesheets a
|
|
* view actually renders — each component file already imports the stylesheets of the components
|
|
* it draws, so the list an application writes stays short. `all.css` is for the showcase, for an
|
|
* error page rendered without a build, and for an application that would rather not track
|
|
* per-component imports at all.
|
|
*
|
|
* Same shape as every package stylesheet: the layer statement first, then plain imports, nothing
|
|
* else at the top level — an `@import` cannot sit inside a `@layer` block, and `layer()` on it
|
|
* would nest the layer a second time inside a file that already declares it.
|
|
*/
|
|
|
|
@layer material.reset, material.tokens, material.base, material.layout, material.components, material.text, material.visibility;
|
|
|
|
@import './foundation.css';
|
|
|
|
/* Layout */
|
|
@import './layout/spacing.css';
|
|
@import './layout/visibility.css';
|
|
@import './layout/stack.css';
|
|
@import './layout/row.css';
|
|
@import './layout/grid.css';
|
|
@import './layout/surface.css';
|
|
@import './layout/pane.css';
|
|
@import './layout/list-detail.css';
|
|
@import './layout/supporting-pane.css';
|
|
@import './layout/feed.css';
|
|
@import './layout/scaffold.css';
|
|
|
|
/* Foundation components */
|
|
@import './components/icon.css';
|
|
@import './components/shape.css';
|
|
@import './components/color.css';
|
|
|
|
/* Actions and communication */
|
|
@import './components/loading.css';
|
|
@import './components/tooltip.css';
|
|
@import './components/badge.css';
|
|
@import './components/button.css';
|
|
@import './components/group.css';
|
|
@import './components/button-group.css';
|
|
@import './components/split-button.css';
|
|
@import './components/fab.css';
|
|
@import './components/menu-separator.css';
|
|
@import './components/menu-group.css';
|
|
@import './components/menu-item.css';
|
|
@import './components/menu.css';
|
|
@import './components/fab-menu-item.css';
|
|
@import './components/fab-menu.css';
|
|
@import './components/rich-tooltip.css';
|
|
@import './components/toast.css';
|
|
@import './components/progress.css';
|
|
@import './components/alert.css';
|
|
@import './components/stat.css';
|
|
@import './components/empty-state.css';
|
|
|
|
/* Inputs, selection and data */
|
|
@import './components/form.css';
|
|
@import './components/field.css';
|
|
@import './components/input.css';
|
|
@import './components/password.css';
|
|
@import './components/textarea.css';
|
|
@import './components/select.css';
|
|
@import './components/file.css';
|
|
@import './components/selection.css';
|
|
@import './components/checkbox.css';
|
|
@import './components/radio.css';
|
|
@import './components/toggle.css';
|
|
@import './components/chip.css';
|
|
@import './components/chip-set.css';
|
|
@import './components/choices.css';
|
|
@import './components/slider.css';
|
|
@import './components/search.css';
|
|
@import './components/table.css';
|
|
@import './components/sort-header.css';
|
|
@import './components/pagination.css';
|
|
@import './components/datepicker.css';
|
|
@import './components/timepicker.css';
|
|
|
|
/* Containment */
|
|
@import './components/divider.css';
|
|
@import './components/collapse.css';
|
|
@import './components/card.css';
|
|
@import './components/list-item.css';
|
|
@import './components/list.css';
|
|
@import './components/modal.css';
|
|
@import './components/drawer.css';
|
|
@import './components/bottom-sheet.css';
|
|
@import './components/carousel-item.css';
|
|
@import './components/carousel.css';
|
|
@import './components/error-page.css';
|
|
|
|
/* Navigation */
|
|
@import './components/app-bar.css';
|
|
@import './components/toolbar.css';
|
|
@import './components/tabs.css';
|
|
@import './components/navigation-item.css';
|
|
@import './components/navigation-bar.css';
|
|
@import './components/navigation-bar-item.css';
|
|
@import './components/navigation-rail.css';
|
|
@import './components/navigation-rail-item.css';
|
|
@import './components/navigation-rail-section.css';
|
|
@import './components/section-nav.css';
|
|
@import './components/account-menu.css';
|
|
@import './components/theme-toggle.css';
|
|
@import './components/scheme-picker.css';
|