@payloadcms/ui 3.20.0 → 3.21.0-canary.c6481e1
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/exports/client/index.js +9 -9
- package/dist/exports/client/index.js.map +2 -2
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +6 -3
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/Textarea/Input.d.ts.map +1 -1
- package/dist/fields/Textarea/Input.js +9 -16
- package/dist/fields/Textarea/Input.js.map +1 -1
- package/dist/fields/Textarea/index.scss +6 -78
- package/dist/styles.css +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Join/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,eAAe,EAIhB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAkB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Join/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,eAAe,EAIhB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAkB,MAAM,OAAO,CAAA;AAuMtC,eAAO,MAAM,SAAS;;;;+EAAoC,CAAA"}
|
|
@@ -138,18 +138,21 @@ const JoinFieldComponent = props => {
|
|
|
138
138
|
};
|
|
139
139
|
}
|
|
140
140
|
return where;
|
|
141
|
-
}, [docID, field.targetField.relationTo, field.where, on, docConfig
|
|
141
|
+
}, [docID, field.targetField.relationTo, field.where, on, docConfig?.slug]);
|
|
142
142
|
const initialDrawerData = useMemo(() => {
|
|
143
143
|
const relatedCollection = getEntityConfig({
|
|
144
144
|
collectionSlug: field.collection
|
|
145
145
|
});
|
|
146
146
|
return getInitialDrawerData({
|
|
147
|
-
collectionSlug: docConfig
|
|
147
|
+
collectionSlug: docConfig?.slug,
|
|
148
148
|
docID,
|
|
149
149
|
fields: relatedCollection.fields,
|
|
150
150
|
segments: field.on.split('.')
|
|
151
151
|
});
|
|
152
|
-
}, [getEntityConfig, field.collection, field.on, docConfig
|
|
152
|
+
}, [getEntityConfig, field.collection, field.on, docConfig?.slug, docID]);
|
|
153
|
+
if (!docConfig) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
153
156
|
return /*#__PURE__*/_jsxs("div", {
|
|
154
157
|
className: [fieldBaseClass, 'join'].filter(Boolean).join(' '),
|
|
155
158
|
id: `field-${path?.replace(/\./g, '__')}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["ObjectIdImport","flattenTopLevelFields","React","useMemo","RelationshipTable","RenderCustomComponent","useField","withCondition","useConfig","useDocumentInfo","FieldDescription","FieldLabel","fieldBaseClass","ObjectId","default","getInitialDrawerData","collectionSlug","docID","fields","segments","flattenedFields","path","field","find","name","type","value","Array","isArray","relationTo","hasMany","nextSegments","slice","length","initialData","id","toHexString","block","blocks","blockInitialData","blockType","slug","JoinFieldComponent","props","admin","allowCreate","description","collection","label","localized","on","required","docConfig","getEntityConfig","customComponents","AfterInput","BeforeInput","Description","Label","filterOptions","targetField","where","equals","and","initialDrawerData","relatedCollection","split","_jsxs","className","filter","Boolean","join","replace","_jsx","disableTable","docs","style","margin","CustomComponent","Fallback","JoinField"],"sources":["../../../src/fields/Join/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientField,\n JoinFieldClient,\n JoinFieldClientComponent,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { flattenTopLevelFields } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport { RelationshipTable } from '../../elements/RelationshipTable/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../index.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Recursively builds the default data for joined collection\n */\nconst getInitialDrawerData = ({\n collectionSlug,\n docID,\n fields,\n segments,\n}: {\n collectionSlug: string\n docID: number | string\n fields: ClientField[]\n segments: string[]\n}) => {\n const flattenedFields = flattenTopLevelFields(fields)\n\n const path = segments[0]\n\n const field = flattenedFields.find((field) => field.name === path)\n\n if (!field) {\n return null\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n let value: { relationTo: string; value: number | string } | number | string = docID\n if (Array.isArray(field.relationTo)) {\n value = {\n relationTo: collectionSlug,\n value: docID,\n }\n }\n return {\n [field.name]: field.hasMany ? [value] : value,\n }\n }\n\n const nextSegments = segments.slice(1, segments.length)\n\n if (field.type === 'tab' || field.type === 'group') {\n return {\n [field.name]: getInitialDrawerData({\n collectionSlug,\n docID,\n fields: field.fields,\n segments: nextSegments,\n }),\n }\n }\n\n if (field.type === 'array') {\n const initialData = getInitialDrawerData({\n collectionSlug,\n docID,\n fields: field.fields,\n segments: nextSegments,\n })\n\n initialData.id = ObjectId().toHexString()\n\n return {\n [field.name]: [initialData],\n }\n }\n\n if (field.type === 'blocks') {\n for (const block of field.blocks) {\n const blockInitialData = getInitialDrawerData({\n collectionSlug,\n docID,\n fields: block.fields,\n segments: nextSegments,\n })\n\n if (blockInitialData) {\n blockInitialData.id = ObjectId().toHexString()\n blockInitialData.blockType = block.slug\n\n return {\n [field.name]: [blockInitialData],\n }\n }\n }\n }\n}\n\nconst JoinFieldComponent: JoinFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { allowCreate, description },\n collection,\n label,\n localized,\n on,\n required,\n },\n path,\n } = props\n\n const { id: docID, docConfig } = useDocumentInfo()\n\n const { getEntityConfig } = useConfig()\n\n const { customComponents: { AfterInput, BeforeInput, Description, Label } = {}, value } =\n useField<PaginatedDocs>({\n path,\n })\n\n const filterOptions: null | Where = useMemo(() => {\n if (!docID) {\n return null\n }\n\n let value: { relationTo: string; value: number | string } | number | string = docID\n\n if (Array.isArray(field.targetField.relationTo)) {\n value = {\n relationTo: docConfig.slug,\n value,\n }\n }\n\n const where = {\n [on]: {\n equals: value,\n },\n }\n\n if (field.where) {\n return {\n and: [where, field.where],\n }\n }\n\n return where\n }, [docID, field.targetField.relationTo, field.where, on, docConfig.slug])\n\n const initialDrawerData = useMemo(() => {\n const relatedCollection = getEntityConfig({ collectionSlug: field.collection })\n\n return getInitialDrawerData({\n collectionSlug: docConfig.slug,\n docID,\n fields: relatedCollection.fields,\n segments: field.on.split('.'),\n })\n }, [getEntityConfig, field.collection, field.on, docConfig.slug, docID])\n\n return (\n <div\n className={[fieldBaseClass, 'join'].filter(Boolean).join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n >\n <RelationshipTable\n AfterInput={AfterInput}\n allowCreate={typeof docID !== 'undefined' && allowCreate}\n BeforeInput={BeforeInput}\n disableTable={filterOptions === null}\n field={field as JoinFieldClient}\n filterOptions={filterOptions}\n initialData={docID && value ? value : ({ docs: [] } as PaginatedDocs)}\n initialDrawerData={initialDrawerData}\n Label={\n <h4 style={{ margin: 0 }}>\n {Label || (\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n )}\n </h4>\n }\n relationTo={collection}\n />\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const JoinField = withCondition(JoinFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["ObjectIdImport","flattenTopLevelFields","React","useMemo","RelationshipTable","RenderCustomComponent","useField","withCondition","useConfig","useDocumentInfo","FieldDescription","FieldLabel","fieldBaseClass","ObjectId","default","getInitialDrawerData","collectionSlug","docID","fields","segments","flattenedFields","path","field","find","name","type","value","Array","isArray","relationTo","hasMany","nextSegments","slice","length","initialData","id","toHexString","block","blocks","blockInitialData","blockType","slug","JoinFieldComponent","props","admin","allowCreate","description","collection","label","localized","on","required","docConfig","getEntityConfig","customComponents","AfterInput","BeforeInput","Description","Label","filterOptions","targetField","where","equals","and","initialDrawerData","relatedCollection","split","_jsxs","className","filter","Boolean","join","replace","_jsx","disableTable","docs","style","margin","CustomComponent","Fallback","JoinField"],"sources":["../../../src/fields/Join/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientField,\n JoinFieldClient,\n JoinFieldClientComponent,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { flattenTopLevelFields } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport { RelationshipTable } from '../../elements/RelationshipTable/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../index.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Recursively builds the default data for joined collection\n */\nconst getInitialDrawerData = ({\n collectionSlug,\n docID,\n fields,\n segments,\n}: {\n collectionSlug: string\n docID: number | string\n fields: ClientField[]\n segments: string[]\n}) => {\n const flattenedFields = flattenTopLevelFields(fields)\n\n const path = segments[0]\n\n const field = flattenedFields.find((field) => field.name === path)\n\n if (!field) {\n return null\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n let value: { relationTo: string; value: number | string } | number | string = docID\n if (Array.isArray(field.relationTo)) {\n value = {\n relationTo: collectionSlug,\n value: docID,\n }\n }\n return {\n [field.name]: field.hasMany ? [value] : value,\n }\n }\n\n const nextSegments = segments.slice(1, segments.length)\n\n if (field.type === 'tab' || field.type === 'group') {\n return {\n [field.name]: getInitialDrawerData({\n collectionSlug,\n docID,\n fields: field.fields,\n segments: nextSegments,\n }),\n }\n }\n\n if (field.type === 'array') {\n const initialData = getInitialDrawerData({\n collectionSlug,\n docID,\n fields: field.fields,\n segments: nextSegments,\n })\n\n initialData.id = ObjectId().toHexString()\n\n return {\n [field.name]: [initialData],\n }\n }\n\n if (field.type === 'blocks') {\n for (const block of field.blocks) {\n const blockInitialData = getInitialDrawerData({\n collectionSlug,\n docID,\n fields: block.fields,\n segments: nextSegments,\n })\n\n if (blockInitialData) {\n blockInitialData.id = ObjectId().toHexString()\n blockInitialData.blockType = block.slug\n\n return {\n [field.name]: [blockInitialData],\n }\n }\n }\n }\n}\n\nconst JoinFieldComponent: JoinFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { allowCreate, description },\n collection,\n label,\n localized,\n on,\n required,\n },\n path,\n } = props\n\n const { id: docID, docConfig } = useDocumentInfo()\n\n const { getEntityConfig } = useConfig()\n\n const { customComponents: { AfterInput, BeforeInput, Description, Label } = {}, value } =\n useField<PaginatedDocs>({\n path,\n })\n\n const filterOptions: null | Where = useMemo(() => {\n if (!docID) {\n return null\n }\n\n let value: { relationTo: string; value: number | string } | number | string = docID\n\n if (Array.isArray(field.targetField.relationTo)) {\n value = {\n relationTo: docConfig.slug,\n value,\n }\n }\n\n const where = {\n [on]: {\n equals: value,\n },\n }\n\n if (field.where) {\n return {\n and: [where, field.where],\n }\n }\n\n return where\n }, [docID, field.targetField.relationTo, field.where, on, docConfig?.slug])\n\n const initialDrawerData = useMemo(() => {\n const relatedCollection = getEntityConfig({ collectionSlug: field.collection })\n\n return getInitialDrawerData({\n collectionSlug: docConfig?.slug,\n docID,\n fields: relatedCollection.fields,\n segments: field.on.split('.'),\n })\n }, [getEntityConfig, field.collection, field.on, docConfig?.slug, docID])\n\n if (!docConfig) {\n return null\n }\n\n return (\n <div\n className={[fieldBaseClass, 'join'].filter(Boolean).join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n >\n <RelationshipTable\n AfterInput={AfterInput}\n allowCreate={typeof docID !== 'undefined' && allowCreate}\n BeforeInput={BeforeInput}\n disableTable={filterOptions === null}\n field={field as JoinFieldClient}\n filterOptions={filterOptions}\n initialData={docID && value ? value : ({ docs: [] } as PaginatedDocs)}\n initialDrawerData={initialDrawerData}\n Label={\n <h4 style={{ margin: 0 }}>\n {Label || (\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n )}\n </h4>\n }\n relationTo={collection}\n />\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const JoinField = withCondition(JoinFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAQpD,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAQpD,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAsEtD,CAAA"}
|
|
@@ -74,22 +74,15 @@ export const TextareaInput = props => {
|
|
|
74
74
|
}), BeforeInput, _jsx("label", {
|
|
75
75
|
className: "textarea-outer",
|
|
76
76
|
htmlFor: `field-${path.replace(/\./g, "__")}`,
|
|
77
|
-
children:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
id: `field-${path.replace(/\./g, "__")}`,
|
|
87
|
-
name: path,
|
|
88
|
-
onChange,
|
|
89
|
-
placeholder: getTranslation(placeholder, i18n),
|
|
90
|
-
rows,
|
|
91
|
-
value: value || ""
|
|
92
|
-
})]
|
|
77
|
+
children: _jsx("textarea", {
|
|
78
|
+
"data-rtl": rtl,
|
|
79
|
+
disabled: readOnly,
|
|
80
|
+
id: `field-${path.replace(/\./g, "__")}`,
|
|
81
|
+
name: path,
|
|
82
|
+
onChange,
|
|
83
|
+
placeholder: getTranslation(placeholder, i18n),
|
|
84
|
+
rows,
|
|
85
|
+
value: value || ""
|
|
93
86
|
})
|
|
94
87
|
}), AfterInput, _jsx(RenderCustomComponent, {
|
|
95
88
|
CustomComponent: Description,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","names":["c","_c","getTranslation","React","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useTranslation","fieldBaseClass","TextareaInput","props","$","AfterInput","BeforeInput","className","Description","description","Error","Label","label","localized","onChange","path","placeholder","readOnly","required","rows","rtl","showError","style","value","i18n","t0","t1","t2","filter","Boolean","t3","join","t4","_jsxs","children","_jsx","CustomComponent","Fallback","htmlFor","replace","disabled","id","name"],"sources":["../../../src/fields/Textarea/Input.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { TextAreaInputProps } from './types.js'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport const TextareaInput: React.FC<TextAreaInputProps> = (props) => {\n const {\n AfterInput,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n Label,\n label,\n localized,\n onChange,\n path,\n placeholder,\n readOnly,\n required,\n rows,\n rtl,\n showError,\n style,\n value,\n } = props\n\n const { i18n } = useTranslation()\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'textarea',\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n <label className=\"textarea-outer\" htmlFor={`field-${path.replace(/\\./g, '__')}`}>\n <
|
|
1
|
+
{"version":3,"file":"Input.js","names":["c","_c","getTranslation","React","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useTranslation","fieldBaseClass","TextareaInput","props","$","AfterInput","BeforeInput","className","Description","description","Error","Label","label","localized","onChange","path","placeholder","readOnly","required","rows","rtl","showError","style","value","i18n","t0","t1","t2","filter","Boolean","t3","join","t4","_jsxs","children","_jsx","CustomComponent","Fallback","htmlFor","replace","disabled","id","name"],"sources":["../../../src/fields/Textarea/Input.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { TextAreaInputProps } from './types.js'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport const TextareaInput: React.FC<TextAreaInputProps> = (props) => {\n const {\n AfterInput,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n Label,\n label,\n localized,\n onChange,\n path,\n placeholder,\n readOnly,\n required,\n rows,\n rtl,\n showError,\n style,\n value,\n } = props\n\n const { i18n } = useTranslation()\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'textarea',\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n <label className=\"textarea-outer\" htmlFor={`field-${path.replace(/\\./g, '__')}`}>\n <textarea\n data-rtl={rtl}\n disabled={readOnly}\n id={`field-${path.replace(/\\./g, '__')}`}\n name={path}\n onChange={onChange}\n placeholder={getTranslation(placeholder, i18n)}\n rows={rows}\n value={value || ''}\n />\n </label>\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,20 +6,14 @@
|
|
|
6
6
|
display: flex;
|
|
7
7
|
flex-direction: column;
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
textarea {
|
|
10
10
|
@include formInput();
|
|
11
|
-
|
|
11
|
+
field-sizing: content;
|
|
12
|
+
overflow-y: auto;
|
|
12
13
|
resize: vertical;
|
|
13
14
|
min-height: base(3);
|
|
14
15
|
height: 100%;
|
|
15
|
-
|
|
16
|
-
// Scrollbar for giant content
|
|
17
|
-
max-height: calc(100vh - $top-header-offset - calc(#{base(5)}));
|
|
18
|
-
overflow: hidden;
|
|
19
|
-
|
|
20
|
-
@include mid-break {
|
|
21
|
-
max-height: 60vh;
|
|
22
|
-
}
|
|
16
|
+
display: flex;
|
|
23
17
|
}
|
|
24
18
|
|
|
25
19
|
&.read-only {
|
|
@@ -28,78 +22,12 @@
|
|
|
28
22
|
}
|
|
29
23
|
}
|
|
30
24
|
|
|
31
|
-
// This element takes exactly the same dimensions as the clone
|
|
32
|
-
.textarea-inner {
|
|
33
|
-
display: block;
|
|
34
|
-
position: relative;
|
|
35
|
-
line-height: inherit;
|
|
36
|
-
flex-grow: 1;
|
|
37
|
-
background: none;
|
|
38
|
-
outline: none;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Unstyle the textarea, the border is rendered on .textarea-outer
|
|
42
|
-
.textarea-element {
|
|
43
|
-
position: relative;
|
|
44
|
-
z-index: 1;
|
|
45
|
-
width: 100%;
|
|
46
|
-
height: 100%;
|
|
47
|
-
border: inherit;
|
|
48
|
-
padding: inherit;
|
|
49
|
-
font: inherit;
|
|
50
|
-
line-height: inherit;
|
|
51
|
-
color: inherit;
|
|
52
|
-
background: none;
|
|
53
|
-
overflow: auto;
|
|
54
|
-
resize: none;
|
|
55
|
-
outline: none;
|
|
56
|
-
text-transform: inherit;
|
|
57
|
-
|
|
58
|
-
&::-webkit-scrollbar {
|
|
59
|
-
display: none;
|
|
60
|
-
}
|
|
61
|
-
&[data-rtl='true'] {
|
|
62
|
-
direction: rtl;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Clone of textarea with same height
|
|
67
|
-
.textarea-clone {
|
|
68
|
-
position: absolute;
|
|
69
|
-
top: 0;
|
|
70
|
-
left: 0;
|
|
71
|
-
right: 0;
|
|
72
|
-
bottom: 0;
|
|
73
|
-
pointer-events: none;
|
|
74
|
-
white-space: pre-wrap;
|
|
75
|
-
overflow-wrap: break-word;
|
|
76
|
-
visibility: hidden;
|
|
77
|
-
z-index: 0;
|
|
78
|
-
line-height: inherit;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.textarea-clone::before {
|
|
82
|
-
content: attr(data-value) ' ';
|
|
83
|
-
visibility: hidden;
|
|
84
|
-
opacity: 0;
|
|
85
|
-
white-space: pre-wrap;
|
|
86
|
-
overflow-wrap: break-word;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.textarea-clone::after {
|
|
90
|
-
content: attr(data-after);
|
|
91
|
-
opacity: 0.5;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
@include mid-break {
|
|
95
|
-
padding: 0;
|
|
96
|
-
}
|
|
97
25
|
}
|
|
98
26
|
|
|
99
27
|
html[data-theme='light'] {
|
|
100
28
|
.field-type.textarea {
|
|
101
29
|
&.error {
|
|
102
|
-
|
|
30
|
+
textarea {
|
|
103
31
|
@include lightInputError;
|
|
104
32
|
}
|
|
105
33
|
}
|
|
@@ -109,7 +37,7 @@
|
|
|
109
37
|
html[data-theme='dark'] {
|
|
110
38
|
.field-type.textarea {
|
|
111
39
|
&.error {
|
|
112
|
-
|
|
40
|
+
textarea {
|
|
113
41
|
@include darkInputError;
|
|
114
42
|
}
|
|
115
43
|
}
|