-module(docs@views@page_view). -compile([no_auto_import, nowarn_unused_vars]). -export([page_view/2]). -export_type([page_view_props/0]). -type page_view_props() :: {page_view_props, docs@page_route:page_route(), list(binary())}. -spec page_view(sprocket@socket:socket(), page_view_props()) -> {sprocket@socket:socket(), list(sprocket@element:element())}. page_view(Socket, Props) -> {page_view_props, Route, _} = Props, Pages = [{page, <<"Introduction"/utf8>>, introduction}, {page, <<"Components"/utf8>>, components}, {page, <<"Misc."/utf8>>, misc}], sprocket@component:render( Socket, [sprocket@html:html( [sprocket@html@attribute:lang(<<"en"/utf8>>)], [sprocket@html:head( [], [sprocket@html:meta( [sprocket@html@attribute:charset( <<"utf-8"/utf8>> )] ), sprocket@html:meta( [sprocket@html@attribute:name( <<"viewport"/utf8>> ), sprocket@html@attribute:content( <<"width=device-width, initial-scale=1"/utf8>> )] ), sprocket@html:meta( [sprocket@html@attribute:name( <<"description"/utf8>> ), sprocket@html@attribute:content( <<"Sprocket is a framework for building real-time applications in Gleam."/utf8>> )] ), sprocket@html:link( [sprocket@html@attribute:rel( <<"stylesheet"/utf8>> ), sprocket@html@attribute:href( <<"/app.css"/utf8>> )] ), sprocket@html:link( [sprocket@html@attribute:rel( <<"stylesheet"/utf8>> ), sprocket@html@attribute:href( <<"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css"/utf8>> ), sprocket@html@attribute:integrity( <<"sha512-MV7K8+y+gLIBoVD59lQIYicR65iaqukzvf/nwasF0nqhPay5w/9lJmVM2hMDcnK1OnMGCdVK+iQrJ7lzPJQd1w=="/utf8>> ), sprocket@html@attribute:crossorigin( <<"anonymous"/utf8>> ), sprocket@html@attribute:referrerpolicy( <<"no-referrer"/utf8>> )] )] ), sprocket@html:body( [sprocket@html@attribute:class( <<"bg-white dark:bg-gray-900 dark:text-white flex flex-col h-screen"/utf8>> )], [sprocket@html:'div'( [], [sprocket@component:component( fun docs@components@header:header/2, {header_props, [{menu_item, <<"Github"/utf8>>, <<"https://github.com/eliknebel/sprocket"/utf8>>}]} )] ), sprocket@component:component( fun docs@components@responsive_drawer:responsive_drawer/2, {responsive_drawer_props, sprocket@component:component( fun docs@components@sidebar:sidebar/2, {sidebar_props, Pages, Route} ), sprocket@html:'div'( [sprocket@html@attribute:class( <<"container mx-auto px-6"/utf8>> )], [case Route of introduction -> sprocket@component:component( fun docs@components@pages@introduction:introduction_page/2, introduction_page_props ); components -> sprocket@component:component( fun docs@components@pages@components:components_page/2, components_page_props ); misc -> sprocket@component:component( fun docs@components@pages@misc:misc_page/2, misc_page_props ); unknown -> sprocket@component:component( fun docs@components@pages@not_found:not_found_page/2, not_found_page_props ) end] )} )] )] )] ).