@pro-laico/create-atomic-payload 0.1.4
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/bin/cli.js +159 -0
- package/package.json +29 -0
- package/template/.env.example +35 -0
- package/template/.gitattributes +2 -0
- package/template/.prettierrc.json +6 -0
- package/template/.vscode/extensions.json +3 -0
- package/template/.vscode/launch.json +24 -0
- package/template/.vscode/settings.json +86 -0
- package/template/.yarnrc +1 -0
- package/template/LICENSE.md +22 -0
- package/template/README.md +128 -0
- package/template/eslint.config.mjs +32 -0
- package/template/next-env.d.ts +6 -0
- package/template/next.config.ts +36 -0
- package/template/package.json +75 -0
- package/template/public/adminFavicon.svg +1 -0
- package/template/public/ogImage.webp +0 -0
- package/template/src/access/anyone.ts +3 -0
- package/template/src/access/authenticated.ts +7 -0
- package/template/src/access/authenticatedOrPublished.ts +6 -0
- package/template/src/app/(frontend)/[...slug]/page.tsx +48 -0
- package/template/src/app/(frontend)/layout.tsx +49 -0
- package/template/src/app/(frontend)/next/exit-preview/route.ts +7 -0
- package/template/src/app/(frontend)/next/preview/route.ts +45 -0
- package/template/src/app/(frontend)/next/seed/route.ts +31 -0
- package/template/src/app/(frontend)/not-found.tsx +93 -0
- package/template/src/app/(frontend)/page.tsx +5 -0
- package/template/src/app/(frontend)/sitemap.ts +14 -0
- package/template/src/app/(payload)/admin/[[...segments]]/not-found.tsx +24 -0
- package/template/src/app/(payload)/admin/[[...segments]]/page.tsx +24 -0
- package/template/src/app/(payload)/admin/importMap.js +85 -0
- package/template/src/app/(payload)/api/[...slug]/route.ts +19 -0
- package/template/src/app/(payload)/custom.scss +29 -0
- package/template/src/app/(payload)/layout.tsx +31 -0
- package/template/src/blocks/actions/blocks.ts +27 -0
- package/template/src/blocks/actions/cookieConsent/set/block.ts +17 -0
- package/template/src/blocks/actions/cookieConsent/set/filter.ts +3 -0
- package/template/src/blocks/actions/cookieConsent/set/options.ts +35 -0
- package/template/src/blocks/actions/cookieConsent/toDA/block.ts +14 -0
- package/template/src/blocks/actions/cookieConsent/toDA/filter.ts +3 -0
- package/template/src/blocks/actions/cookieConsent/toDA/options.ts +19 -0
- package/template/src/blocks/actions/dynamicStore/boolean/set/block.ts +15 -0
- package/template/src/blocks/actions/dynamicStore/boolean/set/filter.ts +4 -0
- package/template/src/blocks/actions/dynamicStore/boolean/set/options.ts +18 -0
- package/template/src/blocks/actions/dynamicStore/boolean/toDA/block.ts +10 -0
- package/template/src/blocks/actions/dynamicStore/boolean/toDA/filter.ts +3 -0
- package/template/src/blocks/actions/dynamicStore/boolean/toDA/options.ts +12 -0
- package/template/src/blocks/actions/dynamicStore/text/cycle/block.ts +41 -0
- package/template/src/blocks/actions/dynamicStore/text/cycle/filter.ts +4 -0
- package/template/src/blocks/actions/dynamicStore/text/cycle/options.ts +23 -0
- package/template/src/blocks/actions/dynamicStore/text/toDA/block.ts +10 -0
- package/template/src/blocks/actions/dynamicStore/text/toDA/filter.ts +3 -0
- package/template/src/blocks/actions/dynamicStore/text/toDA/options.ts +12 -0
- package/template/src/blocks/actions/filters.ts +27 -0
- package/template/src/blocks/actions/form/errorToDA/block.ts +18 -0
- package/template/src/blocks/actions/form/errorToDA/filter.ts +3 -0
- package/template/src/blocks/actions/form/errorToDA/options.ts +15 -0
- package/template/src/blocks/actions/form/reset/block.ts +18 -0
- package/template/src/blocks/actions/form/reset/filter.ts +3 -0
- package/template/src/blocks/actions/form/reset/options.ts +30 -0
- package/template/src/blocks/actions/form/statusToDA/block.ts +12 -0
- package/template/src/blocks/actions/form/statusToDA/filter.ts +3 -0
- package/template/src/blocks/actions/form/statusToDA/options.ts +15 -0
- package/template/src/blocks/actions/form/submit/block.ts +18 -0
- package/template/src/blocks/actions/form/submit/filter.ts +3 -0
- package/template/src/blocks/actions/form/submit/options.ts +35 -0
- package/template/src/blocks/actions/portal/set/block.ts +25 -0
- package/template/src/blocks/actions/portal/set/filter.ts +3 -0
- package/template/src/blocks/actions/portal/set/options.ts +43 -0
- package/template/src/blocks/actions/processor.ts +263 -0
- package/template/src/blocks/actions/theme/set/block.ts +10 -0
- package/template/src/blocks/actions/theme/set/filter.ts +3 -0
- package/template/src/blocks/actions/theme/set/options.ts +9 -0
- package/template/src/blocks/actions/zap.ts +4 -0
- package/template/src/blocks/children/atomic/block.ts +123 -0
- package/template/src/blocks/children/atomic/controlBar.ts +43 -0
- package/template/src/blocks/children/atomic/variants/button/typeField.ts +16 -0
- package/template/src/blocks/children/atomic/variants/button/variants/link/component.client.tsx +21 -0
- package/template/src/blocks/children/atomic/variants/button/variants/link/component.tsx +13 -0
- package/template/src/blocks/children/atomic/variants/button/variants/link/controlBar.ts +73 -0
- package/template/src/blocks/children/atomic/variants/button/variants/link/settings.ts +26 -0
- package/template/src/blocks/children/atomic/variants/button/variants/portal/controlBar.ts +35 -0
- package/template/src/blocks/children/atomic/variants/button/variants/portal/dialog/component.tsx +36 -0
- package/template/src/blocks/children/atomic/variants/button/variants/portal/dialog/settings.ts +24 -0
- package/template/src/blocks/children/atomic/variants/button/variants/portal/popover/component.tsx +41 -0
- package/template/src/blocks/children/atomic/variants/button/variants/portal/popover/settings.ts +111 -0
- package/template/src/blocks/children/atomic/variants/button/variants/regular/component.client.tsx +19 -0
- package/template/src/blocks/children/atomic/variants/button/variants/regular/component.tsx +11 -0
- package/template/src/blocks/children/atomic/variants/form/component.tsx +18 -0
- package/template/src/blocks/children/atomic/variants/form/controlBar.ts +22 -0
- package/template/src/blocks/children/atomic/variants/form/settings.ts +20 -0
- package/template/src/blocks/children/atomic/variants/input/autoCompleteOptions.ts +51 -0
- package/template/src/blocks/children/atomic/variants/input/controlBar.ts +13 -0
- package/template/src/blocks/children/atomic/variants/input/settings.ts +35 -0
- package/template/src/blocks/children/atomic/variants/input/typeField.ts +23 -0
- package/template/src/blocks/children/atomic/variants/input/variants/checkBox/component.client.tsx +12 -0
- package/template/src/blocks/children/atomic/variants/input/variants/checkBox/component.tsx +6 -0
- package/template/src/blocks/children/atomic/variants/input/variants/checkBox/settings.ts +9 -0
- package/template/src/blocks/children/atomic/variants/input/variants/number/component.client.tsx +12 -0
- package/template/src/blocks/children/atomic/variants/input/variants/number/component.tsx +6 -0
- package/template/src/blocks/children/atomic/variants/input/variants/number/settings.ts +9 -0
- package/template/src/blocks/children/atomic/variants/input/variants/radio/component.client.tsx +12 -0
- package/template/src/blocks/children/atomic/variants/input/variants/radio/component.tsx +6 -0
- package/template/src/blocks/children/atomic/variants/input/variants/radio/settings.ts +9 -0
- package/template/src/blocks/children/atomic/variants/input/variants/text/component.client.tsx +12 -0
- package/template/src/blocks/children/atomic/variants/input/variants/text/component.tsx +7 -0
- package/template/src/blocks/children/atomic/variants/input/variants/text/settings.ts +12 -0
- package/template/src/blocks/children/atomic/variants/tag/component.client.tsx +17 -0
- package/template/src/blocks/children/atomic/variants/tag/component.tsx +13 -0
- package/template/src/blocks/children/atomic/variants/tag/controlBar.ts +6 -0
- package/template/src/blocks/children/atomic/variants/tag/settings.ts +9 -0
- package/template/src/blocks/children/blocks.ts +13 -0
- package/template/src/blocks/children/icon/block.ts +41 -0
- package/template/src/blocks/children/icon/component.tsx +17 -0
- package/template/src/blocks/children/image/block.ts +80 -0
- package/template/src/blocks/children/image/component.tsx +21 -0
- package/template/src/blocks/children/richText/block.ts +50 -0
- package/template/src/blocks/children/richText/component/converters/index.tsx +10 -0
- package/template/src/blocks/children/richText/component/converters/internalLink.tsx +8 -0
- package/template/src/blocks/children/richText/component/index.tsx +10 -0
- package/template/src/blocks/children/richText/component.tsx +7 -0
- package/template/src/blocks/children/richText/defaultLexical.ts +65 -0
- package/template/src/blocks/children/simpleText/block.ts +41 -0
- package/template/src/blocks/children/simpleText/component.client.tsx +18 -0
- package/template/src/blocks/children/simpleText/component.tsx +11 -0
- package/template/src/blocks/children/svg/block.ts +39 -0
- package/template/src/blocks/children/svg/component.tsx +6 -0
- package/template/src/blocks/children/video/block.ts +70 -0
- package/template/src/blocks/children/video/component.tsx +11 -0
- package/template/src/blocks/children/zap.ts +54 -0
- package/template/src/blocks/submitForm/form/rateLimiting/blocks.ts +5 -0
- package/template/src/blocks/submitForm/form/rateLimiting/functions.ts +1 -0
- package/template/src/blocks/submitForm/form/rateLimiting/simpleSlidingWindow/block.ts +23 -0
- package/template/src/blocks/submitForm/form/rateLimiting/simpleSlidingWindow/serverFunction.ts +46 -0
- package/template/src/blocks/submitForm/form/sanitation/blocks.ts +6 -0
- package/template/src/blocks/submitForm/form/sanitation/combineTwoFields/block.ts +19 -0
- package/template/src/blocks/submitForm/form/sanitation/combineTwoFields/serverFunction.ts +22 -0
- package/template/src/blocks/submitForm/form/sanitation/functions.ts +1 -0
- package/template/src/blocks/submitForm/form/validation/blocks.ts +6 -0
- package/template/src/blocks/submitForm/form/validation/functions.ts +1 -0
- package/template/src/blocks/submitForm/form/validation/isUnique/block.ts +19 -0
- package/template/src/blocks/submitForm/form/validation/isUnique/serverFunction.ts +40 -0
- package/template/src/blocks/submitForm/form/zap.ts +8 -0
- package/template/src/blocks/submitForm/formProcessor.ts +222 -0
- package/template/src/blocks/submitForm/input/sanitation/blocks.ts +5 -0
- package/template/src/blocks/submitForm/input/sanitation/functions.ts +1 -0
- package/template/src/blocks/submitForm/input/sanitation/trimText/block.ts +24 -0
- package/template/src/blocks/submitForm/input/sanitation/trimText/serverFunction.ts +63 -0
- package/template/src/blocks/submitForm/input/useOn.ts +8 -0
- package/template/src/blocks/submitForm/input/validation/blocks.ts +6 -0
- package/template/src/blocks/submitForm/input/validation/contains/block.ts +12 -0
- package/template/src/blocks/submitForm/input/validation/contains/serverFunction.ts +23 -0
- package/template/src/blocks/submitForm/input/validation/doesNotContain/block.ts +12 -0
- package/template/src/blocks/submitForm/input/validation/doesNotContain/serverFunction.ts +23 -0
- package/template/src/blocks/submitForm/input/validation/functions.ts +2 -0
- package/template/src/blocks/submitForm/input/zap.ts +6 -0
- package/template/src/blocks/submitForm/serverFunction.ts +42 -0
- package/template/src/collections/designSets/collection.ts +44 -0
- package/template/src/collections/designSets/defaults.ts +20 -0
- package/template/src/collections/designSets/tabs/animation.ts +71 -0
- package/template/src/collections/designSets/tabs/colors.ts +31 -0
- package/template/src/collections/designSets/tabs/fonts.ts +53 -0
- package/template/src/collections/designSets/tabs/miscellaneous.ts +22 -0
- package/template/src/collections/designSets/tabs/prose.ts +151 -0
- package/template/src/collections/designSets/tabs/settings.ts +52 -0
- package/template/src/collections/designSets/tabs/sizes.ts +30 -0
- package/template/src/collections/designSets/tabs/storage.ts +51 -0
- package/template/src/collections/designSets/tabs/variables.ts +28 -0
- package/template/src/collections/favicons.ts +11 -0
- package/template/src/collections/fonts/collection.ts +20 -0
- package/template/src/collections/fonts/script.ts +199 -0
- package/template/src/collections/footers/collection.ts +48 -0
- package/template/src/collections/footers/component.tsx +13 -0
- package/template/src/collections/headers/collection.ts +47 -0
- package/template/src/collections/headers/component.tsx +13 -0
- package/template/src/collections/iconSets/collection.ts +80 -0
- package/template/src/collections/iconSets/defaults.ts +81 -0
- package/template/src/collections/icons.ts +20 -0
- package/template/src/collections/images.ts +29 -0
- package/template/src/collections/index.ts +17 -0
- package/template/src/collections/muxVideos.ts +13 -0
- package/template/src/collections/pages/collection.ts +88 -0
- package/template/src/collections/pages/tabs/SEO.ts +70 -0
- package/template/src/collections/pages/tabs/settings.ts +17 -0
- package/template/src/collections/posthogProperty.ts +48 -0
- package/template/src/collections/shortcutSets/collection.ts +30 -0
- package/template/src/collections/shortcutSets/defaults.ts +1 -0
- package/template/src/collections/shortcutSets/protectedNames.ts +135 -0
- package/template/src/collections/shortcutSets/tabs/settings.ts +13 -0
- package/template/src/collections/shortcutSets/tabs/shortcuts.ts +70 -0
- package/template/src/collections/users.ts +11 -0
- package/template/src/collections/zap.ts +59 -0
- package/template/src/components/child/SSRProps.ts +381 -0
- package/template/src/components/child/renderChildren.tsx +148 -0
- package/template/src/components/livePreviewListener.tsx +10 -0
- package/template/src/components/providers/formProvider.tsx +11 -0
- package/template/src/components/providers/tracking/gtm.tsx +11 -0
- package/template/src/components/providers/tracking/index.tsx +46 -0
- package/template/src/components/providers/tracking/postHog.tsx +41 -0
- package/template/src/components/providers/tracking/vercel.tsx +10 -0
- package/template/src/components/toast/index.module.css +142 -0
- package/template/src/components/toast/index.tsx +55 -0
- package/template/src/endpoints/seed/backendForm.ts +48 -0
- package/template/src/endpoints/seed/designSet.ts +476 -0
- package/template/src/endpoints/seed/footer.ts +389 -0
- package/template/src/endpoints/seed/header.ts +3511 -0
- package/template/src/endpoints/seed/iconSet.ts +19 -0
- package/template/src/endpoints/seed/icons/assets/check.svg +4 -0
- package/template/src/endpoints/seed/icons/assets/close.svg +4 -0
- package/template/src/endpoints/seed/icons/assets/cookie.svg +7 -0
- package/template/src/endpoints/seed/icons/assets/github.svg +1 -0
- package/template/src/endpoints/seed/icons/assets/logo.svg +11 -0
- package/template/src/endpoints/seed/icons/assets/menu.svg +4 -0
- package/template/src/endpoints/seed/icons/assets/theme.svg +4 -0
- package/template/src/endpoints/seed/icons/check.ts +14 -0
- package/template/src/endpoints/seed/icons/close.ts +14 -0
- package/template/src/endpoints/seed/icons/cookie.ts +14 -0
- package/template/src/endpoints/seed/icons/github.ts +14 -0
- package/template/src/endpoints/seed/icons/index.ts +7 -0
- package/template/src/endpoints/seed/icons/logo.ts +14 -0
- package/template/src/endpoints/seed/icons/menu.ts +14 -0
- package/template/src/endpoints/seed/icons/theme.ts +14 -0
- package/template/src/endpoints/seed/index.ts +100 -0
- package/template/src/endpoints/seed/pages/home.ts +858 -0
- package/template/src/endpoints/seed/pages/index.ts +4 -0
- package/template/src/endpoints/seed/pages/notFoundPage.ts +287 -0
- package/template/src/endpoints/seed/pages/prose.ts +1436 -0
- package/template/src/endpoints/seed/pages/testing.ts +2181 -0
- package/template/src/endpoints/seed/shortcutSet.ts +187 -0
- package/template/src/endpoints/seed/siteMetaData.ts +10 -0
- package/template/src/fields/actions/changeKey.ts +12 -0
- package/template/src/fields/actions/index.ts +6 -0
- package/template/src/fields/actions/initialValueCheckbox.ts +14 -0
- package/template/src/fields/actions/keyText.ts +10 -0
- package/template/src/fields/actions/persisted.ts +14 -0
- package/template/src/fields/actions/setData.ts +20 -0
- package/template/src/fields/actions/strict/index.ts +3 -0
- package/template/src/fields/actions/strict/keySelect.ts +28 -0
- package/template/src/fields/actions/strict/listenSelect.ts +28 -0
- package/template/src/fields/actions/strict/performSelect.ts +30 -0
- package/template/src/fields/actions/strict/registry/cookieConsent.ts +14 -0
- package/template/src/fields/actions/strict/registry/index.ts +6 -0
- package/template/src/fields/actions/strict/registry/theme.ts +9 -0
- package/template/src/fields/active.ts +16 -0
- package/template/src/fields/apf/index.ts +69 -0
- package/template/src/fields/apf/storage.ts +38 -0
- package/template/src/fields/blocks/actions.ts +30 -0
- package/template/src/fields/blocks/backdropChildren.ts +11 -0
- package/template/src/fields/blocks/children.ts +15 -0
- package/template/src/fields/blocks/submitForm/form.ts +24 -0
- package/template/src/fields/blocks/submitForm/input.ts +25 -0
- package/template/src/fields/className.ts +26 -0
- package/template/src/fields/coloredEnd.ts +5 -0
- package/template/src/fields/defaultOpen.ts +14 -0
- package/template/src/fields/designSets/value.ts +80 -0
- package/template/src/fields/devMode.ts +11 -0
- package/template/src/fields/favicon.ts +18 -0
- package/template/src/fields/for.ts +11 -0
- package/template/src/fields/keepMounted.ts +11 -0
- package/template/src/fields/modal.ts +16 -0
- package/template/src/fields/slug.ts +35 -0
- package/template/src/fields/staticDataAttributes.ts +29 -0
- package/template/src/fields/tabs/block/children/actions.ts +49 -0
- package/template/src/fields/tabs/block/children/backdrop.ts +17 -0
- package/template/src/fields/tabs/block/children/settings.ts +45 -0
- package/template/src/fields/tabs/block/children/submitForm/form.ts +23 -0
- package/template/src/fields/tabs/block/children/submitForm/input.ts +14 -0
- package/template/src/fields/tabs/block/children/tracking.ts +25 -0
- package/template/src/fields/tabs/collection/storage.ts +55 -0
- package/template/src/fields/tagType.ts +32 -0
- package/template/src/fields/testPath.ts +3 -0
- package/template/src/fields/uniqueTitle.ts +8 -0
- package/template/src/fields/validationMessage.ts +13 -0
- package/template/src/globals/index.ts +8 -0
- package/template/src/globals/settings.ts +36 -0
- package/template/src/globals/siteMetaData.ts +29 -0
- package/template/src/globals/storage.ts +15 -0
- package/template/src/globals/tracking/global.ts +25 -0
- package/template/src/globals/tracking/tabs/gtm.ts +18 -0
- package/template/src/globals/tracking/tabs/postHog.ts +35 -0
- package/template/src/hooks/collection/atomicHook/atomicHook.ts +223 -0
- package/template/src/hooks/collection/atomicHook/processors/cssProcessor.ts +60 -0
- package/template/src/hooks/collection/atomicHook/processors/processDesignSet/generatePreflights.ts +36 -0
- package/template/src/hooks/collection/atomicHook/processors/processDesignSet/index.ts +176 -0
- package/template/src/hooks/collection/atomicHook/processors/unsetActive.ts +24 -0
- package/template/src/hooks/collection/formatSVG.ts +157 -0
- package/template/src/hooks/collection/revalidate.ts +53 -0
- package/template/src/hooks/collection/sanitizeCollection.ts +5 -0
- package/template/src/hooks/field/apf.ts +59 -0
- package/template/src/hooks/field/formatSlug.ts +23 -0
- package/template/src/hooks/field/href.ts +6 -0
- package/template/src/hooks/field/publishedAt.ts +5 -0
- package/template/src/hooks/frontEnd/atomicStore/create.ts +69 -0
- package/template/src/hooks/frontEnd/atomicStore/index.tsx +20 -0
- package/template/src/hooks/frontEnd/atomicStore/slices/base.ts +7 -0
- package/template/src/hooks/frontEnd/atomicStore/slices/consent.ts +76 -0
- package/template/src/hooks/frontEnd/atomicStore/slices/dynamic.ts +51 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/attributer/boolToDA/function.ts +14 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/attributer/boolToDA/zap.ts +12 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/attributer/cCToDA/function.ts +34 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/attributer/cCToDA/zap.ts +17 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/attributer/errorToDA/function.ts +22 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/attributer/errorToDA/zap.ts +10 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/attributer/function.ts +20 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/attributer/statusToDA/function.ts +24 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/attributer/statusToDA/zap.ts +10 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/attributer/textToDA/function.ts +21 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/attributer/textToDA/zap.ts +12 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/attributer/zap.ts +15 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/index.ts +2 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/cycleText/function.ts +30 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/cycleText/zap.ts +12 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/function.ts +21 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/resetForm/function.ts +7 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/resetForm/zap.ts +9 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/setBool/function.ts +10 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/setBool/zap.ts +11 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/setCCs/function.ts +33 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/setCCs/zap.ts +14 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/setThemes/function.ts +11 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/setThemes/zap.ts +10 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/submitForm/function.ts +32 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/submitForm/zap.ts +9 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/runner/zap.ts +16 -0
- package/template/src/hooks/frontEnd/useActions/dispatch/zap.ts +2 -0
- package/template/src/hooks/frontEnd/useActions/index.ts +6 -0
- package/template/src/hooks/frontEnd/useActions/useActionContext.ts +21 -0
- package/template/src/hooks/frontEnd/useActions/useButtonActions.ts +17 -0
- package/template/src/hooks/frontEnd/useActions/useDaToText.ts +34 -0
- package/template/src/hooks/frontEnd/useActions/useForm.ts +114 -0
- package/template/src/hooks/frontEnd/useActions/usePortal.ts +33 -0
- package/template/src/hooks/frontEnd/useActions/useToDa.ts +12 -0
- package/template/src/hooks/global/revalidate.ts +26 -0
- package/template/src/payload.config.ts +78 -0
- package/template/src/plugins/blurDataUrls.ts +8 -0
- package/template/src/plugins/formBuilder.ts +40 -0
- package/template/src/plugins/index.ts +17 -0
- package/template/src/plugins/muxVideo.ts +13 -0
- package/template/src/plugins/nestedDocs.ts +9 -0
- package/template/src/plugins/vercelBlobStorage.ts +8 -0
- package/template/src/ts/JSONSchema.ts +93 -0
- package/template/src/ts/declarations.ts +24 -0
- package/template/src/ts/types/actions.ts +175 -0
- package/template/src/ts/types/apf.ts +108 -0
- package/template/src/ts/types/cache.ts +166 -0
- package/template/src/ts/types/css.ts +14 -0
- package/template/src/ts/types/forms.ts +214 -0
- package/template/src/ts/types/frontEnd.ts +115 -0
- package/template/src/ts/types/index.ts +49 -0
- package/template/src/ts/types/payload-types.ts +3684 -0
- package/template/src/ts/zap/ap.ts +82 -0
- package/template/src/ts/zap/index.ts +4 -0
- package/template/src/ui/apf/controls.tsx +88 -0
- package/template/src/ui/apf/field.tsx +81 -0
- package/template/src/ui/apf/index.scss +59 -0
- package/template/src/ui/apf/label.tsx +23 -0
- package/template/src/ui/assets/Icon.tsx +21 -0
- package/template/src/ui/assets/Logo.tsx +21 -0
- package/template/src/ui/assets/atomicIcon.tsx +27 -0
- package/template/src/ui/assets/warningIcon.ts +6 -0
- package/template/src/ui/blocks/actionBlock.tsx +44 -0
- package/template/src/ui/blocks/inputBlock.tsx +24 -0
- package/template/src/ui/decorative/coloredEnd.tsx +16 -0
- package/template/src/ui/decorative/index.scss +46 -0
- package/template/src/ui/fields/iconSelect/index.tsx +19 -0
- package/template/src/ui/fields/slug/index.scss +12 -0
- package/template/src/ui/fields/slug/index.tsx +72 -0
- package/template/src/ui/index.ts +32 -0
- package/template/src/ui/root/beforeDashboard/index.scss +22 -0
- package/template/src/ui/root/beforeDashboard/index.tsx +39 -0
- package/template/src/ui/root/beforeDashboard/seedButton/index.scss +12 -0
- package/template/src/ui/root/beforeDashboard/seedButton/index.tsx +84 -0
- package/template/src/ui/root/siteTriggers/index.scss +22 -0
- package/template/src/ui/root/siteTriggers/index.tsx +94 -0
- package/template/src/ui/root/siteTriggers/triggerVercelDeploy.ts +37 -0
- package/template/src/ui/rowLabels/animation.tsx +27 -0
- package/template/src/ui/rowLabels/atomic/index.scss +62 -0
- package/template/src/ui/rowLabels/atomic/index.tsx +96 -0
- package/template/src/ui/rowLabels/color.tsx +33 -0
- package/template/src/ui/rowLabels/designToken.tsx +30 -0
- package/template/src/ui/rowLabels/icon.tsx +32 -0
- package/template/src/ui/rowLabels/shortcut/index.scss +21 -0
- package/template/src/ui/rowLabels/shortcut/index.tsx +30 -0
- package/template/src/ui/rowLabels/simpleText.tsx +41 -0
- package/template/src/utilities/deepMerge.ts +30 -0
- package/template/src/utilities/extractSVG.ts +9 -0
- package/template/src/utilities/format/toKebabCase.ts +79 -0
- package/template/src/utilities/format/toTitleCase.ts +47 -0
- package/template/src/utilities/formatDurationWithTokens.ts +56 -0
- package/template/src/utilities/generateMetaData.ts +45 -0
- package/template/src/utilities/generatePreviewPath.ts +43 -0
- package/template/src/utilities/get/cache/getAtomicActions.ts +48 -0
- package/template/src/utilities/get/cache/getAtomicClasses.ts +20 -0
- package/template/src/utilities/get/cache/getDesignSet.ts +15 -0
- package/template/src/utilities/get/cache/getFooter.ts +17 -0
- package/template/src/utilities/get/cache/getFormSubmissions.ts +17 -0
- package/template/src/utilities/get/cache/getForms.ts +43 -0
- package/template/src/utilities/get/cache/getHeader.ts +17 -0
- package/template/src/utilities/get/cache/getIcon.ts +51 -0
- package/template/src/utilities/get/cache/getImage.ts +20 -0
- package/template/src/utilities/get/cache/getPage.ts +35 -0
- package/template/src/utilities/get/cache/getPages.ts +24 -0
- package/template/src/utilities/get/cache/getShortcutSet.ts +17 -0
- package/template/src/utilities/get/cache/getSiteCSS.ts +17 -0
- package/template/src/utilities/get/cache/getSiteMetadata.ts +14 -0
- package/template/src/utilities/get/cache/getSitemap.ts +50 -0
- package/template/src/utilities/get/cache/getTracking.ts +14 -0
- package/template/src/utilities/get/cache/index.ts +129 -0
- package/template/src/utilities/get/cache/react.ts +5 -0
- package/template/src/utilities/get/getImageURL.ts +20 -0
- package/template/src/utilities/get/getMeUser.ts +22 -0
- package/template/src/utilities/get/getURL.ts +20 -0
- package/template/src/utilities/log/cache.ts +8 -0
- package/template/src/utilities/log/manual.ts +11 -0
- package/template/src/utilities/log/revalidation.ts +6 -0
- package/template/src/utilities/mergeTags.ts +7 -0
- package/template/src/utilities/propertyApplicatorUtility.ts +20 -0
- package/template/src/utilities/revalidateTag.ts +55 -0
- package/template/src/utilities/runAPF.ts +10 -0
- package/template/src/utilities/sanitizeData.ts +24 -0
- package/template/src/utilities/seedNestedRelationship.ts +5 -0
- package/template/tailwind.config.js +9 -0
- package/template/tsconfig.json +49 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Form,
|
|
3
|
+
Page,
|
|
4
|
+
Footer,
|
|
5
|
+
Header,
|
|
6
|
+
Tracking,
|
|
7
|
+
DesignSet,
|
|
8
|
+
ImageChild,
|
|
9
|
+
ShortcutSet,
|
|
10
|
+
SiteMetaDatum,
|
|
11
|
+
FormSubmission,
|
|
12
|
+
StoredAtomicForm,
|
|
13
|
+
AtomicStoreInitialState,
|
|
14
|
+
ModifiedStoredAtomicForm,
|
|
15
|
+
} from '@/ts/types'
|
|
16
|
+
|
|
17
|
+
// /////////////////////////////////////
|
|
18
|
+
// Helper Types
|
|
19
|
+
// /////////////////////////////////////
|
|
20
|
+
|
|
21
|
+
/** Merges two tuple types by appending the second tuple to the firs t*/
|
|
22
|
+
export type MergeTuples<T extends readonly unknown[], U extends readonly unknown[]> = [...T, ...U]
|
|
23
|
+
|
|
24
|
+
// /////////////////////////////////////
|
|
25
|
+
// General Types
|
|
26
|
+
// /////////////////////////////////////
|
|
27
|
+
|
|
28
|
+
/** Array elements data returned by the getCached<'sitemap'> function. */
|
|
29
|
+
export type SiteMapEntry = {
|
|
30
|
+
url: string
|
|
31
|
+
priority: number
|
|
32
|
+
lastModified: string
|
|
33
|
+
changeFrequency: 'yearly' | 'monthly' | 'weekly' | 'daily' | 'hourly' | 'never'
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Data returned by the revalidateTag function. */
|
|
37
|
+
export type RevalidateTagResponse = { success: boolean; message: string; timestamp: string }
|
|
38
|
+
|
|
39
|
+
// /////////////////////////////////////
|
|
40
|
+
// Tags
|
|
41
|
+
// /////////////////////////////////////
|
|
42
|
+
|
|
43
|
+
// When adding a new tag, also add the corresponding overload at /utilities/get/cache/index.ts
|
|
44
|
+
type PageTags = 'page'
|
|
45
|
+
type CacheTags = 'draft' | 'published'
|
|
46
|
+
type GlobalsTags = 'tracking' | 'settings'
|
|
47
|
+
type CSSTags = 'site-css' | 'atomic-classes'
|
|
48
|
+
type IconTags = 'iconSet' | 'icon' | 'icon-options'
|
|
49
|
+
type CollectionsTags = 'designSet' | 'footer' | 'header' | 'shortcutSet'
|
|
50
|
+
type FrontEndTags = 'sitemap' | 'pages' | 'site-metadata' | 'atomic-actions'
|
|
51
|
+
type FormsTags = 'atomic-forms' | 'all-forms' | 'form-submissions' | 'backend-forms' | 'image'
|
|
52
|
+
|
|
53
|
+
// Tags that for the revalidateTag function, has a promise return type.
|
|
54
|
+
export type PromiseTagGroup = 'draft' | 'published'
|
|
55
|
+
// Tags that have no corresponding getCached function.
|
|
56
|
+
export type TagsWithNoGetters = 'draft' | 'published' | 'settings'
|
|
57
|
+
// Adds a id key to the tag.
|
|
58
|
+
export type IDTagGroup = 'page' | 'icon' | 'form-submissions' | 'image'
|
|
59
|
+
// Tags that dont handle for draft or published.
|
|
60
|
+
export type NoDraftTagGroup = 'backend-forms' | 'form-submissions' | 'draft' | 'published' | 'image'
|
|
61
|
+
|
|
62
|
+
export type AllTags = CSSTags | GlobalsTags | IconTags | FrontEndTags | PageTags | FormsTags | CollectionsTags | CacheTags
|
|
63
|
+
export type AllTagsWithGetters = Exclude<AllTags, TagsWithNoGetters>
|
|
64
|
+
|
|
65
|
+
type Tag<T extends AllTags> = T extends NoDraftTagGroup
|
|
66
|
+
? T extends IDTagGroup
|
|
67
|
+
? [T, tid: string]
|
|
68
|
+
: [T]
|
|
69
|
+
: T extends IDTagGroup
|
|
70
|
+
? [T, tid: string, draft: boolean]
|
|
71
|
+
: [T, draft: boolean]
|
|
72
|
+
|
|
73
|
+
// /////////////////////////////////////
|
|
74
|
+
// Revalidate Tag Function Types
|
|
75
|
+
// /////////////////////////////////////
|
|
76
|
+
|
|
77
|
+
export type RevalidateTagType =
|
|
78
|
+
| { args: Tag<'page'>; return: void }
|
|
79
|
+
| { args: Tag<'icon'>; return: void }
|
|
80
|
+
| { args: Tag<'image'>; return: void }
|
|
81
|
+
| { args: Tag<'pages'>; return: void }
|
|
82
|
+
| { args: Tag<'header'>; return: void }
|
|
83
|
+
| { args: Tag<'footer'>; return: void }
|
|
84
|
+
| { args: Tag<'sitemap'>; return: void }
|
|
85
|
+
| { args: Tag<'iconSet'>; return: void }
|
|
86
|
+
| { args: Tag<'site-css'>; return: void }
|
|
87
|
+
| { args: Tag<'tracking'>; return: void }
|
|
88
|
+
| { args: Tag<'settings'>; return: void }
|
|
89
|
+
| { args: Tag<'all-forms'>; return: void }
|
|
90
|
+
| { args: Tag<'designSet'>; return: void }
|
|
91
|
+
| { args: Tag<'shortcutSet'>; return: void }
|
|
92
|
+
| { args: Tag<'icon-options'>; return: void }
|
|
93
|
+
| { args: Tag<'atomic-forms'>; return: void }
|
|
94
|
+
| { args: Tag<'backend-forms'>; return: void }
|
|
95
|
+
| { args: Tag<'site-metadata'>; return: void }
|
|
96
|
+
| { args: Tag<'atomic-classes'>; return: void }
|
|
97
|
+
| { args: Tag<'atomic-actions'>; return: void }
|
|
98
|
+
| { args: Tag<'form-submissions'>; return: void }
|
|
99
|
+
| { args: Tag<'draft'>; return: RevalidateTagResponse }
|
|
100
|
+
| { args: Tag<'published'>; return: RevalidateTagResponse }
|
|
101
|
+
|
|
102
|
+
/** The pass through arguments for the revalidate tag function. Set to 'all' to get the parameters for all tags. Mainly just for function overload. */
|
|
103
|
+
export type RArgs<T extends AllTags | 'all'> = T extends AllTags ? Extract<RevalidateTagType, { args: Tag<T> }>['args'] : RevalidateTagType['args']
|
|
104
|
+
|
|
105
|
+
/** The return type of the revalidate tag function. Set to 'all' to get the return type for all tags. Mainly just for function overload. */
|
|
106
|
+
export type RReturns<T extends AllTags | 'all'> = Promise<
|
|
107
|
+
T extends AllTags ? Extract<RevalidateTagType, { args: Tag<T> }>['return'] : RevalidateTagType['return']
|
|
108
|
+
>
|
|
109
|
+
|
|
110
|
+
// /////////////////////////////////////
|
|
111
|
+
// Get Cache Function Types
|
|
112
|
+
// /////////////////////////////////////
|
|
113
|
+
/** Data returned by the getCached<'iconSet'> function. */
|
|
114
|
+
export type IconSetReturn = { iconsArray: { name: string; icon: string }[] }
|
|
115
|
+
/** Data returned by the getCached<'page'> function. */
|
|
116
|
+
export type PageReturn = Pick<Page, 'children' | 'mainClassName' | 'meta' | 'id'>
|
|
117
|
+
export type StoredAtomicActionsReturn = AtomicStoreInitialState
|
|
118
|
+
|
|
119
|
+
type PageArgs = [pages: string[]] // Used on tag 'page'
|
|
120
|
+
type ImageArgs = [version?: ImageChild['version']] // Used on tag 'image'
|
|
121
|
+
type IconArgs = [iconSet: IconSetReturn] // Used on tags 'icon' and 'icon-options'
|
|
122
|
+
type AllFormsArgs = [atomicForms: StoredAtomicForm[], backendForms: Form[]] // Used on tag 'all-forms'
|
|
123
|
+
|
|
124
|
+
export type GetCached =
|
|
125
|
+
| { args: Tag<'header'>; return: Header }
|
|
126
|
+
| { args: Tag<'footer'>; return: Footer }
|
|
127
|
+
| { args: Tag<'pages'>; return: string[] }
|
|
128
|
+
| { args: Tag<'site-css'>; return: string }
|
|
129
|
+
| { args: Tag<'designSet'>; return: DesignSet }
|
|
130
|
+
| { args: Tag<'backend-forms'>; return: Form[] }
|
|
131
|
+
| { args: Tag<'iconSet'>; return: IconSetReturn }
|
|
132
|
+
| { args: Tag<'sitemap'>; return: SiteMapEntry[] }
|
|
133
|
+
| { args: Tag<'shortcutSet'>; return: ShortcutSet }
|
|
134
|
+
| { args: Tag<'atomic-classes'>; return: string[] }
|
|
135
|
+
| { args: Tag<'tracking'>; return: Tracking | undefined }
|
|
136
|
+
| { args: Tag<'form-submissions'>; return: FormSubmission[] }
|
|
137
|
+
| { args: Tag<'atomic-actions'>; return: AtomicStoreInitialState }
|
|
138
|
+
| { args: Tag<'site-metadata'>; return: SiteMetaDatum | undefined }
|
|
139
|
+
| { args: Tag<'atomic-forms'>; return: StoredAtomicForm[] | undefined }
|
|
140
|
+
| { args: MergeTuples<Tag<'icon'>, IconArgs>; return: string | undefined }
|
|
141
|
+
| { args: MergeTuples<Tag<'image'>, ImageArgs>; return: string | undefined }
|
|
142
|
+
| { args: MergeTuples<Tag<'page'>, PageArgs>; return: PageReturn | undefined }
|
|
143
|
+
| { args: MergeTuples<Tag<'icon-options'>, IconArgs>; return: { label: string; value: string }[] }
|
|
144
|
+
| { args: MergeTuples<Tag<'all-forms'>, AllFormsArgs>; return: ModifiedStoredAtomicForm[] | undefined }
|
|
145
|
+
|
|
146
|
+
/** The pass through arguments for the get cache function. Set to 'all' to get the parameters for all tags. Mainly just for function overload. */
|
|
147
|
+
export type GCArgs<T extends AllTagsWithGetters | 'all'> = T extends AllTagsWithGetters
|
|
148
|
+
? Extract<GetCached, { args: [T, ...any[]] }>['args']
|
|
149
|
+
: GetCached['args']
|
|
150
|
+
|
|
151
|
+
/** The return type of the get cached functions. Set to 'all' to get the return type for all tags. Mainly just for function overload. */
|
|
152
|
+
export type GCReturns<T extends AllTagsWithGetters | 'all'> = T extends AllTagsWithGetters
|
|
153
|
+
? Promise<Extract<GetCached, { args: [T, ...any[]] }>['return']>
|
|
154
|
+
: Promise<GetCached['return']>
|
|
155
|
+
|
|
156
|
+
/** Function type for get cached functions. Used directly on variable definition getters. */
|
|
157
|
+
export type GCFunction<T extends AllTagsWithGetters> = (
|
|
158
|
+
...args: Extract<GetCached, { args: [T, ...any[]] }>['args']
|
|
159
|
+
) => Promise<Extract<GetCached, { args: [T, ...any[]] }>['return']>
|
|
160
|
+
|
|
161
|
+
// /////////////////////////////////////
|
|
162
|
+
// Miscellaneous Types
|
|
163
|
+
// /////////////////////////////////////
|
|
164
|
+
|
|
165
|
+
export type RevalidationLoggerType = string[]
|
|
166
|
+
export type CacheLoggerType<T extends AllTagsWithGetters> = (args: RArgs<T>) => void
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { RequestContext, PayloadRequest } from 'payload'
|
|
2
|
+
import type { Config, CollectionThatUsesCSSProcessorSlug, CollectionWithStoredAtomicClassesSlug } from '@/ts/types'
|
|
3
|
+
|
|
4
|
+
/** Document types from collections that include storedAtomicClasses property. E.g., Page | Footer | Header */
|
|
5
|
+
export type CollectionsWithStoredAtomicClasses = Config['collections'][CollectionWithStoredAtomicClassesSlug]
|
|
6
|
+
|
|
7
|
+
export type CollectionThatUsesCSSProcessor = Config['collections'][CollectionThatUsesCSSProcessorSlug]
|
|
8
|
+
|
|
9
|
+
export type cssProcessorType = (args: {
|
|
10
|
+
draft: boolean
|
|
11
|
+
req: PayloadRequest
|
|
12
|
+
context: RequestContext
|
|
13
|
+
slug: CollectionThatUsesCSSProcessorSlug
|
|
14
|
+
}) => Promise<string>
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import type { BlocksFieldClientProps } from 'payload'
|
|
2
|
+
import type {
|
|
3
|
+
Config,
|
|
4
|
+
FormSubmission,
|
|
5
|
+
StoredAtomicForm,
|
|
6
|
+
AtomicInputTypes,
|
|
7
|
+
CookiePreferences,
|
|
8
|
+
FormRateLimitBlocks,
|
|
9
|
+
FormSanitationBlocks,
|
|
10
|
+
FormValidationBlocks,
|
|
11
|
+
InputSanitationBlocks,
|
|
12
|
+
InputValidationBlocks,
|
|
13
|
+
FormRateLimitBlockType,
|
|
14
|
+
FormSanitationBlockType,
|
|
15
|
+
FormValidationBlockType,
|
|
16
|
+
InputValidationBlockType,
|
|
17
|
+
InputSanitationBlockType,
|
|
18
|
+
} from '@/ts/types'
|
|
19
|
+
|
|
20
|
+
// /////////////////////////////////////
|
|
21
|
+
// Collection Types
|
|
22
|
+
// /////////////////////////////////////
|
|
23
|
+
|
|
24
|
+
/** Collection slugs where the document type includes storedAtomicForms property. E.g., 'pages' | 'footer' | 'header' */
|
|
25
|
+
export type CollectionsWithStoredFormsSlugs = {
|
|
26
|
+
[K in keyof Config['collections']]: Config['collections'][K] extends { storedAtomicForms?: unknown } ? K : never
|
|
27
|
+
}[keyof Config['collections']]
|
|
28
|
+
|
|
29
|
+
/** Document types from collections that include storedAtomicForms property. E.g., Page | Footer | Header */
|
|
30
|
+
export type CollectionsWithStoredForms = Config['collections'][CollectionsWithStoredFormsSlugs]
|
|
31
|
+
|
|
32
|
+
// /////////////////////////////////////
|
|
33
|
+
// INPUT CLIENT COMPONENT TYPES
|
|
34
|
+
// /////////////////////////////////////
|
|
35
|
+
|
|
36
|
+
export type UsedOn = { block: string; usedOn: AtomicInputTypes }[]
|
|
37
|
+
export interface InputBlocksFieldProps extends BlocksFieldClientProps {
|
|
38
|
+
usedOn: { block: string; usedOn: AtomicInputTypes }[]
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// /////////////////////////////////////
|
|
42
|
+
// UTILITY FUNCTION TYPES
|
|
43
|
+
// /////////////////////////////////////
|
|
44
|
+
|
|
45
|
+
export type FilterSubmissionsByFieldAndValue = (args: {
|
|
46
|
+
fieldName: string
|
|
47
|
+
submissions: FormSubmission[]
|
|
48
|
+
fieldValue: FormDataEntryValue | null
|
|
49
|
+
}) => FormSubmission[]
|
|
50
|
+
|
|
51
|
+
// /////////////////////////////////////
|
|
52
|
+
// DATA TYPES
|
|
53
|
+
// /////////////////////////////////////
|
|
54
|
+
|
|
55
|
+
/** Data that is collected from the client and passed in. */
|
|
56
|
+
type ClientUserData = {
|
|
57
|
+
timezone: string
|
|
58
|
+
preferences: CookiePreferences
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** Data that is collected from the server via headers. */
|
|
62
|
+
type ServerUserData = {
|
|
63
|
+
userAgent: string
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
type ClientAnalyticsData = {
|
|
67
|
+
screenWidth: string
|
|
68
|
+
screenHeight: string
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Data that is collected from the server via headers. */
|
|
72
|
+
type ServerAnalyticsData = {
|
|
73
|
+
referer: string
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export type UserData = ClientUserData & ServerUserData
|
|
77
|
+
export type AnalyticsData = ClientAnalyticsData & ServerAnalyticsData
|
|
78
|
+
|
|
79
|
+
/* Server Functions Response To Client */
|
|
80
|
+
export type FormResponse = {
|
|
81
|
+
/** Whether or not the form submission was/is successful. */
|
|
82
|
+
success: boolean
|
|
83
|
+
/** Input Error Messages. Used for displaying error messages for specific form fields. */
|
|
84
|
+
im: Record<string, string>
|
|
85
|
+
/** Form Message. Used for form error or success messages. */
|
|
86
|
+
fm: string
|
|
87
|
+
/** Submission ID. Used for tracking seperate submissions. */
|
|
88
|
+
submissionID: string
|
|
89
|
+
/** Only contains the actual data submitted by form fields. */
|
|
90
|
+
formData: FormData
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export type SubmitToPayload = { field: string; value: string }[]
|
|
94
|
+
|
|
95
|
+
// /////////////////////////////////////
|
|
96
|
+
// FORM PROCESSOR TYPES
|
|
97
|
+
// /////////////////////////////////////
|
|
98
|
+
|
|
99
|
+
// /////////////////////////////////////
|
|
100
|
+
// Generally Used Types
|
|
101
|
+
|
|
102
|
+
export type AllFormBlockTypes =
|
|
103
|
+
| FormRateLimitBlockType
|
|
104
|
+
| FormSanitationBlockType
|
|
105
|
+
| FormValidationBlockType
|
|
106
|
+
| InputSanitationBlockType
|
|
107
|
+
| InputValidationBlockType
|
|
108
|
+
|
|
109
|
+
export type AllFormBlocks =
|
|
110
|
+
| FormRateLimitBlocks[number]
|
|
111
|
+
| FormSanitationBlocks[number]
|
|
112
|
+
| FormValidationBlocks[number]
|
|
113
|
+
| (InputSanitationBlocks[number] & { inputName: string })
|
|
114
|
+
| (InputValidationBlocks[number] & { inputName: string })
|
|
115
|
+
|
|
116
|
+
/** Contains general context for use in form processor functions. */
|
|
117
|
+
export type FormContext = {
|
|
118
|
+
ip: string
|
|
119
|
+
/** The headers of the request. Grabbed By Next.js headers(). */
|
|
120
|
+
headers: Headers
|
|
121
|
+
/** The page the submission was made from. */
|
|
122
|
+
referer: string
|
|
123
|
+
/** The ID of the backend form. Used for submission. */
|
|
124
|
+
backendFormID: string
|
|
125
|
+
/** Data passed in from the client. */
|
|
126
|
+
clientData: ClientUserData & ClientAnalyticsData
|
|
127
|
+
/** Set by rate limiting functions, as the time to wait until the next request can be made.
|
|
128
|
+
* Set in milliseconds.
|
|
129
|
+
*/
|
|
130
|
+
waitFor?: number
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export type ModifiedStoredAtomicForm = {
|
|
134
|
+
/** The ID of the backend form. Used for submitting formData to payload. */
|
|
135
|
+
backendFormID: string
|
|
136
|
+
} & StoredAtomicForm
|
|
137
|
+
|
|
138
|
+
// /////////////////////////////////////
|
|
139
|
+
// Input Parameters For Methods & Functions
|
|
140
|
+
|
|
141
|
+
/** Input Parameters For Submit Form Function */
|
|
142
|
+
export interface SubmitFormProps {
|
|
143
|
+
formData: FormData
|
|
144
|
+
submissionID: string
|
|
145
|
+
blockID: string | null | undefined
|
|
146
|
+
clientData: ClientUserData & ClientAnalyticsData
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/** Base Parameters For All Functions Used In Form Processor */
|
|
150
|
+
export interface AFPBase {
|
|
151
|
+
formData: FormData
|
|
152
|
+
context: FormContext
|
|
153
|
+
response: FormResponse
|
|
154
|
+
storedForm: ModifiedStoredAtomicForm
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/** Base Parameters For Form Processors public process() and private preProcess(). */
|
|
158
|
+
export type ProcessMethodArgs = {
|
|
159
|
+
headers: Headers
|
|
160
|
+
storedForm: ModifiedStoredAtomicForm
|
|
161
|
+
submissionData: SubmitFormProps
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
type MessageProcessorArgs = {
|
|
165
|
+
/** Validation Message. */
|
|
166
|
+
vm: string
|
|
167
|
+
/** Time in milliseconds to wait until the next request can be made. */
|
|
168
|
+
waitFor?: number
|
|
169
|
+
formData: FormData
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
type RunBlocksArgs = {
|
|
173
|
+
type: AllFormBlockTypes
|
|
174
|
+
block: AllFormBlocks
|
|
175
|
+
persevere?: true
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// /////////////////////////////////////
|
|
179
|
+
// Return Value Types
|
|
180
|
+
|
|
181
|
+
/** Return Value for Form Processor */
|
|
182
|
+
export type FormProcessorReturn = {
|
|
183
|
+
response: FormResponse
|
|
184
|
+
submitToPayload: SubmitToPayload
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// /////////////////////////////////////
|
|
188
|
+
// Function Types
|
|
189
|
+
|
|
190
|
+
export type SubmitFormFunction = (args: SubmitFormProps) => Promise<FormResponse>
|
|
191
|
+
|
|
192
|
+
// /////////////////////////////////////
|
|
193
|
+
// Method Types
|
|
194
|
+
|
|
195
|
+
/** Private Method that modifies the incoming data for use in functions. */
|
|
196
|
+
export type PreProcessMethod = (args: ProcessMethodArgs) => void
|
|
197
|
+
|
|
198
|
+
/** Public Method that actually processes the form.*/
|
|
199
|
+
export type ProcessMethod = (args: ProcessMethodArgs) => Promise<FormProcessorReturn>
|
|
200
|
+
|
|
201
|
+
/** Private Method that modifies the outgoing data for use in storage. */
|
|
202
|
+
export type PostProcessMethod = () => FormProcessorReturn
|
|
203
|
+
|
|
204
|
+
/** Private Method that modifies the response messages. */
|
|
205
|
+
export type MessageProcessorMethod = (args: MessageProcessorArgs) => string
|
|
206
|
+
|
|
207
|
+
/** Private Method that finds and runs a blocks corresponding function.*/
|
|
208
|
+
export type RunBlocksMethod = (args: RunBlocksArgs) => Promise<void>
|
|
209
|
+
|
|
210
|
+
// /////////////////////////////////////
|
|
211
|
+
// Block Function Types
|
|
212
|
+
|
|
213
|
+
export type FormFunction<TArgs extends { block: AllFormBlocks } = { block: AllFormBlocks }> = (args: AFPBase & TArgs) => Promise<AFPBase>
|
|
214
|
+
export type FormFunctionsMap = { [K in AllFormBlocks as K['blockType']]: FormFunction<{ block: K }> }
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
// Front End Types
|
|
2
|
+
import type { ReactNode } from 'react'
|
|
3
|
+
import type { ChildBlocks } from '@/ts/types'
|
|
4
|
+
|
|
5
|
+
// /////////////////////////////////////
|
|
6
|
+
// UTILITY FUNCTION TYPES
|
|
7
|
+
// /////////////////////////////////////
|
|
8
|
+
|
|
9
|
+
export type Apply = Record<string, unknown>
|
|
10
|
+
|
|
11
|
+
export interface AtomicChildReturn {
|
|
12
|
+
/** Props That Can Be Applied To Trigger */
|
|
13
|
+
tp: Apply
|
|
14
|
+
/** Props That Can Be Applied To Backdrop */
|
|
15
|
+
bp: Apply
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export type PassThrough = {
|
|
19
|
+
/** Props that should be spread on target element */
|
|
20
|
+
p?: Record<string, unknown>
|
|
21
|
+
/** Children */
|
|
22
|
+
children?: ReactNode
|
|
23
|
+
/** Data Attributes that should be spread on target element*/
|
|
24
|
+
da?: Record<string, string>
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export type PassThroughs = {
|
|
28
|
+
/** Content Pass Throughs */
|
|
29
|
+
c: PassThrough
|
|
30
|
+
/** Trigger Pass Throughs */
|
|
31
|
+
t: PassThrough
|
|
32
|
+
/** Portal Pass Throughs */
|
|
33
|
+
po: {
|
|
34
|
+
/** Backdrop Pass Throughs */
|
|
35
|
+
b: Omit<PassThrough, 'da'>
|
|
36
|
+
/** Dialog Pass Throughs */
|
|
37
|
+
di: Omit<PassThrough, 'children' | 'da'>
|
|
38
|
+
/** Popover Pass Throughs */
|
|
39
|
+
pop: Omit<PassThrough, 'children' | 'da'>
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// /////////////////////////////////////
|
|
44
|
+
// CHILD TYPES
|
|
45
|
+
// /////////////////////////////////////
|
|
46
|
+
|
|
47
|
+
/** Used for base ui custom components. */
|
|
48
|
+
export interface RenderChild<T extends ChildBlocks[number] | ChildBlocks> {
|
|
49
|
+
/** The block being rendered */
|
|
50
|
+
block: T
|
|
51
|
+
/** All Possible Pass Throughs. Includes spreadable props, children components, and data attributes. */
|
|
52
|
+
pt: PassThroughs
|
|
53
|
+
contentChildren?: ReactNode
|
|
54
|
+
triggerChildren?: ReactNode
|
|
55
|
+
backdropChildren?: ReactNode
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** {@link RenderChildrenProps} */
|
|
59
|
+
export type RenderChildrenProps = React.FC<{
|
|
60
|
+
blocks?: ChildBlocks | null
|
|
61
|
+
}>
|
|
62
|
+
|
|
63
|
+
// /////////////////////////////////////
|
|
64
|
+
// ATOMIC STORE TYPES
|
|
65
|
+
// /////////////////////////////////////
|
|
66
|
+
|
|
67
|
+
type PersistedProp = boolean | null | undefined
|
|
68
|
+
export type ImplementedStorageTypes = boolean | string | Record<string, string>
|
|
69
|
+
|
|
70
|
+
export type AtomicStoreInitialState = {
|
|
71
|
+
version: number
|
|
72
|
+
//storedAtomicActions: StoredAtomicActions
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface AtomicStoreProviderProps {
|
|
76
|
+
children: ReactNode
|
|
77
|
+
initialState: AtomicStoreInitialState
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export type BaseSlice = {
|
|
81
|
+
hydrated: boolean
|
|
82
|
+
setHydrated: (hydrated: boolean) => void
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface DynamicSlice {
|
|
86
|
+
memory: Record<string, ImplementedStorageTypes>
|
|
87
|
+
persisted: Record<string, ImplementedStorageTypes>
|
|
88
|
+
removeValue: (key: string, persisted: PersistedProp) => void
|
|
89
|
+
getValue: (key: string, persisted: PersistedProp) => ImplementedStorageTypes
|
|
90
|
+
setValue: (key: string, value: ImplementedStorageTypes, persisted: PersistedProp) => void
|
|
91
|
+
//clearStorage: (persisted: PersistedProp) => void
|
|
92
|
+
//setMultiple: (entries: Array<{ key: string; value: ImplementedStorageTypes; persisted: PersistedProp }>) => void
|
|
93
|
+
//getMultiple: (keys: Array<{ key: string; persisted: PersistedProp }>) => Record<string, ImplementedStorageTypes>
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export interface ConsentPreferences {
|
|
97
|
+
functional: boolean
|
|
98
|
+
security: boolean
|
|
99
|
+
analytics: boolean
|
|
100
|
+
marketing: boolean
|
|
101
|
+
userData: boolean
|
|
102
|
+
adPersonalization: boolean
|
|
103
|
+
contentPersonalization: boolean
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export interface ConsentSlice {
|
|
107
|
+
hasConsented: boolean | null
|
|
108
|
+
preferences: ConsentPreferences
|
|
109
|
+
previouslyConsented: boolean | null
|
|
110
|
+
declineCookies: () => void
|
|
111
|
+
acceptCookies: (preferences?: Partial<ConsentPreferences>) => void
|
|
112
|
+
setPreference: (category: keyof ConsentPreferences, value: boolean) => void
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export type AtomicStore = BaseSlice & ConsentSlice & DynamicSlice
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Config, ChildBlockType, ActionBlockType } from '@/ts/types'
|
|
2
|
+
import type { BlockSlug, CollectionSlug } from 'payload'
|
|
3
|
+
export * from './apf'
|
|
4
|
+
export * from './css'
|
|
5
|
+
export * from './cache'
|
|
6
|
+
export * from './forms'
|
|
7
|
+
export * from './actions'
|
|
8
|
+
export * from './frontEnd'
|
|
9
|
+
export * from './payload-types'
|
|
10
|
+
|
|
11
|
+
// /////////////////////////////////////
|
|
12
|
+
// Miscellaneous Types
|
|
13
|
+
// /////////////////////////////////////
|
|
14
|
+
|
|
15
|
+
export type StringKeyOf<T> = Extract<keyof T, string>
|
|
16
|
+
|
|
17
|
+
/** The type used by the atomic child block's for depth management */
|
|
18
|
+
export type DepthControls = {
|
|
19
|
+
/** Current content blocks depth. */
|
|
20
|
+
cd: number
|
|
21
|
+
/** The maximum content blocks depth. */
|
|
22
|
+
cmd: number
|
|
23
|
+
/** The current trigger blocks depth. */
|
|
24
|
+
td: number
|
|
25
|
+
/** The maximum trigger blocks depth. */
|
|
26
|
+
tmd: number
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export type DotNestedKeys<T> = T extends object
|
|
30
|
+
? {
|
|
31
|
+
[K in keyof T & (string | number)]: T[K] extends object ? `${K}` | `${K}.${DotNestedKeys<T[K]>}` : `${K}`
|
|
32
|
+
}[keyof T & (string | number)]
|
|
33
|
+
: never
|
|
34
|
+
|
|
35
|
+
export type Last<T extends any[]> = T extends [...infer _, infer L] ? L : never
|
|
36
|
+
|
|
37
|
+
// /////////////////////////////////////
|
|
38
|
+
// Payload Types
|
|
39
|
+
// /////////////////////////////////////
|
|
40
|
+
export type AllBlocks = Config['blocks'][keyof Config['blocks']]
|
|
41
|
+
export type AllCollections = Config['collections'][keyof Config['collections']]
|
|
42
|
+
|
|
43
|
+
export type CollectionBySlug<T extends CollectionSlug> = Config['collections'][T]
|
|
44
|
+
|
|
45
|
+
export type BlockBySlug<T extends BlockSlug> = Config['blocks'][T]
|
|
46
|
+
export type ChildBySlug<T extends ChildBlockType> = BlockBySlug<T>
|
|
47
|
+
export type ActionBySlug<T extends ActionBlockType> = BlockBySlug<T>
|
|
48
|
+
|
|
49
|
+
export type AllBlockDotNestedKeys = DotNestedKeys<AllBlocks>
|