<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="231972" data-post-id="231972">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="alex.lau" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/alex.lau/120/22009_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  alex.lau
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Great work!</p>
<p>BTW, I encountered an error when <code>mix setup</code>. Is the version<code>0.2.1</code> not updated?</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">== Compilation error in file lib/petal_boilerplate_web/live/page_live.ex ==
** (UndefinedFunctionError) function PetalComponents.__using__/1 is undefined or private
    (petal_components 0.2.1) PetalComponents.__using__([])
    lib/petal_boilerplate_web/live/page_live.ex:2: (module)
    (stdlib 3.15.2) erl_eval.erl:685: :erl_eval.do_apply/6
    (elixir 1.12.3) lib/kernel/parallel_compiler.ex:319: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/7
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="231972" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/petal-components-package-a-set-of-tailwind-styled-components-written-in-heex/43633/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-231972" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="231972"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="231979" data-post-id="231979">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="alex.lau" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/alex.lau/120/22009_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  alex.lau
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I forced the version to <code>0.3.2</code> and it passed. But the assets failed:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">19:31:23.673 [info]  Migrations already up
npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@2. I'll try to do my best with it!
npm ERR! code EACCES
npm ERR! syscall open
npm ERR! path /home/xxx/.npm/_cacache/index-v5/0c/ba/3efdcf9368b37769f14ae73c1feb025960f50c09d844da4be8d3e295b485
npm ERR! errno -13
npm ERR! 
npm ERR! Your cache folder contains root-owned files, due to a bug in
npm ERR! previous versions of npm which has since been addressed.
npm ERR! 
npm ERR! To permanently fix this problem, please run:
npm ERR!   sudo chown -R 1001:1001 "/home/xxx/.npm"

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/xxx/.npm/_logs/2021-11-15T11_31_38_208Z-debug.log
** (exit) 243
    (mix 1.12.3) lib/mix/tasks/cmd.ex:64: Mix.Tasks.Cmd.run/1
    (mix 1.12.3) lib/mix/task.ex:394: anonymous fn/3 in Mix.Task.run_task/3
    (mix 1.12.3) lib/mix/task.ex:452: Mix.Task.run_alias/5
    (mix 1.12.3) lib/mix/cli.ex:84: Mix.CLI.run_task/2
    (elixir 1.12.3) lib/code.ex:1261: Code.require_file/2
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="231979" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/petal-components-package-a-set-of-tailwind-styled-components-written-in-heex/43633/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-231979" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="231979"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="232046" data-post-id="232046">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mplatts" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mplatts/120/26552_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mplatts
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks for this.</p>
<p>I updated <code>mix.exs</code> to point to the latest version of <code>petal_components</code> to fix that first issue (will keep that up to date in future).</p>
<p>But I’m not sure about the npm issue - it works fine for me. Maybe try updating node/npm or running that command there in the error message <code>sudo chown -R 1001:1001 "/home/xxx/.npm"</code>.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="232046" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/petal-components-package-a-set-of-tailwind-styled-components-written-in-heex/43633/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-232046" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="232046"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="232052" data-post-id="232052">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mplatts" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mplatts/120/26552_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mplatts
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h1><a name="p-232052-project-update-1" class="anchor" href="#p-232052-project-update-1" aria-label="Heading link" rel="nofollow"></a>Project update:</h1>
<ul>
<li>The dropdown now can utilise <code>Phoenix.Liveview.JS</code> if you don’t want to use Alpine. However, this only works in live views or live components (dead views will need Alpine).</li>
<li>Function components are imported so you don’t need the module anymore - eg <code>&lt;.button&gt;</code> instead of <code>&lt;Button.button&gt;</code></li>
</ul>
<h2><a name="p-232052-new-components-2" class="anchor" href="#p-232052-new-components-2" aria-label="Heading link" rel="nofollow"></a>New components</h2>
<h3><a name="p-232052-form-fields-3" class="anchor" href="#p-232052-form-fields-3" aria-label="Heading link" rel="nofollow"></a>Form fields</h3>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/9/1/91cbce1f74058c146f36067f77b82553d1cc1942.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/91cbce1f74058c146f36067f77b82553d1cc1942" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/9/1/91cbce1f74058c146f36067f77b82553d1cc1942_2_690x412.jpeg" alt="image" data-base62-sha1="kNLSNdJXHEootV08vXtlIv2nF6y" width="690" height="412" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/9/1/91cbce1f74058c146f36067f77b82553d1cc1942_2_690x412.jpeg, https://forum.elixirforum.com/uploads/default/optimized/3X/9/1/91cbce1f74058c146f36067f77b82553d1cc1942_2_1035x618.jpeg 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/9/1/91cbce1f74058c146f36067f77b82553d1cc1942.jpeg 2x" data-dominant-color="FDFCFC"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">1200×718 25.2 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>You can write form fields like this:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">&lt;.form_label form={f} field={:name} /&gt;
&lt;.text_input form={f} field={:name} placeholder="eg. John" /&gt;
&lt;.form_field_error form={f} field={:name} class="mt-1" /&gt;
</code></pre>
<p>Or as one component that includes a label and error automatically:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">&lt;.form_field
  type="text_input"
  form={f}
  field={:name}
  placeholder="eg. John"
/&gt;
</code></pre>
<h3><a name="p-232052-alerts-4" class="anchor" href="#p-232052-alerts-4" aria-label="Heading link" rel="nofollow"></a>Alerts</h3>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/a/4/a434be423158107b817b57c736a1b13d0defd813.png" data-download-href="https://forum.elixirforum.com/uploads/default/a434be423158107b817b57c736a1b13d0defd813" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/a/4/a434be423158107b817b57c736a1b13d0defd813_2_690x226.png" alt="image" data-base62-sha1="nqDj1QLJ4z0QEMBN1e63PGNYnTR" width="690" height="226" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/a/4/a434be423158107b817b57c736a1b13d0defd813_2_690x226.png, https://forum.elixirforum.com/uploads/default/optimized/3X/a/4/a434be423158107b817b57c736a1b13d0defd813_2_1035x339.png 1.5x, https://forum.elixirforum.com/uploads/default/optimized/3X/a/4/a434be423158107b817b57c736a1b13d0defd813_2_1380x452.png 2x" data-dominant-color="F3F5F2"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">2520×828 86.5 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<pre data-code-wrap="elixir"><code class="lang-elixir">&lt;.alert state="success" label="This is a success state" /&gt;
</code></pre>
<h3><a name="p-232052-dropdowns-5" class="anchor" href="#p-232052-dropdowns-5" aria-label="Heading link" rel="nofollow"></a>Dropdowns</h3>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/d/b/db3faa08a1385870a0466d2bc1f6883ba598999e.png" data-download-href="https://forum.elixirforum.com/uploads/default/db3faa08a1385870a0466d2bc1f6883ba598999e" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/d/b/db3faa08a1385870a0466d2bc1f6883ba598999e.png" alt="image" data-base62-sha1="vhyXT3qAMT4q0EjmowAnpBC1ADA" width="302" height="279"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">604×558 21.4 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<pre data-code-wrap="elixir"><code class="lang-elixir">&lt;.dropdown label="Dropdown" js_lib="alpine_js | live_view_js"&gt;
  &lt;.dropdown_menu_item type="button"&gt;
    &lt;Heroicons.Outline.home class="w-5 h-5 text-gray-500" /&gt;
    Button item with icon
  &lt;/.dropdown_menu_item&gt;
  &lt;.dropdown_menu_item type="a" href="/" label="a item" /&gt;
  &lt;.dropdown_menu_item type="live_patch" href="/" label="Live Patch item" /&gt;
  &lt;.dropdown_menu_item type="live_redirect" href="/" label="Live Redirect item" /&gt;
&lt;/.dropdown&gt;
</code></pre>
<h3><a name="p-232052-breadcrumbs-6" class="anchor" href="#p-232052-breadcrumbs-6" aria-label="Heading link" rel="nofollow"></a>Breadcrumbs</h3>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/0/6/0604a1b4c521dd46da8938d0745b4ada31237a2f.png" data-download-href="https://forum.elixirforum.com/uploads/default/0604a1b4c521dd46da8938d0745b4ada31237a2f" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/0/6/0604a1b4c521dd46da8938d0745b4ada31237a2f.png" alt="image" data-base62-sha1="ReMRwEK4s0nHEfOqvY5xIc2Ej5" width="316" height="253"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">632×506 15.3 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<pre data-code-wrap="elixir"><code class="lang-elixir">&lt;.breadcrumbs separator="chevron" links={[
  %{ label: "Link 1", to: "#" },
  %{ label: "Link 2", to: "#", link_type: "live_patch" },
  %{ label: "Link 3", to: "#", link_type: "live_redirect" },
]}/&gt;
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="232052" data-batch-url="/posts/batch_likers">
                        6
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/petal-components-package-a-set-of-tailwind-styled-components-written-in-heex/43633/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-232052" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="232052"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="232766" data-post-id="232766">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mplatts" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mplatts/120/26552_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mplatts
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h1><a name="p-232766-new-version-release-v05-1" class="anchor" href="#p-232766-new-version-release-v05-1" aria-label="Heading link" rel="nofollow"></a>New version release (v0.5)</h1>
<h3><a name="p-232766-new-form-field-types-2" class="anchor" href="#p-232766-new-form-field-types-2" aria-label="Heading link" rel="nofollow"></a>New form field types</h3>
<p>Now every form field type is supported.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">&lt;.email_input form={f} field={:email_input} /&gt;
&lt;.number_input form={f} field={:number_input} /&gt;
&lt;.password_input form={f} field={:password_input} /&gt;
&lt;.search_input form={f} field={:search_input} /&gt;
&lt;.telephone_input form={f} field={:telephone_input} /&gt;
&lt;.url_input form={f} field={:url_input} /&gt;
&lt;.time_input form={f} field={:time_input} /&gt;
&lt;.time_select form={f} field={:time_select} /&gt;
&lt;.datetime_local_input form={f} field={:datetime_local_input} /&gt;
&lt;.datetime_select form={f} field={:datetime_select} /&gt;
&lt;.color_input form={f} field={:color_input} /&gt;
&lt;.file_input form={f} field={:file_input} /&gt;
&lt;.range_input form={f} field={:range_input} /&gt;
</code></pre>
<h3><a name="p-232766-progress-bars-3" class="anchor" href="#p-232766-progress-bars-3" aria-label="Heading link" rel="nofollow"></a>Progress bars</h3>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/6/e/6e2b3922575a8df2daf55d3cf6e0d51f1d928d19.png" data-download-href="https://forum.elixirforum.com/uploads/default/6e2b3922575a8df2daf55d3cf6e0d51f1d928d19" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/6/e/6e2b3922575a8df2daf55d3cf6e0d51f1d928d19.png" alt="image" data-base62-sha1="fIB7S8jQ5iP3HDrk6JLgro5TupX" width="504" height="600"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">617×734 12.1 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<pre data-code-wrap="elixir"><code class="lang-elixir">&lt;.progress color="primary" value={15} max={100} class="max-w-xl" /&gt;
&lt;.progress color="secondary" value={30} max={100} class="max-w-xl" /&gt;
&lt;.progress color="info" value={45} max={100} class="max-w-xl" /&gt;
&lt;.progress color="success" value={60} max={100} class="max-w-xl" /&gt;
&lt;.progress color="warning" value={75} max={100} class="max-w-xl" /&gt;
&lt;.progress color="danger" value={90} max={100} class="max-w-xl" /&gt;
</code></pre>
<h3><a name="p-232766-pagination-4" class="anchor" href="#p-232766-pagination-4" aria-label="Heading link" rel="nofollow"></a>Pagination</h3>
<p>Links can be <code>live_patch</code> or <code>live_redirect</code>. Automatically adds the ellipsis so you can have unlimited pages (inspired by <a href="https://mui.com/components/pagination/#pagination-ranges" rel="noopener nofollow ugc">Material UI</a>).</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/8/5/8545203b6403012bc5237b78dca6246b922d0e78.png" data-download-href="https://forum.elixirforum.com/uploads/default/8545203b6403012bc5237b78dca6246b922d0e78" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/8/5/8545203b6403012bc5237b78dca6246b922d0e78.png" alt="image" data-base62-sha1="j0XBw9ZyhDIYDP00ztkophAHblK" width="409" height="313"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">409×313 7.86 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<pre data-code-wrap="elixir"><code class="lang-elixir">&lt;.pagination link_type="a" class="mb-5" path="/:page" current_page={1} total_pages={10} /&gt;
&lt;.pagination link_type="live_patch" class="mb-5" path="/:page" current_page={5} total_pages={10} /&gt;
&lt;.pagination link_type="live_redirect" class="mb-5" path="/:page" current_page={10} total_pages={10} /&gt;
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="232766" data-batch-url="/posts/batch_likers">
                        11
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/petal-components-package-a-set-of-tailwind-styled-components-written-in-heex/43633/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-232766" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="232766"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="234360" data-post-id="234360">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mplatts" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mplatts/120/26552_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mplatts
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h1><a name="p-234360-new-update-v061-1" class="anchor" href="#p-234360-new-update-v061-1" aria-label="Heading link" rel="nofollow"></a>New update! - v0.6.1</h1>
<h2><a name="p-234360-new-component-modals-2" class="anchor" href="#p-234360-new-component-modals-2" aria-label="Heading link" rel="nofollow"></a>New component: Modals</h2>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/e/7/e76c91e42e0f60996ff82a2e3f61e7ebb113e5c5.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/e76c91e42e0f60996ff82a2e3f61e7ebb113e5c5" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/e/7/e76c91e42e0f60996ff82a2e3f61e7ebb113e5c5.jpeg" alt="image" data-base62-sha1="x1gU94uMqjMY25t9a63A0Pvl5w9" width="690" height="464" data-dominant-color="D1D1D6"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">1200×807 30.7 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<pre data-code-wrap="elixir"><code class="lang-elixir"># Live view

@impl true
def mount(_params, _session, socket) do
  {:ok, assign(socket, :show_modal, false)}
end

@impl true
def handle_params(_params, _uri, socket) do
  case socket.assigns.live_action do
    :index -&gt;
      {:noreply, assign(socket, show_modal: false)}
    :show -&gt;
      {:noreply, assign(socket, show_modal: true)}
  end
end

# This event is emitted by the component and must be catched
@impl true
def handle_event("close_modal", _, socket) do
  {:noreply, push_patch(socket, to: "/index")}
end

@impl true
def render(assigns) do
  ~H"""
  &lt;.button label="Show modal" link_type="live_patch" to="/show" /&gt;

  &lt;%= if @modal do %&gt;
    &lt;.modal max_width="sm | md | lg | xl | 2xl | full" title="Modal"&gt;

      Modal contents goes here

      &lt;div class="gap-5 text-sm"&gt;
        &lt;div class="flex justify-end"&gt;
          &lt;.button label="close" phx-click={PetalComponents.Modal.hide_modal()} /&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/.modal&gt;
  &lt;% end %&gt;
  """
end
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="234360" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/petal-components-package-a-set-of-tailwind-styled-components-written-in-heex/43633/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-234360" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="234360"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="236281" data-post-id="236281">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kip" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kip/120/1440_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kip
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>ex_cldr Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Looks like it might be time to get back to some UI projects after a loooong absence. No more node.js required with Tailwind CSS:</p>
<ul>
<li><a href="https://tailwindcss.com/blog/tailwindcss-v3" rel="nofollow">Tailwind CSS version 3.0</a></li>
<li><a href="https://tailwindcss.com/blog/standalone-cli" rel="nofollow">Tailwind standalone CLI</a></li>
</ul>
<p>Particularly happy to see some support for RTL and LTR layouts!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="236281" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/petal-components-package-a-set-of-tailwind-styled-components-written-in-heex/43633/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-236281" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="236281"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #18"></div>
  </section>
</div>
    <div class="postbit" id="237002" data-post-id="237002">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="werkzeugh" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/werkzeugh/120/22721_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  werkzeugh
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>hi !</p>
<p>thanks for your component library.</p>
<p>FYI: i just mentioned your post in an issue i had with live_view:</p>
<p><a href="https://github.com/phoenixframework/phoenix_live_view/issues/1812" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/phoenixframework/phoenix_live_view/issues/1812</a></p>
<p>i’m just curious, as you spent some time with that:</p>
<p>would you rather like to use</p>
<ul>
<li>dash case consistently ( <code>link-type="live_patch"</code>)</li>
<li>snake_case consistently (<code>phx_click="foo"</code>)</li>
<li>keep mixing snake/dash case  like now</li>
</ul>
<p>?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="237002" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/petal-components-package-a-set-of-tailwind-styled-components-written-in-heex/43633/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-237002" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="237002"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #19"></div>
  </section>
</div>
    <div class="postbit" id="238855" data-post-id="238855">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="nhoban" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/nhoban/120/25078_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  nhoban
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi everyone!</p>
<p>I’m the other developer contributing to Petal. We’re pleased to announce our new docs page has gone live!</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/7/4/74b9156d20706ed648ffeb0cdb765cfa6bcc967d.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/74b9156d20706ed648ffeb0cdb765cfa6bcc967d" title="CleanShot 2022-01-11 at 09.11.21" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/7/4/74b9156d20706ed648ffeb0cdb765cfa6bcc967d_2_690x340.jpeg" alt="CleanShot 2022-01-11 at 09.11.21" data-base62-sha1="gEzVrHR3kAdHtaSLdIA8jYfAZTD" width="690" height="340" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/7/4/74b9156d20706ed648ffeb0cdb765cfa6bcc967d_2_690x340.jpeg, https://forum.elixirforum.com/uploads/default/optimized/3X/7/4/74b9156d20706ed648ffeb0cdb765cfa6bcc967d_2_1035x510.jpeg 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/7/4/74b9156d20706ed648ffeb0cdb765cfa6bcc967d.jpeg 2x" data-dominant-color="1A1E31"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">CleanShot 2022-01-11 at 09.11.21</span><span class="informations">1200×593 24.5 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/3/8/383e98964a566e00c5d5b86934369e06ca15f574.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/383e98964a566e00c5d5b86934369e06ca15f574" title="CleanShot 2022-01-11 at 08.47.30" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/3/8/383e98964a566e00c5d5b86934369e06ca15f574_2_690x341.jpeg" alt="CleanShot 2022-01-11 at 08.47.30" data-base62-sha1="81yQGr34x4kiWn6JNDA9kebH3uc" width="690" height="341" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/3/8/383e98964a566e00c5d5b86934369e06ca15f574_2_690x341.jpeg, https://forum.elixirforum.com/uploads/default/optimized/3X/3/8/383e98964a566e00c5d5b86934369e06ca15f574_2_1035x511.jpeg 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/3/8/383e98964a566e00c5d5b86934369e06ca15f574.jpeg 2x" data-dominant-color="EDEEEE"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">CleanShot 2022-01-11 at 08.47.30</span><span class="informations">1200×594 29.9 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>You can check it out now here: <a href="https://petal.build/" rel="noopener nofollow ugc">petal.build</a></p>
<p>There’s live demo’s of all the components and code snippets you can directly copy and paste into your projects - soon you’ll be able to download the boilerplate (hopefully over the coming week or two). We’d really welcome your feedback on both the new site and boilerplate (when the latter becomes available).</p>
<h2><a name="p-238855-new-update-to-petal-components-v090-1" class="anchor" href="#p-238855-new-update-to-petal-components-v090-1" aria-label="Heading link" rel="nofollow"></a>New update to Petal Components - v0.9.0</h2>
<h3><a name="p-238855-card-2" class="anchor" href="#p-238855-card-2" aria-label="Heading link" rel="nofollow"></a>Card</h3>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/b/8/b858d0df85a4311b7faad3b13b10afc0d2743e36.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/b858d0df85a4311b7faad3b13b10afc0d2743e36" title="CleanShot 2022-01-11 at 08.48.19" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/b/8/b858d0df85a4311b7faad3b13b10afc0d2743e36.jpeg" alt="CleanShot 2022-01-11 at 08.48.19" data-base62-sha1="qiO8MYD8eVZoIIG8k0WLvppXfBI" width="597" height="600" data-dominant-color="C3C2C4"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">CleanShot 2022-01-11 at 08.48.19</span><span class="informations">799×803 38.5 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/5/5/55577c9e7ec3f0aad5d19a3587fa6594c221ad9b.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/55577c9e7ec3f0aad5d19a3587fa6594c221ad9b" title="CleanShot 2022-01-11 at 08.47.54" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/5/5/55577c9e7ec3f0aad5d19a3587fa6594c221ad9b.jpeg" alt="CleanShot 2022-01-11 at 08.47.54" data-base62-sha1="caY1wtMznLBL3upx4WIL86nBZ2z" width="625" height="600" data-dominant-color="CECED0"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">CleanShot 2022-01-11 at 08.47.54</span><span class="informations">789×757 40 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/2/a/2a2525b3dbbc11d0e7c99c14011ae712830cce10.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/2a2525b3dbbc11d0e7c99c14011ae712830cce10" title="CleanShot 2022-01-11 at 08.48.09" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/2/a/2a2525b3dbbc11d0e7c99c14011ae712830cce10.jpeg" alt="CleanShot 2022-01-11 at 08.48.09" data-base62-sha1="60PDLEIa4GPrU9WNac1TGxMzuAo" width="690" height="514" data-dominant-color="C2C2C5"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">CleanShot 2022-01-11 at 08.48.09</span><span class="informations">793×591 24.8 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="238855" data-batch-url="/posts/batch_likers">
                        14
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/petal-components-package-a-set-of-tailwind-styled-components-written-in-heex/43633/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-238855" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="238855"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #20"></div>
  </section>
</div>
    <div class="postbit" id="243618" data-post-id="243618">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="nhoban" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/nhoban/120/25078_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  nhoban
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just deployed Petal Components to Fly, so you can easily refer to our components at a glance:</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://petal-components-demo.fly.dev/">
  <header class="source">

      <a href="https://petal-components-demo.fly.dev/" target="_blank" rel="noopener nofollow ugc">petal-components-demo.fly.dev</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://petal-components-demo.fly.dev/" target="_blank" rel="noopener nofollow ugc">PetalBoilerplate
     · Phoenix Framework</a></h3>



  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>

<p>Here’s a thread we made about deploying to Fly:</p>
<p><a href="https://twitter.com/PetalFramework/status/1492593615457390592?s=20&amp;t=IkcXMHmwzdRp29VXQi1ehQ" class="onebox" target="_blank" rel="noopener nofollow ugc">https://twitter.com/PetalFramework/status/1492593615457390592?s=20&amp;t=IkcXMHmwzdRp29VXQi1ehQ</a></p>
<p>We’ve also added a dark mode toggle to the nav bar in Petal Components so you can seamlessly switch between light/dark mode as you scroll down the page.</p>
<p>You can find full Petal Components documentation at:</p>
<p><a href="https://petal.build/docs" class="inline-onebox" rel="noopener nofollow ugc">Install</a>.</p>
<p>If you have any suggestions for future components you’d use in your projects, we’d love to hear them!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="243618" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/petal-components-package-a-set-of-tailwind-styled-components-written-in-heex/43633/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-243618" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="243618"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #21"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/43633/load_more?page=3">Load more posts (47 remaining)</a>
</div></template></turbo-stream>