From a4dc7d72ecbef6fe367eade6ec00e69abb7da3c6 Mon Sep 17 00:00:00 2001 From: Munawwirul Jamal Date: Thu, 28 Aug 2025 08:11:20 +0700 Subject: [PATCH 01/13] chore: modified gitignore and readme --- .gitignore | 149 +++++++---------------------------------------------- README.md | 6 ++- 2 files changed, 24 insertions(+), 131 deletions(-) diff --git a/.gitignore b/.gitignore index 9a5acedf..436290c0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,139 +1,28 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + # Logs logs *.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json +# Misc +.DS_Store +.fleet +.idea -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files +# Local env files .env .env.* !.env.example -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp and cache directory -.temp -.cache - -# Sveltekit cache directory -.svelte-kit/ - -# vitepress build output -**/.vitepress/dist - -# vitepress cache directory -**/.vitepress/cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# Firebase cache directory -.firebase/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# yarn v3 -.pnp.* -.yarn/* -!.yarn/patches -!.yarn/plugins -!.yarn/releases -!.yarn/sdks -!.yarn/versions - -# Vite logs files -vite.config.js.timestamp-* -vite.config.ts.timestamp-* +# editor +.vscode +*.swp \ No newline at end of file diff --git a/README.md b/README.md index 61992650..5e582ddb 100644 --- a/README.md +++ b/README.md @@ -1 +1,5 @@ -# simrs-fe \ No newline at end of file +# SIMRS - FE + +RSSA - Front End + +If you see this, the development is still not merged yet. Please check nother branches. From 3558672f9aba74722c5756ea23856b2a994ec705 Mon Sep 17 00:00:00 2001 From: Munawwirul Jamal Date: Fri, 24 Oct 2025 15:34:31 +0700 Subject: [PATCH 02/13] dev: hotfix, system by-passes role-access --- app/composables/useRBAC.ts | 7 +++---- app/pages/(features)/rehab/encounter/index.vue | 2 +- app/stores/user.ts | 5 ++++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/composables/useRBAC.ts b/app/composables/useRBAC.ts index 543c3b90..ced57e3e 100644 --- a/app/composables/useRBAC.ts +++ b/app/composables/useRBAC.ts @@ -9,13 +9,12 @@ export function useRBAC() { const checkRole = (roleAccess: RoleAccess, _userRoles?: string[]): boolean => { const roles = authStore.userRole - return roles.some((role: string) => role in roleAccess) + return roles.some((role: string) => (role in roleAccess) || role === 'system') // system by-passes this check } const checkPermission = (roleAccess: RoleAccess, permission: Permission, _userRoles?: string[]): boolean => { const roles = authStore.userRole - // const roles = ['admisi'] - return roles.some((role: string) => roleAccess[role]?.includes(permission)) + return roles.some((role: string) => roleAccess[role]?.includes(permission) || role === 'system') // system by-passes this check } const getUserPermissions = (roleAccess: RoleAccess, _userRoles?: string[]): Permission[] => { @@ -23,7 +22,7 @@ export function useRBAC() { // const roles = ['admisi'] const permissions = new Set() - roles.forEach((role) => { + roles.forEach((role: string) => { if (roleAccess[role]) { roleAccess[role].forEach((permission) => permissions.add(permission)) } diff --git a/app/pages/(features)/rehab/encounter/index.vue b/app/pages/(features)/rehab/encounter/index.vue index 9d06c9e0..7a8564a8 100644 --- a/app/pages/(features)/rehab/encounter/index.vue +++ b/app/pages/(features)/rehab/encounter/index.vue @@ -5,7 +5,7 @@ import { PAGE_PERMISSIONS } from '~/lib/page-permission' definePageMeta({ middleware: ['rbac'], - roles: ['doctor', 'nurse', 'admisi', 'pharmacy', 'billing', 'management'], + roles: ['system', 'doctor', 'nurse', 'admisi', 'pharmacy', 'billing', 'management'], title: 'Daftar Kunjungan', contentFrame: 'cf-full-width', }) diff --git a/app/stores/user.ts b/app/stores/user.ts index cbe92a69..14ab7134 100644 --- a/app/stores/user.ts +++ b/app/stores/user.ts @@ -7,7 +7,10 @@ export const useUserStore = defineStore( const isAuthenticated = computed(() => !!user.value) const userRole = computed(() => { const roles = user.value?.roles || [] - return roles.map((v) => v.split('-')[1]) + return roles.map((input: string) => { + const parts = input.split('-') + return parts.length > 1 ? parts[1]: parts[0] + }) }) const login = async (userData: any) => { From 0212b9c39f59557dd9471a8fe623edc71668fb6c Mon Sep 17 00:00:00 2001 From: Andsky Date: Sat, 25 Oct 2025 05:03:48 +0700 Subject: [PATCH 03/13] Feat/encounter status 107 (#129) * dev: hotfix, moved combobox and datepicker * dev: hotfix, moved combobox and datepicker * dev: hotfix, text-size standardization * dev: hotfix, text-size standardization * feat/encounter-status-107: wip * feat/encounter: wip * feat/encounter: done --------- Co-authored-by: Munawwirul Jamal --- .../app/encounter/check-in-entry.vue | 107 ++++++++++ .../app/encounter/check-in-view.vue | 56 ++++++ .../app/encounter/check-out-entry.vue | 187 ++++++++++++++++++ .../app/encounter/check-out-view.vue | 90 +++++++++ app/components/app/encounter/status.vue | 6 - app/components/content/encounter/process.vue | 6 +- app/components/content/encounter/status.vue | 125 ++++++++++++ app/lib/constants.ts | 14 +- app/models/death-cause.ts | 6 + app/models/encounter.ts | 7 +- app/models/internal-reference.ts | 12 ++ app/schemas/encounter.schema.ts | 48 +++++ app/schemas/internal-reference.schema.ts | 12 ++ app/services/doctor.service.ts | 39 ++++ app/services/employee.service.ts | 2 +- app/services/encounter.service.ts | 14 ++ 16 files changed, 718 insertions(+), 13 deletions(-) create mode 100644 app/components/app/encounter/check-in-entry.vue create mode 100644 app/components/app/encounter/check-in-view.vue create mode 100644 app/components/app/encounter/check-out-entry.vue create mode 100644 app/components/app/encounter/check-out-view.vue delete mode 100644 app/components/app/encounter/status.vue create mode 100644 app/components/content/encounter/status.vue create mode 100644 app/models/death-cause.ts create mode 100644 app/models/internal-reference.ts create mode 100644 app/schemas/encounter.schema.ts create mode 100644 app/schemas/internal-reference.schema.ts create mode 100644 app/services/doctor.service.ts diff --git a/app/components/app/encounter/check-in-entry.vue b/app/components/app/encounter/check-in-entry.vue new file mode 100644 index 00000000..ad7de5d6 --- /dev/null +++ b/app/components/app/encounter/check-in-entry.vue @@ -0,0 +1,107 @@ + + + + + \ No newline at end of file diff --git a/app/components/app/encounter/check-in-view.vue b/app/components/app/encounter/check-in-view.vue new file mode 100644 index 00000000..a3b6ab53 --- /dev/null +++ b/app/components/app/encounter/check-in-view.vue @@ -0,0 +1,56 @@ + + + + + \ No newline at end of file diff --git a/app/components/app/encounter/check-out-entry.vue b/app/components/app/encounter/check-out-entry.vue new file mode 100644 index 00000000..fb8b4333 --- /dev/null +++ b/app/components/app/encounter/check-out-entry.vue @@ -0,0 +1,187 @@ + + + + + \ No newline at end of file diff --git a/app/components/app/encounter/check-out-view.vue b/app/components/app/encounter/check-out-view.vue new file mode 100644 index 00000000..37cd2bbe --- /dev/null +++ b/app/components/app/encounter/check-out-view.vue @@ -0,0 +1,90 @@ + + + + + \ No newline at end of file diff --git a/app/components/app/encounter/status.vue b/app/components/app/encounter/status.vue deleted file mode 100644 index e45c0a78..00000000 --- a/app/components/app/encounter/status.vue +++ /dev/null @@ -1,6 +0,0 @@ - - - \ No newline at end of file diff --git a/app/components/content/encounter/process.vue b/app/components/content/encounter/process.vue index 4779f6ec..8179b1ce 100644 --- a/app/components/content/encounter/process.vue +++ b/app/components/content/encounter/process.vue @@ -6,14 +6,14 @@ import { useRoute, useRouter } from 'vue-router' import { getDetail } from '~/services/encounter.service' // Components -import type { Encounter } from '~/models/encounter' import type { TabItem } from '~/components/pub/my-ui/comp-tab/type' import CompTab from '~/components/pub/my-ui/comp-tab/comp-tab.vue' -import AssesmentFunctionList from '~/components/content/soapi/entry.vue' + +import Status from '~/components/content/encounter/status.vue' +import AssesmentFunctionList from '~/components/content/assesment-function/list.vue' import EarlyMedicalAssesmentList from '~/components/content/soapi/entry.vue' import EarlyMedicalRehabList from '~/components/content/soapi/entry.vue' import PrescriptionList from '~/components/content/prescription/list.vue' -import Status from '~/components/app/encounter/status.vue' import Consultation from '~/components/content/consultation/list.vue' const route = useRoute() diff --git a/app/components/content/encounter/status.vue b/app/components/content/encounter/status.vue new file mode 100644 index 00000000..513a7ab5 --- /dev/null +++ b/app/components/content/encounter/status.vue @@ -0,0 +1,125 @@ + + + \ No newline at end of file diff --git a/app/lib/constants.ts b/app/lib/constants.ts index 59dd9bf5..28565a50 100644 --- a/app/lib/constants.ts +++ b/app/lib/constants.ts @@ -67,8 +67,18 @@ export const timeUnitCodes: Record = { } export const dischargeMethodCodes: Record = { - home: 'Home', - 'home-request': 'Home Request', + home: "Pulang", + "home-request": "Pulang Atas Permintaan Sendiri", + "consul-back": "Konsultasi Balik / Lanjutan", + "consul-poly": "Konsultasi Poliklinik Lain", + "consul-executive": "Konsultasi Antar Dokter Eksekutif", + "consul-ch-day": "Konsultasi Hari Lain", + emergency: "Rujuk IGD", + "emergency-covid": "Rujuk IGD Covid", + inpatient: "Rujuk Rawat Inap", + external: "Rujuk Faskes Lain", + death: "Meninggal", + "death-on-arrival": "Meninggal Saat Tiba" } export const genderCodes: Record = { diff --git a/app/models/death-cause.ts b/app/models/death-cause.ts new file mode 100644 index 00000000..0f04609a --- /dev/null +++ b/app/models/death-cause.ts @@ -0,0 +1,6 @@ +export interface DeathCause { + id: bigint; + encounter_id: bigint; + value: any; // json mapped to 'any' type +} + \ No newline at end of file diff --git a/app/models/encounter.ts b/app/models/encounter.ts index 681a2ac9..fb2c0b04 100644 --- a/app/models/encounter.ts +++ b/app/models/encounter.ts @@ -1,5 +1,7 @@ +import type { DeathCause } from "./death-cause" import { type Doctor, genDoctor } from "./doctor" import { genEmployee, type Employee } from "./employee" +import type { InternalReference } from "./internal-reference" import { type Patient, genPatient } from "./patient" import type { Specialist } from "./specialist" import type { Subspecialist } from "./subspecialist" @@ -29,8 +31,11 @@ export interface Encounter { earlyEducation?: string medicalDischargeEducation: string admDischargeEducation?: string - dischargeMethod_code?: string + discharge_method_code?: string discharge_reason?: string + discharge_date?: string + internalReferences?: InternalReference[] + deathCause?: DeathCause status_code: string } diff --git a/app/models/internal-reference.ts b/app/models/internal-reference.ts new file mode 100644 index 00000000..8af315a8 --- /dev/null +++ b/app/models/internal-reference.ts @@ -0,0 +1,12 @@ +export interface InternalReference { + id: number; + encounter_id: number; + unit_id: number; // smallint mapped to number + doctor_id: number; // int mapped to number +} + +export interface CreateDto { + encounter_id: number; + unit_id: number; // smallint mapped to number + doctor_id: number; // int mapped to number +} \ No newline at end of file diff --git a/app/schemas/encounter.schema.ts b/app/schemas/encounter.schema.ts new file mode 100644 index 00000000..e3c9affc --- /dev/null +++ b/app/schemas/encounter.schema.ts @@ -0,0 +1,48 @@ +import { z } from 'zod' +import { InternalReferenceSchema } from './internal-reference.schema' + +// Check In +const CheckInSchema = z.object({ + // registeredAt: z.string({ required_error: 'Tanggal masuk harus diisi' }), + responsible_doctor_id: z.number({ required_error: 'Dokter harus diisi' }).gt(0, 'Dokter harus diisi'), + adm_employee_id: z.number({ required_error: 'PJA harus diisi' }).gt(0, 'PJA harus diisi'), +}) +type CheckInFormData = z.infer + +// Checkout +const CheckOutSchema = z.object({ + discharge_method_code: z.string({ required_error: 'Metode pulang harus diisi' }), + discharge_date: z.string({ required_error: 'Tanggal pulang harus diisi' }), +}) +type CheckOutFormData = z.infer + +// CheckoutDeath +const CheckOutDeathSchema = z.object({ + discharge_method_code: z.string({ required_error: 'Metode pulang harus diisi' }), + discharge_date: z.string({ required_error: 'Tanggal pulang harus diisi' }), + death_cause: z.array(z.string()).nonempty(), +}) +type CheckOutDeathFormData = z.infer + +// CheckoutDeath +const CheckOutInternalReferenceSchema = z.object({ + discharge_method_code: z.string({ required_error: 'Metode pulang harus diisi' }), + discharge_date: z.string({ required_error: 'Tanggal pulang harus diisi' }), + internalReferences: z.array(InternalReferenceSchema).nonempty(), +}) +type CheckOutInternalReferenceFormData = z.infer + + +// Exports +export { + CheckInSchema, + CheckOutSchema, + CheckOutDeathSchema, + CheckOutInternalReferenceSchema +} +export type { + CheckInFormData, + CheckOutFormData, + CheckOutDeathFormData, + CheckOutInternalReferenceFormData +} diff --git a/app/schemas/internal-reference.schema.ts b/app/schemas/internal-reference.schema.ts new file mode 100644 index 00000000..eae75319 --- /dev/null +++ b/app/schemas/internal-reference.schema.ts @@ -0,0 +1,12 @@ +import { z } from 'zod' +import type { InternalReference } from '~/models/internal-reference' + +const InternalReferenceSchema = z.object({ + 'unit_id': z.number({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'), + 'doctor_id': z.number({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'), +}) + +type InternalReferenceFormData = z.infer & Partial + +export { InternalReferenceSchema } +export type { InternalReferenceFormData } diff --git a/app/services/doctor.service.ts b/app/services/doctor.service.ts new file mode 100644 index 00000000..64ab22e9 --- /dev/null +++ b/app/services/doctor.service.ts @@ -0,0 +1,39 @@ +// Base +import * as base from './_crud-base' +import type { Doctor } from "~/models/doctor"; + +const path = '/api/v1/doctor' +const name = 'device' + +export function create(data: any) { + return base.create(path, data, name) +} + +export function getList(params: any = null) { + return base.getList(path, params, name) +} + +export function getDetail(id: number | string) { + return base.getDetail(path, id, name) +} + +export function update(id: number | string, data: any) { + return base.update(path, id, data, name) +} + +export function remove(id: number | string) { + return base.remove(path, id, name) +} + +export async function getValueLabelList(params: any = null): Promise<{ value: string; label: string }[]> { + let data: { value: string; label: string }[] = [] + const result = await getList(params) + if (result.success) { + const resultData = result.body?.data || [] + data = resultData.map((item: Doctor) => ({ + value: item.id, + label: item.employee.person.name, + })) + } + return data +} diff --git a/app/services/employee.service.ts b/app/services/employee.service.ts index d3691c83..366ef71e 100644 --- a/app/services/employee.service.ts +++ b/app/services/employee.service.ts @@ -31,7 +31,7 @@ export async function getValueLabelList(params: any = null): Promise<{ value: st const resultData = result.body?.data || [] data = resultData.map((item: any) => ({ value: item.id ? Number(item.id) : item.code, - label: item.name, + label: item.person.name, })) } return data diff --git a/app/services/encounter.service.ts b/app/services/encounter.service.ts index cd7c28ed..6e42fd41 100644 --- a/app/services/encounter.service.ts +++ b/app/services/encounter.service.ts @@ -1,4 +1,5 @@ // Base +import type { CheckInFormData } from '~/schemas/encounter.schema' import * as base from './_crud-base' // Constants @@ -46,3 +47,16 @@ export function getValueLabelListConstants() { .filter(([key]) => allowed.includes(key)) .map(([key, value]) => ({ value: key, label: value })) } + +export async function checkIn(id: number, data: CheckInFormData) { + try { + const resp = await xfetch(`${path}/${id}/check-in`, 'PATCH', data) + const result: any = {} + result.success = resp.success + result.body = (resp.body as Record) || {} + return result + } catch (error) { + console.error(`Error putting ${name}:`, error) + throw new Error(`Failed to put ${name}`) + } +} \ No newline at end of file From e93e72a78026423cd54ff6c67f5ccaf70bf3995e Mon Sep 17 00:00:00 2001 From: Munawwirul Jamal Date: Sat, 25 Oct 2025 05:05:53 +0700 Subject: [PATCH 04/13] dev: chore, note on encounter process --- app/components/content/encounter/process.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/components/content/encounter/process.vue b/app/components/content/encounter/process.vue index 8179b1ce..71c7fe3d 100644 --- a/app/components/content/encounter/process.vue +++ b/app/components/content/encounter/process.vue @@ -5,10 +5,11 @@ import { useRoute, useRouter } from 'vue-router' import { getDetail } from '~/services/encounter.service' -// Components +// import type { TabItem } from '~/components/pub/my-ui/comp-tab/type' import CompTab from '~/components/pub/my-ui/comp-tab/comp-tab.vue' +// PLASE ORDER BY TAB POSITION import Status from '~/components/content/encounter/status.vue' import AssesmentFunctionList from '~/components/content/assesment-function/list.vue' import EarlyMedicalAssesmentList from '~/components/content/soapi/entry.vue' From 0504712559c7570f4de48c22c6bb648445779894 Mon Sep 17 00:00:00 2001 From: Andsky Date: Sat, 25 Oct 2025 16:21:39 +0700 Subject: [PATCH 05/13] Feat/encounter status 107 (#136) From 3e7e735ae426807ef20f0fb372a89d28214dc377 Mon Sep 17 00:00:00 2001 From: Munawwirul Jamal Date: Tue, 28 Oct 2025 15:40:41 +0700 Subject: [PATCH 06/13] dev: hotfix, nav-footer, button, dialog --- app/assets/css/main.css | 4 +- .../pub/my-ui/nav-footer/ba-de-dr-su.vue | 50 +++++++++++++++++ .../pub/my-ui/nav-footer/ba-de-ed-pri.vue | 50 +++++++++++++++++ .../pub/my-ui/nav-footer/ba-de-su.vue | 44 +++++++++++++++ .../pub/my-ui/nav-footer/ba-dr-su-pr.vue | 54 ++++++++++++------ .../pub/my-ui/nav-footer/ba-dr-su.vue | 44 ++++++++++----- .../pub/my-ui/nav-footer/ba-ed-de-pri.vue | 32 ----------- .../pub/my-ui/nav-footer/ba-ed-de.vue | 44 ++++++++++----- .../pub/my-ui/nav-footer/ba-ed-pri.vue | 44 ++++++++++----- app/components/pub/my-ui/nav-footer/ba-ed.vue | 49 ++++++++--------- app/components/pub/my-ui/nav-footer/ba-su.vue | 46 ++++++++-------- .../pub/my-ui/nav-footer/ca-ed-su.vue | 55 +++++++++++++++++++ app/components/pub/my-ui/nav-footer/ca-sa.vue | 38 +++++++++++++ app/components/pub/my-ui/nav-footer/cl-sa.vue | 38 +++++++++++++ app/components/pub/ui/button/index.ts | 2 +- .../pub/ui/dialog/DialogContent.vue | 2 +- .../pub/ui/dialog/DialogDescription.vue | 2 +- app/composables/useQueryParam.ts | 32 +++++++++++ app/lib/constants.ts | 7 +++ 19 files changed, 493 insertions(+), 144 deletions(-) create mode 100644 app/components/pub/my-ui/nav-footer/ba-de-dr-su.vue create mode 100644 app/components/pub/my-ui/nav-footer/ba-de-ed-pri.vue create mode 100644 app/components/pub/my-ui/nav-footer/ba-de-su.vue delete mode 100644 app/components/pub/my-ui/nav-footer/ba-ed-de-pri.vue create mode 100644 app/components/pub/my-ui/nav-footer/ca-ed-su.vue create mode 100644 app/components/pub/my-ui/nav-footer/ca-sa.vue create mode 100644 app/components/pub/my-ui/nav-footer/cl-sa.vue create mode 100644 app/composables/useQueryParam.ts diff --git a/app/assets/css/main.css b/app/assets/css/main.css index 17502027..a25bddcb 100644 --- a/app/assets/css/main.css +++ b/app/assets/css/main.css @@ -16,8 +16,8 @@ --primary-hover: 26, 92%, 65%; /* Secondary - Clean Blue */ - --secondary: 210 50% 96%; - --secondary-foreground: 210 20% 20%; + --secondary: 40 70% 60%; + --secondary-foreground: 210 20% 100%; --muted: 210 25% 95%; --muted-foreground: 210 15% 50%; diff --git a/app/components/pub/my-ui/nav-footer/ba-de-dr-su.vue b/app/components/pub/my-ui/nav-footer/ba-de-dr-su.vue new file mode 100644 index 00000000..a4df2da3 --- /dev/null +++ b/app/components/pub/my-ui/nav-footer/ba-de-dr-su.vue @@ -0,0 +1,50 @@ + + + diff --git a/app/components/pub/my-ui/nav-footer/ba-de-ed-pri.vue b/app/components/pub/my-ui/nav-footer/ba-de-ed-pri.vue new file mode 100644 index 00000000..0d8fcfb2 --- /dev/null +++ b/app/components/pub/my-ui/nav-footer/ba-de-ed-pri.vue @@ -0,0 +1,50 @@ + + + diff --git a/app/components/pub/my-ui/nav-footer/ba-de-su.vue b/app/components/pub/my-ui/nav-footer/ba-de-su.vue new file mode 100644 index 00000000..47246c4c --- /dev/null +++ b/app/components/pub/my-ui/nav-footer/ba-de-su.vue @@ -0,0 +1,44 @@ + + + diff --git a/app/components/pub/my-ui/nav-footer/ba-dr-su-pr.vue b/app/components/pub/my-ui/nav-footer/ba-dr-su-pr.vue index 78034463..67d5aec5 100644 --- a/app/components/pub/my-ui/nav-footer/ba-dr-su-pr.vue +++ b/app/components/pub/my-ui/nav-footer/ba-dr-su-pr.vue @@ -1,5 +1,15 @@ diff --git a/app/components/pub/my-ui/nav-footer/ba-dr-su.vue b/app/components/pub/my-ui/nav-footer/ba-dr-su.vue index 17dbd6dc..4598817b 100644 --- a/app/components/pub/my-ui/nav-footer/ba-dr-su.vue +++ b/app/components/pub/my-ui/nav-footer/ba-dr-su.vue @@ -1,5 +1,15 @@ diff --git a/app/components/pub/my-ui/nav-footer/ba-ed-de-pri.vue b/app/components/pub/my-ui/nav-footer/ba-ed-de-pri.vue deleted file mode 100644 index 4a9d5268..00000000 --- a/app/components/pub/my-ui/nav-footer/ba-ed-de-pri.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/app/components/pub/my-ui/nav-footer/ba-ed-de.vue b/app/components/pub/my-ui/nav-footer/ba-ed-de.vue index fabaa425..cc607ac0 100644 --- a/app/components/pub/my-ui/nav-footer/ba-ed-de.vue +++ b/app/components/pub/my-ui/nav-footer/ba-ed-de.vue @@ -1,5 +1,15 @@ diff --git a/app/components/pub/my-ui/nav-footer/ba-ed-pri.vue b/app/components/pub/my-ui/nav-footer/ba-ed-pri.vue index 97bf62de..331c30af 100644 --- a/app/components/pub/my-ui/nav-footer/ba-ed-pri.vue +++ b/app/components/pub/my-ui/nav-footer/ba-ed-pri.vue @@ -1,5 +1,15 @@ diff --git a/app/components/pub/my-ui/nav-footer/ba-ed.vue b/app/components/pub/my-ui/nav-footer/ba-ed.vue index ae455a81..aebd4296 100644 --- a/app/components/pub/my-ui/nav-footer/ba-ed.vue +++ b/app/components/pub/my-ui/nav-footer/ba-ed.vue @@ -1,5 +1,15 @@ diff --git a/app/components/pub/my-ui/nav-footer/ba-su.vue b/app/components/pub/my-ui/nav-footer/ba-su.vue index 9db66bb4..613cac85 100644 --- a/app/components/pub/my-ui/nav-footer/ba-su.vue +++ b/app/components/pub/my-ui/nav-footer/ba-su.vue @@ -1,5 +1,15 @@ diff --git a/app/components/pub/my-ui/nav-footer/ca-ed-su.vue b/app/components/pub/my-ui/nav-footer/ca-ed-su.vue new file mode 100644 index 00000000..1f0f5915 --- /dev/null +++ b/app/components/pub/my-ui/nav-footer/ca-ed-su.vue @@ -0,0 +1,55 @@ + + + diff --git a/app/components/pub/my-ui/nav-footer/ca-sa.vue b/app/components/pub/my-ui/nav-footer/ca-sa.vue new file mode 100644 index 00000000..cbd5ef7f --- /dev/null +++ b/app/components/pub/my-ui/nav-footer/ca-sa.vue @@ -0,0 +1,38 @@ + + + diff --git a/app/components/pub/my-ui/nav-footer/cl-sa.vue b/app/components/pub/my-ui/nav-footer/cl-sa.vue new file mode 100644 index 00000000..fea6fc56 --- /dev/null +++ b/app/components/pub/my-ui/nav-footer/cl-sa.vue @@ -0,0 +1,38 @@ + + + diff --git a/app/components/pub/ui/button/index.ts b/app/components/pub/ui/button/index.ts index c1aa89a8..c4063089 100644 --- a/app/components/pub/ui/button/index.ts +++ b/app/components/pub/ui/button/index.ts @@ -12,7 +12,7 @@ export const buttonVariants = cva( destructive: 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90', outline: - 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground', + 'border border-slate-300 dark:border-slate-600 bg-background shadow-sm hover:bg-accent hover:text-accent-foreground', secondary: 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80', ghost: 'hover:bg-accent hover:text-accent-foreground', diff --git a/app/components/pub/ui/dialog/DialogContent.vue b/app/components/pub/ui/dialog/DialogContent.vue index 5e9e8538..0c0fbf6b 100644 --- a/app/components/pub/ui/dialog/DialogContent.vue +++ b/app/components/pub/ui/dialog/DialogContent.vue @@ -34,7 +34,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits) v-bind="forwarded" :class=" cn( - 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-5 2xl:p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', + 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-2 2x:gap-3 border bg-background p-5 2xl:p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', props.class, )" > diff --git a/app/components/pub/ui/dialog/DialogDescription.vue b/app/components/pub/ui/dialog/DialogDescription.vue index 3444c492..c7ac62d1 100644 --- a/app/components/pub/ui/dialog/DialogDescription.vue +++ b/app/components/pub/ui/dialog/DialogDescription.vue @@ -19,7 +19,7 @@ const forwardedProps = useForwardProps(delegatedProps)