@payloadcms/ui 3.0.0-beta.90 → 3.0.0-beta.92

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.
Files changed (67) hide show
  1. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  2. package/dist/elements/AddNewRelation/index.js +1 -1
  3. package/dist/elements/AddNewRelation/index.js.map +1 -1
  4. package/dist/elements/AddNewRelation/index.scss +14 -4
  5. package/dist/elements/AppHeader/index.js +41 -80
  6. package/dist/elements/AppHeader/index.js.map +1 -1
  7. package/dist/elements/Autosave/index.js +148 -231
  8. package/dist/elements/Autosave/index.js.map +1 -1
  9. package/dist/elements/Button/index.js +86 -218
  10. package/dist/elements/Button/index.js.map +1 -1
  11. package/dist/elements/Collapsible/index.js +44 -62
  12. package/dist/elements/Collapsible/index.js.map +1 -1
  13. package/dist/elements/Collapsible/index.scss +15 -28
  14. package/dist/elements/CopyToClipboard/index.js +20 -54
  15. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  16. package/dist/elements/Dropzone/index.js +59 -119
  17. package/dist/elements/Dropzone/index.js.map +1 -1
  18. package/dist/elements/EditMany/index.js +124 -230
  19. package/dist/elements/EditMany/index.js.map +1 -1
  20. package/dist/elements/EditUpload/index.js +133 -206
  21. package/dist/elements/EditUpload/index.js.map +1 -1
  22. package/dist/elements/ListControls/index.js +82 -188
  23. package/dist/elements/ListControls/index.js.map +1 -1
  24. package/dist/elements/Nav/context.js +47 -83
  25. package/dist/elements/Nav/context.js.map +1 -1
  26. package/dist/elements/SaveButton/index.js +30 -81
  27. package/dist/elements/SaveButton/index.js.map +1 -1
  28. package/dist/elements/SaveDraftButton/index.js +54 -116
  29. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  30. package/dist/elements/SearchFilter/index.js +21 -77
  31. package/dist/elements/SearchFilter/index.js.map +1 -1
  32. package/dist/elements/Upload/index.js +130 -280
  33. package/dist/elements/Upload/index.js.map +1 -1
  34. package/dist/exports/client/{CodeEditor-C4FLUUO7.js → CodeEditor-MTP455NO.js} +2 -2
  35. package/dist/exports/client/chunk-NJHSEGFB.js +14 -0
  36. package/dist/exports/client/{chunk-UGBVRIVY.js.map → chunk-NJHSEGFB.js.map} +2 -2
  37. package/dist/exports/client/index.d.ts +1 -1
  38. package/dist/exports/client/index.d.ts.map +1 -1
  39. package/dist/exports/client/index.js +19 -19
  40. package/dist/exports/client/index.js.map +3 -3
  41. package/dist/fields/Relationship/index.js +318 -504
  42. package/dist/fields/Relationship/index.js.map +1 -1
  43. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  44. package/dist/fields/Upload/HasMany/index.js +192 -422
  45. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  46. package/dist/fields/Upload/HasMany/index.scss +19 -1
  47. package/dist/forms/Submit/index.js +12 -28
  48. package/dist/forms/Submit/index.js.map +1 -1
  49. package/dist/hooks/useDelay.js +15 -48
  50. package/dist/hooks/useDelay.js.map +1 -1
  51. package/dist/hooks/useDelayedRender.js +32 -71
  52. package/dist/hooks/useDelayedRender.js.map +1 -1
  53. package/dist/hooks/useIntersect.js +14 -20
  54. package/dist/hooks/useIntersect.js.map +1 -1
  55. package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
  56. package/dist/providers/Config/createClientConfig/collections.js +8 -6
  57. package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
  58. package/dist/providers/Preferences/index.js +1 -3
  59. package/dist/providers/Preferences/index.js.map +1 -1
  60. package/dist/providers/Selection/index.js +102 -190
  61. package/dist/providers/Selection/index.js.map +1 -1
  62. package/dist/scss/app.scss +6 -6
  63. package/dist/scss/type.scss +4 -4
  64. package/dist/styles.css +1 -1
  65. package/package.json +9 -9
  66. package/dist/exports/client/chunk-UGBVRIVY.js +0 -14
  67. /package/dist/exports/client/{CodeEditor-C4FLUUO7.js.map → CodeEditor-MTP455NO.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","qs","Fragment","useCallback","useEffect","useMemo","useState","AddNewRelation","Button","DraggableSortable","FileDetails","useListDrawer","useConfig","useLocale","useTranslation","FieldLabel","baseClass","UploadComponentHasMany","props","$","canCreate","field","t0","fieldHookResult","t1","readOnly","_path","admin","t2","hasMany","label","relationTo","components","t3","isSortable","Label","filterOptions","filterOptionsFromProps","setValue","value","i18n","t","config","t4","collections","routes","t5","serverURL","api","t6","bb0","t7","t8","id","t9","not_in","t10","t11","t12","undefined","Symbol","for","fileDocs","setFileDocs","missingFiles","setMissingFiles","code","language","length","query","depth","draft","locale","where","and","in","fetchFile","response","fetch","body","stringify","credentials","headers","method","ok","json","docs","moveItemInArray","array","moveFromIndex","moveToIndex","newArray","item","splice","moveFromIndex_0","moveToIndex_0","updatedArray","moveRow","index","updatedArray_0","removeItem","t13","map","_temp","t14","collectionSlugs","ListDrawer","ListDrawerToggler","t15","t16","coll","slug","collection_0","find","t17","selections","selectedIDs","Object","entries","reduce","acc","t18","key","value_0","onBulkSelect","t20","t21","t22","_jsx","className","join","children","buttonStyle","el","icon","iconPosition","iconStyle","unstyled","t23","t24","selection","docID","_jsxs","ids","onDragEnd","t19","moveFromIndex_1","moveToIndex_1","Boolean","index_0","doc_0","doc","uploadConfig","collection","upload","collectionSlug","rowIndex","disabled","onClick","type","enableRowSelections","onSelect"],"sources":["../../../../src/fields/Upload/HasMany/index.tsx"],"sourcesContent":["'use client'\nimport type { FilterOptionsResult, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { useSelection } from '../../../providers/Selection/index.js'\nimport type { UploadFieldPropsWithContext } from '../HasOne/index.js'\n\nimport { AddNewRelation } from '../../../elements/AddNewRelation/index.js'\nimport { Button } from '../../../elements/Button/index.js'\nimport { DraggableSortable } from '../../../elements/DraggableSortable/index.js'\nimport { FileDetails } from '../../../elements/FileDetails/index.js'\nimport { useListDrawer } from '../../../elements/ListDrawer/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { FieldLabel } from '../../FieldLabel/index.js'\n\nconst baseClass = 'upload upload--has-many'\n\nimport './index.scss'\n\nexport const UploadComponentHasMany: React.FC<UploadFieldPropsWithContext<string[]>> = (props) => {\n const {\n canCreate,\n field,\n field: {\n _path,\n admin: {\n components: { Label },\n isSortable,\n },\n hasMany,\n label,\n relationTo,\n },\n fieldHookResult: { filterOptions: filterOptionsFromProps, setValue, value },\n readOnly,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n if (typeof relationTo === 'string') {\n return {\n ...filterOptionsFromProps,\n [relationTo]: {\n ...((filterOptionsFromProps?.[relationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[relationTo] as any)?.id || {}),\n not_in: (filterOptionsFromProps?.[relationTo] as any)?.id?.not_in || value,\n },\n },\n }\n }\n }, [value, relationTo, filterOptionsFromProps])\n\n const [fileDocs, setFileDocs] = useState([])\n const [missingFiles, setMissingFiles] = useState(false)\n\n const { code } = useLocale()\n\n useEffect(() => {\n if (value !== null && typeof value !== 'undefined' && value.length !== 0) {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: value,\n },\n },\n ],\n },\n }\n\n const fetchFile = async () => {\n const response = await fetch(`${serverURL}${api}/${relationTo}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n if (response.ok) {\n const json = await response.json()\n setFileDocs(json.docs)\n } else {\n setMissingFiles(true)\n setFileDocs([])\n }\n }\n\n void fetchFile()\n }\n }, [value, relationTo, api, serverURL, i18n, code])\n\n function moveItemInArray<T>(array: T[], moveFromIndex: number, moveToIndex: number): T[] {\n const newArray = [...array]\n const [item] = newArray.splice(moveFromIndex, 1)\n\n newArray.splice(moveToIndex, 0, item)\n\n return newArray\n }\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n const updatedArray = moveItemInArray(value, moveFromIndex, moveToIndex)\n setValue(updatedArray)\n },\n [value, setValue],\n )\n\n const removeItem = useCallback(\n (index: number) => {\n const updatedArray = [...value]\n updatedArray.splice(index, 1)\n setValue(updatedArray)\n },\n [value, setValue],\n )\n\n const [ListDrawer, ListDrawerToggler] = useListDrawer({\n collectionSlugs:\n typeof relationTo === 'string'\n ? [relationTo]\n : collections.map((collection) => collection.slug),\n filterOptions,\n })\n\n const collection = collections.find((coll) => coll.slug === relationTo)\n\n const onBulkSelect = useCallback(\n (selections: ReturnType<typeof useSelection>['selected']) => {\n const selectedIDs = Object.entries(selections).reduce(\n (acc, [key, value]) => (value ? [...acc, key] : acc),\n [] as string[],\n )\n if (value?.length) setValue([...value, ...selectedIDs])\n else setValue(selectedIDs)\n },\n [setValue, value],\n )\n\n return (\n <Fragment>\n <div className={[baseClass].join(' ')}>\n <FieldLabel Label={Label} field={field} label={label} />\n\n <div>\n {missingFiles || !value?.length ? (\n <div className={[`${baseClass}__no-data`].join(' ')}>\n {t('version:noRowsFound', { label: relationTo })}\n </div>\n ) : (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={value}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {Boolean(value.length) &&\n value.map((id, index) => {\n const doc = fileDocs.find((doc) => doc.id === id)\n const uploadConfig = collection?.upload\n\n if (!doc) {\n return null\n }\n\n return (\n <FileDetails\n collectionSlug={relationTo}\n doc={doc}\n hasMany={true}\n isSortable={isSortable}\n key={id}\n removeItem={removeItem}\n rowIndex={index}\n uploadConfig={uploadConfig}\n />\n )\n })}\n </DraggableSortable>\n )}\n </div>\n\n <div className={[`${baseClass}__controls`].join(' ')}>\n <div className={[`${baseClass}__buttons`].join(' ')}>\n {canCreate && (\n <div className={[`${baseClass}__add-new`].join(' ')}>\n <AddNewRelation\n Button={\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:addNew')}\n </Button>\n }\n hasMany={hasMany}\n path={_path}\n relationTo={relationTo}\n setValue={setValue}\n unstyled\n value={value}\n />\n </div>\n )}\n <ListDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <div>\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n </div>\n </ListDrawerToggler>\n </div>\n <button className={`${baseClass}__clear-all`} onClick={() => setValue([])} type=\"button\">\n Clear all\n </button>\n </div>\n </div>\n <ListDrawer\n enableRowSelections\n onBulkSelect={onBulkSelect}\n onSelect={(selection) => {\n if (value?.length) setValue([...value, selection.docID])\n else setValue([selection.docID])\n }}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["qs","Fragment","useCallback","useEffect","useMemo","useState","AddNewRelation","Button","DraggableSortable","FileDetails","useListDrawer","useConfig","useLocale","useTranslation","FieldLabel","baseClass","UploadComponentHasMany","props","canCreate","field","_path","admin","components","Label","isSortable","hasMany","label","relationTo","fieldHookResult","filterOptions","filterOptionsFromProps","setValue","value","readOnly","i18n","t","config","collections","routes","api","serverURL","id","not_in","fileDocs","setFileDocs","missingFiles","setMissingFiles","code","length","query","depth","draft","locale","where","and","in","fetchFile","response","fetch","body","stringify","credentials","headers","language","method","ok","json","docs","moveItemInArray","array","moveFromIndex","moveToIndex","newArray","item","splice","moveRow","updatedArray","removeItem","index","ListDrawer","ListDrawerToggler","collectionSlugs","map","collection","slug","find","coll","labels","joinWithCommaAndOr","items","or","join","slice","forEach","includes","push","singular","onBulkSelect","selections","selectedIDs","Object","entries","reduce","acc","key","_jsxs","className","_jsx","ids","onDragEnd","Boolean","doc","uploadConfig","upload","collectionSlug","rowIndex","buttonStyle","el","icon","iconPosition","iconStyle","path","unstyled","disabled","onClick","type","enableRowSelections","onSelect","selection","docID"],"sources":["../../../../src/fields/Upload/HasMany/index.tsx"],"sourcesContent":["'use client'\nimport type { FilterOptionsResult, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { useSelection } from '../../../providers/Selection/index.js'\nimport type { UploadFieldPropsWithContext } from '../HasOne/index.js'\n\nimport { AddNewRelation } from '../../../elements/AddNewRelation/index.js'\nimport { Button } from '../../../elements/Button/index.js'\nimport { DraggableSortable } from '../../../elements/DraggableSortable/index.js'\nimport { FileDetails } from '../../../elements/FileDetails/index.js'\nimport { useListDrawer } from '../../../elements/ListDrawer/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { FieldLabel } from '../../FieldLabel/index.js'\n\nconst baseClass = 'upload upload--has-many'\n\nimport './index.scss'\n\nexport const UploadComponentHasMany: React.FC<UploadFieldPropsWithContext<string[]>> = (props) => {\n const {\n canCreate,\n field,\n field: {\n _path,\n admin: {\n components: { Label },\n isSortable,\n },\n hasMany,\n label,\n relationTo,\n },\n fieldHookResult: { filterOptions: filterOptionsFromProps, setValue, value },\n readOnly,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n if (typeof relationTo === 'string') {\n return {\n ...filterOptionsFromProps,\n [relationTo]: {\n ...((filterOptionsFromProps?.[relationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[relationTo] as any)?.id || {}),\n not_in: (filterOptionsFromProps?.[relationTo] as any)?.id?.not_in || value,\n },\n },\n }\n }\n }, [value, relationTo, filterOptionsFromProps])\n\n const [fileDocs, setFileDocs] = useState([])\n const [missingFiles, setMissingFiles] = useState(false)\n\n const { code } = useLocale()\n\n useEffect(() => {\n if (value !== null && typeof value !== 'undefined' && value.length !== 0) {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: value,\n },\n },\n ],\n },\n }\n\n const fetchFile = async () => {\n const response = await fetch(`${serverURL}${api}/${relationTo}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n if (response.ok) {\n const json = await response.json()\n setFileDocs(json.docs)\n } else {\n setMissingFiles(true)\n setFileDocs([])\n }\n }\n\n void fetchFile()\n }\n }, [value, relationTo, api, serverURL, i18n, code])\n\n function moveItemInArray<T>(array: T[], moveFromIndex: number, moveToIndex: number): T[] {\n const newArray = [...array]\n const [item] = newArray.splice(moveFromIndex, 1)\n\n newArray.splice(moveToIndex, 0, item)\n\n return newArray\n }\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n const updatedArray = moveItemInArray(value, moveFromIndex, moveToIndex)\n setValue(updatedArray)\n },\n [value, setValue],\n )\n\n const removeItem = useCallback(\n (index: number) => {\n const updatedArray = [...value]\n updatedArray.splice(index, 1)\n setValue(updatedArray)\n },\n [value, setValue],\n )\n\n const [ListDrawer, ListDrawerToggler] = useListDrawer({\n collectionSlugs:\n typeof relationTo === 'string'\n ? [relationTo]\n : collections.map((collection) => collection.slug),\n filterOptions,\n })\n\n const collection = collections.find((coll) => coll.slug === relationTo)\n\n // Get the labels of the collections that the relation is to\n const labels = useMemo(() => {\n function joinWithCommaAndOr(items: string[]): string {\n const or = t('general:or')\n\n if (items.length === 0) return ''\n if (items.length === 1) return items[0]\n if (items.length === 2) return items.join(` ${or} `)\n\n return items.slice(0, -1).join(', ') + ` ${or} ` + items[items.length - 1]\n }\n\n const labels = []\n\n collections.forEach((collection) => {\n if (relationTo.includes(collection.slug)) {\n labels.push(collection.labels?.singular || collection.slug)\n }\n })\n\n return joinWithCommaAndOr(labels)\n }, [collections, relationTo, t])\n\n const onBulkSelect = useCallback(\n (selections: ReturnType<typeof useSelection>['selected']) => {\n const selectedIDs = Object.entries(selections).reduce(\n (acc, [key, value]) => (value ? [...acc, key] : acc),\n [] as string[],\n )\n if (value?.length) setValue([...value, ...selectedIDs])\n else setValue(selectedIDs)\n },\n [setValue, value],\n )\n\n return (\n <Fragment>\n <div className={[baseClass].join(' ')}>\n <FieldLabel Label={Label} field={field} label={label} />\n\n <div>\n {missingFiles || !value?.length ? (\n <div className={[`${baseClass}__no-data`].join(' ')}>\n {t('version:noRowsSelected', { label: labels })}\n </div>\n ) : (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={value}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {Boolean(value.length) &&\n value.map((id, index) => {\n const doc = fileDocs.find((doc) => doc.id === id)\n const uploadConfig = collection?.upload\n\n if (!doc) {\n return null\n }\n\n return (\n <FileDetails\n collectionSlug={relationTo}\n doc={doc}\n hasMany={true}\n isSortable={isSortable}\n key={id}\n removeItem={removeItem}\n rowIndex={index}\n uploadConfig={uploadConfig}\n />\n )\n })}\n </DraggableSortable>\n )}\n </div>\n\n <div className={[`${baseClass}__controls`].join(' ')}>\n <div className={[`${baseClass}__buttons`].join(' ')}>\n {canCreate && (\n <div className={[`${baseClass}__add-new`].join(' ')}>\n <AddNewRelation\n Button={\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:addNew')}\n </Button>\n }\n hasMany={hasMany}\n path={_path}\n relationTo={relationTo}\n setValue={setValue}\n unstyled\n value={value}\n />\n </div>\n )}\n <ListDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <div>\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n </div>\n </ListDrawerToggler>\n </div>\n {Boolean(value.length) && (\n <button\n className={`${baseClass}__clear-all`}\n onClick={() => setValue([])}\n type=\"button\"\n >\n {t('general:clearAll')}\n </button>\n )}\n </div>\n </div>\n <ListDrawer\n enableRowSelections\n onBulkSelect={onBulkSelect}\n onSelect={(selection) => {\n if (value?.length) setValue([...value, selection.docID])\n else setValue([selection.docID])\n }}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,13 +6,23 @@
6
6
 
7
7
  &__controls {
8
8
  display: flex;
9
+ flex-wrap: wrap;
9
10
  gap: base(2);
10
11
  margin-top: base(1);
12
+
13
+ @include extra-small-break {
14
+ gap: base(1);
15
+ }
11
16
  }
12
17
 
13
18
  &__buttons {
14
19
  display: flex;
20
+ flex-wrap: wrap;
15
21
  gap: base(1);
22
+
23
+ & .relationship-add-new__add-button {
24
+ padding: 0;
25
+ }
16
26
  }
17
27
 
18
28
  &__add-new {
@@ -27,6 +37,12 @@
27
37
  font-family: inherit;
28
38
  color: inherit;
29
39
  cursor: pointer;
40
+ margin-inline-start: auto;
41
+ color: var(--theme-elevation-800);
42
+
43
+ @include extra-small-break {
44
+ margin-inline-start: 0;
45
+ }
30
46
  }
31
47
 
32
48
  &__draggable-rows {
@@ -37,8 +53,10 @@
37
53
 
38
54
  &__no-data {
39
55
  background: var(--theme-elevation-50);
40
- padding: 0.5rem 0.75rem;
56
+ padding: 1rem 0.75rem;
41
57
  border-radius: 3px;
58
+ color: var(--theme-elevation-700);
59
+ text-align: center;
42
60
  }
43
61
  }
44
62
 
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
5
4
  import React, { forwardRef } from 'react';
6
5
  import { Button } from '../../elements/Button/index.js';
@@ -8,43 +7,28 @@ import { useForm, useFormInitializing, useFormProcessing } from '../Form/context
8
7
  import './index.scss';
9
8
  const baseClass = 'form-submit';
10
9
  export const FormSubmit = /*#__PURE__*/forwardRef((props, ref) => {
11
- const $ = _c(7);
12
10
  const {
13
- type: t0,
11
+ type = 'submit',
14
12
  buttonId: id,
15
13
  children,
16
14
  disabled: disabledFromProps
17
15
  } = props;
18
- const type = t0 === undefined ? "submit" : t0;
19
16
  const processing = useFormProcessing();
20
17
  const initializing = useFormInitializing();
21
18
  const {
22
19
  disabled
23
20
  } = useForm();
24
21
  const canSave = !(disabledFromProps || initializing || processing || disabled);
25
- let t1;
26
- if ($[0] !== canSave || $[1] !== ref || $[2] !== props || $[3] !== id || $[4] !== type || $[5] !== children) {
27
- t1 = _jsx("div", {
28
- className: baseClass,
29
- children: _jsx(Button, {
30
- ref,
31
- ...props,
32
- disabled: canSave ? undefined : true,
33
- id,
34
- type,
35
- children
36
- })
37
- });
38
- $[0] = canSave;
39
- $[1] = ref;
40
- $[2] = props;
41
- $[3] = id;
42
- $[4] = type;
43
- $[5] = children;
44
- $[6] = t1;
45
- } else {
46
- t1 = $[6];
47
- }
48
- return t1;
22
+ return /*#__PURE__*/_jsx("div", {
23
+ className: baseClass,
24
+ children: /*#__PURE__*/_jsx(Button, {
25
+ ref: ref,
26
+ ...props,
27
+ disabled: canSave ? undefined : true,
28
+ id: id,
29
+ type: type,
30
+ children: children
31
+ })
32
+ });
49
33
  });
50
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","forwardRef","Button","useForm","useFormInitializing","useFormProcessing","baseClass","FormSubmit","props","ref","$","type","t0","buttonId","id","children","disabled","disabledFromProps","undefined","processing","initializing","canSave","t1","_jsx","className"],"sources":["../../../src/forms/Submit/index.tsx"],"sourcesContent":["'use client'\nimport React, { forwardRef } from 'react'\n\nimport type { Props } from '../../elements/Button/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useForm, useFormInitializing, useFormProcessing } from '../Form/context.js'\nimport './index.scss'\n\nconst baseClass = 'form-submit'\n\nexport const FormSubmit = forwardRef<HTMLButtonElement, Props>((props, ref) => {\n const { type = 'submit', buttonId: id, children, disabled: disabledFromProps } = props\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { disabled } = useForm()\n\n const canSave = !(disabledFromProps || initializing || processing || disabled)\n\n return (\n <div className={baseClass}>\n <Button ref={ref} {...props} disabled={canSave ? undefined : true} id={id} type={type}>\n {children}\n </Button>\n </div>\n )\n})\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,UAAU,QAAQ;AAIlC,SAASC,MAAM,QAAQ;AACvB,SAASC,OAAO,EAAEC,mBAAmB,EAAEC,iBAAiB,QAAQ;AAChE,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,UAAA,gBAAaN,UAAA,CAAqC,CAAAO,KAAA,EAAAC,GAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAC7D;IAAAY,IAAA,EAAAC,EAAA;IAAAC,QAAA,EAAAC,EAAA;IAAAC,QAAA;IAAAC,QAAA,EAAAC;EAAA,IAAiFT,KAAA;EAAzE,MAAAG,IAAA,GAAAC,EAAe,KAAAM,SAAA,GAAR,QAAQ,GAAfN,EAAe;EACvB,MAAAO,UAAA,GAAmBd,iBAAA;EACnB,MAAAe,YAAA,GAAqBhB,mBAAA;EACrB;IAAAY;EAAA,IAAqBb,OAAA;EAErB,MAAAkB,OAAA,KAAkBJ,iBAAA,IAAqBG,YAAA,IAAgBD,UAAA,IAAcH,QAAO;EAAA,IAAAM,EAAA;EAAA,IAAAZ,CAAA,QAAAW,OAAA,IAAAX,CAAA,QAAAD,GAAA,IAAAC,CAAA,QAAAF,KAAA,IAAAE,CAAA,QAAAI,EAAA,IAAAJ,CAAA,QAAAC,IAAA,IAAAD,CAAA,QAAAK,QAAA;IAG1EO,EAAA,GAAAC,IAAA,CAAC;MAAAC,SAAA,EAAAlB,SAAA;MAAAS,QAAA,EACCQ,IAAA,CAAArB,MAAA;QAAAO,GAAA;QAAA,GAAsBD,KAAK;QAAAQ,QAAA,EAAYK,OAAA,GAAAH,SAAA,OAAsB;QAAAJ,EAAA;QAAAH,IAAA;QAAAI;MAAA,C;;;;;;;;;;;;SAD/DO,E;CAMJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","forwardRef","Button","useForm","useFormInitializing","useFormProcessing","baseClass","FormSubmit","props","ref","type","buttonId","id","children","disabled","disabledFromProps","processing","initializing","canSave","_jsx","className","undefined"],"sources":["../../../src/forms/Submit/index.tsx"],"sourcesContent":["'use client'\nimport React, { forwardRef } from 'react'\n\nimport type { Props } from '../../elements/Button/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useForm, useFormInitializing, useFormProcessing } from '../Form/context.js'\nimport './index.scss'\n\nconst baseClass = 'form-submit'\n\nexport const FormSubmit = forwardRef<HTMLButtonElement, Props>((props, ref) => {\n const { type = 'submit', buttonId: id, children, disabled: disabledFromProps } = props\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { disabled } = useForm()\n\n const canSave = !(disabledFromProps || initializing || processing || disabled)\n\n return (\n <div className={baseClass}>\n <Button ref={ref} {...props} disabled={canSave ? undefined : true} id={id} type={type}>\n {children}\n </Button>\n </div>\n )\n})\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,IAASC,UAAU,QAAQ;AAIlC,SAASC,MAAM,QAAQ;AACvB,SAASC,OAAO,EAAEC,mBAAmB,EAAEC,iBAAiB,QAAQ;AAChE,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,UAAA,gBAAaN,UAAA,CAAqC,CAACO,KAAA,EAAOC,GAAA;EACrE,MAAM;IAAEC,IAAA,GAAO,QAAQ;IAAEC,QAAA,EAAUC,EAAE;IAAEC,QAAQ;IAAEC,QAAA,EAAUC;EAAiB,CAAE,GAAGP,KAAA;EACjF,MAAMQ,UAAA,GAAaX,iBAAA;EACnB,MAAMY,YAAA,GAAeb,mBAAA;EACrB,MAAM;IAAEU;EAAQ,CAAE,GAAGX,OAAA;EAErB,MAAMe,OAAA,GAAU,EAAEH,iBAAA,IAAqBE,YAAA,IAAgBD,UAAA,IAAcF,QAAO;EAE5E,oBACEK,IAAA,CAAC;IAAIC,SAAA,EAAWd,SAAA;cACd,aAAAa,IAAA,CAACjB,MAAA;MAAOO,GAAA,EAAKA,GAAA;MAAM,GAAGD,KAAK;MAAEM,QAAA,EAAUI,OAAA,GAAUG,SAAA,GAAY;MAAMT,EAAA,EAAIA,EAAA;MAAIF,IAAA,EAAMA,IAAA;gBAC9EG;;;AAIT","ignoreList":[]}
@@ -1,57 +1,24 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import * as React from 'react';
5
- export const useDelay = (delay, t0) => {
6
- const $ = _c(9);
7
- const triggerOnMount = t0 === undefined ? false : t0;
4
+ export const useDelay = (delay, triggerOnMount = false) => {
8
5
  const [hasDelayed, setHasDelayed] = React.useState(false);
9
6
  const triggerTimeoutRef = React.useRef(undefined);
10
- let t1;
11
- if ($[0] !== delay) {
12
- t1 = () => {
13
- setHasDelayed(false);
7
+ const triggerDelay = React.useCallback(() => {
8
+ setHasDelayed(false);
9
+ clearTimeout(triggerTimeoutRef.current);
10
+ triggerTimeoutRef.current = setTimeout(() => {
11
+ setHasDelayed(true);
12
+ }, delay);
13
+ return () => {
14
14
  clearTimeout(triggerTimeoutRef.current);
15
- triggerTimeoutRef.current = setTimeout(() => {
16
- setHasDelayed(true);
17
- }, delay);
18
- return () => {
19
- clearTimeout(triggerTimeoutRef.current);
20
- };
21
15
  };
22
- $[0] = delay;
23
- $[1] = t1;
24
- } else {
25
- t1 = $[1];
26
- }
27
- const triggerDelay = t1;
28
- let t2;
29
- let t3;
30
- if ($[2] !== triggerOnMount || $[3] !== triggerDelay) {
31
- t2 = () => {
32
- if (triggerOnMount) {
33
- triggerDelay();
34
- }
35
- };
36
- t3 = [triggerDelay, triggerOnMount];
37
- $[2] = triggerOnMount;
38
- $[3] = triggerDelay;
39
- $[4] = t2;
40
- $[5] = t3;
41
- } else {
42
- t2 = $[4];
43
- t3 = $[5];
44
- }
45
- React.useEffect(t2, t3);
46
- let t4;
47
- if ($[6] !== hasDelayed || $[7] !== triggerDelay) {
48
- t4 = [hasDelayed, triggerDelay];
49
- $[6] = hasDelayed;
50
- $[7] = triggerDelay;
51
- $[8] = t4;
52
- } else {
53
- t4 = $[8];
54
- }
55
- return t4;
16
+ }, [delay]);
17
+ React.useEffect(() => {
18
+ if (triggerOnMount) {
19
+ triggerDelay();
20
+ }
21
+ }, [triggerDelay, triggerOnMount]);
22
+ return [hasDelayed, triggerDelay];
56
23
  };
57
24
  //# sourceMappingURL=useDelay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDelay.js","names":["c","_c","React","useDelay","delay","t0","$","triggerOnMount","undefined","hasDelayed","setHasDelayed","useState","triggerTimeoutRef","useRef","t1","clearTimeout","current","setTimeout","triggerDelay","t2","t3","useEffect","t4"],"sources":["../../src/hooks/useDelay.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\ntype Result = [boolean, () => void]\nexport const useDelay = (delay: number, triggerOnMount = false): Result => {\n const [hasDelayed, setHasDelayed] = React.useState(false)\n const triggerTimeoutRef = React.useRef<NodeJS.Timeout>(undefined)\n\n const triggerDelay = React.useCallback(() => {\n setHasDelayed(false)\n clearTimeout(triggerTimeoutRef.current)\n triggerTimeoutRef.current = setTimeout(() => {\n setHasDelayed(true)\n }, delay)\n\n return () => {\n clearTimeout(triggerTimeoutRef.current)\n }\n }, [delay])\n\n React.useEffect(() => {\n if (triggerOnMount) {\n triggerDelay()\n }\n }, [triggerDelay, triggerOnMount])\n\n return [hasDelayed, triggerDelay]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,YAAYC,KAAA,MAAW;AAGvB,OAAO,MAAMC,QAAA,GAAWA,CAAAC,KAAA,EAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAAgB,MAAAM,cAAA,GAAAF,EAAsB,KAAAG,SAAA,WAAtBH,EAAsB;EAC5D,OAAAI,UAAA,EAAAC,aAAA,IAAoCR,KAAA,CAAAS,QAAA,MAAe;EACnD,MAAAC,iBAAA,GAA0BV,KAAA,CAAAW,MAAA,CAAAL,SAA6B;EAAA,IAAAM,EAAA;EAAA,IAAAR,CAAA,QAAAF,KAAA;IAEhBU,EAAA,GAAAA,CAAA;MACrCJ,aAAA,MAAc;MACdK,YAAA,CAAaH,iBAAA,CAAAI,OAAyB;MACtCJ,iBAAA,CAAAI,OAAA,GAA4BC,UAAA;QAC1BP,aAAA,KAAc;MAAA,GACbN,KAAA;MAAA;QAGDW,YAAA,CAAaH,iBAAA,CAAAI,OAAyB;MAAA;IAAA;IAE1CV,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAVA,MAAAY,YAAA,GAAqBJ,EAUX;EAAA,IAAAK,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAd,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAY,YAAA;IAEMC,EAAA,GAAAA,CAAA;MAAA,IACVZ,cAAA;QACFW,YAAA;MAAA;IAAA;IAEDE,EAAA,IAACF,YAAA,EAAcX,cAAA;IAAeD,CAAA,MAAAC,cAAA;IAAAD,CAAA,MAAAY,YAAA;IAAAZ,CAAA,MAAAa,EAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAD,EAAA,GAAAb,CAAA;IAAAc,EAAA,GAAAd,CAAA;EAAA;EAJjCJ,KAAA,CAAAmB,SAAA,CAAgBF,EAIhB,EAAGC,EAA8B;EAAA,IAAAE,EAAA;EAAA,IAAAhB,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAY,YAAA;IAE1BI,EAAA,IAACb,UAAA,EAAYS,YAAA;IAAaZ,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAY,YAAA;IAAAZ,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,OAA1BgB,EAA0B;AAAA,CACnC","ignoreList":[]}
1
+ {"version":3,"file":"useDelay.js","names":["React","useDelay","delay","triggerOnMount","hasDelayed","setHasDelayed","useState","triggerTimeoutRef","useRef","undefined","triggerDelay","useCallback","clearTimeout","current","setTimeout","useEffect"],"sources":["../../src/hooks/useDelay.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\ntype Result = [boolean, () => void]\nexport const useDelay = (delay: number, triggerOnMount = false): Result => {\n const [hasDelayed, setHasDelayed] = React.useState(false)\n const triggerTimeoutRef = React.useRef<NodeJS.Timeout>(undefined)\n\n const triggerDelay = React.useCallback(() => {\n setHasDelayed(false)\n clearTimeout(triggerTimeoutRef.current)\n triggerTimeoutRef.current = setTimeout(() => {\n setHasDelayed(true)\n }, delay)\n\n return () => {\n clearTimeout(triggerTimeoutRef.current)\n }\n }, [delay])\n\n React.useEffect(() => {\n if (triggerOnMount) {\n triggerDelay()\n }\n }, [triggerDelay, triggerOnMount])\n\n return [hasDelayed, triggerDelay]\n}\n"],"mappings":"AAAA;;AACA,YAAYA,KAAA,MAAW;AAGvB,OAAO,MAAMC,QAAA,GAAWA,CAACC,KAAA,EAAeC,cAAA,GAAiB,KAAK;EAC5D,MAAM,CAACC,UAAA,EAAYC,aAAA,CAAc,GAAGL,KAAA,CAAMM,QAAQ,CAAC;EACnD,MAAMC,iBAAA,GAAoBP,KAAA,CAAMQ,MAAM,CAAiBC,SAAA;EAEvD,MAAMC,YAAA,GAAeV,KAAA,CAAMW,WAAW,CAAC;IACrCN,aAAA,CAAc;IACdO,YAAA,CAAaL,iBAAA,CAAkBM,OAAO;IACtCN,iBAAA,CAAkBM,OAAO,GAAGC,UAAA,CAAW;MACrCT,aAAA,CAAc;IAChB,GAAGH,KAAA;IAEH,OAAO;MACLU,YAAA,CAAaL,iBAAA,CAAkBM,OAAO;IACxC;EACF,GAAG,CAACX,KAAA,CAAM;EAEVF,KAAA,CAAMe,SAAS,CAAC;IACd,IAAIZ,cAAA,EAAgB;MAClBO,YAAA;IACF;EACF,GAAG,CAACA,YAAA,EAAcP,cAAA,CAAe;EAEjC,OAAO,CAACC,UAAA,EAAYM,YAAA,CAAa;AACnC","ignoreList":[]}
@@ -1,83 +1,44 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import * as React from 'react';
5
4
  import { useDelay } from './useDelay.js';
6
- export const useDelayedRender = t0 => {
7
- const $ = _c(13);
8
- const {
9
- delayBeforeShow,
10
- inTimeout,
11
- minShowTime,
12
- outTimeout,
13
- show
14
- } = t0;
5
+ export const useDelayedRender = ({
6
+ delayBeforeShow,
7
+ inTimeout,
8
+ minShowTime,
9
+ outTimeout,
10
+ show
11
+ }) => {
15
12
  const totalMountTime = inTimeout + minShowTime + outTimeout;
16
13
  const [hasDelayed, triggerDelay] = useDelay(delayBeforeShow);
17
14
  const [isMounted, setIsMounted] = React.useState(false);
18
15
  const [isUnmounting, setIsUnmounting] = React.useState(false);
19
16
  const onMountTimestampRef = React.useRef(0);
20
17
  const unmountTimeoutRef = React.useRef(undefined);
21
- let t1;
22
- if ($[0] !== outTimeout) {
23
- t1 = () => {
24
- setIsUnmounting(true);
25
- unmountTimeoutRef.current = setTimeout(() => {
26
- setIsMounted(false);
27
- setIsUnmounting(false);
28
- }, outTimeout);
29
- };
30
- $[0] = outTimeout;
31
- $[1] = t1;
32
- } else {
33
- t1 = $[1];
34
- }
35
- const unmount = t1;
36
- let t2;
37
- let t3;
38
- if ($[2] !== hasDelayed || $[3] !== isMounted || $[4] !== show || $[5] !== totalMountTime || $[6] !== unmount) {
39
- t2 = () => {
40
- const shouldMount = hasDelayed && !isMounted && show;
41
- const shouldUnmount = isMounted && !show;
42
- if (shouldMount) {
43
- onMountTimestampRef.current = Date.now();
44
- setIsMounted(true);
45
- } else {
46
- if (shouldUnmount) {
47
- const totalTimeMounted = Date.now() - onMountTimestampRef.current;
48
- const remainingTime = totalMountTime - totalTimeMounted;
49
- clearTimeout(unmountTimeoutRef.current);
50
- unmountTimeoutRef.current = setTimeout(unmount, Math.max(0, remainingTime));
51
- }
52
- }
53
- };
54
- t3 = [isMounted, show, unmount, totalMountTime, hasDelayed];
55
- $[2] = hasDelayed;
56
- $[3] = isMounted;
57
- $[4] = show;
58
- $[5] = totalMountTime;
59
- $[6] = unmount;
60
- $[7] = t2;
61
- $[8] = t3;
62
- } else {
63
- t2 = $[7];
64
- t3 = $[8];
65
- }
66
- React.useEffect(t2, t3);
67
- let t4;
68
- if ($[9] !== isMounted || $[10] !== isUnmounting || $[11] !== triggerDelay) {
69
- t4 = {
70
- isMounted,
71
- isUnmounting,
72
- triggerDelayedRender: triggerDelay
73
- };
74
- $[9] = isMounted;
75
- $[10] = isUnmounting;
76
- $[11] = triggerDelay;
77
- $[12] = t4;
78
- } else {
79
- t4 = $[12];
80
- }
81
- return t4;
18
+ const unmount = React.useCallback(() => {
19
+ setIsUnmounting(true);
20
+ unmountTimeoutRef.current = setTimeout(() => {
21
+ setIsMounted(false);
22
+ setIsUnmounting(false);
23
+ }, outTimeout);
24
+ }, [setIsUnmounting, outTimeout]);
25
+ React.useEffect(() => {
26
+ const shouldMount = hasDelayed && !isMounted && show;
27
+ const shouldUnmount = isMounted && !show;
28
+ if (shouldMount) {
29
+ onMountTimestampRef.current = Date.now();
30
+ setIsMounted(true);
31
+ } else if (shouldUnmount) {
32
+ const totalTimeMounted = Date.now() - onMountTimestampRef.current;
33
+ const remainingTime = totalMountTime - totalTimeMounted;
34
+ clearTimeout(unmountTimeoutRef.current);
35
+ unmountTimeoutRef.current = setTimeout(unmount, Math.max(0, remainingTime));
36
+ }
37
+ }, [isMounted, show, unmount, totalMountTime, hasDelayed]);
38
+ return {
39
+ isMounted,
40
+ isUnmounting,
41
+ triggerDelayedRender: triggerDelay
42
+ };
82
43
  };
83
44
  //# sourceMappingURL=useDelayedRender.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDelayedRender.js","names":["c","_c","React","useDelay","useDelayedRender","t0","$","delayBeforeShow","inTimeout","minShowTime","outTimeout","show","totalMountTime","hasDelayed","triggerDelay","isMounted","setIsMounted","useState","isUnmounting","setIsUnmounting","onMountTimestampRef","useRef","unmountTimeoutRef","undefined","t1","current","setTimeout","unmount","t2","t3","shouldMount","shouldUnmount","Date","now","totalTimeMounted","remainingTime","clearTimeout","Math","max","useEffect","t4","triggerDelayedRender"],"sources":["../../src/hooks/useDelayedRender.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport { useDelay } from './useDelay.js'\n\ntype DelayedRenderProps = {\n /** Time in ms to wait before \"mounting\" the component. */\n delayBeforeShow: number\n /** Time in ms for the \"enter\" phase of the transition, after delay completes. */\n inTimeout: number\n /** Min time in ms for the \"entered\" phase of the transition. */\n minShowTime: number\n /** Time in ms for the exit phase of the transition. */\n outTimeout: number\n /** `true` starts the mount process.\n * `false` starts the unmount process.\n * */\n show: boolean\n}\ntype useDelayedRenderT = (props: DelayedRenderProps) => {\n /** `true` if the component has mounted after the timeout. */\n isMounted: boolean\n /** `true` if the component is unmounting. */\n isUnmounting: boolean\n /** Call this function to trigger the timeout delay before rendering. */\n triggerDelayedRender: () => void\n}\nexport const useDelayedRender: useDelayedRenderT = ({\n delayBeforeShow,\n inTimeout,\n minShowTime,\n outTimeout,\n show,\n}) => {\n const totalMountTime = inTimeout + minShowTime + outTimeout\n const [hasDelayed, triggerDelay] = useDelay(delayBeforeShow)\n const [isMounted, setIsMounted] = React.useState(false)\n const [isUnmounting, setIsUnmounting] = React.useState(false)\n const onMountTimestampRef = React.useRef(0)\n const unmountTimeoutRef: React.RefObject<NodeJS.Timeout | undefined> = React.useRef(undefined)\n\n const unmount = React.useCallback(() => {\n setIsUnmounting(true)\n unmountTimeoutRef.current = setTimeout(() => {\n setIsMounted(false)\n setIsUnmounting(false)\n }, outTimeout)\n }, [setIsUnmounting, outTimeout])\n\n React.useEffect(() => {\n const shouldMount = hasDelayed && !isMounted && show\n const shouldUnmount = isMounted && !show\n\n if (shouldMount) {\n onMountTimestampRef.current = Date.now()\n setIsMounted(true)\n } else if (shouldUnmount) {\n const totalTimeMounted = Date.now() - onMountTimestampRef.current\n const remainingTime = totalMountTime - totalTimeMounted\n clearTimeout(unmountTimeoutRef.current)\n unmountTimeoutRef.current = setTimeout(unmount, Math.max(0, remainingTime))\n }\n }, [isMounted, show, unmount, totalMountTime, hasDelayed])\n\n return {\n isMounted,\n isUnmounting,\n triggerDelayedRender: triggerDelay,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useDelayedRender.js","names":["React","useDelay","useDelayedRender","delayBeforeShow","inTimeout","minShowTime","outTimeout","show","totalMountTime","hasDelayed","triggerDelay","isMounted","setIsMounted","useState","isUnmounting","setIsUnmounting","onMountTimestampRef","useRef","unmountTimeoutRef","undefined","unmount","useCallback","current","setTimeout","useEffect","shouldMount","shouldUnmount","Date","now","totalTimeMounted","remainingTime","clearTimeout","Math","max","triggerDelayedRender"],"sources":["../../src/hooks/useDelayedRender.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport { useDelay } from './useDelay.js'\n\ntype DelayedRenderProps = {\n /** Time in ms to wait before \"mounting\" the component. */\n delayBeforeShow: number\n /** Time in ms for the \"enter\" phase of the transition, after delay completes. */\n inTimeout: number\n /** Min time in ms for the \"entered\" phase of the transition. */\n minShowTime: number\n /** Time in ms for the exit phase of the transition. */\n outTimeout: number\n /** `true` starts the mount process.\n * `false` starts the unmount process.\n * */\n show: boolean\n}\ntype useDelayedRenderT = (props: DelayedRenderProps) => {\n /** `true` if the component has mounted after the timeout. */\n isMounted: boolean\n /** `true` if the component is unmounting. */\n isUnmounting: boolean\n /** Call this function to trigger the timeout delay before rendering. */\n triggerDelayedRender: () => void\n}\nexport const useDelayedRender: useDelayedRenderT = ({\n delayBeforeShow,\n inTimeout,\n minShowTime,\n outTimeout,\n show,\n}) => {\n const totalMountTime = inTimeout + minShowTime + outTimeout\n const [hasDelayed, triggerDelay] = useDelay(delayBeforeShow)\n const [isMounted, setIsMounted] = React.useState(false)\n const [isUnmounting, setIsUnmounting] = React.useState(false)\n const onMountTimestampRef = React.useRef(0)\n const unmountTimeoutRef: React.RefObject<NodeJS.Timeout | undefined> = React.useRef(undefined)\n\n const unmount = React.useCallback(() => {\n setIsUnmounting(true)\n unmountTimeoutRef.current = setTimeout(() => {\n setIsMounted(false)\n setIsUnmounting(false)\n }, outTimeout)\n }, [setIsUnmounting, outTimeout])\n\n React.useEffect(() => {\n const shouldMount = hasDelayed && !isMounted && show\n const shouldUnmount = isMounted && !show\n\n if (shouldMount) {\n onMountTimestampRef.current = Date.now()\n setIsMounted(true)\n } else if (shouldUnmount) {\n const totalTimeMounted = Date.now() - onMountTimestampRef.current\n const remainingTime = totalMountTime - totalTimeMounted\n clearTimeout(unmountTimeoutRef.current)\n unmountTimeoutRef.current = setTimeout(unmount, Math.max(0, remainingTime))\n }\n }, [isMounted, show, unmount, totalMountTime, hasDelayed])\n\n return {\n isMounted,\n isUnmounting,\n triggerDelayedRender: triggerDelay,\n }\n}\n"],"mappings":"AAAA;;AACA,YAAYA,KAAA,MAAW;AAEvB,SAASC,QAAQ,QAAQ;AAwBzB,OAAO,MAAMC,gBAAA,GAAsCA,CAAC;EAClDC,eAAe;EACfC,SAAS;EACTC,WAAW;EACXC,UAAU;EACVC;AAAI,CACL;EACC,MAAMC,cAAA,GAAiBJ,SAAA,GAAYC,WAAA,GAAcC,UAAA;EACjD,MAAM,CAACG,UAAA,EAAYC,YAAA,CAAa,GAAGT,QAAA,CAASE,eAAA;EAC5C,MAAM,CAACQ,SAAA,EAAWC,YAAA,CAAa,GAAGZ,KAAA,CAAMa,QAAQ,CAAC;EACjD,MAAM,CAACC,YAAA,EAAcC,eAAA,CAAgB,GAAGf,KAAA,CAAMa,QAAQ,CAAC;EACvD,MAAMG,mBAAA,GAAsBhB,KAAA,CAAMiB,MAAM,CAAC;EACzC,MAAMC,iBAAA,GAAiElB,KAAA,CAAMiB,MAAM,CAACE,SAAA;EAEpF,MAAMC,OAAA,GAAUpB,KAAA,CAAMqB,WAAW,CAAC;IAChCN,eAAA,CAAgB;IAChBG,iBAAA,CAAkBI,OAAO,GAAGC,UAAA,CAAW;MACrCX,YAAA,CAAa;MACbG,eAAA,CAAgB;IAClB,GAAGT,UAAA;EACL,GAAG,CAACS,eAAA,EAAiBT,UAAA,CAAW;EAEhCN,KAAA,CAAMwB,SAAS,CAAC;IACd,MAAMC,WAAA,GAAchB,UAAA,IAAc,CAACE,SAAA,IAAaJ,IAAA;IAChD,MAAMmB,aAAA,GAAgBf,SAAA,IAAa,CAACJ,IAAA;IAEpC,IAAIkB,WAAA,EAAa;MACfT,mBAAA,CAAoBM,OAAO,GAAGK,IAAA,CAAKC,GAAG;MACtChB,YAAA,CAAa;IACf,OAAO,IAAIc,aAAA,EAAe;MACxB,MAAMG,gBAAA,GAAmBF,IAAA,CAAKC,GAAG,KAAKZ,mBAAA,CAAoBM,OAAO;MACjE,MAAMQ,aAAA,GAAgBtB,cAAA,GAAiBqB,gBAAA;MACvCE,YAAA,CAAab,iBAAA,CAAkBI,OAAO;MACtCJ,iBAAA,CAAkBI,OAAO,GAAGC,UAAA,CAAWH,OAAA,EAASY,IAAA,CAAKC,GAAG,CAAC,GAAGH,aAAA;IAC9D;EACF,GAAG,CAACnB,SAAA,EAAWJ,IAAA,EAAMa,OAAA,EAASZ,cAAA,EAAgBC,UAAA,CAAW;EAEzD,OAAO;IACLE,SAAA;IACAG,YAAA;IACAoB,oBAAA,EAAsBxB;EACxB;AACF","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { useEffect, useRef, useState } from 'react';
5
5
  export const useIntersect = (t0, disable) => {
6
- const $ = _c(17);
6
+ const $ = _c(14);
7
7
  let t1;
8
8
  if ($[0] !== t0) {
9
9
  t1 = t0 === undefined ? {} : t0;
@@ -42,7 +42,8 @@ export const useIntersect = (t0, disable) => {
42
42
  }
43
43
  const observer = useRef(t5);
44
44
  let t6;
45
- if ($[7] !== disable || $[8] !== observer || $[9] !== node) {
45
+ let t7;
46
+ if ($[7] !== disable || $[8] !== node) {
46
47
  t6 = () => {
47
48
  if (disable) {
48
49
  return;
@@ -56,31 +57,24 @@ export const useIntersect = (t0, disable) => {
56
57
  }
57
58
  return () => currentObserver.disconnect();
58
59
  };
59
- $[7] = disable;
60
- $[8] = observer;
61
- $[9] = node;
62
- $[10] = t6;
63
- } else {
64
- t6 = $[10];
65
- }
66
- let t7;
67
- if ($[11] !== node || $[12] !== disable) {
68
60
  t7 = [node, disable];
69
- $[11] = node;
70
- $[12] = disable;
71
- $[13] = t7;
61
+ $[7] = disable;
62
+ $[8] = node;
63
+ $[9] = t6;
64
+ $[10] = t7;
72
65
  } else {
73
- t7 = $[13];
66
+ t6 = $[9];
67
+ t7 = $[10];
74
68
  }
75
69
  useEffect(t6, t7);
76
70
  let t8;
77
- if ($[14] !== entry || $[15] !== node) {
71
+ if ($[11] !== entry || $[12] !== node) {
78
72
  t8 = [setNode, entry, node];
79
- $[14] = entry;
80
- $[15] = node;
81
- $[16] = t8;
73
+ $[11] = entry;
74
+ $[12] = node;
75
+ $[13] = t8;
82
76
  } else {
83
- t8 = $[16];
77
+ t8 = $[13];
84
78
  }
85
79
  return t8;
86
80
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useIntersect.js","names":["c","_c","useEffect","useRef","useState","useIntersect","t0","disable","$","t1","undefined","root","t2","rootMargin","t3","threshold","t4","entry","updateEntry","node","setNode","t5","window","IntersectionObserver","t6","ent","observer","current","currentObserver","disconnect","observe","t7","t8"],"sources":["../../src/hooks/useIntersect.ts"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect, useRef, useState } from 'react'\n\ntype Intersect = [\n setNode: React.Dispatch<HTMLElement>,\n entry: IntersectionObserverEntry,\n node: HTMLElement,\n]\n\nexport const useIntersect = (\n { root = null, rootMargin = '0px', threshold = 0 } = {},\n disable?: boolean,\n): Intersect => {\n const [entry, updateEntry] = useState<IntersectionObserverEntry>()\n const [node, setNode] = useState(null)\n\n const observer = useRef(\n typeof window !== 'undefined' && 'IntersectionObserver' in window && !disable\n ? new window.IntersectionObserver(([ent]) => updateEntry(ent), {\n root,\n rootMargin,\n threshold,\n })\n : null,\n )\n\n useEffect(() => {\n if (disable) {\n return\n }\n const { current: currentObserver } = observer\n currentObserver.disconnect()\n\n if (node) currentObserver.observe(node)\n\n return () => currentObserver.disconnect()\n }, [node, disable])\n\n return [setNode, entry, node]\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useIntersect.js","names":["c","_c","useEffect","useRef","useState","useIntersect","t0","disable","$","t1","undefined","root","t2","rootMargin","t3","threshold","t4","entry","updateEntry","node","setNode","t5","window","IntersectionObserver","t6","ent","observer","t7","current","currentObserver","disconnect","observe","t8"],"sources":["../../src/hooks/useIntersect.ts"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect, useRef, useState } from 'react'\n\ntype Intersect = [\n setNode: React.Dispatch<HTMLElement>,\n entry: IntersectionObserverEntry,\n node: HTMLElement,\n]\n\nexport const useIntersect = (\n { root = null, rootMargin = '0px', threshold = 0 } = {},\n disable?: boolean,\n): Intersect => {\n const [entry, updateEntry] = useState<IntersectionObserverEntry>()\n const [node, setNode] = useState(null)\n\n const observer = useRef(\n typeof window !== 'undefined' && 'IntersectionObserver' in window && !disable\n ? new window.IntersectionObserver(([ent]) => updateEntry(ent), {\n root,\n rootMargin,\n threshold,\n })\n : null,\n )\n\n useEffect(() => {\n if (disable) {\n return\n }\n const { current: currentObserver } = observer\n currentObserver.disconnect()\n\n if (node) currentObserver.observe(node)\n\n return () => currentObserver.disconnect()\n }, [node, disable])\n\n return [setNode, entry, node]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAQ5C,OAAO,MAAMC,YAAA,GAAeA,CAAAC,EAAA,EAAAC,OAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAF,EAAA;IAC1BG,EAAA,GAAAH,EAAuD,KAAAI,SAAA,QAAvDJ,EAAuD;IAAAE,CAAA,MAAAF,EAAA;IAAAE,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAvD;IAAAG,IAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,SAAA,EAAAC;EAAA,IAAAP,EAAuD;EAArD,MAAAE,IAAA,GAAAC,EAAW,KAAAF,SAAA,UAAXE,EAAW;EAAE,MAAAC,UAAA,GAAAC,EAAkB,KAAAJ,SAAA,GAAL,KAAK,GAAlBI,EAAkB;EAAE,MAAAC,SAAA,GAAAC,EAAa,KAAAN,SAAA,OAAbM,EAAa;EAGhD,OAAAC,KAAA,EAAAC,WAAA,IAA6Bd,QAAA;EAC7B,OAAAe,IAAA,EAAAC,OAAA,IAAwBhB,QAAA,KAAS;EAAA,IAAAiB,EAAA;EAAA,IAAAb,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAG,IAAA,IAAAH,CAAA,QAAAK,UAAA,IAAAL,CAAA,QAAAO,SAAA;IAG/BM,EAAA,UAAAC,MAAA,KAAkB,eAAe,0BAAAA,MAA0B,KAAWf,OAAA,OAAAe,MAAA,CAAAC,oBAAA,CAAAC,EAAA;MACjC,OAAAC,GAAA,IAAAD,EAAK;MAAA,OAAKN,WAAA,CAAYO,GAAA;IAAA;MAAAd,IAAA;MAAAE,UAAA;MAAAE;IAAA,SAKvD;IAAAP,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAO,SAAA;IAAAP,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAPN,MAAAkB,QAAA,GAAiBvB,MAAA,CACfkB,EAMI;EAAA,IAAAG,EAAA;EAAA,IAAAG,EAAA;EAAA,IAAAnB,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAW,IAAA;IAGIK,EAAA,GAAAA,CAAA;MAAA,IACJjB,OAAA;QAAA;MAAA;MAGJ;QAAAqB,OAAA,EAAAC;MAAA,IAAqCH,QAAA;MACrCG,eAAA,CAAAC,UAAA,CAA0B;MAAA,IAEtBX,IAAA;QAAMU,eAAA,CAAAE,OAAA,CAAwBZ,IAAA;MAAA;MAAA,aAErBU,eAAA,CAAAC,UAAA,CAA0B;IAAA;IACtCH,EAAA,IAACR,IAAA,EAAMZ,OAAA;IAAQC,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAW,IAAA;IAAAX,CAAA,MAAAgB,EAAA;IAAAhB,CAAA,OAAAmB,EAAA;EAAA;IAAAH,EAAA,GAAAhB,CAAA;IAAAmB,EAAA,GAAAnB,CAAA;EAAA;EAVlBN,SAAA,CAAUsB,EAUV,EAAGG,EAAe;EAAA,IAAAK,EAAA;EAAA,IAAAxB,CAAA,SAAAS,KAAA,IAAAT,CAAA,SAAAW,IAAA;IAEXa,EAAA,IAACZ,OAAA,EAASH,KAAA,EAAOE,IAAA;IAAKX,CAAA,OAAAS,KAAA;IAAAT,CAAA,OAAAW,IAAA;IAAAX,CAAA,OAAAwB,EAAA;EAAA;IAAAA,EAAA,GAAAxB,CAAA;EAAA;EAAA,OAAtBwB,EAAsB;AAAA,CAC/B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../../src/providers/Config/createClientConfig/collections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EAErB,aAAa,EACb,SAAS,EAET,OAAO,EACP,yBAAyB,EAG1B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,eAAO,MAAM,4BAA4B,yHAStC;IACD,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IACxC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACzC,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,UAAU,EAAE,yBAAyB,CAAA;IACrC,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,sBAiUH,CAAA;AAED,eAAO,MAAM,6BAA6B,2HASvC;IACD,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IACxC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACzC,iBAAiB,EAAE,sBAAsB,EAAE,CAAA;IAC3C,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,sBAAsB,EAiBzB,CAAA"}
1
+ {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../../src/providers/Config/createClientConfig/collections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EAErB,aAAa,EACb,SAAS,EAET,OAAO,EACP,yBAAyB,EAI1B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA8B9B,eAAO,MAAM,4BAA4B,yHAStC;IACD,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IACxC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACzC,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,UAAU,EAAE,yBAAyB,CAAA;IACrC,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,sBAkTH,CAAA;AAED,eAAO,MAAM,6BAA6B,2HASvC;IACD,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IACxC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACzC,iBAAiB,EAAE,sBAAsB,EAAE,CAAA;IAC3C,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,sBAAsB,EAiBzB,CAAA"}
@@ -1,5 +1,8 @@
1
1
  import { deepCopyObjectSimple } from 'payload';
2
2
  import { createClientFields } from './fields.js';
3
+ const serverOnlyCollectionProperties = ['hooks', 'access', 'endpoints', 'custom'];
4
+ const serverOnlyUploadProperties = ['adminThumbnail', 'externalFileHeaderFilter', 'handlers', 'modifyResponseHeaders', 'withMetadata'];
5
+ const serverOnlyCollectionAdminProperties = ['hidden', 'preview'];
3
6
  export const createClientCollectionConfig = ({
4
7
  DefaultEditView,
5
8
  DefaultListView,
@@ -18,17 +21,17 @@ export const createClientCollectionConfig = ({
18
21
  importMap,
19
22
  payload
20
23
  });
21
- const serverOnlyCollectionProperties = ['hooks', 'access', 'endpoints', 'custom'];
22
24
  serverOnlyCollectionProperties.forEach(key => {
23
25
  if (key in clientCollection) {
24
26
  delete clientCollection[key];
25
27
  }
26
28
  });
27
29
  if ('upload' in clientCollection && typeof clientCollection.upload === 'object') {
28
- delete clientCollection.upload.handlers;
29
- delete clientCollection.upload.adminThumbnail;
30
- delete clientCollection.upload.externalFileHeaderFilter;
31
- delete clientCollection.upload.withMetadata;
30
+ serverOnlyUploadProperties.forEach(key => {
31
+ if (key in clientCollection.upload) {
32
+ delete clientCollection.upload[key];
33
+ }
34
+ });
32
35
  if ('imageSizes' in clientCollection.upload && clientCollection.upload.imageSizes.length) {
33
36
  clientCollection.upload.imageSizes = clientCollection.upload.imageSizes.map(size => {
34
37
  const sanitizedSize = {
@@ -53,7 +56,6 @@ export const createClientCollectionConfig = ({
53
56
  }
54
57
  });
55
58
  }
56
- const serverOnlyCollectionAdminProperties = ['hidden', 'preview'];
57
59
  serverOnlyCollectionAdminProperties.forEach(key => {
58
60
  if (key in clientCollection.admin) {
59
61
  delete clientCollection.admin[key];