@sonordev/site-kit 3.0.5 → 3.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 (215) hide show
  1. package/AGENTS.md +107 -0
  2. package/agent-manifest.json +377 -0
  3. package/dist/AnalyticsProvider-CD635CHQ.mjs +8 -0
  4. package/dist/{AnalyticsProvider-MLT26JRP.mjs.map → AnalyticsProvider-CD635CHQ.mjs.map} +1 -1
  5. package/dist/AnalyticsProvider-WK2Z6AIN.js +29 -0
  6. package/dist/{AnalyticsProvider-WTOGN7LV.js.map → AnalyticsProvider-WK2Z6AIN.js.map} +1 -1
  7. package/dist/BlogPostFaqSection-4AD2NIGG.js +13 -0
  8. package/dist/{BlogPostFaqSection-H556RV62.js.map → BlogPostFaqSection-4AD2NIGG.js.map} +1 -1
  9. package/dist/{BlogPostFaqSection-VSHOKKUD.mjs → BlogPostFaqSection-TU6YEC7P.mjs} +3 -3
  10. package/dist/{BlogPostFaqSection-VSHOKKUD.mjs.map → BlogPostFaqSection-TU6YEC7P.mjs.map} +1 -1
  11. package/dist/ChatWidget-AIOOZY6H.js +17 -0
  12. package/dist/{ChatWidget-MAL7FB4M.js.map → ChatWidget-AIOOZY6H.js.map} +1 -1
  13. package/dist/ChatWidget-UAAWDBNS.mjs +8 -0
  14. package/dist/{ChatWidget-QPZTPSPE.mjs.map → ChatWidget-UAAWDBNS.mjs.map} +1 -1
  15. package/dist/EngageWidget-EZ5T6H3K.mjs +7 -0
  16. package/dist/{EngageWidget-IPBUA4DW.mjs.map → EngageWidget-EZ5T6H3K.mjs.map} +1 -1
  17. package/dist/EngageWidget-RWVWW56C.js +16 -0
  18. package/dist/{EngageWidget-N3CABK3L.js.map → EngageWidget-RWVWW56C.js.map} +1 -1
  19. package/dist/{SignalCore-4MDIJUAP.mjs → SignalCore-4B4RNYLV.mjs} +60 -47
  20. package/dist/SignalCore-4B4RNYLV.mjs.map +1 -0
  21. package/dist/{SignalCore-ZMFUE3N4.js → SignalCore-AECW2JFP.js} +60 -47
  22. package/dist/SignalCore-AECW2JFP.js.map +1 -0
  23. package/dist/SitemapSync-AICU4SSV.js +15 -0
  24. package/dist/{SitemapSync-FUCH6Y6J.js.map → SitemapSync-AICU4SSV.js.map} +1 -1
  25. package/dist/SitemapSync-CIZCAZXK.mjs +6 -0
  26. package/dist/{SitemapSync-LCSPRAWU.mjs.map → SitemapSync-CIZCAZXK.mjs.map} +1 -1
  27. package/dist/analytics/index.js +11 -9
  28. package/dist/analytics/index.mjs +4 -2
  29. package/dist/blog/index.js +12 -12
  30. package/dist/blog/index.mjs +2 -2
  31. package/dist/blog/server-ui.js +5 -5
  32. package/dist/blog/server-ui.mjs +1 -1
  33. package/dist/brand.css +8 -3
  34. package/dist/{chunk-QTWA44S3.mjs → chunk-2WYEJOGA.mjs} +7 -8
  35. package/dist/chunk-2WYEJOGA.mjs.map +1 -0
  36. package/dist/{chunk-AN4ATCYQ.mjs → chunk-45QHDA7Q.mjs} +3 -3
  37. package/dist/{chunk-AN4ATCYQ.mjs.map → chunk-45QHDA7Q.mjs.map} +1 -1
  38. package/dist/{chunk-RI6JZUAE.js → chunk-4FBV5BJW.js} +7 -8
  39. package/dist/chunk-4FBV5BJW.js.map +1 -0
  40. package/dist/{chunk-YJWKHCOB.js → chunk-4NTMIU6V.js} +13 -11
  41. package/dist/chunk-4NTMIU6V.js.map +1 -0
  42. package/dist/{chunk-YFGKIKXA.mjs → chunk-57QV6NIY.mjs} +3 -3
  43. package/dist/{chunk-YFGKIKXA.mjs.map → chunk-57QV6NIY.mjs.map} +1 -1
  44. package/dist/chunk-5OWZUNNE.js +102 -0
  45. package/dist/chunk-5OWZUNNE.js.map +1 -0
  46. package/dist/{chunk-EUDTPXUI.mjs → chunk-6HPNFWSC.mjs} +3 -3
  47. package/dist/{chunk-EUDTPXUI.mjs.map → chunk-6HPNFWSC.mjs.map} +1 -1
  48. package/dist/{chunk-FT5JNCD4.mjs → chunk-AB2VYIYU.mjs} +11 -11
  49. package/dist/{chunk-FT5JNCD4.mjs.map → chunk-AB2VYIYU.mjs.map} +1 -1
  50. package/dist/{chunk-I5TJIESQ.js → chunk-BMKZHXWQ.js} +11 -11
  51. package/dist/{chunk-I5TJIESQ.js.map → chunk-BMKZHXWQ.js.map} +1 -1
  52. package/dist/{chunk-KHFNPPOX.mjs → chunk-DSRPKUQI.mjs} +6 -6
  53. package/dist/{chunk-KHFNPPOX.mjs.map → chunk-DSRPKUQI.mjs.map} +1 -1
  54. package/dist/chunk-EAASMIWX.js +258 -0
  55. package/dist/chunk-EAASMIWX.js.map +1 -0
  56. package/dist/{chunk-T4QBSRA4.mjs → chunk-EIWRPGOK.mjs} +37 -60
  57. package/dist/chunk-EIWRPGOK.mjs.map +1 -0
  58. package/dist/{chunk-O7E6QVK3.js → chunk-GCDVKOSM.js} +3 -3
  59. package/dist/{chunk-O7E6QVK3.js.map → chunk-GCDVKOSM.js.map} +1 -1
  60. package/dist/{chunk-KMZ527EM.mjs → chunk-GN62H6EG.mjs} +34 -8
  61. package/dist/chunk-GN62H6EG.mjs.map +1 -0
  62. package/dist/{chunk-UJQYSVYV.js → chunk-GQF6QAQS.js} +4 -4
  63. package/dist/{chunk-UJQYSVYV.js.map → chunk-GQF6QAQS.js.map} +1 -1
  64. package/dist/{chunk-MLJXELPA.js → chunk-HAZN43I6.js} +60 -94
  65. package/dist/chunk-HAZN43I6.js.map +1 -0
  66. package/dist/chunk-LZSCCJ4O.mjs +253 -0
  67. package/dist/chunk-LZSCCJ4O.mjs.map +1 -0
  68. package/dist/{chunk-TCVHI3JP.mjs → chunk-N2HR2E4Z.mjs} +60 -92
  69. package/dist/chunk-N2HR2E4Z.mjs.map +1 -0
  70. package/dist/{chunk-VCWSSGCU.js → chunk-NAVDN4AE.js} +7 -7
  71. package/dist/{chunk-VCWSSGCU.js.map → chunk-NAVDN4AE.js.map} +1 -1
  72. package/dist/chunk-NDHFU4HV.mjs +97 -0
  73. package/dist/chunk-NDHFU4HV.mjs.map +1 -0
  74. package/dist/{chunk-PST3NOEM.mjs → chunk-O237KKCX.mjs} +4 -4
  75. package/dist/{chunk-PST3NOEM.mjs.map → chunk-O237KKCX.mjs.map} +1 -1
  76. package/dist/{chunk-5AESOLXS.mjs → chunk-OTY7EWET.mjs} +13 -11
  77. package/dist/chunk-OTY7EWET.mjs.map +1 -0
  78. package/dist/chunk-Q2NBD54V.js +69 -0
  79. package/dist/chunk-Q2NBD54V.js.map +1 -0
  80. package/dist/{chunk-DGHPOWLU.js → chunk-R5A64DCX.js} +8 -8
  81. package/dist/{chunk-DGHPOWLU.js.map → chunk-R5A64DCX.js.map} +1 -1
  82. package/dist/{chunk-3YQCPLGP.mjs → chunk-RFIWVH3D.mjs} +41 -79
  83. package/dist/chunk-RFIWVH3D.mjs.map +1 -0
  84. package/dist/{chunk-NNZDHLXN.js → chunk-S3YQGTBF.js} +35 -9
  85. package/dist/chunk-S3YQGTBF.js.map +1 -0
  86. package/dist/{chunk-IBDVZ6BF.js → chunk-SLWTG2LJ.js} +69 -74
  87. package/dist/chunk-SLWTG2LJ.js.map +1 -0
  88. package/dist/chunk-SN2O72UF.mjs +6 -0
  89. package/dist/chunk-SN2O72UF.mjs.map +1 -0
  90. package/dist/{chunk-65SMJBHW.mjs → chunk-T2DEEKVQ.mjs} +69 -74
  91. package/dist/chunk-T2DEEKVQ.mjs.map +1 -0
  92. package/dist/{chunk-3GCEFS73.js → chunk-TE3W5REY.js} +39 -62
  93. package/dist/chunk-TE3W5REY.js.map +1 -0
  94. package/dist/{chunk-IFVMZFNT.js → chunk-TVCCZ7NR.js} +41 -79
  95. package/dist/chunk-TVCCZ7NR.js.map +1 -0
  96. package/dist/{chunk-EBJ4S5DU.js → chunk-UT2CF4FC.js} +4 -4
  97. package/dist/{chunk-EBJ4S5DU.js.map → chunk-UT2CF4FC.js.map} +1 -1
  98. package/dist/chunk-V6NVBFEP.js +54 -0
  99. package/dist/chunk-V6NVBFEP.js.map +1 -0
  100. package/dist/chunk-WRZQS7O4.js +8 -0
  101. package/dist/chunk-WRZQS7O4.js.map +1 -0
  102. package/dist/chunk-WZHWWOUC.js +51 -0
  103. package/dist/chunk-WZHWWOUC.js.map +1 -0
  104. package/dist/chunk-X3S6KXAP.mjs +47 -0
  105. package/dist/chunk-X3S6KXAP.mjs.map +1 -0
  106. package/dist/chunk-X4OPM3SK.mjs +43 -0
  107. package/dist/chunk-X4OPM3SK.mjs.map +1 -0
  108. package/dist/chunk-ZPLN537Q.mjs +57 -0
  109. package/dist/chunk-ZPLN537Q.mjs.map +1 -0
  110. package/dist/cli/index.js +8986 -1276
  111. package/dist/cli/index.js.map +1 -1
  112. package/dist/cli/index.mjs +8972 -1280
  113. package/dist/cli/index.mjs.map +1 -1
  114. package/dist/commerce/index.js +50 -48
  115. package/dist/commerce/index.mjs +5 -3
  116. package/dist/engage/index.js +11 -8
  117. package/dist/engage/index.js.map +1 -1
  118. package/dist/engage/index.mjs +8 -5
  119. package/dist/engage/index.mjs.map +1 -1
  120. package/dist/fleet/contract.d.mts +99 -0
  121. package/dist/fleet/contract.d.ts +99 -0
  122. package/dist/fleet/contract.js +53 -0
  123. package/dist/fleet/contract.js.map +1 -0
  124. package/dist/fleet/contract.mjs +4 -0
  125. package/dist/fleet/contract.mjs.map +1 -0
  126. package/dist/fleet/index.d.mts +89 -0
  127. package/dist/fleet/index.d.ts +89 -0
  128. package/dist/fleet/index.js +74 -0
  129. package/dist/fleet/index.js.map +1 -0
  130. package/dist/fleet/index.mjs +9 -0
  131. package/dist/fleet/index.mjs.map +1 -0
  132. package/dist/forms/contract.d.mts +69 -0
  133. package/dist/forms/contract.d.ts +69 -0
  134. package/dist/forms/contract.js +33 -0
  135. package/dist/forms/contract.js.map +1 -0
  136. package/dist/forms/contract.mjs +4 -0
  137. package/dist/forms/contract.mjs.map +1 -0
  138. package/dist/forms/index.js +21 -17
  139. package/dist/forms/index.js.map +1 -1
  140. package/dist/forms/index.mjs +14 -10
  141. package/dist/forms/index.mjs.map +1 -1
  142. package/dist/forms/styles.css +10 -8
  143. package/dist/images/index.js +10 -8
  144. package/dist/images/index.mjs +3 -1
  145. package/dist/index.js +98 -96
  146. package/dist/index.js.map +1 -1
  147. package/dist/index.mjs +9 -7
  148. package/dist/index.mjs.map +1 -1
  149. package/dist/layout/client.d.mts +8 -1
  150. package/dist/layout/client.d.ts +8 -1
  151. package/dist/layout/client.js +8 -3
  152. package/dist/layout/client.mjs +7 -2
  153. package/dist/layout/index.d.mts +7 -1
  154. package/dist/layout/index.d.ts +7 -1
  155. package/dist/layout/index.js +57 -4
  156. package/dist/layout/index.js.map +1 -1
  157. package/dist/layout/index.mjs +56 -3
  158. package/dist/layout/index.mjs.map +1 -1
  159. package/dist/maps/index.js +9 -18
  160. package/dist/maps/index.js.map +1 -1
  161. package/dist/maps/index.mjs +9 -18
  162. package/dist/maps/index.mjs.map +1 -1
  163. package/dist/portfolio/contract.d.mts +61 -0
  164. package/dist/portfolio/contract.d.ts +61 -0
  165. package/dist/portfolio/contract.js +43 -0
  166. package/dist/portfolio/contract.js.map +1 -0
  167. package/dist/portfolio/contract.mjs +38 -0
  168. package/dist/portfolio/contract.mjs.map +1 -0
  169. package/dist/seo/client.js +4 -2
  170. package/dist/seo/client.mjs +3 -1
  171. package/dist/seo/index.js +4 -2
  172. package/dist/seo/index.js.map +1 -1
  173. package/dist/seo/index.mjs +3 -1
  174. package/dist/seo/index.mjs.map +1 -1
  175. package/dist/seo-pages/contract.d.mts +62 -0
  176. package/dist/seo-pages/contract.d.ts +62 -0
  177. package/dist/seo-pages/contract.js +48 -0
  178. package/dist/seo-pages/contract.js.map +1 -0
  179. package/dist/seo-pages/contract.mjs +44 -0
  180. package/dist/seo-pages/contract.mjs.map +1 -0
  181. package/dist/signal/index.js +11 -11
  182. package/dist/signal/index.mjs +2 -2
  183. package/dist/sites/contract.d.mts +57 -0
  184. package/dist/sites/contract.d.ts +57 -0
  185. package/dist/sites/contract.js +37 -0
  186. package/dist/sites/contract.js.map +1 -0
  187. package/dist/sites/contract.mjs +4 -0
  188. package/dist/sites/contract.mjs.map +1 -0
  189. package/package.json +44 -4
  190. package/skills/site-kit/SKILL.md +66 -0
  191. package/dist/AnalyticsProvider-MLT26JRP.mjs +0 -6
  192. package/dist/AnalyticsProvider-WTOGN7LV.js +0 -27
  193. package/dist/BlogPostFaqSection-H556RV62.js +0 -13
  194. package/dist/ChatWidget-MAL7FB4M.js +0 -14
  195. package/dist/ChatWidget-QPZTPSPE.mjs +0 -5
  196. package/dist/EngageWidget-IPBUA4DW.mjs +0 -5
  197. package/dist/EngageWidget-N3CABK3L.js +0 -14
  198. package/dist/SignalCore-4MDIJUAP.mjs.map +0 -1
  199. package/dist/SignalCore-ZMFUE3N4.js.map +0 -1
  200. package/dist/SitemapSync-FUCH6Y6J.js +0 -13
  201. package/dist/SitemapSync-LCSPRAWU.mjs +0 -4
  202. package/dist/chunk-3GCEFS73.js.map +0 -1
  203. package/dist/chunk-3YQCPLGP.mjs.map +0 -1
  204. package/dist/chunk-5AESOLXS.mjs.map +0 -1
  205. package/dist/chunk-65SMJBHW.mjs.map +0 -1
  206. package/dist/chunk-IBDVZ6BF.js.map +0 -1
  207. package/dist/chunk-IFVMZFNT.js.map +0 -1
  208. package/dist/chunk-KMZ527EM.mjs.map +0 -1
  209. package/dist/chunk-MLJXELPA.js.map +0 -1
  210. package/dist/chunk-NNZDHLXN.js.map +0 -1
  211. package/dist/chunk-QTWA44S3.mjs.map +0 -1
  212. package/dist/chunk-RI6JZUAE.js.map +0 -1
  213. package/dist/chunk-T4QBSRA4.mjs.map +0 -1
  214. package/dist/chunk-TCVHI3JP.mjs.map +0 -1
  215. package/dist/chunk-YJWKHCOB.js.map +0 -1
@@ -1,194 +1,196 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunk3GCEFS73_js = require('../chunk-3GCEFS73.js');
5
- require('../chunk-EBJ4S5DU.js');
6
- require('../chunk-IBDVZ6BF.js');
4
+ var chunkTE3W5REY_js = require('../chunk-TE3W5REY.js');
5
+ require('../chunk-UT2CF4FC.js');
6
+ require('../chunk-SLWTG2LJ.js');
7
7
  require('../chunk-HMFFAUCD.js');
8
8
  require('../chunk-3BNFUMLL.js');
9
+ require('../chunk-EAASMIWX.js');
10
+ require('../chunk-WRZQS7O4.js');
9
11
  require('../chunk-ZSMWDLMK.js');
10
12
 
11
13
 
12
14
 
13
15
  Object.defineProperty(exports, "CalendarView", {
14
16
  enumerable: true,
15
- get: function () { return chunk3GCEFS73_js.CalendarView; }
17
+ get: function () { return chunkTE3W5REY_js.CalendarView; }
16
18
  });
17
19
  Object.defineProperty(exports, "CheckoutForm", {
18
20
  enumerable: true,
19
- get: function () { return chunk3GCEFS73_js.CheckoutForm; }
21
+ get: function () { return chunkTE3W5REY_js.CheckoutForm; }
20
22
  });
21
23
  Object.defineProperty(exports, "EventCalendar", {
22
24
  enumerable: true,
23
- get: function () { return chunk3GCEFS73_js.EventCalendar; }
25
+ get: function () { return chunkTE3W5REY_js.EventCalendar; }
24
26
  });
25
27
  Object.defineProperty(exports, "EventCheckout", {
26
28
  enumerable: true,
27
- get: function () { return chunk3GCEFS73_js.EventCheckout; }
29
+ get: function () { return chunkTE3W5REY_js.EventCheckout; }
28
30
  });
29
31
  Object.defineProperty(exports, "EventEmbed", {
30
32
  enumerable: true,
31
- get: function () { return chunk3GCEFS73_js.EventEmbed; }
33
+ get: function () { return chunkTE3W5REY_js.EventEmbed; }
32
34
  });
33
35
  Object.defineProperty(exports, "EventModal", {
34
36
  enumerable: true,
35
- get: function () { return chunk3GCEFS73_js.EventModal; }
37
+ get: function () { return chunkTE3W5REY_js.EventModal; }
36
38
  });
37
39
  Object.defineProperty(exports, "EventTile", {
38
40
  enumerable: true,
39
- get: function () { return chunk3GCEFS73_js.EventTile; }
41
+ get: function () { return chunkTE3W5REY_js.EventTile; }
40
42
  });
41
43
  Object.defineProperty(exports, "EventsWidget", {
42
44
  enumerable: true,
43
- get: function () { return chunk3GCEFS73_js.EventsWidget; }
45
+ get: function () { return chunkTE3W5REY_js.EventsWidget; }
44
46
  });
45
47
  Object.defineProperty(exports, "OfferingCard", {
46
48
  enumerable: true,
47
- get: function () { return chunk3GCEFS73_js.OfferingCard; }
49
+ get: function () { return chunkTE3W5REY_js.OfferingCard; }
48
50
  });
49
51
  Object.defineProperty(exports, "OfferingList", {
50
52
  enumerable: true,
51
- get: function () { return chunk3GCEFS73_js.OfferingList; }
53
+ get: function () { return chunkTE3W5REY_js.OfferingList; }
52
54
  });
53
55
  Object.defineProperty(exports, "ProductDetail", {
54
56
  enumerable: true,
55
- get: function () { return chunk3GCEFS73_js.ProductDetail; }
57
+ get: function () { return chunkTE3W5REY_js.ProductDetail; }
56
58
  });
57
59
  Object.defineProperty(exports, "ProductEmbed", {
58
60
  enumerable: true,
59
- get: function () { return chunk3GCEFS73_js.ProductEmbed; }
61
+ get: function () { return chunkTE3W5REY_js.ProductEmbed; }
60
62
  });
61
63
  Object.defineProperty(exports, "ProductGrid", {
62
64
  enumerable: true,
63
- get: function () { return chunk3GCEFS73_js.ProductGrid; }
65
+ get: function () { return chunkTE3W5REY_js.ProductGrid; }
64
66
  });
65
67
  Object.defineProperty(exports, "ProductPage", {
66
68
  enumerable: true,
67
- get: function () { return chunk3GCEFS73_js.ProductPage; }
69
+ get: function () { return chunkTE3W5REY_js.ProductPage; }
68
70
  });
69
71
  Object.defineProperty(exports, "RegistrationForm", {
70
72
  enumerable: true,
71
- get: function () { return chunk3GCEFS73_js.RegistrationForm; }
73
+ get: function () { return chunkTE3W5REY_js.RegistrationForm; }
72
74
  });
73
75
  Object.defineProperty(exports, "SizeChart", {
74
76
  enumerable: true,
75
- get: function () { return chunk3GCEFS73_js.SizeChart; }
77
+ get: function () { return chunkTE3W5REY_js.SizeChart; }
76
78
  });
77
79
  Object.defineProperty(exports, "UpcomingEvents", {
78
80
  enumerable: true,
79
- get: function () { return chunk3GCEFS73_js.UpcomingEvents; }
81
+ get: function () { return chunkTE3W5REY_js.UpcomingEvents; }
80
82
  });
81
83
  Object.defineProperty(exports, "createCheckoutSession", {
82
84
  enumerable: true,
83
- get: function () { return chunk3GCEFS73_js.createCheckoutSession; }
85
+ get: function () { return chunkTE3W5REY_js.createCheckoutSession; }
84
86
  });
85
87
  Object.defineProperty(exports, "createPaymentIntent", {
86
88
  enumerable: true,
87
- get: function () { return chunk3GCEFS73_js.createPaymentIntent; }
89
+ get: function () { return chunkTE3W5REY_js.createPaymentIntent; }
88
90
  });
89
91
  Object.defineProperty(exports, "fetchActiveProcessor", {
90
92
  enumerable: true,
91
- get: function () { return chunk3GCEFS73_js.fetchActiveProcessor; }
93
+ get: function () { return chunkTE3W5REY_js.fetchActiveProcessor; }
92
94
  });
93
95
  Object.defineProperty(exports, "fetchCategories", {
94
96
  enumerable: true,
95
- get: function () { return chunk3GCEFS73_js.fetchCategories; }
97
+ get: function () { return chunkTE3W5REY_js.fetchCategories; }
96
98
  });
97
99
  Object.defineProperty(exports, "fetchLatestOffering", {
98
100
  enumerable: true,
99
- get: function () { return chunk3GCEFS73_js.fetchLatestOffering; }
101
+ get: function () { return chunkTE3W5REY_js.fetchLatestOffering; }
100
102
  });
101
103
  Object.defineProperty(exports, "fetchNextEvent", {
102
104
  enumerable: true,
103
- get: function () { return chunk3GCEFS73_js.fetchNextEvent; }
105
+ get: function () { return chunkTE3W5REY_js.fetchNextEvent; }
104
106
  });
105
107
  Object.defineProperty(exports, "fetchOffering", {
106
108
  enumerable: true,
107
- get: function () { return chunk3GCEFS73_js.fetchOffering; }
109
+ get: function () { return chunkTE3W5REY_js.fetchOffering; }
108
110
  });
109
111
  Object.defineProperty(exports, "fetchOfferings", {
110
112
  enumerable: true,
111
- get: function () { return chunk3GCEFS73_js.fetchOfferings; }
113
+ get: function () { return chunkTE3W5REY_js.fetchOfferings; }
112
114
  });
113
115
  Object.defineProperty(exports, "fetchProcessorConfig", {
114
116
  enumerable: true,
115
- get: function () { return chunk3GCEFS73_js.fetchProcessorConfig; }
117
+ get: function () { return chunkTE3W5REY_js.fetchProcessorConfig; }
116
118
  });
117
119
  Object.defineProperty(exports, "fetchProductBySlug", {
118
120
  enumerable: true,
119
- get: function () { return chunk3GCEFS73_js.fetchProductBySlug; }
121
+ get: function () { return chunkTE3W5REY_js.fetchProductBySlug; }
120
122
  });
121
123
  Object.defineProperty(exports, "fetchProducts", {
122
124
  enumerable: true,
123
- get: function () { return chunk3GCEFS73_js.fetchProducts; }
125
+ get: function () { return chunkTE3W5REY_js.fetchProducts; }
124
126
  });
125
127
  Object.defineProperty(exports, "fetchProductsPublic", {
126
128
  enumerable: true,
127
- get: function () { return chunk3GCEFS73_js.fetchProductsPublic; }
129
+ get: function () { return chunkTE3W5REY_js.fetchProductsPublic; }
128
130
  });
129
131
  Object.defineProperty(exports, "fetchServices", {
130
132
  enumerable: true,
131
- get: function () { return chunk3GCEFS73_js.fetchServices; }
133
+ get: function () { return chunkTE3W5REY_js.fetchServices; }
132
134
  });
133
135
  Object.defineProperty(exports, "fetchShippingRates", {
134
136
  enumerable: true,
135
- get: function () { return chunk3GCEFS73_js.fetchShippingRates; }
137
+ get: function () { return chunkTE3W5REY_js.fetchShippingRates; }
136
138
  });
137
139
  Object.defineProperty(exports, "fetchUpcomingEvents", {
138
140
  enumerable: true,
139
- get: function () { return chunk3GCEFS73_js.fetchUpcomingEvents; }
141
+ get: function () { return chunkTE3W5REY_js.fetchUpcomingEvents; }
140
142
  });
141
143
  Object.defineProperty(exports, "formatDate", {
142
144
  enumerable: true,
143
- get: function () { return chunk3GCEFS73_js.formatDate; }
145
+ get: function () { return chunkTE3W5REY_js.formatDate; }
144
146
  });
145
147
  Object.defineProperty(exports, "formatDateRange", {
146
148
  enumerable: true,
147
- get: function () { return chunk3GCEFS73_js.formatDateRange; }
149
+ get: function () { return chunkTE3W5REY_js.formatDateRange; }
148
150
  });
149
151
  Object.defineProperty(exports, "formatDateTime", {
150
152
  enumerable: true,
151
- get: function () { return chunk3GCEFS73_js.formatDateTime; }
153
+ get: function () { return chunkTE3W5REY_js.formatDateTime; }
152
154
  });
153
155
  Object.defineProperty(exports, "formatPrice", {
154
156
  enumerable: true,
155
- get: function () { return chunk3GCEFS73_js.formatPrice; }
157
+ get: function () { return chunkTE3W5REY_js.formatPrice; }
156
158
  });
157
159
  Object.defineProperty(exports, "formatTime", {
158
160
  enumerable: true,
159
- get: function () { return chunk3GCEFS73_js.formatTime; }
161
+ get: function () { return chunkTE3W5REY_js.formatTime; }
160
162
  });
161
163
  Object.defineProperty(exports, "getOfferingUrl", {
162
164
  enumerable: true,
163
- get: function () { return chunk3GCEFS73_js.getOfferingUrl; }
165
+ get: function () { return chunkTE3W5REY_js.getOfferingUrl; }
164
166
  });
165
167
  Object.defineProperty(exports, "getRelativeTimeUntil", {
166
168
  enumerable: true,
167
- get: function () { return chunk3GCEFS73_js.getRelativeTimeUntil; }
169
+ get: function () { return chunkTE3W5REY_js.getRelativeTimeUntil; }
168
170
  });
169
171
  Object.defineProperty(exports, "getSpotsRemaining", {
170
172
  enumerable: true,
171
- get: function () { return chunk3GCEFS73_js.getSpotsRemaining; }
173
+ get: function () { return chunkTE3W5REY_js.getSpotsRemaining; }
172
174
  });
173
175
  Object.defineProperty(exports, "isEventSoldOut", {
174
176
  enumerable: true,
175
- get: function () { return chunk3GCEFS73_js.isEventSoldOut; }
177
+ get: function () { return chunkTE3W5REY_js.isEventSoldOut; }
176
178
  });
177
179
  Object.defineProperty(exports, "registerForEvent", {
178
180
  enumerable: true,
179
- get: function () { return chunk3GCEFS73_js.registerForEvent; }
181
+ get: function () { return chunkTE3W5REY_js.registerForEvent; }
180
182
  });
181
183
  Object.defineProperty(exports, "useEventModal", {
182
184
  enumerable: true,
183
- get: function () { return chunk3GCEFS73_js.useEventModal; }
185
+ get: function () { return chunkTE3W5REY_js.useEventModal; }
184
186
  });
185
187
  Object.defineProperty(exports, "validateAddress", {
186
188
  enumerable: true,
187
- get: function () { return chunk3GCEFS73_js.validateAddress; }
189
+ get: function () { return chunkTE3W5REY_js.validateAddress; }
188
190
  });
189
191
  Object.defineProperty(exports, "validateDiscountCode", {
190
192
  enumerable: true,
191
- get: function () { return chunk3GCEFS73_js.validateDiscountCode; }
193
+ get: function () { return chunkTE3W5REY_js.validateDiscountCode; }
192
194
  });
193
195
  //# sourceMappingURL=index.js.map
194
196
  //# sourceMappingURL=index.js.map
@@ -1,9 +1,11 @@
1
1
  'use client';
2
- export { CalendarView, CheckoutForm, EventCalendar, EventCheckout, EventEmbed, EventModal, EventTile, EventsWidget, OfferingCard, OfferingList, ProductDetail, ProductEmbed, ProductGrid, ProductPage, RegistrationForm, SizeChart, UpcomingEvents, createCheckoutSession, createPaymentIntent, 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, validateDiscountCode } from '../chunk-T4QBSRA4.mjs';
3
- import '../chunk-AN4ATCYQ.mjs';
4
- import '../chunk-65SMJBHW.mjs';
2
+ export { CalendarView, CheckoutForm, EventCalendar, EventCheckout, EventEmbed, EventModal, EventTile, EventsWidget, OfferingCard, OfferingList, ProductDetail, ProductEmbed, ProductGrid, ProductPage, RegistrationForm, SizeChart, UpcomingEvents, createCheckoutSession, createPaymentIntent, 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, validateDiscountCode } from '../chunk-EIWRPGOK.mjs';
3
+ import '../chunk-45QHDA7Q.mjs';
4
+ import '../chunk-T2DEEKVQ.mjs';
5
5
  import '../chunk-3DPXOZAU.mjs';
6
6
  import '../chunk-EE6SFAZP.mjs';
7
+ import '../chunk-LZSCCJ4O.mjs';
8
+ import '../chunk-SN2O72UF.mjs';
7
9
  import '../chunk-4XPGGLVP.mjs';
8
10
  //# sourceMappingURL=index.mjs.map
9
11
  //# sourceMappingURL=index.mjs.map
@@ -1,10 +1,13 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkVCWSSGCU_js = require('../chunk-VCWSSGCU.js');
5
- var chunkYJWKHCOB_js = require('../chunk-YJWKHCOB.js');
6
- require('../chunk-MLJXELPA.js');
4
+ var chunkNAVDN4AE_js = require('../chunk-NAVDN4AE.js');
5
+ var chunk4NTMIU6V_js = require('../chunk-4NTMIU6V.js');
6
+ require('../chunk-HAZN43I6.js');
7
+ require('../chunk-V6NVBFEP.js');
7
8
  require('../chunk-3BNFUMLL.js');
9
+ require('../chunk-EAASMIWX.js');
10
+ require('../chunk-WRZQS7O4.js');
8
11
  require('../chunk-ZSMWDLMK.js');
9
12
 
10
13
  // src/engage/echo-config.ts
@@ -18,8 +21,8 @@ var SONOR_PUBLIC_ECHO_DEFAULTS = {
18
21
  "Can I migrate from HubSpot?",
19
22
  "How does the SEO module work?"
20
23
  ],
21
- brandColor: "#3b82f6",
22
- // blue-500 (overridden by --sk-primary CSS var or API brand_primary)
24
+ brandColor: "#2563eb",
25
+ // blue-600 (~5.2:1 on white, AA); overridden by --sk-primary CSS var or API brand_primary
23
26
  assistantName: "Echo"
24
27
  };
25
28
  function getEchoWidgetProps(config = SONOR_PUBLIC_ECHO_DEFAULTS) {
@@ -36,15 +39,15 @@ function getEchoWidgetProps(config = SONOR_PUBLIC_ECHO_DEFAULTS) {
36
39
 
37
40
  Object.defineProperty(exports, "ChatWidget", {
38
41
  enumerable: true,
39
- get: function () { return chunkVCWSSGCU_js.ChatWidget; }
42
+ get: function () { return chunkNAVDN4AE_js.ChatWidget; }
40
43
  });
41
44
  Object.defineProperty(exports, "DesignRenderer", {
42
45
  enumerable: true,
43
- get: function () { return chunkYJWKHCOB_js.DesignRenderer; }
46
+ get: function () { return chunk4NTMIU6V_js.DesignRenderer; }
44
47
  });
45
48
  Object.defineProperty(exports, "EngageWidget", {
46
49
  enumerable: true,
47
- get: function () { return chunkYJWKHCOB_js.EngageWidget; }
50
+ get: function () { return chunk4NTMIU6V_js.EngageWidget; }
48
51
  });
49
52
  exports.SONOR_PUBLIC_ECHO_DEFAULTS = SONOR_PUBLIC_ECHO_DEFAULTS;
50
53
  exports.getEchoWidgetProps = getEchoWidgetProps;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;;;;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.js","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#3b82f6', // blue-500 (overridden by --sk-primary CSS var or API brand_primary)\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.js","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#2563eb', // blue-600 (~5.2:1 on white, AA); overridden by --sk-primary CSS var or API brand_primary\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
@@ -1,8 +1,11 @@
1
1
  'use client';
2
- export { ChatWidget } from '../chunk-KHFNPPOX.mjs';
3
- export { DesignRenderer, EngageWidget } from '../chunk-5AESOLXS.mjs';
4
- import '../chunk-TCVHI3JP.mjs';
2
+ export { ChatWidget } from '../chunk-DSRPKUQI.mjs';
3
+ export { DesignRenderer, EngageWidget } from '../chunk-OTY7EWET.mjs';
4
+ import '../chunk-N2HR2E4Z.mjs';
5
+ import '../chunk-X3S6KXAP.mjs';
5
6
  import '../chunk-EE6SFAZP.mjs';
7
+ import '../chunk-LZSCCJ4O.mjs';
8
+ import '../chunk-SN2O72UF.mjs';
6
9
  import '../chunk-4XPGGLVP.mjs';
7
10
 
8
11
  // src/engage/echo-config.ts
@@ -16,8 +19,8 @@ var SONOR_PUBLIC_ECHO_DEFAULTS = {
16
19
  "Can I migrate from HubSpot?",
17
20
  "How does the SEO module work?"
18
21
  ],
19
- brandColor: "#3b82f6",
20
- // blue-500 (overridden by --sk-primary CSS var or API brand_primary)
22
+ brandColor: "#2563eb",
23
+ // blue-600 (~5.2:1 on white, AA); overridden by --sk-primary CSS var or API brand_primary
21
24
  assistantName: "Echo"
22
25
  };
23
26
  function getEchoWidgetProps(config = SONOR_PUBLIC_ECHO_DEFAULTS) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.mjs","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#3b82f6', // blue-500 (overridden by --sk-primary CSS var or API brand_primary)\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;;;;;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.mjs","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#2563eb', // blue-600 (~5.2:1 on white, AA); overridden by --sk-primary CSS var or API brand_primary\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * @sonordev/site-kit/fleet/contract — Fleet heartbeat wire contract (v1)
3
+ *
4
+ * Single source of truth for the heartbeat payload shape, shared by site-kit
5
+ * (send side) and sonor-api (ingest side) — the same pattern as
6
+ * `@sonordev/site-kit/llms/contract` and `@sonordev/site-kit/slots/contract`.
7
+ * Import THIS module (never the React component) from the Nest APIs.
8
+ *
9
+ * Why it exists: ~24+ client sites run site-kit at wildly drifted versions and
10
+ * the platform could not answer "which version / modules / key state is each
11
+ * site running" without shelling into every local repo. The heartbeat answers
12
+ * that from live traffic. It is fire-and-forget, deferred to idle (never in the
13
+ * hydration path), and carries NO visitor data — only the site's own build
14
+ * fingerprint. Project identity is resolved server-side from the x-api-key
15
+ * header, exactly like every other /api/public/* endpoint; sites never send
16
+ * project IDs.
17
+ *
18
+ * The x-sitekit-version header (set by shared/sonorFetch on every request)
19
+ * already gives the platform a passive "last seen version" for ALL traffic,
20
+ * including server-only module fetches. The heartbeat adds the things a header
21
+ * can't carry: the active module set and the host Next.js version.
22
+ */
23
+ /** Bump on breaking payload changes. Ingest accepts the current version. */
24
+ declare const FLEET_CONTRACT_VERSION = 1;
25
+ /**
26
+ * Client-observable site-kit modules — the set a site can honestly self-report
27
+ * from a client boot, because SiteKitClientProviders actually mounts them.
28
+ *
29
+ * Server-only modules (seo, blog, images, reputation, redirects, llms) are
30
+ * intentionally absent: they render on the server and cannot be observed from
31
+ * the browser. Their usage still surfaces passively through the
32
+ * x-sitekit-version header on their own server fetches.
33
+ */
34
+ type FleetModule = 'analytics' | 'engage' | 'signal' | 'sitemapSync' | 'forms' | 'commerce' | 'sync' | 'maps' | 'slots';
35
+ /** Canonical order — used to serialize equal module sets identically. */
36
+ declare const FLEET_MODULES: readonly FleetModule[];
37
+ /** Where a heartbeat originated. */
38
+ type FleetHeartbeatSource = 'client' | 'build';
39
+ /** Hard cap on modules accepted in one payload (junk guard). */
40
+ declare const FLEET_MODULES_MAX = 32;
41
+ /** Hard cap on the free-form version strings we accept. */
42
+ declare const FLEET_VERSION_MAX_LENGTH = 40;
43
+ /** Semver-ish shape. Non-matching values are stored as null, never rejected. */
44
+ declare const FLEET_VERSION_PATTERN: RegExp;
45
+ /** Max host length per RFC 1035. */
46
+ declare const FLEET_SITE_MAX_LENGTH = 253;
47
+ /**
48
+ * The heartbeat body a site POSTs to `/api/public/fleet/heartbeat`.
49
+ * All wire fields are snake_case to match the other contract modules and the
50
+ * agent-facing read endpoints.
51
+ */
52
+ interface FleetHeartbeatPayload {
53
+ contract_version: number;
54
+ /** SITE_KIT_VERSION at runtime, e.g. "3.2.0". */
55
+ kit_version: string;
56
+ /** Installed Next.js version if detectable, else null. */
57
+ next_version?: string | null;
58
+ /** Client-observable active modules — deduped, validated, canonical order. */
59
+ modules: FleetModule[];
60
+ /** Normalized lowercase host (multi-site sub-dimension; see CLAUDE.md). */
61
+ site?: string | null;
62
+ /** 'client' (runtime boot) or 'build' (CI/build step). Default 'client'. */
63
+ source?: FleetHeartbeatSource;
64
+ }
65
+ /** The ingest endpoint's response. `received_at` is server-stamped ISO 8601. */
66
+ interface FleetHeartbeatResponse {
67
+ ok: boolean;
68
+ contract_version: number;
69
+ received_at: string;
70
+ }
71
+ declare function isFleetModule(x: unknown): x is FleetModule;
72
+ /**
73
+ * Dedupe + validate a modules array: drop unknowns, cap length, emit in the
74
+ * canonical FLEET_MODULES order so equal sets always serialize identically.
75
+ */
76
+ declare function normalizeFleetModules(input: unknown): FleetModule[];
77
+ /** Coerce a version-ish string to a clean value or null (never throws). */
78
+ declare function sanitizeFleetVersion(raw: unknown): string | null;
79
+ /**
80
+ * Light client-side site normalization to the canonical host shape (lowercase,
81
+ * no protocol/path/port). sonor-api's IngestService.normalizeSite is the
82
+ * AUTHORITATIVE normalizer and re-runs on ingest — this just avoids sending
83
+ * obvious noise. Keep the two shapes aligned (see CLAUDE.md "site" convention).
84
+ */
85
+ declare function normalizeFleetSite(raw: unknown): string | null;
86
+ /**
87
+ * Build a validated heartbeat payload from loose inputs. Used by BOTH the
88
+ * client component and the build-time sender so the wire shape is produced in
89
+ * exactly one place (single source of truth for the heartbeat body).
90
+ */
91
+ declare function buildFleetHeartbeatPayload(input: {
92
+ kitVersion: string;
93
+ nextVersion?: string | null;
94
+ modules?: unknown;
95
+ site?: string | null;
96
+ source?: FleetHeartbeatSource;
97
+ }): FleetHeartbeatPayload;
98
+
99
+ export { FLEET_CONTRACT_VERSION, FLEET_MODULES, FLEET_MODULES_MAX, FLEET_SITE_MAX_LENGTH, FLEET_VERSION_MAX_LENGTH, FLEET_VERSION_PATTERN, type FleetHeartbeatPayload, type FleetHeartbeatResponse, type FleetHeartbeatSource, type FleetModule, buildFleetHeartbeatPayload, isFleetModule, normalizeFleetModules, normalizeFleetSite, sanitizeFleetVersion };
@@ -0,0 +1,99 @@
1
+ /**
2
+ * @sonordev/site-kit/fleet/contract — Fleet heartbeat wire contract (v1)
3
+ *
4
+ * Single source of truth for the heartbeat payload shape, shared by site-kit
5
+ * (send side) and sonor-api (ingest side) — the same pattern as
6
+ * `@sonordev/site-kit/llms/contract` and `@sonordev/site-kit/slots/contract`.
7
+ * Import THIS module (never the React component) from the Nest APIs.
8
+ *
9
+ * Why it exists: ~24+ client sites run site-kit at wildly drifted versions and
10
+ * the platform could not answer "which version / modules / key state is each
11
+ * site running" without shelling into every local repo. The heartbeat answers
12
+ * that from live traffic. It is fire-and-forget, deferred to idle (never in the
13
+ * hydration path), and carries NO visitor data — only the site's own build
14
+ * fingerprint. Project identity is resolved server-side from the x-api-key
15
+ * header, exactly like every other /api/public/* endpoint; sites never send
16
+ * project IDs.
17
+ *
18
+ * The x-sitekit-version header (set by shared/sonorFetch on every request)
19
+ * already gives the platform a passive "last seen version" for ALL traffic,
20
+ * including server-only module fetches. The heartbeat adds the things a header
21
+ * can't carry: the active module set and the host Next.js version.
22
+ */
23
+ /** Bump on breaking payload changes. Ingest accepts the current version. */
24
+ declare const FLEET_CONTRACT_VERSION = 1;
25
+ /**
26
+ * Client-observable site-kit modules — the set a site can honestly self-report
27
+ * from a client boot, because SiteKitClientProviders actually mounts them.
28
+ *
29
+ * Server-only modules (seo, blog, images, reputation, redirects, llms) are
30
+ * intentionally absent: they render on the server and cannot be observed from
31
+ * the browser. Their usage still surfaces passively through the
32
+ * x-sitekit-version header on their own server fetches.
33
+ */
34
+ type FleetModule = 'analytics' | 'engage' | 'signal' | 'sitemapSync' | 'forms' | 'commerce' | 'sync' | 'maps' | 'slots';
35
+ /** Canonical order — used to serialize equal module sets identically. */
36
+ declare const FLEET_MODULES: readonly FleetModule[];
37
+ /** Where a heartbeat originated. */
38
+ type FleetHeartbeatSource = 'client' | 'build';
39
+ /** Hard cap on modules accepted in one payload (junk guard). */
40
+ declare const FLEET_MODULES_MAX = 32;
41
+ /** Hard cap on the free-form version strings we accept. */
42
+ declare const FLEET_VERSION_MAX_LENGTH = 40;
43
+ /** Semver-ish shape. Non-matching values are stored as null, never rejected. */
44
+ declare const FLEET_VERSION_PATTERN: RegExp;
45
+ /** Max host length per RFC 1035. */
46
+ declare const FLEET_SITE_MAX_LENGTH = 253;
47
+ /**
48
+ * The heartbeat body a site POSTs to `/api/public/fleet/heartbeat`.
49
+ * All wire fields are snake_case to match the other contract modules and the
50
+ * agent-facing read endpoints.
51
+ */
52
+ interface FleetHeartbeatPayload {
53
+ contract_version: number;
54
+ /** SITE_KIT_VERSION at runtime, e.g. "3.2.0". */
55
+ kit_version: string;
56
+ /** Installed Next.js version if detectable, else null. */
57
+ next_version?: string | null;
58
+ /** Client-observable active modules — deduped, validated, canonical order. */
59
+ modules: FleetModule[];
60
+ /** Normalized lowercase host (multi-site sub-dimension; see CLAUDE.md). */
61
+ site?: string | null;
62
+ /** 'client' (runtime boot) or 'build' (CI/build step). Default 'client'. */
63
+ source?: FleetHeartbeatSource;
64
+ }
65
+ /** The ingest endpoint's response. `received_at` is server-stamped ISO 8601. */
66
+ interface FleetHeartbeatResponse {
67
+ ok: boolean;
68
+ contract_version: number;
69
+ received_at: string;
70
+ }
71
+ declare function isFleetModule(x: unknown): x is FleetModule;
72
+ /**
73
+ * Dedupe + validate a modules array: drop unknowns, cap length, emit in the
74
+ * canonical FLEET_MODULES order so equal sets always serialize identically.
75
+ */
76
+ declare function normalizeFleetModules(input: unknown): FleetModule[];
77
+ /** Coerce a version-ish string to a clean value or null (never throws). */
78
+ declare function sanitizeFleetVersion(raw: unknown): string | null;
79
+ /**
80
+ * Light client-side site normalization to the canonical host shape (lowercase,
81
+ * no protocol/path/port). sonor-api's IngestService.normalizeSite is the
82
+ * AUTHORITATIVE normalizer and re-runs on ingest — this just avoids sending
83
+ * obvious noise. Keep the two shapes aligned (see CLAUDE.md "site" convention).
84
+ */
85
+ declare function normalizeFleetSite(raw: unknown): string | null;
86
+ /**
87
+ * Build a validated heartbeat payload from loose inputs. Used by BOTH the
88
+ * client component and the build-time sender so the wire shape is produced in
89
+ * exactly one place (single source of truth for the heartbeat body).
90
+ */
91
+ declare function buildFleetHeartbeatPayload(input: {
92
+ kitVersion: string;
93
+ nextVersion?: string | null;
94
+ modules?: unknown;
95
+ site?: string | null;
96
+ source?: FleetHeartbeatSource;
97
+ }): FleetHeartbeatPayload;
98
+
99
+ export { FLEET_CONTRACT_VERSION, FLEET_MODULES, FLEET_MODULES_MAX, FLEET_SITE_MAX_LENGTH, FLEET_VERSION_MAX_LENGTH, FLEET_VERSION_PATTERN, type FleetHeartbeatPayload, type FleetHeartbeatResponse, type FleetHeartbeatSource, type FleetModule, buildFleetHeartbeatPayload, isFleetModule, normalizeFleetModules, normalizeFleetSite, sanitizeFleetVersion };
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var chunkQ2NBD54V_js = require('../chunk-Q2NBD54V.js');
4
+ require('../chunk-ZSMWDLMK.js');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "FLEET_CONTRACT_VERSION", {
9
+ enumerable: true,
10
+ get: function () { return chunkQ2NBD54V_js.FLEET_CONTRACT_VERSION; }
11
+ });
12
+ Object.defineProperty(exports, "FLEET_MODULES", {
13
+ enumerable: true,
14
+ get: function () { return chunkQ2NBD54V_js.FLEET_MODULES; }
15
+ });
16
+ Object.defineProperty(exports, "FLEET_MODULES_MAX", {
17
+ enumerable: true,
18
+ get: function () { return chunkQ2NBD54V_js.FLEET_MODULES_MAX; }
19
+ });
20
+ Object.defineProperty(exports, "FLEET_SITE_MAX_LENGTH", {
21
+ enumerable: true,
22
+ get: function () { return chunkQ2NBD54V_js.FLEET_SITE_MAX_LENGTH; }
23
+ });
24
+ Object.defineProperty(exports, "FLEET_VERSION_MAX_LENGTH", {
25
+ enumerable: true,
26
+ get: function () { return chunkQ2NBD54V_js.FLEET_VERSION_MAX_LENGTH; }
27
+ });
28
+ Object.defineProperty(exports, "FLEET_VERSION_PATTERN", {
29
+ enumerable: true,
30
+ get: function () { return chunkQ2NBD54V_js.FLEET_VERSION_PATTERN; }
31
+ });
32
+ Object.defineProperty(exports, "buildFleetHeartbeatPayload", {
33
+ enumerable: true,
34
+ get: function () { return chunkQ2NBD54V_js.buildFleetHeartbeatPayload; }
35
+ });
36
+ Object.defineProperty(exports, "isFleetModule", {
37
+ enumerable: true,
38
+ get: function () { return chunkQ2NBD54V_js.isFleetModule; }
39
+ });
40
+ Object.defineProperty(exports, "normalizeFleetModules", {
41
+ enumerable: true,
42
+ get: function () { return chunkQ2NBD54V_js.normalizeFleetModules; }
43
+ });
44
+ Object.defineProperty(exports, "normalizeFleetSite", {
45
+ enumerable: true,
46
+ get: function () { return chunkQ2NBD54V_js.normalizeFleetSite; }
47
+ });
48
+ Object.defineProperty(exports, "sanitizeFleetVersion", {
49
+ enumerable: true,
50
+ get: function () { return chunkQ2NBD54V_js.sanitizeFleetVersion; }
51
+ });
52
+ //# sourceMappingURL=contract.js.map
53
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"contract.js"}
@@ -0,0 +1,4 @@
1
+ export { FLEET_CONTRACT_VERSION, FLEET_MODULES, FLEET_MODULES_MAX, FLEET_SITE_MAX_LENGTH, FLEET_VERSION_MAX_LENGTH, FLEET_VERSION_PATTERN, buildFleetHeartbeatPayload, isFleetModule, normalizeFleetModules, normalizeFleetSite, sanitizeFleetVersion } from '../chunk-ZPLN537Q.mjs';
2
+ import '../chunk-4XPGGLVP.mjs';
3
+ //# sourceMappingURL=contract.mjs.map
4
+ //# sourceMappingURL=contract.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"contract.mjs"}