@payloadcms/ui 4.0.0-canary.16 → 4.0.0-canary.18

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 (153) hide show
  1. package/dist/css/app.css +121 -0
  2. package/dist/css/forms.css +0 -6
  3. package/dist/css/spacing.css +10 -3
  4. package/dist/css/z-index.css +1 -0
  5. package/dist/elements/AddNewRelation/index.css +0 -1
  6. package/dist/elements/AppHeader/index.css +0 -3
  7. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  8. package/dist/elements/AppHeader/index.js +5 -1
  9. package/dist/elements/AppHeader/index.js.map +1 -1
  10. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
  11. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  12. package/dist/elements/CodeEditor/index.css +0 -5
  13. package/dist/elements/CommandPalette/index.css +0 -7
  14. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  15. package/dist/elements/DatePicker/DatePicker.js +1 -0
  16. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  17. package/dist/elements/DatePicker/index.css +1 -1
  18. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  19. package/dist/elements/DeleteDocument/index.js +16 -1
  20. package/dist/elements/DeleteDocument/index.js.map +1 -1
  21. package/dist/elements/EditMany/DrawerContent.js +2 -2
  22. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  23. package/dist/elements/FileDetails/StaticFileDetails/index.css +8 -9
  24. package/dist/elements/FileManager/index.js +1 -0
  25. package/dist/elements/FileManager/index.js.map +1 -1
  26. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +0 -1
  27. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +0 -1
  28. package/dist/elements/InputStepper/index.css +0 -1
  29. package/dist/elements/Locked/index.css +0 -8
  30. package/dist/elements/Locked/index.d.ts.map +1 -1
  31. package/dist/elements/Locked/index.js +70 -64
  32. package/dist/elements/Locked/index.js.map +1 -1
  33. package/dist/elements/Nav/SidebarTabs/index.css +0 -5
  34. package/dist/elements/NavGroup/index.css +0 -1
  35. package/dist/elements/PreviewButton/index.d.ts +1 -2
  36. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  37. package/dist/elements/PreviewButton/index.js +11 -5
  38. package/dist/elements/PreviewButton/index.js.map +1 -1
  39. package/dist/elements/PreviewSizes/index.css +8 -9
  40. package/dist/elements/ReactSelect/ClearIndicator/index.css +0 -1
  41. package/dist/elements/ReactSelect/MultiValue/index.css +0 -1
  42. package/dist/elements/ReactSelect/index.css +0 -3
  43. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  44. package/dist/elements/RelationshipTable/index.js +32 -0
  45. package/dist/elements/RelationshipTable/index.js.map +1 -1
  46. package/dist/elements/SelectRow/index.d.ts +4 -3
  47. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  48. package/dist/elements/SelectRow/index.js +10 -7
  49. package/dist/elements/SelectRow/index.js.map +1 -1
  50. package/dist/elements/SidebarToggle/index.css +0 -17
  51. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  52. package/dist/elements/SortColumn/index.js +42 -38
  53. package/dist/elements/SortColumn/index.js.map +1 -1
  54. package/dist/elements/Tooltip/index.css +15 -34
  55. package/dist/elements/Tooltip/index.d.ts +11 -3
  56. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  57. package/dist/elements/Tooltip/index.js +151 -85
  58. package/dist/elements/Tooltip/index.js.map +1 -1
  59. package/dist/elements/Upload/index.css +0 -5
  60. package/dist/exports/client/index.d.ts +3 -0
  61. package/dist/exports/client/index.d.ts.map +1 -1
  62. package/dist/exports/client/index.js +1 -1
  63. package/dist/exports/client/index.js.map +3 -3
  64. package/dist/fields/Checkbox/Input.d.ts +2 -0
  65. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  66. package/dist/fields/Checkbox/Input.js +32 -26
  67. package/dist/fields/Checkbox/Input.js.map +1 -1
  68. package/dist/fields/Checkbox/index.css +37 -73
  69. package/dist/fields/FieldError/index.css +0 -9
  70. package/dist/fields/FieldError/index.d.ts.map +1 -1
  71. package/dist/fields/FieldError/index.js +19 -9
  72. package/dist/fields/FieldError/index.js.map +1 -1
  73. package/dist/fields/RadioGroup/index.css +0 -7
  74. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  75. package/dist/fields/Relationship/Input.js +32 -14
  76. package/dist/fields/Relationship/Input.js.map +1 -1
  77. package/dist/fields/Slug/index.css +0 -1
  78. package/dist/fields/Slug/index.d.ts.map +1 -1
  79. package/dist/fields/Slug/index.js +80 -125
  80. package/dist/fields/Slug/index.js.map +1 -1
  81. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  82. package/dist/forms/Form/fieldReducer.js +3 -1
  83. package/dist/forms/Form/fieldReducer.js.map +1 -1
  84. package/dist/forms/Form/index.d.ts.map +1 -1
  85. package/dist/forms/Form/index.js +6 -1
  86. package/dist/forms/Form/index.js.map +1 -1
  87. package/dist/forms/Form/types.d.ts +1 -1
  88. package/dist/forms/Form/types.d.ts.map +1 -1
  89. package/dist/forms/Form/types.js.map +1 -1
  90. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  91. package/dist/forms/WatchChildErrors/index.js +2 -2
  92. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  93. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -1
  94. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  95. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  96. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -3
  97. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  98. package/dist/layouts/Root/index.d.ts +1 -1
  99. package/dist/layouts/Root/index.d.ts.map +1 -1
  100. package/dist/layouts/Root/index.js +8 -2
  101. package/dist/layouts/Root/index.js.map +1 -1
  102. package/dist/providers/Embed/index.d.ts +24 -0
  103. package/dist/providers/Embed/index.d.ts.map +1 -0
  104. package/dist/providers/Embed/index.js +105 -0
  105. package/dist/providers/Embed/index.js.map +1 -0
  106. package/dist/providers/FormErrorHandler/index.d.ts +20 -0
  107. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
  108. package/dist/providers/FormErrorHandler/index.js +6 -0
  109. package/dist/providers/FormErrorHandler/index.js.map +1 -0
  110. package/dist/providers/Root/index.d.ts +1 -0
  111. package/dist/providers/Root/index.d.ts.map +1 -1
  112. package/dist/providers/Root/index.js +33 -27
  113. package/dist/providers/Root/index.js.map +1 -1
  114. package/dist/providers/Theme/index.d.ts +3 -0
  115. package/dist/providers/Theme/index.d.ts.map +1 -1
  116. package/dist/providers/Theme/index.js +107 -95
  117. package/dist/providers/Theme/index.js.map +1 -1
  118. package/dist/styles.css +12 -10
  119. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  120. package/dist/utilities/combineFieldLabel.js +5 -1
  121. package/dist/utilities/combineFieldLabel.js.map +1 -1
  122. package/dist/utilities/generateFieldID.d.ts +1 -1
  123. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  124. package/dist/utilities/generateFieldID.js +2 -2
  125. package/dist/utilities/generateFieldID.js.map +1 -1
  126. package/dist/utilities/getRequestEmbed.d.ts +14 -0
  127. package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
  128. package/dist/utilities/getRequestEmbed.js +10 -0
  129. package/dist/utilities/getRequestEmbed.js.map +1 -0
  130. package/dist/utilities/renderTable.d.ts.map +1 -1
  131. package/dist/utilities/renderTable.js +18 -2
  132. package/dist/utilities/renderTable.js.map +1 -1
  133. package/dist/utilities/slugify.d.ts.map +1 -1
  134. package/dist/utilities/slugify.js +49 -6
  135. package/dist/utilities/slugify.js.map +1 -1
  136. package/dist/views/Dashboard/Default/ModularDashboard/index.css +0 -8
  137. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
  138. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  139. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +10 -10
  140. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  141. package/dist/views/List/index.d.ts.map +1 -1
  142. package/dist/views/List/index.js +4 -0
  143. package/dist/views/List/index.js.map +1 -1
  144. package/package.json +5 -10
  145. package/dist/scss/app.scss +0 -183
  146. package/dist/scss/colors.scss +0 -191
  147. package/dist/scss/custom.css +0 -1
  148. package/dist/scss/queries.scss +0 -27
  149. package/dist/scss/styles.scss +0 -9
  150. package/dist/scss/svg.scss +0 -10
  151. package/dist/scss/toastify.scss +0 -61
  152. package/dist/scss/vars.scss +0 -192
  153. package/dist/scss/z-index.scss +0 -9
@@ -1,15 +1,6 @@
1
1
  @layer payload-default {
2
2
  .checkbox {
3
3
  position: relative;
4
-
5
- .tooltip:not([aria-hidden='true']) {
6
- left: auto;
7
- right: calc(-1 * var(--spacer-2));
8
- position: absolute;
9
- transform: translateY(calc(var(--caret-size) * -1));
10
- margin-bottom: 0.2em;
11
- max-width: fit-content;
12
- }
13
4
  }
14
5
 
15
6
  .checkbox-input {
@@ -159,7 +150,6 @@
159
150
 
160
151
  /* Allow Wrap */
161
152
  .checkbox-input__tooltip {
162
- --tooltip-x: 0;
163
153
  left: 0;
164
154
  width: max-content;
165
155
  max-width: 280px;
@@ -178,83 +168,57 @@
178
168
  transform: translateX(-50%) rotate(180deg);
179
169
  }
180
170
 
181
- .checkbox-input--has-tooltip {
182
- position: relative;
183
- width: max-content;
184
- max-width: 100%;
185
- }
186
-
187
- /* Allow Wrap */
188
- .checkbox-input__tooltip {
189
- --tooltip-x: 0;
190
- left: 0;
191
- width: max-content;
192
- max-width: 280px;
193
- white-space: normal;
194
- text-align: start;
195
- }
171
+ /* Muted variant - used in tables with lighter appearance */
172
+ .checkbox-input--muted {
173
+ .checkbox-input__input {
174
+ background: var(--color-bg-secondary);
175
+ border-color: var(--color-border);
176
+ }
196
177
 
197
- /* Center the caret on the checkbox box itself (0.5rem from the row's
198
- left edge = center of the 1rem-wide checkbox input). */
199
- .checkbox-input__tooltip.tooltip--caret-left .tooltip__caret {
200
- left: 0.5rem;
201
- transform: translateX(-50%);
202
- }
178
+ &:not(.checkbox-input--read-only):not(.checkbox-input--checked) {
179
+ &:hover {
180
+ .checkbox-input__input {
181
+ border-color: var(--field-color-toggle-border-hover);
182
+ }
183
+ }
184
+ }
203
185
 
204
- .checkbox-input__tooltip.tooltip--caret-left.tooltip--position-bottom .tooltip__caret {
205
- transform: translateX(-50%) rotate(180deg);
206
- /* Muted variant - used in tables with lighter appearance */
207
- .checkbox-input--muted {
186
+ /* Ensure checked state overrides muted base styles */
187
+ &.checkbox-input--checked {
208
188
  .checkbox-input__input {
209
- background: var(--color-bg-secondary);
210
- border-color: var(--color-border);
189
+ background-color: var(--field-color-toggle-bg-checked);
190
+ border-color: var(--field-color-toggle-border-checked);
211
191
  }
192
+ }
212
193
 
213
- &:not(.checkbox-input--read-only):not(.checkbox-input--checked) {
214
- &:hover {
215
- .checkbox-input__input {
216
- border-color: var(--field-color-toggle-border-hover);
217
- }
218
- }
194
+ /* Ensure partial state overrides muted base styles */
195
+ &:has(.checkbox-input__icon.partial) {
196
+ .checkbox-input__input {
197
+ background-color: var(--field-color-toggle-bg-checked);
198
+ border-color: var(--field-color-toggle-border-checked);
219
199
  }
200
+ }
201
+ }
220
202
 
221
- /* Ensure checked state overrides muted base styles */
222
- &.checkbox-input--checked {
223
- .checkbox-input__input {
224
- background-color: var(--field-color-toggle-bg-checked);
225
- border-color: var(--field-color-toggle-border-checked);
226
- }
203
+ .checkbox.error {
204
+ .checkbox-input--checked {
205
+ .checkbox-input__input {
206
+ background-color: var(--field-color-error-bg);
207
+ border-color: var(--field-color-border-error);
227
208
  }
228
209
 
229
- /* Ensure partial state overrides muted base styles */
230
- &:has(.checkbox-input__icon.partial) {
231
- .checkbox-input__input {
232
- background-color: var(--field-color-toggle-bg-checked);
233
- border-color: var(--field-color-toggle-border-checked);
234
- }
210
+ &:hover .checkbox-input__input {
211
+ border-color: var(--field-color-border-error);
235
212
  }
236
213
  }
237
214
 
238
- .checkbox.error {
239
- .checkbox-input--checked {
240
- .checkbox-input__input {
241
- background-color: var(--field-color-error-bg);
242
- border-color: var(--field-color-border-error);
243
- }
244
-
245
- &:hover .checkbox-input__input {
246
- border-color: var(--field-color-border-error);
247
- }
215
+ .checkbox-input:not(.checkbox-input--checked) {
216
+ .checkbox-input__input {
217
+ border-color: var(--field-color-border-error);
248
218
  }
249
219
 
250
- .checkbox-input:not(.checkbox-input--checked) {
251
- .checkbox-input__input {
252
- border-color: var(--field-color-border-error);
253
- }
254
-
255
- &:hover .checkbox-input__input {
256
- border-color: var(--field-color-border-error);
257
- }
220
+ &:hover .checkbox-input__input {
221
+ border-color: var(--field-color-border-error);
258
222
  }
259
223
  }
260
224
  }
@@ -1,15 +1,6 @@
1
1
  @layer payload-default {
2
2
  .field-error.tooltip {
3
- --tooltip-x: 0%;
4
- left: auto;
5
- max-width: 75%;
6
- right: 0;
7
3
  color: var(--field-color-error-text);
8
4
  background-color: var(--field-color-error-bg);
9
-
10
- &::after {
11
- border-top-color: var(--field-color-error-bg);
12
- border-bottom-color: var(--field-color-error-bg);
13
- }
14
5
  }
15
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/FieldError/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyBlD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/FieldError/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAiClD,CAAA"}
@@ -4,11 +4,13 @@ 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
6
  import { Tooltip } from '../../elements/Tooltip/index.js';
7
- import { useFormFields, useFormSubmitted } from '../../forms/Form/context.js';
7
+ import { useForm, useFormFields, useFormSubmitted } from '../../forms/Form/context.js';
8
+ import { useEditDepth } from '../../providers/EditDepth/index.js';
9
+ import { generateFieldID } from '../../utilities/generateFieldID.js';
8
10
  import './index.css';
9
11
  const baseClass = 'field-error';
10
12
  export const FieldError = props => {
11
- const $ = _c(8);
13
+ const $ = _c(11);
12
14
  const {
13
15
  alignCaret: t0,
14
16
  message: messageFromProps,
@@ -17,6 +19,10 @@ export const FieldError = props => {
17
19
  } = props;
18
20
  const alignCaret = t0 === undefined ? "right" : t0;
19
21
  const hasSubmitted = useFormSubmitted();
22
+ const {
23
+ uuid
24
+ } = useForm();
25
+ const editDepth = useEditDepth();
20
26
  let t1;
21
27
  if ($[0] !== path) {
22
28
  t1 = t2 => {
@@ -30,7 +36,7 @@ export const FieldError = props => {
30
36
  }
31
37
  const field = useFormFields(t1);
32
38
  let t2;
33
- if ($[2] !== alignCaret || $[3] !== field || $[4] !== hasSubmitted || $[5] !== messageFromProps || $[6] !== showErrorFromProps) {
39
+ if ($[2] !== alignCaret || $[3] !== editDepth || $[4] !== field || $[5] !== hasSubmitted || $[6] !== messageFromProps || $[7] !== path || $[8] !== showErrorFromProps || $[9] !== uuid) {
34
40
  t2 = Symbol.for("react.early_return_sentinel");
35
41
  bb0: {
36
42
  const {
@@ -44,6 +50,7 @@ export const FieldError = props => {
44
50
  alignCaret,
45
51
  className: baseClass,
46
52
  delay: 0,
53
+ id: generateFieldID(path, editDepth, uuid, "field-error"),
47
54
  staticPositioning: true,
48
55
  children: message
49
56
  });
@@ -51,13 +58,16 @@ export const FieldError = props => {
51
58
  }
52
59
  }
53
60
  $[2] = alignCaret;
54
- $[3] = field;
55
- $[4] = hasSubmitted;
56
- $[5] = messageFromProps;
57
- $[6] = showErrorFromProps;
58
- $[7] = t2;
61
+ $[3] = editDepth;
62
+ $[4] = field;
63
+ $[5] = hasSubmitted;
64
+ $[6] = messageFromProps;
65
+ $[7] = path;
66
+ $[8] = showErrorFromProps;
67
+ $[9] = uuid;
68
+ $[10] = t2;
59
69
  } else {
60
- t2 = $[7];
70
+ t2 = $[10];
61
71
  }
62
72
  if (t2 !== Symbol.for("react.early_return_sentinel")) {
63
73
  return t2;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","Tooltip","useFormFields","useFormSubmitted","baseClass","FieldError","props","$","alignCaret","t0","message","messageFromProps","path","showError","showErrorFromProps","undefined","hasSubmitted","t1","t2","fields","field","Symbol","for","errorMessage","valid","showMessage","length","_jsx","className","delay","staticPositioning","children"],"sources":["../../../src/fields/FieldError/index.tsx"],"sourcesContent":["'use client'\n\nimport type { GenericErrorProps } from 'payload'\n\nimport React from 'react'\n\nimport { Tooltip } from '../../elements/Tooltip/index.js'\nimport { useFormFields, useFormSubmitted } from '../../forms/Form/context.js'\nimport './index.css'\n\nconst baseClass = 'field-error'\n\nexport const FieldError: React.FC<GenericErrorProps> = (props) => {\n const {\n alignCaret = 'right',\n message: messageFromProps,\n path,\n showError: showErrorFromProps,\n } = props\n\n const hasSubmitted = useFormSubmitted()\n const field = useFormFields(([fields]) => (fields && fields?.[path]) || null)\n\n const { errorMessage, valid } = field || {}\n\n const message = messageFromProps || errorMessage\n const showMessage = showErrorFromProps || (hasSubmitted && valid === false)\n\n if (showMessage && message?.length) {\n return (\n <Tooltip alignCaret={alignCaret} className={baseClass} delay={0} staticPositioning>\n {message}\n </Tooltip>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,MAAW;AAElB,SAASC,OAAO,QAAQ;AACxB,SAASC,aAAa,EAAEC,gBAAgB,QAAQ;AAChD,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,UAAA,GAA0CC,KAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EACrD;IAAAS,UAAA,EAAAC,EAAA;IAAAC,OAAA,EAAAC,gBAAA;IAAAC,IAAA;IAAAC,SAAA,EAAAC;EAAA,IAKIR,KAAA;EAJF,MAAAE,UAAA,GAAAC,EAAoB,KAAAM,SAAA,GAAP,OAAO,GAApBN,EAAoB;EAMtB,MAAAO,YAAA,GAAqBb,gBAAA;EAAA,IAAAc,EAAA;EAAA,IAAAV,CAAA,QAAAK,IAAA;IACOK,EAAA,GAAAC,EAAA;MAAC,OAAAC,MAAA,IAAAD,EAAQ;MAAA,OAAKC,MAAC,IAAUA,MAAA,GAASP,IAAA,CAAK,QAAK;IAAA;IAAAL,CAAA,MAAAK,IAAA;IAAAL,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAxE,MAAAa,KAAA,GAAclB,aAAA,CAAce,EAA4C;EAAA,IAAAC,EAAA;EAAA,IAAAX,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAa,KAAA,IAAAb,CAAA,QAAAS,YAAA,IAAAT,CAAA,QAAAI,gBAAA,IAAAJ,CAAA,QAAAO,kBAAA;IASpEI,EAAA,GAAAG,MAAA,CAAAC,GAAA,8B;;MAPJ;QAAAC,YAAA;QAAAC;MAAA,IAAgCJ,KAAA,MAAU;MAE1C,MAAAV,OAAA,GAAgBC,gBAAA,IAAoBY,YAAA;MACpC,MAAAE,WAAA,GAAoBX,kBAAA,IAAuBE,YAAA,IAAgBQ,KAAA,UAAU;MAAA,IAEjEC,WAAA,IAAef,OAAA,EAAAgB,MAAS;QAExBR,EAAA,GAAAS,IAAA,CAAA1B,OAAA;UAAAO,UAAA;UAAAoB,SAAA,EAAAxB,SAAA;UAAAyB,KAAA;UAAAC,iBAAA;UAAAC,QAAA,EACGrB;QAAA,C;;;;;;;;;;;;;;;;;CAMT","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","Tooltip","useForm","useFormFields","useFormSubmitted","useEditDepth","generateFieldID","baseClass","FieldError","props","$","alignCaret","t0","message","messageFromProps","path","showError","showErrorFromProps","undefined","hasSubmitted","uuid","editDepth","t1","t2","fields","field","Symbol","for","errorMessage","valid","showMessage","length","_jsx","className","delay","id","staticPositioning","children"],"sources":["../../../src/fields/FieldError/index.tsx"],"sourcesContent":["'use client'\n\nimport type { GenericErrorProps } from 'payload'\n\nimport React from 'react'\n\nimport { Tooltip } from '../../elements/Tooltip/index.js'\nimport { useForm, useFormFields, useFormSubmitted } from '../../forms/Form/context.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { generateFieldID } from '../../utilities/generateFieldID.js'\nimport './index.css'\n\nconst baseClass = 'field-error'\n\nexport const FieldError: React.FC<GenericErrorProps> = (props) => {\n const {\n alignCaret = 'right',\n message: messageFromProps,\n path,\n showError: showErrorFromProps,\n } = props\n\n const hasSubmitted = useFormSubmitted()\n const { uuid } = useForm()\n const editDepth = useEditDepth()\n const field = useFormFields(([fields]) => (fields && fields?.[path]) || null)\n\n const { errorMessage, valid } = field || {}\n\n const message = messageFromProps || errorMessage\n const showMessage = showErrorFromProps || (hasSubmitted && valid === false)\n\n if (showMessage && message?.length) {\n return (\n <Tooltip\n alignCaret={alignCaret}\n className={baseClass}\n delay={0}\n id={generateFieldID(path, editDepth, uuid, 'field-error')}\n staticPositioning\n >\n {message}\n </Tooltip>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,MAAW;AAElB,SAASC,OAAO,QAAQ;AACxB,SAASC,OAAO,EAAEC,aAAa,EAAEC,gBAAgB,QAAQ;AACzD,SAASC,YAAY,QAAQ;AAC7B,SAASC,eAAe,QAAQ;AAChC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,UAAA,GAA0CC,KAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EACrD;IAAAY,UAAA,EAAAC,EAAA;IAAAC,OAAA,EAAAC,gBAAA;IAAAC,IAAA;IAAAC,SAAA,EAAAC;EAAA,IAKIR,KAAA;EAJF,MAAAE,UAAA,GAAAC,EAAoB,KAAAM,SAAA,GAAP,OAAO,GAApBN,EAAoB;EAMtB,MAAAO,YAAA,GAAqBf,gBAAA;EACrB;IAAAgB;EAAA,IAAiBlB,OAAA;EACjB,MAAAmB,SAAA,GAAkBhB,YAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAZ,CAAA,QAAAK,IAAA;IACUO,EAAA,GAAAC,EAAA;MAAC,OAAAC,MAAA,IAAAD,EAAQ;MAAA,OAAKC,MAAC,IAAUA,MAAA,GAAST,IAAA,CAAK,QAAK;IAAA;IAAAL,CAAA,MAAAK,IAAA;IAAAL,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAxE,MAAAe,KAAA,GAActB,aAAA,CAAcmB,EAA4C;EAAA,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAW,SAAA,IAAAX,CAAA,QAAAe,KAAA,IAAAf,CAAA,QAAAS,YAAA,IAAAT,CAAA,QAAAI,gBAAA,IAAAJ,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAAO,kBAAA,IAAAP,CAAA,QAAAU,IAAA;IASpEG,EAAA,GAAAG,MAAA,CAAAC,GAAA,8B;;MAPJ;QAAAC,YAAA;QAAAC;MAAA,IAAgCJ,KAAA,MAAU;MAE1C,MAAAZ,OAAA,GAAgBC,gBAAA,IAAoBc,YAAA;MACpC,MAAAE,WAAA,GAAoBb,kBAAA,IAAuBE,YAAA,IAAgBU,KAAA,UAAU;MAAA,IAEjEC,WAAA,IAAejB,OAAA,EAAAkB,MAAS;QAExBR,EAAA,GAAAS,IAAA,CAAA/B,OAAA;UAAAU,UAAA;UAAAsB,SAAA,EAAA1B,SAAA;UAAA2B,KAAA;UAAAC,EAAA,EAIM7B,eAAA,CAAgBS,IAAA,EAAMM,SAAA,EAAWD,IAAA,EAAM;UAAAgB,iBAAA;UAAAC,QAAA,EAG1CxB;QAAA,C;;;;;;;;;;;;;;;;;;;;CAMT","ignoreList":[]}
@@ -10,13 +10,6 @@
10
10
  gap: var(--spacer-2);
11
11
  }
12
12
 
13
- .tooltip:not([aria-hidden='true']) {
14
- right: auto;
15
- position: static;
16
- margin-bottom: 0.2em;
17
- max-width: fit-content;
18
- }
19
-
20
13
  ul {
21
14
  list-style: none;
22
15
  padding: 0;
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Relationship/Input.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAwE,MAAM,OAAO,CAAA;AAK5F,OAAO,KAAK,EAA6B,sBAAsB,EAAiB,MAAM,YAAY,CAAA;AAuBlG,OAAO,aAAa,CAAA;AAMpB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAg4B9D,CAAA"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Relationship/Input.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAwE,MAAM,OAAO,CAAA;AAK5F,OAAO,KAAK,EAA6B,sBAAsB,EAAiB,MAAM,YAAY,CAAA;AAuBlG,OAAO,aAAa,CAAA;AAMpB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAy5B9D,CAAA"}
@@ -406,13 +406,31 @@ export const RelationshipInput = props => {
406
406
  if (!value) {
407
407
  return false;
408
408
  }
409
- const docID = mostRecentUpdate_0.doc.id;
409
+ // Delete events only carry the deleted `id` (no `doc`), whereas create/update events
410
+ // carry the full `doc`. Resolve from both so the delete branch below can match.
411
+ const docID = mostRecentUpdate_0.doc?.id ?? mostRecentUpdate_0.id;
412
+ // A document referenced by this field, deleted elsewhere (e.g. via the DeleteDocument
413
+ // event), should be removed from the value — otherwise it keeps showing as if it existed.
414
+ if (mostRecentUpdate_0.operation === 'delete') {
415
+ if (hasMany === true) {
416
+ const currentValue = Array.isArray(value) ? value : [value];
417
+ const valuesToSet = currentValue.filter(option_0 => {
418
+ return !(option_0.value === docID && option_0.relationTo === mostRecentUpdate_0.entitySlug);
419
+ });
420
+ if (valuesToSet.length !== currentValue.length) {
421
+ onChange(valuesToSet);
422
+ }
423
+ } else if (hasMany === false && value?.value === docID && value?.relationTo === mostRecentUpdate_0.entitySlug) {
424
+ onChange(null);
425
+ }
426
+ return;
427
+ }
410
428
  let isMatchingUpdate = false;
411
429
  if (mostRecentUpdate_0.operation === 'update') {
412
430
  if (hasMany === true) {
413
- const currentValue = Array.isArray(value) ? value : [value];
414
- isMatchingUpdate = currentValue.some(option_0 => {
415
- return option_0.value === docID && option_0.relationTo === mostRecentUpdate_0.entitySlug;
431
+ const currentValue_0 = Array.isArray(value) ? value : [value];
432
+ isMatchingUpdate = currentValue_0.some(option_1 => {
433
+ return option_1.value === docID && option_1.relationTo === mostRecentUpdate_0.entitySlug;
416
434
  });
417
435
  } else if (hasMany === false) {
418
436
  isMatchingUpdate = value?.value === docID && value?.relationTo === mostRecentUpdate_0.entitySlug;
@@ -437,14 +455,14 @@ export const RelationshipInput = props => {
437
455
  i18n
438
456
  });
439
457
  if (hasMany) {
440
- const currentValue_0 = value ? Array.isArray(value) ? value : [value] : [];
441
- const valuesToSet = currentValue_0.map(option_1 => {
458
+ const currentValue_1 = value ? Array.isArray(value) ? value : [value] : [];
459
+ const valuesToSet_0 = currentValue_1.map(option_2 => {
442
460
  return {
443
- relationTo: option_1.value === docID ? mostRecentUpdate_0.entitySlug : option_1.relationTo,
444
- value: option_1.value
461
+ relationTo: option_2.value === docID ? mostRecentUpdate_0.entitySlug : option_2.relationTo,
462
+ value: option_2.value
445
463
  };
446
464
  });
447
- onChange(valuesToSet);
465
+ onChange(valuesToSet_0);
448
466
  } else if (hasMany === false) {
449
467
  onChange({
450
468
  relationTo: mostRecentUpdate_0.entitySlug,
@@ -494,8 +512,8 @@ export const RelationshipInput = props => {
494
512
  i18n
495
513
  });
496
514
  if (hasMany) {
497
- onChange(value ? value.filter(option_2 => {
498
- return option_2.value !== args_0.id;
515
+ onChange(value ? value.filter(option_3 => {
516
+ return option_3.value !== args_0.id;
499
517
  }) : null);
500
518
  } else {
501
519
  onChange(null);
@@ -675,11 +693,11 @@ export const RelationshipInput = props => {
675
693
  },
676
694
  disabled: readOnly || isDrawerOpen || isListDrawerOpen,
677
695
  filterOption: enableWordBoundarySearch ? filterOption : undefined,
678
- getOptionValue: option_3 => {
679
- if (!option_3) {
696
+ getOptionValue: option_4 => {
697
+ if (!option_4) {
680
698
  return undefined;
681
699
  }
682
- return hasMany && Array.isArray(relationTo) ? `${option_3.relationTo}_${option_3.value}` : option_3.value;
700
+ return hasMany && Array.isArray(relationTo) ? `${option_4.relationTo}_${option_4.value}` : option_4.value;
683
701
  },
684
702
  isLoading: appearance === 'select' && isLoading,
685
703
  isMulti: hasMany,