<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Andréia Bohner</title>
    <description>The latest articles on Forem by Andréia Bohner (@andreiabohner).</description>
    <link>https://forem.com/andreiabohner</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3994%2Ffb1b4e1b-02c2-4a70-8d90-b4a91a8b5483.jpg</url>
      <title>Forem: Andréia Bohner</title>
      <link>https://forem.com/andreiabohner</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/andreiabohner"/>
    <language>en</language>
    <item>
      <title>Arctic Nord Theme for Filament PHP</title>
      <dc:creator>Andréia Bohner</dc:creator>
      <pubDate>Sun, 09 Feb 2025 17:47:20 +0000</pubDate>
      <link>https://forem.com/andreiabohner/arctic-nord-theme-for-filament-php-36fo</link>
      <guid>https://forem.com/andreiabohner/arctic-nord-theme-for-filament-php-36fo</guid>
      <description>&lt;p&gt;The Filament PHP ecosystem just got a fresh new look! I'm excited to introduce the &lt;a href="https://github.com/andreia/filament-nord-theme" rel="noopener noreferrer"&gt;Nord Theme for Filament PHP&lt;/a&gt;. This beautifully designed theme features both light and dark modes and is inspired by the popular &lt;a href="https://www.nordtheme.com/docs/colors-and-palettes" rel="noopener noreferrer"&gt;Nord color palette&lt;/a&gt;.&lt;br&gt;
If you're looking for a clean, stylish, and visually soothing user interface for your Filament applications, this theme is your perfect match! ❄️ ⛄&lt;/p&gt;
&lt;h2&gt;
  
  
  Why the Nord Theme?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.nordtheme.com/" rel="noopener noreferrer"&gt;Nord&lt;/a&gt; is a beloved color palette derived from the icy blues, snowy tones of the Arctic and the mesmerizing hues of the Aurora Borealis. Designed for optimal readability and minimal eye strain, it blends Nordic aesthetics with cool, calming, and balanced dimmed pastel tones making it a ideal choice for a modern and elegant UI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7073wzsic57bkxawe0mm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7073wzsic57bkxawe0mm.jpg" alt="Nord theme palettes" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the Filament Nord theme custom gray palette used to match the Nord's Polar Night and Snow Storm colors:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2wdh857a5ggct1qla88.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2wdh857a5ggct1qla88.png" alt="Custom Filament gray palette" width="800" height="220"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;Getting started with the Filament Nord Theme is simple. You can install it via Composer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer require andreia/filament-nord-theme
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To install the theme's required JS libraries (the forms, typography TailwindCSS plugins, and also postcss and autoprefixer) and create the postcss.config.js file if it not exists yet, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan filament-nord-theme:install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add a new item to the input array of your &lt;code&gt;vite.config.js&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="s1"&gt;'vendor/andreia/filament-nord-theme/resources/css/theme.css'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Compile the assets with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Register the plugin on your panel (e.g. &lt;code&gt;/app/Providers/Filament/AdminPanelProvider.php&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Andreia\FilamentNordTheme\FilamentNordThemePlugin&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nv"&gt;$panel&lt;/span&gt;
  &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;plugin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;FilamentNordThemePlugin&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;make&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You are all set!&lt;/p&gt;

&lt;h2&gt;
  
  
  Theme Preview
&lt;/h2&gt;

&lt;p&gt;Here's a preview of what the &lt;a href="https://github.com/filamentphp/demo" rel="noopener noreferrer"&gt;Filament demo project&lt;/a&gt; looks like with the Nord Theme applied:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdzxd621bryarem8hjpd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdzxd621bryarem8hjpd.jpg" title="Click to watch the theme preview" alt="Filament Nord Theme preview" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Screenshots
&lt;/h2&gt;

&lt;p&gt;Every detail is carefully thought out to create a eye-comfortable, and clean feeling.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9k21h3pwo8v5nglihfr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9k21h3pwo8v5nglihfr.png" alt="Rounded corners dashboard widgets dark" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0nq9kpwas0ni4h1990d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0nq9kpwas0ni4h1990d.png" alt="Rounded corners dashboard widgets light" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4rwwe05qe1u3cy9xdany.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4rwwe05qe1u3cy9xdany.png" alt="Rounded corners buttons light" width="800" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7xvas5ejz8mxklhk7u23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7xvas5ejz8mxklhk7u23.png" alt="Rounded corners button and widgets light" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can check more screenshots &lt;a href="https://andreia.github.io/blog/2025-02-09/filament-php-nord-theme/" rel="noopener noreferrer"&gt;on my blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Give it a try and let me know your thoughts! You can find the project on &lt;a href="https://github.com/andreia/filament-nord-theme" rel="noopener noreferrer"&gt;GitHub: Filament Nord Theme&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy theming! 💛 ✨&lt;/p&gt;

</description>
      <category>filament</category>
      <category>php</category>
      <category>nord</category>
      <category>theme</category>
    </item>
    <item>
      <title>Filament PHP Blade UI Components Visually Explained</title>
      <dc:creator>Andréia Bohner</dc:creator>
      <pubDate>Tue, 18 Jun 2024 16:52:23 +0000</pubDate>
      <link>https://forem.com/andreiabohner/filament-php-blade-ui-components-visually-explained-3941</link>
      <guid>https://forem.com/andreiabohner/filament-php-blade-ui-components-visually-explained-3941</guid>
      <description>&lt;p&gt;In addition to the awesome full-stack components that &lt;a href="https://filamentphp.com/docs/" rel="noopener noreferrer"&gt;Filament PHP&lt;/a&gt; provides, some &lt;a href="https://filamentphp.com/docs/3.x/support/blade-components/overview" rel="noopener noreferrer"&gt;UI components&lt;/a&gt; are also available to be used independently on your Blade view files.&lt;/p&gt;

&lt;p&gt;I've been working on creating references to easily visualize these Blade UI components. &lt;br&gt;
You can check them all out on my blog: &lt;a href="https://andreia.github.io/blog/2024-06-15/filament-php-blade-ui-components-visually-explained/" rel="noopener noreferrer"&gt;https://andreia.github.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h20vq2e1pt90hs66be2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h20vq2e1pt90hs66be2.jpg" alt="Filament PHP Blade UI Components Overview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope they've come in handy for your projects! :)&lt;/p&gt;

</description>
      <category>filament</category>
      <category>php</category>
      <category>blade</category>
      <category>components</category>
    </item>
    <item>
      <title>How to Extend a Filament Resource</title>
      <dc:creator>Andréia Bohner</dc:creator>
      <pubDate>Sun, 07 Apr 2024 22:00:00 +0000</pubDate>
      <link>https://forem.com/andreiabohner/how-to-extend-a-filament-resource-2cl1</link>
      <guid>https://forem.com/andreiabohner/how-to-extend-a-filament-resource-2cl1</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In this article, we'll walk through how to extend a plugin resource, as well as other Filament resources.&lt;/p&gt;

&lt;h2&gt;
  
  
  Checking the Plugin's Configuration
&lt;/h2&gt;

&lt;p&gt;Let's say we installed a plugin that registers resources, for example, the &lt;a href="https://github.com/TappNetwork/filament-authentication-log/tree/main/src/Resources"&gt;Filament Authentication Log&lt;/a&gt;, and we want to extend the available &lt;code&gt;AuthenticationLogResource.php&lt;/code&gt; resource to add some customizations in our application.&lt;/p&gt;

&lt;p&gt;To start with, we need to check whether the plugin enables us to configure its resources. We can take a look at the &lt;a href="https://github.com/TappNetwork/filament-authentication-log/blob/main/config/filament-authentication-log.php"&gt;plugin's config file&lt;/a&gt; to see if we can locate a "resources" key or something similar that specifies the original resource(s):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// config/filament-authentication-log.php&lt;/span&gt;

&lt;span class="s1"&gt;'resources'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;'AutenticationLogResource'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;\Tapp\FilamentAuthenticationLog\Resources\AuthenticationLogResource&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And on the &lt;a href="https://github.com/TappNetwork/filament-authentication-log/blob/main/src/FilamentAuthenticationLogPlugin.php"&gt;plugin's class&lt;/a&gt; (the class used to interact with a panel configuration file), we can check that the resources registered are the ones defined on the config file:&lt;/p&gt;

&lt;p&gt;e.g.: &lt;a href="https://github.com/TappNetwork/filament-authentication-log/blob/main/src/FilamentAuthenticationLogPlugin.php"&gt;/src/FilamentAuthenticationLogPlugin.php&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;register&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Panel&lt;/span&gt; &lt;span class="nv"&gt;$panel&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$panel&lt;/span&gt;
        &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;resources&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'filament-authentication-log.resources'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now that we have confirmed that the plugin provides this configuration, let's extend the resource!&lt;/p&gt;

&lt;h2&gt;
  
  
  Extending the Plugin Resource
&lt;/h2&gt;

&lt;p&gt;We are ready to write our own &lt;code&gt;AuthenticationLogResource.php&lt;/code&gt; resource that extends the plugin's resource! We can write it in our project's Filament resource directory (&lt;code&gt;app/Filament/Resources&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;App\Filament\Resources&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Tapp\FilamentAuthenticationLog\Resources\AuthenticationLogResource&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nc"&gt;BaseAuthenticationLogResource&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AuthenticationLogResource&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;BaseAuthenticationLogResource&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// your custom code here&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you haven't yet, you can now publish the plugin's configuration file so we would be able to instruct Filament to use our custom resource. Below is an example using our local &lt;code&gt;App\Filament\Resources\AuthenticationLogResource&lt;/code&gt; class we've just written in the project's &lt;code&gt;config/filament-authentication-log.php&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="s1"&gt;'resources'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;'AutenticationLogResource'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;\App\Filament\Resources\AuthenticationLogResource&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also, we can add the respective &lt;a href="https://filamentphp.com/docs/3.x/panels/pages"&gt;create, edit, list, and view pages&lt;/a&gt; (if they are used) on our local project. Here's an example for the list page:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;App\Filament\Resources\AuthenticationLogResource\Pages&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Filament\Resources\Pages\ListRecords&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ListAuthenticationLogs&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;ListRecords&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There's just one more thing left: in the project's custom resource class, we need to override the &lt;code&gt;getPages()&lt;/code&gt; method to use our page instead of the plugin's:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;App\Filament\Resources\AuthenticationLogResource\Pages&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;getPages&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="kt"&gt;array&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'index'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;Pages\ListAuthenticationLogs&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Great! Our new resource class should now be used.&lt;/p&gt;

&lt;p&gt;This same technique can be applied to extend other Filament resources as well.&lt;/p&gt;

&lt;p&gt;Feel free to ping me here or on my &lt;a href="https://github.com/andreia/andreia"&gt;social networks&lt;/a&gt; if you have any questions, suggestions, or are using this technique. I'd love to hear from you! :)&lt;/p&gt;

&lt;p&gt;Happy coding and see you next time!&lt;/p&gt;

</description>
      <category>filament</category>
      <category>php</category>
      <category>resources</category>
    </item>
    <item>
      <title>Tiny Tip: Open a Wire Elements Modal from a Filament table action</title>
      <dc:creator>Andréia Bohner</dc:creator>
      <pubDate>Fri, 21 Jul 2023 16:42:28 +0000</pubDate>
      <link>https://forem.com/andreiabohner/tiny-tip-open-a-wire-elements-modal-from-a-filament-table-action-1h4n</link>
      <guid>https://forem.com/andreiabohner/tiny-tip-open-a-wire-elements-modal-from-a-filament-table-action-1h4n</guid>
      <description>&lt;p&gt;You can open a Wire Elements Modal from an action using &lt;code&gt;$livewire&lt;/code&gt; (the current Livewire component instance) to emit the openModal event, like so:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LA4zfwjT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5281nife8fx9qco98sn7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LA4zfwjT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5281nife8fx9qco98sn7.png" alt="Code to open a wire element modal from a Filament action" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://filamentphp.com/tricks/open-a-wire-elements-modal-from-a-filament-table-action"&gt;https://filamentphp.com/tricks/open-a-wire-elements-modal-from-a-filament-table-action&lt;/a&gt;&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>filament</category>
      <category>modal</category>
      <category>wireelements</category>
    </item>
    <item>
      <title>Cheat Sheet for Uppy File Uploader</title>
      <dc:creator>Andréia Bohner</dc:creator>
      <pubDate>Mon, 17 Jul 2023 02:46:22 +0000</pubDate>
      <link>https://forem.com/andreiabohner/cheat-sheet-for-uppy-file-uploader-12a2</link>
      <guid>https://forem.com/andreiabohner/cheat-sheet-for-uppy-file-uploader-12a2</guid>
      <description>&lt;p&gt;&lt;a href="https://uppy.io/"&gt;Uppy&lt;/a&gt; is a complete open source JavaScript uploader library with several features: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fetch files from local or several remote sources, &lt;/li&gt;
&lt;li&gt;Upload files using S3, S3 multipart, XHR for regular uploads to a HTTP server, Tus for resumable uploads, Transloadit for all kinds of processing, &lt;/li&gt;
&lt;li&gt;Resumable file uploads,&lt;/li&gt;
&lt;li&gt;Complete User Interface, &lt;/li&gt;
&lt;li&gt;Translated to several languages,&lt;/li&gt;
&lt;li&gt;File editing, compression, thumbnail generation, and more! &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This cheat sheet compiles all the Uppy functionalities so you can use it as a handy quick reference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download for free: &lt;a href="https://github.com/andreia/uppy-cheat-sheet/blob/main/uppy_cheat_sheet_v1.pdf"&gt;https://github.com/andreia/uppy-cheat-sheet/blob/main/uppy_cheat_sheet_v1.pdf&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And if you use the PHP Laravel Framework and you're looking for Blade components for Uppy or if you looking to uploading files directly to S3 using multipart upload we've got you covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/TappNetwork/laravel-uppy-s3-multipart-upload"&gt;Package for Multipart Uploads using Laravel, AWS S3, and Uppy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/TappNetwork/blade-uppy"&gt;Blade Uppy components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PHP uploader classes coming soon :)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>uppy</category>
      <category>cheatsheet</category>
      <category>uploader</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Linux Cheat Sheet: Save the command output to a file</title>
      <dc:creator>Andréia Bohner</dc:creator>
      <pubDate>Sun, 13 Mar 2022 01:38:58 +0000</pubDate>
      <link>https://forem.com/andreiabohner/linux-cheat-sheet-save-the-command-output-to-a-file-4l9i</link>
      <guid>https://forem.com/andreiabohner/linux-cheat-sheet-save-the-command-output-to-a-file-4l9i</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A1Kx8r_4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vfljqodnnz0jyvar301d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A1Kx8r_4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vfljqodnnz0jyvar301d.jpg" alt="Save the command output to a file" width="880" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/andreia/cheat-sheets/blob/master/linux/linux-cheat-sheet-command-output-to-file.jpg"&gt;Full size&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>cheatsheet</category>
      <category>commandline</category>
      <category>cli</category>
    </item>
    <item>
      <title>Quick Tip: 302, 303, or 307? Which HTTP response status code should be used to redirect?</title>
      <dc:creator>Andréia Bohner</dc:creator>
      <pubDate>Mon, 09 Aug 2021 01:42:04 +0000</pubDate>
      <link>https://forem.com/andreiabohner/quick-tip-302-303-or-307-which-http-response-status-code-should-be-used-to-redirect-5ck0</link>
      <guid>https://forem.com/andreiabohner/quick-tip-302-303-or-307-which-http-response-status-code-should-be-used-to-redirect-5ck0</guid>
      <description>&lt;p&gt;Quick Tip on Redirecting:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3YyHwSEH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y4ki1iipacz3gwgh21tf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3YyHwSEH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y4ki1iipacz3gwgh21tf.png" alt="Which HTTP response status code should be used to redirect?"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reference:&lt;br&gt;
&lt;a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#:%7E:text=Note:%20RFC%201945%20and,expected%20of%20the%20client"&gt;https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#:~:text=Note:%20RFC%201945%20and,expected%20of%20the%20client&lt;/a&gt;&lt;/p&gt;

</description>
      <category>temporaryredirect</category>
      <category>httpstatus</category>
      <category>redirect</category>
    </item>
    <item>
      <title>OMGit! Git Commands Quick Reference</title>
      <dc:creator>Andréia Bohner</dc:creator>
      <pubDate>Sat, 03 Apr 2021 22:57:18 +0000</pubDate>
      <link>https://forem.com/andreiabohner/omgit-git-commands-quick-reference-1a2c</link>
      <guid>https://forem.com/andreiabohner/omgit-git-commands-quick-reference-1a2c</guid>
      <description>&lt;p&gt;I created a repository dedicated to collect Git commands that I find useful along the way of my development adventures:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/andreia/OMGit"&gt;https://github.com/andreia/OMGit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--57RYSVez--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rzp6g547n6c3r2s9qs1j.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--57RYSVez--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rzp6g547n6c3r2s9qs1j.gif" alt="Adventure Time!"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you find something useful on it :)&lt;/p&gt;

&lt;p&gt;A command I recently learned that you can use to time travel on your local Git repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;reset&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;hard&lt;/span&gt; &lt;span class="no"&gt;HEAD&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mf"&gt;10.&lt;/span&gt;&lt;span class="n"&gt;minutes&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ago&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AcuWlUqa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tk5v89ow8g9y8rxk86ki.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AcuWlUqa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tk5v89ow8g9y8rxk86ki.jpg" alt="Time travel with Git"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have a Git command to share I would love to hear about it!&lt;/p&gt;

</description>
      <category>git</category>
      <category>reference</category>
      <category>tips</category>
      <category>commandline</category>
    </item>
  </channel>
</rss>
