@riverbankcms/sdk 0.2.0 → 0.3.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 (184) hide show
  1. package/dist/cli/index.js +4840 -9
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/client/bookings.d.mts +82 -2
  4. package/dist/client/bookings.d.ts +82 -2
  5. package/dist/client/bookings.js +1623 -3
  6. package/dist/client/bookings.js.map +1 -1
  7. package/dist/client/bookings.mjs +1610 -5
  8. package/dist/client/bookings.mjs.map +1 -1
  9. package/dist/client/client.d.mts +8 -5
  10. package/dist/client/client.d.ts +8 -5
  11. package/dist/client/client.js +16873 -322
  12. package/dist/client/client.js.map +1 -1
  13. package/dist/client/client.mjs +16855 -307
  14. package/dist/client/client.mjs.map +1 -1
  15. package/dist/client/hooks.d.mts +10 -7
  16. package/dist/client/hooks.d.ts +10 -7
  17. package/dist/client/hooks.js +5074 -4
  18. package/dist/client/hooks.js.map +1 -1
  19. package/dist/client/hooks.mjs +5074 -4
  20. package/dist/client/hooks.mjs.map +1 -1
  21. package/dist/client/rendering/client.d.mts +7 -1
  22. package/dist/client/rendering/client.d.ts +7 -1
  23. package/dist/client/rendering/client.js +17388 -2
  24. package/dist/client/rendering/client.js.map +1 -1
  25. package/dist/client/rendering/client.mjs +17382 -2
  26. package/dist/client/rendering/client.mjs.map +1 -1
  27. package/dist/client/resolver-BhueZVxZ.d.mts +61 -0
  28. package/dist/client/resolver-BhueZVxZ.d.ts +61 -0
  29. package/dist/client/usePage-BBcFCxOU.d.ts +6297 -0
  30. package/dist/client/usePage-BydHcMYB.d.mts +6297 -0
  31. package/dist/client/usePage-CrKw1H6Y.d.ts +6338 -0
  32. package/dist/client/usePage-DMI8ImsU.d.mts +6338 -0
  33. package/dist/server/Layout-BM_KmCxO.d.ts +44 -0
  34. package/dist/server/Layout-CsAQ-0Fv.d.mts +44 -0
  35. package/dist/server/{chunk-JB4LIEFS.js → chunk-5R4NMVXA.js} +15 -8
  36. package/dist/server/chunk-5R4NMVXA.js.map +1 -0
  37. package/dist/server/{chunk-ADREPXFU.js → chunk-62ZJI564.js} +3 -3
  38. package/dist/server/{chunk-ADREPXFU.js.map → chunk-62ZJI564.js.map} +1 -1
  39. package/dist/server/chunk-7DS4Q3GA.mjs +333 -0
  40. package/dist/server/chunk-7DS4Q3GA.mjs.map +1 -0
  41. package/dist/server/chunk-BJTO5JO5.mjs +11 -0
  42. package/dist/server/{chunk-4Z5FBFRL.mjs → chunk-BPKYRPCQ.mjs} +7 -3
  43. package/dist/server/{chunk-4Z5FBFRL.mjs.map → chunk-BPKYRPCQ.mjs.map} +1 -1
  44. package/dist/server/chunk-DGUM43GV.js +11 -0
  45. package/dist/server/chunk-DGUM43GV.js.map +1 -0
  46. package/dist/server/chunk-EGTDJ4PL.js +5461 -0
  47. package/dist/server/chunk-EGTDJ4PL.js.map +1 -0
  48. package/dist/server/chunk-FK64TZBT.mjs +831 -0
  49. package/dist/server/chunk-FK64TZBT.mjs.map +1 -0
  50. package/dist/server/chunk-HOY77YBF.js +333 -0
  51. package/dist/server/chunk-HOY77YBF.js.map +1 -0
  52. package/dist/server/chunk-INWKF3IC.js +831 -0
  53. package/dist/server/chunk-INWKF3IC.js.map +1 -0
  54. package/dist/server/{chunk-2RW5HAQQ.mjs → chunk-JTAERCX2.mjs} +2 -2
  55. package/dist/server/chunk-O5DC7MYW.mjs +9606 -0
  56. package/dist/server/chunk-O5DC7MYW.mjs.map +1 -0
  57. package/dist/server/{chunk-PEAXKTDU.mjs → chunk-OP2GHK27.mjs} +2 -2
  58. package/dist/server/{chunk-WKG57P2H.mjs → chunk-PN3CHDVX.mjs} +10 -3
  59. package/dist/server/{chunk-WKG57P2H.mjs.map → chunk-PN3CHDVX.mjs.map} +1 -1
  60. package/dist/server/chunk-QFFQTOY3.mjs +2128 -0
  61. package/dist/server/chunk-QFFQTOY3.mjs.map +1 -0
  62. package/dist/server/chunk-SF63XAX7.js +9606 -0
  63. package/dist/server/chunk-SF63XAX7.js.map +1 -0
  64. package/dist/server/{chunk-F472SMKX.js → chunk-TO7FD6TQ.js} +4 -4
  65. package/dist/server/{chunk-F472SMKX.js.map → chunk-TO7FD6TQ.js.map} +1 -1
  66. package/dist/server/chunk-UFVCBGBY.js +2128 -0
  67. package/dist/server/chunk-UFVCBGBY.js.map +1 -0
  68. package/dist/server/chunk-USQF2XTU.mjs +5461 -0
  69. package/dist/server/chunk-USQF2XTU.mjs.map +1 -0
  70. package/dist/server/{chunk-SW7LE4M3.js → chunk-XLVL5WPH.js} +12 -8
  71. package/dist/server/chunk-XLVL5WPH.js.map +1 -0
  72. package/dist/server/components-CI3JiOYA.d.mts +305 -0
  73. package/dist/server/components-DJBLu_yc.d.ts +305 -0
  74. package/dist/server/components.d.mts +14 -49
  75. package/dist/server/components.d.ts +14 -49
  76. package/dist/server/components.js +7 -4
  77. package/dist/server/components.js.map +1 -1
  78. package/dist/server/components.mjs +9 -6
  79. package/dist/server/components.mjs.map +1 -1
  80. package/dist/server/config-validation.d.mts +2 -2
  81. package/dist/server/config-validation.d.ts +2 -2
  82. package/dist/server/config-validation.js +6 -3
  83. package/dist/server/config-validation.js.map +1 -1
  84. package/dist/server/config-validation.mjs +5 -2
  85. package/dist/server/config.d.mts +3 -3
  86. package/dist/server/config.d.ts +3 -3
  87. package/dist/server/config.js +6 -3
  88. package/dist/server/config.js.map +1 -1
  89. package/dist/server/config.mjs +5 -2
  90. package/dist/server/config.mjs.map +1 -1
  91. package/dist/server/data.d.mts +10 -8
  92. package/dist/server/data.d.ts +10 -8
  93. package/dist/server/data.js +4 -2
  94. package/dist/server/data.js.map +1 -1
  95. package/dist/server/data.mjs +3 -1
  96. package/dist/server/{index-B0yI_V6Z.d.mts → index-DoX3ELQn.d.mts} +1 -1
  97. package/dist/server/{index-C6M0Wfjq.d.ts → index-Dus2gkY6.d.ts} +1 -1
  98. package/dist/server/index.d.mts +1568 -5
  99. package/dist/server/index.d.ts +1568 -5
  100. package/dist/server/index.js +4 -4
  101. package/dist/server/index.js.map +1 -1
  102. package/dist/server/index.mjs +4 -4
  103. package/dist/server/index.mjs.map +1 -1
  104. package/dist/server/{loadContent-CJcbYF3J.d.ts → loadContent-CdXDGsJM.d.ts} +5 -4
  105. package/dist/server/{loadContent-zhlL4YSE.d.mts → loadContent-v2n6pOlO.d.mts} +5 -4
  106. package/dist/server/loadPage-3ECPF426.js +11 -0
  107. package/dist/server/loadPage-3ECPF426.js.map +1 -0
  108. package/dist/server/loadPage-LW273NYO.mjs +11 -0
  109. package/dist/server/loadPage-LW273NYO.mjs.map +1 -0
  110. package/dist/server/{loadPage-CCf15nt8.d.mts → loadPage-bejlajm9.d.ts} +147 -5
  111. package/dist/server/{loadPage-BYmVMk0V.d.ts → loadPage-en10WQrt.d.mts} +147 -5
  112. package/dist/server/metadata.d.mts +10 -6
  113. package/dist/server/metadata.d.ts +10 -6
  114. package/dist/server/metadata.js +3 -1
  115. package/dist/server/metadata.js.map +1 -1
  116. package/dist/server/metadata.mjs +2 -0
  117. package/dist/server/metadata.mjs.map +1 -1
  118. package/dist/server/navigation.d.mts +100 -0
  119. package/dist/server/navigation.d.ts +100 -0
  120. package/dist/server/navigation.js +44 -0
  121. package/dist/server/navigation.js.map +1 -0
  122. package/dist/server/navigation.mjs +44 -0
  123. package/dist/server/navigation.mjs.map +1 -0
  124. package/dist/server/rendering/server.d.mts +10 -7
  125. package/dist/server/rendering/server.d.ts +10 -7
  126. package/dist/server/rendering/server.js +7 -4
  127. package/dist/server/rendering/server.js.map +1 -1
  128. package/dist/server/rendering/server.mjs +6 -3
  129. package/dist/server/rendering.d.mts +173 -9
  130. package/dist/server/rendering.d.ts +173 -9
  131. package/dist/server/rendering.js +12 -9
  132. package/dist/server/rendering.js.map +1 -1
  133. package/dist/server/rendering.mjs +14 -11
  134. package/dist/server/rendering.mjs.map +1 -1
  135. package/dist/server/routing.d.mts +10 -6
  136. package/dist/server/routing.d.ts +10 -6
  137. package/dist/server/routing.js +4 -2
  138. package/dist/server/routing.js.map +1 -1
  139. package/dist/server/routing.mjs +3 -1
  140. package/dist/server/routing.mjs.map +1 -1
  141. package/dist/server/schema-Bpy9N5ZI.d.mts +1870 -0
  142. package/dist/server/schema-Bpy9N5ZI.d.ts +1870 -0
  143. package/dist/server/server.d.mts +12 -8
  144. package/dist/server/server.d.ts +12 -8
  145. package/dist/server/server.js +7 -5
  146. package/dist/server/server.js.map +1 -1
  147. package/dist/server/server.mjs +6 -4
  148. package/dist/server/theme-bridge.js +13 -10
  149. package/dist/server/theme-bridge.js.map +1 -1
  150. package/dist/server/theme-bridge.mjs +10 -7
  151. package/dist/server/theme-bridge.mjs.map +1 -1
  152. package/dist/server/theme.js +3 -1
  153. package/dist/server/theme.js.map +1 -1
  154. package/dist/server/theme.mjs +2 -0
  155. package/dist/server/theme.mjs.map +1 -1
  156. package/dist/server/{types-BCeqWtI2.d.mts → types-Bq3520hK.d.mts} +3 -3
  157. package/dist/server/{types-C6gmRHLe.d.mts → types-CLusapsM.d.mts} +1 -1
  158. package/dist/server/types-Cc7lyPkN.d.ts +4043 -0
  159. package/dist/server/{types-BCeqWtI2.d.ts → types-D-rqOU5I.d.ts} +3 -3
  160. package/dist/server/{types-C6gmRHLe.d.ts → types-Ls6BkLKg.d.ts} +1 -1
  161. package/dist/server/{types-Bbo01M7P.d.mts → types-_nDnPHpv.d.mts} +27 -1
  162. package/dist/server/{types-Bbo01M7P.d.ts → types-_nDnPHpv.d.ts} +27 -1
  163. package/dist/server/types-nVerjjdv.d.mts +4043 -0
  164. package/package.json +22 -17
  165. package/dist/server/chunk-3KKZVGH4.mjs +0 -179
  166. package/dist/server/chunk-3KKZVGH4.mjs.map +0 -1
  167. package/dist/server/chunk-4Z3GPTCS.js +0 -179
  168. package/dist/server/chunk-4Z3GPTCS.js.map +0 -1
  169. package/dist/server/chunk-JB4LIEFS.js.map +0 -1
  170. package/dist/server/chunk-QQ6U4QX6.js +0 -120
  171. package/dist/server/chunk-QQ6U4QX6.js.map +0 -1
  172. package/dist/server/chunk-R5YGLRUG.mjs +0 -122
  173. package/dist/server/chunk-R5YGLRUG.mjs.map +0 -1
  174. package/dist/server/chunk-SW7LE4M3.js.map +0 -1
  175. package/dist/server/chunk-W3K7LVPS.mjs +0 -120
  176. package/dist/server/chunk-W3K7LVPS.mjs.map +0 -1
  177. package/dist/server/chunk-YHEZMVTS.js +0 -122
  178. package/dist/server/chunk-YHEZMVTS.js.map +0 -1
  179. package/dist/server/loadPage-DVH3DW6E.js +0 -9
  180. package/dist/server/loadPage-DVH3DW6E.js.map +0 -1
  181. package/dist/server/loadPage-PHQZ6XQZ.mjs +0 -9
  182. /package/dist/server/{loadPage-PHQZ6XQZ.mjs.map → chunk-BJTO5JO5.mjs.map} +0 -0
  183. /package/dist/server/{chunk-2RW5HAQQ.mjs.map → chunk-JTAERCX2.mjs.map} +0 -0
  184. /package/dist/server/{chunk-PEAXKTDU.mjs.map → chunk-OP2GHK27.mjs.map} +0 -0
@@ -0,0 +1,100 @@
1
+ import { N as NavigationMenuWithItems } from './types-nVerjjdv.mjs';
2
+ export { L as LinkPayload, a as NavigationItemRecord } from './types-nVerjjdv.mjs';
3
+ import '@riverbankcms/ai';
4
+ import './schema-Bpy9N5ZI.mjs';
5
+ import 'zod';
6
+ import '@riverbankcms/media-storage-supabase';
7
+ import '@riverbankcms/db';
8
+
9
+ /**
10
+ * Navigation helper utilities for SDK sites.
11
+ *
12
+ * Provides simple helpers to transform CMS navigation data into
13
+ * render-ready NavItem arrays.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { getPrimaryNavItems, getNavItemsBySlug } from '@riverbankcms/sdk/navigation';
18
+ *
19
+ * // Get header navigation (primary menu)
20
+ * const headerNav = getPrimaryNavItems(siteData.navigation);
21
+ *
22
+ * // Get footer navigation by slug
23
+ * const footerNav = getNavItemsBySlug(siteData.navigation, 'footer');
24
+ *
25
+ * // Result: [{ href: '/', label: 'Home', isExternal: false }, ...]
26
+ * ```
27
+ *
28
+ * @packageDocumentation
29
+ */
30
+
31
+ /**
32
+ * A simplified navigation item structure for component rendering.
33
+ */
34
+ type NavItem = {
35
+ /** The URL to navigate to */
36
+ href: string;
37
+ /** Display text for the navigation link */
38
+ label: string;
39
+ /** Whether link should open in new tab (external links) */
40
+ isExternal: boolean;
41
+ };
42
+ /**
43
+ * Get nav items from the primary menu (marked isPrimary, or first menu).
44
+ * Returns empty array if no navigation configured.
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * const headerNav = getPrimaryNavItems(siteData.navigation);
49
+ * // [{ href: '/', label: 'Home', isExternal: false }, ...]
50
+ * ```
51
+ */
52
+ declare function getPrimaryNavItems(navigation: NavigationMenuWithItems[]): NavItem[];
53
+ /**
54
+ * Get nav items from a specific menu by slug.
55
+ * Useful for footer nav, secondary nav, etc.
56
+ * Returns empty array if menu not found.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * const footerNav = getNavItemsBySlug(siteData.navigation, 'footer');
61
+ * ```
62
+ */
63
+ declare function getNavItemsBySlug(navigation: NavigationMenuWithItems[], slug: string): NavItem[];
64
+ /**
65
+ * Get the primary navigation menu object.
66
+ * Returns menu marked as isPrimary, or first menu if none marked.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * const menu = getPrimaryNavigation(siteData.navigation);
71
+ * console.log(menu?.title); // "Main Navigation"
72
+ * console.log(menu?.slug); // "main"
73
+ * ```
74
+ */
75
+ declare function getPrimaryNavigation(navigation: NavigationMenuWithItems[]): NavigationMenuWithItems | null;
76
+ /**
77
+ * Get a navigation menu by name.
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * const footerMenu = getNavigationBySlug(siteData.navigation, 'footer');
82
+ * ```
83
+ */
84
+ declare function getNavigationBySlug(navigation: NavigationMenuWithItems[], slug: string): NavigationMenuWithItems | null;
85
+ /**
86
+ * Transform a menu into NavItem array.
87
+ * - Sorts by orderIndex
88
+ * - Resolves link hrefs
89
+ * - Identifies external links
90
+ * - Filters out items without valid hrefs
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * const menu = getNavigationBySlug(siteData.navigation, 'main');
95
+ * const items = transformNavItems(menu);
96
+ * ```
97
+ */
98
+ declare function transformNavItems(menu: NavigationMenuWithItems | null): NavItem[];
99
+
100
+ export { type NavItem, NavigationMenuWithItems, getNavItemsBySlug, getNavigationBySlug, getPrimaryNavItems, getPrimaryNavigation, transformNavItems };
@@ -0,0 +1,100 @@
1
+ import { N as NavigationMenuWithItems } from './types-Cc7lyPkN.js';
2
+ export { L as LinkPayload, a as NavigationItemRecord } from './types-Cc7lyPkN.js';
3
+ import '@riverbankcms/ai';
4
+ import './schema-Bpy9N5ZI.js';
5
+ import 'zod';
6
+ import '@riverbankcms/media-storage-supabase';
7
+ import '@riverbankcms/db';
8
+
9
+ /**
10
+ * Navigation helper utilities for SDK sites.
11
+ *
12
+ * Provides simple helpers to transform CMS navigation data into
13
+ * render-ready NavItem arrays.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { getPrimaryNavItems, getNavItemsBySlug } from '@riverbankcms/sdk/navigation';
18
+ *
19
+ * // Get header navigation (primary menu)
20
+ * const headerNav = getPrimaryNavItems(siteData.navigation);
21
+ *
22
+ * // Get footer navigation by slug
23
+ * const footerNav = getNavItemsBySlug(siteData.navigation, 'footer');
24
+ *
25
+ * // Result: [{ href: '/', label: 'Home', isExternal: false }, ...]
26
+ * ```
27
+ *
28
+ * @packageDocumentation
29
+ */
30
+
31
+ /**
32
+ * A simplified navigation item structure for component rendering.
33
+ */
34
+ type NavItem = {
35
+ /** The URL to navigate to */
36
+ href: string;
37
+ /** Display text for the navigation link */
38
+ label: string;
39
+ /** Whether link should open in new tab (external links) */
40
+ isExternal: boolean;
41
+ };
42
+ /**
43
+ * Get nav items from the primary menu (marked isPrimary, or first menu).
44
+ * Returns empty array if no navigation configured.
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * const headerNav = getPrimaryNavItems(siteData.navigation);
49
+ * // [{ href: '/', label: 'Home', isExternal: false }, ...]
50
+ * ```
51
+ */
52
+ declare function getPrimaryNavItems(navigation: NavigationMenuWithItems[]): NavItem[];
53
+ /**
54
+ * Get nav items from a specific menu by slug.
55
+ * Useful for footer nav, secondary nav, etc.
56
+ * Returns empty array if menu not found.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * const footerNav = getNavItemsBySlug(siteData.navigation, 'footer');
61
+ * ```
62
+ */
63
+ declare function getNavItemsBySlug(navigation: NavigationMenuWithItems[], slug: string): NavItem[];
64
+ /**
65
+ * Get the primary navigation menu object.
66
+ * Returns menu marked as isPrimary, or first menu if none marked.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * const menu = getPrimaryNavigation(siteData.navigation);
71
+ * console.log(menu?.title); // "Main Navigation"
72
+ * console.log(menu?.slug); // "main"
73
+ * ```
74
+ */
75
+ declare function getPrimaryNavigation(navigation: NavigationMenuWithItems[]): NavigationMenuWithItems | null;
76
+ /**
77
+ * Get a navigation menu by name.
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * const footerMenu = getNavigationBySlug(siteData.navigation, 'footer');
82
+ * ```
83
+ */
84
+ declare function getNavigationBySlug(navigation: NavigationMenuWithItems[], slug: string): NavigationMenuWithItems | null;
85
+ /**
86
+ * Transform a menu into NavItem array.
87
+ * - Sorts by orderIndex
88
+ * - Resolves link hrefs
89
+ * - Identifies external links
90
+ * - Filters out items without valid hrefs
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * const menu = getNavigationBySlug(siteData.navigation, 'main');
95
+ * const items = transformNavItems(menu);
96
+ * ```
97
+ */
98
+ declare function transformNavItems(menu: NavigationMenuWithItems | null): NavItem[];
99
+
100
+ export { type NavItem, NavigationMenuWithItems, getNavItemsBySlug, getNavigationBySlug, getPrimaryNavItems, getPrimaryNavigation, transformNavItems };
@@ -0,0 +1,44 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('./chunk-DGUM43GV.js');
2
+
3
+ // src/navigation/index.ts
4
+ function getPrimaryNavItems(navigation) {
5
+ return transformNavItems(getPrimaryNavigation(navigation));
6
+ }
7
+ function getNavItemsBySlug(navigation, slug) {
8
+ return transformNavItems(getNavigationBySlug(navigation, slug));
9
+ }
10
+ function getPrimaryNavigation(navigation) {
11
+ if (!navigation || navigation.length === 0) return null;
12
+ return _nullishCoalesce(navigation.find((menu) => menu.isPrimary), () => ( navigation[0]));
13
+ }
14
+ function getNavigationBySlug(navigation, slug) {
15
+ if (!navigation || navigation.length === 0) return null;
16
+ return _nullishCoalesce(navigation.find((menu) => menu.name === slug), () => ( null));
17
+ }
18
+ function transformNavItems(menu) {
19
+ if (!_optionalChain([menu, 'optionalAccess', _ => _.items]) || menu.items.length === 0) return [];
20
+ const items = menu.items;
21
+ return items.slice().sort((a, b) => (_nullishCoalesce(a.orderIndex, () => ( 0))) - (_nullishCoalesce(b.orderIndex, () => ( 0)))).map((item) => ({
22
+ label: item.label,
23
+ href: resolveItemHref(item),
24
+ isExternal: isExternalLink(item)
25
+ })).filter((item) => Boolean(item.href));
26
+ }
27
+ function resolveItemHref(item) {
28
+ const link = item.url;
29
+ if (!link || typeof link !== "object" || !("href" in link)) return "";
30
+ return link.href;
31
+ }
32
+ function isExternalLink(item) {
33
+ const link = item.url;
34
+ if (!link || typeof link !== "object" || !("kind" in link)) return false;
35
+ return link.kind === "external";
36
+ }
37
+
38
+
39
+
40
+
41
+
42
+
43
+ exports.getNavItemsBySlug = getNavItemsBySlug; exports.getNavigationBySlug = getNavigationBySlug; exports.getPrimaryNavItems = getPrimaryNavItems; exports.getPrimaryNavigation = getPrimaryNavigation; exports.transformNavItems = transformNavItems;
44
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/navigation.js","../../src/navigation/index.ts"],"names":[],"mappings":"AAAA,gtBAA4B;AAC5B;AACA;ACgDO,SAAS,kBAAA,CAAmB,UAAA,EAAkD;AACnF,EAAA,OAAO,iBAAA,CAAkB,oBAAA,CAAqB,UAAU,CAAC,CAAA;AAC3D;AAYO,SAAS,iBAAA,CAAkB,UAAA,EAAuC,IAAA,EAAyB;AAChG,EAAA,OAAO,iBAAA,CAAkB,mBAAA,CAAoB,UAAA,EAAY,IAAI,CAAC,CAAA;AAChE;AAiBO,SAAS,oBAAA,CACd,UAAA,EACgC;AAChC,EAAA,GAAA,CAAI,CAAC,WAAA,GAAc,UAAA,CAAW,OAAA,IAAW,CAAA,EAAG,OAAO,IAAA;AACnD,EAAA,wBAAO,UAAA,CAAW,IAAA,CAAK,CAAC,IAAA,EAAA,GAAS,IAAA,CAAK,SAAS,CAAA,UAAK,UAAA,CAAW,CAAC,GAAA;AAClE;AAUO,SAAS,mBAAA,CACd,UAAA,EACA,IAAA,EACgC;AAChC,EAAA,GAAA,CAAI,CAAC,WAAA,GAAc,UAAA,CAAW,OAAA,IAAW,CAAA,EAAG,OAAO,IAAA;AAEnD,EAAA,wBAAO,UAAA,CAAW,IAAA,CAAK,CAAC,IAAA,EAAA,GAAS,IAAA,CAAK,KAAA,IAAS,IAAI,CAAA,UAAK,MAAA;AAC1D;AAeO,SAAS,iBAAA,CAAkB,IAAA,EAAiD;AACjF,EAAA,GAAA,CAAI,iBAAC,IAAA,2BAAM,QAAA,GAAS,IAAA,CAAK,KAAA,CAAM,OAAA,IAAW,CAAA,EAAG,OAAO,CAAC,CAAA;AAErD,EAAA,MAAM,MAAA,EAAgC,IAAA,CAAK,KAAA;AAE3C,EAAA,OAAO,KAAA,CACJ,KAAA,CAAM,CAAA,CACN,IAAA,CAAK,CAAC,CAAA,EAAyB,CAAA,EAAA,GAAA,kBAA6B,CAAA,CAAE,UAAA,UAAc,GAAA,EAAA,EAAA,kBAAM,CAAA,CAAE,UAAA,UAAc,GAAA,CAAE,CAAA,CACpG,GAAA,CAAI,CAAC,IAAA,EAAA,GAAA,CAAgC;AAAA,IACpC,KAAA,EAAO,IAAA,CAAK,KAAA;AAAA,IACZ,IAAA,EAAM,eAAA,CAAgB,IAAI,CAAA;AAAA,IAC1B,UAAA,EAAY,cAAA,CAAe,IAAI;AAAA,EACjC,CAAA,CAAE,CAAA,CACD,MAAA,CAAO,CAAC,IAAA,EAAA,GAA0B,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA;AACzD;AAWA,SAAS,eAAA,CAAgB,IAAA,EAAoC;AAE3D,EAAA,MAAM,KAAA,EAAO,IAAA,CAAK,GAAA;AAClB,EAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,OAAO,KAAA,IAAS,SAAA,GAAY,CAAA,CAAE,OAAA,GAAU,IAAA,CAAA,EAAO,OAAO,EAAA;AACnE,EAAA,OAAO,IAAA,CAAK,IAAA;AACd;AAMA,SAAS,cAAA,CAAe,IAAA,EAAqC;AAC3D,EAAA,MAAM,KAAA,EAAO,IAAA,CAAK,GAAA;AAClB,EAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,OAAO,KAAA,IAAS,SAAA,GAAY,CAAA,CAAE,OAAA,GAAU,IAAA,CAAA,EAAO,OAAO,KAAA;AACnE,EAAA,OAAO,IAAA,CAAK,KAAA,IAAS,UAAA;AACvB;AD5HA;AACE;AACA;AACA;AACA;AACA;AACF,sPAAC","file":"/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/navigation.js","sourcesContent":[null,"/**\n * Navigation helper utilities for SDK sites.\n *\n * Provides simple helpers to transform CMS navigation data into\n * render-ready NavItem arrays.\n *\n * @example\n * ```ts\n * import { getPrimaryNavItems, getNavItemsBySlug } from '@riverbankcms/sdk/navigation';\n *\n * // Get header navigation (primary menu)\n * const headerNav = getPrimaryNavItems(siteData.navigation);\n *\n * // Get footer navigation by slug\n * const footerNav = getNavItemsBySlug(siteData.navigation, 'footer');\n *\n * // Result: [{ href: '/', label: 'Home', isExternal: false }, ...]\n * ```\n *\n * @packageDocumentation\n */\n\nimport type { NavigationMenuWithItems, NavigationItemRecord, LinkPayload } from '@riverbankcms/api';\n\n/**\n * A simplified navigation item structure for component rendering.\n */\nexport type NavItem = {\n /** The URL to navigate to */\n href: string;\n /** Display text for the navigation link */\n label: string;\n /** Whether link should open in new tab (external links) */\n isExternal: boolean;\n};\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Primary API: Simple one-liner helpers\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Get nav items from the primary menu (marked isPrimary, or first menu).\n * Returns empty array if no navigation configured.\n *\n * @example\n * ```ts\n * const headerNav = getPrimaryNavItems(siteData.navigation);\n * // [{ href: '/', label: 'Home', isExternal: false }, ...]\n * ```\n */\nexport function getPrimaryNavItems(navigation: NavigationMenuWithItems[]): NavItem[] {\n return transformNavItems(getPrimaryNavigation(navigation));\n}\n\n/**\n * Get nav items from a specific menu by slug.\n * Useful for footer nav, secondary nav, etc.\n * Returns empty array if menu not found.\n *\n * @example\n * ```ts\n * const footerNav = getNavItemsBySlug(siteData.navigation, 'footer');\n * ```\n */\nexport function getNavItemsBySlug(navigation: NavigationMenuWithItems[], slug: string): NavItem[] {\n return transformNavItems(getNavigationBySlug(navigation, slug));\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Building blocks for advanced use cases\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Get the primary navigation menu object.\n * Returns menu marked as isPrimary, or first menu if none marked.\n *\n * @example\n * ```ts\n * const menu = getPrimaryNavigation(siteData.navigation);\n * console.log(menu?.title); // \"Main Navigation\"\n * console.log(menu?.slug); // \"main\"\n * ```\n */\nexport function getPrimaryNavigation(\n navigation: NavigationMenuWithItems[],\n): NavigationMenuWithItems | null {\n if (!navigation || navigation.length === 0) return null;\n return navigation.find((menu) => menu.isPrimary) ?? navigation[0];\n}\n\n/**\n * Get a navigation menu by name.\n *\n * @example\n * ```ts\n * const footerMenu = getNavigationBySlug(siteData.navigation, 'footer');\n * ```\n */\nexport function getNavigationBySlug(\n navigation: NavigationMenuWithItems[],\n slug: string,\n): NavigationMenuWithItems | null {\n if (!navigation || navigation.length === 0) return null;\n // Match by name (the database field) - function is named \"slug\" for API simplicity\n return navigation.find((menu) => menu.name === slug) ?? null;\n}\n\n/**\n * Transform a menu into NavItem array.\n * - Sorts by orderIndex\n * - Resolves link hrefs\n * - Identifies external links\n * - Filters out items without valid hrefs\n *\n * @example\n * ```ts\n * const menu = getNavigationBySlug(siteData.navigation, 'main');\n * const items = transformNavItems(menu);\n * ```\n */\nexport function transformNavItems(menu: NavigationMenuWithItems | null): NavItem[] {\n if (!menu?.items || menu.items.length === 0) return [];\n\n const items: NavigationItemRecord[] = menu.items;\n\n return items\n .slice()\n .sort((a: NavigationItemRecord, b: NavigationItemRecord) => (a.orderIndex ?? 0) - (b.orderIndex ?? 0))\n .map((item: NavigationItemRecord) => ({\n label: item.label,\n href: resolveItemHref(item),\n isExternal: isExternalLink(item),\n }))\n .filter((item): item is NavItem => Boolean(item.href));\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Internal helpers\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Extracts the href from a navigation item's url field.\n * The `url` field is a JSON column containing link data with { kind, href, ... } structure.\n * Gracefully returns empty string for malformed or missing link data.\n */\nfunction resolveItemHref(item: NavigationItemRecord): string {\n // The database field is `url` (JSON) which gets camelized to `url`\n const link = item.url as LinkPayload | null | undefined;\n if (!link || typeof link !== 'object' || !('href' in link)) return '';\n return link.href;\n}\n\n/**\n * Determines if a navigation item's link is external.\n * External links (kind: 'external') should typically open in a new tab.\n */\nfunction isExternalLink(item: NavigationItemRecord): boolean {\n const link = item.url as LinkPayload | null | undefined;\n if (!link || typeof link !== 'object' || !('kind' in link)) return false;\n return link.kind === 'external';\n}\n\n// Re-export types for convenience\nexport type { NavigationMenuWithItems, NavigationItemRecord, LinkPayload } from '@riverbankcms/api';\n"]}
@@ -0,0 +1,44 @@
1
+ import "./chunk-BJTO5JO5.mjs";
2
+
3
+ // src/navigation/index.ts
4
+ function getPrimaryNavItems(navigation) {
5
+ return transformNavItems(getPrimaryNavigation(navigation));
6
+ }
7
+ function getNavItemsBySlug(navigation, slug) {
8
+ return transformNavItems(getNavigationBySlug(navigation, slug));
9
+ }
10
+ function getPrimaryNavigation(navigation) {
11
+ if (!navigation || navigation.length === 0) return null;
12
+ return navigation.find((menu) => menu.isPrimary) ?? navigation[0];
13
+ }
14
+ function getNavigationBySlug(navigation, slug) {
15
+ if (!navigation || navigation.length === 0) return null;
16
+ return navigation.find((menu) => menu.name === slug) ?? null;
17
+ }
18
+ function transformNavItems(menu) {
19
+ if (!menu?.items || menu.items.length === 0) return [];
20
+ const items = menu.items;
21
+ return items.slice().sort((a, b) => (a.orderIndex ?? 0) - (b.orderIndex ?? 0)).map((item) => ({
22
+ label: item.label,
23
+ href: resolveItemHref(item),
24
+ isExternal: isExternalLink(item)
25
+ })).filter((item) => Boolean(item.href));
26
+ }
27
+ function resolveItemHref(item) {
28
+ const link = item.url;
29
+ if (!link || typeof link !== "object" || !("href" in link)) return "";
30
+ return link.href;
31
+ }
32
+ function isExternalLink(item) {
33
+ const link = item.url;
34
+ if (!link || typeof link !== "object" || !("kind" in link)) return false;
35
+ return link.kind === "external";
36
+ }
37
+ export {
38
+ getNavItemsBySlug,
39
+ getNavigationBySlug,
40
+ getPrimaryNavItems,
41
+ getPrimaryNavigation,
42
+ transformNavItems
43
+ };
44
+ //# sourceMappingURL=navigation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/navigation/index.ts"],"sourcesContent":["/**\n * Navigation helper utilities for SDK sites.\n *\n * Provides simple helpers to transform CMS navigation data into\n * render-ready NavItem arrays.\n *\n * @example\n * ```ts\n * import { getPrimaryNavItems, getNavItemsBySlug } from '@riverbankcms/sdk/navigation';\n *\n * // Get header navigation (primary menu)\n * const headerNav = getPrimaryNavItems(siteData.navigation);\n *\n * // Get footer navigation by slug\n * const footerNav = getNavItemsBySlug(siteData.navigation, 'footer');\n *\n * // Result: [{ href: '/', label: 'Home', isExternal: false }, ...]\n * ```\n *\n * @packageDocumentation\n */\n\nimport type { NavigationMenuWithItems, NavigationItemRecord, LinkPayload } from '@riverbankcms/api';\n\n/**\n * A simplified navigation item structure for component rendering.\n */\nexport type NavItem = {\n /** The URL to navigate to */\n href: string;\n /** Display text for the navigation link */\n label: string;\n /** Whether link should open in new tab (external links) */\n isExternal: boolean;\n};\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Primary API: Simple one-liner helpers\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Get nav items from the primary menu (marked isPrimary, or first menu).\n * Returns empty array if no navigation configured.\n *\n * @example\n * ```ts\n * const headerNav = getPrimaryNavItems(siteData.navigation);\n * // [{ href: '/', label: 'Home', isExternal: false }, ...]\n * ```\n */\nexport function getPrimaryNavItems(navigation: NavigationMenuWithItems[]): NavItem[] {\n return transformNavItems(getPrimaryNavigation(navigation));\n}\n\n/**\n * Get nav items from a specific menu by slug.\n * Useful for footer nav, secondary nav, etc.\n * Returns empty array if menu not found.\n *\n * @example\n * ```ts\n * const footerNav = getNavItemsBySlug(siteData.navigation, 'footer');\n * ```\n */\nexport function getNavItemsBySlug(navigation: NavigationMenuWithItems[], slug: string): NavItem[] {\n return transformNavItems(getNavigationBySlug(navigation, slug));\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Building blocks for advanced use cases\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Get the primary navigation menu object.\n * Returns menu marked as isPrimary, or first menu if none marked.\n *\n * @example\n * ```ts\n * const menu = getPrimaryNavigation(siteData.navigation);\n * console.log(menu?.title); // \"Main Navigation\"\n * console.log(menu?.slug); // \"main\"\n * ```\n */\nexport function getPrimaryNavigation(\n navigation: NavigationMenuWithItems[],\n): NavigationMenuWithItems | null {\n if (!navigation || navigation.length === 0) return null;\n return navigation.find((menu) => menu.isPrimary) ?? navigation[0];\n}\n\n/**\n * Get a navigation menu by name.\n *\n * @example\n * ```ts\n * const footerMenu = getNavigationBySlug(siteData.navigation, 'footer');\n * ```\n */\nexport function getNavigationBySlug(\n navigation: NavigationMenuWithItems[],\n slug: string,\n): NavigationMenuWithItems | null {\n if (!navigation || navigation.length === 0) return null;\n // Match by name (the database field) - function is named \"slug\" for API simplicity\n return navigation.find((menu) => menu.name === slug) ?? null;\n}\n\n/**\n * Transform a menu into NavItem array.\n * - Sorts by orderIndex\n * - Resolves link hrefs\n * - Identifies external links\n * - Filters out items without valid hrefs\n *\n * @example\n * ```ts\n * const menu = getNavigationBySlug(siteData.navigation, 'main');\n * const items = transformNavItems(menu);\n * ```\n */\nexport function transformNavItems(menu: NavigationMenuWithItems | null): NavItem[] {\n if (!menu?.items || menu.items.length === 0) return [];\n\n const items: NavigationItemRecord[] = menu.items;\n\n return items\n .slice()\n .sort((a: NavigationItemRecord, b: NavigationItemRecord) => (a.orderIndex ?? 0) - (b.orderIndex ?? 0))\n .map((item: NavigationItemRecord) => ({\n label: item.label,\n href: resolveItemHref(item),\n isExternal: isExternalLink(item),\n }))\n .filter((item): item is NavItem => Boolean(item.href));\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Internal helpers\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Extracts the href from a navigation item's url field.\n * The `url` field is a JSON column containing link data with { kind, href, ... } structure.\n * Gracefully returns empty string for malformed or missing link data.\n */\nfunction resolveItemHref(item: NavigationItemRecord): string {\n // The database field is `url` (JSON) which gets camelized to `url`\n const link = item.url as LinkPayload | null | undefined;\n if (!link || typeof link !== 'object' || !('href' in link)) return '';\n return link.href;\n}\n\n/**\n * Determines if a navigation item's link is external.\n * External links (kind: 'external') should typically open in a new tab.\n */\nfunction isExternalLink(item: NavigationItemRecord): boolean {\n const link = item.url as LinkPayload | null | undefined;\n if (!link || typeof link !== 'object' || !('kind' in link)) return false;\n return link.kind === 'external';\n}\n\n// Re-export types for convenience\nexport type { NavigationMenuWithItems, NavigationItemRecord, LinkPayload } from '@riverbankcms/api';\n"],"mappings":";;;AAkDO,SAAS,mBAAmB,YAAkD;AACnF,SAAO,kBAAkB,qBAAqB,UAAU,CAAC;AAC3D;AAYO,SAAS,kBAAkB,YAAuC,MAAyB;AAChG,SAAO,kBAAkB,oBAAoB,YAAY,IAAI,CAAC;AAChE;AAiBO,SAAS,qBACd,YACgC;AAChC,MAAI,CAAC,cAAc,WAAW,WAAW,EAAG,QAAO;AACnD,SAAO,WAAW,KAAK,CAAC,SAAS,KAAK,SAAS,KAAK,WAAW,CAAC;AAClE;AAUO,SAAS,oBACd,YACA,MACgC;AAChC,MAAI,CAAC,cAAc,WAAW,WAAW,EAAG,QAAO;AAEnD,SAAO,WAAW,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK;AAC1D;AAeO,SAAS,kBAAkB,MAAiD;AACjF,MAAI,CAAC,MAAM,SAAS,KAAK,MAAM,WAAW,EAAG,QAAO,CAAC;AAErD,QAAM,QAAgC,KAAK;AAE3C,SAAO,MACJ,MAAM,EACN,KAAK,CAAC,GAAyB,OAA6B,EAAE,cAAc,MAAM,EAAE,cAAc,EAAE,EACpG,IAAI,CAAC,UAAgC;AAAA,IACpC,OAAO,KAAK;AAAA,IACZ,MAAM,gBAAgB,IAAI;AAAA,IAC1B,YAAY,eAAe,IAAI;AAAA,EACjC,EAAE,EACD,OAAO,CAAC,SAA0B,QAAQ,KAAK,IAAI,CAAC;AACzD;AAWA,SAAS,gBAAgB,MAAoC;AAE3D,QAAM,OAAO,KAAK;AAClB,MAAI,CAAC,QAAQ,OAAO,SAAS,YAAY,EAAE,UAAU,MAAO,QAAO;AACnE,SAAO,KAAK;AACd;AAMA,SAAS,eAAe,MAAqC;AAC3D,QAAM,OAAO,KAAK;AAClB,MAAI,CAAC,QAAQ,OAAO,SAAS,YAAY,EAAE,UAAU,MAAO,QAAO;AACnE,SAAO,KAAK,SAAS;AACvB;","names":[]}
@@ -1,13 +1,16 @@
1
- export { P as Page, b as PageProps } from '../loadPage-CCf15nt8.mjs';
2
- export { HeaderData, Layout, LayoutProps } from '../components.mjs';
1
+ export { b as Page, P as PageProps } from '../loadPage-en10WQrt.mjs';
2
+ export { H as HeaderData, L as Layout, a as LayoutProps } from '../Layout-CsAQ-0Fv.mjs';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as React from 'react';
5
- import { Theme } from '@riverbankcms/blocks';
6
- import { R as RiverbankClient } from '../types-C6gmRHLe.mjs';
7
- import '@riverbankcms/blocks/system/data';
8
- import '../types-Bbo01M7P.mjs';
5
+ import { T as Theme } from '../types-nVerjjdv.mjs';
6
+ import '../schema-Bpy9N5ZI.mjs';
7
+ import { R as RiverbankClient } from '../types-CLusapsM.mjs';
8
+ import 'zod';
9
+ import '../types-_nDnPHpv.mjs';
9
10
  import '@riverbankcms/site-renderer';
10
- import '@riverbankcms/api';
11
+ import '@riverbankcms/ai';
12
+ import '@riverbankcms/media-storage-supabase';
13
+ import '@riverbankcms/db';
11
14
 
12
15
  /**
13
16
  * Override component for custom block rendering.
@@ -1,13 +1,16 @@
1
- export { P as Page, b as PageProps } from '../loadPage-BYmVMk0V.js';
2
- export { HeaderData, Layout, LayoutProps } from '../components.js';
1
+ export { b as Page, P as PageProps } from '../loadPage-bejlajm9.js';
2
+ export { H as HeaderData, L as Layout, a as LayoutProps } from '../Layout-BM_KmCxO.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as React from 'react';
5
- import { Theme } from '@riverbankcms/blocks';
6
- import { R as RiverbankClient } from '../types-C6gmRHLe.js';
7
- import '@riverbankcms/blocks/system/data';
8
- import '../types-Bbo01M7P.js';
5
+ import { T as Theme } from '../types-Cc7lyPkN.js';
6
+ import '../schema-Bpy9N5ZI.js';
7
+ import { R as RiverbankClient } from '../types-Ls6BkLKg.js';
8
+ import 'zod';
9
+ import '../types-_nDnPHpv.js';
9
10
  import '@riverbankcms/site-renderer';
10
- import '@riverbankcms/api';
11
+ import '@riverbankcms/ai';
12
+ import '@riverbankcms/media-storage-supabase';
13
+ import '@riverbankcms/db';
11
14
 
12
15
  /**
13
16
  * Override component for custom block rendering.
@@ -1,14 +1,17 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkJB4LIEFSjs = require('../chunk-JB4LIEFS.js');
3
+ var _chunk5R4NMVXAjs = require('../chunk-5R4NMVXA.js');
4
4
 
5
5
 
6
6
 
7
- var _chunkYHEZMVTSjs = require('../chunk-YHEZMVTS.js');
8
- require('../chunk-QQ6U4QX6.js');
7
+ var _chunkINWKF3ICjs = require('../chunk-INWKF3IC.js');
8
+ require('../chunk-SF63XAX7.js');
9
+ require('../chunk-HOY77YBF.js');
10
+ require('../chunk-EGTDJ4PL.js');
11
+ require('../chunk-DGUM43GV.js');
9
12
 
10
13
 
11
14
 
12
15
 
13
- exports.Block = _chunkJB4LIEFSjs.Block; exports.Layout = _chunkYHEZMVTSjs.Layout; exports.Page = _chunkYHEZMVTSjs.Page;
16
+ exports.Block = _chunk5R4NMVXAjs.Block; exports.Layout = _chunkINWKF3ICjs.Layout; exports.Page = _chunkINWKF3ICjs.Page;
14
17
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/rendering/server.js"],"names":[],"mappings":"AAAA;AACE;AACF,uDAA6B;AAC7B;AACE;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACF,uHAAC","file":"/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/rendering/server.js"}
1
+ {"version":3,"sources":["/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/rendering/server.js"],"names":[],"mappings":"AAAA;AACE;AACF,uDAA6B;AAC7B;AACE;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACF,uHAAC","file":"/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/rendering/server.js"}
@@ -1,11 +1,14 @@
1
1
  import {
2
2
  Block
3
- } from "../chunk-WKG57P2H.mjs";
3
+ } from "../chunk-PN3CHDVX.mjs";
4
4
  import {
5
5
  Layout,
6
6
  Page
7
- } from "../chunk-R5YGLRUG.mjs";
8
- import "../chunk-W3K7LVPS.mjs";
7
+ } from "../chunk-FK64TZBT.mjs";
8
+ import "../chunk-O5DC7MYW.mjs";
9
+ import "../chunk-7DS4Q3GA.mjs";
10
+ import "../chunk-USQF2XTU.mjs";
11
+ import "../chunk-BJTO5JO5.mjs";
9
12
  export {
10
13
  Block,
11
14
  Layout,
@@ -1,12 +1,176 @@
1
- export { L as LoadPageParams, a as LoadPageResult, P as Page, b as PageProps, l as loadPage } from './loadPage-CCf15nt8.mjs';
2
- export { HeaderData, Layout, LayoutProps } from './components.mjs';
1
+ export { e as BlockOverrideComponent, B as BlockOverrides, L as LoadPageParams, a as LoadPageResult, b as Page, P as PageProps, c as PageRenderer, d as RouteMap, S as SystemBlockComponentProps, T as ThemeTokens, l as loadPage } from './loadPage-en10WQrt.mjs';
2
+ export { H as HeaderData, L as Layout, a as LayoutProps } from './Layout-CsAQ-0Fv.mjs';
3
3
  export { Block, BlockProps } from './rendering/server.mjs';
4
- export { C as ContentEntryData, L as LoadContentParams, b as LoadContentResult, a as isEntryContent, i as isPageContent, l as loadContent } from './loadContent-zhlL4YSE.mjs';
5
- export { AppointmentBookingContent, BackgroundInput, BlockOverrideComponent, BlockOverrides, BlogListingContent, BlogPlaceholderContent, BlogPostContent, BodyTextContent, ColumnsContent, CtaFullContent, CustomLinkValue, EventCalendarContent, EventRegistrationContent, ExternalLinkValue, FaqContent, FormBlockContent, HeroContent, HeroMedia, InternalLinkValue, LinkValue, Media, PageOutline, PageRenderer, ResolvedBackground, RichText, RichTextPrimitiveProps, RouteMap, SectionBackground, SectionBackgroundProps, SiteFooterContent, SiteHeaderContent, SystemBlockComponentProps, TestimonialEntryContent, TestimonialsBlockContent, Theme, ThemeTokens, TipTapNode, buildThemeRuntime, resolveBackground, resolveImageUrl } from '@riverbankcms/blocks';
6
- import './types-C6gmRHLe.mjs';
7
- import '@riverbankcms/api';
4
+ export { C as ContentEntryData, L as LoadContentParams, b as LoadContentResult, a as isEntryContent, i as isPageContent, l as loadContent } from './loadContent-v2n6pOlO.mjs';
5
+ export { C as CustomLinkValue, E as ExternalLinkValue, I as InternalLinkValue, d as LinkValue, c as SiteFooterContent, S as SiteHeaderContent, T as Theme } from './types-nVerjjdv.mjs';
6
+ export { P as PageOutline } from './schema-Bpy9N5ZI.mjs';
7
+ import { G as GradientConfig, M as Media } from './components-CI3JiOYA.mjs';
8
+ export { e as BackgroundInput, B as BodyTextContent, H as HeroContent, a as HeroMedia, f as ResolvedBackground, R as RichText, c as RichTextPrimitiveProps, S as SectionBackground, g as SectionBackgroundProps, T as TipTapNode, b as buildThemeRuntime, d as resolveBackground, r as resolveImageUrl } from './components-CI3JiOYA.mjs';
9
+ import './types-CLusapsM.mjs';
8
10
  import 'react/jsx-runtime';
9
- import '@riverbankcms/blocks/system/data';
10
- import './types-Bbo01M7P.mjs';
11
- import '@riverbankcms/site-renderer';
12
11
  import 'react';
12
+ import 'zod';
13
+ import './types-_nDnPHpv.mjs';
14
+ import '@riverbankcms/site-renderer';
15
+ import '@riverbankcms/ai';
16
+ import '@riverbankcms/media-storage-supabase';
17
+ import '@riverbankcms/db';
18
+
19
+ type BlogPostContent = {
20
+ title?: string | null;
21
+ postSlug?: string | null;
22
+ };
23
+
24
+ type BlogPlaceholderCard = {
25
+ title: string;
26
+ summary: string;
27
+ };
28
+ type BlogPlaceholderContent = {
29
+ eyebrow?: string | null;
30
+ heading?: string | null;
31
+ description?: string | null;
32
+ cards?: BlogPlaceholderCard[];
33
+ note?: string | null;
34
+ };
35
+
36
+ type BlogListingContent = {
37
+ layout?: "grid" | "stack" | null;
38
+ columns?: "2" | "3" | "4" | null;
39
+ postsPerPage?: "6" | "12" | "24" | "48" | null;
40
+ showImages?: boolean | null;
41
+ showExcerpts?: boolean | null;
42
+ showDates?: boolean | null;
43
+ readMoreText?: string | null;
44
+ readMoreVariant?: "link" | "primary" | "secondary" | "outline" | null;
45
+ emptyMessage?: string | null;
46
+ };
47
+
48
+ type CtaFullContent = {
49
+ eyebrow?: string | null;
50
+ title: string;
51
+ content?: unknown;
52
+ _sectionStyles?: {
53
+ background?: {
54
+ type: 'color' | 'gradient' | 'image';
55
+ color?: string | null;
56
+ gradient?: GradientConfig | null;
57
+ image?: Media | null;
58
+ textColor?: string | null;
59
+ } | null;
60
+ spacing?: string | null;
61
+ } | null;
62
+ ctas?: Array<{
63
+ label?: string | null;
64
+ href?: string | null;
65
+ }>;
66
+ };
67
+
68
+ /**
69
+ * Rich text document structure (ProseMirror format)
70
+ */
71
+ type RichTextDoc = {
72
+ type: 'doc';
73
+ content?: Array<{
74
+ type: string;
75
+ content?: Array<{
76
+ type: string;
77
+ text?: string;
78
+ [key: string]: unknown;
79
+ }>;
80
+ [key: string]: unknown;
81
+ }>;
82
+ };
83
+ type FormBlockContent = {
84
+ title?: string | null;
85
+ intro?: RichTextDoc | null;
86
+ formId: string;
87
+ submitLabel?: string | null;
88
+ successMessage?: string | null;
89
+ };
90
+
91
+ type FaqItem = {
92
+ question: string;
93
+ answer: unknown;
94
+ };
95
+ type FaqContent = {
96
+ eyebrow?: string | null;
97
+ title?: string | null;
98
+ description?: unknown;
99
+ items?: FaqItem[] | null;
100
+ };
101
+
102
+ type TestimonialsBlockContent = {
103
+ heading?: string | null;
104
+ subheading?: string | null;
105
+ slidesToShow?: number | string | null;
106
+ transition?: 'slide' | 'fade' | null;
107
+ maxEntries?: number | string | null;
108
+ _sectionStyles?: {
109
+ background?: {
110
+ type: 'color' | 'gradient' | 'image';
111
+ color?: string | null;
112
+ gradient?: GradientConfig | null;
113
+ image?: Media | null;
114
+ textColor?: string | null;
115
+ } | null;
116
+ spacing?: string | null;
117
+ } | null;
118
+ };
119
+ type TestimonialEntryContent = {
120
+ name?: string | null;
121
+ jobTitle?: string | null;
122
+ company?: string | null;
123
+ headshot?: {
124
+ url?: string | null;
125
+ alt?: string | null;
126
+ } | null;
127
+ body?: unknown;
128
+ };
129
+
130
+ type ColumnsContent = {
131
+ gap?: 'sm' | 'md' | 'lg';
132
+ columns: Array<{
133
+ _type: 'card';
134
+ media?: unknown;
135
+ aspectRatio?: '16/9' | '4/3' | '1/1' | '3/4' | 'auto';
136
+ title: string;
137
+ body?: unknown;
138
+ ctas?: Array<unknown>;
139
+ variant?: string;
140
+ } | {
141
+ _type: 'columnContent';
142
+ items: Array<{
143
+ _type: string;
144
+ [key: string]: unknown;
145
+ }>;
146
+ }>;
147
+ };
148
+
149
+ type AppointmentBookingContent = {
150
+ formId: string;
151
+ heading?: string | null;
152
+ description?: unknown;
153
+ };
154
+
155
+ type EventRegistrationContent = {
156
+ heading?: string | null;
157
+ description?: unknown;
158
+ maxTickets?: "1" | "2" | "3" | "5" | "10" | null;
159
+ showVenue?: boolean | null;
160
+ showCapacity?: boolean | null;
161
+ successMessage?: string | null;
162
+ waitlistMessage?: string | null;
163
+ buttonText?: string | null;
164
+ buttonVariant?: "primary" | "secondary" | "outline" | null;
165
+ };
166
+
167
+ type EventCalendarContent = {
168
+ heading?: string | null;
169
+ description?: unknown;
170
+ calendarView?: "month" | "week" | null;
171
+ startOfWeek?: "sunday" | "monday" | null;
172
+ buttonVariant?: "primary" | "secondary" | "outline" | "link" | null;
173
+ emptyMessage?: string | null;
174
+ };
175
+
176
+ export { type AppointmentBookingContent, type BlogListingContent, type BlogPlaceholderContent, type BlogPostContent, type ColumnsContent, type CtaFullContent, type EventCalendarContent, type EventRegistrationContent, type FaqContent, type FormBlockContent, Media, type TestimonialEntryContent, type TestimonialsBlockContent };