@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.
Files changed (259) hide show
  1. package/LICENSE +45 -0
  2. package/README.md +203 -0
  3. package/dist/admin/components/AccordionItemRowLabel.d.ts +20 -0
  4. package/dist/admin/components/AccordionItemRowLabel.d.ts.map +1 -0
  5. package/dist/admin/components/AccordionItemRowLabel.js +47 -0
  6. package/dist/admin/components/AccordionItemRowLabel.js.map +1 -0
  7. package/dist/admin/components/BlockRowLabel.d.ts +19 -0
  8. package/dist/admin/components/BlockRowLabel.d.ts.map +1 -0
  9. package/dist/admin/components/BlockRowLabel.js +52 -0
  10. package/dist/admin/components/BlockRowLabel.js.map +1 -0
  11. package/dist/admin/components/ButtonRowLabel.d.ts +23 -0
  12. package/dist/admin/components/ButtonRowLabel.d.ts.map +1 -0
  13. package/dist/admin/components/ButtonRowLabel.js +63 -0
  14. package/dist/admin/components/ButtonRowLabel.js.map +1 -0
  15. package/dist/admin/components/CardRowLabel.d.ts +23 -0
  16. package/dist/admin/components/CardRowLabel.d.ts.map +1 -0
  17. package/dist/admin/components/CardRowLabel.js +59 -0
  18. package/dist/admin/components/CardRowLabel.js.map +1 -0
  19. package/dist/admin/components/ContentPreview.d.ts +12 -0
  20. package/dist/admin/components/ContentPreview.d.ts.map +1 -0
  21. package/dist/admin/components/ContentPreview.js +95 -0
  22. package/dist/admin/components/ContentPreview.js.map +1 -0
  23. package/dist/admin/components/Dashboard.d.ts +13 -0
  24. package/dist/admin/components/Dashboard.d.ts.map +1 -0
  25. package/dist/admin/components/Dashboard.js +7 -0
  26. package/dist/admin/components/Dashboard.js.map +1 -0
  27. package/dist/admin/components/DashboardContent.d.ts +11 -0
  28. package/dist/admin/components/DashboardContent.d.ts.map +1 -0
  29. package/dist/admin/components/DashboardContent.js +129 -0
  30. package/dist/admin/components/DashboardContent.js.map +1 -0
  31. package/dist/admin/components/FormFieldRowLabel.d.ts +21 -0
  32. package/dist/admin/components/FormFieldRowLabel.d.ts.map +1 -0
  33. package/dist/admin/components/FormFieldRowLabel.js +47 -0
  34. package/dist/admin/components/FormFieldRowLabel.js.map +1 -0
  35. package/dist/admin/components/Icon.d.ts +10 -0
  36. package/dist/admin/components/Icon.d.ts.map +1 -0
  37. package/dist/admin/components/Icon.js +16 -0
  38. package/dist/admin/components/Icon.js.map +1 -0
  39. package/dist/admin/components/Logo.d.ts +10 -0
  40. package/dist/admin/components/Logo.d.ts.map +1 -0
  41. package/dist/admin/components/Logo.js +16 -0
  42. package/dist/admin/components/Logo.js.map +1 -0
  43. package/dist/admin/components/NavigationItemRowLabel.d.ts +21 -0
  44. package/dist/admin/components/NavigationItemRowLabel.d.ts.map +1 -0
  45. package/dist/admin/components/NavigationItemRowLabel.js +43 -0
  46. package/dist/admin/components/NavigationItemRowLabel.js.map +1 -0
  47. package/dist/admin/components/NavigationSubItemRowLabel.d.ts +19 -0
  48. package/dist/admin/components/NavigationSubItemRowLabel.d.ts.map +1 -0
  49. package/dist/admin/components/NavigationSubItemRowLabel.js +32 -0
  50. package/dist/admin/components/NavigationSubItemRowLabel.js.map +1 -0
  51. package/dist/admin/components/PagesListHeader.d.ts +13 -0
  52. package/dist/admin/components/PagesListHeader.d.ts.map +1 -0
  53. package/dist/admin/components/PagesListHeader.js +48 -0
  54. package/dist/admin/components/PagesListHeader.js.map +1 -0
  55. package/dist/admin/components/ProductsListHeader.d.ts +13 -0
  56. package/dist/admin/components/ProductsListHeader.d.ts.map +1 -0
  57. package/dist/admin/components/ProductsListHeader.js +55 -0
  58. package/dist/admin/components/ProductsListHeader.js.map +1 -0
  59. package/dist/admin/components/styles/CollectionListHeader.css +161 -0
  60. package/dist/admin/components/styles/ContentPreview.css +416 -0
  61. package/dist/admin/components/styles/Dashboard.css +338 -0
  62. package/dist/admin/fields/ColorInput.d.ts +13 -0
  63. package/dist/admin/fields/ColorInput.d.ts.map +1 -0
  64. package/dist/admin/fields/ColorInput.js +201 -0
  65. package/dist/admin/fields/ColorInput.js.map +1 -0
  66. package/dist/admin/fields/index.d.ts +9 -0
  67. package/dist/admin/fields/index.d.ts.map +1 -0
  68. package/dist/admin/fields/index.js +9 -0
  69. package/dist/admin/fields/index.js.map +1 -0
  70. package/dist/admin/index.d.ts +24 -0
  71. package/dist/admin/index.d.ts.map +1 -0
  72. package/dist/admin/index.js +30 -0
  73. package/dist/admin/index.js.map +1 -0
  74. package/dist/blocks/ContentBlocks.d.ts +75 -0
  75. package/dist/blocks/ContentBlocks.d.ts.map +1 -0
  76. package/dist/blocks/ContentBlocks.js +1241 -0
  77. package/dist/blocks/ContentBlocks.js.map +1 -0
  78. package/dist/blocks/index.d.ts +2 -0
  79. package/dist/blocks/index.d.ts.map +1 -0
  80. package/dist/blocks/index.js +3 -0
  81. package/dist/blocks/index.js.map +1 -0
  82. package/dist/client/PayloadAPIClient.d.ts +65 -0
  83. package/dist/client/PayloadAPIClient.d.ts.map +1 -0
  84. package/dist/client/PayloadAPIClient.js +167 -0
  85. package/dist/client/PayloadAPIClient.js.map +1 -0
  86. package/dist/collections/Automations.d.ts +12 -0
  87. package/dist/collections/Automations.d.ts.map +1 -0
  88. package/dist/collections/Automations.js +741 -0
  89. package/dist/collections/Automations.js.map +1 -0
  90. package/dist/collections/Features.d.ts +3 -0
  91. package/dist/collections/Features.d.ts.map +1 -0
  92. package/dist/collections/Features.js +69 -0
  93. package/dist/collections/Features.js.map +1 -0
  94. package/dist/collections/Footer.d.ts +11 -0
  95. package/dist/collections/Footer.d.ts.map +1 -0
  96. package/dist/collections/Footer.js +130 -0
  97. package/dist/collections/Footer.js.map +1 -0
  98. package/dist/collections/FormSubmissions.d.ts +3 -0
  99. package/dist/collections/FormSubmissions.d.ts.map +1 -0
  100. package/dist/collections/FormSubmissions.js +119 -0
  101. package/dist/collections/FormSubmissions.js.map +1 -0
  102. package/dist/collections/Forms.d.ts +16 -0
  103. package/dist/collections/Forms.d.ts.map +1 -0
  104. package/dist/collections/Forms.js +308 -0
  105. package/dist/collections/Forms.js.map +1 -0
  106. package/dist/collections/HeroBlocks.d.ts +3 -0
  107. package/dist/collections/HeroBlocks.d.ts.map +1 -0
  108. package/dist/collections/HeroBlocks.js +115 -0
  109. package/dist/collections/HeroBlocks.js.map +1 -0
  110. package/dist/collections/Media.d.ts +3 -0
  111. package/dist/collections/Media.d.ts.map +1 -0
  112. package/dist/collections/Media.js +26 -0
  113. package/dist/collections/Media.js.map +1 -0
  114. package/dist/collections/Navigation.d.ts +3 -0
  115. package/dist/collections/Navigation.d.ts.map +1 -0
  116. package/dist/collections/Navigation.js +106 -0
  117. package/dist/collections/Navigation.js.map +1 -0
  118. package/dist/collections/Pages.d.ts +3 -0
  119. package/dist/collections/Pages.d.ts.map +1 -0
  120. package/dist/collections/Pages.js +94 -0
  121. package/dist/collections/Pages.js.map +1 -0
  122. package/dist/collections/Posts.d.ts +3 -0
  123. package/dist/collections/Posts.d.ts.map +1 -0
  124. package/dist/collections/Posts.js +134 -0
  125. package/dist/collections/Posts.js.map +1 -0
  126. package/dist/collections/Products.d.ts +3 -0
  127. package/dist/collections/Products.d.ts.map +1 -0
  128. package/dist/collections/Products.js +264 -0
  129. package/dist/collections/Products.js.map +1 -0
  130. package/dist/collections/Users.d.ts +3 -0
  131. package/dist/collections/Users.d.ts.map +1 -0
  132. package/dist/collections/Users.js +53 -0
  133. package/dist/collections/Users.js.map +1 -0
  134. package/dist/collections/hooks/index.d.ts +9 -0
  135. package/dist/collections/hooks/index.d.ts.map +1 -0
  136. package/dist/collections/hooks/index.js +9 -0
  137. package/dist/collections/hooks/index.js.map +1 -0
  138. package/dist/collections/hooks/loggingHooks.d.ts +45 -0
  139. package/dist/collections/hooks/loggingHooks.d.ts.map +1 -0
  140. package/dist/collections/hooks/loggingHooks.js +109 -0
  141. package/dist/collections/hooks/loggingHooks.js.map +1 -0
  142. package/dist/collections/index.d.ts +14 -0
  143. package/dist/collections/index.d.ts.map +1 -0
  144. package/dist/collections/index.js +16 -0
  145. package/dist/collections/index.js.map +1 -0
  146. package/dist/components/index.d.ts +2 -0
  147. package/dist/components/index.d.ts.map +1 -0
  148. package/dist/components/index.js +4 -0
  149. package/dist/components/index.js.map +1 -0
  150. package/dist/globals/AdvancedSettings.d.ts +8 -0
  151. package/dist/globals/AdvancedSettings.d.ts.map +1 -0
  152. package/dist/globals/AdvancedSettings.js +157 -0
  153. package/dist/globals/AdvancedSettings.js.map +1 -0
  154. package/dist/globals/Integrations.d.ts +8 -0
  155. package/dist/globals/Integrations.d.ts.map +1 -0
  156. package/dist/globals/Integrations.js +270 -0
  157. package/dist/globals/Integrations.js.map +1 -0
  158. package/dist/globals/SiteSettings.d.ts +8 -0
  159. package/dist/globals/SiteSettings.d.ts.map +1 -0
  160. package/dist/globals/SiteSettings.js +258 -0
  161. package/dist/globals/SiteSettings.js.map +1 -0
  162. package/dist/globals/ThemeSettings.d.ts +11 -0
  163. package/dist/globals/ThemeSettings.d.ts.map +1 -0
  164. package/dist/globals/ThemeSettings.js +92 -0
  165. package/dist/globals/ThemeSettings.js.map +1 -0
  166. package/dist/globals/index.d.ts +5 -0
  167. package/dist/globals/index.d.ts.map +1 -0
  168. package/dist/globals/index.js +6 -0
  169. package/dist/globals/index.js.map +1 -0
  170. package/dist/index.d.ts +9 -0
  171. package/dist/index.d.ts.map +1 -0
  172. package/dist/index.js +14 -0
  173. package/dist/index.js.map +1 -0
  174. package/dist/logging/index.d.ts +73 -0
  175. package/dist/logging/index.d.ts.map +1 -0
  176. package/dist/logging/index.js +190 -0
  177. package/dist/logging/index.js.map +1 -0
  178. package/dist/nextjs/BlockRenderer.d.ts +227 -0
  179. package/dist/nextjs/BlockRenderer.d.ts.map +1 -0
  180. package/dist/nextjs/BlockRenderer.js +358 -0
  181. package/dist/nextjs/BlockRenderer.js.map +1 -0
  182. package/dist/nextjs/ClientHomePage.d.ts +6 -0
  183. package/dist/nextjs/ClientHomePage.d.ts.map +1 -0
  184. package/dist/nextjs/ClientHomePage.js +17 -0
  185. package/dist/nextjs/ClientHomePage.js.map +1 -0
  186. package/dist/nextjs/ClientSideQwickApp.d.ts +23 -0
  187. package/dist/nextjs/ClientSideQwickApp.d.ts.map +1 -0
  188. package/dist/nextjs/ClientSideQwickApp.js +50 -0
  189. package/dist/nextjs/ClientSideQwickApp.js.map +1 -0
  190. package/dist/nextjs/DynamicQwickApp.d.ts +9 -0
  191. package/dist/nextjs/DynamicQwickApp.d.ts.map +1 -0
  192. package/dist/nextjs/DynamicQwickApp.js +19 -0
  193. package/dist/nextjs/DynamicQwickApp.js.map +1 -0
  194. package/dist/nextjs/FooterFromSettings.d.ts +6 -0
  195. package/dist/nextjs/FooterFromSettings.d.ts.map +1 -0
  196. package/dist/nextjs/FooterFromSettings.js +72 -0
  197. package/dist/nextjs/FooterFromSettings.js.map +1 -0
  198. package/dist/nextjs/FormBlockComponent.d.ts +25 -0
  199. package/dist/nextjs/FormBlockComponent.d.ts.map +1 -0
  200. package/dist/nextjs/FormBlockComponent.js +110 -0
  201. package/dist/nextjs/FormBlockComponent.js.map +1 -0
  202. package/dist/nextjs/HomePageContent.d.ts +6 -0
  203. package/dist/nextjs/HomePageContent.d.ts.map +1 -0
  204. package/dist/nextjs/HomePageContent.js +50 -0
  205. package/dist/nextjs/HomePageContent.js.map +1 -0
  206. package/dist/nextjs/LivePreviewClient.d.ts +40 -0
  207. package/dist/nextjs/LivePreviewClient.d.ts.map +1 -0
  208. package/dist/nextjs/LivePreviewClient.js +35 -0
  209. package/dist/nextjs/LivePreviewClient.js.map +1 -0
  210. package/dist/nextjs/RefreshRouteOnSave.d.ts +31 -0
  211. package/dist/nextjs/RefreshRouteOnSave.d.ts.map +1 -0
  212. package/dist/nextjs/RefreshRouteOnSave.js +59 -0
  213. package/dist/nextjs/RefreshRouteOnSave.js.map +1 -0
  214. package/dist/nextjs/ScriptsInjector.d.ts +2 -0
  215. package/dist/nextjs/ScriptsInjector.d.ts.map +1 -0
  216. package/dist/nextjs/ScriptsInjector.js +73 -0
  217. package/dist/nextjs/ScriptsInjector.js.map +1 -0
  218. package/dist/nextjs/ServerQwickApp.d.ts +13 -0
  219. package/dist/nextjs/ServerQwickApp.d.ts.map +1 -0
  220. package/dist/nextjs/ServerQwickApp.js +159 -0
  221. package/dist/nextjs/ServerQwickApp.js.map +1 -0
  222. package/dist/nextjs/SettingsProvider.d.ts +110 -0
  223. package/dist/nextjs/SettingsProvider.d.ts.map +1 -0
  224. package/dist/nextjs/SettingsProvider.js +107 -0
  225. package/dist/nextjs/SettingsProvider.js.map +1 -0
  226. package/dist/nextjs/SiteLogo.d.ts +35 -0
  227. package/dist/nextjs/SiteLogo.d.ts.map +1 -0
  228. package/dist/nextjs/SiteLogo.js +105 -0
  229. package/dist/nextjs/SiteLogo.js.map +1 -0
  230. package/dist/nextjs/framework.d.ts +19 -0
  231. package/dist/nextjs/framework.d.ts.map +1 -0
  232. package/dist/nextjs/framework.js +35 -0
  233. package/dist/nextjs/framework.js.map +1 -0
  234. package/dist/nextjs/index.d.ts +38 -0
  235. package/dist/nextjs/index.d.ts.map +1 -0
  236. package/dist/nextjs/index.js +47 -0
  237. package/dist/nextjs/index.js.map +1 -0
  238. package/dist/nextjs/metadata.d.ts +20 -0
  239. package/dist/nextjs/metadata.d.ts.map +1 -0
  240. package/dist/nextjs/metadata.js +107 -0
  241. package/dist/nextjs/metadata.js.map +1 -0
  242. package/dist/plugins/index.d.ts +2 -0
  243. package/dist/plugins/index.d.ts.map +1 -0
  244. package/dist/plugins/index.js +3 -0
  245. package/dist/plugins/index.js.map +1 -0
  246. package/dist/plugins/qwickapps-plugin.d.ts +78 -0
  247. package/dist/plugins/qwickapps-plugin.d.ts.map +1 -0
  248. package/dist/plugins/qwickapps-plugin.js +154 -0
  249. package/dist/plugins/qwickapps-plugin.js.map +1 -0
  250. package/dist/providers/PayloadDataProvider.d.ts +72 -0
  251. package/dist/providers/PayloadDataProvider.d.ts.map +1 -0
  252. package/dist/providers/PayloadDataProvider.js +222 -0
  253. package/dist/providers/PayloadDataProvider.js.map +1 -0
  254. package/dist/providers/index.d.ts +2 -0
  255. package/dist/providers/index.d.ts.map +1 -0
  256. package/dist/providers/index.js +3 -0
  257. package/dist/providers/index.js.map +1 -0
  258. package/dist/styles/admin-theme.css +352 -0
  259. 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":"AAGA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAyD,MAAM,OAAO,CAAC;AAI9E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,eAAe,CAAC,EAAE;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,gBAAgB,CAAC,EAAE;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;QAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,GAAG,CAAC;KACtB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,aAAa,CAAC,EAAE;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAID,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,eAAe,CAAC,EAAE,QAAQ,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,qBAAqB,2CA+EpF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,mBAAmB,CAMjD"}
@@ -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