@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
@@ -29,10 +29,6 @@
29
29
  border: var(--stroke-width-small) solid transparent;
30
30
  background-color: transparent;
31
31
  color: var(--color-icon-secondary);
32
- transition:
33
- background-color 0.15s ease,
34
- border-color 0.15s ease,
35
- color 0.15s ease;
36
32
  position: relative;
37
33
 
38
34
  &:hover {
@@ -56,7 +52,6 @@
56
52
  display: flex;
57
53
  align-items: center;
58
54
  justify-content: center;
59
- transition: opacity 0.15s ease;
60
55
  }
61
56
 
62
57
  /* Visually hidden but still accessible for screen readers */
@@ -57,7 +57,6 @@
57
57
  color: var(--color-icon-tertiary);
58
58
  left: calc(-1 * var(--spacer-1));
59
59
  opacity: 0;
60
- transition: opacity 150ms ease;
61
60
  }
62
61
 
63
62
  .nav-group--collapsed .collapsible__toggle {
@@ -1,4 +1,3 @@
1
- import type { PreviewButtonClientProps } from 'payload';
2
1
  import React from 'react';
3
- export declare function PreviewButton(props: PreviewButtonClientProps): React.JSX.Element;
2
+ export declare function PreviewButton(): React.JSX.Element;
4
3
  //# 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,KAAgC,MAAM,OAAO,CAAA;AAQpD,wBAAgB,aAAa,CAAC,KAAK,EAAE,wBAAwB,qBA0C5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PreviewButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAQpD,wBAAgB,aAAa,sBAoD5B"}
@@ -8,7 +8,7 @@ import { usePreviewURL } from '../../providers/LivePreview/context.js';
8
8
  import { useTranslation } from '../../providers/Translation/index.js';
9
9
  import { Button } from '../Button/index.js';
10
10
  import { Tooltip } from '../Tooltip/index.js';
11
- export function PreviewButton(props) {
11
+ export function PreviewButton() {
12
12
  const $ = _c(9);
13
13
  const {
14
14
  previewURL
@@ -20,11 +20,16 @@ export function PreviewButton(props) {
20
20
  const [hovered, setHovered] = useState(false);
21
21
  let t0;
22
22
  if ($[0] !== previewURL) {
23
- t0 = async () => {
24
- if (previewURL) {
25
- await navigator.clipboard.writeText(previewURL);
26
- setCopied(true);
23
+ t0 = async event => {
24
+ if (!previewURL) {
25
+ return;
27
26
  }
27
+ if (event.metaKey || event.ctrlKey) {
28
+ window.open(previewURL, "_blank", "noopener,noreferrer");
29
+ return;
30
+ }
31
+ await navigator.clipboard.writeText(previewURL);
32
+ setCopied(true);
28
33
  };
29
34
  $[0] = previewURL;
30
35
  $[1] = t0;
@@ -70,6 +75,7 @@ export function PreviewButton(props) {
70
75
  onClick: handleClick
71
76
  }), _jsx(Tooltip, {
72
77
  delay: 0,
78
+ id: "preview-button-tooltip",
73
79
  show: hovered || copied,
74
80
  children: label
75
81
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useState","LinkIcon","usePreviewURL","useTranslation","Button","Tooltip","PreviewButton","props","$","previewURL","t","copied","setCopied","hovered","setHovered","t0","navigator","clipboard","writeText","handleClick","t1","label","t2","t3","Symbol","for","_jsxs","onPointerEnter","onPointerLeave","style","position","children","_jsx","buttonStyle","icon","size","onClick","delay","show"],"sources":["../../../src/elements/PreviewButton/index.tsx"],"sourcesContent":["'use client'\nimport type { PreviewButtonClientProps } from 'payload'\n\nimport React, { useCallback, useState } from 'react'\n\nimport { LinkIcon } from '../../icons/Link/index.js'\nimport { usePreviewURL } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\n\nexport function PreviewButton(props: PreviewButtonClientProps) {\n const { previewURL } = usePreviewURL()\n const { t } = useTranslation()\n const [copied, setCopied] = useState(false)\n const [hovered, setHovered] = useState(false)\n\n const handleClick = useCallback(async () => {\n if (previewURL) {\n await navigator.clipboard.writeText(previewURL)\n setCopied(true)\n }\n }, [previewURL])\n\n if (!previewURL) {\n return null\n }\n\n const label = copied ? t('general:copied') : t('general:copy')\n\n return (\n <span\n onPointerEnter={() => {\n setHovered(true)\n setCopied(false)\n }}\n onPointerLeave={() => {\n setHovered(false)\n setCopied(false)\n }}\n style={{ position: 'relative' }}\n >\n <Button\n buttonStyle=\"ghost\"\n icon={<LinkIcon size={24} />}\n id=\"preview-button\"\n onClick={handleClick}\n />\n <Tooltip delay={0} show={hovered || copied}>\n {label}\n </Tooltip>\n </span>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,WAAW,EAAEC,QAAQ,QAAQ;AAE7C,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,OAAO,QAAQ;AAExB,OAAO,SAAAC,cAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EACL;IAAAY;EAAA,IAAuBP,aAAA;EACvB;IAAAQ;EAAA,IAAcP,cAAA;EACd,OAAAQ,MAAA,EAAAC,SAAA,IAA4BZ,QAAA,MAAS;EACrC,OAAAa,OAAA,EAAAC,UAAA,IAA8Bd,QAAA,MAAS;EAAA,IAAAe,EAAA;EAAA,IAAAP,CAAA,QAAAC,UAAA;IAEPM,EAAA,SAAAA,CAAA;MAAA,IAC1BN,UAAA;QAAA,MACIO,SAAA,CAAAC,SAAA,CAAAC,SAAA,CAA8BT,UAAA;QACpCG,SAAA,KAAU;MAAA;IAAA;IAEdJ,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EALA,MAAAW,WAAA,GAAoBJ,EAKL;EAAA,KAEVN,UAAA;IAAA;EAAA;EAAA,IAAAW,EAAA;EAAA,IAAAZ,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAW,WAAA,IAAAX,CAAA,QAAAK,OAAA,IAAAL,CAAA,QAAAE,CAAA;IAIL,MAAAW,KAAA,GAAcV,MAAA,GAASD,CAAA,CAAE,oBAAoBA,CAAA,CAAE;IAAA,IAAAY,EAAA;IAAA,IAAAC,EAAA;IAAA,IAAAf,CAAA,QAAAgB,MAAA,CAAAC,GAAA;MAI3BH,EAAA,GAAAA,CAAA;QACdR,UAAA,KAAW;QACXF,SAAA,MAAU;MAAA;MAEIW,EAAA,GAAAA,CAAA;QACdT,UAAA,MAAW;QACXF,SAAA,MAAU;MAAA;MACZJ,CAAA,MAAAc,EAAA;MAAAd,CAAA,MAAAe,EAAA;IAAA;MAAAD,EAAA,GAAAd,CAAA;MAAAe,EAAA,GAAAf,CAAA;IAAA;IARFY,EAAA,GAAAM,KAAA,CAAC;MAAAC,cAAA,EACiBL,EAGhB;MAAAM,cAAA,EACgBL,EAGhB;MAAAM,KAAA;QAAAC,QAAA,EACmB;MAAA;MAAAC,QAAA,GAEnBC,IAAA,CAAA5B,MAAA;QAAA6B,WAAA,EACc;QAAAC,IAAA,EACNF,IAAA,CAAA/B,QAAA;UAAAkC,IAAA;QAAA,C;YACH;QAAAC,OAAA,EACMjB;MAAA,C,GAEXa,IAAA,CAAA3B,OAAA;QAAAgC,KAAA;QAAAC,IAAA,EAAyBzB,OAAA,IAAWF,MAAA;QAAAoB,QAAA,EACjCV;MAAA,C;;;;;;;;;;SAlBLD,E","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useState","LinkIcon","usePreviewURL","useTranslation","Button","Tooltip","PreviewButton","$","previewURL","t","copied","setCopied","hovered","setHovered","t0","event","metaKey","ctrlKey","window","open","navigator","clipboard","writeText","handleClick","t1","label","t2","t3","Symbol","for","_jsxs","onPointerEnter","onPointerLeave","style","position","children","_jsx","buttonStyle","icon","size","onClick","delay","id","show"],"sources":["../../../src/elements/PreviewButton/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useState } from 'react'\n\nimport { LinkIcon } from '../../icons/Link/index.js'\nimport { usePreviewURL } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\n\nexport function PreviewButton() {\n const { previewURL } = usePreviewURL()\n const { t } = useTranslation()\n const [copied, setCopied] = useState(false)\n const [hovered, setHovered] = useState(false)\n\n const handleClick = useCallback(\n async (event: React.MouseEvent<HTMLButtonElement>) => {\n if (!previewURL) {\n return\n }\n\n if (event.metaKey || event.ctrlKey) {\n window.open(previewURL, '_blank', 'noopener,noreferrer')\n return\n }\n\n await navigator.clipboard.writeText(previewURL)\n setCopied(true)\n },\n [previewURL],\n )\n\n if (!previewURL) {\n return null\n }\n\n const label = copied ? t('general:copied') : t('general:copy')\n\n return (\n <span\n onPointerEnter={() => {\n setHovered(true)\n setCopied(false)\n }}\n onPointerLeave={() => {\n setHovered(false)\n setCopied(false)\n }}\n style={{ position: 'relative' }}\n >\n <Button\n buttonStyle=\"ghost\"\n icon={<LinkIcon size={24} />}\n id=\"preview-button\"\n onClick={handleClick}\n />\n <Tooltip delay={0} id=\"preview-button-tooltip\" show={hovered || copied}>\n {label}\n </Tooltip>\n </span>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,WAAW,EAAEC,QAAQ,QAAQ;AAE7C,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,OAAO,QAAQ;AAExB,OAAO,SAAAC,cAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EACL;IAAAW;EAAA,IAAuBN,aAAA;EACvB;IAAAO;EAAA,IAAcN,cAAA;EACd,OAAAO,MAAA,EAAAC,SAAA,IAA4BX,QAAA,MAAS;EACrC,OAAAY,OAAA,EAAAC,UAAA,IAA8Bb,QAAA,MAAS;EAAA,IAAAc,EAAA;EAAA,IAAAP,CAAA,QAAAC,UAAA;IAGrCM,EAAA,SAAAC,KAAA;MAAA,KACOP,UAAA;QAAA;MAAA;MAAA,IAIDO,KAAA,CAAAC,OAAA,IAAiBD,KAAA,CAAAE,OAAa;QAChCC,MAAA,CAAAC,IAAA,CAAYX,UAAA,EAAY,UAAU;QAAA;MAAA;MAAA,MAI9BY,SAAA,CAAAC,SAAA,CAAAC,SAAA,CAA8Bd,UAAA;MACpCG,SAAA,KAAU;IAAA;IACZJ,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAbF,MAAAgB,WAAA,GAAoBT,EAcN;EAAA,KAGTN,UAAA;IAAA;EAAA;EAAA,IAAAgB,EAAA;EAAA,IAAAjB,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAgB,WAAA,IAAAhB,CAAA,QAAAK,OAAA,IAAAL,CAAA,QAAAE,CAAA;IAIL,MAAAgB,KAAA,GAAcf,MAAA,GAASD,CAAA,CAAE,oBAAoBA,CAAA,CAAE;IAAA,IAAAiB,EAAA;IAAA,IAAAC,EAAA;IAAA,IAAApB,CAAA,QAAAqB,MAAA,CAAAC,GAAA;MAI3BH,EAAA,GAAAA,CAAA;QACdb,UAAA,KAAW;QACXF,SAAA,MAAU;MAAA;MAEIgB,EAAA,GAAAA,CAAA;QACdd,UAAA,MAAW;QACXF,SAAA,MAAU;MAAA;MACZJ,CAAA,MAAAmB,EAAA;MAAAnB,CAAA,MAAAoB,EAAA;IAAA;MAAAD,EAAA,GAAAnB,CAAA;MAAAoB,EAAA,GAAApB,CAAA;IAAA;IARFiB,EAAA,GAAAM,KAAA,CAAC;MAAAC,cAAA,EACiBL,EAGhB;MAAAM,cAAA,EACgBL,EAGhB;MAAAM,KAAA;QAAAC,QAAA,EACmB;MAAA;MAAAC,QAAA,GAEnBC,IAAA,CAAAhC,MAAA;QAAAiC,WAAA,EACc;QAAAC,IAAA,EACNF,IAAA,CAAAnC,QAAA;UAAAsC,IAAA;QAAA,C;YACH;QAAAC,OAAA,EACMjB;MAAA,C,GAEXa,IAAA,CAAA/B,OAAA;QAAAoC,KAAA;QAAAC,EAAA,EAAsB;QAAAC,IAAA,EAA+B/B,OAAA,IAAWF,MAAA;QAAAyB,QAAA,EAC7DV;MAAA,C;;;;;;;;;;SAlBLD,E","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  @layer payload-default {
2
2
  .preview-sizes {
3
3
  margin: var(--spacer-6) calc(var(--gutter-h) * -1) 0 calc(var(--gutter-h) * -1);
4
- border-top: var(--stroke-width-small) solid var(--theme-elevation-150);
4
+ border-top: var(--stroke-width-small) solid var(--color-border);
5
5
  max-height: calc(100vh - var(--spacer-6) * 3);
6
6
  height: 100%;
7
7
  display: flex;
@@ -10,7 +10,7 @@
10
10
 
11
11
  .preview-sizes__imageWrap {
12
12
  min-width: 60%;
13
- border-right: var(--stroke-width-small) solid var(--theme-elevation-150);
13
+ border-right: var(--stroke-width-small) solid var(--color-border);
14
14
  }
15
15
 
16
16
  .preview-sizes__preview {
@@ -20,7 +20,7 @@
20
20
  }
21
21
 
22
22
  .preview-sizes__meta {
23
- border-bottom: var(--stroke-width-small) solid var(--theme-elevation-150);
23
+ border-bottom: var(--stroke-width-small) solid var(--color-border);
24
24
  padding: var(--spacer-3) var(--gutter-h);
25
25
  display: flex;
26
26
  flex-wrap: wrap;
@@ -41,7 +41,7 @@
41
41
 
42
42
  .preview-sizes__sizeName,
43
43
  .preview-sizes .file-meta__size-type {
44
- color: var(--theme-elevation-600);
44
+ color: var(--color-text-secondary);
45
45
  }
46
46
 
47
47
  .preview-sizes__listWrap {
@@ -61,7 +61,7 @@
61
61
  left: 0;
62
62
  height: calc(var(--spacer-6) * 2);
63
63
  width: 100%;
64
- background: linear-gradient(180deg, transparent 0, var(--theme-bg) 100%);
64
+ background: linear-gradient(180deg, transparent 0, var(--color-bg) 100%);
65
65
  pointer-events: none;
66
66
  }
67
67
 
@@ -79,15 +79,14 @@
79
79
  display: flex;
80
80
  gap: var(--spacer-3);
81
81
  cursor: pointer;
82
- transition: background-color 0.2s ease-in-out;
83
82
  }
84
83
 
85
84
  .preview-sizes__sizeOption:hover {
86
- background-color: var(--theme-elevation-100);
85
+ background-color: var(--color-bg-hover);
87
86
  }
88
87
 
89
88
  .preview-sizes--selected {
90
- background-color: var(--theme-elevation-100);
89
+ background-color: var(--color-bg-secondary);
91
90
  }
92
91
 
93
92
  .preview-sizes__image {
@@ -142,7 +141,7 @@
142
141
  }
143
142
 
144
143
  .preview-sizes__listWrap {
145
- border-top: var(--stroke-width-small) solid var(--theme-elevation-150);
144
+ border-top: var(--stroke-width-small) solid var(--color-border);
146
145
  height: 40%;
147
146
  }
148
147
  }
@@ -6,7 +6,6 @@
6
6
  justify-content: center;
7
7
  flex-shrink: 0;
8
8
  color: var(--color-icon-secondary);
9
- transition: color 100ms;
10
9
 
11
10
  &:hover {
12
11
  color: var(--color-icon);
@@ -8,7 +8,6 @@
8
8
  background: var(--color-bg);
9
9
  height: 1.25rem;
10
10
  margin: 0;
11
- transition: border 0.2s cubic-bezier(0.2, 0, 0, 1);
12
11
 
13
12
  &:focus,
14
13
  &:focus-visible {
@@ -18,9 +18,6 @@
18
18
  line-height: var(--text-body-medium-line-height);
19
19
  -webkit-appearance: none;
20
20
  appearance: none;
21
- transition-property: box-shadow, background-color;
22
- transition-duration: 100ms;
23
- transition-timing-function: cubic-bezier(0, 0.2, 0.2, 1);
24
21
  height: auto;
25
22
  padding-block: calc(var(--spacer-1) + 1px);
26
23
  padding-inline: var(--field-padding-inline) var(--spacer-5);
@@ -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,KAA6D,MAAM,OAAO,CAAA;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAgBrE,OAAO,aAAa,CAAA;AAIpB,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,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,MAAM,MAAM,YAAY,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAEzE,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAkWvE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAClB,KAAK,KAAK,EACX,MAAM,SAAS,CAAA;AAEhB,OAAO,KAA6D,MAAM,OAAO,CAAA;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAiBrE,OAAO,aAAa,CAAA;AAIpB,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,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,MAAM,MAAM,YAAY,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAEzE,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAkZvE,CAAA"}
@@ -7,6 +7,7 @@ import React, { Fragment, useCallback, useEffect, useRef, useState } from 'react
7
7
  import { useEffectEvent } from '../../hooks/useEffectEvent.js';
8
8
  import { useAuth } from '../../providers/Auth/index.js';
9
9
  import { useConfig } from '../../providers/Config/index.js';
10
+ import { useDocumentEvents } from '../../providers/DocumentEvents/index.js';
10
11
  import { ListQueryProvider } from '../../providers/ListQuery/index.js';
11
12
  import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
12
13
  import { TableColumnsProvider } from '../../providers/TableColumns/index.js';
@@ -178,6 +179,37 @@ export const RelationshipTable = props => {
178
179
  setCurrentDrawerID(undefined);
179
180
  }
180
181
  }, [isDrawerOpen]);
182
+ // Keep this table in sync with documents created, updated, or deleted elsewhere
183
+ // (a sibling join table, the relationship field, or an inline drawer edit).
184
+ const {
185
+ mostRecentUpdate
186
+ } = useDocumentEvents();
187
+ const lastHandledEventRef = useRef(null);
188
+ const handleDocumentEvent = useEffectEvent(event => {
189
+ if (disableTable || !event || event === lastHandledEventRef.current) {
190
+ return;
191
+ }
192
+ const relationSlugs = Array.isArray(relationTo) ? relationTo : [relationTo];
193
+ if (!relationSlugs.includes(event.entitySlug)) {
194
+ return;
195
+ }
196
+ lastHandledEventRef.current = event;
197
+ // Skip the refetch when the current data already reflects this event — e.g. this
198
+ // table's own drawer already applied it optimistically via onDrawerSave/onDrawerDelete,
199
+ // or a fresh mount already loaded data that includes it. Otherwise saving/deleting from
200
+ // this table's own drawer (which also emits a matching event) would render a second time.
201
+ const eventDocID = event.doc?.id ?? event.id;
202
+ const existingDoc = isPolymorphic ? data?.docs?.find(doc => doc.relationTo === event.entitySlug && doc.value?.id === eventDocID) : data?.docs?.find(doc => doc.id === eventDocID);
203
+ const existingUpdatedAt = isPolymorphic ? existingDoc?.value?.updatedAt : existingDoc?.updatedAt;
204
+ const isAlreadyReflected = event.operation === 'delete' ? !existingDoc : Boolean(existingDoc) && existingUpdatedAt === event.updatedAt;
205
+ if (isAlreadyReflected) {
206
+ return;
207
+ }
208
+ void renderTable();
209
+ });
210
+ useEffect(() => {
211
+ handleDocumentEvent(mostRecentUpdate);
212
+ }, [mostRecentUpdate]);
181
213
  const canCreate = allowCreate !== false && permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create;
182
214
  useEffect(() => {
183
215
  if (isPolymorphic && selectedCollection) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","hoistQueryParamsToAnd","transformColumnsToPreferences","React","Fragment","useCallback","useEffect","useRef","useState","useEffectEvent","useAuth","useConfig","ListQueryProvider","useServerFunctions","TableColumnsProvider","useTranslation","useDocumentDrawer","ListColumnSelectionButton","NoListResults","RelationshipProvider","AddNewButton","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","Description","disableTable","field","fieldPath","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","i18n","t","query","setQuery","collectionConfig","collectionSlug","isPolymorphic","Array","isArray","selectedCollection","setSelectedCollection","undefined","permissions","openDrawerWhenRelationChanges","currentDrawerID","setCurrentDrawerID","DocumentDrawer","closeDrawer","isDrawerOpen","openDrawer","id","isLoadingTable","setIsLoadingTable","data","setData","docs","reduce","acc","doc","columnState","setColumnState","getTableState","renderTable","newQuery","limit","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","renderRowTypes","disableRowTypes","newData","state","newColumnState","NewTable","columns","enableRowSelections","orderableFieldName","orderable","collection","name","tableAppearance","handleTableRender","onDrawerSave","operation","foundDocIndex","findIndex","d","withNewOrUpdatedData","newDocs","onDrawerDelete","args","filter","onDrawerOpen","current","canCreate","collections","create","memoizedListQuery","useMemo","addNewButton","_jsx","buttonStyle","className","label","onClick","columnsButton","slug","_jsxs","length","Actions","labels","singular","description","plural","title","modifySearchParams","onQueryChange","replaceAll","LinkedCellOverride","onDelete","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { hoistQueryParamsToAnd, transformColumnsToPreferences } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { ListColumnSelectionButton } from '../ListColumnSelectionButton/index.js'\nimport { NoListResults } from '../NoListResults/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { AddNewButton } from './AddNewButton.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.css'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly Description?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly fieldPath?: string\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport type OnDrawerOpen = (id?: string, collectionSlug?: string) => void\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n Description,\n disableTable = false,\n field,\n fieldPath,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const isPolymorphic = Array.isArray(relationTo)\n\n const [selectedCollection, setSelectedCollection] = useState(\n isPolymorphic ? undefined : relationTo,\n )\n\n const { permissions } = useAuth()\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const [currentDrawerID, setCurrentDrawerID] = useState<string | undefined>(undefined)\n\n const [DocumentDrawer, , { closeDrawer, isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentDrawerID,\n collectionSlug: selectedCollection,\n })\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n\n const [data, setData] = useState<PaginatedDocs>(() =>\n initialDataFromProps\n ? {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string' || typeof doc === 'number') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n\n return [...acc, doc]\n }, [])\n : [],\n }\n : undefined,\n )\n\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (data?: PaginatedDocs) => {\n const newQuery: ListQuery = {\n limit: field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to CollectionPreferences['columns']\n const defaultColumns = field.admin?.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const renderRowTypes =\n typeof field.admin?.disableRowTypes === 'boolean'\n ? !field.admin.disableRowTypes\n : Array.isArray(relationTo)\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: transformColumnsToPreferences(query?.columns) || defaultColumns,\n data,\n enableRowSelections: false,\n orderableFieldName:\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`,\n parent,\n query: newQuery,\n renderRowTypes,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin?.defaultColumns,\n field.admin?.disableRowTypes,\n field.collection,\n field.name,\n field.orderable,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n ({ doc, operation }) => {\n if (operation === 'create') {\n closeDrawer()\n }\n\n const foundDocIndex = data?.docs?.findIndex((d) => d.id === doc.id)\n const withNewOrUpdatedData: PaginatedDocs = { docs: [] } as PaginatedDocs\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = doc\n withNewOrUpdatedData.docs = newDocs\n } else {\n withNewOrUpdatedData.docs = [doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedData)\n },\n [data?.docs, renderTable, closeDrawer],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n\n void renderTable({\n ...data,\n docs: newDocs,\n })\n\n setCurrentDrawerID(undefined)\n },\n [data, renderTable],\n )\n\n const onDrawerOpen = useCallback<OnDrawerOpen>((id, collectionSlug) => {\n openDrawerWhenRelationChanges.current = true\n\n if (id) {\n setCurrentDrawerID(id)\n } else {\n setCurrentDrawerID(undefined)\n }\n\n if (collectionSlug) {\n setSelectedCollection(collectionSlug)\n } else {\n setSelectedCollection(undefined)\n }\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawerWhenRelationChanges.current = false\n openDrawer()\n }\n }, [openDrawer])\n\n useEffect(() => {\n if (!isDrawerOpen) {\n setCurrentDrawerID(undefined)\n }\n }, [isDrawerOpen])\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create\n\n useEffect(() => {\n if (isPolymorphic && selectedCollection) {\n openDrawer()\n }\n }, [selectedCollection, openDrawer, isPolymorphic])\n\n useEffect(() => {\n if (isPolymorphic && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n const memoizedListQuery = React.useMemo(\n () => ({\n columns: transformColumnsToPreferences(columnState)?.map(({ accessor }) => accessor),\n limit: field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort ?? collectionConfig?.defaultSort,\n }),\n [columnState, field, collectionConfig],\n )\n\n const addNewButton = (\n <AddNewButton\n allowCreate={allowCreate !== false}\n baseClass={baseClass}\n buttonStyle=\"ghost\"\n className={`${baseClass}__add-new${isPolymorphic ? '-polymorphic' : ''}`}\n collections={config.collections}\n i18n={i18n}\n label={i18n.t('fields:addNew')}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n )\n\n const columnsButton = <ListColumnSelectionButton collectionSlug={collectionConfig?.slug} />\n\n return (\n <div className={baseClass}>\n {isLoadingTable ? (\n <Fragment>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>{addNewButton}</div>\n {Description}\n </div>\n {BeforeInput}\n <p>{t('general:loading')}</p>\n </Fragment>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <Fragment>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>{addNewButton}</div>\n {Description}\n </div>\n {BeforeInput}\n <NoListResults\n Actions={\n canCreate\n ? [\n <AddNewButton\n allowCreate={canCreate}\n baseClass={baseClass}\n collections={config.collections}\n i18n={i18n}\n key=\"create\"\n label={i18n.t('general:createNewLabel', {\n label: isPolymorphic\n ? i18n.t('general:document')\n : getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />,\n ]\n : []\n }\n description={i18n.t('general:noResults', {\n label: isPolymorphic\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n title={i18n.t('general:noResultsFound')}\n />\n </Fragment>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n data={data}\n modifySearchParams={false}\n onQueryChange={setQuery}\n orderableFieldName={\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${fieldPath.replaceAll('.', '_')}_order`\n }\n query={memoizedListQuery}\n >\n <TableColumnsProvider\n collectionSlug={isPolymorphic ? relationTo[0] : relationTo}\n columnState={columnState}\n LinkedCellOverride={\n <DrawerLink currentDrawerID={currentDrawerID} onDrawerOpen={onDrawerOpen} />\n }\n >\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {addNewButton}\n {columnsButton}\n </div>\n {Description}\n </div>\n {BeforeInput}\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer\n initialData={initialDrawerData}\n onDelete={onDrawerDelete}\n onSave={onDrawerSave}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","hoistQueryParamsToAnd","transformColumnsToPreferences","React","Fragment","useCallback","useEffect","useRef","useState","useEffectEvent","useAuth","useConfig","useDocumentEvents","ListQueryProvider","useServerFunctions","TableColumnsProvider","useTranslation","useDocumentDrawer","ListColumnSelectionButton","NoListResults","RelationshipProvider","AddNewButton","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","Description","disableTable","field","fieldPath","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","i18n","t","query","setQuery","collectionConfig","collectionSlug","isPolymorphic","Array","isArray","selectedCollection","setSelectedCollection","undefined","permissions","openDrawerWhenRelationChanges","currentDrawerID","setCurrentDrawerID","DocumentDrawer","closeDrawer","isDrawerOpen","openDrawer","id","isLoadingTable","setIsLoadingTable","data","setData","docs","reduce","acc","doc","columnState","setColumnState","getTableState","renderTable","newQuery","limit","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","renderRowTypes","disableRowTypes","newData","state","newColumnState","NewTable","columns","enableRowSelections","orderableFieldName","orderable","collection","name","tableAppearance","handleTableRender","onDrawerSave","operation","foundDocIndex","findIndex","d","withNewOrUpdatedData","newDocs","onDrawerDelete","args","filter","onDrawerOpen","current","mostRecentUpdate","lastHandledEventRef","handleDocumentEvent","event","relationSlugs","includes","entitySlug","eventDocID","existingDoc","find","value","existingUpdatedAt","updatedAt","isAlreadyReflected","Boolean","canCreate","collections","create","memoizedListQuery","useMemo","addNewButton","_jsx","buttonStyle","className","label","onClick","columnsButton","slug","_jsxs","length","Actions","labels","singular","description","plural","title","modifySearchParams","onQueryChange","replaceAll","LinkedCellOverride","onDelete","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type DocumentEvent,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { hoistQueryParamsToAnd, transformColumnsToPreferences } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { ListColumnSelectionButton } from '../ListColumnSelectionButton/index.js'\nimport { NoListResults } from '../NoListResults/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { AddNewButton } from './AddNewButton.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.css'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly Description?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly fieldPath?: string\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport type OnDrawerOpen = (id?: string, collectionSlug?: string) => void\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n Description,\n disableTable = false,\n field,\n fieldPath,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const isPolymorphic = Array.isArray(relationTo)\n\n const [selectedCollection, setSelectedCollection] = useState(\n isPolymorphic ? undefined : relationTo,\n )\n\n const { permissions } = useAuth()\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const [currentDrawerID, setCurrentDrawerID] = useState<string | undefined>(undefined)\n\n const [DocumentDrawer, , { closeDrawer, isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentDrawerID,\n collectionSlug: selectedCollection,\n })\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n\n const [data, setData] = useState<PaginatedDocs>(() =>\n initialDataFromProps\n ? {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string' || typeof doc === 'number') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n\n return [...acc, doc]\n }, [])\n : [],\n }\n : undefined,\n )\n\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (data?: PaginatedDocs) => {\n const newQuery: ListQuery = {\n limit: field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to CollectionPreferences['columns']\n const defaultColumns = field.admin?.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const renderRowTypes =\n typeof field.admin?.disableRowTypes === 'boolean'\n ? !field.admin.disableRowTypes\n : Array.isArray(relationTo)\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: transformColumnsToPreferences(query?.columns) || defaultColumns,\n data,\n enableRowSelections: false,\n orderableFieldName:\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`,\n parent,\n query: newQuery,\n renderRowTypes,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin?.defaultColumns,\n field.admin?.disableRowTypes,\n field.collection,\n field.name,\n field.orderable,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n ({ doc, operation }) => {\n if (operation === 'create') {\n closeDrawer()\n }\n\n const foundDocIndex = data?.docs?.findIndex((d) => d.id === doc.id)\n const withNewOrUpdatedData: PaginatedDocs = { docs: [] } as PaginatedDocs\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = doc\n withNewOrUpdatedData.docs = newDocs\n } else {\n withNewOrUpdatedData.docs = [doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedData)\n },\n [data?.docs, renderTable, closeDrawer],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n\n void renderTable({\n ...data,\n docs: newDocs,\n })\n\n setCurrentDrawerID(undefined)\n },\n [data, renderTable],\n )\n\n const onDrawerOpen = useCallback<OnDrawerOpen>((id, collectionSlug) => {\n openDrawerWhenRelationChanges.current = true\n\n if (id) {\n setCurrentDrawerID(id)\n } else {\n setCurrentDrawerID(undefined)\n }\n\n if (collectionSlug) {\n setSelectedCollection(collectionSlug)\n } else {\n setSelectedCollection(undefined)\n }\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawerWhenRelationChanges.current = false\n openDrawer()\n }\n }, [openDrawer])\n\n useEffect(() => {\n if (!isDrawerOpen) {\n setCurrentDrawerID(undefined)\n }\n }, [isDrawerOpen])\n\n // Keep this table in sync with documents created, updated, or deleted elsewhere\n // (a sibling join table, the relationship field, or an inline drawer edit).\n const { mostRecentUpdate } = useDocumentEvents()\n const lastHandledEventRef = useRef<DocumentEvent | null>(null)\n\n const handleDocumentEvent = useEffectEvent((event: DocumentEvent | null) => {\n if (disableTable || !event || event === lastHandledEventRef.current) {\n return\n }\n\n const relationSlugs = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n if (!relationSlugs.includes(event.entitySlug)) {\n return\n }\n\n lastHandledEventRef.current = event\n\n // Skip the refetch when the current data already reflects this event — e.g. this\n // table's own drawer already applied it optimistically via onDrawerSave/onDrawerDelete,\n // or a fresh mount already loaded data that includes it. Otherwise saving/deleting from\n // this table's own drawer (which also emits a matching event) would render a second time.\n const eventDocID = event.doc?.id ?? event.id\n\n const existingDoc = isPolymorphic\n ? data?.docs?.find(\n (doc) => doc.relationTo === event.entitySlug && doc.value?.id === eventDocID,\n )\n : data?.docs?.find((doc) => doc.id === eventDocID)\n\n const existingUpdatedAt = isPolymorphic ? existingDoc?.value?.updatedAt : existingDoc?.updatedAt\n\n const isAlreadyReflected =\n event.operation === 'delete'\n ? !existingDoc\n : Boolean(existingDoc) && existingUpdatedAt === event.updatedAt\n\n if (isAlreadyReflected) {\n return\n }\n\n void renderTable()\n })\n\n useEffect(() => {\n handleDocumentEvent(mostRecentUpdate)\n }, [mostRecentUpdate])\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create\n\n useEffect(() => {\n if (isPolymorphic && selectedCollection) {\n openDrawer()\n }\n }, [selectedCollection, openDrawer, isPolymorphic])\n\n useEffect(() => {\n if (isPolymorphic && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n const memoizedListQuery = React.useMemo(\n () => ({\n columns: transformColumnsToPreferences(columnState)?.map(({ accessor }) => accessor),\n limit: field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort ?? collectionConfig?.defaultSort,\n }),\n [columnState, field, collectionConfig],\n )\n\n const addNewButton = (\n <AddNewButton\n allowCreate={allowCreate !== false}\n baseClass={baseClass}\n buttonStyle=\"ghost\"\n className={`${baseClass}__add-new${isPolymorphic ? '-polymorphic' : ''}`}\n collections={config.collections}\n i18n={i18n}\n label={i18n.t('fields:addNew')}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n )\n\n const columnsButton = <ListColumnSelectionButton collectionSlug={collectionConfig?.slug} />\n\n return (\n <div className={baseClass}>\n {isLoadingTable ? (\n <Fragment>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>{addNewButton}</div>\n {Description}\n </div>\n {BeforeInput}\n <p>{t('general:loading')}</p>\n </Fragment>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <Fragment>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>{addNewButton}</div>\n {Description}\n </div>\n {BeforeInput}\n <NoListResults\n Actions={\n canCreate\n ? [\n <AddNewButton\n allowCreate={canCreate}\n baseClass={baseClass}\n collections={config.collections}\n i18n={i18n}\n key=\"create\"\n label={i18n.t('general:createNewLabel', {\n label: isPolymorphic\n ? i18n.t('general:document')\n : getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />,\n ]\n : []\n }\n description={i18n.t('general:noResults', {\n label: isPolymorphic\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n title={i18n.t('general:noResultsFound')}\n />\n </Fragment>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n data={data}\n modifySearchParams={false}\n onQueryChange={setQuery}\n orderableFieldName={\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${fieldPath.replaceAll('.', '_')}_order`\n }\n query={memoizedListQuery}\n >\n <TableColumnsProvider\n collectionSlug={isPolymorphic ? relationTo[0] : relationTo}\n columnState={columnState}\n LinkedCellOverride={\n <DrawerLink currentDrawerID={currentDrawerID} onDrawerOpen={onDrawerOpen} />\n }\n >\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {addNewButton}\n {columnsButton}\n </div>\n {Description}\n </div>\n {BeforeInput}\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer\n initialData={initialDrawerData}\n onDelete={onDrawerDelete}\n onSave={onDrawerSave}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,9 +3,10 @@ import React from 'react';
3
3
  import './index.css';
4
4
  export declare const SelectRow: React.FC<{
5
5
  rowData: {
6
- _isLocked: boolean;
7
- _userEditing: User;
8
- id: string;
6
+ _isLocked?: boolean;
7
+ _userEditing?: User;
8
+ id: number | string;
9
9
  };
10
+ selectRowLabel: string;
10
11
  }>;
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SelectRow/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEnC,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE;QACP,SAAS,EAAE,OAAO,CAAA;QAClB,YAAY,EAAE,IAAI,CAAA;QAClB,EAAE,EAAE,MAAM,CAAA;KACX,CAAA;CACF,CAmBA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SelectRow/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEnC,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,YAAY,CAAC,EAAE,IAAI,CAAA;QACnB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;KACpB,CAAA;IACD,cAAc,EAAE,MAAM,CAAA;CACvB,CAoBA,CAAA"}
@@ -10,9 +10,10 @@ import { Locked } from '../Locked/index.js';
10
10
  import './index.css';
11
11
  const baseClass = 'select-row';
12
12
  export const SelectRow = t0 => {
13
- const $ = _c(13);
13
+ const $ = _c(14);
14
14
  const {
15
- rowData
15
+ rowData,
16
+ selectRowLabel
16
17
  } = t0;
17
18
  const {
18
19
  user
@@ -73,18 +74,20 @@ export const SelectRow = t0 => {
73
74
  t5 = $[9];
74
75
  }
75
76
  let t6;
76
- if ($[10] !== t3 || $[11] !== t5) {
77
+ if ($[10] !== selectRowLabel || $[11] !== t3 || $[12] !== t5) {
77
78
  t6 = _jsx(CheckboxInput, {
79
+ "aria-label": selectRowLabel,
78
80
  checked: t3,
79
81
  className: t4.join(" "),
80
82
  onToggle: t5,
81
83
  variant: "muted"
82
84
  });
83
- $[10] = t3;
84
- $[11] = t5;
85
- $[12] = t6;
85
+ $[10] = selectRowLabel;
86
+ $[11] = t3;
87
+ $[12] = t5;
88
+ $[13] = t6;
86
89
  } else {
87
- t6 = $[12];
90
+ t6 = $[13];
88
91
  }
89
92
  return t6;
90
93
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","CheckboxInput","useAuth","useSelection","Locked","baseClass","SelectRow","t0","$","rowData","user","selected","setSelection","t1","id","Symbol","for","_isLocked","_userEditing","documentIsLocked","_jsx","t2","get","t3","Boolean","t4","t5","t6","checked","className","join","onToggle","variant"],"sources":["../../../src/elements/SelectRow/index.tsx"],"sourcesContent":["'use client'\nimport type { User } from 'payload'\n\nimport React from 'react'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useSelection } from '../../providers/Selection/index.js'\nimport { Locked } from '../Locked/index.js'\nimport './index.css'\n\nconst baseClass = 'select-row'\n\nexport const SelectRow: React.FC<{\n rowData: {\n _isLocked: boolean\n _userEditing: User\n id: string\n }\n}> = ({ rowData }) => {\n const { user } = useAuth()\n const { selected, setSelection } = useSelection()\n const { _isLocked, _userEditing } = rowData || {}\n\n const documentIsLocked = _isLocked && _userEditing\n\n if (documentIsLocked && _userEditing.id !== user?.id) {\n return <Locked user={_userEditing} />\n }\n\n return (\n <CheckboxInput\n checked={Boolean(selected.get(rowData.id))}\n className={[baseClass, `${baseClass}__checkbox`].join(' ')}\n onToggle={() => setSelection(rowData.id)}\n variant=\"muted\"\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,aAAa,QAAQ;AAC9B,SAASC,OAAO,QAAQ;AACxB,SAASC,YAAY,QAAQ;AAC7B,SAASC,MAAM,QAAQ;AACvB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,SAAA,GAMRC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU;EAAA,IAAAF,EAAW;EACf;IAAAG;EAAA,IAAiBR,OAAA;EACjB;IAAAS,QAAA;IAAAC;EAAA,IAAmCT,YAAA;EAAA,IAAAU,EAAA;EAAA,IAAAL,CAAA,QAAAC,OAAA,IAAAD,CAAA,QAAAE,IAAA,EAAAI,EAAA;IAM1BD,EAAA,GAAAE,MAAA,CAAAC,GAAA,8B;;MALT;QAAAC,SAAA;QAAAC;MAAA,IAAoCT,OAAA,MAAY;MAEhD,MAAAU,gBAAA,GAAyBF,SAAA,IAAaC,YAAA;MAAA,IAElCC,gBAAA,IAAoBD,YAAA,CAAAJ,EAAA,KAAoBJ,IAAA,EAAAI,EAAM;QACzCD,EAAA,GAAAO,IAAA,CAAAhB,MAAA;UAAAM,IAAA,EAAcQ;QAAA,C;;;;;;;;;;;;;;;IAKFG,EAAA,GAAAV,QAAA,CAAAW,GAAA,CAAab,OAAA,CAAAK,EAAU;IAAAN,CAAA,MAAAC,OAAA,CAAAK,EAAA;IAAAN,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAA/B,MAAAe,EAAA,GAAAC,OAAA,CAAQH,EAAuB;EAAA,IAAAI,EAAA;EAAA,IAAAjB,CAAA,QAAAO,MAAA,CAAAC,GAAA;IAC7BS,EAAA,IAAApB,SAAA,EAAY,GAAAA,SAAA,YAAwB;IAACG,CAAA,MAAAiB,EAAA;EAAA;IAAAA,EAAA,GAAAjB,CAAA;EAAA;EAAA,IAAAkB,EAAA;EAAA,IAAAlB,CAAA,QAAAC,OAAA,CAAAK,EAAA,IAAAN,CAAA,QAAAI,YAAA;IACtCc,EAAA,GAAAA,CAAA,KAAMd,YAAA,CAAaH,OAAA,CAAAK,EAAU;IAAAN,CAAA,MAAAC,OAAA,CAAAK,EAAA;IAAAN,CAAA,MAAAI,YAAA;IAAAJ,CAAA,MAAAkB,EAAA;EAAA;IAAAA,EAAA,GAAAlB,CAAA;EAAA;EAAA,IAAAmB,EAAA;EAAA,IAAAnB,CAAA,SAAAe,EAAA,IAAAf,CAAA,SAAAkB,EAAA;IAHzCC,EAAA,GAAAP,IAAA,CAAAnB,aAAA;MAAA2B,OAAA,EACWL,EAA+B;MAAAM,SAAA,EAC7BJ,EAAqC,CAAAK,IAAA,CAAM;MAAAC,QAAA,EAC5CL,EAA6B;MAAAM,OAAA,EAC/B;IAAA,C;;;;;;;SAJVL,E;CAOJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","CheckboxInput","useAuth","useSelection","Locked","baseClass","SelectRow","t0","$","rowData","selectRowLabel","user","selected","setSelection","t1","id","Symbol","for","_isLocked","_userEditing","documentIsLocked","_jsx","t2","get","t3","Boolean","t4","t5","t6","checked","className","join","onToggle","variant"],"sources":["../../../src/elements/SelectRow/index.tsx"],"sourcesContent":["'use client'\nimport type { User } from 'payload'\n\nimport React from 'react'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useSelection } from '../../providers/Selection/index.js'\nimport { Locked } from '../Locked/index.js'\nimport './index.css'\n\nconst baseClass = 'select-row'\n\nexport const SelectRow: React.FC<{\n rowData: {\n _isLocked?: boolean\n _userEditing?: User\n id: number | string\n }\n selectRowLabel: string\n}> = ({ rowData, selectRowLabel }) => {\n const { user } = useAuth()\n const { selected, setSelection } = useSelection()\n const { _isLocked, _userEditing } = rowData || {}\n\n const documentIsLocked = _isLocked && _userEditing\n\n if (documentIsLocked && _userEditing.id !== user?.id) {\n return <Locked user={_userEditing} />\n }\n\n return (\n <CheckboxInput\n aria-label={selectRowLabel}\n checked={Boolean(selected.get(rowData.id))}\n className={[baseClass, `${baseClass}__checkbox`].join(' ')}\n onToggle={() => setSelection(rowData.id)}\n variant=\"muted\"\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,aAAa,QAAQ;AAC9B,SAASC,OAAO,QAAQ;AACxB,SAASC,YAAY,QAAQ;AAC7B,SAASC,MAAM,QAAQ;AACvB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,SAAA,GAORC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,OAAA;IAAAC;EAAA,IAAAH,EAA2B;EAC/B;IAAAI;EAAA,IAAiBT,OAAA;EACjB;IAAAU,QAAA;IAAAC;EAAA,IAAmCV,YAAA;EAAA,IAAAW,EAAA;EAAA,IAAAN,CAAA,QAAAC,OAAA,IAAAD,CAAA,QAAAG,IAAA,EAAAI,EAAA;IAM1BD,EAAA,GAAAE,MAAA,CAAAC,GAAA,8B;;MALT;QAAAC,SAAA;QAAAC;MAAA,IAAoCV,OAAA,MAAY;MAEhD,MAAAW,gBAAA,GAAyBF,SAAA,IAAaC,YAAA;MAAA,IAElCC,gBAAA,IAAoBD,YAAA,CAAAJ,EAAA,KAAoBJ,IAAA,EAAAI,EAAM;QACzCD,EAAA,GAAAO,IAAA,CAAAjB,MAAA;UAAAO,IAAA,EAAcQ;QAAA,C;;;;;;;;;;;;;;;IAMFG,EAAA,GAAAV,QAAA,CAAAW,GAAA,CAAad,OAAA,CAAAM,EAAU;IAAAP,CAAA,MAAAC,OAAA,CAAAM,EAAA;IAAAP,CAAA,MAAAI,QAAA;IAAAJ,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAA/B,MAAAgB,EAAA,GAAAC,OAAA,CAAQH,EAAuB;EAAA,IAAAI,EAAA;EAAA,IAAAlB,CAAA,QAAAQ,MAAA,CAAAC,GAAA;IAC7BS,EAAA,IAAArB,SAAA,EAAY,GAAAA,SAAA,YAAwB;IAACG,CAAA,MAAAkB,EAAA;EAAA;IAAAA,EAAA,GAAAlB,CAAA;EAAA;EAAA,IAAAmB,EAAA;EAAA,IAAAnB,CAAA,QAAAC,OAAA,CAAAM,EAAA,IAAAP,CAAA,QAAAK,YAAA;IACtCc,EAAA,GAAAA,CAAA,KAAMd,YAAA,CAAaJ,OAAA,CAAAM,EAAU;IAAAP,CAAA,MAAAC,OAAA,CAAAM,EAAA;IAAAP,CAAA,MAAAK,YAAA;IAAAL,CAAA,MAAAmB,EAAA;EAAA;IAAAA,EAAA,GAAAnB,CAAA;EAAA;EAAA,IAAAoB,EAAA;EAAA,IAAApB,CAAA,SAAAE,cAAA,IAAAF,CAAA,SAAAgB,EAAA,IAAAhB,CAAA,SAAAmB,EAAA;IAJzCC,EAAA,GAAAP,IAAA,CAAApB,aAAA;MAAA,cACcS,cAAA;MAAAmB,OAAA,EACHL,EAA+B;MAAAM,SAAA,EAC7BJ,EAAqC,CAAAK,IAAA,CAAM;MAAAC,QAAA,EAC5CL,EAA6B;MAAAM,OAAA,EAC/B;IAAA,C;;;;;;;;SALVL,E;CAQJ","ignoreList":[]}
@@ -11,7 +11,6 @@
11
11
  color: var(--color-icon);
12
12
  cursor: pointer;
13
13
  outline: none;
14
- transition: background-color 100ms ease;
15
14
 
16
15
  &:hover {
17
16
  background: var(--color-bg-hover);
@@ -26,20 +25,4 @@
26
25
  outline-offset: -1px;
27
26
  }
28
27
  }
29
-
30
- .sidebar-toggle .tooltip {
31
- left: 0;
32
- top: 100%;
33
- bottom: auto;
34
- transform: translate3d(0, var(--spacer-1), 0);
35
- }
36
-
37
- .sidebar-toggle .tooltip::after {
38
- top: 0;
39
- left: var(--spacer-3);
40
- bottom: auto;
41
- transform: translate3d(-50%, -100%, 0);
42
- border-bottom: var(--caret-size) solid var(--color-bg-inverse);
43
- border-top: none;
44
- }
45
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SortColumn/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,aAAa,CAAA;AAEpB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAID,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+DhD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SortColumn/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,aAAa,CAAA;AAEpB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAID,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoEhD,CAAA"}
@@ -10,7 +10,7 @@ import { useTranslation } from '../../providers/Translation/index.js';
10
10
  import './index.css';
11
11
  const baseClass = 'sort-column';
12
12
  export const SortColumn = props => {
13
- const $ = _c(20);
13
+ const $ = _c(21);
14
14
  const {
15
15
  name,
16
16
  appearance,
@@ -56,22 +56,29 @@ export const SortColumn = props => {
56
56
  descClasses = $[5];
57
57
  }
58
58
  const isSorted = sort === asc || sort === desc;
59
- const t1 = appearance && `${baseClass}--appearance-${appearance}`;
60
- const t2 = isSorted && `${baseClass}--sorted`;
61
- let t3;
62
- if ($[6] !== t1 || $[7] !== t2) {
63
- t3 = [baseClass, t1, t2].filter(Boolean);
64
- $[6] = t1;
65
- $[7] = t2;
66
- $[8] = t3;
67
- } else {
68
- t3 = $[8];
69
- }
70
- const t4 = t3.join(" ");
71
- let t5;
72
- if ($[9] !== Label || $[10] !== asc || $[11] !== ascClasses || $[12] !== desc || $[13] !== descClasses || $[14] !== disable || $[15] !== handleSortChange || $[16] !== label || $[17] !== t || $[18] !== t4) {
73
- t5 = _jsxs("div", {
74
- className: t4,
59
+ let t1;
60
+ if ($[6] !== Label || $[7] !== appearance || $[8] !== asc || $[9] !== ascClasses || $[10] !== desc || $[11] !== descClasses || $[12] !== disable || $[13] !== handleSortChange || $[14] !== isSorted || $[15] !== label || $[16] !== t) {
61
+ const descLabel = t("general:sortByLabelDirection", {
62
+ direction: t("general:descending"),
63
+ label
64
+ });
65
+ const ascLabel = t("general:sortByLabelDirection", {
66
+ direction: t("general:ascending"),
67
+ label
68
+ });
69
+ const t2 = appearance && `${baseClass}--appearance-${appearance}`;
70
+ const t3 = isSorted && `${baseClass}--sorted`;
71
+ let t4;
72
+ if ($[18] !== t2 || $[19] !== t3) {
73
+ t4 = [baseClass, t2, t3].filter(Boolean);
74
+ $[18] = t2;
75
+ $[19] = t3;
76
+ $[20] = t4;
77
+ } else {
78
+ t4 = $[20];
79
+ }
80
+ t1 = _jsxs("div", {
81
+ className: t4.join(" "),
75
82
  children: [_jsx("span", {
76
83
  className: `${baseClass}__label`,
77
84
  children: Label ?? _jsx(FieldLabel, {
@@ -82,23 +89,19 @@ export const SortColumn = props => {
82
89
  }), !disable && _jsxs("div", {
83
90
  className: `${baseClass}__buttons`,
84
91
  children: [_jsx("button", {
85
- "aria-label": t("general:sortByLabelDirection", {
86
- direction: t("general:descending"),
87
- label
88
- }),
92
+ "aria-label": descLabel,
89
93
  className: [...descClasses, `${baseClass}__button`].filter(Boolean).join(" "),
90
94
  onClick: () => void handleSortChange(desc),
95
+ title: descLabel,
91
96
  type: "button",
92
97
  children: _jsx(ChevronIcon, {
93
98
  size: 16
94
99
  })
95
100
  }), _jsx("button", {
96
- "aria-label": t("general:sortByLabelDirection", {
97
- direction: t("general:ascending"),
98
- label
99
- }),
101
+ "aria-label": ascLabel,
100
102
  className: [...ascClasses, `${baseClass}__button`].filter(Boolean).join(" "),
101
103
  onClick: () => void handleSortChange(asc),
104
+ title: ascLabel,
102
105
  type: "button",
103
106
  children: _jsx(ChevronIcon, {
104
107
  direction: "up",
@@ -107,20 +110,21 @@ export const SortColumn = props => {
107
110
  })]
108
111
  })]
109
112
  });
110
- $[9] = Label;
111
- $[10] = asc;
112
- $[11] = ascClasses;
113
- $[12] = desc;
114
- $[13] = descClasses;
115
- $[14] = disable;
116
- $[15] = handleSortChange;
117
- $[16] = label;
118
- $[17] = t;
119
- $[18] = t4;
120
- $[19] = t5;
113
+ $[6] = Label;
114
+ $[7] = appearance;
115
+ $[8] = asc;
116
+ $[9] = ascClasses;
117
+ $[10] = desc;
118
+ $[11] = descClasses;
119
+ $[12] = disable;
120
+ $[13] = handleSortChange;
121
+ $[14] = isSorted;
122
+ $[15] = label;
123
+ $[16] = t;
124
+ $[17] = t1;
121
125
  } else {
122
- t5 = $[19];
126
+ t1 = $[17];
123
127
  }
124
- return t5;
128
+ return t1;
125
129
  };
126
130
  //# sourceMappingURL=index.js.map