@qwickapps/cms 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +45 -0
- package/README.md +203 -0
- package/dist/admin/components/AccordionItemRowLabel.d.ts +20 -0
- package/dist/admin/components/AccordionItemRowLabel.d.ts.map +1 -0
- package/dist/admin/components/AccordionItemRowLabel.js +47 -0
- package/dist/admin/components/AccordionItemRowLabel.js.map +1 -0
- package/dist/admin/components/BlockRowLabel.d.ts +19 -0
- package/dist/admin/components/BlockRowLabel.d.ts.map +1 -0
- package/dist/admin/components/BlockRowLabel.js +52 -0
- package/dist/admin/components/BlockRowLabel.js.map +1 -0
- package/dist/admin/components/ButtonRowLabel.d.ts +23 -0
- package/dist/admin/components/ButtonRowLabel.d.ts.map +1 -0
- package/dist/admin/components/ButtonRowLabel.js +63 -0
- package/dist/admin/components/ButtonRowLabel.js.map +1 -0
- package/dist/admin/components/CardRowLabel.d.ts +23 -0
- package/dist/admin/components/CardRowLabel.d.ts.map +1 -0
- package/dist/admin/components/CardRowLabel.js +59 -0
- package/dist/admin/components/CardRowLabel.js.map +1 -0
- package/dist/admin/components/ContentPreview.d.ts +12 -0
- package/dist/admin/components/ContentPreview.d.ts.map +1 -0
- package/dist/admin/components/ContentPreview.js +95 -0
- package/dist/admin/components/ContentPreview.js.map +1 -0
- package/dist/admin/components/Dashboard.d.ts +13 -0
- package/dist/admin/components/Dashboard.d.ts.map +1 -0
- package/dist/admin/components/Dashboard.js +7 -0
- package/dist/admin/components/Dashboard.js.map +1 -0
- package/dist/admin/components/DashboardContent.d.ts +11 -0
- package/dist/admin/components/DashboardContent.d.ts.map +1 -0
- package/dist/admin/components/DashboardContent.js +129 -0
- package/dist/admin/components/DashboardContent.js.map +1 -0
- package/dist/admin/components/FormFieldRowLabel.d.ts +21 -0
- package/dist/admin/components/FormFieldRowLabel.d.ts.map +1 -0
- package/dist/admin/components/FormFieldRowLabel.js +47 -0
- package/dist/admin/components/FormFieldRowLabel.js.map +1 -0
- package/dist/admin/components/Icon.d.ts +10 -0
- package/dist/admin/components/Icon.d.ts.map +1 -0
- package/dist/admin/components/Icon.js +16 -0
- package/dist/admin/components/Icon.js.map +1 -0
- package/dist/admin/components/Logo.d.ts +10 -0
- package/dist/admin/components/Logo.d.ts.map +1 -0
- package/dist/admin/components/Logo.js +16 -0
- package/dist/admin/components/Logo.js.map +1 -0
- package/dist/admin/components/NavigationItemRowLabel.d.ts +21 -0
- package/dist/admin/components/NavigationItemRowLabel.d.ts.map +1 -0
- package/dist/admin/components/NavigationItemRowLabel.js +43 -0
- package/dist/admin/components/NavigationItemRowLabel.js.map +1 -0
- package/dist/admin/components/NavigationSubItemRowLabel.d.ts +19 -0
- package/dist/admin/components/NavigationSubItemRowLabel.d.ts.map +1 -0
- package/dist/admin/components/NavigationSubItemRowLabel.js +32 -0
- package/dist/admin/components/NavigationSubItemRowLabel.js.map +1 -0
- package/dist/admin/components/PagesListHeader.d.ts +13 -0
- package/dist/admin/components/PagesListHeader.d.ts.map +1 -0
- package/dist/admin/components/PagesListHeader.js +48 -0
- package/dist/admin/components/PagesListHeader.js.map +1 -0
- package/dist/admin/components/ProductsListHeader.d.ts +13 -0
- package/dist/admin/components/ProductsListHeader.d.ts.map +1 -0
- package/dist/admin/components/ProductsListHeader.js +55 -0
- package/dist/admin/components/ProductsListHeader.js.map +1 -0
- package/dist/admin/components/styles/CollectionListHeader.css +161 -0
- package/dist/admin/components/styles/ContentPreview.css +416 -0
- package/dist/admin/components/styles/Dashboard.css +338 -0
- package/dist/admin/fields/ColorInput.d.ts +13 -0
- package/dist/admin/fields/ColorInput.d.ts.map +1 -0
- package/dist/admin/fields/ColorInput.js +201 -0
- package/dist/admin/fields/ColorInput.js.map +1 -0
- package/dist/admin/fields/index.d.ts +9 -0
- package/dist/admin/fields/index.d.ts.map +1 -0
- package/dist/admin/fields/index.js +9 -0
- package/dist/admin/fields/index.js.map +1 -0
- package/dist/admin/index.d.ts +24 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +30 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/blocks/ContentBlocks.d.ts +75 -0
- package/dist/blocks/ContentBlocks.d.ts.map +1 -0
- package/dist/blocks/ContentBlocks.js +1241 -0
- package/dist/blocks/ContentBlocks.js.map +1 -0
- package/dist/blocks/index.d.ts +2 -0
- package/dist/blocks/index.d.ts.map +1 -0
- package/dist/blocks/index.js +3 -0
- package/dist/blocks/index.js.map +1 -0
- package/dist/client/PayloadAPIClient.d.ts +65 -0
- package/dist/client/PayloadAPIClient.d.ts.map +1 -0
- package/dist/client/PayloadAPIClient.js +167 -0
- package/dist/client/PayloadAPIClient.js.map +1 -0
- package/dist/collections/Automations.d.ts +12 -0
- package/dist/collections/Automations.d.ts.map +1 -0
- package/dist/collections/Automations.js +741 -0
- package/dist/collections/Automations.js.map +1 -0
- package/dist/collections/Features.d.ts +3 -0
- package/dist/collections/Features.d.ts.map +1 -0
- package/dist/collections/Features.js +69 -0
- package/dist/collections/Features.js.map +1 -0
- package/dist/collections/Footer.d.ts +11 -0
- package/dist/collections/Footer.d.ts.map +1 -0
- package/dist/collections/Footer.js +130 -0
- package/dist/collections/Footer.js.map +1 -0
- package/dist/collections/FormSubmissions.d.ts +3 -0
- package/dist/collections/FormSubmissions.d.ts.map +1 -0
- package/dist/collections/FormSubmissions.js +119 -0
- package/dist/collections/FormSubmissions.js.map +1 -0
- package/dist/collections/Forms.d.ts +16 -0
- package/dist/collections/Forms.d.ts.map +1 -0
- package/dist/collections/Forms.js +308 -0
- package/dist/collections/Forms.js.map +1 -0
- package/dist/collections/HeroBlocks.d.ts +3 -0
- package/dist/collections/HeroBlocks.d.ts.map +1 -0
- package/dist/collections/HeroBlocks.js +115 -0
- package/dist/collections/HeroBlocks.js.map +1 -0
- package/dist/collections/Media.d.ts +3 -0
- package/dist/collections/Media.d.ts.map +1 -0
- package/dist/collections/Media.js +26 -0
- package/dist/collections/Media.js.map +1 -0
- package/dist/collections/Navigation.d.ts +3 -0
- package/dist/collections/Navigation.d.ts.map +1 -0
- package/dist/collections/Navigation.js +106 -0
- package/dist/collections/Navigation.js.map +1 -0
- package/dist/collections/Pages.d.ts +3 -0
- package/dist/collections/Pages.d.ts.map +1 -0
- package/dist/collections/Pages.js +94 -0
- package/dist/collections/Pages.js.map +1 -0
- package/dist/collections/Posts.d.ts +3 -0
- package/dist/collections/Posts.d.ts.map +1 -0
- package/dist/collections/Posts.js +134 -0
- package/dist/collections/Posts.js.map +1 -0
- package/dist/collections/Products.d.ts +3 -0
- package/dist/collections/Products.d.ts.map +1 -0
- package/dist/collections/Products.js +264 -0
- package/dist/collections/Products.js.map +1 -0
- package/dist/collections/Users.d.ts +3 -0
- package/dist/collections/Users.d.ts.map +1 -0
- package/dist/collections/Users.js +53 -0
- package/dist/collections/Users.js.map +1 -0
- package/dist/collections/hooks/index.d.ts +9 -0
- package/dist/collections/hooks/index.d.ts.map +1 -0
- package/dist/collections/hooks/index.js +9 -0
- package/dist/collections/hooks/index.js.map +1 -0
- package/dist/collections/hooks/loggingHooks.d.ts +45 -0
- package/dist/collections/hooks/loggingHooks.d.ts.map +1 -0
- package/dist/collections/hooks/loggingHooks.js +109 -0
- package/dist/collections/hooks/loggingHooks.js.map +1 -0
- package/dist/collections/index.d.ts +14 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/index.js +16 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +4 -0
- package/dist/components/index.js.map +1 -0
- package/dist/globals/AdvancedSettings.d.ts +8 -0
- package/dist/globals/AdvancedSettings.d.ts.map +1 -0
- package/dist/globals/AdvancedSettings.js +157 -0
- package/dist/globals/AdvancedSettings.js.map +1 -0
- package/dist/globals/Integrations.d.ts +8 -0
- package/dist/globals/Integrations.d.ts.map +1 -0
- package/dist/globals/Integrations.js +270 -0
- package/dist/globals/Integrations.js.map +1 -0
- package/dist/globals/SiteSettings.d.ts +8 -0
- package/dist/globals/SiteSettings.d.ts.map +1 -0
- package/dist/globals/SiteSettings.js +258 -0
- package/dist/globals/SiteSettings.js.map +1 -0
- package/dist/globals/ThemeSettings.d.ts +11 -0
- package/dist/globals/ThemeSettings.d.ts.map +1 -0
- package/dist/globals/ThemeSettings.js +92 -0
- package/dist/globals/ThemeSettings.js.map +1 -0
- package/dist/globals/index.d.ts +5 -0
- package/dist/globals/index.d.ts.map +1 -0
- package/dist/globals/index.js +6 -0
- package/dist/globals/index.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/index.d.ts +73 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +190 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/nextjs/BlockRenderer.d.ts +227 -0
- package/dist/nextjs/BlockRenderer.d.ts.map +1 -0
- package/dist/nextjs/BlockRenderer.js +358 -0
- package/dist/nextjs/BlockRenderer.js.map +1 -0
- package/dist/nextjs/ClientHomePage.d.ts +6 -0
- package/dist/nextjs/ClientHomePage.d.ts.map +1 -0
- package/dist/nextjs/ClientHomePage.js +17 -0
- package/dist/nextjs/ClientHomePage.js.map +1 -0
- package/dist/nextjs/ClientSideQwickApp.d.ts +23 -0
- package/dist/nextjs/ClientSideQwickApp.d.ts.map +1 -0
- package/dist/nextjs/ClientSideQwickApp.js +50 -0
- package/dist/nextjs/ClientSideQwickApp.js.map +1 -0
- package/dist/nextjs/DynamicQwickApp.d.ts +9 -0
- package/dist/nextjs/DynamicQwickApp.d.ts.map +1 -0
- package/dist/nextjs/DynamicQwickApp.js +19 -0
- package/dist/nextjs/DynamicQwickApp.js.map +1 -0
- package/dist/nextjs/FooterFromSettings.d.ts +6 -0
- package/dist/nextjs/FooterFromSettings.d.ts.map +1 -0
- package/dist/nextjs/FooterFromSettings.js +72 -0
- package/dist/nextjs/FooterFromSettings.js.map +1 -0
- package/dist/nextjs/FormBlockComponent.d.ts +25 -0
- package/dist/nextjs/FormBlockComponent.d.ts.map +1 -0
- package/dist/nextjs/FormBlockComponent.js +110 -0
- package/dist/nextjs/FormBlockComponent.js.map +1 -0
- package/dist/nextjs/HomePageContent.d.ts +6 -0
- package/dist/nextjs/HomePageContent.d.ts.map +1 -0
- package/dist/nextjs/HomePageContent.js +50 -0
- package/dist/nextjs/HomePageContent.js.map +1 -0
- package/dist/nextjs/LivePreviewClient.d.ts +40 -0
- package/dist/nextjs/LivePreviewClient.d.ts.map +1 -0
- package/dist/nextjs/LivePreviewClient.js +35 -0
- package/dist/nextjs/LivePreviewClient.js.map +1 -0
- package/dist/nextjs/RefreshRouteOnSave.d.ts +31 -0
- package/dist/nextjs/RefreshRouteOnSave.d.ts.map +1 -0
- package/dist/nextjs/RefreshRouteOnSave.js +59 -0
- package/dist/nextjs/RefreshRouteOnSave.js.map +1 -0
- package/dist/nextjs/ScriptsInjector.d.ts +2 -0
- package/dist/nextjs/ScriptsInjector.d.ts.map +1 -0
- package/dist/nextjs/ScriptsInjector.js +73 -0
- package/dist/nextjs/ScriptsInjector.js.map +1 -0
- package/dist/nextjs/ServerQwickApp.d.ts +13 -0
- package/dist/nextjs/ServerQwickApp.d.ts.map +1 -0
- package/dist/nextjs/ServerQwickApp.js +159 -0
- package/dist/nextjs/ServerQwickApp.js.map +1 -0
- package/dist/nextjs/SettingsProvider.d.ts +110 -0
- package/dist/nextjs/SettingsProvider.d.ts.map +1 -0
- package/dist/nextjs/SettingsProvider.js +107 -0
- package/dist/nextjs/SettingsProvider.js.map +1 -0
- package/dist/nextjs/SiteLogo.d.ts +35 -0
- package/dist/nextjs/SiteLogo.d.ts.map +1 -0
- package/dist/nextjs/SiteLogo.js +105 -0
- package/dist/nextjs/SiteLogo.js.map +1 -0
- package/dist/nextjs/framework.d.ts +19 -0
- package/dist/nextjs/framework.d.ts.map +1 -0
- package/dist/nextjs/framework.js +35 -0
- package/dist/nextjs/framework.js.map +1 -0
- package/dist/nextjs/index.d.ts +38 -0
- package/dist/nextjs/index.d.ts.map +1 -0
- package/dist/nextjs/index.js +47 -0
- package/dist/nextjs/index.js.map +1 -0
- package/dist/nextjs/metadata.d.ts +20 -0
- package/dist/nextjs/metadata.d.ts.map +1 -0
- package/dist/nextjs/metadata.js +107 -0
- package/dist/nextjs/metadata.js.map +1 -0
- package/dist/plugins/index.d.ts +2 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +3 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/qwickapps-plugin.d.ts +78 -0
- package/dist/plugins/qwickapps-plugin.d.ts.map +1 -0
- package/dist/plugins/qwickapps-plugin.js +154 -0
- package/dist/plugins/qwickapps-plugin.js.map +1 -0
- package/dist/providers/PayloadDataProvider.d.ts +72 -0
- package/dist/providers/PayloadDataProvider.d.ts.map +1 -0
- package/dist/providers/PayloadDataProvider.js +222 -0
- package/dist/providers/PayloadDataProvider.js.map +1 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +3 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/styles/admin-theme.css +352 -0
- package/package.json +104 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const dynamic = 'force-dynamic';
|
|
3
|
+
// @ts-nocheck
|
|
4
|
+
/**
|
|
5
|
+
* Server QwickApp Wrapper - Fetches navigation from CMS
|
|
6
|
+
*
|
|
7
|
+
* This server component fetches navigation data from Payload CMS
|
|
8
|
+
* and passes it to the client-side QwickApp component.
|
|
9
|
+
*
|
|
10
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
11
|
+
*/
|
|
12
|
+
import { getPayload } from 'payload';
|
|
13
|
+
import { ClientSideQwickApp } from './ClientSideQwickApp';
|
|
14
|
+
/**
|
|
15
|
+
* Get Payload instance with proper error handling for secret key issues
|
|
16
|
+
*/
|
|
17
|
+
async function getPayloadInstance(config) {
|
|
18
|
+
try {
|
|
19
|
+
return await getPayload({ config: config });
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
// Check if this is a secret key error - return null to use defaults
|
|
23
|
+
if (error?.message?.includes('secret key') || error?.payloadInitError) {
|
|
24
|
+
console.warn('[ServerQwickApp] Payload initialization failed (secret key issue), using defaults');
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Fetch navigation data from Payload CMS
|
|
32
|
+
*/
|
|
33
|
+
async function getNavigationData(config) {
|
|
34
|
+
try {
|
|
35
|
+
const payload = await getPayloadInstance(config);
|
|
36
|
+
if (!payload) {
|
|
37
|
+
// Return default navigation if payload init failed
|
|
38
|
+
return getDefaultNavigation();
|
|
39
|
+
}
|
|
40
|
+
const result = await payload.find({
|
|
41
|
+
collection: 'navigation',
|
|
42
|
+
where: {
|
|
43
|
+
position: { equals: 'main' }
|
|
44
|
+
},
|
|
45
|
+
limit: 1,
|
|
46
|
+
draft: false
|
|
47
|
+
});
|
|
48
|
+
if (result.docs && result.docs.length > 0) {
|
|
49
|
+
return result.docs[0];
|
|
50
|
+
}
|
|
51
|
+
// Return default navigation if none found in CMS
|
|
52
|
+
return getDefaultNavigation();
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
// Suppress error if tables don't exist yet (42P01 is PostgreSQL error code for "relation does not exist")
|
|
56
|
+
if (error?.cause?.code === '42P01' || error?.message?.includes('does not exist')) {
|
|
57
|
+
console.log('[Build] Database tables not ready yet, using default navigation');
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
console.error('Error fetching navigation:', error);
|
|
61
|
+
}
|
|
62
|
+
// Return default navigation on error
|
|
63
|
+
return getDefaultNavigation();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function getDefaultNavigation() {
|
|
67
|
+
return {
|
|
68
|
+
name: 'Main Menu',
|
|
69
|
+
position: 'main',
|
|
70
|
+
items: [
|
|
71
|
+
{
|
|
72
|
+
label: 'Home',
|
|
73
|
+
route: '/',
|
|
74
|
+
icon: 'home'
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
label: 'Admin',
|
|
78
|
+
route: '/admin',
|
|
79
|
+
icon: 'person'
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Fetch all settings from Payload CMS and merge them
|
|
86
|
+
*/
|
|
87
|
+
async function getSettings(config) {
|
|
88
|
+
try {
|
|
89
|
+
const payload = await getPayloadInstance(config);
|
|
90
|
+
if (!payload) {
|
|
91
|
+
// Return default settings if payload init failed
|
|
92
|
+
return getDefaultSettings();
|
|
93
|
+
}
|
|
94
|
+
// Fetch all four globals in parallel
|
|
95
|
+
const [siteSettings, integrations, advancedSettings, themeSettings] = await Promise.all([
|
|
96
|
+
payload.findGlobal({ slug: 'site-settings', draft: false }).catch(() => ({})),
|
|
97
|
+
payload.findGlobal({ slug: 'integrations', draft: false }).catch(() => ({})),
|
|
98
|
+
payload.findGlobal({ slug: 'advanced-settings', draft: false }).catch(() => ({})),
|
|
99
|
+
payload.findGlobal({ slug: 'theme-settings', draft: false }).catch(() => ({})),
|
|
100
|
+
]);
|
|
101
|
+
// Merge all settings
|
|
102
|
+
return {
|
|
103
|
+
// From Site Settings
|
|
104
|
+
siteName: siteSettings.siteName,
|
|
105
|
+
siteDescription: siteSettings.siteDescription,
|
|
106
|
+
siteUrl: siteSettings.siteUrl,
|
|
107
|
+
// Logo configuration
|
|
108
|
+
logoIcon: siteSettings.logoIcon,
|
|
109
|
+
customLogoIcon: siteSettings.customLogoIcon,
|
|
110
|
+
logoText: siteSettings.logoText,
|
|
111
|
+
logoBadge: siteSettings.logoBadge,
|
|
112
|
+
logoBadgeShape: siteSettings.logoBadgeShape,
|
|
113
|
+
siteLogo: siteSettings.siteLogo, // Keep for backward compatibility
|
|
114
|
+
favicon: siteSettings.favicon,
|
|
115
|
+
copyrightText: siteSettings.copyrightText,
|
|
116
|
+
adminEmail: siteSettings.adminEmail,
|
|
117
|
+
supportEmail: siteSettings.supportEmail,
|
|
118
|
+
contactPhone: siteSettings.contactPhone,
|
|
119
|
+
businessAddress: siteSettings.businessAddress,
|
|
120
|
+
socialMedia: siteSettings.socialMedia,
|
|
121
|
+
// From Integrations
|
|
122
|
+
googleAnalytics: integrations.googleAnalytics,
|
|
123
|
+
googleTagManager: integrations.googleTagManager,
|
|
124
|
+
facebookPixel: integrations.facebookPixel,
|
|
125
|
+
captcha: integrations.captcha,
|
|
126
|
+
email: integrations.email,
|
|
127
|
+
// From Advanced Settings
|
|
128
|
+
seo: advancedSettings.seo,
|
|
129
|
+
customScripts: advancedSettings.customScripts,
|
|
130
|
+
maintenance: advancedSettings.maintenance,
|
|
131
|
+
// From Theme Settings
|
|
132
|
+
defaultTheme: themeSettings.defaultTheme,
|
|
133
|
+
defaultPalette: themeSettings.defaultPalette,
|
|
134
|
+
showThemeSwitcher: themeSettings.showThemeSwitcher,
|
|
135
|
+
showPaletteSwitcher: themeSettings.showPaletteSwitcher,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
console.error('Error fetching settings:', error);
|
|
140
|
+
return getDefaultSettings();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function getDefaultSettings() {
|
|
144
|
+
return {
|
|
145
|
+
siteName: 'QwickApps',
|
|
146
|
+
defaultTheme: 'dark',
|
|
147
|
+
defaultPalette: 'autumn',
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* ServerQwickApp - Server Component
|
|
152
|
+
* Fetches navigation and settings from CMS and passes to client component
|
|
153
|
+
*/
|
|
154
|
+
export async function ServerQwickApp({ children, payloadConfig }) {
|
|
155
|
+
const navigationData = await getNavigationData(payloadConfig);
|
|
156
|
+
const settings = await getSettings(payloadConfig);
|
|
157
|
+
return (_jsx(ClientSideQwickApp, { navigationItems: navigationData.items, initialSettings: settings, children: children }));
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=ServerQwickApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerQwickApp.js","sourceRoot":"","sources":["../../src/nextjs/ServerQwickApp.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SettingsProvider - Provides site-wide settings to all components
|
|
3
|
+
*
|
|
4
|
+
* Fetches Settings global from Payload CMS and makes it available via Context.
|
|
5
|
+
* Used for CAPTCHA configuration, analytics, SEO defaults, etc.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* <SettingsProvider>
|
|
9
|
+
* <YourApp />
|
|
10
|
+
* </SettingsProvider>
|
|
11
|
+
*
|
|
12
|
+
* const settings = useSettings();
|
|
13
|
+
* const captchaProvider = settings?.captcha?.provider;
|
|
14
|
+
*
|
|
15
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
16
|
+
*/
|
|
17
|
+
import React from 'react';
|
|
18
|
+
export interface Settings {
|
|
19
|
+
siteName?: string;
|
|
20
|
+
siteDescription?: string;
|
|
21
|
+
siteUrl?: string;
|
|
22
|
+
siteLogo?: any;
|
|
23
|
+
favicon?: any;
|
|
24
|
+
copyrightText?: string;
|
|
25
|
+
adminEmail?: string;
|
|
26
|
+
supportEmail?: string;
|
|
27
|
+
contactPhone?: string;
|
|
28
|
+
businessAddress?: {
|
|
29
|
+
street?: string;
|
|
30
|
+
city?: string;
|
|
31
|
+
state?: string;
|
|
32
|
+
postalCode?: string;
|
|
33
|
+
country?: string;
|
|
34
|
+
};
|
|
35
|
+
socialMedia?: {
|
|
36
|
+
facebook?: string;
|
|
37
|
+
twitter?: string;
|
|
38
|
+
instagram?: string;
|
|
39
|
+
linkedin?: string;
|
|
40
|
+
youtube?: string;
|
|
41
|
+
github?: string;
|
|
42
|
+
};
|
|
43
|
+
googleAnalytics?: {
|
|
44
|
+
enabled?: boolean;
|
|
45
|
+
measurementId?: string;
|
|
46
|
+
};
|
|
47
|
+
googleTagManager?: {
|
|
48
|
+
enabled?: boolean;
|
|
49
|
+
containerId?: string;
|
|
50
|
+
};
|
|
51
|
+
facebookPixel?: {
|
|
52
|
+
enabled?: boolean;
|
|
53
|
+
pixelId?: string;
|
|
54
|
+
};
|
|
55
|
+
captcha?: {
|
|
56
|
+
provider?: 'none' | 'recaptcha-v2' | 'recaptcha-v3' | 'hcaptcha' | 'turnstile';
|
|
57
|
+
siteKey?: string;
|
|
58
|
+
secretKey?: string;
|
|
59
|
+
threshold?: number;
|
|
60
|
+
};
|
|
61
|
+
seo?: {
|
|
62
|
+
defaultTitle?: string;
|
|
63
|
+
defaultDescription?: string;
|
|
64
|
+
defaultKeywords?: string;
|
|
65
|
+
defaultOgImage?: any;
|
|
66
|
+
};
|
|
67
|
+
email?: {
|
|
68
|
+
provider?: string;
|
|
69
|
+
smtpHost?: string;
|
|
70
|
+
smtpPort?: number;
|
|
71
|
+
smtpUser?: string;
|
|
72
|
+
smtpPassword?: string;
|
|
73
|
+
fromEmail?: string;
|
|
74
|
+
fromName?: string;
|
|
75
|
+
};
|
|
76
|
+
customScripts?: {
|
|
77
|
+
headerScripts?: string;
|
|
78
|
+
footerScripts?: string;
|
|
79
|
+
customCss?: string;
|
|
80
|
+
};
|
|
81
|
+
maintenance?: {
|
|
82
|
+
enabled?: boolean;
|
|
83
|
+
message?: string;
|
|
84
|
+
allowedIPs?: string;
|
|
85
|
+
};
|
|
86
|
+
defaultTheme?: 'light' | 'dark';
|
|
87
|
+
defaultPalette?: string;
|
|
88
|
+
showThemeSwitcher?: boolean;
|
|
89
|
+
showPaletteSwitcher?: boolean;
|
|
90
|
+
}
|
|
91
|
+
interface SettingsContextType {
|
|
92
|
+
settings: Settings | null;
|
|
93
|
+
loading: boolean;
|
|
94
|
+
error: Error | null;
|
|
95
|
+
refresh: () => Promise<void>;
|
|
96
|
+
}
|
|
97
|
+
interface SettingsProviderProps {
|
|
98
|
+
children: React.ReactNode;
|
|
99
|
+
initialSettings?: Settings;
|
|
100
|
+
}
|
|
101
|
+
export declare function SettingsProvider({ children, initialSettings }: SettingsProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
102
|
+
/**
|
|
103
|
+
* Hook to access site settings
|
|
104
|
+
*
|
|
105
|
+
* @returns Settings context with settings, loading state, error, and refresh function
|
|
106
|
+
* @throws Error if used outside SettingsProvider
|
|
107
|
+
*/
|
|
108
|
+
export declare function useSettings(): SettingsContextType;
|
|
109
|
+
export {};
|
|
110
|
+
//# sourceMappingURL=SettingsProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsProvider.d.ts","sourceRoot":"","sources":["../../src/nextjs/SettingsProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
// @ts-nocheck
|
|
4
|
+
/**
|
|
5
|
+
* SettingsProvider - Provides site-wide settings to all components
|
|
6
|
+
*
|
|
7
|
+
* Fetches Settings global from Payload CMS and makes it available via Context.
|
|
8
|
+
* Used for CAPTCHA configuration, analytics, SEO defaults, etc.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* <SettingsProvider>
|
|
12
|
+
* <YourApp />
|
|
13
|
+
* </SettingsProvider>
|
|
14
|
+
*
|
|
15
|
+
* const settings = useSettings();
|
|
16
|
+
* const captchaProvider = settings?.captcha?.provider;
|
|
17
|
+
*
|
|
18
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
19
|
+
*/
|
|
20
|
+
import { createContext, useContext, useEffect, useState } from 'react';
|
|
21
|
+
import { getPayloadAPIClient } from '../client/PayloadAPIClient';
|
|
22
|
+
const SettingsContext = createContext(undefined);
|
|
23
|
+
export function SettingsProvider({ children, initialSettings }) {
|
|
24
|
+
const [settings, setSettings] = useState(initialSettings || null);
|
|
25
|
+
const [loading, setLoading] = useState(!initialSettings);
|
|
26
|
+
const [error, setError] = useState(null);
|
|
27
|
+
const fetchSettings = async () => {
|
|
28
|
+
try {
|
|
29
|
+
setLoading(true);
|
|
30
|
+
setError(null);
|
|
31
|
+
const client = getPayloadAPIClient();
|
|
32
|
+
// Fetch all four globals in parallel
|
|
33
|
+
const [siteSettings, integrations, advancedSettings, themeSettings] = await Promise.all([
|
|
34
|
+
client.findGlobal('site-settings').catch(() => ({})),
|
|
35
|
+
client.findGlobal('integrations').catch(() => ({})),
|
|
36
|
+
client.findGlobal('advanced-settings').catch(() => ({})),
|
|
37
|
+
client.findGlobal('theme-settings').catch(() => ({})),
|
|
38
|
+
]);
|
|
39
|
+
// Merge all settings into a single object
|
|
40
|
+
const mergedSettings = {
|
|
41
|
+
// From Site Settings
|
|
42
|
+
siteName: siteSettings.siteName,
|
|
43
|
+
siteDescription: siteSettings.siteDescription,
|
|
44
|
+
siteUrl: siteSettings.siteUrl,
|
|
45
|
+
siteLogo: siteSettings.siteLogo,
|
|
46
|
+
favicon: siteSettings.favicon,
|
|
47
|
+
copyrightText: siteSettings.copyrightText,
|
|
48
|
+
adminEmail: siteSettings.adminEmail,
|
|
49
|
+
supportEmail: siteSettings.supportEmail,
|
|
50
|
+
contactPhone: siteSettings.contactPhone,
|
|
51
|
+
businessAddress: siteSettings.businessAddress,
|
|
52
|
+
socialMedia: siteSettings.socialMedia,
|
|
53
|
+
// From Integrations
|
|
54
|
+
googleAnalytics: integrations.googleAnalytics,
|
|
55
|
+
googleTagManager: integrations.googleTagManager,
|
|
56
|
+
facebookPixel: integrations.facebookPixel,
|
|
57
|
+
captcha: integrations.captcha,
|
|
58
|
+
email: integrations.email,
|
|
59
|
+
// From Advanced Settings
|
|
60
|
+
seo: advancedSettings.seo,
|
|
61
|
+
customScripts: advancedSettings.customScripts,
|
|
62
|
+
maintenance: advancedSettings.maintenance,
|
|
63
|
+
// From Theme Settings
|
|
64
|
+
defaultTheme: themeSettings.defaultTheme,
|
|
65
|
+
defaultPalette: themeSettings.defaultPalette,
|
|
66
|
+
showThemeSwitcher: themeSettings.showThemeSwitcher,
|
|
67
|
+
showPaletteSwitcher: themeSettings.showPaletteSwitcher,
|
|
68
|
+
};
|
|
69
|
+
setSettings(mergedSettings);
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
const error = err instanceof Error ? err : new Error('Failed to fetch settings');
|
|
73
|
+
setError(error);
|
|
74
|
+
console.error('SettingsProvider: Error fetching settings:', error);
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
setLoading(false);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
// Only fetch if we don't have initial settings
|
|
82
|
+
if (!initialSettings) {
|
|
83
|
+
fetchSettings();
|
|
84
|
+
}
|
|
85
|
+
}, [initialSettings]);
|
|
86
|
+
const value = {
|
|
87
|
+
settings,
|
|
88
|
+
loading,
|
|
89
|
+
error,
|
|
90
|
+
refresh: fetchSettings,
|
|
91
|
+
};
|
|
92
|
+
return _jsx(SettingsContext.Provider, { value: value, children: children });
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Hook to access site settings
|
|
96
|
+
*
|
|
97
|
+
* @returns Settings context with settings, loading state, error, and refresh function
|
|
98
|
+
* @throws Error if used outside SettingsProvider
|
|
99
|
+
*/
|
|
100
|
+
export function useSettings() {
|
|
101
|
+
const context = useContext(SettingsContext);
|
|
102
|
+
if (context === undefined) {
|
|
103
|
+
throw new Error('useSettings must be used within a SettingsProvider');
|
|
104
|
+
}
|
|
105
|
+
return context;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=SettingsProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsProvider.js","sourceRoot":"","sources":["../../src/nextjs/SettingsProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SiteLogo Component
|
|
3
|
+
*
|
|
4
|
+
* Renders the site logo based on site settings configuration.
|
|
5
|
+
* Automatically determines whether to use ProductLogo or Logo based on icon + text settings.
|
|
6
|
+
*
|
|
7
|
+
* Logic:
|
|
8
|
+
* - If logoIcon is set AND logoText is set → Use ProductLogo (icon + text)
|
|
9
|
+
* - If only logoText is set → Use Logo (text only)
|
|
10
|
+
* - If only logoIcon is set → Use the icon as an image
|
|
11
|
+
* - Default → ProductLogo with QwickIcon and siteName
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
14
|
+
*/
|
|
15
|
+
import React from 'react';
|
|
16
|
+
export interface SiteLogoProps {
|
|
17
|
+
/** Size of the logo */
|
|
18
|
+
size?: 'tiny' | 'small' | 'medium' | 'large' | 'extra-large';
|
|
19
|
+
/** Optional click handler */
|
|
20
|
+
onClick?: () => void;
|
|
21
|
+
/** Additional CSS class names */
|
|
22
|
+
className?: string;
|
|
23
|
+
/** Additional inline styles */
|
|
24
|
+
style?: React.CSSProperties;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* SiteLogo Component
|
|
28
|
+
*
|
|
29
|
+
* Automatically renders the appropriate logo type based on site settings:
|
|
30
|
+
* - Icon + Text: ProductLogo (with QwickIcon or custom icon)
|
|
31
|
+
* - Text only: Logo component
|
|
32
|
+
* - Icon only: Image
|
|
33
|
+
*/
|
|
34
|
+
export declare function SiteLogo({ size, onClick, className, style, }: SiteLogoProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
//# sourceMappingURL=SiteLogo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiteLogo.d.ts","sourceRoot":"","sources":["../../src/nextjs/SiteLogo.tsx"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAC;IAC7D,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAc,EACd,OAAO,EACP,SAAS,EACT,KAAK,GACN,EAAE,aAAa,2CAkJf"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// @ts-nocheck - Props types from @qwickapps/react-framework have schema dependency issues
|
|
2
|
+
/**
|
|
3
|
+
* SiteLogo Component
|
|
4
|
+
*
|
|
5
|
+
* Renders the site logo based on site settings configuration.
|
|
6
|
+
* Automatically determines whether to use ProductLogo or Logo based on icon + text settings.
|
|
7
|
+
*
|
|
8
|
+
* Logic:
|
|
9
|
+
* - If logoIcon is set AND logoText is set → Use ProductLogo (icon + text)
|
|
10
|
+
* - If only logoText is set → Use Logo (text only)
|
|
11
|
+
* - If only logoIcon is set → Use the icon as an image
|
|
12
|
+
* - Default → ProductLogo with QwickIcon and siteName
|
|
13
|
+
*
|
|
14
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
15
|
+
*/
|
|
16
|
+
'use client';
|
|
17
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
|
+
import { ProductLogo, Logo as FrameworkLogo, QwickIcon } from '@qwickapps/react-framework';
|
|
19
|
+
import { useSettings } from './SettingsProvider';
|
|
20
|
+
import Image from 'next/image';
|
|
21
|
+
/**
|
|
22
|
+
* SiteLogo Component
|
|
23
|
+
*
|
|
24
|
+
* Automatically renders the appropriate logo type based on site settings:
|
|
25
|
+
* - Icon + Text: ProductLogo (with QwickIcon or custom icon)
|
|
26
|
+
* - Text only: Logo component
|
|
27
|
+
* - Icon only: Image
|
|
28
|
+
*/
|
|
29
|
+
export function SiteLogo({ size = 'small', onClick, className, style, }) {
|
|
30
|
+
const { settings } = useSettings();
|
|
31
|
+
// Get settings
|
|
32
|
+
const logoIcon = settings?.logoIcon || 'qwick-icon';
|
|
33
|
+
const customLogoIcon = settings?.customLogoIcon;
|
|
34
|
+
const logoText = settings?.logoText; // Don't fallback to siteName here
|
|
35
|
+
const siteName = settings?.siteName || 'QwickPress';
|
|
36
|
+
const logoBadge = settings?.logoBadge || 'none';
|
|
37
|
+
const logoBadgeShape = settings?.logoBadgeShape || 'circle';
|
|
38
|
+
// Use logoText if provided, otherwise use siteName
|
|
39
|
+
const displayText = logoText || siteName;
|
|
40
|
+
// Debug logging (remove in production)
|
|
41
|
+
if (typeof window !== 'undefined') {
|
|
42
|
+
console.log('SiteLogo settings:', {
|
|
43
|
+
logoIcon,
|
|
44
|
+
logoText,
|
|
45
|
+
siteName,
|
|
46
|
+
displayText,
|
|
47
|
+
logoBadge,
|
|
48
|
+
logoBadgeShape,
|
|
49
|
+
hasIcon: logoIcon !== 'none',
|
|
50
|
+
hasText: !!displayText
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
// Determine what to render
|
|
54
|
+
const hasIcon = logoIcon !== 'none';
|
|
55
|
+
const hasText = !!displayText;
|
|
56
|
+
// Case 1: Both icon and text → ProductLogo
|
|
57
|
+
if (hasIcon && hasText) {
|
|
58
|
+
// Determine which icon to use
|
|
59
|
+
let iconElement;
|
|
60
|
+
if (logoIcon === 'qwick-icon') {
|
|
61
|
+
// Use default QwickIcon
|
|
62
|
+
iconElement = undefined; // ProductLogo will use QwickIcon by default
|
|
63
|
+
}
|
|
64
|
+
else if (logoIcon === 'custom-icon' && customLogoIcon) {
|
|
65
|
+
// Use custom icon
|
|
66
|
+
const iconUrl = typeof customLogoIcon === 'object' && customLogoIcon.url
|
|
67
|
+
? customLogoIcon.url
|
|
68
|
+
: customLogoIcon;
|
|
69
|
+
const iconSize = size === 'tiny' ? 20 : size === 'small' ? 32 : size === 'medium' ? 40 : size === 'large' ? 52 : 68;
|
|
70
|
+
iconElement = (_jsx(Image, { src: iconUrl, alt: "", width: iconSize, height: iconSize, style: { objectFit: 'contain' } }));
|
|
71
|
+
}
|
|
72
|
+
return (_jsx(ProductLogo, { icon: iconElement, name: displayText, size: size, onClick: onClick, className: className, style: style, badge: logoBadge, badgeShape: logoBadgeShape }));
|
|
73
|
+
}
|
|
74
|
+
// Case 2: Text only → Logo component
|
|
75
|
+
if (!hasIcon && hasText) {
|
|
76
|
+
return (_jsx(FrameworkLogo, { name: displayText, size: size, onClick: onClick, className: className, style: style, badge: logoBadge, badgeShape: logoBadgeShape }));
|
|
77
|
+
}
|
|
78
|
+
// Case 3: Icon only → Image
|
|
79
|
+
if (hasIcon && !hasText) {
|
|
80
|
+
if (logoIcon === 'qwick-icon') {
|
|
81
|
+
const iconSize = size === 'tiny' ? 20 : size === 'small' ? 32 : size === 'medium' ? 40 : size === 'large' ? 52 : 68;
|
|
82
|
+
return (_jsx("div", { className: `site-logo-icon ${className || ''}`.trim(), style: {
|
|
83
|
+
cursor: onClick ? 'pointer' : 'default',
|
|
84
|
+
display: 'inline-flex',
|
|
85
|
+
alignItems: 'center',
|
|
86
|
+
...style,
|
|
87
|
+
}, onClick: onClick, children: _jsx(QwickIcon, { size: iconSize }) }));
|
|
88
|
+
}
|
|
89
|
+
else if (logoIcon === 'custom-icon' && customLogoIcon) {
|
|
90
|
+
const iconUrl = typeof customLogoIcon === 'object' && customLogoIcon.url
|
|
91
|
+
? customLogoIcon.url
|
|
92
|
+
: customLogoIcon;
|
|
93
|
+
const iconSize = size === 'tiny' ? 20 : size === 'small' ? 32 : size === 'medium' ? 40 : size === 'large' ? 52 : 68;
|
|
94
|
+
return (_jsx("div", { className: `site-logo-icon ${className || ''}`.trim(), style: {
|
|
95
|
+
cursor: onClick ? 'pointer' : 'default',
|
|
96
|
+
display: 'inline-flex',
|
|
97
|
+
alignItems: 'center',
|
|
98
|
+
...style,
|
|
99
|
+
}, onClick: onClick, children: _jsx(Image, { src: iconUrl, alt: `${siteName} Logo`, width: iconSize, height: iconSize, style: { objectFit: 'contain' } }) }));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Fallback: ProductLogo with defaults
|
|
103
|
+
return (_jsx(ProductLogo, { name: siteName, size: size, onClick: onClick, className: className, style: style }));
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=SiteLogo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiteLogo.js","sourceRoot":"","sources":["../../src/nextjs/SiteLogo.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QwickApps Framework Components - Client Boundary
|
|
3
|
+
*
|
|
4
|
+
* This file serves as the client boundary for all QwickApps Framework components.
|
|
5
|
+
* Instead of creating individual wrapper files, we export all framework components
|
|
6
|
+
* from a single 'use client' file.
|
|
7
|
+
*
|
|
8
|
+
* Why this pattern?
|
|
9
|
+
* - Next.js 15 defaults to Server Components
|
|
10
|
+
* - Framework components use React hooks (require client-side)
|
|
11
|
+
* - Single client boundary is more maintainable than many wrapper files
|
|
12
|
+
*
|
|
13
|
+
* Usage:
|
|
14
|
+
* import { HeroBlock, Section, GridLayout } from './components/framework';
|
|
15
|
+
*
|
|
16
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
17
|
+
*/
|
|
18
|
+
export { HeroBlock, Section, GridLayout, GridCell, Text, Button, FeatureCard, FeatureGrid, Footer, FormField, FormSelect, FormCheckbox, Captcha, iconMap, ProductCard, type HeroBlockProps, type SectionProps, type GridLayoutProps, type GridCellProps, type TextProps, type ButtonProps, type FeatureCardProps, type FeatureGridProps, type FormFieldProps, type FormSelectProps, type FormCheckboxProps, type CaptchaProps, type CaptchaProvider, } from '@qwickapps/react-framework';
|
|
19
|
+
//# sourceMappingURL=framework.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../src/nextjs/framework.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAEL,SAAS,EACT,OAAO,EACP,UAAU,EACV,QAAQ,EAGR,IAAI,EACJ,MAAM,EACN,WAAW,EACX,WAAW,EAGX,MAAM,EAGN,SAAS,EACT,UAAU,EACV,YAAY,EACZ,OAAO,EAGP,OAAO,EAGP,WAAW,EAGX,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
'use client';
|
|
3
|
+
/**
|
|
4
|
+
* QwickApps Framework Components - Client Boundary
|
|
5
|
+
*
|
|
6
|
+
* This file serves as the client boundary for all QwickApps Framework components.
|
|
7
|
+
* Instead of creating individual wrapper files, we export all framework components
|
|
8
|
+
* from a single 'use client' file.
|
|
9
|
+
*
|
|
10
|
+
* Why this pattern?
|
|
11
|
+
* - Next.js 15 defaults to Server Components
|
|
12
|
+
* - Framework components use React hooks (require client-side)
|
|
13
|
+
* - Single client boundary is more maintainable than many wrapper files
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* import { HeroBlock, Section, GridLayout } from './components/framework';
|
|
17
|
+
*
|
|
18
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
19
|
+
*/
|
|
20
|
+
// Re-export all framework components that we use
|
|
21
|
+
// This marks them as client components in Next.js
|
|
22
|
+
export {
|
|
23
|
+
// Layout components
|
|
24
|
+
HeroBlock, Section, GridLayout, GridCell,
|
|
25
|
+
// Content components
|
|
26
|
+
Text, Button, FeatureCard, FeatureGrid,
|
|
27
|
+
// Structure components
|
|
28
|
+
Footer,
|
|
29
|
+
// Form components (themed for QwickApps)
|
|
30
|
+
FormField, FormSelect, FormCheckbox, Captcha,
|
|
31
|
+
// Utilities
|
|
32
|
+
iconMap,
|
|
33
|
+
// Product components
|
|
34
|
+
ProductCard, } from '@qwickapps/react-framework';
|
|
35
|
+
//# sourceMappingURL=framework.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../../src/nextjs/framework.tsx"],"names":[],"mappings":"AAAA,cAAc;AACd,YAAY,CAAC;AAEb;;;;;;;;;;;;;;;;GAgBG;AAEH,iDAAiD;AACjD,kDAAkD;AAClD,OAAO;AACL,oBAAoB;AACpB,SAAS,EACT,OAAO,EACP,UAAU,EACV,QAAQ;AAER,qBAAqB;AACrB,IAAI,EACJ,MAAM,EACN,WAAW,EACX,WAAW;AAEX,uBAAuB;AACvB,MAAM;AAEN,yCAAyC;AACzC,SAAS,EACT,UAAU,EACV,YAAY,EACZ,OAAO;AAEP,YAAY;AACZ,OAAO;AAEP,qBAAqB;AACrB,WAAW,GAgBZ,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QwickApps CMS - Next.js Integration Components
|
|
3
|
+
*
|
|
4
|
+
* This module provides ready-to-use Next.js components for integrating
|
|
5
|
+
* Payload CMS with the QwickApps Framework.
|
|
6
|
+
*
|
|
7
|
+
* Components included:
|
|
8
|
+
* - ServerQwickApp: Server component that fetches navigation and settings from CMS
|
|
9
|
+
* - ClientSideQwickApp: Client wrapper for QwickApp with PayloadDataProvider
|
|
10
|
+
* - ClientQwickApp: Simple client QwickApp wrapper (deprecated - use ServerQwickApp)
|
|
11
|
+
* - BlockRenderer: Renders Payload blocks as QwickApps Framework components
|
|
12
|
+
* - FormBlockComponent: Form renderer with CAPTCHA support
|
|
13
|
+
* - ScriptsInjector: Injects analytics and custom scripts
|
|
14
|
+
* - SettingsProvider: React Context for site settings
|
|
15
|
+
* - ClientHomePage: Homepage client component
|
|
16
|
+
* - HomePageContent: Homepage content component
|
|
17
|
+
* - DynamicQwickApp: Dynamic QwickApp loader
|
|
18
|
+
*
|
|
19
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
20
|
+
*/
|
|
21
|
+
import '@qwickapps/react-framework/index.css';
|
|
22
|
+
export { ServerQwickApp, type ServerQwickAppProps } from './ServerQwickApp.js';
|
|
23
|
+
export { ClientSideQwickApp, type ClientSideQwickAppProps } from './ClientSideQwickApp.js';
|
|
24
|
+
export { DynamicQwickApp, type DynamicQwickAppProps } from './DynamicQwickApp.js';
|
|
25
|
+
export { BlockRenderer } from './BlockRenderer.js';
|
|
26
|
+
export { FormBlockComponent } from './FormBlockComponent.js';
|
|
27
|
+
export { ClientHomePage, type ClientHomePageProps } from './ClientHomePage.js';
|
|
28
|
+
export { HomePageContent, type HomePageContentProps } from './HomePageContent.js';
|
|
29
|
+
export { SettingsProvider, useSettings, type Settings } from './SettingsProvider.js';
|
|
30
|
+
export { ScriptsInjector } from './ScriptsInjector.js';
|
|
31
|
+
export { FooterFromSettings } from './FooterFromSettings.js';
|
|
32
|
+
export { SiteLogo, type SiteLogoProps } from './SiteLogo.js';
|
|
33
|
+
export { RefreshRouteOnSave, type RefreshRouteOnSaveProps } from './RefreshRouteOnSave.js';
|
|
34
|
+
export { LivePreviewClient, type LivePreviewClientProps } from './LivePreviewClient.js';
|
|
35
|
+
export { generateRootMetadata, mergePageMetadata, getFaviconMetadata } from './metadata.js';
|
|
36
|
+
export * from './framework.js';
|
|
37
|
+
export { ThemeProvider, PaletteProvider, useTheme, usePalette } from '@qwickapps/react-framework';
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|