@sonordev/site-kit 6.5.0 → 7.0.1
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.
- package/AGENTS.md +18 -3
- package/README.md +50 -34
- package/agent-manifest.json +282 -52
- package/dist/AnalyticsProvider-EMM2TKRE.js +11 -0
- package/dist/ArticleFaqSection-3Q26DP7P.js +9 -0
- package/dist/ArticleViewTracker-RA64BGL6.js +49 -0
- package/dist/BlocksPopup-D25RFNOV.js +43 -0
- package/dist/ChatWidget-RYI7BMJJ.js +15 -0
- package/dist/DatePicker-JEBV6WYJ.js +2 -0
- package/dist/EngageWidget-UKFCN33M.js +11 -0
- package/dist/FileField-MUHA7LZR.js +83 -0
- package/dist/FormCelebration-OVGAGBKF.js +2 -0
- package/dist/FormSpotlight-TCLPWPLL.js +754 -0
- package/dist/FormStage-CNYLP6I6.js +418 -0
- package/dist/ManagedForm-7ZL5SKTO.js +14 -0
- package/dist/ManagedNewsletterForm-33B4JLX7.js +62 -0
- package/dist/SignalCore-L5FVDHFE.js +322 -0
- package/dist/SiteDesignReporter-4JOFL4FP.js +11 -0
- package/dist/SitemapSync-7WKY4HXI.js +8 -0
- package/dist/SitemapSync.d.ts +0 -1
- package/dist/_client/booking-widget.d.ts +4 -0
- package/dist/_client/booking-widget.js +7 -0
- package/dist/_client/testimonial-section.d.ts +11 -0
- package/dist/_client/testimonial-section.js +5 -0
- package/dist/admin-auth/index.d.ts +0 -1
- package/dist/admin-auth/index.js +0 -0
- package/dist/admin-auth/session.d.ts +0 -1
- package/dist/affiliates/AffiliatesWidget.d.ts +0 -1
- package/dist/affiliates/api.d.ts +0 -1
- package/dist/affiliates/index.d.ts +0 -1
- package/dist/affiliates/index.js +149 -0
- package/dist/affiliates/types.d.ts +0 -1
- package/dist/affiliates/useAffiliates.d.ts +0 -1
- package/dist/analytics/AnalyticsProvider.d.ts +0 -1
- package/dist/analytics/WebVitals.d.ts +0 -1
- package/dist/analytics/dispatch.d.ts +0 -1
- package/dist/analytics/index.d.ts +0 -1
- package/dist/analytics/index.js +12 -67
- package/dist/analytics/measurement-context.d.ts +0 -1
- package/dist/analytics/page-observation.d.ts +0 -1
- package/dist/analytics/send-gate.d.ts +0 -1
- package/dist/analytics/types.d.ts +0 -1
- package/dist/analytics/useContactTracking.d.ts +0 -1
- package/dist/article-styles-6CM5FUMV.js +590 -0
- package/dist/article-tables-AXSZOGNW.js +2 -0
- package/dist/articles/Article.d.ts +0 -1
- package/dist/articles/ArticleFAQ.d.ts +0 -1
- package/dist/articles/ArticleFaqSection.d.ts +0 -1
- package/dist/articles/ArticleList.d.ts +0 -1
- package/dist/articles/ArticleViewTracker.d.ts +0 -1
- package/dist/articles/AuthorCard.d.ts +0 -1
- package/dist/articles/AuthorPage.d.ts +0 -1
- package/dist/articles/ClusterLandingPage.d.ts +0 -1
- package/dist/articles/ClusterNavigation.d.ts +0 -1
- package/dist/articles/ManagedNewsletterForm.d.ts +0 -1
- package/dist/articles/NewsletterShell.d.ts +0 -1
- package/dist/articles/NewsletterWidget.d.ts +0 -1
- package/dist/articles/PublicationLayout.d.ts +0 -1
- package/dist/articles/PublicationSidebar.d.ts +0 -1
- package/dist/articles/RelatedPosts.d.ts +0 -1
- package/dist/articles/ServiceCallout.d.ts +0 -1
- package/dist/articles/TableOfContents.d.ts +0 -1
- package/dist/articles/article-styles.d.ts +0 -1
- package/dist/articles/article-tables.d.ts +0 -1
- package/dist/articles/artwork.d.ts +0 -1
- package/dist/articles/author-schema.d.ts +0 -1
- package/dist/articles/author-social.d.ts +0 -1
- package/dist/articles/excerpt.d.ts +0 -1
- package/dist/articles/index.d.ts +0 -1
- package/dist/articles/index.js +87 -147
- package/dist/articles/news-sitemap.d.ts +0 -1
- package/dist/articles/processArticleHtml.d.ts +0 -1
- package/dist/articles/public-reads.d.ts +0 -1
- package/dist/articles/reading-time.d.ts +0 -1
- package/dist/articles/routes.d.ts +0 -1
- package/dist/articles/server-core.d.ts +0 -14
- package/dist/articles/server-ui.d.ts +0 -1
- package/dist/articles/server-ui.js +221 -265
- package/dist/articles/server.d.ts +0 -14
- package/dist/articles/server.js +10 -252
- package/dist/articles/types.d.ts +0 -1
- package/dist/articles/widget-styles.d.ts +0 -1
- package/dist/brand/extract-brand-profile.d.ts +0 -1
- package/dist/chat/index.d.ts +11 -0
- package/dist/chat/index.js +16 -0
- package/dist/chunk-24QZEO3Q.js +41 -0
- package/dist/chunk-3KUUH2YP.js +148 -0
- package/dist/chunk-43OCZ3JA.js +67 -0
- package/dist/chunk-4IQ52CXL.js +1803 -0
- package/dist/chunk-4KZ6W3ZH.js +8 -0
- package/dist/chunk-4RMVXRBO.js +478 -0
- package/dist/chunk-4Y5FWDPM.js +97 -0
- package/dist/chunk-5SEM2V4A.js +837 -0
- package/dist/chunk-5SQK3D53.js +24 -0
- package/dist/chunk-6HDT4G4A.js +253 -0
- package/dist/chunk-6T6CQVNL.js +37 -0
- package/dist/chunk-7KJGO77W.js +1 -0
- package/dist/chunk-7L5AARVY.js +68 -0
- package/dist/chunk-7ZWO5HDQ.js +1 -0
- package/dist/chunk-A4CC4ZG3.js +15 -0
- package/dist/chunk-AQSNPZY4.js +92 -0
- package/dist/chunk-BMO3VGMR.js +184 -0
- package/dist/chunk-BQR4IPBW.js +146 -0
- package/dist/chunk-BR4ZKUHH.js +227 -0
- package/dist/chunk-BU66S5B7.js +1 -0
- package/dist/chunk-C4G3NW2E.js +25 -0
- package/dist/chunk-CVTVNC2U.js +99 -0
- package/dist/chunk-D7SLSJS4.js +1 -0
- package/dist/chunk-DIKNRN34.js +28 -0
- package/dist/chunk-DXO6SBMD.js +43 -0
- package/dist/chunk-EDYHROQ7.js +77 -0
- package/dist/chunk-EGOD74PP.js +129 -0
- package/dist/chunk-EKBEOXTH.js +114 -0
- package/dist/chunk-FESKKJAS.js +19 -0
- package/dist/chunk-FL4EPUWA.js +407 -0
- package/dist/chunk-FV2VD7WM.js +347 -0
- package/dist/chunk-FYAB6CXS.js +265 -0
- package/dist/chunk-FYBZ5SNP.js +1241 -0
- package/dist/chunk-G3NHWMP5.js +233 -0
- package/dist/chunk-GJWI74ZZ.js +27 -0
- package/dist/chunk-GKGSXUVQ.js +218 -0
- package/dist/chunk-GLHQ3LRO.js +97 -0
- package/dist/chunk-GW7GSBO7.js +66 -0
- package/dist/chunk-GYESATRY.js +19 -0
- package/dist/chunk-GYF2ULVO.js +14 -0
- package/dist/chunk-HGCK465A.js +1071 -0
- package/dist/chunk-HXJ54KAM.js +122 -0
- package/dist/chunk-IHG36STL.js +286 -0
- package/dist/chunk-J4FSB4OG.js +200 -0
- package/dist/chunk-JE4A5S4F.js +48 -0
- package/dist/chunk-JJ4JS3LD.js +26 -0
- package/dist/chunk-JSZN6LDZ.js +338 -0
- package/dist/chunk-KPAZG65P.js +138 -0
- package/dist/chunk-KV4LOKOU.js +154 -0
- package/dist/chunk-KXPBMCFL.js +39 -0
- package/dist/chunk-L2V5PUFN.js +15 -0
- package/dist/chunk-L3AQCDCY.js +386 -0
- package/dist/chunk-L5UOHS6E.js +45 -0
- package/dist/chunk-LCDVPAMR.js +24 -0
- package/dist/chunk-LE7ZOTHB.js +43 -0
- package/dist/chunk-LNSNA3W4.js +217 -0
- package/dist/chunk-LQJC5S2M.js +236 -0
- package/dist/chunk-LVESVYCE.js +270 -0
- package/dist/chunk-MH2DSGC6.js +10 -0
- package/dist/chunk-MJP63SSS.js +14 -0
- package/dist/chunk-MV2MBTC3.js +177 -0
- package/dist/chunk-MVLMXC44.js +9 -0
- package/dist/chunk-N2UVOR3X.js +238 -0
- package/dist/chunk-NDF4A5JM.js +37 -0
- package/dist/chunk-NJCTQH2P.js +62 -0
- package/dist/chunk-NZOJHERI.js +32 -0
- package/dist/chunk-OFOAHPUV.js +127 -0
- package/dist/chunk-OPRBF7VE.js +41 -0
- package/dist/chunk-OSYCOC3K.js +21 -0
- package/dist/chunk-P4GRY6QP.js +54 -0
- package/dist/chunk-P5GB6NEO.js +66 -0
- package/dist/chunk-P5J7VMQ3.js +523 -0
- package/dist/chunk-PKBMQBKP.js +5 -0
- package/dist/chunk-PO2TRJPY.js +40 -0
- package/dist/chunk-PSAG45YF.js +451 -0
- package/dist/chunk-PXKIGZ2F.js +31 -0
- package/dist/chunk-QANVUXKH.js +100 -0
- package/dist/chunk-QGHSMJKW.js +4 -0
- package/dist/chunk-QLTDFUJ7.js +94 -0
- package/dist/chunk-QPEEKFCA.js +533 -0
- package/dist/chunk-QXMIKDOL.js +125 -0
- package/dist/chunk-QZZIKMAT.js +163 -0
- package/dist/chunk-S22FSH7C.js +94 -0
- package/dist/chunk-SC4MZGWZ.js +63 -0
- package/dist/chunk-SOD2F6C2.js +281 -0
- package/dist/chunk-SS636UDN.js +35 -0
- package/dist/chunk-SSUQKA7L.js +746 -0
- package/dist/chunk-SWKE6FWH.js +47 -0
- package/dist/chunk-T22VK4NJ.js +49 -0
- package/dist/chunk-T3MC4HOD.js +130 -0
- package/dist/chunk-TT63HHIT.js +543 -0
- package/dist/chunk-TXBAOEKG.js +1084 -0
- package/dist/chunk-UPFU63L4.js +126 -0
- package/dist/chunk-UVPGW4R7.js +222 -0
- package/dist/chunk-UZN4ZYR2.js +937 -0
- package/dist/chunk-V6LSQRTH.js +52 -0
- package/dist/chunk-VX5CMNMM.js +26 -0
- package/dist/chunk-WATH55UY.js +191 -0
- package/dist/chunk-WMVK77ND.js +53 -0
- package/dist/chunk-X6F6SO4S.js +135 -0
- package/dist/chunk-XTRZGXB2.js +34 -0
- package/dist/chunk-Y3INC4QJ.js +133 -0
- package/dist/chunk-YC7ELZS3.js +51 -0
- package/dist/chunk-YGGDU6C3.js +93 -0
- package/dist/chunk-YVKRYQRG.js +70 -0
- package/dist/chunk-Z22QVHT4.js +57 -0
- package/dist/chunk-ZEGVKVD5.js +80 -0
- package/dist/chunk-ZTZQPYP6.js +55 -0
- package/dist/client/SiteKitCredential.d.ts +0 -1
- package/dist/client/index.d.ts +0 -1
- package/dist/client/index.js +13 -53
- package/dist/cms/CmsPage.d.ts +0 -1
- package/dist/cms/CmsPreview.d.ts +0 -1
- package/dist/cms/CmsSection.d.ts +0 -1
- package/dist/cms/PortableTextRenderer.d.ts +0 -1
- package/dist/cms/index.d.ts +1 -2
- package/dist/cms/index.js +5 -410
- package/dist/cms/sanity-image.d.ts +0 -1
- package/dist/cms/sections/CtaSection.d.ts +0 -1
- package/dist/cms/sections/CustomSection.d.ts +0 -1
- package/dist/cms/sections/FaqSection.d.ts +0 -1
- package/dist/cms/sections/FormSection.d.ts +0 -1
- package/dist/cms/sections/GallerySection.d.ts +0 -1
- package/dist/cms/sections/HeroSection.d.ts +0 -1
- package/dist/cms/sections/RichTextSection.d.ts +0 -1
- package/dist/cms/sections/TestimonialsSection.d.ts +0 -1
- package/dist/cms/sections/index.d.ts +0 -1
- package/dist/cms/server-api.d.ts +0 -1
- package/dist/cms/server.d.ts +0 -1
- package/dist/cms/server.js +5 -22
- package/dist/cms/types.d.ts +0 -1
- package/dist/commerce/CalendarView.d.ts +0 -1
- package/dist/commerce/CheckoutForm.d.ts +0 -1
- package/dist/commerce/EventCalendar.d.ts +0 -1
- package/dist/commerce/EventCheckout.d.ts +0 -1
- package/dist/commerce/EventEmbed.d.ts +0 -1
- package/dist/commerce/EventModal.d.ts +0 -1
- package/dist/commerce/EventTile.d.ts +0 -1
- package/dist/commerce/EventsAgenda.d.ts +0 -1
- package/dist/commerce/EventsWidget.d.ts +0 -1
- package/dist/commerce/OfferingCard.d.ts +0 -1
- package/dist/commerce/OfferingList.d.ts +0 -1
- package/dist/commerce/ProductDetail.d.ts +0 -1
- package/dist/commerce/ProductEmbed.d.ts +0 -1
- package/dist/commerce/ProductGrid.d.ts +0 -1
- package/dist/commerce/ProductPage.d.ts +0 -1
- package/dist/commerce/RegistrationForm.d.ts +0 -1
- package/dist/commerce/SizeChart.d.ts +0 -1
- package/dist/commerce/UpcomingEvents.d.ts +0 -1
- package/dist/commerce/api.d.ts +0 -1
- package/dist/commerce/events-extras.d.ts +0 -1
- package/dist/commerce/index.d.ts +0 -1
- package/dist/commerce/index.js +8021 -228
- package/dist/commerce/server.d.ts +0 -1
- package/dist/commerce/server.js +2 -251
- package/dist/commerce/types.d.ts +0 -1
- package/dist/commerce/useEventModal.d.ts +0 -1
- package/dist/commerce/utils.d.ts +0 -1
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.js +7 -11
- package/dist/contracts/color.d.ts +38 -0
- package/dist/contracts/entries.d.ts +8 -0
- package/dist/contracts/fleet.d.ts +96 -0
- package/dist/contracts/forms.d.ts +89 -0
- package/dist/contracts/llms.d.ts +54 -0
- package/dist/contracts/portfolio.d.ts +158 -0
- package/dist/contracts/seo-meta.d.ts +56 -0
- package/dist/contracts/seo-pages.d.ts +124 -0
- package/dist/contracts/sites-normalize.d.ts +35 -0
- package/dist/contracts/sites.d.ts +48 -0
- package/dist/contracts/slots.d.ts +81 -0
- package/dist/contracts/website.d.ts +148 -0
- package/dist/cta-bar/CtaBar.d.ts +0 -1
- package/dist/cta-bar/CtaBarBehavior.d.ts +0 -1
- package/dist/cta-bar/client.d.ts +0 -1
- package/dist/cta-bar/client.js +3 -22
- package/dist/cta-bar/index.d.ts +0 -1
- package/dist/cta-bar/index.js +5 -227
- package/dist/cta-bar/styles.d.ts +0 -1
- package/dist/discover-3YYOHOQP.js +2 -0
- package/dist/engage/ChatWidget.d.ts +0 -1
- package/dist/engage/DesignRenderer.d.ts +0 -1
- package/dist/engage/EchoUiActions.d.ts +0 -1
- package/dist/engage/EngageWidget.d.ts +2 -1
- package/dist/engage/brand-color.d.ts +0 -1
- package/dist/engage/chat-messages.d.ts +0 -1
- package/dist/engage/echo-config.d.ts +0 -1
- package/dist/engage/element-rules.d.ts +0 -1
- package/dist/engage/index.d.ts +0 -1
- package/dist/engage/index.js +20 -37
- package/dist/engage/launcher-placement.d.ts +0 -1
- package/dist/engage/socket-loader.d.ts +0 -1
- package/dist/engage/types.d.ts +18 -1
- package/dist/fleet/FleetHeartbeat.d.ts +0 -1
- package/dist/fleet/contract.d.ts +1 -98
- package/dist/fleet/contract.js +2 -53
- package/dist/fleet/heartbeat.d.ts +0 -1
- package/dist/fleet/index.d.ts +0 -1
- package/dist/fleet/index.js +9 -76
- package/dist/forms/DatePicker.d.ts +0 -1
- package/dist/forms/FileField.d.ts +0 -1
- package/dist/forms/FormCelebration.d.ts +0 -1
- package/dist/forms/FormClient.d.ts +0 -1
- package/dist/forms/FormEnhancer.d.ts +0 -1
- package/dist/forms/FormField.d.ts +0 -1
- package/dist/forms/FormSpotlight.d.ts +0 -1
- package/dist/forms/FormStage.d.ts +0 -1
- package/dist/forms/HoneypotField.d.ts +0 -1
- package/dist/forms/ManagedForm.d.ts +0 -1
- package/dist/forms/ServerForm.d.ts +0 -1
- package/dist/forms/StaticForm.d.ts +0 -1
- package/dist/forms/contract.d.ts +1 -91
- package/dist/forms/contract.js +2 -37
- package/dist/forms/defaultSuccessMessage.d.ts +0 -1
- package/dist/forms/delight.d.ts +0 -1
- package/dist/forms/experience-chrome.d.ts +0 -1
- package/dist/forms/experience-plan.d.ts +0 -1
- package/dist/forms/field-controls.d.ts +0 -1
- package/dist/forms/field-interactions.d.ts +0 -1
- package/dist/forms/field-rules.d.ts +0 -1
- package/dist/forms/form-loaded-at.d.ts +12 -0
- package/dist/forms/form-values.d.ts +0 -1
- package/dist/forms/formsApi.d.ts +0 -1
- package/dist/forms/ga4-identity.d.ts +0 -1
- package/dist/forms/index.d.ts +0 -1
- package/dist/forms/index.js +20 -64
- package/dist/forms/normalize-config.d.ts +0 -1
- package/dist/forms/recaptcha-warmup.d.ts +0 -1
- package/dist/forms/recaptcha.d.ts +0 -1
- package/dist/forms/server.d.ts +0 -1
- package/dist/forms/server.js +11 -67
- package/dist/forms/static.d.ts +0 -1
- package/dist/forms/static.js +6 -17
- package/dist/forms/submitForm.d.ts +0 -1
- package/dist/forms/tracking-session.d.ts +0 -1
- package/dist/forms/types.d.ts +0 -1
- package/dist/forms/useForm.d.ts +0 -1
- package/dist/forms/useFormTracking.d.ts +0 -1
- package/dist/images/ManagedFavicon.d.ts +0 -1
- package/dist/images/ManagedImage.d.ts +0 -1
- package/dist/images/api.d.ts +0 -1
- package/dist/images/index.d.ts +0 -1
- package/dist/images/index.js +6 -49
- package/dist/images/server.d.ts +0 -1
- package/dist/images/server.js +3 -21
- package/dist/index.d.ts +13 -56
- package/dist/index.js +2 -427
- package/dist/landing/LandingPage.d.ts +0 -1
- package/dist/landing/contract.d.ts +0 -1
- package/dist/landing/index.d.ts +0 -1
- package/dist/landing/index.js +3 -22
- package/dist/landing/metadata.d.ts +0 -1
- package/dist/landing/server.d.ts +0 -1
- package/dist/landing/server.js +3 -17
- package/dist/layout/SiteKitClientProviders.d.ts +12 -3
- package/dist/layout/SiteKitLayout.d.ts +19 -4
- package/dist/layout/SpeculationRules.d.ts +0 -1
- package/dist/layout/client.d.ts +12 -3
- package/dist/layout/client.js +16 -27
- package/dist/layout/index.d.ts +0 -1
- package/dist/layout/index.js +43 -41
- package/dist/layout/types.d.ts +13 -1
- package/dist/llms/AEOComponents.d.ts +0 -1
- package/dist/llms/SpeakableSchema.d.ts +0 -1
- package/dist/llms/agent-access.d.ts +43 -0
- package/dist/llms/aiRobots.d.ts +0 -10
- package/dist/llms/api.d.ts +0 -1
- package/dist/llms/client.d.ts +0 -1
- package/dist/llms/client.js +4 -66
- package/dist/llms/contract.d.ts +1 -42
- package/dist/llms/contract.js +2 -41
- package/dist/llms/discovery-headers.d.ts +6 -1
- package/dist/llms/generateLLMsTxt.d.ts +0 -1
- package/dist/llms/handlers.d.ts +0 -1
- package/dist/llms/humanize-industry.d.ts +0 -1
- package/dist/llms/index.d.ts +3 -2
- package/dist/llms/index.js +17 -448
- package/dist/llms/links.d.ts +0 -1
- package/dist/llms/revalidate.d.ts +0 -1
- package/dist/llms/seo-revalidate.d.ts +0 -1
- package/dist/llms/sourcedFacts.d.ts +0 -1
- package/dist/llms/types.d.ts +6 -1
- package/dist/llms/writeLLMsTxt.d.ts +10 -1
- package/dist/manifest/index.d.ts +0 -1
- package/dist/manifest/index.js +4 -8
- package/dist/maps/GoogleMap.d.ts +0 -1
- package/dist/maps/NeighborhoodMap.d.ts +0 -1
- package/dist/maps/api.d.ts +0 -1
- package/dist/maps/index.d.ts +0 -1
- package/dist/maps/index.js +85 -92
- package/dist/maps/types.d.ts +0 -1
- package/dist/mcp/WebMcpTools.d.ts +0 -1
- package/dist/mcp/client.d.ts +0 -1
- package/dist/mcp/client.js +9 -12
- package/dist/mcp/declarative.d.ts +0 -1
- package/dist/mcp/handlers.d.ts +15 -2
- package/dist/mcp/index.d.ts +2 -3
- package/dist/mcp/index.js +50 -298
- package/dist/mcp/protocol.d.ts +0 -1
- package/dist/mcp/report.d.ts +27 -0
- package/dist/mcp/serverCard.d.ts +0 -1
- package/dist/mcp/sonor.d.ts +99 -0
- package/dist/mcp/sonor.js +484 -0
- package/dist/mcp/transport.d.ts +0 -1
- package/dist/mcp/transport.js +8 -24
- package/dist/mcp/types.d.ts +21 -1
- package/dist/motion/CountUp.d.ts +0 -1
- package/dist/motion/Parallax.d.ts +0 -1
- package/dist/motion/Reveal.d.ts +0 -1
- package/dist/motion/ScrollScene.d.ts +0 -1
- package/dist/motion/engine.d.ts +0 -1
- package/dist/motion/failsafe.d.ts +0 -1
- package/dist/motion/gsap.d.ts +0 -1
- package/dist/motion/gsap.js +17 -29
- package/dist/motion/index.d.ts +0 -1
- package/dist/motion/index.js +25 -51
- package/dist/motion/three.d.ts +0 -1
- package/dist/motion/three.js +16 -23
- package/dist/og/config.d.ts +0 -1
- package/dist/og/contrast.d.ts +0 -1
- package/dist/og/index.d.ts +0 -1
- package/dist/og/index.js +4 -43
- package/dist/og/pages.d.ts +0 -1
- package/dist/og/route-fit.d.ts +0 -1
- package/dist/og/route.d.ts +0 -1
- package/dist/og/route.js +3 -245
- package/dist/og/template.d.ts +0 -1
- package/dist/portfolio/contract.d.ts +1 -153
- package/dist/portfolio/contract.js +2 -136
- package/dist/proxy/index.d.ts +16 -14
- package/dist/proxy/index.js +20 -36
- package/dist/proxy/securityHeaders.d.ts +0 -1
- package/dist/proxy/segment.d.ts +0 -1
- package/dist/redirects/index.d.ts +0 -8
- package/dist/redirects/index.js +6 -41
- package/dist/reputation/TestimonialSection.d.ts +0 -1
- package/dist/reputation/api.d.ts +0 -1
- package/dist/reputation/index.d.ts +0 -1
- package/dist/reputation/index.js +4 -22
- package/dist/reputation/server.d.ts +0 -1
- package/dist/reputation/server.js +3 -17
- package/dist/reputation/types.d.ts +0 -1
- package/dist/robots/index.d.ts +1 -2
- package/dist/robots/index.js +4 -78
- package/dist/robots/indexnow.d.ts +0 -1
- package/dist/robots/indexnow.js +4 -39
- package/dist/robots/next-internals.d.ts +0 -1
- package/dist/seo/ManagedContent.d.ts +0 -1
- package/dist/seo/ManagedFAQ.d.ts +0 -1
- package/dist/seo/ManagedInternalLinks.d.ts +0 -1
- package/dist/seo/ManagedSchema.d.ts +0 -1
- package/dist/seo/ManagedScripts.d.ts +0 -1
- package/dist/seo/api.d.ts +0 -1
- package/dist/seo/client.d.ts +0 -1
- package/dist/seo/client.js +8 -19
- package/dist/seo/entry-indexnow.d.ts +2 -0
- package/dist/seo/entry-llms-client.d.ts +2 -0
- package/dist/seo/entry-llms-contract.d.ts +2 -0
- package/dist/seo/entry-llms.d.ts +2 -0
- package/dist/seo/entry-meta-contract.d.ts +2 -0
- package/dist/seo/entry-og-route.d.ts +2 -0
- package/dist/seo/entry-og.d.ts +2 -0
- package/dist/seo/entry-pages-contract.d.ts +2 -0
- package/dist/seo/entry-redirects.d.ts +2 -0
- package/dist/seo/entry-robots.d.ts +2 -0
- package/dist/seo/entry-sitemap.d.ts +2 -0
- package/dist/seo/getManagedMetadata.d.ts +0 -1
- package/dist/seo/groundingSchema.d.ts +0 -1
- package/dist/seo/index.d.ts +0 -2
- package/dist/seo/index.js +88 -318
- package/dist/seo/indexnow.d.ts +2 -0
- package/dist/seo/indexnow.js +4 -0
- package/dist/seo/llms/client.d.ts +2 -0
- package/dist/seo/llms/client.js +4 -0
- package/dist/seo/llms/contract.d.ts +2 -0
- package/dist/seo/llms/contract.js +2 -0
- package/dist/seo/llms.d.ts +2 -0
- package/dist/seo/llms.js +17 -0
- package/dist/seo/load-env.d.ts +12 -0
- package/dist/seo/meta/contract.d.ts +2 -0
- package/dist/seo/meta/contract.js +2 -0
- package/dist/seo/og/route.d.ts +2 -0
- package/dist/seo/og/route.js +3 -0
- package/dist/seo/og.d.ts +2 -0
- package/dist/seo/og.js +4 -0
- package/dist/seo/pages/contract.d.ts +2 -0
- package/dist/seo/pages/contract.js +4 -0
- package/dist/seo/redirects.d.ts +2 -0
- package/dist/seo/redirects.js +6 -0
- package/dist/seo/register-sitemap-cli-impl.d.ts +6 -1
- package/dist/seo/register-sitemap-cli.d.ts +1 -1
- package/dist/seo/register-sitemap-cli.js +73 -66
- package/dist/seo/register-sitemap-request.d.ts +0 -1
- package/dist/seo/robots.d.ts +2 -0
- package/dist/seo/robots.js +4 -0
- package/dist/seo/routing.d.ts +0 -1
- package/dist/seo/safeJsonLd.d.ts +0 -1
- package/dist/seo/schema-filter.d.ts +0 -1
- package/dist/seo/server-api.d.ts +0 -1
- package/dist/seo/server.d.ts +0 -1
- package/dist/seo/server.js +10 -80
- package/dist/seo/sitemap.d.ts +2 -0
- package/dist/seo/sitemap.js +15 -0
- package/dist/seo/types.d.ts +0 -1
- package/dist/seo/withManagedMetadata.d.ts +0 -1
- package/dist/seo-meta/contract.d.ts +1 -60
- package/dist/seo-meta/contract.js +2 -41
- package/dist/seo-pages/contract.d.ts +1 -61
- package/dist/seo-pages/contract.js +4 -49
- package/dist/server/index.d.ts +0 -1
- package/dist/server/index.js +6 -32
- package/dist/server/mint-site-token.d.ts +0 -1
- package/dist/server/server-fetch.d.ts +0 -1
- package/dist/server-api-GJJQZVG7.js +8 -0
- package/dist/shared/build-entries.d.ts +53 -14
- package/dist/shared/clock.d.ts +20 -0
- package/dist/shared/color.d.ts +1 -39
- package/dist/shared/defer.d.ts +0 -1
- package/dist/shared/fetchWithRetry.d.ts +0 -1
- package/dist/shared/frame.d.ts +1 -9
- package/dist/shared/fresh-fetch.d.ts +0 -1
- package/dist/shared/glass.d.ts +0 -1
- package/dist/shared/identity.d.ts +0 -1
- package/dist/shared/markdown.d.ts +40 -0
- package/dist/shared/next-files.d.ts +0 -1
- package/dist/shared/page-leave.d.ts +0 -1
- package/dist/shared/publishCredential.d.ts +0 -1
- package/dist/shared/reporting-gate.d.ts +0 -1
- package/dist/shared/request-guards.d.ts +0 -1
- package/dist/shared/siteToken.d.ts +0 -1
- package/dist/shared/sonorFetch.d.ts +0 -1
- package/dist/shared/source-graph.d.ts +0 -1
- package/dist/shared/uuid.d.ts +0 -1
- package/dist/shared/version.d.ts +1 -2
- package/dist/shared/visual-viewport-gap.d.ts +0 -1
- package/dist/signal/SignalBridge.d.ts +0 -1
- package/dist/signal/SignalCore.d.ts +0 -1
- package/dist/signal/SignalExperiment.d.ts +0 -1
- package/dist/signal/index.d.ts +0 -1
- package/dist/signal/index.js +72 -44
- package/dist/signal/store.d.ts +0 -1
- package/dist/signal/types.d.ts +0 -1
- package/dist/site-config/index.d.ts +0 -1
- package/dist/site-config/index.js +2 -17
- package/dist/sitemap/discover.d.ts +0 -1
- package/dist/sitemap/index.d.ts +6 -1
- package/dist/sitemap/index.js +15 -553
- package/dist/sitemap/shared.d.ts +0 -1
- package/dist/sites/contract.d.ts +1 -51
- package/dist/sites/contract.js +3 -38
- package/dist/sites/normalize.d.ts +1 -36
- package/dist/sites/resolve.d.ts +0 -1
- package/dist/sites/site-param.d.ts +0 -1
- package/dist/slots/ManagedSlot.d.ts +0 -1
- package/dist/slots/contract.d.ts +1 -82
- package/dist/slots/contract.js +2 -41
- package/dist/slots/index.d.ts +0 -1
- package/dist/slots/index.js +5 -182
- package/dist/slots/revalidate.d.ts +0 -1
- package/dist/slots/server-api.d.ts +0 -1
- package/dist/socket-loader-R24ZSRSQ.js +12 -0
- package/dist/sync/AddToCalendar.d.ts +0 -1
- package/dist/sync/BookingWidget.d.ts +0 -1
- package/dist/sync/MeetingFormatStep.d.ts +0 -1
- package/dist/sync/api.d.ts +0 -1
- package/dist/sync/booking-flow.d.ts +0 -1
- package/dist/sync/index.d.ts +0 -1
- package/dist/sync/index.js +6 -64
- package/dist/sync/types.d.ts +0 -1
- package/dist/types.d.ts +0 -63
- package/dist/web-vitals.attribution-N2PCCF4Q.js +522 -0
- package/dist/website/BlocksPopup.d.ts +25 -0
- package/dist/website/PopupBlocks.d.ts +57 -0
- package/dist/website/SiteDesignReporter.d.ts +28 -0
- package/dist/website/cms/server.d.ts +2 -0
- package/dist/website/cms/server.js +5 -0
- package/dist/website/cms-server.d.ts +2 -0
- package/dist/website/cms.d.ts +2 -0
- package/dist/website/cms.js +5 -0
- package/dist/website/contract.d.ts +1 -0
- package/dist/website/contract.js +3 -0
- package/dist/website/cta-bar.d.ts +2 -0
- package/dist/website/cta-bar.js +5 -0
- package/dist/website/design.d.ts +165 -0
- package/dist/website/images/server.d.ts +2 -0
- package/dist/website/images/server.js +3 -0
- package/dist/website/images-server.d.ts +2 -0
- package/dist/website/images.d.ts +2 -0
- package/dist/website/images.js +6 -0
- package/dist/website/index.d.ts +17 -0
- package/dist/website/index.js +13 -0
- package/dist/website/landing/server.d.ts +2 -0
- package/dist/website/landing/server.js +3 -0
- package/dist/website/landing-server.d.ts +2 -0
- package/dist/website/landing.d.ts +2 -0
- package/dist/website/landing.js +3 -0
- package/dist/website/popups.d.ts +17 -0
- package/dist/website/popups.js +22 -0
- package/dist/website/slots/contract.d.ts +2 -0
- package/dist/website/slots/contract.js +2 -0
- package/dist/website/slots-contract.d.ts +2 -0
- package/dist/website/slots.d.ts +3 -0
- package/dist/website/slots.js +5 -0
- package/dist/writeLLMsTxt-UMHKGNRR.js +11 -0
- package/package.json +191 -161
- package/skills/site-kit/SKILL.md +9 -3
- package/dist/AnalyticsProvider-44PDLORZ.js +0 -34
- package/dist/AnalyticsProvider-44PDLORZ.js.map +0 -1
- package/dist/AnalyticsProvider-F6KHEAOX.mjs +0 -13
- package/dist/AnalyticsProvider-F6KHEAOX.mjs.map +0 -1
- package/dist/ArticleFaqSection-3KZ24MFS.js +0 -13
- package/dist/ArticleFaqSection-3KZ24MFS.js.map +0 -1
- package/dist/ArticleFaqSection-XZPXJVH4.mjs +0 -11
- package/dist/ArticleFaqSection-XZPXJVH4.mjs.map +0 -1
- package/dist/ArticleViewTracker-MGNVIHZ4.js +0 -54
- package/dist/ArticleViewTracker-MGNVIHZ4.js.map +0 -1
- package/dist/ArticleViewTracker-NI4UNSY7.mjs +0 -51
- package/dist/ArticleViewTracker-NI4UNSY7.mjs.map +0 -1
- package/dist/ChatWidget-XSALHDDW.mjs +0 -17
- package/dist/ChatWidget-XSALHDDW.mjs.map +0 -1
- package/dist/ChatWidget-YBXJRR2Z.js +0 -34
- package/dist/ChatWidget-YBXJRR2Z.js.map +0 -1
- package/dist/DatePicker-4WNKNNCV.mjs +0 -4
- package/dist/DatePicker-4WNKNNCV.mjs.map +0 -1
- package/dist/DatePicker-VPZR7RU3.js +0 -13
- package/dist/DatePicker-VPZR7RU3.js.map +0 -1
- package/dist/EngageWidget-DUEXPVOY.mjs +0 -13
- package/dist/EngageWidget-DUEXPVOY.mjs.map +0 -1
- package/dist/EngageWidget-MDCRS3BN.js +0 -22
- package/dist/EngageWidget-MDCRS3BN.js.map +0 -1
- package/dist/FileField-AXU6KBSV.js +0 -91
- package/dist/FileField-AXU6KBSV.js.map +0 -1
- package/dist/FileField-UTLGR5ZN.mjs +0 -85
- package/dist/FileField-UTLGR5ZN.mjs.map +0 -1
- package/dist/FormCelebration-7CBANVNS.mjs +0 -4
- package/dist/FormCelebration-7CBANVNS.mjs.map +0 -1
- package/dist/FormCelebration-O2O5S6JI.js +0 -13
- package/dist/FormCelebration-O2O5S6JI.js.map +0 -1
- package/dist/FormSpotlight-NWLCZMOT.mjs +0 -756
- package/dist/FormSpotlight-NWLCZMOT.mjs.map +0 -1
- package/dist/FormSpotlight-RR5KJDIH.js +0 -761
- package/dist/FormSpotlight-RR5KJDIH.js.map +0 -1
- package/dist/FormStage-GFNX4GLU.js +0 -422
- package/dist/FormStage-GFNX4GLU.js.map +0 -1
- package/dist/FormStage-V4XKLI6J.mjs +0 -420
- package/dist/FormStage-V4XKLI6J.mjs.map +0 -1
- package/dist/ManagedForm-4AD3LWSC.js +0 -25
- package/dist/ManagedForm-4AD3LWSC.js.map +0 -1
- package/dist/ManagedForm-4IWPG6AZ.mjs +0 -16
- package/dist/ManagedForm-4IWPG6AZ.mjs.map +0 -1
- package/dist/ManagedNewsletterForm-ARSY2VHC.mjs +0 -64
- package/dist/ManagedNewsletterForm-ARSY2VHC.mjs.map +0 -1
- package/dist/ManagedNewsletterForm-HJZNUABY.js +0 -66
- package/dist/ManagedNewsletterForm-HJZNUABY.js.map +0 -1
- package/dist/SignalCore-N2LKG4XN.mjs +0 -324
- package/dist/SignalCore-N2LKG4XN.mjs.map +0 -1
- package/dist/SignalCore-P2JUY2BO.js +0 -326
- package/dist/SignalCore-P2JUY2BO.js.map +0 -1
- package/dist/SitemapSync-KFY4PJ7G.js +0 -19
- package/dist/SitemapSync-KFY4PJ7G.js.map +0 -1
- package/dist/SitemapSync-UYDL7T4M.mjs +0 -10
- package/dist/SitemapSync-UYDL7T4M.mjs.map +0 -1
- package/dist/SitemapSync.d.ts.map +0 -1
- package/dist/admin-auth/index.d.ts.map +0 -1
- package/dist/admin-auth/index.js.map +0 -1
- package/dist/admin-auth/index.mjs +0 -0
- package/dist/admin-auth/index.mjs.map +0 -1
- package/dist/admin-auth/session.d.ts.map +0 -1
- package/dist/affiliates/AffiliatesWidget.d.ts.map +0 -1
- package/dist/affiliates/api.d.ts.map +0 -1
- package/dist/affiliates/index.d.ts.map +0 -1
- package/dist/affiliates/types.d.ts.map +0 -1
- package/dist/affiliates/useAffiliates.d.ts.map +0 -1
- package/dist/analytics/AnalyticsProvider.d.ts.map +0 -1
- package/dist/analytics/WebVitals.d.ts.map +0 -1
- package/dist/analytics/dispatch.d.ts.map +0 -1
- package/dist/analytics/index.d.ts.map +0 -1
- package/dist/analytics/index.js.map +0 -1
- package/dist/analytics/index.mjs +0 -15
- package/dist/analytics/index.mjs.map +0 -1
- package/dist/analytics/measurement-context.d.ts.map +0 -1
- package/dist/analytics/page-observation.d.ts.map +0 -1
- package/dist/analytics/send-gate.d.ts.map +0 -1
- package/dist/analytics/types.d.ts.map +0 -1
- package/dist/analytics/useContactTracking.d.ts.map +0 -1
- package/dist/api-D745LGGU.mjs +0 -183
- package/dist/api-XR5APCH3.js +0 -201
- package/dist/article-styles-DACUAOVT.mjs +0 -592
- package/dist/article-styles-DACUAOVT.mjs.map +0 -1
- package/dist/article-styles-JHHTNHOK.js +0 -595
- package/dist/article-styles-JHHTNHOK.js.map +0 -1
- package/dist/article-tables-EWXG4LNP.js +0 -17
- package/dist/article-tables-EWXG4LNP.js.map +0 -1
- package/dist/article-tables-OGE52LNT.mjs +0 -4
- package/dist/article-tables-OGE52LNT.mjs.map +0 -1
- package/dist/articles/Article.d.ts.map +0 -1
- package/dist/articles/ArticleFAQ.d.ts.map +0 -1
- package/dist/articles/ArticleFaqSection.d.ts.map +0 -1
- package/dist/articles/ArticleList.d.ts.map +0 -1
- package/dist/articles/ArticleViewTracker.d.ts.map +0 -1
- package/dist/articles/AuthorCard.d.ts.map +0 -1
- package/dist/articles/AuthorPage.d.ts.map +0 -1
- package/dist/articles/ClusterLandingPage.d.ts.map +0 -1
- package/dist/articles/ClusterNavigation.d.ts.map +0 -1
- package/dist/articles/ManagedNewsletterForm.d.ts.map +0 -1
- package/dist/articles/NewsletterShell.d.ts.map +0 -1
- package/dist/articles/NewsletterWidget.d.ts.map +0 -1
- package/dist/articles/PublicationLayout.d.ts.map +0 -1
- package/dist/articles/PublicationSidebar.d.ts.map +0 -1
- package/dist/articles/RelatedPosts.d.ts.map +0 -1
- package/dist/articles/ServiceCallout.d.ts.map +0 -1
- package/dist/articles/TableOfContents.d.ts.map +0 -1
- package/dist/articles/article-styles.d.ts.map +0 -1
- package/dist/articles/article-tables.d.ts.map +0 -1
- package/dist/articles/artwork.d.ts.map +0 -1
- package/dist/articles/author-schema.d.ts.map +0 -1
- package/dist/articles/author-social.d.ts.map +0 -1
- package/dist/articles/excerpt.d.ts.map +0 -1
- package/dist/articles/index.d.ts.map +0 -1
- package/dist/articles/index.js.map +0 -1
- package/dist/articles/index.mjs +0 -457
- package/dist/articles/index.mjs.map +0 -1
- package/dist/articles/news-sitemap.d.ts.map +0 -1
- package/dist/articles/processArticleHtml.d.ts.map +0 -1
- package/dist/articles/public-reads.d.ts.map +0 -1
- package/dist/articles/reading-time.d.ts.map +0 -1
- package/dist/articles/routes.d.ts.map +0 -1
- package/dist/articles/server-core.d.ts.map +0 -1
- package/dist/articles/server-ui.d.ts.map +0 -1
- package/dist/articles/server-ui.js.map +0 -1
- package/dist/articles/server-ui.mjs +0 -1098
- package/dist/articles/server-ui.mjs.map +0 -1
- package/dist/articles/server.d.ts.map +0 -1
- package/dist/articles/server.js.map +0 -1
- package/dist/articles/server.mjs +0 -11
- package/dist/articles/server.mjs.map +0 -1
- package/dist/articles/types.d.ts.map +0 -1
- package/dist/articles/widget-styles.d.ts.map +0 -1
- package/dist/brand/extract-brand-profile.d.ts.map +0 -1
- package/dist/chunk-2FEQ6TYD.mjs +0 -37
- package/dist/chunk-2FEQ6TYD.mjs.map +0 -1
- package/dist/chunk-34XL7TVH.js +0 -130
- package/dist/chunk-34XL7TVH.js.map +0 -1
- package/dist/chunk-3AOKYAZ2.js +0 -135
- package/dist/chunk-3AOKYAZ2.js.map +0 -1
- package/dist/chunk-3BLKKF67.mjs +0 -131
- package/dist/chunk-3BLKKF67.mjs.map +0 -1
- package/dist/chunk-3DWIYCQX.js +0 -30
- package/dist/chunk-3DWIYCQX.js.map +0 -1
- package/dist/chunk-3EAS4PAT.js +0 -141
- package/dist/chunk-3EAS4PAT.js.map +0 -1
- package/dist/chunk-3SDMJMN2.js +0 -71
- package/dist/chunk-3SDMJMN2.js.map +0 -1
- package/dist/chunk-3T2CVHFO.mjs +0 -453
- package/dist/chunk-3T2CVHFO.mjs.map +0 -1
- package/dist/chunk-42LLFAJQ.mjs +0 -932
- package/dist/chunk-42LLFAJQ.mjs.map +0 -1
- package/dist/chunk-4BEGKFMN.js +0 -133
- package/dist/chunk-4BEGKFMN.js.map +0 -1
- package/dist/chunk-4KAMU5HD.mjs +0 -16
- package/dist/chunk-4KAMU5HD.mjs.map +0 -1
- package/dist/chunk-4U5NCKQY.mjs +0 -39
- package/dist/chunk-4U5NCKQY.mjs.map +0 -1
- package/dist/chunk-4WCA2HM6.mjs +0 -57
- package/dist/chunk-4WCA2HM6.mjs.map +0 -1
- package/dist/chunk-54CARHDR.mjs +0 -95
- package/dist/chunk-54CARHDR.mjs.map +0 -1
- package/dist/chunk-55J2KE7D.js +0 -60
- package/dist/chunk-55J2KE7D.js.map +0 -1
- package/dist/chunk-5F2FIM5A.mjs +0 -135
- package/dist/chunk-5F2FIM5A.mjs.map +0 -1
- package/dist/chunk-5SANRSX3.mjs +0 -17
- package/dist/chunk-5SANRSX3.mjs.map +0 -1
- package/dist/chunk-5XFFUP6D.js +0 -100
- package/dist/chunk-5XFFUP6D.js.map +0 -1
- package/dist/chunk-5YA6SI4Z.mjs +0 -14279
- package/dist/chunk-5YVQWLSQ.mjs +0 -47
- package/dist/chunk-5YVQWLSQ.mjs.map +0 -1
- package/dist/chunk-5ZMTEK7U.js +0 -1430
- package/dist/chunk-5ZMTEK7U.js.map +0 -1
- package/dist/chunk-64BOVMXG.mjs +0 -68
- package/dist/chunk-64BOVMXG.mjs.map +0 -1
- package/dist/chunk-662YHKWW.mjs +0 -10
- package/dist/chunk-662YHKWW.mjs.map +0 -1
- package/dist/chunk-6C47333H.mjs +0 -55
- package/dist/chunk-6C47333H.mjs.map +0 -1
- package/dist/chunk-6EDVCUAG.mjs +0 -29
- package/dist/chunk-6EDVCUAG.mjs.map +0 -1
- package/dist/chunk-6FNFM7JL.js +0 -113
- package/dist/chunk-6FNFM7JL.js.map +0 -1
- package/dist/chunk-6OQYRVMI.js +0 -937
- package/dist/chunk-6OQYRVMI.js.map +0 -1
- package/dist/chunk-6PJTLBRR.mjs +0 -11
- package/dist/chunk-6PJTLBRR.mjs.map +0 -1
- package/dist/chunk-6XNEGG5B.mjs +0 -137
- package/dist/chunk-6XNEGG5B.mjs.map +0 -1
- package/dist/chunk-7F66Y4MA.mjs +0 -1073
- package/dist/chunk-7F66Y4MA.mjs.map +0 -1
- package/dist/chunk-7RLL67F3.js +0 -47
- package/dist/chunk-7RLL67F3.js.map +0 -1
- package/dist/chunk-7THQ4UW3.js +0 -69
- package/dist/chunk-7THQ4UW3.js.map +0 -1
- package/dist/chunk-A2HL22BO.mjs +0 -165
- package/dist/chunk-A2HL22BO.mjs.map +0 -1
- package/dist/chunk-AAZNH3MA.mjs +0 -23
- package/dist/chunk-AAZNH3MA.mjs.map +0 -1
- package/dist/chunk-AEN7EL6N.js +0 -161
- package/dist/chunk-AEN7EL6N.js.map +0 -1
- package/dist/chunk-AGIMH67E.mjs +0 -26
- package/dist/chunk-AGIMH67E.mjs.map +0 -1
- package/dist/chunk-AL4Z6VYF.js +0 -83
- package/dist/chunk-AL4Z6VYF.js.map +0 -1
- package/dist/chunk-AS2HUIDW.mjs +0 -16
- package/dist/chunk-AS2HUIDW.mjs.map +0 -1
- package/dist/chunk-B22WSN4L.mjs +0 -59
- package/dist/chunk-B22WSN4L.mjs.map +0 -1
- package/dist/chunk-B6QPCAEG.mjs +0 -128
- package/dist/chunk-B6QPCAEG.mjs.map +0 -1
- package/dist/chunk-BBBJHYPH.js +0 -19
- package/dist/chunk-BBBJHYPH.js.map +0 -1
- package/dist/chunk-BEXTDHO4.mjs +0 -57
- package/dist/chunk-BEXTDHO4.mjs.map +0 -1
- package/dist/chunk-BHZHWXER.js +0 -791
- package/dist/chunk-BHZHWXER.js.map +0 -1
- package/dist/chunk-BNKBRLJK.mjs +0 -75
- package/dist/chunk-BNKBRLJK.mjs.map +0 -1
- package/dist/chunk-BQP6JIE2.mjs +0 -28
- package/dist/chunk-BQP6JIE2.mjs.map +0 -1
- package/dist/chunk-BZR6RUIN.mjs +0 -128
- package/dist/chunk-BZR6RUIN.mjs.map +0 -1
- package/dist/chunk-C2CTLLIO.mjs +0 -72
- package/dist/chunk-C2CTLLIO.mjs.map +0 -1
- package/dist/chunk-C5VITBN7.mjs +0 -220
- package/dist/chunk-C5VITBN7.mjs.map +0 -1
- package/dist/chunk-CABEVWKJ.mjs +0 -25
- package/dist/chunk-CABEVWKJ.mjs.map +0 -1
- package/dist/chunk-CDRQYJUT.js +0 -355
- package/dist/chunk-CDRQYJUT.js.map +0 -1
- package/dist/chunk-CFRJ2MK5.mjs +0 -16
- package/dist/chunk-CFRJ2MK5.mjs.map +0 -1
- package/dist/chunk-CIM5W3UO.js +0 -26
- package/dist/chunk-CIM5W3UO.js.map +0 -1
- package/dist/chunk-CLO3K7PF.js +0 -19
- package/dist/chunk-CLO3K7PF.js.map +0 -1
- package/dist/chunk-CM4AVKXR.js +0 -533
- package/dist/chunk-CM4AVKXR.js.map +0 -1
- package/dist/chunk-CU6OGBKK.mjs +0 -68
- package/dist/chunk-CU6OGBKK.mjs.map +0 -1
- package/dist/chunk-CUNZAD46.js +0 -53
- package/dist/chunk-CUNZAD46.js.map +0 -1
- package/dist/chunk-CXAXZFFW.js +0 -157
- package/dist/chunk-CXAXZFFW.js.map +0 -1
- package/dist/chunk-D3WJMSTB.mjs +0 -132
- package/dist/chunk-D3WJMSTB.mjs.map +0 -1
- package/dist/chunk-DA7IANFG.mjs +0 -37
- package/dist/chunk-DA7IANFG.mjs.map +0 -1
- package/dist/chunk-DV2LJYFD.js +0 -14
- package/dist/chunk-DV2LJYFD.js.map +0 -1
- package/dist/chunk-DV5KVNA7.js +0 -45
- package/dist/chunk-DV5KVNA7.js.map +0 -1
- package/dist/chunk-DVYYGHSG.js +0 -285
- package/dist/chunk-DVYYGHSG.js.map +0 -1
- package/dist/chunk-DWZGW77V.mjs +0 -1669
- package/dist/chunk-DWZGW77V.mjs.map +0 -1
- package/dist/chunk-EDLNMGQC.mjs +0 -65
- package/dist/chunk-EDLNMGQC.mjs.map +0 -1
- package/dist/chunk-EHJANA5C.js +0 -231
- package/dist/chunk-EHJANA5C.js.map +0 -1
- package/dist/chunk-EMHSHAVW.js +0 -19
- package/dist/chunk-EMHSHAVW.js.map +0 -1
- package/dist/chunk-ESP5RMB7.js +0 -42
- package/dist/chunk-ESP5RMB7.js.map +0 -1
- package/dist/chunk-FCAHV5P3.mjs +0 -45
- package/dist/chunk-FCAHV5P3.mjs.map +0 -1
- package/dist/chunk-FPVYKSXE.mjs +0 -154
- package/dist/chunk-FPVYKSXE.mjs.map +0 -1
- package/dist/chunk-G2KGHIAP.js +0 -176
- package/dist/chunk-G2KGHIAP.js.map +0 -1
- package/dist/chunk-G6WF4G3E.js +0 -43
- package/dist/chunk-G6WF4G3E.js.map +0 -1
- package/dist/chunk-GCPPXUAI.js +0 -72
- package/dist/chunk-GCPPXUAI.js.map +0 -1
- package/dist/chunk-GFSQMK35.mjs +0 -127
- package/dist/chunk-GFSQMK35.mjs.map +0 -1
- package/dist/chunk-GIGUDKLS.mjs +0 -6
- package/dist/chunk-GIGUDKLS.mjs.map +0 -1
- package/dist/chunk-GSRT66PA.js +0 -80
- package/dist/chunk-GSRT66PA.js.map +0 -1
- package/dist/chunk-H4TSADY3.mjs +0 -761
- package/dist/chunk-H4TSADY3.mjs.map +0 -1
- package/dist/chunk-H6AU3WKF.js +0 -108
- package/dist/chunk-H6AU3WKF.js.map +0 -1
- package/dist/chunk-HGNSJXWT.js +0 -55
- package/dist/chunk-HGNSJXWT.js.map +0 -1
- package/dist/chunk-HIZJD7TU.mjs +0 -326
- package/dist/chunk-HIZJD7TU.mjs.map +0 -1
- package/dist/chunk-HPGPOUHU.mjs +0 -105
- package/dist/chunk-HPGPOUHU.mjs.map +0 -1
- package/dist/chunk-HXHDOIV6.js +0 -41
- package/dist/chunk-HXHDOIV6.js.map +0 -1
- package/dist/chunk-I7AZC5ZQ.js +0 -14285
- package/dist/chunk-IBJOGXQI.js +0 -33
- package/dist/chunk-IBJOGXQI.js.map +0 -1
- package/dist/chunk-IMWON7OV.mjs +0 -27
- package/dist/chunk-IMWON7OV.mjs.map +0 -1
- package/dist/chunk-IO65ROAO.js +0 -134
- package/dist/chunk-IO65ROAO.js.map +0 -1
- package/dist/chunk-IWSN4DGG.js +0 -132
- package/dist/chunk-IWSN4DGG.js.map +0 -1
- package/dist/chunk-J7QI3GDX.js +0 -12
- package/dist/chunk-J7QI3GDX.js.map +0 -1
- package/dist/chunk-JA77WXRE.js +0 -30
- package/dist/chunk-JA77WXRE.js.map +0 -1
- package/dist/chunk-JCDX37BY.js +0 -58
- package/dist/chunk-JCDX37BY.js.map +0 -1
- package/dist/chunk-JONWE26J.js +0 -81
- package/dist/chunk-JONWE26J.js.map +0 -1
- package/dist/chunk-JOYMIGR2.mjs +0 -24842
- package/dist/chunk-JP5WGL75.js +0 -62
- package/dist/chunk-JP5WGL75.js.map +0 -1
- package/dist/chunk-JS75ORH7.js +0 -24860
- package/dist/chunk-JSXLTZUP.mjs +0 -255
- package/dist/chunk-JSXLTZUP.mjs.map +0 -1
- package/dist/chunk-JX3PO2MH.js +0 -53
- package/dist/chunk-JX3PO2MH.js.map +0 -1
- package/dist/chunk-KHPJ3CEL.js +0 -72
- package/dist/chunk-KHPJ3CEL.js.map +0 -1
- package/dist/chunk-KP5BFPGT.js +0 -44
- package/dist/chunk-KP5BFPGT.js.map +0 -1
- package/dist/chunk-KR7ATPAN.js +0 -52
- package/dist/chunk-KR7ATPAN.js.map +0 -1
- package/dist/chunk-KZVSB5WE.mjs +0 -21
- package/dist/chunk-KZVSB5WE.mjs.map +0 -1
- package/dist/chunk-LVGSOW2F.js +0 -32
- package/dist/chunk-LVGSOW2F.js.map +0 -1
- package/dist/chunk-M2N7NY3V.js +0 -103
- package/dist/chunk-M2N7NY3V.js.map +0 -1
- package/dist/chunk-MDQLON5R.mjs +0 -101
- package/dist/chunk-MDQLON5R.mjs.map +0 -1
- package/dist/chunk-MHKD34B4.js +0 -1677
- package/dist/chunk-MHKD34B4.js.map +0 -1
- package/dist/chunk-MLVHVKFT.mjs +0 -148
- package/dist/chunk-MLVHVKFT.mjs.map +0 -1
- package/dist/chunk-MU3D5IO7.mjs +0 -283
- package/dist/chunk-MU3D5IO7.mjs.map +0 -1
- package/dist/chunk-MU7DTEUF.mjs +0 -77
- package/dist/chunk-MU7DTEUF.mjs.map +0 -1
- package/dist/chunk-MVHR77V4.js +0 -205
- package/dist/chunk-MVHR77V4.js.map +0 -1
- package/dist/chunk-MXJOKOFK.mjs +0 -51
- package/dist/chunk-MXJOKOFK.mjs.map +0 -1
- package/dist/chunk-NBOBOYMT.js +0 -52
- package/dist/chunk-NBOBOYMT.js.map +0 -1
- package/dist/chunk-NE6QGHFT.mjs +0 -240
- package/dist/chunk-NE6QGHFT.mjs.map +0 -1
- package/dist/chunk-NH2P27MA.js +0 -27
- package/dist/chunk-NH2P27MA.js.map +0 -1
- package/dist/chunk-NN2YE5WT.js +0 -325
- package/dist/chunk-NNZDWY3L.mjs +0 -323
- package/dist/chunk-NSWO43XW.mjs +0 -39
- package/dist/chunk-NSWO43XW.mjs.map +0 -1
- package/dist/chunk-NYXENHD2.mjs +0 -96
- package/dist/chunk-NYXENHD2.mjs.map +0 -1
- package/dist/chunk-O5GHP7UO.js +0 -142
- package/dist/chunk-O5GHP7UO.js.map +0 -1
- package/dist/chunk-OBKS3CPP.mjs +0 -50
- package/dist/chunk-OBKS3CPP.mjs.map +0 -1
- package/dist/chunk-OFBEBMXN.mjs +0 -8014
- package/dist/chunk-OFBEBMXN.mjs.map +0 -1
- package/dist/chunk-OGNX6JT4.js +0 -222
- package/dist/chunk-OGNX6JT4.js.map +0 -1
- package/dist/chunk-OIPG3EGM.js +0 -771
- package/dist/chunk-OIPG3EGM.js.map +0 -1
- package/dist/chunk-OSU4QA5M.js +0 -260
- package/dist/chunk-OSU4QA5M.js.map +0 -1
- package/dist/chunk-OY3PDIB3.js +0 -106
- package/dist/chunk-OY3PDIB3.js.map +0 -1
- package/dist/chunk-P4Y75QSU.js +0 -19
- package/dist/chunk-P4Y75QSU.js.map +0 -1
- package/dist/chunk-PENNTSJE.mjs +0 -99
- package/dist/chunk-PENNTSJE.mjs.map +0 -1
- package/dist/chunk-PFDRQJKJ.js +0 -1079
- package/dist/chunk-PFDRQJKJ.js.map +0 -1
- package/dist/chunk-PGYOBEPL.mjs +0 -150
- package/dist/chunk-PGYOBEPL.mjs.map +0 -1
- package/dist/chunk-PIPGH7GA.js +0 -158
- package/dist/chunk-PIPGH7GA.js.map +0 -1
- package/dist/chunk-PRAHDLKT.js +0 -67
- package/dist/chunk-PRAHDLKT.js.map +0 -1
- package/dist/chunk-PURI56RE.js +0 -8
- package/dist/chunk-PURI56RE.js.map +0 -1
- package/dist/chunk-QAQTDHHT.mjs +0 -1102
- package/dist/chunk-QAQTDHHT.mjs.map +0 -1
- package/dist/chunk-QCS7NWMA.js +0 -161
- package/dist/chunk-QCS7NWMA.js.map +0 -1
- package/dist/chunk-QRHVMTHF.mjs +0 -94
- package/dist/chunk-QRHVMTHF.mjs.map +0 -1
- package/dist/chunk-QZF5NTXQ.mjs +0 -28
- package/dist/chunk-QZF5NTXQ.mjs.map +0 -1
- package/dist/chunk-R5F2JQVX.mjs +0 -41
- package/dist/chunk-R5F2JQVX.mjs.map +0 -1
- package/dist/chunk-RC4WWQXR.js +0 -47
- package/dist/chunk-RC4WWQXR.js.map +0 -1
- package/dist/chunk-RCB6HEHM.mjs +0 -349
- package/dist/chunk-RCB6HEHM.mjs.map +0 -1
- package/dist/chunk-RI6DFQCA.js +0 -539
- package/dist/chunk-RI6DFQCA.js.map +0 -1
- package/dist/chunk-RLUNEEGM.js +0 -336
- package/dist/chunk-RLUNEEGM.js.map +0 -1
- package/dist/chunk-RMDH2HMW.js +0 -108
- package/dist/chunk-RMDH2HMW.js.map +0 -1
- package/dist/chunk-RQROZLH3.js +0 -1153
- package/dist/chunk-RQROZLH3.js.map +0 -1
- package/dist/chunk-SFMNUVDN.mjs +0 -49
- package/dist/chunk-SFMNUVDN.mjs.map +0 -1
- package/dist/chunk-SG7CWD2R.js +0 -138
- package/dist/chunk-SG7CWD2R.js.map +0 -1
- package/dist/chunk-SHLWA6JY.mjs +0 -26
- package/dist/chunk-SHLWA6JY.mjs.map +0 -1
- package/dist/chunk-SNAQBZPT.js +0 -68
- package/dist/chunk-SNAQBZPT.js.map +0 -1
- package/dist/chunk-SUGBIEYQ.js +0 -195
- package/dist/chunk-SUGBIEYQ.js.map +0 -1
- package/dist/chunk-SVCKJ5KH.mjs +0 -193
- package/dist/chunk-SVCKJ5KH.mjs.map +0 -1
- package/dist/chunk-SWIKKSKL.js +0 -19
- package/dist/chunk-SWIKKSKL.js.map +0 -1
- package/dist/chunk-TBXWJJGT.js +0 -468
- package/dist/chunk-TBXWJJGT.js.map +0 -1
- package/dist/chunk-THO4NS6Z.mjs +0 -1416
- package/dist/chunk-THO4NS6Z.mjs.map +0 -1
- package/dist/chunk-TMVKRQGJ.mjs +0 -64
- package/dist/chunk-TMVKRQGJ.mjs.map +0 -1
- package/dist/chunk-TPEPAHU5.mjs +0 -525
- package/dist/chunk-TPEPAHU5.mjs.map +0 -1
- package/dist/chunk-TST2IKYO.js +0 -264
- package/dist/chunk-TST2IKYO.js.map +0 -1
- package/dist/chunk-TULCHQX2.js +0 -29
- package/dist/chunk-TULCHQX2.js.map +0 -1
- package/dist/chunk-U577ITSA.js +0 -23
- package/dist/chunk-U577ITSA.js.map +0 -1
- package/dist/chunk-UCMMIGC6.mjs +0 -156
- package/dist/chunk-UCMMIGC6.mjs.map +0 -1
- package/dist/chunk-UCQDE5UH.mjs +0 -102
- package/dist/chunk-UCQDE5UH.mjs.map +0 -1
- package/dist/chunk-UHYRVALN.mjs +0 -98
- package/dist/chunk-UHYRVALN.mjs.map +0 -1
- package/dist/chunk-UO6KTHBQ.mjs +0 -125
- package/dist/chunk-UO6KTHBQ.mjs.map +0 -1
- package/dist/chunk-UZKXOZHR.js +0 -23
- package/dist/chunk-UZKXOZHR.js.map +0 -1
- package/dist/chunk-VA2O5OSV.mjs +0 -21
- package/dist/chunk-VA2O5OSV.mjs.map +0 -1
- package/dist/chunk-VIGRGMWR.mjs +0 -229
- package/dist/chunk-VIGRGMWR.mjs.map +0 -1
- package/dist/chunk-VJMPIRSD.js +0 -31
- package/dist/chunk-VJMPIRSD.js.map +0 -1
- package/dist/chunk-VJTKIKZY.mjs +0 -782
- package/dist/chunk-VJTKIKZY.mjs.map +0 -1
- package/dist/chunk-VQL7XDIY.mjs +0 -43
- package/dist/chunk-VQL7XDIY.mjs.map +0 -1
- package/dist/chunk-VS67QHNX.mjs +0 -34
- package/dist/chunk-VS67QHNX.mjs.map +0 -1
- package/dist/chunk-VUAGR6VL.js +0 -483
- package/dist/chunk-VUAGR6VL.js.map +0 -1
- package/dist/chunk-WRRVYPMY.mjs +0 -535
- package/dist/chunk-WRRVYPMY.mjs.map +0 -1
- package/dist/chunk-WS7MH3GD.js +0 -40
- package/dist/chunk-WS7MH3GD.js.map +0 -1
- package/dist/chunk-WSPGXSBU.mjs +0 -202
- package/dist/chunk-WSPGXSBU.mjs.map +0 -1
- package/dist/chunk-XEOIGCUE.mjs +0 -480
- package/dist/chunk-XEOIGCUE.mjs.map +0 -1
- package/dist/chunk-Y2CP5J6Q.js +0 -116
- package/dist/chunk-Y2CP5J6Q.js.map +0 -1
- package/dist/chunk-YBKALLBH.js +0 -46
- package/dist/chunk-YBKALLBH.js.map +0 -1
- package/dist/chunk-YMZNEDFP.js +0 -39
- package/dist/chunk-YMZNEDFP.js.map +0 -1
- package/dist/chunk-YPGUV6BT.mjs +0 -30
- package/dist/chunk-YPGUV6BT.mjs.map +0 -1
- package/dist/chunk-YU7QZ3PP.mjs +0 -45
- package/dist/chunk-YU7QZ3PP.mjs.map +0 -1
- package/dist/chunk-YVJASVVK.js +0 -97
- package/dist/chunk-YVJASVVK.js.map +0 -1
- package/dist/chunk-YZJ22HUQ.js +0 -29
- package/dist/chunk-YZJ22HUQ.js.map +0 -1
- package/dist/chunk-Z2URIOKG.mjs +0 -36
- package/dist/chunk-Z2URIOKG.mjs.map +0 -1
- package/dist/chunk-ZN4HBK5C.mjs +0 -17
- package/dist/chunk-ZN4HBK5C.mjs.map +0 -1
- package/dist/chunk-ZVBLXXNJ.mjs +0 -53
- package/dist/chunk-ZVBLXXNJ.mjs.map +0 -1
- package/dist/chunk-ZXC56JS3.js +0 -8071
- package/dist/chunk-ZXC56JS3.js.map +0 -1
- package/dist/chunk-ZZQAGCSI.mjs +0 -43
- package/dist/chunk-ZZQAGCSI.mjs.map +0 -1
- package/dist/cli/agent/checks.d.ts +0 -96
- package/dist/cli/agent/checks.d.ts.map +0 -1
- package/dist/cli/agent/context.d.ts +0 -50
- package/dist/cli/agent/context.d.ts.map +0 -1
- package/dist/cli/agent/envelope.d.ts +0 -98
- package/dist/cli/agent/envelope.d.ts.map +0 -1
- package/dist/cli/agent/errors.d.ts +0 -36
- package/dist/cli/agent/errors.d.ts.map +0 -1
- package/dist/cli/agent/output.d.ts +0 -41
- package/dist/cli/agent/output.d.ts.map +0 -1
- package/dist/cli/agent/ssr-bailout.d.ts +0 -27
- package/dist/cli/agent/ssr-bailout.d.ts.map +0 -1
- package/dist/cli/api/sonor.d.ts +0 -39
- package/dist/cli/api/sonor.d.ts.map +0 -1
- package/dist/cli/codemod/diff.d.ts +0 -14
- package/dist/cli/codemod/diff.d.ts.map +0 -1
- package/dist/cli/codemod/engine.d.ts +0 -26
- package/dist/cli/codemod/engine.d.ts.map +0 -1
- package/dist/cli/codemod/transforms.d.ts +0 -31
- package/dist/cli/codemod/transforms.d.ts.map +0 -1
- package/dist/cli/commands/api-routes.d.ts +0 -13
- package/dist/cli/commands/api-routes.d.ts.map +0 -1
- package/dist/cli/commands/codemod.d.ts +0 -21
- package/dist/cli/commands/codemod.d.ts.map +0 -1
- package/dist/cli/commands/doctor.d.ts +0 -27
- package/dist/cli/commands/doctor.d.ts.map +0 -1
- package/dist/cli/commands/faqs.d.ts +0 -16
- package/dist/cli/commands/faqs.d.ts.map +0 -1
- package/dist/cli/commands/geo.d.ts +0 -18
- package/dist/cli/commands/geo.d.ts.map +0 -1
- package/dist/cli/commands/images.d.ts +0 -85
- package/dist/cli/commands/images.d.ts.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -21
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/install.d.ts +0 -15
- package/dist/cli/commands/install.d.ts.map +0 -1
- package/dist/cli/commands/locations.d.ts +0 -55
- package/dist/cli/commands/locations.d.ts.map +0 -1
- package/dist/cli/commands/manifest.d.ts +0 -17
- package/dist/cli/commands/manifest.d.ts.map +0 -1
- package/dist/cli/commands/migrate.d.ts +0 -19
- package/dist/cli/commands/migrate.d.ts.map +0 -1
- package/dist/cli/commands/next16.d.ts +0 -10
- package/dist/cli/commands/next16.d.ts.map +0 -1
- package/dist/cli/commands/og.d.ts +0 -117
- package/dist/cli/commands/og.d.ts.map +0 -1
- package/dist/cli/commands/scaffold.d.ts +0 -22
- package/dist/cli/commands/scaffold.d.ts.map +0 -1
- package/dist/cli/commands/scan.d.ts +0 -18
- package/dist/cli/commands/scan.d.ts.map +0 -1
- package/dist/cli/commands/setup.d.ts +0 -35
- package/dist/cli/commands/setup.d.ts.map +0 -1
- package/dist/cli/commands/sync.d.ts +0 -22
- package/dist/cli/commands/sync.d.ts.map +0 -1
- package/dist/cli/commands/upgrade.d.ts +0 -15
- package/dist/cli/commands/upgrade.d.ts.map +0 -1
- package/dist/cli/commands/verify.d.ts +0 -22
- package/dist/cli/commands/verify.d.ts.map +0 -1
- package/dist/cli/config.d.ts +0 -31
- package/dist/cli/config.d.ts.map +0 -1
- package/dist/cli/generators/index.d.ts +0 -60
- package/dist/cli/generators/index.d.ts.map +0 -1
- package/dist/cli/index.d.ts +0 -15
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -32904
- package/dist/cli/index.mjs +0 -32872
- package/dist/cli/migrator/index.d.ts +0 -92
- package/dist/cli/migrator/index.d.ts.map +0 -1
- package/dist/cli/scanner/index.d.ts +0 -129
- package/dist/cli/scanner/index.d.ts.map +0 -1
- package/dist/cli/state.d.ts +0 -7
- package/dist/cli/state.d.ts.map +0 -1
- package/dist/client/SiteKitCredential.d.ts.map +0 -1
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js.map +0 -1
- package/dist/client/index.mjs +0 -27
- package/dist/client/index.mjs.map +0 -1
- package/dist/cms/CmsPage.d.ts.map +0 -1
- package/dist/cms/CmsPreview.d.ts.map +0 -1
- package/dist/cms/CmsSection.d.ts.map +0 -1
- package/dist/cms/PortableTextRenderer.d.ts.map +0 -1
- package/dist/cms/index.d.ts.map +0 -1
- package/dist/cms/index.js.map +0 -1
- package/dist/cms/index.mjs +0 -389
- package/dist/cms/index.mjs.map +0 -1
- package/dist/cms/sanity-image.d.ts.map +0 -1
- package/dist/cms/sections/CtaSection.d.ts.map +0 -1
- package/dist/cms/sections/CustomSection.d.ts.map +0 -1
- package/dist/cms/sections/FaqSection.d.ts.map +0 -1
- package/dist/cms/sections/FormSection.d.ts.map +0 -1
- package/dist/cms/sections/GallerySection.d.ts.map +0 -1
- package/dist/cms/sections/HeroSection.d.ts.map +0 -1
- package/dist/cms/sections/RichTextSection.d.ts.map +0 -1
- package/dist/cms/sections/TestimonialsSection.d.ts.map +0 -1
- package/dist/cms/sections/index.d.ts.map +0 -1
- package/dist/cms/server-api.d.ts.map +0 -1
- package/dist/cms/server.d.ts.map +0 -1
- package/dist/cms/server.js.map +0 -1
- package/dist/cms/server.mjs +0 -5
- package/dist/cms/server.mjs.map +0 -1
- package/dist/cms/types.d.ts.map +0 -1
- package/dist/commerce/CalendarView.d.ts.map +0 -1
- package/dist/commerce/CheckoutForm.d.ts.map +0 -1
- package/dist/commerce/EventCalendar.d.ts.map +0 -1
- package/dist/commerce/EventCheckout.d.ts.map +0 -1
- package/dist/commerce/EventEmbed.d.ts.map +0 -1
- package/dist/commerce/EventModal.d.ts.map +0 -1
- package/dist/commerce/EventTile.d.ts.map +0 -1
- package/dist/commerce/EventsAgenda.d.ts.map +0 -1
- package/dist/commerce/EventsWidget.d.ts.map +0 -1
- package/dist/commerce/OfferingCard.d.ts.map +0 -1
- package/dist/commerce/OfferingList.d.ts.map +0 -1
- package/dist/commerce/ProductDetail.d.ts.map +0 -1
- package/dist/commerce/ProductEmbed.d.ts.map +0 -1
- package/dist/commerce/ProductGrid.d.ts.map +0 -1
- package/dist/commerce/ProductPage.d.ts.map +0 -1
- package/dist/commerce/RegistrationForm.d.ts.map +0 -1
- package/dist/commerce/SizeChart.d.ts.map +0 -1
- package/dist/commerce/UpcomingEvents.d.ts.map +0 -1
- package/dist/commerce/api.d.ts.map +0 -1
- package/dist/commerce/events-extras.d.ts.map +0 -1
- package/dist/commerce/index.d.ts.map +0 -1
- package/dist/commerce/index.js.map +0 -1
- package/dist/commerce/index.mjs +0 -16
- package/dist/commerce/index.mjs.map +0 -1
- package/dist/commerce/server.d.ts.map +0 -1
- package/dist/commerce/server.js.map +0 -1
- package/dist/commerce/server.mjs +0 -237
- package/dist/commerce/server.mjs.map +0 -1
- package/dist/commerce/types.d.ts.map +0 -1
- package/dist/commerce/useEventModal.d.ts.map +0 -1
- package/dist/commerce/utils.d.ts.map +0 -1
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js.map +0 -1
- package/dist/config/index.mjs +0 -116
- package/dist/config/index.mjs.map +0 -1
- package/dist/cta-bar/CtaBar.d.ts.map +0 -1
- package/dist/cta-bar/CtaBarBehavior.d.ts.map +0 -1
- package/dist/cta-bar/client.d.ts.map +0 -1
- package/dist/cta-bar/client.js.map +0 -1
- package/dist/cta-bar/client.mjs +0 -6
- package/dist/cta-bar/client.mjs.map +0 -1
- package/dist/cta-bar/index.d.ts.map +0 -1
- package/dist/cta-bar/index.js.map +0 -1
- package/dist/cta-bar/index.mjs +0 -221
- package/dist/cta-bar/index.mjs.map +0 -1
- package/dist/cta-bar/styles.d.ts.map +0 -1
- package/dist/discover-LPN55L5B.js +0 -21
- package/dist/discover-LPN55L5B.js.map +0 -1
- package/dist/discover-QGA6QFSR.mjs +0 -4
- package/dist/discover-QGA6QFSR.mjs.map +0 -1
- package/dist/engage/ChatWidget.d.ts.map +0 -1
- package/dist/engage/DesignRenderer.d.ts.map +0 -1
- package/dist/engage/EchoUiActions.d.ts.map +0 -1
- package/dist/engage/EngageWidget.d.ts.map +0 -1
- package/dist/engage/brand-color.d.ts.map +0 -1
- package/dist/engage/chat-messages.d.ts.map +0 -1
- package/dist/engage/echo-config.d.ts.map +0 -1
- package/dist/engage/element-rules.d.ts.map +0 -1
- package/dist/engage/index.d.ts.map +0 -1
- package/dist/engage/index.js.map +0 -1
- package/dist/engage/index.mjs +0 -51
- package/dist/engage/index.mjs.map +0 -1
- package/dist/engage/launcher-placement.d.ts.map +0 -1
- package/dist/engage/socket-loader.d.ts.map +0 -1
- package/dist/engage/types.d.ts.map +0 -1
- package/dist/fleet/FleetHeartbeat.d.ts.map +0 -1
- package/dist/fleet/contract.d.ts.map +0 -1
- package/dist/fleet/contract.js.map +0 -1
- package/dist/fleet/contract.mjs +0 -4
- package/dist/fleet/contract.mjs.map +0 -1
- package/dist/fleet/heartbeat.d.ts.map +0 -1
- package/dist/fleet/index.d.ts.map +0 -1
- package/dist/fleet/index.js.map +0 -1
- package/dist/fleet/index.mjs +0 -12
- package/dist/fleet/index.mjs.map +0 -1
- package/dist/forms/DatePicker.d.ts.map +0 -1
- package/dist/forms/FileField.d.ts.map +0 -1
- package/dist/forms/FormCelebration.d.ts.map +0 -1
- package/dist/forms/FormClient.d.ts.map +0 -1
- package/dist/forms/FormEnhancer.d.ts.map +0 -1
- package/dist/forms/FormField.d.ts.map +0 -1
- package/dist/forms/FormSpotlight.d.ts.map +0 -1
- package/dist/forms/FormStage.d.ts.map +0 -1
- package/dist/forms/HoneypotField.d.ts.map +0 -1
- package/dist/forms/ManagedForm.d.ts.map +0 -1
- package/dist/forms/ServerForm.d.ts.map +0 -1
- package/dist/forms/StaticForm.d.ts.map +0 -1
- package/dist/forms/contract.d.ts.map +0 -1
- package/dist/forms/contract.js.map +0 -1
- package/dist/forms/contract.mjs +0 -4
- package/dist/forms/contract.mjs.map +0 -1
- package/dist/forms/defaultSuccessMessage.d.ts.map +0 -1
- package/dist/forms/delight.d.ts.map +0 -1
- package/dist/forms/experience-chrome.d.ts.map +0 -1
- package/dist/forms/experience-plan.d.ts.map +0 -1
- package/dist/forms/field-controls.d.ts.map +0 -1
- package/dist/forms/field-interactions.d.ts.map +0 -1
- package/dist/forms/field-rules.d.ts.map +0 -1
- package/dist/forms/form-values.d.ts.map +0 -1
- package/dist/forms/formsApi.d.ts.map +0 -1
- package/dist/forms/ga4-identity.d.ts.map +0 -1
- package/dist/forms/index.d.ts.map +0 -1
- package/dist/forms/index.js.map +0 -1
- package/dist/forms/index.mjs +0 -341
- package/dist/forms/index.mjs.map +0 -1
- package/dist/forms/normalize-config.d.ts.map +0 -1
- package/dist/forms/recaptcha-warmup.d.ts.map +0 -1
- package/dist/forms/recaptcha.d.ts.map +0 -1
- package/dist/forms/server.d.ts.map +0 -1
- package/dist/forms/server.js.map +0 -1
- package/dist/forms/server.mjs +0 -61
- package/dist/forms/server.mjs.map +0 -1
- package/dist/forms/static.d.ts.map +0 -1
- package/dist/forms/static.js.map +0 -1
- package/dist/forms/static.mjs +0 -8
- package/dist/forms/static.mjs.map +0 -1
- package/dist/forms/submitForm.d.ts.map +0 -1
- package/dist/forms/tracking-session.d.ts.map +0 -1
- package/dist/forms/types.d.ts.map +0 -1
- package/dist/forms/useForm.d.ts.map +0 -1
- package/dist/forms/useFormTracking.d.ts.map +0 -1
- package/dist/images/ManagedFavicon.d.ts.map +0 -1
- package/dist/images/ManagedImage.d.ts.map +0 -1
- package/dist/images/api.d.ts.map +0 -1
- package/dist/images/index.d.ts.map +0 -1
- package/dist/images/index.js.map +0 -1
- package/dist/images/index.mjs +0 -8
- package/dist/images/index.mjs.map +0 -1
- package/dist/images/server.d.ts.map +0 -1
- package/dist/images/server.js.map +0 -1
- package/dist/images/server.mjs +0 -4
- package/dist/images/server.mjs.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -173
- package/dist/index.mjs.map +0 -1
- package/dist/landing/LandingPage.d.ts.map +0 -1
- package/dist/landing/contract.d.ts.map +0 -1
- package/dist/landing/index.d.ts.map +0 -1
- package/dist/landing/index.js.map +0 -1
- package/dist/landing/index.mjs +0 -5
- package/dist/landing/index.mjs.map +0 -1
- package/dist/landing/metadata.d.ts.map +0 -1
- package/dist/landing/server.d.ts.map +0 -1
- package/dist/landing/server.js.map +0 -1
- package/dist/landing/server.mjs +0 -4
- package/dist/landing/server.mjs.map +0 -1
- package/dist/layout/SiteKitClientProviders.d.ts.map +0 -1
- package/dist/layout/SiteKitLayout.d.ts.map +0 -1
- package/dist/layout/SpeculationRules.d.ts.map +0 -1
- package/dist/layout/client.d.ts.map +0 -1
- package/dist/layout/client.js.map +0 -1
- package/dist/layout/client.mjs +0 -19
- package/dist/layout/client.mjs.map +0 -1
- package/dist/layout/index.d.ts.map +0 -1
- package/dist/layout/index.js.map +0 -1
- package/dist/layout/index.mjs +0 -106
- package/dist/layout/index.mjs.map +0 -1
- package/dist/layout/types.d.ts.map +0 -1
- package/dist/lib-6HOOMENJ.js +0 -28
- package/dist/lib-BGAWCSUH.js +0 -31
- package/dist/lib-R7IQ4ZHE.mjs +0 -3
- package/dist/lib-RSDMEKDQ.mjs +0 -4
- package/dist/llms/AEOComponents.d.ts.map +0 -1
- package/dist/llms/SpeakableSchema.d.ts.map +0 -1
- package/dist/llms/aiRobots.d.ts.map +0 -1
- package/dist/llms/api.d.ts.map +0 -1
- package/dist/llms/client.d.ts.map +0 -1
- package/dist/llms/client.js.map +0 -1
- package/dist/llms/client.mjs +0 -5
- package/dist/llms/client.mjs.map +0 -1
- package/dist/llms/contract.d.ts.map +0 -1
- package/dist/llms/contract.js.map +0 -1
- package/dist/llms/contract.mjs +0 -4
- package/dist/llms/contract.mjs.map +0 -1
- package/dist/llms/discovery-headers.d.ts.map +0 -1
- package/dist/llms/generateLLMsTxt.d.ts.map +0 -1
- package/dist/llms/handlers.d.ts.map +0 -1
- package/dist/llms/humanize-industry.d.ts.map +0 -1
- package/dist/llms/index.d.ts.map +0 -1
- package/dist/llms/index.js.map +0 -1
- package/dist/llms/index.mjs +0 -286
- package/dist/llms/index.mjs.map +0 -1
- package/dist/llms/links.d.ts.map +0 -1
- package/dist/llms/revalidate.d.ts.map +0 -1
- package/dist/llms/seo-revalidate.d.ts.map +0 -1
- package/dist/llms/sourcedFacts.d.ts.map +0 -1
- package/dist/llms/types.d.ts.map +0 -1
- package/dist/llms/wiring.d.ts +0 -103
- package/dist/llms/wiring.d.ts.map +0 -1
- package/dist/llms/writeLLMsTxt.d.ts.map +0 -1
- package/dist/manifest/index.d.ts.map +0 -1
- package/dist/manifest/index.js.map +0 -1
- package/dist/manifest/index.mjs +0 -83
- package/dist/manifest/index.mjs.map +0 -1
- package/dist/maps/GoogleMap.d.ts.map +0 -1
- package/dist/maps/NeighborhoodMap.d.ts.map +0 -1
- package/dist/maps/api.d.ts.map +0 -1
- package/dist/maps/index.d.ts.map +0 -1
- package/dist/maps/index.js.map +0 -1
- package/dist/maps/index.mjs +0 -361
- package/dist/maps/index.mjs.map +0 -1
- package/dist/maps/types.d.ts.map +0 -1
- package/dist/mcp/WebMcpTools.d.ts.map +0 -1
- package/dist/mcp/client.d.ts.map +0 -1
- package/dist/mcp/client.js.map +0 -1
- package/dist/mcp/client.mjs +0 -129
- package/dist/mcp/client.mjs.map +0 -1
- package/dist/mcp/declarative.d.ts.map +0 -1
- package/dist/mcp/handlers.d.ts.map +0 -1
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/index.mjs +0 -509
- package/dist/mcp/index.mjs.map +0 -1
- package/dist/mcp/protocol.d.ts.map +0 -1
- package/dist/mcp/serverCard.d.ts.map +0 -1
- package/dist/mcp/transport.d.ts.map +0 -1
- package/dist/mcp/transport.js.map +0 -1
- package/dist/mcp/transport.mjs +0 -123
- package/dist/mcp/transport.mjs.map +0 -1
- package/dist/mcp/types.d.ts.map +0 -1
- package/dist/motion/CountUp.d.ts.map +0 -1
- package/dist/motion/Parallax.d.ts.map +0 -1
- package/dist/motion/Reveal.d.ts.map +0 -1
- package/dist/motion/ScrollScene.d.ts.map +0 -1
- package/dist/motion/engine.d.ts.map +0 -1
- package/dist/motion/failsafe.d.ts.map +0 -1
- package/dist/motion/gsap.d.ts.map +0 -1
- package/dist/motion/gsap.js.map +0 -1
- package/dist/motion/gsap.mjs +0 -220
- package/dist/motion/gsap.mjs.map +0 -1
- package/dist/motion/index.d.ts.map +0 -1
- package/dist/motion/index.js.map +0 -1
- package/dist/motion/index.mjs +0 -209
- package/dist/motion/index.mjs.map +0 -1
- package/dist/motion/three.d.ts.map +0 -1
- package/dist/motion/three.js.map +0 -1
- package/dist/motion/three.mjs +0 -145
- package/dist/motion/three.mjs.map +0 -1
- package/dist/og/config.d.ts.map +0 -1
- package/dist/og/contrast.d.ts.map +0 -1
- package/dist/og/index.d.ts.map +0 -1
- package/dist/og/index.js.map +0 -1
- package/dist/og/index.mjs +0 -6
- package/dist/og/index.mjs.map +0 -1
- package/dist/og/pages.d.ts.map +0 -1
- package/dist/og/route-copy.d.ts +0 -34
- package/dist/og/route-copy.d.ts.map +0 -1
- package/dist/og/route-fit.d.ts.map +0 -1
- package/dist/og/route.d.ts.map +0 -1
- package/dist/og/route.js.map +0 -1
- package/dist/og/route.mjs +0 -239
- package/dist/og/route.mjs.map +0 -1
- package/dist/og/template.d.ts.map +0 -1
- package/dist/og/wiring.d.ts +0 -100
- package/dist/og/wiring.d.ts.map +0 -1
- package/dist/portfolio/contract.d.ts.map +0 -1
- package/dist/portfolio/contract.js.map +0 -1
- package/dist/portfolio/contract.mjs +0 -115
- package/dist/portfolio/contract.mjs.map +0 -1
- package/dist/proxy/index.d.ts.map +0 -1
- package/dist/proxy/index.js.map +0 -1
- package/dist/proxy/index.mjs +0 -170
- package/dist/proxy/index.mjs.map +0 -1
- package/dist/proxy/securityHeaders.d.ts.map +0 -1
- package/dist/proxy/segment.d.ts.map +0 -1
- package/dist/redirects/index.d.ts.map +0 -1
- package/dist/redirects/index.js.map +0 -1
- package/dist/redirects/index.mjs +0 -8
- package/dist/redirects/index.mjs.map +0 -1
- package/dist/redirects/not-found.d.ts +0 -31
- package/dist/redirects/not-found.d.ts.map +0 -1
- package/dist/redirects/not-found.js +0 -47
- package/dist/redirects/not-found.js.map +0 -1
- package/dist/redirects/not-found.mjs +0 -45
- package/dist/redirects/not-found.mjs.map +0 -1
- package/dist/reputation/TestimonialSection.d.ts.map +0 -1
- package/dist/reputation/api.d.ts.map +0 -1
- package/dist/reputation/index.d.ts.map +0 -1
- package/dist/reputation/index.js.map +0 -1
- package/dist/reputation/index.mjs +0 -5
- package/dist/reputation/index.mjs.map +0 -1
- package/dist/reputation/server.d.ts.map +0 -1
- package/dist/reputation/server.js.map +0 -1
- package/dist/reputation/server.mjs +0 -4
- package/dist/reputation/server.mjs.map +0 -1
- package/dist/reputation/types.d.ts.map +0 -1
- package/dist/robots/index.d.ts.map +0 -1
- package/dist/robots/index.js.map +0 -1
- package/dist/robots/index.mjs +0 -53
- package/dist/robots/index.mjs.map +0 -1
- package/dist/robots/indexnow.d.ts.map +0 -1
- package/dist/robots/indexnow.js.map +0 -1
- package/dist/robots/indexnow.mjs +0 -34
- package/dist/robots/indexnow.mjs.map +0 -1
- package/dist/robots/next-internals.d.ts.map +0 -1
- package/dist/search/contract.d.ts +0 -62
- package/dist/search/contract.d.ts.map +0 -1
- package/dist/search/contract.js +0 -17
- package/dist/search/contract.js.map +0 -1
- package/dist/search/contract.mjs +0 -4
- package/dist/search/contract.mjs.map +0 -1
- package/dist/search/index.d.ts +0 -52
- package/dist/search/index.d.ts.map +0 -1
- package/dist/search/index.js +0 -105
- package/dist/search/index.js.map +0 -1
- package/dist/search/index.mjs +0 -99
- package/dist/search/index.mjs.map +0 -1
- package/dist/seo/LocationPageContent.d.ts +0 -64
- package/dist/seo/LocationPageContent.d.ts.map +0 -1
- package/dist/seo/ManagedContent.d.ts.map +0 -1
- package/dist/seo/ManagedFAQ.d.ts.map +0 -1
- package/dist/seo/ManagedInternalLinks.d.ts.map +0 -1
- package/dist/seo/ManagedSchema.d.ts.map +0 -1
- package/dist/seo/ManagedScripts.d.ts.map +0 -1
- package/dist/seo/api.d.ts.map +0 -1
- package/dist/seo/client.d.ts.map +0 -1
- package/dist/seo/client.js.map +0 -1
- package/dist/seo/client.mjs +0 -11
- package/dist/seo/client.mjs.map +0 -1
- package/dist/seo/getManagedMetadata.d.ts.map +0 -1
- package/dist/seo/groundingSchema.d.ts.map +0 -1
- package/dist/seo/index.d.ts.map +0 -1
- package/dist/seo/index.js.map +0 -1
- package/dist/seo/index.mjs +0 -702
- package/dist/seo/index.mjs.map +0 -1
- package/dist/seo/register-sitemap-cli-impl.d.ts.map +0 -1
- package/dist/seo/register-sitemap-cli.d.ts.map +0 -1
- package/dist/seo/register-sitemap-cli.mjs +0 -528
- package/dist/seo/register-sitemap-request.d.ts.map +0 -1
- package/dist/seo/routing.d.ts.map +0 -1
- package/dist/seo/safeJsonLd.d.ts.map +0 -1
- package/dist/seo/schema-filter.d.ts.map +0 -1
- package/dist/seo/server-api.d.ts.map +0 -1
- package/dist/seo/server.d.ts.map +0 -1
- package/dist/seo/server.js.map +0 -1
- package/dist/seo/server.mjs +0 -11
- package/dist/seo/server.mjs.map +0 -1
- package/dist/seo/types.d.ts.map +0 -1
- package/dist/seo/withManagedMetadata.d.ts.map +0 -1
- package/dist/seo-meta/contract.d.ts.map +0 -1
- package/dist/seo-meta/contract.js.map +0 -1
- package/dist/seo-meta/contract.mjs +0 -4
- package/dist/seo-meta/contract.mjs.map +0 -1
- package/dist/seo-pages/contract.d.ts.map +0 -1
- package/dist/seo-pages/contract.js.map +0 -1
- package/dist/seo-pages/contract.mjs +0 -45
- package/dist/seo-pages/contract.mjs.map +0 -1
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js.map +0 -1
- package/dist/server/index.mjs +0 -7
- package/dist/server/index.mjs.map +0 -1
- package/dist/server/mint-site-token.d.ts.map +0 -1
- package/dist/server/server-fetch.d.ts.map +0 -1
- package/dist/server-api-7F5P6CSH.mjs +0 -9
- package/dist/server-api-7F5P6CSH.mjs.map +0 -1
- package/dist/server-api-OC5JNK6R.js +0 -86
- package/dist/server-api-OC5JNK6R.js.map +0 -1
- package/dist/setup/index.d.ts +0 -12
- package/dist/setup/index.d.ts.map +0 -1
- package/dist/setup/index.js +0 -4
- package/dist/setup/index.js.map +0 -1
- package/dist/setup/index.mjs +0 -3
- package/dist/setup/index.mjs.map +0 -1
- package/dist/shared/build-entries.d.ts.map +0 -1
- package/dist/shared/color.d.ts.map +0 -1
- package/dist/shared/defer.d.ts.map +0 -1
- package/dist/shared/fetchWithRetry.d.ts.map +0 -1
- package/dist/shared/frame.d.ts.map +0 -1
- package/dist/shared/fresh-fetch.d.ts.map +0 -1
- package/dist/shared/glass.d.ts.map +0 -1
- package/dist/shared/identity.d.ts.map +0 -1
- package/dist/shared/next-files.d.ts.map +0 -1
- package/dist/shared/page-leave.d.ts.map +0 -1
- package/dist/shared/publishCredential.d.ts.map +0 -1
- package/dist/shared/reporting-gate.d.ts.map +0 -1
- package/dist/shared/request-guards.d.ts.map +0 -1
- package/dist/shared/siteToken.d.ts.map +0 -1
- package/dist/shared/sonorFetch.d.ts.map +0 -1
- package/dist/shared/source-graph.d.ts.map +0 -1
- package/dist/shared/uuid.d.ts.map +0 -1
- package/dist/shared/version.d.ts.map +0 -1
- package/dist/shared/visual-viewport-gap.d.ts.map +0 -1
- package/dist/signal/SignalBridge.d.ts.map +0 -1
- package/dist/signal/SignalCore.d.ts.map +0 -1
- package/dist/signal/SignalExperiment.d.ts.map +0 -1
- package/dist/signal/index.d.ts.map +0 -1
- package/dist/signal/index.js.map +0 -1
- package/dist/signal/index.mjs +0 -6
- package/dist/signal/index.mjs.map +0 -1
- package/dist/signal/store.d.ts.map +0 -1
- package/dist/signal/types.d.ts.map +0 -1
- package/dist/site-config/index.d.ts.map +0 -1
- package/dist/site-config/index.js.map +0 -1
- package/dist/site-config/index.mjs +0 -4
- package/dist/site-config/index.mjs.map +0 -1
- package/dist/sitemap/discover.d.ts.map +0 -1
- package/dist/sitemap/index.d.ts.map +0 -1
- package/dist/sitemap/index.js.map +0 -1
- package/dist/sitemap/index.mjs +0 -549
- package/dist/sitemap/index.mjs.map +0 -1
- package/dist/sitemap/shared.d.ts.map +0 -1
- package/dist/sites/contract.d.ts.map +0 -1
- package/dist/sites/contract.js.map +0 -1
- package/dist/sites/contract.mjs +0 -5
- package/dist/sites/contract.mjs.map +0 -1
- package/dist/sites/normalize.d.ts.map +0 -1
- package/dist/sites/resolve.d.ts.map +0 -1
- package/dist/sites/site-param.d.ts.map +0 -1
- package/dist/slots/ManagedSlot.d.ts.map +0 -1
- package/dist/slots/contract.d.ts.map +0 -1
- package/dist/slots/contract.js.map +0 -1
- package/dist/slots/contract.mjs +0 -4
- package/dist/slots/contract.mjs.map +0 -1
- package/dist/slots/index.d.ts.map +0 -1
- package/dist/slots/index.js.map +0 -1
- package/dist/slots/index.mjs +0 -142
- package/dist/slots/index.mjs.map +0 -1
- package/dist/slots/revalidate.d.ts.map +0 -1
- package/dist/slots/server-api.d.ts.map +0 -1
- package/dist/socket-loader-2NYBMBFQ.js +0 -16
- package/dist/socket-loader-2NYBMBFQ.js.map +0 -1
- package/dist/socket-loader-JA2DI2RT.mjs +0 -14
- package/dist/socket-loader-JA2DI2RT.mjs.map +0 -1
- package/dist/sync/AddToCalendar.d.ts.map +0 -1
- package/dist/sync/BookingWidget.d.ts.map +0 -1
- package/dist/sync/MeetingFormatStep.d.ts.map +0 -1
- package/dist/sync/api.d.ts.map +0 -1
- package/dist/sync/booking-flow.d.ts.map +0 -1
- package/dist/sync/index.d.ts.map +0 -1
- package/dist/sync/index.js.map +0 -1
- package/dist/sync/index.mjs +0 -7
- package/dist/sync/index.mjs.map +0 -1
- package/dist/sync/types.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/web-vitals.attribution-7LKLZ5GR.mjs +0 -524
- package/dist/web-vitals.attribution-7LKLZ5GR.mjs.map +0 -1
- package/dist/web-vitals.attribution-ONVYQNRB.js +0 -535
- package/dist/web-vitals.attribution-ONVYQNRB.js.map +0 -1
- package/dist/writeLLMsTxt-IYJILIU3.mjs +0 -11
- package/dist/writeLLMsTxt-SQG4B63X.js +0 -20
- package/scripts/postinstall.cjs +0 -67
package/dist/chunk-CU6OGBKK.mjs
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
-
|
|
3
|
-
// src/images/ManagedFavicon.tsx
|
|
4
|
-
function toAbsoluteFaviconUrl(url, apiBase) {
|
|
5
|
-
if (!url) return void 0;
|
|
6
|
-
if (url.startsWith("http://") || url.startsWith("https://")) return url;
|
|
7
|
-
const base = apiBase.replace(/\/$/, "");
|
|
8
|
-
return url.startsWith("/") ? `${base}${url}` : `${base}/${url}`;
|
|
9
|
-
}
|
|
10
|
-
async function fetchFaviconData(apiUrl, apiKey) {
|
|
11
|
-
try {
|
|
12
|
-
const res = await fetch(`${apiUrl}/public/images/slot/favicon`, {
|
|
13
|
-
headers: {
|
|
14
|
-
"Content-Type": "application/json",
|
|
15
|
-
"x-api-key": apiKey
|
|
16
|
-
},
|
|
17
|
-
next: { revalidate: 3600 }
|
|
18
|
-
// Cache 1hr – favicon rarely changes, allows static generation
|
|
19
|
-
});
|
|
20
|
-
if (!res.ok) {
|
|
21
|
-
console.warn("[ManagedFavicon] Failed to fetch:", res.status);
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
const data = await res.json();
|
|
25
|
-
if (data.image && !data.is_placeholder) {
|
|
26
|
-
const raw = data.image.public_url || data.image.external_url;
|
|
27
|
-
const public_url = toAbsoluteFaviconUrl(raw, apiUrl);
|
|
28
|
-
return {
|
|
29
|
-
public_url: public_url || void 0,
|
|
30
|
-
mime_type: data.image.file?.mime_type,
|
|
31
|
-
is_placeholder: false
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
return null;
|
|
35
|
-
} catch (err) {
|
|
36
|
-
console.error("[ManagedFavicon] Error fetching favicon:", err);
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
async function getManagedFaviconUrl(apiKey, apiUrl = process.env.SONOR_API_URL || "https://api.sonor.io") {
|
|
41
|
-
const key = apiKey ?? process.env.SONOR_API_KEY;
|
|
42
|
-
if (!key) return null;
|
|
43
|
-
const data = await fetchFaviconData(apiUrl, key);
|
|
44
|
-
return data?.public_url ?? null;
|
|
45
|
-
}
|
|
46
|
-
async function ManagedFavicon({
|
|
47
|
-
apiKey = process.env.SONOR_API_KEY,
|
|
48
|
-
apiUrl = process.env.SONOR_API_URL || "https://api.sonor.io",
|
|
49
|
-
fallback = "/favicon.ico",
|
|
50
|
-
themeColor = "#4bbf39"
|
|
51
|
-
}) {
|
|
52
|
-
const faviconData = apiKey && apiUrl ? await fetchFaviconData(apiUrl, apiKey) : null;
|
|
53
|
-
const faviconUrl = faviconData?.public_url || fallback;
|
|
54
|
-
const mimeType = faviconData?.mime_type || "image/x-icon";
|
|
55
|
-
const isSvg = mimeType === "image/svg+xml" || faviconUrl.endsWith(".svg");
|
|
56
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
57
|
-
isSvg ? /* @__PURE__ */ jsx("link", { rel: "icon", type: "image/svg+xml", href: faviconUrl }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
58
|
-
/* @__PURE__ */ jsx("link", { rel: "icon", type: "image/png", sizes: "32x32", href: faviconUrl }),
|
|
59
|
-
/* @__PURE__ */ jsx("link", { rel: "icon", type: "image/png", sizes: "16x16", href: faviconUrl })
|
|
60
|
-
] }),
|
|
61
|
-
/* @__PURE__ */ jsx("link", { rel: "apple-touch-icon", sizes: "180x180", href: faviconUrl }),
|
|
62
|
-
/* @__PURE__ */ jsx("meta", { name: "theme-color", content: themeColor })
|
|
63
|
-
] });
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export { ManagedFavicon, fetchFaviconData, getManagedFaviconUrl };
|
|
67
|
-
//# sourceMappingURL=chunk-CU6OGBKK.mjs.map
|
|
68
|
-
//# sourceMappingURL=chunk-CU6OGBKK.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/images/ManagedFavicon.tsx"],"names":[],"mappings":"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","file":"chunk-CU6OGBKK.mjs","sourcesContent":["/**\n * ManagedFavicon Component\n * \n * Server component that renders favicon link tags using the project's logo.\n * When a logo is uploaded in Project Settings, it's automatically synced\n * to the 'favicon' slot in site_managed_images.\n * \n * Usage:\n * ```tsx\n * import { ManagedFavicon } from '@sonordev/site-kit/images'\n * \n * export default function RootLayout({ children }) {\n * return (\n * <html>\n * <head>\n * <ManagedFavicon />\n * </head>\n * <body>{children}</body>\n * </html>\n * )\n * }\n * ```\n * \n * Supports:\n * - SVG favicons (best for modern browsers, scales perfectly)\n * - PNG favicons with multiple sizes\n * - Apple touch icons\n * - Theme color for mobile browsers\n */\n\nimport React from 'react'\n\nexport interface ManagedFaviconProps {\n /**\n * API key for Portal API authentication\n * Defaults to SONOR_API_KEY env var\n */\n apiKey?: string\n \n /**\n * API URL (defaults to https://api.sonor.io)\n */\n apiUrl?: string\n \n /**\n * Fallback favicon URL if no managed favicon is set\n */\n fallback?: string\n \n /**\n * Theme color for mobile browser chrome\n * Defaults to #4bbf39 (Sonor brand primary)\n */\n themeColor?: string\n}\n\ninterface FaviconData {\n public_url?: string\n mime_type?: string\n is_placeholder?: boolean\n}\n\n/** If url is relative (e.g. /uploads/... from API), resolve against base so production can load it. */\nfunction toAbsoluteFaviconUrl(url: string | undefined, apiBase: string): string | undefined {\n if (!url) return undefined\n if (url.startsWith('http://') || url.startsWith('https://')) return url\n const base = apiBase.replace(/\\/$/, '')\n return url.startsWith('/') ? `${base}${url}` : `${base}/${url}`\n}\n\n/**\n * Server-side fetch of favicon data.\n * Exported for use in generateMetadata (single source for favicon URL).\n */\nexport async function fetchFaviconData(apiUrl: string, apiKey: string): Promise<FaviconData | null> {\n try {\n const res = await fetch(`${apiUrl}/public/images/slot/favicon`, {\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n },\n next: { revalidate: 3600 }, // Cache 1hr – favicon rarely changes, allows static generation\n })\n\n if (!res.ok) {\n console.warn('[ManagedFavicon] Failed to fetch:', res.status)\n return null\n }\n\n const data = await res.json()\n if (data.image && !data.is_placeholder) {\n const raw = data.image.public_url || data.image.external_url\n const public_url = toAbsoluteFaviconUrl(raw, apiUrl)\n return {\n public_url: public_url || undefined,\n mime_type: data.image.file?.mime_type,\n is_placeholder: false,\n }\n }\n return null\n } catch (err) {\n console.error('[ManagedFavicon] Error fetching favicon:', err)\n return null\n }\n}\n\n/**\n * Return the managed favicon URL for the project (from API key).\n * Use in generateMetadata to set metadata.icons so favicon is consistent across all sites.\n */\nexport async function getManagedFaviconUrl(\n apiKey?: string,\n apiUrl: string = process.env.SONOR_API_URL || 'https://api.sonor.io'\n): Promise<string | null> {\n const key = apiKey ?? process.env.SONOR_API_KEY\n if (!key) return null\n const data = await fetchFaviconData(apiUrl, key)\n return data?.public_url ?? null\n}\n\nexport async function ManagedFavicon({\n apiKey = process.env.SONOR_API_KEY,\n apiUrl = process.env.SONOR_API_URL || 'https://api.sonor.io',\n fallback = '/favicon.ico',\n themeColor = '#4bbf39',\n}: ManagedFaviconProps) {\n // Fetch favicon data during SSR\n const faviconData = apiKey && apiUrl ? await fetchFaviconData(apiUrl, apiKey) : null\n \n const faviconUrl = faviconData?.public_url || fallback\n const mimeType = faviconData?.mime_type || 'image/x-icon'\n const isSvg = mimeType === 'image/svg+xml' || faviconUrl.endsWith('.svg')\n\n return (\n <>\n {/* Primary favicon */}\n {isSvg ? (\n <link rel=\"icon\" type=\"image/svg+xml\" href={faviconUrl} />\n ) : (\n <>\n <link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href={faviconUrl} />\n <link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href={faviconUrl} />\n </>\n )}\n \n {/* Apple touch icon (for iOS home screen) */}\n <link rel=\"apple-touch-icon\" sizes=\"180x180\" href={faviconUrl} />\n \n {/* Theme color for mobile browsers */}\n <meta name=\"theme-color\" content={themeColor} />\n </>\n )\n}"]}
|
package/dist/chunk-CUNZAD46.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
// src/og/config.ts
|
|
4
|
-
function defineOgCard(config) {
|
|
5
|
-
return config;
|
|
6
|
-
}
|
|
7
|
-
var OG_WIDTH = 1200;
|
|
8
|
-
var OG_HEIGHT = 630;
|
|
9
|
-
var TITLE_MAX_PX = 104;
|
|
10
|
-
var TITLE_MIN_PX = 56;
|
|
11
|
-
var OG_REPORT_ATTR = "data-og-report";
|
|
12
|
-
|
|
13
|
-
// src/og/contrast.ts
|
|
14
|
-
var AA_LARGE = 3;
|
|
15
|
-
function parseHexColor(color) {
|
|
16
|
-
const hex = color.trim().replace(/^#/, "");
|
|
17
|
-
if (!/^([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(hex)) return null;
|
|
18
|
-
const full = hex.length === 3 ? hex.replace(/./g, (c) => c + c) : hex.slice(0, 6);
|
|
19
|
-
return [0, 2, 4].map((i) => parseInt(full.slice(i, i + 2), 16));
|
|
20
|
-
}
|
|
21
|
-
function luminance([r, g, b]) {
|
|
22
|
-
const channel = (v) => {
|
|
23
|
-
const s = v / 255;
|
|
24
|
-
return s <= 0.03928 ? s / 12.92 : ((s + 0.055) / 1.055) ** 2.4;
|
|
25
|
-
};
|
|
26
|
-
return 0.2126 * channel(r) + 0.7152 * channel(g) + 0.0722 * channel(b);
|
|
27
|
-
}
|
|
28
|
-
function contrastRatio(a, b) {
|
|
29
|
-
const ca = parseHexColor(a);
|
|
30
|
-
const cb = parseHexColor(b);
|
|
31
|
-
if (!ca || !cb) return null;
|
|
32
|
-
const [hi, lo] = [luminance(ca), luminance(cb)].sort((x, y) => y - x);
|
|
33
|
-
return (hi + 0.05) / (lo + 0.05);
|
|
34
|
-
}
|
|
35
|
-
function barTextColor(theme) {
|
|
36
|
-
if (theme.barText) return theme.barText;
|
|
37
|
-
const candidates = [theme.surface, theme.bg, theme.text].filter((c) => !!c);
|
|
38
|
-
const scored = candidates.map((color) => ({ color, ratio: contrastRatio(color, theme.accent) }));
|
|
39
|
-
const passing = scored.find((s) => s.ratio !== null && s.ratio >= AA_LARGE);
|
|
40
|
-
if (passing) return passing.color;
|
|
41
|
-
const measurable = scored.filter((s) => s.ratio !== null).sort((a, b) => b.ratio - a.ratio);
|
|
42
|
-
return measurable[0]?.color ?? candidates[0];
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
exports.OG_HEIGHT = OG_HEIGHT;
|
|
46
|
-
exports.OG_REPORT_ATTR = OG_REPORT_ATTR;
|
|
47
|
-
exports.OG_WIDTH = OG_WIDTH;
|
|
48
|
-
exports.TITLE_MAX_PX = TITLE_MAX_PX;
|
|
49
|
-
exports.TITLE_MIN_PX = TITLE_MIN_PX;
|
|
50
|
-
exports.barTextColor = barTextColor;
|
|
51
|
-
exports.defineOgCard = defineOgCard;
|
|
52
|
-
//# sourceMappingURL=chunk-CUNZAD46.js.map
|
|
53
|
-
//# sourceMappingURL=chunk-CUNZAD46.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/og/config.ts","../src/og/contrast.ts"],"names":[],"mappings":"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","file":"chunk-CUNZAD46.js","sourcesContent":["/**\n * @sonordev/site-kit/og — OG card config contract.\n *\n * THE SITE OWNS THE THEME. Sonor stores one brand_primary/secondary per\n * project; real sites have full palettes (Ludlow: red, ink, cream, scrim —\n * four tokens where Sonor stores two). So the card's colors, fonts, and\n * layout come from a repo-owned og.config.ts, typically importing the same\n * constants the site itself uses. Sonor brand data is only the zero-config\n * seed used by `sonor-setup og` when no og.config.ts exists.\n *\n * Rendering is BUILD-TIME via headless Chrome (`sonor-setup og`), writing a\n * static public/og.png: full real CSS (no Satori subset), Google Fonts load\n * in the template (no font vendoring), zero runtime cost — the right shape\n * for a force-static fleet. Per-entity runtime cards are a future tier.\n */\n\nexport interface OgTheme {\n /** Page background behind everything. */\n bg: string\n /** Primary text color. */\n text: string\n /** Accent (kicker, bar). */\n accent: string\n /** Plate/surface color behind the logo. */\n surface: string\n /** Muted text (subtitle). Defaults derived from `text` when omitted. */\n muted?: string\n /**\n * Bottom-bar text, set on `accent`. Defaults to the first of `surface`,\n * `bg`, `text` that reaches WCAG AA for large text (3:1) against the\n * accent (see og/contrast.ts).\n */\n barText?: string\n}\n\nexport interface OgFont {\n /** Google Fonts family name, e.g. 'Barlow Condensed'. */\n family: string\n weights?: number[]\n}\n\nexport interface OgBackground {\n /** Path under public/, e.g. '/hero-frost.avif'. */\n image: string\n /** CSS blur radius in px. */\n blur?: number\n /** Overlay color, e.g. 'rgba(17,17,16,.68)'. */\n scrim?: string\n}\n\nexport interface OgPhoto {\n /** Path under public/ ('/team.jpg') or an absolute https URL. */\n src: string\n /** Pane width in px (default 430). */\n width?: number\n /** Corner radius in px (default 24). */\n radius?: number\n}\n\nexport interface OgContent {\n /** Small all-caps line above the title. */\n kicker?: string\n /** The big line. `\\n` for a manual break. Keep it short — previews truncate. */\n title: string\n /** One supporting line. */\n subtitle?: string\n /** Handwritten-style accent line (rendered in the last configured font). */\n hand?: string\n /** Bottom bar segments, e.g. ['Give an hour', 'ludlowpto.org']. */\n bar?: string[]\n}\n\n/**\n * A per-route entry in `cards`. Layered over the derived card, so it only\n * states what differs — including inside `content`: a route can override just\n * the subtitle and keep the title Sonor derived. The runtime always merged\n * field by field; this type used to demand a full OgContent, which forced\n * casts in every site that used the documented pattern.\n */\nexport type OgCardOverride = Partial<Omit<OgCardConfig, 'cards' | 'content'>> & {\n content?: Partial<OgContent>\n}\n\nexport interface OgCardConfig {\n theme: OgTheme\n /** First font = display face, second (optional) = hand/accent face. */\n fonts?: OgFont[]\n /** Path under public/ to the logo shown on the plate, e.g. '/logo-mark.svg'. */\n logo?: string\n background?: OgBackground\n /**\n * 'plate-left': logo plate left, copy right (the Ludlow layout).\n * 'centered': stacked, logo above title.\n * 'banner': no plate, full-bleed copy.\n * 'split': copy left, content photo right — for cards that show the page's\n * own imagery (a project photo, a product, the storefront).\n */\n layout?: 'plate-left' | 'centered' | 'banner' | 'split'\n /** Content photo for the 'split' layout (also rendered in 'plate-left' when set, replacing the plate). */\n photo?: OgPhoto\n content: OgContent\n /**\n * Per-page overrides, keyed by route path (`/services/garage`) or its slug\n * (`services-garage`). Every static route already gets its own card built\n * from its managed title and description; this is for the handful worth\n * writing by hand — a campaign landing page, the flagship service.\n *\n * A dynamic route is keyed by its pattern, one `*` per dynamic level:\n * `/services/*` for `[slug]`, plus another star for each nested `[param]`\n * (slug form `services-any`, `services-any-any`). Nested patterns are worth\n * writing by hand — they all derive from the same static ancestor otherwise.\n * `sonor-setup og` warns about any key that matches no route.\n *\n * Each entry is layered over the site card, so it only states what differs.\n * Build-time only: never rendered as part of a card.\n */\n cards?: Record<string, OgCardOverride>\n /**\n * MIDDLE escape hatch: keep the loader/renderer/verifier pipeline but\n * produce your own document. Receives the config and the same helpers the\n * stock template uses (esc, fontLink). Root-relative src attributes are\n * still rewritten to public/ files automatically.\n */\n template?: (config: OgCardConfig, helpers: OgTemplateHelpers) => string\n /** FULL escape hatch: raw HTML replaces everything, no helpers. */\n html?: string\n}\n\nexport interface OgTemplateHelpers {\n /** HTML-escape user text. */\n esc: (s: string) => string\n /** <link> tag loading the config's Google Fonts. */\n fontLink: string\n width: number\n height: number\n}\n\n/** Identity helper for typed configs: `export default defineOgCard({...})`. */\nexport function defineOgCard(config: OgCardConfig): OgCardConfig {\n return config\n}\n\nexport const OG_WIDTH = 1200\nexport const OG_HEIGHT = 630\n\n/**\n * Title type scale. The card opens at TITLE_MAX and the in-page fitter steps\n * down until the copy column fits, stopping at TITLE_MIN.\n *\n * The floor is a legibility floor, not a layout one: below ~56px the headline\n * stops reading at the ~300px thumbnail width platforms actually show. A card\n * that would need to go under it is a card whose copy is too long, so the\n * renderer reports that rather than shrinking into mush.\n */\nexport const TITLE_MAX_PX = 104\nexport const TITLE_MIN_PX = 56\n\n/**\n * The attribute the in-page fitter writes its findings to, read back by\n * `sonor-setup og` via Chrome's --dump-dom. Shared so the template and the CLI\n * cannot drift on the name.\n */\nexport const OG_REPORT_ATTR = 'data-og-report'\n\n/** What the in-page fitter reports back about a rendered card. */\nexport interface OgRenderReport {\n /** Did everything land inside the frame, at or above the legibility floor? */\n fits: boolean\n /** Final title size after fitting. Below TITLE_MAX means the copy ran long. */\n titlePx: number\n /** Human-readable problems, each naming the element and the overflow. */\n issues: string[]\n}\n","/**\n * @sonordev/site-kit/og — text color for the card's bottom bar.\n *\n * SINGLE SOURCE OF TRUTH for \"what color is the bar text\", shared by the\n * build-time template (template.ts) and the runtime card (route.tsx). The two\n * disagreed: the template set the bar in `theme.surface`, the runtime card in\n * `theme.text`, and on a site whose text and accent are both strong colors the\n * runtime bar came out unreadable (navy on crimson on watsonhac.com, ink on\n * green on reinhart). Both sites dropped the bar rather than ship it.\n *\n * `theme.barText` always wins. Otherwise the first candidate that reaches\n * WCAG AA for large text against the accent is used, in the order the\n * template always preferred (surface, then bg, then text), so every card\n * that already read well keeps its color. Failing that, the highest-contrast\n * candidate.\n *\n * Pure: no DOM, no Node built-ins.\n */\n\n/**\n * WCAG AA for LARGE text: the bar is bold and 30px or more on both cards,\n * well past the 18.66px-bold line. 4.5:1 (normal text) would flip readable\n * fleet bars like abbeyglenapts.com's white on orange (3.3:1) for no gain.\n */\nconst AA_LARGE = 3\n\n/** `#abc`, `#aabbcc`, `#aabbccdd` → [r, g, b] in 0-255, or null for anything else. */\nexport function parseHexColor(color: string): [number, number, number] | null {\n const hex = color.trim().replace(/^#/, '')\n if (!/^([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(hex)) return null\n const full = hex.length === 3 ? hex.replace(/./g, c => c + c) : hex.slice(0, 6)\n return [0, 2, 4].map(i => parseInt(full.slice(i, i + 2), 16)) as [number, number, number]\n}\n\nfunction luminance([r, g, b]: [number, number, number]): number {\n const channel = (v: number) => {\n const s = v / 255\n return s <= 0.03928 ? s / 12.92 : ((s + 0.055) / 1.055) ** 2.4\n }\n return 0.2126 * channel(r) + 0.7152 * channel(g) + 0.0722 * channel(b)\n}\n\n/** WCAG contrast ratio of two hex colors, or null when either isn't hex. */\nexport function contrastRatio(a: string, b: string): number | null {\n const ca = parseHexColor(a)\n const cb = parseHexColor(b)\n if (!ca || !cb) return null\n const [hi, lo] = [luminance(ca), luminance(cb)].sort((x, y) => y - x)\n return (hi + 0.05) / (lo + 0.05)\n}\n\nexport interface BarTheme {\n bg: string\n text: string\n accent: string\n surface?: string\n /** Explicit bar text color. Always wins. */\n barText?: string\n}\n\n/** The color to set the bottom bar's text in, on `theme.accent`. */\nexport function barTextColor(theme: BarTheme): string {\n if (theme.barText) return theme.barText\n const candidates = [theme.surface, theme.bg, theme.text].filter((c): c is string => !!c)\n const scored = candidates.map(color => ({ color, ratio: contrastRatio(color, theme.accent) }))\n const passing = scored.find(s => s.ratio !== null && s.ratio >= AA_LARGE)\n if (passing) return passing.color\n const measurable = scored.filter(s => s.ratio !== null).sort((a, b) => b.ratio! - a.ratio!)\n // Non-hex colors (rgb(), names) can't be scored; keep the template's old\n // choice for them rather than guess.\n return measurable[0]?.color ?? candidates[0]\n}\n"]}
|
package/dist/chunk-CXAXZFFW.js
DELETED
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
// src/seo-meta/contract.ts
|
|
4
|
-
var SEO_META_CONTRACT_VERSION = 1;
|
|
5
|
-
var TITLE_SEPARATOR = " | ";
|
|
6
|
-
var DANGLING_TAIL = /[|,\-–—:;·•]\s*$/;
|
|
7
|
-
var TRAILING_FUNCTION_WORD = /\s(?:for|of|and|or|in|on|at|to|with|from|by|a|an|the|your|our|that|&)$/i;
|
|
8
|
-
var MIN_HOST_FRAGMENT = 8;
|
|
9
|
-
var MIN_NAME_LETTERS = 6;
|
|
10
|
-
var lettersOf = (s) => s.toLowerCase().replace(/[^a-z0-9]+/g, "");
|
|
11
|
-
var wordsOf = (s) => ` ${s.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim()} `;
|
|
12
|
-
function metaHost(value) {
|
|
13
|
-
if (!value || typeof value !== "string" || /\s/.test(value.trim())) return null;
|
|
14
|
-
const s = value.trim().toLowerCase().replace(/^[a-z][a-z0-9+.-]*:\/\//, "").split(/[/?#]/)[0].split(":")[0].replace(/\.+$/, "").replace(/^www\./, "");
|
|
15
|
-
return s.includes(".") ? s : null;
|
|
16
|
-
}
|
|
17
|
-
function hostsOf(id) {
|
|
18
|
-
const out = /* @__PURE__ */ new Set();
|
|
19
|
-
for (const h of id.hosts ?? []) {
|
|
20
|
-
const host = metaHost(h);
|
|
21
|
-
if (host) out.add(host);
|
|
22
|
-
}
|
|
23
|
-
return [...out];
|
|
24
|
-
}
|
|
25
|
-
function labelsOf(id) {
|
|
26
|
-
return hostsOf(id).map((h) => lettersOf(h.split(".")[0])).filter((l) => l.length >= MIN_NAME_LETTERS);
|
|
27
|
-
}
|
|
28
|
-
function brandCore(name) {
|
|
29
|
-
let s = name.replace(/^the\s+/i, "").trim();
|
|
30
|
-
let prev;
|
|
31
|
-
do {
|
|
32
|
-
prev = s;
|
|
33
|
-
s = s.replace(/[\s,]+(?:apartments|apts|llc|inc|co|corp|ltd|company)\.?$/i, "").trim();
|
|
34
|
-
} while (s !== prev);
|
|
35
|
-
return s;
|
|
36
|
-
}
|
|
37
|
-
function brandVariants(id) {
|
|
38
|
-
const out = [];
|
|
39
|
-
for (const raw of [id.brand, ...id.brandAliases ?? []]) {
|
|
40
|
-
const name = typeof raw === "string" ? raw.replace(/\s+/g, " ").trim() : "";
|
|
41
|
-
if (!name) continue;
|
|
42
|
-
out.push(name);
|
|
43
|
-
const core = brandCore(name);
|
|
44
|
-
if (core && core !== name) out.push(core);
|
|
45
|
-
}
|
|
46
|
-
return out;
|
|
47
|
-
}
|
|
48
|
-
function nameVariants(id) {
|
|
49
|
-
return brandVariants(id).filter((v) => metaHost(v) === null);
|
|
50
|
-
}
|
|
51
|
-
function namesBrand(text, id) {
|
|
52
|
-
const words = wordsOf(text);
|
|
53
|
-
return brandVariants(id).some((v) => wordsOf(v).trim() !== "" && words.includes(wordsOf(v)));
|
|
54
|
-
}
|
|
55
|
-
function titleSuffix(title) {
|
|
56
|
-
const t = title.trim();
|
|
57
|
-
const i = t.lastIndexOf(TITLE_SEPARATOR);
|
|
58
|
-
return i > 0 ? t.slice(i + TITLE_SEPARATOR.length).trim() : null;
|
|
59
|
-
}
|
|
60
|
-
function stripTitleSuffix(title) {
|
|
61
|
-
const t = title.trim();
|
|
62
|
-
const i = t.lastIndexOf(TITLE_SEPARATOR);
|
|
63
|
-
return i > 0 ? t.slice(0, i).trim() : t;
|
|
64
|
-
}
|
|
65
|
-
function namesHost(text, id) {
|
|
66
|
-
const lower = text.toLowerCase();
|
|
67
|
-
const brands = brandVariants(id).map((b) => b.toLowerCase());
|
|
68
|
-
return hostsOf(id).some((host) => lower.includes(host) && !brands.some((b) => b.includes(host)));
|
|
69
|
-
}
|
|
70
|
-
function endsOnTruncatedHost(text, id) {
|
|
71
|
-
const tokens = text.trim().split(/[\s|,()[\]]+/);
|
|
72
|
-
const last = (tokens[tokens.length - 1] ?? "").replace(/^[^a-z0-9]+/i, "");
|
|
73
|
-
if (!last || last !== last.toLowerCase()) return false;
|
|
74
|
-
const stem = lettersOf(last.split(".")[0]);
|
|
75
|
-
return stem.length >= MIN_HOST_FRAGMENT && labelsOf(id).some((l) => l.startsWith(stem));
|
|
76
|
-
}
|
|
77
|
-
function occurrences(hay, needle, step = needle.length) {
|
|
78
|
-
let n = 0;
|
|
79
|
-
for (let i = hay.indexOf(needle); i !== -1; i = hay.indexOf(needle, i + step)) n++;
|
|
80
|
-
return n;
|
|
81
|
-
}
|
|
82
|
-
function respellsBrand(text, id) {
|
|
83
|
-
const letters = lettersOf(text);
|
|
84
|
-
const words = wordsOf(text);
|
|
85
|
-
return nameVariants(id).some((v) => {
|
|
86
|
-
const vl = lettersOf(v);
|
|
87
|
-
if (vl.length < MIN_NAME_LETTERS) return false;
|
|
88
|
-
const vw = wordsOf(v);
|
|
89
|
-
return occurrences(letters, vl) > occurrences(words, vw, vw.length - 1);
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
function gluesHostLabel(text, id) {
|
|
93
|
-
const variants = nameVariants(id);
|
|
94
|
-
if (!variants.length) return false;
|
|
95
|
-
const labels = labelsOf(id);
|
|
96
|
-
return text.split(/[\s|,()[\]:;]+/).some((token) => {
|
|
97
|
-
const tl = lettersOf(token);
|
|
98
|
-
return tl.length >= MIN_NAME_LETTERS && labels.includes(tl) && !variants.some((v) => wordsOf(v).includes(wordsOf(token)));
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
function suffixProblem(suffix, id) {
|
|
102
|
-
const s = suffix.trim();
|
|
103
|
-
if (!s) return null;
|
|
104
|
-
if (namesHost(s, id) || endsOnTruncatedHost(s, id)) return "hostname";
|
|
105
|
-
const variants = nameVariants(id);
|
|
106
|
-
if (!variants.length) return null;
|
|
107
|
-
if (respellsBrand(s, id) || gluesHostLabel(s, id)) return "mangled-brand";
|
|
108
|
-
if (/\s/.test(s)) return null;
|
|
109
|
-
const sl = lettersOf(s);
|
|
110
|
-
const fromLabel = sl.length >= MIN_NAME_LETTERS && labelsOf(id).some((l) => l.startsWith(sl));
|
|
111
|
-
const sw = wordsOf(brandCore(s));
|
|
112
|
-
const isBrand = variants.some((v) => {
|
|
113
|
-
const vw = wordsOf(brandCore(v));
|
|
114
|
-
return vw.startsWith(sw) || sw.startsWith(vw);
|
|
115
|
-
});
|
|
116
|
-
return fromLabel && !isBrand ? "mangled-brand" : null;
|
|
117
|
-
}
|
|
118
|
-
function isPlaceholder(title, path) {
|
|
119
|
-
const t = title.trim();
|
|
120
|
-
if (!path) return false;
|
|
121
|
-
const strip = (s) => s.replace(/\/+$/, "") || "/";
|
|
122
|
-
if (t.startsWith("/") && strip(t.toLowerCase()) === strip(path.trim().toLowerCase())) return true;
|
|
123
|
-
return strip(path.trim()) === "/" && /^(home|index|untitled)$/i.test(t);
|
|
124
|
-
}
|
|
125
|
-
function titleProblem(title, id, opts = {}) {
|
|
126
|
-
const t = (title ?? "").trim();
|
|
127
|
-
if (!t) return "empty";
|
|
128
|
-
if (isPlaceholder(t, opts.path)) return "placeholder";
|
|
129
|
-
if (DANGLING_TAIL.test(t)) return "dangling-separator";
|
|
130
|
-
if (namesHost(t, id) || endsOnTruncatedHost(t, id)) return "hostname";
|
|
131
|
-
const suffix = titleSuffix(t);
|
|
132
|
-
if (suffix !== null) {
|
|
133
|
-
const problem = suffixProblem(suffix, id);
|
|
134
|
-
if (problem) return problem;
|
|
135
|
-
}
|
|
136
|
-
if (respellsBrand(t, id) || gluesHostLabel(t, id)) return "mangled-brand";
|
|
137
|
-
return null;
|
|
138
|
-
}
|
|
139
|
-
function descriptionProblem(description, id) {
|
|
140
|
-
const d = (description ?? "").trim();
|
|
141
|
-
if (!d) return "empty";
|
|
142
|
-
if (namesHost(d, id)) return "hostname";
|
|
143
|
-
if (respellsBrand(d, id) || gluesHostLabel(d, id)) return "mangled-brand";
|
|
144
|
-
if (DANGLING_TAIL.test(d) || TRAILING_FUNCTION_WORD.test(d)) return "truncated";
|
|
145
|
-
return null;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
exports.SEO_META_CONTRACT_VERSION = SEO_META_CONTRACT_VERSION;
|
|
149
|
-
exports.descriptionProblem = descriptionProblem;
|
|
150
|
-
exports.metaHost = metaHost;
|
|
151
|
-
exports.namesBrand = namesBrand;
|
|
152
|
-
exports.stripTitleSuffix = stripTitleSuffix;
|
|
153
|
-
exports.suffixProblem = suffixProblem;
|
|
154
|
-
exports.titleProblem = titleProblem;
|
|
155
|
-
exports.titleSuffix = titleSuffix;
|
|
156
|
-
//# sourceMappingURL=chunk-CXAXZFFW.js.map
|
|
157
|
-
//# sourceMappingURL=chunk-CXAXZFFW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/seo-meta/contract.ts"],"names":[],"mappings":"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","file":"chunk-CXAXZFFW.js","sourcesContent":["/**\n * @sonordev/site-kit/seo-meta/contract — generated title/description quality contract (v1)\n *\n * Single source of truth for \"is this machine-generated seo_pages.managed_title\n * / managed_meta_description fit to ship?\". Same pattern as the other site-kit\n * contracts: site-kit owns the canonical logic and applies it at render time\n * (getManagedMetadata falls back to the page's own title/description), and\n * signal-api keeps a byte-identical inline mirror\n * (`src/shared/utils/seo-meta-quality.util.ts`) that gates every generated\n * title before it is written. The shared drift vectors in `contract.test.ts`\n * and the mirror's spec fail on divergence.\n *\n * Why it exists (2026-09-15): Signal's meta generator used the raw domain as\n * the brand whenever it could not resolve one, so ~500 managed titles across\n * 20+ projects shipped as \"Apartments for Rent | abbeyglenapts.com\", were\n * hard-cut at 60 chars (\"… | reinhartheatingandcooli\"), lost the suffix to a\n * word-boundary cut (\"Contact Reinhart Heating and Cooling |\"), or had the\n * model rebuild a brand out of the domain (\"About SSO Shkosh Apartments | SSO\n * Shkosh\" for ssoshkoshapts.com — the brand is SS Oshkosh Apartments). Sites\n * rendered them verbatim.\n *\n * Every rule derives from the site's own identity (its hosts and brand), so\n * there is no list of bad strings to maintain. Pure string logic — no I/O, no\n * Node built-ins.\n */\n\n/** Bump on breaking changes to what counts as a problem. */\nexport const SEO_META_CONTRACT_VERSION = 1 as const\n\n/** Who the site is. Hosts come from the project/site config, the brand from the resolved business name — never from the domain. */\nexport interface MetaIdentity {\n /** The site's brand, e.g. \"SS Oshkosh Apartments\". */\n brand?: string | null\n /** Other correct spellings of the brand. */\n brandAliases?: Array<string | null | undefined>\n /** Hosts the site answers on, in any spelling (URL, www, port). */\n hosts?: Array<string | null | undefined>\n}\n\nexport type TitleProblem = 'empty' | 'placeholder' | 'dangling-separator' | 'hostname' | 'mangled-brand'\nexport type DescriptionProblem = 'empty' | 'hostname' | 'mangled-brand' | 'truncated'\nexport type SuffixProblem = 'hostname' | 'mangled-brand'\n\nconst TITLE_SEPARATOR = ' | '\n/** A title or description must never end on a separator. */\nconst DANGLING_TAIL = /[|,\\-–—:;·•]\\s*$/\n/** A description ending on one of these was cut mid-sentence (\"…Tall Pines, Westbrooke, and\"). */\nconst TRAILING_FUNCTION_WORD = /\\s(?:for|of|and|or|in|on|at|to|with|from|by|a|an|the|your|our|that|&)$/i\n/** A leaked-host fragment shorter than this is too likely to be an ordinary word. */\nconst MIN_HOST_FRAGMENT = 8\n/** Names shorter than this (letters only) can't be told apart from ordinary words. */\nconst MIN_NAME_LETTERS = 6\n\nconst lettersOf = (s: string) => s.toLowerCase().replace(/[^a-z0-9]+/g, '')\nconst wordsOf = (s: string) => ` ${s.toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim()} `\n\n/** \"https://www.AbbeyGlenApts.com:443/x\" → \"abbeyglenapts.com\". Null for anything that isn't a host (no dot, or words). */\nexport function metaHost(value: string | null | undefined): string | null {\n if (!value || typeof value !== 'string' || /\\s/.test(value.trim())) return null\n const s = value\n .trim()\n .toLowerCase()\n .replace(/^[a-z][a-z0-9+.-]*:\\/\\//, '')\n .split(/[/?#]/)[0]\n .split(':')[0]\n .replace(/\\.+$/, '')\n .replace(/^www\\./, '')\n return s.includes('.') ? s : null\n}\n\nfunction hostsOf(id: MetaIdentity): string[] {\n const out = new Set<string>()\n for (const h of id.hosts ?? []) {\n const host = metaHost(h)\n if (host) out.add(host)\n }\n return [...out]\n}\n\n/** First DNS label with punctuation removed: \"reinhartheatingandcooling.com\" → \"reinhartheatingandcooling\". */\nfunction labelsOf(id: MetaIdentity): string[] {\n return hostsOf(id)\n .map((h) => lettersOf(h.split('.')[0]))\n .filter((l) => l.length >= MIN_NAME_LETTERS)\n}\n\n/** \"The Gateway Flats\" → \"Gateway Flats\", \"Moore Canine Co., LLC\" → \"Moore Canine\". */\nfunction brandCore(name: string): string {\n let s = name.replace(/^the\\s+/i, '').trim()\n let prev: string\n do {\n prev = s\n s = s.replace(/[\\s,]+(?:apartments|apts|llc|inc|co|corp|ltd|company)\\.?$/i, '').trim()\n } while (s !== prev)\n return s\n}\n\n/** The brand, its aliases, and the core of each — every spelling a title may legitimately use. */\nfunction brandVariants(id: MetaIdentity): string[] {\n const out: string[] = []\n for (const raw of [id.brand, ...(id.brandAliases ?? [])]) {\n const name = typeof raw === 'string' ? raw.replace(/\\s+/g, ' ').trim() : ''\n if (!name) continue\n out.push(name)\n const core = brandCore(name)\n if (core && core !== name) out.push(core)\n }\n return out\n}\n\n/**\n * Brand spellings that are names, not domains. A project titled with its\n * domain (\"proinnovationsllc.com\") still vouches for that domain appearing in a\n * title, but it can't say how the brand is spelled, so \"| Pro Innovations\" is\n * not a respelling of it.\n */\nfunction nameVariants(id: MetaIdentity): string[] {\n return brandVariants(id).filter((v) => metaHost(v) === null)\n}\n\n/** True when the text names the brand (an alias, or either one's core) word for word. */\nexport function namesBrand(text: string, id: MetaIdentity): boolean {\n const words = wordsOf(text)\n return brandVariants(id).some((v) => wordsOf(v).trim() !== '' && words.includes(wordsOf(v)))\n}\n\n/** Everything after the last \" | \", or null when the title has no suffix. */\nexport function titleSuffix(title: string): string | null {\n const t = title.trim()\n const i = t.lastIndexOf(TITLE_SEPARATOR)\n return i > 0 ? t.slice(i + TITLE_SEPARATOR.length).trim() : null\n}\n\n/** Everything before the last \" | \". */\nexport function stripTitleSuffix(title: string): string {\n const t = title.trim()\n const i = t.lastIndexOf(TITLE_SEPARATOR)\n return i > 0 ? t.slice(0, i).trim() : t\n}\n\n/** The site's full host appears (\"… | abbeyglenapts.com\"). A brand that IS a domain (\"RamseyDeal.com\") may name it. */\nfunction namesHost(text: string, id: MetaIdentity): boolean {\n const lower = text.toLowerCase()\n const brands = brandVariants(id).map((b) => b.toLowerCase())\n return hostsOf(id).some((host) => lower.includes(host) && !brands.some((b) => b.includes(host)))\n}\n\n/**\n * The text ends on a hard-cut host: \"… | reinhartheatingandcooli\",\n * \"… | greenbayapartmentrentals.c\". Only the last token, and only when it is\n * written in lowercase like a host — \"… | Celebrity\" is a word, not a host.\n */\nfunction endsOnTruncatedHost(text: string, id: MetaIdentity): boolean {\n const tokens = text.trim().split(/[\\s|,()[\\]]+/)\n const last = (tokens[tokens.length - 1] ?? '').replace(/^[^a-z0-9]+/i, '')\n if (!last || last !== last.toLowerCase()) return false\n const stem = lettersOf(last.split('.')[0])\n return stem.length >= MIN_HOST_FRAGMENT && labelsOf(id).some((l) => l.startsWith(stem))\n}\n\n/** Occurrences of `needle` in `hay`, resuming `step` chars after each match (default: no overlap). */\nfunction occurrences(hay: string, needle: string, step = needle.length): number {\n let n = 0\n for (let i = hay.indexOf(needle); i !== -1; i = hay.indexOf(needle, i + step)) n++\n return n\n}\n\n/**\n * The brand's letters appear more often than its words: \"SSO Shkosh\" for \"SS\n * Oshkosh\", \"Moore Canine Collc\". Counted, not just tested, so a correctly\n * spelled suffix can't vouch for a respelled lead (\"About SSO Shkosh\n * Apartments | SS Oshkosh Apartments\").\n */\nfunction respellsBrand(text: string, id: MetaIdentity): boolean {\n const letters = lettersOf(text)\n const words = wordsOf(text)\n return nameVariants(id).some((v) => {\n const vl = lettersOf(v)\n if (vl.length < MIN_NAME_LETTERS) return false\n // Word matches are space-padded; resume on the trailing space so two\n // adjacent occurrences can share it.\n const vw = wordsOf(v)\n return occurrences(letters, vl) > occurrences(words, vw, vw.length - 1)\n })\n}\n\n/** A word glued from the host label that isn't how the brand is written: \"TallPinesGB\", \"Westbrookegb\". */\nfunction gluesHostLabel(text: string, id: MetaIdentity): boolean {\n const variants = nameVariants(id)\n if (!variants.length) return false\n const labels = labelsOf(id)\n return text.split(/[\\s|,()[\\]:;]+/).some((token) => {\n const tl = lettersOf(token)\n return (\n tl.length >= MIN_NAME_LETTERS &&\n labels.includes(tl) &&\n !variants.some((v) => wordsOf(v).includes(wordsOf(token)))\n )\n })\n}\n\n/**\n * Why a title's brand suffix (the part after the last \" | \") can't ship, or\n * null when it can. Exposed so a generator can replace a bad suffix with the\n * real brand instead of discarding the whole title.\n */\nexport function suffixProblem(suffix: string, id: MetaIdentity): SuffixProblem | null {\n const s = suffix.trim()\n if (!s) return null\n if (namesHost(s, id) || endsOnTruncatedHost(s, id)) return 'hostname'\n const variants = nameVariants(id)\n if (!variants.length) return null\n if (respellsBrand(s, id) || gluesHostLabel(s, id)) return 'mangled-brand'\n // One glued token spelled from the host label rather than the brand:\n // \"TruePower\" for True Power Systems (truepowersystems.com). Spaced words\n // that read the label (\"Legacy Clay Classic\" for legacyclayclassic.org) are\n // a name, and a whole-word shortening of the brand (\"Celebrity\" for\n // Celebrity Closet Guys, \"The Gateway Flats\" for Gateway Flats) is the brand.\n if (/\\s/.test(s)) return null\n const sl = lettersOf(s)\n const fromLabel = sl.length >= MIN_NAME_LETTERS && labelsOf(id).some((l) => l.startsWith(sl))\n const sw = wordsOf(brandCore(s))\n const isBrand = variants.some((v) => {\n const vw = wordsOf(brandCore(v))\n return vw.startsWith(sw) || sw.startsWith(vw)\n })\n return fromLabel && !isBrand ? 'mangled-brand' : null\n}\n\nfunction isPlaceholder(title: string, path?: string | null): boolean {\n const t = title.trim()\n if (!path) return false\n const strip = (s: string) => s.replace(/\\/+$/, '') || '/'\n if (t.startsWith('/') && strip(t.toLowerCase()) === strip(path.trim().toLowerCase())) return true\n return strip(path.trim()) === '/' && /^(home|index|untitled)$/i.test(t)\n}\n\n/** Why a managed title can't ship, or null when it can. */\nexport function titleProblem(\n title: string | null | undefined,\n id: MetaIdentity,\n opts: { path?: string | null } = {},\n): TitleProblem | null {\n const t = (title ?? '').trim()\n if (!t) return 'empty'\n if (isPlaceholder(t, opts.path)) return 'placeholder'\n if (DANGLING_TAIL.test(t)) return 'dangling-separator'\n if (namesHost(t, id) || endsOnTruncatedHost(t, id)) return 'hostname'\n const suffix = titleSuffix(t)\n if (suffix !== null) {\n const problem = suffixProblem(suffix, id)\n if (problem) return problem\n }\n if (respellsBrand(t, id) || gluesHostLabel(t, id)) return 'mangled-brand'\n return null\n}\n\n/** Why a managed meta description can't ship, or null when it can. */\nexport function descriptionProblem(\n description: string | null | undefined,\n id: MetaIdentity,\n): DescriptionProblem | null {\n const d = (description ?? '').trim()\n if (!d) return 'empty'\n if (namesHost(d, id)) return 'hostname'\n if (respellsBrand(d, id) || gluesHostLabel(d, id)) return 'mangled-brand'\n if (DANGLING_TAIL.test(d) || TRAILING_FUNCTION_WORD.test(d)) return 'truncated'\n return null\n}\n"]}
|
package/dist/chunk-D3WJMSTB.mjs
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { isEmptyValue, isDisplayOnly } from './chunk-QRHVMTHF.mjs';
|
|
3
|
-
import { useMemo, useState, useRef, useEffect } from 'react';
|
|
4
|
-
|
|
5
|
-
var NO_CONTROLS = {};
|
|
6
|
-
function useFieldControls(fields) {
|
|
7
|
-
const needsDate = useMemo(
|
|
8
|
-
() => (fields ?? []).some((f) => f.field_type === "date" || f.field_type === "datetime"),
|
|
9
|
-
[fields]
|
|
10
|
-
);
|
|
11
|
-
const needsFile = useMemo(
|
|
12
|
-
() => (fields ?? []).some((f) => f.field_type === "file"),
|
|
13
|
-
[fields]
|
|
14
|
-
);
|
|
15
|
-
const [controls, setControls] = useState(NO_CONTROLS);
|
|
16
|
-
const requested = useRef({ date: false, file: false });
|
|
17
|
-
useEffect(() => {
|
|
18
|
-
let cancelled = false;
|
|
19
|
-
if (needsDate && !requested.current.date) {
|
|
20
|
-
requested.current.date = true;
|
|
21
|
-
import('./DatePicker-4WNKNNCV.mjs').then((m) => {
|
|
22
|
-
if (!cancelled) setControls((prev) => ({ ...prev, Date: m.DatePicker }));
|
|
23
|
-
}).catch(() => {
|
|
24
|
-
requested.current.date = false;
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
if (needsFile && !requested.current.file) {
|
|
28
|
-
requested.current.file = true;
|
|
29
|
-
import('./FileField-UTLGR5ZN.mjs').then((m) => {
|
|
30
|
-
if (!cancelled) setControls((prev) => ({ ...prev, File: m.FileField }));
|
|
31
|
-
}).catch(() => {
|
|
32
|
-
requested.current.file = false;
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
return () => {
|
|
36
|
-
cancelled = true;
|
|
37
|
-
};
|
|
38
|
-
}, [needsDate, needsFile]);
|
|
39
|
-
return controls;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// src/forms/experience-plan.ts
|
|
43
|
-
function stageQuestions(config) {
|
|
44
|
-
const input = (config.fields || []).filter(
|
|
45
|
-
(f) => !isDisplayOnly(f)
|
|
46
|
-
);
|
|
47
|
-
if (!config.is_multi_step || !config.steps?.length) {
|
|
48
|
-
return input.map((field) => ({ field }));
|
|
49
|
-
}
|
|
50
|
-
const ordered = [...config.steps].sort((a, b) => a.step_number - b.step_number);
|
|
51
|
-
const out = [];
|
|
52
|
-
const claimed = /* @__PURE__ */ new Set();
|
|
53
|
-
for (const step of ordered) {
|
|
54
|
-
for (const field of input) {
|
|
55
|
-
if (field.step_id === step.id) {
|
|
56
|
-
out.push({ field, step });
|
|
57
|
-
claimed.add(field.id);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
for (const field of input) {
|
|
62
|
-
if (!claimed.has(field.id)) out.push({ field });
|
|
63
|
-
}
|
|
64
|
-
return out;
|
|
65
|
-
}
|
|
66
|
-
var WIDTH_FRACTION = {
|
|
67
|
-
full: 1,
|
|
68
|
-
half: 1 / 2,
|
|
69
|
-
third: 1 / 3,
|
|
70
|
-
quarter: 1 / 4
|
|
71
|
-
};
|
|
72
|
-
function stageViews(config) {
|
|
73
|
-
const questions = stageQuestions(config);
|
|
74
|
-
const views = [];
|
|
75
|
-
let open = null;
|
|
76
|
-
let openWidth = 0;
|
|
77
|
-
const close = () => {
|
|
78
|
-
if (open) views.push(open);
|
|
79
|
-
open = null;
|
|
80
|
-
openWidth = 0;
|
|
81
|
-
};
|
|
82
|
-
for (const q of questions) {
|
|
83
|
-
const fraction = WIDTH_FRACTION[q.field.width] ?? 1;
|
|
84
|
-
const chapterChanged = open && open.step?.id !== q.step?.id;
|
|
85
|
-
if (fraction >= 1 || chapterChanged) close();
|
|
86
|
-
if (!open) {
|
|
87
|
-
open = { fields: [q.field], step: q.step };
|
|
88
|
-
openWidth = fraction;
|
|
89
|
-
if (fraction >= 1) close();
|
|
90
|
-
continue;
|
|
91
|
-
}
|
|
92
|
-
if (openWidth + fraction > 1.0001) close();
|
|
93
|
-
if (!open) {
|
|
94
|
-
open = { fields: [q.field], step: q.step };
|
|
95
|
-
openWidth = fraction;
|
|
96
|
-
continue;
|
|
97
|
-
}
|
|
98
|
-
open.fields.push(q.field);
|
|
99
|
-
openWidth += fraction;
|
|
100
|
-
}
|
|
101
|
-
close();
|
|
102
|
-
return views;
|
|
103
|
-
}
|
|
104
|
-
function countStageViews(config) {
|
|
105
|
-
return stageViews(config).length;
|
|
106
|
-
}
|
|
107
|
-
function countStageQuestions(config) {
|
|
108
|
-
return stageQuestions(config).length;
|
|
109
|
-
}
|
|
110
|
-
function stageEstimate(questionCount) {
|
|
111
|
-
const seconds = questionCount * 8;
|
|
112
|
-
if (seconds < 50) return `about ${Math.max(15, Math.ceil(seconds / 5) * 5)} seconds`;
|
|
113
|
-
if (seconds <= 90) return "about a minute";
|
|
114
|
-
return `about ${Math.round(seconds / 60)} minutes`;
|
|
115
|
-
}
|
|
116
|
-
function stageFirstName(value) {
|
|
117
|
-
if (typeof value !== "string") return null;
|
|
118
|
-
const token = value.trim().split(/\s+/)[0];
|
|
119
|
-
if (!token || token.length > 24) return null;
|
|
120
|
-
return token;
|
|
121
|
-
}
|
|
122
|
-
function formatAnswer(value) {
|
|
123
|
-
if (isEmptyValue(value)) return null;
|
|
124
|
-
if (Array.isArray(value)) return value.map(String).join(", ");
|
|
125
|
-
if (typeof value === "boolean") return value ? "Yes" : "No";
|
|
126
|
-
return String(value);
|
|
127
|
-
}
|
|
128
|
-
var AUTO_ADVANCE_TYPES = ["radio", "select", "rating"];
|
|
129
|
-
|
|
130
|
-
export { AUTO_ADVANCE_TYPES, countStageQuestions, countStageViews, formatAnswer, stageEstimate, stageFirstName, stageViews, useFieldControls };
|
|
131
|
-
//# sourceMappingURL=chunk-D3WJMSTB.mjs.map
|
|
132
|
-
//# sourceMappingURL=chunk-D3WJMSTB.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/forms/field-controls.ts","../src/forms/experience-plan.ts"],"names":[],"mappings":"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","file":"chunk-D3WJMSTB.mjs","sourcesContent":["'use client'\n\n/**\n * The field controls that need React hooks, loaded only when a form actually\n * has a field that uses them.\n *\n * FormField deliberately does NOT import these. DatePicker carries 17 hooks\n * and FileField holds upload state; importing them there put both in\n * FormField's chunk, which the build stamps `'use client'` — so a Server\n * Component rendering a single text input shipped 38 KB of date picker to the\n * browser. Injecting them from the client side keeps FormField hook-free and\n * therefore server-renderable, which is the whole basis of StaticForm.\n *\n * Injection alone still put both controls in the forms entry's eager graph,\n * because a module-level constant referencing them is a static import: every\n * form paid for the date picker, and most forms have no date field. They are\n * now fetched on demand, per control, from the field list.\n *\n * The wait costs nothing visually. FormField already renders the native\n * control when a control is absent (static mode does exactly this), so a date\n * field paints as `<input type=\"date\">` and upgrades in place when the chunk\n * lands — the same enhancement path a no-JS visitor never leaves.\n *\n * Every client renderer of <FormField> (FormClient, FormSpotlight, FormStage)\n * calls this hook, so the experiences and the classic form always offer\n * identical controls.\n */\n\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport type { FormField as FormFieldType } from './types'\n\nexport interface FieldControls {\n Date?: React.ComponentType<any>\n File?: React.ComponentType<any>\n}\n\n/** Stable identity for the common case (no date, no file) — no render churn. */\nconst NO_CONTROLS: FieldControls = {}\n\nexport function useFieldControls(fields: FormFieldType[] | undefined): FieldControls {\n const needsDate = useMemo(\n () => (fields ?? []).some((f) => f.field_type === 'date' || f.field_type === 'datetime'),\n [fields],\n )\n const needsFile = useMemo(\n () => (fields ?? []).some((f) => f.field_type === 'file'),\n [fields],\n )\n\n const [controls, setControls] = useState<FieldControls>(NO_CONTROLS)\n // Guards re-import when a conditional field toggles visibility mid-fill.\n const requested = useRef({ date: false, file: false })\n\n useEffect(() => {\n let cancelled = false\n\n if (needsDate && !requested.current.date) {\n requested.current.date = true\n import('./DatePicker')\n .then((m) => {\n if (!cancelled) setControls((prev) => ({ ...prev, Date: m.DatePicker }))\n })\n .catch(() => {\n // Chunk never arrived — the native date input stays, which submits\n // the same value. A failed fetch must not cost the lead.\n requested.current.date = false\n })\n }\n\n if (needsFile && !requested.current.file) {\n requested.current.file = true\n import('./FileField')\n .then((m) => {\n if (!cancelled) setControls((prev) => ({ ...prev, File: m.FileField }))\n })\n .catch(() => {\n requested.current.file = false\n })\n }\n\n return () => {\n cancelled = true\n }\n }, [needsDate, needsFile])\n\n return controls\n}\n","/**\n * Shared planning helpers for the alternate form experiences (stage,\n * spotlight). Pure data — no React, no CSS — so FormClient can import the\n * counts it needs for tracking WITHOUT pulling an experience component (and\n * its stylesheet) into every site's forms bundle. The components themselves\n * are lazy-loaded; this module is the only part that ships eagerly.\n */\n\nimport type {\n FormField as FormFieldType,\n FormStep,\n ManagedFormConfig,\n} from './types'\n// Display-only types are never staged; what counts as empty is shared with\n// validation. Both live in field-rules.ts.\nimport { isDisplayOnly, isEmptyValue } from './field-rules'\n\nexport interface StageQuestion {\n field: FormFieldType\n /** The step (chapter) this question belongs to, when the form is multi-step. */\n step?: FormStep\n}\n\nexport interface StageView {\n fields: FormFieldType[]\n step?: FormStep\n}\n\n/**\n * Flatten a form into its ordered question list. Steps become chapters:\n * multi-step forms iterate steps in step_number order (fields are already\n * sorted by sort_order via normalizeFormConfig); stepless fields trail.\n */\nexport function stageQuestions(config: ManagedFormConfig): StageQuestion[] {\n const input = (config.fields || []).filter(\n (f) => !isDisplayOnly(f),\n )\n if (!config.is_multi_step || !config.steps?.length) {\n return input.map((field) => ({ field }))\n }\n const ordered = [...config.steps].sort((a, b) => a.step_number - b.step_number)\n const out: StageQuestion[] = []\n const claimed = new Set<string>()\n for (const step of ordered) {\n for (const field of input) {\n if (field.step_id === step.id) {\n out.push({ field, step })\n claimed.add(field.id)\n }\n }\n }\n for (const field of input) {\n if (!claimed.has(field.id)) out.push({ field })\n }\n return out\n}\n\nconst WIDTH_FRACTION: Record<string, number> = {\n full: 1,\n half: 1 / 2,\n third: 1 / 3,\n quarter: 1 / 4,\n}\n\n/**\n * Group questions into beats using the classic grid's own row math:\n * consecutive sub-full-width fields fill a row (2 halves, 3 thirds...) and\n * that row is one beat; a full-width field closes any open row and stands\n * alone; a chapter change always starts a fresh beat.\n */\nexport function stageViews(config: ManagedFormConfig): StageView[] {\n const questions = stageQuestions(config)\n const views: StageView[] = []\n let open: StageView | null = null\n let openWidth = 0\n\n const close = () => {\n if (open) views.push(open)\n open = null\n openWidth = 0\n }\n\n for (const q of questions) {\n const fraction = WIDTH_FRACTION[q.field.width] ?? 1\n const chapterChanged = open && open.step?.id !== q.step?.id\n if (fraction >= 1 || chapterChanged) close()\n if (!open) {\n open = { fields: [q.field], step: q.step }\n openWidth = fraction\n if (fraction >= 1) close()\n continue\n }\n if (openWidth + fraction > 1.0001) close()\n if (!open) {\n open = { fields: [q.field], step: q.step }\n openWidth = fraction\n continue\n }\n open.fields.push(q.field)\n openWidth += fraction\n }\n close()\n return views\n}\n\nexport function countStageViews(config: ManagedFormConfig): number {\n return stageViews(config).length\n}\n\nexport function countStageQuestions(config: ManagedFormConfig): number {\n return stageQuestions(config).length\n}\n\n/**\n * Honest, friendly time estimate: \"about 40 seconds\".\n * ~8s per question, rounded to something a human would actually say.\n */\nexport function stageEstimate(questionCount: number): string {\n const seconds = questionCount * 8\n if (seconds < 50) return `about ${Math.max(15, Math.ceil(seconds / 5) * 5)} seconds`\n if (seconds <= 90) return 'about a minute'\n return `about ${Math.round(seconds / 60)} minutes`\n}\n\n/** First name for the greeting — conservative: short, single token, else null. */\nexport function stageFirstName(value: unknown): string | null {\n if (typeof value !== 'string') return null\n const token = value.trim().split(/\\s+/)[0]\n if (!token || token.length > 24) return null\n return token\n}\n\nexport function formatAnswer(value: unknown): string | null {\n if (isEmptyValue(value)) return null\n if (Array.isArray(value)) return value.map(String).join(', ')\n if (typeof value === 'boolean') return value ? 'Yes' : 'No'\n return String(value)\n}\n\n/** Single-select types where picking an answer advances after a lock-in beat. */\nexport const AUTO_ADVANCE_TYPES = ['radio', 'select', 'rating']\n"]}
|
package/dist/chunk-DA7IANFG.mjs
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// src/llms/discovery-headers.ts
|
|
2
|
-
var TYPE_MARKDOWN = '; type="text/markdown"';
|
|
3
|
-
function safeHreflang(tag) {
|
|
4
|
-
if (!/^[\w-]+$/.test(tag)) return null;
|
|
5
|
-
return tag;
|
|
6
|
-
}
|
|
7
|
-
function buildAiDiscoveryHeaders(options) {
|
|
8
|
-
const base = options.siteUrl.replace(/\/$/, "");
|
|
9
|
-
const path = options.llmsPath || "/llms.txt";
|
|
10
|
-
const resolvedPath = path.startsWith("/") ? path : `/${path}`;
|
|
11
|
-
const llmsUrl = `${base}${resolvedPath}`;
|
|
12
|
-
const type = options.includeTypeParameter === false ? "" : TYPE_MARKDOWN;
|
|
13
|
-
const segments = [`<${llmsUrl}>; rel="describedby"${type}`];
|
|
14
|
-
for (const alt of options.languageAlternates ?? []) {
|
|
15
|
-
const hl = safeHreflang(alt.hreflang);
|
|
16
|
-
if (!hl || !alt.href) continue;
|
|
17
|
-
segments.push(`<${alt.href}>; rel="alternate"; hreflang="${hl}"${type}`);
|
|
18
|
-
}
|
|
19
|
-
return {
|
|
20
|
-
Link: segments.join(", ")
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
function wantsLlmsDiscoveryLink(req) {
|
|
24
|
-
const method = req.method.toUpperCase();
|
|
25
|
-
if (method !== "GET" && method !== "HEAD") return false;
|
|
26
|
-
if (req.rsc) return false;
|
|
27
|
-
if (req.pathname === "/api" || req.pathname.startsWith("/api/")) return false;
|
|
28
|
-
const last = req.pathname.slice(req.pathname.lastIndexOf("/") + 1);
|
|
29
|
-
if (last.includes(".") && !/\.html?$/i.test(last)) return false;
|
|
30
|
-
const accept = req.accept?.trim();
|
|
31
|
-
if (!accept) return true;
|
|
32
|
-
return /text\/html|application\/xhtml\+xml|\*\/\*/i.test(accept);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export { buildAiDiscoveryHeaders, wantsLlmsDiscoveryLink };
|
|
36
|
-
//# sourceMappingURL=chunk-DA7IANFG.mjs.map
|
|
37
|
-
//# sourceMappingURL=chunk-DA7IANFG.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/llms/discovery-headers.ts"],"names":[],"mappings":";AAKA,IAAM,aAAA,GAAgB,wBAAA;AAGtB,SAAS,aAAa,GAAA,EAA4B;AAChD,EAAA,IAAI,CAAC,UAAA,CAAW,IAAA,CAAK,GAAG,GAAG,OAAO,IAAA;AAClC,EAAA,OAAO,GAAA;AACT;AA2BO,SAAS,wBAAwB,OAAA,EAA4D;AAClG,EAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,OAAA,CAAQ,OAAA,CAAQ,OAAO,EAAE,CAAA;AAC9C,EAAA,MAAM,IAAA,GAAO,QAAQ,QAAA,IAAY,WAAA;AACjC,EAAA,MAAM,eAAe,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,GAAI,IAAA,GAAO,IAAI,IAAI,CAAA,CAAA;AAC3D,EAAA,MAAM,OAAA,GAAU,CAAA,EAAG,IAAI,CAAA,EAAG,YAAY,CAAA,CAAA;AACtC,EAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,oBAAA,KAAyB,KAAA,GAAQ,EAAA,GAAK,aAAA;AAE3D,EAAA,MAAM,WAAqB,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,oBAAA,EAAuB,IAAI,CAAA,CAAE,CAAA;AAEpE,EAAA,KAAA,MAAW,GAAA,IAAO,OAAA,CAAQ,kBAAA,IAAsB,EAAC,EAAG;AAClD,IAAA,MAAM,EAAA,GAAK,YAAA,CAAa,GAAA,CAAI,QAAQ,CAAA;AACpC,IAAA,IAAI,CAAC,EAAA,IAAM,CAAC,GAAA,CAAI,IAAA,EAAM;AACtB,IAAA,QAAA,CAAS,IAAA,CAAK,IAAI,GAAA,CAAI,IAAI,iCAAiC,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAA;AAAA,EACzE;AAEA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,QAAA,CAAS,IAAA,CAAK,IAAI;AAAA,GAC1B;AACF;AA0BO,SAAS,uBAAuB,GAAA,EAAgC;AACrE,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,MAAA,CAAO,WAAA,EAAY;AACtC,EAAA,IAAI,MAAA,KAAW,KAAA,IAAS,MAAA,KAAW,MAAA,EAAQ,OAAO,KAAA;AAClD,EAAA,IAAI,GAAA,CAAI,KAAK,OAAO,KAAA;AACpB,EAAA,IAAI,GAAA,CAAI,aAAa,MAAA,IAAU,GAAA,CAAI,SAAS,UAAA,CAAW,OAAO,GAAG,OAAO,KAAA;AACxE,EAAA,MAAM,IAAA,GAAO,IAAI,QAAA,CAAS,KAAA,CAAM,IAAI,QAAA,CAAS,WAAA,CAAY,GAAG,CAAA,GAAI,CAAC,CAAA;AACjE,EAAA,IAAI,IAAA,CAAK,SAAS,GAAG,CAAA,IAAK,CAAC,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA,EAAG,OAAO,KAAA;AAC1D,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,MAAA,EAAQ,IAAA,EAAK;AAChC,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,EAAA,OAAO,4CAAA,CAA6C,KAAK,MAAM,CAAA;AACjE","file":"chunk-DA7IANFG.mjs","sourcesContent":["/**\n * Opt-in HTTP headers linking HTML documents to /llms.txt for crawler discovery.\n * `rel=\"describedby\"` is IANA-registered (RFC 8288).\n */\n\nconst TYPE_MARKDOWN = '; type=\"text/markdown\"'\n\n/** Safe subset for `hreflang` (BCP 47 tags, no quotes/semicolons). */\nfunction safeHreflang(tag: string): string | null {\n if (!/^[\\w-]+$/.test(tag)) return null\n return tag\n}\n\nexport interface LlmsLanguageAlternate {\n /** BCP 47 tag, e.g. `fr` or `en-US` */\n hreflang: string\n /** Absolute URL to that locale’s llms.txt (or equivalent) */\n href: string\n}\n\nexport interface AiDiscoveryHeadersOptions {\n /** Canonical site origin, e.g. https://example.com (no trailing slash) */\n siteUrl: string\n /** Path to llms.txt (default `/llms.txt`) */\n llmsPath?: string\n /**\n * When true (default), append `type=\"text/markdown\"` on Link targets so crawlers\n * can treat the resource as markdown text.\n */\n includeTypeParameter?: boolean\n /** Optional `rel=\"alternate\"` links for multilingual llms.txt (or per-locale equivalents). */\n languageAlternates?: LlmsLanguageAlternate[]\n}\n\n/**\n * Returns header map suitable for Next.js `headers()` merge.\n * Prefer this over visible footer links for machine-facing discovery.\n */\nexport function buildAiDiscoveryHeaders(options: AiDiscoveryHeadersOptions): Record<string, string> {\n const base = options.siteUrl.replace(/\\/$/, '')\n const path = options.llmsPath || '/llms.txt'\n const resolvedPath = path.startsWith('/') ? path : `/${path}`\n const llmsUrl = `${base}${resolvedPath}`\n const type = options.includeTypeParameter === false ? '' : TYPE_MARKDOWN\n\n const segments: string[] = [`<${llmsUrl}>; rel=\"describedby\"${type}`]\n\n for (const alt of options.languageAlternates ?? []) {\n const hl = safeHreflang(alt.hreflang)\n if (!hl || !alt.href) continue\n segments.push(`<${alt.href}>; rel=\"alternate\"; hreflang=\"${hl}\"${type}`)\n }\n\n return {\n Link: segments.join(', '),\n }\n}\n\nexport interface DiscoveryRequest {\n method: string\n pathname: string\n /** The Accept header, or null when the request sent none. */\n accept: string | null\n /** Next's `RSC` request header: a client-side navigation payload, not a page. */\n rsc?: string | null\n}\n\n/**\n * Does this request get the `Link: rel=\"describedby\"` discovery header?\n *\n * Any request that could be for an HTML page. It used to take only requests\n * whose Accept header named text/html or `*` + `/*`, which skipped every\n * request that sends no Accept header at all: curl, link checkers, and a good\n * share of crawlers and AI fetchers, which are exactly who the header is for.\n * A missing Accept header means \"anything\", so it counts (RFC 9110 §12.5.1).\n *\n * Skipped: methods other than GET and HEAD; an Accept header that names\n * types but no HTML (`application/json`, `image/*`); file-like paths\n * (`/llms.txt`, `/sitemap.xml`, `/feed.xml`: a `.` in the last segment,\n * except `.html`); `/api/` routes; and Next's RSC navigation requests.\n * Static assets never reach the proxy (its matcher excludes them).\n */\nexport function wantsLlmsDiscoveryLink(req: DiscoveryRequest): boolean {\n const method = req.method.toUpperCase()\n if (method !== 'GET' && method !== 'HEAD') return false\n if (req.rsc) return false\n if (req.pathname === '/api' || req.pathname.startsWith('/api/')) return false\n const last = req.pathname.slice(req.pathname.lastIndexOf('/') + 1)\n if (last.includes('.') && !/\\.html?$/i.test(last)) return false\n const accept = req.accept?.trim()\n if (!accept) return true\n return /text\\/html|application\\/xhtml\\+xml|\\*\\/\\*/i.test(accept)\n}\n"]}
|
package/dist/chunk-DV2LJYFD.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
// src/seo/ManagedScripts.tsx
|
|
4
|
-
function ManagedScripts(_props) {
|
|
5
|
-
return null;
|
|
6
|
-
}
|
|
7
|
-
function ManagedNoScripts(_props) {
|
|
8
|
-
return null;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
exports.ManagedNoScripts = ManagedNoScripts;
|
|
12
|
-
exports.ManagedScripts = ManagedScripts;
|
|
13
|
-
//# sourceMappingURL=chunk-DV2LJYFD.js.map
|
|
14
|
-
//# sourceMappingURL=chunk-DV2LJYFD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/seo/ManagedScripts.tsx"],"names":[],"mappings":";;;AAeO,SAAS,eAAe,MAAA,EAAmC;AAChE,EAAA,OAAO,IAAA;AACT;AAKO,SAAS,iBAAiB,MAAA,EAAqD;AACpF,EAAA,OAAO,IAAA;AACT","file":"chunk-DV2LJYFD.js","sourcesContent":["import * as React from 'react'\nimport type { ManagedScriptsProps } from './types'\n\n/**\n * @deprecated The managed-scripts feature is retired (2026-06): scripts belong\n * in the site's own code via next/script, not in a Portal-managed table. The\n * Portal admin endpoints are removed and the table is empty; this component\n * now always renders null and is kept only so existing imports keep compiling.\n *\n * Perf note (2026-07): the previous \"stub\" still fetched\n * `/api/public/seo/scripts` on the server for every position on every page\n * render — two wasted API round-trips per page (SiteKitLayout renders head +\n * body-end) that could delay TTFB on dynamic/ISR routes and spam build logs.\n * It is now a true no-op: no fetch, no Suspense.\n */\nexport function ManagedScripts(_props: ManagedScriptsProps): null {\n return null\n}\n\n/**\n * @deprecated See {@link ManagedScripts} — retired, always renders null.\n */\nexport function ManagedNoScripts(_props: { projectId?: string; path?: string }): null {\n return null\n}\n\nexport default ManagedScripts\n"]}
|