@payloadcms/ui 3.29.0-canary.5 → 3.29.0-canary.7

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 (144) hide show
  1. package/dist/elements/Autosave/index.js +1 -1
  2. package/dist/elements/Autosave/index.js.map +1 -1
  3. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  4. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +143 -127
  5. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  6. package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
  7. package/dist/elements/BulkUpload/EditMany/index.js +1 -1
  8. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  10. package/dist/elements/BulkUpload/FileSidebar/index.js +5 -5
  11. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  12. package/dist/elements/BulkUpload/FormsManager/index.js +1 -1
  13. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  14. package/dist/elements/DocumentControls/index.js +1 -1
  15. package/dist/elements/DocumentControls/index.js.map +1 -1
  16. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  17. package/dist/elements/DocumentFields/index.js +1 -5
  18. package/dist/elements/DocumentFields/index.js.map +1 -1
  19. package/dist/elements/EditMany/DrawerContent.d.ts +2 -1
  20. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  21. package/dist/elements/EditMany/DrawerContent.js +107 -118
  22. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  23. package/dist/elements/EditMany/index.d.ts.map +1 -1
  24. package/dist/elements/EditMany/index.js +6 -5
  25. package/dist/elements/EditMany/index.js.map +1 -1
  26. package/dist/elements/FieldSelect/index.d.ts +12 -2
  27. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  28. package/dist/elements/FieldSelect/index.js +31 -48
  29. package/dist/elements/FieldSelect/index.js.map +1 -1
  30. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +2 -1
  31. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  32. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +5 -2
  33. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  34. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  35. package/dist/elements/PublishButton/ScheduleDrawer/index.js +3 -3
  36. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  37. package/dist/elements/Table/DefaultCell/fields/Date/index.js +1 -1
  38. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  39. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  40. package/dist/elements/Table/DefaultCell/fields/File/index.js +24 -1
  41. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  42. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -1
  43. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  44. package/dist/elements/Thumbnail/index.js +25 -23
  45. package/dist/elements/Thumbnail/index.js.map +1 -1
  46. package/dist/elements/ThumbnailCard/index.js +1 -1
  47. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  48. package/dist/exports/client/index.js +23 -23
  49. package/dist/exports/client/index.js.map +4 -4
  50. package/dist/exports/shared/index.d.ts +2 -2
  51. package/dist/exports/shared/index.d.ts.map +1 -1
  52. package/dist/exports/shared/index.js +2 -2
  53. package/dist/exports/shared/index.js.map +4 -4
  54. package/dist/fields/Array/index.d.ts.map +1 -1
  55. package/dist/fields/Array/index.js +4 -3
  56. package/dist/fields/Array/index.js.map +1 -1
  57. package/dist/fields/Blocks/index.d.ts.map +1 -1
  58. package/dist/fields/Blocks/index.js +5 -4
  59. package/dist/fields/Blocks/index.js.map +1 -1
  60. package/dist/fields/Checkbox/index.d.ts +1 -1
  61. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  62. package/dist/fields/Checkbox/index.js +4 -3
  63. package/dist/fields/Checkbox/index.js.map +1 -1
  64. package/dist/fields/Code/index.d.ts.map +1 -1
  65. package/dist/fields/Code/index.js +4 -3
  66. package/dist/fields/Code/index.js.map +1 -1
  67. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  68. package/dist/fields/Collapsible/index.js +3 -2
  69. package/dist/fields/Collapsible/index.js.map +1 -1
  70. package/dist/fields/ConfirmPassword/index.js +13 -11
  71. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  72. package/dist/fields/DateTime/index.d.ts.map +1 -1
  73. package/dist/fields/DateTime/index.js +5 -4
  74. package/dist/fields/DateTime/index.js.map +1 -1
  75. package/dist/fields/Email/index.d.ts.map +1 -1
  76. package/dist/fields/Email/index.js +3 -2
  77. package/dist/fields/Email/index.js.map +1 -1
  78. package/dist/fields/Group/index.d.ts.map +1 -1
  79. package/dist/fields/Group/index.js.map +1 -1
  80. package/dist/fields/Group/index.scss +12 -6
  81. package/dist/fields/JSON/index.d.ts.map +1 -1
  82. package/dist/fields/JSON/index.js +5 -4
  83. package/dist/fields/JSON/index.js.map +1 -1
  84. package/dist/fields/Number/index.d.ts.map +1 -1
  85. package/dist/fields/Number/index.js +6 -5
  86. package/dist/fields/Number/index.js.map +1 -1
  87. package/dist/fields/Password/index.d.ts.map +1 -1
  88. package/dist/fields/Password/index.js +2 -4
  89. package/dist/fields/Password/index.js.map +1 -1
  90. package/dist/fields/Point/index.d.ts.map +1 -1
  91. package/dist/fields/Point/index.js +4 -3
  92. package/dist/fields/Point/index.js.map +1 -1
  93. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  94. package/dist/fields/RadioGroup/index.js +4 -3
  95. package/dist/fields/RadioGroup/index.js.map +1 -1
  96. package/dist/fields/Relationship/index.d.ts.map +1 -1
  97. package/dist/fields/Relationship/index.js +5 -4
  98. package/dist/fields/Relationship/index.js.map +1 -1
  99. package/dist/fields/Relationship/optionsReducer.js +1 -1
  100. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  101. package/dist/fields/Select/index.d.ts.map +1 -1
  102. package/dist/fields/Select/index.js +4 -3
  103. package/dist/fields/Select/index.js.map +1 -1
  104. package/dist/fields/Tabs/index.js.map +1 -1
  105. package/dist/fields/Text/index.d.ts.map +1 -1
  106. package/dist/fields/Text/index.js +4 -3
  107. package/dist/fields/Text/index.js.map +1 -1
  108. package/dist/fields/Textarea/index.d.ts.map +1 -1
  109. package/dist/fields/Textarea/index.js +2 -1
  110. package/dist/fields/Textarea/index.js.map +1 -1
  111. package/dist/fields/Upload/index.d.ts.map +1 -1
  112. package/dist/fields/Upload/index.js +2 -1
  113. package/dist/fields/Upload/index.js.map +1 -1
  114. package/dist/forms/Form/fieldReducer.js +1 -1
  115. package/dist/forms/Form/fieldReducer.js.map +1 -1
  116. package/dist/forms/useField/index.d.ts.map +1 -1
  117. package/dist/forms/useField/index.js +70 -67
  118. package/dist/forms/useField/index.js.map +1 -1
  119. package/dist/forms/useField/types.d.ts +1 -0
  120. package/dist/forms/useField/types.d.ts.map +1 -1
  121. package/dist/forms/useField/types.js.map +1 -1
  122. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  123. package/dist/providers/DocumentInfo/index.js +1 -1
  124. package/dist/providers/DocumentInfo/index.js.map +1 -1
  125. package/dist/styles.css +1 -1
  126. package/dist/utilities/{formatDate.d.ts → formatDocTitle/formatDateTitle.d.ts} +1 -1
  127. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -0
  128. package/dist/utilities/{formatDate.js → formatDocTitle/formatDateTitle.js} +1 -1
  129. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -0
  130. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.d.ts +19 -0
  131. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.d.ts.map +1 -0
  132. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js +19 -0
  133. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -0
  134. package/dist/utilities/{formatDocTitle.d.ts → formatDocTitle/index.d.ts} +2 -2
  135. package/dist/utilities/formatDocTitle/index.d.ts.map +1 -0
  136. package/dist/utilities/{formatDocTitle.js → formatDocTitle/index.js} +11 -3
  137. package/dist/utilities/formatDocTitle/index.js.map +1 -0
  138. package/dist/views/Edit/SetDocumentTitle/index.js +1 -1
  139. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  140. package/package.json +5 -5
  141. package/dist/utilities/formatDate.d.ts.map +0 -1
  142. package/dist/utilities/formatDate.js.map +0 -1
  143. package/dist/utilities/formatDocTitle.d.ts.map +0 -1
  144. package/dist/utilities/formatDocTitle.js.map +0 -1
@@ -8,7 +8,7 @@ const baseClass = 'thumbnail';
8
8
  import { File } from '../../graphics/File/index.js';
9
9
  import { ShimmerEffect } from '../ShimmerEffect/index.js';
10
10
  export const Thumbnail = props => {
11
- const $ = _c(17);
11
+ const $ = _c(18);
12
12
  const {
13
13
  className: t0,
14
14
  doc: t1,
@@ -26,7 +26,8 @@ export const Thumbnail = props => {
26
26
  t2 = $[1];
27
27
  }
28
28
  const {
29
- filename
29
+ filename,
30
+ mimeType
30
31
  } = t2;
31
32
  const [fileExists, setFileExists] = React.useState(undefined);
32
33
  const t3 = `${baseClass}--size-${size || "medium"}`;
@@ -42,9 +43,9 @@ export const Thumbnail = props => {
42
43
  const classNames = t4.join(" ");
43
44
  let t5;
44
45
  let t6;
45
- if ($[5] !== fileSrc) {
46
+ if ($[5] !== fileSrc || $[6] !== mimeType) {
46
47
  t5 = () => {
47
- if (!fileSrc) {
48
+ if (!fileSrc || typeof mimeType === "string" && !mimeType.startsWith("image")) {
48
49
  setFileExists(false);
49
50
  return;
50
51
  }
@@ -58,34 +59,35 @@ export const Thumbnail = props => {
58
59
  setFileExists(false);
59
60
  };
60
61
  };
61
- t6 = [fileSrc];
62
+ t6 = [fileSrc, mimeType];
62
63
  $[5] = fileSrc;
63
- $[6] = t5;
64
- $[7] = t6;
64
+ $[6] = mimeType;
65
+ $[7] = t5;
66
+ $[8] = t6;
65
67
  } else {
66
- t5 = $[6];
67
- t6 = $[7];
68
+ t5 = $[7];
69
+ t6 = $[8];
68
70
  }
69
71
  React.useEffect(t5, t6);
70
- let src = "";
72
+ let src = null;
71
73
  if (fileSrc) {
72
74
  const queryChar = fileSrc?.includes("?") ? "&" : "?";
73
75
  src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc;
74
76
  }
75
77
  let t7;
76
- if ($[8] !== classNames || $[9] !== fileExists || $[10] !== filename || $[11] !== src) {
78
+ if ($[9] !== classNames || $[10] !== fileExists || $[11] !== filename || $[12] !== src) {
77
79
  let t8;
78
- if ($[13] !== fileExists || $[14] !== filename || $[15] !== src) {
80
+ if ($[14] !== fileExists || $[15] !== filename || $[16] !== src) {
79
81
  t8 = fileExists && _jsx("img", {
80
82
  alt: filename,
81
83
  src
82
84
  });
83
- $[13] = fileExists;
84
- $[14] = filename;
85
- $[15] = src;
86
- $[16] = t8;
85
+ $[14] = fileExists;
86
+ $[15] = filename;
87
+ $[16] = src;
88
+ $[17] = t8;
87
89
  } else {
88
- t8 = $[16];
90
+ t8 = $[17];
89
91
  }
90
92
  t7 = _jsxs("div", {
91
93
  className: classNames,
@@ -93,13 +95,13 @@ export const Thumbnail = props => {
93
95
  height: "100%"
94
96
  }), t8, fileExists === false && _jsx(File, {})]
95
97
  });
96
- $[8] = classNames;
97
- $[9] = fileExists;
98
- $[10] = filename;
99
- $[11] = src;
100
- $[12] = t7;
98
+ $[9] = classNames;
99
+ $[10] = fileExists;
100
+ $[11] = filename;
101
+ $[12] = src;
102
+ $[13] = t7;
101
103
  } else {
102
- t7 = $[12];
104
+ t7 = $[13];
103
105
  }
104
106
  return t7;
105
107
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","baseClass","File","ShimmerEffect","Thumbnail","props","$","className","t0","doc","t1","fileSrc","imageCacheTag","size","undefined","t2","filename","fileExists","setFileExists","useState","t3","t4","classNames","join","t5","t6","img","Image","src","onload","onerror","useEffect","queryChar","includes","encodeURIComponent","t7","t8","_jsx","alt","_jsxs","children","height","ThumbnailComponent"],"sources":["../../../src/elements/Thumbnail/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'thumbnail'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { File } from '../../graphics/File/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\n\nexport type ThumbnailProps = {\n className?: string\n collectionSlug?: string\n doc?: Record<string, unknown>\n fileSrc?: string\n imageCacheTag?: string\n size?: 'expand' | 'large' | 'medium' | 'small'\n uploadConfig?: SanitizedCollectionConfig['upload']\n}\n\nexport const Thumbnail: React.FC<ThumbnailProps> = (props) => {\n const { className = '', doc: { filename } = {}, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc])\n\n let src: string = ''\n\n /**\n * If an imageCacheTag is provided, append it to the fileSrc\n * Check if the fileSrc already has a query string, if it does, append the imageCacheTag with an ampersand\n */\n if (fileSrc) {\n const queryChar = fileSrc?.includes('?') ? '&' : '?'\n src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc\n }\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={filename as string} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n\ntype ThumbnailComponentProps = {\n readonly alt?: string\n readonly className?: string\n readonly filename: string\n readonly fileSrc: string\n readonly imageCacheTag?: string\n readonly size?: 'expand' | 'large' | 'medium' | 'small'\n}\nexport function ThumbnailComponent(props: ThumbnailComponentProps) {\n const { alt, className = '', filename, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc])\n\n let src: string = ''\n\n /**\n * If an imageCacheTag is provided, append it to the fileSrc\n * Check if the fileSrc already has a query string, if it does, append the imageCacheTag with an ampersand\n */\n if (fileSrc) {\n const queryChar = fileSrc?.includes('?') ? '&' : '?'\n src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc\n }\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={alt || filename} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","baseClass","File","ShimmerEffect","Thumbnail","props","$","className","t0","doc","t1","fileSrc","imageCacheTag","size","undefined","t2","filename","mimeType","fileExists","setFileExists","useState","t3","t4","classNames","join","t5","t6","startsWith","img","Image","src","onload","onerror","useEffect","queryChar","includes","encodeURIComponent","t7","t8","_jsx","alt","_jsxs","children","height","ThumbnailComponent"],"sources":["../../../src/elements/Thumbnail/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'thumbnail'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { File } from '../../graphics/File/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\n\nexport type ThumbnailProps = {\n className?: string\n collectionSlug?: string\n doc?: Record<string, unknown>\n fileSrc?: string\n imageCacheTag?: string\n size?: 'expand' | 'large' | 'medium' | 'small'\n uploadConfig?: SanitizedCollectionConfig['upload']\n}\n\nexport const Thumbnail: React.FC<ThumbnailProps> = (props) => {\n const { className = '', doc: { filename, mimeType } = {}, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc || (typeof mimeType === 'string' && !mimeType.startsWith('image'))) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc, mimeType])\n\n let src: null | string = null\n\n /**\n * If an imageCacheTag is provided, append it to the fileSrc\n * Check if the fileSrc already has a query string, if it does, append the imageCacheTag with an ampersand\n */\n if (fileSrc) {\n const queryChar = fileSrc?.includes('?') ? '&' : '?'\n src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc\n }\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={filename as string} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n\ntype ThumbnailComponentProps = {\n readonly alt?: string\n readonly className?: string\n readonly filename: string\n readonly fileSrc: string\n readonly imageCacheTag?: string\n readonly size?: 'expand' | 'large' | 'medium' | 'small'\n}\nexport function ThumbnailComponent(props: ThumbnailComponentProps) {\n const { alt, className = '', filename, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc])\n\n let src: string = ''\n\n /**\n * If an imageCacheTag is provided, append it to the fileSrc\n * Check if the fileSrc already has a query string, if it does, append the imageCacheTag with an ampersand\n */\n if (fileSrc) {\n const queryChar = fileSrc?.includes('?') ? '&' : '?'\n src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc\n }\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={alt || filename} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import React from 'react';
6
6
  import { useConfig } from '../../providers/Config/index.js';
7
7
  import { useTranslation } from '../../providers/Translation/index.js';
8
- import { formatDocTitle } from '../../utilities/formatDocTitle.js';
8
+ import { formatDocTitle } from '../../utilities/formatDocTitle/index.js';
9
9
  import './index.scss';
10
10
  const baseClass = 'thumbnail-card';
11
11
  export const ThumbnailCard = props => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useConfig","useTranslation","formatDocTitle","baseClass","ThumbnailCard","props","$","alignLabel","className","collection","doc","label","labelFromProps","onClick","thumbnail","config","i18n","t0","t1","t2","filter","Boolean","classes","join","title","t3","filename","t4","admin","dateFormat","collectionConfig","data","fallback","_jsxs","type","children","_jsx"],"sources":["../../../src/elements/ThumbnailCard/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, TypeWithID } from 'payload'\n\nimport React from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport './index.scss'\n\nexport type ThumbnailCardProps = {\n alignLabel?: 'center' | 'left'\n className?: string\n collection?: ClientCollectionConfig\n doc?: { filename?: string } & TypeWithID\n label?: string\n onClick?: () => void\n onKeyDown?: () => void\n thumbnail: React.ReactNode\n}\n\nconst baseClass = 'thumbnail-card'\n\nexport const ThumbnailCard: React.FC<ThumbnailCardProps> = (props) => {\n const {\n alignLabel,\n className,\n collection,\n doc,\n label: labelFromProps,\n onClick,\n thumbnail,\n } = props\n\n const { config } = useConfig()\n\n const { i18n } = useTranslation()\n\n const classes = [\n baseClass,\n className,\n typeof onClick === 'function' && `${baseClass}--has-on-click`,\n alignLabel && `${baseClass}--align-label-${alignLabel}`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let title = labelFromProps\n\n if (!title) {\n title = formatDocTitle({\n collectionConfig: collection,\n data: doc,\n dateFormat: config.admin.dateFormat,\n fallback: doc?.filename,\n i18n,\n })\n }\n\n return (\n <button className={classes} onClick={onClick} title={title} type=\"button\">\n <div className={`${baseClass}__thumbnail`}>{thumbnail}</div>\n <div className={`${baseClass}__label`}>{title}</div>\n </button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAaP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,aAAA,GAA8CC,KAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EACzD;IAAAS,UAAA;IAAAC,SAAA;IAAAC,UAAA;IAAAC,GAAA;IAAAC,KAAA,EAAAC,cAAA;IAAAC,OAAA;IAAAC;EAAA,IAQIT,KAAA;EAEJ;IAAAU;EAAA,IAAmBf,SAAA;EAEnB;IAAAgB;EAAA,IAAiBf,cAAA;EAKf,MAAAgB,EAAA,UAAOJ,OAAA,KAAY,cAAc,GAAAV,SAAA,gBAA4B;EAC7D,MAAAe,EAAA,GAAAX,UAAA,IAAc,GAAAJ,SAAA,iBAA6BI,UAAA,EAAY;EAAA,IAAAY,EAAA;EAAA,IAAAb,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAW,EAAA,IAAAX,CAAA,QAAAY,EAAA;IAJzCC,EAAA,IAAAhB,SAAA,EAEdK,SAAA,EACAS,EAA6D,EAC7DC,EAAuD,EAAAE,MAAA,CAAAC,OAE/C;IAAAf,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAW,EAAA;IAAAX,CAAA,MAAAY,EAAA;IAAAZ,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EANV,MAAAgB,OAAA,GAAgBH,EAMN,CAAAI,IAAA,CACF;EAER,IAAAC,KAAA,GAAYZ,cAAA;EAAA,KAEPY,KAAA;IAKS,MAAAC,EAAA,GAAAf,GAAA,EAAAgB,QAAA;IAAK,IAAAC,EAAA;IAAA,IAAArB,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAS,MAAA,CAAAa,KAAA,CAAAC,UAAA,IAAAvB,CAAA,QAAAI,GAAA,IAAAJ,CAAA,QAAAU,IAAA,IAAAV,CAAA,QAAAmB,EAAA;MAJTE,EAAA,GAAAzB,cAAA;QAAA4B,gBAAA,EACYrB,UAAA;QAAAsB,IAAA,EACZrB,GAAA;QAAAmB,UAAA,EACMd,MAAA,CAAAa,KAAA,CAAAC,UAAA;QAAAG,QAAA,EACFP,EAAK;QAAAT;MAAA,CAEjB;MAAAV,CAAA,MAAAG,UAAA;MAAAH,CAAA,MAAAS,MAAA,CAAAa,KAAA,CAAAC,UAAA;MAAAvB,CAAA,MAAAI,GAAA;MAAAJ,CAAA,MAAAU,IAAA;MAAAV,CAAA,MAAAmB,EAAA;MAAAnB,CAAA,MAAAqB,EAAA;IAAA;MAAAA,EAAA,GAAArB,CAAA;IAAA;IANAkB,KAAA,CAAAA,CAAA,CAAQA,EAMR;EANA;EAAA,IAAAC,EAAA;EAAA,IAAAnB,CAAA,SAAAgB,OAAA,IAAAhB,CAAA,SAAAO,OAAA,IAAAP,CAAA,SAAAQ,SAAA,IAAAR,CAAA,SAAAkB,KAAA;IAUAC,EAAA,GAAAQ,KAAA,CAAC;MAAAzB,SAAA,EAAkBc,OAAA;MAAAT,OAAA;MAAAW,KAAA;MAAAU,IAAA,EAA8C;MAAAC,QAAA,GAC/DC,IAAA,CAAC;QAAA5B,SAAA,EAAe,GAAAL,SAAA,aAAyB;QAAAgC,QAAA,EAAGrB;MAAA,C,GAC5CsB,IAAA,CAAC;QAAA5B,SAAA,EAAe,GAAAL,SAAA,SAAqB;QAAAgC,QAAA,EAAGX;MAAA,C;;;;;;;;;;SAF1CC,E;CAKJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useConfig","useTranslation","formatDocTitle","baseClass","ThumbnailCard","props","$","alignLabel","className","collection","doc","label","labelFromProps","onClick","thumbnail","config","i18n","t0","t1","t2","filter","Boolean","classes","join","title","t3","filename","t4","admin","dateFormat","collectionConfig","data","fallback","_jsxs","type","children","_jsx"],"sources":["../../../src/elements/ThumbnailCard/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, TypeWithID } from 'payload'\n\nimport React from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle/index.js'\nimport './index.scss'\n\nexport type ThumbnailCardProps = {\n alignLabel?: 'center' | 'left'\n className?: string\n collection?: ClientCollectionConfig\n doc?: { filename?: string } & TypeWithID\n label?: string\n onClick?: () => void\n onKeyDown?: () => void\n thumbnail: React.ReactNode\n}\n\nconst baseClass = 'thumbnail-card'\n\nexport const ThumbnailCard: React.FC<ThumbnailCardProps> = (props) => {\n const {\n alignLabel,\n className,\n collection,\n doc,\n label: labelFromProps,\n onClick,\n thumbnail,\n } = props\n\n const { config } = useConfig()\n\n const { i18n } = useTranslation()\n\n const classes = [\n baseClass,\n className,\n typeof onClick === 'function' && `${baseClass}--has-on-click`,\n alignLabel && `${baseClass}--align-label-${alignLabel}`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let title = labelFromProps\n\n if (!title) {\n title = formatDocTitle({\n collectionConfig: collection,\n data: doc,\n dateFormat: config.admin.dateFormat,\n fallback: doc?.filename,\n i18n,\n })\n }\n\n return (\n <button className={classes} onClick={onClick} title={title} type=\"button\">\n <div className={`${baseClass}__thumbnail`}>{thumbnail}</div>\n <div className={`${baseClass}__label`}>{title}</div>\n </button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAaP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,aAAA,GAA8CC,KAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EACzD;IAAAS,UAAA;IAAAC,SAAA;IAAAC,UAAA;IAAAC,GAAA;IAAAC,KAAA,EAAAC,cAAA;IAAAC,OAAA;IAAAC;EAAA,IAQIT,KAAA;EAEJ;IAAAU;EAAA,IAAmBf,SAAA;EAEnB;IAAAgB;EAAA,IAAiBf,cAAA;EAKf,MAAAgB,EAAA,UAAOJ,OAAA,KAAY,cAAc,GAAAV,SAAA,gBAA4B;EAC7D,MAAAe,EAAA,GAAAX,UAAA,IAAc,GAAAJ,SAAA,iBAA6BI,UAAA,EAAY;EAAA,IAAAY,EAAA;EAAA,IAAAb,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAW,EAAA,IAAAX,CAAA,QAAAY,EAAA;IAJzCC,EAAA,IAAAhB,SAAA,EAEdK,SAAA,EACAS,EAA6D,EAC7DC,EAAuD,EAAAE,MAAA,CAAAC,OAE/C;IAAAf,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAW,EAAA;IAAAX,CAAA,MAAAY,EAAA;IAAAZ,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EANV,MAAAgB,OAAA,GAAgBH,EAMN,CAAAI,IAAA,CACF;EAER,IAAAC,KAAA,GAAYZ,cAAA;EAAA,KAEPY,KAAA;IAKS,MAAAC,EAAA,GAAAf,GAAA,EAAAgB,QAAA;IAAK,IAAAC,EAAA;IAAA,IAAArB,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAS,MAAA,CAAAa,KAAA,CAAAC,UAAA,IAAAvB,CAAA,QAAAI,GAAA,IAAAJ,CAAA,QAAAU,IAAA,IAAAV,CAAA,QAAAmB,EAAA;MAJTE,EAAA,GAAAzB,cAAA;QAAA4B,gBAAA,EACYrB,UAAA;QAAAsB,IAAA,EACZrB,GAAA;QAAAmB,UAAA,EACMd,MAAA,CAAAa,KAAA,CAAAC,UAAA;QAAAG,QAAA,EACFP,EAAK;QAAAT;MAAA,CAEjB;MAAAV,CAAA,MAAAG,UAAA;MAAAH,CAAA,MAAAS,MAAA,CAAAa,KAAA,CAAAC,UAAA;MAAAvB,CAAA,MAAAI,GAAA;MAAAJ,CAAA,MAAAU,IAAA;MAAAV,CAAA,MAAAmB,EAAA;MAAAnB,CAAA,MAAAqB,EAAA;IAAA;MAAAA,EAAA,GAAArB,CAAA;IAAA;IANAkB,KAAA,CAAAA,CAAA,CAAQA,EAMR;EANA;EAAA,IAAAC,EAAA;EAAA,IAAAnB,CAAA,SAAAgB,OAAA,IAAAhB,CAAA,SAAAO,OAAA,IAAAP,CAAA,SAAAQ,SAAA,IAAAR,CAAA,SAAAkB,KAAA;IAUAC,EAAA,GAAAQ,KAAA,CAAC;MAAAzB,SAAA,EAAkBc,OAAA;MAAAT,OAAA;MAAAW,KAAA;MAAAU,IAAA,EAA8C;MAAAC,QAAA,GAC/DC,IAAA,CAAC;QAAA5B,SAAA,EAAe,GAAAL,SAAA,aAAyB;QAAAgC,QAAA,EAAGrB;MAAA,C,GAC5CsB,IAAA,CAAC;QAAA5B,SAAA,EAAe,GAAAL,SAAA,SAAqB;QAAAgC,QAAA,EAAGX;MAAA,C;;;;;;;;;;SAF1CC,E;CAKJ","ignoreList":[]}