@plumix/core 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cache/embedded-tags.d.ts +5 -0
- package/dist/cache/embedded-tags.d.ts.map +1 -0
- package/dist/cache/embedded-tags.js +30 -0
- package/dist/cache/embedded-tags.js.map +1 -0
- package/dist/entries/read-service.d.ts.map +1 -1
- package/dist/entries/read-service.js +5 -3
- package/dist/entries/read-service.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin/errors.d.ts +7 -1
- package/dist/plugin/errors.d.ts.map +1 -1
- package/dist/plugin/errors.js +5 -0
- package/dist/plugin/errors.js.map +1 -1
- package/dist/plugin/fields/builder.d.ts +106 -0
- package/dist/plugin/fields/builder.d.ts.map +1 -0
- package/dist/plugin/fields/builder.js +162 -0
- package/dist/plugin/fields/builder.js.map +1 -0
- package/dist/plugin/fields/color.d.ts +78 -18
- package/dist/plugin/fields/color.d.ts.map +1 -1
- package/dist/plugin/fields/color.js +116 -25
- package/dist/plugin/fields/color.js.map +1 -1
- package/dist/plugin/fields/condition.d.ts +40 -0
- package/dist/plugin/fields/condition.d.ts.map +1 -0
- package/dist/plugin/fields/condition.js +115 -0
- package/dist/plugin/fields/condition.js.map +1 -0
- package/dist/plugin/fields/contributions.d.ts +233 -0
- package/dist/plugin/fields/contributions.d.ts.map +1 -0
- package/dist/plugin/fields/contributions.js +1 -0
- package/dist/plugin/fields/contributions.js.map +1 -0
- package/dist/plugin/fields/entry.d.ts +18 -22
- package/dist/plugin/fields/entry.d.ts.map +1 -1
- package/dist/plugin/fields/entry.js +13 -21
- package/dist/plugin/fields/entry.js.map +1 -1
- package/dist/plugin/fields/errors.d.ts +23 -11
- package/dist/plugin/fields/errors.d.ts.map +1 -1
- package/dist/plugin/fields/errors.js +20 -13
- package/dist/plugin/fields/errors.js.map +1 -1
- package/dist/plugin/fields/group.d.ts +90 -0
- package/dist/plugin/fields/group.d.ts.map +1 -0
- package/dist/plugin/fields/group.js +124 -0
- package/dist/plugin/fields/group.js.map +1 -0
- package/dist/plugin/fields/index.d.ts +22 -45
- package/dist/plugin/fields/index.d.ts.map +1 -1
- package/dist/plugin/fields/index.js +25 -30
- package/dist/plugin/fields/index.js.map +1 -1
- package/dist/plugin/fields/json.d.ts +71 -9
- package/dist/plugin/fields/json.d.ts.map +1 -1
- package/dist/plugin/fields/json.js +110 -16
- package/dist/plugin/fields/json.js.map +1 -1
- package/dist/plugin/fields/link.d.ts +96 -0
- package/dist/plugin/fields/link.d.ts.map +1 -0
- package/dist/plugin/fields/link.js +160 -0
- package/dist/plugin/fields/link.js.map +1 -0
- package/dist/plugin/fields/number.d.ts +86 -13
- package/dist/plugin/fields/number.d.ts.map +1 -1
- package/dist/plugin/fields/number.js +133 -20
- package/dist/plugin/fields/number.js.map +1 -1
- package/dist/plugin/fields/range.d.ts +101 -17
- package/dist/plugin/fields/range.d.ts.map +1 -1
- package/dist/plugin/fields/range.js +153 -38
- package/dist/plugin/fields/range.js.map +1 -1
- package/dist/plugin/fields/reference.d.ts +171 -0
- package/dist/plugin/fields/reference.d.ts.map +1 -0
- package/dist/plugin/fields/reference.js +193 -0
- package/dist/plugin/fields/reference.js.map +1 -0
- package/dist/plugin/fields/repeater.d.ts +111 -8
- package/dist/plugin/fields/repeater.d.ts.map +1 -1
- package/dist/plugin/fields/repeater.js +157 -66
- package/dist/plugin/fields/repeater.js.map +1 -1
- package/dist/plugin/fields/richtext-validate.d.ts +7 -0
- package/dist/plugin/fields/richtext-validate.d.ts.map +1 -1
- package/dist/plugin/fields/richtext-validate.js +11 -5
- package/dist/plugin/fields/richtext-validate.js.map +1 -1
- package/dist/plugin/fields/richtext.d.ts +78 -12
- package/dist/plugin/fields/richtext.d.ts.map +1 -1
- package/dist/plugin/fields/richtext.js +121 -26
- package/dist/plugin/fields/richtext.js.map +1 -1
- package/dist/plugin/fields/select.d.ts +150 -10
- package/dist/plugin/fields/select.d.ts.map +1 -1
- package/dist/plugin/fields/select.js +205 -17
- package/dist/plugin/fields/select.js.map +1 -1
- package/dist/plugin/fields/sub-fields.d.ts +12 -0
- package/dist/plugin/fields/sub-fields.d.ts.map +1 -0
- package/dist/plugin/fields/sub-fields.js +62 -0
- package/dist/plugin/fields/sub-fields.js.map +1 -0
- package/dist/plugin/fields/temporal.d.ts +124 -0
- package/dist/plugin/fields/temporal.d.ts.map +1 -0
- package/dist/plugin/fields/temporal.js +180 -0
- package/dist/plugin/fields/temporal.js.map +1 -0
- package/dist/plugin/fields/term.d.ts +11 -16
- package/dist/plugin/fields/term.d.ts.map +1 -1
- package/dist/plugin/fields/term.js +11 -19
- package/dist/plugin/fields/term.js.map +1 -1
- package/dist/plugin/fields/toggle.d.ts +97 -0
- package/dist/plugin/fields/toggle.d.ts.map +1 -0
- package/dist/plugin/fields/toggle.js +135 -0
- package/dist/plugin/fields/toggle.js.map +1 -0
- package/dist/plugin/fields/user.d.ts +14 -26
- package/dist/plugin/fields/user.d.ts.map +1 -1
- package/dist/plugin/fields/user.js +11 -25
- package/dist/plugin/fields/user.js.map +1 -1
- package/dist/plugin/lookup.d.ts +70 -1
- package/dist/plugin/lookup.d.ts.map +1 -1
- package/dist/plugin/manifest.d.ts +308 -128
- package/dist/plugin/manifest.d.ts.map +1 -1
- package/dist/plugin/manifest.js +94 -4
- package/dist/plugin/manifest.js.map +1 -1
- package/dist/plugin/setup-context.d.ts +5 -4
- package/dist/plugin/setup-context.d.ts.map +1 -1
- package/dist/plugin/setup-context.js +10 -3
- package/dist/plugin/setup-context.js.map +1 -1
- package/dist/plugin/validation/meta-box-fields.d.ts.map +1 -1
- package/dist/plugin/validation/meta-box-fields.js +16 -0
- package/dist/plugin/validation/meta-box-fields.js.map +1 -1
- package/dist/route/render/build-resolved-entries.d.ts.map +1 -1
- package/dist/route/render/build-resolved-entries.js +7 -2
- package/dist/route/render/build-resolved-entries.js.map +1 -1
- package/dist/route/render/render-template.d.ts.map +1 -1
- package/dist/route/render/render-template.js +12 -2
- package/dist/route/render/render-template.js.map +1 -1
- package/dist/route/render/template-builders.d.ts +15 -10
- package/dist/route/render/template-builders.d.ts.map +1 -1
- package/dist/route/render/template-builders.js.map +1 -1
- package/dist/rpc/base.d.ts +7 -0
- package/dist/rpc/base.d.ts.map +1 -1
- package/dist/rpc/errors.d.ts +7 -0
- package/dist/rpc/errors.d.ts.map +1 -1
- package/dist/rpc/errors.js +16 -0
- package/dist/rpc/errors.js.map +1 -1
- package/dist/rpc/meta/core.d.ts +89 -10
- package/dist/rpc/meta/core.d.ts.map +1 -1
- package/dist/rpc/meta/core.js +465 -282
- package/dist/rpc/meta/core.js.map +1 -1
- package/dist/rpc/meta/field-messages.d.ts +67 -0
- package/dist/rpc/meta/field-messages.d.ts.map +1 -0
- package/dist/rpc/meta/field-messages.js +67 -0
- package/dist/rpc/meta/field-messages.js.map +1 -0
- package/dist/rpc/meta/field-pipeline.d.ts +52 -0
- package/dist/rpc/meta/field-pipeline.d.ts.map +1 -0
- package/dist/rpc/meta/field-pipeline.js +501 -0
- package/dist/rpc/meta/field-pipeline.js.map +1 -0
- package/dist/rpc/procedures/auth/allowed-domains/create.d.ts +7 -0
- package/dist/rpc/procedures/auth/allowed-domains/create.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/allowed-domains/delete.d.ts +7 -0
- package/dist/rpc/procedures/auth/allowed-domains/delete.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/allowed-domains/index.d.ts +28 -0
- package/dist/rpc/procedures/auth/allowed-domains/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/allowed-domains/list.d.ts +7 -0
- package/dist/rpc/procedures/auth/allowed-domains/list.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/allowed-domains/update.d.ts +7 -0
- package/dist/rpc/procedures/auth/allowed-domains/update.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/api-tokens/admin-list.d.ts +7 -0
- package/dist/rpc/procedures/auth/api-tokens/admin-list.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/api-tokens/admin-revoke.d.ts +7 -0
- package/dist/rpc/procedures/auth/api-tokens/admin-revoke.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/api-tokens/create.d.ts +7 -0
- package/dist/rpc/procedures/auth/api-tokens/create.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/api-tokens/index.d.ts +35 -0
- package/dist/rpc/procedures/auth/api-tokens/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/api-tokens/list.d.ts +7 -0
- package/dist/rpc/procedures/auth/api-tokens/list.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/api-tokens/revoke.d.ts +7 -0
- package/dist/rpc/procedures/auth/api-tokens/revoke.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/credentials/delete.d.ts +7 -0
- package/dist/rpc/procedures/auth/credentials/delete.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/credentials/index.d.ts +21 -0
- package/dist/rpc/procedures/auth/credentials/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/credentials/list.d.ts +7 -0
- package/dist/rpc/procedures/auth/credentials/list.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/credentials/rename.d.ts +7 -0
- package/dist/rpc/procedures/auth/credentials/rename.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/device-flow/approve.d.ts +7 -0
- package/dist/rpc/procedures/auth/device-flow/approve.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/device-flow/deny.d.ts +7 -0
- package/dist/rpc/procedures/auth/device-flow/deny.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/device-flow/index.d.ts +21 -0
- package/dist/rpc/procedures/auth/device-flow/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/device-flow/lookup.d.ts +7 -0
- package/dist/rpc/procedures/auth/device-flow/lookup.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/index.d.ts +154 -0
- package/dist/rpc/procedures/auth/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/login-links.d.ts +7 -0
- package/dist/rpc/procedures/auth/login-links.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/mailer/index.d.ts +7 -0
- package/dist/rpc/procedures/auth/mailer/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/mailer/test-send.d.ts +7 -0
- package/dist/rpc/procedures/auth/mailer/test-send.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/oauth-providers.d.ts +7 -0
- package/dist/rpc/procedures/auth/oauth-providers.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/session.d.ts +7 -0
- package/dist/rpc/procedures/auth/session.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/sessions/index.d.ts +21 -0
- package/dist/rpc/procedures/auth/sessions/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/sessions/list.d.ts +7 -0
- package/dist/rpc/procedures/auth/sessions/list.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/sessions/revoke-others.d.ts +7 -0
- package/dist/rpc/procedures/auth/sessions/revoke-others.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/sessions/revoke.d.ts +7 -0
- package/dist/rpc/procedures/auth/sessions/revoke.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/activity.d.ts +7 -0
- package/dist/rpc/procedures/entry/activity.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/bulk.d.ts +21 -0
- package/dist/rpc/procedures/entry/bulk.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/create-preview-link.d.ts +7 -0
- package/dist/rpc/procedures/entry/create-preview-link.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/create.d.ts +8 -1
- package/dist/rpc/procedures/entry/create.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/create.js +8 -8
- package/dist/rpc/procedures/entry/create.js.map +1 -1
- package/dist/rpc/procedures/entry/dashboard.d.ts +14 -0
- package/dist/rpc/procedures/entry/dashboard.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/delete-permanent.d.ts +7 -0
- package/dist/rpc/procedures/entry/delete-permanent.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/discard-draft.d.ts +7 -0
- package/dist/rpc/procedures/entry/discard-draft.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/duplicate.d.ts +7 -0
- package/dist/rpc/procedures/entry/duplicate.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/duplicate.js +2 -2
- package/dist/rpc/procedures/entry/duplicate.js.map +1 -1
- package/dist/rpc/procedures/entry/get.d.ts +7 -0
- package/dist/rpc/procedures/entry/get.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/get.js +2 -2
- package/dist/rpc/procedures/entry/get.js.map +1 -1
- package/dist/rpc/procedures/entry/index.d.ts +156 -2
- package/dist/rpc/procedures/entry/index.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/list.d.ts +7 -0
- package/dist/rpc/procedures/entry/list.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/lookup.d.ts +8 -2
- package/dist/rpc/procedures/entry/lookup.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/lookup.js +60 -1
- package/dist/rpc/procedures/entry/lookup.js.map +1 -1
- package/dist/rpc/procedures/entry/meta.d.ts +37 -3
- package/dist/rpc/procedures/entry/meta.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/meta.js +63 -7
- package/dist/rpc/procedures/entry/meta.js.map +1 -1
- package/dist/rpc/procedures/entry/publish.d.ts +7 -0
- package/dist/rpc/procedures/entry/publish.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/publish.js +6 -4
- package/dist/rpc/procedures/entry/publish.js.map +1 -1
- package/dist/rpc/procedures/entry/refresh-block-loader.d.ts +7 -0
- package/dist/rpc/procedures/entry/refresh-block-loader.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/restore.d.ts +7 -0
- package/dist/rpc/procedures/entry/restore.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/revisions.d.ts +56 -0
- package/dist/rpc/procedures/entry/revisions.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/schemas.d.ts +2 -2
- package/dist/rpc/procedures/entry/schemas.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/schemas.js +9 -2
- package/dist/rpc/procedures/entry/schemas.js.map +1 -1
- package/dist/rpc/procedures/entry/trash.d.ts +7 -0
- package/dist/rpc/procedures/entry/trash.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/update.d.ts +8 -1
- package/dist/rpc/procedures/entry/update.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/update.js +77 -18
- package/dist/rpc/procedures/entry/update.js.map +1 -1
- package/dist/rpc/procedures/lookup/index.d.ts +14 -0
- package/dist/rpc/procedures/lookup/index.d.ts.map +1 -1
- package/dist/rpc/procedures/lookup/list.d.ts +7 -0
- package/dist/rpc/procedures/lookup/list.d.ts.map +1 -1
- package/dist/rpc/procedures/lookup/resolve.d.ts +7 -0
- package/dist/rpc/procedures/lookup/resolve.d.ts.map +1 -1
- package/dist/rpc/procedures/lookup/resolve.js +1 -1
- package/dist/rpc/procedures/lookup/resolve.js.map +1 -1
- package/dist/rpc/procedures/search/index.d.ts +7 -0
- package/dist/rpc/procedures/search/index.d.ts.map +1 -1
- package/dist/rpc/procedures/settings/get.d.ts +7 -0
- package/dist/rpc/procedures/settings/get.d.ts.map +1 -1
- package/dist/rpc/procedures/settings/index.d.ts +14 -0
- package/dist/rpc/procedures/settings/index.d.ts.map +1 -1
- package/dist/rpc/procedures/settings/upsert.d.ts +7 -0
- package/dist/rpc/procedures/settings/upsert.d.ts.map +1 -1
- package/dist/rpc/procedures/settings/upsert.js +9 -0
- package/dist/rpc/procedures/settings/upsert.js.map +1 -1
- package/dist/rpc/procedures/term/create.d.ts +7 -0
- package/dist/rpc/procedures/term/create.d.ts.map +1 -1
- package/dist/rpc/procedures/term/create.js +3 -3
- package/dist/rpc/procedures/term/create.js.map +1 -1
- package/dist/rpc/procedures/term/delete.d.ts +7 -0
- package/dist/rpc/procedures/term/delete.d.ts.map +1 -1
- package/dist/rpc/procedures/term/get.d.ts +7 -0
- package/dist/rpc/procedures/term/get.d.ts.map +1 -1
- package/dist/rpc/procedures/term/index.d.ts +35 -0
- package/dist/rpc/procedures/term/index.d.ts.map +1 -1
- package/dist/rpc/procedures/term/list.d.ts +7 -0
- package/dist/rpc/procedures/term/list.d.ts.map +1 -1
- package/dist/rpc/procedures/term/lookup.d.ts +7 -2
- package/dist/rpc/procedures/term/lookup.d.ts.map +1 -1
- package/dist/rpc/procedures/term/lookup.js +26 -0
- package/dist/rpc/procedures/term/lookup.js.map +1 -1
- package/dist/rpc/procedures/term/meta.d.ts +3 -2
- package/dist/rpc/procedures/term/meta.d.ts.map +1 -1
- package/dist/rpc/procedures/term/meta.js +7 -5
- package/dist/rpc/procedures/term/meta.js.map +1 -1
- package/dist/rpc/procedures/term/update.d.ts +7 -0
- package/dist/rpc/procedures/term/update.d.ts.map +1 -1
- package/dist/rpc/procedures/term/update.js +4 -4
- package/dist/rpc/procedures/term/update.js.map +1 -1
- package/dist/rpc/procedures/user/cancel-email-change.d.ts +7 -0
- package/dist/rpc/procedures/user/cancel-email-change.d.ts.map +1 -1
- package/dist/rpc/procedures/user/delete.d.ts +7 -0
- package/dist/rpc/procedures/user/delete.d.ts.map +1 -1
- package/dist/rpc/procedures/user/disable.d.ts +7 -0
- package/dist/rpc/procedures/user/disable.d.ts.map +1 -1
- package/dist/rpc/procedures/user/enable.d.ts +7 -0
- package/dist/rpc/procedures/user/enable.d.ts.map +1 -1
- package/dist/rpc/procedures/user/get.d.ts +7 -0
- package/dist/rpc/procedures/user/get.d.ts.map +1 -1
- package/dist/rpc/procedures/user/get.js +2 -2
- package/dist/rpc/procedures/user/get.js.map +1 -1
- package/dist/rpc/procedures/user/index.d.ts +77 -0
- package/dist/rpc/procedures/user/index.d.ts.map +1 -1
- package/dist/rpc/procedures/user/invite.d.ts +7 -0
- package/dist/rpc/procedures/user/invite.d.ts.map +1 -1
- package/dist/rpc/procedures/user/list.d.ts +7 -0
- package/dist/rpc/procedures/user/list.d.ts.map +1 -1
- package/dist/rpc/procedures/user/lookup.d.ts +6 -2
- package/dist/rpc/procedures/user/lookup.d.ts.map +1 -1
- package/dist/rpc/procedures/user/lookup.js +29 -0
- package/dist/rpc/procedures/user/lookup.js.map +1 -1
- package/dist/rpc/procedures/user/meta.d.ts +3 -2
- package/dist/rpc/procedures/user/meta.d.ts.map +1 -1
- package/dist/rpc/procedures/user/meta.js +7 -5
- package/dist/rpc/procedures/user/meta.js.map +1 -1
- package/dist/rpc/procedures/user/pending-email-change.d.ts +7 -0
- package/dist/rpc/procedures/user/pending-email-change.d.ts.map +1 -1
- package/dist/rpc/procedures/user/request-email-change.d.ts +7 -0
- package/dist/rpc/procedures/user/request-email-change.d.ts.map +1 -1
- package/dist/rpc/procedures/user/set-locale.d.ts +7 -0
- package/dist/rpc/procedures/user/set-locale.d.ts.map +1 -1
- package/dist/rpc/procedures/user/update.d.ts +7 -0
- package/dist/rpc/procedures/user/update.d.ts.map +1 -1
- package/dist/rpc/procedures/user/update.js +4 -4
- package/dist/rpc/procedures/user/update.js.map +1 -1
- package/dist/rpc/router.d.ts +457 -2
- package/dist/rpc/router.d.ts.map +1 -1
- package/dist/rpc/validation.d.ts +1 -0
- package/dist/rpc/validation.d.ts.map +1 -1
- package/dist/rpc/validation.js +1 -0
- package/dist/rpc/validation.js.map +1 -1
- package/dist/runtime/dispatcher.d.ts.map +1 -1
- package/dist/runtime/dispatcher.js +20 -10
- package/dist/runtime/dispatcher.js.map +1 -1
- package/dist/seo/feed.d.ts.map +1 -1
- package/dist/seo/feed.js +7 -1
- package/dist/seo/feed.js.map +1 -1
- package/dist/settings-core.js +1 -1
- package/dist/settings-core.js.map +1 -1
- package/dist/template-registry.d.ts +0 -16
- package/dist/template-registry.d.ts.map +1 -1
- package/dist/terms/read-service.js +2 -2
- package/dist/terms/read-service.js.map +1 -1
- package/dist/test/traced-context.d.ts +1 -1
- package/dist/test/traced-context.d.ts.map +1 -1
- package/dist/test/traced-context.js +2 -2
- package/dist/test/traced-context.js.map +1 -1
- package/package.json +2 -2
- package/dist/plugin/fields/checkbox.d.ts +0 -19
- package/dist/plugin/fields/checkbox.d.ts.map +0 -1
- package/dist/plugin/fields/checkbox.js +0 -20
- package/dist/plugin/fields/checkbox.js.map +0 -1
- package/dist/plugin/fields/date.d.ts +0 -24
- package/dist/plugin/fields/date.d.ts.map +0 -1
- package/dist/plugin/fields/date.js +0 -23
- package/dist/plugin/fields/date.js.map +0 -1
- package/dist/plugin/fields/datetime.d.ts +0 -26
- package/dist/plugin/fields/datetime.d.ts.map +0 -1
- package/dist/plugin/fields/datetime.js +0 -25
- package/dist/plugin/fields/datetime.js.map +0 -1
- package/dist/plugin/fields/email.d.ts +0 -17
- package/dist/plugin/fields/email.d.ts.map +0 -1
- package/dist/plugin/fields/email.js +0 -18
- package/dist/plugin/fields/email.js.map +0 -1
- package/dist/plugin/fields/entry-list.d.ts +0 -28
- package/dist/plugin/fields/entry-list.d.ts.map +0 -1
- package/dist/plugin/fields/entry-list.js +0 -31
- package/dist/plugin/fields/entry-list.js.map +0 -1
- package/dist/plugin/fields/multiselect.d.ts +0 -21
- package/dist/plugin/fields/multiselect.d.ts.map +0 -1
- package/dist/plugin/fields/multiselect.js +0 -43
- package/dist/plugin/fields/multiselect.js.map +0 -1
- package/dist/plugin/fields/password.d.ts +0 -24
- package/dist/plugin/fields/password.d.ts.map +0 -1
- package/dist/plugin/fields/password.js +0 -25
- package/dist/plugin/fields/password.js.map +0 -1
- package/dist/plugin/fields/radio.d.ts +0 -16
- package/dist/plugin/fields/radio.d.ts.map +0 -1
- package/dist/plugin/fields/radio.js +0 -17
- package/dist/plugin/fields/radio.js.map +0 -1
- package/dist/plugin/fields/repeater-validate.d.ts +0 -34
- package/dist/plugin/fields/repeater-validate.d.ts.map +0 -1
- package/dist/plugin/fields/repeater-validate.js +0 -104
- package/dist/plugin/fields/repeater-validate.js.map +0 -1
- package/dist/plugin/fields/term-list.d.ts +0 -27
- package/dist/plugin/fields/term-list.d.ts.map +0 -1
- package/dist/plugin/fields/term-list.js +0 -30
- package/dist/plugin/fields/term-list.js.map +0 -1
- package/dist/plugin/fields/text.d.ts +0 -37
- package/dist/plugin/fields/text.d.ts.map +0 -1
- package/dist/plugin/fields/text.js +0 -31
- package/dist/plugin/fields/text.js.map +0 -1
- package/dist/plugin/fields/textarea.d.ts +0 -20
- package/dist/plugin/fields/textarea.d.ts.map +0 -1
- package/dist/plugin/fields/textarea.js +0 -21
- package/dist/plugin/fields/textarea.js.map +0 -1
- package/dist/plugin/fields/time.d.ts +0 -24
- package/dist/plugin/fields/time.d.ts.map +0 -1
- package/dist/plugin/fields/time.js +0 -23
- package/dist/plugin/fields/time.js.map +0 -1
- package/dist/plugin/fields/url.d.ts +0 -17
- package/dist/plugin/fields/url.d.ts.map +0 -1
- package/dist/plugin/fields/url.js +0 -18
- package/dist/plugin/fields/url.js.map +0 -1
- package/dist/plugin/fields/user-list.d.ts +0 -29
- package/dist/plugin/fields/user-list.d.ts.map +0 -1
- package/dist/plugin/fields/user-list.js +0 -31
- package/dist/plugin/fields/user-list.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/link.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { humanizeFieldKey } from "./builder.js";
|
|
3
|
+
import { SAFE_HREF_RE } from "./richtext-validate.js";
|
|
4
|
+
/**
|
|
5
|
+
* Fluent chain for the `link` field — see `StringFieldBuilder` for the
|
|
6
|
+
* chassis conventions (immutability, phantom `K`/`V`/`S`, `build()`
|
|
7
|
+
* seam). `V` is `LinkValue | undefined` unadorned, narrowed to
|
|
8
|
+
* `LinkValue` by `.required()` / `.default()`; `S` is the stored shape,
|
|
9
|
+
* narrowed by `.required()` only (defaults apply at decode time).
|
|
10
|
+
*/
|
|
11
|
+
export class LinkFieldBuilder {
|
|
12
|
+
#key;
|
|
13
|
+
#state;
|
|
14
|
+
constructor(key, state = {}) {
|
|
15
|
+
this.#key = key;
|
|
16
|
+
this.#state = state;
|
|
17
|
+
}
|
|
18
|
+
#fork(patch) {
|
|
19
|
+
return new _a(this.#key, {
|
|
20
|
+
...this.#state,
|
|
21
|
+
...patch,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/** Override the derived (humanized-key) label. */
|
|
25
|
+
label(label) {
|
|
26
|
+
return this.#fork({ label });
|
|
27
|
+
}
|
|
28
|
+
/** Help text rendered under the label. */
|
|
29
|
+
description(description) {
|
|
30
|
+
return this.#fork({ description });
|
|
31
|
+
}
|
|
32
|
+
/** Placeholder for the control's URL input. */
|
|
33
|
+
placeholder(placeholder) {
|
|
34
|
+
return this.#fork({ placeholder });
|
|
35
|
+
}
|
|
36
|
+
/** Static adornment rendered before the input. */
|
|
37
|
+
prepend(prepend) {
|
|
38
|
+
return this.#fork({ prepend });
|
|
39
|
+
}
|
|
40
|
+
/** Static adornment rendered after the input. */
|
|
41
|
+
append(append) {
|
|
42
|
+
return this.#fork({ append });
|
|
43
|
+
}
|
|
44
|
+
/** Default for absent keys, applied at read decode (and seeded into
|
|
45
|
+
* the admin form) — narrows the read type to `LinkValue`; the stored
|
|
46
|
+
* shape stays optional. */
|
|
47
|
+
default(value) {
|
|
48
|
+
return this.#fork({ default: value });
|
|
49
|
+
}
|
|
50
|
+
/** Mark the field required — narrows the read and stored types to `LinkValue`. */
|
|
51
|
+
required() {
|
|
52
|
+
return this.#fork({ required: true });
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Column span within the box's 12-column grid — a universal layout
|
|
56
|
+
* hint; surfaces that can't honor it (the entry editor rail) ignore it.
|
|
57
|
+
*/
|
|
58
|
+
span(span) {
|
|
59
|
+
return this.#fork({ span });
|
|
60
|
+
}
|
|
61
|
+
/** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
|
|
62
|
+
capability(capability) {
|
|
63
|
+
return this.#fork({ capability });
|
|
64
|
+
}
|
|
65
|
+
/** Opt this field's value into public REST responses (default-deny). */
|
|
66
|
+
showInApi() {
|
|
67
|
+
return this.#fork({ showInApi: true });
|
|
68
|
+
}
|
|
69
|
+
/** Rule factory: this field's value equals `value` — pass the rule
|
|
70
|
+
* to a dependent field's `.visibleWhen()`. */
|
|
71
|
+
is(value) {
|
|
72
|
+
return { key: this.#key, op: "eq", value };
|
|
73
|
+
}
|
|
74
|
+
/** Rule factory: this field's value differs from `value`. */
|
|
75
|
+
isNot(value) {
|
|
76
|
+
return { key: this.#key, op: "neq", value };
|
|
77
|
+
}
|
|
78
|
+
/** Rule factory: this field has no value (unset or cleared). */
|
|
79
|
+
isEmpty() {
|
|
80
|
+
return { key: this.#key, op: "empty" };
|
|
81
|
+
}
|
|
82
|
+
/** Rule factory: this field has a value. */
|
|
83
|
+
isNotEmpty() {
|
|
84
|
+
return { key: this.#key, op: "not_empty" };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Show this field only when every rule passes (one AND group) —
|
|
88
|
+
* rules come from sibling fields' condition factories. Replaces any
|
|
89
|
+
* previously declared condition; `.orVisibleWhen()` adds
|
|
90
|
+
* alternatives.
|
|
91
|
+
*/
|
|
92
|
+
visibleWhen(...rules) {
|
|
93
|
+
return this.#fork({ visibleWhen: [rules] });
|
|
94
|
+
}
|
|
95
|
+
/** Add an OR alternative — one more AND group of rules. */
|
|
96
|
+
orVisibleWhen(...rules) {
|
|
97
|
+
return this.#fork({
|
|
98
|
+
visibleWhen: [...(this.#state.visibleWhen ?? []), rules],
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Normalising transform, applied after the built-in shape/URL
|
|
103
|
+
* validation and before persistence.
|
|
104
|
+
*/
|
|
105
|
+
sanitize(sanitize) {
|
|
106
|
+
return this.#fork({ sanitize: sanitize });
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Custom validation — `true` for valid, or an i18n-able failure
|
|
110
|
+
* message (sync or async). Runs after `.sanitize()` and the
|
|
111
|
+
* declarative constraints.
|
|
112
|
+
*/
|
|
113
|
+
validate(validate) {
|
|
114
|
+
return this.#fork({ validate: validate });
|
|
115
|
+
}
|
|
116
|
+
/** Compile the chain into the wire/manifest field definition. */
|
|
117
|
+
build() {
|
|
118
|
+
return {
|
|
119
|
+
...this.#state,
|
|
120
|
+
key: this.#key,
|
|
121
|
+
label: this.#state.label ?? humanizeFieldKey(this.#key),
|
|
122
|
+
type: "json",
|
|
123
|
+
inputType: "link",
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
_a = LinkFieldBuilder;
|
|
128
|
+
/** CTA-style link field — internal entry URL or external URL, optional
|
|
129
|
+
* label + new-tab. Shape and URL are enforced server-side by the
|
|
130
|
+
* constraint walker. */
|
|
131
|
+
export function link(key) {
|
|
132
|
+
return new LinkFieldBuilder(key);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Parse an incoming link value into its canonical `LinkValue` shape, or
|
|
136
|
+
* `null` when malformed. Rebuilds from the known keys so unrecognized
|
|
137
|
+
* properties never persist. The URL gate is `SAFE_HREF_RE` (shared with
|
|
138
|
+
* richtext link marks): relative forms (`/pricing` — what the admin's
|
|
139
|
+
* entry picker stores — plus `#`, `?`, `./`) and `https?` / `mailto:` /
|
|
140
|
+
* `tel:` absolutes. Script-bearing schemes (`javascript:`, `data:`)
|
|
141
|
+
* hard-fail — the value is destined for rendered anchor hrefs.
|
|
142
|
+
*/
|
|
143
|
+
export function parseLinkValue(value) {
|
|
144
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
const { url, label, newTab } = value;
|
|
148
|
+
if (typeof url !== "string" || !SAFE_HREF_RE.test(url))
|
|
149
|
+
return null;
|
|
150
|
+
if (label !== undefined && typeof label !== "string")
|
|
151
|
+
return null;
|
|
152
|
+
if (newTab !== undefined && typeof newTab !== "boolean")
|
|
153
|
+
return null;
|
|
154
|
+
return {
|
|
155
|
+
url,
|
|
156
|
+
...(label !== undefined ? { label } : {}),
|
|
157
|
+
...(newTab !== undefined ? { newTab } : {}),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/plugin/fields/link.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,96 @@
|
|
|
1
1
|
import type { Label } from "../../i18n/label.js";
|
|
2
|
-
import type { MetaBoxFieldSpan, NumberMetaBoxField } from "../manifest.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
readonly
|
|
6
|
-
readonly
|
|
7
|
-
readonly min?: number;
|
|
8
|
-
readonly max?: number;
|
|
9
|
-
readonly step?: number;
|
|
10
|
-
readonly required?: boolean;
|
|
2
|
+
import type { FieldBuilder, MetaBoxFieldSpan, MetaBoxFieldValidate, NumberMetaBoxField } from "../manifest.js";
|
|
3
|
+
import type { MetaFieldCondition, MetaFieldConditionRule } from "./condition.js";
|
|
4
|
+
interface NumberFieldState {
|
|
5
|
+
readonly visibleWhen?: MetaFieldCondition;
|
|
6
|
+
readonly label?: Label;
|
|
11
7
|
readonly description?: Label;
|
|
8
|
+
readonly placeholder?: Label;
|
|
12
9
|
readonly default?: number;
|
|
10
|
+
readonly required?: true;
|
|
13
11
|
readonly span?: MetaBoxFieldSpan;
|
|
14
12
|
readonly capability?: string;
|
|
13
|
+
readonly showInApi?: true;
|
|
14
|
+
readonly min?: number;
|
|
15
|
+
readonly max?: number;
|
|
16
|
+
readonly step?: number;
|
|
15
17
|
readonly sanitize?: (value: unknown) => unknown;
|
|
18
|
+
readonly validate?: MetaBoxFieldValidate;
|
|
16
19
|
}
|
|
17
20
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* `
|
|
21
|
+
* Fluent chain for the `number` field. Mirrors `StringFieldBuilder` —
|
|
22
|
+
* immutable, phantom-typed (`K` literal key, `V` read type, `S`
|
|
23
|
+
* stored shape). `step` defaults to `1` (integer input) at the
|
|
24
|
+
* renderer when omitted; the definition stays minimal.
|
|
21
25
|
*/
|
|
22
|
-
export declare
|
|
26
|
+
export declare class NumberFieldBuilder<K extends string = string, V extends number | undefined = number | undefined, S extends number | undefined = number | undefined> implements FieldBuilder<NumberMetaBoxField> {
|
|
27
|
+
#private;
|
|
28
|
+
/** Phantom literal key of the field — type-level only, never assigned. */
|
|
29
|
+
readonly _key: K;
|
|
30
|
+
/** Phantom read type of the field — type-level only, never assigned. */
|
|
31
|
+
readonly _value: V;
|
|
32
|
+
/** Phantom stored shape of the field — type-level only, never assigned. */
|
|
33
|
+
readonly _stored: S;
|
|
34
|
+
constructor(key: string, state?: NumberFieldState);
|
|
35
|
+
/** Override the derived (humanized-key) label. */
|
|
36
|
+
label(label: Label): NumberFieldBuilder<K, V, S>;
|
|
37
|
+
/** Help text rendered under the label. */
|
|
38
|
+
description(description: Label): NumberFieldBuilder<K, V, S>;
|
|
39
|
+
placeholder(placeholder: Label): NumberFieldBuilder<K, V, S>;
|
|
40
|
+
/** Default for absent keys, applied at read decode (and seeded into
|
|
41
|
+
* the admin form) — narrows the read type to `number`; the stored
|
|
42
|
+
* shape stays optional. */
|
|
43
|
+
default(value: number): NumberFieldBuilder<K, number, S>;
|
|
44
|
+
/** Mark the field required — narrows the read and stored types to `number`. */
|
|
45
|
+
required(): NumberFieldBuilder<K, number, number>;
|
|
46
|
+
/**
|
|
47
|
+
* Column span within the box's 12-column grid — a universal layout
|
|
48
|
+
* hint; surfaces that can't honor it (the entry editor rail) ignore it.
|
|
49
|
+
*/
|
|
50
|
+
span(span: MetaBoxFieldSpan): NumberFieldBuilder<K, V, S>;
|
|
51
|
+
/** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
|
|
52
|
+
capability(capability: string): NumberFieldBuilder<K, V, S>;
|
|
53
|
+
/** Opt this field's value into public REST responses (default-deny). */
|
|
54
|
+
showInApi(): NumberFieldBuilder<K, V, S>;
|
|
55
|
+
/** Rule factory: this field's value equals `value` — pass the rule
|
|
56
|
+
* to a dependent field's `.visibleWhen()`. */
|
|
57
|
+
is(value: number): MetaFieldConditionRule;
|
|
58
|
+
/** Rule factory: this field's value differs from `value`. */
|
|
59
|
+
isNot(value: number): MetaFieldConditionRule;
|
|
60
|
+
/** Rule factory: this field has no value (unset or cleared). */
|
|
61
|
+
isEmpty(): MetaFieldConditionRule;
|
|
62
|
+
/** Rule factory: this field has a value. */
|
|
63
|
+
isNotEmpty(): MetaFieldConditionRule;
|
|
64
|
+
/** Rule factory: this field's value is greater than `value`. */
|
|
65
|
+
gt(value: number): MetaFieldConditionRule;
|
|
66
|
+
/** Rule factory: this field's value is less than `value`. */
|
|
67
|
+
lt(value: number): MetaFieldConditionRule;
|
|
68
|
+
/**
|
|
69
|
+
* Show this field only when every rule passes (one AND group) —
|
|
70
|
+
* rules come from sibling fields' condition factories. Replaces any
|
|
71
|
+
* previously declared condition; `.orVisibleWhen()` adds
|
|
72
|
+
* alternatives.
|
|
73
|
+
*/
|
|
74
|
+
visibleWhen(...rules: MetaFieldConditionRule[]): NumberFieldBuilder<K, V, S>;
|
|
75
|
+
/** Add an OR alternative — one more AND group of rules. */
|
|
76
|
+
orVisibleWhen(...rules: MetaFieldConditionRule[]): NumberFieldBuilder<K, V, S>;
|
|
77
|
+
/** Lower bound, enforced client-side by the native number input. */
|
|
78
|
+
min(min: number): NumberFieldBuilder<K, V, S>;
|
|
79
|
+
/** Upper bound, enforced client-side by the native number input. */
|
|
80
|
+
max(max: number): NumberFieldBuilder<K, V, S>;
|
|
81
|
+
step(step: number): NumberFieldBuilder<K, V, S>;
|
|
82
|
+
/** Normalising transform, applied after coercion and before persistence. */
|
|
83
|
+
sanitize(sanitize: (value: NonNullable<V>) => NonNullable<V>): NumberFieldBuilder<K, V, S>;
|
|
84
|
+
/**
|
|
85
|
+
* Custom validation — `true` for valid, or an i18n-able failure
|
|
86
|
+
* message (sync or async). Runs after `.sanitize()` and the
|
|
87
|
+
* declarative constraints.
|
|
88
|
+
*/
|
|
89
|
+
validate(validate: (value: NonNullable<V>) => true | Label | Promise<true | Label>): NumberFieldBuilder<K, V, S>;
|
|
90
|
+
/** Compile the chain into the wire/manifest field definition. */
|
|
91
|
+
build(): NumberMetaBoxField;
|
|
92
|
+
}
|
|
93
|
+
/** Numeric input with optional `.min()` / `.max()` / `.step()` bounds. */
|
|
94
|
+
export declare function number<K extends string>(key: K): NumberFieldBuilder<K>;
|
|
95
|
+
export {};
|
|
23
96
|
//# sourceMappingURL=number.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAGxB,UAAU,gBAAgB;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CAC1C;AAED;;;;;GAKG;AACH,qBAAa,kBAAkB,CAC7B,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,CAAC,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACjD,CAAC,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CACjD,YAAW,YAAY,CAAC,kBAAkB,CAAC;;IAC3C,0EAA0E;IAC1E,SAAiB,IAAI,EAAE,CAAC,CAAC;IACzB,wEAAwE;IACxE,SAAiB,MAAM,EAAE,CAAC,CAAC;IAC3B,2EAA2E;IAC3E,SAAiB,OAAO,EAAE,CAAC,CAAC;gBAKhB,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,gBAAqB;IAcrD,kDAAkD;IAClD,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAIhD,0CAA0C;IAC1C,WAAW,CAAC,WAAW,EAAE,KAAK,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAI5D,WAAW,CAAC,WAAW,EAAE,KAAK,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAI5D;;+BAE2B;IAC3B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAIxD,+EAA+E;IAC/E,QAAQ,IAAI,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC;IAIjD;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAIzD,0EAA0E;IAC1E,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAI3D,wEAAwE;IACxE,SAAS,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAIxC;mDAC+C;IAC/C,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAIzC,6DAA6D;IAC7D,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAI5C,gEAAgE;IAChE,OAAO,IAAI,sBAAsB;IAIjC,4CAA4C;IAC5C,UAAU,IAAI,sBAAsB;IAIpC,gEAAgE;IAChE,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAIzC,6DAA6D;IAC7D,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAIzC;;;;;OAKG;IACH,WAAW,CAAC,GAAG,KAAK,EAAE,sBAAsB,EAAE,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAI5E,2DAA2D;IAC3D,aAAa,CACX,GAAG,KAAK,EAAE,sBAAsB,EAAE,GACjC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAM9B,oEAAoE;IACpE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAI7C,oEAAoE;IACpE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAI7C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAI/C,4EAA4E;IAC5E,QAAQ,CACN,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,GAClD,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAI9B;;;;OAIG;IACH,QAAQ,CACN,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,GACxE,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAI9B,iEAAiE;IACjE,KAAK,IAAI,kBAAkB;CAS5B;AAED,0EAA0E;AAC1E,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAEtE"}
|
|
@@ -1,24 +1,137 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { humanizeFieldKey } from "./builder.js";
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* `
|
|
4
|
+
* Fluent chain for the `number` field. Mirrors `StringFieldBuilder` —
|
|
5
|
+
* immutable, phantom-typed (`K` literal key, `V` read type, `S`
|
|
6
|
+
* stored shape). `step` defaults to `1` (integer input) at the
|
|
7
|
+
* renderer when omitted; the definition stays minimal.
|
|
5
8
|
*/
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
9
|
+
export class NumberFieldBuilder {
|
|
10
|
+
#key;
|
|
11
|
+
#state;
|
|
12
|
+
constructor(key, state = {}) {
|
|
13
|
+
this.#key = key;
|
|
14
|
+
this.#state = state;
|
|
15
|
+
}
|
|
16
|
+
#fork(patch) {
|
|
17
|
+
return new _a(this.#key, {
|
|
18
|
+
...this.#state,
|
|
19
|
+
...patch,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/** Override the derived (humanized-key) label. */
|
|
23
|
+
label(label) {
|
|
24
|
+
return this.#fork({ label });
|
|
25
|
+
}
|
|
26
|
+
/** Help text rendered under the label. */
|
|
27
|
+
description(description) {
|
|
28
|
+
return this.#fork({ description });
|
|
29
|
+
}
|
|
30
|
+
placeholder(placeholder) {
|
|
31
|
+
return this.#fork({ placeholder });
|
|
32
|
+
}
|
|
33
|
+
/** Default for absent keys, applied at read decode (and seeded into
|
|
34
|
+
* the admin form) — narrows the read type to `number`; the stored
|
|
35
|
+
* shape stays optional. */
|
|
36
|
+
default(value) {
|
|
37
|
+
return this.#fork({ default: value });
|
|
38
|
+
}
|
|
39
|
+
/** Mark the field required — narrows the read and stored types to `number`. */
|
|
40
|
+
required() {
|
|
41
|
+
return this.#fork({ required: true });
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Column span within the box's 12-column grid — a universal layout
|
|
45
|
+
* hint; surfaces that can't honor it (the entry editor rail) ignore it.
|
|
46
|
+
*/
|
|
47
|
+
span(span) {
|
|
48
|
+
return this.#fork({ span });
|
|
49
|
+
}
|
|
50
|
+
/** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
|
|
51
|
+
capability(capability) {
|
|
52
|
+
return this.#fork({ capability });
|
|
53
|
+
}
|
|
54
|
+
/** Opt this field's value into public REST responses (default-deny). */
|
|
55
|
+
showInApi() {
|
|
56
|
+
return this.#fork({ showInApi: true });
|
|
57
|
+
}
|
|
58
|
+
/** Rule factory: this field's value equals `value` — pass the rule
|
|
59
|
+
* to a dependent field's `.visibleWhen()`. */
|
|
60
|
+
is(value) {
|
|
61
|
+
return { key: this.#key, op: "eq", value };
|
|
62
|
+
}
|
|
63
|
+
/** Rule factory: this field's value differs from `value`. */
|
|
64
|
+
isNot(value) {
|
|
65
|
+
return { key: this.#key, op: "neq", value };
|
|
66
|
+
}
|
|
67
|
+
/** Rule factory: this field has no value (unset or cleared). */
|
|
68
|
+
isEmpty() {
|
|
69
|
+
return { key: this.#key, op: "empty" };
|
|
70
|
+
}
|
|
71
|
+
/** Rule factory: this field has a value. */
|
|
72
|
+
isNotEmpty() {
|
|
73
|
+
return { key: this.#key, op: "not_empty" };
|
|
74
|
+
}
|
|
75
|
+
/** Rule factory: this field's value is greater than `value`. */
|
|
76
|
+
gt(value) {
|
|
77
|
+
return { key: this.#key, op: "gt", value };
|
|
78
|
+
}
|
|
79
|
+
/** Rule factory: this field's value is less than `value`. */
|
|
80
|
+
lt(value) {
|
|
81
|
+
return { key: this.#key, op: "lt", value };
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Show this field only when every rule passes (one AND group) —
|
|
85
|
+
* rules come from sibling fields' condition factories. Replaces any
|
|
86
|
+
* previously declared condition; `.orVisibleWhen()` adds
|
|
87
|
+
* alternatives.
|
|
88
|
+
*/
|
|
89
|
+
visibleWhen(...rules) {
|
|
90
|
+
return this.#fork({ visibleWhen: [rules] });
|
|
91
|
+
}
|
|
92
|
+
/** Add an OR alternative — one more AND group of rules. */
|
|
93
|
+
orVisibleWhen(...rules) {
|
|
94
|
+
return this.#fork({
|
|
95
|
+
visibleWhen: [...(this.#state.visibleWhen ?? []), rules],
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/** Lower bound, enforced client-side by the native number input. */
|
|
99
|
+
min(min) {
|
|
100
|
+
return this.#fork({ min });
|
|
101
|
+
}
|
|
102
|
+
/** Upper bound, enforced client-side by the native number input. */
|
|
103
|
+
max(max) {
|
|
104
|
+
return this.#fork({ max });
|
|
105
|
+
}
|
|
106
|
+
step(step) {
|
|
107
|
+
return this.#fork({ step });
|
|
108
|
+
}
|
|
109
|
+
/** Normalising transform, applied after coercion and before persistence. */
|
|
110
|
+
sanitize(sanitize) {
|
|
111
|
+
return this.#fork({ sanitize: sanitize });
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Custom validation — `true` for valid, or an i18n-able failure
|
|
115
|
+
* message (sync or async). Runs after `.sanitize()` and the
|
|
116
|
+
* declarative constraints.
|
|
117
|
+
*/
|
|
118
|
+
validate(validate) {
|
|
119
|
+
return this.#fork({ validate: validate });
|
|
120
|
+
}
|
|
121
|
+
/** Compile the chain into the wire/manifest field definition. */
|
|
122
|
+
build() {
|
|
123
|
+
return {
|
|
124
|
+
...this.#state,
|
|
125
|
+
key: this.#key,
|
|
126
|
+
label: this.#state.label ?? humanizeFieldKey(this.#key),
|
|
127
|
+
type: "number",
|
|
128
|
+
inputType: "number",
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
_a = NumberFieldBuilder;
|
|
133
|
+
/** Numeric input with optional `.min()` / `.max()` / `.step()` bounds. */
|
|
134
|
+
export function number(key) {
|
|
135
|
+
return new NumberFieldBuilder(key);
|
|
23
136
|
}
|
|
24
137
|
//# sourceMappingURL=number.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/plugin/fields/number.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/plugin/fields/number.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,112 @@
|
|
|
1
1
|
import type { Label } from "../../i18n/label.js";
|
|
2
|
-
import type { MetaBoxFieldSpan, RangeMetaBoxField } from "../manifest.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
readonly
|
|
6
|
-
readonly
|
|
7
|
-
readonly max: number;
|
|
8
|
-
readonly step?: number;
|
|
9
|
-
readonly required?: boolean;
|
|
2
|
+
import type { FieldBuilder, MetaBoxFieldSpan, MetaBoxFieldValidate, RangeMetaBoxField } from "../manifest.js";
|
|
3
|
+
import type { MetaFieldCondition, MetaFieldConditionRule } from "./condition.js";
|
|
4
|
+
interface RangeFieldState {
|
|
5
|
+
readonly visibleWhen?: MetaFieldCondition;
|
|
6
|
+
readonly label?: Label;
|
|
10
7
|
readonly description?: Label;
|
|
11
8
|
readonly default?: number;
|
|
9
|
+
readonly required?: true;
|
|
12
10
|
readonly span?: MetaBoxFieldSpan;
|
|
13
11
|
readonly capability?: string;
|
|
12
|
+
readonly showInApi?: true;
|
|
13
|
+
readonly min: number;
|
|
14
|
+
readonly max: number;
|
|
15
|
+
readonly step?: number;
|
|
16
|
+
readonly sanitize?: (value: unknown) => unknown;
|
|
17
|
+
readonly validate?: MetaBoxFieldValidate;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Entry point of the `range()` chain — only `.bounds()` is available
|
|
21
|
+
* until the slider's `[min, max]` track is declared, so a range without
|
|
22
|
+
* bounds can't reach `build()` (registration surfaces require a `build`
|
|
23
|
+
* method). Forgetting the bounds is a compile error, not a runtime throw.
|
|
24
|
+
*/
|
|
25
|
+
export declare class RangeFieldSeed<K extends string = string> {
|
|
26
|
+
#private;
|
|
27
|
+
constructor(key: K);
|
|
14
28
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* custom one replaces it entirely.
|
|
29
|
+
* Declare the slider's inclusive `[min, max]` track — both required.
|
|
30
|
+
* `min <= max` is enforced when the chain compiles at registration.
|
|
18
31
|
*/
|
|
19
|
-
|
|
32
|
+
bounds(min: number, max: number): RangeFieldBuilder<K>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Fluent chain for the `range` slider field. Its `[min, max]` track is
|
|
36
|
+
* fixed by `.bounds()` on the seed (so the bounds are always present here);
|
|
37
|
+
* `min <= max` is enforced when the chain compiles at registration.
|
|
38
|
+
* `build()` injects a default sanitizer that rejects values outside
|
|
39
|
+
* `[min, max]` on write; a custom `.sanitize()` replaces it entirely.
|
|
40
|
+
*/
|
|
41
|
+
export declare class RangeFieldBuilder<K extends string = string, V extends number | undefined = number | undefined, S extends number | undefined = number | undefined> implements FieldBuilder<RangeMetaBoxField> {
|
|
42
|
+
#private;
|
|
43
|
+
/** Phantom literal key of the field — type-level only, never assigned. */
|
|
44
|
+
readonly _key: K;
|
|
45
|
+
/** Phantom read type of the field — type-level only, never assigned. */
|
|
46
|
+
readonly _value: V;
|
|
47
|
+
/** Phantom stored shape of the field — type-level only, never assigned. */
|
|
48
|
+
readonly _stored: S;
|
|
49
|
+
constructor(key: string, state: RangeFieldState);
|
|
50
|
+
/** Override the derived (humanized-key) label. */
|
|
51
|
+
label(label: Label): RangeFieldBuilder<K, V, S>;
|
|
52
|
+
/** Help text rendered under the label. */
|
|
53
|
+
description(description: Label): RangeFieldBuilder<K, V, S>;
|
|
54
|
+
/** Default for absent keys, applied at read decode (and seeded into
|
|
55
|
+
* the admin form) — narrows the read type to `number`; the stored
|
|
56
|
+
* shape stays optional. */
|
|
57
|
+
default(value: number): RangeFieldBuilder<K, number, S>;
|
|
58
|
+
/** Mark the field required — narrows the read and stored types to `number`. */
|
|
59
|
+
required(): RangeFieldBuilder<K, number, number>;
|
|
60
|
+
/**
|
|
61
|
+
* Column span within the box's 12-column grid — a universal layout
|
|
62
|
+
* hint; surfaces that can't honor it (the entry editor rail) ignore it.
|
|
63
|
+
*/
|
|
64
|
+
span(span: MetaBoxFieldSpan): RangeFieldBuilder<K, V, S>;
|
|
65
|
+
/** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
|
|
66
|
+
capability(capability: string): RangeFieldBuilder<K, V, S>;
|
|
67
|
+
/** Opt this field's value into public REST responses (default-deny). */
|
|
68
|
+
showInApi(): RangeFieldBuilder<K, V, S>;
|
|
69
|
+
/** Rule factory: this field's value equals `value` — pass the rule
|
|
70
|
+
* to a dependent field's `.visibleWhen()`. */
|
|
71
|
+
is(value: number): MetaFieldConditionRule;
|
|
72
|
+
/** Rule factory: this field's value differs from `value`. */
|
|
73
|
+
isNot(value: number): MetaFieldConditionRule;
|
|
74
|
+
/** Rule factory: this field has no value (unset or cleared). */
|
|
75
|
+
isEmpty(): MetaFieldConditionRule;
|
|
76
|
+
/** Rule factory: this field has a value. */
|
|
77
|
+
isNotEmpty(): MetaFieldConditionRule;
|
|
78
|
+
/** Rule factory: this field's value is greater than `value`. */
|
|
79
|
+
gt(value: number): MetaFieldConditionRule;
|
|
80
|
+
/** Rule factory: this field's value is less than `value`. */
|
|
81
|
+
lt(value: number): MetaFieldConditionRule;
|
|
82
|
+
/**
|
|
83
|
+
* Show this field only when every rule passes (one AND group) —
|
|
84
|
+
* rules come from sibling fields' condition factories. Replaces any
|
|
85
|
+
* previously declared condition; `.orVisibleWhen()` adds
|
|
86
|
+
* alternatives.
|
|
87
|
+
*/
|
|
88
|
+
visibleWhen(...rules: MetaFieldConditionRule[]): RangeFieldBuilder<K, V, S>;
|
|
89
|
+
/** Add an OR alternative — one more AND group of rules. */
|
|
90
|
+
orVisibleWhen(...rules: MetaFieldConditionRule[]): RangeFieldBuilder<K, V, S>;
|
|
91
|
+
step(step: number): RangeFieldBuilder<K, V, S>;
|
|
92
|
+
/** Normalising transform, applied after coercion and before persistence. */
|
|
93
|
+
sanitize(sanitize: (value: NonNullable<V>) => NonNullable<V>): RangeFieldBuilder<K, V, S>;
|
|
94
|
+
/**
|
|
95
|
+
* Custom validation — `true` for valid, or an i18n-able failure
|
|
96
|
+
* message (sync or async). Runs after `.sanitize()` and the
|
|
97
|
+
* declarative constraints.
|
|
98
|
+
*/
|
|
99
|
+
validate(validate: (value: NonNullable<V>) => true | Label | Promise<true | Label>): RangeFieldBuilder<K, V, S>;
|
|
100
|
+
/** Compile the chain into the wire/manifest field definition. */
|
|
101
|
+
build(): RangeMetaBoxField;
|
|
20
102
|
}
|
|
21
103
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
104
|
+
* Bounded numeric slider — `range("opacity").bounds(0, 100)`. The
|
|
105
|
+
* `[min, max]` track is required: only `.bounds()` is available on the
|
|
106
|
+
* bare constructor, so omitting it is a compile error. `min <= max` is
|
|
107
|
+
* enforced at registration; bounds are enforced server-side by the
|
|
108
|
+
* constraint walker.
|
|
26
109
|
*/
|
|
27
|
-
export declare function range(
|
|
110
|
+
export declare function range<K extends string>(key: K): RangeFieldSeed<K>;
|
|
111
|
+
export {};
|
|
28
112
|
//# sourceMappingURL=range.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/range.ts"],"names":[],"mappings":"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"}
|