Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 23bcf922ab | |||
| e1ecd23050 | |||
| 2f5b71a3eb | |||
| 22ba8601f3 | |||
| 4a8745b497 | |||
| d5ec7dba67 | |||
| 7c54176132 | |||
| 03ef1236f0 | |||
| 7ac2ba9013 | |||
| 5f951584c7 | |||
| 817ffa0d62 | |||
| 9585f62298 |
@@ -1,5 +1,11 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 4.3.0 (2025-02-26)
|
||||||
|
|
||||||
|
**Implemented New Features and Enhancements**
|
||||||
|
|
||||||
|
- Update PrimeVue version
|
||||||
|
|
||||||
## 4.2.0 (2024-12-09)
|
## 4.2.0 (2024-12-09)
|
||||||
|
|
||||||
**Implemented New Features and Enhancements**
|
**Implemented New Features and Enhancements**
|
||||||
|
|||||||
Generated
+185
-259
File diff suppressed because it is too large
Load Diff
+5
-5
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "sakai-vue",
|
"name": "sakai-vue",
|
||||||
"version": "4.2.0",
|
"version": "4.3.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
@@ -8,15 +8,16 @@
|
|||||||
"lint": "eslint --fix . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore"
|
"lint": "eslint --fix . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@primevue/themes": "^4.2.4",
|
"@primeuix/themes": "^1.0.0",
|
||||||
"chart.js": "3.3.2",
|
"chart.js": "3.3.2",
|
||||||
"primeicons": "^7.0.0",
|
"primeicons": "^7.0.0",
|
||||||
"primevue": "^4.2.4",
|
"primevue": "^4.3.1",
|
||||||
|
"tailwindcss-primeui": "^0.5.0",
|
||||||
"vue": "^3.4.34",
|
"vue": "^3.4.34",
|
||||||
"vue-router": "^4.4.0"
|
"vue-router": "^4.4.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@primevue/auto-import-resolver": "^4.2.4",
|
"@primevue/auto-import-resolver": "^4.3.1",
|
||||||
"@rushstack/eslint-patch": "^1.8.0",
|
"@rushstack/eslint-patch": "^1.8.0",
|
||||||
"@vitejs/plugin-vue": "^5.0.5",
|
"@vitejs/plugin-vue": "^5.0.5",
|
||||||
"@vue/eslint-config-prettier": "^9.0.0",
|
"@vue/eslint-config-prettier": "^9.0.0",
|
||||||
@@ -27,7 +28,6 @@
|
|||||||
"prettier": "^3.2.5",
|
"prettier": "^3.2.5",
|
||||||
"sass": "^1.55.0",
|
"sass": "^1.55.0",
|
||||||
"tailwindcss": "^3.4.6",
|
"tailwindcss": "^3.4.6",
|
||||||
"tailwindcss-primeui": "^0.3.2",
|
|
||||||
"unplugin-vue-components": "^0.27.3",
|
"unplugin-vue-components": "^0.27.3",
|
||||||
"vite": "^5.3.1"
|
"vite": "^5.3.1"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
@use './code.scss';
|
@use './code.scss';
|
||||||
@import './flags/flags.css';
|
@use './flags/flags.css';
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 54 KiB |
@@ -1,6 +1,7 @@
|
|||||||
html {
|
html {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
line-height: 1.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
|
|||||||
@@ -41,7 +41,6 @@
|
|||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
color: var(--text-color-secondary);
|
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
width: 2.5rem;
|
width: 2.5rem;
|
||||||
height: 2.5rem;
|
height: 2.5rem;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/* You can add global styles to this file, and also import other style files */
|
/* You can add global styles to this file, and also import other style files */
|
||||||
@use '@/assets/layout/layout.scss';
|
|
||||||
@use 'primeicons/primeicons.css';
|
@use 'primeicons/primeicons.css';
|
||||||
|
@use '@/assets/tailwind.css';
|
||||||
|
@use '@/assets/layout/layout.scss';
|
||||||
@use '@/assets/demo/demo.scss';
|
@use '@/assets/demo/demo.scss';
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div class="py-6 px-6 mx-0 mt-20 lg:mx-20">
|
<div class="py-6 px-6 mx-0 mt-20 lg:mx-20">
|
||||||
<div class="grid grid-cols-12 gap-4">
|
<div class="grid grid-cols-12 gap-4">
|
||||||
<div class="col-span-12 md:col-span-2">
|
<div class="col-span-12 md:col-span-2">
|
||||||
<a @click="smoothScroll('#home')" class="flex flex-wrap items-center justify-center md:justify-start md:mb-0 mb-4 cursor-pointer">
|
<a class="flex flex-wrap items-center justify-center md:justify-start md:mb-0 mb-4 cursor-pointer">
|
||||||
<svg viewBox="0 0 54 40" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-14 mr-2">
|
<svg viewBox="0 0 54 40" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-14 mr-2">
|
||||||
<path
|
<path
|
||||||
fill-rule="evenodd"
|
fill-rule="evenodd"
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { useLayout } from '@/layout/composables/layout';
|
import { useLayout } from '@/layout/composables/layout';
|
||||||
import { $t, updatePreset, updateSurfacePalette } from '@primevue/themes';
|
import { $t, updatePreset, updateSurfacePalette } from '@primeuix/themes';
|
||||||
import Aura from '@primevue/themes/aura';
|
import Aura from '@primeuix/themes/aura';
|
||||||
import Lara from '@primevue/themes/lara';
|
import Lara from '@primeuix/themes/lara';
|
||||||
|
import Nora from '@primeuix/themes/nora';
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
|
|
||||||
const { layoutConfig, isDarkTheme } = useLayout();
|
const { layoutConfig, isDarkTheme } = useLayout();
|
||||||
|
|
||||||
const presets = {
|
const presets = {
|
||||||
Aura,
|
Aura,
|
||||||
Lara
|
Lara,
|
||||||
|
Nora
|
||||||
};
|
};
|
||||||
const preset = ref(layoutConfig.preset);
|
const preset = ref(layoutConfig.preset);
|
||||||
const presetOptions = ref(Object.keys(presets));
|
const presetOptions = ref(Object.keys(presets));
|
||||||
|
|||||||
+1
-2
@@ -2,13 +2,12 @@ import { createApp } from 'vue';
|
|||||||
import App from './App.vue';
|
import App from './App.vue';
|
||||||
import router from './router';
|
import router from './router';
|
||||||
|
|
||||||
import Aura from '@primevue/themes/aura';
|
import Aura from '@primeuix/themes/aura';
|
||||||
import PrimeVue from 'primevue/config';
|
import PrimeVue from 'primevue/config';
|
||||||
import ConfirmationService from 'primevue/confirmationservice';
|
import ConfirmationService from 'primevue/confirmationservice';
|
||||||
import ToastService from 'primevue/toastservice';
|
import ToastService from 'primevue/toastservice';
|
||||||
|
|
||||||
import '@/assets/styles.scss';
|
import '@/assets/styles.scss';
|
||||||
import '@/assets/tailwind.css';
|
|
||||||
|
|
||||||
const app = createApp(App);
|
const app = createApp(App);
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,87 @@ npm run dev</code></pre>
|
|||||||
CSS variables used in the template derive their values from the PrimeVue styled mode presets, use the files under <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">assets/layout/_variables.scss</span> to customize
|
CSS variables used in the template derive their values from the PrimeVue styled mode presets, use the files under <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">assets/layout/_variables.scss</span> to customize
|
||||||
according to your requirements.
|
according to your requirements.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<div class="font-semibold text-xl mb-4">Add Sakai-Vue to a Nuxt Project</div>
|
||||||
|
<p class="text-lg mb-4">To get started, create a Nuxt project.</p>
|
||||||
|
<pre class="app-code">
|
||||||
|
<code>npx nuxi@latest init sakai-nuxt</code></pre>
|
||||||
|
|
||||||
|
<p class="text-lg mb-4">Add Prime related libraries to the project.</p>
|
||||||
|
<pre class="app-code">
|
||||||
|
<code>npm install primevue @primevue/themes tailwindcss-primeui primeicons
|
||||||
|
npm install --save-dev @primevue/nuxt-module</code></pre>
|
||||||
|
|
||||||
|
<p class="text-lg mb-4">Add PrimeVue-Nuxt module to <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">nuxt.config.js</span></p>
|
||||||
|
<pre class="app-code">
|
||||||
|
<code>modules: [
|
||||||
|
'@primevue/nuxt-module',
|
||||||
|
]</code></pre>
|
||||||
|
|
||||||
|
<p class="text-lg mb-4">Install <a href="https://tailwindcss.com/docs/guides/nuxtjs" class="font-medium text-primary hover:underline">Tailwind CSS</a> with Nuxt using official documentation.</p>
|
||||||
|
|
||||||
|
<p class="text-lg mb-4">
|
||||||
|
Add <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">tailwindcss-primeui</span> package as a plugin to <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">tailwind.config.js</span>
|
||||||
|
</p>
|
||||||
|
<pre class="app-code">
|
||||||
|
<code>plugins: [require('tailwindcss-primeui')]</code></pre>
|
||||||
|
|
||||||
|
<p class="text-lg mb-4">Add PrimeVue to in <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">nuxt.config.js</span></p>
|
||||||
|
<pre class="app-code">
|
||||||
|
<code>import Aura from '@primevue/themes/aura';
|
||||||
|
|
||||||
|
primevue: {
|
||||||
|
options: {
|
||||||
|
theme: {
|
||||||
|
preset: Aura,
|
||||||
|
options: {
|
||||||
|
darkModeSelector: '.app-dark'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}</code></pre>
|
||||||
|
|
||||||
|
<p class="text-lg mb-4">
|
||||||
|
Copy <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">src/assets</span> folder and paste them to <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">assets</span> folder to your Nuxt project.
|
||||||
|
And add to <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">nuxt.config.js</span>
|
||||||
|
</p>
|
||||||
|
<pre class="app-code">
|
||||||
|
<code>css: ['~/assets/tailwind.css', '~/assets/styles.scss']</code></pre>
|
||||||
|
|
||||||
|
<p class="text-lg mb-4">Change <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">app.vue</span></p>
|
||||||
|
<pre class="app-code">
|
||||||
|
<code><template>
|
||||||
|
<NuxtLayout>
|
||||||
|
<NuxtPage />
|
||||||
|
</NuxtLayout>
|
||||||
|
</template></code></pre>
|
||||||
|
|
||||||
|
<p class="text-lg mb-4">Create <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">layouts/default.vue</span> and paste this code:</p>
|
||||||
|
<pre class="app-code">
|
||||||
|
<code><script setup>
|
||||||
|
import AppLayout from './AppLayout.vue';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<AppLayout />
|
||||||
|
</template></code></pre>
|
||||||
|
|
||||||
|
<p class="text-lg mb-4">
|
||||||
|
Create <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">layouts</span> folder and copy <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">src/layout</span> folder and paste them. And then
|
||||||
|
create <span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">composables/use-layout.vue</span> and replace it with
|
||||||
|
<span class="bg-highlight px-2 py-1 rounded-border not-italic text-base">src/layout/composables/layout.js</span>. Then remove this line:
|
||||||
|
</p>
|
||||||
|
<pre class="app-code">
|
||||||
|
<code>import { useLayout } from '@/layout/composables/layout';</code></pre>
|
||||||
|
|
||||||
|
<p class="text-lg mb-4">As a final step, copy the following folders:</p>
|
||||||
|
<ul class="leading-normal list-disc pl-8 text-lg mb-4">
|
||||||
|
<li><span class="text-primary font-medium">public/demo</span> <i class="pi pi-arrow-right !text-sm mr-1"></i> <span class="text-primary font-medium">public</span></li>
|
||||||
|
<li><span class="text-primary font-medium">src/components</span> <i class="pi pi-arrow-right !text-sm mr-1"></i> <span class="text-primary font-medium">components</span></li>
|
||||||
|
<li><span class="text-primary font-medium">src/service</span> <i class="pi pi-arrow-right !text-sm mr-1"></i> <span class="text-primary font-medium">service</span></li>
|
||||||
|
<li><span class="text-primary font-medium">src/views/uikit</span> <i class="pi pi-arrow-right !text-sm mr-1"></i> <span class="text-primary font-medium">pages/uikit</span></li>
|
||||||
|
<li><span class="text-primary font-medium">src/views/pages</span> <i class="pi pi-arrow-right !text-sm mr-1"></i> <span class="text-primary font-medium">pages</span></li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -84,11 +84,11 @@ onBeforeUnmount(() => {
|
|||||||
<div class="font-semibold text-xl mb-4">Avatar</div>
|
<div class="font-semibold text-xl mb-4">Avatar</div>
|
||||||
<div class="font-semibold mb-4">Group</div>
|
<div class="font-semibold mb-4">Group</div>
|
||||||
<AvatarGroup>
|
<AvatarGroup>
|
||||||
<Avatar :image="'/demo/images/avatar/amyelsner.png'" size="large" shape="circle"></Avatar>
|
<Avatar :image="'https://primefaces.org/cdn/primevue/images/avatar/amyelsner.png'" size="large" shape="circle"></Avatar>
|
||||||
<Avatar :image="'/demo/images/avatar/asiyajavayant.png'" size="large" shape="circle"></Avatar>
|
<Avatar :image="'https://primefaces.org/cdn/primevue/images/avatar/asiyajavayant.png'" size="large" shape="circle"></Avatar>
|
||||||
<Avatar :image="'/demo/images/avatar/onyamalimba.png'" size="large" shape="circle"></Avatar>
|
<Avatar :image="'https://primefaces.org/cdn/primevue/images/avatar/onyamalimba.png'" size="large" shape="circle"></Avatar>
|
||||||
<Avatar :image="'/demo/images/avatar/ionibowcher.png'" size="large" shape="circle"></Avatar>
|
<Avatar :image="'https://primefaces.org/cdn/primevue/images/avatar/ionibowcher.png'" size="large" shape="circle"></Avatar>
|
||||||
<Avatar :image="'/demo/images/avatar/xuxuefeng.png'" size="large" shape="circle"></Avatar>
|
<Avatar :image="'https://primefaces.org/cdn/primevue/images/avatar/xuxuefeng.png'" size="large" shape="circle"></Avatar>
|
||||||
<Avatar label="+2" shape="circle" size="large" :style="{ 'background-color': '#9c27b0', color: '#ffffff' }"></Avatar>
|
<Avatar label="+2" shape="circle" size="large" :style="{ 'background-color': '#9c27b0', color: '#ffffff' }"></Avatar>
|
||||||
</AvatarGroup>
|
</AvatarGroup>
|
||||||
|
|
||||||
@@ -168,9 +168,9 @@ onBeforeUnmount(() => {
|
|||||||
|
|
||||||
<div class="font-semibold my-4">Image</div>
|
<div class="font-semibold my-4">Image</div>
|
||||||
<div class="flex items-center flex-col sm:flex-row">
|
<div class="flex items-center flex-col sm:flex-row">
|
||||||
<Chip label="Amy Elsner" :image="'/demo/images/avatar/amyelsner.png'" class="mr-2 mb-2"></Chip>
|
<Chip label="Amy Elsner" :image="'https://primefaces.org/cdn/primevue/images/avatar/amyelsner.png'" class="mr-2 mb-2"></Chip>
|
||||||
<Chip label="Asiya Javayant" :image="'/demo/images/avatar/asiyajavayant.png'" class="mr-2 mb-2"></Chip>
|
<Chip label="Asiya Javayant" :image="'https://primefaces.org/cdn/primevue/images/avatar/asiyajavayant.png'" class="mr-2 mb-2"></Chip>
|
||||||
<Chip label="Onyama Limba" :image="'/demo/images/avatar/onyamalimba.png'" class="mr-2 mb-2"></Chip>
|
<Chip label="Onyama Limba" :image="'https://primefaces.org/cdn/primevue/images/avatar/onyamalimba.png'" class="mr-2 mb-2"></Chip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ const visibleFull = ref(false);
|
|||||||
const products = ref(null);
|
const products = ref(null);
|
||||||
const selectedProduct = ref(null);
|
const selectedProduct = ref(null);
|
||||||
const op = ref(null);
|
const op = ref(null);
|
||||||
const op2 = ref(null);
|
|
||||||
const popup = ref(null);
|
const popup = ref(null);
|
||||||
|
|
||||||
const toast = useToast();
|
const toast = useToast();
|
||||||
@@ -41,7 +40,7 @@ function closeConfirmation() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function toggleDataTable(event) {
|
function toggleDataTable(event) {
|
||||||
op2.value.toggle(event);
|
op.value.toggle(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onProductSelect(event) {
|
function onProductSelect(event) {
|
||||||
@@ -93,7 +92,7 @@ function confirm(event) {
|
|||||||
<div class="font-semibold text-xl mb-4">Popover</div>
|
<div class="font-semibold text-xl mb-4">Popover</div>
|
||||||
<div class="flex flex-wrap gap-2">
|
<div class="flex flex-wrap gap-2">
|
||||||
<Button type="button" label="Show" @click="toggleDataTable" />
|
<Button type="button" label="Show" @click="toggleDataTable" />
|
||||||
<Popover ref="op2" id="overlay_panel" style="width: 450px">
|
<Popover ref="op" id="overlay_panel" style="width: 450px">
|
||||||
<DataTable v-model:selection="selectedProduct" :value="products" selectionMode="single" :paginator="true" :rows="5" @row-select="onProductSelect">
|
<DataTable v-model:selection="selectedProduct" :value="products" selectionMode="single" :paginator="true" :rows="5" @row-select="onProductSelect">
|
||||||
<Column field="name" header="Name" sortable style="min-width: 12rem"></Column>
|
<Column field="name" header="Name" sortable style="min-width: 12rem"></Column>
|
||||||
<Column header="Image">
|
<Column header="Image">
|
||||||
|
|||||||
+4
-2
@@ -1,8 +1,10 @@
|
|||||||
/** @type {import('tailwindcss').Config} */
|
/** @type {import('tailwindcss').Config} */
|
||||||
module.exports = {
|
import PrimeUI from 'tailwindcss-primeui';
|
||||||
|
|
||||||
|
export default {
|
||||||
darkMode: ['selector', '[class*="app-dark"]'],
|
darkMode: ['selector', '[class*="app-dark"]'],
|
||||||
content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'],
|
content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'],
|
||||||
plugins: [require('tailwindcss-primeui')],
|
plugins: [PrimeUI],
|
||||||
theme: {
|
theme: {
|
||||||
screens: {
|
screens: {
|
||||||
sm: '576px',
|
sm: '576px',
|
||||||
|
|||||||
Reference in New Issue
Block a user