@focus-reactive/payload-plugin-seo 1.0.0 → 1.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/dist/admin.css +1214 -0
- package/dist/components/SeoButton/index.d.ts +14 -0
- package/dist/components/SeoButton/index.d.ts.map +1 -0
- package/dist/components/SeoButton/index.js +81 -0
- package/dist/components/SeoButton/index.js.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/constants.d.ts +3 -0
- package/dist/components/SeoDrawer/TabsNav/constants.d.ts.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/constants.js +13 -0
- package/dist/components/SeoDrawer/TabsNav/constants.js.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/index.d.ts +8 -0
- package/dist/components/SeoDrawer/TabsNav/index.d.ts.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/index.js +14 -0
- package/dist/components/SeoDrawer/TabsNav/index.js.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/types.d.ts +8 -0
- package/dist/components/SeoDrawer/TabsNav/types.d.ts.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/types.js +1 -0
- package/dist/components/SeoDrawer/TabsNav/types.js.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/variants.d.ts +4 -0
- package/dist/components/SeoDrawer/TabsNav/variants.d.ts.map +1 -0
- package/dist/components/SeoDrawer/TabsNav/variants.js +14 -0
- package/dist/components/SeoDrawer/TabsNav/variants.js.map +1 -0
- package/dist/components/SeoDrawer/analysisDecision.d.ts +7 -0
- package/dist/components/SeoDrawer/analysisDecision.d.ts.map +1 -0
- package/dist/components/SeoDrawer/analysisDecision.js +12 -0
- package/dist/components/SeoDrawer/analysisDecision.js.map +1 -0
- package/dist/components/SeoDrawer/build-analysis-input.d.ts +24 -0
- package/dist/components/SeoDrawer/build-analysis-input.d.ts.map +1 -0
- package/dist/components/SeoDrawer/build-analysis-input.js +27 -0
- package/dist/components/SeoDrawer/build-analysis-input.js.map +1 -0
- package/dist/components/SeoDrawer/buildInput.d.ts +17 -0
- package/dist/components/SeoDrawer/buildInput.d.ts.map +1 -0
- package/dist/components/SeoDrawer/buildInput.js +32 -0
- package/dist/components/SeoDrawer/buildInput.js.map +1 -0
- package/dist/components/SeoDrawer/components/Header.d.ts +9 -0
- package/dist/components/SeoDrawer/components/Header.d.ts.map +1 -0
- package/dist/components/SeoDrawer/components/Header.js +21 -0
- package/dist/components/SeoDrawer/components/Header.js.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.d.ts +3 -0
- package/dist/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.d.ts.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.js +14 -0
- package/dist/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.js.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/index.d.ts +12 -0
- package/dist/components/SeoDrawer/components/SerpPreview/index.d.ts.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/index.js +23 -0
- package/dist/components/SeoDrawer/components/SerpPreview/index.js.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/serp-favicon.d.ts +8 -0
- package/dist/components/SeoDrawer/components/SerpPreview/serp-favicon.d.ts.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/serp-favicon.js +8 -0
- package/dist/components/SeoDrawer/components/SerpPreview/serp-favicon.js.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/truncate-description.d.ts +3 -0
- package/dist/components/SeoDrawer/components/SerpPreview/truncate-description.d.ts.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/truncate-description.js +16 -0
- package/dist/components/SeoDrawer/components/SerpPreview/truncate-description.js.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/variants.d.ts +19 -0
- package/dist/components/SeoDrawer/components/SerpPreview/variants.d.ts.map +1 -0
- package/dist/components/SeoDrawer/components/SerpPreview/variants.js +58 -0
- package/dist/components/SeoDrawer/components/SerpPreview/variants.js.map +1 -0
- package/dist/components/SeoDrawer/index.d.ts +18 -0
- package/dist/components/SeoDrawer/index.d.ts.map +1 -0
- package/dist/components/SeoDrawer/index.js +37 -0
- package/dist/components/SeoDrawer/index.js.map +1 -0
- package/dist/components/SeoDrawer/keyphrasePending.d.ts +2 -0
- package/dist/components/SeoDrawer/keyphrasePending.d.ts.map +1 -0
- package/dist/components/SeoDrawer/keyphrasePending.js +9 -0
- package/dist/components/SeoDrawer/keyphrasePending.js.map +1 -0
- package/dist/components/SeoDrawer/languagePacks.d.ts +2 -0
- package/dist/components/SeoDrawer/languagePacks.d.ts.map +1 -0
- package/dist/components/SeoDrawer/languagePacks.js +19 -0
- package/dist/components/SeoDrawer/languagePacks.js.map +1 -0
- package/dist/components/SeoDrawer/tabs/InclusiveTab.d.ts +5 -0
- package/dist/components/SeoDrawer/tabs/InclusiveTab.d.ts.map +1 -0
- package/dist/components/SeoDrawer/tabs/InclusiveTab.js +46 -0
- package/dist/components/SeoDrawer/tabs/InclusiveTab.js.map +1 -0
- package/dist/components/SeoDrawer/tabs/KeyphraseTab.d.ts +11 -0
- package/dist/components/SeoDrawer/tabs/KeyphraseTab.d.ts.map +1 -0
- package/dist/components/SeoDrawer/tabs/KeyphraseTab.js +72 -0
- package/dist/components/SeoDrawer/tabs/KeyphraseTab.js.map +1 -0
- package/dist/components/SeoDrawer/tabs/OnPageTab.d.ts +5 -0
- package/dist/components/SeoDrawer/tabs/OnPageTab.d.ts.map +1 -0
- package/dist/components/SeoDrawer/tabs/OnPageTab.js +37 -0
- package/dist/components/SeoDrawer/tabs/OnPageTab.js.map +1 -0
- package/dist/components/SeoDrawer/tabs/ReadabilityTab.d.ts +5 -0
- package/dist/components/SeoDrawer/tabs/ReadabilityTab.d.ts.map +1 -0
- package/dist/components/SeoDrawer/tabs/ReadabilityTab.js +37 -0
- package/dist/components/SeoDrawer/tabs/ReadabilityTab.js.map +1 -0
- package/dist/components/SeoDrawer/tabs/SerpTab.d.ts +7 -0
- package/dist/components/SeoDrawer/tabs/SerpTab.d.ts.map +1 -0
- package/dist/components/SeoDrawer/tabs/SerpTab.js +41 -0
- package/dist/components/SeoDrawer/tabs/SerpTab.js.map +1 -0
- package/dist/components/SeoDrawer/tabs/VitalsTab.d.ts +7 -0
- package/dist/components/SeoDrawer/tabs/VitalsTab.d.ts.map +1 -0
- package/dist/components/SeoDrawer/tabs/VitalsTab.js +42 -0
- package/dist/components/SeoDrawer/tabs/VitalsTab.js.map +1 -0
- package/dist/components/SeoDrawer/useAnalysis.d.ts +17 -0
- package/dist/components/SeoDrawer/useAnalysis.d.ts.map +1 -0
- package/dist/components/SeoDrawer/useAnalysis.js +57 -0
- package/dist/components/SeoDrawer/useAnalysis.js.map +1 -0
- package/dist/components/SeoDrawer/useLiveDocument.d.ts +22 -0
- package/dist/components/SeoDrawer/useLiveDocument.d.ts.map +1 -0
- package/dist/components/SeoDrawer/useLiveDocument.js +85 -0
- package/dist/components/SeoDrawer/useLiveDocument.js.map +1 -0
- package/dist/components/SeoDrawer/variants.d.ts +4 -0
- package/dist/components/SeoDrawer/variants.d.ts.map +1 -0
- package/dist/components/SeoDrawer/variants.js +14 -0
- package/dist/components/SeoDrawer/variants.js.map +1 -0
- package/dist/components/icons.d.ts +7 -0
- package/dist/components/icons.d.ts.map +1 -0
- package/dist/components/icons.js +40 -0
- package/dist/components/icons.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +15 -0
- package/dist/config.js.map +1 -0
- package/dist/constants/checkIds.d.ts +8 -0
- package/dist/constants/checkIds.d.ts.map +1 -0
- package/dist/constants/checkIds.js +21 -0
- package/dist/constants/checkIds.js.map +1 -0
- package/dist/constants/index.d.ts +5 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +10 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/statuses.d.ts +3 -0
- package/dist/constants/statuses.d.ts.map +1 -0
- package/dist/constants/statuses.js +9 -0
- package/dist/constants/statuses.js.map +1 -0
- package/dist/content/extractContent.d.ts +3 -0
- package/dist/content/extractContent.d.ts.map +1 -0
- package/dist/content/extractContent.js +31 -0
- package/dist/content/extractContent.js.map +1 -0
- package/dist/content/lexicalToHtml.d.ts +6 -0
- package/dist/content/lexicalToHtml.d.ts.map +1 -0
- package/dist/content/lexicalToHtml.js +15 -0
- package/dist/content/lexicalToHtml.js.map +1 -0
- package/dist/content/uploads/collect-upload-refs.d.ts +5 -0
- package/dist/content/uploads/collect-upload-refs.d.ts.map +1 -0
- package/dist/content/uploads/collect-upload-refs.js +19 -0
- package/dist/content/uploads/collect-upload-refs.js.map +1 -0
- package/dist/content/uploads/hydrate-values.d.ts +5 -0
- package/dist/content/uploads/hydrate-values.d.ts.map +1 -0
- package/dist/content/uploads/hydrate-values.js +15 -0
- package/dist/content/uploads/hydrate-values.js.map +1 -0
- package/dist/content/uploads/media-resolver.d.ts +7 -0
- package/dist/content/uploads/media-resolver.d.ts.map +1 -0
- package/dist/content/uploads/media-resolver.js +60 -0
- package/dist/content/uploads/media-resolver.js.map +1 -0
- package/dist/content/uploads/transform-lexical-uploads.d.ts +5 -0
- package/dist/content/uploads/transform-lexical-uploads.d.ts.map +1 -0
- package/dist/content/uploads/transform-lexical-uploads.js +34 -0
- package/dist/content/uploads/transform-lexical-uploads.js.map +1 -0
- package/dist/content/uploads/transform-upload-values.d.ts +10 -0
- package/dist/content/uploads/transform-upload-values.d.ts.map +1 -0
- package/dist/content/uploads/transform-upload-values.js +108 -0
- package/dist/content/uploads/transform-upload-values.js.map +1 -0
- package/dist/content/uploads/types.d.ts +8 -0
- package/dist/content/uploads/types.d.ts.map +1 -0
- package/dist/content/uploads/types.js +7 -0
- package/dist/content/uploads/types.js.map +1 -0
- package/dist/content/walkValue.d.ts +14 -0
- package/dist/content/walkValue.d.ts.map +1 -0
- package/dist/content/walkValue.js +62 -0
- package/dist/content/walkValue.js.map +1 -0
- package/dist/css.d.js +1 -0
- package/dist/css.d.js.map +1 -0
- package/dist/engine/assessorAdapter.d.ts +14 -0
- package/dist/engine/assessorAdapter.d.ts.map +1 -0
- package/dist/engine/assessorAdapter.js +23 -0
- package/dist/engine/assessorAdapter.js.map +1 -0
- package/dist/engine/buildPaper.d.ts +4 -0
- package/dist/engine/buildPaper.d.ts.map +1 -0
- package/dist/engine/buildPaper.js +16 -0
- package/dist/engine/buildPaper.js.map +1 -0
- package/dist/engine/extractCheckData.d.ts +4 -0
- package/dist/engine/extractCheckData.d.ts.map +1 -0
- package/dist/engine/extractCheckData.js +162 -0
- package/dist/engine/extractCheckData.js.map +1 -0
- package/dist/engine/helpers/has-keyphrase.d.ts +2 -0
- package/dist/engine/helpers/has-keyphrase.d.ts.map +1 -0
- package/dist/engine/helpers/has-keyphrase.js +7 -0
- package/dist/engine/helpers/has-keyphrase.js.map +1 -0
- package/dist/engine/helpers/title-progress.d.ts +5 -0
- package/dist/engine/helpers/title-progress.d.ts.map +1 -0
- package/dist/engine/helpers/title-progress.js +21 -0
- package/dist/engine/helpers/title-progress.js.map +1 -0
- package/dist/engine/inclusiveScore.d.ts +15 -0
- package/dist/engine/inclusiveScore.d.ts.map +1 -0
- package/dist/engine/inclusiveScore.js +25 -0
- package/dist/engine/inclusiveScore.js.map +1 -0
- package/dist/engine/recommendations.d.ts +7 -0
- package/dist/engine/recommendations.d.ts.map +1 -0
- package/dist/engine/recommendations.js +53 -0
- package/dist/engine/recommendations.js.map +1 -0
- package/dist/engine/researcherAdapter.d.ts +6 -0
- package/dist/engine/researcherAdapter.d.ts.map +1 -0
- package/dist/engine/researcherAdapter.js +16 -0
- package/dist/engine/researcherAdapter.js.map +1 -0
- package/dist/engine/runAnalysis/index.d.ts +3 -0
- package/dist/engine/runAnalysis/index.d.ts.map +1 -0
- package/dist/engine/runAnalysis/index.js +24 -0
- package/dist/engine/runAnalysis/index.js.map +1 -0
- package/dist/engine/runAnalysis/services/derive-inclusive.d.ts +4 -0
- package/dist/engine/runAnalysis/services/derive-inclusive.d.ts.map +1 -0
- package/dist/engine/runAnalysis/services/derive-inclusive.js +47 -0
- package/dist/engine/runAnalysis/services/derive-inclusive.js.map +1 -0
- package/dist/engine/runAnalysis/services/derive-readability.d.ts +4 -0
- package/dist/engine/runAnalysis/services/derive-readability.d.ts.map +1 -0
- package/dist/engine/runAnalysis/services/derive-readability.js +32 -0
- package/dist/engine/runAnalysis/services/derive-readability.js.map +1 -0
- package/dist/engine/runAnalysis/services/derive-seo.d.ts +18 -0
- package/dist/engine/runAnalysis/services/derive-seo.d.ts.map +1 -0
- package/dist/engine/runAnalysis/services/derive-seo.js +40 -0
- package/dist/engine/runAnalysis/services/derive-seo.js.map +1 -0
- package/dist/engine/runAnalysis/services/derive-serp.d.ts +3 -0
- package/dist/engine/runAnalysis/services/derive-serp.d.ts.map +1 -0
- package/dist/engine/runAnalysis/services/derive-serp.js +13 -0
- package/dist/engine/runAnalysis/services/derive-serp.js.map +1 -0
- package/dist/engine/runAnalysis/services/derive-vitals/index.d.ts +4 -0
- package/dist/engine/runAnalysis/services/derive-vitals/index.d.ts.map +1 -0
- package/dist/engine/runAnalysis/services/derive-vitals/index.js +19 -0
- package/dist/engine/runAnalysis/services/derive-vitals/index.js.map +1 -0
- package/dist/engine/runAnalysis/services/derive-vitals/researches.d.ts +19 -0
- package/dist/engine/runAnalysis/services/derive-vitals/researches.d.ts.map +1 -0
- package/dist/engine/runAnalysis/services/derive-vitals/researches.js +47 -0
- package/dist/engine/runAnalysis/services/derive-vitals/researches.js.map +1 -0
- package/dist/engine/runAnalysis/utils/enrich.d.ts +5 -0
- package/dist/engine/runAnalysis/utils/enrich.d.ts.map +1 -0
- package/dist/engine/runAnalysis/utils/enrich.js +16 -0
- package/dist/engine/runAnalysis/utils/enrich.js.map +1 -0
- package/dist/engine/runAnalysis/utils/toCategory.d.ts +3 -0
- package/dist/engine/runAnalysis/utils/toCategory.d.ts.map +1 -0
- package/dist/engine/runAnalysis/utils/toCategory.js +13 -0
- package/dist/engine/runAnalysis/utils/toCategory.js.map +1 -0
- package/dist/engine/scoreStatus.d.ts +8 -0
- package/dist/engine/scoreStatus.d.ts.map +1 -0
- package/dist/engine/scoreStatus.js +35 -0
- package/dist/engine/scoreStatus.js.map +1 -0
- package/dist/engine/types/analysis.d.ts +81 -0
- package/dist/engine/types/analysis.d.ts.map +1 -0
- package/dist/engine/types/analysis.js +1 -0
- package/dist/engine/types/analysis.js.map +1 -0
- package/dist/engine/types/paper.d.ts +8 -0
- package/dist/engine/types/paper.d.ts.map +1 -0
- package/dist/engine/types/paper.js +1 -0
- package/dist/engine/types/paper.js.map +1 -0
- package/dist/engine/types/visualization.d.ts +73 -0
- package/dist/engine/types/visualization.d.ts.map +1 -0
- package/dist/engine/types/visualization.js +1 -0
- package/dist/engine/types/visualization.js.map +1 -0
- package/dist/engine/visualization/buildGauge.d.ts +3 -0
- package/dist/engine/visualization/buildGauge.d.ts.map +1 -0
- package/dist/engine/visualization/buildGauge.js +62 -0
- package/dist/engine/visualization/buildGauge.js.map +1 -0
- package/dist/engine/visualization/formatGaugeValue.d.ts +3 -0
- package/dist/engine/visualization/formatGaugeValue.d.ts.map +1 -0
- package/dist/engine/visualization/formatGaugeValue.js +16 -0
- package/dist/engine/visualization/formatGaugeValue.js.map +1 -0
- package/dist/engine/visualization/gaugeSpecs.d.ts +4 -0
- package/dist/engine/visualization/gaugeSpecs.d.ts.map +1 -0
- package/dist/engine/visualization/gaugeSpecs.js +78 -0
- package/dist/engine/visualization/gaugeSpecs.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/constants.d.ts +4 -0
- package/dist/engine/visualization/resolveVisualization/constants.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/constants.js +17 -0
- package/dist/engine/visualization/resolveVisualization/constants.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/index.d.ts +4 -0
- package/dist/engine/visualization/resolveVisualization/index.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/index.js +43 -0
- package/dist/engine/visualization/resolveVisualization/index.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveDrilldown.d.ts +3 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveDrilldown.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveDrilldown.js +19 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveDrilldown.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveLinks.d.ts +4 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveLinks.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveLinks.js +24 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveLinks.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolvePresence.d.ts +4 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolvePresence.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolvePresence.js +7 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolvePresence.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveProportionCount.d.ts +4 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveProportionCount.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveProportionCount.js +20 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveProportionCount.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveValueRange.d.ts +4 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveValueRange.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveValueRange.js +28 -0
- package/dist/engine/visualization/resolveVisualization/resolves/resolveValueRange.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/pluralize.d.ts +2 -0
- package/dist/engine/visualization/resolveVisualization/utils/pluralize.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/pluralize.js +5 -0
- package/dist/engine/visualization/resolveVisualization/utils/pluralize.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/readDrilldownItems.d.ts +5 -0
- package/dist/engine/visualization/resolveVisualization/utils/readDrilldownItems.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/readDrilldownItems.js +8 -0
- package/dist/engine/visualization/resolveVisualization/utils/readDrilldownItems.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/readNumber.d.ts +2 -0
- package/dist/engine/visualization/resolveVisualization/utils/readNumber.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/readNumber.js +8 -0
- package/dist/engine/visualization/resolveVisualization/utils/readNumber.js.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/readPositions.d.ts +2 -0
- package/dist/engine/visualization/resolveVisualization/utils/readPositions.d.ts.map +1 -0
- package/dist/engine/visualization/resolveVisualization/utils/readPositions.js +8 -0
- package/dist/engine/visualization/resolveVisualization/utils/readPositions.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +4 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +23 -0
- package/dist/plugin.js.map +1 -0
- package/dist/translations/en.d.ts +3 -0
- package/dist/translations/en.d.ts.map +1 -0
- package/dist/translations/en.js +17 -0
- package/dist/translations/en.js.map +1 -0
- package/dist/translations/types.d.ts +2 -0
- package/dist/translations/types.d.ts.map +1 -0
- package/dist/translations/types.js +1 -0
- package/dist/translations/types.js.map +1 -0
- package/dist/types/config.d.ts +39 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +1 -0
- package/dist/types/config.js.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/index.d.ts +5 -0
- package/dist/ui/CheckRow/CheckVisualization/index.d.ts.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/index.js +27 -0
- package/dist/ui/CheckRow/CheckVisualization/index.js.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DensityGauge.d.ts +3 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DensityGauge.d.ts.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DensityGauge.js +70 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DensityGauge.js.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DistributionBar.d.ts +3 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DistributionBar.d.ts.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DistributionBar.js +16 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DistributionBar.js.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DrillDown.d.ts +3 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DrillDown.d.ts.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DrillDown.js +36 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/DrillDown.js.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/SegmentBar.d.ts +3 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/SegmentBar.d.ts.map +1 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/SegmentBar.js +32 -0
- package/dist/ui/CheckRow/CheckVisualization/visualizations/SegmentBar.js.map +1 -0
- package/dist/ui/CheckRow/constants/labels.d.ts +6 -0
- package/dist/ui/CheckRow/constants/labels.d.ts.map +1 -0
- package/dist/ui/CheckRow/constants/labels.js +103 -0
- package/dist/ui/CheckRow/constants/labels.js.map +1 -0
- package/dist/ui/CheckRow/index.d.ts +7 -0
- package/dist/ui/CheckRow/index.d.ts.map +1 -0
- package/dist/ui/CheckRow/index.js +29 -0
- package/dist/ui/CheckRow/index.js.map +1 -0
- package/dist/ui/FilterPills.d.ts +10 -0
- package/dist/ui/FilterPills.d.ts.map +1 -0
- package/dist/ui/FilterPills.js +37 -0
- package/dist/ui/FilterPills.js.map +1 -0
- package/dist/ui/KpiCard.d.ts +9 -0
- package/dist/ui/KpiCard.d.ts.map +1 -0
- package/dist/ui/KpiCard.js +19 -0
- package/dist/ui/KpiCard.js.map +1 -0
- package/dist/ui/Pill.d.ts +9 -0
- package/dist/ui/Pill.d.ts.map +1 -0
- package/dist/ui/Pill.js +20 -0
- package/dist/ui/Pill.js.map +1 -0
- package/dist/ui/ScoreRing.d.ts +8 -0
- package/dist/ui/ScoreRing.d.ts.map +1 -0
- package/dist/ui/ScoreRing.js +20 -0
- package/dist/ui/ScoreRing.js.map +1 -0
- package/dist/ui/SectionCard.d.ts +9 -0
- package/dist/ui/SectionCard.d.ts.map +1 -0
- package/dist/ui/SectionCard.js +16 -0
- package/dist/ui/SectionCard.js.map +1 -0
- package/dist/ui/SectionWrapper.d.ts +8 -0
- package/dist/ui/SectionWrapper.d.ts.map +1 -0
- package/dist/ui/SectionWrapper.js +10 -0
- package/dist/ui/SectionWrapper.js.map +1 -0
- package/dist/ui/SegmentedControl.d.ts +15 -0
- package/dist/ui/SegmentedControl.d.ts.map +1 -0
- package/dist/ui/SegmentedControl.js +75 -0
- package/dist/ui/SegmentedControl.js.map +1 -0
- package/dist/ui/TabHeader.d.ts +12 -0
- package/dist/ui/TabHeader.d.ts.map +1 -0
- package/dist/ui/TabHeader.js +22 -0
- package/dist/ui/TabHeader.js.map +1 -0
- package/dist/ui/Tooltip.d.ts +17 -0
- package/dist/ui/Tooltip.d.ts.map +1 -0
- package/dist/ui/Tooltip.js +81 -0
- package/dist/ui/Tooltip.js.map +1 -0
- package/dist/utils/config/getComponentPath.d.ts +2 -0
- package/dist/utils/config/getComponentPath.d.ts.map +1 -0
- package/dist/utils/config/getComponentPath.js +8 -0
- package/dist/utils/config/getComponentPath.js.map +1 -0
- package/dist/utils/config/mergeTranslations.d.ts +3 -0
- package/dist/utils/config/mergeTranslations.d.ts.map +1 -0
- package/dist/utils/config/mergeTranslations.js +11 -0
- package/dist/utils/config/mergeTranslations.js.map +1 -0
- package/dist/utils/config/overrideAdmin.d.ts +4 -0
- package/dist/utils/config/overrideAdmin.d.ts.map +1 -0
- package/dist/utils/config/overrideAdmin.js +43 -0
- package/dist/utils/config/overrideAdmin.js.map +1 -0
- package/dist/utils/style.d.ts +4 -0
- package/dist/utils/style.d.ts.map +1 -0
- package/dist/utils/style.js +11 -0
- package/dist/utils/style.js.map +1 -0
- package/dist/yoastseo.d.js +1 -0
- package/dist/yoastseo.d.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface SeoButtonProps {
|
|
2
|
+
collectionSlug: string;
|
|
3
|
+
fields: Record<string, string>;
|
|
4
|
+
extractContentPath: string | null;
|
|
5
|
+
site: {
|
|
6
|
+
name: string;
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
faviconUrl: string;
|
|
9
|
+
};
|
|
10
|
+
supportedLocales: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare function SeoButton({ collectionSlug, fields, site, supportedLocales }: SeoButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export default SeoButton;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SeoButton/index.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAcD,wBAAgB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,cAAc,2CAuD3F;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Button, useModal } from "@payloadcms/ui";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
import { Gauge } from "lucide-react";
|
|
6
|
+
import { useCallback, useState } from "react";
|
|
7
|
+
import { SeoDrawer } from "../SeoDrawer";
|
|
8
|
+
import { isKeyphrasePending } from "../SeoDrawer/keyphrasePending";
|
|
9
|
+
import { useAnalysis } from "../SeoDrawer/useAnalysis";
|
|
10
|
+
import { useLiveDocument } from "../SeoDrawer/useLiveDocument";
|
|
11
|
+
const DRAWER_SLUG = "seo-analytics-drawer";
|
|
12
|
+
const dotVariants = cva("absolute -top-[2px] -right-[2px] w-[8px] h-[8px] rounded-full border-[1.5px] border-[var(--theme-bg)] pointer-events-none", {
|
|
13
|
+
variants: {
|
|
14
|
+
status: {
|
|
15
|
+
good: "bg-seo-good",
|
|
16
|
+
warn: "bg-seo-warn",
|
|
17
|
+
bad: "bg-seo-bad"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
function SeoButton({ collectionSlug, fields, site, supportedLocales }) {
|
|
22
|
+
const { openModal } = useModal();
|
|
23
|
+
const [keyphrase, setKeyphrase] = useState("");
|
|
24
|
+
const [activated, setActivated] = useState(false);
|
|
25
|
+
const { signature, getInput, invalidateMedia } = useLiveDocument({
|
|
26
|
+
collectionSlug,
|
|
27
|
+
fields,
|
|
28
|
+
site: { name: site.name, baseUrl: site.baseUrl },
|
|
29
|
+
keyphrase,
|
|
30
|
+
enabled: activated
|
|
31
|
+
});
|
|
32
|
+
const { result, analyzing, analyzedKeyphrase, analyzeNow } = useAnalysis({ getInput, signature, supportedLocales, enabled: activated });
|
|
33
|
+
const keyphrasePending = isKeyphrasePending(keyphrase, analyzedKeyphrase);
|
|
34
|
+
const status = result?.overall.status ?? null;
|
|
35
|
+
const open = useCallback(() => {
|
|
36
|
+
invalidateMedia();
|
|
37
|
+
if (activated) {
|
|
38
|
+
analyzeNow();
|
|
39
|
+
} else {
|
|
40
|
+
setActivated(true);
|
|
41
|
+
}
|
|
42
|
+
openModal(DRAWER_SLUG);
|
|
43
|
+
}, [activated, analyzeNow, invalidateMedia, openModal]);
|
|
44
|
+
return /* @__PURE__ */ jsxs("span", { className: "relative inline-flex", children: [
|
|
45
|
+
/* @__PURE__ */ jsx(
|
|
46
|
+
Button,
|
|
47
|
+
{
|
|
48
|
+
"aria-label": "SEO Analytics",
|
|
49
|
+
buttonStyle: "none",
|
|
50
|
+
className: "seo-doc-btn m-0 w-[calc(var(--base)*1.6)] h-[calc(var(--base)*1.6)] inline-flex items-center justify-center border border-[var(--theme-elevation-100)] rounded-rs bg-transparent text-neutral-800 transition-[border-color,background-color] duration-100 hover:border-neutral-300 hover:bg-neutral-100",
|
|
51
|
+
extraButtonProps: { title: void 0 },
|
|
52
|
+
icon: /* @__PURE__ */ jsx(Gauge, {}),
|
|
53
|
+
iconStyle: "without-border",
|
|
54
|
+
margin: false,
|
|
55
|
+
onClick: open,
|
|
56
|
+
size: "small",
|
|
57
|
+
tooltip: "SEO Analytics"
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
status ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: dotVariants({ status }) }) : null,
|
|
61
|
+
/* @__PURE__ */ jsx(
|
|
62
|
+
SeoDrawer,
|
|
63
|
+
{
|
|
64
|
+
analyzeNow,
|
|
65
|
+
analyzing,
|
|
66
|
+
drawerSlug: DRAWER_SLUG,
|
|
67
|
+
keyphrase,
|
|
68
|
+
keyphrasePending,
|
|
69
|
+
result,
|
|
70
|
+
setKeyphrase,
|
|
71
|
+
site
|
|
72
|
+
}
|
|
73
|
+
)
|
|
74
|
+
] });
|
|
75
|
+
}
|
|
76
|
+
var SeoButton_default = SeoButton;
|
|
77
|
+
export {
|
|
78
|
+
SeoButton,
|
|
79
|
+
SeoButton_default as default
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SeoButton/index.tsx"],"sourcesContent":["\"use client\";\nimport { Button, useModal } from \"@payloadcms/ui\";\nimport { cva } from \"class-variance-authority\";\nimport { Gauge } from \"lucide-react\";\nimport { useCallback, useState } from \"react\";\nimport { SeoDrawer } from \"../SeoDrawer\";\nimport { isKeyphrasePending } from \"../SeoDrawer/keyphrasePending\";\nimport { useAnalysis } from \"../SeoDrawer/useAnalysis\";\nimport { useLiveDocument } from \"../SeoDrawer/useLiveDocument\";\n\nexport interface SeoButtonProps {\n collectionSlug: string;\n fields: Record<string, string>;\n extractContentPath: string | null;\n site: { name: string; baseUrl: string; faviconUrl: string };\n supportedLocales: string[];\n}\n\nconst DRAWER_SLUG = \"seo-analytics-drawer\";\n\nconst dotVariants = cva(\"absolute -top-[2px] -right-[2px] w-[8px] h-[8px] rounded-full border-[1.5px] border-[var(--theme-bg)] pointer-events-none\", {\n variants: {\n status: {\n good: \"bg-seo-good\",\n warn: \"bg-seo-warn\",\n bad: \"bg-seo-bad\",\n },\n },\n});\n\nexport function SeoButton({ collectionSlug, fields, site, supportedLocales }: SeoButtonProps) {\n const { openModal } = useModal();\n const [keyphrase, setKeyphrase] = useState(\"\");\n const [activated, setActivated] = useState(false);\n\n const { signature, getInput, invalidateMedia } = useLiveDocument({\n collectionSlug,\n fields,\n site: { name: site.name, baseUrl: site.baseUrl },\n keyphrase,\n enabled: activated,\n });\n const { result, analyzing, analyzedKeyphrase, analyzeNow } = useAnalysis({ getInput, signature, supportedLocales, enabled: activated });\n\n const keyphrasePending = isKeyphrasePending(keyphrase, analyzedKeyphrase);\n\n const status = result?.overall.status ?? null;\n\n const open = useCallback(() => {\n invalidateMedia();\n if (activated) {\n analyzeNow();\n } else {\n setActivated(true);\n }\n openModal(DRAWER_SLUG);\n }, [activated, analyzeNow, invalidateMedia, openModal]);\n\n return (\n <span className=\"relative inline-flex\">\n <Button\n aria-label=\"SEO Analytics\"\n buttonStyle=\"none\"\n className=\"seo-doc-btn m-0 w-[calc(var(--base)*1.6)] h-[calc(var(--base)*1.6)] inline-flex items-center justify-center border border-[var(--theme-elevation-100)] rounded-rs bg-transparent text-neutral-800 transition-[border-color,background-color] duration-100 hover:border-neutral-300 hover:bg-neutral-100\"\n extraButtonProps={{ title: undefined }}\n icon={<Gauge />}\n iconStyle=\"without-border\"\n margin={false}\n onClick={open}\n size=\"small\"\n tooltip=\"SEO Analytics\"\n />\n {status ? <span aria-hidden=\"true\" className={dotVariants({ status })} /> : null}\n <SeoDrawer\n analyzeNow={analyzeNow}\n analyzing={analyzing}\n drawerSlug={DRAWER_SLUG}\n keyphrase={keyphrase}\n keyphrasePending={keyphrasePending}\n result={result}\n setKeyphrase={setKeyphrase}\n site={site}\n />\n </span>\n );\n}\n\nexport default SeoButton;\n"],"mappings":";AA2DI,SAMU,KANV;AA1DJ,SAAS,QAAQ,gBAAgB;AACjC,SAAS,WAAW;AACpB,SAAS,aAAa;AACtB,SAAS,aAAa,gBAAgB;AACtC,SAAS,iBAAiB;AAC1B,SAAS,0BAA0B;AACnC,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAUhC,MAAM,cAAc;AAEpB,MAAM,cAAc,IAAI,6HAA6H;AAAA,EACnJ,UAAU;AAAA,IACR,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,IACP;AAAA,EACF;AACF,CAAC;AAEM,SAAS,UAAU,EAAE,gBAAgB,QAAQ,MAAM,iBAAiB,GAAmB;AAC5F,QAAM,EAAE,UAAU,IAAI,SAAS;AAC/B,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,EAAE;AAC7C,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,EAAE,WAAW,UAAU,gBAAgB,IAAI,gBAAgB;AAAA,IAC/D;AAAA,IACA;AAAA,IACA,MAAM,EAAE,MAAM,KAAK,MAAM,SAAS,KAAK,QAAQ;AAAA,IAC/C;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACD,QAAM,EAAE,QAAQ,WAAW,mBAAmB,WAAW,IAAI,YAAY,EAAE,UAAU,WAAW,kBAAkB,SAAS,UAAU,CAAC;AAEtI,QAAM,mBAAmB,mBAAmB,WAAW,iBAAiB;AAExE,QAAM,SAAS,QAAQ,QAAQ,UAAU;AAEzC,QAAM,OAAO,YAAY,MAAM;AAC7B,oBAAgB;AAChB,QAAI,WAAW;AACb,iBAAW;AAAA,IACb,OAAO;AACL,mBAAa,IAAI;AAAA,IACnB;AACA,cAAU,WAAW;AAAA,EACvB,GAAG,CAAC,WAAW,YAAY,iBAAiB,SAAS,CAAC;AAEtD,SACE,qBAAC,UAAK,WAAU,wBACd;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,cAAW;AAAA,QACX,aAAY;AAAA,QACZ,WAAU;AAAA,QACV,kBAAkB,EAAE,OAAO,OAAU;AAAA,QACrC,MAAM,oBAAC,SAAM;AAAA,QACb,WAAU;AAAA,QACV,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,MAAK;AAAA,QACL,SAAQ;AAAA;AAAA,IACV;AAAA,IACC,SAAS,oBAAC,UAAK,eAAY,QAAO,WAAW,YAAY,EAAE,OAAO,CAAC,GAAG,IAAK;AAAA,IAC5E;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,oBAAQ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/SeoDrawer/TabsNav/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAGnC,eAAO,MAAM,IAAI,EAAE,GAAG,EAOrB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BarChart3, BookOpen, Crosshair, FileText, Search, Users } from "lucide-react";
|
|
2
|
+
const TABS = [
|
|
3
|
+
{ key: "keyphrase", label: "Keyphrase", icon: Crosshair },
|
|
4
|
+
{ key: "onpage", label: "On-page SEO", icon: FileText },
|
|
5
|
+
{ key: "readability", label: "Readability", icon: BookOpen },
|
|
6
|
+
{ key: "inclusive", label: "Inclusive", icon: Users },
|
|
7
|
+
{ key: "vitals", label: "Content vitals", icon: BarChart3 },
|
|
8
|
+
{ key: "serp", label: "Search result preview", icon: Search }
|
|
9
|
+
];
|
|
10
|
+
export {
|
|
11
|
+
TABS
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SeoDrawer/TabsNav/constants.ts"],"sourcesContent":["import type { Tab } from \"./types\";\nimport { BarChart3, BookOpen, Crosshair, FileText, Search, Users } from \"lucide-react\";\n\nexport const TABS: Tab[] = [\n { key: \"keyphrase\", label: \"Keyphrase\", icon: Crosshair },\n { key: \"onpage\", label: \"On-page SEO\", icon: FileText },\n { key: \"readability\", label: \"Readability\", icon: BookOpen },\n { key: \"inclusive\", label: \"Inclusive\", icon: Users },\n { key: \"vitals\", label: \"Content vitals\", icon: BarChart3 },\n { key: \"serp\", label: \"Search result preview\", icon: Search },\n];\n"],"mappings":"AACA,SAAS,WAAW,UAAU,WAAW,UAAU,QAAQ,aAAa;AAEjE,MAAM,OAAc;AAAA,EACzB,EAAE,KAAK,aAAa,OAAO,aAAa,MAAM,UAAU;AAAA,EACxD,EAAE,KAAK,UAAU,OAAO,eAAe,MAAM,SAAS;AAAA,EACtD,EAAE,KAAK,eAAe,OAAO,eAAe,MAAM,SAAS;AAAA,EAC3D,EAAE,KAAK,aAAa,OAAO,aAAa,MAAM,MAAM;AAAA,EACpD,EAAE,KAAK,UAAU,OAAO,kBAAkB,MAAM,UAAU;AAAA,EAC1D,EAAE,KAAK,QAAQ,OAAO,yBAAyB,MAAM,OAAO;AAC9D;","names":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TabKey } from "./types";
|
|
2
|
+
export type { TabKey } from "./types";
|
|
3
|
+
export interface TabsNavProps {
|
|
4
|
+
active: TabKey;
|
|
5
|
+
onChange: (next: TabKey) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function TabsNav({ active, onChange }: TabsNavProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/SeoDrawer/TabsNav/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,wBAAgB,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,YAAY,2CAWzD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { TABS } from "./constants";
|
|
4
|
+
import { tabVariants } from "./variants";
|
|
5
|
+
function TabsNav({ active, onChange }) {
|
|
6
|
+
return /* @__PURE__ */ jsx("nav", { role: "tablist", className: "flex gap-[20px] border-b border-neutral-200 overflow-x-auto", children: TABS.map(({ key, label, icon: Icon }) => /* @__PURE__ */ jsxs("button", { type: "button", role: "tab", "aria-selected": active === key, className: tabVariants({ active: active === key }), onClick: () => onChange(key), children: [
|
|
7
|
+
/* @__PURE__ */ jsx(Icon, { size: 14, "aria-hidden": "true" }),
|
|
8
|
+
/* @__PURE__ */ jsx("span", { children: label })
|
|
9
|
+
] }, key)) });
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
TabsNav
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SeoDrawer/TabsNav/index.tsx"],"sourcesContent":["\"use client\";\n\nimport { TABS } from \"./constants\";\nimport type { TabKey } from \"./types\";\nimport { tabVariants } from \"./variants\";\n\nexport type { TabKey } from \"./types\";\n\nexport interface TabsNavProps {\n active: TabKey;\n onChange: (next: TabKey) => void;\n}\n\nexport function TabsNav({ active, onChange }: TabsNavProps) {\n return (\n <nav role=\"tablist\" className=\"flex gap-[20px] border-b border-neutral-200 overflow-x-auto\">\n {TABS.map(({ key, label, icon: Icon }) => (\n <button key={key} type=\"button\" role=\"tab\" aria-selected={active === key} className={tabVariants({ active: active === key })} onClick={() => onChange(key)}>\n <Icon size={14} aria-hidden=\"true\" />\n <span>{label}</span>\n </button>\n ))}\n </nav>\n );\n}\n"],"mappings":";AAiBQ,SACE,KADF;AAfR,SAAS,YAAY;AAErB,SAAS,mBAAmB;AASrB,SAAS,QAAQ,EAAE,QAAQ,SAAS,GAAiB;AAC1D,SACE,oBAAC,SAAI,MAAK,WAAU,WAAU,+DAC3B,eAAK,IAAI,CAAC,EAAE,KAAK,OAAO,MAAM,KAAK,MAClC,qBAAC,YAAiB,MAAK,UAAS,MAAK,OAAM,iBAAe,WAAW,KAAK,WAAW,YAAY,EAAE,QAAQ,WAAW,IAAI,CAAC,GAAG,SAAS,MAAM,SAAS,GAAG,GACvJ;AAAA,wBAAC,QAAK,MAAM,IAAI,eAAY,QAAO;AAAA,IACnC,oBAAC,UAAM,iBAAM;AAAA,OAFF,GAGb,CACD,GACH;AAEJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/SeoDrawer/TabsNav/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9F,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../../src/components/SeoDrawer/TabsNav/variants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;8EAQtB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
const tabVariants = cva("inline-flex items-center gap-[6px] py-[11px] bg-transparent whitespace-nowrap text-[12.5px] cursor-pointer", {
|
|
3
|
+
variants: {
|
|
4
|
+
active: {
|
|
5
|
+
true: "text-neutral-1000 font-medium",
|
|
6
|
+
false: "text-neutral-500 hover:text-neutral-800"
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
defaultVariants: { active: false }
|
|
10
|
+
});
|
|
11
|
+
export {
|
|
12
|
+
tabVariants
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SeoDrawer/TabsNav/variants.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const tabVariants = cva(\"inline-flex items-center gap-[6px] py-[11px] bg-transparent whitespace-nowrap text-[12.5px] cursor-pointer\", {\n variants: {\n active: {\n true: \"text-neutral-1000 font-medium\",\n false: \"text-neutral-500 hover:text-neutral-800\",\n },\n },\n defaultVariants: { active: false },\n});\n"],"mappings":"AAAA,SAAS,WAAW;AAEb,MAAM,cAAc,IAAI,8GAA8G;AAAA,EAC3I,UAAU;AAAA,IACR,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB,EAAE,QAAQ,MAAM;AACnC,CAAC;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysisDecision.d.ts","sourceRoot":"","sources":["../../../src/components/SeoDrawer/analysisDecision.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC;AAExC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,UAAU,CAMxH"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
function decideAutoAction(args) {
|
|
2
|
+
const { enabled, signature, lastSignature } = args;
|
|
3
|
+
if (!enabled)
|
|
4
|
+
return "skip";
|
|
5
|
+
if (signature === lastSignature)
|
|
6
|
+
return "skip";
|
|
7
|
+
return "run";
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
decideAutoAction
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=analysisDecision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SeoDrawer/analysisDecision.ts"],"sourcesContent":["export type AutoAction = \"skip\" | \"run\";\n\nexport function decideAutoAction(args: { enabled: boolean; signature: string; lastSignature: string | null }): AutoAction {\n const { enabled, signature, lastSignature } = args;\n\n if (!enabled) return \"skip\";\n if (signature === lastSignature) return \"skip\";\n return \"run\";\n}\n"],"mappings":"AAEO,SAAS,iBAAiB,MAAyF;AACxH,QAAM,EAAE,SAAS,WAAW,cAAc,IAAI;AAE9C,MAAI,CAAC;AAAS,WAAO;AACrB,MAAI,cAAc;AAAe,WAAO;AACxC,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ClientField } from "payload";
|
|
2
|
+
import type { MediaResolver } from "../../content/uploads/media-resolver";
|
|
3
|
+
import type { UploadWalkContext } from "../../content/uploads/transform-upload-values";
|
|
4
|
+
import type { AnalysisInput } from "../../engine/types/analysis";
|
|
5
|
+
import type { ExtractorFn, SeoFieldPaths } from "../../types/config";
|
|
6
|
+
export interface BuildAnalysisInputArgs {
|
|
7
|
+
values: Record<string, unknown>;
|
|
8
|
+
locale: string | {
|
|
9
|
+
code?: string;
|
|
10
|
+
} | null | undefined;
|
|
11
|
+
payloadLocale: string | undefined;
|
|
12
|
+
keyphrase: string;
|
|
13
|
+
fields: SeoFieldPaths;
|
|
14
|
+
site: {
|
|
15
|
+
name: string;
|
|
16
|
+
baseUrl: string;
|
|
17
|
+
};
|
|
18
|
+
schemaFields: ClientField[];
|
|
19
|
+
walkCtx: UploadWalkContext;
|
|
20
|
+
resolver: MediaResolver;
|
|
21
|
+
override?: ExtractorFn;
|
|
22
|
+
}
|
|
23
|
+
export declare function buildAnalysisInput(args: BuildAnalysisInputArgs): Promise<AnalysisInput>;
|
|
24
|
+
//# sourceMappingURL=build-analysis-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-analysis-input.d.ts","sourceRoot":"","sources":["../../../src/components/SeoDrawer/build-analysis-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGrE,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACtD,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAYD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC,CAW7F"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { extractContent } from "../../content/extractContent";
|
|
2
|
+
import { collectUploadRefs } from "../../content/uploads/collect-upload-refs";
|
|
3
|
+
import { hydrateUploadValues } from "../../content/uploads/hydrate-values";
|
|
4
|
+
import { buildInput } from "./buildInput";
|
|
5
|
+
async function extractWithUploads(args) {
|
|
6
|
+
const refs = collectUploadRefs(args.values, args.schemaFields, args.walkCtx);
|
|
7
|
+
if (refs.length === 0)
|
|
8
|
+
return extractContent(args.values, args.fields);
|
|
9
|
+
const resolved = await args.resolver.resolve(refs, args.payloadLocale);
|
|
10
|
+
const hydrated = hydrateUploadValues(args.values, args.schemaFields, args.walkCtx, resolved);
|
|
11
|
+
return extractContent(hydrated, args.fields);
|
|
12
|
+
}
|
|
13
|
+
async function buildAnalysisInput(args) {
|
|
14
|
+
const contentHtml = args.override ? await args.override(args.values) : await extractWithUploads(args);
|
|
15
|
+
return buildInput({
|
|
16
|
+
values: args.values,
|
|
17
|
+
contentHtml,
|
|
18
|
+
locale: args.locale,
|
|
19
|
+
keyphrase: args.keyphrase,
|
|
20
|
+
fields: args.fields,
|
|
21
|
+
site: args.site
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
buildAnalysisInput
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=build-analysis-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SeoDrawer/build-analysis-input.ts"],"sourcesContent":["import type { ClientField } from \"payload\";\nimport { extractContent } from \"../../content/extractContent\";\nimport { collectUploadRefs } from \"../../content/uploads/collect-upload-refs\";\nimport { hydrateUploadValues } from \"../../content/uploads/hydrate-values\";\nimport type { MediaResolver } from \"../../content/uploads/media-resolver\";\nimport type { UploadWalkContext } from \"../../content/uploads/transform-upload-values\";\nimport type { AnalysisInput } from \"../../engine/types/analysis\";\nimport type { ExtractorFn, SeoFieldPaths } from \"../../types/config\";\nimport { buildInput } from \"./buildInput\";\n\nexport interface BuildAnalysisInputArgs {\n values: Record<string, unknown>;\n locale: string | { code?: string } | null | undefined;\n payloadLocale: string | undefined;\n keyphrase: string;\n fields: SeoFieldPaths;\n site: { name: string; baseUrl: string };\n schemaFields: ClientField[];\n walkCtx: UploadWalkContext;\n resolver: MediaResolver;\n override?: ExtractorFn;\n}\n\nasync function extractWithUploads(args: BuildAnalysisInputArgs): Promise<string> {\n const refs = collectUploadRefs(args.values, args.schemaFields, args.walkCtx);\n if (refs.length === 0) return extractContent(args.values, args.fields);\n\n const resolved = await args.resolver.resolve(refs, args.payloadLocale);\n const hydrated = hydrateUploadValues(args.values, args.schemaFields, args.walkCtx, resolved);\n\n return extractContent(hydrated, args.fields);\n}\n\nexport async function buildAnalysisInput(args: BuildAnalysisInputArgs): Promise<AnalysisInput> {\n const contentHtml = args.override ? await args.override(args.values) : await extractWithUploads(args);\n\n return buildInput({\n values: args.values,\n contentHtml,\n locale: args.locale,\n keyphrase: args.keyphrase,\n fields: args.fields,\n site: args.site,\n });\n}\n"],"mappings":"AACA,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AAKpC,SAAS,kBAAkB;AAe3B,eAAe,mBAAmB,MAA+C;AAC/E,QAAM,OAAO,kBAAkB,KAAK,QAAQ,KAAK,cAAc,KAAK,OAAO;AAC3E,MAAI,KAAK,WAAW;AAAG,WAAO,eAAe,KAAK,QAAQ,KAAK,MAAM;AAErE,QAAM,WAAW,MAAM,KAAK,SAAS,QAAQ,MAAM,KAAK,aAAa;AACrE,QAAM,WAAW,oBAAoB,KAAK,QAAQ,KAAK,cAAc,KAAK,SAAS,QAAQ;AAE3F,SAAO,eAAe,UAAU,KAAK,MAAM;AAC7C;AAEA,eAAsB,mBAAmB,MAAsD;AAC7F,QAAM,cAAc,KAAK,WAAW,MAAM,KAAK,SAAS,KAAK,MAAM,IAAI,MAAM,mBAAmB,IAAI;AAEpG,SAAO,WAAW;AAAA,IAChB,QAAQ,KAAK;AAAA,IACb;AAAA,IACA,QAAQ,KAAK;AAAA,IACb,WAAW,KAAK;AAAA,IAChB,QAAQ,KAAK;AAAA,IACb,MAAM,KAAK;AAAA,EACb,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AnalysisInput } from "../../engine/types/analysis";
|
|
2
|
+
import type { SeoFieldPaths } from "../../types/config";
|
|
3
|
+
export interface BuildInputArgs {
|
|
4
|
+
values: Record<string, unknown>;
|
|
5
|
+
contentHtml: string;
|
|
6
|
+
locale: string | {
|
|
7
|
+
code?: string;
|
|
8
|
+
} | null | undefined;
|
|
9
|
+
keyphrase: string;
|
|
10
|
+
fields: SeoFieldPaths;
|
|
11
|
+
site: {
|
|
12
|
+
name: string;
|
|
13
|
+
baseUrl: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export declare function buildInput({ values, contentHtml, locale, keyphrase, fields, site }: BuildInputArgs): AnalysisInput;
|
|
17
|
+
//# sourceMappingURL=buildInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildInput.d.ts","sourceRoot":"","sources":["../../../src/components/SeoDrawer/buildInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAgBxD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,cAAc,GAAG,aAAa,CAkBlH"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
function valueAt(values, path) {
|
|
2
|
+
if (!path)
|
|
3
|
+
return "";
|
|
4
|
+
const v = path.split(".").reduce((acc, k) => acc && typeof acc === "object" ? acc[k] : void 0, values);
|
|
5
|
+
return typeof v === "string" ? v : "";
|
|
6
|
+
}
|
|
7
|
+
function normalizeLocale(locale) {
|
|
8
|
+
const code = (typeof locale === "object" && locale ? locale.code : locale != null ? String(locale) : void 0) ?? "en";
|
|
9
|
+
return code.includes("_") ? code : `${code}_${code.toUpperCase()}`;
|
|
10
|
+
}
|
|
11
|
+
function buildInput({ values, contentHtml, locale, keyphrase, fields, site }) {
|
|
12
|
+
const title = valueAt(values, fields.seoTitle) || valueAt(values, "title");
|
|
13
|
+
return {
|
|
14
|
+
title,
|
|
15
|
+
slug: valueAt(values, fields.slug ?? "slug"),
|
|
16
|
+
description: valueAt(values, fields.metaDescription),
|
|
17
|
+
contentHtml,
|
|
18
|
+
keyphrase,
|
|
19
|
+
locale: normalizeLocale(locale),
|
|
20
|
+
site,
|
|
21
|
+
has: {
|
|
22
|
+
seoTitle: Boolean(fields.seoTitle && valueAt(values, fields.seoTitle)),
|
|
23
|
+
metaDescription: Boolean(fields.metaDescription),
|
|
24
|
+
slug: Boolean(fields.slug ?? "slug"),
|
|
25
|
+
content: Boolean(fields.content)
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
buildInput
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=buildInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SeoDrawer/buildInput.ts"],"sourcesContent":["import type { AnalysisInput } from \"../../engine/types/analysis\";\nimport type { SeoFieldPaths } from \"../../types/config\";\n\nfunction valueAt(values: Record<string, unknown>, path?: string): string {\n if (!path) return \"\";\n\n const v = path.split(\".\").reduce<unknown>((acc, k) => (acc && typeof acc === \"object\" ? (acc as Record<string, unknown>)[k] : undefined), values);\n\n return typeof v === \"string\" ? v : \"\";\n}\n\nfunction normalizeLocale(locale: string | { code?: string } | null | undefined): string {\n const code = (typeof locale === \"object\" && locale ? locale.code : locale != null ? String(locale) : undefined) ?? \"en\";\n\n return code.includes(\"_\") ? code : `${code}_${code.toUpperCase()}`;\n}\n\nexport interface BuildInputArgs {\n values: Record<string, unknown>;\n contentHtml: string;\n locale: string | { code?: string } | null | undefined;\n keyphrase: string;\n fields: SeoFieldPaths;\n site: { name: string; baseUrl: string };\n}\n\nexport function buildInput({ values, contentHtml, locale, keyphrase, fields, site }: BuildInputArgs): AnalysisInput {\n const title = valueAt(values, fields.seoTitle) || valueAt(values, \"title\");\n\n return {\n title,\n slug: valueAt(values, fields.slug ?? \"slug\"),\n description: valueAt(values, fields.metaDescription),\n contentHtml,\n keyphrase,\n locale: normalizeLocale(locale),\n site,\n has: {\n seoTitle: Boolean(fields.seoTitle && valueAt(values, fields.seoTitle)),\n metaDescription: Boolean(fields.metaDescription),\n slug: Boolean(fields.slug ?? \"slug\"),\n content: Boolean(fields.content),\n },\n };\n}\n"],"mappings":"AAGA,SAAS,QAAQ,QAAiC,MAAuB;AACvE,MAAI,CAAC;AAAM,WAAO;AAElB,QAAM,IAAI,KAAK,MAAM,GAAG,EAAE,OAAgB,CAAC,KAAK,MAAO,OAAO,OAAO,QAAQ,WAAY,IAAgC,CAAC,IAAI,QAAY,MAAM;AAEhJ,SAAO,OAAO,MAAM,WAAW,IAAI;AACrC;AAEA,SAAS,gBAAgB,QAA+D;AACtF,QAAM,QAAQ,OAAO,WAAW,YAAY,SAAS,OAAO,OAAO,UAAU,OAAO,OAAO,MAAM,IAAI,WAAc;AAEnH,SAAO,KAAK,SAAS,GAAG,IAAI,OAAO,GAAG,IAAI,IAAI,KAAK,YAAY,CAAC;AAClE;AAWO,SAAS,WAAW,EAAE,QAAQ,aAAa,QAAQ,WAAW,QAAQ,KAAK,GAAkC;AAClH,QAAM,QAAQ,QAAQ,QAAQ,OAAO,QAAQ,KAAK,QAAQ,QAAQ,OAAO;AAEzE,SAAO;AAAA,IACL;AAAA,IACA,MAAM,QAAQ,QAAQ,OAAO,QAAQ,MAAM;AAAA,IAC3C,aAAa,QAAQ,QAAQ,OAAO,eAAe;AAAA,IACnD;AAAA,IACA;AAAA,IACA,QAAQ,gBAAgB,MAAM;AAAA,IAC9B;AAAA,IACA,KAAK;AAAA,MACH,UAAU,QAAQ,OAAO,YAAY,QAAQ,QAAQ,OAAO,QAAQ,CAAC;AAAA,MACrE,iBAAiB,QAAQ,OAAO,eAAe;AAAA,MAC/C,MAAM,QAAQ,OAAO,QAAQ,MAAM;AAAA,MACnC,SAAS,QAAQ,OAAO,OAAO;AAAA,IACjC;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TotalStatus } from "../../../engine/types/analysis";
|
|
2
|
+
interface HeaderProps {
|
|
3
|
+
drawerSlug: string;
|
|
4
|
+
total: number;
|
|
5
|
+
totalStatus: TotalStatus;
|
|
6
|
+
}
|
|
7
|
+
export declare function Header({ drawerSlug, total, totalStatus }: HeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=Header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../src/components/SeoDrawer/components/Header.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAKlE,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,WAAW,2CAoBrE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useModal, XIcon } from "@payloadcms/ui";
|
|
4
|
+
import { cn } from "../../../utils/style";
|
|
5
|
+
import { statusVar } from "../variants";
|
|
6
|
+
import { Pill } from "../../../ui/Pill";
|
|
7
|
+
function Header({ drawerSlug, total, totalStatus }) {
|
|
8
|
+
const { closeModal } = useModal();
|
|
9
|
+
return /* @__PURE__ */ jsxs("div", { className: "relative flex items-center justify-between px-[4px] py-[16px]", children: [
|
|
10
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-[11px]", children: [
|
|
11
|
+
/* @__PURE__ */ jsx("h2", { className: "text-[16px] font-semibold m-0", children: "SEO Analytics" }),
|
|
12
|
+
totalStatus === "idle" ? null : /* @__PURE__ */ jsx(Pill, { variant: totalStatus, children: total })
|
|
13
|
+
] }),
|
|
14
|
+
/* @__PURE__ */ jsx("button", { "aria-label": "Close", className: "drawer__header__close", onClick: () => closeModal(drawerSlug), type: "button", children: /* @__PURE__ */ jsx(XIcon, {}) }),
|
|
15
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-x-0 bottom-0 h-[2px] bg-neutral-150", children: /* @__PURE__ */ jsx("i", { className: cn("block h-full", totalStatus === "idle" ? void 0 : statusVar({ status: totalStatus })), style: { width: `${total}%`, background: "var(--seo-c)" } }) })
|
|
16
|
+
] });
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
Header
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SeoDrawer/components/Header.tsx"],"sourcesContent":["\"use client\";\n\nimport { useModal, XIcon } from \"@payloadcms/ui\";\nimport type { TotalStatus } from \"../../../engine/types/analysis\";\nimport { cn } from \"../../../utils/style\";\nimport { statusVar } from \"../variants\";\nimport { Pill } from \"../../../ui/Pill\";\n\ninterface HeaderProps {\n drawerSlug: string;\n total: number;\n totalStatus: TotalStatus;\n}\n\nexport function Header({ drawerSlug, total, totalStatus }: HeaderProps) {\n const { closeModal } = useModal();\n\n return (\n <div className=\"relative flex items-center justify-between px-[4px] py-[16px]\">\n <div className=\"flex items-center gap-[11px]\">\n <h2 className=\"text-[16px] font-semibold m-0\">SEO Analytics</h2>\n\n {totalStatus === \"idle\" ? null : <Pill variant={totalStatus}>{total}</Pill>}\n </div>\n\n <button aria-label=\"Close\" className=\"drawer__header__close\" onClick={() => closeModal(drawerSlug)} type=\"button\">\n <XIcon />\n </button>\n\n <div className=\"absolute inset-x-0 bottom-0 h-[2px] bg-neutral-150\">\n <i className={cn(\"block h-full\", totalStatus === \"idle\" ? undefined : statusVar({ status: totalStatus }))} style={{ width: `${total}%`, background: \"var(--seo-c)\" }} />\n </div>\n </div>\n );\n}\n"],"mappings":";AAmBM,SACE,KADF;AAjBN,SAAS,UAAU,aAAa;AAEhC,SAAS,UAAU;AACnB,SAAS,iBAAiB;AAC1B,SAAS,YAAY;AAQd,SAAS,OAAO,EAAE,YAAY,OAAO,YAAY,GAAgB;AACtE,QAAM,EAAE,WAAW,IAAI,SAAS;AAEhC,SACE,qBAAC,SAAI,WAAU,iEACb;AAAA,yBAAC,SAAI,WAAU,gCACb;AAAA,0BAAC,QAAG,WAAU,iCAAgC,2BAAa;AAAA,MAE1D,gBAAgB,SAAS,OAAO,oBAAC,QAAK,SAAS,aAAc,iBAAM;AAAA,OACtE;AAAA,IAEA,oBAAC,YAAO,cAAW,SAAQ,WAAU,yBAAwB,SAAS,MAAM,WAAW,UAAU,GAAG,MAAK,UACvG,8BAAC,SAAM,GACT;AAAA,IAEA,oBAAC,SAAI,WAAU,sDACb,8BAAC,OAAE,WAAW,GAAG,gBAAgB,gBAAgB,SAAS,SAAY,UAAU,EAAE,QAAQ,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,GAAG,KAAK,KAAK,YAAY,eAAe,GAAG,GACxK;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlight-keyphrase.d.ts","sourceRoot":"","sources":["../../../../../src/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,CAM/E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
function escapeRegex(value) {
|
|
3
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
4
|
+
}
|
|
5
|
+
function highlightKeyphrase(text, keyphrase) {
|
|
6
|
+
if (!keyphrase.trim())
|
|
7
|
+
return [text];
|
|
8
|
+
const segments = text.split(new RegExp(`(${escapeRegex(keyphrase)})`, "gi"));
|
|
9
|
+
return segments.map((segment, index) => index % 2 === 1 ? /* @__PURE__ */ jsx("strong", { children: segment }, index) : segment);
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
highlightKeyphrase
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=highlight-keyphrase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/SeoDrawer/components/SerpPreview/highlight-keyphrase.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\n\nfunction escapeRegex(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nexport function highlightKeyphrase(text: string, keyphrase: string): ReactNode[] {\n if (!keyphrase.trim()) return [text];\n\n const segments = text.split(new RegExp(`(${escapeRegex(keyphrase)})`, \"gi\"));\n\n return segments.map((segment, index) => (index % 2 === 1 ? <strong key={index}>{segment}</strong> : segment));\n}\n"],"mappings":"AAW6D;AAT7D,SAAS,YAAY,OAAuB;AAC1C,SAAO,MAAM,QAAQ,uBAAuB,MAAM;AACpD;AAEO,SAAS,mBAAmB,MAAc,WAAgC;AAC/E,MAAI,CAAC,UAAU,KAAK;AAAG,WAAO,CAAC,IAAI;AAEnC,QAAM,WAAW,KAAK,MAAM,IAAI,OAAO,IAAI,YAAY,SAAS,CAAC,KAAK,IAAI,CAAC;AAE3E,SAAO,SAAS,IAAI,CAAC,SAAS,UAAW,QAAQ,MAAM,IAAI,oBAAC,YAAoB,qBAAR,KAAgB,IAAY,OAAQ;AAC9G;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
import type { SerpResult } from "../../../../engine/types/analysis";
|
|
3
|
+
export type SerpMode = "mobile" | "desktop";
|
|
4
|
+
interface SerpPreviewProps {
|
|
5
|
+
data: SerpResult;
|
|
6
|
+
keyphrase: string;
|
|
7
|
+
faviconUrl: string;
|
|
8
|
+
mode: SerpMode;
|
|
9
|
+
}
|
|
10
|
+
export declare function SerpPreview({ data, keyphrase, faviconUrl, mode }: SerpPreviewProps): ReactElement;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/SeoDrawer/components/SerpPreview/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAMpE,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5C,UAAU,gBAAgB;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,gBAAgB,GAAG,YAAY,CAmBjG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { highlightKeyphrase } from "./highlight-keyphrase";
|
|
3
|
+
import { SerpFavicon } from "./serp-favicon";
|
|
4
|
+
import { serpContainer, serpDescription, serpHostname, serpSiteName, serpTitle, serpUrlRow } from "./variants";
|
|
5
|
+
import { truncateDescription } from "./truncate-description";
|
|
6
|
+
function SerpPreview({ data, keyphrase, faviconUrl, mode }) {
|
|
7
|
+
const result = /* @__PURE__ */ jsxs("div", { className: serpContainer({ mode }), children: [
|
|
8
|
+
/* @__PURE__ */ jsxs("div", { className: serpUrlRow({ mode }), children: [
|
|
9
|
+
/* @__PURE__ */ jsx(SerpFavicon, { faviconUrl, siteName: data.siteName }),
|
|
10
|
+
/* @__PURE__ */ jsxs("div", { className: "overflow-hidden", children: [
|
|
11
|
+
/* @__PURE__ */ jsx("div", { className: serpSiteName({ mode }), children: data.siteName }),
|
|
12
|
+
/* @__PURE__ */ jsx("div", { className: serpHostname({ mode }), children: data.url })
|
|
13
|
+
] })
|
|
14
|
+
] }),
|
|
15
|
+
/* @__PURE__ */ jsx("div", { className: serpTitle({ mode }), children: data.title }),
|
|
16
|
+
/* @__PURE__ */ jsx("div", { className: serpDescription({ mode }), children: highlightKeyphrase(truncateDescription(data.description), keyphrase) })
|
|
17
|
+
] });
|
|
18
|
+
return mode === "desktop" ? /* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: result }) : result;
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
SerpPreview
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/SeoDrawer/components/SerpPreview/index.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport type { SerpResult } from \"../../../../engine/types/analysis\";\nimport { highlightKeyphrase } from \"./highlight-keyphrase\";\nimport { SerpFavicon } from \"./serp-favicon\";\nimport { serpContainer, serpDescription, serpHostname, serpSiteName, serpTitle, serpUrlRow } from \"./variants\";\nimport { truncateDescription } from \"./truncate-description\";\n\nexport type SerpMode = \"mobile\" | \"desktop\";\n\ninterface SerpPreviewProps {\n data: SerpResult;\n keyphrase: string;\n faviconUrl: string;\n mode: SerpMode;\n}\n\nexport function SerpPreview({ data, keyphrase, faviconUrl, mode }: SerpPreviewProps): ReactElement {\n const result = (\n <div className={serpContainer({ mode })}>\n <div className={serpUrlRow({ mode })}>\n <SerpFavicon faviconUrl={faviconUrl} siteName={data.siteName} />\n\n <div className=\"overflow-hidden\">\n <div className={serpSiteName({ mode })}>{data.siteName}</div>\n <div className={serpHostname({ mode })}>{data.url}</div>\n </div>\n </div>\n\n <div className={serpTitle({ mode })}>{data.title}</div>\n\n <div className={serpDescription({ mode })}>{highlightKeyphrase(truncateDescription(data.description), keyphrase)}</div>\n </div>\n );\n\n return mode === \"desktop\" ? <div className=\"overflow-x-auto\">{result}</div> : result;\n}\n"],"mappings":"AAoBQ,cAEA,YAFA;AAlBR,SAAS,0BAA0B;AACnC,SAAS,mBAAmB;AAC5B,SAAS,eAAe,iBAAiB,cAAc,cAAc,WAAW,kBAAkB;AAClG,SAAS,2BAA2B;AAW7B,SAAS,YAAY,EAAE,MAAM,WAAW,YAAY,KAAK,GAAmC;AACjG,QAAM,SACJ,qBAAC,SAAI,WAAW,cAAc,EAAE,KAAK,CAAC,GACpC;AAAA,yBAAC,SAAI,WAAW,WAAW,EAAE,KAAK,CAAC,GACjC;AAAA,0BAAC,eAAY,YAAwB,UAAU,KAAK,UAAU;AAAA,MAE9D,qBAAC,SAAI,WAAU,mBACb;AAAA,4BAAC,SAAI,WAAW,aAAa,EAAE,KAAK,CAAC,GAAI,eAAK,UAAS;AAAA,QACvD,oBAAC,SAAI,WAAW,aAAa,EAAE,KAAK,CAAC,GAAI,eAAK,KAAI;AAAA,SACpD;AAAA,OACF;AAAA,IAEA,oBAAC,SAAI,WAAW,UAAU,EAAE,KAAK,CAAC,GAAI,eAAK,OAAM;AAAA,IAEjD,oBAAC,SAAI,WAAW,gBAAgB,EAAE,KAAK,CAAC,GAAI,6BAAmB,oBAAoB,KAAK,WAAW,GAAG,SAAS,GAAE;AAAA,KACnH;AAGF,SAAO,SAAS,YAAY,oBAAC,SAAI,WAAU,mBAAmB,kBAAO,IAAS;AAChF;","names":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
interface SerpFaviconProps {
|
|
3
|
+
faviconUrl: string;
|
|
4
|
+
siteName: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function SerpFavicon({ faviconUrl, siteName }: SerpFaviconProps): ReactElement;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=serp-favicon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serp-favicon.d.ts","sourceRoot":"","sources":["../../../../../src/components/SeoDrawer/components/SerpPreview/serp-favicon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,WAAW,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,gBAAgB,GAAG,YAAY,CAMpF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
function SerpFavicon({ faviconUrl, siteName }) {
|
|
3
|
+
return /* @__PURE__ */ jsx("div", { className: "grid h-[28px] w-[28px] min-w-[28px] flex-none place-items-center rounded-[50px] bg-serp-favicon-bg", children: faviconUrl ? /* @__PURE__ */ jsx("img", { alt: "", className: "mx-[5px] h-[18px] w-[18px]", src: faviconUrl }) : /* @__PURE__ */ jsx("span", { className: "text-[12px] text-neutral-600", children: siteName.charAt(0).toUpperCase() }) });
|
|
4
|
+
}
|
|
5
|
+
export {
|
|
6
|
+
SerpFavicon
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=serp-favicon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/SeoDrawer/components/SerpPreview/serp-favicon.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\n\ninterface SerpFaviconProps {\n faviconUrl: string;\n siteName: string;\n}\n\nexport function SerpFavicon({ faviconUrl, siteName }: SerpFaviconProps): ReactElement {\n return (\n <div className=\"grid h-[28px] w-[28px] min-w-[28px] flex-none place-items-center rounded-[50px] bg-serp-favicon-bg\">\n {faviconUrl ? <img alt=\"\" className=\"mx-[5px] h-[18px] w-[18px]\" src={faviconUrl} /> : <span className=\"text-[12px] text-neutral-600\">{siteName.charAt(0).toUpperCase()}</span>}\n </div>\n );\n}\n"],"mappings":"AAUoB;AAHb,SAAS,YAAY,EAAE,YAAY,SAAS,GAAmC;AACpF,SACE,oBAAC,SAAI,WAAU,sGACZ,uBAAa,oBAAC,SAAI,KAAI,IAAG,WAAU,8BAA6B,KAAK,YAAY,IAAK,oBAAC,UAAK,WAAU,gCAAgC,mBAAS,OAAO,CAAC,EAAE,YAAY,GAAE,GAC1K;AAEJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"truncate-description.d.ts","sourceRoot":"","sources":["../../../../../src/components/SeoDrawer/components/SerpPreview/truncate-description.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAIxC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAuB,GAAG,MAAM,CAUpF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const SERP_DESCRIPTION_MAX = 156;
|
|
2
|
+
const OMISSION = " \u2026";
|
|
3
|
+
function truncateDescription(text, max = SERP_DESCRIPTION_MAX) {
|
|
4
|
+
if (text.length <= max)
|
|
5
|
+
return text;
|
|
6
|
+
const budget = max - OMISSION.length;
|
|
7
|
+
const candidate = text.slice(0, budget);
|
|
8
|
+
const lastSpace = candidate.search(/\s+(?=\S*$)/);
|
|
9
|
+
const cut = lastSpace > 0 ? candidate.slice(0, lastSpace) : candidate;
|
|
10
|
+
return cut.trimEnd() + OMISSION;
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
SERP_DESCRIPTION_MAX,
|
|
14
|
+
truncateDescription
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=truncate-description.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/SeoDrawer/components/SerpPreview/truncate-description.ts"],"sourcesContent":["export const SERP_DESCRIPTION_MAX = 156;\n\nconst OMISSION = \" …\";\n\nexport function truncateDescription(text: string, max = SERP_DESCRIPTION_MAX): string {\n if (text.length <= max) return text;\n\n const budget = max - OMISSION.length;\n const candidate = text.slice(0, budget);\n\n const lastSpace = candidate.search(/\\s+(?=\\S*$)/);\n const cut = lastSpace > 0 ? candidate.slice(0, lastSpace) : candidate;\n\n return cut.trimEnd() + OMISSION;\n}\n"],"mappings":"AAAO,MAAM,uBAAuB;AAEpC,MAAM,WAAW;AAEV,SAAS,oBAAoB,MAAc,MAAM,sBAA8B;AACpF,MAAI,KAAK,UAAU;AAAK,WAAO;AAE/B,QAAM,SAAS,MAAM,SAAS;AAC9B,QAAM,YAAY,KAAK,MAAM,GAAG,MAAM;AAEtC,QAAM,YAAY,UAAU,OAAO,aAAa;AAChD,QAAM,MAAM,YAAY,IAAI,UAAU,MAAM,GAAG,SAAS,IAAI;AAE5D,SAAO,IAAI,QAAQ,IAAI;AACzB;","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const serpContainer: (props?: ({
|
|
2
|
+
mode?: "desktop" | "mobile" | null | undefined;
|
|
3
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
4
|
+
export declare const serpUrlRow: (props?: ({
|
|
5
|
+
mode?: "desktop" | "mobile" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export declare const serpSiteName: (props?: ({
|
|
8
|
+
mode?: "desktop" | "mobile" | null | undefined;
|
|
9
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
|
+
export declare const serpHostname: (props?: ({
|
|
11
|
+
mode?: "desktop" | "mobile" | null | undefined;
|
|
12
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
13
|
+
export declare const serpTitle: (props?: ({
|
|
14
|
+
mode?: "desktop" | "mobile" | null | undefined;
|
|
15
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
16
|
+
export declare const serpDescription: (props?: ({
|
|
17
|
+
mode?: "desktop" | "mobile" | null | undefined;
|
|
18
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
19
|
+
//# sourceMappingURL=variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../../../src/components/SeoDrawer/components/SerpPreview/variants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;8EAOxB,CAAC;AAEH,eAAO,MAAM,UAAU;;8EAOrB,CAAC;AAEH,eAAO,MAAM,YAAY;;8EAOvB,CAAC;AAEH,eAAO,MAAM,YAAY;;8EAOvB,CAAC;AAEH,eAAO,MAAM,SAAS;;8EAOpB,CAAC;AAEH,eAAO,MAAM,eAAe;;8EAO1B,CAAC"}
|