@sonordev/site-kit 4.2.2 → 4.2.4

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 (213) hide show
  1. package/agent-manifest.json +1 -1
  2. package/dist/AnalyticsProvider-HVPZPHZI.mjs +10 -0
  3. package/dist/{AnalyticsProvider-EQSG7FGL.mjs.map → AnalyticsProvider-HVPZPHZI.mjs.map} +1 -1
  4. package/dist/AnalyticsProvider-LFSSF7MQ.js +31 -0
  5. package/dist/{AnalyticsProvider-4BQIFRWP.js.map → AnalyticsProvider-LFSSF7MQ.js.map} +1 -1
  6. package/dist/ChatWidget-7E4PLIYQ.mjs +11 -0
  7. package/dist/{ChatWidget-ZTKWIKXR.mjs.map → ChatWidget-7E4PLIYQ.mjs.map} +1 -1
  8. package/dist/ChatWidget-RFVIYV5C.js +20 -0
  9. package/dist/{ChatWidget-EXJD6YVW.js.map → ChatWidget-RFVIYV5C.js.map} +1 -1
  10. package/dist/EngageWidget-LPMSXVT6.js +18 -0
  11. package/dist/{EngageWidget-HY523XM4.js.map → EngageWidget-LPMSXVT6.js.map} +1 -1
  12. package/dist/EngageWidget-N7EQGSSL.mjs +9 -0
  13. package/dist/{EngageWidget-BJLSXG2V.mjs.map → EngageWidget-N7EQGSSL.mjs.map} +1 -1
  14. package/dist/{FileField-5U4FYTLN.mjs → FileField-AS6TUTXA.mjs} +5 -5
  15. package/dist/{FileField-5U4FYTLN.mjs.map → FileField-AS6TUTXA.mjs.map} +1 -1
  16. package/dist/{FileField-FV46FKRM.js → FileField-Y7NOLT27.js} +6 -6
  17. package/dist/{FileField-FV46FKRM.js.map → FileField-Y7NOLT27.js.map} +1 -1
  18. package/dist/{FormSpotlight-W6BNVKNN.mjs → FormSpotlight-I6FEUYAA.mjs} +3 -3
  19. package/dist/{FormSpotlight-W6BNVKNN.mjs.map → FormSpotlight-I6FEUYAA.mjs.map} +1 -1
  20. package/dist/{FormSpotlight-TUHLSY3O.js → FormSpotlight-RMYOXT2T.js} +15 -15
  21. package/dist/{FormSpotlight-TUHLSY3O.js.map → FormSpotlight-RMYOXT2T.js.map} +1 -1
  22. package/dist/{FormStage-MNXNKSPP.js → FormStage-44OWEWZM.js} +13 -13
  23. package/dist/{FormStage-MNXNKSPP.js.map → FormStage-44OWEWZM.js.map} +1 -1
  24. package/dist/{FormStage-NKWP3C2S.mjs → FormStage-G3MUJMTC.mjs} +3 -3
  25. package/dist/{FormStage-NKWP3C2S.mjs.map → FormStage-G3MUJMTC.mjs.map} +1 -1
  26. package/dist/ManagedForm-LVBNVUZE.mjs +14 -0
  27. package/dist/{ManagedForm-M3XW66FH.mjs.map → ManagedForm-LVBNVUZE.mjs.map} +1 -1
  28. package/dist/ManagedForm-YC6WLYVJ.js +23 -0
  29. package/dist/{ManagedForm-K4UHRVYV.js.map → ManagedForm-YC6WLYVJ.js.map} +1 -1
  30. package/dist/{SignalCore-7PVCUG2S.js → SignalCore-AW5VDA4Y.js} +11 -11
  31. package/dist/{SignalCore-7PVCUG2S.js.map → SignalCore-AW5VDA4Y.js.map} +1 -1
  32. package/dist/{SignalCore-S6PCGTHS.mjs → SignalCore-DYBIG4JP.mjs} +5 -5
  33. package/dist/{SignalCore-S6PCGTHS.mjs.map → SignalCore-DYBIG4JP.mjs.map} +1 -1
  34. package/dist/SitemapSync-2JJOGL7D.mjs +8 -0
  35. package/dist/{SitemapSync-2HLGUZES.mjs.map → SitemapSync-2JJOGL7D.mjs.map} +1 -1
  36. package/dist/SitemapSync-S54TSZLM.js +17 -0
  37. package/dist/{SitemapSync-66HQ4SG2.js.map → SitemapSync-S54TSZLM.js.map} +1 -1
  38. package/dist/analytics/index.js +9 -9
  39. package/dist/analytics/index.mjs +4 -4
  40. package/dist/api-N5OLQXYN.js +202 -0
  41. package/dist/api-N5OLQXYN.js.map +1 -0
  42. package/dist/api-NTHZ6PAW.mjs +184 -0
  43. package/dist/api-NTHZ6PAW.mjs.map +1 -0
  44. package/dist/{chunk-3BXQP54K.js → chunk-2MFLOK2I.js} +3 -3
  45. package/dist/{chunk-3BXQP54K.js.map → chunk-2MFLOK2I.js.map} +1 -1
  46. package/dist/{chunk-SED7E3P5.mjs → chunk-2MLIU6OJ.mjs} +4 -4
  47. package/dist/{chunk-SED7E3P5.mjs.map → chunk-2MLIU6OJ.mjs.map} +1 -1
  48. package/dist/{chunk-OB6DNGYK.js → chunk-2XLWCYB3.js} +12 -12
  49. package/dist/{chunk-OB6DNGYK.js.map → chunk-2XLWCYB3.js.map} +1 -1
  50. package/dist/{chunk-2GUDSTNH.mjs → chunk-33OSUHPZ.mjs} +4 -4
  51. package/dist/{chunk-2GUDSTNH.mjs.map → chunk-33OSUHPZ.mjs.map} +1 -1
  52. package/dist/chunk-4JVFWTER.js +8 -0
  53. package/dist/{chunk-UUBW2NJZ.js.map → chunk-4JVFWTER.js.map} +1 -1
  54. package/dist/{chunk-55FJN7VQ.js → chunk-5K2CX5LK.js} +6 -6
  55. package/dist/{chunk-55FJN7VQ.js.map → chunk-5K2CX5LK.js.map} +1 -1
  56. package/dist/{chunk-W3QLA5MI.mjs → chunk-6ZQFCZPW.mjs} +3 -3
  57. package/dist/{chunk-W3QLA5MI.mjs.map → chunk-6ZQFCZPW.mjs.map} +1 -1
  58. package/dist/{chunk-UF33ENG6.js → chunk-A7O7IWL7.js} +3 -3
  59. package/dist/{chunk-UF33ENG6.js.map → chunk-A7O7IWL7.js.map} +1 -1
  60. package/dist/{chunk-7YVFFQWH.js → chunk-ARFWE2EL.js} +14 -14
  61. package/dist/{chunk-7YVFFQWH.js.map → chunk-ARFWE2EL.js.map} +1 -1
  62. package/dist/{chunk-LSW5QBW2.js → chunk-BDDTZJKC.js} +4 -4
  63. package/dist/{chunk-LSW5QBW2.js.map → chunk-BDDTZJKC.js.map} +1 -1
  64. package/dist/{chunk-YV2TG7JR.mjs → chunk-BJW6YR6W.mjs} +3 -3
  65. package/dist/{chunk-YV2TG7JR.mjs.map → chunk-BJW6YR6W.mjs.map} +1 -1
  66. package/dist/{chunk-ZXVMP6SY.mjs → chunk-C6CNCDIN.mjs} +3 -3
  67. package/dist/{chunk-ZXVMP6SY.mjs.map → chunk-C6CNCDIN.mjs.map} +1 -1
  68. package/dist/{chunk-HYRKVST7.js → chunk-C6HDI464.js} +14 -14
  69. package/dist/{chunk-HYRKVST7.js.map → chunk-C6HDI464.js.map} +1 -1
  70. package/dist/{chunk-DEPDYVUH.js → chunk-CLD3IE6D.js} +5 -5
  71. package/dist/{chunk-DEPDYVUH.js.map → chunk-CLD3IE6D.js.map} +1 -1
  72. package/dist/{chunk-WHHBOYAW.mjs → chunk-CPJA5XTO.mjs} +4 -4
  73. package/dist/{chunk-WHHBOYAW.mjs.map → chunk-CPJA5XTO.mjs.map} +1 -1
  74. package/dist/{chunk-YN5WYGHK.mjs → chunk-E3F6OOVQ.mjs} +3 -3
  75. package/dist/{chunk-YN5WYGHK.mjs.map → chunk-E3F6OOVQ.mjs.map} +1 -1
  76. package/dist/chunk-EFMPOC6L.mjs +6 -0
  77. package/dist/{chunk-NPCWPOCE.mjs.map → chunk-EFMPOC6L.mjs.map} +1 -1
  78. package/dist/{chunk-BEHHWRZM.mjs → chunk-FSSVIYQ7.mjs} +3 -3
  79. package/dist/{chunk-BEHHWRZM.mjs.map → chunk-FSSVIYQ7.mjs.map} +1 -1
  80. package/dist/{chunk-D6CPHVMV.mjs → chunk-HP7V2DI3.mjs} +3 -3
  81. package/dist/{chunk-D6CPHVMV.mjs.map → chunk-HP7V2DI3.mjs.map} +1 -1
  82. package/dist/{chunk-TWPLJ27S.js → chunk-ICJ7EU4Z.js} +7 -7
  83. package/dist/{chunk-TWPLJ27S.js.map → chunk-ICJ7EU4Z.js.map} +1 -1
  84. package/dist/{chunk-524SIFK7.js → chunk-JHOMOLZA.js} +12 -12
  85. package/dist/{chunk-524SIFK7.js.map → chunk-JHOMOLZA.js.map} +1 -1
  86. package/dist/{chunk-F46DCSUI.js → chunk-KDWKSL7U.js} +9 -9
  87. package/dist/{chunk-F46DCSUI.js.map → chunk-KDWKSL7U.js.map} +1 -1
  88. package/dist/{chunk-4MBD6PPV.js → chunk-KPSESCYA.js} +15 -15
  89. package/dist/{chunk-4MBD6PPV.js.map → chunk-KPSESCYA.js.map} +1 -1
  90. package/dist/{chunk-SS5S43I4.mjs → chunk-L5GUV4M7.mjs} +7 -7
  91. package/dist/{chunk-SS5S43I4.mjs.map → chunk-L5GUV4M7.mjs.map} +1 -1
  92. package/dist/{chunk-2LU7BV5K.js → chunk-LSNIDSLQ.js} +18 -18
  93. package/dist/{chunk-2LU7BV5K.js.map → chunk-LSNIDSLQ.js.map} +1 -1
  94. package/dist/{chunk-UIKGLLTU.js → chunk-LUXCT2NU.js} +4 -4
  95. package/dist/{chunk-UIKGLLTU.js.map → chunk-LUXCT2NU.js.map} +1 -1
  96. package/dist/{chunk-QQFWEHYU.js → chunk-NK6K4VHD.js} +4 -4
  97. package/dist/{chunk-QQFWEHYU.js.map → chunk-NK6K4VHD.js.map} +1 -1
  98. package/dist/{chunk-XMZQUC2J.js → chunk-OIY5O3SE.js} +8 -8
  99. package/dist/{chunk-XMZQUC2J.js.map → chunk-OIY5O3SE.js.map} +1 -1
  100. package/dist/{chunk-UEOGMRTL.js → chunk-QQCOIGLN.js} +8 -8
  101. package/dist/{chunk-UEOGMRTL.js.map → chunk-QQCOIGLN.js.map} +1 -1
  102. package/dist/{chunk-THBZCEA7.js → chunk-RH5WIBIA.js} +5 -5
  103. package/dist/{chunk-THBZCEA7.js.map → chunk-RH5WIBIA.js.map} +1 -1
  104. package/dist/{chunk-6TAXXKMX.js → chunk-SACGTFCK.js} +94 -4
  105. package/dist/chunk-SACGTFCK.js.map +1 -0
  106. package/dist/{chunk-DQO4UKFE.mjs → chunk-SRJSR6YP.mjs} +93 -5
  107. package/dist/chunk-SRJSR6YP.mjs.map +1 -0
  108. package/dist/{chunk-P37FFMOZ.mjs → chunk-SSRQHRZB.mjs} +8 -8
  109. package/dist/{chunk-P37FFMOZ.mjs.map → chunk-SSRQHRZB.mjs.map} +1 -1
  110. package/dist/{chunk-WNK2OK5G.mjs → chunk-SYR7YSB2.mjs} +3 -3
  111. package/dist/{chunk-WNK2OK5G.mjs.map → chunk-SYR7YSB2.mjs.map} +1 -1
  112. package/dist/{chunk-645TOMKQ.js → chunk-U7L7FW3K.js} +4 -4
  113. package/dist/{chunk-645TOMKQ.js.map → chunk-U7L7FW3K.js.map} +1 -1
  114. package/dist/{chunk-CM5QUX2T.mjs → chunk-UBSZ466T.mjs} +3 -3
  115. package/dist/{chunk-CM5QUX2T.mjs.map → chunk-UBSZ466T.mjs.map} +1 -1
  116. package/dist/{chunk-XFVI3SNM.mjs → chunk-UHVII7W7.mjs} +3 -3
  117. package/dist/{chunk-XFVI3SNM.mjs.map → chunk-UHVII7W7.mjs.map} +1 -1
  118. package/dist/{chunk-KJSYSRMD.mjs → chunk-ULV3DZ27.mjs} +3 -3
  119. package/dist/{chunk-KJSYSRMD.mjs.map → chunk-ULV3DZ27.mjs.map} +1 -1
  120. package/dist/{chunk-MOKM6STG.mjs → chunk-UVRB4SQU.mjs} +3 -3
  121. package/dist/{chunk-MOKM6STG.mjs.map → chunk-UVRB4SQU.mjs.map} +1 -1
  122. package/dist/{chunk-4E7NFYL5.mjs → chunk-V3HJLXAI.mjs} +3 -3
  123. package/dist/{chunk-4E7NFYL5.mjs.map → chunk-V3HJLXAI.mjs.map} +1 -1
  124. package/dist/{chunk-WARTV6ZP.mjs → chunk-WX6VKFHW.mjs} +4 -4
  125. package/dist/{chunk-WARTV6ZP.mjs.map → chunk-WX6VKFHW.mjs.map} +1 -1
  126. package/dist/{chunk-4SJITKBL.mjs → chunk-XKBADVXN.mjs} +3 -3
  127. package/dist/{chunk-4SJITKBL.mjs.map → chunk-XKBADVXN.mjs.map} +1 -1
  128. package/dist/{chunk-L4ZLL6TE.mjs → chunk-XLD6K3BV.mjs} +4 -4
  129. package/dist/{chunk-L4ZLL6TE.mjs.map → chunk-XLD6K3BV.mjs.map} +1 -1
  130. package/dist/{chunk-K7XOPTOE.mjs → chunk-XWBQLPTZ.mjs} +4 -4
  131. package/dist/{chunk-K7XOPTOE.mjs.map → chunk-XWBQLPTZ.mjs.map} +1 -1
  132. package/dist/{chunk-7723NZQW.mjs → chunk-YDOWCCE2.mjs} +4 -4
  133. package/dist/{chunk-7723NZQW.mjs.map → chunk-YDOWCCE2.mjs.map} +1 -1
  134. package/dist/{chunk-BUZSBUYJ.js → chunk-YHGMM2XF.js} +14 -14
  135. package/dist/{chunk-BUZSBUYJ.js.map → chunk-YHGMM2XF.js.map} +1 -1
  136. package/dist/{chunk-PLY5AP72.js → chunk-YZ6UYIXD.js} +3 -3
  137. package/dist/{chunk-PLY5AP72.js.map → chunk-YZ6UYIXD.js.map} +1 -1
  138. package/dist/{chunk-XBKNPBRB.js → chunk-ZJNIM4GQ.js} +15 -15
  139. package/dist/{chunk-XBKNPBRB.js.map → chunk-ZJNIM4GQ.js.map} +1 -1
  140. package/dist/cli/agent/checks.d.ts.map +1 -1
  141. package/dist/cli/commands/og.d.ts +46 -11
  142. package/dist/cli/commands/og.d.ts.map +1 -1
  143. package/dist/cli/index.js +529 -174
  144. package/dist/cli/index.js.map +1 -1
  145. package/dist/cli/index.mjs +527 -172
  146. package/dist/cli/index.mjs.map +1 -1
  147. package/dist/client/index.js +4 -4
  148. package/dist/client/index.mjs +3 -3
  149. package/dist/commerce/index.js +56 -56
  150. package/dist/commerce/index.mjs +5 -5
  151. package/dist/engage/index.js +10 -10
  152. package/dist/engage/index.mjs +7 -7
  153. package/dist/fleet/index.js +8 -8
  154. package/dist/fleet/index.mjs +4 -4
  155. package/dist/forms/index.js +16 -16
  156. package/dist/forms/index.mjs +9 -9
  157. package/dist/forms/server.js +10 -10
  158. package/dist/forms/server.mjs +8 -8
  159. package/dist/forms/static.js +7 -7
  160. package/dist/forms/static.mjs +6 -6
  161. package/dist/images/index.js +11 -11
  162. package/dist/images/index.mjs +4 -4
  163. package/dist/index.js +63 -63
  164. package/dist/index.mjs +9 -9
  165. package/dist/layout/client.js +8 -8
  166. package/dist/layout/client.mjs +7 -7
  167. package/dist/layout/index.js +10 -10
  168. package/dist/layout/index.mjs +8 -8
  169. package/dist/maps/index.js +5 -5
  170. package/dist/maps/index.mjs +3 -3
  171. package/dist/og/config.d.ts +46 -0
  172. package/dist/og/config.d.ts.map +1 -1
  173. package/dist/og/index.js +5 -5
  174. package/dist/og/index.mjs +1 -1
  175. package/dist/og/pages.d.ts +56 -0
  176. package/dist/og/pages.d.ts.map +1 -0
  177. package/dist/og/pages.test.d.ts +2 -0
  178. package/dist/og/pages.test.d.ts.map +1 -0
  179. package/dist/og/template.d.ts.map +1 -1
  180. package/dist/og/wiring.d.ts +56 -0
  181. package/dist/og/wiring.d.ts.map +1 -0
  182. package/dist/og/wiring.test.d.ts +2 -0
  183. package/dist/og/wiring.test.d.ts.map +1 -0
  184. package/dist/search/index.js +4 -4
  185. package/dist/search/index.mjs +3 -3
  186. package/dist/seo/client.js +5 -5
  187. package/dist/seo/client.mjs +4 -4
  188. package/dist/seo/index.js +5 -5
  189. package/dist/seo/index.mjs +4 -4
  190. package/dist/seo/register-sitemap-cli.js +1 -1
  191. package/dist/seo/register-sitemap-cli.mjs +1 -1
  192. package/dist/server/index.js +3 -3
  193. package/dist/server/index.mjs +2 -2
  194. package/dist/shared/version.d.ts +1 -1
  195. package/dist/signal/index.js +11 -11
  196. package/dist/signal/index.mjs +2 -2
  197. package/dist/sync/index.js +16 -16
  198. package/dist/sync/index.mjs +4 -4
  199. package/package.json +1 -1
  200. package/dist/AnalyticsProvider-4BQIFRWP.js +0 -31
  201. package/dist/AnalyticsProvider-EQSG7FGL.mjs +0 -10
  202. package/dist/ChatWidget-EXJD6YVW.js +0 -20
  203. package/dist/ChatWidget-ZTKWIKXR.mjs +0 -11
  204. package/dist/EngageWidget-BJLSXG2V.mjs +0 -9
  205. package/dist/EngageWidget-HY523XM4.js +0 -18
  206. package/dist/ManagedForm-K4UHRVYV.js +0 -23
  207. package/dist/ManagedForm-M3XW66FH.mjs +0 -14
  208. package/dist/SitemapSync-2HLGUZES.mjs +0 -8
  209. package/dist/SitemapSync-66HQ4SG2.js +0 -17
  210. package/dist/chunk-6TAXXKMX.js.map +0 -1
  211. package/dist/chunk-DQO4UKFE.mjs.map +0 -1
  212. package/dist/chunk-NPCWPOCE.mjs +0 -6
  213. package/dist/chunk-UUBW2NJZ.js +0 -8
@@ -58,6 +58,16 @@ export interface OgContent {
58
58
  /** Bottom bar segments, e.g. ['Give an hour', 'ludlowpto.org']. */
59
59
  bar?: string[];
60
60
  }
61
+ /**
62
+ * A per-route entry in `cards`. Layered over the derived card, so it only
63
+ * states what differs — including inside `content`: a route can override just
64
+ * the subtitle and keep the title Sonor derived. The runtime always merged
65
+ * field by field; this type used to demand a full OgContent, which forced
66
+ * casts in every site that used the documented pattern.
67
+ */
68
+ export type OgCardOverride = Partial<Omit<OgCardConfig, 'cards' | 'content'>> & {
69
+ content?: Partial<OgContent>;
70
+ };
61
71
  export interface OgCardConfig {
62
72
  theme: OgTheme;
63
73
  /** First font = display face, second (optional) = hand/accent face. */
@@ -76,6 +86,16 @@ export interface OgCardConfig {
76
86
  /** Content photo for the 'split' layout (also rendered in 'plate-left' when set, replacing the plate). */
77
87
  photo?: OgPhoto;
78
88
  content: OgContent;
89
+ /**
90
+ * Per-page overrides, keyed by route path (`/services/garage`) or its slug
91
+ * (`services-garage`). Every static route already gets its own card built
92
+ * from its managed title and description; this is for the handful worth
93
+ * writing by hand — a campaign landing page, the flagship service.
94
+ *
95
+ * Each entry is layered over the site card, so it only states what differs.
96
+ * Build-time only: never rendered as part of a card.
97
+ */
98
+ cards?: Record<string, OgCardOverride>;
79
99
  /**
80
100
  * MIDDLE escape hatch: keep the loader/renderer/verifier pipeline but
81
101
  * produce your own document. Receives the config and the same helpers the
@@ -98,4 +118,30 @@ export interface OgTemplateHelpers {
98
118
  export declare function defineOgCard(config: OgCardConfig): OgCardConfig;
99
119
  export declare const OG_WIDTH = 1200;
100
120
  export declare const OG_HEIGHT = 630;
121
+ /**
122
+ * Title type scale. The card opens at TITLE_MAX and the in-page fitter steps
123
+ * down until the copy column fits, stopping at TITLE_MIN.
124
+ *
125
+ * The floor is a legibility floor, not a layout one: below ~56px the headline
126
+ * stops reading at the ~300px thumbnail width platforms actually show. A card
127
+ * that would need to go under it is a card whose copy is too long, so the
128
+ * renderer reports that rather than shrinking into mush.
129
+ */
130
+ export declare const TITLE_MAX_PX = 104;
131
+ export declare const TITLE_MIN_PX = 56;
132
+ /**
133
+ * The attribute the in-page fitter writes its findings to, read back by
134
+ * `sonor-setup og` via Chrome's --dump-dom. Shared so the template and the CLI
135
+ * cannot drift on the name.
136
+ */
137
+ export declare const OG_REPORT_ATTR = "data-og-report";
138
+ /** What the in-page fitter reports back about a rendered card. */
139
+ export interface OgRenderReport {
140
+ /** Did everything land inside the frame, at or above the legibility floor? */
141
+ fits: boolean;
142
+ /** Final title size after fitting. Below TITLE_MAX means the copy ran long. */
143
+ titlePx: number;
144
+ /** Human-readable problems, each naming the element and the overflow. */
145
+ issues: string[];
146
+ }
101
147
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/og/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,OAAO;IACtB,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAA;IACf,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,MAAM;IACrB,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,OAAO;IACtB,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAA;IACX,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAA;IACd,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAA;IACvD,0GAA0G;IAC1G,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,SAAS,CAAA;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,KAAK,MAAM,CAAA;IACvE,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAE/D;AAED,eAAO,MAAM,QAAQ,OAAO,CAAA;AAC5B,eAAO,MAAM,SAAS,MAAM,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/og/config.ts"],"names":[],"mappings":"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"}
package/dist/og/index.js CHANGED
@@ -1,25 +1,25 @@
1
1
  'use strict';
2
2
 
3
- var chunk6TAXXKMX_js = require('../chunk-6TAXXKMX.js');
3
+ var chunkSACGTFCK_js = require('../chunk-SACGTFCK.js');
4
4
  require('../chunk-SNAQBZPT.js');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "OG_HEIGHT", {
9
9
  enumerable: true,
10
- get: function () { return chunk6TAXXKMX_js.OG_HEIGHT; }
10
+ get: function () { return chunkSACGTFCK_js.OG_HEIGHT; }
11
11
  });
12
12
  Object.defineProperty(exports, "OG_WIDTH", {
13
13
  enumerable: true,
14
- get: function () { return chunk6TAXXKMX_js.OG_WIDTH; }
14
+ get: function () { return chunkSACGTFCK_js.OG_WIDTH; }
15
15
  });
16
16
  Object.defineProperty(exports, "buildOgHtml", {
17
17
  enumerable: true,
18
- get: function () { return chunk6TAXXKMX_js.buildOgHtml; }
18
+ get: function () { return chunkSACGTFCK_js.buildOgHtml; }
19
19
  });
20
20
  Object.defineProperty(exports, "defineOgCard", {
21
21
  enumerable: true,
22
- get: function () { return chunk6TAXXKMX_js.defineOgCard; }
22
+ get: function () { return chunkSACGTFCK_js.defineOgCard; }
23
23
  });
24
24
  //# sourceMappingURL=index.js.map
25
25
  //# sourceMappingURL=index.js.map
package/dist/og/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { OG_HEIGHT, OG_WIDTH, buildOgHtml, defineOgCard } from '../chunk-DQO4UKFE.mjs';
1
+ export { OG_HEIGHT, OG_WIDTH, buildOgHtml, defineOgCard } from '../chunk-SRJSR6YP.mjs';
2
2
  import '../chunk-BEXTDHO4.mjs';
3
3
  //# sourceMappingURL=index.mjs.map
4
4
  //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @sonordev/site-kit/og — per-page card derivation.
3
+ *
4
+ * The site-wide card answers "what is this site". A per-page card answers
5
+ * "what is THIS page", which is what someone pasting a deep link is actually
6
+ * sharing. Every static route gets one by default.
7
+ *
8
+ * Copy comes from Sonor's managed metadata when a key is configured, because
9
+ * that is the same copy the page's <title> and description already use — the
10
+ * card and the SERP entry then say the same thing. Without a key (or when a
11
+ * lookup fails) the path itself is titled, which is worse copy but still a
12
+ * real, page-specific card rather than the site default.
13
+ *
14
+ * Everything else — theme, fonts, logo, photo, bar — is inherited from the
15
+ * site's own og.config.ts, so the whole set reads as one family.
16
+ */
17
+ import type { OgCardConfig } from './config';
18
+ /** A route to build a card for. */
19
+ export interface OgPageRoute {
20
+ /** URL path, e.g. `/services/garage`. */
21
+ path: string;
22
+ /** Managed title, if Sonor had one. */
23
+ title?: string;
24
+ /** Managed meta description, if Sonor had one. */
25
+ description?: string;
26
+ }
27
+ /** `/services/walk-in-closets` -> `Walk In Closets`. The no-managed-data path. */
28
+ export declare function titleFromPath(path: string): string;
29
+ /**
30
+ * The kicker for a page card: its parent section, so a deep link reads
31
+ * "SERVICES / Walk In Closets" rather than repeating the site name on every
32
+ * card. Falls back to the base card's kicker at the top level.
33
+ */
34
+ export declare function kickerFromPath(path: string, fallback?: string): string | undefined;
35
+ /**
36
+ * Keep a card subtitle to two readable lines, never a full meta description.
37
+ *
38
+ * A meta description is written for a SERP row and runs to ~155 characters; at
39
+ * card size that is four lines crowding the bottom bar. This trims to the first
40
+ * sentence when there is one, and otherwise cuts on a word boundary.
41
+ */
42
+ export declare function clampSubtitle(text: string | undefined, max?: number): string | undefined;
43
+ /**
44
+ * File-safe name for a route's card: `/services/garage` -> `services-garage`,
45
+ * `/` -> `home`. Deterministic, so the generator and anything reading the
46
+ * output agree without a manifest.
47
+ */
48
+ export declare function slugForPath(path: string): string;
49
+ /**
50
+ * Build a page's card config by layering its copy over the site's card.
51
+ *
52
+ * `cards` in og.config.ts wins over everything derived here, so a site can
53
+ * hand-write the two or three cards that matter and let the rest be generated.
54
+ */
55
+ export declare function pageCardConfig(base: OgCardConfig, route: OgPageRoute, brand?: string): OgCardConfig;
56
+ //# sourceMappingURL=pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/og/pages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE5C,mCAAmC;AACnC,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAiBD,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOlD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOlF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,SAAM,GAAG,MAAM,GAAG,SAAS,CA2BrF;AAsBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,WAAW,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,YAAY,CAsCd"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pages.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.test.d.ts","sourceRoot":"","sources":["../../src/og/pages.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/og/template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,UAAU,CAAA;AA0DhE,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAkExD"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/og/template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,UAAU,CAAA;AAoKhE,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA2ExD"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @sonordev/site-kit/og — the single source of truth for "is this site's OG
3
+ * wiring correct".
4
+ *
5
+ * SINGLE SOURCE OF TRUTH, deliberately. This rule had two independent
6
+ * implementations — `sonor-setup og`'s post-render check and the doctor's
7
+ * `og.card` check — and BOTH were wrong the same way: they told a site to add
8
+ * `openGraph.images: ['/og.png']` to the root layout. Since per-page cards
9
+ * landed that advice actively breaks the site, because declared images override
10
+ * the per-page card files. Two copies of a rule that inverted is exactly why it
11
+ * lives in one function now. Never re-fork it.
12
+ *
13
+ * The rule itself, verified against real Next builds rather than assumed:
14
+ *
15
+ * 1. Config metadata BEATS the `opengraph-image` file convention. A route
16
+ * whose generateMetadata returns `openGraph.images` overrides its own card
17
+ * file. So a site with per-page cards must declare NO images anywhere —
18
+ * including `seo_pages.managed_og_image`, which site-kit serves into
19
+ * openGraph.images for every managed page.
20
+ * 2. File metadata does NOT cascade to child segments. A card at `services/`
21
+ * is not inherited by `services/[city]`; a dynamic segment needs its own.
22
+ * 3. A site with NO per-page cards still needs the layout to reference the
23
+ * site card, which is the original check and still correct in that mode.
24
+ *
25
+ * Node-only (fs/path): never import from browser or client code.
26
+ */
27
+ export interface OgWiringFacts {
28
+ /** `public/og.png` (or a sibling) exists. */
29
+ siteCard: boolean;
30
+ /** Absolute paths of every `opengraph-image.*` found anywhere under app/. */
31
+ pageCards: string[];
32
+ /** The root layout declares an `images: [...]` array. */
33
+ layoutDeclaresImages: boolean;
34
+ /** The root layout sets `twitter.card = 'summary_large_image'`. */
35
+ largeCard: boolean;
36
+ /** The root layout references the site card at all. */
37
+ referencesImage: boolean;
38
+ /** Root layout was found. */
39
+ layoutFound: boolean;
40
+ }
41
+ export interface OgWiringProblem {
42
+ message: string;
43
+ fix: string;
44
+ }
45
+ /** Every `opengraph-image.*` under the app directory, at any depth. */
46
+ export declare function findPageCards(cwd: string): string[];
47
+ /** Read the observable facts. No judgement here — that is `judgeOgWiring`. */
48
+ export declare function readOgWiring(cwd: string): OgWiringFacts;
49
+ /**
50
+ * Turn the facts into problems, in the order that matters most. Empty array
51
+ * means the wiring is right.
52
+ */
53
+ export declare function judgeOgWiring(facts: OgWiringFacts): OgWiringProblem[];
54
+ /** Convenience: read + judge in one call. */
55
+ export declare function checkOgWiring(cwd: string): OgWiringProblem[];
56
+ //# sourceMappingURL=wiring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../../src/og/wiring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAA;IACjB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,yDAAyD;IACzD,oBAAoB,EAAE,OAAO,CAAA;IAC7B,mEAAmE;IACnE,SAAS,EAAE,OAAO,CAAA;IAClB,uDAAuD;IACvD,eAAe,EAAE,OAAO,CAAA;IACxB,6BAA6B;IAC7B,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;CACZ;AAaD,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBnD;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAyBvD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,EAAE,CA2CrE;AAED,6CAA6C;AAC7C,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CAE5D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=wiring.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wiring.test.d.ts","sourceRoot":"","sources":["../../src/og/wiring.test.ts"],"names":[],"mappings":""}
@@ -2,9 +2,9 @@
2
2
  'use strict';
3
3
 
4
4
  var chunkG2WC3CXW_js = require('../chunk-G2WC3CXW.js');
5
- var chunkXBKNPBRB_js = require('../chunk-XBKNPBRB.js');
6
- require('../chunk-QQFWEHYU.js');
7
- require('../chunk-UUBW2NJZ.js');
5
+ var chunkZJNIM4GQ_js = require('../chunk-ZJNIM4GQ.js');
6
+ require('../chunk-NK6K4VHD.js');
7
+ require('../chunk-4JVFWTER.js');
8
8
  require('../chunk-SNAQBZPT.js');
9
9
  var react = require('react');
10
10
  var jsxRuntime = require('react/jsx-runtime');
@@ -39,7 +39,7 @@ function useSiteSearch(options = {}) {
39
39
  const apiUrl = typeof window !== "undefined" ? window.__SITE_KIT_API_URL__ || "https://api.sonor.io" : "https://api.sonor.io";
40
40
  const apiKey = typeof window !== "undefined" ? window.__SITE_KIT_API_KEY__ : void 0;
41
41
  const resolvedSite = site ?? (typeof window !== "undefined" ? window.__SITE_KIT_SITE__ : void 0);
42
- const res = await chunkXBKNPBRB_js.sonorFetch(
42
+ const res = await chunkZJNIM4GQ_js.sonorFetch(
43
43
  `${apiUrl}${chunkG2WC3CXW_js.SEARCH_ENDPOINT}`,
44
44
  {
45
45
  method: "POST",
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  import { SEARCH_ENDPOINT } from '../chunk-75A4KY4X.mjs';
3
3
  export { SEARCH_ENDPOINT } from '../chunk-75A4KY4X.mjs';
4
- import { sonorFetch } from '../chunk-K7XOPTOE.mjs';
5
- import '../chunk-BEHHWRZM.mjs';
6
- import '../chunk-NPCWPOCE.mjs';
4
+ import { sonorFetch } from '../chunk-XWBQLPTZ.mjs';
5
+ import '../chunk-FSSVIYQ7.mjs';
6
+ import '../chunk-EFMPOC6L.mjs';
7
7
  import '../chunk-BEXTDHO4.mjs';
8
8
  import { useState, useRef, useCallback, useEffect } from 'react';
9
9
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,18 +1,18 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkDEPDYVUH_js = require('../chunk-DEPDYVUH.js');
4
+ var chunkCLD3IE6D_js = require('../chunk-CLD3IE6D.js');
5
5
  require('../chunk-JEOKDUPQ.js');
6
- require('../chunk-XBKNPBRB.js');
7
- require('../chunk-QQFWEHYU.js');
8
- require('../chunk-UUBW2NJZ.js');
6
+ require('../chunk-ZJNIM4GQ.js');
7
+ require('../chunk-NK6K4VHD.js');
8
+ require('../chunk-4JVFWTER.js');
9
9
  require('../chunk-SNAQBZPT.js');
10
10
 
11
11
 
12
12
 
13
13
  Object.defineProperty(exports, "SitemapSync", {
14
14
  enumerable: true,
15
- get: function () { return chunkDEPDYVUH_js.SitemapSync; }
15
+ get: function () { return chunkCLD3IE6D_js.SitemapSync; }
16
16
  });
17
17
  //# sourceMappingURL=client.js.map
18
18
  //# sourceMappingURL=client.js.map
@@ -1,9 +1,9 @@
1
1
  'use client';
2
- export { SitemapSync } from '../chunk-4SJITKBL.mjs';
2
+ export { SitemapSync } from '../chunk-XKBADVXN.mjs';
3
3
  import '../chunk-QJU6HBSK.mjs';
4
- import '../chunk-K7XOPTOE.mjs';
5
- import '../chunk-BEHHWRZM.mjs';
6
- import '../chunk-NPCWPOCE.mjs';
4
+ import '../chunk-XWBQLPTZ.mjs';
5
+ import '../chunk-FSSVIYQ7.mjs';
6
+ import '../chunk-EFMPOC6L.mjs';
7
7
  import '../chunk-BEXTDHO4.mjs';
8
8
  //# sourceMappingURL=client.mjs.map
9
9
  //# sourceMappingURL=client.mjs.map
package/dist/seo/index.js CHANGED
@@ -3,14 +3,14 @@
3
3
  var chunkDV2LJYFD_js = require('../chunk-DV2LJYFD.js');
4
4
  var chunkH6AU3WKF_js = require('../chunk-H6AU3WKF.js');
5
5
  var chunkJ7QI3GDX_js = require('../chunk-J7QI3GDX.js');
6
- var chunkDEPDYVUH_js = require('../chunk-DEPDYVUH.js');
6
+ var chunkCLD3IE6D_js = require('../chunk-CLD3IE6D.js');
7
7
  var chunkA624YYDG_js = require('../chunk-A624YYDG.js');
8
8
  var chunkQCZBXG7G_js = require('../chunk-QCZBXG7G.js');
9
9
  require('../chunk-QPIKPWAZ.js');
10
10
  require('../chunk-JEOKDUPQ.js');
11
- require('../chunk-XBKNPBRB.js');
12
- require('../chunk-QQFWEHYU.js');
13
- require('../chunk-UUBW2NJZ.js');
11
+ require('../chunk-ZJNIM4GQ.js');
12
+ require('../chunk-NK6K4VHD.js');
13
+ require('../chunk-4JVFWTER.js');
14
14
  require('../chunk-SNAQBZPT.js');
15
15
  var react = require('react');
16
16
  var jsxRuntime = require('react/jsx-runtime');
@@ -687,7 +687,7 @@ Object.defineProperty(exports, "ManagedScripts", {
687
687
  });
688
688
  Object.defineProperty(exports, "SitemapSync", {
689
689
  enumerable: true,
690
- get: function () { return chunkDEPDYVUH_js.SitemapSync; }
690
+ get: function () { return chunkCLD3IE6D_js.SitemapSync; }
691
691
  });
692
692
  Object.defineProperty(exports, "generateSitemap", {
693
693
  enumerable: true,
@@ -1,16 +1,16 @@
1
1
  export { ManagedNoScripts, ManagedScripts } from '../chunk-6PJTLBRR.mjs';
2
2
  import { pickManagedLlmSchemaForJsonLd } from '../chunk-PENNTSJE.mjs';
3
3
  import { safeJsonLd } from '../chunk-662YHKWW.mjs';
4
- export { SitemapSync } from '../chunk-4SJITKBL.mjs';
4
+ export { SitemapSync } from '../chunk-XKBADVXN.mjs';
5
5
  import { getManagedMetadata } from '../chunk-U2CJZ6O5.mjs';
6
6
  export { generateSitemap, getABVariant, getManagedMetadata, getManagedMetadataWithAB, getRedirect, getRobotsDirective, isIndexable } from '../chunk-U2CJZ6O5.mjs';
7
7
  import { getContentBlock, getSchemaMarkups, getSEOPageData, getEntityEnhancedSchema, getFAQData, getInternalLinks, getEntities } from '../chunk-2CHOHLB7.mjs';
8
8
  export { getABTest, getContentBlock, getEntities, getEntityEnhancedSchema, getFAQData, getInternalLinks, getManagedScripts, getPrimaryEntity, getRedirectData, getRobotsData, getSEOPageData, getSchemaMarkups, getSitemapEntries, getVisibilityScore, getVisibilitySummary, recordABImpression, registerSitemap } from '../chunk-2CHOHLB7.mjs';
9
9
  import '../chunk-UDBUK5ZJ.mjs';
10
10
  import '../chunk-QJU6HBSK.mjs';
11
- import '../chunk-K7XOPTOE.mjs';
12
- import '../chunk-BEHHWRZM.mjs';
13
- import '../chunk-NPCWPOCE.mjs';
11
+ import '../chunk-XWBQLPTZ.mjs';
12
+ import '../chunk-FSSVIYQ7.mjs';
13
+ import '../chunk-EFMPOC6L.mjs';
14
14
  import '../chunk-BEXTDHO4.mjs';
15
15
  import { cache, Suspense } from 'react';
16
16
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  'use strict';
3
3
 
4
- var chunkLOS5D6B3_js = require('../chunk-LOS5D6B3.js');
5
4
  var chunkNN2YE5WT_js = require('../chunk-NN2YE5WT.js');
5
+ var chunkLOS5D6B3_js = require('../chunk-LOS5D6B3.js');
6
6
  var chunkJEOKDUPQ_js = require('../chunk-JEOKDUPQ.js');
7
7
  var chunkSNAQBZPT_js = require('../chunk-SNAQBZPT.js');
8
8
  var path = require('path');
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { findSitemapRoute, findAppDirForDiscovery, discoverNextJsRoutes } from '../chunk-XIJ4F6IE.mjs';
3
2
  import { require_main } from '../chunk-NNZDWY3L.mjs';
3
+ import { findSitemapRoute, findAppDirForDiscovery, discoverNextJsRoutes } from '../chunk-XIJ4F6IE.mjs';
4
4
  import { inferPageType } from '../chunk-QJU6HBSK.mjs';
5
5
  import { __toESM } from '../chunk-BEXTDHO4.mjs';
6
6
  import path from 'path';
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunk645TOMKQ_js = require('../chunk-645TOMKQ.js');
3
+ var chunkU7L7FW3K_js = require('../chunk-U7L7FW3K.js');
4
4
  var chunkQPIKPWAZ_js = require('../chunk-QPIKPWAZ.js');
5
- require('../chunk-UUBW2NJZ.js');
5
+ require('../chunk-4JVFWTER.js');
6
6
  require('../chunk-SNAQBZPT.js');
7
7
 
8
8
 
9
9
 
10
10
  Object.defineProperty(exports, "resolveClientCredential", {
11
11
  enumerable: true,
12
- get: function () { return chunk645TOMKQ_js.resolveClientCredential; }
12
+ get: function () { return chunkU7L7FW3K_js.resolveClientCredential; }
13
13
  });
14
14
  Object.defineProperty(exports, "requireServerApiConfig", {
15
15
  enumerable: true,
@@ -1,6 +1,6 @@
1
- export { resolveClientCredential } from '../chunk-ZXVMP6SY.mjs';
1
+ export { resolveClientCredential } from '../chunk-C6CNCDIN.mjs';
2
2
  export { requireServerApiConfig, resolveApiOrigin, resolveServerApiConfig, serverApiFetch } from '../chunk-UDBUK5ZJ.mjs';
3
- import '../chunk-NPCWPOCE.mjs';
3
+ import '../chunk-EFMPOC6L.mjs';
4
4
  import '../chunk-BEXTDHO4.mjs';
5
5
  //# sourceMappingURL=index.mjs.map
6
6
  //# sourceMappingURL=index.mjs.map
@@ -7,5 +7,5 @@
7
7
  * it matches package.json at publish time, and version.test.ts asserts it in
8
8
  * dev, so it can't silently drift.
9
9
  */
10
- export declare const SITE_KIT_VERSION = "4.2.2";
10
+ export declare const SITE_KIT_VERSION = "4.2.4";
11
11
  //# sourceMappingURL=version.d.ts.map
@@ -1,47 +1,47 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkXMZQUC2J_js = require('../chunk-XMZQUC2J.js');
5
- var chunkPLY5AP72_js = require('../chunk-PLY5AP72.js');
4
+ var chunkOIY5O3SE_js = require('../chunk-OIY5O3SE.js');
5
+ var chunkYZ6UYIXD_js = require('../chunk-YZ6UYIXD.js');
6
6
  require('../chunk-SNAQBZPT.js');
7
7
 
8
8
 
9
9
 
10
10
  Object.defineProperty(exports, "ExperimentConversion", {
11
11
  enumerable: true,
12
- get: function () { return chunkXMZQUC2J_js.ExperimentConversion; }
12
+ get: function () { return chunkOIY5O3SE_js.ExperimentConversion; }
13
13
  });
14
14
  Object.defineProperty(exports, "SignalExperiment", {
15
15
  enumerable: true,
16
- get: function () { return chunkXMZQUC2J_js.SignalExperiment; }
16
+ get: function () { return chunkOIY5O3SE_js.SignalExperiment; }
17
17
  });
18
18
  Object.defineProperty(exports, "useExperimentVariant", {
19
19
  enumerable: true,
20
- get: function () { return chunkXMZQUC2J_js.useExperimentVariant; }
20
+ get: function () { return chunkOIY5O3SE_js.useExperimentVariant; }
21
21
  });
22
22
  Object.defineProperty(exports, "SignalBridge", {
23
23
  enumerable: true,
24
- get: function () { return chunkPLY5AP72_js.SignalBridge; }
24
+ get: function () { return chunkYZ6UYIXD_js.SignalBridge; }
25
25
  });
26
26
  Object.defineProperty(exports, "useSignal", {
27
27
  enumerable: true,
28
- get: function () { return chunkPLY5AP72_js.useSignal; }
28
+ get: function () { return chunkYZ6UYIXD_js.useSignal; }
29
29
  });
30
30
  Object.defineProperty(exports, "useSignalConfig", {
31
31
  enumerable: true,
32
- get: function () { return chunkPLY5AP72_js.useSignalConfig; }
32
+ get: function () { return chunkYZ6UYIXD_js.useSignalConfig; }
33
33
  });
34
34
  Object.defineProperty(exports, "useSignalEvent", {
35
35
  enumerable: true,
36
- get: function () { return chunkPLY5AP72_js.useSignalEvent; }
36
+ get: function () { return chunkYZ6UYIXD_js.useSignalEvent; }
37
37
  });
38
38
  Object.defineProperty(exports, "useSignalExperiment", {
39
39
  enumerable: true,
40
- get: function () { return chunkPLY5AP72_js.useSignalExperiment; }
40
+ get: function () { return chunkYZ6UYIXD_js.useSignalExperiment; }
41
41
  });
42
42
  Object.defineProperty(exports, "useSignalOutcome", {
43
43
  enumerable: true,
44
- get: function () { return chunkPLY5AP72_js.useSignalOutcome; }
44
+ get: function () { return chunkYZ6UYIXD_js.useSignalOutcome; }
45
45
  });
46
46
  //# sourceMappingURL=index.js.map
47
47
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- export { ExperimentConversion, SignalExperiment, useExperimentVariant } from '../chunk-4E7NFYL5.mjs';
3
- export { SignalBridge, useSignal, useSignalConfig, useSignalEvent, useSignalExperiment, useSignalOutcome } from '../chunk-YV2TG7JR.mjs';
2
+ export { ExperimentConversion, SignalExperiment, useExperimentVariant } from '../chunk-V3HJLXAI.mjs';
3
+ export { SignalBridge, useSignal, useSignalConfig, useSignalEvent, useSignalExperiment, useSignalOutcome } from '../chunk-BJW6YR6W.mjs';
4
4
  import '../chunk-BEXTDHO4.mjs';
5
5
  //# sourceMappingURL=index.mjs.map
6
6
  //# sourceMappingURL=index.mjs.map
@@ -1,60 +1,60 @@
1
1
  'use strict';
2
2
 
3
- var chunkF46DCSUI_js = require('../chunk-F46DCSUI.js');
4
- require('../chunk-XBKNPBRB.js');
5
- require('../chunk-QQFWEHYU.js');
6
- require('../chunk-UUBW2NJZ.js');
3
+ var chunkKDWKSL7U_js = require('../chunk-KDWKSL7U.js');
4
+ require('../chunk-ZJNIM4GQ.js');
5
+ require('../chunk-NK6K4VHD.js');
6
+ require('../chunk-4JVFWTER.js');
7
7
  require('../chunk-SNAQBZPT.js');
8
8
 
9
9
 
10
10
 
11
11
  Object.defineProperty(exports, "BookingWidget", {
12
12
  enumerable: true,
13
- get: function () { return chunkF46DCSUI_js.BookingWidget; }
13
+ get: function () { return chunkKDWKSL7U_js.BookingWidget; }
14
14
  });
15
15
  Object.defineProperty(exports, "createBooking", {
16
16
  enumerable: true,
17
- get: function () { return chunkF46DCSUI_js.createBooking; }
17
+ get: function () { return chunkKDWKSL7U_js.createBooking; }
18
18
  });
19
19
  Object.defineProperty(exports, "createSlotHold", {
20
20
  enumerable: true,
21
- get: function () { return chunkF46DCSUI_js.createSlotHold; }
21
+ get: function () { return chunkKDWKSL7U_js.createSlotHold; }
22
22
  });
23
23
  Object.defineProperty(exports, "detectTimezone", {
24
24
  enumerable: true,
25
- get: function () { return chunkF46DCSUI_js.detectTimezone; }
25
+ get: function () { return chunkKDWKSL7U_js.detectTimezone; }
26
26
  });
27
27
  Object.defineProperty(exports, "fetchAvailability", {
28
28
  enumerable: true,
29
- get: function () { return chunkF46DCSUI_js.fetchAvailability; }
29
+ get: function () { return chunkKDWKSL7U_js.fetchAvailability; }
30
30
  });
31
31
  Object.defineProperty(exports, "fetchAvailableDates", {
32
32
  enumerable: true,
33
- get: function () { return chunkF46DCSUI_js.fetchAvailableDates; }
33
+ get: function () { return chunkKDWKSL7U_js.fetchAvailableDates; }
34
34
  });
35
35
  Object.defineProperty(exports, "fetchBookingTypeDetails", {
36
36
  enumerable: true,
37
- get: function () { return chunkF46DCSUI_js.fetchBookingTypeDetails; }
37
+ get: function () { return chunkKDWKSL7U_js.fetchBookingTypeDetails; }
38
38
  });
39
39
  Object.defineProperty(exports, "fetchBookingTypes", {
40
40
  enumerable: true,
41
- get: function () { return chunkF46DCSUI_js.fetchBookingTypes; }
41
+ get: function () { return chunkKDWKSL7U_js.fetchBookingTypes; }
42
42
  });
43
43
  Object.defineProperty(exports, "formatDate", {
44
44
  enumerable: true,
45
- get: function () { return chunkF46DCSUI_js.formatDate; }
45
+ get: function () { return chunkKDWKSL7U_js.formatDate; }
46
46
  });
47
47
  Object.defineProperty(exports, "formatDuration", {
48
48
  enumerable: true,
49
- get: function () { return chunkF46DCSUI_js.formatDuration; }
49
+ get: function () { return chunkKDWKSL7U_js.formatDuration; }
50
50
  });
51
51
  Object.defineProperty(exports, "formatTime", {
52
52
  enumerable: true,
53
- get: function () { return chunkF46DCSUI_js.formatTime; }
53
+ get: function () { return chunkKDWKSL7U_js.formatTime; }
54
54
  });
55
55
  Object.defineProperty(exports, "releaseSlotHold", {
56
56
  enumerable: true,
57
- get: function () { return chunkF46DCSUI_js.releaseSlotHold; }
57
+ get: function () { return chunkKDWKSL7U_js.releaseSlotHold; }
58
58
  });
59
59
  //# sourceMappingURL=index.js.map
60
60
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
- export { BookingWidget, createBooking, createSlotHold, detectTimezone, fetchAvailability, fetchAvailableDates, fetchBookingTypeDetails, fetchBookingTypes, formatDate, formatDuration, formatTime, releaseSlotHold } from '../chunk-MOKM6STG.mjs';
2
- import '../chunk-K7XOPTOE.mjs';
3
- import '../chunk-BEHHWRZM.mjs';
4
- import '../chunk-NPCWPOCE.mjs';
1
+ export { BookingWidget, createBooking, createSlotHold, detectTimezone, fetchAvailability, fetchAvailableDates, fetchBookingTypeDetails, fetchBookingTypes, formatDate, formatDuration, formatTime, releaseSlotHold } from '../chunk-UVRB4SQU.mjs';
2
+ import '../chunk-XWBQLPTZ.mjs';
3
+ import '../chunk-FSSVIYQ7.mjs';
4
+ import '../chunk-EFMPOC6L.mjs';
5
5
  import '../chunk-BEXTDHO4.mjs';
6
6
  //# sourceMappingURL=index.mjs.map
7
7
  //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonordev/site-kit",
3
- "version": "4.2.2",
3
+ "version": "4.2.4",
4
4
  "packageManager": "pnpm@11.5.3",
5
5
  "description": "Complete client-side integration kit for Sonor - SEO, Analytics, Engage, Forms, Blog",
6
6
  "license": "MIT",