🔧 웹훅 URL을 HTTPS로 수정
Some checks failed
🚀 Deploy - Demo / deployment (push) Has been cancelled

- 웹훅 URL을 https://admin.youtooplay.com/webhook로 변경
- Nginx 리버스 프록시 설정 파일 추가
- 배포 가이드 업데이트
This commit is contained in:
2025-10-01 01:47:51 +09:00
parent f331b52e64
commit 83b162d2bd
713 changed files with 98449 additions and 38378 deletions

View File

@@ -0,0 +1,7 @@
const _messages = { "appName": "Nuxt", "version": "", "statusCode": 500, "statusMessage": "Server error", "description": "This page is temporarily unavailable." };
const template = (messages) => {
messages = { ..._messages, ...messages };
return '<!DOCTYPE html><html lang="en"><head><title>' + messages.statusCode + " - " + messages.statusMessage + " | " + messages.appName + `</title><meta charset="utf-8"><meta content="width=device-width,initial-scale=1.0,minimum-scale=1.0" name="viewport"><style>.spotlight{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.fixed{position:fixed}.-bottom-1\\/2{bottom:-50%}.left-0{left:0}.right-0{right:0}.grid{display:grid}.mb-16{margin-bottom:4rem}.mb-8{margin-bottom:2rem}.h-1\\/2{height:50%}.max-w-520px{max-width:520px}.min-h-screen{min-height:100vh}.place-content-center{place-content:center}.overflow-hidden{overflow:hidden}.bg-white{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8{padding-left:2rem;padding-right:2rem}.text-center{text-align:center}.text-8xl{font-size:6rem;line-height:1}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-black{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light{font-weight:300}.font-medium{font-weight:500}.leading-tight{line-height:1.25}.font-sans{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\\:bg-black{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\\:text-white{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\\:px-0{padding-left:0;padding-right:0}.sm\\:text-4xl{font-size:2.25rem;line-height:2.5rem}}</style><script>!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();<\/script></head><body class="antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"><div class="-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"></div><div class="max-w-520px text-center"><h1 class="font-medium mb-8 sm:text-10xl text-8xl">` + messages.statusCode + '</h1><p class="font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl">' + messages.description + "</p></div></body></html>";
};
export { template };

View File

@@ -0,0 +1,3 @@
const AccountSettingsNotification_vue_vue_type_style_index_0_scoped_5bf444da_lang = ".v-table th[data-v-5bf444da]{text-align:start!important}";
export { AccountSettingsNotification_vue_vue_type_style_index_0_scoped_5bf444da_lang as A };

View File

@@ -0,0 +1,5 @@
import { A as AccountSettingsNotification_vue_vue_type_style_index_0_scoped_5bf444da_lang } from './AccountSettingsNotification-styles-1.mjs-COfCEDLT.mjs';
const AccountSettingsNotificationStyles_GmPspwBO = [AccountSettingsNotification_vue_vue_type_style_index_0_scoped_5bf444da_lang, AccountSettingsNotification_vue_vue_type_style_index_0_scoped_5bf444da_lang];
export { AccountSettingsNotificationStyles_GmPspwBO as default };

View File

@@ -0,0 +1,5 @@
import { A as AccountSettingsNotification_vue_vue_type_style_index_0_scoped_5bf444da_lang } from './AccountSettingsNotification-styles-1.mjs-COfCEDLT.mjs';
const AccountSettingsNotificationStyles_c6ezO7eT = [AccountSettingsNotification_vue_vue_type_style_index_0_scoped_5bf444da_lang];
export { AccountSettingsNotificationStyles_c6ezO7eT as default };

View File

@@ -0,0 +1,3 @@
const AnalyticsCongratulations_vue_vue_type_style_index_0_scoped_f54b019a_lang = ".john-illustration[data-v-f54b019a]{inset-block-end:-.125rem;inset-inline-end:3.5rem}";
export { AnalyticsCongratulations_vue_vue_type_style_index_0_scoped_f54b019a_lang as A };

View File

@@ -0,0 +1,5 @@
import { A as AnalyticsCongratulations_vue_vue_type_style_index_0_scoped_f54b019a_lang } from './AnalyticsCongratulations-styles-1.mjs-CY43QUpu.mjs';
const AnalyticsCongratulationsStyles_7f44haZ6 = [AnalyticsCongratulations_vue_vue_type_style_index_0_scoped_f54b019a_lang];
export { AnalyticsCongratulationsStyles_7f44haZ6 as default };

View File

@@ -0,0 +1,5 @@
import { A as AnalyticsCongratulations_vue_vue_type_style_index_0_scoped_f54b019a_lang } from './AnalyticsCongratulations-styles-1.mjs-CY43QUpu.mjs';
const AnalyticsCongratulationsStyles_DqII_Bwb = [AnalyticsCongratulations_vue_vue_type_style_index_0_scoped_f54b019a_lang, AnalyticsCongratulations_vue_vue_type_style_index_0_scoped_f54b019a_lang];
export { AnalyticsCongratulationsStyles_DqII_Bwb as default };

View File

@@ -0,0 +1,3 @@
const AnalyticsOrderStatistics_vue_vue_type_style_index_0_lang = ".card-list{--v-card-list-gap:1.25rem}";
export { AnalyticsOrderStatistics_vue_vue_type_style_index_0_lang as A };

View File

@@ -0,0 +1,5 @@
import { A as AnalyticsOrderStatistics_vue_vue_type_style_index_0_lang } from './AnalyticsOrderStatistics-styles-1.mjs-ClmxzPXa.mjs';
const AnalyticsOrderStatisticsStyles_CYw_yRNL = [AnalyticsOrderStatistics_vue_vue_type_style_index_0_lang];
export { AnalyticsOrderStatisticsStyles_CYw_yRNL as default };

View File

@@ -0,0 +1,5 @@
import { A as AnalyticsOrderStatistics_vue_vue_type_style_index_0_lang } from './AnalyticsOrderStatistics-styles-1.mjs-ClmxzPXa.mjs';
const AnalyticsOrderStatisticsStyles_CnbIVwCv = [AnalyticsOrderStatistics_vue_vue_type_style_index_0_lang, AnalyticsOrderStatistics_vue_vue_type_style_index_0_lang];
export { AnalyticsOrderStatisticsStyles_CnbIVwCv as default };

View File

@@ -0,0 +1,3 @@
const AnalyticsTotalRevenue_vue_vue_type_style_index_0_lang = 'body .apexcharts-canvasline[stroke=transparent]{display:"none"}body .apexcharts-canvas .apexcharts-tooltip{background:rgb(var(--v-theme-surface));border-color:rgba(var(--v-border-color),var(--v-border-opacity));box-shadow:0 3px 8px rgba(var(--v-shadow-key-umbra-color),.14),0 0 transparent,0 0 transparent}body .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-title{background:rgb(var(--v-theme-surface));border-color:rgba(var(--v-border-color),var(--v-border-opacity));font-weight:500;padding-inline:10px}body .apexcharts-canvas .apexcharts-tooltip.apexcharts-theme-light{color:rgba(var(--v-theme-on-background),var(--v-high-emphasis-opacity))}body .apexcharts-canvas .apexcharts-tooltip.apexcharts-theme-dark{color:#fff}body .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-series-group:first-of-type{padding-block-end:0}body .apexcharts-canvas .apexcharts-xaxistooltip{background:rgb(var(--v-theme-grey-50));border-color:rgba(var(--v-border-color),var(--v-border-opacity));color:rgba(var(--v-theme-on-background),var(--v-high-emphasis-opacity))}body .apexcharts-canvas .apexcharts-xaxistooltip:after{border-block-end-color:rgb(var(--v-theme-grey-50))}body .apexcharts-canvas .apexcharts-xaxistooltip:before{border-block-end-color:rgba(var(--v-border-color),var(--v-border-opacity))}body .apexcharts-canvas .apexcharts-yaxistooltip{background:rgb(var(--v-theme-grey-50));border-color:rgba(var(--v-border-color),var(--v-border-opacity))}body .apexcharts-canvas .apexcharts-yaxistooltip:after{border-inline-start-color:rgb(var(--v-theme-grey-50))}body .apexcharts-canvas .apexcharts-yaxistooltip:before{border-inline-start-color:rgba(var(--v-border-color),var(--v-border-opacity))}body .apexcharts-canvas .apexcharts-xaxistooltip-text,body .apexcharts-canvas .apexcharts-yaxistooltip-text{color:rgba(var(--v-theme-on-background),var(--v-high-emphasis-opacity))}[dir=rtl] body .apexcharts-canvas .apexcharts-yaxis .apexcharts-yaxis-texts-g .apexcharts-yaxis-label{text-anchor:start}body .apexcharts-canvas .apexcharts-datalabel,body .apexcharts-canvas .apexcharts-datalabel-label,body .apexcharts-canvas .apexcharts-legend-text,body .apexcharts-canvas .apexcharts-text,body .apexcharts-canvas .apexcharts-tooltip-text,body .apexcharts-canvas .apexcharts-xaxistooltip-text,body .apexcharts-canvas .apexcharts-yaxistooltip-text{font-family:Public Sans,sans-serif,-apple-system,blinkmacsystemfont,Segoe UI,roboto,Helvetica Neue,arial,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol!important}body .apexcharts-canvas .apexcharts-pie-label{fill:#fff;filter:none}body .apexcharts-canvas .apexcharts-marker{box-shadow:none}body .apexcharts-canvas .apexcharts-tooltip-marker{margin-inline-end:.625rem}[dir=rtl] body .apexcharts-canvas .apexcharts-tooltip-marker{margin-inline:0 .625rem!important}body .apexcharts-canvas .apexcharts-legend-marker{margin-inline-end:.3875rem!important}[dir=rtl] body .apexcharts-canvas .apexcharts-legend-marker{margin-inline-end:.75rem!important}';
export { AnalyticsTotalRevenue_vue_vue_type_style_index_0_lang as A };

View File

@@ -0,0 +1,5 @@
import { A as AnalyticsTotalRevenue_vue_vue_type_style_index_0_lang } from './AnalyticsTotalRevenue-styles-1.mjs-wuWbQzUR.mjs';
const AnalyticsTotalRevenueStyles_BJg6STC_ = [AnalyticsTotalRevenue_vue_vue_type_style_index_0_lang, AnalyticsTotalRevenue_vue_vue_type_style_index_0_lang];
export { AnalyticsTotalRevenueStyles_BJg6STC_ as default };

View File

@@ -0,0 +1,5 @@
import { A as AnalyticsTotalRevenue_vue_vue_type_style_index_0_lang } from './AnalyticsTotalRevenue-styles-1.mjs-wuWbQzUR.mjs';
const AnalyticsTotalRevenueStyles_BikINTAl = [AnalyticsTotalRevenue_vue_vue_type_style_index_0_lang];
export { AnalyticsTotalRevenueStyles_BikINTAl as default };

View File

@@ -0,0 +1,3 @@
const AnalyticsTransactions_vue_vue_type_style_index_0_scoped_8543add5_lang = ".card-list[data-v-8543add5]{--v-card-list-gap:1.5rem}";
export { AnalyticsTransactions_vue_vue_type_style_index_0_scoped_8543add5_lang as A };

View File

@@ -0,0 +1,5 @@
import { A as AnalyticsTransactions_vue_vue_type_style_index_0_scoped_8543add5_lang } from './AnalyticsTransactions-styles-1.mjs-BsPHKSrz.mjs';
const AnalyticsTransactionsStyles_CAOv2ENt = [AnalyticsTransactions_vue_vue_type_style_index_0_scoped_8543add5_lang, AnalyticsTransactions_vue_vue_type_style_index_0_scoped_8543add5_lang];
export { AnalyticsTransactionsStyles_CAOv2ENt as default };

View File

@@ -0,0 +1,5 @@
import { A as AnalyticsTransactions_vue_vue_type_style_index_0_scoped_8543add5_lang } from './AnalyticsTransactions-styles-1.mjs-BsPHKSrz.mjs';
const AnalyticsTransactionsStyles_U8JYrSnn = [AnalyticsTransactions_vue_vue_type_style_index_0_scoped_8543add5_lang];
export { AnalyticsTransactionsStyles_U8JYrSnn as default };

View File

@@ -0,0 +1,3 @@
const CardBasic_vue_vue_type_style_index_0_scoped_dafc34ea_lang = ".avatar-center[data-v-dafc34ea]{border:3px solid rgb(var(--v-theme-surface));inset-block-start:-2rem;inset-inline-start:1rem;position:absolute}.member-pricing-bg[data-v-dafc34ea]{background-color:rgba(var(--v-theme-on-surface),var(--v-hover-opacity));position:relative}.membership-pricing sup[data-v-dafc34ea]{inset-block-start:9px}";
export { CardBasic_vue_vue_type_style_index_0_scoped_dafc34ea_lang as C };

View File

@@ -0,0 +1,5 @@
import { C as CardBasic_vue_vue_type_style_index_0_scoped_dafc34ea_lang } from './CardBasic-styles-1.mjs-BB7jL9Bb.mjs';
const CardBasicStyles_CPxu70S = [CardBasic_vue_vue_type_style_index_0_scoped_dafc34ea_lang, CardBasic_vue_vue_type_style_index_0_scoped_dafc34ea_lang];
export { CardBasicStyles_CPxu70S as default };

View File

@@ -0,0 +1,5 @@
import { C as CardBasic_vue_vue_type_style_index_0_scoped_dafc34ea_lang } from './CardBasic-styles-1.mjs-BB7jL9Bb.mjs';
const CardBasicStyles_Duzdg6PU = [CardBasic_vue_vue_type_style_index_0_scoped_dafc34ea_lang];
export { CardBasicStyles_Duzdg6PU as default };

View File

@@ -0,0 +1,504 @@
import { _ as __nuxt_component_0 } from './nuxt-link-DwrCF35s.mjs';
import { defineComponent, resolveComponent, withCtx, renderSlot, createVNode, unref, ref, h, watch, resolveDynamicComponent, mergeProps, useSSRContext } from 'vue';
import { ssrRenderComponent, ssrRenderSlot, ssrRenderStyle, ssrRenderVNode } from 'vue/server-renderer';
import _sfc_main$3 from './NavItems-BE_iATXh.mjs';
import { l as logo } from './logo-C2NYPRdy.mjs';
import { PerfectScrollbar } from 'vue3-perfect-scrollbar';
import { _ as _export_sfc, s as VIcon, a4 as useRoute$1, b as useDisplay } from './server.mjs';
import { u as useToggle, s as syncRef } from './index-BkwMfZcG.mjs';
import Footer from './Footer-BdPuYOuS.mjs';
import _sfc_main$4 from './NavbarThemeSwitcher-B8gKKvoR.mjs';
import _sfc_main$5 from './UserProfile-D3XrMU_d.mjs';
import { V as VSpacer } from './VSpacer-CWwQJ4s3.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
import './VTooltip-D5G-PTk1.mjs';
import './avatar-1-BLwzgS8N.mjs';
import './VList-C7tHrCmP.mjs';
import './index-BNHdF426.mjs';
import './ssrBoot-BtvJZs44.mjs';
import './VDivider-C0e0b_O5.mjs';
import './VListItemAction-DeAgZ_Zv.mjs';
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
__name: "VerticalNav",
__ssrInlineRender: true,
props: {
tag: { default: "aside" },
isOverlayNavActive: { type: Boolean },
toggleIsOverlayNavActive: {}
},
setup(__props) {
const props = __props;
const { mdAndDown } = useDisplay();
const refNav = ref();
const route = useRoute$1();
watch(
() => route.path,
() => {
props.toggleIsOverlayNavActive(false);
}
);
const isVerticalNavScrolled = ref(false);
const updateIsVerticalNavScrolled = (val) => isVerticalNavScrolled.value = val;
const handleNavScroll = (evt) => {
isVerticalNavScrolled.value = evt.target.scrollTop > 0;
};
return (_ctx, _push, _parent, _attrs) => {
const _component_NuxtLink = __nuxt_component_0;
ssrRenderVNode(_push, createVNode(resolveDynamicComponent(props.tag), mergeProps({
ref_key: "refNav",
ref: refNav,
"data-allow-mismatch": "",
class: ["layout-vertical-nav", [
{
"visible": __props.isOverlayNavActive,
"scrolled": unref(isVerticalNavScrolled),
"overlay-nav": unref(mdAndDown)
}
]]
}, _attrs), {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<div class="nav-header" data-v-80be9a01${_scopeId}>`);
ssrRenderSlot(_ctx.$slots, "nav-header", {}, () => {
_push2(ssrRenderComponent(_component_NuxtLink, {
to: "/",
class: "app-logo app-title-wrapper"
}, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
var _a;
if (_push3) {
_push3(`<div class="d-flex" data-v-80be9a01${_scopeId2}>${(_a = unref(logo)) != null ? _a : ""}</div><h1 class="leading-normal" data-v-80be9a01${_scopeId2}> sneat </h1>`);
} else {
return [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "leading-normal" }, " sneat ")
];
}
}),
_: 1
}, _parent2, _scopeId));
}, _push2, _parent2, _scopeId);
_push2(`</div>`);
ssrRenderSlot(_ctx.$slots, "before-nav-items", {}, () => {
_push2(`<div class="vertical-nav-items-shadow" data-v-80be9a01${_scopeId}></div>`);
}, _push2, _parent2, _scopeId);
ssrRenderSlot(_ctx.$slots, "nav-items", { updateIsVerticalNavScrolled }, () => {
_push2(ssrRenderComponent(unref(PerfectScrollbar), {
tag: "ul",
class: "nav-items",
options: { wheelPropagation: false },
onPsScrollY: handleNavScroll
}, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push3, _parent3, _scopeId2);
} else {
return [
renderSlot(_ctx.$slots, "default", {}, void 0, true)
];
}
}),
_: 3
}, _parent2, _scopeId));
}, _push2, _parent2, _scopeId);
ssrRenderSlot(_ctx.$slots, "after-nav-items", {}, null, _push2, _parent2, _scopeId);
} else {
return [
createVNode("div", { class: "nav-header" }, [
renderSlot(_ctx.$slots, "nav-header", {}, () => [
createVNode(_component_NuxtLink, {
to: "/",
class: "app-logo app-title-wrapper"
}, {
default: withCtx(() => [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "leading-normal" }, " sneat ")
]),
_: 1
})
], true)
]),
renderSlot(_ctx.$slots, "before-nav-items", {}, () => [
createVNode("div", { class: "vertical-nav-items-shadow" })
], true),
renderSlot(_ctx.$slots, "nav-items", { updateIsVerticalNavScrolled }, () => [
createVNode(unref(PerfectScrollbar), {
tag: "ul",
class: "nav-items",
options: { wheelPropagation: false },
onPsScrollY: handleNavScroll
}, {
default: withCtx(() => [
renderSlot(_ctx.$slots, "default", {}, void 0, true)
]),
_: 3
})
], true),
renderSlot(_ctx.$slots, "after-nav-items", {}, void 0, true)
];
}
}),
_: 3
}), _parent);
};
}
});
const _sfc_setup$2 = _sfc_main$2.setup;
_sfc_main$2.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("@layouts/components/VerticalNav.vue");
return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
};
const VerticalNav = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-80be9a01"]]);
const _sfc_main$1 = defineComponent({
setup(props, { slots }) {
const isOverlayNavActive = ref(false);
const isLayoutOverlayVisible = ref(false);
const toggleIsOverlayNavActive = useToggle(isOverlayNavActive);
const route = useRoute$1();
const { mdAndDown } = useDisplay();
syncRef(isOverlayNavActive, isLayoutOverlayVisible);
return () => {
var _a, _b, _c;
const verticalNav = h(
VerticalNav,
{ isOverlayNavActive: isOverlayNavActive.value, toggleIsOverlayNavActive },
{
"nav-header": () => {
var _a2;
return (_a2 = slots["vertical-nav-header"]) == null ? void 0 : _a2.call(slots, { toggleIsOverlayNavActive });
},
"before-nav-items": () => {
var _a2;
return (_a2 = slots["before-vertical-nav-items"]) == null ? void 0 : _a2.call(slots);
},
"default": () => {
var _a2;
return (_a2 = slots["vertical-nav-content"]) == null ? void 0 : _a2.call(slots);
},
"after-nav-items": () => {
var _a2;
return (_a2 = slots["after-vertical-nav-items"]) == null ? void 0 : _a2.call(slots);
}
}
);
const navbar = h(
"header",
{ class: ["layout-navbar navbar-blur"] },
[
h(
"div",
{ class: "navbar-content-container" },
(_a = slots.navbar) == null ? void 0 : _a.call(slots, {
toggleVerticalOverlayNavActive: toggleIsOverlayNavActive
})
)
]
);
const main = h(
"main",
{ class: "layout-page-content" },
h("div", { class: "page-content-container" }, (_b = slots.default) == null ? void 0 : _b.call(slots))
);
const footer = h(
"footer",
{ class: "layout-footer" },
[
h(
"div",
{ class: "footer-content-container" },
(_c = slots.footer) == null ? void 0 : _c.call(slots)
)
]
);
const layoutOverlay = h(
"div",
{
class: ["layout-overlay", { visible: isLayoutOverlayVisible.value }],
onClick: () => {
isLayoutOverlayVisible.value = !isLayoutOverlayVisible.value;
}
}
);
return h(
"div",
{
class: [
"layout-wrapper layout-nav-type-vertical layout-navbar-static layout-footer-static layout-content-width-fluid",
mdAndDown.value && "layout-overlay-nav",
route.meta.layoutWrapperClasses
]
},
[
verticalNav,
h(
"div",
{ class: "layout-content-wrapper" },
[
navbar,
main,
footer
]
),
layoutOverlay
]
);
};
}
});
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("@layouts/components/VerticalNavLayout.vue");
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "DefaultLayoutWithVerticalNav",
__ssrInlineRender: true,
setup(__props) {
return (_ctx, _push, _parent, _attrs) => {
const _component_IconBtn = resolveComponent("IconBtn");
const _component_NuxtLink = __nuxt_component_0;
_push(ssrRenderComponent(_sfc_main$1, _attrs, {
navbar: withCtx(({ toggleVerticalOverlayNavActive }, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<div class="d-flex h-100 align-center" data-v-4a4e6556${_scopeId}>`);
_push2(ssrRenderComponent(_component_IconBtn, {
class: "ms-n3 d-lg-none",
onClick: ($event) => toggleVerticalOverlayNavActive(true)
}, {
default: withCtx((_, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VIcon, { icon: "bx-menu" }, null, _parent3, _scopeId2));
} else {
return [
createVNode(VIcon, { icon: "bx-menu" })
];
}
}),
_: 2
}, _parent2, _scopeId));
_push2(`<div class="d-flex align-center cursor-pointer ms-lg-n3" style="${ssrRenderStyle({ "user-select": "none" })}" data-v-4a4e6556${_scopeId}>`);
_push2(ssrRenderComponent(_component_IconBtn, null, {
default: withCtx((_, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VIcon, { icon: "bx-search" }, null, _parent3, _scopeId2));
} else {
return [
createVNode(VIcon, { icon: "bx-search" })
];
}
}),
_: 2
}, _parent2, _scopeId));
_push2(`<span class="d-none d-md-flex align-center text-disabled ms-2" data-v-4a4e6556${_scopeId}><span class="me-2" data-v-4a4e6556${_scopeId}>Search</span><span class="meta-key" data-v-4a4e6556${_scopeId}>\u2318K</span></span></div>`);
_push2(ssrRenderComponent(VSpacer, null, null, _parent2, _scopeId));
_push2(ssrRenderComponent(_component_IconBtn, {
href: "https://github.com/themeselection/sneat-vuetify-nuxtjs-admin-template-free",
target: "_blank",
rel: "noopener noreferrer"
}, {
default: withCtx((_, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VIcon, { icon: "bxl-github" }, null, _parent3, _scopeId2));
} else {
return [
createVNode(VIcon, { icon: "bxl-github" })
];
}
}),
_: 2
}, _parent2, _scopeId));
_push2(ssrRenderComponent(_component_IconBtn, null, {
default: withCtx((_, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VIcon, { icon: "bx-bell" }, null, _parent3, _scopeId2));
} else {
return [
createVNode(VIcon, { icon: "bx-bell" })
];
}
}),
_: 2
}, _parent2, _scopeId));
_push2(ssrRenderComponent(_sfc_main$4, { class: "me-1" }, null, _parent2, _scopeId));
_push2(ssrRenderComponent(_sfc_main$5, null, null, _parent2, _scopeId));
_push2(`</div>`);
} else {
return [
createVNode("div", { class: "d-flex h-100 align-center" }, [
createVNode(_component_IconBtn, {
class: "ms-n3 d-lg-none",
onClick: ($event) => toggleVerticalOverlayNavActive(true)
}, {
default: withCtx(() => [
createVNode(VIcon, { icon: "bx-menu" })
]),
_: 1
}, 8, ["onClick"]),
createVNode("div", {
class: "d-flex align-center cursor-pointer ms-lg-n3",
style: { "user-select": "none" }
}, [
createVNode(_component_IconBtn, null, {
default: withCtx(() => [
createVNode(VIcon, { icon: "bx-search" })
]),
_: 1
}),
createVNode("span", { class: "d-none d-md-flex align-center text-disabled ms-2" }, [
createVNode("span", { class: "me-2" }, "Search"),
createVNode("span", { class: "meta-key" }, "\u2318K")
])
]),
createVNode(VSpacer),
createVNode(_component_IconBtn, {
href: "https://github.com/themeselection/sneat-vuetify-nuxtjs-admin-template-free",
target: "_blank",
rel: "noopener noreferrer"
}, {
default: withCtx(() => [
createVNode(VIcon, { icon: "bxl-github" })
]),
_: 1
}),
createVNode(_component_IconBtn, null, {
default: withCtx(() => [
createVNode(VIcon, { icon: "bx-bell" })
]),
_: 1
}),
createVNode(_sfc_main$4, { class: "me-1" }),
createVNode(_sfc_main$5)
])
];
}
}),
"vertical-nav-header": withCtx(({ toggleIsOverlayNavActive }, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(_component_NuxtLink, {
to: "/",
class: "app-logo app-title-wrapper"
}, {
default: withCtx((_, _push3, _parent3, _scopeId2) => {
var _a;
if (_push3) {
_push3(`<div class="d-flex" data-v-4a4e6556${_scopeId2}>${(_a = unref(logo)) != null ? _a : ""}</div><h1 class="app-logo-title" data-v-4a4e6556${_scopeId2}> sneat </h1>`);
} else {
return [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "app-logo-title" }, " sneat ")
];
}
}),
_: 2
}, _parent2, _scopeId));
_push2(ssrRenderComponent(_component_IconBtn, {
class: "d-block d-lg-none",
onClick: ($event) => toggleIsOverlayNavActive(false)
}, {
default: withCtx((_, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VIcon, { icon: "bx-x" }, null, _parent3, _scopeId2));
} else {
return [
createVNode(VIcon, { icon: "bx-x" })
];
}
}),
_: 2
}, _parent2, _scopeId));
} else {
return [
createVNode(_component_NuxtLink, {
to: "/",
class: "app-logo app-title-wrapper"
}, {
default: withCtx(() => [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "app-logo-title" }, " sneat ")
]),
_: 1
}),
createVNode(_component_IconBtn, {
class: "d-block d-lg-none",
onClick: ($event) => toggleIsOverlayNavActive(false)
}, {
default: withCtx(() => [
createVNode(VIcon, { icon: "bx-x" })
]),
_: 1
}, 8, ["onClick"])
];
}
}),
"vertical-nav-content": withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(_sfc_main$3, null, null, _parent2, _scopeId));
} else {
return [
createVNode(_sfc_main$3)
];
}
}),
footer: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(Footer, null, null, _parent2, _scopeId));
} else {
return [
createVNode(Footer)
];
}
}),
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push2, _parent2, _scopeId);
} else {
return [
renderSlot(_ctx.$slots, "default", {}, void 0, true)
];
}
}),
_: 3
}, _parent));
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("layouts/components/DefaultLayoutWithVerticalNav.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
const DefaultLayoutWithVerticalNav = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4a4e6556"]]);
export { DefaultLayoutWithVerticalNav as default };

View File

@@ -0,0 +1,3 @@
const DefaultLayoutWithVerticalNav_vue_vue_type_style_index_0_scoped_4a4e6556_lang = ".meta-key[data-v-4a4e6556]{block-size:1.5625rem;border:thin solid rgba(var(--v-border-color),var(--v-border-opacity));border-radius:6px;line-height:1.3125rem;padding-block:.125rem;padding-inline:.25rem}.app-logo[data-v-4a4e6556]{align-items:center;-moz-column-gap:.75rem;column-gap:.75rem;display:flex}.app-logo .app-logo-title[data-v-4a4e6556]{font-size:1.25rem;font-weight:500;line-height:1.75rem;text-transform:uppercase}";
export { DefaultLayoutWithVerticalNav_vue_vue_type_style_index_0_scoped_4a4e6556_lang as D };

View File

@@ -0,0 +1,5 @@
import { D as DefaultLayoutWithVerticalNav_vue_vue_type_style_index_0_scoped_4a4e6556_lang } from './DefaultLayoutWithVerticalNav-styles-1.mjs-C8Nc23qi.mjs';
const DefaultLayoutWithVerticalNavStyles_BETWH2ct = [DefaultLayoutWithVerticalNav_vue_vue_type_style_index_0_scoped_4a4e6556_lang, DefaultLayoutWithVerticalNav_vue_vue_type_style_index_0_scoped_4a4e6556_lang];
export { DefaultLayoutWithVerticalNavStyles_BETWH2ct as default };

View File

@@ -0,0 +1,5 @@
import { D as DefaultLayoutWithVerticalNav_vue_vue_type_style_index_0_scoped_4a4e6556_lang } from './DefaultLayoutWithVerticalNav-styles-1.mjs-C8Nc23qi.mjs';
const DefaultLayoutWithVerticalNavStyles_bLKRe82Y = [DefaultLayoutWithVerticalNav_vue_vue_type_style_index_0_scoped_4a4e6556_lang];
export { DefaultLayoutWithVerticalNavStyles_bLKRe82Y as default };

View File

@@ -0,0 +1,5 @@
import { E as ErrorHeader_vue_vue_type_style_index_0_scoped_9f58dd66_lang } from './entry-styles-7.mjs-BxAtUIoB.mjs';
const ErrorHeaderStyles_CfiV342G = [ErrorHeader_vue_vue_type_style_index_0_scoped_9f58dd66_lang, ErrorHeader_vue_vue_type_style_index_0_scoped_9f58dd66_lang];
export { ErrorHeaderStyles_CfiV342G as default };

View File

@@ -0,0 +1,5 @@
import { E as ErrorHeader_vue_vue_type_style_index_0_scoped_9f58dd66_lang } from './entry-styles-7.mjs-BxAtUIoB.mjs';
const ErrorHeaderStyles_RU_hCB2x = [ErrorHeader_vue_vue_type_style_index_0_scoped_9f58dd66_lang];
export { ErrorHeaderStyles_RU_hCB2x as default };

View File

@@ -0,0 +1,41 @@
import { mergeProps, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent } from 'vue/server-renderer';
import { _ as _export_sfc, s as VIcon } from './server.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
const _sfc_main = {};
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
_push(`<div${ssrRenderAttrs(mergeProps({ class: "h-100 d-flex align-center justify-md-space-between justify-center" }, _attrs))}><span class="d-flex align-center"> \xA9 ${ssrInterpolate((/* @__PURE__ */ new Date()).getFullYear())} Made With `);
_push(ssrRenderComponent(VIcon, {
icon: "bx-heart",
color: "error",
size: "1.25rem",
class: "mx-1"
}, null, _parent));
_push(` By <a href="https://themeselection.com" target="_blank" rel="noopener noreferrer" class="text-primary ms-1">ThemeSelection</a></span><span class="d-md-flex gap-x-4 text-primary d-none"><a href="https://themeselection.com/license/" target="noopener noreferrer">License</a><a href="https://themeselection.com/" target="noopener noreferrer">More Themes</a><a href="https://demos.themeselection.com/sneat-vuetify-vuejs-admin-template/documentation/" target="noopener noreferrer">Documentation</a><a href="https://themeselection.com/support/" target="noopener noreferrer">Support</a></span></div>`);
}
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("layouts/components/Footer.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
const Footer = /* @__PURE__ */ _export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]);
export { Footer as default };

View File

@@ -0,0 +1,403 @@
import { defineComponent, withCtx, createVNode, ref, mergeProps, unref, resolveDynamicComponent, toDisplayString, useSSRContext } from 'vue';
import { ssrRenderComponent, ssrRenderAttrs, ssrInterpolate, ssrRenderClass, ssrRenderSlot, ssrRenderVNode } from 'vue/server-renderer';
import { s as VIcon } from './server.mjs';
import { _ as __nuxt_component_0 } from './nuxt-link-DwrCF35s.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
__name: "VerticalNavSectionTitle",
__ssrInlineRender: true,
props: {
item: {}
},
setup(__props) {
return (_ctx, _push, _parent, _attrs) => {
_push(`<li${ssrRenderAttrs(mergeProps({ class: "nav-section-title" }, _attrs))}><div class="title-wrapper"><span class="title-text">${ssrInterpolate(__props.item.heading)}</span></div></li>`);
};
}
});
const _sfc_setup$3 = _sfc_main$3.setup;
_sfc_main$3.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("@layouts/components/VerticalNavSectionTitle.vue");
return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
};
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
__name: "VerticalNavGroup",
__ssrInlineRender: true,
props: {
item: {}
},
setup(__props) {
const isOpen = ref(false);
return (_ctx, _push, _parent, _attrs) => {
_push(`<li${ssrRenderAttrs(mergeProps({
class: ["nav-group", unref(isOpen) && "open"]
}, _attrs))}><div class="nav-group-label">`);
_push(ssrRenderComponent(VIcon, {
icon: __props.item.icon || "bxs-circle",
class: "nav-item-icon"
}, null, _parent));
_push(`<span class="nav-item-title">${ssrInterpolate(__props.item.title)}</span><span class="${ssrRenderClass([__props.item.badgeClass, "nav-item-badge"])}">${ssrInterpolate(__props.item.badgeContent)}</span>`);
_push(ssrRenderComponent(VIcon, {
icon: "bx-chevron-right",
class: "nav-group-arrow"
}, null, _parent));
_push(`</div><div class="nav-group-children-wrapper"><ul class="nav-group-children">`);
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
_push(`</ul></div></li>`);
};
}
});
const _sfc_setup$2 = _sfc_main$2.setup;
_sfc_main$2.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("@layouts/components/VerticalNavGroup.vue");
return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
};
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
__name: "VerticalNavLink",
__ssrInlineRender: true,
props: {
item: {}
},
setup(__props) {
return (_ctx, _push, _parent, _attrs) => {
_push(`<li${ssrRenderAttrs(mergeProps({
class: ["nav-link", { disabled: __props.item.disable }]
}, _attrs))}>`);
ssrRenderVNode(_push, createVNode(resolveDynamicComponent(__props.item.to ? unref(__nuxt_component_0) : "a"), {
to: __props.item.to,
href: __props.item.href,
target: __props.item.target
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(VIcon, {
icon: __props.item.icon || "bxs-circle",
class: "nav-item-icon"
}, null, _parent2, _scopeId));
_push2(`<span class="nav-item-title"${_scopeId}>${ssrInterpolate(__props.item.title)}</span><span class="${ssrRenderClass([__props.item.badgeClass, "nav-item-badge"])}"${_scopeId}>${ssrInterpolate(__props.item.badgeContent)}</span>`);
} else {
return [
createVNode(VIcon, {
icon: __props.item.icon || "bxs-circle",
class: "nav-item-icon"
}, null, 8, ["icon"]),
createVNode("span", { class: "nav-item-title" }, toDisplayString(__props.item.title), 1),
createVNode("span", {
class: ["nav-item-badge", __props.item.badgeClass]
}, toDisplayString(__props.item.badgeContent), 3)
];
}
}),
_: 1
}), _parent);
_push(`</li>`);
};
}
});
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("@layouts/components/VerticalNavLink.vue");
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "NavItems",
__ssrInlineRender: true,
setup(__props) {
return (_ctx, _push, _parent, _attrs) => {
_push(`<!--[-->`);
_push(ssrRenderComponent(_sfc_main$2, { item: {
title: "Dashboards",
badgeContent: "5",
badgeClass: "bg-error",
icon: "bx-home-smile"
} }, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(_sfc_main$1, { item: {
title: "Analytics",
to: "/dashboard"
} }, null, _parent2, _scopeId));
_push2(ssrRenderComponent(_sfc_main$1, { item: {
title: "CRM",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/dashboards/crm",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }, null, _parent2, _scopeId));
_push2(ssrRenderComponent(_sfc_main$1, { item: {
title: "ECommerce",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/dashboards/ecommerce",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }, null, _parent2, _scopeId));
_push2(ssrRenderComponent(_sfc_main$1, { item: {
title: "Academy",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/dashboards/academy",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }, null, _parent2, _scopeId));
_push2(ssrRenderComponent(_sfc_main$1, { item: {
title: "Logistics",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/dashboards/logistics",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }, null, _parent2, _scopeId));
} else {
return [
createVNode(_sfc_main$1, { item: {
title: "Analytics",
to: "/dashboard"
} }),
createVNode(_sfc_main$1, { item: {
title: "CRM",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/dashboards/crm",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }),
createVNode(_sfc_main$1, { item: {
title: "ECommerce",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/dashboards/ecommerce",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }),
createVNode(_sfc_main$1, { item: {
title: "Academy",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/dashboards/academy",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }),
createVNode(_sfc_main$1, { item: {
title: "Logistics",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/dashboards/logistics",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} })
];
}
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_sfc_main$2, { item: {
title: "Front Pages",
icon: "bx-file",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(_sfc_main$1, { item: {
title: "Landing",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/front-pages/landing-page",
target: "_blank"
} }, null, _parent2, _scopeId));
_push2(ssrRenderComponent(_sfc_main$1, { item: {
title: "Pricing",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/front-pages/pricing",
target: "_blank"
} }, null, _parent2, _scopeId));
_push2(ssrRenderComponent(_sfc_main$1, { item: {
title: "Payment",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/front-pages/payment",
target: "_blank"
} }, null, _parent2, _scopeId));
_push2(ssrRenderComponent(_sfc_main$1, { item: {
title: "Checkout",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/front-pages/checkout",
target: "_blank"
} }, null, _parent2, _scopeId));
_push2(ssrRenderComponent(_sfc_main$1, { item: {
title: "Help Center",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/front-pages/help-center",
target: "_blank"
} }, null, _parent2, _scopeId));
} else {
return [
createVNode(_sfc_main$1, { item: {
title: "Landing",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/front-pages/landing-page",
target: "_blank"
} }),
createVNode(_sfc_main$1, { item: {
title: "Pricing",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/front-pages/pricing",
target: "_blank"
} }),
createVNode(_sfc_main$1, { item: {
title: "Payment",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/front-pages/payment",
target: "_blank"
} }),
createVNode(_sfc_main$1, { item: {
title: "Checkout",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/front-pages/checkout",
target: "_blank"
} }),
createVNode(_sfc_main$1, { item: {
title: "Help Center",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/front-pages/help-center",
target: "_blank"
} })
];
}
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_sfc_main$3, { item: {
heading: "Apps & Pages"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Email",
icon: "bx-envelope",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/apps/email",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Chat",
icon: "bx-chat",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/apps/chat",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Calendar",
icon: "bx-calendar",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/apps/calendar",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Kanban",
icon: "bx-grid",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/apps/kanban",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Account Settings",
icon: "bx-user",
to: "/account-settings"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Login",
icon: "bx-log-in",
to: "/login"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Register",
icon: "bx-user-plus",
to: "/register"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$3, { item: {
heading: "User Interface"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Typography",
icon: "bx-text",
to: "/typography"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Icons",
icon: "bx-package",
to: "/icons"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Cards",
icon: "bx-credit-card",
to: "/cards"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$3, { item: {
heading: "Forms & Tables"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Form Layouts",
icon: "bx-layout",
to: "/form-layouts"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Form Validation",
icon: "bx-check-circle",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/forms/form-validation",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Form Wizard",
icon: "bx-align-middle",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/forms/form-wizard-numbered",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Tables",
icon: "bx-table",
to: "/tables"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$3, { item: {
heading: "Others"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Access Control",
icon: "bx-command",
href: "https://demos.themeselection.com/sneat-vuetify-nuxtjs-admin-template/demo-1/access-control",
target: "_blank",
badgeContent: "Pro",
badgeClass: "bg-light-primary text-primary"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Documentation",
icon: "bx-file",
href: "https://demos.themeselection.com/sneat-vuetify-vuejs-admin-template/documentation/",
target: "_blank"
} }, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, { item: {
title: "Raise Support",
href: "https://github.com/themeselection/sneat-vuetify-nuxtjs-admin-template-free/issues",
icon: "bx-phone",
target: "_blank"
} }, null, _parent));
_push(`<!--]-->`);
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("layouts/components/NavItems.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as default };

View File

@@ -0,0 +1,166 @@
import { defineComponent, mergeProps, watch, resolveComponent, withCtx, unref, createVNode, toDisplayString, shallowRef, computed, useSSRContext } from 'vue';
import { ssrRenderComponent, ssrInterpolate } from 'vue/server-renderer';
import { t as toRef, a as toValue } from './index-BkwMfZcG.mjs';
import { ab as useTheme, s as VIcon } from './server.mjs';
import { V as VTooltip } from './VTooltip-D5G-PTk1.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
function useCycleList(list, options) {
const state = shallowRef(getInitialValue());
const listRef = toRef(list);
const index = computed({
get() {
var _a;
const targetList = listRef.value;
let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);
if (index2 < 0)
index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;
return index2;
},
set(v) {
set2(v);
}
});
function set2(i) {
const targetList = listRef.value;
const length = targetList.length;
const index2 = (i % length + length) % length;
const value = targetList[index2];
state.value = value;
return value;
}
function shift(delta = 1) {
return set2(index.value + delta);
}
function next(n = 1) {
return shift(n);
}
function prev(n = 1) {
return shift(-n);
}
function getInitialValue() {
var _a, _b;
return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;
}
watch(listRef, () => set2(index.value));
return {
state,
index,
next,
prev,
go: set2
};
}
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
__name: "ThemeSwitcher",
__ssrInlineRender: true,
props: {
themes: {}
},
setup(__props) {
const props = __props;
const { name: themeName, global: globalTheme } = useTheme();
const { state: currentThemeName, next: getNextThemeName, index: currentThemeIndex } = useCycleList(props.themes.map((t) => t.name), { initialValue: themeName });
const changeTheme = () => {
globalTheme.name.value = getNextThemeName();
};
watch(() => globalTheme.name.value, (val) => {
currentThemeName.value = val;
});
return (_ctx, _push, _parent, _attrs) => {
const _component_IconBtn = resolveComponent("IconBtn");
_push(ssrRenderComponent(_component_IconBtn, mergeProps({ onClick: changeTheme }, _attrs), {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(VIcon, {
icon: props.themes[unref(currentThemeIndex)].icon
}, null, _parent2, _scopeId));
_push2(ssrRenderComponent(VTooltip, {
activator: "parent",
"open-delay": "1000",
"scroll-strategy": "close"
}, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(`<span class="text-capitalize"${_scopeId2}>${ssrInterpolate(unref(currentThemeName))}</span>`);
} else {
return [
createVNode("span", { class: "text-capitalize" }, toDisplayString(unref(currentThemeName)), 1)
];
}
}),
_: 1
}, _parent2, _scopeId));
} else {
return [
createVNode(VIcon, {
icon: props.themes[unref(currentThemeIndex)].icon
}, null, 8, ["icon"]),
createVNode(VTooltip, {
activator: "parent",
"open-delay": "1000",
"scroll-strategy": "close"
}, {
default: withCtx(() => [
createVNode("span", { class: "text-capitalize" }, toDisplayString(unref(currentThemeName)), 1)
]),
_: 1
})
];
}
}),
_: 1
}, _parent));
};
}
});
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("@core/components/ThemeSwitcher.vue");
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "NavbarThemeSwitcher",
__ssrInlineRender: true,
setup(__props) {
const themes = [
{
name: "light",
icon: "bx-sun"
},
{
name: "dark",
icon: "bx-moon"
}
];
return (_ctx, _push, _parent, _attrs) => {
const _component_ThemeSwitcher = _sfc_main$1;
_push(ssrRenderComponent(_component_ThemeSwitcher, mergeProps({ themes }, _attrs), null, _parent));
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("layouts/components/NavbarThemeSwitcher.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as default };

View File

@@ -0,0 +1,5 @@
import { U as UpgradeToPro_vue_vue_type_style_index_0_scoped_7c6a1f7e_lang } from './entry-styles-6.mjs-56WdIDRV.mjs';
const UpgradeToProStyles_CE58FfDk = [UpgradeToPro_vue_vue_type_style_index_0_scoped_7c6a1f7e_lang, UpgradeToPro_vue_vue_type_style_index_0_scoped_7c6a1f7e_lang];
export { UpgradeToProStyles_CE58FfDk as default };

View File

@@ -0,0 +1,5 @@
import { U as UpgradeToPro_vue_vue_type_style_index_0_scoped_7c6a1f7e_lang } from './entry-styles-6.mjs-56WdIDRV.mjs';
const UpgradeToProStyles_CcXTmuY4 = [UpgradeToPro_vue_vue_type_style_index_0_scoped_7c6a1f7e_lang];
export { UpgradeToProStyles_CcXTmuY4 as default };

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,421 @@
import { computed, createVNode, mergeProps, shallowRef, ref, withDirectives, Fragment, resolveDirective, inject, nextTick, provide, onScopeDispose, toRef } from 'vue';
import { g as genericComponent, p as propsFactory, n as useProxiedModel, a5 as getUid, a as useRender, aK as filterInputAttrs, r as omit, I as IconValue, af as Ripple, s as VIcon, m as makeComponentProps, ai as useDensity, w as wrapInArray, at as useTextColor, a0 as useBackgroundColor, A as matchesSelector, K as makeThemeProps, P as makeDensityProps, U as deepEqual, G as provideDefaults } from './server.mjs';
import { c as useFocus, d as VInput, e as makeVInputProps, b as VLabel } from './VTextField-Bxu4ONGD.mjs';
const VSelectionControlGroupSymbol = Symbol.for("vuetify:selection-control-group");
const makeSelectionControlGroupProps = propsFactory({
color: String,
disabled: {
type: Boolean,
default: null
},
defaultsTarget: String,
error: Boolean,
id: String,
inline: Boolean,
falseIcon: IconValue,
trueIcon: IconValue,
ripple: {
type: [Boolean, Object],
default: true
},
multiple: {
type: Boolean,
default: null
},
name: String,
readonly: {
type: Boolean,
default: null
},
modelValue: null,
type: String,
valueComparator: {
type: Function,
default: deepEqual
},
...makeComponentProps(),
...makeDensityProps(),
...makeThemeProps()
}, "SelectionControlGroup");
const makeVSelectionControlGroupProps = propsFactory({
...makeSelectionControlGroupProps({
defaultsTarget: "VSelectionControl"
})
}, "VSelectionControlGroup");
genericComponent()({
name: "VSelectionControlGroup",
props: makeVSelectionControlGroupProps(),
emits: {
"update:modelValue": (value) => true
},
setup(props, _ref) {
let {
slots
} = _ref;
const modelValue = useProxiedModel(props, "modelValue");
const uid = getUid();
const id = computed(() => props.id || `v-selection-control-group-${uid}`);
const name = computed(() => props.name || id.value);
const updateHandlers = /* @__PURE__ */ new Set();
provide(VSelectionControlGroupSymbol, {
modelValue,
forceUpdate: () => {
updateHandlers.forEach((fn) => fn());
},
onForceUpdate: (cb) => {
updateHandlers.add(cb);
onScopeDispose(() => {
updateHandlers.delete(cb);
});
}
});
provideDefaults({
[props.defaultsTarget]: {
color: toRef(props, "color"),
disabled: toRef(props, "disabled"),
density: toRef(props, "density"),
error: toRef(props, "error"),
inline: toRef(props, "inline"),
modelValue,
multiple: computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),
name,
falseIcon: toRef(props, "falseIcon"),
trueIcon: toRef(props, "trueIcon"),
readonly: toRef(props, "readonly"),
ripple: toRef(props, "ripple"),
type: toRef(props, "type"),
valueComparator: toRef(props, "valueComparator")
}
});
useRender(() => {
var _a;
return createVNode("div", {
"class": ["v-selection-control-group", {
"v-selection-control-group--inline": props.inline
}, props.class],
"style": props.style,
"role": props.type === "radio" ? "radiogroup" : void 0
}, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
});
return {};
}
});
const makeVSelectionControlProps = propsFactory({
label: String,
baseColor: String,
trueValue: null,
falseValue: null,
value: null,
...makeComponentProps(),
...makeSelectionControlGroupProps()
}, "VSelectionControl");
function useSelectionControl(props) {
const group = inject(VSelectionControlGroupSymbol, void 0);
const {
densityClasses
} = useDensity(props);
const modelValue = useProxiedModel(props, "modelValue");
const trueValue = computed(() => props.trueValue !== void 0 ? props.trueValue : props.value !== void 0 ? props.value : true);
const falseValue = computed(() => props.falseValue !== void 0 ? props.falseValue : false);
const isMultiple = computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value));
const model = computed({
get() {
const val = group ? group.modelValue.value : modelValue.value;
return isMultiple.value ? wrapInArray(val).some((v) => props.valueComparator(v, trueValue.value)) : props.valueComparator(val, trueValue.value);
},
set(val) {
if (props.readonly) return;
const currentValue = val ? trueValue.value : falseValue.value;
let newVal = currentValue;
if (isMultiple.value) {
newVal = val ? [...wrapInArray(modelValue.value), currentValue] : wrapInArray(modelValue.value).filter((item) => !props.valueComparator(item, trueValue.value));
}
if (group) {
group.modelValue.value = newVal;
} else {
modelValue.value = newVal;
}
}
});
const {
textColorClasses,
textColorStyles
} = useTextColor(computed(() => {
if (props.error || props.disabled) return void 0;
return model.value ? props.color : props.baseColor;
}));
const {
backgroundColorClasses,
backgroundColorStyles
} = useBackgroundColor(computed(() => {
return model.value && !props.error && !props.disabled ? props.color : props.baseColor;
}));
const icon = computed(() => model.value ? props.trueIcon : props.falseIcon);
return {
group,
densityClasses,
trueValue,
falseValue,
model,
textColorClasses,
textColorStyles,
backgroundColorClasses,
backgroundColorStyles,
icon
};
}
const VSelectionControl = genericComponent()({
name: "VSelectionControl",
directives: {
Ripple
},
inheritAttrs: false,
props: makeVSelectionControlProps(),
emits: {
"update:modelValue": (value) => true
},
setup(props, _ref) {
let {
attrs,
slots
} = _ref;
const {
group,
densityClasses,
icon,
model,
textColorClasses,
textColorStyles,
backgroundColorClasses,
backgroundColorStyles,
trueValue
} = useSelectionControl(props);
const uid = getUid();
const isFocused = shallowRef(false);
const isFocusVisible = shallowRef(false);
const input = ref();
const id = computed(() => props.id || `input-${uid}`);
const isInteractive = computed(() => !props.disabled && !props.readonly);
group == null ? void 0 : group.onForceUpdate(() => {
if (input.value) {
input.value.checked = model.value;
}
});
function onFocus(e) {
if (!isInteractive.value) return;
isFocused.value = true;
if (matchesSelector(e.target) !== false) {
isFocusVisible.value = true;
}
}
function onBlur() {
isFocused.value = false;
isFocusVisible.value = false;
}
function onClickLabel(e) {
e.stopPropagation();
}
function onInput(e) {
if (!isInteractive.value) {
if (input.value) {
input.value.checked = model.value;
}
return;
}
if (props.readonly && group) {
nextTick(() => group.forceUpdate());
}
model.value = e.target.checked;
}
useRender(() => {
var _a2;
var _a, _b;
const label = slots.label ? slots.label({
label: props.label,
props: {
for: id.value
}
}) : props.label;
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
const inputNode = createVNode("input", mergeProps({
"ref": input,
"checked": model.value,
"disabled": !!props.disabled,
"id": id.value,
"onBlur": onBlur,
"onFocus": onFocus,
"onInput": onInput,
"aria-disabled": !!props.disabled,
"aria-label": props.label,
"type": props.type,
"value": trueValue.value,
"name": props.name,
"aria-checked": props.type === "checkbox" ? model.value : void 0
}, inputAttrs), null);
return createVNode("div", mergeProps({
"class": ["v-selection-control", {
"v-selection-control--dirty": model.value,
"v-selection-control--disabled": props.disabled,
"v-selection-control--error": props.error,
"v-selection-control--focused": isFocused.value,
"v-selection-control--focus-visible": isFocusVisible.value,
"v-selection-control--inline": props.inline
}, densityClasses.value, props.class]
}, rootAttrs, {
"style": props.style
}), [createVNode("div", {
"class": ["v-selection-control__wrapper", textColorClasses.value],
"style": textColorStyles.value
}, [(_a = slots.default) == null ? void 0 : _a.call(slots, {
backgroundColorClasses,
backgroundColorStyles
}), withDirectives(createVNode("div", {
"class": ["v-selection-control__input"]
}, [(_a2 = (_b = slots.input) == null ? void 0 : _b.call(slots, {
model,
textColorClasses,
textColorStyles,
backgroundColorClasses,
backgroundColorStyles,
inputNode,
icon: icon.value,
props: {
onFocus,
onBlur,
id: id.value
}
})) != null ? _a2 : createVNode(Fragment, null, [icon.value && createVNode(VIcon, {
"key": "icon",
"icon": icon.value
}, null), inputNode])]), [[resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ["center", "circle"]]]])]), label && createVNode(VLabel, {
"for": id.value,
"onClick": onClickLabel
}, {
default: () => [label]
})]);
});
return {
isFocused,
input
};
}
});
const makeVCheckboxBtnProps = propsFactory({
indeterminate: Boolean,
indeterminateIcon: {
type: IconValue,
default: "$checkboxIndeterminate"
},
...makeVSelectionControlProps({
falseIcon: "$checkboxOff",
trueIcon: "$checkboxOn"
})
}, "VCheckboxBtn");
const VCheckboxBtn = genericComponent()({
name: "VCheckboxBtn",
props: makeVCheckboxBtnProps(),
emits: {
"update:modelValue": (value) => true,
"update:indeterminate": (value) => true
},
setup(props, _ref) {
let {
slots
} = _ref;
const indeterminate = useProxiedModel(props, "indeterminate");
const model = useProxiedModel(props, "modelValue");
function onChange(v) {
if (indeterminate.value) {
indeterminate.value = false;
}
}
const falseIcon = computed(() => {
return indeterminate.value ? props.indeterminateIcon : props.falseIcon;
});
const trueIcon = computed(() => {
return indeterminate.value ? props.indeterminateIcon : props.trueIcon;
});
useRender(() => {
const controlProps = omit(VSelectionControl.filterProps(props), ["modelValue"]);
return createVNode(VSelectionControl, mergeProps(controlProps, {
"modelValue": model.value,
"onUpdate:modelValue": [($event) => model.value = $event, onChange],
"class": ["v-checkbox-btn", props.class],
"style": props.style,
"type": "checkbox",
"falseIcon": falseIcon.value,
"trueIcon": trueIcon.value,
"aria-checked": indeterminate.value ? "mixed" : void 0
}), slots);
});
return {};
}
});
const makeVCheckboxProps = propsFactory({
...makeVInputProps(),
...omit(makeVCheckboxBtnProps(), ["inline"])
}, "VCheckbox");
const VCheckbox = genericComponent()({
name: "VCheckbox",
inheritAttrs: false,
props: makeVCheckboxProps(),
emits: {
"update:modelValue": (value) => true,
"update:focused": (focused) => true
},
setup(props, _ref) {
let {
attrs,
slots
} = _ref;
const model = useProxiedModel(props, "modelValue");
const {
isFocused,
focus,
blur
} = useFocus(props);
const uid = getUid();
const id = computed(() => props.id || `checkbox-${uid}`);
useRender(() => {
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
const inputProps = VInput.filterProps(props);
const checkboxProps = VCheckboxBtn.filterProps(props);
return createVNode(VInput, mergeProps({
"class": ["v-checkbox", props.class]
}, rootAttrs, inputProps, {
"modelValue": model.value,
"onUpdate:modelValue": ($event) => model.value = $event,
"id": id.value,
"focused": isFocused.value,
"style": props.style
}), {
...slots,
default: (_ref2) => {
let {
id: id2,
messagesId,
isDisabled,
isReadonly,
isValid
} = _ref2;
return createVNode(VCheckboxBtn, mergeProps(checkboxProps, {
"id": id2.value,
"aria-describedby": messagesId.value,
"disabled": isDisabled.value,
"readonly": isReadonly.value
}, controlAttrs, {
"error": isValid.value === false,
"modelValue": model.value,
"onUpdate:modelValue": ($event) => model.value = $event,
"onFocus": focus,
"onBlur": blur
}), slots);
}
});
});
return {};
}
});
export { VCheckbox as V, VCheckboxBtn as a };

View File

@@ -0,0 +1,329 @@
import { computed, withDirectives, createVNode, mergeProps, vShow, Fragment, resolveDirective, toRef } from 'vue';
import { a as VExpandXTransition } from './index-BNHdF426.mjs';
import { m as makeVSlideGroupProps, d as VSlideGroup } from './VTabs-BaH4QY_R.mjs';
import { g as genericComponent, p as propsFactory, af as Ripple, l as useLocale, ag as useBorder, ah as useVariant, ai as useDensity, aj as useElevation, ak as useRounded, al as useSize, F as provideTheme, n as useProxiedModel, am as useGroupItem, an as useLink, ao as genOverlays, s as VIcon, y as VDefaultsProvider, v as VAvatar, J as makeVariantProps, K as makeThemeProps, L as makeTagProps, M as makeSizeProps, ap as makeRouterProps, N as makeRoundedProps, aq as makeGroupItemProps, O as makeElevationProps, P as makeDensityProps, m as makeComponentProps, Q as makeBorderProps, a2 as EventProp, I as IconValue, ad as makeGroupProps, U as deepEqual, ae as useGroup, G as provideDefaults, a as useRender } from './server.mjs';
const VChipGroupSymbol = Symbol.for("vuetify:v-chip-group");
const makeVChipGroupProps = propsFactory({
column: Boolean,
filter: Boolean,
valueComparator: {
type: Function,
default: deepEqual
},
...makeVSlideGroupProps(),
...makeComponentProps(),
...makeGroupProps({
selectedClass: "v-chip--selected"
}),
...makeTagProps(),
...makeThemeProps(),
...makeVariantProps({
variant: "tonal"
})
}, "VChipGroup");
genericComponent()({
name: "VChipGroup",
props: makeVChipGroupProps(),
emits: {
"update:modelValue": (value) => true
},
setup(props, _ref) {
let {
slots
} = _ref;
const {
themeClasses
} = provideTheme(props);
const {
isSelected,
select,
next,
prev,
selected
} = useGroup(props, VChipGroupSymbol);
provideDefaults({
VChip: {
color: toRef(props, "color"),
disabled: toRef(props, "disabled"),
filter: toRef(props, "filter"),
variant: toRef(props, "variant")
}
});
useRender(() => {
const slideGroupProps = VSlideGroup.filterProps(props);
return createVNode(VSlideGroup, mergeProps(slideGroupProps, {
"class": ["v-chip-group", {
"v-chip-group--column": props.column
}, themeClasses.value, props.class],
"style": props.style
}), {
default: () => {
var _a;
return [(_a = slots.default) == null ? void 0 : _a.call(slots, {
isSelected,
select,
next,
prev,
selected: selected.value
})];
}
});
});
return {};
}
});
const makeVChipProps = propsFactory({
activeClass: String,
appendAvatar: String,
appendIcon: IconValue,
closable: Boolean,
closeIcon: {
type: IconValue,
default: "$delete"
},
closeLabel: {
type: String,
default: "$vuetify.close"
},
draggable: Boolean,
filter: Boolean,
filterIcon: {
type: IconValue,
default: "$complete"
},
label: Boolean,
link: {
type: Boolean,
default: void 0
},
pill: Boolean,
prependAvatar: String,
prependIcon: IconValue,
ripple: {
type: [Boolean, Object],
default: true
},
text: String,
modelValue: {
type: Boolean,
default: true
},
onClick: EventProp(),
onClickOnce: EventProp(),
...makeBorderProps(),
...makeComponentProps(),
...makeDensityProps(),
...makeElevationProps(),
...makeGroupItemProps(),
...makeRoundedProps(),
...makeRouterProps(),
...makeSizeProps(),
...makeTagProps({
tag: "span"
}),
...makeThemeProps(),
...makeVariantProps({
variant: "tonal"
})
}, "VChip");
const VChip = genericComponent()({
name: "VChip",
directives: {
Ripple
},
props: makeVChipProps(),
emits: {
"click:close": (e) => true,
"update:modelValue": (value) => true,
"group:selected": (val) => true,
click: (e) => true
},
setup(props, _ref) {
let {
attrs,
emit,
slots
} = _ref;
const {
t
} = useLocale();
const {
borderClasses
} = useBorder(props);
const {
colorClasses,
colorStyles,
variantClasses
} = useVariant(props);
const {
densityClasses
} = useDensity(props);
const {
elevationClasses
} = useElevation(props);
const {
roundedClasses
} = useRounded(props);
const {
sizeClasses
} = useSize(props);
const {
themeClasses
} = provideTheme(props);
const isActive = useProxiedModel(props, "modelValue");
const group = useGroupItem(props, VChipGroupSymbol, false);
const link = useLink(props, attrs);
const isLink = computed(() => props.link !== false && link.isLink.value);
const isClickable = computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
const closeProps = computed(() => ({
"aria-label": t(props.closeLabel),
onClick(e) {
e.preventDefault();
e.stopPropagation();
isActive.value = false;
emit("click:close", e);
}
}));
function onClick(e) {
var _a;
emit("click", e);
if (!isClickable.value) return;
(_a = link.navigate) == null ? void 0 : _a.call(link, e);
group == null ? void 0 : group.toggle();
}
function onKeyDown(e) {
if (e.key === "Enter" || e.key === " ") {
e.preventDefault();
onClick(e);
}
}
return () => {
var _a;
const Tag = link.isLink.value ? "a" : props.tag;
const hasAppendMedia = !!(props.appendIcon || props.appendAvatar);
const hasAppend = !!(hasAppendMedia || slots.append);
const hasClose = !!(slots.close || props.closable);
const hasFilter = !!(slots.filter || props.filter) && group;
const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
const hasPrepend = !!(hasPrependMedia || slots.prepend);
const hasColor = !group || group.isSelected.value;
return isActive.value && withDirectives(createVNode(Tag, mergeProps({
"class": ["v-chip", {
"v-chip--disabled": props.disabled,
"v-chip--label": props.label,
"v-chip--link": isClickable.value,
"v-chip--filter": hasFilter,
"v-chip--pill": props.pill,
[`${props.activeClass}`]: props.activeClass && ((_a = link.isActive) == null ? void 0 : _a.value)
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : void 0, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group == null ? void 0 : group.selectedClass.value, props.class],
"style": [hasColor ? colorStyles.value : void 0, props.style],
"disabled": props.disabled || void 0,
"draggable": props.draggable,
"tabindex": isClickable.value ? 0 : void 0,
"onClick": onClick,
"onKeydown": isClickable.value && !isLink.value && onKeyDown
}, link.linkProps), {
default: () => {
var _a3;
var _a2;
return [genOverlays(isClickable.value, "v-chip"), hasFilter && createVNode(VExpandXTransition, {
"key": "filter"
}, {
default: () => [withDirectives(createVNode("div", {
"class": "v-chip__filter"
}, [!slots.filter ? createVNode(VIcon, {
"key": "filter-icon",
"icon": props.filterIcon
}, null) : createVNode(VDefaultsProvider, {
"key": "filter-defaults",
"disabled": !props.filterIcon,
"defaults": {
VIcon: {
icon: props.filterIcon
}
}
}, slots.filter)]), [[vShow, group.isSelected.value]])]
}), hasPrepend && createVNode("div", {
"key": "prepend",
"class": "v-chip__prepend"
}, [!slots.prepend ? createVNode(Fragment, null, [props.prependIcon && createVNode(VIcon, {
"key": "prepend-icon",
"icon": props.prependIcon,
"start": true
}, null), props.prependAvatar && createVNode(VAvatar, {
"key": "prepend-avatar",
"image": props.prependAvatar,
"start": true
}, null)]) : createVNode(VDefaultsProvider, {
"key": "prepend-defaults",
"disabled": !hasPrependMedia,
"defaults": {
VAvatar: {
image: props.prependAvatar,
start: true
},
VIcon: {
icon: props.prependIcon,
start: true
}
}
}, slots.prepend)]), createVNode("div", {
"class": "v-chip__content",
"data-no-activator": ""
}, [(_a3 = (_a2 = slots.default) == null ? void 0 : _a2.call(slots, {
isSelected: group == null ? void 0 : group.isSelected.value,
selectedClass: group == null ? void 0 : group.selectedClass.value,
select: group == null ? void 0 : group.select,
toggle: group == null ? void 0 : group.toggle,
value: group == null ? void 0 : group.value.value,
disabled: props.disabled
})) != null ? _a3 : props.text]), hasAppend && createVNode("div", {
"key": "append",
"class": "v-chip__append"
}, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
"key": "append-icon",
"end": true,
"icon": props.appendIcon
}, null), props.appendAvatar && createVNode(VAvatar, {
"key": "append-avatar",
"end": true,
"image": props.appendAvatar
}, null)]) : createVNode(VDefaultsProvider, {
"key": "append-defaults",
"disabled": !hasAppendMedia,
"defaults": {
VAvatar: {
end: true,
image: props.appendAvatar
},
VIcon: {
end: true,
icon: props.appendIcon
}
}
}, slots.append)]), hasClose && createVNode("button", mergeProps({
"key": "close",
"class": "v-chip__close",
"type": "button",
"data-testid": "close-chip"
}, closeProps.value), [!slots.close ? createVNode(VIcon, {
"key": "close-icon",
"icon": props.closeIcon,
"size": "x-small"
}, null) : createVNode(VDefaultsProvider, {
"key": "close-defaults",
"defaults": {
VIcon: {
icon: props.closeIcon,
size: "x-small"
}
}
}, slots.close)])];
}
}), [[resolveDirective("ripple"), isClickable.value && props.ripple, null]]);
};
}
});
export { VChip as V };

View File

@@ -0,0 +1,66 @@
import { toRef, computed, createVNode } from 'vue';
import { g as genericComponent, p as propsFactory, F as provideTheme, at as useTextColor, j as convertToUnit, a as useRender, K as makeThemeProps, m as makeComponentProps } from './server.mjs';
const makeVDividerProps = propsFactory({
color: String,
inset: Boolean,
length: [Number, String],
opacity: [Number, String],
thickness: [Number, String],
vertical: Boolean,
...makeComponentProps(),
...makeThemeProps()
}, "VDivider");
const VDivider = genericComponent()({
name: "VDivider",
props: makeVDividerProps(),
setup(props, _ref) {
let {
attrs,
slots
} = _ref;
const {
themeClasses
} = provideTheme(props);
const {
textColorClasses,
textColorStyles
} = useTextColor(toRef(props, "color"));
const dividerStyles = computed(() => {
const styles = {};
if (props.length) {
styles[props.vertical ? "height" : "width"] = convertToUnit(props.length);
}
if (props.thickness) {
styles[props.vertical ? "borderRightWidth" : "borderTopWidth"] = convertToUnit(props.thickness);
}
return styles;
});
useRender(() => {
const divider = createVNode("hr", {
"class": [{
"v-divider": true,
"v-divider--inset": props.inset,
"v-divider--vertical": props.vertical
}, themeClasses.value, textColorClasses.value, props.class],
"style": [dividerStyles.value, textColorStyles.value, {
"--v-border-opacity": props.opacity
}, props.style],
"aria-orientation": !attrs.role || attrs.role === "separator" ? props.vertical ? "vertical" : "horizontal" : void 0,
"role": `${attrs.role || "separator"}`
}, null);
if (!slots.default) return divider;
return createVNode("div", {
"class": ["v-divider__wrapper", {
"v-divider__wrapper--vertical": props.vertical,
"v-divider__wrapper--inset": props.inset
}]
}, [divider, createVNode("div", {
"class": "v-divider__content"
}, [slots.default()]), divider]);
});
return {};
}
});
export { VDivider as V };

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,28 @@
import { createVNode } from 'vue';
import { g as genericComponent, p as propsFactory, a as useRender, L as makeTagProps, m as makeComponentProps } from './server.mjs';
const makeVListItemActionProps = propsFactory({
start: Boolean,
end: Boolean,
...makeComponentProps(),
...makeTagProps()
}, "VListItemAction");
const VListItemAction = genericComponent()({
name: "VListItemAction",
props: makeVListItemActionProps(),
setup(props, _ref) {
let {
slots
} = _ref;
useRender(() => createVNode(props.tag, {
"class": ["v-list-item-action", {
"v-list-item-action--start": props.start,
"v-list-item-action--end": props.end
}, props.class],
"style": props.style
}, slots));
return {};
}
});
export { VListItemAction as V };

View File

@@ -0,0 +1,230 @@
import { g as genericComponent, p as propsFactory, L as makeTagProps, m as makeComponentProps, aS as breakpoints } from './server.mjs';
import { computed, h, capitalize } from 'vue';
const breakpointProps = (() => {
return breakpoints.reduce((props, val) => {
props[val] = {
type: [Boolean, String, Number],
default: false
};
return props;
}, {});
})();
const offsetProps = (() => {
return breakpoints.reduce((props, val) => {
const offsetKey = "offset" + capitalize(val);
props[offsetKey] = {
type: [String, Number],
default: null
};
return props;
}, {});
})();
const orderProps = (() => {
return breakpoints.reduce((props, val) => {
const orderKey = "order" + capitalize(val);
props[orderKey] = {
type: [String, Number],
default: null
};
return props;
}, {});
})();
const propMap$1 = {
col: Object.keys(breakpointProps),
offset: Object.keys(offsetProps),
order: Object.keys(orderProps)
};
function breakpointClass$1(type, prop, val) {
let className = type;
if (val == null || val === false) {
return void 0;
}
if (prop) {
const breakpoint = prop.replace(type, "");
className += `-${breakpoint}`;
}
if (type === "col") {
className = "v-" + className;
}
if (type === "col" && (val === "" || val === true)) {
return className.toLowerCase();
}
className += `-${val}`;
return className.toLowerCase();
}
const ALIGN_SELF_VALUES = ["auto", "start", "end", "center", "baseline", "stretch"];
const makeVColProps = propsFactory({
cols: {
type: [Boolean, String, Number],
default: false
},
...breakpointProps,
offset: {
type: [String, Number],
default: null
},
...offsetProps,
order: {
type: [String, Number],
default: null
},
...orderProps,
alignSelf: {
type: String,
default: null,
validator: (str) => ALIGN_SELF_VALUES.includes(str)
},
...makeComponentProps(),
...makeTagProps()
}, "VCol");
const VCol = genericComponent()({
name: "VCol",
props: makeVColProps(),
setup(props, _ref) {
let {
slots
} = _ref;
const classes = computed(() => {
const classList = [];
let type;
for (type in propMap$1) {
propMap$1[type].forEach((prop) => {
const value = props[prop];
const className = breakpointClass$1(type, prop, value);
if (className) classList.push(className);
});
}
const hasColClasses = classList.some((className) => className.startsWith("v-col-"));
classList.push({
// Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.
"v-col": !hasColClasses || !props.cols,
[`v-col-${props.cols}`]: props.cols,
[`offset-${props.offset}`]: props.offset,
[`order-${props.order}`]: props.order,
[`align-self-${props.alignSelf}`]: props.alignSelf
});
return classList;
});
return () => {
var _a;
return h(props.tag, {
class: [classes.value, props.class],
style: props.style
}, (_a = slots.default) == null ? void 0 : _a.call(slots));
};
}
});
const ALIGNMENT = ["start", "end", "center"];
const SPACE = ["space-between", "space-around", "space-evenly"];
function makeRowProps(prefix, def) {
return breakpoints.reduce((props, val) => {
const prefixKey = prefix + capitalize(val);
props[prefixKey] = def();
return props;
}, {});
}
const ALIGN_VALUES = [...ALIGNMENT, "baseline", "stretch"];
const alignValidator = (str) => ALIGN_VALUES.includes(str);
const alignProps = makeRowProps("align", () => ({
type: String,
default: null,
validator: alignValidator
}));
const JUSTIFY_VALUES = [...ALIGNMENT, ...SPACE];
const justifyValidator = (str) => JUSTIFY_VALUES.includes(str);
const justifyProps = makeRowProps("justify", () => ({
type: String,
default: null,
validator: justifyValidator
}));
const ALIGN_CONTENT_VALUES = [...ALIGNMENT, ...SPACE, "stretch"];
const alignContentValidator = (str) => ALIGN_CONTENT_VALUES.includes(str);
const alignContentProps = makeRowProps("alignContent", () => ({
type: String,
default: null,
validator: alignContentValidator
}));
const propMap = {
align: Object.keys(alignProps),
justify: Object.keys(justifyProps),
alignContent: Object.keys(alignContentProps)
};
const classMap = {
align: "align",
justify: "justify",
alignContent: "align-content"
};
function breakpointClass(type, prop, val) {
let className = classMap[type];
if (val == null) {
return void 0;
}
if (prop) {
const breakpoint = prop.replace(type, "");
className += `-${breakpoint}`;
}
className += `-${val}`;
return className.toLowerCase();
}
const makeVRowProps = propsFactory({
dense: Boolean,
noGutters: Boolean,
align: {
type: String,
default: null,
validator: alignValidator
},
...alignProps,
justify: {
type: String,
default: null,
validator: justifyValidator
},
...justifyProps,
alignContent: {
type: String,
default: null,
validator: alignContentValidator
},
...alignContentProps,
...makeComponentProps(),
...makeTagProps()
}, "VRow");
const VRow = genericComponent()({
name: "VRow",
props: makeVRowProps(),
setup(props, _ref) {
let {
slots
} = _ref;
const classes = computed(() => {
const classList = [];
let type;
for (type in propMap) {
propMap[type].forEach((prop) => {
const value = props[prop];
const className = breakpointClass(type, prop, value);
if (className) classList.push(className);
});
}
classList.push({
"v-row--no-gutters": props.noGutters,
"v-row--dense": props.dense,
[`align-${props.align}`]: props.align,
[`justify-${props.justify}`]: props.justify,
[`align-content-${props.alignContent}`]: props.alignContent
});
return classList;
});
return () => {
var _a;
return h(props.tag, {
class: ["v-row", classes.value, props.class],
style: props.style
}, (_a = slots.default) == null ? void 0 : _a.call(slots));
};
}
});
export { VRow as V, VCol as a };

View File

@@ -0,0 +1,5 @@
import { aD as createSimpleFunctional } from './server.mjs';
const VSpacer = createSimpleFunctional("v-spacer", "div", "VSpacer");
export { VSpacer as V };

View File

@@ -0,0 +1,53 @@
import { createVNode } from 'vue';
import { g as genericComponent, p as propsFactory, F as provideTheme, ai as useDensity, a as useRender, j as convertToUnit, K as makeThemeProps, L as makeTagProps, P as makeDensityProps, m as makeComponentProps } from './server.mjs';
const makeVTableProps = propsFactory({
fixedHeader: Boolean,
fixedFooter: Boolean,
height: [Number, String],
hover: Boolean,
...makeComponentProps(),
...makeDensityProps(),
...makeTagProps(),
...makeThemeProps()
}, "VTable");
const VTable = genericComponent()({
name: "VTable",
props: makeVTableProps(),
setup(props, _ref) {
let {
slots,
emit
} = _ref;
const {
themeClasses
} = provideTheme(props);
const {
densityClasses
} = useDensity(props);
useRender(() => createVNode(props.tag, {
"class": ["v-table", {
"v-table--fixed-height": !!props.height,
"v-table--fixed-header": props.fixedHeader,
"v-table--fixed-footer": props.fixedFooter,
"v-table--has-top": !!slots.top,
"v-table--has-bottom": !!slots.bottom,
"v-table--hover": props.hover
}, themeClasses.value, densityClasses.value, props.class],
"style": props.style
}, {
default: () => {
var _a, _b, _c;
return [(_a = slots.top) == null ? void 0 : _a.call(slots), slots.default ? createVNode("div", {
"class": "v-table__wrapper",
"style": {
height: convertToUnit(props.height)
}
}, [createVNode("table", null, [slots.default()])]) : (_b = slots.wrapper) == null ? void 0 : _b.call(slots), (_c = slots.bottom) == null ? void 0 : _c.call(slots)];
}
}));
return {};
}
});
export { VTable as V, makeVTableProps as m };

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,86 @@
import { computed, ref, mergeProps, createVNode } from 'vue';
import { g as genericComponent, p as propsFactory, n as useProxiedModel, aB as useScopeId, a5 as getUid, a as useRender, aX as VOverlay, o as forwardRefs, r as omit, aW as makeVOverlayProps } from './server.mjs';
const makeVTooltipProps = propsFactory({
id: String,
text: String,
...omit(makeVOverlayProps({
closeOnBack: false,
location: "end",
locationStrategy: "connected",
eager: true,
minWidth: 0,
offset: 10,
openOnClick: false,
openOnHover: true,
origin: "auto",
scrim: false,
scrollStrategy: "reposition",
transition: false
}), ["absolute", "persistent"])
}, "VTooltip");
const VTooltip = genericComponent()({
name: "VTooltip",
props: makeVTooltipProps(),
emits: {
"update:modelValue": (value) => true
},
setup(props, _ref) {
let {
slots
} = _ref;
const isActive = useProxiedModel(props, "modelValue");
const {
scopeId
} = useScopeId();
const uid = getUid();
const id = computed(() => props.id || `v-tooltip-${uid}`);
const overlay = ref();
const location = computed(() => {
return props.location.split(" ").length > 1 ? props.location : props.location + " center";
});
const origin = computed(() => {
return props.origin === "auto" || props.origin === "overlap" || props.origin.split(" ").length > 1 || props.location.split(" ").length > 1 ? props.origin : props.origin + " center";
});
const transition = computed(() => {
if (props.transition) return props.transition;
return isActive.value ? "scale-transition" : "fade-transition";
});
const activatorProps = computed(() => mergeProps({
"aria-describedby": id.value
}, props.activatorProps));
useRender(() => {
const overlayProps = VOverlay.filterProps(props);
return createVNode(VOverlay, mergeProps({
"ref": overlay,
"class": ["v-tooltip", props.class],
"style": props.style,
"id": id.value
}, overlayProps, {
"modelValue": isActive.value,
"onUpdate:modelValue": ($event) => isActive.value = $event,
"transition": transition.value,
"absolute": true,
"location": location.value,
"origin": origin.value,
"persistent": true,
"role": "tooltip",
"activatorProps": activatorProps.value,
"_disableGlobalStack": true
}, scopeId), {
activator: slots.activator,
default: function() {
var _a2;
var _a;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return (_a2 = (_a = slots.default) == null ? void 0 : _a.call(slots, ...args)) != null ? _a2 : props.text;
}
});
});
return forwardRefs({}, overlay);
}
});
export { VTooltip as V };

View File

@@ -0,0 +1,3 @@
const VerticalNav_vue_vue_type_style_index_0_scoped_80be9a01_lang = ".app-logo[data-v-80be9a01]{align-items:center;-moz-column-gap:.75rem;column-gap:.75rem;display:flex}.app-logo .app-logo-title[data-v-80be9a01]{font-size:1.25rem;font-weight:500;line-height:1.75rem;text-transform:uppercase}";
export { VerticalNav_vue_vue_type_style_index_0_scoped_80be9a01_lang as V };

View File

@@ -0,0 +1,3 @@
const VerticalNav_vue_vue_type_style_index_1_lang = ".layout-vertical-nav{block-size:100%;display:flex;flex-direction:column;inline-size:260px;inset-block-start:0;inset-inline-start:0;position:fixed;transition:inline-size .25s ease-in-out,box-shadow .25s ease-in-out;will-change:transform,inline-size;z-index:1003}.layout-vertical-nav .nav-header{align-items:center;display:flex}.layout-vertical-nav .nav-header .header-action{cursor:pointer}.layout-vertical-nav-collapsed .layout-vertical-nav:not(:hover) .nav-header .header-action.nav-pin,.layout-vertical-nav-collapsed .layout-vertical-nav:not(:hover) .nav-header .header-action.nav-unpin{display:none!important}.layout-vertical-nav .app-title-wrapper{margin-inline-end:auto}.layout-vertical-nav .nav-items{block-size:100%}.layout-vertical-nav .nav-item-title{margin-inline-end:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout-vertical-nav-collapsed .layout-vertical-nav:not(.hovered){inline-size:84px}@media (max-width:1279px){.layout-vertical-nav{transition:transform .25s ease-in-out}.layout-vertical-nav:not(.visible){transform:translateX(-260px)}[dir=rtl] .layout-vertical-nav:not(.visible){transform:translateX(260px)}}";
export { VerticalNav_vue_vue_type_style_index_1_lang as V };

View File

@@ -0,0 +1,6 @@
import { V as VerticalNav_vue_vue_type_style_index_0_scoped_80be9a01_lang } from './VerticalNav-styles-1.mjs-tF4UfE7y.mjs';
import { V as VerticalNav_vue_vue_type_style_index_1_lang } from './VerticalNav-styles-2.mjs-r5GrVkZi.mjs';
const VerticalNavStyles_2VwlF1LL = [VerticalNav_vue_vue_type_style_index_0_scoped_80be9a01_lang, VerticalNav_vue_vue_type_style_index_1_lang, VerticalNav_vue_vue_type_style_index_0_scoped_80be9a01_lang, VerticalNav_vue_vue_type_style_index_1_lang];
export { VerticalNavStyles_2VwlF1LL as default };

View File

@@ -0,0 +1,5 @@
import { V as VerticalNav_vue_vue_type_style_index_0_scoped_80be9a01_lang } from './VerticalNav-styles-1.mjs-tF4UfE7y.mjs';
const VerticalNavStyles_BloOnUHk = [VerticalNav_vue_vue_type_style_index_0_scoped_80be9a01_lang];
export { VerticalNavStyles_BloOnUHk as default };

View File

@@ -0,0 +1,5 @@
import { V as VerticalNav_vue_vue_type_style_index_1_lang } from './VerticalNav-styles-2.mjs-r5GrVkZi.mjs';
const VerticalNavStyles_Dopg7Lx3 = [VerticalNav_vue_vue_type_style_index_1_lang];
export { VerticalNavStyles_Dopg7Lx3 as default };

View File

@@ -0,0 +1,3 @@
const VerticalNavGroup_vue_vue_type_style_index_0_lang = ".layout-vertical-nav .nav-group-label{align-items:center;cursor:pointer;display:flex}.layout-vertical-nav .nav-group .nav-group-children-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease-in-out}.layout-vertical-nav .nav-group .nav-group-children-wrapper .nav-group-children{overflow:hidden}.layout-vertical-nav .nav-group.open .nav-group-children-wrapper{grid-template-rows:1fr}";
export { VerticalNavGroup_vue_vue_type_style_index_0_lang as V };

View File

@@ -0,0 +1,5 @@
import { V as VerticalNavGroup_vue_vue_type_style_index_0_lang } from './VerticalNavGroup-styles-1.mjs-CxRumQ9M.mjs';
const VerticalNavGroupStyles_BmAjzMhv = [VerticalNavGroup_vue_vue_type_style_index_0_lang, VerticalNavGroup_vue_vue_type_style_index_0_lang];
export { VerticalNavGroupStyles_BmAjzMhv as default };

View File

@@ -0,0 +1,5 @@
import { V as VerticalNavGroup_vue_vue_type_style_index_0_lang } from './VerticalNavGroup-styles-1.mjs-CxRumQ9M.mjs';
const VerticalNavGroupStyles_Dzie0S6_ = [VerticalNavGroup_vue_vue_type_style_index_0_lang];
export { VerticalNavGroupStyles_Dzie0S6_ as default };

View File

@@ -0,0 +1,3 @@
const VerticalNavLayout_vue_vue_type_style_index_0_lang = ".layout-content-width-boxed.layout-wrapper.layout-nav-type-vertical .layout-footer,.layout-content-width-boxed.layout-wrapper.layout-nav-type-vertical .layout-navbar{inline-size:100%;margin-inline:auto;max-inline-size:1440px}.layout-wrapper.layout-nav-type-vertical .layout-footer,.layout-wrapper.layout-nav-type-vertical .layout-navbar{padding-inline:1.5rem}.layout-wrapper.layout-nav-type-vertical.layout-navbar-hidden .layout-navbar{display:none}.layout-wrapper.layout-nav-type-vertical.layout-navbar-sticky .layout-navbar{inset-block-start:0;position:sticky}.layout-wrapper.layout-nav-type-vertical{block-size:100%}.layout-wrapper.layout-nav-type-vertical .layout-content-wrapper{display:flex;flex-direction:column;flex-grow:1;min-block-size:100dvh;transition:padding-inline-start .2s ease-in-out;will-change:padding-inline-start}@media screen and (min-width:1280px){.layout-wrapper.layout-nav-type-vertical .layout-content-wrapper{padding-inline-start:260px}}.layout-wrapper.layout-nav-type-vertical .layout-navbar{z-index:11}.layout-wrapper.layout-nav-type-vertical .layout-navbar .navbar-content-container{block-size:64px}.layout-wrapper.layout-nav-type-vertical .layout-overlay{background-color:rgba(0,0,0,.6);cursor:pointer;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .25s ease-in-out;will-change:opacity;z-index:1002}.layout-wrapper.layout-nav-type-vertical .layout-overlay.visible{opacity:1;pointer-events:auto}@media screen and (min-width:1280px){.layout-wrapper.layout-nav-type-vertical.layout-vertical-nav-collapsed .layout-content-wrapper{padding-inline-start:84px}}.layout-wrapper.layout-nav-type-vertical.layout-content-height-fixed .layout-content-wrapper{max-block-size:100dvh}.layout-wrapper.layout-nav-type-vertical.layout-content-height-fixed .layout-page-content{display:flex;overflow:hidden}.layout-wrapper.layout-nav-type-vertical.layout-content-height-fixed .layout-page-content .page-content-container{inline-size:100%}.layout-wrapper.layout-nav-type-vertical.layout-content-height-fixed .layout-page-content .page-content-container>:first-child{max-block-size:100%;overflow-y:auto}";
export { VerticalNavLayout_vue_vue_type_style_index_0_lang as V };

View File

@@ -0,0 +1,5 @@
import { V as VerticalNavLayout_vue_vue_type_style_index_0_lang } from './VerticalNavLayout-styles-1.mjs-CrJUR1Zt.mjs';
const VerticalNavLayoutStyles_BB70nmLk = [VerticalNavLayout_vue_vue_type_style_index_0_lang, VerticalNavLayout_vue_vue_type_style_index_0_lang];
export { VerticalNavLayoutStyles_BB70nmLk as default };

View File

@@ -0,0 +1,5 @@
import { V as VerticalNavLayout_vue_vue_type_style_index_0_lang } from './VerticalNavLayout-styles-1.mjs-CrJUR1Zt.mjs';
const VerticalNavLayoutStyles_DIg01pzh = [VerticalNavLayout_vue_vue_type_style_index_0_lang];
export { VerticalNavLayoutStyles_DIg01pzh as default };

View File

@@ -0,0 +1,3 @@
const VerticalNavLink_vue_vue_type_style_index_0_lang = ".layout-vertical-nav .nav-link a{align-items:center;cursor:pointer;display:flex}";
export { VerticalNavLink_vue_vue_type_style_index_0_lang as V };

View File

@@ -0,0 +1,5 @@
import { V as VerticalNavLink_vue_vue_type_style_index_0_lang } from './VerticalNavLink-styles-1.mjs-o72Sf6Ja.mjs';
const VerticalNavLinkStyles_CPRYTaxa = [VerticalNavLink_vue_vue_type_style_index_0_lang, VerticalNavLink_vue_vue_type_style_index_0_lang];
export { VerticalNavLinkStyles_CPRYTaxa as default };

View File

@@ -0,0 +1,5 @@
import { V as VerticalNavLink_vue_vue_type_style_index_0_lang } from './VerticalNavLink-styles-1.mjs-o72Sf6Ja.mjs';
const VerticalNavLinkStyles_CupzBSVH = [VerticalNavLink_vue_vue_type_style_index_0_lang];
export { VerticalNavLinkStyles_CupzBSVH as default };

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
import { b1 as defineNuxtRouteMiddleware, aJ as useCookie, a$ as navigateTo } from './server.mjs';
import 'vue';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import 'vue/server-renderer';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
const auth = defineNuxtRouteMiddleware((to, from) => {
if (to.path === "/login" || to.path === "/register") {
return;
}
{
const token2 = useCookie("auth-token");
if (!token2.value) {
return navigateTo("/login");
}
return;
}
});
export { auth as default };

View File

@@ -0,0 +1,6 @@
import { a as buildAssetsURL } from '../routes/renderer.mjs';
const authV1BottomShape = "" + buildAssetsURL("auth-v1-bottom-shape.crxWNCWd.svg");
const authV1TopShape = "" + buildAssetsURL("auth-v1-top-shape.eAwqa87i.svg");
export { authV1TopShape as a, authV1BottomShape as b };

View File

@@ -0,0 +1,5 @@
import { a as buildAssetsURL } from '../routes/renderer.mjs';
const avatar1 = "" + buildAssetsURL("avatar-1.DL1ARROH.png");
export { avatar1 as a };

View File

@@ -0,0 +1,39 @@
import { mergeProps, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
import { _ as _export_sfc } from './server.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
const _sfc_main = {};
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
_push(`<div${ssrRenderAttrs(mergeProps({
class: "layout-wrapper layout-blank",
"data-allow-mismatch": ""
}, _attrs))}>`);
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
_push(`</div>`);
}
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("layouts/blank.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
const blank = /* @__PURE__ */ _export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]);
export { blank as default };

View File

@@ -0,0 +1,3 @@
const blank_vue_vue_type_style_index_0_lang = ".layout-wrapper.layout-blank{flex-direction:column}";
export { blank_vue_vue_type_style_index_0_lang as b };

View File

@@ -0,0 +1,5 @@
import { b as blank_vue_vue_type_style_index_0_lang } from './blank-styles-1.mjs-Cvm7AgR3.mjs';
const blankStyles_J2lJ6pRm = [blank_vue_vue_type_style_index_0_lang, blank_vue_vue_type_style_index_0_lang];
export { blankStyles_J2lJ6pRm as default };

View File

@@ -0,0 +1,5 @@
import { b as blank_vue_vue_type_style_index_0_lang } from './blank-styles-1.mjs-Cvm7AgR3.mjs';
const blankStyles_ip4oH0FR = [blank_vue_vue_type_style_index_0_lang];
export { blankStyles_ip4oH0FR as default };

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,66 @@
import { defineComponent, withCtx, renderSlot, useSSRContext } from 'vue';
import { ssrRenderComponent, ssrRenderSlot } from 'vue/server-renderer';
import DefaultLayoutWithVerticalNav from './DefaultLayoutWithVerticalNav-CwFd3qmL.mjs';
import './nuxt-link-DwrCF35s.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import './server.mjs';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
import './NavItems-BE_iATXh.mjs';
import './logo-C2NYPRdy.mjs';
import 'vue3-perfect-scrollbar';
import './index-BkwMfZcG.mjs';
import './Footer-BdPuYOuS.mjs';
import './NavbarThemeSwitcher-B8gKKvoR.mjs';
import './VTooltip-D5G-PTk1.mjs';
import './UserProfile-D3XrMU_d.mjs';
import './avatar-1-BLwzgS8N.mjs';
import './VList-C7tHrCmP.mjs';
import './index-BNHdF426.mjs';
import './ssrBoot-BtvJZs44.mjs';
import './VDivider-C0e0b_O5.mjs';
import './VListItemAction-DeAgZ_Zv.mjs';
import './VSpacer-CWwQJ4s3.mjs';
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "default",
__ssrInlineRender: true,
setup(__props) {
return (_ctx, _push, _parent, _attrs) => {
_push(ssrRenderComponent(DefaultLayoutWithVerticalNav, _attrs, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push2, _parent2, _scopeId);
} else {
return [
renderSlot(_ctx.$slots, "default")
];
}
}),
_: 3
}, _parent));
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("layouts/default.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as default };

View File

@@ -0,0 +1,3 @@
const default_vue_vue_type_style_index_0_lang = ".layout-content-width-boxed .layout-page-content{inline-size:100%;margin-inline:auto;max-inline-size:1440px}.layout-page-content{padding-inline:1.5rem}[dir=rtl] .layout-vertical-nav .nav-group-arrow{transform:rotate(180deg)}body,html{min-block-size:100%}.layout-page-content{flex-grow:1;padding-block:1.5rem}.layout-footer .footer-content-container{block-size:56px}.layout-footer-sticky .layout-footer{inset-block-end:0;position:sticky;will-change:transform}.layout-footer-hidden .layout-footer{display:none}";
export { default_vue_vue_type_style_index_0_lang as d };

View File

@@ -0,0 +1,5 @@
import { d as default_vue_vue_type_style_index_0_lang } from './default-styles-1.mjs-DVOYTV7T.mjs';
const defaultStyles_Cyug3X5Q = [default_vue_vue_type_style_index_0_lang, default_vue_vue_type_style_index_0_lang];
export { defaultStyles_Cyug3X5Q as default };

View File

@@ -0,0 +1,5 @@
import { d as default_vue_vue_type_style_index_0_lang } from './default-styles-1.mjs-DVOYTV7T.mjs';
const defaultStyles_DKpzDQLQ = [default_vue_vue_type_style_index_0_lang];
export { defaultStyles_DKpzDQLQ as default };

View File

@@ -0,0 +1,3 @@
const UpgradeToPro_vue_vue_type_style_index_0_scoped_7c6a1f7e_lang = ".button-inner[data-v-7c6a1f7e],.buy-now-button[data-v-7c6a1f7e]{align-items:center;animation:anime-7c6a1f7e 12s linear infinite;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(-45deg,#ffa63d,#ff3d77,#338aff,#3cf0c5);background-size:600%;border:0;border-radius:6px;box-sizing:border-box;color:hsla(0,0%,100%,.9);cursor:pointer;display:inline-flex;font-size:.9375rem;font-weight:500;justify-content:center;letter-spacing:.43px;line-height:1.2;margin:0;min-inline-size:50px;outline:0;padding-block:.625rem;padding-inline:1.25rem;text-decoration:none;text-transform:none;vertical-align:middle}.buy-now-button[data-v-7c6a1f7e]{inset-block-end:5%;inset-inline-end:79px;position:fixed;z-index:999}.buy-now-button[data-v-7c6a1f7e]:hover{color:#fff;text-decoration:none}.buy-now-button .button-inner[data-v-7c6a1f7e]{filter:blur(12px);inset:0;opacity:0;position:absolute;transition:opacity .2s ease-in-out;z-index:-1}.buy-now-button:not(:hover) .button-inner[data-v-7c6a1f7e]{opacity:.8}@keyframes anime-7c6a1f7e{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}";
export { UpgradeToPro_vue_vue_type_style_index_0_scoped_7c6a1f7e_lang as U };

View File

@@ -0,0 +1,3 @@
const ErrorHeader_vue_vue_type_style_index_0_scoped_9f58dd66_lang = ".header-title[data-v-9f58dd66]{font-size:clamp(3rem,5vw,6rem);line-height:clamp(3rem,5vw,6rem)}";
export { ErrorHeader_vue_vue_type_style_index_0_scoped_9f58dd66_lang as E };

View File

@@ -0,0 +1,3 @@
const error_vue_vue_type_style_index_0_lang = ".layout-blank .misc-wrapper{align-items:center;display:flex;flex-direction:column;justify-content:center;min-block-size:calc(var(--vh, 1vh)*100);padding:1.25rem}.layout-blank .misc-avatar{z-index:1}";
export { error_vue_vue_type_style_index_0_lang as e };

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,5 @@
import { e as error_vue_vue_type_style_index_0_lang } from './entry-styles-8.mjs-BakX-vIf.mjs';
const errorStyles_CN_77ni1 = [error_vue_vue_type_style_index_0_lang, error_vue_vue_type_style_index_0_lang];
export { errorStyles_CN_77ni1 as default };

View File

@@ -0,0 +1,5 @@
import { e as error_vue_vue_type_style_index_0_lang } from './entry-styles-8.mjs-BakX-vIf.mjs';
const errorStyles_D1w1kL2I = [error_vue_vue_type_style_index_0_lang];
export { errorStyles_D1w1kL2I as default };

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,26 @@
import { b1 as defineNuxtRouteMiddleware } from './server.mjs';
import 'vue';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import 'vue/server-renderer';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
const guest = defineNuxtRouteMiddleware((to, from) => {
return;
});
export { guest as default };

View File

@@ -0,0 +1,174 @@
import { defineComponent, withCtx, createVNode, createTextVNode, toDisplayString, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrRenderList, ssrRenderComponent, ssrInterpolate } from 'vue/server-renderer';
import { B as VCard, C as VCardText, s as VIcon, D as VBtn } from './server.mjs';
import { V as VTooltip } from './VTooltip-D5G-PTk1.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "icons",
__ssrInlineRender: true,
setup(__props) {
const iconsList = [
"bx-abacus",
"bx-accessibility",
"bx-add-to-queue",
"bx-adjust",
"bx-alarm",
"bx-alarm-add",
"bx-alarm-exclamation",
"bx-alarm-off",
"bx-alarm-snooze",
"bx-album",
"bx-align-justify",
"bx-align-left",
"bx-align-middle",
"bx-align-right",
"bx-analyse",
"bx-anchor",
"bx-angry",
"bx-aperture",
"bx-arch",
"bx-archive",
"bx-archive-in",
"bx-archive-out",
"bx-area",
"bx-arrow-back",
"bx-arrow-from-bottom",
"bx-arrow-from-left",
"bx-arrow-from-right",
"bx-arrow-from-top",
"bx-arrow-to-bottom",
"bx-arrow-to-left",
"bx-arrow-to-right",
"bx-arrow-to-top",
"bx-at",
"bx-atom",
"bx-award",
"bx-badge",
"bx-badge-check",
"bx-baguette",
"bx-ball",
"bx-band-aid",
"bx-bar-chart",
"bx-bar-chart-alt",
"bx-bar-chart-alt-2",
"bx-bar-chart-square",
"bx-barcode",
"bx-barcode-reader",
"bx-baseball",
"bx-basket"
];
return (_ctx, _push, _parent, _attrs) => {
_push(`<div${ssrRenderAttrs(_attrs)}><div class="d-flex align-center flex-wrap"><!--[-->`);
ssrRenderList(iconsList, (icon) => {
_push(ssrRenderComponent(VCard, {
key: icon,
class: "mb-6 me-6"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(VCardText, { class: "py-3 px-4" }, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VIcon, {
size: "30",
icon
}, null, _parent3, _scopeId2));
} else {
return [
createVNode(VIcon, {
size: "30",
icon
}, null, 8, ["icon"])
];
}
}),
_: 2
}, _parent2, _scopeId));
_push2(ssrRenderComponent(VTooltip, {
location: "top",
activator: "parent"
}, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(`${ssrInterpolate(icon)}`);
} else {
return [
createTextVNode(toDisplayString(icon), 1)
];
}
}),
_: 2
}, _parent2, _scopeId));
} else {
return [
createVNode(VCardText, { class: "py-3 px-4" }, {
default: withCtx(() => [
createVNode(VIcon, {
size: "30",
icon
}, null, 8, ["icon"])
]),
_: 2
}, 1024),
createVNode(VTooltip, {
location: "top",
activator: "parent"
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(icon), 1)
]),
_: 2
}, 1024)
];
}
}),
_: 2
}, _parent));
});
_push(`<!--]--></div><div class="text-center">`);
_push(ssrRenderComponent(VBtn, {
href: "https://boxicons.com/",
rel: "noopener noreferrer",
color: "primary",
target: "_blank"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` View All Box Icons `);
} else {
return [
createTextVNode(" View All Box Icons ")
];
}
}),
_: 1
}, _parent));
_push(`</div></div>`);
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/icons.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as default };

View File

@@ -0,0 +1,188 @@
import { TransitionGroup, Transition, h, camelize } from 'vue';
import { g as genericComponent, p as propsFactory } from './server.mjs';
const makeTransitionProps = propsFactory({
disabled: Boolean,
group: Boolean,
hideOnLeave: Boolean,
leaveAbsolute: Boolean,
mode: String,
origin: String
}, "transition");
function createCssTransition(name, origin, mode) {
return genericComponent()({
name,
props: makeTransitionProps({
mode,
origin
}),
setup(props, _ref) {
let {
slots
} = _ref;
const functions = {
onBeforeEnter(el) {
if (props.origin) {
el.style.transformOrigin = props.origin;
}
},
onLeave(el) {
if (props.leaveAbsolute) {
const {
offsetTop,
offsetLeft,
offsetWidth,
offsetHeight
} = el;
el._transitionInitialStyles = {
position: el.style.position,
top: el.style.top,
left: el.style.left,
width: el.style.width,
height: el.style.height
};
el.style.position = "absolute";
el.style.top = `${offsetTop}px`;
el.style.left = `${offsetLeft}px`;
el.style.width = `${offsetWidth}px`;
el.style.height = `${offsetHeight}px`;
}
if (props.hideOnLeave) {
el.style.setProperty("display", "none", "important");
}
},
onAfterLeave(el) {
if (props.leaveAbsolute && (el == null ? void 0 : el._transitionInitialStyles)) {
const {
position,
top,
left,
width,
height
} = el._transitionInitialStyles;
delete el._transitionInitialStyles;
el.style.position = position || "";
el.style.top = top || "";
el.style.left = left || "";
el.style.width = width || "";
el.style.height = height || "";
}
}
};
return () => {
const tag = props.group ? TransitionGroup : Transition;
return h(tag, {
name: props.disabled ? "" : name,
css: !props.disabled,
...props.group ? void 0 : {
mode: props.mode
},
...props.disabled ? {} : functions
}, slots.default);
};
}
});
}
function createJavascriptTransition(name, functions) {
let mode = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "in-out";
return genericComponent()({
name,
props: {
mode: {
type: String,
default: mode
},
disabled: Boolean,
group: Boolean
},
setup(props, _ref2) {
let {
slots
} = _ref2;
const tag = props.group ? TransitionGroup : Transition;
return () => {
return h(tag, {
name: props.disabled ? "" : name,
css: !props.disabled,
// mode: props.mode, // TODO: vuejs/vue-next#3104
...props.disabled ? {} : functions
}, slots.default);
};
}
});
}
function ExpandTransitionGenerator() {
let expandedParentClass = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
let x = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
const sizeProperty = x ? "width" : "height";
const offsetProperty = camelize(`offset-${sizeProperty}`);
return {
onBeforeEnter(el) {
el._parent = el.parentNode;
el._initialStyle = {
transition: el.style.transition,
overflow: el.style.overflow,
[sizeProperty]: el.style[sizeProperty]
};
},
onEnter(el) {
const initialStyle = el._initialStyle;
el.style.setProperty("transition", "none", "important");
el.style.overflow = "hidden";
const offset = `${el[offsetProperty]}px`;
el.style[sizeProperty] = "0";
void el.offsetHeight;
el.style.transition = initialStyle.transition;
if (expandedParentClass && el._parent) {
el._parent.classList.add(expandedParentClass);
}
requestAnimationFrame(() => {
el.style[sizeProperty] = offset;
});
},
onAfterEnter: resetStyles,
onEnterCancelled: resetStyles,
onLeave(el) {
el._initialStyle = {
transition: "",
overflow: el.style.overflow,
[sizeProperty]: el.style[sizeProperty]
};
el.style.overflow = "hidden";
el.style[sizeProperty] = `${el[offsetProperty]}px`;
void el.offsetHeight;
requestAnimationFrame(() => el.style[sizeProperty] = "0");
},
onAfterLeave,
onLeaveCancelled: onAfterLeave
};
function onAfterLeave(el) {
if (expandedParentClass && el._parent) {
el._parent.classList.remove(expandedParentClass);
}
resetStyles(el);
}
function resetStyles(el) {
const size = el._initialStyle[sizeProperty];
el.style.overflow = el._initialStyle.overflow;
if (size != null) el.style[sizeProperty] = size;
delete el._initialStyle;
}
}
createCssTransition("fab-transition", "center center", "out-in");
createCssTransition("dialog-bottom-transition");
createCssTransition("dialog-top-transition");
const VFadeTransition = createCssTransition("fade-transition");
createCssTransition("scale-transition");
createCssTransition("scroll-x-transition");
createCssTransition("scroll-x-reverse-transition");
createCssTransition("scroll-y-transition");
createCssTransition("scroll-y-reverse-transition");
createCssTransition("slide-x-transition");
createCssTransition("slide-x-reverse-transition");
const VSlideYTransition = createCssTransition("slide-y-transition");
createCssTransition("slide-y-reverse-transition");
const VExpandTransition = createJavascriptTransition("expand-transition", ExpandTransitionGenerator());
const VExpandXTransition = createJavascriptTransition("expand-x-transition", ExpandTransitionGenerator("", true));
export { VExpandTransition as V, VExpandXTransition as a, VFadeTransition as b, VSlideYTransition as c };

View File

@@ -0,0 +1,164 @@
import { toRef as toRef$1, readonly, ref, customRef, unref, isRef, watch } from 'vue';
function computedWithControl(source, fn) {
let v = void 0;
let track;
let trigger;
const dirty = ref(true);
const update = () => {
dirty.value = true;
trigger();
};
watch(source, update, { flush: "sync" });
const get2 = typeof fn === "function" ? fn : fn.get;
const set2 = typeof fn === "function" ? void 0 : fn.set;
const result = customRef((_track, _trigger) => {
track = _track;
trigger = _trigger;
return {
get() {
if (dirty.value) {
v = get2();
dirty.value = false;
}
track();
return v;
},
set(v2) {
set2 == null ? void 0 : set2(v2);
}
};
});
if (Object.isExtensible(result))
result.trigger = update;
return result;
}
function toValue(r) {
return typeof r === "function" ? r() : unref(r);
}
typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
const noop = () => {
};
function createFilterWrapper(filter, fn) {
function wrapper(...args) {
return new Promise((resolve, reject) => {
Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);
});
}
return wrapper;
}
const bypassFilter = (invoke2) => {
return invoke2();
};
function pausableFilter(extendFilter = bypassFilter) {
const isActive = ref(true);
function pause() {
isActive.value = false;
}
function resume() {
isActive.value = true;
}
const eventFilter = (...args) => {
if (isActive.value)
extendFilter(...args);
};
return { isActive: readonly(isActive), pause, resume, eventFilter };
}
function toRef(...args) {
if (args.length !== 1)
return toRef$1(...args);
const r = args[0];
return typeof r === "function" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);
}
function watchWithFilter(source, cb, options = {}) {
const {
eventFilter = bypassFilter,
...watchOptions
} = options;
return watch(
source,
createFilterWrapper(
eventFilter,
cb
),
watchOptions
);
}
function watchPausable(source, cb, options = {}) {
const {
eventFilter: filter,
...watchOptions
} = options;
const { eventFilter, pause, resume, isActive } = pausableFilter(filter);
const stop = watchWithFilter(
source,
cb,
{
...watchOptions,
eventFilter
}
);
return { stop, pause, resume, isActive };
}
function syncRef(left, right, ...[options]) {
const {
flush = "sync",
deep = false,
immediate = true,
direction = "both",
transform = {}
} = options || {};
const watchers = [];
const transformLTR = "ltr" in transform && transform.ltr || ((v) => v);
const transformRTL = "rtl" in transform && transform.rtl || ((v) => v);
if (direction === "both" || direction === "ltr") {
watchers.push(watchPausable(
left,
(newValue) => {
watchers.forEach((w) => w.pause());
right.value = transformLTR(newValue);
watchers.forEach((w) => w.resume());
},
{ flush, deep, immediate }
));
}
if (direction === "both" || direction === "rtl") {
watchers.push(watchPausable(
right,
(newValue) => {
watchers.forEach((w) => w.pause());
left.value = transformRTL(newValue);
watchers.forEach((w) => w.resume());
},
{ flush, deep, immediate }
));
}
const stop = () => {
watchers.forEach((w) => w.stop());
};
return stop;
}
function useToggle(initialValue = false, options = {}) {
const {
truthyValue = true,
falsyValue = false
} = options;
const valueIsRef = isRef(initialValue);
const _value = ref(initialValue);
function toggle(value) {
if (arguments.length) {
_value.value = value;
return _value.value;
} else {
const truthy = toValue(truthyValue);
_value.value = _value.value === truthy ? toValue(falsyValue) : truthy;
return _value.value;
}
}
if (valueIsRef)
return toggle;
else
return [_value, toggle];
}
export { toValue as a, computedWithControl as c, syncRef as s, toRef as t, useToggle as u };

View File

@@ -0,0 +1,862 @@
import { _ as __nuxt_component_0 } from './nuxt-link-DwrCF35s.mjs';
import { defineComponent, ref, mergeProps, unref, withCtx, createVNode, createTextVNode, toDisplayString, useId, createBlock, createCommentVNode, openBlock, withModifiers, computed, toRef, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate } from 'vue/server-renderer';
import { l as logo } from './logo-C2NYPRdy.mjs';
import { a as authV1TopShape, b as authV1BottomShape } from './auth-v1-top-shape-smMuVKoE.mjs';
import { aI as useRouter$1, a6 as VImg, B as VCard, a7 as VCardItem, C as VCardText, g as genericComponent, D as VBtn, aJ as useCookie, p as propsFactory, n as useProxiedModel, F as provideTheme, ah as useVariant, ai as useDensity, f as useDimension, aj as useElevation, aE as useLocation, aF as usePosition, ak as useRounded, at as useTextColor, l as useLocale, ao as genOverlays, s as VIcon, y as VDefaultsProvider, aD as createSimpleFunctional, J as makeVariantProps, K as makeThemeProps, L as makeTagProps, N as makeRoundedProps, aG as makePositionProps, aH as makeLocationProps, O as makeElevationProps, k as makeDimensionProps, P as makeDensityProps, m as makeComponentProps, I as IconValue } from './server.mjs';
import { V as VForm, a as VTextField } from './VTextField-Bxu4ONGD.mjs';
import { V as VRow, a as VCol } from './VRow-MQIguEmB.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
import './index-BNHdF426.mjs';
const VAlertTitle = createSimpleFunctional("v-alert-title");
const allowedTypes = ["success", "info", "warning", "error"];
const makeVAlertProps = propsFactory({
border: {
type: [Boolean, String],
validator: (val) => {
return typeof val === "boolean" || ["top", "end", "bottom", "start"].includes(val);
}
},
borderColor: String,
closable: Boolean,
closeIcon: {
type: IconValue,
default: "$close"
},
closeLabel: {
type: String,
default: "$vuetify.close"
},
icon: {
type: [Boolean, String, Function, Object],
default: null
},
modelValue: {
type: Boolean,
default: true
},
prominent: Boolean,
title: String,
text: String,
type: {
type: String,
validator: (val) => allowedTypes.includes(val)
},
...makeComponentProps(),
...makeDensityProps(),
...makeDimensionProps(),
...makeElevationProps(),
...makeLocationProps(),
...makePositionProps(),
...makeRoundedProps(),
...makeTagProps(),
...makeThemeProps(),
...makeVariantProps({
variant: "flat"
})
}, "VAlert");
const VAlert = genericComponent()({
name: "VAlert",
props: makeVAlertProps(),
emits: {
"click:close": (e) => true,
"update:modelValue": (value) => true
},
setup(props, _ref) {
let {
emit,
slots
} = _ref;
const isActive = useProxiedModel(props, "modelValue");
const icon = computed(() => {
var _a;
if (props.icon === false) return void 0;
if (!props.type) return props.icon;
return (_a = props.icon) != null ? _a : `$${props.type}`;
});
const variantProps = computed(() => {
var _a;
return {
color: (_a = props.color) != null ? _a : props.type,
variant: props.variant
};
});
const {
themeClasses
} = provideTheme(props);
const {
colorClasses,
colorStyles,
variantClasses
} = useVariant(variantProps);
const {
densityClasses
} = useDensity(props);
const {
dimensionStyles
} = useDimension(props);
const {
elevationClasses
} = useElevation(props);
const {
locationStyles
} = useLocation(props);
const {
positionClasses
} = usePosition(props);
const {
roundedClasses
} = useRounded(props);
const {
textColorClasses,
textColorStyles
} = useTextColor(toRef(props, "borderColor"));
const {
t
} = useLocale();
const closeProps = computed(() => ({
"aria-label": t(props.closeLabel),
onClick(e) {
isActive.value = false;
emit("click:close", e);
}
}));
return () => {
const hasPrepend = !!(slots.prepend || icon.value);
const hasTitle = !!(slots.title || props.title);
const hasClose = !!(slots.close || props.closable);
return isActive.value && createVNode(props.tag, {
"class": ["v-alert", props.border && {
"v-alert--border": !!props.border,
[`v-alert--border-${props.border === true ? "start" : props.border}`]: true
}, {
"v-alert--prominent": props.prominent
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
"role": "alert"
}, {
default: () => {
var _a2;
var _a, _b;
return [genOverlays(false, "v-alert"), props.border && createVNode("div", {
"key": "border",
"class": ["v-alert__border", textColorClasses.value],
"style": textColorStyles.value
}, null), hasPrepend && createVNode("div", {
"key": "prepend",
"class": "v-alert__prepend"
}, [!slots.prepend ? createVNode(VIcon, {
"key": "prepend-icon",
"density": props.density,
"icon": icon.value,
"size": props.prominent ? 44 : 28
}, null) : createVNode(VDefaultsProvider, {
"key": "prepend-defaults",
"disabled": !icon.value,
"defaults": {
VIcon: {
density: props.density,
icon: icon.value,
size: props.prominent ? 44 : 28
}
}
}, slots.prepend)]), createVNode("div", {
"class": "v-alert__content"
}, [hasTitle && createVNode(VAlertTitle, {
"key": "title"
}, {
default: () => {
var _a3;
var _a22;
return [(_a3 = (_a22 = slots.title) == null ? void 0 : _a22.call(slots)) != null ? _a3 : props.title];
}
}), (_a2 = (_a = slots.text) == null ? void 0 : _a.call(slots)) != null ? _a2 : props.text, (_b = slots.default) == null ? void 0 : _b.call(slots)]), slots.append && createVNode("div", {
"key": "append",
"class": "v-alert__append"
}, [slots.append()]), hasClose && createVNode("div", {
"key": "close",
"class": "v-alert__close"
}, [!slots.close ? createVNode(VBtn, mergeProps({
"key": "close-btn",
"icon": props.closeIcon,
"size": "x-small",
"variant": "text"
}, closeProps.value), null) : createVNode(VDefaultsProvider, {
"key": "close-defaults",
"defaults": {
VBtn: {
icon: props.closeIcon,
size: "x-small",
variant: "text"
}
}
}, {
default: () => {
var _a22;
return [(_a22 = slots.close) == null ? void 0 : _a22.call(slots, {
props: closeProps.value
})];
}
})])];
}
});
};
}
});
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "login",
__ssrInlineRender: true,
setup(__props) {
const form = ref({
user_id: "",
password: "",
remember: false
});
const isPasswordVisible = ref(false);
const isLoading = ref(false);
const errorMessage = ref("");
const router = useRouter$1();
const handleLogin = async () => {
var _a;
if (!form.value.user_id || !form.value.password) {
errorMessage.value = "\uC544\uC774\uB514\uC640 \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD574\uC8FC\uC138\uC694.";
return;
}
isLoading.value = true;
errorMessage.value = "";
try {
const response = await $fetch("/api/auth/login", {
method: "POST",
body: {
user_id: form.value.user_id,
password: form.value.password
}
});
if (response.success) {
const token = useCookie("auth-token", {
maxAge: 60 * 60 * 24,
// 24시간
secure: true,
sameSite: "strict"
});
token.value = response.token;
const user = useCookie("user-info", {
maxAge: 60 * 60 * 24,
secure: true,
sameSite: "strict"
});
user.value = JSON.stringify(response.user);
await router.push("/dashboard");
} else {
errorMessage.value = response.message || "\uB85C\uADF8\uC778\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.";
}
} catch (error) {
console.error("Login error:", error);
console.error("Error details:", {
statusCode: error.statusCode,
statusMessage: error.statusMessage,
data: error.data
});
errorMessage.value = ((_a = error.data) == null ? void 0 : _a.statusMessage) || error.statusMessage || "\uB85C\uADF8\uC778 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.";
} finally {
isLoading.value = false;
}
};
return (_ctx, _push, _parent, _attrs) => {
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(mergeProps({ class: "auth-wrapper d-flex align-center justify-center pa-4" }, _attrs))}><div class="position-relative my-sm-16">`);
_push(ssrRenderComponent(VImg, {
src: unref(authV1TopShape),
class: "text-primary auth-v1-top-shape d-none d-sm-block"
}, null, _parent));
_push(ssrRenderComponent(VImg, {
src: unref(authV1BottomShape),
class: "text-primary auth-v1-bottom-shape d-none d-sm-block"
}, null, _parent));
_push(ssrRenderComponent(VCard, {
class: ["auth-card", _ctx.$vuetify.display.smAndUp ? "pa-6" : "pa-0"],
"max-width": "460"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(VCardItem, { class: "justify-center" }, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(_component_NuxtLink, {
to: "/",
class: "app-logo"
}, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
var _a;
if (_push4) {
_push4(`<div class="d-flex"${_scopeId3}>${(_a = unref(logo)) != null ? _a : ""}</div><h1 class="app-logo-title"${_scopeId3}> sneat </h1>`);
} else {
return [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "app-logo-title" }, " sneat ")
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(_component_NuxtLink, {
to: "/",
class: "app-logo"
}, {
default: withCtx(() => [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "app-logo-title" }, " sneat ")
]),
_: 1
})
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(VCardText, null, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(`<h4 class="text-h4 mb-1"${_scopeId2}> \uC74C\uC545 \uAD00\uB9AC \uC2DC\uC2A4\uD15C\u{1F44B}\u{1F3FB} </h4><p class="mb-0"${_scopeId2}> \uACC4\uC815\uC5D0 \uB85C\uADF8\uC778\uD558\uC5EC \uAD00\uB9AC \uC2DC\uC2A4\uD15C\uC744 \uC2DC\uC791\uD558\uC138\uC694 </p>`);
} else {
return [
createVNode("h4", { class: "text-h4 mb-1" }, " \uC74C\uC545 \uAD00\uB9AC \uC2DC\uC2A4\uD15C\u{1F44B}\u{1F3FB} "),
createVNode("p", { class: "mb-0" }, " \uACC4\uC815\uC5D0 \uB85C\uADF8\uC778\uD558\uC5EC \uAD00\uB9AC \uC2DC\uC2A4\uD15C\uC744 \uC2DC\uC791\uD558\uC138\uC694 ")
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(VCardText, null, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VForm, { onSubmit: handleLogin }, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
if (_push4) {
_push4(ssrRenderComponent(VRow, null, {
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
if (_push5) {
if (unref(errorMessage)) {
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(VAlert, {
type: "error",
variant: "tonal",
closable: "",
"onClick:close": ($event) => errorMessage.value = ""
}, {
default: withCtx((_6, _push7, _parent7, _scopeId6) => {
if (_push7) {
_push7(`${ssrInterpolate(unref(errorMessage))}`);
} else {
return [
createTextVNode(toDisplayString(unref(errorMessage)), 1)
];
}
}),
_: 1
}, _parent6, _scopeId5));
} else {
return [
createVNode(VAlert, {
type: "error",
variant: "tonal",
closable: "",
"onClick:close": ($event) => errorMessage.value = ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(errorMessage)), 1)
]),
_: 1
}, 8, ["onClick:close"])
];
}
}),
_: 1
}, _parent5, _scopeId4));
} else {
_push5(`<!---->`);
}
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).user_id,
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
autofocus: "",
label: "\uC544\uC774\uB514",
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
}, null, _parent6, _scopeId5));
} else {
return [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).user_id,
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
autofocus: "",
label: "\uC544\uC774\uB514",
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
];
}
}),
_: 1
}, _parent5, _scopeId4));
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "\uBE44\uBC00\uBC88\uD638",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
autocomplete: "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, _parent6, _scopeId5));
} else {
return [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "\uBE44\uBC00\uBC88\uD638",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
autocomplete: "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
];
}
}),
_: 1
}, _parent5, _scopeId4));
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(VBtn, {
block: "",
type: "button",
loading: unref(isLoading),
disabled: unref(isLoading),
onClick: handleLogin
}, {
default: withCtx((_6, _push7, _parent7, _scopeId6) => {
if (_push7) {
_push7(` \uB85C\uADF8\uC778 `);
} else {
return [
createTextVNode(" \uB85C\uADF8\uC778 ")
];
}
}),
_: 1
}, _parent6, _scopeId5));
} else {
return [
createVNode(VBtn, {
block: "",
type: "button",
loading: unref(isLoading),
disabled: unref(isLoading),
onClick: handleLogin
}, {
default: withCtx(() => [
createTextVNode(" \uB85C\uADF8\uC778 ")
]),
_: 1
}, 8, ["loading", "disabled"])
];
}
}),
_: 1
}, _parent5, _scopeId4));
} else {
return [
unref(errorMessage) ? (openBlock(), createBlock(VCol, {
key: 0,
cols: "12"
}, {
default: withCtx(() => [
createVNode(VAlert, {
type: "error",
variant: "tonal",
closable: "",
"onClick:close": ($event) => errorMessage.value = ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(errorMessage)), 1)
]),
_: 1
}, 8, ["onClick:close"])
]),
_: 1
})) : createCommentVNode("", true),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).user_id,
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
autofocus: "",
label: "\uC544\uC774\uB514",
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "\uBE44\uBC00\uBC88\uD638",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
autocomplete: "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VBtn, {
block: "",
type: "button",
loading: unref(isLoading),
disabled: unref(isLoading),
onClick: handleLogin
}, {
default: withCtx(() => [
createTextVNode(" \uB85C\uADF8\uC778 ")
]),
_: 1
}, 8, ["loading", "disabled"])
]),
_: 1
})
];
}
}),
_: 1
}, _parent4, _scopeId3));
} else {
return [
createVNode(VRow, null, {
default: withCtx(() => [
unref(errorMessage) ? (openBlock(), createBlock(VCol, {
key: 0,
cols: "12"
}, {
default: withCtx(() => [
createVNode(VAlert, {
type: "error",
variant: "tonal",
closable: "",
"onClick:close": ($event) => errorMessage.value = ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(errorMessage)), 1)
]),
_: 1
}, 8, ["onClick:close"])
]),
_: 1
})) : createCommentVNode("", true),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).user_id,
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
autofocus: "",
label: "\uC544\uC774\uB514",
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "\uBE44\uBC00\uBC88\uD638",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
autocomplete: "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VBtn, {
block: "",
type: "button",
loading: unref(isLoading),
disabled: unref(isLoading),
onClick: handleLogin
}, {
default: withCtx(() => [
createTextVNode(" \uB85C\uADF8\uC778 ")
]),
_: 1
}, 8, ["loading", "disabled"])
]),
_: 1
})
]),
_: 1
})
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(VForm, {
onSubmit: withModifiers(handleLogin, ["prevent"])
}, {
default: withCtx(() => [
createVNode(VRow, null, {
default: withCtx(() => [
unref(errorMessage) ? (openBlock(), createBlock(VCol, {
key: 0,
cols: "12"
}, {
default: withCtx(() => [
createVNode(VAlert, {
type: "error",
variant: "tonal",
closable: "",
"onClick:close": ($event) => errorMessage.value = ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(errorMessage)), 1)
]),
_: 1
}, 8, ["onClick:close"])
]),
_: 1
})) : createCommentVNode("", true),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).user_id,
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
autofocus: "",
label: "\uC544\uC774\uB514",
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "\uBE44\uBC00\uBC88\uD638",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
autocomplete: "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VBtn, {
block: "",
type: "button",
loading: unref(isLoading),
disabled: unref(isLoading),
onClick: handleLogin
}, {
default: withCtx(() => [
createTextVNode(" \uB85C\uADF8\uC778 ")
]),
_: 1
}, 8, ["loading", "disabled"])
]),
_: 1
})
]),
_: 1
})
]),
_: 1
})
];
}
}),
_: 1
}, _parent2, _scopeId));
} else {
return [
createVNode(VCardItem, { class: "justify-center" }, {
default: withCtx(() => [
createVNode(_component_NuxtLink, {
to: "/",
class: "app-logo"
}, {
default: withCtx(() => [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "app-logo-title" }, " sneat ")
]),
_: 1
})
]),
_: 1
}),
createVNode(VCardText, null, {
default: withCtx(() => [
createVNode("h4", { class: "text-h4 mb-1" }, " \uC74C\uC545 \uAD00\uB9AC \uC2DC\uC2A4\uD15C\u{1F44B}\u{1F3FB} "),
createVNode("p", { class: "mb-0" }, " \uACC4\uC815\uC5D0 \uB85C\uADF8\uC778\uD558\uC5EC \uAD00\uB9AC \uC2DC\uC2A4\uD15C\uC744 \uC2DC\uC791\uD558\uC138\uC694 ")
]),
_: 1
}),
createVNode(VCardText, null, {
default: withCtx(() => [
createVNode(VForm, {
onSubmit: withModifiers(handleLogin, ["prevent"])
}, {
default: withCtx(() => [
createVNode(VRow, null, {
default: withCtx(() => [
unref(errorMessage) ? (openBlock(), createBlock(VCol, {
key: 0,
cols: "12"
}, {
default: withCtx(() => [
createVNode(VAlert, {
type: "error",
variant: "tonal",
closable: "",
"onClick:close": ($event) => errorMessage.value = ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(errorMessage)), 1)
]),
_: 1
}, 8, ["onClick:close"])
]),
_: 1
})) : createCommentVNode("", true),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).user_id,
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
autofocus: "",
label: "\uC544\uC774\uB514",
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "\uBE44\uBC00\uBC88\uD638",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
autocomplete: "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VBtn, {
block: "",
type: "button",
loading: unref(isLoading),
disabled: unref(isLoading),
onClick: handleLogin
}, {
default: withCtx(() => [
createTextVNode(" \uB85C\uADF8\uC778 ")
]),
_: 1
}, 8, ["loading", "disabled"])
]),
_: 1
})
]),
_: 1
})
]),
_: 1
})
]),
_: 1
})
];
}
}),
_: 1
}, _parent));
_push(`</div></div>`);
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/login.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as default };

View File

@@ -0,0 +1,3 @@
const login_vue_vue_type_style_index_0_lang = ".layout-blank .auth-wrapper{min-block-size:100dvh}.layout-blank .auth-card{z-index:1!important}.auth-v1-bottom-shape,.auth-v1-top-shape{position:absolute}.auth-v1-top-shape{block-size:148px;inline-size:148px;inset-block-start:-3.5rem;inset-inline-end:-2.5rem}.auth-v1-bottom-shape{block-size:240px;inline-size:240px;inset-block-end:-4.5rem;inset-inline-start:-3rem}.auth-illustration{z-index:1}@media (min-width:960px){.skin--bordered .auth-card-v2{border-inline-start:1px solid rgba(var(--v-border-color),var(--v-border-opacity))!important}}.auth-logo{inset-block-start:2.5rem;inset-inline-start:2.5rem;position:absolute;z-index:2}.auth-title{font-size:1.75rem;font-weight:700;letter-spacing:.15px;line-height:1.75rem}";
export { login_vue_vue_type_style_index_0_lang as l };

View File

@@ -0,0 +1,5 @@
import { l as login_vue_vue_type_style_index_0_lang } from './login-styles-1.mjs-B3mVmIEa.mjs';
const loginStyles_DFtZeGCf = [login_vue_vue_type_style_index_0_lang, login_vue_vue_type_style_index_0_lang];
export { loginStyles_DFtZeGCf as default };

View File

@@ -0,0 +1,5 @@
import { l as login_vue_vue_type_style_index_0_lang } from './login-styles-1.mjs-B3mVmIEa.mjs';
const loginStyles_rz0t5XLu = [login_vue_vue_type_style_index_0_lang];
export { loginStyles_rz0t5XLu as default };

View File

@@ -0,0 +1,3 @@
const logo = '<svg width="20" height="30" viewBox="0 0 21 30" fill="none" xmlns="http://www.w3.org/2000/svg">\n<g id="sneat-logo" clip-path="url(#clip0_694_33374)">\n<path id="Vector" d="M11.481 0.277977C9.55236 0.427569 9.68287 2.51626 10.1884 3.05574C8.75181 4.04179 5.29527 6.41336 2.96143 8.01103C0.941742 9.39361 0.193275 12.8569 0.904026 15.1186C1.59418 17.3148 5.04178 18.9496 6.8757 19.4457C6.8757 19.4457 4.76119 20.6462 2.90111 22.1084C1.04101 23.5707 0.273406 25.4886 1.61558 27.6407C2.95775 29.7929 5.12708 29.6404 6.87279 28.8629C8.6185 28.0854 12.1974 25.4252 14.2962 23.9685C16.0373 22.6513 16.4878 19.7798 15.6864 17.3507C15.0365 15.3807 11.4441 13.5194 9.65588 12.8569C10.3888 12.3307 12.3156 10.9724 14.0013 9.76034C14.5792 11.3868 16.4997 11.2589 17.0854 10.3894C17.8168 8.79369 19.3485 5.16958 20.1209 3.38247C20.4584 2.02199 19.614 1.28531 18.7626 1.1307C17.5424 0.909103 14.4352 0.621872 11.481 0.277977Z" fill="currentColor"/>\n<path id="Vector_2" d="M10.1918 3.05683C9.57251 2.31819 9.70876 0.365576 11.5154 0.276566C12.5028 0.391505 13.5111 0.500682 14.4603 0.603456C16.3511 0.808177 18.0072 0.987486 18.795 1.1363C19.6757 1.30268 20.4586 2.113 20.1198 3.40402C19.8478 4.03339 19.4846 4.87805 19.0994 5.7739C18.3908 7.42186 17.6077 9.2431 17.1807 10.2162C16.7628 11.1687 14.7223 11.5667 13.996 9.76187C12.3103 10.9739 10.4231 12.3293 9.69025 12.8555C9.56589 12.8019 9.33913 12.723 9.05003 12.6223C8.08883 12.2875 6.43862 11.7128 5.57196 11.0351C3.99594 9.57885 4.72767 7.35136 5.29051 6.41965C6.98273 5.26121 8.04251 4.53314 9.04494 3.8445C9.42505 3.58338 9.79687 3.32793 10.1918 3.05683Z" fill="white" fill-opacity="0.2"/>\n<path id="Vector_3" d="M6.87908 19.446C8.21767 19.9046 10.8829 21.0185 11.442 21.764C12.1409 22.6958 12.5571 23.6691 11.1372 26.1651C10.8981 26.3266 10.6751 26.4776 10.466 26.6192C8.57083 27.9024 7.81199 28.4162 6.54501 29.0193C5.43999 29.4532 2.90554 29.9856 1.46912 27.3874C0.0933977 24.899 1.67733 23.0768 2.89847 22.1146L4.92509 20.6487L5.89468 20.0355L6.87908 19.446Z" fill="white" fill-opacity="0.2"/>\n</g>\n<defs>\n<clipPath id="clip0_694_33374">\n<rect width="20" height="29.4545" fill="white" transform="translate(0.5 0.272736)"/>\n</clipPath>\n</defs>\n</svg>\n';
export { logo as l };

View File

@@ -0,0 +1,304 @@
import { defineComponent, ref, h, resolveComponent, computed } from 'vue';
import { F as parseQuery, l as hasProtocol, n as joinURL, G as withTrailingSlash, H as withoutTrailingSlash } from '../nitro/nitro.mjs';
import { aI as useRouter$1, aY as useNuxtApp, aZ as resolveRouteObject, a_ as useRuntimeConfig, a$ as navigateTo, b0 as nuxtLinkDefaults } from './server.mjs';
async function preloadRouteComponents(to, router = useRouter$1()) {
{
return;
}
}
const firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);
// @__NO_SIDE_EFFECTS__
function defineNuxtLink(options) {
const componentName = options.componentName || "NuxtLink";
function resolveTrailingSlashBehavior(to, resolve) {
if (!to || options.trailingSlash !== "append" && options.trailingSlash !== "remove") {
return to;
}
if (typeof to === "string") {
return applyTrailingSlashBehavior(to, options.trailingSlash);
}
const path = "path" in to && to.path !== void 0 ? to.path : resolve(to).path;
const resolvedPath = {
...to,
name: void 0,
// named routes would otherwise always override trailing slash behavior
path: applyTrailingSlashBehavior(path, options.trailingSlash)
};
return resolvedPath;
}
function useNuxtLink(props) {
var _a, _b, _c;
const router = useRouter$1();
const config = useRuntimeConfig();
const hasTarget = computed(() => !!props.target && props.target !== "_self");
const isAbsoluteUrl = computed(() => {
const path = props.to || props.href || "";
return typeof path === "string" && hasProtocol(path, { acceptRelative: true });
});
const builtinRouterLink = resolveComponent("RouterLink");
const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== "string" ? builtinRouterLink.useLink : void 0;
const isExternal = computed(() => {
if (props.external) {
return true;
}
const path = props.to || props.href || "";
if (typeof path === "object") {
return false;
}
return path === "" || isAbsoluteUrl.value;
});
const to = computed(() => {
const path = props.to || props.href || "";
if (isExternal.value) {
return path;
}
return resolveTrailingSlashBehavior(path, router.resolve);
});
const link = isExternal.value ? void 0 : useBuiltinLink == null ? void 0 : useBuiltinLink({ ...props, to });
const href = computed(() => {
var _a3;
var _a2;
if (!to.value || isAbsoluteUrl.value) {
return to.value;
}
if (isExternal.value) {
const path = typeof to.value === "object" && "path" in to.value ? resolveRouteObject(to.value) : to.value;
const href2 = typeof path === "object" ? router.resolve(path).href : path;
return resolveTrailingSlashBehavior(
href2,
router.resolve
/* will not be called */
);
}
if (typeof to.value === "object") {
return (_a3 = (_a2 = router.resolve(to.value)) == null ? void 0 : _a2.href) != null ? _a3 : null;
}
return resolveTrailingSlashBehavior(
joinURL(config.app.baseURL, to.value),
router.resolve
/* will not be called */
);
});
return {
to,
hasTarget,
isAbsoluteUrl,
isExternal,
//
href,
isActive: (_a = link == null ? void 0 : link.isActive) != null ? _a : computed(() => to.value === router.currentRoute.value.path),
isExactActive: (_b = link == null ? void 0 : link.isExactActive) != null ? _b : computed(() => to.value === router.currentRoute.value.path),
route: (_c = link == null ? void 0 : link.route) != null ? _c : computed(() => router.resolve(to.value)),
async navigate() {
await navigateTo(href.value, { replace: props.replace, external: isExternal.value || hasTarget.value });
}
};
}
return defineComponent({
name: componentName,
props: {
// Routing
to: {
type: [String, Object],
default: void 0,
required: false
},
href: {
type: [String, Object],
default: void 0,
required: false
},
// Attributes
target: {
type: String,
default: void 0,
required: false
},
rel: {
type: String,
default: void 0,
required: false
},
noRel: {
type: Boolean,
default: void 0,
required: false
},
// Prefetching
prefetch: {
type: Boolean,
default: void 0,
required: false
},
prefetchOn: {
type: [String, Object],
default: void 0,
required: false
},
noPrefetch: {
type: Boolean,
default: void 0,
required: false
},
// Styling
activeClass: {
type: String,
default: void 0,
required: false
},
exactActiveClass: {
type: String,
default: void 0,
required: false
},
prefetchedClass: {
type: String,
default: void 0,
required: false
},
// Vue Router's `<RouterLink>` additional props
replace: {
type: Boolean,
default: void 0,
required: false
},
ariaCurrentValue: {
type: String,
default: void 0,
required: false
},
// Edge cases handling
external: {
type: Boolean,
default: void 0,
required: false
},
// Slot API
custom: {
type: Boolean,
default: void 0,
required: false
}
},
useLink: useNuxtLink,
setup(props, { slots }) {
const router = useRouter$1();
const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);
const prefetched = ref(false);
const el = void 0;
const elRef = void 0;
function shouldPrefetch(mode) {
var _a2, _b2;
var _a, _b;
return !prefetched.value && (typeof props.prefetchOn === "string" ? props.prefetchOn === mode : (_a2 = (_a = props.prefetchOn) == null ? void 0 : _a[mode]) != null ? _a2 : (_b = options.prefetchOn) == null ? void 0 : _b[mode]) && ((_b2 = props.prefetch) != null ? _b2 : options.prefetch) !== false && props.noPrefetch !== true && props.target !== "_blank" && !isSlowConnection();
}
async function prefetch(nuxtApp = useNuxtApp()) {
if (prefetched.value) {
return;
}
prefetched.value = true;
const path = typeof to.value === "string" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;
const normalizedPath = isExternal.value ? new URL(path, (void 0).location.href).href : path;
await Promise.all([
nuxtApp.hooks.callHook("link:prefetch", normalizedPath).catch(() => {
}),
!isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {
})
]);
}
return () => {
var _a;
if (!isExternal.value && !hasTarget.value) {
const routerLinkProps = {
ref: elRef,
to: to.value,
activeClass: props.activeClass || options.activeClass,
exactActiveClass: props.exactActiveClass || options.exactActiveClass,
replace: props.replace,
ariaCurrentValue: props.ariaCurrentValue,
custom: props.custom
};
if (!props.custom) {
if (shouldPrefetch("interaction")) {
routerLinkProps.onPointerenter = prefetch.bind(null, void 0);
routerLinkProps.onFocus = prefetch.bind(null, void 0);
}
if (prefetched.value) {
routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;
}
routerLinkProps.rel = props.rel || void 0;
}
return h(
resolveComponent("RouterLink"),
routerLinkProps,
slots.default
);
}
const target = props.target || null;
const rel = firstNonUndefined(
// converts `""` to `null` to prevent the attribute from being added as empty (`rel=""`)
props.noRel ? "" : props.rel,
options.externalRelAttribute,
/*
* A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.
* This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.
*/
isAbsoluteUrl.value || hasTarget.value ? "noopener noreferrer" : ""
) || null;
if (props.custom) {
if (!slots.default) {
return null;
}
return slots.default({
href: href.value,
navigate,
prefetch,
get route() {
if (!href.value) {
return void 0;
}
const url = new URL(href.value, "http://localhost");
return {
path: url.pathname,
fullPath: url.pathname,
get query() {
return parseQuery(url.search);
},
hash: url.hash,
params: {},
name: void 0,
matched: [],
redirectedFrom: void 0,
meta: {},
href: href.value
};
},
rel,
target,
isExternal: isExternal.value || hasTarget.value,
isActive: false,
isExactActive: false
});
}
return h("a", { ref: el, href: href.value || null, rel, target }, (_a = slots.default) == null ? void 0 : _a.call(slots));
};
}
});
}
const __nuxt_component_0 = /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);
function applyTrailingSlashBehavior(to, trailingSlash) {
const normalizeFn = trailingSlash === "append" ? withTrailingSlash : withoutTrailingSlash;
const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith("http");
if (hasProtocolDifferentFromHttp) {
return to;
}
return normalizeFn(to, true);
}
function isSlowConnection() {
{
return;
}
}
export { __nuxt_component_0 as _ };

View File

@@ -0,0 +1,939 @@
import { _ as __nuxt_component_0 } from './nuxt-link-DwrCF35s.mjs';
import { defineComponent, ref, mergeProps, unref, withCtx, createVNode, useId, createTextVNode, withModifiers, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList } from 'vue/server-renderer';
import { a6 as VImg, B as VCard, a7 as VCardItem, C as VCardText, D as VBtn, ab as useTheme } from './server.mjs';
import { l as logo } from './logo-C2NYPRdy.mjs';
import { a as authV1TopShape, b as authV1BottomShape } from './auth-v1-top-shape-smMuVKoE.mjs';
import { V as VForm, a as VTextField, b as VLabel } from './VTextField-Bxu4ONGD.mjs';
import { V as VRow, a as VCol } from './VRow-MQIguEmB.mjs';
import { V as VCheckbox } from './VCheckbox-BsGzFEMx.mjs';
import { V as VDivider } from './VDivider-C0e0b_O5.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
import './index-BNHdF426.mjs';
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
__name: "AuthProvider",
__ssrInlineRender: true,
setup(__props) {
const { global } = useTheme();
const authProviders = [
{
icon: "bxl-facebook",
color: "#4267b2",
colorInDark: "#4267b2"
},
{
icon: "bxl-twitter",
color: "#1da1f2",
colorInDark: "#1da1f2"
},
{
icon: "bxl-github",
color: "#272727",
colorInDark: "#fff"
},
{
icon: "bxl-google",
color: "#db4437",
colorInDark: "#db4437"
}
];
return (_ctx, _push, _parent, _attrs) => {
_push(`<!--[-->`);
ssrRenderList(authProviders, (link) => {
_push(ssrRenderComponent(VBtn, {
key: link.icon,
icon: link.icon,
variant: "text",
color: unref(global).name.value === "dark" ? link.colorInDark : link.color
}, null, _parent));
});
_push(`<!--]-->`);
};
}
});
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("views/pages/authentication/AuthProvider.vue");
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "register",
__ssrInlineRender: true,
setup(__props) {
const form = ref({
username: "",
email: "",
password: "",
privacyPolicies: false
});
const isPasswordVisible = ref(false);
return (_ctx, _push, _parent, _attrs) => {
const _component_NuxtLink = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(mergeProps({ class: "auth-wrapper d-flex align-center justify-center pa-4" }, _attrs))}><div class="position-relative my-sm-16">`);
_push(ssrRenderComponent(VImg, {
src: unref(authV1TopShape),
class: "text-primary auth-v1-top-shape d-none d-sm-block"
}, null, _parent));
_push(ssrRenderComponent(VImg, {
src: unref(authV1BottomShape),
class: "text-primary auth-v1-bottom-shape d-none d-sm-block"
}, null, _parent));
_push(ssrRenderComponent(VCard, {
class: ["auth-card", _ctx.$vuetify.display.smAndUp ? "pa-6" : "pa-0"],
"max-width": "460"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(VCardItem, { class: "justify-center" }, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(_component_NuxtLink, {
to: "/",
class: "app-logo"
}, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
var _a;
if (_push4) {
_push4(`<div class="d-flex"${_scopeId3}>${(_a = unref(logo)) != null ? _a : ""}</div><h1 class="app-logo-title"${_scopeId3}> sneat </h1>`);
} else {
return [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "app-logo-title" }, " sneat ")
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(_component_NuxtLink, {
to: "/",
class: "app-logo"
}, {
default: withCtx(() => [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "app-logo-title" }, " sneat ")
]),
_: 1
})
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(VCardText, null, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(`<h4 class="text-h4 mb-1"${_scopeId2}> Adventure starts here \u{1F680} </h4><p class="mb-0"${_scopeId2}> Make your app management easy and fun! </p>`);
} else {
return [
createVNode("h4", { class: "text-h4 mb-1" }, " Adventure starts here \u{1F680} "),
createVNode("p", { class: "mb-0" }, " Make your app management easy and fun! ")
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(VCardText, null, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VForm, {
onSubmit: ($event) => _ctx.$router.push("/")
}, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
if (_push4) {
_push4(ssrRenderComponent(VRow, null, {
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
if (_push5) {
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).username,
"onUpdate:modelValue": ($event) => unref(form).username = $event,
autofocus: "",
label: "Username",
placeholder: "Johndoe"
}, null, _parent6, _scopeId5));
} else {
return [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).username,
"onUpdate:modelValue": ($event) => unref(form).username = $event,
autofocus: "",
label: "Username",
placeholder: "Johndoe"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
];
}
}),
_: 1
}, _parent5, _scopeId4));
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).email,
"onUpdate:modelValue": ($event) => unref(form).email = $event,
label: "Email",
type: "email",
placeholder: "johndoe@email.com"
}, null, _parent6, _scopeId5));
} else {
return [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).email,
"onUpdate:modelValue": ($event) => unref(form).email = $event,
label: "Email",
type: "email",
placeholder: "johndoe@email.com"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
];
}
}),
_: 1
}, _parent5, _scopeId4));
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "Password",
autocomplete: "password",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, _parent6, _scopeId5));
_push6(`<div class="d-flex align-center my-6"${_scopeId5}>`);
_push6(ssrRenderComponent(VCheckbox, {
id: "privacy-policy",
modelValue: unref(form).privacyPolicies,
"onUpdate:modelValue": ($event) => unref(form).privacyPolicies = $event,
inline: ""
}, null, _parent6, _scopeId5));
_push6(ssrRenderComponent(VLabel, {
for: "privacy-policy",
style: { "opacity": "1" }
}, {
default: withCtx((_6, _push7, _parent7, _scopeId6) => {
if (_push7) {
_push7(`<span class="me-1 text-high-emphasis"${_scopeId6}>I agree to</span><a href="javascript:void(0)" class="text-primary"${_scopeId6}>privacy policy &amp; terms</a>`);
} else {
return [
createVNode("span", { class: "me-1 text-high-emphasis" }, "I agree to"),
createVNode("a", {
href: "javascript:void(0)",
class: "text-primary"
}, "privacy policy & terms")
];
}
}),
_: 1
}, _parent6, _scopeId5));
_push6(`</div>`);
_push6(ssrRenderComponent(VBtn, {
block: "",
type: "submit"
}, {
default: withCtx((_6, _push7, _parent7, _scopeId6) => {
if (_push7) {
_push7(` Sign up `);
} else {
return [
createTextVNode(" Sign up ")
];
}
}),
_: 1
}, _parent6, _scopeId5));
} else {
return [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "Password",
autocomplete: "password",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"]),
createVNode("div", { class: "d-flex align-center my-6" }, [
createVNode(VCheckbox, {
id: "privacy-policy",
modelValue: unref(form).privacyPolicies,
"onUpdate:modelValue": ($event) => unref(form).privacyPolicies = $event,
inline: ""
}, null, 8, ["modelValue", "onUpdate:modelValue"]),
createVNode(VLabel, {
for: "privacy-policy",
style: { "opacity": "1" }
}, {
default: withCtx(() => [
createVNode("span", { class: "me-1 text-high-emphasis" }, "I agree to"),
createVNode("a", {
href: "javascript:void(0)",
class: "text-primary"
}, "privacy policy & terms")
]),
_: 1
})
]),
createVNode(VBtn, {
block: "",
type: "submit"
}, {
default: withCtx(() => [
createTextVNode(" Sign up ")
]),
_: 1
})
];
}
}),
_: 1
}, _parent5, _scopeId4));
_push5(ssrRenderComponent(VCol, {
cols: "12",
class: "text-center text-base"
}, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(`<span${_scopeId5}>Already have an account?</span>`);
_push6(ssrRenderComponent(_component_NuxtLink, {
class: "text-primary ms-1",
to: "/login"
}, {
default: withCtx((_6, _push7, _parent7, _scopeId6) => {
if (_push7) {
_push7(` Sign in instead `);
} else {
return [
createTextVNode(" Sign in instead ")
];
}
}),
_: 1
}, _parent6, _scopeId5));
} else {
return [
createVNode("span", null, "Already have an account?"),
createVNode(_component_NuxtLink, {
class: "text-primary ms-1",
to: "/login"
}, {
default: withCtx(() => [
createTextVNode(" Sign in instead ")
]),
_: 1
})
];
}
}),
_: 1
}, _parent5, _scopeId4));
_push5(ssrRenderComponent(VCol, {
cols: "12",
class: "d-flex align-center"
}, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(VDivider, null, null, _parent6, _scopeId5));
_push6(`<span class="mx-4"${_scopeId5}>or</span>`);
_push6(ssrRenderComponent(VDivider, null, null, _parent6, _scopeId5));
} else {
return [
createVNode(VDivider),
createVNode("span", { class: "mx-4" }, "or"),
createVNode(VDivider)
];
}
}),
_: 1
}, _parent5, _scopeId4));
_push5(ssrRenderComponent(VCol, {
cols: "12",
class: "text-center"
}, {
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
if (_push6) {
_push6(ssrRenderComponent(_sfc_main$1, null, null, _parent6, _scopeId5));
} else {
return [
createVNode(_sfc_main$1)
];
}
}),
_: 1
}, _parent5, _scopeId4));
} else {
return [
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).username,
"onUpdate:modelValue": ($event) => unref(form).username = $event,
autofocus: "",
label: "Username",
placeholder: "Johndoe"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).email,
"onUpdate:modelValue": ($event) => unref(form).email = $event,
label: "Email",
type: "email",
placeholder: "johndoe@email.com"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "Password",
autocomplete: "password",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"]),
createVNode("div", { class: "d-flex align-center my-6" }, [
createVNode(VCheckbox, {
id: "privacy-policy",
modelValue: unref(form).privacyPolicies,
"onUpdate:modelValue": ($event) => unref(form).privacyPolicies = $event,
inline: ""
}, null, 8, ["modelValue", "onUpdate:modelValue"]),
createVNode(VLabel, {
for: "privacy-policy",
style: { "opacity": "1" }
}, {
default: withCtx(() => [
createVNode("span", { class: "me-1 text-high-emphasis" }, "I agree to"),
createVNode("a", {
href: "javascript:void(0)",
class: "text-primary"
}, "privacy policy & terms")
]),
_: 1
})
]),
createVNode(VBtn, {
block: "",
type: "submit"
}, {
default: withCtx(() => [
createTextVNode(" Sign up ")
]),
_: 1
})
]),
_: 1
}),
createVNode(VCol, {
cols: "12",
class: "text-center text-base"
}, {
default: withCtx(() => [
createVNode("span", null, "Already have an account?"),
createVNode(_component_NuxtLink, {
class: "text-primary ms-1",
to: "/login"
}, {
default: withCtx(() => [
createTextVNode(" Sign in instead ")
]),
_: 1
})
]),
_: 1
}),
createVNode(VCol, {
cols: "12",
class: "d-flex align-center"
}, {
default: withCtx(() => [
createVNode(VDivider),
createVNode("span", { class: "mx-4" }, "or"),
createVNode(VDivider)
]),
_: 1
}),
createVNode(VCol, {
cols: "12",
class: "text-center"
}, {
default: withCtx(() => [
createVNode(_sfc_main$1)
]),
_: 1
})
];
}
}),
_: 1
}, _parent4, _scopeId3));
} else {
return [
createVNode(VRow, null, {
default: withCtx(() => [
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).username,
"onUpdate:modelValue": ($event) => unref(form).username = $event,
autofocus: "",
label: "Username",
placeholder: "Johndoe"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).email,
"onUpdate:modelValue": ($event) => unref(form).email = $event,
label: "Email",
type: "email",
placeholder: "johndoe@email.com"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "Password",
autocomplete: "password",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"]),
createVNode("div", { class: "d-flex align-center my-6" }, [
createVNode(VCheckbox, {
id: "privacy-policy",
modelValue: unref(form).privacyPolicies,
"onUpdate:modelValue": ($event) => unref(form).privacyPolicies = $event,
inline: ""
}, null, 8, ["modelValue", "onUpdate:modelValue"]),
createVNode(VLabel, {
for: "privacy-policy",
style: { "opacity": "1" }
}, {
default: withCtx(() => [
createVNode("span", { class: "me-1 text-high-emphasis" }, "I agree to"),
createVNode("a", {
href: "javascript:void(0)",
class: "text-primary"
}, "privacy policy & terms")
]),
_: 1
})
]),
createVNode(VBtn, {
block: "",
type: "submit"
}, {
default: withCtx(() => [
createTextVNode(" Sign up ")
]),
_: 1
})
]),
_: 1
}),
createVNode(VCol, {
cols: "12",
class: "text-center text-base"
}, {
default: withCtx(() => [
createVNode("span", null, "Already have an account?"),
createVNode(_component_NuxtLink, {
class: "text-primary ms-1",
to: "/login"
}, {
default: withCtx(() => [
createTextVNode(" Sign in instead ")
]),
_: 1
})
]),
_: 1
}),
createVNode(VCol, {
cols: "12",
class: "d-flex align-center"
}, {
default: withCtx(() => [
createVNode(VDivider),
createVNode("span", { class: "mx-4" }, "or"),
createVNode(VDivider)
]),
_: 1
}),
createVNode(VCol, {
cols: "12",
class: "text-center"
}, {
default: withCtx(() => [
createVNode(_sfc_main$1)
]),
_: 1
})
]),
_: 1
})
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(VForm, {
onSubmit: withModifiers(($event) => _ctx.$router.push("/"), ["prevent"])
}, {
default: withCtx(() => [
createVNode(VRow, null, {
default: withCtx(() => [
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).username,
"onUpdate:modelValue": ($event) => unref(form).username = $event,
autofocus: "",
label: "Username",
placeholder: "Johndoe"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).email,
"onUpdate:modelValue": ($event) => unref(form).email = $event,
label: "Email",
type: "email",
placeholder: "johndoe@email.com"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "Password",
autocomplete: "password",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"]),
createVNode("div", { class: "d-flex align-center my-6" }, [
createVNode(VCheckbox, {
id: "privacy-policy",
modelValue: unref(form).privacyPolicies,
"onUpdate:modelValue": ($event) => unref(form).privacyPolicies = $event,
inline: ""
}, null, 8, ["modelValue", "onUpdate:modelValue"]),
createVNode(VLabel, {
for: "privacy-policy",
style: { "opacity": "1" }
}, {
default: withCtx(() => [
createVNode("span", { class: "me-1 text-high-emphasis" }, "I agree to"),
createVNode("a", {
href: "javascript:void(0)",
class: "text-primary"
}, "privacy policy & terms")
]),
_: 1
})
]),
createVNode(VBtn, {
block: "",
type: "submit"
}, {
default: withCtx(() => [
createTextVNode(" Sign up ")
]),
_: 1
})
]),
_: 1
}),
createVNode(VCol, {
cols: "12",
class: "text-center text-base"
}, {
default: withCtx(() => [
createVNode("span", null, "Already have an account?"),
createVNode(_component_NuxtLink, {
class: "text-primary ms-1",
to: "/login"
}, {
default: withCtx(() => [
createTextVNode(" Sign in instead ")
]),
_: 1
})
]),
_: 1
}),
createVNode(VCol, {
cols: "12",
class: "d-flex align-center"
}, {
default: withCtx(() => [
createVNode(VDivider),
createVNode("span", { class: "mx-4" }, "or"),
createVNode(VDivider)
]),
_: 1
}),
createVNode(VCol, {
cols: "12",
class: "text-center"
}, {
default: withCtx(() => [
createVNode(_sfc_main$1)
]),
_: 1
})
]),
_: 1
})
]),
_: 1
}, 8, ["onSubmit"])
];
}
}),
_: 1
}, _parent2, _scopeId));
} else {
return [
createVNode(VCardItem, { class: "justify-center" }, {
default: withCtx(() => [
createVNode(_component_NuxtLink, {
to: "/",
class: "app-logo"
}, {
default: withCtx(() => [
createVNode("div", {
class: "d-flex",
innerHTML: unref(logo)
}, null, 8, ["innerHTML"]),
createVNode("h1", { class: "app-logo-title" }, " sneat ")
]),
_: 1
})
]),
_: 1
}),
createVNode(VCardText, null, {
default: withCtx(() => [
createVNode("h4", { class: "text-h4 mb-1" }, " Adventure starts here \u{1F680} "),
createVNode("p", { class: "mb-0" }, " Make your app management easy and fun! ")
]),
_: 1
}),
createVNode(VCardText, null, {
default: withCtx(() => [
createVNode(VForm, {
onSubmit: withModifiers(($event) => _ctx.$router.push("/"), ["prevent"])
}, {
default: withCtx(() => [
createVNode(VRow, null, {
default: withCtx(() => [
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).username,
"onUpdate:modelValue": ($event) => unref(form).username = $event,
autofocus: "",
label: "Username",
placeholder: "Johndoe"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).email,
"onUpdate:modelValue": ($event) => unref(form).email = $event,
label: "Email",
type: "email",
placeholder: "johndoe@email.com"
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VTextField, {
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
modelValue: unref(form).password,
"onUpdate:modelValue": ($event) => unref(form).password = $event,
label: "Password",
autocomplete: "password",
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
type: unref(isPasswordVisible) ? "text" : "password",
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"]),
createVNode("div", { class: "d-flex align-center my-6" }, [
createVNode(VCheckbox, {
id: "privacy-policy",
modelValue: unref(form).privacyPolicies,
"onUpdate:modelValue": ($event) => unref(form).privacyPolicies = $event,
inline: ""
}, null, 8, ["modelValue", "onUpdate:modelValue"]),
createVNode(VLabel, {
for: "privacy-policy",
style: { "opacity": "1" }
}, {
default: withCtx(() => [
createVNode("span", { class: "me-1 text-high-emphasis" }, "I agree to"),
createVNode("a", {
href: "javascript:void(0)",
class: "text-primary"
}, "privacy policy & terms")
]),
_: 1
})
]),
createVNode(VBtn, {
block: "",
type: "submit"
}, {
default: withCtx(() => [
createTextVNode(" Sign up ")
]),
_: 1
})
]),
_: 1
}),
createVNode(VCol, {
cols: "12",
class: "text-center text-base"
}, {
default: withCtx(() => [
createVNode("span", null, "Already have an account?"),
createVNode(_component_NuxtLink, {
class: "text-primary ms-1",
to: "/login"
}, {
default: withCtx(() => [
createTextVNode(" Sign in instead ")
]),
_: 1
})
]),
_: 1
}),
createVNode(VCol, {
cols: "12",
class: "d-flex align-center"
}, {
default: withCtx(() => [
createVNode(VDivider),
createVNode("span", { class: "mx-4" }, "or"),
createVNode(VDivider)
]),
_: 1
}),
createVNode(VCol, {
cols: "12",
class: "text-center"
}, {
default: withCtx(() => [
createVNode(_sfc_main$1)
]),
_: 1
})
]),
_: 1
})
]),
_: 1
}, 8, ["onSubmit"])
]),
_: 1
})
];
}
}),
_: 1
}, _parent));
_push(`</div></div>`);
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/register.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as default };

View File

@@ -0,0 +1,3 @@
const register_vue_vue_type_style_index_0_lang = ".layout-blank .auth-wrapper{min-block-size:100dvh}.layout-blank .auth-card{z-index:1!important}.auth-v1-bottom-shape,.auth-v1-top-shape{position:absolute}.auth-v1-top-shape{block-size:148px;inline-size:148px;inset-block-start:-3.5rem;inset-inline-end:-2.5rem}.auth-v1-bottom-shape{block-size:240px;inline-size:240px;inset-block-end:-4.5rem;inset-inline-start:-3rem}.auth-illustration{z-index:1}@media (min-width:960px){.skin--bordered .auth-card-v2{border-inline-start:1px solid rgba(var(--v-border-color),var(--v-border-opacity))!important}}.auth-logo{inset-block-start:2.5rem;inset-inline-start:2.5rem;position:absolute;z-index:2}.auth-title{font-size:1.75rem;font-weight:700;letter-spacing:.15px;line-height:1.75rem}";
export { register_vue_vue_type_style_index_0_lang as r };

View File

@@ -0,0 +1,5 @@
import { r as register_vue_vue_type_style_index_0_lang } from './register-styles-1.mjs-RsEWMcwk.mjs';
const registerStyles_CcLsaXFP = [register_vue_vue_type_style_index_0_lang];
export { registerStyles_CcLsaXFP as default };

View File

@@ -0,0 +1,5 @@
import { r as register_vue_vue_type_style_index_0_lang } from './register-styles-1.mjs-RsEWMcwk.mjs';
const registerStyles_CumeBmK_ = [register_vue_vue_type_style_index_0_lang, register_vue_vue_type_style_index_0_lang];
export { registerStyles_CumeBmK_ as default };

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,14 @@
import { shallowRef, computed, readonly } from 'vue';
function useSsrBoot() {
const isBooted = shallowRef(false);
const ssrBootStyles = computed(() => !isBooted.value ? {
transition: "none !important"
} : void 0);
return {
ssrBootStyles,
isBooted: readonly(isBooted)
};
}
export { useSsrBoot as u };

View File

@@ -0,0 +1,43 @@
const interopDefault = r => r.default || r || [];
const styles = {
"node_modules/nuxt/dist/app/entry.js": () => import('./entry-styles.DhO-80qM.mjs').then(interopDefault),
"pages/login.vue": () => import('./login-styles.DFtZeGCf.mjs').then(interopDefault),
"pages/register.vue": () => import('./register-styles.CumeBmK_.mjs').then(interopDefault),
"error.vue": () => import('./error-styles.CN_77ni1.mjs').then(interopDefault),
"error.vue?vue&type=style&index=0&lang.scss": () => import('./error-styles.D1w1kL2I.mjs').then(interopDefault),
"pages/login.vue?vue&type=style&index=0&lang.scss": () => import('./login-styles.rz0t5XLu.mjs').then(interopDefault),
"pages/register.vue?vue&type=style&index=0&lang.scss": () => import('./register-styles.CcLsaXFP.mjs').then(interopDefault),
"views/pages/account-settings/AccountSettingsNotification.vue": () => import('./AccountSettingsNotification-styles.GmPspwBO.mjs').then(interopDefault),
"views/pages/cards/card-basic/CardBasic.vue": () => import('./CardBasic-styles.C-Pxu70S.mjs').then(interopDefault),
"views/dashboard/AnalyticsCongratulations.vue": () => import('./AnalyticsCongratulations-styles.DqII_Bwb.mjs').then(interopDefault),
"views/dashboard/AnalyticsOrderStatistics.vue": () => import('./AnalyticsOrderStatistics-styles.CnbIVwCv.mjs').then(interopDefault),
"views/dashboard/AnalyticsTotalRevenue.vue": () => import('./AnalyticsTotalRevenue-styles.BJg6STC_.mjs').then(interopDefault),
"views/dashboard/AnalyticsTransactions.vue": () => import('./AnalyticsTransactions-styles.CAOv2ENt.mjs').then(interopDefault),
"views/dashboard/AnalyticsOrderStatistics.vue?vue&type=style&index=0&lang.scss": () => import('./AnalyticsOrderStatistics-styles.CYw_yRNL.mjs').then(interopDefault),
"views/dashboard/AnalyticsTransactions.vue?vue&type=style&index=0&scoped=8543add5&lang.scss": () => import('./AnalyticsTransactions-styles.U8JYrSnn.mjs').then(interopDefault),
"views/pages/account-settings/AccountSettingsNotification.vue?vue&type=style&index=0&scoped=5bf444da&lang.scss": () => import('./AccountSettingsNotification-styles.c6ezO7eT.mjs').then(interopDefault),
"views/dashboard/AnalyticsCongratulations.vue?vue&type=style&index=0&scoped=f54b019a&lang.scss": () => import('./AnalyticsCongratulations-styles.7f44haZ6.mjs').then(interopDefault),
"views/pages/cards/card-basic/CardBasic.vue?vue&type=style&index=0&scoped=dafc34ea&lang.scss": () => import('./CardBasic-styles.Duzdg6PU.mjs').then(interopDefault),
"components/UpgradeToPro.vue": () => import('./UpgradeToPro-styles.CE58FfDk.mjs').then(interopDefault),
"components/UpgradeToPro.vue?vue&type=style&index=0&scoped=7c6a1f7e&lang.scss": () => import('./UpgradeToPro-styles.CcXTmuY4.mjs').then(interopDefault),
"layouts/blank.vue": () => import('./blank-styles.J2lJ6pRm.mjs').then(interopDefault),
"layouts/blank.vue?vue&type=style&index=0&lang.css": () => import('./blank-styles.ip4oH0FR.mjs').then(interopDefault),
"components/ErrorHeader.vue": () => import('./ErrorHeader-styles.CfiV342G.mjs').then(interopDefault),
"components/ErrorHeader.vue?vue&type=style&index=0&scoped=9f58dd66&lang.scss": () => import('./ErrorHeader-styles.RU_hCB2x.mjs').then(interopDefault),
"layouts/components/DefaultLayoutWithVerticalNav.vue": () => import('./DefaultLayoutWithVerticalNav-styles.BETWH2ct.mjs').then(interopDefault),
"layouts/default.vue": () => import('./default-styles.Cyug3X5Q.mjs').then(interopDefault),
"layouts/components/DefaultLayoutWithVerticalNav.vue?vue&type=style&index=0&scoped=4a4e6556&lang.scss": () => import('./DefaultLayoutWithVerticalNav-styles.bLKRe82Y.mjs').then(interopDefault),
"@layouts/components/VerticalNavLayout.vue": () => import('./VerticalNavLayout-styles.BB70nmLk.mjs').then(interopDefault),
"@layouts/components/VerticalNavGroup.vue": () => import('./VerticalNavGroup-styles.BmAjzMhv.mjs').then(interopDefault),
"@layouts/components/VerticalNavLink.vue": () => import('./VerticalNavLink-styles.CPRYTaxa.mjs').then(interopDefault),
"@layouts/components/VerticalNavLink.vue?vue&type=style&index=0&lang.scss": () => import('./VerticalNavLink-styles.CupzBSVH.mjs').then(interopDefault),
"@layouts/components/VerticalNavGroup.vue?vue&type=style&index=0&lang.scss": () => import('./VerticalNavGroup-styles.Dzie0S6_.mjs').then(interopDefault),
"@layouts/components/VerticalNav.vue": () => import('./VerticalNav-styles.2VwlF1LL.mjs').then(interopDefault),
"@layouts/components/VerticalNav.vue?vue&type=style&index=0&scoped=80be9a01&lang.scss": () => import('./VerticalNav-styles.BloOnUHk.mjs').then(interopDefault),
"views/dashboard/AnalyticsTotalRevenue.vue?vue&type=style&index=0&lang.scss": () => import('./AnalyticsTotalRevenue-styles.BikINTAl.mjs').then(interopDefault),
"layouts/default.vue?vue&type=style&index=0&lang.scss": () => import('./default-styles.DKpzDQLQ.mjs').then(interopDefault),
"@layouts/components/VerticalNavLayout.vue?vue&type=style&index=0&lang.scss": () => import('./VerticalNavLayout-styles.DIg01pzh.mjs').then(interopDefault),
"@layouts/components/VerticalNav.vue?vue&type=style&index=1&lang.scss": () => import('./VerticalNav-styles.Dopg7Lx3.mjs').then(interopDefault)
};
export { styles as default };

View File

@@ -0,0 +1,842 @@
import { defineComponent, withCtx, createVNode, createTextVNode, createBlock, openBlock, Fragment, renderList, toDisplayString, mergeProps, useSSRContext } from 'vue';
import { ssrRenderComponent, ssrRenderList, ssrInterpolate } from 'vue/server-renderer';
import { V as VTable } from './VTable-CfOk5VYL.mjs';
import { V as VRow, a as VCol } from './VRow-MQIguEmB.mjs';
import { B as VCard, C as VCardText } from './server.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'devalue';
import '@unhead/ssr';
import 'unhead';
import '@unhead/shared';
import 'pinia';
import 'vue-router';
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
__name: "DemoSimpleTableBasics",
__ssrInlineRender: true,
setup(__props) {
const desserts = [
{
dessert: "Frozen Yogurt",
calories: 159,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Ice cream sandwich",
calories: 237,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Eclair",
calories: 262,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Cupcake",
calories: 305,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Gingerbread",
calories: 356,
fat: 6,
carbs: 24,
protein: 4
}
];
return (_ctx, _push, _parent, _attrs) => {
_push(ssrRenderComponent(VTable, _attrs, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<thead${_scopeId}><tr${_scopeId}><th class="text-uppercase"${_scopeId}> Desserts (100g Servings) </th><th${_scopeId}> calories </th><th${_scopeId}> Fat(g) </th><th${_scopeId}> Carbs(g) </th><th${_scopeId}> protein(g) </th></tr></thead><tbody${_scopeId}><!--[-->`);
ssrRenderList(desserts, (item) => {
_push2(`<tr${_scopeId}><td${_scopeId}>${ssrInterpolate(item.dessert)}</td><td${_scopeId}>${ssrInterpolate(item.calories)}</td><td${_scopeId}>${ssrInterpolate(item.fat)}</td><td${_scopeId}>${ssrInterpolate(item.carbs)}</td><td${_scopeId}>${ssrInterpolate(item.protein)}</td></tr>`);
});
_push2(`<!--]--></tbody>`);
} else {
return [
createVNode("thead", null, [
createVNode("tr", null, [
createVNode("th", { class: "text-uppercase" }, " Desserts (100g Servings) "),
createVNode("th", null, " calories "),
createVNode("th", null, " Fat(g) "),
createVNode("th", null, " Carbs(g) "),
createVNode("th", null, " protein(g) ")
])
]),
createVNode("tbody", null, [
(openBlock(), createBlock(Fragment, null, renderList(desserts, (item) => {
return createVNode("tr", {
key: item.dessert
}, [
createVNode("td", null, toDisplayString(item.dessert), 1),
createVNode("td", null, toDisplayString(item.calories), 1),
createVNode("td", null, toDisplayString(item.fat), 1),
createVNode("td", null, toDisplayString(item.carbs), 1),
createVNode("td", null, toDisplayString(item.protein), 1)
]);
}), 64))
])
];
}
}),
_: 1
}, _parent));
};
}
});
const _sfc_setup$5 = _sfc_main$5.setup;
_sfc_main$5.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("views/pages/tables/DemoSimpleTableBasics.vue");
return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
};
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
__name: "DemoSimpleTableDensity",
__ssrInlineRender: true,
setup(__props) {
const desserts = [
{
dessert: "Frozen Yogurt",
calories: 159,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Ice cream sandwich",
calories: 237,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Eclair",
calories: 262,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Cupcake",
calories: 305,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Gingerbread",
calories: 356,
fat: 6,
carbs: 24,
protein: 4
}
];
return (_ctx, _push, _parent, _attrs) => {
_push(ssrRenderComponent(VTable, mergeProps({ density: "compact" }, _attrs), {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<thead${_scopeId}><tr${_scopeId}><th class="text-uppercase"${_scopeId}> Desserts (100g Servings) </th><th${_scopeId}> calories </th><th${_scopeId}> Fat(g) </th><th${_scopeId}> Carbs(g) </th><th${_scopeId}> protein(g) </th></tr></thead><tbody${_scopeId}><!--[-->`);
ssrRenderList(desserts, (item) => {
_push2(`<tr${_scopeId}><td${_scopeId}>${ssrInterpolate(item.dessert)}</td><td${_scopeId}>${ssrInterpolate(item.calories)}</td><td${_scopeId}>${ssrInterpolate(item.fat)}</td><td${_scopeId}>${ssrInterpolate(item.carbs)}</td><td${_scopeId}>${ssrInterpolate(item.protein)}</td></tr>`);
});
_push2(`<!--]--></tbody>`);
} else {
return [
createVNode("thead", null, [
createVNode("tr", null, [
createVNode("th", { class: "text-uppercase" }, " Desserts (100g Servings) "),
createVNode("th", null, " calories "),
createVNode("th", null, " Fat(g) "),
createVNode("th", null, " Carbs(g) "),
createVNode("th", null, " protein(g) ")
])
]),
createVNode("tbody", null, [
(openBlock(), createBlock(Fragment, null, renderList(desserts, (item) => {
return createVNode("tr", {
key: item.dessert
}, [
createVNode("td", null, toDisplayString(item.dessert), 1),
createVNode("td", null, toDisplayString(item.calories), 1),
createVNode("td", null, toDisplayString(item.fat), 1),
createVNode("td", null, toDisplayString(item.carbs), 1),
createVNode("td", null, toDisplayString(item.protein), 1)
]);
}), 64))
])
];
}
}),
_: 1
}, _parent));
};
}
});
const _sfc_setup$4 = _sfc_main$4.setup;
_sfc_main$4.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("views/pages/tables/DemoSimpleTableDensity.vue");
return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
};
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
__name: "DemoSimpleTableFixedHeader",
__ssrInlineRender: true,
setup(__props) {
const desserts = [
{
dessert: "Frozen Yogurt",
calories: 159,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Ice cream sandwich",
calories: 237,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Eclair",
calories: 262,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Cupcake",
calories: 305,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Gingerbread",
calories: 356,
fat: 6,
carbs: 24,
protein: 4
}
];
return (_ctx, _push, _parent, _attrs) => {
_push(ssrRenderComponent(VTable, mergeProps({
height: "250",
"fixed-header": ""
}, _attrs), {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<thead${_scopeId}><tr${_scopeId}><th class="text-uppercase"${_scopeId}> Desserts (100g Servings) </th><th${_scopeId}> calories </th><th${_scopeId}> Fat(g) </th><th${_scopeId}> Carbs(g) </th><th${_scopeId}> protein(g) </th></tr></thead><tbody${_scopeId}><!--[-->`);
ssrRenderList(desserts, (item) => {
_push2(`<tr${_scopeId}><td${_scopeId}>${ssrInterpolate(item.dessert)}</td><td${_scopeId}>${ssrInterpolate(item.calories)}</td><td${_scopeId}>${ssrInterpolate(item.fat)}</td><td${_scopeId}>${ssrInterpolate(item.carbs)}</td><td${_scopeId}>${ssrInterpolate(item.protein)}</td></tr>`);
});
_push2(`<!--]--></tbody>`);
} else {
return [
createVNode("thead", null, [
createVNode("tr", null, [
createVNode("th", { class: "text-uppercase" }, " Desserts (100g Servings) "),
createVNode("th", null, " calories "),
createVNode("th", null, " Fat(g) "),
createVNode("th", null, " Carbs(g) "),
createVNode("th", null, " protein(g) ")
])
]),
createVNode("tbody", null, [
(openBlock(), createBlock(Fragment, null, renderList(desserts, (item) => {
return createVNode("tr", {
key: item.dessert
}, [
createVNode("td", null, toDisplayString(item.dessert), 1),
createVNode("td", null, toDisplayString(item.calories), 1),
createVNode("td", null, toDisplayString(item.fat), 1),
createVNode("td", null, toDisplayString(item.carbs), 1),
createVNode("td", null, toDisplayString(item.protein), 1)
]);
}), 64))
])
];
}
}),
_: 1
}, _parent));
};
}
});
const _sfc_setup$3 = _sfc_main$3.setup;
_sfc_main$3.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("views/pages/tables/DemoSimpleTableFixedHeader.vue");
return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
};
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
__name: "DemoSimpleTableHeight",
__ssrInlineRender: true,
setup(__props) {
const desserts = [
{
dessert: "Frozen Yogurt",
calories: 159,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Ice cream sandwich",
calories: 237,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Eclair",
calories: 262,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Cupcake",
calories: 305,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Gingerbread",
calories: 356,
fat: 6,
carbs: 24,
protein: 4
}
];
return (_ctx, _push, _parent, _attrs) => {
_push(ssrRenderComponent(VTable, mergeProps({ height: "250" }, _attrs), {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<thead${_scopeId}><tr${_scopeId}><th${_scopeId}> Desserts (100g Servings) </th><th${_scopeId}> calories </th><th${_scopeId}> Fat(g) </th><th${_scopeId}> Carbs(g) </th><th${_scopeId}> protein(g) </th></tr></thead><tbody${_scopeId}><!--[-->`);
ssrRenderList(desserts, (item) => {
_push2(`<tr${_scopeId}><td${_scopeId}>${ssrInterpolate(item.dessert)}</td><td${_scopeId}>${ssrInterpolate(item.calories)}</td><td${_scopeId}>${ssrInterpolate(item.fat)}</td><td${_scopeId}>${ssrInterpolate(item.carbs)}</td><td${_scopeId}>${ssrInterpolate(item.protein)}</td></tr>`);
});
_push2(`<!--]--></tbody>`);
} else {
return [
createVNode("thead", null, [
createVNode("tr", null, [
createVNode("th", null, " Desserts (100g Servings) "),
createVNode("th", null, " calories "),
createVNode("th", null, " Fat(g) "),
createVNode("th", null, " Carbs(g) "),
createVNode("th", null, " protein(g) ")
])
]),
createVNode("tbody", null, [
(openBlock(), createBlock(Fragment, null, renderList(desserts, (item) => {
return createVNode("tr", {
key: item.dessert
}, [
createVNode("td", null, toDisplayString(item.dessert), 1),
createVNode("td", null, toDisplayString(item.calories), 1),
createVNode("td", null, toDisplayString(item.fat), 1),
createVNode("td", null, toDisplayString(item.carbs), 1),
createVNode("td", null, toDisplayString(item.protein), 1)
]);
}), 64))
])
];
}
}),
_: 1
}, _parent));
};
}
});
const _sfc_setup$2 = _sfc_main$2.setup;
_sfc_main$2.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("views/pages/tables/DemoSimpleTableHeight.vue");
return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
};
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
__name: "DemoSimpleTableTheme",
__ssrInlineRender: true,
setup(__props) {
const desserts = [
{
dessert: "Frozen Yogurt",
calories: 159,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Ice cream sandwich",
calories: 237,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Eclair",
calories: 262,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Cupcake",
calories: 305,
fat: 6,
carbs: 24,
protein: 4
},
{
dessert: "Gingerbread",
calories: 356,
fat: 6,
carbs: 24,
protein: 4
}
];
return (_ctx, _push, _parent, _attrs) => {
_push(ssrRenderComponent(VTable, mergeProps({
theme: "dark",
class: "rounded-0"
}, _attrs), {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<thead${_scopeId}><tr${_scopeId}><th${_scopeId}> Desserts (100g Servings) </th><th class="text-uppercase"${_scopeId}> calories </th><th class="text-uppercase"${_scopeId}> Fat(g) </th><th class="text-uppercase"${_scopeId}> Carbs(g) </th><th class="text-uppercase"${_scopeId}> protein(g) </th></tr></thead><tbody${_scopeId}><!--[-->`);
ssrRenderList(desserts, (item) => {
_push2(`<tr${_scopeId}><td${_scopeId}>${ssrInterpolate(item.dessert)}</td><td${_scopeId}>${ssrInterpolate(item.calories)}</td><td${_scopeId}>${ssrInterpolate(item.fat)}</td><td${_scopeId}>${ssrInterpolate(item.carbs)}</td><td${_scopeId}>${ssrInterpolate(item.protein)}</td></tr>`);
});
_push2(`<!--]--></tbody>`);
} else {
return [
createVNode("thead", null, [
createVNode("tr", null, [
createVNode("th", null, " Desserts (100g Servings) "),
createVNode("th", { class: "text-uppercase" }, " calories "),
createVNode("th", { class: "text-uppercase" }, " Fat(g) "),
createVNode("th", { class: "text-uppercase" }, " Carbs(g) "),
createVNode("th", { class: "text-uppercase" }, " protein(g) ")
])
]),
createVNode("tbody", null, [
(openBlock(), createBlock(Fragment, null, renderList(desserts, (item) => {
return createVNode("tr", {
key: item.dessert
}, [
createVNode("td", null, toDisplayString(item.dessert), 1),
createVNode("td", null, toDisplayString(item.calories), 1),
createVNode("td", null, toDisplayString(item.fat), 1),
createVNode("td", null, toDisplayString(item.carbs), 1),
createVNode("td", null, toDisplayString(item.protein), 1)
]);
}), 64))
])
];
}
}),
_: 1
}, _parent));
};
}
});
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("views/pages/tables/DemoSimpleTableTheme.vue");
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "tables",
__ssrInlineRender: true,
setup(__props) {
return (_ctx, _push, _parent, _attrs) => {
_push(ssrRenderComponent(VRow, _attrs, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VCard, { title: "Basic" }, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
if (_push4) {
_push4(ssrRenderComponent(_sfc_main$5, null, null, _parent4, _scopeId3));
} else {
return [
createVNode(_sfc_main$5)
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(VCard, { title: "Basic" }, {
default: withCtx(() => [
createVNode(_sfc_main$5)
]),
_: 1
})
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VCard, { title: "Theme" }, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
if (_push4) {
_push4(ssrRenderComponent(VCardText, null, {
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
if (_push5) {
_push5(` use <code${_scopeId4}>theme</code> prop to switch table to the dark theme. `);
} else {
return [
createTextVNode(" use "),
createVNode("code", null, "theme"),
createTextVNode(" prop to switch table to the dark theme. ")
];
}
}),
_: 1
}, _parent4, _scopeId3));
_push4(ssrRenderComponent(_sfc_main$1, null, null, _parent4, _scopeId3));
} else {
return [
createVNode(VCardText, null, {
default: withCtx(() => [
createTextVNode(" use "),
createVNode("code", null, "theme"),
createTextVNode(" prop to switch table to the dark theme. ")
]),
_: 1
}),
createVNode(_sfc_main$1)
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(VCard, { title: "Theme" }, {
default: withCtx(() => [
createVNode(VCardText, null, {
default: withCtx(() => [
createTextVNode(" use "),
createVNode("code", null, "theme"),
createTextVNode(" prop to switch table to the dark theme. ")
]),
_: 1
}),
createVNode(_sfc_main$1)
]),
_: 1
})
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VCard, { title: "Density" }, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
if (_push4) {
_push4(ssrRenderComponent(VCardText, null, {
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
if (_push5) {
_push5(` You can show a dense version of the table by using the <code${_scopeId4}>density</code> prop. `);
} else {
return [
createTextVNode(" You can show a dense version of the table by using the "),
createVNode("code", null, "density"),
createTextVNode(" prop. ")
];
}
}),
_: 1
}, _parent4, _scopeId3));
_push4(ssrRenderComponent(_sfc_main$4, null, null, _parent4, _scopeId3));
} else {
return [
createVNode(VCardText, null, {
default: withCtx(() => [
createTextVNode(" You can show a dense version of the table by using the "),
createVNode("code", null, "density"),
createTextVNode(" prop. ")
]),
_: 1
}),
createVNode(_sfc_main$4)
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(VCard, { title: "Density" }, {
default: withCtx(() => [
createVNode(VCardText, null, {
default: withCtx(() => [
createTextVNode(" You can show a dense version of the table by using the "),
createVNode("code", null, "density"),
createTextVNode(" prop. ")
]),
_: 1
}),
createVNode(_sfc_main$4)
]),
_: 1
})
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VCard, { title: "Height" }, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
if (_push4) {
_push4(ssrRenderComponent(VCardText, null, {
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
if (_push5) {
_push5(` You can set the height of the table by using the <code${_scopeId4}>height</code> prop. `);
} else {
return [
createTextVNode(" You can set the height of the table by using the "),
createVNode("code", null, "height"),
createTextVNode(" prop. ")
];
}
}),
_: 1
}, _parent4, _scopeId3));
_push4(ssrRenderComponent(_sfc_main$2, null, null, _parent4, _scopeId3));
} else {
return [
createVNode(VCardText, null, {
default: withCtx(() => [
createTextVNode(" You can set the height of the table by using the "),
createVNode("code", null, "height"),
createTextVNode(" prop. ")
]),
_: 1
}),
createVNode(_sfc_main$2)
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(VCard, { title: "Height" }, {
default: withCtx(() => [
createVNode(VCardText, null, {
default: withCtx(() => [
createTextVNode(" You can set the height of the table by using the "),
createVNode("code", null, "height"),
createTextVNode(" prop. ")
]),
_: 1
}),
createVNode(_sfc_main$2)
]),
_: 1
})
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(VCol, { cols: "12" }, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(ssrRenderComponent(VCard, { title: "Fixed Header" }, {
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
if (_push4) {
_push4(ssrRenderComponent(VCardText, null, {
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
if (_push5) {
_push5(` You can fix the header of table by using the <code${_scopeId4}>fixed-header</code> prop. `);
} else {
return [
createTextVNode(" You can fix the header of table by using the "),
createVNode("code", null, "fixed-header"),
createTextVNode(" prop. ")
];
}
}),
_: 1
}, _parent4, _scopeId3));
_push4(ssrRenderComponent(_sfc_main$3, null, null, _parent4, _scopeId3));
} else {
return [
createVNode(VCardText, null, {
default: withCtx(() => [
createTextVNode(" You can fix the header of table by using the "),
createVNode("code", null, "fixed-header"),
createTextVNode(" prop. ")
]),
_: 1
}),
createVNode(_sfc_main$3)
];
}
}),
_: 1
}, _parent3, _scopeId2));
} else {
return [
createVNode(VCard, { title: "Fixed Header" }, {
default: withCtx(() => [
createVNode(VCardText, null, {
default: withCtx(() => [
createTextVNode(" You can fix the header of table by using the "),
createVNode("code", null, "fixed-header"),
createTextVNode(" prop. ")
]),
_: 1
}),
createVNode(_sfc_main$3)
]),
_: 1
})
];
}
}),
_: 1
}, _parent2, _scopeId));
} else {
return [
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VCard, { title: "Basic" }, {
default: withCtx(() => [
createVNode(_sfc_main$5)
]),
_: 1
})
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VCard, { title: "Theme" }, {
default: withCtx(() => [
createVNode(VCardText, null, {
default: withCtx(() => [
createTextVNode(" use "),
createVNode("code", null, "theme"),
createTextVNode(" prop to switch table to the dark theme. ")
]),
_: 1
}),
createVNode(_sfc_main$1)
]),
_: 1
})
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VCard, { title: "Density" }, {
default: withCtx(() => [
createVNode(VCardText, null, {
default: withCtx(() => [
createTextVNode(" You can show a dense version of the table by using the "),
createVNode("code", null, "density"),
createTextVNode(" prop. ")
]),
_: 1
}),
createVNode(_sfc_main$4)
]),
_: 1
})
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VCard, { title: "Height" }, {
default: withCtx(() => [
createVNode(VCardText, null, {
default: withCtx(() => [
createTextVNode(" You can set the height of the table by using the "),
createVNode("code", null, "height"),
createTextVNode(" prop. ")
]),
_: 1
}),
createVNode(_sfc_main$2)
]),
_: 1
})
]),
_: 1
}),
createVNode(VCol, { cols: "12" }, {
default: withCtx(() => [
createVNode(VCard, { title: "Fixed Header" }, {
default: withCtx(() => [
createVNode(VCardText, null, {
default: withCtx(() => [
createTextVNode(" You can fix the header of table by using the "),
createVNode("code", null, "fixed-header"),
createTextVNode(" prop. ")
]),
_: 1
}),
createVNode(_sfc_main$3)
]),
_: 1
})
]),
_: 1
})
];
}
}),
_: 1
}, _parent));
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/tables.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as default };

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,72 @@
import { d as defineEventHandler, r as readBody, c as createError } from '../../../nitro/nitro.mjs';
import { PrismaClient } from '@prisma/client';
import jwt from 'jsonwebtoken';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
const prisma = new PrismaClient();
const login_post = defineEventHandler(async (event) => {
const body = await readBody(event);
const { user_id, password } = body;
console.log("\uB85C\uADF8\uC778 \uC694\uCCAD:", { user_id, password: password ? "***" : "undefined" });
if (!user_id || !password) {
throw createError({
statusCode: 400,
statusMessage: "\uC544\uC774\uB514\uC640 \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD574\uC8FC\uC138\uC694."
});
}
try {
const user = await prisma.members.findUnique({
where: { user_id }
});
console.log("\uC0AC\uC6A9\uC790 \uC870\uD68C \uACB0\uACFC:", user);
if (!user) {
throw createError({
statusCode: 401,
statusMessage: "\uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uC544\uC774\uB514\uC785\uB2C8\uB2E4."
});
}
if (user.password !== password) {
console.log("\uBE44\uBC00\uBC88\uD638 \uBD88\uC77C\uCE58:", {
\uC785\uB825\uB41C\uBE44\uBC00\uBC88\uD638: password,
\uC800\uC7A5\uB41C\uBE44\uBC00\uBC88\uD638: user.password
});
throw createError({
statusCode: 401,
statusMessage: "\uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."
});
}
console.log("\uB85C\uADF8\uC778 \uC131\uACF5:", { user_id: user.user_id, name: user.name });
const token = jwt.sign(
{ id: user.id, user_id: user.user_id, name: user.name, role_level: user.role_level },
"your-secret-key",
// 실제 서비스에서는 환경 변수로 관리
{ expiresIn: "24h" }
);
return {
success: true,
message: "\uB85C\uADF8\uC778 \uC131\uACF5",
token,
user: {
id: user.id,
user_id: user.user_id,
name: user.name,
role_level: user.role_level
}
};
} catch (error) {
console.error("\uB85C\uADF8\uC778 \uC624\uB958:", error);
throw createError({
statusCode: error.statusCode || 500,
statusMessage: error.statusMessage || "\uB85C\uADF8\uC778 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4."
});
}
});
export { login_post as default };

View File

@@ -0,0 +1,66 @@
import { d as defineEventHandler, r as readBody, c as createError } from '../../../nitro/nitro.mjs';
import { Pool } from 'pg';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
const pool = new Pool({
user: "musicuser",
host: "localhost",
database: "musicdb",
password: "Tjqjqhdks$321",
port: 5432
});
const register_post = defineEventHandler(async (event) => {
try {
const body = await readBody(event);
const { user_id, password, name, role_level } = body;
if (!user_id || !password || !name || !role_level) {
throw createError({
statusCode: 400,
statusMessage: "\uBAA8\uB4E0 \uD544\uB4DC\uB97C \uC785\uB825\uD574\uC8FC\uC138\uC694."
});
}
if (role_level < 1 || role_level > 3) {
throw createError({
statusCode: 400,
statusMessage: "\uAD8C\uD55C \uB4F1\uAE09\uC740 1~3 \uC0AC\uC774\uC5EC\uC57C \uD569\uB2C8\uB2E4."
});
}
const existingUser = await pool.query(
"SELECT user_id FROM members WHERE user_id = $1",
[user_id]
);
if (existingUser.rows.length > 0) {
throw createError({
statusCode: 409,
statusMessage: "\uC774\uBBF8 \uC874\uC7AC\uD558\uB294 \uC544\uC774\uB514\uC785\uB2C8\uB2E4."
});
}
const result = await pool.query(
"INSERT INTO members (user_id, password, name, role_level) VALUES ($1, $2, $3, $4) RETURNING *",
[user_id, password, name, role_level]
);
const newUser = result.rows[0];
return {
success: true,
message: "\uD68C\uC6D0\uAC00\uC785\uC774 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",
user: {
id: newUser.id,
user_id: newUser.user_id,
name: newUser.name,
role_level: newUser.role_level
}
};
} catch (error) {
console.error("Register error:", error);
throw error;
}
});
export { register_post as default };

Some files were not shown because too many files have changed in this diff Show More