primevue-mirror/components/landing/HeroSection.vue

291 lines
15 KiB
Vue
Raw Normal View History

2022-09-06 13:53:29 +00:00
<template>
2023-10-10 08:38:49 +00:00
<section class="landing-hero py-8 px-5 lg:px-8">
2023-10-10 18:19:29 +00:00
<div class="flex flex-wrap">
2023-10-12 13:20:17 +00:00
<div class="w-full xl:w-6 flex flex-column justify-content-center lg:pr-8 align-items-center xl:align-items-stretch">
2023-12-30 07:21:39 +00:00
<a
href="https://tailwind.primevue.org"
target="_blank"
rel="noopener noreferrer"
style="border-radius: 50px"
2024-03-29 08:04:04 +00:00
class="bg-gray-900 text-white border-1 border-gray-900 py-1 px-3 xl:align-self-start font-semibold transition-colors transition-duration-300 text-base sm:text-lg"
>🎉 Introducing the Tailwind Presets <i class="pi pi-arrow-right text-sm"></i
2023-12-30 07:21:39 +00:00
></a>
2023-12-31 19:21:00 +00:00
<h1 class="text-6xl font-bold text-center xl:text-left">The Next-Gen UI Suite for <span class="font-bold text-primary">Vue.js</span></h1>
2023-10-13 18:58:51 +00:00
<p class="section-detail xl:text-left text-center px-0 mt-0 mb-5">
2023-10-13 22:09:30 +00:00
Elevate your web applications with PrimeVue's comprehensive suite of customizable, feature-rich UI components. With PrimeVue, turning your development vision into reality has never been easier.
2023-10-13 18:58:51 +00:00
</p>
2023-10-12 09:58:41 +00:00
<div class="flex align-items-center gap-3">
2024-01-24 12:49:48 +00:00
<PrimeVueNuxtLink to="/setup" class="linkbox active font-semibold py-3 px-4">
2023-10-13 18:58:51 +00:00
<span>Get Started</span>
<i class="pi pi-arrow-right ml-3"></i>
</PrimeVueNuxtLink>
2023-10-12 09:58:41 +00:00
<a href="https://github.com/primefaces/primevue" target="_blank" rel="noopener noreferrer" class="linkbox font-semibold py-3 px-4">
<span>Give a Star</span>
<i class="pi pi-star-fill ml-3 text-yellow-500"></i>
</a>
2022-09-06 13:53:29 +00:00
</div>
2023-10-10 08:38:49 +00:00
</div>
<div class="w-full xl:w-6 pt-7 xl:pt-0 hidden md:block">
<div class="flex">
<div class="flex flex-column w-6 gap-5 pt-8 pr-3">
2023-10-13 23:05:14 +00:00
<div class="box p-4 fadein animation-duration-500">
2023-11-20 18:03:36 +00:00
<div class="flex gap-2">
<div class="w-6rem flex-shrink-0">
2023-11-20 11:36:16 +00:00
<span class="text-secondary font-medium block mb-3">Amount</span>
2023-11-20 18:03:36 +00:00
<InputNumber v-model="value1" mode="currency" currency="USD" locale="en-US" class="w-full" inputClass="w-full" />
2023-11-20 11:36:16 +00:00
</div>
2023-11-20 18:03:36 +00:00
<div class="flex-auto" style="width: 1%">
2023-11-20 11:36:16 +00:00
<span class="text-secondary font-semibold block mb-3">Beneficiary</span>
<Dropdown v-model="user" :options="users" optionLabel="name" placeholder="Select a User" class="w-full">
<template #option="slotProps">
<div class="flex align-items-center gap-2">
<img :alt="slotProps.option.name" :src="`https://primefaces.org/cdn/primevue/images/avatar/${slotProps.option.image}`" width="28" />
<span>{{ slotProps.option.name }}</span>
</div>
</template>
</Dropdown>
</div>
2022-09-06 13:53:29 +00:00
</div>
2023-11-20 11:36:16 +00:00
<span class="text-secondary font-medium block mt-5 mb-3">Account</span>
2023-10-12 09:58:41 +00:00
<div class="flex flex-wrap gap-3">
2023-10-10 08:38:49 +00:00
<div class="flex align-items-center">
2023-12-20 06:41:27 +00:00
<RadioButton v-model="radioValue" inputId="category1" value="S" name="radiovalue" @change="setCategory('S')" />
2023-11-20 11:36:16 +00:00
<label for="category1" class="ml-2 font-medium">Savings</label>
2023-10-10 08:38:49 +00:00
</div>
<div class="flex align-items-center">
2023-12-20 06:41:27 +00:00
<RadioButton v-model="radioValue" inputId="category2" value="C" name="radiovalue" @change="setCategory('C')" />
2023-11-20 11:36:16 +00:00
<label for="category2" class="ml-2 font-medium">Checking</label>
2022-09-06 13:53:29 +00:00
</div>
</div>
2023-11-20 11:36:16 +00:00
<span class="text-secondary font-medium block mt-5 mb-3">Date</span>
2023-12-31 19:21:00 +00:00
<Calendar v-model="dateValue" :showWeek="true" class="w-full" showIcon iconDisplay="input" />
2022-09-06 13:53:29 +00:00
</div>
2023-10-13 23:05:14 +00:00
<div class="box p-4 fadein animation-duration-500">
2023-10-10 08:38:49 +00:00
<Chart type="line" :data="chartData" :options="chartOptions" />
2022-09-06 13:53:29 +00:00
</div>
2023-10-13 23:05:14 +00:00
<div class="box p-4 fadein animation-duration-500">
2023-10-10 08:38:49 +00:00
<div class="flex align-items-center">
<Chip label="Vue" class="mr-2 font-medium" />
2023-10-13 18:58:51 +00:00
<Chip label="Typescript" class="mr-2 font-medium" />
2023-10-10 08:38:49 +00:00
<InputSwitch v-model="switchValue" class="ml-auto"></InputSwitch>
</div>
<div class="mt-5 flex justify-content-center">
<SelectButton v-model="selectButtonValue" :options="selectButtonOptions" optionLabel="name" />
</div>
2023-12-31 19:21:00 +00:00
<div class="mt-5 pt-1 pb-2">
2023-10-10 08:38:49 +00:00
<Slider v-model="rangeValues" range class="w-full" />
2022-09-06 13:53:29 +00:00
</div>
</div>
</div>
2023-10-10 08:38:49 +00:00
<div class="flex flex-column w-6 gap-5 pl-3">
2023-10-13 23:05:14 +00:00
<div class="box p-4 fadein animation-duration-500">
2023-10-10 08:38:49 +00:00
<div class="surface-card mb-4 w-full text-center p-5" style="border-radius: '10px'">
2024-03-29 07:21:34 +00:00
<img src="https://primefaces.org/cdn/primevue/images/landing/air-jordan-noir.png" alt="Watch" class="w-10rem" />
2023-10-10 08:38:49 +00:00
</div>
<div class="flex align-items-center mb-4">
<div class="flex flex-column">
<span class="block font-semibold mb-1">Sneaker</span>
2023-10-10 08:38:49 +00:00
<span class="text-secondary text-sm">Premium Quality</span>
2022-09-06 13:53:29 +00:00
</div>
<span class="font-medium text-xl ml-auto">$990</span>
2022-09-06 13:53:29 +00:00
</div>
2024-03-29 08:04:04 +00:00
<Button label="Add to Cart" icon="pi pi-shopping-cart" severity="secondary" class="w-full"></Button>
2022-09-06 13:53:29 +00:00
</div>
2023-10-13 23:05:14 +00:00
<div class="box p-4 fadein animation-duration-500">
2023-10-10 08:38:49 +00:00
<ul class="list-none p-0 m-0">
2023-10-18 10:15:34 +00:00
<li class="flex align-items-center mb-3">
2023-10-10 08:38:49 +00:00
<span class="mr-3">
2024-03-29 08:04:04 +00:00
<Avatar label="AW" class="w-3rem h-3rem" />
2023-10-10 08:38:49 +00:00
</span>
<div class="flex flex-column">
2023-10-13 18:58:51 +00:00
<span class="font-bold mb-1">Amanda Williams</span>
2024-03-29 08:04:04 +00:00
<span class="text-secondary text-sm">Administrator</span>
2023-10-10 08:38:49 +00:00
</div>
</li>
<li class="flex">
2023-10-13 18:58:51 +00:00
<a class="flex align-items-center p-3 border-round w-full hover:surface-hover transition-colors transition-duration-150 cursor-pointer" style="border-radius: '10px'">
2023-10-10 08:38:49 +00:00
<i class="pi pi-home text-xl mr-3"></i>
<span class="flex flex-column">
<span class="font-bold mb-1">Dashboard</span>
2024-03-29 08:04:04 +00:00
<span class="m-0 text-secondary text-sm">Control Panel</span>
2023-10-10 08:38:49 +00:00
</span>
</a>
</li>
<li class="flex">
2023-10-13 18:58:51 +00:00
<a class="flex align-items-center p-3 border-round w-full hover:surface-hover transition-colors transition-duration-150 cursor-pointer" style="border-radius: '10px'">
2023-10-10 08:38:49 +00:00
<i class="pi pi-envelope text-xl mr-3"></i>
<span class="flex flex-column">
<span class="font-bold mb-1">Inbox</span>
2024-03-29 08:04:04 +00:00
<span class="m-0 text-secondary text-sm">View Messages</span>
2023-10-10 08:38:49 +00:00
</span>
<Badge value="3" class="ml-auto"></Badge>
</a>
</li>
</ul>
</div>
2023-10-13 23:05:14 +00:00
<div class="box p-4 fadein animation-duration-500">
2023-12-31 19:21:00 +00:00
<div class="flex justify-content-between align-items-center mb-5">
<span class="inline-flex align-items-center">
<Checkbox id="cbox" v-model="checked" :binary="true" />
<label for="cbox" class="ml-2">Confirm</label>
</span>
<SplitButton
label="Save"
icon="pi pi-plus"
:model="splitButtonItems"
outlined
:pt="{
button: {
root: 'p-2'
},
menuButton: {
width: 'auto',
root: 'p-2'
},
menu: {
root: {
2024-01-12 07:59:36 +00:00
style: 'width: 10rem; min-width: auto'
},
action: 'p-2'
2023-12-31 19:21:00 +00:00
}
}"
/>
</div>
2023-10-10 08:38:49 +00:00
<TabMenu v-model:activeIndex="activeTabIndex" :model="items" />
</div>
</div>
2022-09-06 13:53:29 +00:00
</div>
</div>
2023-10-10 18:19:29 +00:00
</div>
2022-09-06 13:53:29 +00:00
</section>
</template>
<script>
2023-10-13 20:22:26 +00:00
import EventBus from '@/layouts/AppEventBus';
2023-10-10 08:38:49 +00:00
import { NodeService } from '@/service/NodeService';
2023-03-24 12:54:11 +00:00
2022-09-06 13:53:29 +00:00
export default {
2024-03-29 07:44:47 +00:00
redrawListener: null,
2022-09-06 13:53:29 +00:00
data() {
return {
2023-11-20 11:36:16 +00:00
value1: 24,
2023-10-10 08:38:49 +00:00
category: 'C',
2023-10-13 20:22:26 +00:00
chartData: {},
chartOptions: {},
2023-10-10 08:38:49 +00:00
pbValue1: 15,
pbValue2: 85,
pbValue3: 50,
pbValue4: 75,
pbValue5: 60,
activeTabIndex: 0,
2023-11-20 11:36:16 +00:00
radioValue: 'S',
2023-10-10 08:38:49 +00:00
nodes: null,
switchValue: true,
selectButtonValue: { name: 'Styled', value: 1 },
dateValue: null,
rangeValues: [20, 80],
2023-12-31 19:21:00 +00:00
checked: false,
splitButtonItems: [
{
label: 'Update',
icon: 'pi pi-refresh'
},
{
label: 'Delete',
icon: 'pi pi-times'
}
],
2023-10-10 08:38:49 +00:00
items: [
{ label: 'Home', icon: 'pi pi-fw pi-home' },
2023-12-31 19:21:00 +00:00
{ label: 'Inbox', icon: 'pi pi-fw pi-inbox' }
2023-10-10 08:38:49 +00:00
],
selectButtonOptions: [
{ name: 'Styled', value: 1 },
{ name: 'Unstyled', value: 2 }
2023-11-20 11:36:16 +00:00
],
user: null,
users: [
{ name: 'Amy Elsner', image: 'amyelsner.png' },
{ name: 'Bernardo Dominic', image: 'bernardodominic.png' },
{ name: 'Onyama Limba', image: 'onyamalimba.png' }
2023-10-10 08:38:49 +00:00
]
2022-09-14 14:26:41 +00:00
};
2022-09-06 13:53:29 +00:00
},
2023-10-13 20:22:26 +00:00
beforeUnmount() {
2024-03-29 07:44:47 +00:00
EventBus.off('dark-mode-toggle-complete', this.redrawListener);
EventBus.off('theme-palette-change', this.redrawListener);
2023-10-13 20:22:26 +00:00
},
2022-09-06 13:53:29 +00:00
mounted() {
2023-10-13 20:22:26 +00:00
this.chartData = this.setChartData();
this.chartOptions = this.setChartOptions();
2024-03-29 07:44:47 +00:00
this.redrawListener = () => {
this.chartData = this.setChartData();
2023-10-13 20:22:26 +00:00
this.chartOptions = this.setChartOptions();
};
2024-03-29 07:44:47 +00:00
EventBus.on('dark-mode-toggle-complete', this.redrawListener);
EventBus.on('theme-palette-change', this.redrawListener);
2023-10-13 20:22:26 +00:00
2023-10-10 08:38:49 +00:00
NodeService.getTreeNodes().then((data) => (this.nodes = data));
2022-09-06 13:53:29 +00:00
},
methods: {
2023-10-10 08:38:49 +00:00
setCategory(category) {
this.category = category;
2023-10-13 20:22:26 +00:00
},
setChartData() {
2024-03-29 07:44:47 +00:00
const documentStyle = getComputedStyle(document.documentElement);
const primaryColor = documentStyle.getPropertyValue('--primary-color');
2023-10-13 20:22:26 +00:00
return {
labels: ['Q1', 'Q2', 'Q3', 'Q4'],
datasets: [
{
label: 'Annual Income',
data: [40, 59, 40, 50, 56],
fill: true,
2024-03-29 07:44:47 +00:00
borderColor: primaryColor,
2023-10-13 20:22:26 +00:00
tension: 0.4,
2024-03-29 07:44:47 +00:00
backgroundColor: `color-mix(in srgb, ${primaryColor}, transparent 80%)`
2023-10-13 20:22:26 +00:00
}
]
};
},
setChartOptions() {
const documentStyle = getComputedStyle(document.documentElement);
const textColorSecondary = documentStyle.getPropertyValue('--text-secondary-color');
const surfaceBorder = documentStyle.getPropertyValue('--border-color');
2023-10-13 20:22:26 +00:00
return {
plugins: {
legend: {
2023-10-18 10:15:34 +00:00
display: false
2023-10-13 20:22:26 +00:00
}
},
scales: {
x: {
ticks: {
color: textColorSecondary
},
grid: {
color: surfaceBorder
}
},
y: {
beginAtZero: true,
ticks: {
color: textColorSecondary
},
min: 0,
max: 100,
grid: {
color: surfaceBorder
}
}
}
};
2022-09-06 13:53:29 +00:00
}
}
2022-09-14 14:26:41 +00:00
};
</script>