@payloadcms/ui 3.50.0-internal.ca62628 → 3.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
- package/dist/elements/AddNewRelation/index.js +1 -1
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.scss +9 -1
- package/dist/elements/DocumentDrawer/Provider.d.ts +1 -1
- package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.d.ts +19 -0
- package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +28 -9
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +25 -12
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DocumentFields/index.scss +64 -27
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts +3 -3
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +19 -70
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.scss +10 -0
- package/dist/elements/RelationshipTable/index.d.ts +1 -0
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +61 -40
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/exports/client/index.js +12 -12
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +2 -1
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +2 -1
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +7 -3
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +8 -8
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +3 -0
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/NullifyField/index.d.ts +2 -0
- package/dist/forms/NullifyField/index.d.ts.map +1 -1
- package/dist/forms/NullifyField/index.js +50 -14
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/NullifyField/index.scss +14 -0
- package/dist/{elements/AddNewRelation → hooks}/useRelatedCollections.d.ts +3 -0
- package/dist/hooks/useRelatedCollections.d.ts.map +1 -0
- package/dist/{elements/AddNewRelation → hooks}/useRelatedCollections.js +4 -1
- package/dist/hooks/useRelatedCollections.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/utilities/renderTable.d.ts +1 -1
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +11 -11
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/List/GroupByHeader/index.d.ts.map +1 -1
- package/dist/views/List/GroupByHeader/index.js +1 -0
- package/dist/views/List/GroupByHeader/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +0 -4
- package/dist/views/List/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/elements/AddNewRelation/useRelatedCollections.d.ts.map +0 -1
- package/dist/elements/AddNewRelation/useRelatedCollections.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AddNewRelation/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqD,MAAM,OAAO,CAAA;AAGzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AddNewRelation/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqD,MAAM,OAAO,CAAA;AAGzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAWvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkN1C,CAAA"}
|
|
@@ -4,6 +4,7 @@ import { c as _c } from "react/compiler-runtime";
|
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
6
|
import React, { Fragment, useCallback, useEffect, useState } from 'react';
|
|
7
|
+
import { useRelatedCollections } from '../../hooks/useRelatedCollections.js';
|
|
7
8
|
import { PlusIcon } from '../../icons/Plus/index.js';
|
|
8
9
|
import { useAuth } from '../../providers/Auth/index.js';
|
|
9
10
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
@@ -13,7 +14,6 @@ import { Popup } from '../Popup/index.js';
|
|
|
13
14
|
import * as PopupList from '../Popup/PopupButtonList/index.js';
|
|
14
15
|
import { Tooltip } from '../Tooltip/index.js';
|
|
15
16
|
import './index.scss';
|
|
16
|
-
import { useRelatedCollections } from './useRelatedCollections.js';
|
|
17
17
|
const baseClass = 'relationship-add-new';
|
|
18
18
|
export const AddNewRelation = t0 => {
|
|
19
19
|
const $ = _c(46);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","useEffect","useState","PlusIcon","useAuth","useTranslation","Button","useDocumentDrawer","Popup","PopupList","Tooltip","useRelatedCollections","baseClass","AddNewRelation","t0","$","ButtonFromProps","hasMany","onChange","path","relationTo","unstyled","value","relatedCollections","permissions","show","setShow","selectedCollection","setSelectedCollection","relatedToMany","length","t1","undefined","collectionConfig","setCollectionConfig","popupOpen","setPopupOpen","i18n","t","showTooltip","setShowTooltip","t2","slug","t3","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t4","isDrawerOpen","toggleDrawer","t5","t6","doc","operation","isAutosaveEnabled","versions","drafts","autosave","isNewValue","some","v","id","Array","isArray","onSave","Symbol","for","state","onPopupToggle","t7","t8","collections","create","collection","t10","t9","find","collection_0","t11","t12","t13","t14","t15","labels","singular","t16","label","_jsxs","className","children","_jsx","filter","Boolean","join","onClick","onMouseEnter","onMouseLeave","button","buttonStyle","tooltip","horizontalAlign","onToggleOpen","render","t17","close","closePopup","ButtonGroup","map","relatedCollection"],"sources":["../../../src/elements/AddNewRelation/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\nimport type { Props } from './types.js'\n\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup } from '../Popup/index.js'\nimport * as PopupList from '../Popup/PopupButtonList/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.scss'\nimport { useRelatedCollections } from './useRelatedCollections.js'\n\nconst baseClass = 'relationship-add-new'\n\nexport const AddNewRelation: React.FC<Props> = ({\n Button: ButtonFromProps,\n hasMany,\n onChange,\n path,\n relationTo,\n unstyled,\n value,\n}) => {\n const relatedCollections = useRelatedCollections(relationTo)\n const { permissions } = useAuth()\n const [show, setShow] = useState(false)\n const [selectedCollection, setSelectedCollection] = useState<string>()\n\n const relatedToMany = relatedCollections.length > 1\n\n const [collectionConfig, setCollectionConfig] = useState<ClientCollectionConfig>(() =>\n !relatedToMany ? relatedCollections[0] : undefined,\n )\n\n const [popupOpen, setPopupOpen] = useState(false)\n const { i18n, t } = useTranslation()\n const [showTooltip, setShowTooltip] = useState(false)\n\n const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen, toggleDrawer }] = useDocumentDrawer(\n {\n collectionSlug: collectionConfig?.slug,\n },\n )\n\n const onSave: DocumentDrawerContextType['onSave'] = useCallback(\n ({ doc, operation }) => {\n // if autosave is enabled, the operation will be 'update'\n const isAutosaveEnabled =\n typeof collectionConfig?.versions?.drafts === 'object'\n ? collectionConfig.versions.drafts.autosave\n : false\n\n if (operation === 'create' || (operation === 'update' && isAutosaveEnabled)) {\n // ensure the value is not already in the array\n let isNewValue = false\n if (!value) {\n isNewValue = true\n } else {\n isNewValue = Array.isArray(value)\n ? !value.some((v) => v && v.value === doc.id)\n : value.value !== doc.id\n }\n\n if (isNewValue) {\n // dispatchOptions({\n // collection: collectionConfig,\n // // TODO: fix this\n // // @ts-expect-error-next-line\n // type: 'ADD',\n // config,\n // docs: [doc],\n // i18n,\n // sort: true,\n // })\n\n if (hasMany === true) {\n onChange([\n ...(Array.isArray(value) ? value : []),\n {\n relationTo: collectionConfig?.slug,\n value: doc.id,\n },\n ])\n } else {\n onChange({\n relationTo: relatedCollections[0].slug,\n value: doc.id,\n })\n }\n }\n\n setSelectedCollection(undefined)\n }\n },\n [collectionConfig, hasMany, onChange, value, relatedCollections],\n )\n\n const onPopupToggle = useCallback((state) => {\n setPopupOpen(state)\n }, [])\n\n useEffect(() => {\n if (permissions) {\n if (relatedCollections.length === 1) {\n setShow(permissions.collections[relatedCollections[0]?.slug]?.create)\n } else {\n setShow(\n relatedCollections.some(\n (collection) => permissions.collections[collection?.slug]?.create,\n ),\n )\n }\n }\n }, [permissions, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && selectedCollection) {\n setCollectionConfig(\n relatedCollections.find((collection) => collection?.slug === selectedCollection),\n )\n }\n }, [selectedCollection, relatedToMany, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && collectionConfig) {\n // the drawer must be rendered on the page before before opening it\n // this is why 'selectedCollection' is different from 'collectionConfig'\n toggleDrawer()\n setSelectedCollection(undefined)\n }\n }, [toggleDrawer, relatedToMany, collectionConfig])\n\n useEffect(() => {\n if (relatedToMany && !isDrawerOpen) {\n setCollectionConfig(undefined)\n }\n }, [isDrawerOpen, relatedToMany])\n\n const label = t('fields:addNewLabel', {\n label: getTranslation(relatedCollections[0]?.labels.singular, i18n),\n })\n\n if (show) {\n return (\n <div className={baseClass} id={`${path}-add-new`}>\n {relatedCollections.length === 1 && (\n <Fragment>\n <DocumentDrawerToggler\n className={[\n `${baseClass}__add-button`,\n unstyled && `${baseClass}__add-button--unstyled`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={() => setShowTooltip(false)}\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n >\n {ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Fragment>\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {label}\n </Tooltip>\n <PlusIcon />\n </Fragment>\n )}\n </DocumentDrawerToggler>\n <DocumentDrawer onSave={onSave} />\n </Fragment>\n )}\n {relatedCollections.length > 1 && (\n <Fragment>\n <Popup\n button={\n ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__add-button`}\n tooltip={popupOpen ? undefined : t('fields:addNew')}\n >\n <PlusIcon />\n </Button>\n )\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n onToggleOpen={onPopupToggle}\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relatedCollections.map((relatedCollection) => {\n if (permissions.collections[relatedCollection?.slug].create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection?.slug}`}\n key={relatedCollection?.slug}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection?.slug)\n }}\n >\n {getTranslation(relatedCollection?.labels?.singular, i18n)}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n {collectionConfig && permissions.collections[collectionConfig?.slug]?.create && (\n <DocumentDrawer onSave={onSave} />\n )}\n </Fragment>\n )}\n </div>\n )\n }\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","useEffect","useState","useRelatedCollections","PlusIcon","useAuth","useTranslation","Button","useDocumentDrawer","Popup","PopupList","Tooltip","baseClass","AddNewRelation","t0","$","ButtonFromProps","hasMany","onChange","path","relationTo","unstyled","value","relatedCollections","permissions","show","setShow","selectedCollection","setSelectedCollection","relatedToMany","length","t1","undefined","collectionConfig","setCollectionConfig","popupOpen","setPopupOpen","i18n","t","showTooltip","setShowTooltip","t2","slug","t3","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t4","isDrawerOpen","toggleDrawer","t5","t6","doc","operation","isAutosaveEnabled","versions","drafts","autosave","isNewValue","some","v","id","Array","isArray","onSave","Symbol","for","state","onPopupToggle","t7","t8","collections","create","collection","t10","t9","find","collection_0","t11","t12","t13","t14","t15","labels","singular","t16","label","_jsxs","className","children","_jsx","filter","Boolean","join","onClick","onMouseEnter","onMouseLeave","button","buttonStyle","tooltip","horizontalAlign","onToggleOpen","render","t17","close","closePopup","ButtonGroup","map","relatedCollection"],"sources":["../../../src/elements/AddNewRelation/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\nimport type { Props } from './types.js'\n\nimport { useRelatedCollections } from '../../hooks/useRelatedCollections.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup } from '../Popup/index.js'\nimport * as PopupList from '../Popup/PopupButtonList/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.scss'\n\nconst baseClass = 'relationship-add-new'\n\nexport const AddNewRelation: React.FC<Props> = ({\n Button: ButtonFromProps,\n hasMany,\n onChange,\n path,\n relationTo,\n unstyled,\n value,\n}) => {\n const relatedCollections = useRelatedCollections(relationTo)\n const { permissions } = useAuth()\n const [show, setShow] = useState(false)\n const [selectedCollection, setSelectedCollection] = useState<string>()\n\n const relatedToMany = relatedCollections.length > 1\n\n const [collectionConfig, setCollectionConfig] = useState<ClientCollectionConfig>(() =>\n !relatedToMany ? relatedCollections[0] : undefined,\n )\n\n const [popupOpen, setPopupOpen] = useState(false)\n const { i18n, t } = useTranslation()\n const [showTooltip, setShowTooltip] = useState(false)\n\n const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen, toggleDrawer }] = useDocumentDrawer(\n {\n collectionSlug: collectionConfig?.slug,\n },\n )\n\n const onSave: DocumentDrawerContextType['onSave'] = useCallback(\n ({ doc, operation }) => {\n // if autosave is enabled, the operation will be 'update'\n const isAutosaveEnabled =\n typeof collectionConfig?.versions?.drafts === 'object'\n ? collectionConfig.versions.drafts.autosave\n : false\n\n if (operation === 'create' || (operation === 'update' && isAutosaveEnabled)) {\n // ensure the value is not already in the array\n let isNewValue = false\n if (!value) {\n isNewValue = true\n } else {\n isNewValue = Array.isArray(value)\n ? !value.some((v) => v && v.value === doc.id)\n : value.value !== doc.id\n }\n\n if (isNewValue) {\n // dispatchOptions({\n // collection: collectionConfig,\n // // TODO: fix this\n // // @ts-expect-error-next-line\n // type: 'ADD',\n // config,\n // docs: [doc],\n // i18n,\n // sort: true,\n // })\n\n if (hasMany === true) {\n onChange([\n ...(Array.isArray(value) ? value : []),\n {\n relationTo: collectionConfig?.slug,\n value: doc.id,\n },\n ])\n } else {\n onChange({\n relationTo: relatedCollections[0].slug,\n value: doc.id,\n })\n }\n }\n\n setSelectedCollection(undefined)\n }\n },\n [collectionConfig, hasMany, onChange, value, relatedCollections],\n )\n\n const onPopupToggle = useCallback((state) => {\n setPopupOpen(state)\n }, [])\n\n useEffect(() => {\n if (permissions) {\n if (relatedCollections.length === 1) {\n setShow(permissions.collections[relatedCollections[0]?.slug]?.create)\n } else {\n setShow(\n relatedCollections.some(\n (collection) => permissions.collections[collection?.slug]?.create,\n ),\n )\n }\n }\n }, [permissions, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && selectedCollection) {\n setCollectionConfig(\n relatedCollections.find((collection) => collection?.slug === selectedCollection),\n )\n }\n }, [selectedCollection, relatedToMany, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && collectionConfig) {\n // the drawer must be rendered on the page before before opening it\n // this is why 'selectedCollection' is different from 'collectionConfig'\n toggleDrawer()\n setSelectedCollection(undefined)\n }\n }, [toggleDrawer, relatedToMany, collectionConfig])\n\n useEffect(() => {\n if (relatedToMany && !isDrawerOpen) {\n setCollectionConfig(undefined)\n }\n }, [isDrawerOpen, relatedToMany])\n\n const label = t('fields:addNewLabel', {\n label: getTranslation(relatedCollections[0]?.labels.singular, i18n),\n })\n\n if (show) {\n return (\n <div className={baseClass} id={`${path}-add-new`}>\n {relatedCollections.length === 1 && (\n <Fragment>\n <DocumentDrawerToggler\n className={[\n `${baseClass}__add-button`,\n unstyled && `${baseClass}__add-button--unstyled`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={() => setShowTooltip(false)}\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n >\n {ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Fragment>\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {label}\n </Tooltip>\n <PlusIcon />\n </Fragment>\n )}\n </DocumentDrawerToggler>\n <DocumentDrawer onSave={onSave} />\n </Fragment>\n )}\n {relatedCollections.length > 1 && (\n <Fragment>\n <Popup\n button={\n ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__add-button`}\n tooltip={popupOpen ? undefined : t('fields:addNew')}\n >\n <PlusIcon />\n </Button>\n )\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n onToggleOpen={onPopupToggle}\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relatedCollections.map((relatedCollection) => {\n if (permissions.collections[relatedCollection?.slug].create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection?.slug}`}\n key={relatedCollection?.slug}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection?.slug)\n }}\n >\n {getTranslation(relatedCollection?.labels?.singular, i18n)}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n {collectionConfig && permissions.collections[collectionConfig?.slug]?.create && (\n <DocumentDrawer onSave={onSave} />\n )}\n </Fragment>\n )}\n </div>\n )\n }\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -187,6 +187,12 @@
|
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
+
&__popup {
|
|
191
|
+
[dir='rtl'] & {
|
|
192
|
+
padding-left: var(--gutter-h);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
190
196
|
&__meta {
|
|
191
197
|
width: auto;
|
|
192
198
|
gap: calc(var(--base) / 2);
|
|
@@ -216,7 +222,9 @@
|
|
|
216
222
|
}
|
|
217
223
|
|
|
218
224
|
&__controls {
|
|
219
|
-
|
|
225
|
+
[dir='ltr'] & {
|
|
226
|
+
padding-left: var(--gutter-h);
|
|
227
|
+
}
|
|
220
228
|
overflow: auto;
|
|
221
229
|
|
|
222
230
|
// do not show scrollbar because the parent container has a static height
|
|
@@ -21,7 +21,7 @@ export type DocumentDrawerContextProps = {
|
|
|
21
21
|
result: Data;
|
|
22
22
|
}) => Promise<FormState | void> | void;
|
|
23
23
|
};
|
|
24
|
-
export type DocumentDrawerContextType = DocumentDrawerContextProps;
|
|
24
|
+
export type DocumentDrawerContextType = {} & DocumentDrawerContextProps;
|
|
25
25
|
export declare const DocumentDrawerCallbacksContext: import("react").Context<DocumentDrawerContextProps>;
|
|
26
26
|
export declare const DocumentDrawerContextProvider: React.FC<{
|
|
27
27
|
children: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIlF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,EAAE,EAAE,MAAM,CAAA;KACX,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAE1B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAC5B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,GAAG,EAAE,UAAU,CAAA;KAChB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAC1B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,EAAE,EAAE,MAAM,CAAA;KACX,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QACvB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,GAAG,EAAE,UAAU,CAAA;QACf,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;QAC9B,MAAM,EAAE,IAAI,CAAA;KACb,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIlF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,EAAE,EAAE,MAAM,CAAA;KACX,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAE1B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAC5B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,GAAG,EAAE,UAAU,CAAA;KAChB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAC1B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,EAAE,EAAE,MAAM,CAAA;KACX,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QACvB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,GAAG,EAAE,UAAU,CAAA;QACf,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;QAC9B,MAAM,EAAE,IAAI,CAAA;KACb,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,EAAE,GAAG,0BAA0B,CAAA;AAEvE,eAAO,MAAM,8BAA8B,qDAAiD,CAAA;AAE5F,eAAO,MAAM,6BAA6B,EAAE,KAAK,CAAC,EAAE,CAClD;IACE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,GAAG,0BAA0B,CAG/B,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAO,yBAQ3C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["createContext","use","DocumentDrawerCallbacksContext","DocumentDrawerContextProvider","children","rest","_jsx","value","useDocumentDrawerContext","context","Error"],"sources":["../../../src/elements/DocumentDrawer/Provider.tsx"],"sourcesContent":["import type { ClientCollectionConfig, Data, FormState, TypeWithID } from 'payload'\n\nimport { createContext, use } from 'react'\n\nexport type DocumentDrawerContextProps = {\n readonly clearDoc?: () => void\n readonly drawerSlug: string\n readonly onDelete?: (args: {\n collectionConfig?: ClientCollectionConfig\n id: string\n }) => Promise<void> | void\n /* only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: (args: {\n collectionConfig?: ClientCollectionConfig\n doc: TypeWithID\n }) => Promise<void> | void\n readonly onRestore?: (args: {\n collectionConfig?: ClientCollectionConfig\n id: string\n }) => Promise<void> | void\n readonly onSave?: (args: {\n collectionConfig?: ClientCollectionConfig\n doc: TypeWithID\n operation: 'create' | 'update'\n result: Data\n }) => Promise<FormState | void> | void\n}\n\nexport type DocumentDrawerContextType = DocumentDrawerContextProps\n\nexport const DocumentDrawerCallbacksContext = createContext({} as DocumentDrawerContextType)\n\nexport const DocumentDrawerContextProvider: React.FC<\n {\n children: React.ReactNode\n } & DocumentDrawerContextProps\n> = ({ children, ...rest }) => {\n return <DocumentDrawerCallbacksContext value={rest}>{children}</DocumentDrawerCallbacksContext>\n}\n\nexport const useDocumentDrawerContext = (): DocumentDrawerContextType => {\n const context = use(DocumentDrawerCallbacksContext)\n\n if (!context) {\n throw new Error('useDocumentDrawerContext must be used within a DocumentDrawerProvider')\n }\n\n return context\n}\n"],"mappings":";AAEA,SAASA,aAAa,EAAEC,GAAG,QAAQ;AA4BnC,OAAO,MAAMC,8BAAA,gBAAiCF,aAAA,CAAc,CAAC;AAE7D,OAAO,MAAMG,6BAAA,GAITA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAA,CAAM;EACxB,oBAAOC,IAAA,CAACJ,8BAAA;IAA+BK,KAAA,EAAOF,IAAA;cAAOD;;AACvD;AAEA,OAAO,MAAMI,wBAAA,GAA2BA,CAAA;EACtC,MAAMC,OAAA,GAAUR,GAAA,CAAIC,8BAAA;EAEpB,IAAI,CAACO,OAAA,EAAS;IACZ,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,OAAOD,OAAA;AACT","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["createContext","use","DocumentDrawerCallbacksContext","DocumentDrawerContextProvider","children","rest","_jsx","value","useDocumentDrawerContext","context","Error"],"sources":["../../../src/elements/DocumentDrawer/Provider.tsx"],"sourcesContent":["import type { ClientCollectionConfig, Data, FormState, TypeWithID } from 'payload'\n\nimport { createContext, use } from 'react'\n\nexport type DocumentDrawerContextProps = {\n readonly clearDoc?: () => void\n readonly drawerSlug: string\n readonly onDelete?: (args: {\n collectionConfig?: ClientCollectionConfig\n id: string\n }) => Promise<void> | void\n /* only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: (args: {\n collectionConfig?: ClientCollectionConfig\n doc: TypeWithID\n }) => Promise<void> | void\n readonly onRestore?: (args: {\n collectionConfig?: ClientCollectionConfig\n id: string\n }) => Promise<void> | void\n readonly onSave?: (args: {\n collectionConfig?: ClientCollectionConfig\n doc: TypeWithID\n operation: 'create' | 'update'\n result: Data\n }) => Promise<FormState | void> | void\n}\n\nexport type DocumentDrawerContextType = {} & DocumentDrawerContextProps\n\nexport const DocumentDrawerCallbacksContext = createContext({} as DocumentDrawerContextType)\n\nexport const DocumentDrawerContextProvider: React.FC<\n {\n children: React.ReactNode\n } & DocumentDrawerContextProps\n> = ({ children, ...rest }) => {\n return <DocumentDrawerCallbacksContext value={rest}>{children}</DocumentDrawerCallbacksContext>\n}\n\nexport const useDocumentDrawerContext = (): DocumentDrawerContextType => {\n const context = use(DocumentDrawerCallbacksContext)\n\n if (!context) {\n throw new Error('useDocumentDrawerContext must be used within a DocumentDrawerProvider')\n }\n\n return context\n}\n"],"mappings":";AAEA,SAASA,aAAa,EAAEC,GAAG,QAAQ;AA4BnC,OAAO,MAAMC,8BAAA,gBAAiCF,aAAA,CAAc,CAAC;AAE7D,OAAO,MAAMG,6BAAA,GAITA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAA,CAAM;EACxB,oBAAOC,IAAA,CAACJ,8BAAA;IAA+BK,KAAA,EAAOF,IAAA;cAAOD;;AACvD;AAEA,OAAO,MAAMI,wBAAA,GAA2BA,CAAA;EACtC,MAAMC,OAAA,GAAUR,GAAA,CAAIC,8BAAA;EAEpB,IAAI,CAACO,OAAA,EAAS;IACZ,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,OAAOD,OAAA;AACT","ignoreList":[]}
|
|
@@ -4,5 +4,24 @@ import './index.scss';
|
|
|
4
4
|
export declare const documentDrawerBaseClass = "doc-drawer";
|
|
5
5
|
export declare const DocumentDrawerToggler: React.FC<DocumentTogglerProps>;
|
|
6
6
|
export declare const DocumentDrawer: React.FC<DocumentDrawerProps>;
|
|
7
|
+
/**
|
|
8
|
+
* A hook to manage documents from a drawer modal.
|
|
9
|
+
* It provides the components and methods needed to open, close, and interact with the drawer.
|
|
10
|
+
* @example
|
|
11
|
+
* const [DocumentDrawer, DocumentDrawerToggler, { openDrawer, closeDrawer }] = useDocumentDrawer({
|
|
12
|
+
* collectionSlug: 'posts',
|
|
13
|
+
* id: postId, // optional, if not provided, it will render the "create new" view
|
|
14
|
+
* })
|
|
15
|
+
*
|
|
16
|
+
* // ...
|
|
17
|
+
*
|
|
18
|
+
* return (
|
|
19
|
+
* <div>
|
|
20
|
+
* <DocumentDrawerToggler collectionSlug="posts" id={postId}>
|
|
21
|
+
* Edit Post
|
|
22
|
+
* </DocumentDrawerToggler>
|
|
23
|
+
* <DocumentDrawer collectionSlug="posts" id={postId} />
|
|
24
|
+
* </div>
|
|
25
|
+
*/
|
|
7
26
|
export declare const useDocumentDrawer: UseDocumentDrawer;
|
|
8
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2D,MAAM,OAAO,CAAA;AAE/E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2D,MAAM,OAAO,CAAA;AAE/E,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EAElB,MAAM,YAAY,CAAA;AAOnB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,uBAAuB,eAAe,CAAA;AAcnD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA2BhE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAQxD,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAsE/B,CAAA"}
|
|
@@ -5,9 +5,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
5
5
|
import { createElement as _createElement } from "react";
|
|
6
6
|
import { useModal } from '@faceless-ui/modal';
|
|
7
7
|
import React, { useCallback, useEffect, useId, useMemo, useState } from 'react';
|
|
8
|
+
import { useRelatedCollections } from '../../hooks/useRelatedCollections.js';
|
|
8
9
|
import { useEditDepth } from '../../providers/EditDepth/index.js';
|
|
9
10
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
10
|
-
import { useRelatedCollections } from '../AddNewRelation/useRelatedCollections.js';
|
|
11
11
|
import { Drawer, DrawerToggler } from '../Drawer/index.js';
|
|
12
12
|
import { DocumentDrawerContent } from './DrawerContent.js';
|
|
13
13
|
import './index.scss';
|
|
@@ -25,18 +25,18 @@ export const DocumentDrawerToggler = t0 => {
|
|
|
25
25
|
let collectionSlug;
|
|
26
26
|
let disabled;
|
|
27
27
|
let drawerSlug;
|
|
28
|
-
let id;
|
|
29
28
|
let onClick;
|
|
29
|
+
let operation;
|
|
30
30
|
let rest;
|
|
31
31
|
if ($[0] !== t0) {
|
|
32
32
|
({
|
|
33
|
-
id,
|
|
34
33
|
children,
|
|
35
34
|
className,
|
|
36
35
|
collectionSlug,
|
|
37
36
|
disabled,
|
|
38
37
|
drawerSlug,
|
|
39
38
|
onClick,
|
|
39
|
+
operation,
|
|
40
40
|
...rest
|
|
41
41
|
} = t0);
|
|
42
42
|
$[0] = t0;
|
|
@@ -45,8 +45,8 @@ export const DocumentDrawerToggler = t0 => {
|
|
|
45
45
|
$[3] = collectionSlug;
|
|
46
46
|
$[4] = disabled;
|
|
47
47
|
$[5] = drawerSlug;
|
|
48
|
-
$[6] =
|
|
49
|
-
$[7] =
|
|
48
|
+
$[6] = onClick;
|
|
49
|
+
$[7] = operation;
|
|
50
50
|
$[8] = rest;
|
|
51
51
|
} else {
|
|
52
52
|
children = $[1];
|
|
@@ -54,15 +54,15 @@ export const DocumentDrawerToggler = t0 => {
|
|
|
54
54
|
collectionSlug = $[3];
|
|
55
55
|
disabled = $[4];
|
|
56
56
|
drawerSlug = $[5];
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
onClick = $[6];
|
|
58
|
+
operation = $[7];
|
|
59
59
|
rest = $[8];
|
|
60
60
|
}
|
|
61
61
|
const {
|
|
62
62
|
t
|
|
63
63
|
} = useTranslation();
|
|
64
64
|
const [collectionConfig] = useRelatedCollections(collectionSlug);
|
|
65
|
-
const t1 =
|
|
65
|
+
const t1 = operation === "create" ? "fields:addNewLabel" : "general:editLabel";
|
|
66
66
|
const t2 = collectionConfig?.labels.singular;
|
|
67
67
|
let t3;
|
|
68
68
|
if ($[9] !== children || $[10] !== className || $[11] !== disabled || $[12] !== drawerSlug || $[13] !== onClick || $[14] !== rest || $[15] !== t || $[16] !== t1 || $[17] !== t2) {
|
|
@@ -115,6 +115,25 @@ export const DocumentDrawer = props => {
|
|
|
115
115
|
})
|
|
116
116
|
});
|
|
117
117
|
};
|
|
118
|
+
/**
|
|
119
|
+
* A hook to manage documents from a drawer modal.
|
|
120
|
+
* It provides the components and methods needed to open, close, and interact with the drawer.
|
|
121
|
+
* @example
|
|
122
|
+
* const [DocumentDrawer, DocumentDrawerToggler, { openDrawer, closeDrawer }] = useDocumentDrawer({
|
|
123
|
+
* collectionSlug: 'posts',
|
|
124
|
+
* id: postId, // optional, if not provided, it will render the "create new" view
|
|
125
|
+
* })
|
|
126
|
+
*
|
|
127
|
+
* // ...
|
|
128
|
+
*
|
|
129
|
+
* return (
|
|
130
|
+
* <div>
|
|
131
|
+
* <DocumentDrawerToggler collectionSlug="posts" id={postId}>
|
|
132
|
+
* Edit Post
|
|
133
|
+
* </DocumentDrawerToggler>
|
|
134
|
+
* <DocumentDrawer collectionSlug="posts" id={postId} />
|
|
135
|
+
* </div>
|
|
136
|
+
*/
|
|
118
137
|
export const useDocumentDrawer = t0 => {
|
|
119
138
|
const $ = _c(38);
|
|
120
139
|
const {
|
|
@@ -228,7 +247,7 @@ export const useDocumentDrawer = t0 => {
|
|
|
228
247
|
...props_0,
|
|
229
248
|
collectionSlug,
|
|
230
249
|
drawerSlug,
|
|
231
|
-
id
|
|
250
|
+
operation: !id ? "create" : "update"
|
|
232
251
|
});
|
|
233
252
|
$[23] = collectionSlug;
|
|
234
253
|
$[24] = drawerSlug;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","React","useCallback","useEffect","useId","useMemo","useState","useEditDepth","useTranslation","useRelatedCollections","Drawer","DrawerToggler","DocumentDrawerContent","documentDrawerBaseClass","formatDocumentDrawerSlug","id","collectionSlug","depth","uuid","DocumentDrawerToggler","t0","$","children","className","disabled","drawerSlug","onClick","rest","t","collectionConfig","t1","t2","labels","singular","t3","t4","label","t5","filter","Boolean","_jsx","join","slug","DocumentDrawer","props","gutter","Header","useDocumentDrawer","overrideEntityVisibility","editDepth","closeModal","modalState","openModal","toggleModal","isOpen","setIsOpen","toggleDrawer","closeDrawer","t6","openDrawer","t7","t8","_createElement","key","MemoizedDrawer","t9","t10","props_0","MemoizedDrawerToggler","t11","t12","drawerDepth","isDrawerOpen","MemoizedDrawerState","t13"],"sources":["../../../src/elements/DocumentDrawer/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useId, useMemo, useState } from 'react'\n\nimport type { DocumentDrawerProps, DocumentTogglerProps, UseDocumentDrawer } from './types.js'\n\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useRelatedCollections } from '../AddNewRelation/useRelatedCollections.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { DocumentDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const documentDrawerBaseClass = 'doc-drawer'\n\nconst formatDocumentDrawerSlug = ({\n id,\n collectionSlug,\n depth,\n uuid,\n}: {\n collectionSlug: string\n depth: number\n id: number | string\n uuid: string // supply when creating a new document and no id is available\n}) => `doc-drawer_${collectionSlug}_${depth}${id ? `_${id}` : ''}_${uuid}`\n\nexport const DocumentDrawerToggler: React.FC<DocumentTogglerProps> = ({\n id,\n children,\n className,\n collectionSlug,\n disabled,\n drawerSlug,\n onClick,\n ...rest\n}) => {\n const { t } = useTranslation()\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n\n return (\n <DrawerToggler\n aria-label={t(!id ? 'fields:addNewLabel' : 'general:editLabel', {\n label: collectionConfig?.labels.singular,\n })}\n className={[className, `${documentDrawerBaseClass}__toggler`].filter(Boolean).join(' ')}\n disabled={disabled}\n onClick={onClick}\n slug={drawerSlug}\n {...rest}\n >\n {children}\n </DrawerToggler>\n )\n}\n\nexport const DocumentDrawer: React.FC<DocumentDrawerProps> = (props) => {\n const { drawerSlug } = props\n\n return (\n <Drawer className={documentDrawerBaseClass} gutter={false} Header={null} slug={drawerSlug}>\n <DocumentDrawerContent {...props} />\n </Drawer>\n )\n}\n\nexport const useDocumentDrawer: UseDocumentDrawer = ({\n id,\n collectionSlug,\n overrideEntityVisibility,\n}) => {\n const editDepth = useEditDepth()\n const uuid = useId()\n const { closeModal, modalState, openModal, toggleModal } = useModal()\n const [isOpen, setIsOpen] = useState(false)\n\n const drawerSlug = formatDocumentDrawerSlug({\n id,\n collectionSlug,\n depth: editDepth,\n uuid,\n })\n\n useEffect(() => {\n setIsOpen(Boolean(modalState[drawerSlug]?.isOpen))\n }, [modalState, drawerSlug])\n\n const toggleDrawer = useCallback(() => {\n toggleModal(drawerSlug)\n }, [toggleModal, drawerSlug])\n\n const closeDrawer = useCallback(() => {\n closeModal(drawerSlug)\n }, [closeModal, drawerSlug])\n\n const openDrawer = useCallback(() => {\n openModal(drawerSlug)\n }, [openModal, drawerSlug])\n\n const MemoizedDrawer = useMemo(() => {\n return (props) => (\n <DocumentDrawer\n {...props}\n collectionSlug={collectionSlug}\n drawerSlug={drawerSlug}\n id={id}\n key={drawerSlug}\n overrideEntityVisibility={overrideEntityVisibility}\n />\n )\n }, [id, drawerSlug, collectionSlug, overrideEntityVisibility])\n\n const MemoizedDrawerToggler = useMemo(() => {\n return (props) => (\n <DocumentDrawerToggler\n {...props}\n collectionSlug={collectionSlug}\n drawerSlug={drawerSlug}\n id={id}\n />\n )\n }, [id, drawerSlug, collectionSlug])\n\n const MemoizedDrawerState = useMemo(\n () => ({\n closeDrawer,\n drawerDepth: editDepth,\n drawerSlug,\n isDrawerOpen: isOpen,\n openDrawer,\n toggleDrawer,\n }),\n [editDepth, drawerSlug, isOpen, toggleDrawer, closeDrawer, openDrawer],\n )\n\n return [MemoizedDrawer, MemoizedDrawerToggler, MemoizedDrawerState]\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","React","useCallback","useEffect","useId","useMemo","useState","useRelatedCollections","useEditDepth","useTranslation","Drawer","DrawerToggler","DocumentDrawerContent","documentDrawerBaseClass","formatDocumentDrawerSlug","id","collectionSlug","depth","uuid","DocumentDrawerToggler","t0","$","children","className","disabled","drawerSlug","onClick","operation","rest","t","collectionConfig","t1","t2","labels","singular","t3","t4","label","t5","filter","Boolean","_jsx","join","slug","DocumentDrawer","props","gutter","Header","useDocumentDrawer","overrideEntityVisibility","editDepth","closeModal","modalState","openModal","toggleModal","isOpen","setIsOpen","toggleDrawer","closeDrawer","t6","openDrawer","t7","t8","_createElement","key","MemoizedDrawer","t9","t10","props_0","MemoizedDrawerToggler","t11","t12","drawerDepth","isDrawerOpen","MemoizedDrawerState","t13"],"sources":["../../../src/elements/DocumentDrawer/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useId, useMemo, useState } from 'react'\n\nimport type {\n DocumentDrawerProps,\n DocumentTogglerProps,\n UseDocumentDrawer,\n UseDocumentDrawerContext,\n} from './types.js'\n\nimport { useRelatedCollections } from '../../hooks/useRelatedCollections.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { DocumentDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const documentDrawerBaseClass = 'doc-drawer'\n\nconst formatDocumentDrawerSlug = ({\n id,\n collectionSlug,\n depth,\n uuid,\n}: {\n collectionSlug: string\n depth: number\n id: number | string\n uuid: string // supply when creating a new document and no id is available\n}) => `doc-drawer_${collectionSlug}_${depth}${id ? `_${id}` : ''}_${uuid}`\n\nexport const DocumentDrawerToggler: React.FC<DocumentTogglerProps> = ({\n children,\n className,\n collectionSlug,\n disabled,\n drawerSlug,\n onClick,\n operation,\n ...rest\n}) => {\n const { t } = useTranslation()\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n\n return (\n <DrawerToggler\n aria-label={t(operation === 'create' ? 'fields:addNewLabel' : 'general:editLabel', {\n label: collectionConfig?.labels.singular,\n })}\n className={[className, `${documentDrawerBaseClass}__toggler`].filter(Boolean).join(' ')}\n disabled={disabled}\n onClick={onClick}\n slug={drawerSlug}\n {...rest}\n >\n {children}\n </DrawerToggler>\n )\n}\n\nexport const DocumentDrawer: React.FC<DocumentDrawerProps> = (props) => {\n const { drawerSlug } = props\n\n return (\n <Drawer className={documentDrawerBaseClass} gutter={false} Header={null} slug={drawerSlug}>\n <DocumentDrawerContent {...props} />\n </Drawer>\n )\n}\n\n/**\n * A hook to manage documents from a drawer modal.\n * It provides the components and methods needed to open, close, and interact with the drawer.\n * @example\n * const [DocumentDrawer, DocumentDrawerToggler, { openDrawer, closeDrawer }] = useDocumentDrawer({\n * collectionSlug: 'posts',\n * id: postId, // optional, if not provided, it will render the \"create new\" view\n * })\n *\n * // ...\n *\n * return (\n * <div>\n * <DocumentDrawerToggler collectionSlug=\"posts\" id={postId}>\n * Edit Post\n * </DocumentDrawerToggler>\n * <DocumentDrawer collectionSlug=\"posts\" id={postId} />\n * </div>\n */\nexport const useDocumentDrawer: UseDocumentDrawer = ({\n id,\n collectionSlug,\n overrideEntityVisibility,\n}) => {\n const editDepth = useEditDepth()\n const uuid = useId()\n const { closeModal, modalState, openModal, toggleModal } = useModal()\n const [isOpen, setIsOpen] = useState(false)\n\n const drawerSlug = formatDocumentDrawerSlug({\n id,\n collectionSlug,\n depth: editDepth,\n uuid,\n })\n\n useEffect(() => {\n setIsOpen(Boolean(modalState[drawerSlug]?.isOpen))\n }, [modalState, drawerSlug])\n\n const toggleDrawer = useCallback(() => {\n toggleModal(drawerSlug)\n }, [toggleModal, drawerSlug])\n\n const closeDrawer = useCallback(() => {\n closeModal(drawerSlug)\n }, [closeModal, drawerSlug])\n\n const openDrawer = useCallback(() => {\n openModal(drawerSlug)\n }, [openModal, drawerSlug])\n\n const MemoizedDrawer = useMemo<React.FC<DocumentDrawerProps>>(() => {\n return (props) => (\n <DocumentDrawer\n {...props}\n collectionSlug={collectionSlug}\n drawerSlug={drawerSlug}\n id={id}\n key={drawerSlug}\n overrideEntityVisibility={overrideEntityVisibility}\n />\n )\n }, [id, drawerSlug, collectionSlug, overrideEntityVisibility])\n\n const MemoizedDrawerToggler = useMemo<React.FC<DocumentTogglerProps>>(() => {\n return (props) => (\n <DocumentDrawerToggler\n {...props}\n collectionSlug={collectionSlug}\n drawerSlug={drawerSlug}\n operation={!id ? 'create' : 'update'}\n />\n )\n }, [id, drawerSlug, collectionSlug])\n\n const MemoizedDrawerState = useMemo<UseDocumentDrawerContext>(\n () => ({\n closeDrawer,\n drawerDepth: editDepth,\n drawerSlug,\n isDrawerOpen: isOpen,\n openDrawer,\n toggleDrawer,\n }),\n [editDepth, drawerSlug, isOpen, toggleDrawer, closeDrawer, openDrawer],\n )\n\n return [MemoizedDrawer, MemoizedDrawerToggler, MemoizedDrawerState]\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Data, FormState } from 'payload';
|
|
1
|
+
import type { Data, FormState, Operation } from 'payload';
|
|
2
2
|
import type React from 'react';
|
|
3
3
|
import type { HTMLAttributes } from 'react';
|
|
4
4
|
import type { Props as DrawerProps } from '../Drawer/types.js';
|
|
@@ -26,23 +26,36 @@ export type DocumentTogglerProps = {
|
|
|
26
26
|
readonly collectionSlug: string;
|
|
27
27
|
readonly disabled?: boolean;
|
|
28
28
|
readonly drawerSlug?: string;
|
|
29
|
-
readonly id?: string;
|
|
30
29
|
readonly onClick?: () => void;
|
|
30
|
+
readonly operation: Operation;
|
|
31
31
|
} & Readonly<HTMLAttributes<HTMLButtonElement>>;
|
|
32
|
+
export type UseDocumentDrawerContext = {
|
|
33
|
+
closeDrawer: () => void;
|
|
34
|
+
drawerDepth: number;
|
|
35
|
+
drawerSlug: string;
|
|
36
|
+
isDrawerOpen: boolean;
|
|
37
|
+
openDrawer: () => void;
|
|
38
|
+
toggleDrawer: () => void;
|
|
39
|
+
};
|
|
32
40
|
export type UseDocumentDrawer = (args: {
|
|
41
|
+
/**
|
|
42
|
+
* The slug of the collection to which the document belongs.
|
|
43
|
+
*/
|
|
33
44
|
collectionSlug: string;
|
|
45
|
+
/**
|
|
46
|
+
* The ID of the document to be edited.
|
|
47
|
+
* When provided, will be fetched and displayed in the drawer.
|
|
48
|
+
* If omitted, will render the "create new" view for the given collection.
|
|
49
|
+
*/
|
|
34
50
|
id?: number | string;
|
|
35
51
|
overrideEntityVisibility?: boolean;
|
|
36
52
|
}) => [
|
|
37
|
-
React.FC<
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
openDrawer: () => void;
|
|
45
|
-
toggleDrawer: () => void;
|
|
46
|
-
}
|
|
53
|
+
React.FC<{
|
|
54
|
+
children?: React.ReactNode;
|
|
55
|
+
} & Omit<DocumentDrawerProps, 'collectionSlug' | 'operation'>>,
|
|
56
|
+
React.FC<{
|
|
57
|
+
children?: React.ReactNode;
|
|
58
|
+
} & Omit<DocumentTogglerProps, 'collectionSlug' | 'operation'>>,
|
|
59
|
+
UseDocumentDrawerContext
|
|
47
60
|
];
|
|
48
61
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACzD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAE/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAC3C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACxC,GAAG,IAAI,CAAC,0BAA0B,EAAE,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC,GACzE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAE7B,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;CAC9B,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAE/C,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACrC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,KAAK;IAEJ,KAAK,CAAC,EAAE,CACN;QACE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3B,GAAG,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,GAAG,WAAW,CAAC,CAC9D;IAED,KAAK,CAAC,EAAE,CACN;QACE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3B,GAAG,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,GAAG,WAAW,CAAC,CAC/D;IAED,wBAAwB;CACzB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/DocumentDrawer/types.ts"],"sourcesContent":["import type { Data, FormState } from 'payload'\nimport type React from 'react'\nimport type { HTMLAttributes } from 'react'\n\nimport type { Props as DrawerProps } from '../Drawer/types.js'\nimport type { DocumentDrawerContextProps } from './Provider.js'\n\nexport type DocumentDrawerProps = {\n readonly AfterFields?: React.ReactNode\n readonly collectionSlug: string\n readonly disableActions?: boolean\n readonly drawerSlug?: string\n readonly id?: null | number | string\n readonly initialData?: Data\n /**\n * @deprecated\n */\n readonly initialState?: FormState\n readonly overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n} & Pick<DocumentDrawerContextProps, 'onDelete' | 'onDuplicate' | 'onSave'> &\n Pick<DrawerProps, 'Header'>\n\nexport type DocumentTogglerProps = {\n readonly children?: React.ReactNode\n readonly className?: string\n readonly collectionSlug: string\n readonly disabled?: boolean\n readonly drawerSlug?: string\n readonly
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/DocumentDrawer/types.ts"],"sourcesContent":["import type { Data, FormState, Operation } from 'payload'\nimport type React from 'react'\nimport type { HTMLAttributes } from 'react'\n\nimport type { Props as DrawerProps } from '../Drawer/types.js'\nimport type { DocumentDrawerContextProps } from './Provider.js'\n\nexport type DocumentDrawerProps = {\n readonly AfterFields?: React.ReactNode\n readonly collectionSlug: string\n readonly disableActions?: boolean\n readonly drawerSlug?: string\n readonly id?: null | number | string\n readonly initialData?: Data\n /**\n * @deprecated\n */\n readonly initialState?: FormState\n readonly overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n} & Pick<DocumentDrawerContextProps, 'onDelete' | 'onDuplicate' | 'onSave'> &\n Pick<DrawerProps, 'Header'>\n\nexport type DocumentTogglerProps = {\n readonly children?: React.ReactNode\n readonly className?: string\n readonly collectionSlug: string\n readonly disabled?: boolean\n readonly drawerSlug?: string\n readonly onClick?: () => void\n readonly operation: Operation\n} & Readonly<HTMLAttributes<HTMLButtonElement>>\n\nexport type UseDocumentDrawerContext = {\n closeDrawer: () => void\n drawerDepth: number\n drawerSlug: string\n isDrawerOpen: boolean\n openDrawer: () => void\n toggleDrawer: () => void\n}\n\nexport type UseDocumentDrawer = (args: {\n /**\n * The slug of the collection to which the document belongs.\n */\n collectionSlug: string\n /**\n * The ID of the document to be edited.\n * When provided, will be fetched and displayed in the drawer.\n * If omitted, will render the \"create new\" view for the given collection.\n */\n id?: number | string\n overrideEntityVisibility?: boolean\n}) => [\n // drawer\n React.FC<\n {\n children?: React.ReactNode\n } & Omit<DocumentDrawerProps, 'collectionSlug' | 'operation'>\n >,\n // toggler\n React.FC<\n {\n children?: React.ReactNode\n } & Omit<DocumentTogglerProps, 'collectionSlug' | 'operation'>\n >,\n // context\n UseDocumentDrawerContext,\n]\n"],"mappings":"AA6CA","ignoreList":[]}
|
|
@@ -5,33 +5,64 @@
|
|
|
5
5
|
width: 100%;
|
|
6
6
|
display: flex;
|
|
7
7
|
--doc-sidebar-width: 325px;
|
|
8
|
+
--sidebar-gutter-h-right: var(--gutter-h);
|
|
9
|
+
--sidebar-gutter-h-left: calc(var(--base) * 2);
|
|
10
|
+
--main-gutter-h-left: var(--gutter-h);
|
|
11
|
+
--main-gutter-h-right: calc(var(--base) * 2);
|
|
12
|
+
|
|
13
|
+
[dir='rtl'] &:not(&--force-sidebar-wrap) {
|
|
14
|
+
--sidebar-gutter-h-left: var(--gutter-h);
|
|
15
|
+
--sidebar-gutter-h-right: calc(var(--base) * 2);
|
|
16
|
+
--main-gutter-h-left: calc(var(--base) * 2);
|
|
17
|
+
--main-gutter-h-right: var(--gutter-h);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
&--force-sidebar-wrap,
|
|
21
|
+
&:has(.document-fields__sidebar-wrap .document-fields__sidebar-fields > .render-fields:empty) {
|
|
22
|
+
--sidebar-gutter-h-left: var(--gutter-h);
|
|
23
|
+
--sidebar-gutter-h-right: var(--gutter-h);
|
|
24
|
+
--main-gutter-h-left: var(--gutter-h);
|
|
25
|
+
--main-gutter-h-right: var(--gutter-h);
|
|
26
|
+
}
|
|
8
27
|
|
|
9
28
|
&--has-sidebar {
|
|
29
|
+
--main-width: 66.66%;
|
|
30
|
+
--main-border: 1px solid var(--theme-elevation-100);
|
|
31
|
+
--main-field-margin: calc(var(--base) * -2);
|
|
32
|
+
|
|
33
|
+
&:has(
|
|
34
|
+
.document-fields__sidebar-wrap .document-fields__sidebar-fields > .render-fields:empty
|
|
35
|
+
) {
|
|
36
|
+
--main-width: 100%;
|
|
37
|
+
--main-border: none;
|
|
38
|
+
--main-field-margin: initial;
|
|
39
|
+
}
|
|
40
|
+
|
|
10
41
|
.document-fields {
|
|
11
42
|
&__main {
|
|
12
|
-
width:
|
|
43
|
+
width: var(--main-width);
|
|
13
44
|
}
|
|
14
45
|
|
|
15
46
|
&__edit {
|
|
47
|
+
padding-left: var(--main-gutter-h-left);
|
|
48
|
+
padding-right: var(--main-gutter-h-right);
|
|
16
49
|
[dir='ltr'] & {
|
|
17
50
|
top: 0;
|
|
18
51
|
right: 0;
|
|
19
|
-
border-right:
|
|
20
|
-
padding-right: calc(var(--base) * 2);
|
|
52
|
+
border-right: var(--main-border);
|
|
21
53
|
}
|
|
22
54
|
|
|
23
55
|
[dir='rtl'] & {
|
|
24
56
|
top: 0;
|
|
25
57
|
left: 0;
|
|
26
|
-
border-left:
|
|
27
|
-
padding-left: calc(var(--base) * 2);
|
|
58
|
+
border-left: var(--main-border);
|
|
28
59
|
}
|
|
29
60
|
}
|
|
30
61
|
|
|
31
62
|
&__fields {
|
|
32
63
|
& > .tabs-field,
|
|
33
64
|
& > .group-field {
|
|
34
|
-
margin-right:
|
|
65
|
+
margin-right: var(--main-field-margin);
|
|
35
66
|
}
|
|
36
67
|
}
|
|
37
68
|
}
|
|
@@ -52,12 +83,21 @@
|
|
|
52
83
|
}
|
|
53
84
|
|
|
54
85
|
&__sidebar-wrap {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
86
|
+
&:has(.document-fields__sidebar-fields > .render-fields:empty) {
|
|
87
|
+
--sidebar-wrap-width: 0;
|
|
88
|
+
--sidebar-wrap-min-width: 0;
|
|
89
|
+
--sidebar-wrap-position: initial;
|
|
90
|
+
--sidebar-wrap-top: initial;
|
|
91
|
+
--sidebar-wrap-height: initial;
|
|
92
|
+
--sidebar-wrap-flex-shrink: initial;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
position: var(--sidebar-wrap-position, sticky);
|
|
96
|
+
top: var(--sidebar-wrap-top, 0);
|
|
97
|
+
width: var(--sidebar-wrap-width, 33.33%);
|
|
98
|
+
height: var(--sidebar-wrap-height, calc(100vh - var(--doc-controls-height)));
|
|
99
|
+
min-width: var(--sidebar-wrap-min-width, var(--doc-sidebar-width));
|
|
100
|
+
flex-shrink: var(--sidebar-wrap-flex-shrink, 0);
|
|
61
101
|
}
|
|
62
102
|
|
|
63
103
|
&__sidebar {
|
|
@@ -74,8 +114,8 @@
|
|
|
74
114
|
flex-direction: column;
|
|
75
115
|
gap: var(--base);
|
|
76
116
|
padding-top: calc(var(--base) * 1.5);
|
|
77
|
-
padding-left:
|
|
78
|
-
padding-right: var(--gutter-h);
|
|
117
|
+
padding-left: var(--sidebar-gutter-h-left);
|
|
118
|
+
padding-right: var(--sidebar-gutter-h-right);
|
|
79
119
|
padding-bottom: var(--spacing-view-bottom);
|
|
80
120
|
}
|
|
81
121
|
|
|
@@ -106,7 +146,6 @@
|
|
|
106
146
|
|
|
107
147
|
&__sidebar-fields {
|
|
108
148
|
padding-top: 0;
|
|
109
|
-
padding-left: var(--gutter-h);
|
|
110
149
|
padding-bottom: 0;
|
|
111
150
|
}
|
|
112
151
|
}
|
|
@@ -114,6 +153,16 @@
|
|
|
114
153
|
|
|
115
154
|
@include mid-break {
|
|
116
155
|
display: block;
|
|
156
|
+
[dir='rtl'] &:not(&--force-sidebar-wrap) {
|
|
157
|
+
--sidebar-gutter-h-left: var(--gutter-h);
|
|
158
|
+
--sidebar-gutter-h-right: var(--gutter-h);
|
|
159
|
+
--main-gutter-h-left: var(--gutter-h);
|
|
160
|
+
--main-gutter-h-right: var(--gutter-h);
|
|
161
|
+
}
|
|
162
|
+
--main-gutter-h-left: var(--gutter-h);
|
|
163
|
+
--main-gutter-h-right: var(--gutter-h);
|
|
164
|
+
--sidebar-gutter-h-left: var(--gutter-h);
|
|
165
|
+
--sidebar-gutter-h-right: var(--gutter-h);
|
|
117
166
|
|
|
118
167
|
&--has-sidebar {
|
|
119
168
|
.document-fields {
|
|
@@ -124,12 +173,10 @@
|
|
|
124
173
|
&__edit {
|
|
125
174
|
[dir='ltr'] & {
|
|
126
175
|
border-right: 0;
|
|
127
|
-
padding-right: var(--gutter-h);
|
|
128
176
|
}
|
|
129
177
|
|
|
130
178
|
[dir='rtl'] & {
|
|
131
179
|
border-left: 0;
|
|
132
|
-
padding-left: var(--gutter-h);
|
|
133
180
|
}
|
|
134
181
|
}
|
|
135
182
|
|
|
@@ -160,18 +207,8 @@
|
|
|
160
207
|
|
|
161
208
|
&__sidebar-fields {
|
|
162
209
|
padding-top: 0;
|
|
163
|
-
padding-left: var(--gutter-h);
|
|
164
|
-
padding-right: var(--gutter-h);
|
|
165
210
|
padding-bottom: 0;
|
|
166
211
|
gap: base(0.5);
|
|
167
|
-
|
|
168
|
-
[dir='ltr'] & {
|
|
169
|
-
padding-right: var(--gutter-h);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
[dir='rtl'] & {
|
|
173
|
-
padding-left: var(--gutter-h);
|
|
174
|
-
}
|
|
175
212
|
}
|
|
176
213
|
|
|
177
214
|
&__sidebar {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { OnDrawerOpen } from '../../index.js';
|
|
3
3
|
import './index.scss';
|
|
4
4
|
export declare const DrawerLink: React.FC<{
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
currentDrawerID?: string;
|
|
6
|
+
onDrawerOpen: OnDrawerOpen;
|
|
7
7
|
}>;
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/RelationshipTable/cells/DrawerLink/index.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/RelationshipTable/cells/DrawerLink/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAKlD,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;CAC3B,CAiBA,CAAA"}
|