payload 0.20.1 → 0.20.4-beta.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/.eslintrc.js +21 -0
- package/CHANGELOG.md +33 -1
- package/components/elements.ts +1 -0
- package/components/index.js +2 -2
- package/components/styles.css +1 -1
- package/dist/admin/assets/fonts/SuisseIntl-Medium.woff +0 -0
- package/dist/admin/assets/fonts/SuisseIntl-Medium.woff2 +0 -0
- package/dist/admin/assets/fonts/merriweather-v30-latin-700.woff +0 -0
- package/dist/admin/assets/fonts/merriweather-v30-latin-700.woff2 +0 -0
- package/dist/admin/assets/fonts/merriweather-v30-latin-700italic.woff +0 -0
- package/dist/admin/assets/fonts/merriweather-v30-latin-700italic.woff2 +0 -0
- package/dist/admin/assets/fonts/merriweather-v30-latin-italic.woff +0 -0
- package/dist/admin/assets/fonts/merriweather-v30-latin-italic.woff2 +0 -0
- package/dist/admin/assets/fonts/merriweather-v30-latin-regular.woff +0 -0
- package/dist/admin/assets/fonts/merriweather-v30-latin-regular.woff2 +0 -0
- package/dist/admin/components/{forms/DraggableSection/ActionPanel → elements/ArrayAction}/index.d.ts +1 -2
- package/dist/admin/components/elements/ArrayAction/index.js +44 -0
- package/dist/admin/components/elements/ArrayAction/index.scss +54 -0
- package/dist/admin/components/elements/ArrayAction/types.d.ts +8 -0
- package/dist/admin/components/{forms/DraggableSection/ActionPanel → elements/ArrayAction}/types.js +0 -0
- package/dist/admin/components/elements/Banner/index.scss +13 -12
- package/dist/admin/components/elements/Button/index.js +2 -1
- package/dist/admin/components/elements/Button/index.scss +22 -21
- package/dist/admin/components/elements/Button/types.d.ts +2 -0
- package/dist/admin/components/elements/Card/index.js +3 -2
- package/dist/admin/components/elements/Card/index.scss +2 -2
- package/dist/admin/components/elements/Card/types.d.ts +1 -0
- package/dist/admin/components/{forms/DraggableSection/PositionPanel → elements/Collapsible}/index.d.ts +1 -2
- package/dist/admin/components/elements/Collapsible/index.js +43 -0
- package/dist/admin/components/elements/Collapsible/index.scss +113 -0
- package/dist/admin/components/elements/Collapsible/provider.d.ts +8 -0
- package/dist/admin/components/elements/Collapsible/provider.js +7 -0
- package/dist/admin/components/{forms/FieldTypeGutter → elements/Collapsible}/types.d.ts +7 -4
- package/dist/admin/components/{forms/DraggableSection/PositionPanel → elements/Collapsible}/types.js +0 -0
- package/dist/admin/components/elements/ColumnSelector/index.js +6 -3
- package/dist/admin/components/elements/ColumnSelector/index.scss +10 -1
- package/dist/admin/components/elements/DatePicker/index.scss +92 -47
- package/dist/admin/components/elements/DeleteDocument/index.js +5 -5
- package/dist/admin/components/elements/DeleteDocument/index.scss +5 -0
- package/dist/admin/components/elements/DeleteDocument/types.d.ts +1 -0
- package/dist/admin/components/elements/DuplicateDocument/index.js +1 -1
- package/dist/admin/components/elements/Eyebrow/index.js +4 -2
- package/dist/admin/components/elements/Eyebrow/index.scss +10 -6
- package/dist/admin/components/elements/FileDetails/index.scss +4 -4
- package/dist/admin/components/elements/GenerateConfirmation/index.js +1 -1
- package/dist/admin/components/elements/GenerateConfirmation/index.scss +5 -0
- package/dist/admin/components/elements/Gutter/index.d.ts +13 -0
- package/dist/admin/components/elements/Gutter/index.js +16 -0
- package/dist/admin/components/elements/Gutter/index.scss +19 -0
- package/dist/admin/components/elements/IDLabel/index.scss +2 -2
- package/dist/admin/components/elements/Loading/index.js +1 -1
- package/dist/admin/components/elements/Localizer/index.scss +2 -1
- package/dist/admin/components/elements/Nav/index.scss +12 -7
- package/dist/admin/components/elements/Paginator/ClickableArrow/index.scss +2 -2
- package/dist/admin/components/elements/Paginator/index.scss +5 -5
- package/dist/admin/components/elements/PerPage/index.js +1 -1
- package/dist/admin/components/elements/PerPage/index.scss +1 -2
- package/dist/admin/components/elements/Pill/index.scss +20 -16
- package/dist/admin/components/elements/Popup/PopupButton/index.js +2 -1
- package/dist/admin/components/elements/Popup/PopupButton/types.d.ts +1 -0
- package/dist/admin/components/elements/Popup/index.js +7 -7
- package/dist/admin/components/elements/Popup/index.scss +20 -17
- package/dist/admin/components/elements/Popup/types.d.ts +1 -0
- package/dist/admin/components/elements/ReactSelect/index.scss +20 -12
- package/dist/admin/components/elements/SortComplex/index.scss +3 -2
- package/dist/admin/components/elements/Status/index.js +2 -2
- package/dist/admin/components/elements/Status/index.scss +5 -0
- package/dist/admin/components/elements/StepNav/index.scss +0 -6
- package/dist/admin/components/elements/Table/index.js +2 -2
- package/dist/admin/components/elements/Table/index.scss +7 -4
- package/dist/admin/components/elements/Tooltip/index.scss +9 -9
- package/dist/admin/components/elements/UploadCard/index.scss +1 -1
- package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/index.scss +3 -3
- package/dist/admin/components/elements/WhereBuilder/Condition/index.js +2 -2
- package/dist/admin/components/elements/WhereBuilder/index.js +1 -1
- package/dist/admin/components/elements/WhereBuilder/index.scss +1 -1
- package/dist/admin/components/forms/Error/index.scss +2 -3
- package/dist/admin/components/forms/FieldDescription/index.js +6 -2
- package/dist/admin/components/forms/FieldDescription/index.scss +1 -1
- package/dist/admin/components/forms/FieldDescription/types.d.ts +3 -2
- package/dist/admin/components/forms/FieldDescription/types.js +1 -1
- package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.js +17 -0
- package/dist/admin/components/forms/Form/fieldReducer.js +18 -0
- package/dist/admin/components/forms/Label/index.scss +2 -2
- package/dist/admin/components/forms/RenderFields/index.js +2 -2
- package/dist/admin/components/forms/RenderFields/types.d.ts +1 -0
- package/dist/admin/components/forms/Submit/index.js +2 -2
- package/dist/admin/components/forms/field-types/Array/Array.js +93 -12
- package/dist/admin/components/forms/field-types/Array/index.scss +33 -35
- package/dist/admin/components/forms/field-types/Blocks/BlockSelector/BlockSelection/index.scss +3 -1
- package/dist/admin/components/forms/field-types/Blocks/Blocks.js +83 -37
- package/dist/admin/components/forms/{DraggableSection → field-types/Blocks}/SectionTitle/index.d.ts +0 -0
- package/dist/admin/components/forms/{DraggableSection → field-types/Blocks}/SectionTitle/index.js +8 -6
- package/dist/admin/components/forms/field-types/Blocks/SectionTitle/index.scss +49 -0
- package/dist/admin/components/forms/{DraggableSection → field-types/Blocks}/SectionTitle/types.d.ts +0 -1
- package/dist/admin/components/forms/{DraggableSection → field-types/Blocks}/SectionTitle/types.js +0 -0
- package/dist/admin/components/forms/field-types/Blocks/index.scss +53 -27
- package/dist/admin/components/forms/field-types/Checkbox/index.js +1 -1
- package/dist/admin/components/forms/field-types/Checkbox/index.scss +2 -2
- package/dist/admin/components/forms/field-types/Code/Code.js +4 -4
- package/dist/admin/components/forms/field-types/Code/index.scss +4 -4
- package/dist/admin/components/forms/{FieldTypeGutter → field-types/Collapsible}/index.d.ts +2 -2
- package/dist/admin/components/forms/field-types/Collapsible/index.js +44 -0
- package/dist/admin/components/forms/field-types/Collapsible/index.scss +11 -0
- package/dist/admin/components/forms/field-types/Collapsible/types.d.ts +8 -0
- package/dist/admin/components/forms/{DraggableSection → field-types/Collapsible}/types.js +0 -0
- package/dist/admin/components/forms/field-types/ConfirmPassword/index.js +2 -2
- package/dist/admin/components/forms/field-types/ConfirmPassword/index.scss +9 -9
- package/dist/admin/components/forms/field-types/DateTime/index.js +1 -1
- package/dist/admin/components/forms/field-types/DateTime/index.scss +1 -1
- package/dist/admin/components/forms/field-types/Email/index.js +1 -1
- package/dist/admin/components/forms/field-types/Email/index.scss +8 -8
- package/dist/admin/components/forms/field-types/Group/index.js +11 -14
- package/dist/admin/components/forms/field-types/Group/index.scss +25 -37
- package/dist/admin/components/forms/field-types/HiddenInput/index.js +1 -1
- package/dist/admin/components/forms/field-types/Number/index.js +2 -2
- package/dist/admin/components/forms/field-types/Number/index.scss +9 -9
- package/dist/admin/components/forms/field-types/Password/index.js +2 -2
- package/dist/admin/components/forms/field-types/Password/index.scss +9 -9
- package/dist/admin/components/forms/field-types/Point/index.js +4 -4
- package/dist/admin/components/forms/field-types/Point/index.scss +9 -9
- package/dist/admin/components/forms/field-types/RadioGroup/Input.d.ts +22 -0
- package/dist/admin/components/forms/field-types/RadioGroup/Input.js +41 -0
- package/dist/admin/components/forms/field-types/RadioGroup/RadioInput/index.js +1 -1
- package/dist/admin/components/forms/field-types/RadioGroup/RadioInput/index.scss +4 -4
- package/dist/admin/components/forms/field-types/RadioGroup/RadioInput/types.d.ts +2 -1
- package/dist/admin/components/forms/field-types/RadioGroup/index.d.ts +0 -1
- package/dist/admin/components/forms/field-types/RadioGroup/index.js +2 -35
- package/dist/admin/components/forms/field-types/RadioGroup/types.d.ts +1 -0
- package/dist/admin/components/forms/field-types/Relationship/index.js +1 -1
- package/dist/admin/components/forms/field-types/Relationship/index.scss +4 -4
- package/dist/admin/components/forms/field-types/RichText/RichText.js +30 -31
- package/dist/admin/components/forms/field-types/RichText/elements/link/index.js +1 -1
- package/dist/admin/components/forms/field-types/RichText/elements/link/index.scss +6 -6
- package/dist/admin/components/forms/field-types/RichText/elements/ol/index.d.ts +1 -0
- package/dist/admin/components/forms/field-types/RichText/elements/ol/index.js +2 -1
- package/dist/admin/components/forms/field-types/RichText/elements/ol/index.scss +7 -0
- package/dist/admin/components/forms/field-types/RichText/elements/relationship/Button/index.js +1 -1
- package/dist/admin/components/forms/field-types/RichText/elements/relationship/Button/index.scss +5 -3
- package/dist/admin/components/forms/field-types/RichText/elements/relationship/Element/index.scss +13 -2
- package/dist/admin/components/forms/field-types/RichText/elements/ul/index.d.ts +1 -0
- package/dist/admin/components/forms/field-types/RichText/elements/ul/index.js +2 -1
- package/dist/admin/components/forms/field-types/RichText/elements/ul/index.scss +7 -0
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/EditModal/index.scss +6 -2
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/index.js +1 -1
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/index.scss +17 -4
- package/dist/admin/components/forms/field-types/RichText/elements/upload/addSwapModals.scss +2 -0
- package/dist/admin/components/forms/field-types/RichText/index.scss +66 -20
- package/dist/admin/components/forms/field-types/Select/Input.js +1 -1
- package/dist/admin/components/forms/field-types/Select/index.scss +1 -1
- package/dist/admin/components/forms/field-types/Tabs/index.d.ts +5 -0
- package/dist/admin/components/forms/field-types/Tabs/index.js +36 -0
- package/dist/admin/components/forms/field-types/Tabs/index.scss +91 -0
- package/dist/admin/components/forms/field-types/Tabs/types.d.ts +8 -0
- package/dist/admin/components/forms/{FieldTypeGutter → field-types/Tabs}/types.js +0 -0
- package/dist/admin/components/forms/field-types/Text/Input.js +2 -2
- package/dist/admin/components/forms/field-types/Text/index.scss +9 -9
- package/dist/admin/components/forms/field-types/Textarea/Input.js +2 -2
- package/dist/admin/components/forms/field-types/Textarea/index.scss +1 -1
- package/dist/admin/components/forms/field-types/Upload/Add/index.js +1 -3
- package/dist/admin/components/forms/field-types/Upload/Add/index.scss +2 -0
- package/dist/admin/components/forms/field-types/Upload/SelectExisting/index.scss +2 -0
- package/dist/admin/components/forms/field-types/Upload/index.scss +2 -2
- package/dist/admin/components/forms/field-types/index.d.ts +2 -0
- package/dist/admin/components/forms/field-types/index.js +4 -0
- package/dist/admin/components/forms/field-types/rowReducer.d.ts +39 -1
- package/dist/admin/components/forms/field-types/rowReducer.js +18 -5
- package/dist/admin/components/forms/useField/index.js +4 -5
- package/dist/admin/components/graphics/Account/index.js +14 -4
- package/dist/admin/components/graphics/Icon/index.js +9 -3
- package/dist/admin/components/graphics/Logo/index.js +16 -10
- package/dist/admin/components/icons/Calendar/index.scss +1 -1
- package/dist/admin/components/icons/Check/index.scss +1 -1
- package/dist/admin/components/icons/Chevron/index.scss +1 -1
- package/dist/admin/components/icons/CloseMenu/index.scss +1 -1
- package/dist/admin/components/icons/Copy/index.scss +1 -1
- package/dist/admin/components/icons/Drag/index.d.ts +6 -0
- package/dist/admin/components/icons/Drag/index.js +13 -0
- package/dist/admin/components/icons/Drag/index.scss +10 -0
- package/dist/admin/components/icons/Edit/index.scss +1 -1
- package/dist/admin/components/icons/IndentLeft/index.scss +2 -2
- package/dist/admin/components/icons/IndentRight/index.js +1 -1
- package/dist/admin/components/icons/IndentRight/index.scss +2 -2
- package/dist/admin/components/icons/LogOut/index.scss +1 -1
- package/dist/admin/components/icons/Menu/index.d.ts +1 -0
- package/dist/admin/components/icons/Menu/index.js +5 -4
- package/dist/admin/components/icons/Menu/index.scss +7 -0
- package/dist/admin/components/icons/More/index.d.ts +6 -0
- package/dist/admin/components/icons/More/index.js +10 -0
- package/dist/admin/components/icons/More/index.scss +10 -0
- package/dist/admin/components/icons/Plus/index.scss +1 -1
- package/dist/admin/components/icons/Relationship/index.scss +1 -1
- package/dist/admin/components/icons/Search/index.d.ts +1 -0
- package/dist/admin/components/icons/Search/index.js +4 -3
- package/dist/admin/components/icons/Search/index.scss +11 -0
- package/dist/admin/components/icons/Swap/index.scss +1 -1
- package/dist/admin/components/icons/Upload/index.scss +1 -1
- package/dist/admin/components/icons/X/index.d.ts +3 -1
- package/dist/admin/components/icons/X/index.js +4 -1
- package/dist/admin/components/icons/X/index.scss +1 -1
- package/dist/admin/components/modals/LeaveWithoutSaving/index.js +1 -1
- package/dist/admin/components/modals/LeaveWithoutSaving/index.scss +5 -0
- package/dist/admin/components/modals/StayLoggedIn/index.js +1 -1
- package/dist/admin/components/modals/StayLoggedIn/index.scss +5 -0
- package/dist/admin/components/templates/Default/index.scss +1 -7
- package/dist/admin/components/utilities/DocumentInfo/index.js +11 -0
- package/dist/admin/components/utilities/DocumentInfo/types.d.ts +2 -0
- package/dist/admin/components/utilities/Theme/index.d.ts +13 -0
- package/dist/admin/components/utilities/Theme/index.js +47 -0
- package/dist/admin/components/views/Account/Default.js +9 -4
- package/dist/admin/components/views/Account/ToggleTheme/index.d.ts +2 -0
- package/dist/admin/components/views/Account/ToggleTheme/index.js +23 -0
- package/dist/admin/components/views/Account/index.js +12 -14
- package/dist/admin/components/views/Account/index.scss +37 -21
- package/dist/admin/components/views/CreateFirstUser/index.js +4 -6
- package/dist/admin/components/views/Dashboard/Default.js +5 -4
- package/dist/admin/components/views/Dashboard/index.scss +3 -11
- package/dist/admin/components/views/Global/Default.js +3 -2
- package/dist/admin/components/views/Global/index.js +12 -14
- package/dist/admin/components/views/Global/index.scss +22 -22
- package/dist/admin/components/views/NotFound/index.d.ts +0 -1
- package/dist/admin/components/views/NotFound/index.js +2 -2
- package/dist/admin/components/views/Version/Compare/index.scss +3 -3
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +4 -4
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +1 -1
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +2 -1
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +1 -1
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +7 -0
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +8 -0
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Text/index.js +2 -1
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Text/index.scss +1 -1
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/index.d.ts +6 -0
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/index.js +3 -0
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/styles.d.ts +13 -0
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/styles.js +13 -0
- package/dist/admin/components/views/Version/RenderFieldsToDiff/index.js +5 -1
- package/dist/admin/components/views/Version/Restore/index.js +1 -1
- package/dist/admin/components/views/Version/Restore/index.scss +5 -0
- package/dist/admin/components/views/Version/Version.js +2 -1
- package/dist/admin/components/views/Version/index.scss +4 -7
- package/dist/admin/components/views/Versions/index.js +3 -2
- package/dist/admin/components/views/Versions/index.scss +2 -12
- package/dist/admin/components/views/collections/Edit/Auth/index.scss +3 -2
- package/dist/admin/components/views/collections/Edit/Default.js +5 -4
- package/dist/admin/components/views/collections/Edit/Upload/index.scss +5 -5
- package/dist/admin/components/views/collections/Edit/index.js +16 -18
- package/dist/admin/components/views/collections/Edit/index.scss +20 -21
- package/dist/admin/components/views/collections/List/Cell/field-types/Checkbox/index.scss +4 -4
- package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.scss +4 -4
- package/dist/admin/components/views/collections/List/Cell/field-types/Relationship/index.d.ts +1 -0
- package/dist/admin/components/views/collections/List/Cell/field-types/Relationship/index.js +41 -34
- package/dist/admin/components/views/collections/List/Cell/field-types/Relationship/index.scss +3 -0
- package/dist/admin/components/views/collections/List/Cell/field-types/Upload/index.d.ts +0 -5
- package/dist/admin/components/views/collections/List/Cell/field-types/Upload/index.js +0 -4
- package/dist/admin/components/views/collections/List/Cell/field-types/index.d.ts +1 -3
- package/dist/admin/components/views/collections/List/Cell/field-types/index.js +1 -2
- package/dist/admin/components/views/collections/List/Default.js +8 -6
- package/dist/admin/components/views/collections/List/RelationshipProvider/index.d.ts +19 -0
- package/dist/admin/components/views/collections/List/RelationshipProvider/index.js +46 -0
- package/dist/admin/components/views/collections/List/RelationshipProvider/reducer.d.ts +18 -0
- package/dist/admin/components/views/collections/List/RelationshipProvider/reducer.js +34 -0
- package/dist/admin/components/views/collections/List/buildColumns.js +26 -31
- package/dist/admin/components/views/collections/List/getInitialColumns.js +25 -23
- package/dist/admin/components/views/collections/List/index.js +2 -2
- package/dist/admin/components/views/collections/List/index.scss +4 -15
- package/dist/admin/index.js +7 -5
- package/dist/admin/scss/app.scss +52 -14
- package/dist/admin/scss/colors.scss +245 -0
- package/dist/admin/scss/fonts.scss +41 -14
- package/dist/admin/scss/resets.scss +1 -0
- package/dist/admin/scss/styles.scss +0 -2
- package/dist/admin/scss/toastify.scss +12 -8
- package/dist/admin/scss/type.scss +11 -9
- package/dist/admin/scss/vars.scss +50 -53
- package/dist/admin/utilities/flattenTopLevelFields.d.ts +3 -0
- package/dist/admin/utilities/flattenTopLevelFields.js +30 -0
- package/dist/admin/utilities/getOffsetTop.d.ts +1 -2
- package/dist/admin/utilities/getOffsetTop.js +1 -1
- package/dist/admin/utilities/scrollToID.d.ts +1 -0
- package/dist/admin/utilities/scrollToID.js +10 -0
- package/dist/auth/operations/access.js +6 -1
- package/dist/bin/generateTypes.js +11 -2
- package/dist/collections/graphql/init.js +2 -2
- package/dist/collections/operations/local/create.js +1 -1
- package/dist/collections/tests/collections.spec.js +1 -78
- package/dist/config/defaults.js +1 -2
- package/dist/config/schema.js +2 -2
- package/dist/config/types.d.ts +2 -2
- package/dist/express/admin.js +2 -2
- package/dist/fields/config/sanitize.js +8 -1
- package/dist/fields/config/schema.d.ts +2 -0
- package/dist/fields/config/schema.js +19 -7
- package/dist/fields/config/types.d.ts +19 -11
- package/dist/fields/config/types.js +2 -2
- package/dist/fields/hooks/afterChange/promise.js +18 -2
- package/dist/fields/hooks/afterRead/promise.js +22 -2
- package/dist/fields/hooks/beforeChange/promise.js +25 -2
- package/dist/fields/hooks/beforeValidate/promise.js +20 -2
- package/dist/fields/richText/recurseNestedFields.js +15 -1
- package/dist/graphql/schema/buildMutationInputType.d.ts +4 -1
- package/dist/graphql/schema/buildMutationInputType.js +94 -70
- package/dist/graphql/schema/buildObjectType.d.ts +5 -3
- package/dist/graphql/schema/buildObjectType.js +114 -71
- package/dist/graphql/schema/buildPoliciesType.js +9 -1
- package/dist/graphql/schema/buildWhereInputType.js +2 -2
- package/dist/graphql/schema/fieldToWhereInputSchemaMap.js +56 -7
- package/dist/graphql/schema/withNullableType.js +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +9 -7
- package/dist/mongoose/buildSchema.js +28 -7
- package/dist/mongoose/connect.d.ts +1 -1
- package/dist/mongoose/connect.js +24 -19
- package/dist/mongoose/testCredentials.d.ts +7 -7
- package/dist/mongoose/testCredentials.js +1 -1
- package/dist/utilities/mapAsync.d.ts +1 -0
- package/dist/utilities/mapAsync.js +8 -0
- package/dist/webpack/getBaseConfig.js +1 -2
- package/docs/admin/customizing-css.mdx +16 -28
- package/docs/fields/collapsible.mdx +44 -0
- package/docs/fields/date.mdx +1 -1
- package/docs/fields/email.mdx +1 -1
- package/docs/fields/group.mdx +1 -1
- package/docs/fields/number.mdx +1 -1
- package/docs/fields/overview.mdx +1 -0
- package/docs/fields/point.mdx +1 -1
- package/docs/fields/radio.mdx +1 -1
- package/docs/fields/relationship.mdx +1 -1
- package/docs/fields/rich-text.mdx +1 -1
- package/docs/fields/row.mdx +1 -1
- package/docs/fields/select.mdx +1 -1
- package/docs/fields/tabs.mdx +9 -0
- package/docs/fields/text.mdx +1 -1
- package/docs/fields/textarea.mdx +1 -1
- package/docs/fields/ui.mdx +1 -1
- package/docs/fields/upload.mdx +1 -1
- package/package.json +13 -11
- package/scss/index.scss +0 -7
- package/dist/admin/assets/fonts/SuisseIntl-Light.woff +0 -0
- package/dist/admin/assets/fonts/SuisseIntl-Light.woff2 +0 -0
- package/dist/admin/assets/fonts/SuisseIntl-Thin.woff +0 -0
- package/dist/admin/assets/fonts/SuisseIntl-Thin.woff2 +0 -0
- package/dist/admin/components/forms/DraggableSection/ActionPanel/index.js +0 -22
- package/dist/admin/components/forms/DraggableSection/ActionPanel/index.scss +0 -12
- package/dist/admin/components/forms/DraggableSection/ActionPanel/types.d.ts +0 -11
- package/dist/admin/components/forms/DraggableSection/PositionPanel/index.js +0 -18
- package/dist/admin/components/forms/DraggableSection/PositionPanel/index.scss +0 -21
- package/dist/admin/components/forms/DraggableSection/PositionPanel/types.d.ts +0 -6
- package/dist/admin/components/forms/DraggableSection/SectionTitle/index.scss +0 -37
- package/dist/admin/components/forms/DraggableSection/index.d.ts +0 -5
- package/dist/admin/components/forms/DraggableSection/index.js +0 -40
- package/dist/admin/components/forms/DraggableSection/index.scss +0 -113
- package/dist/admin/components/forms/DraggableSection/types.d.ts +0 -24
- package/dist/admin/components/forms/FieldTypeGutter/context.d.ts +0 -6
- package/dist/admin/components/forms/FieldTypeGutter/context.js +0 -9
- package/dist/admin/components/forms/FieldTypeGutter/index.js +0 -18
- package/dist/admin/components/forms/FieldTypeGutter/index.scss +0 -87
- package/dist/admin/components/views/NotFound/index.scss +0 -10
- package/dist/collections/tests/uploads.spec.d.ts +0 -1
- package/dist/collections/tests/uploads.spec.js +0 -365
- package/dist/errors/errors.spec.d.ts +0 -1
- package/dist/errors/errors.spec.js +0 -29
- package/dist/utilities/flattenTopLevelFields.d.ts +0 -2
- package/dist/utilities/flattenTopLevelFields.js +0 -16
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Collapsible Field
|
|
3
|
+
label: Collapsible
|
|
4
|
+
order: 60
|
|
5
|
+
desc: With the Collapsible field, you can place fields within a collapsible layout component that can be collapsed / expanded.
|
|
6
|
+
keywords: row, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<Banner >
|
|
10
|
+
The Collapsible field is presentational-only and only affects the Admin panel. By using it, you can place fields within a nice layout component that can be collapsed / expanded.
|
|
11
|
+
</Banner>
|
|
12
|
+
|
|
13
|
+
### Config
|
|
14
|
+
|
|
15
|
+
| Option | Description |
|
|
16
|
+
| ---------------- | ----------- |
|
|
17
|
+
| **`label`** * | A label to render within the header of the collapsible component. |
|
|
18
|
+
| **`fields`** * | Array of field types to nest within this Collapsible. |
|
|
19
|
+
| **`admin`** | Admin-specific configuration. See the [default field admin config](/docs/fields/overview#admin-config) for more details. |
|
|
20
|
+
|
|
21
|
+
*\* An asterisk denotes that a property is required.*
|
|
22
|
+
|
|
23
|
+
### Example
|
|
24
|
+
|
|
25
|
+
`collections/ExampleCollection.js`
|
|
26
|
+
```js
|
|
27
|
+
{
|
|
28
|
+
slug: 'example-collection',
|
|
29
|
+
fields: [
|
|
30
|
+
{
|
|
31
|
+
label: 'Header of collapsible goes here',
|
|
32
|
+
type: 'collapsible', // required
|
|
33
|
+
fields: [ // required
|
|
34
|
+
{
|
|
35
|
+
name: 'someTextField',
|
|
36
|
+
type: 'text',
|
|
37
|
+
required: true,
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
```
|
package/docs/fields/date.mdx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Date Field
|
|
3
3
|
label: Date
|
|
4
|
-
order:
|
|
4
|
+
order: 70
|
|
5
5
|
desc: The Date field type stores a Date in the database. Learn how to use and customize the Date field, see examples and options.
|
|
6
6
|
keywords: date, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
package/docs/fields/email.mdx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Email Field
|
|
3
3
|
label: Email
|
|
4
|
-
order:
|
|
4
|
+
order: 80
|
|
5
5
|
desc: The Email field enforces that the value provided is a valid email address. Learn how to use Email fields, see examples and options.
|
|
6
6
|
keywords: email, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
package/docs/fields/group.mdx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Group Field
|
|
3
3
|
label: Group
|
|
4
|
-
order:
|
|
4
|
+
order: 90
|
|
5
5
|
desc: The Group field allows other fields to be nested under a common property. Learn how to use Group fields, see examples and options.
|
|
6
6
|
keywords: group, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
package/docs/fields/number.mdx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Number Field
|
|
3
3
|
label: Number
|
|
4
|
-
order:
|
|
4
|
+
order: 100
|
|
5
5
|
desc: Number fields store and validate numeric data. Learn how to use and format Number fields, see examples and Number field options.
|
|
6
6
|
keywords: number, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
package/docs/fields/overview.mdx
CHANGED
|
@@ -38,6 +38,7 @@ const Pages = {
|
|
|
38
38
|
- [Blocks](/docs/fields/blocks) - block-based fields, allowing powerful layout creation
|
|
39
39
|
- [Checkbox](/docs/fields/checkbox) - boolean true / false checkbox
|
|
40
40
|
- [Code](/docs/fields/code) - code editor that saves a string to the database
|
|
41
|
+
- [Collapsible](/docs/fields/collapsible) - used for admin layout, nest fields within a collapsible component
|
|
41
42
|
- [Date](/docs/fields/date) - date / time field that saves a timestamp
|
|
42
43
|
- [Email](/docs/fields/email) - validates the entry is a properly formatted email
|
|
43
44
|
- [Group](/docs/fields/group) - nest fields within an object
|
package/docs/fields/point.mdx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Point Field
|
|
3
3
|
label: Point
|
|
4
|
-
order:
|
|
4
|
+
order: 110
|
|
5
5
|
desc: The Point field type stores coordinates in the database. Learn how to use Point field for geolocation and geometry.
|
|
6
6
|
|
|
7
7
|
keywords: point, geolocation, geospatial, geojson, 2dsphere, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
package/docs/fields/radio.mdx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Radio Field
|
|
3
3
|
label: Radio Group
|
|
4
|
-
order:
|
|
4
|
+
order: 120
|
|
5
5
|
desc: The Radio field type allows for the selection of one value from a predefined set of possible values. Learn how to use Radio fields, see examples and options.
|
|
6
6
|
keywords: radio, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Relationship Field
|
|
3
3
|
label: Relationship
|
|
4
|
-
order:
|
|
4
|
+
order: 130
|
|
5
5
|
desc: The Relationship field provides the ability to relate documents together. Learn how to use Relationship fields, see examples and options.
|
|
6
6
|
keywords: relationship, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Rich Text Field
|
|
3
3
|
label: Rich Text
|
|
4
|
-
order:
|
|
4
|
+
order: 140
|
|
5
5
|
desc: The Rich Text field allows dynamic content to be written through the Admin Panel. Learn how to use Rich Text fields, see examples and options.
|
|
6
6
|
keywords: rich text, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
package/docs/fields/row.mdx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Row Field
|
|
3
3
|
label: Row
|
|
4
|
-
order:
|
|
4
|
+
order: 150
|
|
5
5
|
desc: With the Row field you can arrange fields next to each other in the Admin Panel to help you customize your Dashboard.
|
|
6
6
|
keywords: row, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
package/docs/fields/select.mdx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Select Field
|
|
3
3
|
label: Select
|
|
4
|
-
order:
|
|
4
|
+
order: 160
|
|
5
5
|
desc: The Select field provides a dropdown-style interface for choosing options from a predefined list. Learn how to use Select fields, see examples and options.
|
|
6
6
|
keywords: select, multi-select, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
package/docs/fields/text.mdx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Text Field
|
|
3
3
|
label: Text
|
|
4
|
-
order:
|
|
4
|
+
order: 180
|
|
5
5
|
desc: Text field types simply save a string to the database and provide the Admin panel with a text input. Learn how to use Text fields, see examples and options.
|
|
6
6
|
keywords: text, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
package/docs/fields/textarea.mdx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Textarea Field
|
|
3
3
|
label: Textarea
|
|
4
|
-
order:
|
|
4
|
+
order: 190
|
|
5
5
|
desc: Textarea field types save a string to the database, similar to the Text field type but equipped for longer text. Learn how to use Textarea fields, see examples and options.
|
|
6
6
|
keywords: textarea, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
package/docs/fields/ui.mdx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: UI Field
|
|
3
3
|
label: UI
|
|
4
|
-
order:
|
|
4
|
+
order: 200
|
|
5
5
|
desc: UI fields are purely presentational and allow developers to customize the admin panel to a very fine degree, including adding actions and other functions.
|
|
6
6
|
keywords: custom field, react component, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
package/docs/fields/upload.mdx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Upload Field
|
|
3
3
|
label: Upload
|
|
4
|
-
order:
|
|
4
|
+
order: 210
|
|
5
5
|
desc: Upload fields will allow a file to be uploaded, only from a collection supporting Uploads. Learn how to use Upload fields, see examples and options.
|
|
6
6
|
keywords: upload, images media, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "payload",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.4-beta.0",
|
|
4
4
|
"description": "Node, React and MongoDB Headless CMS and Application Framework",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -37,14 +37,15 @@
|
|
|
37
37
|
"demo:generate:types": "cross-env PAYLOAD_CONFIG_PATH=demo/payload.config.ts node dist/bin/generateTypes",
|
|
38
38
|
"demo:generate:graphqlschema": "cross-env PAYLOAD_CONFIG_PATH=demo/payload.config.ts node dist/bin/generateGraphQLSchema",
|
|
39
39
|
"demo:serve": "cross-env PAYLOAD_CONFIG_PATH=demo/payload.config.ts NODE_ENV=production nodemon",
|
|
40
|
-
"dev": "
|
|
41
|
-
"
|
|
40
|
+
"dev": "nodemon",
|
|
41
|
+
"dev:generatetypes": "node ./test/generateTypes.js",
|
|
42
42
|
"pretest": "yarn build",
|
|
43
|
-
"test
|
|
44
|
-
"test:
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"test:e2e": "cross-env
|
|
43
|
+
"test": "yarn test:int && yarn test:components",
|
|
44
|
+
"test:int": "cross-env NODE_ENV=test DISABLE_LOGGING=true jest --forceExit --detectOpenHandles",
|
|
45
|
+
"test:e2e": "cross-env NODE_ENV=test DISABLE_LOGGING=true playwright test",
|
|
46
|
+
"test:e2e:headed": "cross-env NODE_ENV=test DISABLE_LOGGING=true playwright test --headed",
|
|
47
|
+
"test:e2e:debug": "cross-env PWDEBUG=1 NODE_ENV=test DISABLE_LOGGING=true playwright test",
|
|
48
|
+
"test:components": "cross-env PAYLOAD_CONFIG_PATH=demo/payload.config.ts NODE_ENV=test jest --config=jest.components.config.js",
|
|
48
49
|
"clean": "rimraf dist",
|
|
49
50
|
"release": "release-it",
|
|
50
51
|
"release:patch": "release-it patch",
|
|
@@ -89,7 +90,6 @@
|
|
|
89
90
|
"@babel/preset-typescript": "^7.12.1",
|
|
90
91
|
"@babel/register": "^7.11.5",
|
|
91
92
|
"@date-io/date-fns": "^2.10.6",
|
|
92
|
-
"@faceless-ui/collapsibles": "^1.0.0",
|
|
93
93
|
"@faceless-ui/modal": "^1.1.7",
|
|
94
94
|
"@faceless-ui/scroll-info": "^1.2.3",
|
|
95
95
|
"@faceless-ui/window-info": "^2.0.2",
|
|
@@ -192,6 +192,7 @@
|
|
|
192
192
|
},
|
|
193
193
|
"devDependencies": {
|
|
194
194
|
"@bahmutov/cy-api": "^2.1.3",
|
|
195
|
+
"@playwright/test": "^1.23.1",
|
|
195
196
|
"@release-it/conventional-changelog": "^2.0.0",
|
|
196
197
|
"@testing-library/jest-dom": "^5.11.4",
|
|
197
198
|
"@testing-library/react": "^13.0.1",
|
|
@@ -261,15 +262,16 @@
|
|
|
261
262
|
"babel-plugin-ignore-html-and-css-imports": "^0.1.0",
|
|
262
263
|
"copyfiles": "^2.4.0",
|
|
263
264
|
"cross-env": "^7.0.2",
|
|
264
|
-
"cypress": "9.2.0",
|
|
265
265
|
"eslint": "^6.8.0",
|
|
266
266
|
"eslint-plugin-import": "^2.20.0",
|
|
267
267
|
"eslint-plugin-jest": "^23.16.0",
|
|
268
268
|
"eslint-plugin-jest-dom": "^4.0.1",
|
|
269
269
|
"eslint-plugin-jsx-a11y": "^6.2.1",
|
|
270
|
+
"eslint-plugin-playwright": "^0.9.0",
|
|
270
271
|
"eslint-plugin-react": "^7.18.0",
|
|
271
272
|
"eslint-plugin-react-hooks": "^2.3.0",
|
|
272
273
|
"form-data": "^3.0.0",
|
|
274
|
+
"get-port": "5.1.1",
|
|
273
275
|
"graphql-request": "^3.4.0",
|
|
274
276
|
"mongodb": "^3.6.2",
|
|
275
277
|
"mongodb-memory-server": "^7.2.0",
|
|
@@ -290,7 +292,7 @@
|
|
|
290
292
|
"*.js",
|
|
291
293
|
"*.d.ts",
|
|
292
294
|
"!jest.config.js",
|
|
293
|
-
"!jest.
|
|
295
|
+
"!jest.components.config.js"
|
|
294
296
|
],
|
|
295
297
|
"publishConfig": {
|
|
296
298
|
"registry": "https://registry.npmjs.org/"
|
package/scss/index.scss
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
@import '../dist/admin/scss/vars';
|
|
2
2
|
@import '../dist/admin/scss/z-index';
|
|
3
|
-
|
|
4
|
-
//////////////////////////////
|
|
5
|
-
// IMPORT OVERRIDES
|
|
6
|
-
//////////////////////////////
|
|
7
|
-
|
|
8
|
-
@import '~payload-scss-overrides';
|
|
9
|
-
|
|
10
3
|
@import '../dist/admin/scss/type';
|
|
11
4
|
@import '../dist/admin/scss/queries';
|
|
12
5
|
@import '../dist/admin/scss/resets';
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import Button from '../../../elements/Button';
|
|
3
|
-
import Popup from '../../../elements/Popup';
|
|
4
|
-
import BlockSelector from '../../field-types/Blocks/BlockSelector';
|
|
5
|
-
import './index.scss';
|
|
6
|
-
const baseClass = 'action-panel';
|
|
7
|
-
const ActionPanel = (props) => {
|
|
8
|
-
const { addRow, removeRow, label = 'Row', blockType, blocks = [], rowIndex, isHovered, hasMaxRows, } = props;
|
|
9
|
-
const classes = [
|
|
10
|
-
baseClass,
|
|
11
|
-
].filter(Boolean).join(' ');
|
|
12
|
-
return (React.createElement("div", { className: classes },
|
|
13
|
-
React.createElement(Popup, { showOnHover: true, size: "wide", color: "dark", horizontalAlign: "right", buttonType: "custom", button: (React.createElement(Button, { className: `${baseClass}__remove-row`, round: true, buttonStyle: "none", icon: "x", iconPosition: "left", iconStyle: "with-border", onClick: () => removeRow(rowIndex) })) },
|
|
14
|
-
"Remove\u00A0",
|
|
15
|
-
label),
|
|
16
|
-
!hasMaxRows && (React.createElement(React.Fragment, null, blockType === 'blocks'
|
|
17
|
-
? (React.createElement(Popup, { buttonType: "custom", size: "large", horizontalAlign: "right", button: (React.createElement(Button, { className: `${baseClass}__add-row`, round: true, buttonStyle: "none", icon: "plus", iconPosition: "left", iconStyle: "with-border" })), render: ({ close }) => (React.createElement(BlockSelector, { blocks: blocks, addRow: addRow, addRowIndex: rowIndex, close: close, parentIsHovered: isHovered, watchParentHover: true })) }))
|
|
18
|
-
: (React.createElement(Popup, { showOnHover: true, size: "wide", color: "dark", horizontalAlign: "center", buttonType: "custom", button: (React.createElement(Button, { className: `${baseClass}__add-row`, round: true, buttonStyle: "none", icon: "plus", iconPosition: "left", iconStyle: "with-border", onClick: () => addRow(rowIndex) })) },
|
|
19
|
-
"Add\u00A0",
|
|
20
|
-
label))))));
|
|
21
|
-
};
|
|
22
|
-
export default ActionPanel;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Block } from '../../../../../fields/config/types';
|
|
2
|
-
export declare type Props = {
|
|
3
|
-
label: string;
|
|
4
|
-
addRow?: (index: number, blockType?: string) => void;
|
|
5
|
-
removeRow?: (index: number) => void;
|
|
6
|
-
blockType?: string;
|
|
7
|
-
isHovered: boolean;
|
|
8
|
-
rowIndex: number;
|
|
9
|
-
blocks?: Block[];
|
|
10
|
-
hasMaxRows?: boolean;
|
|
11
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import Button from '../../../elements/Button';
|
|
3
|
-
import './index.scss';
|
|
4
|
-
const baseClass = 'position-panel';
|
|
5
|
-
const PositionPanel = (props) => {
|
|
6
|
-
const { moveRow, positionIndex, rowCount, readOnly } = props;
|
|
7
|
-
const adjustedIndex = positionIndex + 1;
|
|
8
|
-
const classes = [
|
|
9
|
-
baseClass,
|
|
10
|
-
`${baseClass}__${readOnly ? 'read-only' : ''}`,
|
|
11
|
-
].filter(Boolean).join(' ');
|
|
12
|
-
return (React.createElement("div", { className: classes },
|
|
13
|
-
!readOnly && (React.createElement(Button, { className: `${baseClass}__move-backward ${positionIndex === 0 ? 'first-row' : ''}`, buttonStyle: "none", icon: "chevron", round: true, onClick: () => moveRow(positionIndex, positionIndex - 1) })),
|
|
14
|
-
(adjustedIndex && typeof positionIndex === 'number')
|
|
15
|
-
&& (React.createElement("div", { className: `${baseClass}__current-position` }, adjustedIndex >= 10 ? adjustedIndex : `0${adjustedIndex}`)),
|
|
16
|
-
!readOnly && (React.createElement(Button, { className: `${baseClass}__move-forward ${(positionIndex === rowCount - 1) ? 'last-row' : ''}`, buttonStyle: "none", icon: "chevron", round: true, onClick: () => moveRow(positionIndex, positionIndex + 1) }))));
|
|
17
|
-
};
|
|
18
|
-
export default PositionPanel;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
@import '../../../../scss/styles';
|
|
2
|
-
|
|
3
|
-
.position-panel {
|
|
4
|
-
&__move-backward {
|
|
5
|
-
transform: rotate(.5turn);
|
|
6
|
-
margin: 0;
|
|
7
|
-
opacity: 0;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
&__move-forward {
|
|
11
|
-
margin: 0;
|
|
12
|
-
opacity: 0;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
&__current-position {
|
|
16
|
-
text-align: center;
|
|
17
|
-
color: $color-gray;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
padding-right: base(.5);
|
|
21
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
@import '../../../../scss/styles';
|
|
2
|
-
|
|
3
|
-
.section-title {
|
|
4
|
-
display: flex;
|
|
5
|
-
align-items: center;
|
|
6
|
-
width: 100%;
|
|
7
|
-
|
|
8
|
-
&__input {
|
|
9
|
-
flex-grow: 1;
|
|
10
|
-
color: $color-dark-gray;
|
|
11
|
-
background-color: transparent;
|
|
12
|
-
font-family: $font-body;
|
|
13
|
-
font-weight: 600;
|
|
14
|
-
font-size: base(.75);
|
|
15
|
-
padding: base(.1) base(.2);
|
|
16
|
-
margin-left: base(.5);
|
|
17
|
-
margin-right: base(.5);
|
|
18
|
-
border: none;
|
|
19
|
-
|
|
20
|
-
&:hover {
|
|
21
|
-
box-shadow: inset 0px -2px 0px -1px $color-light-gray;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
&:hover,
|
|
25
|
-
&:focus {
|
|
26
|
-
outline: 0;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
&:focus {
|
|
30
|
-
box-shadow: none;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
&__pill {
|
|
35
|
-
flex-shrink: 0;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import AnimateHeight from 'react-animate-height';
|
|
3
|
-
import { Draggable } from 'react-beautiful-dnd';
|
|
4
|
-
import ActionPanel from './ActionPanel';
|
|
5
|
-
import SectionTitle from './SectionTitle';
|
|
6
|
-
import PositionPanel from './PositionPanel';
|
|
7
|
-
import Button from '../../elements/Button';
|
|
8
|
-
import { NegativeFieldGutterProvider } from '../FieldTypeGutter/context';
|
|
9
|
-
import FieldTypeGutter from '../FieldTypeGutter';
|
|
10
|
-
import RenderFields from '../RenderFields';
|
|
11
|
-
import HiddenInput from '../field-types/HiddenInput';
|
|
12
|
-
import './index.scss';
|
|
13
|
-
import { fieldAffectsData } from '../../../../fields/config/types';
|
|
14
|
-
const baseClass = 'draggable-section';
|
|
15
|
-
const DraggableSection = (props) => {
|
|
16
|
-
const { moveRow, addRow, removeRow, rowIndex, rowCount, parentPath, fieldSchema, label, blockType, fieldTypes, id, setRowCollapse, isCollapsed, permissions, readOnly, hasMaxRows, } = props;
|
|
17
|
-
const [isHovered, setIsHovered] = useState(false);
|
|
18
|
-
const classes = [
|
|
19
|
-
baseClass,
|
|
20
|
-
isCollapsed ? 'is-collapsed' : 'is-open',
|
|
21
|
-
(isHovered && !readOnly) && 'is-hovered',
|
|
22
|
-
].filter(Boolean).join(' ');
|
|
23
|
-
return (React.createElement(Draggable, { draggableId: id, index: rowIndex, isDragDisabled: readOnly }, (providedDrag) => (React.createElement("div", { ref: providedDrag.innerRef, className: classes, onMouseLeave: () => setIsHovered(false), onMouseOver: () => setIsHovered(true), onFocus: () => setIsHovered(true), ...providedDrag.draggableProps },
|
|
24
|
-
React.createElement("div", { className: `${baseClass}__content-wrapper` },
|
|
25
|
-
React.createElement(FieldTypeGutter, { variant: "left", dragHandleProps: providedDrag.dragHandleProps },
|
|
26
|
-
React.createElement(PositionPanel, { moveRow: moveRow, rowCount: rowCount, positionIndex: rowIndex, readOnly: readOnly })),
|
|
27
|
-
React.createElement("div", { className: `${baseClass}__render-fields-wrapper` },
|
|
28
|
-
blockType === 'blocks' && (React.createElement("div", { className: `${baseClass}__section-header` },
|
|
29
|
-
React.createElement(HiddenInput, { name: `${parentPath}.${rowIndex}.id`, value: id }),
|
|
30
|
-
React.createElement(SectionTitle, { label: label, path: `${parentPath}.${rowIndex}.blockName`, readOnly: readOnly }),
|
|
31
|
-
React.createElement(Button, { icon: "chevron", onClick: () => setRowCollapse(id, !isCollapsed), buttonStyle: "icon-label", className: `toggle-collapse toggle-collapse--is-${isCollapsed ? 'collapsed' : 'open'}`, round: true }))),
|
|
32
|
-
React.createElement(AnimateHeight, { height: isCollapsed ? 0 : 'auto', duration: 200 },
|
|
33
|
-
React.createElement(NegativeFieldGutterProvider, { allow: false },
|
|
34
|
-
React.createElement(RenderFields, { readOnly: readOnly, fieldTypes: fieldTypes, key: rowIndex, permissions: permissions === null || permissions === void 0 ? void 0 : permissions.fields, fieldSchema: fieldSchema.map((field) => ({
|
|
35
|
-
...field,
|
|
36
|
-
path: `${parentPath}.${rowIndex}${fieldAffectsData(field) ? `.${field.name}` : ''}`,
|
|
37
|
-
})) })))),
|
|
38
|
-
React.createElement(FieldTypeGutter, { variant: "right", className: "actions", dragHandleProps: providedDrag.dragHandleProps }, !readOnly && (React.createElement(ActionPanel, { addRow: addRow, removeRow: removeRow, rowIndex: rowIndex, label: label, isHovered: isHovered, hasMaxRows: hasMaxRows, ...props }))))))));
|
|
39
|
-
};
|
|
40
|
-
export default DraggableSection;
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
@import '../../../scss/styles.scss';
|
|
2
|
-
|
|
3
|
-
//////////////////////
|
|
4
|
-
// COMPONENT STYLES
|
|
5
|
-
//////////////////////
|
|
6
|
-
|
|
7
|
-
.draggable-section {
|
|
8
|
-
padding-bottom: base(.5);
|
|
9
|
-
|
|
10
|
-
.draggable-section {
|
|
11
|
-
padding-bottom: 0;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
&__content-wrapper {
|
|
15
|
-
display: flex;
|
|
16
|
-
position: relative;
|
|
17
|
-
margin-bottom: $baseline;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
&__section-header {
|
|
21
|
-
@include blur-bg(white);
|
|
22
|
-
display: flex;
|
|
23
|
-
position: sticky;
|
|
24
|
-
top: $top-header-offset;
|
|
25
|
-
z-index: 1;
|
|
26
|
-
padding: base(.75) base(.75);
|
|
27
|
-
margin-left: - base(.75);
|
|
28
|
-
margin-right: - base(.75);
|
|
29
|
-
width: calc(100% + #{base(1.5)});
|
|
30
|
-
|
|
31
|
-
.toggle-collapse {
|
|
32
|
-
margin: 0 0 0 auto;
|
|
33
|
-
transform: rotate(.5turn);
|
|
34
|
-
|
|
35
|
-
.btn__icon {
|
|
36
|
-
background-color: white;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
&--is-collapsed {
|
|
40
|
-
transform: rotate(0turn);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
&__render-fields-wrapper {
|
|
46
|
-
flex-grow: 1;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
&.is-hovered > div {
|
|
50
|
-
> .field-type-gutter {
|
|
51
|
-
&.actions {
|
|
52
|
-
|
|
53
|
-
.field-type-gutter__content {
|
|
54
|
-
&:hover {
|
|
55
|
-
z-index: $z-nav;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.field-type-gutter__content-container {
|
|
60
|
-
box-shadow: none;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
.field-type-gutter__content-container {
|
|
64
|
-
box-shadow: #{$style-stroke-width-m} 0px 0px 0px $color-dark-gray;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.position-panel__move-forward,
|
|
68
|
-
.position-panel__move-backward {
|
|
69
|
-
opacity: 1;
|
|
70
|
-
|
|
71
|
-
&.first-row,
|
|
72
|
-
&.last-row {
|
|
73
|
-
opacity: .15;
|
|
74
|
-
pointer-events: none;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.position-panel__current-position {
|
|
79
|
-
color: $color-dark-gray;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.toggle-collapse {
|
|
84
|
-
@include color-svg(white);
|
|
85
|
-
|
|
86
|
-
.btn__icon {
|
|
87
|
-
background-color: $color-gray;
|
|
88
|
-
|
|
89
|
-
&:hover {
|
|
90
|
-
background-color: $color-dark-gray;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
label.field-label {
|
|
97
|
-
line-height: 1;
|
|
98
|
-
padding-bottom: base(.75)
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
@include mid-break {
|
|
102
|
-
min-width: base(16);
|
|
103
|
-
|
|
104
|
-
.position-panel__move-forward,
|
|
105
|
-
.position-panel__move-backward {
|
|
106
|
-
opacity: 1;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
&__section-header {
|
|
110
|
-
top: $top-header-offset-m;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Field, Block } from '../../../../fields/config/types';
|
|
2
|
-
import { FieldTypes } from '../field-types';
|
|
3
|
-
import { FieldPermissions } from '../../../../auth/types';
|
|
4
|
-
export declare type Props = {
|
|
5
|
-
moveRow: (fromIndex: number, toIndex: number) => void;
|
|
6
|
-
addRow: (index: number, blockType?: string) => void;
|
|
7
|
-
removeRow: (index: number) => void;
|
|
8
|
-
rowIndex: number;
|
|
9
|
-
rowCount: number;
|
|
10
|
-
parentPath: string;
|
|
11
|
-
fieldSchema: Field[];
|
|
12
|
-
label?: string;
|
|
13
|
-
blockType?: string;
|
|
14
|
-
fieldTypes: FieldTypes;
|
|
15
|
-
id: string;
|
|
16
|
-
isCollapsed?: boolean;
|
|
17
|
-
setRowCollapse?: (id: string, open: boolean) => void;
|
|
18
|
-
positionPanelVerticalAlignment?: 'top' | 'center' | 'sticky';
|
|
19
|
-
actionPanelVerticalAlignment?: 'top' | 'center' | 'sticky';
|
|
20
|
-
permissions: FieldPermissions;
|
|
21
|
-
readOnly: boolean;
|
|
22
|
-
blocks?: Block[];
|
|
23
|
-
hasMaxRows?: boolean;
|
|
24
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React, { createContext, useContext } from 'react';
|
|
2
|
-
import { useWindowInfo } from '@faceless-ui/window-info';
|
|
3
|
-
const context = createContext(false);
|
|
4
|
-
const { Provider } = context;
|
|
5
|
-
export const NegativeFieldGutterProvider = ({ children, allow }) => {
|
|
6
|
-
const { breakpoints: { m: midBreak } } = useWindowInfo();
|
|
7
|
-
return (React.createElement(Provider, { value: allow && !midBreak }, children));
|
|
8
|
-
};
|
|
9
|
-
export const useNegativeFieldGutter = () => useContext(context);
|