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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>To add to the <code>nil</code> issue: I can have a <code>nil</code> as the default value for <code>:map</code>, but not as a new <code>nil</code> in runtime assignment. So it does not actually eliminate the need of the <code>nil</code> checks in templates. Also unlike <code>[]</code>, an empty map <code>%{}</code> is hard to be used as a default value because the way map matching work.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="247462" 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/surface-a-component-based-library-for-phoenix-liveview/27671/214">Post #213</a>
	                </div>
	            </div>
              <div id="likers-container-247462" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="247462"
                     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 #213"></div>
  </section>
</div>
    <div class="postbit" id="252942" data-post-id="252942">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="bartblast" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bartblast/120/17647_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  bartblast
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Hologram</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Another option is to use context API to avoid property drilling or make some of the subcomponents stateful and manage their own state (instead of passing the data downstream from parent components).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="252942" 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/surface-a-component-based-library-for-phoenix-liveview/27671/215">Post #214</a>
	                </div>
	            </div>
              <div id="likers-container-252942" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="252942"
                     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 #214"></div>
  </section>
</div>
    <div class="postbit" id="260508" data-post-id="260508">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="msaraiva" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/msaraiva/120/1214_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  msaraiva
                    <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 class="user-title">
									<span>Broadway Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Surface v0.8 has been released!</p>
<p>For details on what’s new, take a look at our new <a href="https://surface-ui.org/blog/what-s-new-in-surface-0-8" rel="noopener nofollow ugc">blog post</a>.</p>
<p>Along with this new release, we’re also activating our Twitter account so if you want to keep updated with the latest news on Surface, follow <a href="https://twitter.com/surfaceui" rel="noopener nofollow ugc">@SurfaceUI</a>.</p>
<p>Some <code>v0.8</code> highlights:</p>
<ul>
<li><strong>Scoped CSS</strong> - When defining a component or LiveView, you can now declare its CSS styles directly in the template using <code>&lt;style&gt;</code> or in a colocated <code>.css</code> file. The Surface compiler will treat those styles as scoped styles so any CSS declaration will apply only to the related component.</li>
<li><strong>New context API</strong> - The context API has been extended and fully redesigned to improve ergonomics and make it more friendly for diff tracking. The compiler is able now to detect many cases where the use of contexts might impact performance and suggest one or more alternative approaches to achieve the same goal.</li>
<li><strong>render_sface/1</strong> function - One limitation of using colocated <code>.sface</code> files was that there was no easy way to override <code>render/1</code> to (re)calculate assigns values to be used in the template. With <code>render_sface/1</code> you can now safely implement <code>render/1</code>, do your calculation and keep the external file.</li>
<li><strong>–tailwind</strong> and <strong>–layouts</strong> options for <code>mix surface.init</code>.</li>
<li><strong>catalogue_test/1</strong> macro - One common issue when using the <strong>Surface Catalogue</strong> is that your examples and playgrounds might get easily out-of-sync with the related component due to continuous changes in its API. With the new <code>catalogue_test</code> macro, you can now generate basic tests for all your examples and playgrounds with ease, minimizing the chances of facing this kind of issue.</li>
<li><strong>Enhanced catalogue example API</strong> - We improved the Catalogue’s API by adding a new module called <code>Surface.Catalogue.Examples</code>, which allows users to create multiple examples as function components per module.</li>
</ul>
<p>Full changelog can be found <a href="https://github.com/surface-ui/surface/blob/main/CHANGELOG.md#v080-2022-09-01" rel="noopener nofollow ugc">here</a>.</p>
<p>A <a href="https://github.com/surface-ui/surface/blob/v0.8.0/MIGRATING.md" rel="noopener nofollow ugc">migration guide</a> is also provided with more information about running <code>mix surface.convert</code> to help you migrate your code from <code>v0.7</code> to <code>v0.8</code>.</p>
<p>Happy coding!</p>
<p>-marlus</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="260508" data-batch-url="/posts/batch_likers">
                        18
                      </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/surface-a-component-based-library-for-phoenix-liveview/27671/216">Post #215</a>
	                </div>
	            </div>
              <div id="likers-container-260508" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="260508"
                     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 #215"></div>
  </section>
</div>
    <div class="postbit" id="272770" data-post-id="272770">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="CharlesIrvine" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  CharlesIrvine
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I have been experimenting with LiveView for a while now, but I just discovered Surface. Really phenomenal work!! I am blown away. Thanks!!! It seems like it should be pulled into LiveView wholesale.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="272770" 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/surface-a-component-based-library-for-phoenix-liveview/27671/217">Post #216</a>
	                </div>
	            </div>
              <div id="likers-container-272770" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="272770"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>