@picked/client 0.0.1-dev.1788925875333 → 0.0.1-next.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/README.md +8 -0
- package/dist/cjs/index.js +1 -4
- package/dist/cjs/plugins/create-experience/index.js +1 -1
- package/dist/cjs/plugins/experience-browserstorage-plugin/index.js +1 -0
- package/dist/cjs/plugins/history-browserstorage-plugin/index.js +1 -0
- package/dist/cjs/plugins/responses-browserstorage-plugin/index.js +1 -0
- package/dist/cjs/plugins/responses-indexeddb-plugin/index.js +1 -0
- package/dist/cjs/plugins/shopify/index.js +1 -0
- package/dist/cjs/plugins/single-page-app/index.js +1 -1
- package/dist/cjs/plugins/window-object/index.js +1 -1
- package/dist/cjs/server/index.js +1 -1
- package/dist/esm/index.js +733 -1814
- package/dist/esm/plugins/create-experience/index.js +398 -490
- package/dist/esm/plugins/experience-browserstorage-plugin/index.js +38 -0
- package/dist/esm/plugins/history-browserstorage-plugin/index.js +26 -0
- package/dist/esm/plugins/responses-browserstorage-plugin/index.js +36 -0
- package/dist/esm/plugins/responses-indexeddb-plugin/index.js +101 -0
- package/dist/esm/plugins/shopify/index.js +59 -0
- package/dist/esm/plugins/single-page-app/index.js +35 -31
- package/dist/esm/plugins/window-object/index.js +9 -9
- package/dist/esm/server/index.js +89 -141
- package/dist/experience-instance-6ZKZS7dF.cjs +1 -0
- package/dist/experience-instance-BA0EXYg5.js +712 -0
- package/dist/id-BKIWbSTy.cjs +1 -0
- package/dist/id-BW-g3y32.js +6 -0
- package/dist/logger-BsmHUUw1.cjs +1 -0
- package/dist/logger-C9a75KZn.js +5 -0
- package/dist/object-BbFTsGh3.cjs +1 -0
- package/dist/object-JwZ58NOH.js +28 -0
- package/dist/storage-BPJwmlva.cjs +1 -0
- package/dist/storage-D87xFySf.js +85 -0
- package/dist/supports-BvrzQAVk.js +79 -0
- package/dist/supports-C0y3-V5V.cjs +1 -0
- package/dist/types/client.d.ts +23 -119
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/entities/component/component.d.ts +6 -45
- package/dist/types/entities/component/component.d.ts.map +1 -1
- package/dist/types/entities/experience/experience.d.ts +99 -152
- package/dist/types/entities/experience/experience.d.ts.map +1 -1
- package/dist/types/entities/experience-instance/experience-instance.d.ts +113 -83
- package/dist/types/entities/experience-instance/experience-instance.d.ts.map +1 -1
- package/dist/types/entities/feature/feature.d.ts +8 -118
- package/dist/types/entities/feature/feature.d.ts.map +1 -1
- package/dist/types/entities/field/field.d.ts +64 -96
- package/dist/types/entities/field/field.d.ts.map +1 -1
- package/dist/types/entities/framework/framework.d.ts +7 -32
- package/dist/types/entities/framework/framework.d.ts.map +1 -1
- package/dist/types/entities/history/history.d.ts +6 -6
- package/dist/types/entities/history/history.d.ts.map +1 -1
- package/dist/types/entities/plugin/plugin.d.ts +2 -41
- package/dist/types/entities/plugin/plugin.d.ts.map +1 -1
- package/dist/types/entities/predicate/predicate.d.ts +7 -30
- package/dist/types/entities/predicate/predicate.d.ts.map +1 -1
- package/dist/types/entities/project/project.d.ts +9 -0
- package/dist/types/entities/project/project.d.ts.map +1 -0
- package/dist/types/entities/response/response.d.ts +21 -57
- package/dist/types/entities/response/response.d.ts.map +1 -1
- package/dist/types/exports.d.ts +4 -22
- package/dist/types/exports.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -12
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/logic-engine.d.ts +11 -13
- package/dist/types/logic-engine.d.ts.map +1 -1
- package/dist/types/picked.d.ts +184 -381
- package/dist/types/picked.d.ts.map +1 -1
- package/dist/types/ping.d.ts +10 -0
- package/dist/types/ping.d.ts.map +1 -0
- package/dist/types/plugins/create-experience/create-experience.d.ts +44 -119
- package/dist/types/plugins/create-experience/create-experience.d.ts.map +1 -1
- package/dist/types/plugins/create-experience/index.d.ts +2 -2
- package/dist/types/plugins/create-experience/index.d.ts.map +1 -1
- package/dist/types/plugins/create-experience/plugin.d.ts +2 -3
- package/dist/types/plugins/create-experience/plugin.d.ts.map +1 -1
- package/dist/types/plugins/create-experience/serialization.d.ts.map +1 -1
- package/dist/types/plugins/experience-browserstorage-plugin/index.d.ts.map +1 -0
- package/dist/types/plugins/experience-browserstorage-plugin/plugin.d.ts +6 -0
- package/dist/types/plugins/experience-browserstorage-plugin/plugin.d.ts.map +1 -0
- package/dist/types/plugins/history-browserstorage-plugin/index.d.ts.map +1 -0
- package/dist/types/plugins/{history-browser-storage → history-browserstorage-plugin}/plugin.d.ts +1 -2
- package/dist/types/plugins/history-browserstorage-plugin/plugin.d.ts.map +1 -0
- package/dist/types/plugins/responses-browserstorage-plugin/index.d.ts.map +1 -0
- package/dist/types/plugins/responses-browserstorage-plugin/plugin.d.ts +6 -0
- package/dist/types/plugins/responses-browserstorage-plugin/plugin.d.ts.map +1 -0
- package/dist/types/plugins/responses-indexeddb-plugin/index.d.ts.map +1 -0
- package/dist/types/plugins/responses-indexeddb-plugin/plugin.d.ts +3 -0
- package/dist/types/plugins/responses-indexeddb-plugin/plugin.d.ts.map +1 -0
- package/dist/types/plugins/shopify/index.d.ts +2 -0
- package/dist/types/plugins/shopify/index.d.ts.map +1 -0
- package/dist/types/plugins/shopify/plugin.d.ts +3 -0
- package/dist/types/plugins/shopify/plugin.d.ts.map +1 -0
- package/dist/types/plugins/shopify/shopify.d.ts +28 -0
- package/dist/types/plugins/shopify/shopify.d.ts.map +1 -0
- package/dist/types/plugins/single-page-app/plugin.d.ts +2 -2
- package/dist/types/plugins/single-page-app/plugin.d.ts.map +1 -1
- package/dist/types/plugins/window-object/plugin.d.ts +2 -2
- package/dist/types/server/index.d.ts +3 -18
- package/dist/types/server/index.d.ts.map +1 -1
- package/dist/types/utils/dom.d.ts +6 -4
- package/dist/types/utils/dom.d.ts.map +1 -1
- package/dist/types/utils/events.d.ts +38 -83
- package/dist/types/utils/events.d.ts.map +1 -1
- package/dist/types/utils/global-obj.d.ts +2 -1
- package/dist/types/utils/global-obj.d.ts.map +1 -1
- package/dist/types/utils/id.d.ts.map +1 -1
- package/dist/types/utils/indexed-db.d.ts +1 -2
- package/dist/types/utils/indexed-db.d.ts.map +1 -1
- package/dist/types/utils/logger.d.ts +1 -2
- package/dist/types/utils/logger.d.ts.map +1 -1
- package/dist/types/utils/node-tree/get-next-node-from-conditional.d.ts +3 -0
- package/dist/types/utils/node-tree/get-next-node-from-conditional.d.ts.map +1 -0
- package/dist/types/utils/node-tree/get-next-node.d.ts +1 -1
- package/dist/types/utils/node-tree/get-next-node.d.ts.map +1 -1
- package/dist/types/utils/node-tree/get-origin-node.d.ts +1 -1
- package/dist/types/utils/node-tree/get-origin-node.d.ts.map +1 -1
- package/dist/types/utils/node-tree/min-max-steps-to-leaf.d.ts +1 -1
- package/dist/types/utils/node-tree/min-max-steps-to-leaf.d.ts.map +1 -1
- package/dist/types/utils/node-tree/min-max-steps-to-origin.d.ts +1 -1
- package/dist/types/utils/node-tree/min-max-steps-to-origin.d.ts.map +1 -1
- package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts +1 -1
- package/dist/types/utils/node-tree/next-reachable-step-nodes.d.ts.map +1 -1
- package/dist/types/utils/nodes.d.ts +2 -3
- package/dist/types/utils/nodes.d.ts.map +1 -1
- package/dist/types/utils/object.d.ts +8 -0
- package/dist/types/utils/object.d.ts.map +1 -1
- package/dist/types/utils/rules-logic.d.ts +3 -33
- package/dist/types/utils/rules-logic.d.ts.map +1 -1
- package/dist/types/utils/search-params.d.ts.map +1 -1
- package/dist/types/utils/state-snaphot.d.ts +16 -0
- package/dist/types/utils/state-snaphot.d.ts.map +1 -0
- package/dist/types/utils/storage.d.ts +11 -374
- package/dist/types/utils/storage.d.ts.map +1 -1
- package/dist/types/utils/supports.d.ts +0 -87
- package/dist/types/utils/supports.d.ts.map +1 -1
- package/package.json +49 -182
- package/dist/.tsbuildinfo +0 -1
- package/dist/api-DbMJli3H.js +0 -22
- package/dist/api-qiqq8lgz.cjs +0 -1
- package/dist/cjs/form/index.js +0 -1
- package/dist/cjs/plugins/dom-observer/index.js +0 -1
- package/dist/cjs/plugins/dynamic-experiences/index.js +0 -1
- package/dist/cjs/plugins/experience-browser-storage/index.js +0 -1
- package/dist/cjs/plugins/history-browser-storage/index.js +0 -1
- package/dist/cjs/plugins/responses-browser-storage/index.js +0 -1
- package/dist/cjs/plugins/responses-indexeddb/index.js +0 -1
- package/dist/cjs/plugins/telemetry/index.js +0 -1
- package/dist/cjs/plugins/web-components/index.js +0 -1
- package/dist/cjs/preview/index.js +0 -1
- package/dist/docs/_root.css +0 -101
- package/dist/docs/explanation/conditions-and-the-logic-engine.md +0 -94
- package/dist/docs/explanation/content-references.md +0 -99
- package/dist/docs/explanation/feature-flag-allocation.md +0 -218
- package/dist/docs/explanation/how-picked-works.md +0 -124
- package/dist/docs/explanation/how-pickedql-works.md +0 -76
- package/dist/docs/explanation/pages-and-flows.md +0 -64
- package/dist/docs/explanation/the-content-model.md +0 -87
- package/dist/docs/explanation/the-two-apis.md +0 -68
- package/dist/docs/explanation/why-server-side-rendering.md +0 -76
- package/dist/docs/explanation/workspaces-and-versions.md +0 -71
- package/dist/docs/how-to/add-a-step-field-or-action.md +0 -43
- package/dist/docs/how-to/analytics/index.md +0 -316
- package/dist/docs/how-to/archive-or-delete-a-workspace.md +0 -46
- package/dist/docs/how-to/authenticate-the-cli.md +0 -97
- package/dist/docs/how-to/authenticate-with-a-magic-link.md +0 -40
- package/dist/docs/how-to/authenticate-with-a-password.md +0 -51
- package/dist/docs/how-to/authenticate-with-an-api-key.md +0 -51
- package/dist/docs/how-to/authenticate-with-oauth.md +0 -40
- package/dist/docs/how-to/build-a-flow.md +0 -83
- package/dist/docs/how-to/connect-the-mcp-server.md +0 -38
- package/dist/docs/how-to/create-a-content-entry.md +0 -48
- package/dist/docs/how-to/create-a-project.md +0 -29
- package/dist/docs/how-to/create-an-experience.md +0 -42
- package/dist/docs/how-to/create-and-revoke-an-api-key.md +0 -42
- package/dist/docs/how-to/debug-with-the-chrome-extension.md +0 -57
- package/dist/docs/how-to/define-a-page-layout.md +0 -46
- package/dist/docs/how-to/fill-and-publish-a-page.md +0 -66
- package/dist/docs/how-to/install-the-gtm-template.md +0 -84
- package/dist/docs/how-to/install-the-sdk.md +0 -93
- package/dist/docs/how-to/install-the-vite-plugin.md +0 -69
- package/dist/docs/how-to/invite-and-remove-members.md +0 -34
- package/dist/docs/how-to/point-one-entry-at-another.md +0 -61
- package/dist/docs/how-to/preview-a-workspace.md +0 -28
- package/dist/docs/how-to/publish-a-workspace.md +0 -30
- package/dist/docs/how-to/read-a-feature-flag.md +0 -113
- package/dist/docs/how-to/read-a-referenced-entry.md +0 -109
- package/dist/docs/how-to/register-a-component.md +0 -55
- package/dist/docs/how-to/register-an-action-handler.md +0 -67
- package/dist/docs/how-to/render-a-step-form.md +0 -131
- package/dist/docs/how-to/render-an-unpublished-preview.md +0 -41
- package/dist/docs/how-to/reuse-a-section.md +0 -53
- package/dist/docs/how-to/reuse-a-step-field-or-action.md +0 -28
- package/dist/docs/how-to/roll-back-a-published-version.md +0 -26
- package/dist/docs/how-to/run-an-ab-test.md +0 -49
- package/dist/docs/how-to/run-code-on-a-form-submission.md +0 -125
- package/dist/docs/how-to/server-render-a-page.md +0 -81
- package/dist/docs/how-to/set-a-content-security-policy.md +0 -32
- package/dist/docs/how-to/set-up-mfa.md +0 -69
- package/dist/docs/how-to/switch-workspaces.md +0 -122
- package/dist/docs/how-to/upload-and-use-an-asset.mdx +0 -73
- package/dist/docs/how-to/validate-a-field.md +0 -52
- package/dist/docs/how-to/write-a-condition.md +0 -45
- package/dist/docs/how-to/write-a-predicate.md +0 -60
- package/dist/docs/index.md +0 -59
- package/dist/docs/reference/dashboard/actions.mdx +0 -53
- package/dist/docs/reference/dashboard/api-keys.mdx +0 -38
- package/dist/docs/reference/dashboard/conditions.mdx +0 -42
- package/dist/docs/reference/dashboard/content/asset-library.mdx +0 -63
- package/dist/docs/reference/dashboard/content/blocks.mdx +0 -57
- package/dist/docs/reference/dashboard/content/content-entries.mdx +0 -95
- package/dist/docs/reference/dashboard/content/models.mdx +0 -108
- package/dist/docs/reference/dashboard/content/pages.mdx +0 -61
- package/dist/docs/reference/dashboard/experiences.mdx +0 -51
- package/dist/docs/reference/dashboard/features.mdx +0 -154
- package/dist/docs/reference/dashboard/fields.mdx +0 -106
- package/dist/docs/reference/dashboard/flow-builder/canvas.mdx +0 -58
- package/dist/docs/reference/dashboard/flow-builder/condition-builder.md +0 -57
- package/dist/docs/reference/dashboard/flow-builder/keyboard-shortcuts.md +0 -72
- package/dist/docs/reference/dashboard/flow-builder/nodes.md +0 -63
- package/dist/docs/reference/dashboard/projects.mdx +0 -44
- package/dist/docs/reference/dashboard/reports.mdx +0 -43
- package/dist/docs/reference/dashboard/steps.mdx +0 -37
- package/dist/docs/reference/dashboard/team-management.md +0 -29
- package/dist/docs/reference/dashboard/workspace-versioning.mdx +0 -30
- package/dist/docs/reference/dashboard/workspaces.mdx +0 -76
- package/dist/docs/reference/delivery-api/experience-content.md +0 -152
- package/dist/docs/reference/delivery-api/index.md +0 -45
- package/dist/docs/reference/delivery-api/preview-caching-crawling.md +0 -79
- package/dist/docs/reference/delivery-api/project-config.md +0 -65
- package/dist/docs/reference/delivery-api/workspace-schema.md +0 -85
- package/dist/docs/reference/glossary.md +0 -181
- package/dist/docs/reference/management-api/authentication.md +0 -74
- package/dist/docs/reference/management-api/authorization-and-scopes.md +0 -285
- package/dist/docs/reference/management-api/error-handling.md +0 -233
- package/dist/docs/reference/management-api/pagination.md +0 -192
- package/dist/docs/reference/pickedql/data-sources.md +0 -174
- package/dist/docs/reference/pickedql/dimensions.md +0 -103
- package/dist/docs/reference/pickedql/filtering.md +0 -64
- package/dist/docs/reference/pickedql/index.md +0 -18
- package/dist/docs/reference/pickedql/schema.md +0 -172
- package/dist/docs/reference/pickedql/virtual-functions.md +0 -248
- package/dist/docs/reference/sdk/actions.md +0 -30
- package/dist/docs/reference/sdk/analytics-events.md +0 -445
- package/dist/docs/reference/sdk/conditions.md +0 -147
- package/dist/docs/reference/sdk/content-security-policy.md +0 -21
- package/dist/docs/reference/sdk/content.md +0 -213
- package/dist/docs/reference/sdk/experiences.md +0 -51
- package/dist/docs/reference/sdk/features.md +0 -256
- package/dist/docs/reference/sdk/fields.md +0 -255
- package/dist/docs/reference/sdk/index.md +0 -68
- package/dist/docs/reference/sdk/plugins/create-experience.md +0 -123
- package/dist/docs/reference/sdk/plugins/dynamic-experiences.md +0 -74
- package/dist/docs/reference/sdk/plugins/index.md +0 -29
- package/dist/docs/reference/sdk/plugins/window-object.md +0 -25
- package/dist/docs/reference/sdk/predicates.md +0 -43
- package/dist/docs/reference/sdk/ssr/index.md +0 -33
- package/dist/docs/reference/sdk/ssr/rendering-and-hydration.md +0 -103
- package/dist/docs/reference/sdk/ssr/serialize.md +0 -80
- package/dist/docs/reference/sdk/ssr/slots-and-placements.md +0 -59
- package/dist/docs/reference/sdk/steps.md +0 -86
- package/dist/docs/reference/sdk/type-generation.md +0 -196
- package/dist/docs/reference/tools/chrome-extension.md +0 -16
- package/dist/docs/reference/tools/cli.md +0 -146
- package/dist/docs/reference/tools/image-optimisation-service.md +0 -104
- package/dist/docs/reference/tools/mcp.md +0 -90
- package/dist/docs/reference/tools/vite-plugin.md +0 -163
- package/dist/docs/tutorials/first-api-call.md +0 -228
- package/dist/docs/tutorials/first-experience-in-the-dashboard.mdx +0 -143
- package/dist/docs/tutorials/first-experience.mdx +0 -254
- package/dist/docs/tutorials/first-server-rendered-page.mdx +0 -186
- package/dist/dom-BqcToNL0.js +0 -82
- package/dist/dom-DlLH3FxV.cjs +0 -1
- package/dist/emit-D-tLiWL1.cjs +0 -1
- package/dist/emit-Ds2EG7CB.js +0 -14
- package/dist/esm/form/index.js +0 -565
- package/dist/esm/plugins/dom-observer/index.js +0 -87
- package/dist/esm/plugins/dynamic-experiences/index.js +0 -5
- package/dist/esm/plugins/experience-browser-storage/index.js +0 -38
- package/dist/esm/plugins/history-browser-storage/index.js +0 -26
- package/dist/esm/plugins/responses-browser-storage/index.js +0 -71
- package/dist/esm/plugins/responses-indexeddb/index.js +0 -89
- package/dist/esm/plugins/telemetry/index.js +0 -100
- package/dist/esm/plugins/web-components/index.js +0 -19
- package/dist/esm/preview/index.js +0 -2
- package/dist/experience-instance-DGk11d8a.js +0 -563
- package/dist/experience-instance-Dej3P1sE.cjs +0 -1
- package/dist/id-Bo4RBeOs.js +0 -4
- package/dist/id-Js-62re-.cjs +0 -1
- package/dist/inert-script-report-B_bMPRzp.js +0 -18
- package/dist/inert-script-report-ijRHPtcY.cjs +0 -1
- package/dist/logger-CSTvAyyB.cjs +0 -1
- package/dist/logger-DMN6TxJJ.js +0 -4
- package/dist/object-BUDGxEqy.js +0 -25
- package/dist/object-CIkt7Fkr.cjs +0 -1
- package/dist/plugin-BcLaCLm1.cjs +0 -1
- package/dist/plugin-De_BJSwE.js +0 -194
- package/dist/preview-channel-CSr96XAo.js +0 -98
- package/dist/preview-channel-Cx0e6fye.cjs +0 -1
- package/dist/protocol-Bb_vpLKE.cjs +0 -1
- package/dist/protocol-C5KkkiZc.js +0 -84
- package/dist/provider-C_9u0yGJ.cjs +0 -1
- package/dist/provider-ovM-CBX_.js +0 -98
- package/dist/registry-C1t8l3t9.cjs +0 -1
- package/dist/registry-CXZv0uLg.js +0 -18
- package/dist/rules-logic-CGZIYgAI.cjs +0 -1
- package/dist/rules-logic-HesIUCu6.js +0 -13
- package/dist/storage-1MW3-_As.js +0 -103
- package/dist/storage-DUw9UJ2h.cjs +0 -1
- package/dist/supports-CO9bJGNl.js +0 -92
- package/dist/supports-DBzjGaWD.cjs +0 -1
- package/dist/types/data-source/api.d.ts +0 -60
- package/dist/types/data-source/api.d.ts.map +0 -1
- package/dist/types/data-source/provider.d.ts +0 -103
- package/dist/types/data-source/provider.d.ts.map +0 -1
- package/dist/types/data-source/registry.d.ts +0 -26
- package/dist/types/data-source/registry.d.ts.map +0 -1
- package/dist/types/data-source/request-observer.d.ts +0 -62
- package/dist/types/data-source/request-observer.d.ts.map +0 -1
- package/dist/types/data-source/virtual-data.d.ts +0 -19
- package/dist/types/data-source/virtual-data.d.ts.map +0 -1
- package/dist/types/entities/action/action.d.ts +0 -85
- package/dist/types/entities/action/action.d.ts.map +0 -1
- package/dist/types/entities/component/lazyComponent.d.ts +0 -11
- package/dist/types/entities/component/lazyComponent.d.ts.map +0 -1
- package/dist/types/entities/condition/condition.d.ts +0 -29
- package/dist/types/entities/condition/condition.d.ts.map +0 -1
- package/dist/types/entities/content/content.d.ts +0 -53
- package/dist/types/entities/content/content.d.ts.map +0 -1
- package/dist/types/entities/content/reference.d.ts +0 -101
- package/dist/types/entities/content/reference.d.ts.map +0 -1
- package/dist/types/entities/field/policies.d.ts +0 -35
- package/dist/types/entities/field/policies.d.ts.map +0 -1
- package/dist/types/entities/response/response-validation.d.ts +0 -75
- package/dist/types/entities/response/response-validation.d.ts.map +0 -1
- package/dist/types/entities/session/session.d.ts +0 -46
- package/dist/types/entities/session/session.d.ts.map +0 -1
- package/dist/types/entities/step/step.d.ts +0 -56
- package/dist/types/entities/step/step.d.ts.map +0 -1
- package/dist/types/form/build-responses.d.ts +0 -18
- package/dist/types/form/build-responses.d.ts.map +0 -1
- package/dist/types/form/create-field-evaluator.d.ts +0 -28
- package/dist/types/form/create-field-evaluator.d.ts.map +0 -1
- package/dist/types/form/create-field-validation.d.ts +0 -60
- package/dist/types/form/create-field-validation.d.ts.map +0 -1
- package/dist/types/form/create-form.d.ts +0 -153
- package/dist/types/form/create-form.d.ts.map +0 -1
- package/dist/types/form/create-submit-pipeline.d.ts +0 -116
- package/dist/types/form/create-submit-pipeline.d.ts.map +0 -1
- package/dist/types/form/get-step-fields.d.ts +0 -19
- package/dist/types/form/get-step-fields.d.ts.map +0 -1
- package/dist/types/form/index.d.ts +0 -11
- package/dist/types/form/index.d.ts.map +0 -1
- package/dist/types/lifecycle/condition-selection.d.ts +0 -146
- package/dist/types/lifecycle/condition-selection.d.ts.map +0 -1
- package/dist/types/lifecycle/lifecycle.d.ts +0 -48
- package/dist/types/lifecycle/lifecycle.d.ts.map +0 -1
- package/dist/types/lifecycle/rules-logic.d.ts +0 -25
- package/dist/types/lifecycle/rules-logic.d.ts.map +0 -1
- package/dist/types/lifecycle/state-snapshot.d.ts +0 -38
- package/dist/types/lifecycle/state-snapshot.d.ts.map +0 -1
- package/dist/types/plugins/dom-observer/index.d.ts +0 -3
- package/dist/types/plugins/dom-observer/index.d.ts.map +0 -1
- package/dist/types/plugins/dom-observer/plugin.d.ts +0 -50
- package/dist/types/plugins/dom-observer/plugin.d.ts.map +0 -1
- package/dist/types/plugins/dynamic-experiences/hash.d.ts +0 -105
- package/dist/types/plugins/dynamic-experiences/hash.d.ts.map +0 -1
- package/dist/types/plugins/dynamic-experiences/index.d.ts +0 -7
- package/dist/types/plugins/dynamic-experiences/index.d.ts.map +0 -1
- package/dist/types/plugins/dynamic-experiences/plugin.d.ts +0 -49
- package/dist/types/plugins/dynamic-experiences/plugin.d.ts.map +0 -1
- package/dist/types/plugins/dynamic-experiences/types.d.ts +0 -45
- package/dist/types/plugins/dynamic-experiences/types.d.ts.map +0 -1
- package/dist/types/plugins/experience-browser-storage/index.d.ts.map +0 -1
- package/dist/types/plugins/experience-browser-storage/plugin.d.ts +0 -7
- package/dist/types/plugins/experience-browser-storage/plugin.d.ts.map +0 -1
- package/dist/types/plugins/history-browser-storage/index.d.ts.map +0 -1
- package/dist/types/plugins/history-browser-storage/plugin.d.ts.map +0 -1
- package/dist/types/plugins/responses-browser-storage/index.d.ts.map +0 -1
- package/dist/types/plugins/responses-browser-storage/plugin.d.ts +0 -18
- package/dist/types/plugins/responses-browser-storage/plugin.d.ts.map +0 -1
- package/dist/types/plugins/responses-indexeddb/index.d.ts.map +0 -1
- package/dist/types/plugins/responses-indexeddb/plugin.d.ts +0 -3
- package/dist/types/plugins/responses-indexeddb/plugin.d.ts.map +0 -1
- package/dist/types/plugins/telemetry/emit.d.ts +0 -18
- package/dist/types/plugins/telemetry/emit.d.ts.map +0 -1
- package/dist/types/plugins/telemetry/index.d.ts +0 -4
- package/dist/types/plugins/telemetry/index.d.ts.map +0 -1
- package/dist/types/plugins/telemetry/plugin-summary.d.ts +0 -10
- package/dist/types/plugins/telemetry/plugin-summary.d.ts.map +0 -1
- package/dist/types/plugins/telemetry/plugin.d.ts +0 -45
- package/dist/types/plugins/telemetry/plugin.d.ts.map +0 -1
- package/dist/types/plugins/web-components/index.d.ts +0 -2
- package/dist/types/plugins/web-components/index.d.ts.map +0 -1
- package/dist/types/plugins/web-components/plugin.d.ts +0 -4
- package/dist/types/plugins/web-components/plugin.d.ts.map +0 -1
- package/dist/types/preview/index.d.ts +0 -18
- package/dist/types/preview/index.d.ts.map +0 -1
- package/dist/types/preview-bridge/index.d.ts +0 -14
- package/dist/types/preview-bridge/index.d.ts.map +0 -1
- package/dist/types/preview-channel.d.ts +0 -16
- package/dist/types/preview-channel.d.ts.map +0 -1
- package/dist/types/preview-receiver/apply-ops.d.ts +0 -32
- package/dist/types/preview-receiver/apply-ops.d.ts.map +0 -1
- package/dist/types/preview-receiver/index.d.ts +0 -32
- package/dist/types/preview-receiver/index.d.ts.map +0 -1
- package/dist/types/preview-receiver/protocol.d.ts +0 -69
- package/dist/types/preview-receiver/protocol.d.ts.map +0 -1
- package/dist/types/schema-registry.d.ts +0 -206
- package/dist/types/schema-registry.d.ts.map +0 -1
- package/dist/types/server/serialize.d.ts +0 -87
- package/dist/types/server/serialize.d.ts.map +0 -1
- package/dist/types/typed-content.d.ts +0 -17
- package/dist/types/typed-content.d.ts.map +0 -1
- package/dist/types/utils/client-telemetry.d.ts +0 -25
- package/dist/types/utils/client-telemetry.d.ts.map +0 -1
- package/dist/types/utils/content-path.d.ts +0 -37
- package/dist/types/utils/content-path.d.ts.map +0 -1
- package/dist/types/utils/html-asset-value.d.ts +0 -20
- package/dist/types/utils/html-asset-value.d.ts.map +0 -1
- package/dist/types/utils/inert-script-report.d.ts +0 -40
- package/dist/types/utils/inert-script-report.d.ts.map +0 -1
- package/dist/types/utils/node-tree/get-next-node-from-action.d.ts +0 -25
- package/dist/types/utils/node-tree/get-next-node-from-action.d.ts.map +0 -1
- package/dist/types/utils/node-tree/get-next-node-from-condition.d.ts +0 -17
- package/dist/types/utils/node-tree/get-next-node-from-condition.d.ts.map +0 -1
- package/dist/types/utils/picked-config.d.ts +0 -39
- package/dist/types/utils/picked-config.d.ts.map +0 -1
- package/dist/types/utils/preview-session.d.ts +0 -12
- package/dist/types/utils/preview-session.d.ts.map +0 -1
- package/dist/types/utils/rehydrate-scripts.d.ts +0 -50
- package/dist/types/utils/rehydrate-scripts.d.ts.map +0 -1
- package/dist/types/utils/render-string.d.ts +0 -24
- package/dist/types/utils/render-string.d.ts.map +0 -1
- package/dist/types/utils/user-timing.d.ts +0 -21
- package/dist/types/utils/user-timing.d.ts.map +0 -1
- package/dist/version-BvLZaTMC.cjs +0 -1
- package/dist/version-VvasRUfR.js +0 -256
- /package/dist/types/plugins/{experience-browser-storage → experience-browserstorage-plugin}/index.d.ts +0 -0
- /package/dist/types/plugins/{history-browser-storage → history-browserstorage-plugin}/index.d.ts +0 -0
- /package/dist/types/plugins/{responses-browser-storage → responses-browserstorage-plugin}/index.d.ts +0 -0
- /package/dist/types/plugins/{responses-indexeddb → responses-indexeddb-plugin}/index.d.ts +0 -0
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Conditions
|
|
9
|
-
|
|
10
|
-
A condition evaluates a rule and splits the flow into two paths. One path is for a
|
|
11
|
-
true result, the other for a false result.
|
|
12
|
-
|
|
13
|
-
<Screenshot
|
|
14
|
-
route="/{orgSlug}/{projectId}/workspaces/{workspaceId}/conditions"
|
|
15
|
-
alt="The conditions list for a workspace on the Picked dashboard"
|
|
16
|
-
/>
|
|
17
|
-
|
|
18
|
-
## Set up a condition
|
|
19
|
-
|
|
20
|
-
**Name**: The name that the dashboard shows. Your visitors do not see it.
|
|
21
|
-
|
|
22
|
-
**Key**: The identifier for your application. You set it once and you cannot change
|
|
23
|
-
it. Your visitors do not see it.
|
|
24
|
-
|
|
25
|
-
## Branches
|
|
26
|
-
|
|
27
|
-
In the flow builder, a condition node has two output handles. The green handle, for a
|
|
28
|
-
true result, leads to the path for a match. The red handle, for a false result, leads
|
|
29
|
-
to the other path.
|
|
30
|
-
|
|
31
|
-
You can chain conditions. Connect the output of one condition to the input of another
|
|
32
|
-
to build a decision tree.
|
|
33
|
-
|
|
34
|
-
## Related
|
|
35
|
-
|
|
36
|
-
- [How to add a step, a field, an action, or a condition](/how-to/add-a-step-field-or-action)
|
|
37
|
-
|
|
38
|
-
- [About conditions and the logic engine](/explanation/conditions-and-the-logic-engine) —
|
|
39
|
-
what a rule can read.
|
|
40
|
-
- [How to write a condition](/how-to/write-a-condition)
|
|
41
|
-
- [Condition builder](/reference/dashboard/flow-builder/condition-builder) — the data
|
|
42
|
-
sources and the rule structure.
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Asset Library
|
|
9
|
-
|
|
10
|
-
The Asset Library holds the files that your content points at. These are images,
|
|
11
|
-
video, documents, and HTML.
|
|
12
|
-
|
|
13
|
-
<Screenshot
|
|
14
|
-
route="/{orgSlug}/{projectId}/assets"
|
|
15
|
-
alt="The asset library on the Picked dashboard"
|
|
16
|
-
/>
|
|
17
|
-
|
|
18
|
-
## Upload and control your assets
|
|
19
|
-
|
|
20
|
-
The Asset Library is a project-level store. Upload a file, then point at it from any
|
|
21
|
-
Content Entry in the project.
|
|
22
|
-
|
|
23
|
-
- **Size limit:** 50 MB for each file.
|
|
24
|
-
- **Allowed types:** an image in PNG, JPEG, WebP, AVIF, GIF, or SVG. A video in MP4
|
|
25
|
-
or WebM. A common document format. HTML, as `text/html`.
|
|
26
|
-
|
|
27
|
-
Picked rejects a file of another type. It also rejects a file above the size limit.
|
|
28
|
-
|
|
29
|
-
## HTML assets
|
|
30
|
-
|
|
31
|
-
Upload a `.html` file and point at it from an **HTML asset** field. Picked then scans
|
|
32
|
-
the file. The scan is advisory: it helps you, and it never stops you. It
|
|
33
|
-
reports findings about speed, about search rank, and about accessibility, so that you
|
|
34
|
-
can improve the file before you publish it:
|
|
35
|
-
|
|
36
|
-
- **File size:** a warning at 100 KB, and a stronger one at 250 KB.
|
|
37
|
-
- **Inline images:** a note when inline `base64` image data adds about 50 KB or more.
|
|
38
|
-
- **Image dimensions:** an image with no width and no height. Such an image can move
|
|
39
|
-
the content around it while the page loads.
|
|
40
|
-
- **Lazy load:** an image with no `loading="lazy"` attribute.
|
|
41
|
-
- **Link safety:** an external link with `target="_blank"` and no `rel="noopener"`.
|
|
42
|
-
- **Link search rank:** an external link with no `rel="nofollow"`.
|
|
43
|
-
- **Accessibility:** a pass by `axe-core`. It covers alt text, heading order,
|
|
44
|
-
contrast, and more.
|
|
45
|
-
|
|
46
|
-
Every finding is advisory. You can always upload the file as it is.
|
|
47
|
-
|
|
48
|
-
## How assets are served
|
|
49
|
-
|
|
50
|
-
Picked serves each asset from a sandboxed storage origin. That origin is separate
|
|
51
|
-
from the trusted origin of your application. HTML therefore comes from its own
|
|
52
|
-
origin, so a document that you upload runs in isolation and cannot reach the page
|
|
53
|
-
that holds it. A script in that document cannot read a session, a token, or the DOM
|
|
54
|
-
around it, because each of those needs same-origin access.
|
|
55
|
-
|
|
56
|
-
An [Experience Content](/reference/delivery-api/experience-content) response can hold an HTML
|
|
57
|
-
asset. The response then carries the content of that asset, and the SDK renders it
|
|
58
|
-
with no second request to storage.
|
|
59
|
-
|
|
60
|
-
## Related
|
|
61
|
-
|
|
62
|
-
- [How to upload and use an asset](/how-to/upload-and-use-an-asset)
|
|
63
|
-
- [Fields](/reference/dashboard/fields) — the field type for an HTML asset.
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Blocks
|
|
9
|
-
|
|
10
|
-
A Block is a reusable schema fragment that you embed inside a Model, so that a common structure is defined one time.
|
|
11
|
-
|
|
12
|
-
<Screenshot
|
|
13
|
-
route="/{orgSlug}/{projectId}/workspaces/{workspaceId}/blocks"
|
|
14
|
-
alt="The blocks list in the schema builder on the Picked dashboard"
|
|
15
|
-
/>
|
|
16
|
-
|
|
17
|
-
## What a Block is
|
|
18
|
-
|
|
19
|
-
A Block is a schema fragment with its own **Key**. A
|
|
20
|
-
[Model](/reference/dashboard/content/models) gives its shape to a whole Page or Step. A
|
|
21
|
-
Block is a part that you put into one or more Models. Define the shape one time, then
|
|
22
|
-
reuse it everywhere.
|
|
23
|
-
|
|
24
|
-
A Block holds no data of its own. The content that fills a Block sits inside the entry
|
|
25
|
-
of the Model that embeds it.
|
|
26
|
-
|
|
27
|
-
## Where a Block appears
|
|
28
|
-
|
|
29
|
-
**CMS** in the sidebar holds **Blocks**, and that list shows every Block in the
|
|
30
|
-
workspace. **Pages** holds **Page Sections**, which is the same list limited to the
|
|
31
|
-
Section category.
|
|
32
|
-
|
|
33
|
-
## Category
|
|
34
|
-
|
|
35
|
-
| Category | What it does |
|
|
36
|
-
| --- | --- |
|
|
37
|
-
| **Section** | Marks the Block as a page section. A **Page Sections** field accepts it. |
|
|
38
|
-
| **None (general content)** | Gives the Block no layout role. |
|
|
39
|
-
|
|
40
|
-
The category is fixed when you create the Block. You cannot change it later.
|
|
41
|
-
|
|
42
|
-
A **Content block** field holds the category of the Blocks that it accepts. Give that
|
|
43
|
-
field the **Section** category to build a page section list.
|
|
44
|
-
|
|
45
|
-
A field set to **Any category** accepts every Block in the workspace. This is the only
|
|
46
|
-
kind of field that can hold a Block with no category.
|
|
47
|
-
|
|
48
|
-
## Field types
|
|
49
|
-
|
|
50
|
-
A Block holds the same field types as a Model. See
|
|
51
|
-
[Field types](/reference/dashboard/content/models#field-types).
|
|
52
|
-
|
|
53
|
-
## Related
|
|
54
|
-
|
|
55
|
-
- [About the content model](/explanation/the-content-model) — why Blocks exist.
|
|
56
|
-
- [How to reuse a section](/how-to/reuse-a-section)
|
|
57
|
-
- [Models](/reference/dashboard/content/models)
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Content Entries
|
|
9
|
-
|
|
10
|
-
A content entry is one instance of a Model, filled with real data. A Page renders one entry, and a Flow Step can render one too.
|
|
11
|
-
|
|
12
|
-
<Screenshot
|
|
13
|
-
route="/{orgSlug}/{projectId}/workspaces/{workspaceId}/content"
|
|
14
|
-
alt="The content entries list on the Picked dashboard"
|
|
15
|
-
/>
|
|
16
|
-
|
|
17
|
-
## What a content entry is
|
|
18
|
-
|
|
19
|
-
A content entry is an instance of the schema of a
|
|
20
|
-
[Model](/reference/dashboard/content/models). The Model sets the fields, and the entry
|
|
21
|
-
holds the values. One Model backs many entries, and each entry holds its own data.
|
|
22
|
-
|
|
23
|
-
The Model of an entry is fixed when you create the entry.
|
|
24
|
-
|
|
25
|
-
## The entries list
|
|
26
|
-
|
|
27
|
-
**CMS** in the sidebar holds **Content entries**, with a count of every entry in the
|
|
28
|
-
workspace.
|
|
29
|
-
|
|
30
|
-
| Column | What it shows |
|
|
31
|
-
| --- | --- |
|
|
32
|
-
| Title | The value of the first single-line text field of the entry. It falls back to the entry id when no such field holds a value. |
|
|
33
|
-
| Model | The Model that the entry belongs to. |
|
|
34
|
-
| Entry ID | The stable id of the entry. |
|
|
35
|
-
| Last updated | When somebody last saved the entry. |
|
|
36
|
-
|
|
37
|
-
The **Model** filter narrows the list to one Model. The list has no search, because the
|
|
38
|
-
title is derived at read time and is not a column that Picked can search.
|
|
39
|
-
|
|
40
|
-
## How entries bind to pages and steps
|
|
41
|
-
|
|
42
|
-
A [Page](/reference/dashboard/content/pages) has a single Step, and that Step links to
|
|
43
|
-
its entry through the layout content link. A Flow [Step](/reference/dashboard/steps)
|
|
44
|
-
with a Step Layout binds an entry the same way. When the SDK renders the Page or the
|
|
45
|
-
Step, it resolves the linked entry and gives the data to your component.
|
|
46
|
-
|
|
47
|
-
## Edit entry data
|
|
48
|
-
|
|
49
|
-
The entry editor renders a form from the schema of the Model. There is one input for
|
|
50
|
-
each field, in the order that the schema sets. A repeatable field shows as a sortable
|
|
51
|
-
list. You can add to that list and put it into a new order. A group field holds its
|
|
52
|
-
inputs under one heading.
|
|
53
|
-
|
|
54
|
-
## Reference fields
|
|
55
|
-
|
|
56
|
-
A [Reference field](/reference/dashboard/content/models#reference-fields) holds a pointer
|
|
57
|
-
at another entry, and not a copy of it.
|
|
58
|
-
|
|
59
|
-
| Control | What it does |
|
|
60
|
-
| --- | --- |
|
|
61
|
-
| **Choose entry** | Opens the entry picker. |
|
|
62
|
-
| **Change entry** | Opens the entry picker on a field that holds a target already. |
|
|
63
|
-
| **Clear** | Removes the pointer. It does not delete the entry. |
|
|
64
|
-
|
|
65
|
-
The entry picker lists the entries that the **Target Model** of the field allows, and it
|
|
66
|
-
has a search box. **Open model** opens the Model of an entry in a new tab.
|
|
67
|
-
|
|
68
|
-
## Validation
|
|
69
|
-
|
|
70
|
-
Invalid data shows as an error on each field. The error carries a path in the JSON style,
|
|
71
|
-
and it points at the exact place in the entry, for example `sections[0].data.title`.
|
|
72
|
-
|
|
73
|
-
A reference field reports an error when its target does not exist, or when the target
|
|
74
|
-
belongs to the wrong Model. Fix every error before you publish, because Picked serves
|
|
75
|
-
valid content only.
|
|
76
|
-
|
|
77
|
-
## Delete rules
|
|
78
|
-
|
|
79
|
-
Picked does not delete an entry while something still points at it.
|
|
80
|
-
|
|
81
|
-
| Condition | Result |
|
|
82
|
-
| --- | --- |
|
|
83
|
-
| A Step uses the entry as its layout | The delete stops. |
|
|
84
|
-
| Another entry points at it through a Reference field | The delete stops. |
|
|
85
|
-
|
|
86
|
-
Clear the reference on the other entry first, then delete the target.
|
|
87
|
-
|
|
88
|
-
## Related
|
|
89
|
-
|
|
90
|
-
- [About the content model](/explanation/the-content-model) — why the schema and the data
|
|
91
|
-
are separate.
|
|
92
|
-
- [About content references](/explanation/content-references) — why a delete stops.
|
|
93
|
-
- [How to create a content entry](/how-to/create-a-content-entry)
|
|
94
|
-
- [How to point one entry at another](/how-to/point-one-entry-at-another)
|
|
95
|
-
- [Models](/reference/dashboard/content/models)
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Models
|
|
9
|
-
|
|
10
|
-
A Model is a reusable schema. It sets which fields a piece of content can hold, and it holds no data itself.
|
|
11
|
-
|
|
12
|
-
<Screenshot
|
|
13
|
-
route="/{orgSlug}/{projectId}/workspaces/{workspaceId}/models"
|
|
14
|
-
alt="The models list in the schema builder on the Picked dashboard"
|
|
15
|
-
/>
|
|
16
|
-
|
|
17
|
-
## Where a Model appears
|
|
18
|
-
|
|
19
|
-
**CMS** in the sidebar holds **Models**, and that list shows every Model in the
|
|
20
|
-
workspace. The list shows the **Key** below the name, because the key is the value that
|
|
21
|
-
a schema holds.
|
|
22
|
-
|
|
23
|
-
Two shortcuts open a filtered subset of the same list. **Flows** holds **Step Layouts**,
|
|
24
|
-
and **Pages** holds **Page Layouts**.
|
|
25
|
-
|
|
26
|
-
## Category
|
|
27
|
-
|
|
28
|
-
A category gives a Model a role. It decides where the Model appears, and what renders an
|
|
29
|
-
entry that comes from it.
|
|
30
|
-
|
|
31
|
-
| Category | It gives its shape to | What renders it |
|
|
32
|
-
| --- | --- | --- |
|
|
33
|
-
| **Page layout** | A standalone [Page](/reference/dashboard/content/pages). | The SDK renders the entry on your server. |
|
|
34
|
-
| **Step layout** | One [Step](/reference/dashboard/steps) inside a Flow. | The Step renders the entry in the browser. |
|
|
35
|
-
| **None (general content)** | Content with no layout role. | Nothing renders it directly. A [reference field](#reference-fields) reaches it. |
|
|
36
|
-
|
|
37
|
-
A Model with no category holds content that other content points at, such as a product
|
|
38
|
-
or a category. It appears under **CMS** only.
|
|
39
|
-
|
|
40
|
-
:::warning
|
|
41
|
-
The category is fixed when you create the Model. You cannot change it later.
|
|
42
|
-
:::
|
|
43
|
-
|
|
44
|
-
## Field types
|
|
45
|
-
|
|
46
|
-
A Model is built from fields. Each field has a type. The type decides the editor for the
|
|
47
|
-
field, and the shape of the value that the field holds.
|
|
48
|
-
|
|
49
|
-
| Type | Holds | Use it for |
|
|
50
|
-
| --- | --- | --- |
|
|
51
|
-
| **Single line text** | A short string. | A title, a label, or a short headline. |
|
|
52
|
-
| **Multi-line text** | A longer plain string. | A description, or a paragraph with no format marks. |
|
|
53
|
-
| **Markdown** | A Markdown string. | Body copy with format marks. |
|
|
54
|
-
| **Slug** | A URL-safe string. | A part of a path, or an identifier. |
|
|
55
|
-
| **Number** | A numeric value. | A price, a count, or a rating. |
|
|
56
|
-
| **Boolean** | A true or false value. | A toggle or a flag. |
|
|
57
|
-
| **Date** | A date value. | A publish date or a deadline. |
|
|
58
|
-
| **Color** | A color value. | A theme accent or a swatch. |
|
|
59
|
-
| **JSON** | Any JSON value. | Structured data with no editor of its own. |
|
|
60
|
-
| **Group** | An object of fields inside the Model. | A set of related fields, held together. |
|
|
61
|
-
| **Content block** | A [Block](/reference/dashboard/content/blocks) schema inside the Model. | A shared schema fragment that you reuse. |
|
|
62
|
-
| **Page Sections** | A repeatable Content block field, limited to the Section category. | The section list of a page. |
|
|
63
|
-
| **Reference** | A pointer at another [content entry](/reference/dashboard/content/content-entries). | A product that points at its category. |
|
|
64
|
-
| **Asset** | A link to an [Asset Library](/reference/dashboard/content/asset-library) item. | An image, a video, or a document. |
|
|
65
|
-
| **HTML** | A link to a `.html` file in your library. | HTML that you wrote before, held inside the content. |
|
|
66
|
-
|
|
67
|
-
## Reference fields
|
|
68
|
-
|
|
69
|
-
A **Reference** field points at another content entry. The entry that you point at keeps
|
|
70
|
-
its own data, and many fields can point at the same entry.
|
|
71
|
-
|
|
72
|
-
| Option | Values | What it does |
|
|
73
|
-
| --- | --- | --- |
|
|
74
|
-
| **Target Model** | A Model, or **Any Model** | Limits which entries an editor can choose. |
|
|
75
|
-
| **Repeatable** | On or off | On gives an ordered list of entries. Off gives one entry. |
|
|
76
|
-
|
|
77
|
-
**Target Model** holds the `key` of the Model, and not its id. A duplicate of the
|
|
78
|
-
workspace therefore keeps the constraint.
|
|
79
|
-
|
|
80
|
-
A reference stays inside one workspace. A field cannot point at an entry in another
|
|
81
|
-
workspace, and Picked reports such a target as unknown.
|
|
82
|
-
|
|
83
|
-
## Repeatable and grouped fields
|
|
84
|
-
|
|
85
|
-
You can make any field **repeatable**. It then shows as a sortable list of values, and
|
|
86
|
-
not as one value. Use it for a gallery, for a list of features, or for any collection.
|
|
87
|
-
|
|
88
|
-
A **Group** field holds a set of fields under one key, and it gives a structured object.
|
|
89
|
-
Make a group repeatable to describe a list of objects, such as a list of feature cards.
|
|
90
|
-
|
|
91
|
-
## Delete rules
|
|
92
|
-
|
|
93
|
-
Picked does not delete a Model while something still needs it.
|
|
94
|
-
|
|
95
|
-
| Condition | Result |
|
|
96
|
-
| --- | --- |
|
|
97
|
-
| Content entries still belong to the Model | The delete stops. |
|
|
98
|
-
| A Reference field still holds the Model as its **Target Model** | The delete stops. |
|
|
99
|
-
|
|
100
|
-
## Related
|
|
101
|
-
|
|
102
|
-
- [About the content model](/explanation/the-content-model) — why a schema change does not
|
|
103
|
-
migrate your data.
|
|
104
|
-
- [About content references](/explanation/content-references) — why a reference is a pointer.
|
|
105
|
-
- [How to define a page layout](/how-to/define-a-page-layout)
|
|
106
|
-
- [How to create a content entry](/how-to/create-a-content-entry)
|
|
107
|
-
- [How to point one entry at another](/how-to/point-one-entry-at-another)
|
|
108
|
-
- [Blocks](/reference/dashboard/content/blocks)
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Pages
|
|
9
|
-
|
|
10
|
-
A Page is a standalone, server-rendered experience backed by CMS content, built for SEO-critical landing pages.
|
|
11
|
-
|
|
12
|
-
<Screenshot
|
|
13
|
-
route="/{orgSlug}/{projectId}/workspaces/{workspaceId}/experiences"
|
|
14
|
-
alt="The experiences list, where Pages and Flows are created on the Picked dashboard"
|
|
15
|
-
/>
|
|
16
|
-
|
|
17
|
-
## Edit page content
|
|
18
|
-
|
|
19
|
-
The Page editor has two tabs. The **Properties** tab holds the content of the page.
|
|
20
|
-
The **Settings** tab holds its name, its condition, and its layout. Fill in the
|
|
21
|
-
fields on the **Properties** tab. The inspector on the right edits the field that you
|
|
22
|
-
choose, and the preview panel shows the page while it fills in.
|
|
23
|
-
|
|
24
|
-
## Status
|
|
25
|
-
|
|
26
|
-
The **Settings** tab has a status control. It has two values.
|
|
27
|
-
|
|
28
|
-
| Value | Effect |
|
|
29
|
-
| --- | --- |
|
|
30
|
-
| **Active** | Picked serves the page to everyone. |
|
|
31
|
-
| **Draft** | Picked keeps the page out of the published site. |
|
|
32
|
-
|
|
33
|
-
A draft page is absent from the published payload. Picked also holds back the
|
|
34
|
-
steps, fields and actions that only that page uses, and it does not serve the
|
|
35
|
-
page content. A visitor and a search-engine crawler receive nothing.
|
|
36
|
-
|
|
37
|
-
To see a draft page, open it with a preview link. See
|
|
38
|
-
[How to see a preview of a workspace](/how-to/preview-a-workspace). One preview
|
|
39
|
-
link opens every draft page in the workspace.
|
|
40
|
-
|
|
41
|
-
Status applies to Flows and to Pages. It is not the same as the status of the
|
|
42
|
-
workspace: a draft page can be in a live workspace.
|
|
43
|
-
|
|
44
|
-
:::warning
|
|
45
|
-
Status is part of the published version. Change the value, then publish the
|
|
46
|
-
workspace to apply the change to the live site.
|
|
47
|
-
:::
|
|
48
|
-
|
|
49
|
-
## Change or remove the layout
|
|
50
|
-
|
|
51
|
-
Use the change-layout control on the **Settings** tab to move the page to another
|
|
52
|
-
[Page Layout](/reference/dashboard/content/models#category). When you unlink a layout,
|
|
53
|
-
Picked separates the content entry from the page. It deletes no entry, but the page then
|
|
54
|
-
has no content to render until you attach a layout again.
|
|
55
|
-
|
|
56
|
-
## Related
|
|
57
|
-
|
|
58
|
-
- [About pages and flows](/explanation/pages-and-flows) — when to choose a Page.
|
|
59
|
-
- [How to fill and publish a page](/how-to/fill-and-publish-a-page)
|
|
60
|
-
- [How to server-render a page](/how-to/server-render-a-page)
|
|
61
|
-
- [Models](/reference/dashboard/content/models) — the schema behind a Page.
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Experiences
|
|
9
|
-
|
|
10
|
-
An experience is personalized content that Picked serves to the visitors on your
|
|
11
|
-
site. Each experience points at a component that you register in your application.
|
|
12
|
-
|
|
13
|
-
An experience is either a **Flow** or a **Page**. A **Flow** is an interactive
|
|
14
|
-
experience of more than one step, and the browser renders it. This page covers the
|
|
15
|
-
flow. A **Page** is a standalone experience that the server renders from CMS content,
|
|
16
|
-
for a landing page where the search rank matters. See [Pages](/reference/dashboard/content/pages) for
|
|
17
|
-
that kind.
|
|
18
|
-
|
|
19
|
-
<Screenshot
|
|
20
|
-
route="/{orgSlug}/{projectId}/workspaces/{workspaceId}/experiences"
|
|
21
|
-
alt="The experiences list for a workspace on the Picked dashboard"
|
|
22
|
-
/>
|
|
23
|
-
|
|
24
|
-
## Experience settings
|
|
25
|
-
|
|
26
|
-
Choose no node on the canvas, or click the canvas background, to open the experience
|
|
27
|
-
inspector in the right panel.
|
|
28
|
-
|
|
29
|
-
**Name**: The name that the dashboard shows. Your visitors do not see it.
|
|
30
|
-
|
|
31
|
-
**Component Name**: The identifier that points this experience at a component in your
|
|
32
|
-
application.
|
|
33
|
-
|
|
34
|
-
**Condition**: An optional condition. When you set it, the experience starts only for
|
|
35
|
-
a visitor who matches the condition. See
|
|
36
|
-
[Condition Builder](/reference/dashboard/flow-builder/condition-builder) for how to write one. Keep it
|
|
37
|
-
blank to start the experience for every visitor.
|
|
38
|
-
|
|
39
|
-
**Initialize Open**: An optional condition that controls whether the experience opens
|
|
40
|
-
by itself when the page loads. When it is blank, the experience loads but stays
|
|
41
|
-
closed until something opens it.
|
|
42
|
-
|
|
43
|
-
## Experience list
|
|
44
|
-
|
|
45
|
-
The experiences list shows every experience in the current project. Click an
|
|
46
|
-
experience to open it in the flow builder.
|
|
47
|
-
|
|
48
|
-
## Related
|
|
49
|
-
|
|
50
|
-
- [About pages and flows](/explanation/pages-and-flows) — Page or Flow.
|
|
51
|
-
- [How to create an experience](/how-to/create-an-experience)
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: reference
|
|
3
|
-
layout: docs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import { Screenshot } from '../../../../components/Screenshot'
|
|
7
|
-
|
|
8
|
-
# Feature flags
|
|
9
|
-
|
|
10
|
-
A feature flag lets you run an A/B test and roll a change out in stages. It controls
|
|
11
|
-
which visitors see a change to your site, and you deploy no code.
|
|
12
|
-
|
|
13
|
-
<Screenshot
|
|
14
|
-
route="/{orgSlug}/{projectId}/workspaces/{workspaceId}/features"
|
|
15
|
-
alt="The feature flags list for a workspace on the Picked dashboard"
|
|
16
|
-
/>
|
|
17
|
-
|
|
18
|
-
## Keys
|
|
19
|
-
|
|
20
|
-
Each feature flag has a unique key. Your application uses this key to check whether
|
|
21
|
-
Picked allocates a visitor to the feature flag. You set the key when you create the
|
|
22
|
-
feature flag, and you cannot change it later.
|
|
23
|
-
|
|
24
|
-
## Types
|
|
25
|
-
|
|
26
|
-
Each feature flag has a type. You set the type when you create the feature flag, and you
|
|
27
|
-
cannot change it later.
|
|
28
|
-
|
|
29
|
-
| Type | What your site receives | Groups |
|
|
30
|
-
| --- | --- | --- |
|
|
31
|
-
| **Boolean** | `true` or `false` | Two |
|
|
32
|
-
| **Text** | A string that you write, or `false` for the control group | Two or more |
|
|
33
|
-
|
|
34
|
-
Choose **Boolean** for one change against no change. Choose **Text** when you must test
|
|
35
|
-
several changes at the same time, and each change needs its own group.
|
|
36
|
-
|
|
37
|
-
## Set the allocation
|
|
38
|
-
|
|
39
|
-
Set the allocation from the detail page of the feature flag:
|
|
40
|
-
|
|
41
|
-
| Control | What it does |
|
|
42
|
-
| --- | --- |
|
|
43
|
-
| **Enabled** | Whether Picked allocates a visitor to the feature flag. A disabled feature flag allocates nobody, and it records nothing. See [Disable a feature flag](#disable-a-feature-flag). |
|
|
44
|
-
| **Weight** | The percentage of visitors that Picked allocates to a Boolean feature flag, from 0 to 100. |
|
|
45
|
-
| **Variants** | The groups of a Text feature flag, and the traffic that each one receives. See [Variants](#variants). |
|
|
46
|
-
| **Description** | An internal note about what the feature flag tests. |
|
|
47
|
-
|
|
48
|
-
A Boolean feature flag has one weight. For each visitor it gives one of two outcomes:
|
|
49
|
-
allocated, or not allocated. A weight of 30 allocates 30% of your visitors. The other
|
|
50
|
-
70% stay unallocated. A weight of 0 allocates nobody. A weight of 100 allocates
|
|
51
|
-
everybody.
|
|
52
|
-
|
|
53
|
-
## Variants
|
|
54
|
-
|
|
55
|
-
A Text feature flag has a table of variants. Each row is one group of visitors:
|
|
56
|
-
|
|
57
|
-
| Column | What it does |
|
|
58
|
-
| --- | --- |
|
|
59
|
-
| **Name** | A label for the variant. It appears in your reports. You can change it at any time. |
|
|
60
|
-
| **Value** | The string that your site receives for a visitor in this variant. |
|
|
61
|
-
| **Weight** | The share of traffic for this variant, against the other rows. |
|
|
62
|
-
|
|
63
|
-
The first row is **Control**. Picked always sends `false` to a visitor in the control
|
|
64
|
-
group, and you cannot remove the row, move it, or change its value. It takes a weight like
|
|
65
|
-
any other row.
|
|
66
|
-
|
|
67
|
-
The weights are shares, and not percentages. Picked reduces them to their smallest whole
|
|
68
|
-
numbers, so `10 : 10 : 20` and `1 : 1 : 2` are the same split. The percentage beside each
|
|
69
|
-
row shows the traffic that the variant receives.
|
|
70
|
-
|
|
71
|
-
Choose **Even split** to give every variant the same weight.
|
|
72
|
-
|
|
73
|
-
:::info
|
|
74
|
-
The order of the rows is the order that you read them in. It has no effect on the
|
|
75
|
-
allocation, so you can move a row and no visitor changes group.
|
|
76
|
-
:::
|
|
77
|
-
|
|
78
|
-
## How Picked allocates a visitor
|
|
79
|
-
|
|
80
|
-
The allocation is deterministic. It derives from the visitor ID and from the ID of the
|
|
81
|
-
feature flag. A Boolean feature flag then compares that value against the weight, and a
|
|
82
|
-
Text feature flag compares it against the range of each variant. Each feature flag gets its
|
|
83
|
-
own value, so tests that run at the same time are independent. See
|
|
84
|
-
[About feature flag allocation](/explanation/feature-flag-allocation).
|
|
85
|
-
|
|
86
|
-
## Disable a feature flag
|
|
87
|
-
|
|
88
|
-
A disabled feature flag allocates nobody, and it records nothing. The difference
|
|
89
|
-
from a weight of 0 matters for your reports. The visitor is **not in the test at
|
|
90
|
-
all**, and the visitor is not in the control group.
|
|
91
|
-
|
|
92
|
-
The SDK does not evaluate a disabled feature flag. It stores no decision in the
|
|
93
|
-
browser of the visitor, and it reports no decision to your analytics. Such a feature
|
|
94
|
-
flag is absent from the feature list on every analytics event.
|
|
95
|
-
|
|
96
|
-
An experience whose condition points at a disabled feature flag behaves as though
|
|
97
|
-
the visitor is not in the test. The condition reads as not allocated, and Picked
|
|
98
|
-
records no assignment.
|
|
99
|
-
|
|
100
|
-
This state is temporary, and it discards no decision that Picked made already. A
|
|
101
|
-
visitor who was allocated before keeps that decision in the browser. When you enable the
|
|
102
|
-
feature flag again, Picked continues from that decision, and the visitor stays in the
|
|
103
|
-
group they were already in.
|
|
104
|
-
|
|
105
|
-
:::note
|
|
106
|
-
Expect a step change in your reports when you disable a feature flag: fewer feature
|
|
107
|
-
flags for each visitor, and fewer decision events. That is the feature flag that drops
|
|
108
|
-
out, and you lose no data.
|
|
109
|
-
:::
|
|
110
|
-
|
|
111
|
-
A disabled feature flag stays visible in the developer tools, and a
|
|
112
|
-
[URL override](/reference/sdk/features#overrides-in-the-url) still turns one on for QA.
|
|
113
|
-
|
|
114
|
-
## Feature flag versions
|
|
115
|
-
|
|
116
|
-
Each feature flag has a version number, and it starts at 1. The SDK caches an
|
|
117
|
-
allocation decision in the browser of the visitor under a key, and the version is part
|
|
118
|
-
of that key. The version does nothing else, and it is not an input to the allocation
|
|
119
|
-
value. When you increment the version, the SDK discards those cached decisions. It
|
|
120
|
-
then evaluates every visitor again on the next page load.
|
|
121
|
-
|
|
122
|
-
### What happens when you increment the version
|
|
123
|
-
|
|
124
|
-
- **The SDK invalidates the cached decisions.** The cache key holds the version, so the
|
|
125
|
-
old entry no longer matches and the feature flag counts as undecided.
|
|
126
|
-
- **Picked evaluates each visitor against the current weight.** The allocation is
|
|
127
|
-
deterministic and the version is not one of its inputs, so the same visitor against
|
|
128
|
-
an unchanged weight gives the same result.
|
|
129
|
-
- **You cannot reverse this.** There is no way to decrement a version.
|
|
130
|
-
|
|
131
|
-
:::note
|
|
132
|
-
The new version does not move your visitors between groups. It clears the cached
|
|
133
|
-
decisions and runs the allocation again. With an unchanged weight, everybody lands
|
|
134
|
-
where they were before. Change the weight to move your visitors.
|
|
135
|
-
:::
|
|
136
|
-
|
|
137
|
-
### When to increment
|
|
138
|
-
|
|
139
|
-
Increment the version after you change the weight. Do this when you want Picked to
|
|
140
|
-
evaluate an allocated visitor again against the new weight, and not to use the cached
|
|
141
|
-
decision.
|
|
142
|
-
|
|
143
|
-
### When not to increment
|
|
144
|
-
|
|
145
|
-
To apply a weight change only to a visitor that Picked does not allocate yet, change
|
|
146
|
-
the weight and leave the version as it is. An allocated visitor keeps the current
|
|
147
|
-
allocation.
|
|
148
|
-
|
|
149
|
-
## Related
|
|
150
|
-
|
|
151
|
-
- [About feature flag allocation](/explanation/feature-flag-allocation)
|
|
152
|
-
- [How to run an A/B test](/how-to/run-an-ab-test)
|
|
153
|
-
- [How to read a feature flag](/how-to/read-a-feature-flag)
|
|
154
|
-
- [How to add a step, a field, an action, or a condition](/how-to/add-a-step-field-or-action)
|