entry-wrap.svelte (959B)
1 <script lang="ts"> 2 import { 3 fmt_cl, 4 type IBasisOpt, 5 type IEntryWrap, 6 parse_layer, 7 } from "@radroots/apps-lib"; 8 import type { Snippet } from "svelte"; 9 10 let { 11 basis = undefined, 12 children, 13 }: { 14 basis?: IBasisOpt<IEntryWrap>; 15 children: Snippet; 16 } = $props(); 17 18 const layer = $derived( 19 typeof basis?.layer === `boolean` 20 ? parse_layer(0) 21 : parse_layer(basis?.layer), 22 ); 23 24 const classes_layer = $derived( 25 typeof basis?.layer === `boolean` 26 ? `bg-transparent` 27 : `bg-ly${layer} ${basis?.style_a ? `active:bg-ly${layer}-a` : ``}`, 28 ); 29 </script> 30 31 <button 32 id={basis?.id || null} 33 class={`${fmt_cl(basis?.classes)} relative entry-line-wrap ${!basis?.no_pad ? ` pl-6 pr-4` : ``} h-entry_${basis?.style ? basis.style : `line`} rounded-touch ${classes_layer} el-re`} 34 > 35 {@render children()} 36 </button>