@payloadcms/ui 3.0.0-beta.60 → 3.0.0-beta.62

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 (241) hide show
  1. package/dist/elements/Banner/index.scss +4 -4
  2. package/dist/elements/CodeEditor/types.d.ts +2 -2
  3. package/dist/elements/CodeEditor/types.d.ts.map +1 -1
  4. package/dist/elements/CodeEditor/types.js.map +1 -1
  5. package/dist/elements/Collapsible/index.scss +13 -47
  6. package/dist/elements/DatePicker/types.d.ts +2 -2
  7. package/dist/elements/DatePicker/types.d.ts.map +1 -1
  8. package/dist/elements/DatePicker/types.js.map +1 -1
  9. package/dist/elements/DocumentDrawer/types.d.ts +4 -4
  10. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  11. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  12. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts +2 -2
  13. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
  14. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  15. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +4 -4
  16. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  17. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  18. package/dist/elements/Drawer/types.d.ts +2 -2
  19. package/dist/elements/Drawer/types.d.ts.map +1 -1
  20. package/dist/elements/Drawer/types.js.map +1 -1
  21. package/dist/elements/Dropzone/index.d.ts +1 -0
  22. package/dist/elements/Dropzone/index.d.ts.map +1 -1
  23. package/dist/elements/Dropzone/index.js +8 -1
  24. package/dist/elements/Dropzone/index.js.map +1 -1
  25. package/dist/elements/ErrorPill/index.scss +2 -14
  26. package/dist/elements/FileDetails/index.d.ts +2 -2
  27. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  28. package/dist/elements/FileDetails/index.js.map +1 -1
  29. package/dist/elements/GenerateConfirmation/index.scss +1 -0
  30. package/dist/elements/ListDrawer/types.d.ts +2 -2
  31. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  32. package/dist/elements/ListDrawer/types.js.map +1 -1
  33. package/dist/elements/Pill/index.d.ts +2 -2
  34. package/dist/elements/Pill/index.d.ts.map +1 -1
  35. package/dist/elements/Pill/index.js.map +1 -1
  36. package/dist/elements/Pill/index.scss +9 -21
  37. package/dist/elements/PreviewSizes/index.d.ts +4 -4
  38. package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
  39. package/dist/elements/PreviewSizes/index.js.map +1 -1
  40. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  41. package/dist/elements/PublishButton/index.js +16 -0
  42. package/dist/elements/PublishButton/index.js.map +1 -1
  43. package/dist/elements/ReactSelect/Control/index.js +0 -1
  44. package/dist/elements/ReactSelect/Control/index.js.map +1 -1
  45. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts +2 -2
  46. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  47. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  48. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts +2 -2
  49. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts.map +1 -1
  50. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  51. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  52. package/dist/elements/ReactSelect/index.js +0 -1
  53. package/dist/elements/ReactSelect/index.js.map +1 -1
  54. package/dist/elements/ReactSelect/index.scss +9 -2
  55. package/dist/elements/ReactSelect/types.d.ts +1 -1
  56. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  57. package/dist/elements/ReactSelect/types.js.map +1 -1
  58. package/dist/elements/Status/index.scss +1 -0
  59. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  60. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +0 -1
  61. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  62. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  63. package/dist/elements/TableColumns/buildColumnState.js +0 -1
  64. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  65. package/dist/elements/ThumbnailCard/index.d.ts +2 -2
  66. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  67. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  68. package/dist/elements/Upload/index.d.ts.map +1 -1
  69. package/dist/elements/Upload/index.js +94 -7
  70. package/dist/elements/Upload/index.js.map +1 -1
  71. package/dist/elements/Upload/index.scss +6 -3
  72. package/dist/elements/WhereBuilder/Condition/Relationship/index.scss +2 -2
  73. package/dist/elements/WhereBuilder/validateWhereQuery.js +0 -1
  74. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -1
  75. package/dist/exports/client/{CodeEditor-UTZFZWZG.js → CodeEditor-OI35YO7H.js} +1 -1
  76. package/dist/exports/client/{CodeEditor-UTZFZWZG.js.map → CodeEditor-OI35YO7H.js.map} +1 -1
  77. package/dist/exports/client/{DatePicker-SFJJWFZ5.js → DatePicker-5IFHNQHA.js} +2 -2
  78. package/dist/exports/client/chunk-WDFUZ6GL.js +30 -0
  79. package/dist/exports/client/{chunk-IF2WZON3.js.map → chunk-WDFUZ6GL.js.map} +4 -4
  80. package/dist/exports/client/index.js +6 -6
  81. package/dist/exports/client/index.js.map +4 -4
  82. package/dist/exports/shared/index.js.map +1 -1
  83. package/dist/fields/Array/ArrayRow.d.ts +2 -2
  84. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  85. package/dist/fields/Array/ArrayRow.js.map +1 -1
  86. package/dist/fields/Array/index.d.ts +2 -2
  87. package/dist/fields/Array/index.d.ts.map +1 -1
  88. package/dist/fields/Array/index.js.map +1 -1
  89. package/dist/fields/Blocks/BlockRow.d.ts +2 -2
  90. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  91. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  92. package/dist/fields/Blocks/index.d.ts +2 -2
  93. package/dist/fields/Blocks/index.d.ts.map +1 -1
  94. package/dist/fields/Blocks/index.js.map +1 -1
  95. package/dist/fields/Checkbox/index.js +2 -1
  96. package/dist/fields/Checkbox/index.js.map +1 -1
  97. package/dist/fields/Checkbox/index.scss +2 -1
  98. package/dist/fields/Checkbox/types.d.ts +2 -2
  99. package/dist/fields/Checkbox/types.d.ts.map +1 -1
  100. package/dist/fields/Checkbox/types.js.map +1 -1
  101. package/dist/fields/Code/index.d.ts +2 -2
  102. package/dist/fields/Code/index.d.ts.map +1 -1
  103. package/dist/fields/Code/index.js +1 -1
  104. package/dist/fields/Code/index.js.map +1 -1
  105. package/dist/fields/Code/index.scss +3 -21
  106. package/dist/fields/Collapsible/index.d.ts +2 -2
  107. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  108. package/dist/fields/Collapsible/index.js.map +1 -1
  109. package/dist/fields/Collapsible/index.scss +0 -4
  110. package/dist/fields/DateTime/index.d.ts +2 -2
  111. package/dist/fields/DateTime/index.d.ts.map +1 -1
  112. package/dist/fields/DateTime/index.js +1 -1
  113. package/dist/fields/DateTime/index.js.map +1 -1
  114. package/dist/fields/Email/index.d.ts +2 -2
  115. package/dist/fields/Email/index.d.ts.map +1 -1
  116. package/dist/fields/Email/index.js.map +1 -1
  117. package/dist/fields/FieldError/index.scss +6 -5
  118. package/dist/fields/Group/index.d.ts +2 -2
  119. package/dist/fields/Group/index.d.ts.map +1 -1
  120. package/dist/fields/Group/index.js.map +1 -1
  121. package/dist/fields/Hidden/index.d.ts +2 -2
  122. package/dist/fields/Hidden/index.d.ts.map +1 -1
  123. package/dist/fields/Hidden/index.js.map +1 -1
  124. package/dist/fields/JSON/index.d.ts +2 -2
  125. package/dist/fields/JSON/index.d.ts.map +1 -1
  126. package/dist/fields/JSON/index.js +0 -5
  127. package/dist/fields/JSON/index.js.map +1 -1
  128. package/dist/fields/JSON/index.scss +6 -25
  129. package/dist/fields/Number/index.d.ts +2 -2
  130. package/dist/fields/Number/index.d.ts.map +1 -1
  131. package/dist/fields/Number/index.js +1 -3
  132. package/dist/fields/Number/index.js.map +1 -1
  133. package/dist/fields/Password/index.d.ts +2 -2
  134. package/dist/fields/Password/index.d.ts.map +1 -1
  135. package/dist/fields/Password/index.js.map +1 -1
  136. package/dist/fields/Point/index.d.ts +2 -2
  137. package/dist/fields/Point/index.d.ts.map +1 -1
  138. package/dist/fields/Point/index.js +6 -6
  139. package/dist/fields/Point/index.js.map +1 -1
  140. package/dist/fields/Point/index.scss +4 -0
  141. package/dist/fields/RadioGroup/index.d.ts +2 -2
  142. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  143. package/dist/fields/RadioGroup/index.js +7 -6
  144. package/dist/fields/RadioGroup/index.js.map +1 -1
  145. package/dist/fields/RadioGroup/index.scss +7 -0
  146. package/dist/fields/Relationship/index.scss +2 -2
  147. package/dist/fields/Relationship/types.d.ts +2 -2
  148. package/dist/fields/Relationship/types.d.ts.map +1 -1
  149. package/dist/fields/Relationship/types.js.map +1 -1
  150. package/dist/fields/RichText/index.d.ts +2 -2
  151. package/dist/fields/RichText/index.d.ts.map +1 -1
  152. package/dist/fields/RichText/index.js.map +1 -1
  153. package/dist/fields/Row/types.d.ts +2 -2
  154. package/dist/fields/Row/types.d.ts.map +1 -1
  155. package/dist/fields/Row/types.js.map +1 -1
  156. package/dist/fields/Select/Input.d.ts +2 -2
  157. package/dist/fields/Select/Input.d.ts.map +1 -1
  158. package/dist/fields/Select/Input.js +0 -5
  159. package/dist/fields/Select/Input.js.map +1 -1
  160. package/dist/fields/Select/index.d.ts +2 -2
  161. package/dist/fields/Select/index.d.ts.map +1 -1
  162. package/dist/fields/Select/index.js +1 -1
  163. package/dist/fields/Select/index.js.map +1 -1
  164. package/dist/fields/Tabs/index.d.ts +2 -2
  165. package/dist/fields/Tabs/index.d.ts.map +1 -1
  166. package/dist/fields/Tabs/index.js.map +1 -1
  167. package/dist/fields/Text/types.d.ts +4 -4
  168. package/dist/fields/Text/types.d.ts.map +1 -1
  169. package/dist/fields/Text/types.js.map +1 -1
  170. package/dist/fields/Textarea/index.d.ts.map +1 -1
  171. package/dist/fields/Textarea/index.js +1 -1
  172. package/dist/fields/Textarea/index.js.map +1 -1
  173. package/dist/fields/Textarea/types.d.ts +4 -4
  174. package/dist/fields/Textarea/types.d.ts.map +1 -1
  175. package/dist/fields/Textarea/types.js.map +1 -1
  176. package/dist/fields/Upload/Input.d.ts +2 -2
  177. package/dist/fields/Upload/Input.d.ts.map +1 -1
  178. package/dist/fields/Upload/Input.js.map +1 -1
  179. package/dist/fields/Upload/types.d.ts +2 -2
  180. package/dist/fields/Upload/types.d.ts.map +1 -1
  181. package/dist/fields/Upload/types.js.map +1 -1
  182. package/dist/forms/Form/index.d.ts.map +1 -1
  183. package/dist/forms/Form/index.js +1 -1
  184. package/dist/forms/Form/index.js.map +1 -1
  185. package/dist/forms/Form/types.d.ts +7 -7
  186. package/dist/forms/Form/types.d.ts.map +1 -1
  187. package/dist/forms/Form/types.js.map +1 -1
  188. package/dist/forms/RowLabel/Context/index.d.ts +2 -2
  189. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  190. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  191. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  192. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +1 -1
  193. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  194. package/dist/forms/buildStateFromSchema/buildStateFromSchema.spec.js +1 -1
  195. package/dist/forms/buildStateFromSchema/buildStateFromSchema.spec.js.map +1 -1
  196. package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.d.ts +2 -2
  197. package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.d.ts.map +1 -1
  198. package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.js.map +1 -1
  199. package/dist/hooks/useHotkey.js +1 -1
  200. package/dist/hooks/useHotkey.js.map +1 -1
  201. package/dist/hooks/useIntersect.js +1 -1
  202. package/dist/hooks/useIntersect.js.map +1 -1
  203. package/dist/hooks/useThrottledEffect.d.ts.map +1 -1
  204. package/dist/hooks/useThrottledEffect.js +1 -1
  205. package/dist/hooks/useThrottledEffect.js.map +1 -1
  206. package/dist/providers/ComponentMap/buildComponentMap/actions.d.ts.map +1 -1
  207. package/dist/providers/ComponentMap/buildComponentMap/actions.js +3 -3
  208. package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -1
  209. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -1
  210. package/dist/providers/ComponentMap/buildComponentMap/collections.js +8 -8
  211. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -1
  212. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  213. package/dist/providers/ComponentMap/buildComponentMap/fields.js +1 -0
  214. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  215. package/dist/providers/ComponentMap/buildComponentMap/index.js +2 -2
  216. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  217. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +2 -2
  218. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  219. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  220. package/dist/providers/DocumentInfo/index.d.ts +2 -2
  221. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  222. package/dist/providers/DocumentInfo/index.js.map +1 -1
  223. package/dist/providers/DocumentInfo/types.d.ts +6 -6
  224. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  225. package/dist/providers/DocumentInfo/types.js.map +1 -1
  226. package/dist/providers/ListInfo/index.d.ts +2 -2
  227. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  228. package/dist/providers/ListInfo/index.js.map +1 -1
  229. package/dist/providers/ListQuery/index.d.ts +2 -2
  230. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  231. package/dist/providers/ListQuery/index.js.map +1 -1
  232. package/dist/styles.css +1 -1
  233. package/dist/utilities/api.d.ts +2 -2
  234. package/dist/utilities/api.d.ts.map +1 -1
  235. package/dist/utilities/api.js.map +1 -1
  236. package/dist/utilities/buildFormState.d.ts.map +1 -1
  237. package/dist/utilities/buildFormState.js +0 -2
  238. package/dist/utilities/buildFormState.js.map +1 -1
  239. package/package.json +12 -19
  240. package/dist/exports/client/chunk-IF2WZON3.js +0 -30
  241. /package/dist/exports/client/{DatePicker-SFJJWFZ5.js.map → DatePicker-5IFHNQHA.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/PreviewSizes/index.tsx"],"sourcesContent":["'use client'\nimport type { Data, FileSize, SanitizedCollectionConfig, SanitizedUploadConfig } from 'payload'\n\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { FileMeta } from '../FileDetails/FileMeta/index.js'\nimport './index.scss'\n\nconst baseClass = 'preview-sizes'\n\ntype FileInfo = FileSize & {\n url: string\n}\ntype FilesSizesWithUrl = {\n [key: string]: FileInfo\n}\n\nconst sortSizes = (sizes: FilesSizesWithUrl, imageSizes: SanitizedUploadConfig['imageSizes']) => {\n if (!imageSizes || imageSizes.length === 0) return sizes\n\n const orderedSizes: FilesSizesWithUrl = {}\n\n imageSizes.forEach(({ name }) => {\n if (sizes[name]) {\n orderedSizes[name] = sizes[name]\n }\n })\n\n return orderedSizes\n}\n\ntype PreviewSizeCardProps = {\n active: boolean\n meta: FileInfo\n name: string\n onClick?: () => void\n previewSrc: string\n}\nconst PreviewSizeCard: React.FC<PreviewSizeCardProps> = ({\n name,\n active,\n meta,\n onClick,\n previewSrc,\n}) => {\n return (\n <div\n className={[`${baseClass}__sizeOption`, active && `${baseClass}--selected`]\n .filter(Boolean)\n .join(' ')}\n onClick={typeof onClick === 'function' ? onClick : undefined}\n onKeyDown={(e) => {\n if (typeof onClick !== 'function') return\n if (e.key === 'Enter') onClick()\n }}\n role=\"button\"\n tabIndex={0}\n >\n <div className={`${baseClass}__image`}>\n <img alt={meta.filename} src={previewSrc} />\n </div>\n <div className={`${baseClass}__sizeMeta`}>\n <div className={`${baseClass}__sizeName`}>{name}</div>\n <FileMeta {...meta} />\n </div>\n </div>\n )\n}\n\nexport type PreviewSizesProps = {\n doc: Data & {\n sizes?: FilesSizesWithUrl\n }\n imageCacheTag?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const PreviewSizes: React.FC<PreviewSizesProps> = ({ doc, imageCacheTag, uploadConfig }) => {\n const { imageSizes } = uploadConfig\n const { sizes } = doc\n\n const [orderedSizes, setOrderedSizes] = useState<FilesSizesWithUrl>(() =>\n sortSizes(sizes, imageSizes),\n )\n const [selectedSize, setSelectedSize] = useState<null | string>(null)\n\n const generateImageUrl = (doc) => {\n if (!doc.filename) return null\n if (doc.url) return `${doc.url}${imageCacheTag ? `?${imageCacheTag}` : ''}`\n }\n useEffect(() => {\n setOrderedSizes(sortSizes(sizes, imageSizes))\n }, [sizes, imageSizes, imageCacheTag])\n\n const mainPreviewSrc = selectedSize\n ? generateImageUrl(doc.sizes[selectedSize])\n : generateImageUrl(doc)\n\n const originalImage = useMemo(\n (): FileInfo => ({\n filename: doc.filename,\n filesize: doc.filesize,\n height: doc.height,\n mimeType: doc.mimeType,\n url: doc.url,\n width: doc.width,\n }),\n [doc],\n )\n const originalFilename = 'Original'\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__imageWrap`}>\n <div className={`${baseClass}__meta`}>\n <div className={`${baseClass}__sizeName`}>{selectedSize || originalFilename}</div>\n <FileMeta {...(selectedSize ? orderedSizes[selectedSize] : originalImage)} />\n </div>\n <img alt={doc.filename} className={`${baseClass}__preview`} src={mainPreviewSrc} />\n </div>\n <div className={`${baseClass}__listWrap`}>\n <div className={`${baseClass}__list`}>\n <PreviewSizeCard\n active={!selectedSize}\n meta={originalImage}\n name={originalFilename}\n onClick={() => setSelectedSize(null)}\n previewSrc={generateImageUrl(doc)}\n />\n\n {Object.entries(orderedSizes).map(([key, val]) => {\n const selected = selectedSize === key\n const previewSrc = generateImageUrl(val)\n\n if (previewSrc) {\n return (\n <PreviewSizeCard\n active={selected}\n key={key}\n meta={val}\n name={key}\n onClick={() => setSelectedSize(key)}\n previewSrc={previewSrc}\n />\n )\n }\n\n return null\n })}\n </div>\n </div>\n </div>\n )\n}\n"],"names":["React","useEffect","useMemo","useState","FileMeta","baseClass","sortSizes","sizes","imageSizes","length","orderedSizes","forEach","name","PreviewSizeCard","active","meta","onClick","previewSrc","div","className","filter","Boolean","join","undefined","onKeyDown","e","key","role","tabIndex","img","alt","filename","src","PreviewSizes","doc","imageCacheTag","uploadConfig","setOrderedSizes","selectedSize","setSelectedSize","generateImageUrl","url","mainPreviewSrc","originalImage","filesize","height","mimeType","width","originalFilename","Object","entries","map","val","selected"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/PreviewSizes/index.tsx"],"sourcesContent":["'use client'\nimport type { Data, FileSize, SanitizedCollectionConfig, SanitizedUploadConfig } from 'payload'\n\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { FileMeta } from '../FileDetails/FileMeta/index.js'\nimport './index.scss'\n\nconst baseClass = 'preview-sizes'\n\ntype FileInfo = {\n url: string\n} & FileSize\ntype FilesSizesWithUrl = {\n [key: string]: FileInfo\n}\n\nconst sortSizes = (sizes: FilesSizesWithUrl, imageSizes: SanitizedUploadConfig['imageSizes']) => {\n if (!imageSizes || imageSizes.length === 0) return sizes\n\n const orderedSizes: FilesSizesWithUrl = {}\n\n imageSizes.forEach(({ name }) => {\n if (sizes[name]) {\n orderedSizes[name] = sizes[name]\n }\n })\n\n return orderedSizes\n}\n\ntype PreviewSizeCardProps = {\n active: boolean\n meta: FileInfo\n name: string\n onClick?: () => void\n previewSrc: string\n}\nconst PreviewSizeCard: React.FC<PreviewSizeCardProps> = ({\n name,\n active,\n meta,\n onClick,\n previewSrc,\n}) => {\n return (\n <div\n className={[`${baseClass}__sizeOption`, active && `${baseClass}--selected`]\n .filter(Boolean)\n .join(' ')}\n onClick={typeof onClick === 'function' ? onClick : undefined}\n onKeyDown={(e) => {\n if (typeof onClick !== 'function') return\n if (e.key === 'Enter') onClick()\n }}\n role=\"button\"\n tabIndex={0}\n >\n <div className={`${baseClass}__image`}>\n <img alt={meta.filename} src={previewSrc} />\n </div>\n <div className={`${baseClass}__sizeMeta`}>\n <div className={`${baseClass}__sizeName`}>{name}</div>\n <FileMeta {...meta} />\n </div>\n </div>\n )\n}\n\nexport type PreviewSizesProps = {\n doc: {\n sizes?: FilesSizesWithUrl\n } & Data\n imageCacheTag?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const PreviewSizes: React.FC<PreviewSizesProps> = ({ doc, imageCacheTag, uploadConfig }) => {\n const { imageSizes } = uploadConfig\n const { sizes } = doc\n\n const [orderedSizes, setOrderedSizes] = useState<FilesSizesWithUrl>(() =>\n sortSizes(sizes, imageSizes),\n )\n const [selectedSize, setSelectedSize] = useState<null | string>(null)\n\n const generateImageUrl = (doc) => {\n if (!doc.filename) return null\n if (doc.url) return `${doc.url}${imageCacheTag ? `?${imageCacheTag}` : ''}`\n }\n useEffect(() => {\n setOrderedSizes(sortSizes(sizes, imageSizes))\n }, [sizes, imageSizes, imageCacheTag])\n\n const mainPreviewSrc = selectedSize\n ? generateImageUrl(doc.sizes[selectedSize])\n : generateImageUrl(doc)\n\n const originalImage = useMemo(\n (): FileInfo => ({\n filename: doc.filename,\n filesize: doc.filesize,\n height: doc.height,\n mimeType: doc.mimeType,\n url: doc.url,\n width: doc.width,\n }),\n [doc],\n )\n const originalFilename = 'Original'\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__imageWrap`}>\n <div className={`${baseClass}__meta`}>\n <div className={`${baseClass}__sizeName`}>{selectedSize || originalFilename}</div>\n <FileMeta {...(selectedSize ? orderedSizes[selectedSize] : originalImage)} />\n </div>\n <img alt={doc.filename} className={`${baseClass}__preview`} src={mainPreviewSrc} />\n </div>\n <div className={`${baseClass}__listWrap`}>\n <div className={`${baseClass}__list`}>\n <PreviewSizeCard\n active={!selectedSize}\n meta={originalImage}\n name={originalFilename}\n onClick={() => setSelectedSize(null)}\n previewSrc={generateImageUrl(doc)}\n />\n\n {Object.entries(orderedSizes).map(([key, val]) => {\n const selected = selectedSize === key\n const previewSrc = generateImageUrl(val)\n\n if (previewSrc) {\n return (\n <PreviewSizeCard\n active={selected}\n key={key}\n meta={val}\n name={key}\n onClick={() => setSelectedSize(key)}\n previewSrc={previewSrc}\n />\n )\n }\n\n return null\n })}\n </div>\n </div>\n </div>\n )\n}\n"],"names":["React","useEffect","useMemo","useState","FileMeta","baseClass","sortSizes","sizes","imageSizes","length","orderedSizes","forEach","name","PreviewSizeCard","active","meta","onClick","previewSrc","div","className","filter","Boolean","join","undefined","onKeyDown","e","key","role","tabIndex","img","alt","filename","src","PreviewSizes","doc","imageCacheTag","uploadConfig","setOrderedSizes","selectedSize","setSelectedSize","generateImageUrl","url","mainPreviewSrc","originalImage","filesize","height","mimeType","width","originalFilename","Object","entries","map","val","selected"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAO1C,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAiC7D,CAAA;AAED,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAGzC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAS1C,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA2C7D,CAAA;AAED,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAGzC,CAAA"}
@@ -3,16 +3,32 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import React, { useCallback } from 'react';
4
4
  import { useForm, useFormModified } from '../../forms/Form/context.js';
5
5
  import { FormSubmit } from '../../forms/Submit/index.js';
6
+ import { useHotkey } from '../../hooks/useHotkey.js';
6
7
  import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
8
+ import { useEditDepth } from '../../providers/EditDepth/index.js';
7
9
  import { useTranslation } from '../../providers/Translation/index.js';
8
10
  export const DefaultPublishButton = ({ label: labelProp })=>{
9
11
  const { hasPublishPermission, publishedDoc, unpublishedVersions } = useDocumentInfo();
10
12
  const { submit } = useForm();
11
13
  const modified = useFormModified();
14
+ const editDepth = useEditDepth();
12
15
  const { t } = useTranslation();
13
16
  const label = labelProp || t('version:publishChanges');
14
17
  const hasNewerVersions = unpublishedVersions?.totalDocs > 0;
15
18
  const canPublish = hasPublishPermission && (modified || hasNewerVersions || !publishedDoc);
19
+ useHotkey({
20
+ cmdCtrlKey: true,
21
+ editDepth,
22
+ keyCodes: [
23
+ 's'
24
+ ]
25
+ }, (e)=>{
26
+ e.preventDefault();
27
+ e.stopPropagation();
28
+ if (submit) {
29
+ void submit();
30
+ }
31
+ });
16
32
  const publish = useCallback(()=>{
17
33
  void submit({
18
34
  overrides: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nexport const DefaultPublishButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const { hasPublishPermission, publishedDoc, unpublishedVersions } = useDocumentInfo()\n\n const { submit } = useForm()\n const modified = useFormModified()\n\n const { t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const hasNewerVersions = unpublishedVersions?.totalDocs > 0\n const canPublish = hasPublishPermission && (modified || hasNewerVersions || !publishedDoc)\n\n const publish = useCallback(() => {\n void submit({\n overrides: {\n _status: 'published',\n },\n })\n }, [submit])\n\n if (!hasPublishPermission) return null\n\n return (\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n onClick={publish}\n size=\"small\"\n type=\"button\"\n >\n {label}\n </FormSubmit>\n )\n}\n\ntype Props = {\n CustomComponent?: React.ReactNode\n}\n\nexport const PublishButton: React.FC<Props> = ({ CustomComponent }) => {\n if (CustomComponent) return CustomComponent\n return <DefaultPublishButton />\n}\n"],"names":["React","useCallback","useForm","useFormModified","FormSubmit","useDocumentInfo","useTranslation","DefaultPublishButton","label","labelProp","hasPublishPermission","publishedDoc","unpublishedVersions","submit","modified","t","hasNewerVersions","totalDocs","canPublish","publish","overrides","_status","buttonId","disabled","onClick","size","type","PublishButton","CustomComponent"],"mappings":"AAAA;;AAEA,OAAOA,SAASC,WAAW,QAAQ,QAAO;AAE1C,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA6B;AACtE,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,cAAc,QAAQ,uCAAsC;AAErE,OAAO,MAAMC,uBAAqD,CAAC,EAAEC,OAAOC,SAAS,EAAE;IACrF,MAAM,EAAEC,oBAAoB,EAAEC,YAAY,EAAEC,mBAAmB,EAAE,GAAGP;IAEpE,MAAM,EAAEQ,MAAM,EAAE,GAAGX;IACnB,MAAMY,WAAWX;IAEjB,MAAM,EAAEY,CAAC,EAAE,GAAGT;IACd,MAAME,QAAQC,aAAaM,EAAE;IAE7B,MAAMC,mBAAmBJ,qBAAqBK,YAAY;IAC1D,MAAMC,aAAaR,wBAAyBI,CAAAA,YAAYE,oBAAoB,CAACL,YAAW;IAExF,MAAMQ,UAAUlB,YAAY;QAC1B,KAAKY,OAAO;YACVO,WAAW;gBACTC,SAAS;YACX;QACF;IACF,GAAG;QAACR;KAAO;IAEX,IAAI,CAACH,sBAAsB,OAAO;IAElC,qBACE,KAACN;QACCkB,UAAS;QACTC,UAAU,CAACL;QACXM,SAASL;QACTM,MAAK;QACLC,MAAK;kBAEJlB;;AAGP,EAAC;AAMD,OAAO,MAAMmB,gBAAiC,CAAC,EAAEC,eAAe,EAAE;IAChE,IAAIA,iBAAiB,OAAOA;IAC5B,qBAAO,KAACrB;AACV,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nexport const DefaultPublishButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const { hasPublishPermission, publishedDoc, unpublishedVersions } = useDocumentInfo()\n\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n\n const { t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const hasNewerVersions = unpublishedVersions?.totalDocs > 0\n const canPublish = hasPublishPermission && (modified || hasNewerVersions || !publishedDoc)\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (submit) {\n void submit()\n }\n })\n\n const publish = useCallback(() => {\n void submit({\n overrides: {\n _status: 'published',\n },\n })\n }, [submit])\n\n if (!hasPublishPermission) return null\n\n return (\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n onClick={publish}\n size=\"small\"\n type=\"button\"\n >\n {label}\n </FormSubmit>\n )\n}\n\ntype Props = {\n CustomComponent?: React.ReactNode\n}\n\nexport const PublishButton: React.FC<Props> = ({ CustomComponent }) => {\n if (CustomComponent) return CustomComponent\n return <DefaultPublishButton />\n}\n"],"names":["React","useCallback","useForm","useFormModified","FormSubmit","useHotkey","useDocumentInfo","useEditDepth","useTranslation","DefaultPublishButton","label","labelProp","hasPublishPermission","publishedDoc","unpublishedVersions","submit","modified","editDepth","t","hasNewerVersions","totalDocs","canPublish","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","publish","overrides","_status","buttonId","disabled","onClick","size","type","PublishButton","CustomComponent"],"mappings":"AAAA;;AAEA,OAAOA,SAASC,WAAW,QAAQ,QAAO;AAE1C,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA6B;AACtE,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,2BAA0B;AACpD,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,cAAc,QAAQ,uCAAsC;AAErE,OAAO,MAAMC,uBAAqD,CAAC,EAAEC,OAAOC,SAAS,EAAE;IACrF,MAAM,EAAEC,oBAAoB,EAAEC,YAAY,EAAEC,mBAAmB,EAAE,GAAGR;IAEpE,MAAM,EAAES,MAAM,EAAE,GAAGb;IACnB,MAAMc,WAAWb;IACjB,MAAMc,YAAYV;IAElB,MAAM,EAAEW,CAAC,EAAE,GAAGV;IACd,MAAME,QAAQC,aAAaO,EAAE;IAE7B,MAAMC,mBAAmBL,qBAAqBM,YAAY;IAC1D,MAAMC,aAAaT,wBAAyBI,CAAAA,YAAYG,oBAAoB,CAACN,YAAW;IAExFR,UAAU;QAAEiB,YAAY;QAAML;QAAWM,UAAU;YAAC;SAAI;IAAC,GAAG,CAACC;QAC3DA,EAAEC,cAAc;QAChBD,EAAEE,eAAe;QAEjB,IAAIX,QAAQ;YACV,KAAKA;QACP;IACF;IAEA,MAAMY,UAAU1B,YAAY;QAC1B,KAAKc,OAAO;YACVa,WAAW;gBACTC,SAAS;YACX;QACF;IACF,GAAG;QAACd;KAAO;IAEX,IAAI,CAACH,sBAAsB,OAAO;IAElC,qBACE,KAACR;QACC0B,UAAS;QACTC,UAAU,CAACV;QACXW,SAASL;QACTM,MAAK;QACLC,MAAK;kBAEJxB;;AAGP,EAAC;AAMD,OAAO,MAAMyB,gBAAiC,CAAC,EAAEC,eAAe,EAAE;IAChE,IAAIA,iBAAiB,OAAOA;IAC5B,qBAAO,KAAC3B;AACV,EAAC"}
@@ -22,7 +22,6 @@ export const Control = (props)=>{
22
22
  },
23
23
  // react-select has this typed incorrectly so we disable the linting rule
24
24
  // we need to prevent react-select from hijacking the 'onKeyDown' event while modals are open (i.e. the 'Relationship' field component)
25
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
26
25
  onMouseDown: (e)=>{
27
26
  // we need to prevent react-select from hijacking the 'onMouseDown' event while modals are open (i.e. the 'Relationship' field component)
28
27
  if (!disableMouseDown) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/ReactSelect/Control/index.tsx"],"sourcesContent":["'use client'\nimport type { ControlProps } from 'react-select'\n\nimport React from 'react'\nimport { components as SelectComponents } from 'react-select'\n\nimport type { Option } from '../types.js'\n\nexport const Control: React.FC<ControlProps<Option, any>> = (props) => {\n const {\n children,\n innerProps,\n // @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\n selectProps: { customProps: { disableKeyDown, disableMouseDown } = {} } = {},\n } = props\n\n return (\n <React.Fragment>\n {/* @ts-expect-error // TODO Fix this - Broke with React 19 types */}\n <SelectComponents.Control\n {...props}\n innerProps={{\n ...innerProps,\n onKeyDown: (e) => {\n if (disableKeyDown) {\n e.stopPropagation()\n // Create event for keydown listeners which specifically want to bypass this stopPropagation\n const bypassEvent = new CustomEvent('bypassKeyDown', { detail: e })\n document.dispatchEvent(bypassEvent)\n }\n },\n // react-select has this typed incorrectly so we disable the linting rule\n // we need to prevent react-select from hijacking the 'onKeyDown' event while modals are open (i.e. the 'Relationship' field component)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n onMouseDown: (e) => {\n // we need to prevent react-select from hijacking the 'onMouseDown' event while modals are open (i.e. the 'Relationship' field component)\n if (!disableMouseDown) {\n innerProps.onMouseDown(e)\n }\n },\n }}\n >\n {children}\n </SelectComponents.Control>\n </React.Fragment>\n )\n}\n"],"names":["React","components","SelectComponents","Control","props","children","innerProps","selectProps","customProps","disableKeyDown","disableMouseDown","Fragment","onKeyDown","e","stopPropagation","bypassEvent","CustomEvent","detail","document","dispatchEvent","onMouseDown"],"mappings":"AAAA;;AAGA,OAAOA,WAAW,QAAO;AACzB,SAASC,cAAcC,gBAAgB,QAAQ,eAAc;AAI7D,OAAO,MAAMC,UAA+C,CAACC;IAC3D,MAAM,EACJC,QAAQ,EACRC,UAAU,EACV,8FAA8F;IAC9FC,aAAa,EAAEC,aAAa,EAAEC,cAAc,EAAEC,gBAAgB,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAC7E,GAAGN;IAEJ,qBACE,KAACJ,MAAMW,QAAQ;kBAEb,cAAA,KAACT,iBAAiBC,OAAO;YACtB,GAAGC,KAAK;YACTE,YAAY;gBACV,GAAGA,UAAU;gBACbM,WAAW,CAACC;oBACV,IAAIJ,gBAAgB;wBAClBI,EAAEC,eAAe;wBACjB,4FAA4F;wBAC5F,MAAMC,cAAc,IAAIC,YAAY,iBAAiB;4BAAEC,QAAQJ;wBAAE;wBACjEK,SAASC,aAAa,CAACJ;oBACzB;gBACF;gBACA,yEAAyE;gBACzE,uIAAuI;gBACvI,6DAA6D;gBAC7DK,aAAa,CAACP;oBACZ,yIAAyI;oBACzI,IAAI,CAACH,kBAAkB;wBACrBJ,WAAWc,WAAW,CAACP;oBACzB;gBACF;YACF;sBAECR;;;AAIT,EAAC"}
1
+ {"version":3,"sources":["../../../../src/elements/ReactSelect/Control/index.tsx"],"sourcesContent":["'use client'\nimport type { ControlProps } from 'react-select'\n\nimport React from 'react'\nimport { components as SelectComponents } from 'react-select'\n\nimport type { Option } from '../types.js'\n\nexport const Control: React.FC<ControlProps<Option, any>> = (props) => {\n const {\n children,\n innerProps,\n // @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\n selectProps: { customProps: { disableKeyDown, disableMouseDown } = {} } = {},\n } = props\n\n return (\n <React.Fragment>\n {/* @ts-expect-error // TODO Fix this - Broke with React 19 types */}\n <SelectComponents.Control\n {...props}\n innerProps={{\n ...innerProps,\n onKeyDown: (e) => {\n if (disableKeyDown) {\n e.stopPropagation()\n // Create event for keydown listeners which specifically want to bypass this stopPropagation\n const bypassEvent = new CustomEvent('bypassKeyDown', { detail: e })\n document.dispatchEvent(bypassEvent)\n }\n },\n // react-select has this typed incorrectly so we disable the linting rule\n // we need to prevent react-select from hijacking the 'onKeyDown' event while modals are open (i.e. the 'Relationship' field component)\n\n onMouseDown: (e) => {\n // we need to prevent react-select from hijacking the 'onMouseDown' event while modals are open (i.e. the 'Relationship' field component)\n if (!disableMouseDown) {\n innerProps.onMouseDown(e)\n }\n },\n }}\n >\n {children}\n </SelectComponents.Control>\n </React.Fragment>\n )\n}\n"],"names":["React","components","SelectComponents","Control","props","children","innerProps","selectProps","customProps","disableKeyDown","disableMouseDown","Fragment","onKeyDown","e","stopPropagation","bypassEvent","CustomEvent","detail","document","dispatchEvent","onMouseDown"],"mappings":"AAAA;;AAGA,OAAOA,WAAW,QAAO;AACzB,SAASC,cAAcC,gBAAgB,QAAQ,eAAc;AAI7D,OAAO,MAAMC,UAA+C,CAACC;IAC3D,MAAM,EACJC,QAAQ,EACRC,UAAU,EACV,8FAA8F;IAC9FC,aAAa,EAAEC,aAAa,EAAEC,cAAc,EAAEC,gBAAgB,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAC7E,GAAGN;IAEJ,qBACE,KAACJ,MAAMW,QAAQ;kBAEb,cAAA,KAACT,iBAAiBC,OAAO;YACtB,GAAGC,KAAK;YACTE,YAAY;gBACV,GAAGA,UAAU;gBACbM,WAAW,CAACC;oBACV,IAAIJ,gBAAgB;wBAClBI,EAAEC,eAAe;wBACjB,4FAA4F;wBAC5F,MAAMC,cAAc,IAAIC,YAAY,iBAAiB;4BAAEC,QAAQJ;wBAAE;wBACjEK,SAASC,aAAa,CAACJ;oBACzB;gBACF;gBACA,yEAAyE;gBACzE,uIAAuI;gBAEvIK,aAAa,CAACP;oBACZ,yIAAyI;oBACzI,IAAI,CAACH,kBAAkB;wBACrBJ,WAAWc,WAAW,CAACP;oBACzB;gBACF;YACF;sBAECR;;;AAIT,EAAC"}
@@ -2,7 +2,7 @@ import type { DropdownIndicatorProps } from 'react-select';
2
2
  import React, { type JSX } from 'react';
3
3
  import type { Option as OptionType } from '../types.js';
4
4
  import './index.scss';
5
- export declare const DropdownIndicator: React.FC<DropdownIndicatorProps<OptionType, true> & {
5
+ export declare const DropdownIndicator: React.FC<{
6
6
  innerProps: JSX.IntrinsicElements['button'];
7
- }>;
7
+ } & DropdownIndicatorProps<OptionType, true>>;
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/DropdownIndicator/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAG1D,OAAO,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AAEvD,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CACtC,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG;IACzC,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CAC5C,CAmBF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/DropdownIndicator/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAG1D,OAAO,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AAEvD,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CACtC;IACE,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CAC5C,GAAG,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,CAmB7C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/ReactSelect/DropdownIndicator/index.tsx"],"sourcesContent":["'use client'\nimport type { DropdownIndicatorProps } from 'react-select'\n\nimport { ChevronIcon } from '@payloadcms/ui'\nimport React, { type JSX } from 'react'\n\nimport type { Option as OptionType } from '../types.js'\n\nimport './index.scss'\n\nconst baseClass = 'dropdown-indicator'\nexport const DropdownIndicator: React.FC<\n DropdownIndicatorProps<OptionType, true> & {\n innerProps: JSX.IntrinsicElements['button']\n }\n> = (props) => {\n const {\n innerProps: { ref, ...restInnerProps },\n } = props\n\n return (\n <button\n className={baseClass}\n ref={ref}\n {...restInnerProps}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.key = ' '\n }}\n type=\"button\"\n >\n <ChevronIcon className={`${baseClass}__icon`} />\n </button>\n )\n}\n"],"names":["ChevronIcon","React","baseClass","DropdownIndicator","props","innerProps","ref","restInnerProps","button","className","onKeyDown","e","key","type"],"mappings":"AAAA;;AAGA,SAASA,WAAW,QAAQ,iBAAgB;AAC5C,OAAOC,WAAyB,QAAO;AAIvC,OAAO,eAAc;AAErB,MAAMC,YAAY;AAClB,OAAO,MAAMC,oBAIT,CAACC;IACH,MAAM,EACJC,YAAY,EAAEC,GAAG,EAAE,GAAGC,gBAAgB,EACvC,GAAGH;IAEJ,qBACE,KAACI;QACCC,WAAWP;QACXI,KAAKA;QACJ,GAAGC,cAAc;QAClBG,WAAW,CAACC;YACV,IAAIA,EAAEC,GAAG,KAAK,SAASD,EAAEC,GAAG,GAAG;QACjC;QACAC,MAAK;kBAEL,cAAA,KAACb;YAAYS,WAAW,CAAC,EAAEP,UAAU,MAAM,CAAC;;;AAGlD,EAAC"}
1
+ {"version":3,"sources":["../../../../src/elements/ReactSelect/DropdownIndicator/index.tsx"],"sourcesContent":["'use client'\nimport type { DropdownIndicatorProps } from 'react-select'\n\nimport { ChevronIcon } from '@payloadcms/ui'\nimport React, { type JSX } from 'react'\n\nimport type { Option as OptionType } from '../types.js'\n\nimport './index.scss'\n\nconst baseClass = 'dropdown-indicator'\nexport const DropdownIndicator: React.FC<\n {\n innerProps: JSX.IntrinsicElements['button']\n } & DropdownIndicatorProps<OptionType, true>\n> = (props) => {\n const {\n innerProps: { ref, ...restInnerProps },\n } = props\n\n return (\n <button\n className={baseClass}\n ref={ref}\n {...restInnerProps}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.key = ' '\n }}\n type=\"button\"\n >\n <ChevronIcon className={`${baseClass}__icon`} />\n </button>\n )\n}\n"],"names":["ChevronIcon","React","baseClass","DropdownIndicator","props","innerProps","ref","restInnerProps","button","className","onKeyDown","e","key","type"],"mappings":"AAAA;;AAGA,SAASA,WAAW,QAAQ,iBAAgB;AAC5C,OAAOC,WAAyB,QAAO;AAIvC,OAAO,eAAc;AAErB,MAAMC,YAAY;AAClB,OAAO,MAAMC,oBAIT,CAACC;IACH,MAAM,EACJC,YAAY,EAAEC,GAAG,EAAE,GAAGC,gBAAgB,EACvC,GAAGH;IAEJ,qBACE,KAACI;QACCC,WAAWP;QACXI,KAAKA;QACJ,GAAGC,cAAc;QAClBG,WAAW,CAACC;YACV,IAAIA,EAAEC,GAAG,KAAK,SAASD,EAAEC,GAAG,GAAG;QACjC;QACAC,MAAK;kBAEL,cAAA,KAACb;YAAYS,WAAW,CAAC,EAAEP,UAAU,MAAM,CAAC;;;AAGlD,EAAC"}
@@ -2,7 +2,7 @@ import type { MultiValueRemoveProps } from 'react-select';
2
2
  import React, { type JSX } from 'react';
3
3
  import type { Option as OptionType } from '../types.js';
4
4
  import './index.scss';
5
- export declare const MultiValueRemove: React.FC<MultiValueRemoveProps<OptionType> & {
5
+ export declare const MultiValueRemove: React.FC<{
6
6
  innerProps: JSX.IntrinsicElements['button'];
7
- }>;
7
+ } & MultiValueRemoveProps<OptionType>>;
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/MultiValueRemove/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEzD,OAAO,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CACrC,qBAAqB,CAAC,UAAU,CAAC,GAAG;IAClC,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CAC5C,CAkCF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/MultiValueRemove/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEzD,OAAO,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CACrC;IACE,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CAC5C,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAkCtC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/ReactSelect/MultiValueRemove/index.tsx"],"sourcesContent":["'use client'\nimport type { MultiValueRemoveProps } from 'react-select'\n\nimport React, { type JSX } from 'react'\n\nimport type { Option as OptionType } from '../types.js'\n\nimport { XIcon } from '../../../icons/X/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Tooltip } from '../../Tooltip/index.js'\nimport './index.scss'\n\nconst baseClass = 'multi-value-remove'\n\nexport const MultiValueRemove: React.FC<\n MultiValueRemoveProps<OptionType> & {\n innerProps: JSX.IntrinsicElements['button']\n }\n> = (props) => {\n const {\n innerProps: { className, onClick, onTouchEnd },\n } = props\n\n const [showTooltip, setShowTooltip] = React.useState(false)\n const { t } = useTranslation()\n\n return (\n <button\n aria-label={t('general:remove')}\n className={[baseClass, className].filter(Boolean).join(' ')}\n onClick={(e) => {\n setShowTooltip(false)\n onClick(e)\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.stopPropagation()\n }\n }}\n onMouseDown={(e) => e.stopPropagation()}\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n onTouchEnd={onTouchEnd}\n type=\"button\"\n >\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {t('general:remove')}\n </Tooltip>\n <XIcon className={`${baseClass}__icon`} />\n </button>\n )\n}\n"],"names":["React","XIcon","useTranslation","Tooltip","baseClass","MultiValueRemove","props","innerProps","className","onClick","onTouchEnd","showTooltip","setShowTooltip","useState","t","button","aria-label","filter","Boolean","join","e","onKeyDown","key","stopPropagation","onMouseDown","onMouseEnter","onMouseLeave","type","show"],"mappings":"AAAA;;AAGA,OAAOA,WAAyB,QAAO;AAIvC,SAASC,KAAK,QAAQ,4BAA2B;AACjD,SAASC,cAAc,QAAQ,0CAAyC;AACxE,SAASC,OAAO,QAAQ,yBAAwB;AAChD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,mBAIT,CAACC;IACH,MAAM,EACJC,YAAY,EAAEC,SAAS,EAAEC,OAAO,EAAEC,UAAU,EAAE,EAC/C,GAAGJ;IAEJ,MAAM,CAACK,aAAaC,eAAe,GAAGZ,MAAMa,QAAQ,CAAC;IACrD,MAAM,EAAEC,CAAC,EAAE,GAAGZ;IAEd,qBACE,MAACa;QACCC,cAAYF,EAAE;QACdN,WAAW;YAACJ;YAAWI;SAAU,CAACS,MAAM,CAACC,SAASC,IAAI,CAAC;QACvDV,SAAS,CAACW;YACRR,eAAe;YACfH,QAAQW;QACV;QACAC,WAAW,CAACD;YACV,IAAIA,EAAEE,GAAG,KAAK,SAAS;gBACrBF,EAAEG,eAAe;YACnB;QACF;QACAC,aAAa,CAACJ,IAAMA,EAAEG,eAAe;QACrCE,cAAc,IAAMb,eAAe;QACnCc,cAAc,IAAMd,eAAe;QACnCF,YAAYA;QACZiB,MAAK;;0BAEL,KAACxB;gBAAQK,WAAW,CAAC,EAAEJ,UAAU,SAAS,CAAC;gBAAEwB,MAAMjB;0BAChDG,EAAE;;0BAEL,KAACb;gBAAMO,WAAW,CAAC,EAAEJ,UAAU,MAAM,CAAC;;;;AAG5C,EAAC"}
1
+ {"version":3,"sources":["../../../../src/elements/ReactSelect/MultiValueRemove/index.tsx"],"sourcesContent":["'use client'\nimport type { MultiValueRemoveProps } from 'react-select'\n\nimport React, { type JSX } from 'react'\n\nimport type { Option as OptionType } from '../types.js'\n\nimport { XIcon } from '../../../icons/X/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Tooltip } from '../../Tooltip/index.js'\nimport './index.scss'\n\nconst baseClass = 'multi-value-remove'\n\nexport const MultiValueRemove: React.FC<\n {\n innerProps: JSX.IntrinsicElements['button']\n } & MultiValueRemoveProps<OptionType>\n> = (props) => {\n const {\n innerProps: { className, onClick, onTouchEnd },\n } = props\n\n const [showTooltip, setShowTooltip] = React.useState(false)\n const { t } = useTranslation()\n\n return (\n <button\n aria-label={t('general:remove')}\n className={[baseClass, className].filter(Boolean).join(' ')}\n onClick={(e) => {\n setShowTooltip(false)\n onClick(e)\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.stopPropagation()\n }\n }}\n onMouseDown={(e) => e.stopPropagation()}\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n onTouchEnd={onTouchEnd}\n type=\"button\"\n >\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {t('general:remove')}\n </Tooltip>\n <XIcon className={`${baseClass}__icon`} />\n </button>\n )\n}\n"],"names":["React","XIcon","useTranslation","Tooltip","baseClass","MultiValueRemove","props","innerProps","className","onClick","onTouchEnd","showTooltip","setShowTooltip","useState","t","button","aria-label","filter","Boolean","join","e","onKeyDown","key","stopPropagation","onMouseDown","onMouseEnter","onMouseLeave","type","show"],"mappings":"AAAA;;AAGA,OAAOA,WAAyB,QAAO;AAIvC,SAASC,KAAK,QAAQ,4BAA2B;AACjD,SAASC,cAAc,QAAQ,0CAAyC;AACxE,SAASC,OAAO,QAAQ,yBAAwB;AAChD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,mBAIT,CAACC;IACH,MAAM,EACJC,YAAY,EAAEC,SAAS,EAAEC,OAAO,EAAEC,UAAU,EAAE,EAC/C,GAAGJ;IAEJ,MAAM,CAACK,aAAaC,eAAe,GAAGZ,MAAMa,QAAQ,CAAC;IACrD,MAAM,EAAEC,CAAC,EAAE,GAAGZ;IAEd,qBACE,MAACa;QACCC,cAAYF,EAAE;QACdN,WAAW;YAACJ;YAAWI;SAAU,CAACS,MAAM,CAACC,SAASC,IAAI,CAAC;QACvDV,SAAS,CAACW;YACRR,eAAe;YACfH,QAAQW;QACV;QACAC,WAAW,CAACD;YACV,IAAIA,EAAEE,GAAG,KAAK,SAAS;gBACrBF,EAAEG,eAAe;YACnB;QACF;QACAC,aAAa,CAACJ,IAAMA,EAAEG,eAAe;QACrCE,cAAc,IAAMb,eAAe;QACnCc,cAAc,IAAMd,eAAe;QACnCF,YAAYA;QACZiB,MAAK;;0BAEL,KAACxB;gBAAQK,WAAW,CAAC,EAAEJ,UAAU,SAAS,CAAC;gBAAEwB,MAAMjB;0BAChDG,EAAE;;0BAEL,KAACb;gBAAMO,WAAW,CAAC,EAAEJ,UAAU,MAAM,CAAC;;;;AAG5C,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAI/C,OAAO,KAAK,EAAU,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACjE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAcxC,OAAO,cAAc,CAAA;AA+LrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQzD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAI/C,OAAO,KAAK,EAAU,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACjE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAcxC,OAAO,cAAc,CAAA;AA8LrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQzD,CAAA"}
@@ -81,7 +81,6 @@ const SelectAdapter = (props)=>{
81
81
  });
82
82
  }
83
83
  const handleKeyDown = (event)=>{
84
- // eslint-disable-next-line no-restricted-globals
85
84
  if (numberOnly === true) {
86
85
  const acceptableKeys = [
87
86
  'Tab',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useId } from 'react'\nimport Select from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option, ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport { Input } from './Input/index.js'\nimport { MultiValue, generateMultiValueDraggableID } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\nimport './index.scss'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n const uuid = useId()\n const [hasMounted, setHasMounted] = React.useState(false)\n\n useEffect(() => {\n setHasMounted(true)\n }, [])\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n if (!hasMounted) {\n return <ShimmerEffect height=\"calc(var(--base) * 2 + 2px)\" />\n }\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n // eslint-disable-next-line no-restricted-globals\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') return\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { getOptionValue, onChange, value } = props\n\n let draggableIDs: string[] = []\n if (value) {\n draggableIDs = (Array.isArray(value) ? value : [value]).map((optionValue) => {\n return generateMultiValueDraggableID(optionValue, getOptionValue)\n })\n }\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={draggableIDs}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"names":["arrayMove","getTranslation","React","useEffect","useId","Select","CreatableSelect","useTranslation","DraggableSortable","ShimmerEffect","ClearIndicator","Control","DropdownIndicator","Input","MultiValue","generateMultiValueDraggableID","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","uuid","hasMounted","setHasMounted","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","height","captureMenuScroll","classNamePrefix","instanceId","isDisabled","menuPlacement","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","draggableIDs","Array","isArray","map","optionValue","ids","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useId } from 'react'\nimport Select from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option, ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport { Input } from './Input/index.js'\nimport { MultiValue, generateMultiValueDraggableID } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\nimport './index.scss'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n const uuid = useId()\n const [hasMounted, setHasMounted] = React.useState(false)\n\n useEffect(() => {\n setHasMounted(true)\n }, [])\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n if (!hasMounted) {\n return <ShimmerEffect height=\"calc(var(--base) * 2 + 2px)\" />\n }\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') return\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { getOptionValue, onChange, value } = props\n\n let draggableIDs: string[] = []\n if (value) {\n draggableIDs = (Array.isArray(value) ? value : [value]).map((optionValue) => {\n return generateMultiValueDraggableID(optionValue, getOptionValue)\n })\n }\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={draggableIDs}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"names":["arrayMove","getTranslation","React","useEffect","useId","Select","CreatableSelect","useTranslation","DraggableSortable","ShimmerEffect","ClearIndicator","Control","DropdownIndicator","Input","MultiValue","generateMultiValueDraggableID","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","uuid","hasMounted","setHasMounted","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","height","captureMenuScroll","classNamePrefix","instanceId","isDisabled","menuPlacement","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","draggableIDs","Array","isArray","map","optionValue","ids","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"mappings":"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"}
@@ -59,9 +59,16 @@
59
59
  }
60
60
  }
61
61
 
62
- &--error {
62
+ &--error,
63
+ &--error:hover,
64
+ &--error:focus-within {
63
65
  div.rs__control {
64
- background-color: var(--theme-error-100);
66
+ background-color: var(--theme-error-50);
67
+ border: 1px solid var(--theme-error-500);
68
+
69
+ & > div.rs__indicator > button.dropdown-indicator[type='button'] {
70
+ border: none;
71
+ }
65
72
  }
66
73
  }
67
74
 
@@ -15,7 +15,7 @@ declare module 'react-select/dist/declarations/src/Select' {
15
15
  }
16
16
  declare module 'react-select/dist/declarations/src' {
17
17
  interface CommonPropsAndClassName<Option, IsMulti extends boolean, Group extends GroupBase<Option>> extends CommonProps<Option, IsMulti, Group> {
18
- customProps?: ReactSelectStateManagerProps<Option, IsMulti, Group> & CustomSelectProps;
18
+ customProps?: CustomSelectProps & ReactSelectStateManagerProps<Option, IsMulti, Group>;
19
19
  }
20
20
  }
21
21
  export type Option<TValue = unknown> = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ReactSelect/types.ts"],"sourcesContent":["import type { CommonProps, GroupBase, Props as ReactSelectStateManagerProps } from 'react-select'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\ntype CustomSelectProps = {\n disableKeyDown?: boolean\n disableMouseDown?: boolean\n draggableProps?: any\n droppableRef?: React.RefObject<HTMLDivElement | null>\n onSave?: DocumentDrawerProps['onSave']\n setDrawerIsOpen?: (isOpen: boolean) => void\n}\n\n// augment the types for the `Select` component from `react-select`\n// this is to include the `selectProps` prop at the top-level `Select` component\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src/Select' {\n export interface Props<Option, IsMulti extends boolean, Group extends GroupBase<Option>> {\n customProps?: CustomSelectProps\n }\n}\n\n// augment the types for the `CommonPropsAndClassName` from `react-select`\n// this will include the `selectProps` prop to every `react-select` component automatically\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src' {\n export interface CommonPropsAndClassName<\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n > extends CommonProps<Option, IsMulti, Group> {\n customProps?: ReactSelectStateManagerProps<Option, IsMulti, Group> & CustomSelectProps\n }\n}\n\nexport type Option<TValue = unknown> = {\n [key: string]: unknown\n //* The ID is used to identify the option in the UI. If it doesn't exist and value cannot be transformed into a string, sorting won't work */\n id?: string\n value: TValue\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type ReactSelectAdapterProps = {\n backspaceRemovesValue?: boolean\n blurInputOnSelect?: boolean\n className?: string\n components?: {\n [key: string]: React.FC<any>\n }\n customProps?: CustomSelectProps\n disabled?: boolean\n filterOption?:\n | ((\n { data, label, value }: { data: Option; label: string; value: string },\n search: string,\n ) => boolean)\n | undefined\n getOptionValue?: ReactSelectStateManagerProps<\n Option,\n boolean,\n GroupBase<Option>\n >['getOptionValue']\n inputId?: string\n isClearable?: boolean\n /** Allows you to create own values in the UI despite them not being pre-specified */\n isCreatable?: boolean\n isLoading?: boolean\n /** Allows you to specify multiple values instead of just one */\n isMulti?: boolean\n isOptionSelected?: any\n isSearchable?: boolean\n isSortable?: boolean\n noOptionsMessage?: (obj: { inputValue: string }) => string\n numberOnly?: boolean\n onChange?: (value: Option | Option[]) => void // eslint-disable-line @typescript-eslint/no-explicit-any\n onInputChange?: (val: string) => void\n onMenuClose?: () => void\n onMenuOpen?: () => void\n onMenuScrollToBottom?: () => void\n options: Option[] | OptionGroup[]\n placeholder?: string\n showError?: boolean\n value?: Option | Option[]\n}\n"],"names":[],"mappings":"AA+CA,WAyCC"}
1
+ {"version":3,"sources":["../../../src/elements/ReactSelect/types.ts"],"sourcesContent":["import type { CommonProps, GroupBase, Props as ReactSelectStateManagerProps } from 'react-select'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\ntype CustomSelectProps = {\n disableKeyDown?: boolean\n disableMouseDown?: boolean\n draggableProps?: any\n droppableRef?: React.RefObject<HTMLDivElement | null>\n onSave?: DocumentDrawerProps['onSave']\n setDrawerIsOpen?: (isOpen: boolean) => void\n}\n\n// augment the types for the `Select` component from `react-select`\n// this is to include the `selectProps` prop at the top-level `Select` component\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src/Select' {\n export interface Props<Option, IsMulti extends boolean, Group extends GroupBase<Option>> {\n customProps?: CustomSelectProps\n }\n}\n\n// augment the types for the `CommonPropsAndClassName` from `react-select`\n// this will include the `selectProps` prop to every `react-select` component automatically\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src' {\n export interface CommonPropsAndClassName<\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n > extends CommonProps<Option, IsMulti, Group> {\n customProps?: CustomSelectProps & ReactSelectStateManagerProps<Option, IsMulti, Group>\n }\n}\n\nexport type Option<TValue = unknown> = {\n [key: string]: unknown\n //* The ID is used to identify the option in the UI. If it doesn't exist and value cannot be transformed into a string, sorting won't work */\n id?: string\n value: TValue\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type ReactSelectAdapterProps = {\n backspaceRemovesValue?: boolean\n blurInputOnSelect?: boolean\n className?: string\n components?: {\n [key: string]: React.FC<any>\n }\n customProps?: CustomSelectProps\n disabled?: boolean\n filterOption?:\n | ((\n { data, label, value }: { data: Option; label: string; value: string },\n search: string,\n ) => boolean)\n | undefined\n getOptionValue?: ReactSelectStateManagerProps<\n Option,\n boolean,\n GroupBase<Option>\n >['getOptionValue']\n inputId?: string\n isClearable?: boolean\n /** Allows you to create own values in the UI despite them not being pre-specified */\n isCreatable?: boolean\n isLoading?: boolean\n /** Allows you to specify multiple values instead of just one */\n isMulti?: boolean\n isOptionSelected?: any\n isSearchable?: boolean\n isSortable?: boolean\n noOptionsMessage?: (obj: { inputValue: string }) => string\n numberOnly?: boolean\n onChange?: (value: Option | Option[]) => void\n onInputChange?: (val: string) => void\n onMenuClose?: () => void\n onMenuOpen?: () => void\n onMenuScrollToBottom?: () => void\n options: Option[] | OptionGroup[]\n placeholder?: string\n showError?: boolean\n value?: Option | Option[]\n}\n"],"names":[],"mappings":"AA+CA,WAyCC"}
@@ -20,6 +20,7 @@
20
20
  &__modal {
21
21
  @include blur-bg;
22
22
  display: flex;
23
+ justify-content: center;
23
24
  align-items: center;
24
25
  height: 100%;
25
26
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/Relationship/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAG5E,OAAO,KAA8B,MAAM,OAAO,CAAA;AAQlD,OAAO,cAAc,CAAA;AAMrB,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB,CAAC,GAAG,CAAC;IAC3E,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAClC,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAA;CAC7C;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAqF5D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/Relationship/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAG5E,OAAO,KAA8B,MAAM,OAAO,CAAA;AAQlD,OAAO,cAAc,CAAA;AAMrB,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB,CAAC,GAAG,CAAC;IAC3E,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAClC,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAA;CAC7C;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAoF5D,CAAA"}
@@ -54,7 +54,6 @@ export const RelationshipCell = ({ cellData, label, relationTo })=>{
54
54
  if (hasRequested) {
55
55
  setHasRequested(false);
56
56
  }
57
- // eslint-disable-next-line react-hooks/exhaustive-deps
58
57
  }, [
59
58
  cellData
60
59
  ]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { CellComponentProps, DefaultCellComponentProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useState } from 'react'\n\nimport { useIntersect } from '../../../../../hooks/useIntersect.js'\nimport { useConfig } from '../../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\nimport { canUseDOM } from '../../../../../utilities/canUseDOM.js'\nimport { formatDocTitle } from '../../../../../utilities/formatDocTitle.js'\nimport { useListRelationships } from '../../../RelationshipProvider/index.js'\nimport './index.scss'\n\ntype Value = { relationTo: string; value: number | string }\nconst baseClass = 'relationship-cell'\nconst totalToShow = 3\n\nexport interface RelationshipCellProps extends DefaultCellComponentProps<any> {\n label: CellComponentProps['label']\n relationTo: CellComponentProps['relationTo']\n}\n\nexport const RelationshipCell: React.FC<RelationshipCellProps> = ({\n cellData,\n label,\n relationTo,\n}) => {\n const config = useConfig()\n const { collections, routes } = config\n const [intersectionRef, entry] = useIntersect()\n const [values, setValues] = useState<Value[]>([])\n const { documents, getRelationships } = useListRelationships()\n const [hasRequested, setHasRequested] = useState(false)\n const { i18n, t } = useTranslation()\n\n const isAboveViewport = canUseDOM ? entry?.boundingClientRect?.top < window.innerHeight : false\n\n useEffect(() => {\n if ((cellData || typeof cellData === 'number') && isAboveViewport && !hasRequested) {\n const formattedValues: Value[] = []\n const arrayCellData = Array.isArray(cellData) ? cellData : [cellData]\n arrayCellData\n .slice(0, arrayCellData.length < totalToShow ? arrayCellData.length : totalToShow)\n .forEach((cell) => {\n if (typeof cell === 'object' && 'relationTo' in cell && 'value' in cell) {\n formattedValues.push(cell)\n }\n if (\n (typeof cell === 'number' || typeof cell === 'string') &&\n typeof relationTo === 'string'\n ) {\n formattedValues.push({\n relationTo,\n value: cell,\n })\n }\n })\n getRelationships(formattedValues)\n setHasRequested(true)\n setValues(formattedValues)\n }\n }, [\n cellData,\n relationTo,\n collections,\n isAboveViewport,\n routes.api,\n hasRequested,\n getRelationships,\n ])\n\n useEffect(() => {\n if (hasRequested) {\n setHasRequested(false)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cellData])\n\n return (\n <div className={baseClass} ref={intersectionRef}>\n {values.map(({ relationTo, value }, i) => {\n const document = documents[relationTo][value]\n const relatedCollection = collections.find(({ slug }) => slug === relationTo)\n\n const label = formatDocTitle({\n collectionConfig: relatedCollection,\n data: document || null,\n dateFormat: config.admin.dateFormat,\n fallback: `${t('general:untitled')} - ID: ${value}`,\n i18n,\n })\n\n return (\n <React.Fragment key={i}>\n {document === false && `${t('general:untitled')} - ID: ${value}`}\n {document === null && `${t('general:loading')}...`}\n {document ? label : null}\n {values.length > i + 1 && ', '}\n </React.Fragment>\n )\n })}\n {Array.isArray(cellData) &&\n cellData.length > totalToShow &&\n t('fields:itemsAndMore', { count: cellData.length - totalToShow, items: '' })}\n {values.length === 0 && t('general:noLabel', { label: getTranslation(label || '', i18n) })}\n </div>\n )\n}\n"],"names":["getTranslation","React","useEffect","useState","useIntersect","useConfig","useTranslation","canUseDOM","formatDocTitle","useListRelationships","baseClass","totalToShow","RelationshipCell","cellData","label","relationTo","config","collections","routes","intersectionRef","entry","values","setValues","documents","getRelationships","hasRequested","setHasRequested","i18n","t","isAboveViewport","boundingClientRect","top","window","innerHeight","formattedValues","arrayCellData","Array","isArray","slice","length","forEach","cell","push","value","api","div","className","ref","map","i","document","relatedCollection","find","slug","collectionConfig","data","dateFormat","admin","fallback","Fragment","count","items"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { CellComponentProps, DefaultCellComponentProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useState } from 'react'\n\nimport { useIntersect } from '../../../../../hooks/useIntersect.js'\nimport { useConfig } from '../../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\nimport { canUseDOM } from '../../../../../utilities/canUseDOM.js'\nimport { formatDocTitle } from '../../../../../utilities/formatDocTitle.js'\nimport { useListRelationships } from '../../../RelationshipProvider/index.js'\nimport './index.scss'\n\ntype Value = { relationTo: string; value: number | string }\nconst baseClass = 'relationship-cell'\nconst totalToShow = 3\n\nexport interface RelationshipCellProps extends DefaultCellComponentProps<any> {\n label: CellComponentProps['label']\n relationTo: CellComponentProps['relationTo']\n}\n\nexport const RelationshipCell: React.FC<RelationshipCellProps> = ({\n cellData,\n label,\n relationTo,\n}) => {\n const config = useConfig()\n const { collections, routes } = config\n const [intersectionRef, entry] = useIntersect()\n const [values, setValues] = useState<Value[]>([])\n const { documents, getRelationships } = useListRelationships()\n const [hasRequested, setHasRequested] = useState(false)\n const { i18n, t } = useTranslation()\n\n const isAboveViewport = canUseDOM ? entry?.boundingClientRect?.top < window.innerHeight : false\n\n useEffect(() => {\n if ((cellData || typeof cellData === 'number') && isAboveViewport && !hasRequested) {\n const formattedValues: Value[] = []\n const arrayCellData = Array.isArray(cellData) ? cellData : [cellData]\n arrayCellData\n .slice(0, arrayCellData.length < totalToShow ? arrayCellData.length : totalToShow)\n .forEach((cell) => {\n if (typeof cell === 'object' && 'relationTo' in cell && 'value' in cell) {\n formattedValues.push(cell)\n }\n if (\n (typeof cell === 'number' || typeof cell === 'string') &&\n typeof relationTo === 'string'\n ) {\n formattedValues.push({\n relationTo,\n value: cell,\n })\n }\n })\n getRelationships(formattedValues)\n setHasRequested(true)\n setValues(formattedValues)\n }\n }, [\n cellData,\n relationTo,\n collections,\n isAboveViewport,\n routes.api,\n hasRequested,\n getRelationships,\n ])\n\n useEffect(() => {\n if (hasRequested) {\n setHasRequested(false)\n }\n }, [cellData])\n\n return (\n <div className={baseClass} ref={intersectionRef}>\n {values.map(({ relationTo, value }, i) => {\n const document = documents[relationTo][value]\n const relatedCollection = collections.find(({ slug }) => slug === relationTo)\n\n const label = formatDocTitle({\n collectionConfig: relatedCollection,\n data: document || null,\n dateFormat: config.admin.dateFormat,\n fallback: `${t('general:untitled')} - ID: ${value}`,\n i18n,\n })\n\n return (\n <React.Fragment key={i}>\n {document === false && `${t('general:untitled')} - ID: ${value}`}\n {document === null && `${t('general:loading')}...`}\n {document ? label : null}\n {values.length > i + 1 && ', '}\n </React.Fragment>\n )\n })}\n {Array.isArray(cellData) &&\n cellData.length > totalToShow &&\n t('fields:itemsAndMore', { count: cellData.length - totalToShow, items: '' })}\n {values.length === 0 && t('general:noLabel', { label: getTranslation(label || '', i18n) })}\n </div>\n )\n}\n"],"names":["getTranslation","React","useEffect","useState","useIntersect","useConfig","useTranslation","canUseDOM","formatDocTitle","useListRelationships","baseClass","totalToShow","RelationshipCell","cellData","label","relationTo","config","collections","routes","intersectionRef","entry","values","setValues","documents","getRelationships","hasRequested","setHasRequested","i18n","t","isAboveViewport","boundingClientRect","top","window","innerHeight","formattedValues","arrayCellData","Array","isArray","slice","length","forEach","cell","push","value","api","div","className","ref","map","i","document","relatedCollection","find","slug","collectionConfig","data","dateFormat","admin","fallback","Fragment","count","items"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAGjF,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,yDAAyD,CAAA;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAW/C,KAAK,IAAI,GAAG;IACV,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAA;IACxC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AACD,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EAwJnD,CAAA"}
1
+ {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAGjF,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,yDAAyD,CAAA;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAW/C,KAAK,IAAI,GAAG;IACV,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAA;IACxC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AACD,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EAuJnD,CAAA"}
@@ -66,7 +66,6 @@ export const buildColumnState = (args)=>{
66
66
  const Heading = /*#__PURE__*/ _jsx(SortColumn, {
67
67
  Label: Label,
68
68
  disable: fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined,
69
- // eslint-disable-next-line react/jsx-no-duplicate-props
70
69
  label: 'fieldComponentProps' in field && 'label' in field.fieldComponentProps ? field.fieldComponentProps.label : undefined,
71
70
  name: 'name' in field ? field.name : undefined
72
71
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["'use client'\nimport { type CellComponentProps, type SanitizedCollectionConfig } from 'payload'\nimport React from 'react'\n\nimport type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { SelectAll } from '../SelectAll/index.js'\nimport { SelectRow } from '../SelectRow/index.js'\nimport { SortColumn } from '../SortColumn/index.js'\nimport { DefaultCell } from '../Table/DefaultCell/index.js'\n\nconst fieldIsPresentationalOnly = (field: MappedField): boolean => field.type === 'ui'\n\ntype Args = {\n cellProps: Partial<CellComponentProps>[]\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n enableRowSelections: boolean\n fieldMap: FieldMap\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\nexport const buildColumnState = (args: Args): Column[] => {\n const { cellProps, columnPreferences, columns, enableRowSelections, fieldMap, useAsTitle } = args\n\n let sortedFieldMap = flattenFieldMap(fieldMap)\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap.findIndex((field) => field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortedFieldMap.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n if (aIndex === -1 && bIndex === -1) return 0\n if (aIndex === -1) return 1\n if (bIndex === -1) return -1\n return aIndex - bIndex\n })\n }\n\n const activeColumnsIndices = []\n\n const sorted = sortedFieldMap.reduce((acc, field, index) => {\n const columnPreference = columnPreferences?.find(\n (preference) => 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find((column) => column.accessor === field.name)?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const isFirstActiveColumn = activeColumnsIndices[0] === index\n\n const name = 'name' in field ? field.name : undefined\n\n const Cell =\n field.CustomCell !== undefined ? (\n field.CustomCell\n ) : (\n <DefaultCell {...field.cellComponentProps} />\n )\n\n const CustomLabelToRender =\n field &&\n 'fieldComponentProps' in field &&\n 'CustomLabel' in field.fieldComponentProps &&\n field.fieldComponentProps.CustomLabel !== undefined\n ? field.fieldComponentProps.CustomLabel\n : undefined\n\n const Label = (\n <FieldLabel\n CustomLabel={CustomLabelToRender}\n label={field.fieldComponentProps?.label}\n {...(field.fieldComponentProps?.labelProps || {})}\n unstyled\n />\n )\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n Label={Label}\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n // eslint-disable-next-line react/jsx-no-duplicate-props\n label={\n 'fieldComponentProps' in field && 'label' in field.fieldComponentProps\n ? field.fieldComponentProps.label\n : undefined\n }\n name={'name' in field ? field.name : undefined}\n />\n )\n\n if (field) {\n const column: Column = {\n name,\n type: field.type,\n Label,\n accessor: name,\n active,\n admin: {\n disableListColumn: field.disableListColumn,\n disableListFilter: field.disableListFilter,\n },\n cellProps: {\n ...field.cellComponentProps,\n ...cellProps?.[index],\n link: isFirstActiveColumn,\n relationTo:\n field.type === 'relationship' && 'relationTo' in field.fieldComponentProps\n ? field.fieldComponentProps.relationTo\n : undefined,\n },\n components: {\n Cell,\n Heading,\n },\n }\n\n acc.push(column)\n }\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted.unshift({\n name: '',\n accessor: '_select',\n active: true,\n components: {\n Cell: <SelectRow />,\n Heading: <SelectAll />,\n },\n label: null,\n })\n }\n\n return sorted\n}\n"],"names":["React","FieldLabel","flattenFieldMap","SelectAll","SelectRow","SortColumn","DefaultCell","fieldIsPresentationalOnly","field","type","buildColumnState","args","cellProps","columnPreferences","columns","enableRowSelections","fieldMap","useAsTitle","sortedFieldMap","idFieldIndex","findIndex","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","columnPreference","find","preference","active","Array","isArray","length","includes","push","isFirstActiveColumn","undefined","Cell","CustomCell","cellComponentProps","CustomLabelToRender","fieldComponentProps","CustomLabel","Label","label","labelProps","unstyled","fieldAffectsDataSubFields","Heading","disable","admin","disableListColumn","disableListFilter","link","relationTo","components"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["'use client'\nimport { type CellComponentProps, type SanitizedCollectionConfig } from 'payload'\nimport React from 'react'\n\nimport type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { SelectAll } from '../SelectAll/index.js'\nimport { SelectRow } from '../SelectRow/index.js'\nimport { SortColumn } from '../SortColumn/index.js'\nimport { DefaultCell } from '../Table/DefaultCell/index.js'\n\nconst fieldIsPresentationalOnly = (field: MappedField): boolean => field.type === 'ui'\n\ntype Args = {\n cellProps: Partial<CellComponentProps>[]\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n enableRowSelections: boolean\n fieldMap: FieldMap\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\nexport const buildColumnState = (args: Args): Column[] => {\n const { cellProps, columnPreferences, columns, enableRowSelections, fieldMap, useAsTitle } = args\n\n let sortedFieldMap = flattenFieldMap(fieldMap)\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap.findIndex((field) => field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortedFieldMap.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n if (aIndex === -1 && bIndex === -1) return 0\n if (aIndex === -1) return 1\n if (bIndex === -1) return -1\n return aIndex - bIndex\n })\n }\n\n const activeColumnsIndices = []\n\n const sorted = sortedFieldMap.reduce((acc, field, index) => {\n const columnPreference = columnPreferences?.find(\n (preference) => 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find((column) => column.accessor === field.name)?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const isFirstActiveColumn = activeColumnsIndices[0] === index\n\n const name = 'name' in field ? field.name : undefined\n\n const Cell =\n field.CustomCell !== undefined ? (\n field.CustomCell\n ) : (\n <DefaultCell {...field.cellComponentProps} />\n )\n\n const CustomLabelToRender =\n field &&\n 'fieldComponentProps' in field &&\n 'CustomLabel' in field.fieldComponentProps &&\n field.fieldComponentProps.CustomLabel !== undefined\n ? field.fieldComponentProps.CustomLabel\n : undefined\n\n const Label = (\n <FieldLabel\n CustomLabel={CustomLabelToRender}\n label={field.fieldComponentProps?.label}\n {...(field.fieldComponentProps?.labelProps || {})}\n unstyled\n />\n )\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n Label={Label}\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n label={\n 'fieldComponentProps' in field && 'label' in field.fieldComponentProps\n ? field.fieldComponentProps.label\n : undefined\n }\n name={'name' in field ? field.name : undefined}\n />\n )\n\n if (field) {\n const column: Column = {\n name,\n type: field.type,\n Label,\n accessor: name,\n active,\n admin: {\n disableListColumn: field.disableListColumn,\n disableListFilter: field.disableListFilter,\n },\n cellProps: {\n ...field.cellComponentProps,\n ...cellProps?.[index],\n link: isFirstActiveColumn,\n relationTo:\n field.type === 'relationship' && 'relationTo' in field.fieldComponentProps\n ? field.fieldComponentProps.relationTo\n : undefined,\n },\n components: {\n Cell,\n Heading,\n },\n }\n\n acc.push(column)\n }\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted.unshift({\n name: '',\n accessor: '_select',\n active: true,\n components: {\n Cell: <SelectRow />,\n Heading: <SelectAll />,\n },\n label: null,\n })\n }\n\n return sorted\n}\n"],"names":["React","FieldLabel","flattenFieldMap","SelectAll","SelectRow","SortColumn","DefaultCell","fieldIsPresentationalOnly","field","type","buildColumnState","args","cellProps","columnPreferences","columns","enableRowSelections","fieldMap","useAsTitle","sortedFieldMap","idFieldIndex","findIndex","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","columnPreference","find","preference","active","Array","isArray","length","includes","push","isFirstActiveColumn","undefined","Cell","CustomCell","cellComponentProps","CustomLabelToRender","fieldComponentProps","CustomLabel","Label","label","labelProps","unstyled","fieldAffectsDataSubFields","Heading","disable","admin","disableListColumn","disableListFilter","link","relationTo","components"],"mappings":"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"}
@@ -5,9 +5,9 @@ export type ThumbnailCardProps = {
5
5
  alignLabel?: 'center' | 'left';
6
6
  className?: string;
7
7
  collection?: SanitizedCollectionConfig;
8
- doc?: TypeWithID & {
8
+ doc?: {
9
9
  filename?: string;
10
- };
10
+ } & TypeWithID;
11
11
  label?: string;
12
12
  onClick?: () => void;
13
13
  onKeyDown?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ThumbnailCard/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpE,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,GAAG,CAAC,EAAE,UAAU,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,CAAA;AAID,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0CtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ThumbnailCard/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpE,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU,CAAA;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,CAAA;AAID,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0CtD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ThumbnailCard/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig, TypeWithID } from 'payload'\n\nimport React from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport './index.scss'\n\nexport type ThumbnailCardProps = {\n alignLabel?: 'center' | 'left'\n className?: string\n collection?: SanitizedCollectionConfig\n doc?: TypeWithID & { filename?: string }\n label?: string\n onClick?: () => void\n onKeyDown?: () => void\n thumbnail: React.ReactNode\n}\n\nconst baseClass = 'thumbnail-card'\n\nexport const ThumbnailCard: React.FC<ThumbnailCardProps> = (props) => {\n const {\n alignLabel,\n className,\n collection,\n doc,\n label: labelFromProps,\n onClick,\n thumbnail,\n } = props\n\n const config = useConfig()\n\n const { i18n } = useTranslation()\n\n const classes = [\n baseClass,\n className,\n typeof onClick === 'function' && `${baseClass}--has-on-click`,\n alignLabel && `${baseClass}--align-label-${alignLabel}`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let title = labelFromProps\n\n if (!title) {\n title = formatDocTitle({\n collectionConfig: collection,\n data: doc,\n dateFormat: config.admin.dateFormat,\n fallback: doc?.filename,\n i18n,\n })\n }\n\n return (\n <button className={classes} onClick={onClick} title={title} type=\"button\">\n <div className={`${baseClass}__thumbnail`}>{thumbnail}</div>\n <div className={`${baseClass}__label`}>{title}</div>\n </button>\n )\n}\n"],"names":["React","useConfig","useTranslation","formatDocTitle","baseClass","ThumbnailCard","props","alignLabel","className","collection","doc","label","labelFromProps","onClick","thumbnail","config","i18n","classes","filter","Boolean","join","title","collectionConfig","data","dateFormat","admin","fallback","filename","button","type","div"],"mappings":"AAAA;;AAGA,OAAOA,WAAW,QAAO;AAEzB,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,oCAAmC;AAClE,OAAO,eAAc;AAarB,MAAMC,YAAY;AAElB,OAAO,MAAMC,gBAA8C,CAACC;IAC1D,MAAM,EACJC,UAAU,EACVC,SAAS,EACTC,UAAU,EACVC,GAAG,EACHC,OAAOC,cAAc,EACrBC,OAAO,EACPC,SAAS,EACV,GAAGR;IAEJ,MAAMS,SAASd;IAEf,MAAM,EAAEe,IAAI,EAAE,GAAGd;IAEjB,MAAMe,UAAU;QACdb;QACAI;QACA,OAAOK,YAAY,cAAc,CAAC,EAAET,UAAU,cAAc,CAAC;QAC7DG,cAAc,CAAC,EAAEH,UAAU,cAAc,EAAEG,WAAW,CAAC;KACxD,CACEW,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,IAAIC,QAAQT;IAEZ,IAAI,CAACS,OAAO;QACVA,QAAQlB,eAAe;YACrBmB,kBAAkBb;YAClBc,MAAMb;YACNc,YAAYT,OAAOU,KAAK,CAACD,UAAU;YACnCE,UAAUhB,KAAKiB;YACfX;QACF;IACF;IAEA,qBACE,MAACY;QAAOpB,WAAWS;QAASJ,SAASA;QAASQ,OAAOA;QAAOQ,MAAK;;0BAC/D,KAACC;gBAAItB,WAAW,CAAC,EAAEJ,UAAU,WAAW,CAAC;0BAAGU;;0BAC5C,KAACgB;gBAAItB,WAAW,CAAC,EAAEJ,UAAU,OAAO,CAAC;0BAAGiB;;;;AAG9C,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/ThumbnailCard/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig, TypeWithID } from 'payload'\n\nimport React from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport './index.scss'\n\nexport type ThumbnailCardProps = {\n alignLabel?: 'center' | 'left'\n className?: string\n collection?: SanitizedCollectionConfig\n doc?: { filename?: string } & TypeWithID\n label?: string\n onClick?: () => void\n onKeyDown?: () => void\n thumbnail: React.ReactNode\n}\n\nconst baseClass = 'thumbnail-card'\n\nexport const ThumbnailCard: React.FC<ThumbnailCardProps> = (props) => {\n const {\n alignLabel,\n className,\n collection,\n doc,\n label: labelFromProps,\n onClick,\n thumbnail,\n } = props\n\n const config = useConfig()\n\n const { i18n } = useTranslation()\n\n const classes = [\n baseClass,\n className,\n typeof onClick === 'function' && `${baseClass}--has-on-click`,\n alignLabel && `${baseClass}--align-label-${alignLabel}`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let title = labelFromProps\n\n if (!title) {\n title = formatDocTitle({\n collectionConfig: collection,\n data: doc,\n dateFormat: config.admin.dateFormat,\n fallback: doc?.filename,\n i18n,\n })\n }\n\n return (\n <button className={classes} onClick={onClick} title={title} type=\"button\">\n <div className={`${baseClass}__thumbnail`}>{thumbnail}</div>\n <div className={`${baseClass}__label`}>{title}</div>\n </button>\n )\n}\n"],"names":["React","useConfig","useTranslation","formatDocTitle","baseClass","ThumbnailCard","props","alignLabel","className","collection","doc","label","labelFromProps","onClick","thumbnail","config","i18n","classes","filter","Boolean","join","title","collectionConfig","data","dateFormat","admin","fallback","filename","button","type","div"],"mappings":"AAAA;;AAGA,OAAOA,WAAW,QAAO;AAEzB,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,oCAAmC;AAClE,OAAO,eAAc;AAarB,MAAMC,YAAY;AAElB,OAAO,MAAMC,gBAA8C,CAACC;IAC1D,MAAM,EACJC,UAAU,EACVC,SAAS,EACTC,UAAU,EACVC,GAAG,EACHC,OAAOC,cAAc,EACrBC,OAAO,EACPC,SAAS,EACV,GAAGR;IAEJ,MAAMS,SAASd;IAEf,MAAM,EAAEe,IAAI,EAAE,GAAGd;IAEjB,MAAMe,UAAU;QACdb;QACAI;QACA,OAAOK,YAAY,cAAc,CAAC,EAAET,UAAU,cAAc,CAAC;QAC7DG,cAAc,CAAC,EAAEH,UAAU,cAAc,EAAEG,WAAW,CAAC;KACxD,CACEW,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,IAAIC,QAAQT;IAEZ,IAAI,CAACS,OAAO;QACVA,QAAQlB,eAAe;YACrBmB,kBAAkBb;YAClBc,MAAMb;YACNc,YAAYT,OAAOU,KAAK,CAACD,UAAU;YACnCE,UAAUhB,KAAKiB;YACfX;QACF;IACF;IAEA,qBACE,MAACY;QAAOpB,WAAWS;QAASJ,SAASA;QAASQ,OAAOA;QAAOQ,MAAK;;0BAC/D,KAACC;gBAAItB,WAAW,CAAC,EAAEJ,UAAU,WAAW,CAAC;0BAAGU;;0BAC5C,KAACgB;gBAAItB,WAAW,CAAC,EAAEJ,UAAU,OAAO,CAAC;0BAAGiB;;;;AAG9C,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAGnE,OAAO,KAA2C,MAAM,OAAO,CAAA;AAgB/D,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAU9C,KAAK,iBAAiB,GAAG;IACvB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACjC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,aAAa,wEAKvB,iBAAiB,sBA8BnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACjC,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;IAChC,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAmMxC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAGnE,OAAO,KAAmD,MAAM,OAAO,CAAA;AAiBvE,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAU9C,KAAK,iBAAiB,GAAG;IACvB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACjC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,aAAa,wEAKvB,iBAAiB,sBA8BnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACjC,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;IAChC,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAwRxC,CAAA"}