@payloadcms/ui 3.44.0-internal.6b79dc2 → 3.45.0-canary.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 (171) hide show
  1. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/FileSidebar/index.js +74 -29
  3. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/FileSidebar/index.scss +5 -4
  5. package/dist/elements/BulkUpload/FormsManager/index.d.ts +0 -1
  6. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  7. package/dist/elements/BulkUpload/FormsManager/index.js +37 -64
  8. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts +1 -0
  10. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts.map +1 -1
  11. package/dist/elements/BulkUpload/FormsManager/reducer.js +1 -0
  12. package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
  13. package/dist/elements/Button/index.d.ts.map +1 -1
  14. package/dist/elements/Button/index.js +2 -1
  15. package/dist/elements/Button/index.js.map +1 -1
  16. package/dist/elements/Button/index.scss +2 -2
  17. package/dist/elements/DocumentControls/index.d.ts +1 -0
  18. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  19. package/dist/elements/DocumentControls/index.js +26 -11
  20. package/dist/elements/DocumentControls/index.js.map +1 -1
  21. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  22. package/dist/elements/DocumentFields/index.js.map +1 -1
  23. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
  24. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +14 -10
  25. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  26. package/dist/elements/LivePreview/Device/index.d.ts +5 -0
  27. package/dist/elements/LivePreview/Device/index.d.ts.map +1 -0
  28. package/dist/elements/LivePreview/Device/index.js +92 -0
  29. package/dist/elements/LivePreview/Device/index.js.map +1 -0
  30. package/dist/elements/LivePreview/DeviceContainer/index.d.ts +5 -0
  31. package/dist/elements/LivePreview/DeviceContainer/index.d.ts.map +1 -0
  32. package/dist/elements/LivePreview/DeviceContainer/index.js +55 -0
  33. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -0
  34. package/dist/elements/LivePreview/IFrame/index.d.ts +10 -0
  35. package/dist/elements/LivePreview/IFrame/index.d.ts.map +1 -0
  36. package/dist/elements/LivePreview/IFrame/index.js +30 -0
  37. package/dist/elements/LivePreview/IFrame/index.js.map +1 -0
  38. package/dist/elements/LivePreview/IFrame/index.scss +9 -0
  39. package/dist/elements/LivePreview/Toggler/index.d.ts +4 -0
  40. package/dist/elements/LivePreview/Toggler/index.d.ts.map +1 -0
  41. package/dist/elements/LivePreview/Toggler/index.js +30 -0
  42. package/dist/elements/LivePreview/Toggler/index.js.map +1 -0
  43. package/dist/elements/LivePreview/Toggler/index.scss +48 -0
  44. package/dist/elements/LivePreview/Toolbar/Controls/index.d.ts +5 -0
  45. package/dist/elements/LivePreview/Toolbar/Controls/index.d.ts.map +1 -0
  46. package/dist/elements/LivePreview/Toolbar/Controls/index.js +157 -0
  47. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -0
  48. package/dist/elements/LivePreview/Toolbar/Controls/index.scss +61 -0
  49. package/dist/elements/LivePreview/Toolbar/SizeInput/index.d.ts +6 -0
  50. package/dist/elements/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -0
  51. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +101 -0
  52. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -0
  53. package/dist/elements/LivePreview/Toolbar/SizeInput/index.scss +12 -0
  54. package/dist/elements/LivePreview/Toolbar/index.d.ts +7 -0
  55. package/dist/elements/LivePreview/Toolbar/index.d.ts.map +1 -0
  56. package/dist/elements/LivePreview/Toolbar/index.js +97 -0
  57. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -0
  58. package/dist/elements/LivePreview/Toolbar/index.scss +43 -0
  59. package/dist/elements/LivePreview/ToolbarArea/index.d.ts +6 -0
  60. package/dist/elements/LivePreview/ToolbarArea/index.d.ts.map +1 -0
  61. package/dist/elements/LivePreview/ToolbarArea/index.js +41 -0
  62. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -0
  63. package/dist/elements/LivePreview/ToolbarArea/index.scss +6 -0
  64. package/dist/elements/LivePreview/Window/index.d.ts +5 -0
  65. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -0
  66. package/dist/elements/LivePreview/Window/index.js +182 -0
  67. package/dist/elements/LivePreview/Window/index.js.map +1 -0
  68. package/dist/elements/LivePreview/Window/index.scss +48 -0
  69. package/dist/elements/PreviewButton/index.d.ts +1 -0
  70. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  71. package/dist/elements/PreviewButton/index.js +13 -10
  72. package/dist/elements/PreviewButton/index.js.map +1 -1
  73. package/dist/elements/PreviewButton/index.scss +39 -0
  74. package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -1
  75. package/dist/elements/PreviewButton/usePreviewURL.js +1 -1
  76. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
  77. package/dist/elements/RelationshipTable/AddNewButton.d.ts +17 -0
  78. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -0
  79. package/dist/elements/RelationshipTable/AddNewButton.js +64 -0
  80. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -0
  81. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  82. package/dist/elements/RelationshipTable/index.js +35 -49
  83. package/dist/elements/RelationshipTable/index.js.map +1 -1
  84. package/dist/elements/RelationshipTable/index.scss +4 -0
  85. package/dist/elements/ShimmerEffect/index.d.ts +2 -0
  86. package/dist/elements/ShimmerEffect/index.d.ts.map +1 -1
  87. package/dist/elements/ShimmerEffect/index.js +5 -3
  88. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  89. package/dist/elements/Table/index.scss +1 -0
  90. package/dist/elements/Thumbnail/createThumbnail.d.ts.map +1 -1
  91. package/dist/elements/Thumbnail/createThumbnail.js +8 -2
  92. package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
  93. package/dist/exports/client/{CodeEditor-Z3ZZJH7C.js → CodeEditor-YP63NRLU.js} +2 -2
  94. package/dist/exports/client/{chunk-CNCOIY3Y.js → chunk-5EP6VERX.js} +4 -4
  95. package/dist/exports/client/{chunk-CNCOIY3Y.js.map → chunk-5EP6VERX.js.map} +3 -3
  96. package/dist/exports/client/index.d.ts +3 -2
  97. package/dist/exports/client/index.d.ts.map +1 -1
  98. package/dist/exports/client/index.js +22 -22
  99. package/dist/exports/client/index.js.map +4 -4
  100. package/dist/exports/shared/index.js +1 -1
  101. package/dist/exports/shared/index.js.map +2 -2
  102. package/dist/fields/DateTime/index.d.ts.map +1 -1
  103. package/dist/fields/DateTime/index.js +1 -0
  104. package/dist/fields/DateTime/index.js.map +1 -1
  105. package/dist/forms/Form/index.d.ts.map +1 -1
  106. package/dist/forms/Form/index.js +1 -1
  107. package/dist/forms/Form/index.js.map +1 -1
  108. package/dist/forms/Form/mergeServerFormState.js +1 -1
  109. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  110. package/dist/hooks/usePopupWindow.d.ts +20 -0
  111. package/dist/hooks/usePopupWindow.d.ts.map +1 -0
  112. package/dist/hooks/usePopupWindow.js +144 -0
  113. package/dist/hooks/usePopupWindow.js.map +1 -0
  114. package/dist/icons/ExternalLink/index.d.ts.map +1 -0
  115. package/dist/icons/ExternalLink/index.js.map +1 -0
  116. package/dist/icons/Eye/index.d.ts +7 -0
  117. package/dist/icons/Eye/index.d.ts.map +1 -0
  118. package/dist/icons/Eye/index.js +28 -0
  119. package/dist/icons/Eye/index.js.map +1 -0
  120. package/dist/icons/Eye/index.scss +20 -0
  121. package/dist/providers/ListQuery/types.d.ts +2 -2
  122. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  123. package/dist/providers/ListQuery/types.js.map +1 -1
  124. package/dist/providers/LivePreview/collisionDetection.d.ts +3 -0
  125. package/dist/providers/LivePreview/collisionDetection.d.ts.map +1 -0
  126. package/dist/providers/LivePreview/collisionDetection.js +29 -0
  127. package/dist/providers/LivePreview/collisionDetection.js.map +1 -0
  128. package/dist/providers/LivePreview/context.d.ts +55 -0
  129. package/dist/providers/LivePreview/context.d.ts.map +1 -0
  130. package/dist/providers/LivePreview/context.js +44 -0
  131. package/dist/providers/LivePreview/context.js.map +1 -0
  132. package/dist/providers/LivePreview/index.d.ts +16 -0
  133. package/dist/providers/LivePreview/index.d.ts.map +1 -0
  134. package/dist/providers/LivePreview/index.js +206 -0
  135. package/dist/providers/LivePreview/index.js.map +1 -0
  136. package/dist/providers/LivePreview/index.scss +68 -0
  137. package/dist/providers/LivePreview/sizeReducer.d.ts +20 -0
  138. package/dist/providers/LivePreview/sizeReducer.d.ts.map +1 -0
  139. package/dist/providers/LivePreview/sizeReducer.js +30 -0
  140. package/dist/providers/LivePreview/sizeReducer.js.map +1 -0
  141. package/dist/providers/TableColumns/buildColumnState/index.d.ts +3 -3
  142. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  143. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  144. package/dist/providers/TableColumns/getInitialColumns.d.ts +2 -2
  145. package/dist/providers/TableColumns/getInitialColumns.d.ts.map +1 -1
  146. package/dist/providers/TableColumns/getInitialColumns.js.map +1 -1
  147. package/dist/providers/TableColumns/types.d.ts +2 -2
  148. package/dist/providers/TableColumns/types.d.ts.map +1 -1
  149. package/dist/providers/TableColumns/types.js.map +1 -1
  150. package/dist/styles.css +1 -1
  151. package/dist/utilities/buildTableState.d.ts +2 -2
  152. package/dist/utilities/buildTableState.d.ts.map +1 -1
  153. package/dist/utilities/buildTableState.js +4 -4
  154. package/dist/utilities/buildTableState.js.map +1 -1
  155. package/dist/utilities/formatDocTitle/index.js +2 -2
  156. package/dist/utilities/formatDocTitle/index.js.map +1 -1
  157. package/dist/utilities/renderTable.d.ts +3 -3
  158. package/dist/utilities/renderTable.d.ts.map +1 -1
  159. package/dist/utilities/renderTable.js.map +1 -1
  160. package/dist/views/Edit/index.d.ts.map +1 -1
  161. package/dist/views/Edit/index.js +52 -41
  162. package/dist/views/Edit/index.js.map +1 -1
  163. package/dist/views/Edit/index.scss +39 -1
  164. package/package.json +4 -4
  165. package/dist/elements/BulkUpload/index.scss +0 -0
  166. package/dist/graphics/ExternalLink/index.d.ts.map +0 -1
  167. package/dist/graphics/ExternalLink/index.js.map +0 -1
  168. /package/dist/exports/client/{CodeEditor-Z3ZZJH7C.js.map → CodeEditor-YP63NRLU.js.map} +0 -0
  169. /package/dist/{graphics → icons}/ExternalLink/index.d.ts +0 -0
  170. /package/dist/{graphics → icons}/ExternalLink/index.js +0 -0
  171. /package/dist/{graphics → icons}/ExternalLink/index.scss +0 -0
@@ -0,0 +1,182 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ import { reduceFieldsToValues } from 'payload/shared';
6
+ import React, { useEffect } from 'react';
7
+ import { useAllFormFields } from '../../../forms/Form/context.js';
8
+ import { useDocumentEvents } from '../../../providers/DocumentEvents/index.js';
9
+ import { useLivePreviewContext } from '../../../providers/LivePreview/context.js';
10
+ import { useLocale } from '../../../providers/Locale/index.js';
11
+ import { ShimmerEffect } from '../../ShimmerEffect/index.js';
12
+ import { DeviceContainer } from '../Device/index.js';
13
+ import { IFrame } from '../IFrame/index.js';
14
+ import { LivePreviewToolbar } from '../Toolbar/index.js';
15
+ import './index.scss';
16
+ const baseClass = 'live-preview-window';
17
+ export const LivePreviewWindow = props => {
18
+ const $ = _c(46);
19
+ const {
20
+ appIsReady,
21
+ breakpoint,
22
+ fieldSchemaJSON,
23
+ iframeHasLoaded,
24
+ iframeRef,
25
+ isLivePreviewing,
26
+ popupRef,
27
+ previewWindowType,
28
+ setIframeHasLoaded,
29
+ url
30
+ } = useLivePreviewContext();
31
+ const locale = useLocale();
32
+ const {
33
+ mostRecentUpdate
34
+ } = useDocumentEvents();
35
+ const prevWindowType = React.useRef(undefined);
36
+ const [formState] = useAllFormFields();
37
+ let t0;
38
+ if ($[0] !== appIsReady || $[1] !== fieldSchemaJSON || $[2] !== formState || $[3] !== iframeRef || $[4] !== isLivePreviewing || $[5] !== locale || $[6] !== mostRecentUpdate || $[7] !== popupRef || $[8] !== previewWindowType || $[9] !== url) {
39
+ t0 = () => {
40
+ if (!isLivePreviewing) {
41
+ return;
42
+ }
43
+ if (formState && window && "postMessage" in window && appIsReady) {
44
+ const values = reduceFieldsToValues(formState, true);
45
+ const shouldSendSchema = !prevWindowType.current || prevWindowType.current !== previewWindowType;
46
+ prevWindowType.current = previewWindowType;
47
+ const message = {
48
+ type: "payload-live-preview",
49
+ data: values,
50
+ externallyUpdatedRelationship: mostRecentUpdate,
51
+ fieldSchemaJSON: shouldSendSchema ? fieldSchemaJSON : undefined,
52
+ locale: locale.code
53
+ };
54
+ if (previewWindowType === "popup" && popupRef.current) {
55
+ popupRef.current.postMessage(message, url);
56
+ }
57
+ if (previewWindowType === "iframe" && iframeRef.current) {
58
+ iframeRef.current.contentWindow?.postMessage(message, url);
59
+ }
60
+ }
61
+ };
62
+ $[0] = appIsReady;
63
+ $[1] = fieldSchemaJSON;
64
+ $[2] = formState;
65
+ $[3] = iframeRef;
66
+ $[4] = isLivePreviewing;
67
+ $[5] = locale;
68
+ $[6] = mostRecentUpdate;
69
+ $[7] = popupRef;
70
+ $[8] = previewWindowType;
71
+ $[9] = url;
72
+ $[10] = t0;
73
+ } else {
74
+ t0 = $[10];
75
+ }
76
+ let t1;
77
+ if ($[11] !== appIsReady || $[12] !== fieldSchemaJSON || $[13] !== formState || $[14] !== iframeHasLoaded || $[15] !== iframeRef || $[16] !== isLivePreviewing || $[17] !== locale || $[18] !== mostRecentUpdate || $[19] !== popupRef || $[20] !== previewWindowType || $[21] !== setIframeHasLoaded || $[22] !== url) {
78
+ t1 = [formState, url, iframeHasLoaded, previewWindowType, popupRef, appIsReady, iframeRef, setIframeHasLoaded, fieldSchemaJSON, mostRecentUpdate, locale, isLivePreviewing];
79
+ $[11] = appIsReady;
80
+ $[12] = fieldSchemaJSON;
81
+ $[13] = formState;
82
+ $[14] = iframeHasLoaded;
83
+ $[15] = iframeRef;
84
+ $[16] = isLivePreviewing;
85
+ $[17] = locale;
86
+ $[18] = mostRecentUpdate;
87
+ $[19] = popupRef;
88
+ $[20] = previewWindowType;
89
+ $[21] = setIframeHasLoaded;
90
+ $[22] = url;
91
+ $[23] = t1;
92
+ } else {
93
+ t1 = $[23];
94
+ }
95
+ useEffect(t0, t1);
96
+ let t2;
97
+ if ($[24] !== iframeRef || $[25] !== isLivePreviewing || $[26] !== popupRef || $[27] !== previewWindowType || $[28] !== url) {
98
+ t2 = () => {
99
+ if (!isLivePreviewing) {
100
+ return;
101
+ }
102
+ const message_0 = {
103
+ type: "payload-document-event"
104
+ };
105
+ if (previewWindowType === "popup" && popupRef.current) {
106
+ popupRef.current.postMessage(message_0, url);
107
+ }
108
+ if (previewWindowType === "iframe" && iframeRef.current) {
109
+ iframeRef.current.contentWindow?.postMessage(message_0, url);
110
+ }
111
+ };
112
+ $[24] = iframeRef;
113
+ $[25] = isLivePreviewing;
114
+ $[26] = popupRef;
115
+ $[27] = previewWindowType;
116
+ $[28] = url;
117
+ $[29] = t2;
118
+ } else {
119
+ t2 = $[29];
120
+ }
121
+ let t3;
122
+ if ($[30] !== iframeRef || $[31] !== isLivePreviewing || $[32] !== mostRecentUpdate || $[33] !== popupRef || $[34] !== previewWindowType || $[35] !== url) {
123
+ t3 = [mostRecentUpdate, iframeRef, popupRef, previewWindowType, url, isLivePreviewing];
124
+ $[30] = iframeRef;
125
+ $[31] = isLivePreviewing;
126
+ $[32] = mostRecentUpdate;
127
+ $[33] = popupRef;
128
+ $[34] = previewWindowType;
129
+ $[35] = url;
130
+ $[36] = t3;
131
+ } else {
132
+ t3 = $[36];
133
+ }
134
+ useEffect(t2, t3);
135
+ if (previewWindowType === "iframe") {
136
+ const t4 = isLivePreviewing && `${baseClass}--is-live-previewing`;
137
+ const t5 = breakpoint && breakpoint !== "responsive" && `${baseClass}--has-breakpoint`;
138
+ let t6;
139
+ if ($[37] !== t4 || $[38] !== t5) {
140
+ t6 = [baseClass, t4, t5].filter(Boolean);
141
+ $[37] = t4;
142
+ $[38] = t5;
143
+ $[39] = t6;
144
+ } else {
145
+ t6 = $[39];
146
+ }
147
+ const t7 = t6.join(" ");
148
+ let t8;
149
+ if ($[40] !== iframeRef || $[41] !== props || $[42] !== setIframeHasLoaded || $[43] !== t7 || $[44] !== url) {
150
+ t8 = _jsx("div", {
151
+ className: t7,
152
+ children: _jsxs("div", {
153
+ className: `${baseClass}__wrapper`,
154
+ children: [_jsx(LivePreviewToolbar, {
155
+ ...props
156
+ }), _jsx("div", {
157
+ className: `${baseClass}__main`,
158
+ children: _jsx(DeviceContainer, {
159
+ children: url ? _jsx(IFrame, {
160
+ ref: iframeRef,
161
+ setIframeHasLoaded,
162
+ url
163
+ }) : _jsx(ShimmerEffect, {
164
+ height: "100%"
165
+ })
166
+ })
167
+ })]
168
+ })
169
+ });
170
+ $[40] = iframeRef;
171
+ $[41] = props;
172
+ $[42] = setIframeHasLoaded;
173
+ $[43] = t7;
174
+ $[44] = url;
175
+ $[45] = t8;
176
+ } else {
177
+ t8 = $[45];
178
+ }
179
+ return t8;
180
+ }
181
+ };
182
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","reduceFieldsToValues","React","useEffect","useAllFormFields","useDocumentEvents","useLivePreviewContext","useLocale","ShimmerEffect","DeviceContainer","IFrame","LivePreviewToolbar","baseClass","LivePreviewWindow","props","$","appIsReady","breakpoint","fieldSchemaJSON","iframeHasLoaded","iframeRef","isLivePreviewing","popupRef","previewWindowType","setIframeHasLoaded","url","locale","mostRecentUpdate","prevWindowType","useRef","undefined","formState","t0","window","values","shouldSendSchema","current","message","type","data","externallyUpdatedRelationship","code","postMessage","contentWindow","t1","t2","message_0","t3","t4","t5","t6","filter","Boolean","t7","join","t8","_jsx","className","children","_jsxs","ref","height"],"sources":["../../../../src/elements/LivePreview/Window/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload'\n\nimport { reduceFieldsToValues } from 'payload/shared'\nimport React, { useEffect } from 'react'\n\nimport { useAllFormFields } from '../../../forms/Form/context.js'\nimport { useDocumentEvents } from '../../../providers/DocumentEvents/index.js'\nimport { useLivePreviewContext } from '../../../providers/LivePreview/context.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { ShimmerEffect } from '../../ShimmerEffect/index.js'\nimport { DeviceContainer } from '../Device/index.js'\nimport { IFrame } from '../IFrame/index.js'\nimport { LivePreviewToolbar } from '../Toolbar/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-window'\n\nexport const LivePreviewWindow: React.FC<EditViewProps> = (props) => {\n const {\n appIsReady,\n breakpoint,\n fieldSchemaJSON,\n iframeHasLoaded,\n iframeRef,\n isLivePreviewing,\n popupRef,\n previewWindowType,\n setIframeHasLoaded,\n url,\n } = useLivePreviewContext()\n\n const locale = useLocale()\n\n const { mostRecentUpdate } = useDocumentEvents()\n\n const prevWindowType =\n React.useRef<ReturnType<typeof useLivePreviewContext>['previewWindowType']>(undefined)\n\n const [formState] = useAllFormFields()\n\n // For client-side apps, send data through `window.postMessage`\n // The preview could either be an iframe embedded on the page\n // Or it could be a separate popup window\n // We need to transmit data to both accordingly\n useEffect(() => {\n if (!isLivePreviewing) {\n return\n }\n\n // For performance, do no reduce fields to values until after the iframe or popup has loaded\n if (formState && window && 'postMessage' in window && appIsReady) {\n const values = reduceFieldsToValues(formState, true)\n\n // To reduce on large `postMessage` payloads, only send `fieldSchemaToJSON` one time\n // To do this, the underlying JS function maintains a cache of this value\n // So we need to send it through each time the window type changes\n // But only once per window type change, not on every render, because this is a potentially large obj\n const shouldSendSchema =\n !prevWindowType.current || prevWindowType.current !== previewWindowType\n\n prevWindowType.current = previewWindowType\n\n const message = {\n type: 'payload-live-preview',\n data: values,\n externallyUpdatedRelationship: mostRecentUpdate,\n fieldSchemaJSON: shouldSendSchema ? fieldSchemaJSON : undefined,\n locale: locale.code,\n }\n\n // Post message to external popup window\n if (previewWindowType === 'popup' && popupRef.current) {\n popupRef.current.postMessage(message, url)\n }\n\n // Post message to embedded iframe\n if (previewWindowType === 'iframe' && iframeRef.current) {\n iframeRef.current.contentWindow?.postMessage(message, url)\n }\n }\n }, [\n formState,\n url,\n iframeHasLoaded,\n previewWindowType,\n popupRef,\n appIsReady,\n iframeRef,\n setIframeHasLoaded,\n fieldSchemaJSON,\n mostRecentUpdate,\n locale,\n isLivePreviewing,\n ])\n\n // To support SSR, we transmit a `window.postMessage` event without a payload\n // This is because the event will ultimately trigger a server-side roundtrip\n // i.e., save, save draft, autosave, etc. will fire `router.refresh()`\n useEffect(() => {\n if (!isLivePreviewing) {\n return\n }\n\n const message = {\n type: 'payload-document-event',\n }\n\n // Post message to external popup window\n if (previewWindowType === 'popup' && popupRef.current) {\n popupRef.current.postMessage(message, url)\n }\n\n // Post message to embedded iframe\n if (previewWindowType === 'iframe' && iframeRef.current) {\n iframeRef.current.contentWindow?.postMessage(message, url)\n }\n }, [mostRecentUpdate, iframeRef, popupRef, previewWindowType, url, isLivePreviewing])\n\n if (previewWindowType === 'iframe') {\n return (\n <div\n className={[\n baseClass,\n isLivePreviewing && `${baseClass}--is-live-previewing`,\n breakpoint && breakpoint !== 'responsive' && `${baseClass}--has-breakpoint`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__wrapper`}>\n <LivePreviewToolbar {...props} />\n <div className={`${baseClass}__main`}>\n <DeviceContainer>\n {url ? (\n <IFrame ref={iframeRef} setIframeHasLoaded={setIframeHasLoaded} url={url} />\n ) : (\n <ShimmerEffect height=\"100%\" />\n )}\n </DeviceContainer>\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ @import '../../../scss/styles.scss';
2
+
3
+ @layer payload-default {
4
+ .live-preview-window {
5
+ background-color: var(--theme-bg);
6
+ display: none;
7
+ width: 60%;
8
+ flex-shrink: 0;
9
+ flex-grow: 0;
10
+ position: sticky;
11
+ top: var(--doc-controls-height);
12
+ height: calc(100vh - var(--doc-controls-height));
13
+ overflow: hidden;
14
+
15
+ &--is-live-previewing {
16
+ display: block;
17
+ }
18
+
19
+ &__wrapper {
20
+ display: flex;
21
+ flex-direction: column;
22
+ height: 100%;
23
+ justify-content: flex-start;
24
+ }
25
+
26
+ &__main {
27
+ flex-grow: 1;
28
+ height: 100%;
29
+ width: 100%;
30
+ }
31
+
32
+ &--has-breakpoint {
33
+ .live-preview-iframe {
34
+ border: 1px solid var(--theme-elevation-100);
35
+ }
36
+
37
+ .live-preview-window {
38
+ &__main {
39
+ padding: var(--base);
40
+ }
41
+ }
42
+ }
43
+
44
+ @include mid-break {
45
+ width: 100%;
46
+ }
47
+ }
48
+ }
@@ -1,4 +1,5 @@
1
1
  import type { PreviewButtonClientProps } from 'payload';
2
2
  import React from 'react';
3
+ import './index.scss';
3
4
  export declare function PreviewButton(props: PreviewButtonClientProps): React.JSX.Element;
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PreviewButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAEvD,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,wBAAgB,aAAa,CAAC,KAAK,EAAE,wBAAwB,qBAoB5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PreviewButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAEvD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAIrB,wBAAgB,aAAa,CAAC,KAAK,EAAE,wBAAwB,qBAmB5D"}
@@ -3,8 +3,9 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  import React from 'react';
6
- import { Button } from '../Button/index.js';
6
+ import { ExternalLinkIcon } from '../../icons/ExternalLink/index.js';
7
7
  import { usePreviewURL } from './usePreviewURL.js';
8
+ import './index.scss';
8
9
  const baseClass = 'preview-btn';
9
10
  export function PreviewButton(props) {
10
11
  const $ = _c(5);
@@ -14,9 +15,11 @@ export function PreviewButton(props) {
14
15
  } = usePreviewURL();
15
16
  let t0;
16
17
  if ($[0] !== generatePreviewURL) {
17
- t0 = () => generatePreviewURL({
18
- openPreviewWindow: true
19
- });
18
+ t0 = () => {
19
+ generatePreviewURL({
20
+ openPreviewWindow: true
21
+ });
22
+ };
20
23
  $[0] = generatePreviewURL;
21
24
  $[1] = t0;
22
25
  } else {
@@ -24,14 +27,14 @@ export function PreviewButton(props) {
24
27
  }
25
28
  let t1;
26
29
  if ($[2] !== label || $[3] !== t0) {
27
- t1 = _jsx(Button, {
28
- buttonStyle: "secondary",
30
+ t1 = _jsx("button", {
31
+ "aria-label": label,
29
32
  className: baseClass,
30
- icon: "link",
31
- iconPosition: "left",
33
+ id: "preview-button",
32
34
  onClick: t0,
33
- size: "medium",
34
- children: label
35
+ title: label,
36
+ type: "button",
37
+ children: _jsx(ExternalLinkIcon, {})
35
38
  });
36
39
  $[2] = label;
37
40
  $[3] = t0;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","Button","usePreviewURL","baseClass","PreviewButton","props","$","generatePreviewURL","label","t0","openPreviewWindow","t1","_jsx","buttonStyle","className","icon","iconPosition","onClick","size","children"],"sources":["../../../src/elements/PreviewButton/index.tsx"],"sourcesContent":["'use client'\nimport type { PreviewButtonClientProps } from 'payload'\n\nimport React from 'react'\n\nimport { Button } from '../Button/index.js'\nimport { usePreviewURL } from './usePreviewURL.js'\n\nconst baseClass = 'preview-btn'\n\nexport function PreviewButton(props: PreviewButtonClientProps) {\n const { generatePreviewURL, label } = usePreviewURL()\n\n return (\n <Button\n buttonStyle=\"secondary\"\n className={baseClass}\n icon={'link'}\n iconPosition=\"left\"\n // disabled={disabled}\n onClick={() =>\n generatePreviewURL({\n openPreviewWindow: true,\n })\n }\n size=\"medium\"\n >\n {label}\n </Button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,MAAM,QAAQ;AACvB,SAASC,aAAa,QAAQ;AAE9B,MAAMC,SAAA,GAAY;AAElB,OAAO,SAAAC,cAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EACL;IAAAQ,kBAAA;IAAAC;EAAA,IAAsCN,aAAA;EAAA,IAAAO,EAAA;EAAA,IAAAH,CAAA,QAAAC,kBAAA;IASzBE,EAAA,GAAAA,CAAA,KACPF,kBAAA;MAAAG,iBAAA;IAAA,CAEA;IAAAJ,CAAA,MAAAC,kBAAA;IAAAD,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,IAAAK,EAAA;EAAA,IAAAL,CAAA,QAAAE,KAAA,IAAAF,CAAA,QAAAG,EAAA;IATJE,EAAA,GAAAC,IAAA,CAAAX,MAAA;MAAAY,WAAA,EACc;MAAAC,SAAA,EAAAX,SAAA;MAAAY,IAAA,EAEN;MAAAC,YAAA,EACO;MAAAC,OAAA,EAEJR,EAGP;MAAAS,IAAA,EAEG;MAAAC,QAAA,EAEJX;IAAA,C;;;;;;;SAbHG,E","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","ExternalLinkIcon","usePreviewURL","baseClass","PreviewButton","props","$","generatePreviewURL","label","t0","openPreviewWindow","t1","_jsx","className","id","onClick","title","type","children"],"sources":["../../../src/elements/PreviewButton/index.tsx"],"sourcesContent":["'use client'\nimport type { PreviewButtonClientProps } from 'payload'\n\nimport React from 'react'\n\nimport { ExternalLinkIcon } from '../../icons/ExternalLink/index.js'\nimport { usePreviewURL } from './usePreviewURL.js'\nimport './index.scss'\n\nconst baseClass = 'preview-btn'\n\nexport function PreviewButton(props: PreviewButtonClientProps) {\n const { generatePreviewURL, label } = usePreviewURL()\n\n return (\n <button\n aria-label={label}\n className={baseClass}\n id=\"preview-button\"\n onClick={() => {\n generatePreviewURL({\n openPreviewWindow: true,\n })\n }}\n title={label}\n type=\"button\"\n >\n <ExternalLinkIcon />\n </button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,SAAAC,cAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EACL;IAAAQ,kBAAA;IAAAC;EAAA,IAAsCN,aAAA;EAAA,IAAAO,EAAA;EAAA,IAAAH,CAAA,QAAAC,kBAAA;IAOzBE,EAAA,GAAAA,CAAA;MACPF,kBAAA;QAAAG,iBAAA;MAAA,CAEA;IAAA;IACFJ,CAAA,MAAAC,kBAAA;IAAAD,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,IAAAK,EAAA;EAAA,IAAAL,CAAA,QAAAE,KAAA,IAAAF,CAAA,QAAAG,EAAA;IARFE,EAAA,GAAAC,IAAA,CAAC;MAAA,cACaJ,KAAA;MAAAK,SAAA,EAAAV,SAAA;MAAAW,EAAA,EAET;MAAAC,OAAA,EACMN,EAIT;MAAAO,KAAA,EACOR,KAAA;MAAAS,IAAA,EACF;MAAAC,QAAA,EAELN,IAAA,CAAAX,gBAAA,IAAC;IAAA,C;;;;;;;SAZHU,E","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ @import '../../scss/styles.scss';
2
+
3
+ @layer payload-default {
4
+ .preview-btn {
5
+ background: none;
6
+ border: none;
7
+ border: 1px solid;
8
+ border-color: var(--theme-elevation-100);
9
+ border-radius: var(--style-radius-s);
10
+ line-height: var(--btn-line-height);
11
+ font-size: var(--base-body-size);
12
+ padding: calc(var(--base) * 0.2) calc(var(--base) * 0.4);
13
+ cursor: pointer;
14
+ transition-property: border, color, background;
15
+ transition-duration: 100ms;
16
+ transition-timing-function: cubic-bezier(0, 0.2, 0.2, 1);
17
+ height: calc(var(--base) * 1.6);
18
+ width: calc(var(--base) * 1.6);
19
+ position: relative;
20
+
21
+ .icon {
22
+ position: absolute;
23
+ top: 50%;
24
+ left: 50%;
25
+ transform: translate(-50%, -50%);
26
+
27
+ .stroke {
28
+ transition-property: stroke;
29
+ transition-duration: 100ms;
30
+ transition-timing-function: cubic-bezier(0, 0.2, 0.2, 1);
31
+ }
32
+ }
33
+
34
+ &:hover {
35
+ border-color: var(--theme-elevation-300);
36
+ background-color: var(--theme-elevation-100);
37
+ }
38
+ }
39
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"usePreviewURL.d.ts","sourceRoot":"","sources":["../../../src/elements/PreviewButton/usePreviewURL.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa,QAAO;IAC/B,kBAAkB,EAAE,CAAC,EAAE,iBAAiB,EAAE,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACpF,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CA8EnB,CAAA"}
1
+ {"version":3,"file":"usePreviewURL.d.ts","sourceRoot":"","sources":["../../../src/elements/PreviewButton/usePreviewURL.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa,QAAO;IAC/B,kBAAkB,EAAE,CAAC,EAAE,iBAAiB,EAAE,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACpF,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CAqFnB,CAAA"}
@@ -69,7 +69,7 @@ export const usePreviewURL = () => {
69
69
  if (openPreviewWindow) {
70
70
  window.open(newPreviewURL, '_blank');
71
71
  }
72
- } catch (err) {
72
+ } catch (_err) {
73
73
  setIsLoading(false);
74
74
  isGeneratingPreviewURL.current = false;
75
75
  toast.error(t('error:previewing'));
@@ -1 +1 @@
1
- {"version":3,"file":"usePreviewURL.js","names":["qs","useCallback","useRef","useState","toast","useConfig","useDocumentInfo","useLocale","useTranslation","usePreviewURL","id","collectionSlug","globalSlug","versionCount","isLoading","setIsLoading","previewURL","setPreviewURL","code","locale","hasVersions","config","routes","api","serverURL","t","isGeneratingPreviewURL","generatePreviewURL","openPreviewWindow","current","url","params","draft","undefined","res","fetch","stringify","ok","Error","newPreviewURL","json","window","open","err","error","label"],"sources":["../../../src/elements/PreviewButton/usePreviewURL.tsx"],"sourcesContent":["'use client'\nimport * as qs from 'qs-esm'\nimport { useCallback, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nexport const usePreviewURL = (): {\n generatePreviewURL: ({ openPreviewWindow }: { openPreviewWindow?: boolean }) => void\n isLoading: boolean\n label: string\n previewURL: string\n} => {\n const { id, collectionSlug, globalSlug, versionCount } = useDocumentInfo()\n\n const [isLoading, setIsLoading] = useState(false)\n const [previewURL, setPreviewURL] = useState('')\n const { code: locale } = useLocale()\n\n const hasVersions = versionCount > 0\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { t } = useTranslation()\n\n const isGeneratingPreviewURL = useRef(false)\n\n // we need to regenerate the preview URL every time the button is clicked\n // to do this we need to fetch the document data fresh from the API\n // this will ensure the latest data is used when generating the preview URL\n const generatePreviewURL = useCallback(\n async ({ openPreviewWindow = false }) => {\n if (isGeneratingPreviewURL.current) {\n return\n }\n isGeneratingPreviewURL.current = true\n\n try {\n setIsLoading(true)\n\n let url = `${serverURL}${api}`\n if (collectionSlug) {\n url = `${url}/${collectionSlug}/${id}/preview`\n }\n if (globalSlug) {\n url = `${url}/globals/${globalSlug}/preview`\n }\n\n const params = {\n draft: hasVersions ? 'true' : 'false',\n locale: locale || undefined,\n }\n\n const res = await fetch(`${url}?${qs.stringify(params)}`)\n\n if (!res.ok) {\n throw new Error()\n }\n const newPreviewURL = await res.json()\n if (!newPreviewURL) {\n throw new Error()\n }\n setPreviewURL(newPreviewURL)\n setIsLoading(false)\n isGeneratingPreviewURL.current = false\n if (openPreviewWindow) {\n window.open(newPreviewURL, '_blank')\n }\n } catch (err) {\n setIsLoading(false)\n isGeneratingPreviewURL.current = false\n toast.error(t('error:previewing'))\n }\n },\n [serverURL, api, collectionSlug, globalSlug, hasVersions, locale, id, t],\n )\n\n return {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n generatePreviewURL,\n isLoading,\n label: isLoading ? t('general:loading') : t('version:preview'),\n previewURL,\n }\n}\n"],"mappings":"AAAA;;AACA,YAAYA,EAAA,MAAQ;AACpB,SAASC,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAC9C,SAASC,KAAK,QAAQ;AAEtB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,aAAA,GAAgBA,CAAA;EAM3B,MAAM;IAAEC,EAAE;IAAEC,cAAc;IAAEC,UAAU;IAAEC;EAAY,CAAE,GAAGP,eAAA;EAEzD,MAAM,CAACQ,SAAA,EAAWC,YAAA,CAAa,GAAGZ,QAAA,CAAS;EAC3C,MAAM,CAACa,UAAA,EAAYC,aAAA,CAAc,GAAGd,QAAA,CAAS;EAC7C,MAAM;IAAEe,IAAA,EAAMC;EAAM,CAAE,GAAGZ,SAAA;EAEzB,MAAMa,WAAA,GAAcP,YAAA,GAAe;EAEnC,MAAM;IACJQ,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS;EACV,CACF,GAAGnB,SAAA;EAEJ,MAAM;IAAEoB;EAAC,CAAE,GAAGjB,cAAA;EAEd,MAAMkB,sBAAA,GAAyBxB,MAAA,CAAO;EAEtC;EACA;EACA;EACA,MAAMyB,kBAAA,GAAqB1B,WAAA,CACzB,OAAO;IAAE2B,iBAAA,GAAoB;EAAK,CAAE;IAClC,IAAIF,sBAAA,CAAuBG,OAAO,EAAE;MAClC;IACF;IACAH,sBAAA,CAAuBG,OAAO,GAAG;IAEjC,IAAI;MACFd,YAAA,CAAa;MAEb,IAAIe,GAAA,GAAM,GAAGN,SAAA,GAAYD,GAAA,EAAK;MAC9B,IAAIZ,cAAA,EAAgB;QAClBmB,GAAA,GAAM,GAAGA,GAAA,IAAOnB,cAAA,IAAkBD,EAAA,UAAY;MAChD;MACA,IAAIE,UAAA,EAAY;QACdkB,GAAA,GAAM,GAAGA,GAAA,YAAelB,UAAA,UAAoB;MAC9C;MAEA,MAAMmB,MAAA,GAAS;QACbC,KAAA,EAAOZ,WAAA,GAAc,SAAS;QAC9BD,MAAA,EAAQA,MAAA,IAAUc;MACpB;MAEA,MAAMC,GAAA,GAAM,MAAMC,KAAA,CAAM,GAAGL,GAAA,IAAO9B,EAAA,CAAGoC,SAAS,CAACL,MAAA,GAAS;MAExD,IAAI,CAACG,GAAA,CAAIG,EAAE,EAAE;QACX,MAAM,IAAIC,KAAA;MACZ;MACA,MAAMC,aAAA,GAAgB,MAAML,GAAA,CAAIM,IAAI;MACpC,IAAI,CAACD,aAAA,EAAe;QAClB,MAAM,IAAID,KAAA;MACZ;MACArB,aAAA,CAAcsB,aAAA;MACdxB,YAAA,CAAa;MACbW,sBAAA,CAAuBG,OAAO,GAAG;MACjC,IAAID,iBAAA,EAAmB;QACrBa,MAAA,CAAOC,IAAI,CAACH,aAAA,EAAe;MAC7B;IACF,EAAE,OAAOI,GAAA,EAAK;MACZ5B,YAAA,CAAa;MACbW,sBAAA,CAAuBG,OAAO,GAAG;MACjCzB,KAAA,CAAMwC,KAAK,CAACnB,CAAA,CAAE;IAChB;EACF,GACA,CAACD,SAAA,EAAWD,GAAA,EAAKZ,cAAA,EAAgBC,UAAA,EAAYQ,WAAA,EAAaD,MAAA,EAAQT,EAAA,EAAIe,CAAA,CAAE;EAG1E,OAAO;IACL;IACAE,kBAAA;IACAb,SAAA;IACA+B,KAAA,EAAO/B,SAAA,GAAYW,CAAA,CAAE,qBAAqBA,CAAA,CAAE;IAC5CT;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"usePreviewURL.js","names":["qs","useCallback","useRef","useState","toast","useConfig","useDocumentInfo","useLocale","useTranslation","usePreviewURL","id","collectionSlug","globalSlug","versionCount","isLoading","setIsLoading","previewURL","setPreviewURL","code","locale","hasVersions","config","routes","api","serverURL","t","isGeneratingPreviewURL","generatePreviewURL","openPreviewWindow","current","url","params","draft","undefined","res","fetch","stringify","ok","Error","newPreviewURL","json","window","open","_err","error","label"],"sources":["../../../src/elements/PreviewButton/usePreviewURL.tsx"],"sourcesContent":["'use client'\nimport * as qs from 'qs-esm'\nimport { useCallback, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nexport const usePreviewURL = (): {\n generatePreviewURL: ({ openPreviewWindow }: { openPreviewWindow?: boolean }) => void\n isLoading: boolean\n label: string\n previewURL: string\n} => {\n const { id, collectionSlug, globalSlug, versionCount } = useDocumentInfo()\n\n const [isLoading, setIsLoading] = useState(false)\n const [previewURL, setPreviewURL] = useState('')\n const { code: locale } = useLocale()\n\n const hasVersions = versionCount > 0\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { t } = useTranslation()\n\n const isGeneratingPreviewURL = useRef(false)\n\n // we need to regenerate the preview URL every time the button is clicked\n // to do this we need to fetch the document data fresh from the API\n // this will ensure the latest data is used when generating the preview URL\n const generatePreviewURL = useCallback(\n async ({ openPreviewWindow = false }) => {\n if (isGeneratingPreviewURL.current) {\n return\n }\n\n isGeneratingPreviewURL.current = true\n\n try {\n setIsLoading(true)\n\n let url = `${serverURL}${api}`\n\n if (collectionSlug) {\n url = `${url}/${collectionSlug}/${id}/preview`\n }\n\n if (globalSlug) {\n url = `${url}/globals/${globalSlug}/preview`\n }\n\n const params = {\n draft: hasVersions ? 'true' : 'false',\n locale: locale || undefined,\n }\n\n const res = await fetch(`${url}?${qs.stringify(params)}`)\n\n if (!res.ok) {\n throw new Error()\n }\n\n const newPreviewURL = await res.json()\n\n if (!newPreviewURL) {\n throw new Error()\n }\n\n setPreviewURL(newPreviewURL)\n setIsLoading(false)\n isGeneratingPreviewURL.current = false\n\n if (openPreviewWindow) {\n window.open(newPreviewURL, '_blank')\n }\n } catch (_err) {\n setIsLoading(false)\n isGeneratingPreviewURL.current = false\n toast.error(t('error:previewing'))\n }\n },\n [serverURL, api, collectionSlug, globalSlug, hasVersions, locale, id, t],\n )\n\n return {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n generatePreviewURL,\n isLoading,\n label: isLoading ? t('general:loading') : t('version:preview'),\n previewURL,\n }\n}\n"],"mappings":"AAAA;;AACA,YAAYA,EAAA,MAAQ;AACpB,SAASC,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAC9C,SAASC,KAAK,QAAQ;AAEtB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,aAAA,GAAgBA,CAAA;EAM3B,MAAM;IAAEC,EAAE;IAAEC,cAAc;IAAEC,UAAU;IAAEC;EAAY,CAAE,GAAGP,eAAA;EAEzD,MAAM,CAACQ,SAAA,EAAWC,YAAA,CAAa,GAAGZ,QAAA,CAAS;EAC3C,MAAM,CAACa,UAAA,EAAYC,aAAA,CAAc,GAAGd,QAAA,CAAS;EAC7C,MAAM;IAAEe,IAAA,EAAMC;EAAM,CAAE,GAAGZ,SAAA;EAEzB,MAAMa,WAAA,GAAcP,YAAA,GAAe;EAEnC,MAAM;IACJQ,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS;EACV,CACF,GAAGnB,SAAA;EAEJ,MAAM;IAAEoB;EAAC,CAAE,GAAGjB,cAAA;EAEd,MAAMkB,sBAAA,GAAyBxB,MAAA,CAAO;EAEtC;EACA;EACA;EACA,MAAMyB,kBAAA,GAAqB1B,WAAA,CACzB,OAAO;IAAE2B,iBAAA,GAAoB;EAAK,CAAE;IAClC,IAAIF,sBAAA,CAAuBG,OAAO,EAAE;MAClC;IACF;IAEAH,sBAAA,CAAuBG,OAAO,GAAG;IAEjC,IAAI;MACFd,YAAA,CAAa;MAEb,IAAIe,GAAA,GAAM,GAAGN,SAAA,GAAYD,GAAA,EAAK;MAE9B,IAAIZ,cAAA,EAAgB;QAClBmB,GAAA,GAAM,GAAGA,GAAA,IAAOnB,cAAA,IAAkBD,EAAA,UAAY;MAChD;MAEA,IAAIE,UAAA,EAAY;QACdkB,GAAA,GAAM,GAAGA,GAAA,YAAelB,UAAA,UAAoB;MAC9C;MAEA,MAAMmB,MAAA,GAAS;QACbC,KAAA,EAAOZ,WAAA,GAAc,SAAS;QAC9BD,MAAA,EAAQA,MAAA,IAAUc;MACpB;MAEA,MAAMC,GAAA,GAAM,MAAMC,KAAA,CAAM,GAAGL,GAAA,IAAO9B,EAAA,CAAGoC,SAAS,CAACL,MAAA,GAAS;MAExD,IAAI,CAACG,GAAA,CAAIG,EAAE,EAAE;QACX,MAAM,IAAIC,KAAA;MACZ;MAEA,MAAMC,aAAA,GAAgB,MAAML,GAAA,CAAIM,IAAI;MAEpC,IAAI,CAACD,aAAA,EAAe;QAClB,MAAM,IAAID,KAAA;MACZ;MAEArB,aAAA,CAAcsB,aAAA;MACdxB,YAAA,CAAa;MACbW,sBAAA,CAAuBG,OAAO,GAAG;MAEjC,IAAID,iBAAA,EAAmB;QACrBa,MAAA,CAAOC,IAAI,CAACH,aAAA,EAAe;MAC7B;IACF,EAAE,OAAOI,IAAA,EAAM;MACb5B,YAAA,CAAa;MACbW,sBAAA,CAAuBG,OAAO,GAAG;MACjCzB,KAAA,CAAMwC,KAAK,CAACnB,CAAA,CAAE;IAChB;EACF,GACA,CAACD,SAAA,EAAWD,GAAA,EAAKZ,cAAA,EAAgBC,UAAA,EAAYQ,WAAA,EAAaD,MAAA,EAAQT,EAAA,EAAIe,CAAA,CAAE;EAG1E,OAAO;IACL;IACAE,kBAAA;IACAb,SAAA;IACA+B,KAAA,EAAO/B,SAAA,GAAYW,CAAA,CAAE,qBAAqBA,CAAA,CAAE;IAC5CT;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import type { I18nClient } from '@payloadcms/translations';
2
+ import type { ClientCollectionConfig, SanitizedPermissions } from 'payload';
3
+ import type { Props as ButtonProps } from '../../elements/Button/types.js';
4
+ export declare const AddNewButton: ({ allowCreate, baseClass, buttonStyle, className, collections, i18n, icon, label, onClick, permissions, relationTo, }: {
5
+ allowCreate: boolean;
6
+ baseClass: string;
7
+ buttonStyle?: ButtonProps["buttonStyle"];
8
+ className?: string;
9
+ collections: ClientCollectionConfig[];
10
+ i18n: I18nClient;
11
+ icon?: ButtonProps["icon"];
12
+ label: string;
13
+ onClick: (selectedCollection?: string) => void;
14
+ permissions: SanitizedPermissions;
15
+ relationTo: string | string[];
16
+ }) => import("react").JSX.Element;
17
+ //# sourceMappingURL=AddNewButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddNewButton.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/AddNewButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAI3E,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAK1E,eAAO,MAAM,YAAY,0HAYtB;IACD,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;IACxC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,sBAAsB,EAAE,CAAA;IACrC,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,WAAW,EAAE,oBAAoB,CAAA;IACjC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC9B,gCAsDA,CAAA"}
@@ -0,0 +1,64 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { getTranslation } from '@payloadcms/translations';
5
+ import { Button } from '../../elements/Button/index.js';
6
+ import { Popup, PopupList } from '../Popup/index.js';
7
+ export const AddNewButton = ({
8
+ allowCreate,
9
+ baseClass,
10
+ buttonStyle,
11
+ className,
12
+ collections,
13
+ i18n,
14
+ icon,
15
+ label,
16
+ onClick,
17
+ permissions,
18
+ relationTo
19
+ }) => {
20
+ if (!allowCreate) {
21
+ return null;
22
+ }
23
+ const isPolymorphic = Array.isArray(relationTo);
24
+ if (!isPolymorphic) {
25
+ return /*#__PURE__*/_jsx(Button, {
26
+ buttonStyle: buttonStyle,
27
+ className: className,
28
+ onClick: () => onClick(),
29
+ children: label
30
+ });
31
+ }
32
+ return /*#__PURE__*/_jsx("div", {
33
+ className: `${baseClass}__add-new-polymorphic-wrapper`,
34
+ children: /*#__PURE__*/_jsx(Popup, {
35
+ button: /*#__PURE__*/_jsx(Button, {
36
+ buttonStyle: buttonStyle,
37
+ className: className,
38
+ icon: icon,
39
+ children: label
40
+ }),
41
+ buttonType: "custom",
42
+ horizontalAlign: "center",
43
+ render: ({
44
+ close: closePopup
45
+ }) => /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
46
+ children: relationTo.map(relatedCollection => {
47
+ if (permissions.collections[relatedCollection]?.create) {
48
+ return /*#__PURE__*/_jsx(PopupList.Button, {
49
+ className: `${baseClass}__relation-button--${relatedCollection}`,
50
+ onClick: () => {
51
+ closePopup();
52
+ onClick(relatedCollection);
53
+ },
54
+ children: getTranslation(collections.find(each => each.slug === relatedCollection).labels.singular, i18n)
55
+ }, relatedCollection);
56
+ }
57
+ return null;
58
+ })
59
+ }),
60
+ size: "medium"
61
+ })
62
+ });
63
+ };
64
+ //# sourceMappingURL=AddNewButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddNewButton.js","names":["getTranslation","Button","Popup","PopupList","AddNewButton","allowCreate","baseClass","buttonStyle","className","collections","i18n","icon","label","onClick","permissions","relationTo","isPolymorphic","Array","isArray","_jsx","button","buttonType","horizontalAlign","render","close","closePopup","ButtonGroup","map","relatedCollection","create","find","each","slug","labels","singular","size"],"sources":["../../../src/elements/RelationshipTable/AddNewButton.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { ClientCollectionConfig, SanitizedPermissions } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { Props as ButtonProps } from '../../elements/Button/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\n\nexport const AddNewButton = ({\n allowCreate,\n baseClass,\n buttonStyle,\n className,\n collections,\n i18n,\n icon,\n label,\n onClick,\n permissions,\n relationTo,\n}: {\n allowCreate: boolean\n baseClass: string\n buttonStyle?: ButtonProps['buttonStyle']\n className?: string\n collections: ClientCollectionConfig[]\n i18n: I18nClient\n icon?: ButtonProps['icon']\n label: string\n onClick: (selectedCollection?: string) => void\n permissions: SanitizedPermissions\n relationTo: string | string[]\n}) => {\n if (!allowCreate) {\n return null\n }\n\n const isPolymorphic = Array.isArray(relationTo)\n\n if (!isPolymorphic) {\n return (\n <Button buttonStyle={buttonStyle} className={className} onClick={() => onClick()}>\n {label}\n </Button>\n )\n }\n\n return (\n <div className={`${baseClass}__add-new-polymorphic-wrapper`}>\n <Popup\n button={\n <Button buttonStyle={buttonStyle} className={className} icon={icon}>\n {label}\n </Button>\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relationTo.map((relatedCollection) => {\n if (permissions.collections[relatedCollection]?.create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection}`}\n key={relatedCollection}\n onClick={() => {\n closePopup()\n onClick(relatedCollection)\n }}\n >\n {getTranslation(\n collections.find((each) => each.slug === relatedCollection).labels.singular,\n i18n,\n )}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,cAAc,QAAQ;AAI/B,SAASC,MAAM,QAAQ;AACvB,SAASC,KAAK,EAAEC,SAAS,QAAQ;AAEjC,OAAO,MAAMC,YAAA,GAAeA,CAAC;EAC3BC,WAAW;EACXC,SAAS;EACTC,WAAW;EACXC,SAAS;EACTC,WAAW;EACXC,IAAI;EACJC,IAAI;EACJC,KAAK;EACLC,OAAO;EACPC,WAAW;EACXC;AAAU,CAaX;EACC,IAAI,CAACV,WAAA,EAAa;IAChB,OAAO;EACT;EAEA,MAAMW,aAAA,GAAgBC,KAAA,CAAMC,OAAO,CAACH,UAAA;EAEpC,IAAI,CAACC,aAAA,EAAe;IAClB,oBACEG,IAAA,CAAClB,MAAA;MAAOM,WAAA,EAAaA,WAAA;MAAaC,SAAA,EAAWA,SAAA;MAAWK,OAAA,EAASA,CAAA,KAAMA,OAAA;gBACpED;;EAGP;EAEA,oBACEO,IAAA,CAAC;IAAIX,SAAA,EAAW,GAAGF,SAAA,+BAAwC;cACzD,aAAAa,IAAA,CAACjB,KAAA;MACCkB,MAAA,eACED,IAAA,CAAClB,MAAA;QAAOM,WAAA,EAAaA,WAAA;QAAaC,SAAA,EAAWA,SAAA;QAAWG,IAAA,EAAMA,IAAA;kBAC3DC;;MAGLS,UAAA,EAAW;MACXC,eAAA,EAAgB;MAChBC,MAAA,EAAQA,CAAC;QAAEC,KAAA,EAAOC;MAAU,CAAE,kBAC5BN,IAAA,CAAChB,SAAA,CAAUuB,WAAW;kBACnBX,UAAA,CAAWY,GAAG,CAAEC,iBAAA;UACf,IAAId,WAAA,CAAYL,WAAW,CAACmB,iBAAA,CAAkB,EAAEC,MAAA,EAAQ;YACtD,oBACEV,IAAA,CAAChB,SAAA,CAAUF,MAAM;cACfO,SAAA,EAAW,GAAGF,SAAA,sBAA+BsB,iBAAA,EAAmB;cAEhEf,OAAA,EAASA,CAAA;gBACPY,UAAA;gBACAZ,OAAA,CAAQe,iBAAA;cACV;wBAEC5B,cAAA,CACCS,WAAA,CAAYqB,IAAI,CAAEC,IAAA,IAASA,IAAA,CAAKC,IAAI,KAAKJ,iBAAA,EAAmBK,MAAM,CAACC,QAAQ,EAC3ExB,IAAA;eARGkB,iBAAA;UAYX;UAEA,OAAO;QACT;;MAGJO,IAAA,EAAK;;;AAIb","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAClB,KAAK,KAAK,EACX,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAqD,MAAM,OAAO,CAAA;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAoBrE,OAAO,cAAc,CAAA;AAIrB,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,cAAc,EAAE,cAAc,CAAA;QAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAoUvE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAClB,KAAK,KAAK,EACX,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAqD,MAAM,OAAO,CAAA;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAiBrE,OAAO,cAAc,CAAA;AAKrB,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,cAAc,EAAE,cAAc,CAAA;QAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CA0SvE,CAAA"}