Files
speckle-server/packages/frontend-2/components/viewer/layout/Panel.vue
T
Dimitrie Stefanescu 3c15e888be adds a raw data viewer for advanced users (#2296)
* feat(gendo): scaffolding

* feat(gendo): wip

* feat(gendo): wip

* feat(gendo): wip

* feat(gendo): wip

* feat(gendo): wip

* feat(gendo): it's alive

* feat(gendo): wip

* feat(gendo): blobifies responses to make gergo happy

* feat(gendo): ratelimiting + lints

* feat(gendo): prettier fix

* feat(gendo): last fixes

* feat(gendo): clarifications

* feat(gendo): helm base

* feat(dataviewer): raw first pass

* feat(dataviewer): some styling

* feat(dataviewer): objects in new + fixes

* feat(dataviewer): resources support for object cards

* feat(dataviewer): adds selected object support

* feat(dataviewer): removes button from main sidebar, integrates with explorer

* feat(dataviewer): some value handling fixes

* feat(dataviewer): linting fixes

* feat(dataviewer): show raw viewer within Scene Explorer

* feat(dataviewer): Update copy and labels

* feat(dataviewer): Improve row borders and divider

* Apply suggestions from code review

* feat(dataviewer): Make sure arrow doesn't shrink

---------

Co-authored-by: andrewwallacespeckle <139135120+andrewwallacespeckle@users.noreply.github.com>
Co-authored-by: Benjamin Ottensten <benjamin.ottensten@gmail.com>
2024-05-30 14:12:49 +02:00

55 lines
1.5 KiB
Vue

<template>
<div class="bg-foundation rounded-lg overflow-hidden shadow flex flex-col">
<div class="sticky top-0 z-50 flex flex-col bg-foundation">
<div
v-if="!hideClose"
class="absolute top-1.5 sm:top-2 right-0.5 sm:right-0 z-10"
>
<FormButton size="sm" color="secondary" text @click="$emit('close')">
<XMarkIcon class="size-4 sm:size-3 text-primary sm:text-foreground" />
</FormButton>
</div>
<div
v-if="$slots.title"
class="flex items-center py-2 px-3 border-b border-outline-3 dark:border-foundation-2 bg-foundation"
>
<div
class="flex items-center h-full w-full pr-8 font-semibold sm:font-bold text-sm text-primary"
>
<span class="truncate">
<slot name="title"></slot>
</span>
</div>
</div>
</div>
<div
v-if="$slots.actions"
class="flex items-center h-8 gap-2 px-2 relative z-10"
:class="
moveActionsToBottom
? 'order-3 border-t border-outline-3 mt-2'
: 'order-2 shadow-md'
"
>
<slot name="actions"></slot>
</div>
<div :class="moveActionsToBottom ? 'order-2' : 'order-3'">
<slot></slot>
</div>
</div>
</template>
<script setup lang="ts">
import { XMarkIcon } from '@heroicons/vue/24/solid'
defineEmits(['close'])
defineProps({
hideClose: {
type: Boolean,
default: false
},
moveActionsToBottom: {
type: Boolean,
default: false
}
})
</script>