@payloadcms/ui 3.56.0-internal.72f4fd2 → 3.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.js +4 -18
  2. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  3. package/dist/elements/ClipboardAction/index.js +173 -74
  4. package/dist/elements/ClipboardAction/index.js.map +1 -1
  5. package/dist/elements/CodeEditor/CodeEditor.js +155 -67
  6. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  7. package/dist/elements/Collapsible/index.js +15 -7
  8. package/dist/elements/Collapsible/index.js.map +1 -1
  9. package/dist/elements/ConfirmationModal/index.js +44 -8
  10. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  11. package/dist/elements/CopyLocaleData/index.js +97 -89
  12. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  13. package/dist/elements/CopyToClipboard/index.js +22 -2
  14. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  15. package/dist/elements/DefaultListViewTabs/index.js +47 -32
  16. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  17. package/dist/elements/DeleteMany/index.js +83 -47
  18. package/dist/elements/DeleteMany/index.js.map +1 -1
  19. package/dist/elements/DocumentControls/index.js +55 -27
  20. package/dist/elements/DocumentControls/index.js.map +1 -1
  21. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +10 -2
  22. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  23. package/dist/elements/DocumentDrawer/index.js +99 -47
  24. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  25. package/dist/elements/Drawer/index.js +57 -23
  26. package/dist/elements/Drawer/index.js.map +1 -1
  27. package/dist/elements/DrawerActionHeader/index.js +21 -3
  28. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  29. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
  30. package/dist/elements/EmailAndUsername/index.js +31 -24
  31. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  32. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +225 -149
  33. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  34. package/dist/elements/FolderView/FolderFileCard/index.js +27 -19
  35. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  36. package/dist/elements/FolderView/MoveDocToFolder/index.js +23 -12
  37. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  38. package/dist/elements/FullscreenModal/index.js +20 -10
  39. package/dist/elements/FullscreenModal/index.js.map +1 -1
  40. package/dist/elements/ListDrawer/index.js +24 -18
  41. package/dist/elements/ListDrawer/index.js.map +1 -1
  42. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +32 -19
  43. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  44. package/dist/elements/ListSelection/index.js +27 -11
  45. package/dist/elements/ListSelection/index.js.map +1 -1
  46. package/dist/elements/LivePreview/Window/index.js +146 -65
  47. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  48. package/dist/elements/Loading/index.js +11 -2
  49. package/dist/elements/Loading/index.js.map +1 -1
  50. package/dist/elements/LoadingOverlay/index.js +102 -46
  51. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  52. package/dist/elements/Localizer/LocalizerLabel/index.js +36 -23
  53. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  54. package/dist/elements/QueryPresets/QueryPresetToggler/index.js +139 -41
  55. package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
  56. package/dist/elements/RenderIfInViewport/index.d.ts +2 -2
  57. package/dist/elements/RenderIfInViewport/index.d.ts.map +1 -1
  58. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  59. package/dist/elements/SelectRow/index.js +40 -39
  60. package/dist/elements/SelectRow/index.js.map +1 -1
  61. package/dist/elements/ShimmerEffect/index.js +12 -20
  62. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  63. package/dist/elements/SortColumn/index.js +30 -21
  64. package/dist/elements/SortColumn/index.js.map +1 -1
  65. package/dist/elements/Table/DefaultCell/fields/Date/index.js +37 -9
  66. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  67. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +37 -35
  68. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  69. package/dist/elements/Table/DefaultCell/fields/Select/index.js +27 -12
  70. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  71. package/dist/elements/Thumbnail/index.js +75 -35
  72. package/dist/elements/Thumbnail/index.js.map +1 -1
  73. package/dist/elements/ThumbnailCard/index.js +26 -17
  74. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  75. package/dist/elements/Tooltip/index.js +127 -51
  76. package/dist/elements/Tooltip/index.js.map +1 -1
  77. package/dist/elements/Upload/index.js +10 -2
  78. package/dist/elements/Upload/index.js.map +1 -1
  79. package/dist/elements/WhereBuilder/Condition/Select/index.js +44 -31
  80. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  81. package/dist/exports/client/{CodeEditor-RHQXPDK5.js → CodeEditor-4J4OH4TD.js} +2 -2
  82. package/dist/exports/client/{DatePicker-F432AIH3.js → DatePicker-NMDEHPWL.js} +2 -2
  83. package/dist/exports/client/{chunk-AZDI6MW4.js → chunk-7RGKTZG2.js} +1 -1
  84. package/dist/exports/client/{chunk-AZDI6MW4.js.map → chunk-7RGKTZG2.js.map} +1 -1
  85. package/dist/exports/client/chunk-HBCG32CP.js +26 -0
  86. package/dist/exports/client/{chunk-FKP64OEZ.js.map → chunk-HBCG32CP.js.map} +4 -4
  87. package/dist/exports/client/index.d.ts +4 -5
  88. package/dist/exports/client/index.d.ts.map +1 -1
  89. package/dist/exports/client/index.js +12 -12
  90. package/dist/exports/client/index.js.map +4 -4
  91. package/dist/exports/rsc/index.d.ts +0 -1
  92. package/dist/exports/rsc/index.d.ts.map +1 -1
  93. package/dist/exports/rsc/index.js +0 -1
  94. package/dist/exports/rsc/index.js.map +1 -1
  95. package/dist/fields/Array/ArrayRow.d.ts +3 -2
  96. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  97. package/dist/fields/Array/ArrayRow.js +23 -13
  98. package/dist/fields/Array/ArrayRow.js.map +1 -1
  99. package/dist/fields/Array/index.js +477 -273
  100. package/dist/fields/Array/index.js.map +1 -1
  101. package/dist/fields/Checkbox/Input.js +19 -2
  102. package/dist/fields/Checkbox/Input.js.map +1 -1
  103. package/dist/fields/FieldError/index.js +29 -30
  104. package/dist/fields/FieldError/index.js.map +1 -1
  105. package/dist/fields/FieldLabel/index.js +64 -12
  106. package/dist/fields/FieldLabel/index.js.map +1 -1
  107. package/dist/fields/Group/index.d.ts +1 -1
  108. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  109. package/dist/fields/Relationship/Input.js +8 -0
  110. package/dist/fields/Relationship/Input.js.map +1 -1
  111. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +103 -45
  112. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  113. package/dist/fields/Relationship/select-components/SingleValue/index.js +44 -29
  114. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  115. package/dist/fields/Row/index.d.ts +3 -1
  116. package/dist/fields/Row/index.d.ts.map +1 -1
  117. package/dist/fields/Select/Input.js +31 -18
  118. package/dist/fields/Select/Input.js.map +1 -1
  119. package/dist/fields/Tabs/Tab/index.js +11 -2
  120. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  121. package/dist/fields/Tabs/index.d.ts +1 -2
  122. package/dist/fields/Tabs/index.d.ts.map +1 -1
  123. package/dist/fields/Tabs/index.js +225 -185
  124. package/dist/fields/Tabs/index.js.map +1 -1
  125. package/dist/fields/Upload/RelationshipContent/index.js +127 -79
  126. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  127. package/dist/forms/Form/createNestedClientFieldPath.js +1 -1
  128. package/dist/forms/Form/createNestedClientFieldPath.js.map +1 -1
  129. package/dist/forms/Form/index.d.ts.map +1 -1
  130. package/dist/forms/Form/index.js +8 -1
  131. package/dist/forms/Form/index.js.map +1 -1
  132. package/dist/forms/RenderFields/RenderField.js +237 -245
  133. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  134. package/dist/forms/RenderFields/context.d.ts +29 -0
  135. package/dist/forms/RenderFields/context.d.ts.map +1 -1
  136. package/dist/forms/RenderFields/context.js +30 -2
  137. package/dist/forms/RenderFields/context.js.map +1 -1
  138. package/dist/forms/RenderFields/types.d.ts +10 -2
  139. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  140. package/dist/forms/RenderFields/types.js.map +1 -1
  141. package/dist/forms/useField/index.d.ts +0 -5
  142. package/dist/forms/useField/index.d.ts.map +1 -1
  143. package/dist/forms/useField/index.js +45 -74
  144. package/dist/forms/useField/index.js.map +1 -1
  145. package/dist/hooks/useIntersect.js +53 -35
  146. package/dist/hooks/useIntersect.js.map +1 -1
  147. package/dist/hooks/usePayloadAPI.js +44 -36
  148. package/dist/hooks/usePayloadAPI.js.map +1 -1
  149. package/dist/providers/Config/index.d.ts +17 -2
  150. package/dist/providers/Config/index.d.ts.map +1 -1
  151. package/dist/providers/Config/index.js +57 -20
  152. package/dist/providers/Config/index.js.map +1 -1
  153. package/dist/providers/Folders/index.d.ts.map +1 -1
  154. package/dist/providers/Folders/index.js +24 -13
  155. package/dist/providers/Folders/index.js.map +1 -1
  156. package/dist/providers/ServerFunctions/index.d.ts +1 -4
  157. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  158. package/dist/providers/ServerFunctions/index.js +0 -13
  159. package/dist/providers/ServerFunctions/index.js.map +1 -1
  160. package/dist/utilities/buildFormState.d.ts.map +1 -1
  161. package/dist/utilities/buildFormState.js +2 -1
  162. package/dist/utilities/buildFormState.js.map +1 -1
  163. package/dist/utilities/reduceFieldsToOptions.d.ts +1 -1
  164. package/dist/utilities/reduceFieldsToOptions.d.ts.map +1 -1
  165. package/dist/utilities/reduceFieldsToOptions.js +7 -12
  166. package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
  167. package/dist/views/BrowseByFolder/index.js +55 -37
  168. package/dist/views/BrowseByFolder/index.js.map +1 -1
  169. package/dist/views/CollectionFolder/index.js +40 -13
  170. package/dist/views/CollectionFolder/index.js.map +1 -1
  171. package/dist/views/Edit/Auth/index.js +105 -93
  172. package/dist/views/Edit/Auth/index.js.map +1 -1
  173. package/package.json +8 -8
  174. package/dist/exports/client/chunk-FKP64OEZ.js +0 -26
  175. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +0 -35
  176. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +0 -1
  177. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +0 -83
  178. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +0 -1
  179. /package/dist/exports/client/{CodeEditor-RHQXPDK5.js.map → CodeEditor-4J4OH4TD.js.map} +0 -0
  180. /package/dist/exports/client/{DatePicker-F432AIH3.js.map → DatePicker-NMDEHPWL.js.map} +0 -0
@@ -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(6);
11
+ const $ = _c(17);
12
12
  const {
13
13
  className: t0,
14
14
  doc: t1,
@@ -17,25 +17,33 @@ export const Thumbnail = props => {
17
17
  size
18
18
  } = props;
19
19
  const className = t0 === undefined ? "" : t0;
20
+ let t2;
21
+ if ($[0] !== t1) {
22
+ t2 = t1 === undefined ? {} : t1;
23
+ $[0] = t1;
24
+ $[1] = t2;
25
+ } else {
26
+ t2 = $[1];
27
+ }
20
28
  const {
21
29
  filename
22
- } = t1 === undefined ? {} : t1;
30
+ } = t2;
23
31
  const [fileExists, setFileExists] = React.useState(undefined);
24
- const t2 = `${baseClass}--size-${size || "medium"}`;
25
- let t3;
26
- if ($[0] !== className || $[1] !== t2) {
27
- t3 = [baseClass, t2, className];
28
- $[0] = className;
29
- $[1] = t2;
30
- $[2] = t3;
32
+ const t3 = `${baseClass}--size-${size || "medium"}`;
33
+ let t4;
34
+ if ($[2] !== className || $[3] !== t3) {
35
+ t4 = [baseClass, t3, className];
36
+ $[2] = className;
37
+ $[3] = t3;
38
+ $[4] = t4;
31
39
  } else {
32
- t3 = $[2];
40
+ t4 = $[4];
33
41
  }
34
- const classNames = t3.join(" ");
35
- let t4;
42
+ const classNames = t4.join(" ");
36
43
  let t5;
37
- if ($[3] !== fileSrc) {
38
- t4 = () => {
44
+ let t6;
45
+ if ($[5] !== fileSrc) {
46
+ t5 = () => {
39
47
  if (!fileSrc) {
40
48
  setFileExists(false);
41
49
  return;
@@ -50,32 +58,53 @@ export const Thumbnail = props => {
50
58
  setFileExists(false);
51
59
  };
52
60
  };
53
- t5 = [fileSrc];
54
- $[3] = fileSrc;
55
- $[4] = t4;
56
- $[5] = t5;
61
+ t6 = [fileSrc];
62
+ $[5] = fileSrc;
63
+ $[6] = t5;
64
+ $[7] = t6;
57
65
  } else {
58
- t4 = $[4];
59
- t5 = $[5];
66
+ t5 = $[6];
67
+ t6 = $[7];
60
68
  }
61
- React.useEffect(t4, t5);
69
+ React.useEffect(t5, t6);
62
70
  let src = null;
63
71
  if (fileSrc) {
64
72
  const queryChar = fileSrc?.includes("?") ? "&" : "?";
65
73
  src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc;
66
74
  }
67
- return _jsxs("div", {
68
- className: classNames,
69
- children: [fileExists === undefined && _jsx(ShimmerEffect, {
70
- height: "100%"
71
- }), fileExists && _jsx("img", {
72
- alt: filename,
73
- src
74
- }), fileExists === false && _jsx(File, {})]
75
- });
75
+ let t7;
76
+ if ($[8] !== classNames || $[9] !== fileExists || $[10] !== filename || $[11] !== src) {
77
+ let t8;
78
+ if ($[13] !== fileExists || $[14] !== filename || $[15] !== src) {
79
+ t8 = fileExists && _jsx("img", {
80
+ alt: filename,
81
+ src
82
+ });
83
+ $[13] = fileExists;
84
+ $[14] = filename;
85
+ $[15] = src;
86
+ $[16] = t8;
87
+ } else {
88
+ t8 = $[16];
89
+ }
90
+ t7 = _jsxs("div", {
91
+ className: classNames,
92
+ children: [fileExists === undefined && _jsx(ShimmerEffect, {
93
+ height: "100%"
94
+ }), t8, fileExists === false && _jsx(File, {})]
95
+ });
96
+ $[8] = classNames;
97
+ $[9] = fileExists;
98
+ $[10] = filename;
99
+ $[11] = src;
100
+ $[12] = t7;
101
+ } else {
102
+ t7 = $[12];
103
+ }
104
+ return t7;
76
105
  };
77
106
  export function ThumbnailComponent(props) {
78
- const $ = _c(12);
107
+ const $ = _c(17);
79
108
  const {
80
109
  alt,
81
110
  className: t0,
@@ -131,14 +160,25 @@ export function ThumbnailComponent(props) {
131
160
  }
132
161
  let t5;
133
162
  if ($[6] !== alt || $[7] !== classNames || $[8] !== fileExists || $[9] !== filename || $[10] !== src) {
163
+ let t6;
164
+ if ($[12] !== alt || $[13] !== fileExists || $[14] !== filename || $[15] !== src) {
165
+ t6 = fileExists && _jsx("img", {
166
+ alt: alt || filename,
167
+ src
168
+ });
169
+ $[12] = alt;
170
+ $[13] = fileExists;
171
+ $[14] = filename;
172
+ $[15] = src;
173
+ $[16] = t6;
174
+ } else {
175
+ t6 = $[16];
176
+ }
134
177
  t5 = _jsxs("div", {
135
178
  className: classNames,
136
179
  children: [fileExists === undefined && _jsx(ShimmerEffect, {
137
180
  height: "100%"
138
- }), fileExists && _jsx("img", {
139
- alt: alt || filename,
140
- src
141
- }), fileExists === false && _jsx(File, {})]
181
+ }), t6, fileExists === false && _jsx(File, {})]
142
182
  });
143
183
  $[6] = alt;
144
184
  $[7] = classNames;
@@ -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","filename","fileExists","setFileExists","useState","t2","t3","classNames","join","t4","t5","img","Image","src","onload","onerror","useEffect","queryChar","includes","encodeURIComponent","_jsxs","children","_jsx","height","alt","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: 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":[]}
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: 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":[]}
@@ -9,7 +9,7 @@ import { formatDocTitle } from '../../utilities/formatDocTitle/index.js';
9
9
  import './index.scss';
10
10
  const baseClass = 'thumbnail-card';
11
11
  export const ThumbnailCard = props => {
12
- const $ = _c(13);
12
+ const $ = _c(15);
13
13
  const {
14
14
  alignLabel,
15
15
  className,
@@ -38,18 +38,31 @@ export const ThumbnailCard = props => {
38
38
  t2 = $[3];
39
39
  }
40
40
  const classes = t2.join(" ");
41
- let t3;
42
- if ($[4] !== classes || $[5] !== collection || $[6] !== config || $[7] !== doc || $[8] !== i18n || $[9] !== labelFromProps || $[10] !== onClick || $[11] !== thumbnail) {
43
- let title = labelFromProps;
44
- if (!title) {
45
- title = formatDocTitle({
41
+ let title = labelFromProps;
42
+ if (!title) {
43
+ const t3 = doc?.filename;
44
+ let t4;
45
+ if ($[4] !== collection || $[5] !== config.admin.dateFormat || $[6] !== doc || $[7] !== i18n || $[8] !== t3) {
46
+ t4 = formatDocTitle({
46
47
  collectionConfig: collection,
47
48
  data: doc,
48
49
  dateFormat: config.admin.dateFormat,
49
- fallback: doc?.filename,
50
+ fallback: t3,
50
51
  i18n
51
52
  });
53
+ $[4] = collection;
54
+ $[5] = config.admin.dateFormat;
55
+ $[6] = doc;
56
+ $[7] = i18n;
57
+ $[8] = t3;
58
+ $[9] = t4;
59
+ } else {
60
+ t4 = $[9];
52
61
  }
62
+ title = t4;
63
+ }
64
+ let t3;
65
+ if ($[10] !== classes || $[11] !== onClick || $[12] !== thumbnail || $[13] !== title) {
53
66
  t3 = _jsxs("button", {
54
67
  className: classes,
55
68
  onClick,
@@ -63,17 +76,13 @@ export const ThumbnailCard = props => {
63
76
  children: title
64
77
  })]
65
78
  });
66
- $[4] = classes;
67
- $[5] = collection;
68
- $[6] = config;
69
- $[7] = doc;
70
- $[8] = i18n;
71
- $[9] = labelFromProps;
72
- $[10] = onClick;
73
- $[11] = thumbnail;
74
- $[12] = t3;
79
+ $[10] = classes;
80
+ $[11] = onClick;
81
+ $[12] = thumbnail;
82
+ $[13] = title;
83
+ $[14] = t3;
75
84
  } else {
76
- t3 = $[12];
85
+ t3 = $[14];
77
86
  }
78
87
  return t3;
79
88
  };
@@ -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","t3","title","data","dateFormat","admin","fallback","filename","_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;EAAA,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAgB,OAAA,IAAAhB,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAS,MAAA,IAAAT,CAAA,QAAAI,GAAA,IAAAJ,CAAA,QAAAU,IAAA,IAAAV,CAAA,QAAAM,cAAA,IAAAN,CAAA,SAAAO,OAAA,IAAAP,CAAA,SAAAQ,SAAA;IAER,IAAAW,KAAA,GAAYb,cAAA;IAAA,KAEPa,KAAA;MACHA,KAAA,CAAAA,CAAA,CAAQA;QAAAA,iBAAA,CACYhB,UAAA;QAAAiB,IAAA,EACZhB,GAAA;QAAAiB,UAAA,EACMZ,MAAA,CAAAa,KAAA,CAAAD,UAAA;QAAAE,QAAA,EACFnB,GAAA,EAAAoB,QAAA;QAAAd;MAAA,CAEZ;IANA;IAUAQ,EAAA,GAAAO,KAAA,CAAC;MAAAvB,SAAA,EAAkBc,OAAA;MAAAT,OAAA;MAAAY,KAAA;MAAAO,IAAA,EAA8C;MAAAC,QAAA,GAC/DC,IAAA,CAAC;QAAA1B,SAAA,EAAe,GAAAL,SAAA,aAAyB;QAAA8B,QAAA,EAAGnB;MAAA,C,GAC5CoB,IAAA,CAAC;QAAA1B,SAAA,EAAe,GAAAL,SAAA,SAAqB;QAAA8B,QAAA,EAAGR;MAAA,C;;;;;;;;;;;;;;SAF1CD,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":[]}
@@ -1,71 +1,147 @@
1
1
  'use client';
2
2
 
3
+ import { c as _c } from "react/compiler-runtime";
3
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
5
  import React, { useEffect } from 'react';
5
6
  import { useIntersect } from '../../hooks/useIntersect.js';
6
7
  import './index.scss';
7
8
  export const Tooltip = props => {
9
+ const $ = _c(26);
8
10
  const {
9
- alignCaret = 'center',
11
+ alignCaret: t0,
10
12
  boundingRef,
11
13
  children,
12
14
  className,
13
- delay = 350,
15
+ delay: t1,
14
16
  position: positionFromProps,
15
- show: showFromProps = true,
16
- staticPositioning = false
17
+ show: t2,
18
+ staticPositioning: t3
17
19
  } = props;
20
+ const alignCaret = t0 === undefined ? "center" : t0;
21
+ const delay = t1 === undefined ? 350 : t1;
22
+ const showFromProps = t2 === undefined ? true : t2;
23
+ const staticPositioning = t3 === undefined ? false : t3;
18
24
  const [show, setShow] = React.useState(showFromProps);
19
- const [position, setPosition] = React.useState('top');
20
- const getTitleAttribute = content => typeof content === 'string' ? content : '';
21
- const [ref, intersectionEntry] = useIntersect({
22
- root: boundingRef?.current || null,
23
- rootMargin: '-145px 0px 0px 100px',
24
- threshold: 0
25
- }, staticPositioning);
26
- useEffect(() => {
27
- let timerID;
28
- // do not use the delay on transition-out
29
- if (delay && showFromProps) {
30
- timerID = setTimeout(() => {
25
+ const [position, setPosition] = React.useState("top");
26
+ const getTitleAttribute = _temp;
27
+ const t4 = boundingRef?.current || null;
28
+ let t5;
29
+ if ($[0] !== t4) {
30
+ t5 = {
31
+ root: t4,
32
+ rootMargin: "-145px 0px 0px 100px",
33
+ threshold: 0
34
+ };
35
+ $[0] = t4;
36
+ $[1] = t5;
37
+ } else {
38
+ t5 = $[1];
39
+ }
40
+ const [ref, intersectionEntry] = useIntersect(t5, staticPositioning);
41
+ let t6;
42
+ let t7;
43
+ if ($[2] !== delay || $[3] !== showFromProps) {
44
+ t6 = () => {
45
+ let timerID;
46
+ if (delay && showFromProps) {
47
+ timerID = setTimeout(() => {
48
+ setShow(showFromProps);
49
+ }, delay);
50
+ } else {
31
51
  setShow(showFromProps);
32
- }, delay);
33
- } else {
34
- setShow(showFromProps);
35
- }
36
- return () => {
37
- if (timerID) {
38
- clearTimeout(timerID);
39
52
  }
53
+ return () => {
54
+ if (timerID) {
55
+ clearTimeout(timerID);
56
+ }
57
+ };
40
58
  };
41
- }, [showFromProps, delay]);
42
- useEffect(() => {
43
- if (staticPositioning) {
44
- return;
59
+ t7 = [showFromProps, delay];
60
+ $[2] = delay;
61
+ $[3] = showFromProps;
62
+ $[4] = t6;
63
+ $[5] = t7;
64
+ } else {
65
+ t6 = $[4];
66
+ t7 = $[5];
67
+ }
68
+ useEffect(t6, t7);
69
+ let t8;
70
+ if ($[6] !== intersectionEntry?.isIntersecting || $[7] !== staticPositioning) {
71
+ t8 = () => {
72
+ if (staticPositioning) {
73
+ return;
74
+ }
75
+ setPosition(intersectionEntry?.isIntersecting ? "top" : "bottom");
76
+ };
77
+ $[6] = intersectionEntry?.isIntersecting;
78
+ $[7] = staticPositioning;
79
+ $[8] = t8;
80
+ } else {
81
+ t8 = $[8];
82
+ }
83
+ let t9;
84
+ if ($[9] !== intersectionEntry || $[10] !== staticPositioning) {
85
+ t9 = [intersectionEntry, staticPositioning];
86
+ $[9] = intersectionEntry;
87
+ $[10] = staticPositioning;
88
+ $[11] = t9;
89
+ } else {
90
+ t9 = $[11];
91
+ }
92
+ useEffect(t8, t9);
93
+ let t10;
94
+ if ($[12] !== alignCaret || $[13] !== children || $[14] !== className || $[15] !== position || $[16] !== positionFromProps || $[17] !== ref || $[18] !== show || $[19] !== staticPositioning) {
95
+ const t11 = show && "tooltip--show";
96
+ const t12 = `tooltip--caret-${alignCaret}`;
97
+ const t13 = `tooltip--position-${positionFromProps || position}`;
98
+ let t14;
99
+ if ($[21] !== className || $[22] !== t11 || $[23] !== t12 || $[24] !== t13) {
100
+ t14 = ["tooltip", className, t11, t12, t13].filter(Boolean);
101
+ $[21] = className;
102
+ $[22] = t11;
103
+ $[23] = t12;
104
+ $[24] = t13;
105
+ $[25] = t14;
106
+ } else {
107
+ t14 = $[25];
45
108
  }
46
- setPosition(intersectionEntry?.isIntersecting ? 'top' : 'bottom');
47
- }, [intersectionEntry, staticPositioning]);
48
- // The first aside is always on top. The purpose of that is that it can reliably be used for the interaction observer (as it's not moving around), to calculate the position of the actual tooltip.
49
- return /*#__PURE__*/_jsxs(React.Fragment, {
50
- children: [!staticPositioning && /*#__PURE__*/_jsx("aside", {
51
- "aria-hidden": "true",
52
- className: ['tooltip', className, `tooltip--caret-${alignCaret}`, 'tooltip--position-top'].filter(Boolean).join(' '),
53
- ref: ref,
54
- style: {
55
- opacity: '0'
56
- },
57
- children: /*#__PURE__*/_jsx("div", {
58
- className: "tooltip-content",
59
- children: children
60
- })
61
- }), /*#__PURE__*/_jsx("aside", {
62
- className: ['tooltip', className, show && 'tooltip--show', `tooltip--caret-${alignCaret}`, `tooltip--position-${positionFromProps || position}`].filter(Boolean).join(' '),
63
- title: getTitleAttribute(children),
64
- children: /*#__PURE__*/_jsx("div", {
65
- className: "tooltip-content",
66
- children: children
67
- })
68
- })]
69
- });
109
+ t10 = _jsxs(React.Fragment, {
110
+ children: [!staticPositioning && _jsx("aside", {
111
+ "aria-hidden": "true",
112
+ className: ["tooltip", className, `tooltip--caret-${alignCaret}`, "tooltip--position-top"].filter(Boolean).join(" "),
113
+ ref,
114
+ style: {
115
+ opacity: "0"
116
+ },
117
+ children: _jsx("div", {
118
+ className: "tooltip-content",
119
+ children
120
+ })
121
+ }), _jsx("aside", {
122
+ className: t14.join(" "),
123
+ title: getTitleAttribute(children),
124
+ children: _jsx("div", {
125
+ className: "tooltip-content",
126
+ children
127
+ })
128
+ })]
129
+ });
130
+ $[12] = alignCaret;
131
+ $[13] = children;
132
+ $[14] = className;
133
+ $[15] = position;
134
+ $[16] = positionFromProps;
135
+ $[17] = ref;
136
+ $[18] = show;
137
+ $[19] = staticPositioning;
138
+ $[20] = t10;
139
+ } else {
140
+ t10 = $[20];
141
+ }
142
+ return t10;
70
143
  };
144
+ function _temp(content) {
145
+ return typeof content === "string" ? content : "";
146
+ }
71
147
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useEffect","useIntersect","Tooltip","props","alignCaret","boundingRef","children","className","delay","position","positionFromProps","show","showFromProps","staticPositioning","setShow","useState","setPosition","getTitleAttribute","content","ref","intersectionEntry","root","current","rootMargin","threshold","timerID","setTimeout","clearTimeout","isIntersecting","_jsxs","Fragment","_jsx","filter","Boolean","join","style","opacity","title"],"sources":["../../../src/elements/Tooltip/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect } from 'react'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\nimport './index.scss'\n\nexport type Props = {\n alignCaret?: 'center' | 'left' | 'right'\n boundingRef?: React.RefObject<HTMLElement | null>\n children: React.ReactNode\n className?: string\n delay?: number\n position?: 'bottom' | 'top'\n show?: boolean\n /**\n * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false\n */\n staticPositioning?: boolean\n}\n\nexport const Tooltip: React.FC<Props> = (props) => {\n const {\n alignCaret = 'center',\n boundingRef,\n children,\n className,\n delay = 350,\n position: positionFromProps,\n show: showFromProps = true,\n staticPositioning = false,\n } = props\n\n const [show, setShow] = React.useState(showFromProps)\n const [position, setPosition] = React.useState<'bottom' | 'top'>('top')\n\n const getTitleAttribute = (content) => (typeof content === 'string' ? content : '')\n\n const [ref, intersectionEntry] = useIntersect(\n {\n root: boundingRef?.current || null,\n rootMargin: '-145px 0px 0px 100px',\n threshold: 0,\n },\n staticPositioning,\n )\n\n useEffect(() => {\n let timerID: NodeJS.Timeout\n\n // do not use the delay on transition-out\n if (delay && showFromProps) {\n timerID = setTimeout(() => {\n setShow(showFromProps)\n }, delay)\n } else {\n setShow(showFromProps)\n }\n\n return () => {\n if (timerID) {\n clearTimeout(timerID)\n }\n }\n }, [showFromProps, delay])\n\n useEffect(() => {\n if (staticPositioning) {\n return\n }\n setPosition(intersectionEntry?.isIntersecting ? 'top' : 'bottom')\n }, [intersectionEntry, staticPositioning])\n\n // The first aside is always on top. The purpose of that is that it can reliably be used for the interaction observer (as it's not moving around), to calculate the position of the actual tooltip.\n return (\n <React.Fragment>\n {!staticPositioning && (\n <aside\n aria-hidden=\"true\"\n className={['tooltip', className, `tooltip--caret-${alignCaret}`, 'tooltip--position-top']\n .filter(Boolean)\n .join(' ')}\n ref={ref}\n style={{ opacity: '0' }}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n )}\n <aside\n className={[\n 'tooltip',\n className,\n show && 'tooltip--show',\n `tooltip--caret-${alignCaret}`,\n `tooltip--position-${positionFromProps || position}`,\n ]\n .filter(Boolean)\n .join(' ')}\n title={getTitleAttribute(children)}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,IAASC,SAAS,QAAQ;AAEjC,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAgBP,OAAO,MAAMC,OAAA,GAA4BC,KAAA;EACvC,MAAM;IACJC,UAAA,GAAa,QAAQ;IACrBC,WAAW;IACXC,QAAQ;IACRC,SAAS;IACTC,KAAA,GAAQ,GAAG;IACXC,QAAA,EAAUC,iBAAiB;IAC3BC,IAAA,EAAMC,aAAA,GAAgB,IAAI;IAC1BC,iBAAA,GAAoB;EAAK,CAC1B,GAAGV,KAAA;EAEJ,MAAM,CAACQ,IAAA,EAAMG,OAAA,CAAQ,GAAGf,KAAA,CAAMgB,QAAQ,CAACH,aAAA;EACvC,MAAM,CAACH,QAAA,EAAUO,WAAA,CAAY,GAAGjB,KAAA,CAAMgB,QAAQ,CAAmB;EAEjE,MAAME,iBAAA,GAAqBC,OAAA,IAAa,OAAOA,OAAA,KAAY,WAAWA,OAAA,GAAU;EAEhF,MAAM,CAACC,GAAA,EAAKC,iBAAA,CAAkB,GAAGnB,YAAA,CAC/B;IACEoB,IAAA,EAAMhB,WAAA,EAAaiB,OAAA,IAAW;IAC9BC,UAAA,EAAY;IACZC,SAAA,EAAW;EACb,GACAX,iBAAA;EAGFb,SAAA,CAAU;IACR,IAAIyB,OAAA;IAEJ;IACA,IAAIjB,KAAA,IAASI,aAAA,EAAe;MAC1Ba,OAAA,GAAUC,UAAA,CAAW;QACnBZ,OAAA,CAAQF,aAAA;MACV,GAAGJ,KAAA;IACL,OAAO;MACLM,OAAA,CAAQF,aAAA;IACV;IAEA,OAAO;MACL,IAAIa,OAAA,EAAS;QACXE,YAAA,CAAaF,OAAA;MACf;IACF;EACF,GAAG,CAACb,aAAA,EAAeJ,KAAA,CAAM;EAEzBR,SAAA,CAAU;IACR,IAAIa,iBAAA,EAAmB;MACrB;IACF;IACAG,WAAA,CAAYI,iBAAA,EAAmBQ,cAAA,GAAiB,QAAQ;EAC1D,GAAG,CAACR,iBAAA,EAAmBP,iBAAA,CAAkB;EAEzC;EACA,oBACEgB,KAAA,CAAC9B,KAAA,CAAM+B,QAAQ;eACZ,CAACjB,iBAAA,iBACAkB,IAAA,CAAC;MACC,eAAY;MACZxB,SAAA,EAAW,CAAC,WAAWA,SAAA,EAAW,kBAAkBH,UAAA,EAAY,EAAE,wBAAwB,CACvF4B,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;MACRf,GAAA,EAAKA,GAAA;MACLgB,KAAA,EAAO;QAAEC,OAAA,EAAS;MAAI;gBAEtB,aAAAL,IAAA,CAAC;QAAIxB,SAAA,EAAU;kBAAmBD;;qBAGtCyB,IAAA,CAAC;MACCxB,SAAA,EAAW,CACT,WACAA,SAAA,EACAI,IAAA,IAAQ,iBACR,kBAAkBP,UAAA,EAAY,EAC9B,qBAAqBM,iBAAA,IAAqBD,QAAA,EAAU,CACrD,CACEuB,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;MACRG,KAAA,EAAOpB,iBAAA,CAAkBX,QAAA;gBAEzB,aAAAyB,IAAA,CAAC;QAAIxB,SAAA,EAAU;kBAAmBD;;;;AAI1C","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useIntersect","Tooltip","props","$","alignCaret","t0","boundingRef","children","className","delay","t1","position","positionFromProps","show","t2","staticPositioning","t3","undefined","showFromProps","setShow","useState","setPosition","getTitleAttribute","_temp","t4","current","t5","root","rootMargin","threshold","ref","intersectionEntry","t6","t7","timerID","clearTimeout","t8","isIntersecting","t9","t10","t11","t12","t13","t14","filter","Boolean","_jsxs","Fragment","_jsx","join","style","opacity","title","content"],"sources":["../../../src/elements/Tooltip/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect } from 'react'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\nimport './index.scss'\n\nexport type Props = {\n alignCaret?: 'center' | 'left' | 'right'\n boundingRef?: React.RefObject<HTMLElement | null>\n children: React.ReactNode\n className?: string\n delay?: number\n position?: 'bottom' | 'top'\n show?: boolean\n /**\n * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false\n */\n staticPositioning?: boolean\n}\n\nexport const Tooltip: React.FC<Props> = (props) => {\n const {\n alignCaret = 'center',\n boundingRef,\n children,\n className,\n delay = 350,\n position: positionFromProps,\n show: showFromProps = true,\n staticPositioning = false,\n } = props\n\n const [show, setShow] = React.useState(showFromProps)\n const [position, setPosition] = React.useState<'bottom' | 'top'>('top')\n\n const getTitleAttribute = (content) => (typeof content === 'string' ? content : '')\n\n const [ref, intersectionEntry] = useIntersect(\n {\n root: boundingRef?.current || null,\n rootMargin: '-145px 0px 0px 100px',\n threshold: 0,\n },\n staticPositioning,\n )\n\n useEffect(() => {\n let timerID: NodeJS.Timeout\n\n // do not use the delay on transition-out\n if (delay && showFromProps) {\n timerID = setTimeout(() => {\n setShow(showFromProps)\n }, delay)\n } else {\n setShow(showFromProps)\n }\n\n return () => {\n if (timerID) {\n clearTimeout(timerID)\n }\n }\n }, [showFromProps, delay])\n\n useEffect(() => {\n if (staticPositioning) {\n return\n }\n setPosition(intersectionEntry?.isIntersecting ? 'top' : 'bottom')\n }, [intersectionEntry, staticPositioning])\n\n // The first aside is always on top. The purpose of that is that it can reliably be used for the interaction observer (as it's not moving around), to calculate the position of the actual tooltip.\n return (\n <React.Fragment>\n {!staticPositioning && (\n <aside\n aria-hidden=\"true\"\n className={['tooltip', className, `tooltip--caret-${alignCaret}`, 'tooltip--position-top']\n .filter(Boolean)\n .join(' ')}\n ref={ref}\n style={{ opacity: '0' }}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n )}\n <aside\n className={[\n 'tooltip',\n className,\n show && 'tooltip--show',\n `tooltip--caret-${alignCaret}`,\n `tooltip--position-${positionFromProps || position}`,\n ]\n .filter(Boolean)\n .join(' ')}\n title={getTitleAttribute(children)}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -37,7 +37,7 @@ const validate = value => {
37
37
  return true;
38
38
  };
39
39
  export const UploadActions = t0 => {
40
- const $ = _c(8);
40
+ const $ = _c(10);
41
41
  const {
42
42
  customActions,
43
43
  enableAdjustments,
@@ -60,6 +60,14 @@ export const UploadActions = t0 => {
60
60
  t2 = null;
61
61
  break bb0;
62
62
  }
63
+ let t3;
64
+ if ($[8] !== customActions) {
65
+ t3 = customActions && customActions.map(_temp);
66
+ $[8] = customActions;
67
+ $[9] = t3;
68
+ } else {
69
+ t3 = $[9];
70
+ }
63
71
  t1 = _jsxs("div", {
64
72
  className: `${baseClass}__upload-actions`,
65
73
  children: [fileTypeIsAdjustable && _jsxs(React.Fragment, {
@@ -82,7 +90,7 @@ export const UploadActions = t0 => {
82
90
  size: "small",
83
91
  children: t("upload:editImage")
84
92
  })]
85
- }), customActions && customActions.map(_temp)]
93
+ }), t3]
86
94
  });
87
95
  }
88
96
  $[0] = customActions;