@delmaredigital/payload-experiments 0.0.0-stage → 0.1.0-rc.6
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/LICENSE +21 -0
- package/README.md +590 -2
- package/dist/access.d.ts +1 -0
- package/dist/access.js +2 -0
- package/dist/admin/AllocationField.d.ts +2 -0
- package/dist/admin/AllocationField.js +80 -0
- package/dist/admin/FlagPointSelect.d.ts +2 -0
- package/dist/admin/FlagPointSelect.js +54 -0
- package/dist/admin/LayerUsage.d.ts +2 -0
- package/dist/admin/LayerUsage.js +24 -0
- package/dist/admin/LockedFieldNotice.d.ts +2 -0
- package/dist/admin/LockedFieldNotice.js +26 -0
- package/dist/admin/MetricSourceSelect.d.ts +2 -0
- package/dist/admin/MetricSourceSelect.js +32 -0
- package/dist/admin/PhaseHistory.d.ts +2 -0
- package/dist/admin/PhaseHistory.js +76 -0
- package/dist/admin/PreviewLinks.d.ts +11 -0
- package/dist/admin/PreviewLinks.js +69 -0
- package/dist/admin/StatusCell.d.ts +3 -0
- package/dist/admin/StatusCell.js +19 -0
- package/dist/admin/SummaryCell.d.ts +2 -0
- package/dist/admin/SummaryCell.js +32 -0
- package/dist/admin/actions/AddMetricDialog.d.ts +6 -0
- package/dist/admin/actions/AddMetricDialog.js +138 -0
- package/dist/admin/actions/AllocateDialog.d.ts +6 -0
- package/dist/admin/actions/AllocateDialog.js +81 -0
- package/dist/admin/actions/ConfirmDialog.d.ts +14 -0
- package/dist/admin/actions/ConfirmDialog.js +192 -0
- package/dist/admin/actions/DecideDialog.d.ts +7 -0
- package/dist/admin/actions/DecideDialog.js +173 -0
- package/dist/admin/actions/ExperimentActions.d.ts +3 -0
- package/dist/admin/actions/ExperimentActions.js +110 -0
- package/dist/admin/actions/MakeContentResult.d.ts +6 -0
- package/dist/admin/actions/MakeContentResult.js +50 -0
- package/dist/admin/actions/actions.model.d.ts +37 -0
- package/dist/admin/actions/actions.model.js +71 -0
- package/dist/admin/actions/decide.model.d.ts +21 -0
- package/dist/admin/actions/decide.model.js +38 -0
- package/dist/admin/allocation.model.d.ts +20 -0
- package/dist/admin/allocation.model.js +38 -0
- package/dist/admin/api.d.ts +32 -0
- package/dist/admin/api.js +95 -0
- package/dist/admin/armSelect/ArmSelectField.d.ts +2 -0
- package/dist/admin/armSelect/ArmSelectField.js +185 -0
- package/dist/admin/armSelect/armSelect.model.d.ts +30 -0
- package/dist/admin/armSelect/armSelect.model.js +20 -0
- package/dist/admin/arms/ArmsField.d.ts +2 -0
- package/dist/admin/arms/ArmsField.js +310 -0
- package/dist/admin/arms/ParamsEditor.d.ts +16 -0
- package/dist/admin/arms/ParamsEditor.js +79 -0
- package/dist/admin/arms/arms.model.d.ts +21 -0
- package/dist/admin/arms/arms.model.js +153 -0
- package/dist/admin/arms/pageTarget.model.d.ts +4 -0
- package/dist/admin/arms/pageTarget.model.js +19 -0
- package/dist/admin/arms/params.model.d.ts +7 -0
- package/dist/admin/arms/params.model.js +35 -0
- package/dist/admin/copy/actions.d.ts +38 -0
- package/dist/admin/copy/actions.js +38 -0
- package/dist/admin/copy/armSelect.d.ts +11 -0
- package/dist/admin/copy/armSelect.js +11 -0
- package/dist/admin/copy/arms.d.ts +37 -0
- package/dist/admin/copy/arms.js +47 -0
- package/dist/admin/copy/common.d.ts +20 -0
- package/dist/admin/copy/common.js +27 -0
- package/dist/admin/copy/history.d.ts +9 -0
- package/dist/admin/copy/history.js +9 -0
- package/dist/admin/copy/metrics.d.ts +9 -0
- package/dist/admin/copy/metrics.js +9 -0
- package/dist/admin/copy/results.d.ts +78 -0
- package/dist/admin/copy/results.js +81 -0
- package/dist/admin/copy/review.d.ts +33 -0
- package/dist/admin/copy/review.js +127 -0
- package/dist/admin/copy/status.d.ts +8 -0
- package/dist/admin/copy/status.js +8 -0
- package/dist/admin/copy/tabs.d.ts +7 -0
- package/dist/admin/copy/tabs.js +7 -0
- package/dist/admin/copy/who.d.ts +36 -0
- package/dist/admin/copy/who.js +36 -0
- package/dist/admin/labels.d.ts +45 -0
- package/dist/admin/labels.js +53 -0
- package/dist/admin/layerUsage.model.d.ts +15 -0
- package/dist/admin/layerUsage.model.js +18 -0
- package/dist/admin/lockedNotice.model.d.ts +3 -0
- package/dist/admin/lockedNotice.model.js +18 -0
- package/dist/admin/metricSource.model.d.ts +7 -0
- package/dist/admin/metricSource.model.js +11 -0
- package/dist/admin/paths.d.ts +16 -0
- package/dist/admin/paths.js +16 -0
- package/dist/admin/permissions.model.d.ts +10 -0
- package/dist/admin/permissions.model.js +4 -0
- package/dist/admin/phaseHistory.model.d.ts +19 -0
- package/dist/admin/phaseHistory.model.js +19 -0
- package/dist/admin/reload.d.ts +1 -0
- package/dist/admin/reload.js +1 -0
- package/dist/admin/results/ArmTable.d.ts +8 -0
- package/dist/admin/results/ArmTable.js +112 -0
- package/dist/admin/results/CappedCell.d.ts +4 -0
- package/dist/admin/results/CappedCell.js +24 -0
- package/dist/admin/results/CiChart.d.ts +10 -0
- package/dist/admin/results/CiChart.js +178 -0
- package/dist/admin/results/DataQualityPanel.d.ts +4 -0
- package/dist/admin/results/DataQualityPanel.js +40 -0
- package/dist/admin/results/ResultsView.d.ts +3 -0
- package/dist/admin/results/ResultsView.js +312 -0
- package/dist/admin/results/VerdictCard.d.ts +9 -0
- package/dist/admin/results/VerdictCard.js +49 -0
- package/dist/admin/results/chart.model.d.ts +32 -0
- package/dist/admin/results/chart.model.js +52 -0
- package/dist/admin/results/format.d.ts +10 -0
- package/dist/admin/results/format.js +55 -0
- package/dist/admin/results/results.model.d.ts +105 -0
- package/dist/admin/results/results.model.js +175 -0
- package/dist/admin/review/ReviewPanel.d.ts +2 -0
- package/dist/admin/review/ReviewPanel.js +268 -0
- package/dist/admin/review/review.model.d.ts +31 -0
- package/dist/admin/review/review.model.js +40 -0
- package/dist/admin/status.model.d.ts +16 -0
- package/dist/admin/status.model.js +17 -0
- package/dist/admin/styles.css +10 -0
- package/dist/admin/styles.d.ts +1 -0
- package/dist/admin/styles.js +2 -0
- package/dist/admin/summaryBatcher.d.ts +8 -0
- package/dist/admin/summaryBatcher.js +33 -0
- package/dist/admin/targeting/TargetingAttributeField.d.ts +2 -0
- package/dist/admin/targeting/TargetingAttributeField.js +31 -0
- package/dist/admin/targeting/TargetingOpField.d.ts +2 -0
- package/dist/admin/targeting/TargetingOpField.js +45 -0
- package/dist/admin/targeting/TargetingValueField.d.ts +2 -0
- package/dist/admin/targeting/TargetingValueField.js +142 -0
- package/dist/admin/targeting/targeting.model.d.ts +18 -0
- package/dist/admin/targeting/targeting.model.js +48 -0
- package/dist/admin/useApi.d.ts +20 -0
- package/dist/admin/useApi.js +10 -0
- package/dist/admin/useLayerUsage.d.ts +15 -0
- package/dist/admin/useLayerUsage.js +92 -0
- package/dist/client/ExperimentPageview.d.ts +1 -0
- package/dist/client/ExperimentPageview.js +27 -0
- package/dist/client/ExperimentsProvider.d.ts +6 -0
- package/dist/client/ExperimentsProvider.js +22 -0
- package/dist/client/ViewportExposure.d.ts +9 -0
- package/dist/client/ViewportExposure.js +69 -0
- package/dist/client/beacon.d.ts +17 -0
- package/dist/client/beacon.js +71 -0
- package/dist/client/context.d.ts +2 -0
- package/dist/client/context.js +2 -0
- package/dist/client/idempotency.d.ts +2 -0
- package/dist/client/idempotency.js +13 -0
- package/dist/client/trackConversionBeacon.d.ts +3 -0
- package/dist/client/trackConversionBeacon.js +16 -0
- package/dist/client/useExperiment.d.ts +5 -0
- package/dist/client/useExperiment.js +27 -0
- package/dist/client/useFlagPoint.d.ts +9 -0
- package/dist/client/useFlagPoint.js +32 -0
- package/dist/collections/access.d.ts +21 -0
- package/dist/collections/access.js +25 -0
- package/dist/collections/events.d.ts +3 -0
- package/dist/collections/events.js +117 -0
- package/dist/collections/experiments/armInvariants.d.ts +12 -0
- package/dist/collections/experiments/armInvariants.js +89 -0
- package/dist/collections/experiments/config.d.ts +3 -0
- package/dist/collections/experiments/config.js +574 -0
- package/dist/collections/experiments/createDefaults.d.ts +2 -0
- package/dist/collections/experiments/createDefaults.js +7 -0
- package/dist/collections/experiments/deleteGuard.d.ts +3 -0
- package/dist/collections/experiments/deleteGuard.js +8 -0
- package/dist/collections/experiments/editability.d.ts +4 -0
- package/dist/collections/experiments/editability.js +35 -0
- package/dist/collections/experiments/flagControlParams.d.ts +2 -0
- package/dist/collections/experiments/flagControlParams.js +32 -0
- package/dist/collections/experiments/lockHook.d.ts +2 -0
- package/dist/collections/experiments/lockHook.js +134 -0
- package/dist/collections/identities.d.ts +3 -0
- package/dist/collections/identities.js +30 -0
- package/dist/collections/index.d.ts +6 -0
- package/dist/collections/index.js +24 -0
- package/dist/collections/layers.d.ts +3 -0
- package/dist/collections/layers.js +77 -0
- package/dist/collections/metrics.d.ts +3 -0
- package/dist/collections/metrics.js +115 -0
- package/dist/collections/phases.d.ts +3 -0
- package/dist/collections/phases.js +59 -0
- package/dist/collections/serialize.d.ts +5 -0
- package/dist/collections/serialize.js +40 -0
- package/dist/collections/snapshots.d.ts +3 -0
- package/dist/collections/snapshots.js +47 -0
- package/dist/constants.d.ts +7 -0
- package/dist/constants.js +7 -0
- package/dist/db/adapter.d.ts +3 -0
- package/dist/db/adapter.js +9 -0
- package/dist/db/appends.d.ts +58 -0
- package/dist/db/appends.js +116 -0
- package/dist/db/delete.d.ts +17 -0
- package/dist/db/delete.js +35 -0
- package/dist/db/erase.d.ts +12 -0
- package/dist/db/erase.js +55 -0
- package/dist/db/events.d.ts +21 -0
- package/dist/db/events.js +100 -0
- package/dist/db/executor.d.ts +10 -0
- package/dist/db/executor.js +37 -0
- package/dist/db/identities.d.ts +11 -0
- package/dist/db/identities.js +29 -0
- package/dist/db/locks.d.ts +15 -0
- package/dist/db/locks.js +23 -0
- package/dist/db/manifest.d.ts +8 -0
- package/dist/db/manifest.js +8 -0
- package/dist/db/names.d.ts +271 -0
- package/dist/db/names.js +270 -0
- package/dist/db/pgExecutor.d.ts +41 -0
- package/dist/db/pgExecutor.js +250 -0
- package/dist/db/results.d.ts +53 -0
- package/dist/db/results.js +103 -0
- package/dist/db/slices.d.ts +18 -0
- package/dist/db/slices.js +51 -0
- package/dist/db/snapshots.d.ts +47 -0
- package/dist/db/snapshots.js +89 -0
- package/dist/db/sql.d.ts +5 -0
- package/dist/db/sql.js +5 -0
- package/dist/db/state.d.ts +12 -0
- package/dist/db/state.js +27 -0
- package/dist/db/sweep.d.ts +13 -0
- package/dist/db/sweep.js +90 -0
- package/dist/db/txid.d.ts +7 -0
- package/dist/db/txid.js +12 -0
- package/dist/define.d.ts +3 -0
- package/dist/define.js +6 -0
- package/dist/endpoints/events.d.ts +7 -0
- package/dist/endpoints/events.js +98 -0
- package/dist/endpoints/index.d.ts +18 -0
- package/dist/endpoints/index.js +160 -0
- package/dist/endpoints/manifest.d.ts +7 -0
- package/dist/endpoints/manifest.js +30 -0
- package/dist/endpoints/preflight.d.ts +8 -0
- package/dist/endpoints/preflight.js +25 -0
- package/dist/endpoints/previewToken.d.ts +7 -0
- package/dist/endpoints/previewToken.js +54 -0
- package/dist/endpoints/recompute.d.ts +7 -0
- package/dist/endpoints/recompute.js +41 -0
- package/dist/endpoints/results.d.ts +24 -0
- package/dist/endpoints/results.js +136 -0
- package/dist/endpoints/summary.d.ts +7 -0
- package/dist/endpoints/summary.js +40 -0
- package/dist/endpoints/transitions.d.ts +42 -0
- package/dist/endpoints/transitions.js +154 -0
- package/dist/errors.d.ts +27 -0
- package/dist/errors.js +33 -0
- package/dist/events/body.d.ts +7 -0
- package/dist/events/body.js +43 -0
- package/dist/events/dimensions.d.ts +4 -0
- package/dist/events/dimensions.js +51 -0
- package/dist/events/preview.d.ts +2 -0
- package/dist/events/preview.js +9 -0
- package/dist/events/request.d.ts +3 -0
- package/dist/events/request.js +14 -0
- package/dist/events/rows.d.ts +7 -0
- package/dist/events/rows.js +65 -0
- package/dist/exports/adminClient.d.ts +16 -0
- package/dist/exports/adminClient.js +17 -0
- package/dist/exports/client.d.ts +7 -0
- package/dist/exports/client.js +7 -0
- package/dist/exports/index.d.ts +4 -0
- package/dist/exports/index.js +3 -0
- package/dist/exports/proxy.d.ts +4 -0
- package/dist/exports/proxy.js +3 -0
- package/dist/exports/puck.d.ts +4 -0
- package/dist/exports/puck.js +3 -0
- package/dist/exports/puckEditor.d.ts +1 -0
- package/dist/exports/puckEditor.js +2 -0
- package/dist/exports/rsc.d.ts +13 -0
- package/dist/exports/rsc.js +13 -0
- package/dist/exports/runtimeProxy.d.ts +4 -0
- package/dist/exports/runtimeProxy.js +2 -0
- package/dist/exports/runtimeServer.d.ts +2 -0
- package/dist/exports/runtimeServer.js +1 -0
- package/dist/fields/armSelect.d.ts +7 -0
- package/dist/fields/armSelect.js +33 -0
- package/dist/globals/state.d.ts +3 -0
- package/dist/globals/state.js +31 -0
- package/dist/hooks/contentChanges.d.ts +3 -0
- package/dist/hooks/contentChanges.js +10 -0
- package/dist/hooks/hostHook.d.ts +5 -0
- package/dist/hooks/hostHook.js +20 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -0
- package/dist/manifest/cache.d.ts +10 -0
- package/dist/manifest/cache.js +51 -0
- package/dist/manifest/compile.d.ts +63 -0
- package/dist/manifest/compile.js +237 -0
- package/dist/onInit.d.ts +5 -0
- package/dist/onInit.js +13 -0
- package/dist/options/fromReq.d.ts +3 -0
- package/dist/options/fromReq.js +5 -0
- package/dist/options.d.ts +9 -0
- package/dist/options.js +107 -0
- package/dist/plugin.d.ts +7 -0
- package/dist/plugin.js +62 -0
- package/dist/proxy/apply.d.ts +3 -0
- package/dist/proxy/apply.js +5 -0
- package/dist/proxy/consentFallback.d.ts +5 -0
- package/dist/proxy/consentFallback.js +27 -0
- package/dist/proxy/control.d.ts +6 -0
- package/dist/proxy/control.js +36 -0
- package/dist/proxy/createProxy.d.ts +3 -0
- package/dist/proxy/createProxy.js +15 -0
- package/dist/proxy/pageRewrite.d.ts +4 -0
- package/dist/proxy/pageRewrite.js +41 -0
- package/dist/proxy/resolve.d.ts +13 -0
- package/dist/proxy/resolve.js +163 -0
- package/dist/proxy/skip.d.ts +1 -0
- package/dist/proxy/skip.js +9 -0
- package/dist/puck/ExperimentPicker.d.ts +5 -0
- package/dist/puck/ExperimentPicker.js +88 -0
- package/dist/puck/ExperimentSlot.d.ts +3 -0
- package/dist/puck/ExperimentSlot.js +16 -0
- package/dist/puck/copy.d.ts +14 -0
- package/dist/puck/copy.js +14 -0
- package/dist/puck/editor/CreateExperimentDrawer.d.ts +5 -0
- package/dist/puck/editor/CreateExperimentDrawer.js +120 -0
- package/dist/puck/editor/ExperimentSlotEditor.d.ts +3 -0
- package/dist/puck/editor/ExperimentSlotEditor.js +225 -0
- package/dist/puck/editor/cloneSlot.d.ts +3 -0
- package/dist/puck/editor/cloneSlot.js +41 -0
- package/dist/puck/editor/copy.d.ts +25 -0
- package/dist/puck/editor/copy.js +25 -0
- package/dist/puck/editor/editor.model.d.ts +16 -0
- package/dist/puck/editor/editor.model.js +33 -0
- package/dist/puck/experimentSlotField.d.ts +5 -0
- package/dist/puck/experimentSlotField.js +13 -0
- package/dist/puck/slot.model.d.ts +2 -0
- package/dist/puck/slot.model.js +11 -0
- package/dist/puck/slotConfig.d.ts +5 -0
- package/dist/puck/slotConfig.js +25 -0
- package/dist/results/aggregate.d.ts +34 -0
- package/dist/results/aggregate.js +66 -0
- package/dist/results/analyse.d.ts +79 -0
- package/dist/results/analyse.js +378 -0
- package/dist/results/cuped.d.ts +16 -0
- package/dist/results/cuped.js +31 -0
- package/dist/results/decideGuard.d.ts +3 -0
- package/dist/results/decideGuard.js +8 -0
- package/dist/results/guardrails.d.ts +17 -0
- package/dist/results/guardrails.js +10 -0
- package/dist/results/history.d.ts +13 -0
- package/dist/results/history.js +39 -0
- package/dist/results/identityCredit.d.ts +16 -0
- package/dist/results/identityCredit.js +46 -0
- package/dist/results/power.d.ts +15 -0
- package/dist/results/power.js +60 -0
- package/dist/results/rolloutUnits.d.ts +17 -0
- package/dist/results/rolloutUnits.js +26 -0
- package/dist/results/snapshot.d.ts +9 -0
- package/dist/results/snapshot.js +154 -0
- package/dist/results/srm.d.ts +9 -0
- package/dist/results/srm.js +22 -0
- package/dist/results/verdict.d.ts +82 -0
- package/dist/results/verdict.js +85 -0
- package/dist/runtime/assign.d.ts +23 -0
- package/dist/runtime/assign.js +104 -0
- package/dist/runtime/bot.d.ts +1 -0
- package/dist/runtime/bot.js +7 -0
- package/dist/runtime/cookie.d.ts +17 -0
- package/dist/runtime/cookie.js +35 -0
- package/dist/runtime/eligibility.d.ts +22 -0
- package/dist/runtime/eligibility.js +20 -0
- package/dist/runtime/header.d.ts +17 -0
- package/dist/runtime/header.js +97 -0
- package/dist/runtime/loaders.d.ts +17 -0
- package/dist/runtime/loaders.js +29 -0
- package/dist/runtime/normalisePath.d.ts +7 -0
- package/dist/runtime/normalisePath.js +15 -0
- package/dist/runtime/previewToken.d.ts +9 -0
- package/dist/runtime/previewToken.js +23 -0
- package/dist/runtime/proxyRuntime.d.ts +2 -0
- package/dist/runtime/proxyRuntime.js +22 -0
- package/dist/runtime/seed.d.ts +2 -0
- package/dist/runtime/seed.js +4 -0
- package/dist/runtime/signing.d.ts +3 -0
- package/dist/runtime/signing.js +16 -0
- package/dist/runtime/targeting.d.ts +6 -0
- package/dist/runtime/targeting.js +9 -0
- package/dist/server/context.d.ts +10 -0
- package/dist/server/context.js +59 -0
- package/dist/server/eraseUser.d.ts +7 -0
- package/dist/server/eraseUser.js +4 -0
- package/dist/server/getAssignments.d.ts +9 -0
- package/dist/server/getAssignments.js +227 -0
- package/dist/server/getFlagPoint.d.ts +11 -0
- package/dist/server/getFlagPoint.js +36 -0
- package/dist/server/headerRevision.d.ts +6 -0
- package/dist/server/headerRevision.js +10 -0
- package/dist/server/linkIdentity.d.ts +9 -0
- package/dist/server/linkIdentity.js +34 -0
- package/dist/server/metadata.d.ts +7 -0
- package/dist/server/metadata.js +24 -0
- package/dist/server/previewDraft.d.ts +7 -0
- package/dist/server/previewDraft.js +51 -0
- package/dist/server/recordContentChange.d.ts +7 -0
- package/dist/server/recordContentChange.js +150 -0
- package/dist/server/recordExposures.d.ts +7 -0
- package/dist/server/recordExposures.js +56 -0
- package/dist/server/request.d.ts +7 -0
- package/dist/server/request.js +39 -0
- package/dist/server/resolveExperimentData.d.ts +6 -0
- package/dist/server/resolveExperimentData.js +64 -0
- package/dist/server/runResults.d.ts +22 -0
- package/dist/server/runResults.js +307 -0
- package/dist/server/serverRuntime.d.ts +7 -0
- package/dist/server/serverRuntime.js +20 -0
- package/dist/server/sitemap.d.ts +3 -0
- package/dist/server/sitemap.js +6 -0
- package/dist/server/toClientAssignments.d.ts +7 -0
- package/dist/server/toClientAssignments.js +56 -0
- package/dist/server/trackConversion.d.ts +12 -0
- package/dist/server/trackConversion.js +69 -0
- package/dist/targeting/ops.d.ts +8 -0
- package/dist/targeting/ops.js +58 -0
- package/dist/transitions/addMetric.d.ts +16 -0
- package/dist/transitions/addMetric.js +126 -0
- package/dist/transitions/allocate.d.ts +9 -0
- package/dist/transitions/allocate.js +84 -0
- package/dist/transitions/archive.d.ts +9 -0
- package/dist/transitions/archive.js +46 -0
- package/dist/transitions/checkStart.d.ts +61 -0
- package/dist/transitions/checkStart.js +104 -0
- package/dist/transitions/confirmPhrases.d.ts +5 -0
- package/dist/transitions/confirmPhrases.js +18 -0
- package/dist/transitions/decide.d.ts +9 -0
- package/dist/transitions/decide.js +138 -0
- package/dist/transitions/deleteExperiment.d.ts +5 -0
- package/dist/transitions/deleteExperiment.js +66 -0
- package/dist/transitions/kernel.d.ts +31 -0
- package/dist/transitions/kernel.js +69 -0
- package/dist/transitions/makeContent.d.ts +20 -0
- package/dist/transitions/makeContent.js +411 -0
- package/dist/transitions/phaseRecord.d.ts +27 -0
- package/dist/transitions/phaseRecord.js +81 -0
- package/dist/transitions/placements.d.ts +26 -0
- package/dist/transitions/placements.js +89 -0
- package/dist/transitions/preflightData.d.ts +21 -0
- package/dist/transitions/preflightData.js +317 -0
- package/dist/transitions/releaseHoldout.d.ts +8 -0
- package/dist/transitions/releaseHoldout.js +30 -0
- package/dist/transitions/resolveCaps.d.ts +28 -0
- package/dist/transitions/resolveCaps.js +68 -0
- package/dist/transitions/start.d.ts +26 -0
- package/dist/transitions/start.js +220 -0
- package/dist/transitions/stop.d.ts +8 -0
- package/dist/transitions/stop.js +25 -0
- package/dist/types/admin.d.ts +20 -0
- package/dist/types/admin.js +1 -0
- package/dist/types/assignments.d.ts +57 -0
- package/dist/types/assignments.js +1 -0
- package/dist/types/contracts.d.ts +141 -0
- package/dist/types/contracts.js +1 -0
- package/dist/types/endpoints.d.ts +135 -0
- package/dist/types/endpoints.js +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.js +8 -0
- package/dist/types/manifest.d.ts +42 -0
- package/dist/types/manifest.js +1 -0
- package/dist/types/puck.d.ts +23 -0
- package/dist/types/puck.js +1 -0
- package/dist/types/runtime.d.ts +59 -0
- package/dist/types/runtime.js +1 -0
- package/dist/types/snapshot.d.ts +117 -0
- package/dist/types/snapshot.js +1 -0
- package/package.json +138 -3
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const TAB_DESCRIPTIONS = {
|
|
2
|
+
What: "What you're testing and why.",
|
|
3
|
+
Who: 'Who takes part and how traffic is split.',
|
|
4
|
+
Groups: 'The Original, the variants, and an optional holdout.',
|
|
5
|
+
Metrics: 'What decides the winner and what must not get worse.',
|
|
6
|
+
Review: 'Check everything, see how long it will take, and start.'
|
|
7
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export declare const WHO_COPY: {
|
|
2
|
+
readonly allocation: "Who takes part (%)";
|
|
3
|
+
readonly attribute: "Attribute";
|
|
4
|
+
readonly operator: "Comparison";
|
|
5
|
+
readonly value: "Value";
|
|
6
|
+
readonly true: "Yes";
|
|
7
|
+
readonly false: "No";
|
|
8
|
+
readonly caseNote: "Letter case doesn't matter.";
|
|
9
|
+
readonly listNote: "Separate values with commas.";
|
|
10
|
+
readonly emptyListNote: "Add at least one value — an empty list can't be saved.";
|
|
11
|
+
};
|
|
12
|
+
export declare const STRING_OP_LABELS: {
|
|
13
|
+
readonly eq: "is";
|
|
14
|
+
readonly neq: "is not";
|
|
15
|
+
readonly in: "is one of";
|
|
16
|
+
readonly nin: "is not one of";
|
|
17
|
+
readonly contains: "contains";
|
|
18
|
+
};
|
|
19
|
+
export declare const NUMBER_OP_LABELS: {
|
|
20
|
+
readonly eq: "=";
|
|
21
|
+
readonly neq: "≠";
|
|
22
|
+
readonly gt: ">";
|
|
23
|
+
readonly gte: "≥";
|
|
24
|
+
readonly lt: "<";
|
|
25
|
+
readonly lte: "≤";
|
|
26
|
+
};
|
|
27
|
+
export declare const participation: (allocation: string, people: string, groups: string) => string;
|
|
28
|
+
export declare const eachVersion: (share: string) => string;
|
|
29
|
+
export declare const groupShare: (share: string, label: string) => string;
|
|
30
|
+
export declare const uncounted = "; the rest see the Original and are not counted";
|
|
31
|
+
export declare const holdoutClause: (weight: string) => string;
|
|
32
|
+
export declare const layerSentence: (name: string, used: number, free: number) => string;
|
|
33
|
+
export declare const peopleLabel: {
|
|
34
|
+
readonly visitor: "visitors";
|
|
35
|
+
readonly user: "signed-in users";
|
|
36
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export const WHO_COPY = {
|
|
2
|
+
allocation: 'Who takes part (%)',
|
|
3
|
+
attribute: 'Attribute',
|
|
4
|
+
operator: 'Comparison',
|
|
5
|
+
value: 'Value',
|
|
6
|
+
true: 'Yes',
|
|
7
|
+
false: 'No',
|
|
8
|
+
caseNote: "Letter case doesn't matter.",
|
|
9
|
+
listNote: 'Separate values with commas.',
|
|
10
|
+
emptyListNote: "Add at least one value — an empty list can't be saved."
|
|
11
|
+
};
|
|
12
|
+
export const STRING_OP_LABELS = {
|
|
13
|
+
eq: 'is',
|
|
14
|
+
neq: 'is not',
|
|
15
|
+
in: 'is one of',
|
|
16
|
+
nin: 'is not one of',
|
|
17
|
+
contains: 'contains'
|
|
18
|
+
};
|
|
19
|
+
export const NUMBER_OP_LABELS = {
|
|
20
|
+
eq: '=',
|
|
21
|
+
neq: '≠',
|
|
22
|
+
gt: '>',
|
|
23
|
+
gte: '≥',
|
|
24
|
+
lt: '<',
|
|
25
|
+
lte: '≤'
|
|
26
|
+
};
|
|
27
|
+
export const participation = (allocation, people, groups)=>`${allocation}% of ${people} take part: about ${groups}`;
|
|
28
|
+
export const eachVersion = (share)=>`${share}% see each version`;
|
|
29
|
+
export const groupShare = (share, label)=>`${share}% see ${label === 'Original' ? 'the Original' : label}`;
|
|
30
|
+
export const uncounted = '; the rest see the Original and are not counted';
|
|
31
|
+
export const holdoutClause = (weight)=>`; the holdout (${weight}% of them) sees the Original and is measured; everyone else sees the Original and is not counted.`;
|
|
32
|
+
export const layerSentence = (name, used, free)=>` Uses ${used} of the 100 slices in layer ${name}; ${free} are free.`;
|
|
33
|
+
export const peopleLabel = {
|
|
34
|
+
visitor: 'visitors',
|
|
35
|
+
user: 'signed-in users'
|
|
36
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { ExperimentKind, Status } from '../types/contracts.js';
|
|
2
|
+
import type { VerdictCode } from '../types/snapshot.js';
|
|
3
|
+
export declare const ARM_LABELS: {
|
|
4
|
+
control: string;
|
|
5
|
+
variantA: string;
|
|
6
|
+
variantB: string;
|
|
7
|
+
variantC: string;
|
|
8
|
+
holdout: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const STATUS_LABELS: {
|
|
11
|
+
draft: string;
|
|
12
|
+
running: string;
|
|
13
|
+
stopped: string;
|
|
14
|
+
decided: string;
|
|
15
|
+
archived: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const PHASE_KIND_LABELS: {
|
|
18
|
+
readonly test: "during the test";
|
|
19
|
+
readonly rollout: "after shipping";
|
|
20
|
+
};
|
|
21
|
+
export declare const KIND_LABELS: {
|
|
22
|
+
block: string;
|
|
23
|
+
page: string;
|
|
24
|
+
flag: string;
|
|
25
|
+
code: string;
|
|
26
|
+
};
|
|
27
|
+
export declare const VERDICT_LABELS: {
|
|
28
|
+
unavailable: string;
|
|
29
|
+
'data-problem': string;
|
|
30
|
+
'guardrail-failing': string;
|
|
31
|
+
collecting: string;
|
|
32
|
+
'original-better': string;
|
|
33
|
+
'worse-none-better': string;
|
|
34
|
+
winner: string;
|
|
35
|
+
mixed: string;
|
|
36
|
+
'keep-running': string;
|
|
37
|
+
'no-difference': string;
|
|
38
|
+
'rollout-collecting': string;
|
|
39
|
+
'rollout-readout': string;
|
|
40
|
+
};
|
|
41
|
+
export declare function armLabel(key: string, storedLabel?: string): string;
|
|
42
|
+
export declare function statusLabel(status: Status): string;
|
|
43
|
+
export declare function phaseKindLabel(kind: 'test' | 'rollout'): string;
|
|
44
|
+
export declare function verdictCodeLabel(code: VerdictCode): string;
|
|
45
|
+
export declare function kindLabel(kind: ExperimentKind): string;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export const ARM_LABELS = {
|
|
2
|
+
control: 'Original',
|
|
3
|
+
variantA: 'Variant A',
|
|
4
|
+
variantB: 'Variant B',
|
|
5
|
+
variantC: 'Variant C',
|
|
6
|
+
holdout: 'Holdout'
|
|
7
|
+
};
|
|
8
|
+
export const STATUS_LABELS = {
|
|
9
|
+
draft: 'Draft',
|
|
10
|
+
running: 'Running',
|
|
11
|
+
stopped: 'Stopped',
|
|
12
|
+
decided: 'Decided',
|
|
13
|
+
archived: 'Archived'
|
|
14
|
+
};
|
|
15
|
+
export const PHASE_KIND_LABELS = {
|
|
16
|
+
test: 'during the test',
|
|
17
|
+
rollout: 'after shipping'
|
|
18
|
+
};
|
|
19
|
+
export const KIND_LABELS = {
|
|
20
|
+
block: 'Block on a page',
|
|
21
|
+
page: 'Whole page',
|
|
22
|
+
flag: 'Setting in code',
|
|
23
|
+
code: 'Developer code'
|
|
24
|
+
};
|
|
25
|
+
export const VERDICT_LABELS = {
|
|
26
|
+
unavailable: 'Results unavailable',
|
|
27
|
+
'data-problem': 'Check the data',
|
|
28
|
+
'guardrail-failing': 'An important outcome got worse',
|
|
29
|
+
collecting: 'Collecting results',
|
|
30
|
+
'original-better': 'The Original is better',
|
|
31
|
+
'worse-none-better': 'No better option',
|
|
32
|
+
winner: 'A winner',
|
|
33
|
+
mixed: 'Mixed results',
|
|
34
|
+
'keep-running': 'Keep running',
|
|
35
|
+
'no-difference': 'No clear difference',
|
|
36
|
+
'rollout-collecting': 'Collecting results after shipping',
|
|
37
|
+
'rollout-readout': 'Results after shipping'
|
|
38
|
+
};
|
|
39
|
+
export function armLabel(key, storedLabel) {
|
|
40
|
+
return Object.hasOwn(ARM_LABELS, key) ? ARM_LABELS[key] : storedLabel ?? key;
|
|
41
|
+
}
|
|
42
|
+
export function statusLabel(status) {
|
|
43
|
+
return STATUS_LABELS[status];
|
|
44
|
+
}
|
|
45
|
+
export function phaseKindLabel(kind) {
|
|
46
|
+
return PHASE_KIND_LABELS[kind];
|
|
47
|
+
}
|
|
48
|
+
export function verdictCodeLabel(code) {
|
|
49
|
+
return VERDICT_LABELS[code];
|
|
50
|
+
}
|
|
51
|
+
export function kindLabel(kind) {
|
|
52
|
+
return KIND_LABELS[kind];
|
|
53
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Status } from '../types/contracts.js';
|
|
2
|
+
export type LayerExperiment = {
|
|
3
|
+
name: string;
|
|
4
|
+
status: Status;
|
|
5
|
+
layerSlices?: readonly number[] | null;
|
|
6
|
+
};
|
|
7
|
+
export declare function layerUsage(experiments: readonly LayerExperiment[]): {
|
|
8
|
+
used: number;
|
|
9
|
+
free: number;
|
|
10
|
+
rows: {
|
|
11
|
+
name: string;
|
|
12
|
+
status: Status;
|
|
13
|
+
slices: number;
|
|
14
|
+
}[];
|
|
15
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function layerUsage(experiments) {
|
|
2
|
+
const slices = new Set();
|
|
3
|
+
// ADM-08 coordinator ruling (spec §5.3): exp-core clears layerSlices to [] when freeing slices.
|
|
4
|
+
const rows = experiments.filter((doc)=>doc.status === 'running' || doc.status === 'decided').map((doc)=>{
|
|
5
|
+
const unique = new Set(doc.layerSlices ?? []);
|
|
6
|
+
unique.forEach((slice)=>slices.add(slice));
|
|
7
|
+
return {
|
|
8
|
+
name: doc.name,
|
|
9
|
+
status: doc.status,
|
|
10
|
+
slices: unique.size
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
return {
|
|
14
|
+
used: slices.size,
|
|
15
|
+
free: 100 - slices.size,
|
|
16
|
+
rows
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { LOCKED_MESSAGES } from './copy/common.js';
|
|
2
|
+
export function lockedReason(status, field, table) {
|
|
3
|
+
if ([
|
|
4
|
+
'slug',
|
|
5
|
+
'kind',
|
|
6
|
+
'unitType',
|
|
7
|
+
'layer'
|
|
8
|
+
].includes(field)) return LOCKED_MESSAGES.creation;
|
|
9
|
+
if (table[status].some((editable)=>editable === field)) return null;
|
|
10
|
+
if (status === 'running') {
|
|
11
|
+
if (field === 'allocation') return LOCKED_MESSAGES.runningAllocation;
|
|
12
|
+
if (field === 'metrics') return LOCKED_MESSAGES.runningMetrics;
|
|
13
|
+
return LOCKED_MESSAGES.running;
|
|
14
|
+
}
|
|
15
|
+
if (status === 'decided') return LOCKED_MESSAGES.decided;
|
|
16
|
+
if (status === 'archived') return LOCKED_MESSAGES.archived;
|
|
17
|
+
return LOCKED_MESSAGES.other;
|
|
18
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SerializedMetricSource } from '../types/admin.js';
|
|
2
|
+
export declare function metricSourceOptions(sources: readonly SerializedMetricSource[]): {
|
|
3
|
+
value: string;
|
|
4
|
+
label: string;
|
|
5
|
+
badge: "count" | "yes/no" | "amount";
|
|
6
|
+
}[];
|
|
7
|
+
export declare function metricSourceHint(source?: SerializedMetricSource): string | null;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { METRICS_COPY, METRIC_KIND_LABELS } from './copy/metrics.js';
|
|
2
|
+
export function metricSourceOptions(sources) {
|
|
3
|
+
return sources.map((source)=>({
|
|
4
|
+
value: source.id,
|
|
5
|
+
label: `${source.label} · ${METRIC_KIND_LABELS[source.kind]}`,
|
|
6
|
+
badge: METRIC_KIND_LABELS[source.kind]
|
|
7
|
+
}));
|
|
8
|
+
}
|
|
9
|
+
export function metricSourceHint(source) {
|
|
10
|
+
return source?.kind === 'revenue' ? METRICS_COPY.revenueHint : null;
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const XP_STATUS_CELL = "@delmaredigital/payload-experiments/admin/client#StatusCell";
|
|
2
|
+
export declare const XP_SUMMARY_CELL = "@delmaredigital/payload-experiments/admin/client#SummaryCell";
|
|
3
|
+
export declare const XP_ACTIONS = "@delmaredigital/payload-experiments/admin/client#ExperimentActions";
|
|
4
|
+
export declare const XP_LOCKED_NOTICE = "@delmaredigital/payload-experiments/admin/client#LockedFieldNotice";
|
|
5
|
+
export declare const XP_FLAG_POINT_SELECT = "@delmaredigital/payload-experiments/admin/client#FlagPointSelect";
|
|
6
|
+
export declare const XP_ARMS_FIELD = "@delmaredigital/payload-experiments/admin/client#ArmsField";
|
|
7
|
+
export declare const XP_ALLOCATION_FIELD = "@delmaredigital/payload-experiments/admin/client#AllocationField";
|
|
8
|
+
export declare const XP_TARGETING_ATTRIBUTE = "@delmaredigital/payload-experiments/admin/client#TargetingAttributeField";
|
|
9
|
+
export declare const XP_TARGETING_OP = "@delmaredigital/payload-experiments/admin/client#TargetingOpField";
|
|
10
|
+
export declare const XP_TARGETING_VALUE = "@delmaredigital/payload-experiments/admin/client#TargetingValueField";
|
|
11
|
+
export declare const XP_METRIC_SOURCE_SELECT = "@delmaredigital/payload-experiments/admin/client#MetricSourceSelect";
|
|
12
|
+
export declare const XP_REVIEW_PANEL = "@delmaredigital/payload-experiments/admin/client#ReviewPanel";
|
|
13
|
+
export declare const XP_PHASE_HISTORY = "@delmaredigital/payload-experiments/admin/client#PhaseHistory";
|
|
14
|
+
export declare const XP_LAYER_USAGE = "@delmaredigital/payload-experiments/admin/client#LayerUsage";
|
|
15
|
+
export declare const XP_RESULTS_VIEW = "@delmaredigital/payload-experiments/admin/client#ResultsView";
|
|
16
|
+
export declare const XP_ARM_SELECT = "@delmaredigital/payload-experiments/admin/client#ArmSelectField";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const XP_STATUS_CELL = '@delmaredigital/payload-experiments/admin/client#StatusCell';
|
|
2
|
+
export const XP_SUMMARY_CELL = '@delmaredigital/payload-experiments/admin/client#SummaryCell';
|
|
3
|
+
export const XP_ACTIONS = '@delmaredigital/payload-experiments/admin/client#ExperimentActions';
|
|
4
|
+
export const XP_LOCKED_NOTICE = '@delmaredigital/payload-experiments/admin/client#LockedFieldNotice';
|
|
5
|
+
export const XP_FLAG_POINT_SELECT = '@delmaredigital/payload-experiments/admin/client#FlagPointSelect';
|
|
6
|
+
export const XP_ARMS_FIELD = '@delmaredigital/payload-experiments/admin/client#ArmsField';
|
|
7
|
+
export const XP_ALLOCATION_FIELD = '@delmaredigital/payload-experiments/admin/client#AllocationField';
|
|
8
|
+
export const XP_TARGETING_ATTRIBUTE = '@delmaredigital/payload-experiments/admin/client#TargetingAttributeField';
|
|
9
|
+
export const XP_TARGETING_OP = '@delmaredigital/payload-experiments/admin/client#TargetingOpField';
|
|
10
|
+
export const XP_TARGETING_VALUE = '@delmaredigital/payload-experiments/admin/client#TargetingValueField';
|
|
11
|
+
export const XP_METRIC_SOURCE_SELECT = '@delmaredigital/payload-experiments/admin/client#MetricSourceSelect';
|
|
12
|
+
export const XP_REVIEW_PANEL = '@delmaredigital/payload-experiments/admin/client#ReviewPanel';
|
|
13
|
+
export const XP_PHASE_HISTORY = '@delmaredigital/payload-experiments/admin/client#PhaseHistory';
|
|
14
|
+
export const XP_LAYER_USAGE = '@delmaredigital/payload-experiments/admin/client#LayerUsage';
|
|
15
|
+
export const XP_RESULTS_VIEW = '@delmaredigital/payload-experiments/admin/client#ResultsView';
|
|
16
|
+
export const XP_ARM_SELECT = '@delmaredigital/payload-experiments/admin/client#ArmSelectField';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type HistoryPhase = {
|
|
2
|
+
phase: number;
|
|
3
|
+
phaseKind: 'test' | 'rollout';
|
|
4
|
+
startedAt: string;
|
|
5
|
+
endedAt?: string | null;
|
|
6
|
+
arms: readonly {
|
|
7
|
+
weight: number;
|
|
8
|
+
}[];
|
|
9
|
+
};
|
|
10
|
+
export declare function phaseHistory(phases: readonly HistoryPhase[], decision?: {
|
|
11
|
+
decidedBy?: unknown;
|
|
12
|
+
} | null): {
|
|
13
|
+
rows: {
|
|
14
|
+
phase: number;
|
|
15
|
+
phaseKind: "test" | "rollout";
|
|
16
|
+
text: string;
|
|
17
|
+
}[];
|
|
18
|
+
decision: string | null;
|
|
19
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { phaseKindLabel } from './labels.js';
|
|
2
|
+
import { HISTORY_COPY, roundRow } from './copy/history.js';
|
|
3
|
+
const dateFormat = new Intl.DateTimeFormat('en-US', {
|
|
4
|
+
month: 'short',
|
|
5
|
+
day: 'numeric',
|
|
6
|
+
timeZone: 'UTC'
|
|
7
|
+
});
|
|
8
|
+
export function phaseHistory(phases, decision) {
|
|
9
|
+
return {
|
|
10
|
+
rows: [
|
|
11
|
+
...phases
|
|
12
|
+
].sort((a, b)=>a.phase - b.phase || new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime()).map((phase)=>({
|
|
13
|
+
phase: phase.phase,
|
|
14
|
+
phaseKind: phase.phaseKind,
|
|
15
|
+
text: roundRow(phase.phase, phaseKindLabel(phase.phaseKind), dateFormat.format(new Date(phase.startedAt)), phase.endedAt ? dateFormat.format(new Date(phase.endedAt)) : HISTORY_COPY.now, phase.arms.map((arm)=>arm.weight).join('/'))
|
|
16
|
+
})),
|
|
17
|
+
decision: decision?.decidedBy != null ? HISTORY_COPY.decided : null
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const reloadPage: () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const reloadPage = ()=>window.location.reload();
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArmRow } from './results.model.js';
|
|
2
|
+
export interface ArmTableProps {
|
|
3
|
+
rows: ArmRow[];
|
|
4
|
+
caption: string;
|
|
5
|
+
method: 'sequential' | 'bayesian';
|
|
6
|
+
metricKind: 'binomial' | 'count' | 'revenue';
|
|
7
|
+
}
|
|
8
|
+
export declare function ArmTable({ rows, caption, method, metricKind }: ArmTableProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { RESULTS_COPY } from '../copy/results.js';
|
|
4
|
+
import { CappedCell } from './CappedCell.js';
|
|
5
|
+
export function ArmTable({ rows, caption, method, metricKind }) {
|
|
6
|
+
const sequential = method === 'sequential';
|
|
7
|
+
const showAdjustedCI = sequential && rows.some((row)=>row.comparison?.method === 'sequential' && row.comparison.adjustedCI !== undefined);
|
|
8
|
+
const showAdjustedPValue = sequential && rows.some((row)=>row.comparison?.method === 'sequential' && row.comparison.pValueAdjusted !== undefined);
|
|
9
|
+
const columns = 4 + Number(showAdjustedCI) + Number(showAdjustedPValue);
|
|
10
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
11
|
+
className: "xp-arm-table",
|
|
12
|
+
style: {
|
|
13
|
+
color: 'var(--theme-text)',
|
|
14
|
+
overflowX: 'auto'
|
|
15
|
+
},
|
|
16
|
+
children: /*#__PURE__*/ _jsxs("table", {
|
|
17
|
+
children: [
|
|
18
|
+
/*#__PURE__*/ _jsx("caption", {
|
|
19
|
+
children: caption
|
|
20
|
+
}),
|
|
21
|
+
/*#__PURE__*/ _jsx("thead", {
|
|
22
|
+
children: /*#__PURE__*/ _jsxs("tr", {
|
|
23
|
+
children: [
|
|
24
|
+
/*#__PURE__*/ _jsx("th", {
|
|
25
|
+
scope: "col",
|
|
26
|
+
children: RESULTS_COPY.group
|
|
27
|
+
}),
|
|
28
|
+
/*#__PURE__*/ _jsx("th", {
|
|
29
|
+
scope: "col",
|
|
30
|
+
children: RESULTS_COPY.people
|
|
31
|
+
}),
|
|
32
|
+
/*#__PURE__*/ _jsx("th", {
|
|
33
|
+
scope: "col",
|
|
34
|
+
children: metricKind === 'binomial' ? RESULTS_COPY.conversions : RESULTS_COPY.mean
|
|
35
|
+
}),
|
|
36
|
+
/*#__PURE__*/ _jsx("th", {
|
|
37
|
+
scope: "col",
|
|
38
|
+
children: sequential ? RESULTS_COPY.lift : RESULTS_COPY.chanceToWin
|
|
39
|
+
}),
|
|
40
|
+
/*#__PURE__*/ _jsx("th", {
|
|
41
|
+
scope: "col",
|
|
42
|
+
children: RESULTS_COPY.ci
|
|
43
|
+
}),
|
|
44
|
+
showAdjustedCI ? /*#__PURE__*/ _jsx("th", {
|
|
45
|
+
scope: "col",
|
|
46
|
+
children: RESULTS_COPY.adjustedCI
|
|
47
|
+
}) : null,
|
|
48
|
+
/*#__PURE__*/ _jsx("th", {
|
|
49
|
+
scope: "col",
|
|
50
|
+
children: sequential ? RESULTS_COPY.pValue : RESULTS_COPY.risk
|
|
51
|
+
}),
|
|
52
|
+
showAdjustedPValue ? /*#__PURE__*/ _jsx("th", {
|
|
53
|
+
scope: "col",
|
|
54
|
+
children: RESULTS_COPY.adjustedPValue
|
|
55
|
+
}) : null,
|
|
56
|
+
/*#__PURE__*/ _jsx("th", {
|
|
57
|
+
scope: "col",
|
|
58
|
+
children: RESULTS_COPY.comparison
|
|
59
|
+
})
|
|
60
|
+
]
|
|
61
|
+
})
|
|
62
|
+
}),
|
|
63
|
+
/*#__PURE__*/ _jsx("tbody", {
|
|
64
|
+
children: rows.map((row)=>/*#__PURE__*/ _jsxs("tr", {
|
|
65
|
+
children: [
|
|
66
|
+
/*#__PURE__*/ _jsx("th", {
|
|
67
|
+
scope: "row",
|
|
68
|
+
children: row.label
|
|
69
|
+
}),
|
|
70
|
+
/*#__PURE__*/ _jsx("td", {
|
|
71
|
+
children: row.n
|
|
72
|
+
}),
|
|
73
|
+
/*#__PURE__*/ _jsx("td", {
|
|
74
|
+
children: metricKind === 'revenue' ? /*#__PURE__*/ _jsx(CappedCell, {
|
|
75
|
+
model: row.capped
|
|
76
|
+
}) : row.value
|
|
77
|
+
}),
|
|
78
|
+
row.baseline ? /*#__PURE__*/ _jsx("td", {
|
|
79
|
+
colSpan: columns,
|
|
80
|
+
children: row.baseline
|
|
81
|
+
}) : /*#__PURE__*/ _jsxs(_Fragment, {
|
|
82
|
+
children: [
|
|
83
|
+
/*#__PURE__*/ _jsx("td", {
|
|
84
|
+
children: row.comparison?.method === 'sequential' ? row.comparison.lift : row.comparison?.chanceToWin ?? '—'
|
|
85
|
+
}),
|
|
86
|
+
/*#__PURE__*/ _jsx("td", {
|
|
87
|
+
children: row.comparison?.ci ?? '—'
|
|
88
|
+
}),
|
|
89
|
+
showAdjustedCI ? /*#__PURE__*/ _jsx("td", {
|
|
90
|
+
children: row.comparison?.method === 'sequential' ? row.comparison.adjustedCI ?? '—' : '—'
|
|
91
|
+
}) : null,
|
|
92
|
+
/*#__PURE__*/ _jsx("td", {
|
|
93
|
+
children: row.comparison?.method === 'sequential' ? row.comparison.pValue : row.comparison?.risk ?? '—'
|
|
94
|
+
}),
|
|
95
|
+
showAdjustedPValue ? /*#__PURE__*/ _jsx("td", {
|
|
96
|
+
children: row.comparison?.method === 'sequential' ? row.comparison.pValueAdjusted ?? '—' : '—'
|
|
97
|
+
}) : null,
|
|
98
|
+
/*#__PURE__*/ _jsx("td", {
|
|
99
|
+
children: row.comparison ? /*#__PURE__*/ _jsx("span", {
|
|
100
|
+
className: "xp-chip",
|
|
101
|
+
children: row.comparison.significance
|
|
102
|
+
}) : '—'
|
|
103
|
+
})
|
|
104
|
+
]
|
|
105
|
+
})
|
|
106
|
+
]
|
|
107
|
+
}, row.key))
|
|
108
|
+
})
|
|
109
|
+
]
|
|
110
|
+
})
|
|
111
|
+
});
|
|
112
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
export function CappedCell({ model }) {
|
|
4
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
5
|
+
className: "xp-capped-cell",
|
|
6
|
+
style: {
|
|
7
|
+
color: 'var(--theme-text)'
|
|
8
|
+
},
|
|
9
|
+
children: [
|
|
10
|
+
/*#__PURE__*/ _jsx("span", {
|
|
11
|
+
children: model.statistic
|
|
12
|
+
}),
|
|
13
|
+
model.totalLine ? /*#__PURE__*/ _jsx("div", {
|
|
14
|
+
children: model.totalLine
|
|
15
|
+
}) : null,
|
|
16
|
+
model.cappedLine ? /*#__PURE__*/ _jsx("div", {
|
|
17
|
+
children: model.cappedLine
|
|
18
|
+
}) : null,
|
|
19
|
+
model.notice ? /*#__PURE__*/ _jsx("p", {
|
|
20
|
+
children: model.notice
|
|
21
|
+
}) : null
|
|
22
|
+
]
|
|
23
|
+
});
|
|
24
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DocId } from '../../types/contracts.js';
|
|
2
|
+
import type { PhaseSummary, ResultsResponse } from '../../types/endpoints.js';
|
|
3
|
+
import type { Snapshot } from '../../types/snapshot.js';
|
|
4
|
+
export declare function CiChart({ series, metricId, metricName, phase, contentChanges }: {
|
|
5
|
+
series?: ResultsResponse['series'];
|
|
6
|
+
metricId: DocId;
|
|
7
|
+
metricName: string;
|
|
8
|
+
phase: PhaseSummary;
|
|
9
|
+
contentChanges?: Snapshot['contentChanges'];
|
|
10
|
+
}): import("react").JSX.Element;
|