OpenAuth_views/src/pages/User/Pages/BoxItem.svelte

102 lines
2.0 KiB
Svelte

<script>
import { slide } from "svelte/transition";
import NextIcon from "./NextIcon.svelte";
export let name = "";
export let value = "";
export let noOpen = false;
export let open = false;
export let highlight = false;
function toggleOpen(ev) {}
</script>
<style>
.root:hover {
background-color: rgba(128, 128, 128, 0.1);
}
.boxitem-container {
display: flex;
flex-direction: row;
padding: 1rem;
}
.values {
flex-grow: 1;
display: flex;
flex-direction: column;
max-width: calc(100% - var(--default-font-size) - 16px);
}
.values > div:first-child {
transform-origin: left;
transform: scale(0.95);
margin-right: 24px;
font-weight: 500;
}
/* .values > div:nth-child(2) {
color: black;
} */
:global(.next-icon) {
margin: auto 8px auto 8px;
height: var(--default-font-size);
min-width: var(--default-font-size);
fill: var(--on-background);
}
.body {
box-sizing: border-box;
padding: 0.1px;
margin-top: 2rem;
padding-bottom: 1rem;
}
@media (min-width: 45rem) {
.values {
flex-direction: row;
}
.values > div:first-child {
transform: unset;
flex-basis: 120px;
min-width: 120px;
}
}
.highlight-element {
background-color: var(--success);
/* #7bff003b */
}
</style>
<div class="root">
<div
class="boxitem-container"
on:click={() => (open = !open)}
class:highlight-element={highlight}>
<div class="values">
<div>{name}</div>
<div>
<slot name="value">
{#if Array.isArray(value)}
{#each value as v, i}
{v}
{#if i < value.length - 1}<br />{/if}
{/each}
{:else}{value}{/if}
</slot>
</div>
</div>
{#if !noOpen}
<NextIcon class="next-icon" rotation={open ? -90 : 90} />
{/if}
</div>
{#if open && !noOpen}
<div class="body" transition:slide>
<slot />
</div>
{/if}
</div>