@sonordev/site-kit 1.2.7

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 (300) hide show
  1. package/README.md +376 -0
  2. package/dist/SetupWizard-Cki06kB0.d.mts +12 -0
  3. package/dist/SetupWizard-Cki06kB0.d.ts +12 -0
  4. package/dist/analytics/index.d.mts +93 -0
  5. package/dist/analytics/index.d.ts +93 -0
  6. package/dist/analytics/index.js +89 -0
  7. package/dist/analytics/index.js.map +1 -0
  8. package/dist/analytics/index.mjs +71 -0
  9. package/dist/analytics/index.mjs.map +1 -0
  10. package/dist/api-CWtoFJCO.d.mts +137 -0
  11. package/dist/api-CWtoFJCO.d.ts +137 -0
  12. package/dist/blog/index.d.mts +305 -0
  13. package/dist/blog/index.d.ts +305 -0
  14. package/dist/blog/index.js +1578 -0
  15. package/dist/blog/index.js.map +1 -0
  16. package/dist/blog/index.mjs +1562 -0
  17. package/dist/blog/index.mjs.map +1 -0
  18. package/dist/blog/server.d.mts +229 -0
  19. package/dist/blog/server.d.ts +229 -0
  20. package/dist/blog/server.js +692 -0
  21. package/dist/blog/server.js.map +1 -0
  22. package/dist/blog/server.mjs +666 -0
  23. package/dist/blog/server.mjs.map +1 -0
  24. package/dist/chunk-24277A3Q.mjs +968 -0
  25. package/dist/chunk-24277A3Q.mjs.map +1 -0
  26. package/dist/chunk-373TK6TZ.js +321 -0
  27. package/dist/chunk-373TK6TZ.js.map +1 -0
  28. package/dist/chunk-3MYZS6PD.js +30 -0
  29. package/dist/chunk-3MYZS6PD.js.map +1 -0
  30. package/dist/chunk-43GBM4SX.js +283 -0
  31. package/dist/chunk-43GBM4SX.js.map +1 -0
  32. package/dist/chunk-4XPGGLVP.mjs +53 -0
  33. package/dist/chunk-4XPGGLVP.mjs.map +1 -0
  34. package/dist/chunk-622GAQP5.js +2008 -0
  35. package/dist/chunk-622GAQP5.js.map +1 -0
  36. package/dist/chunk-6BIPAKL4.mjs +28 -0
  37. package/dist/chunk-6BIPAKL4.mjs.map +1 -0
  38. package/dist/chunk-6ZCISNAB.mjs +343 -0
  39. package/dist/chunk-6ZCISNAB.mjs.map +1 -0
  40. package/dist/chunk-72MQFHYJ.js +1429 -0
  41. package/dist/chunk-72MQFHYJ.js.map +1 -0
  42. package/dist/chunk-7557OTHW.js +62 -0
  43. package/dist/chunk-7557OTHW.js.map +1 -0
  44. package/dist/chunk-7FUV73JZ.js +981 -0
  45. package/dist/chunk-7FUV73JZ.js.map +1 -0
  46. package/dist/chunk-7RF6PVHA.mjs +324 -0
  47. package/dist/chunk-7RF6PVHA.mjs.map +1 -0
  48. package/dist/chunk-7RYCHO6D.mjs +134 -0
  49. package/dist/chunk-7RYCHO6D.mjs.map +1 -0
  50. package/dist/chunk-7UKPRW25.mjs +1999 -0
  51. package/dist/chunk-7UKPRW25.mjs.map +1 -0
  52. package/dist/chunk-7URAOG2M.js +14864 -0
  53. package/dist/chunk-7URAOG2M.js.map +1 -0
  54. package/dist/chunk-AFAO3TGS.mjs +810 -0
  55. package/dist/chunk-AFAO3TGS.mjs.map +1 -0
  56. package/dist/chunk-BYLIU6XG.js +343 -0
  57. package/dist/chunk-BYLIU6XG.js.map +1 -0
  58. package/dist/chunk-D63MUKZ6.mjs +4423 -0
  59. package/dist/chunk-D63MUKZ6.mjs.map +1 -0
  60. package/dist/chunk-DDKW2FNA.js +390 -0
  61. package/dist/chunk-DDKW2FNA.js.map +1 -0
  62. package/dist/chunk-DQYMKR27.mjs +341 -0
  63. package/dist/chunk-DQYMKR27.mjs.map +1 -0
  64. package/dist/chunk-DW5UJKHH.js +221 -0
  65. package/dist/chunk-DW5UJKHH.js.map +1 -0
  66. package/dist/chunk-EEZCR6E6.js +50 -0
  67. package/dist/chunk-EEZCR6E6.js.map +1 -0
  68. package/dist/chunk-GCJXQ4AG.mjs +59 -0
  69. package/dist/chunk-GCJXQ4AG.mjs.map +1 -0
  70. package/dist/chunk-JGNQK2G6.mjs +14845 -0
  71. package/dist/chunk-JGNQK2G6.mjs.map +1 -0
  72. package/dist/chunk-JTLOJLWQ.mjs +563 -0
  73. package/dist/chunk-JTLOJLWQ.mjs.map +1 -0
  74. package/dist/chunk-K23A4G76.mjs +202 -0
  75. package/dist/chunk-K23A4G76.mjs.map +1 -0
  76. package/dist/chunk-KKU3K7RG.js +336 -0
  77. package/dist/chunk-KKU3K7RG.js.map +1 -0
  78. package/dist/chunk-KUGMH4ZF.js +571 -0
  79. package/dist/chunk-KUGMH4ZF.js.map +1 -0
  80. package/dist/chunk-LBVWVP72.js +110 -0
  81. package/dist/chunk-LBVWVP72.js.map +1 -0
  82. package/dist/chunk-LIVWLY2P.js +138 -0
  83. package/dist/chunk-LIVWLY2P.js.map +1 -0
  84. package/dist/chunk-M2T6R7BA.mjs +1003 -0
  85. package/dist/chunk-M2T6R7BA.mjs.map +1 -0
  86. package/dist/chunk-MV3QN7PW.mjs +47 -0
  87. package/dist/chunk-MV3QN7PW.mjs.map +1 -0
  88. package/dist/chunk-OB7E654K.js +72 -0
  89. package/dist/chunk-OB7E654K.js.map +1 -0
  90. package/dist/chunk-OIIKTGRL.mjs +380 -0
  91. package/dist/chunk-OIIKTGRL.mjs.map +1 -0
  92. package/dist/chunk-P3UWIUJS.mjs +1427 -0
  93. package/dist/chunk-P3UWIUJS.mjs.map +1 -0
  94. package/dist/chunk-PKN27UMH.mjs +136 -0
  95. package/dist/chunk-PKN27UMH.mjs.map +1 -0
  96. package/dist/chunk-QXV4667R.mjs +105 -0
  97. package/dist/chunk-QXV4667R.mjs.map +1 -0
  98. package/dist/chunk-S7FRYNSU.mjs +315 -0
  99. package/dist/chunk-S7FRYNSU.mjs.map +1 -0
  100. package/dist/chunk-TFLQX7K7.mjs +68 -0
  101. package/dist/chunk-TFLQX7K7.mjs.map +1 -0
  102. package/dist/chunk-UWE5PCYJ.mjs +279 -0
  103. package/dist/chunk-UWE5PCYJ.mjs.map +1 -0
  104. package/dist/chunk-UYFDNX2F.js +4469 -0
  105. package/dist/chunk-UYFDNX2F.js.map +1 -0
  106. package/dist/chunk-W4PALSGM.js +350 -0
  107. package/dist/chunk-W4PALSGM.js.map +1 -0
  108. package/dist/chunk-WECQ6KOB.js +1008 -0
  109. package/dist/chunk-WECQ6KOB.js.map +1 -0
  110. package/dist/chunk-XQQWI6WB.js +814 -0
  111. package/dist/chunk-XQQWI6WB.js.map +1 -0
  112. package/dist/chunk-XZJOZJB6.js +140 -0
  113. package/dist/chunk-XZJOZJB6.js.map +1 -0
  114. package/dist/chunk-ZSMWDLMK.js +63 -0
  115. package/dist/chunk-ZSMWDLMK.js.map +1 -0
  116. package/dist/cli/index.js +37243 -0
  117. package/dist/cli/index.js.map +1 -0
  118. package/dist/cli/index.mjs +37209 -0
  119. package/dist/cli/index.mjs.map +1 -0
  120. package/dist/commerce/index.d.mts +170 -0
  121. package/dist/commerce/index.d.ts +170 -0
  122. package/dist/commerce/index.js +174 -0
  123. package/dist/commerce/index.js.map +1 -0
  124. package/dist/commerce/index.mjs +5 -0
  125. package/dist/commerce/index.mjs.map +1 -0
  126. package/dist/commerce/server.d.mts +107 -0
  127. package/dist/commerce/server.d.ts +107 -0
  128. package/dist/commerce/server.js +187 -0
  129. package/dist/commerce/server.js.map +1 -0
  130. package/dist/commerce/server.mjs +177 -0
  131. package/dist/commerce/server.mjs.map +1 -0
  132. package/dist/config/index.d.mts +43 -0
  133. package/dist/config/index.d.ts +43 -0
  134. package/dist/config/index.js +66 -0
  135. package/dist/config/index.js.map +1 -0
  136. package/dist/config/index.mjs +64 -0
  137. package/dist/config/index.mjs.map +1 -0
  138. package/dist/engage/index.d.mts +33 -0
  139. package/dist/engage/index.d.ts +33 -0
  140. package/dist/engage/index.js +22 -0
  141. package/dist/engage/index.js.map +1 -0
  142. package/dist/engage/index.mjs +5 -0
  143. package/dist/engage/index.mjs.map +1 -0
  144. package/dist/forms/index.d.mts +437 -0
  145. package/dist/forms/index.d.ts +437 -0
  146. package/dist/forms/index.js +1168 -0
  147. package/dist/forms/index.js.map +1 -0
  148. package/dist/forms/index.mjs +1142 -0
  149. package/dist/forms/index.mjs.map +1 -0
  150. package/dist/generators-2XKQMPKH.mjs +4 -0
  151. package/dist/generators-2XKQMPKH.mjs.map +1 -0
  152. package/dist/generators-DTMO36DV.js +33 -0
  153. package/dist/generators-DTMO36DV.js.map +1 -0
  154. package/dist/images/index.d.mts +4 -0
  155. package/dist/images/index.d.ts +4 -0
  156. package/dist/images/index.js +46 -0
  157. package/dist/images/index.js.map +1 -0
  158. package/dist/images/index.mjs +5 -0
  159. package/dist/images/index.mjs.map +1 -0
  160. package/dist/images/server.d.mts +69 -0
  161. package/dist/images/server.d.ts +69 -0
  162. package/dist/images/server.js +21 -0
  163. package/dist/images/server.js.map +1 -0
  164. package/dist/images/server.mjs +4 -0
  165. package/dist/images/server.mjs.map +1 -0
  166. package/dist/index.d.mts +846 -0
  167. package/dist/index.d.ts +846 -0
  168. package/dist/index.js +2623 -0
  169. package/dist/index.js.map +1 -0
  170. package/dist/index.mjs +2416 -0
  171. package/dist/index.mjs.map +1 -0
  172. package/dist/layout/index.d.mts +53 -0
  173. package/dist/layout/index.d.ts +53 -0
  174. package/dist/layout/index.js +187 -0
  175. package/dist/layout/index.js.map +1 -0
  176. package/dist/layout/index.mjs +185 -0
  177. package/dist/layout/index.mjs.map +1 -0
  178. package/dist/llms/index.d.mts +448 -0
  179. package/dist/llms/index.d.ts +448 -0
  180. package/dist/llms/index.js +581 -0
  181. package/dist/llms/index.js.map +1 -0
  182. package/dist/llms/index.mjs +529 -0
  183. package/dist/llms/index.mjs.map +1 -0
  184. package/dist/manifest/index.d.mts +62 -0
  185. package/dist/manifest/index.d.ts +62 -0
  186. package/dist/manifest/index.js +85 -0
  187. package/dist/manifest/index.js.map +1 -0
  188. package/dist/manifest/index.mjs +83 -0
  189. package/dist/manifest/index.mjs.map +1 -0
  190. package/dist/middleware/index.d.mts +63 -0
  191. package/dist/middleware/index.d.ts +63 -0
  192. package/dist/middleware/index.js +54 -0
  193. package/dist/middleware/index.js.map +1 -0
  194. package/dist/middleware/index.mjs +51 -0
  195. package/dist/middleware/index.mjs.map +1 -0
  196. package/dist/migrator-2MQHOFDQ.mjs +4 -0
  197. package/dist/migrator-2MQHOFDQ.mjs.map +1 -0
  198. package/dist/migrator-THJCF6MZ.js +37 -0
  199. package/dist/migrator-THJCF6MZ.js.map +1 -0
  200. package/dist/redirects/index.d.mts +78 -0
  201. package/dist/redirects/index.d.ts +78 -0
  202. package/dist/redirects/index.js +26 -0
  203. package/dist/redirects/index.js.map +1 -0
  204. package/dist/redirects/index.mjs +5 -0
  205. package/dist/redirects/index.mjs.map +1 -0
  206. package/dist/reputation/index.d.mts +57 -0
  207. package/dist/reputation/index.d.ts +57 -0
  208. package/dist/reputation/index.js +21 -0
  209. package/dist/reputation/index.js.map +1 -0
  210. package/dist/reputation/index.mjs +4 -0
  211. package/dist/reputation/index.mjs.map +1 -0
  212. package/dist/robots/index.d.mts +38 -0
  213. package/dist/robots/index.d.ts +38 -0
  214. package/dist/robots/index.js +52 -0
  215. package/dist/robots/index.js.map +1 -0
  216. package/dist/robots/index.mjs +50 -0
  217. package/dist/robots/index.mjs.map +1 -0
  218. package/dist/routing-B5XS-6_W.d.mts +118 -0
  219. package/dist/routing-DZYzyDHw.d.ts +118 -0
  220. package/dist/scanner-GAF5PO5F.js +53 -0
  221. package/dist/scanner-GAF5PO5F.js.map +1 -0
  222. package/dist/scanner-LKJKW7IT.mjs +4 -0
  223. package/dist/scanner-LKJKW7IT.mjs.map +1 -0
  224. package/dist/securityHeaders-nwZ6nP4g.d.mts +24 -0
  225. package/dist/securityHeaders-nwZ6nP4g.d.ts +24 -0
  226. package/dist/seo/index.d.mts +600 -0
  227. package/dist/seo/index.d.ts +600 -0
  228. package/dist/seo/index.js +883 -0
  229. package/dist/seo/index.js.map +1 -0
  230. package/dist/seo/index.mjs +773 -0
  231. package/dist/seo/index.mjs.map +1 -0
  232. package/dist/seo/register-sitemap-cli.js +151 -0
  233. package/dist/seo/register-sitemap-cli.js.map +1 -0
  234. package/dist/seo/register-sitemap-cli.mjs +144 -0
  235. package/dist/seo/register-sitemap-cli.mjs.map +1 -0
  236. package/dist/seo/server.d.mts +107 -0
  237. package/dist/seo/server.d.ts +107 -0
  238. package/dist/seo/server.js +207 -0
  239. package/dist/seo/server.js.map +1 -0
  240. package/dist/seo/server.mjs +186 -0
  241. package/dist/seo/server.mjs.map +1 -0
  242. package/dist/server-api-EWXKOQZA.mjs +4 -0
  243. package/dist/server-api-EWXKOQZA.mjs.map +1 -0
  244. package/dist/server-api-GJPNRYUP.js +81 -0
  245. package/dist/server-api-GJPNRYUP.js.map +1 -0
  246. package/dist/setup/client.d.mts +60 -0
  247. package/dist/setup/client.d.ts +60 -0
  248. package/dist/setup/client.js +31 -0
  249. package/dist/setup/client.js.map +1 -0
  250. package/dist/setup/client.mjs +6 -0
  251. package/dist/setup/client.mjs.map +1 -0
  252. package/dist/setup/index.d.mts +5 -0
  253. package/dist/setup/index.d.ts +5 -0
  254. package/dist/setup/index.js +35 -0
  255. package/dist/setup/index.js.map +1 -0
  256. package/dist/setup/index.mjs +6 -0
  257. package/dist/setup/index.mjs.map +1 -0
  258. package/dist/setup/server.d.mts +14 -0
  259. package/dist/setup/server.d.ts +14 -0
  260. package/dist/setup/server.js +13 -0
  261. package/dist/setup/server.js.map +1 -0
  262. package/dist/setup/server.mjs +4 -0
  263. package/dist/setup/server.mjs.map +1 -0
  264. package/dist/site-config/index.d.mts +24 -0
  265. package/dist/site-config/index.d.ts +24 -0
  266. package/dist/site-config/index.js +17 -0
  267. package/dist/site-config/index.js.map +1 -0
  268. package/dist/site-config/index.mjs +4 -0
  269. package/dist/site-config/index.mjs.map +1 -0
  270. package/dist/sitemap/index.d.mts +96 -0
  271. package/dist/sitemap/index.d.ts +96 -0
  272. package/dist/sitemap/index.js +288 -0
  273. package/dist/sitemap/index.js.map +1 -0
  274. package/dist/sitemap/index.mjs +285 -0
  275. package/dist/sitemap/index.mjs.map +1 -0
  276. package/dist/socket-loader-J26QHHOB.js +16 -0
  277. package/dist/socket-loader-J26QHHOB.js.map +1 -0
  278. package/dist/socket-loader-R7S2YJ2J.mjs +14 -0
  279. package/dist/socket-loader-R7S2YJ2J.mjs.map +1 -0
  280. package/dist/types-0dmq3k20.d.mts +168 -0
  281. package/dist/types-0dmq3k20.d.ts +168 -0
  282. package/dist/types-Blb2QNkV.d.mts +263 -0
  283. package/dist/types-Blb2QNkV.d.ts +263 -0
  284. package/dist/types-BnCwwUX3.d.mts +250 -0
  285. package/dist/types-BnCwwUX3.d.ts +250 -0
  286. package/dist/types-CGlnp43R.d.mts +312 -0
  287. package/dist/types-CGlnp43R.d.ts +312 -0
  288. package/dist/types-D08004rU.d.mts +179 -0
  289. package/dist/types-D08004rU.d.ts +179 -0
  290. package/dist/types-DNSYU7qI.d.mts +127 -0
  291. package/dist/types-DNSYU7qI.d.ts +127 -0
  292. package/dist/types-KZP_VWZp.d.mts +266 -0
  293. package/dist/types-KZP_VWZp.d.ts +266 -0
  294. package/dist/useEventModal-BVTx69XE.d.mts +274 -0
  295. package/dist/useEventModal-Dx1dItTJ.d.ts +274 -0
  296. package/dist/web-vitals-444RLW3B.js +252 -0
  297. package/dist/web-vitals-444RLW3B.js.map +1 -0
  298. package/dist/web-vitals-KPICZIEF.mjs +241 -0
  299. package/dist/web-vitals-KPICZIEF.mjs.map +1 -0
  300. package/package.json +192 -0
@@ -0,0 +1,170 @@
1
+ import { C as CommerceOffering, a as CommerceVariant, b as CheckoutResult, c as CommerceSchedule } from '../types-CGlnp43R.mjs';
2
+ export { o as AdditionalField, A as AdditionalFieldOption, g as Cart, f as CartItem, h as CheckoutCustomer, n as CheckoutFormProps, p as CommerceApiConfig, e as CommerceCategory, m as EventEmbedProps, E as EventTileProps, q as FetchEventsOptions, F as FetchOfferingsOptions, i as OfferingCardProps, k as OfferingDetailProps, j as OfferingListProps, d as OfferingStatus, O as OfferingType, P as PriceType, l as ProductEmbedProps, R as RegistrationFormProps, U as UpcomingEventsProps } from '../types-CGlnp43R.mjs';
3
+ export { u as CalendarView, t as CheckoutForm, C as CreateCheckoutOptions, x as EventCalendar, s as EventEmbed, w as EventModal, E as EventTile, O as OfferingCard, p as OfferingList, P as ProcessorConfig, q as ProductEmbed, R as RegistrationForm, S as ShippingAddress, o as ShippingRate, U as UpcomingEvents, V as ValidateAddressResult, l as createCheckoutSession, m as fetchActiveProcessor, g as fetchCategories, b as fetchLatestOffering, j as fetchNextEvent, a as fetchOffering, f as fetchOfferings, n as fetchProcessorConfig, e as fetchProductBySlug, c as fetchProducts, d as fetchProductsPublic, h as fetchServices, k as fetchShippingRates, i as fetchUpcomingEvents, A as formatDate, F as formatDateRange, B as formatDateTime, z as formatPrice, D as formatTime, J as getOfferingUrl, G as getRelativeTimeUntil, H as getSpotsRemaining, I as isEventSoldOut, r as registerForEvent, y as useEventModal, v as validateAddress } from '../useEventModal-BVTx69XE.mjs';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+ import React__default from 'react';
6
+
7
+ interface ProductDetailProps {
8
+ /** Pre-loaded product data (for SSR) */
9
+ product?: CommerceOffering;
10
+ /** Product slug to fetch (if not pre-loaded) */
11
+ slug?: string;
12
+ /** Show add to cart button */
13
+ showAddToCart?: boolean;
14
+ /** Show buy now button */
15
+ showBuyNow?: boolean;
16
+ /** Show quantity selector */
17
+ showQuantity?: boolean;
18
+ /** Show variant selector */
19
+ showVariants?: boolean;
20
+ /** Show product gallery */
21
+ showGallery?: boolean;
22
+ /** Show product features */
23
+ showFeatures?: boolean;
24
+ /** Show specifications table */
25
+ showSpecifications?: boolean;
26
+ /** Success URL after checkout */
27
+ successUrl?: string;
28
+ /** Cancel URL if checkout cancelled */
29
+ cancelUrl?: string;
30
+ /** Callback when added to cart */
31
+ onAddToCart?: (product: CommerceOffering, variant?: CommerceVariant, quantity?: number) => void;
32
+ /** Callback when buy now clicked */
33
+ onBuyNow?: (product: CommerceOffering, variant?: CommerceVariant, quantity?: number) => void;
34
+ /** Callback on checkout success */
35
+ onCheckoutSuccess?: (result: CheckoutResult) => void;
36
+ /** Callback on checkout error */
37
+ onCheckoutError?: (error: string) => void;
38
+ /** Additional class names */
39
+ className?: string;
40
+ /** Custom styles */
41
+ style?: React__default.CSSProperties;
42
+ }
43
+ declare function ProductDetail({ product: propProduct, slug, showAddToCart, showBuyNow, showQuantity, showVariants, showGallery, showFeatures, showSpecifications, successUrl, cancelUrl, onAddToCart, onBuyNow, onCheckoutSuccess, onCheckoutError, className, style, }: ProductDetailProps): react_jsx_runtime.JSX.Element;
44
+
45
+ interface ProductGridProps {
46
+ /** Pre-loaded products (for SSR) */
47
+ products?: CommerceOffering[];
48
+ /** Limit number of products */
49
+ limit?: number;
50
+ /** Category to filter by */
51
+ category?: string;
52
+ /** Show category filter */
53
+ showCategoryFilter?: boolean;
54
+ /** Show sort dropdown */
55
+ showSort?: boolean;
56
+ /** Show search input */
57
+ showSearch?: boolean;
58
+ /** Number of columns (responsive) */
59
+ columns?: 2 | 3 | 4;
60
+ /** Loading skeleton count */
61
+ skeletonCount?: number;
62
+ /** Custom empty state message */
63
+ emptyMessage?: string;
64
+ /** Callback when product is clicked */
65
+ onProductClick?: (product: CommerceOffering) => void;
66
+ /** Navigate to product page on click */
67
+ linkToProduct?: boolean;
68
+ /** Base path for product links */
69
+ productBasePath?: string;
70
+ /** Additional class names */
71
+ className?: string;
72
+ /** Card variant style */
73
+ cardVariant?: 'card' | 'minimal' | 'horizontal';
74
+ /** Custom styles */
75
+ style?: React__default.CSSProperties;
76
+ }
77
+ declare function ProductGrid({ products: propProducts, limit, category: propCategory, showCategoryFilter, showSort, showSearch, columns, skeletonCount, emptyMessage, onProductClick, linkToProduct, productBasePath, className, cardVariant, style, }: ProductGridProps): react_jsx_runtime.JSX.Element;
78
+
79
+ interface ProductPageProps {
80
+ /** Pre-loaded product data (for SSR) */
81
+ product?: CommerceOffering;
82
+ /** Product slug to fetch (if not pre-loaded) */
83
+ slug?: string;
84
+ /** Show breadcrumbs navigation */
85
+ showBreadcrumbs?: boolean;
86
+ /** Show related products section */
87
+ showRelatedProducts?: boolean;
88
+ /** Number of related products to show */
89
+ relatedProductsLimit?: number;
90
+ /** Show back to shop link */
91
+ showBackLink?: boolean;
92
+ /** Base path for shop */
93
+ shopBasePath?: string;
94
+ /** Success URL after checkout */
95
+ successUrl?: string;
96
+ /** Cancel URL if checkout cancelled */
97
+ cancelUrl?: string;
98
+ /** Callback when added to cart */
99
+ onAddToCart?: (product: CommerceOffering, variant?: CommerceVariant, quantity?: number) => void;
100
+ /** Custom breadcrumb renderer */
101
+ renderBreadcrumbs?: (product: CommerceOffering) => React__default.ReactNode;
102
+ /** Custom SEO head renderer (for Next.js Head or similar) */
103
+ renderHead?: (product: CommerceOffering) => React__default.ReactNode;
104
+ /** Additional class names */
105
+ className?: string;
106
+ /** Custom styles */
107
+ style?: React__default.CSSProperties;
108
+ }
109
+ declare function ProductPage({ product: propProduct, slug, showBreadcrumbs, showRelatedProducts, relatedProductsLimit, showBackLink, shopBasePath, successUrl, cancelUrl, onAddToCart, renderBreadcrumbs, renderHead, className, style, }: ProductPageProps): react_jsx_runtime.JSX.Element;
110
+
111
+ type EventsViewMode = 'list' | 'grid' | 'calendar';
112
+ interface EventsWidgetProps {
113
+ /** Pre-loaded events (optional - will fetch if not provided) */
114
+ events?: CommerceOffering[];
115
+ /** Initial view mode */
116
+ defaultView?: EventsViewMode;
117
+ /** Which view modes to show in the toggle (e.g. ['list', 'grid'] when calendar is embedded above) */
118
+ availableViews?: EventsViewMode[];
119
+ /** Show view toggle buttons */
120
+ showViewToggle?: boolean;
121
+ /** Section title */
122
+ title?: string;
123
+ /** Subtitle or description */
124
+ subtitle?: string;
125
+ /** Category filter */
126
+ category?: string;
127
+ /** Maximum events to show in list view */
128
+ limit?: number;
129
+ /** Show "View All" link */
130
+ showViewAll?: boolean;
131
+ /** URL for "View All" link */
132
+ viewAllUrl?: string;
133
+ /** Text for "View All" link */
134
+ viewAllText?: string;
135
+ /** Message when no events */
136
+ emptyMessage?: string;
137
+ /** Show empty state with icon */
138
+ showEmptyIcon?: boolean;
139
+ /** Collect phone number in registration */
140
+ collectPhone?: boolean;
141
+ /** Additional form fields */
142
+ additionalFields?: AdditionalField[];
143
+ /** Called when registration/checkout succeeds */
144
+ onRegistrationSuccess?: (result: CheckoutResult) => void;
145
+ /** Called when registration/checkout fails */
146
+ onRegistrationError?: (error: string) => void;
147
+ /** Called when event is clicked (before modal opens) */
148
+ onEventClick?: (event: CommerceOffering, schedule: CommerceSchedule) => void;
149
+ className?: string;
150
+ headerClassName?: string;
151
+ toggleClassName?: string;
152
+ listClassName?: string;
153
+ calendarClassName?: string;
154
+ eventCardClassName?: string;
155
+ modalClassName?: string;
156
+ }
157
+ interface AdditionalField {
158
+ name: string;
159
+ label: string;
160
+ type?: 'text' | 'email' | 'tel' | 'textarea' | 'select' | 'number';
161
+ required?: boolean;
162
+ placeholder?: string;
163
+ options?: {
164
+ value: string;
165
+ label: string;
166
+ }[];
167
+ }
168
+ declare function EventsWidget({ events: propEvents, defaultView, availableViews, showViewToggle, title, subtitle, category, limit, showViewAll, viewAllUrl, viewAllText, emptyMessage, showEmptyIcon, collectPhone, additionalFields, onRegistrationSuccess, onRegistrationError, onEventClick, className, headerClassName, toggleClassName, listClassName, calendarClassName, eventCardClassName, modalClassName, }: EventsWidgetProps): react_jsx_runtime.JSX.Element;
169
+
170
+ export { CheckoutResult, CommerceOffering, CommerceSchedule, CommerceVariant, EventsWidget, ProductDetail, ProductGrid, ProductPage };
@@ -0,0 +1,170 @@
1
+ import { C as CommerceOffering, a as CommerceVariant, b as CheckoutResult, c as CommerceSchedule } from '../types-CGlnp43R.js';
2
+ export { o as AdditionalField, A as AdditionalFieldOption, g as Cart, f as CartItem, h as CheckoutCustomer, n as CheckoutFormProps, p as CommerceApiConfig, e as CommerceCategory, m as EventEmbedProps, E as EventTileProps, q as FetchEventsOptions, F as FetchOfferingsOptions, i as OfferingCardProps, k as OfferingDetailProps, j as OfferingListProps, d as OfferingStatus, O as OfferingType, P as PriceType, l as ProductEmbedProps, R as RegistrationFormProps, U as UpcomingEventsProps } from '../types-CGlnp43R.js';
3
+ export { u as CalendarView, t as CheckoutForm, C as CreateCheckoutOptions, x as EventCalendar, s as EventEmbed, w as EventModal, E as EventTile, O as OfferingCard, p as OfferingList, P as ProcessorConfig, q as ProductEmbed, R as RegistrationForm, S as ShippingAddress, o as ShippingRate, U as UpcomingEvents, V as ValidateAddressResult, l as createCheckoutSession, m as fetchActiveProcessor, g as fetchCategories, b as fetchLatestOffering, j as fetchNextEvent, a as fetchOffering, f as fetchOfferings, n as fetchProcessorConfig, e as fetchProductBySlug, c as fetchProducts, d as fetchProductsPublic, h as fetchServices, k as fetchShippingRates, i as fetchUpcomingEvents, A as formatDate, F as formatDateRange, B as formatDateTime, z as formatPrice, D as formatTime, J as getOfferingUrl, G as getRelativeTimeUntil, H as getSpotsRemaining, I as isEventSoldOut, r as registerForEvent, y as useEventModal, v as validateAddress } from '../useEventModal-Dx1dItTJ.js';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+ import React__default from 'react';
6
+
7
+ interface ProductDetailProps {
8
+ /** Pre-loaded product data (for SSR) */
9
+ product?: CommerceOffering;
10
+ /** Product slug to fetch (if not pre-loaded) */
11
+ slug?: string;
12
+ /** Show add to cart button */
13
+ showAddToCart?: boolean;
14
+ /** Show buy now button */
15
+ showBuyNow?: boolean;
16
+ /** Show quantity selector */
17
+ showQuantity?: boolean;
18
+ /** Show variant selector */
19
+ showVariants?: boolean;
20
+ /** Show product gallery */
21
+ showGallery?: boolean;
22
+ /** Show product features */
23
+ showFeatures?: boolean;
24
+ /** Show specifications table */
25
+ showSpecifications?: boolean;
26
+ /** Success URL after checkout */
27
+ successUrl?: string;
28
+ /** Cancel URL if checkout cancelled */
29
+ cancelUrl?: string;
30
+ /** Callback when added to cart */
31
+ onAddToCart?: (product: CommerceOffering, variant?: CommerceVariant, quantity?: number) => void;
32
+ /** Callback when buy now clicked */
33
+ onBuyNow?: (product: CommerceOffering, variant?: CommerceVariant, quantity?: number) => void;
34
+ /** Callback on checkout success */
35
+ onCheckoutSuccess?: (result: CheckoutResult) => void;
36
+ /** Callback on checkout error */
37
+ onCheckoutError?: (error: string) => void;
38
+ /** Additional class names */
39
+ className?: string;
40
+ /** Custom styles */
41
+ style?: React__default.CSSProperties;
42
+ }
43
+ declare function ProductDetail({ product: propProduct, slug, showAddToCart, showBuyNow, showQuantity, showVariants, showGallery, showFeatures, showSpecifications, successUrl, cancelUrl, onAddToCart, onBuyNow, onCheckoutSuccess, onCheckoutError, className, style, }: ProductDetailProps): react_jsx_runtime.JSX.Element;
44
+
45
+ interface ProductGridProps {
46
+ /** Pre-loaded products (for SSR) */
47
+ products?: CommerceOffering[];
48
+ /** Limit number of products */
49
+ limit?: number;
50
+ /** Category to filter by */
51
+ category?: string;
52
+ /** Show category filter */
53
+ showCategoryFilter?: boolean;
54
+ /** Show sort dropdown */
55
+ showSort?: boolean;
56
+ /** Show search input */
57
+ showSearch?: boolean;
58
+ /** Number of columns (responsive) */
59
+ columns?: 2 | 3 | 4;
60
+ /** Loading skeleton count */
61
+ skeletonCount?: number;
62
+ /** Custom empty state message */
63
+ emptyMessage?: string;
64
+ /** Callback when product is clicked */
65
+ onProductClick?: (product: CommerceOffering) => void;
66
+ /** Navigate to product page on click */
67
+ linkToProduct?: boolean;
68
+ /** Base path for product links */
69
+ productBasePath?: string;
70
+ /** Additional class names */
71
+ className?: string;
72
+ /** Card variant style */
73
+ cardVariant?: 'card' | 'minimal' | 'horizontal';
74
+ /** Custom styles */
75
+ style?: React__default.CSSProperties;
76
+ }
77
+ declare function ProductGrid({ products: propProducts, limit, category: propCategory, showCategoryFilter, showSort, showSearch, columns, skeletonCount, emptyMessage, onProductClick, linkToProduct, productBasePath, className, cardVariant, style, }: ProductGridProps): react_jsx_runtime.JSX.Element;
78
+
79
+ interface ProductPageProps {
80
+ /** Pre-loaded product data (for SSR) */
81
+ product?: CommerceOffering;
82
+ /** Product slug to fetch (if not pre-loaded) */
83
+ slug?: string;
84
+ /** Show breadcrumbs navigation */
85
+ showBreadcrumbs?: boolean;
86
+ /** Show related products section */
87
+ showRelatedProducts?: boolean;
88
+ /** Number of related products to show */
89
+ relatedProductsLimit?: number;
90
+ /** Show back to shop link */
91
+ showBackLink?: boolean;
92
+ /** Base path for shop */
93
+ shopBasePath?: string;
94
+ /** Success URL after checkout */
95
+ successUrl?: string;
96
+ /** Cancel URL if checkout cancelled */
97
+ cancelUrl?: string;
98
+ /** Callback when added to cart */
99
+ onAddToCart?: (product: CommerceOffering, variant?: CommerceVariant, quantity?: number) => void;
100
+ /** Custom breadcrumb renderer */
101
+ renderBreadcrumbs?: (product: CommerceOffering) => React__default.ReactNode;
102
+ /** Custom SEO head renderer (for Next.js Head or similar) */
103
+ renderHead?: (product: CommerceOffering) => React__default.ReactNode;
104
+ /** Additional class names */
105
+ className?: string;
106
+ /** Custom styles */
107
+ style?: React__default.CSSProperties;
108
+ }
109
+ declare function ProductPage({ product: propProduct, slug, showBreadcrumbs, showRelatedProducts, relatedProductsLimit, showBackLink, shopBasePath, successUrl, cancelUrl, onAddToCart, renderBreadcrumbs, renderHead, className, style, }: ProductPageProps): react_jsx_runtime.JSX.Element;
110
+
111
+ type EventsViewMode = 'list' | 'grid' | 'calendar';
112
+ interface EventsWidgetProps {
113
+ /** Pre-loaded events (optional - will fetch if not provided) */
114
+ events?: CommerceOffering[];
115
+ /** Initial view mode */
116
+ defaultView?: EventsViewMode;
117
+ /** Which view modes to show in the toggle (e.g. ['list', 'grid'] when calendar is embedded above) */
118
+ availableViews?: EventsViewMode[];
119
+ /** Show view toggle buttons */
120
+ showViewToggle?: boolean;
121
+ /** Section title */
122
+ title?: string;
123
+ /** Subtitle or description */
124
+ subtitle?: string;
125
+ /** Category filter */
126
+ category?: string;
127
+ /** Maximum events to show in list view */
128
+ limit?: number;
129
+ /** Show "View All" link */
130
+ showViewAll?: boolean;
131
+ /** URL for "View All" link */
132
+ viewAllUrl?: string;
133
+ /** Text for "View All" link */
134
+ viewAllText?: string;
135
+ /** Message when no events */
136
+ emptyMessage?: string;
137
+ /** Show empty state with icon */
138
+ showEmptyIcon?: boolean;
139
+ /** Collect phone number in registration */
140
+ collectPhone?: boolean;
141
+ /** Additional form fields */
142
+ additionalFields?: AdditionalField[];
143
+ /** Called when registration/checkout succeeds */
144
+ onRegistrationSuccess?: (result: CheckoutResult) => void;
145
+ /** Called when registration/checkout fails */
146
+ onRegistrationError?: (error: string) => void;
147
+ /** Called when event is clicked (before modal opens) */
148
+ onEventClick?: (event: CommerceOffering, schedule: CommerceSchedule) => void;
149
+ className?: string;
150
+ headerClassName?: string;
151
+ toggleClassName?: string;
152
+ listClassName?: string;
153
+ calendarClassName?: string;
154
+ eventCardClassName?: string;
155
+ modalClassName?: string;
156
+ }
157
+ interface AdditionalField {
158
+ name: string;
159
+ label: string;
160
+ type?: 'text' | 'email' | 'tel' | 'textarea' | 'select' | 'number';
161
+ required?: boolean;
162
+ placeholder?: string;
163
+ options?: {
164
+ value: string;
165
+ label: string;
166
+ }[];
167
+ }
168
+ declare function EventsWidget({ events: propEvents, defaultView, availableViews, showViewToggle, title, subtitle, category, limit, showViewAll, viewAllUrl, viewAllText, emptyMessage, showEmptyIcon, collectPhone, additionalFields, onRegistrationSuccess, onRegistrationError, onEventClick, className, headerClassName, toggleClassName, listClassName, calendarClassName, eventCardClassName, modalClassName, }: EventsWidgetProps): react_jsx_runtime.JSX.Element;
169
+
170
+ export { CheckoutResult, CommerceOffering, CommerceSchedule, CommerceVariant, EventsWidget, ProductDetail, ProductGrid, ProductPage };
@@ -0,0 +1,174 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var chunkUYFDNX2F_js = require('../chunk-UYFDNX2F.js');
5
+ require('../chunk-ZSMWDLMK.js');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, "CalendarView", {
10
+ enumerable: true,
11
+ get: function () { return chunkUYFDNX2F_js.CalendarView; }
12
+ });
13
+ Object.defineProperty(exports, "CheckoutForm", {
14
+ enumerable: true,
15
+ get: function () { return chunkUYFDNX2F_js.CheckoutForm; }
16
+ });
17
+ Object.defineProperty(exports, "EventCalendar", {
18
+ enumerable: true,
19
+ get: function () { return chunkUYFDNX2F_js.EventCalendar; }
20
+ });
21
+ Object.defineProperty(exports, "EventEmbed", {
22
+ enumerable: true,
23
+ get: function () { return chunkUYFDNX2F_js.EventEmbed; }
24
+ });
25
+ Object.defineProperty(exports, "EventModal", {
26
+ enumerable: true,
27
+ get: function () { return chunkUYFDNX2F_js.EventModal; }
28
+ });
29
+ Object.defineProperty(exports, "EventTile", {
30
+ enumerable: true,
31
+ get: function () { return chunkUYFDNX2F_js.EventTile; }
32
+ });
33
+ Object.defineProperty(exports, "EventsWidget", {
34
+ enumerable: true,
35
+ get: function () { return chunkUYFDNX2F_js.EventsWidget; }
36
+ });
37
+ Object.defineProperty(exports, "OfferingCard", {
38
+ enumerable: true,
39
+ get: function () { return chunkUYFDNX2F_js.OfferingCard; }
40
+ });
41
+ Object.defineProperty(exports, "OfferingList", {
42
+ enumerable: true,
43
+ get: function () { return chunkUYFDNX2F_js.OfferingList; }
44
+ });
45
+ Object.defineProperty(exports, "ProductDetail", {
46
+ enumerable: true,
47
+ get: function () { return chunkUYFDNX2F_js.ProductDetail; }
48
+ });
49
+ Object.defineProperty(exports, "ProductEmbed", {
50
+ enumerable: true,
51
+ get: function () { return chunkUYFDNX2F_js.ProductEmbed; }
52
+ });
53
+ Object.defineProperty(exports, "ProductGrid", {
54
+ enumerable: true,
55
+ get: function () { return chunkUYFDNX2F_js.ProductGrid; }
56
+ });
57
+ Object.defineProperty(exports, "ProductPage", {
58
+ enumerable: true,
59
+ get: function () { return chunkUYFDNX2F_js.ProductPage; }
60
+ });
61
+ Object.defineProperty(exports, "RegistrationForm", {
62
+ enumerable: true,
63
+ get: function () { return chunkUYFDNX2F_js.RegistrationForm; }
64
+ });
65
+ Object.defineProperty(exports, "UpcomingEvents", {
66
+ enumerable: true,
67
+ get: function () { return chunkUYFDNX2F_js.UpcomingEvents; }
68
+ });
69
+ Object.defineProperty(exports, "createCheckoutSession", {
70
+ enumerable: true,
71
+ get: function () { return chunkUYFDNX2F_js.createCheckoutSession; }
72
+ });
73
+ Object.defineProperty(exports, "fetchActiveProcessor", {
74
+ enumerable: true,
75
+ get: function () { return chunkUYFDNX2F_js.fetchActiveProcessor; }
76
+ });
77
+ Object.defineProperty(exports, "fetchCategories", {
78
+ enumerable: true,
79
+ get: function () { return chunkUYFDNX2F_js.fetchCategories; }
80
+ });
81
+ Object.defineProperty(exports, "fetchLatestOffering", {
82
+ enumerable: true,
83
+ get: function () { return chunkUYFDNX2F_js.fetchLatestOffering; }
84
+ });
85
+ Object.defineProperty(exports, "fetchNextEvent", {
86
+ enumerable: true,
87
+ get: function () { return chunkUYFDNX2F_js.fetchNextEvent; }
88
+ });
89
+ Object.defineProperty(exports, "fetchOffering", {
90
+ enumerable: true,
91
+ get: function () { return chunkUYFDNX2F_js.fetchOffering; }
92
+ });
93
+ Object.defineProperty(exports, "fetchOfferings", {
94
+ enumerable: true,
95
+ get: function () { return chunkUYFDNX2F_js.fetchOfferings; }
96
+ });
97
+ Object.defineProperty(exports, "fetchProcessorConfig", {
98
+ enumerable: true,
99
+ get: function () { return chunkUYFDNX2F_js.fetchProcessorConfig; }
100
+ });
101
+ Object.defineProperty(exports, "fetchProductBySlug", {
102
+ enumerable: true,
103
+ get: function () { return chunkUYFDNX2F_js.fetchProductBySlug; }
104
+ });
105
+ Object.defineProperty(exports, "fetchProducts", {
106
+ enumerable: true,
107
+ get: function () { return chunkUYFDNX2F_js.fetchProducts; }
108
+ });
109
+ Object.defineProperty(exports, "fetchProductsPublic", {
110
+ enumerable: true,
111
+ get: function () { return chunkUYFDNX2F_js.fetchProductsPublic; }
112
+ });
113
+ Object.defineProperty(exports, "fetchServices", {
114
+ enumerable: true,
115
+ get: function () { return chunkUYFDNX2F_js.fetchServices; }
116
+ });
117
+ Object.defineProperty(exports, "fetchShippingRates", {
118
+ enumerable: true,
119
+ get: function () { return chunkUYFDNX2F_js.fetchShippingRates; }
120
+ });
121
+ Object.defineProperty(exports, "fetchUpcomingEvents", {
122
+ enumerable: true,
123
+ get: function () { return chunkUYFDNX2F_js.fetchUpcomingEvents; }
124
+ });
125
+ Object.defineProperty(exports, "formatDate", {
126
+ enumerable: true,
127
+ get: function () { return chunkUYFDNX2F_js.formatDate; }
128
+ });
129
+ Object.defineProperty(exports, "formatDateRange", {
130
+ enumerable: true,
131
+ get: function () { return chunkUYFDNX2F_js.formatDateRange; }
132
+ });
133
+ Object.defineProperty(exports, "formatDateTime", {
134
+ enumerable: true,
135
+ get: function () { return chunkUYFDNX2F_js.formatDateTime; }
136
+ });
137
+ Object.defineProperty(exports, "formatPrice", {
138
+ enumerable: true,
139
+ get: function () { return chunkUYFDNX2F_js.formatPrice; }
140
+ });
141
+ Object.defineProperty(exports, "formatTime", {
142
+ enumerable: true,
143
+ get: function () { return chunkUYFDNX2F_js.formatTime; }
144
+ });
145
+ Object.defineProperty(exports, "getOfferingUrl", {
146
+ enumerable: true,
147
+ get: function () { return chunkUYFDNX2F_js.getOfferingUrl; }
148
+ });
149
+ Object.defineProperty(exports, "getRelativeTimeUntil", {
150
+ enumerable: true,
151
+ get: function () { return chunkUYFDNX2F_js.getRelativeTimeUntil; }
152
+ });
153
+ Object.defineProperty(exports, "getSpotsRemaining", {
154
+ enumerable: true,
155
+ get: function () { return chunkUYFDNX2F_js.getSpotsRemaining; }
156
+ });
157
+ Object.defineProperty(exports, "isEventSoldOut", {
158
+ enumerable: true,
159
+ get: function () { return chunkUYFDNX2F_js.isEventSoldOut; }
160
+ });
161
+ Object.defineProperty(exports, "registerForEvent", {
162
+ enumerable: true,
163
+ get: function () { return chunkUYFDNX2F_js.registerForEvent; }
164
+ });
165
+ Object.defineProperty(exports, "useEventModal", {
166
+ enumerable: true,
167
+ get: function () { return chunkUYFDNX2F_js.useEventModal; }
168
+ });
169
+ Object.defineProperty(exports, "validateAddress", {
170
+ enumerable: true,
171
+ get: function () { return chunkUYFDNX2F_js.validateAddress; }
172
+ });
173
+ //# sourceMappingURL=index.js.map
174
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { CalendarView, CheckoutForm, EventCalendar, EventEmbed, EventModal, EventTile, EventsWidget, OfferingCard, OfferingList, ProductDetail, ProductEmbed, ProductGrid, ProductPage, RegistrationForm, UpcomingEvents, createCheckoutSession, fetchActiveProcessor, fetchCategories, fetchLatestOffering, fetchNextEvent, fetchOffering, fetchOfferings, fetchProcessorConfig, fetchProductBySlug, fetchProducts, fetchProductsPublic, fetchServices, fetchShippingRates, fetchUpcomingEvents, formatDate, formatDateRange, formatDateTime, formatPrice, formatTime, getOfferingUrl, getRelativeTimeUntil, getSpotsRemaining, isEventSoldOut, registerForEvent, useEventModal, validateAddress } from '../chunk-D63MUKZ6.mjs';
3
+ import '../chunk-4XPGGLVP.mjs';
4
+ //# sourceMappingURL=index.mjs.map
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -0,0 +1,107 @@
1
+ import { O as OfferingType, C as CommerceOffering } from '../types-CGlnp43R.mjs';
2
+
3
+ /**
4
+ * @sonordev/site-kit/commerce - Server-side utilities
5
+ *
6
+ * Helpers for server-side rendering and dynamic routes.
7
+ * Use in Next.js getStaticPaths, getStaticProps, or App Router.
8
+ *
9
+ * All data fetching goes through the Portal API.
10
+ */
11
+
12
+ interface ServerConfig {
13
+ apiUrl: string;
14
+ apiKey: string;
15
+ projectId: string;
16
+ }
17
+ /**
18
+ * Get all product slugs for static generation
19
+ *
20
+ * @example Next.js Pages Router
21
+ * export async function getStaticPaths() {
22
+ * const paths = await getProductPaths(config)
23
+ * return { paths, fallback: 'blocking' }
24
+ * }
25
+ */
26
+ declare function getProductPaths(config: ServerConfig): Promise<{
27
+ params: {
28
+ slug: string;
29
+ };
30
+ }[]>;
31
+ /**
32
+ * Get all event slugs for static generation
33
+ */
34
+ declare function getEventPaths(config: ServerConfig): Promise<{
35
+ params: {
36
+ slug: string;
37
+ };
38
+ }[]>;
39
+ /**
40
+ * Get all offering slugs for static generation (any type)
41
+ */
42
+ declare function getOfferingPaths(config: ServerConfig, type?: OfferingType | OfferingType[]): Promise<{
43
+ params: {
44
+ slug: string;
45
+ };
46
+ }[]>;
47
+ /**
48
+ * Fetch a single offering by slug (server-side)
49
+ *
50
+ * @example Next.js Pages Router
51
+ * export async function getStaticProps({ params }) {
52
+ * const product = await getOfferingBySlug(config, params.slug)
53
+ * if (!product) return { notFound: true }
54
+ * return { props: { product }, revalidate: 60 }
55
+ * }
56
+ */
57
+ declare function getOfferingBySlug(config: ServerConfig, slug: string): Promise<CommerceOffering | null>;
58
+ /**
59
+ * Fetch all offerings of a type (server-side)
60
+ */
61
+ declare function getOfferings(config: ServerConfig, options?: {
62
+ type?: OfferingType | OfferingType[];
63
+ category?: string;
64
+ limit?: number;
65
+ status?: string;
66
+ }): Promise<CommerceOffering[]>;
67
+ /**
68
+ * Fetch upcoming events (server-side)
69
+ */
70
+ declare function getUpcomingEvents(config: ServerConfig, options?: {
71
+ limit?: number;
72
+ category?: string;
73
+ }): Promise<CommerceOffering[]>;
74
+ /**
75
+ * Get next upcoming event (server-side)
76
+ */
77
+ declare function getNextEvent(config: ServerConfig, category?: string): Promise<CommerceOffering | null>;
78
+ /**
79
+ * Generate page metadata for an offering
80
+ *
81
+ * @example Next.js App Router
82
+ * export async function generateMetadata({ params }) {
83
+ * const product = await getOfferingBySlug(config, params.slug)
84
+ * return generateOfferingMetadata(product, 'https://example.com')
85
+ * }
86
+ */
87
+ declare function generateOfferingMetadata(offering: CommerceOffering | null, siteUrl: string): {
88
+ title: string;
89
+ description: string;
90
+ openGraph: {
91
+ title: string;
92
+ description: string;
93
+ images: string[];
94
+ type: string;
95
+ url: string;
96
+ };
97
+ } | null;
98
+ /**
99
+ * Create a server config for API calls
100
+ *
101
+ * @param apiUrl - Portal API URL (e.g., 'https://api.uptrademedia.com')
102
+ * @param apiKey - Project API key
103
+ * @param projectId - Project ID
104
+ */
105
+ declare function createServerConfig(apiUrl: string, apiKey: string, projectId: string): ServerConfig;
106
+
107
+ export { createServerConfig, generateOfferingMetadata, getEventPaths, getNextEvent, getOfferingBySlug, getOfferingPaths, getOfferings, getProductPaths, getUpcomingEvents };