@payloadcms/ui 4.0.0-beta.5 → 4.0.0-beta.6

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 (131) hide show
  1. package/dist/css/utilities.css +1 -0
  2. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  3. package/dist/elements/AddNewRelation/index.js +4 -0
  4. package/dist/elements/AddNewRelation/index.js.map +1 -1
  5. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  6. package/dist/elements/AppHeader/index.js +2 -0
  7. package/dist/elements/AppHeader/index.js.map +1 -1
  8. package/dist/elements/Collapsible/index.css +1 -1
  9. package/dist/elements/ColumnSelection/Popup.css +2 -2
  10. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  11. package/dist/elements/DocumentDrawer/DrawerContent.js +15 -9
  12. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  14. package/dist/elements/DocumentHeader/Tabs/index.js +10 -8
  15. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  16. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  17. package/dist/elements/FileDetails/DraggableFileDetails/index.js +19 -12
  18. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  19. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  20. package/dist/elements/FileDetails/StaticFileDetails/index.js +63 -33
  21. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  22. package/dist/elements/FileManager/index.d.ts.map +1 -1
  23. package/dist/elements/FileManager/index.js +18 -11
  24. package/dist/elements/FileManager/index.js.map +1 -1
  25. package/dist/elements/FilterTrigger/index.d.ts.map +1 -1
  26. package/dist/elements/FilterTrigger/index.js +80 -44
  27. package/dist/elements/FilterTrigger/index.js.map +1 -1
  28. package/dist/elements/ListControls/index.css +1 -0
  29. package/dist/elements/ListControls/index.d.ts.map +1 -1
  30. package/dist/elements/ListControls/index.js +7 -4
  31. package/dist/elements/ListControls/index.js.map +1 -1
  32. package/dist/elements/ListControls/types.d.ts +1 -0
  33. package/dist/elements/ListControls/types.d.ts.map +1 -1
  34. package/dist/elements/ListControls/types.js.map +1 -1
  35. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  36. package/dist/elements/ListDrawer/DrawerContent.js +18 -12
  37. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  38. package/dist/elements/LivePreview/Toolbar/index.d.ts.map +1 -1
  39. package/dist/elements/LivePreview/Toolbar/index.js +13 -7
  40. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
  41. package/dist/elements/Nav/NavSidebarToggle/index.d.ts.map +1 -1
  42. package/dist/elements/Nav/NavSidebarToggle/index.js +26 -37
  43. package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
  44. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  45. package/dist/elements/Nav/SidebarTabs/index.client.js +9 -2
  46. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  47. package/dist/elements/Nav/SidebarTabs/index.css +1 -1
  48. package/dist/elements/Nav/context.d.ts +1 -0
  49. package/dist/elements/Nav/context.d.ts.map +1 -1
  50. package/dist/elements/Nav/context.js +2 -0
  51. package/dist/elements/Nav/context.js.map +1 -1
  52. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  53. package/dist/elements/Nav/getNavPrefs.js +7 -2
  54. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  55. package/dist/elements/Nav/index.css +11 -0
  56. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  57. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  58. package/dist/elements/PreviewButton/index.js +4 -0
  59. package/dist/elements/PreviewButton/index.js.map +1 -1
  60. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  61. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +1 -0
  62. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  63. package/dist/elements/ReactSelect/MultiValue/index.css +1 -1
  64. package/dist/elements/ReactSelect/index.css +4 -2
  65. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  66. package/dist/elements/ReactSelect/index.js +8 -3
  67. package/dist/elements/ReactSelect/index.js.map +1 -1
  68. package/dist/elements/SchedulePublishButton/index.d.ts.map +1 -1
  69. package/dist/elements/SchedulePublishButton/index.js +4 -0
  70. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  71. package/dist/elements/Search/SearchInput/index.css +32 -3
  72. package/dist/elements/SegmentedControl/index.css +1 -1
  73. package/dist/elements/SidebarToggle/index.css +1 -1
  74. package/dist/elements/SortColumn/index.css +49 -5
  75. package/dist/elements/SortRow/index.css +1 -3
  76. package/dist/elements/SortRow/index.d.ts.map +1 -1
  77. package/dist/elements/SortRow/index.js +16 -10
  78. package/dist/elements/SortRow/index.js.map +1 -1
  79. package/dist/elements/StepNav/index.d.ts.map +1 -1
  80. package/dist/elements/StepNav/index.js +4 -1
  81. package/dist/elements/StepNav/index.js.map +1 -1
  82. package/dist/elements/Tabs/index.css +1 -1
  83. package/dist/elements/TimezonePicker/index.css +6 -5
  84. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  85. package/dist/elements/TimezonePicker/index.js +80 -43
  86. package/dist/elements/TimezonePicker/index.js.map +1 -1
  87. package/dist/elements/Upload/index.js +2 -0
  88. package/dist/elements/Upload/index.js.map +1 -1
  89. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -1
  90. package/dist/elements/UploadDropzoneContent/index.js +1 -0
  91. package/dist/elements/UploadDropzoneContent/index.js.map +1 -1
  92. package/dist/elements/UserMenu/index.css +1 -1
  93. package/dist/exports/client/{DatePicker-AZBZPMY6.js → DatePicker-DJN2NVQC.js} +2 -2
  94. package/dist/exports/client/chunk-GQEFXRCN.js +29 -0
  95. package/dist/exports/client/{chunk-ZP2PB6M4.js.map → chunk-GQEFXRCN.js.map} +4 -4
  96. package/dist/exports/client/index.js +27 -27
  97. package/dist/exports/client/index.js.map +4 -4
  98. package/dist/fields/Blocks/SectionTitle/index.css +21 -2
  99. package/dist/fields/DateTime/index.js +1 -1
  100. package/dist/fields/DateTime/index.js.map +1 -1
  101. package/dist/fields/Upload/Input.d.ts.map +1 -1
  102. package/dist/fields/Upload/Input.js +1 -0
  103. package/dist/fields/Upload/Input.js.map +1 -1
  104. package/dist/fields/Upload/RelationshipContent/index.css +1 -1
  105. package/dist/forms/Form/index.d.ts.map +1 -1
  106. package/dist/forms/Form/index.js +9 -7
  107. package/dist/forms/Form/index.js.map +1 -1
  108. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  109. package/dist/providers/ListQuery/index.js +17 -1
  110. package/dist/providers/ListQuery/index.js.map +1 -1
  111. package/dist/styles.css +2 -1
  112. package/dist/views/List/index.client.d.ts.map +1 -1
  113. package/dist/views/List/index.client.js +15 -9
  114. package/dist/views/List/index.client.js.map +1 -1
  115. package/dist/views/Version/Default/index.d.ts.map +1 -1
  116. package/dist/views/Version/Default/index.js +6 -9
  117. package/dist/views/Version/Default/index.js.map +1 -1
  118. package/dist/views/Version/Default/types.d.ts +0 -1
  119. package/dist/views/Version/Default/types.d.ts.map +1 -1
  120. package/dist/views/Version/Default/types.js.map +1 -1
  121. package/dist/views/Version/Restore/index.css +0 -11
  122. package/dist/views/Version/Restore/index.d.ts +0 -1
  123. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  124. package/dist/views/Version/Restore/index.js +87 -115
  125. package/dist/views/Version/Restore/index.js.map +1 -1
  126. package/dist/views/Version/index.d.ts.map +1 -1
  127. package/dist/views/Version/index.js +1 -2
  128. package/dist/views/Version/index.js.map +1 -1
  129. package/package.json +4 -4
  130. package/dist/exports/client/chunk-ZP2PB6M4.js +0 -29
  131. /package/dist/exports/client/{DatePicker-AZBZPMY6.js.map → DatePicker-DJN2NVQC.js.map} +0 -0
@@ -3,6 +3,7 @@
3
3
  --accessibility-focus-color: var(--color-border-selected);
4
4
  --accessibility-outline: var(--stroke-width-small) solid var(--accessibility-focus-color);
5
5
  --accessibility-outline-offset: 1px;
6
+ --accessibility-outline-inset: calc(-1 * var(--stroke-width-small));
6
7
  --scrollbar-color: var(--color-bg-secondary-pressed);
7
8
  }
8
9
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AddNewRelation/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAqD,MAAM,OAAO,CAAA;AAGzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAUvC,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsL1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AddNewRelation/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAqD,MAAM,OAAO,CAAA;AAGzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAUvC,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwL1C,CAAA"}
@@ -241,7 +241,11 @@ export const AddNewRelation = t0 => {
241
241
  return _jsx(Button, {
242
242
  className: `${baseClass}__add-button`,
243
243
  ...buttonProps,
244
+ "aria-label": t("fields:addNew"),
244
245
  buttonStyle: "secondary",
246
+ extraButtonProps: {
247
+ title: undefined
248
+ },
245
249
  selected: active,
246
250
  tooltip: popupOpen ? "" : t("fields:addNew"),
247
251
  children: _jsx(PlusIcon, {})
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","hasAutosaveEnabled","React","Fragment","useCallback","useEffect","useState","useRelatedCollections","PlusIcon","useAuth","useTranslation","Button","useDocumentDrawer","Popup","PopupList","baseClass","AddNewRelation","t0","$","ButtonFromProps","hasMany","onChange","path","relationTo","unstyled","value","relatedCollections","permissions","show","setShow","selectedCollection","setSelectedCollection","relatedToMany","length","t1","undefined","collectionConfig","setCollectionConfig","popupOpen","setPopupOpen","i18n","t","t2","slug","t3","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t4","isDrawerOpen","toggleDrawer","t5","t6","doc","operation","isNewValue","Array","isArray","some","v","id","onSave","t7","collections","create","collection","t8","t9","find","collection_0","t10","t11","t12","t13","t14","t15","Symbol","for","bb0","label","labels","singular","_jsxs","className","children","_jsx","buttonStyle","filter","Boolean","join","tooltip","buttonType","horizontalAlign","onToggleClose","onToggleOpen","popupType","render","t16","close","closePopup","ButtonGroup","map","relatedCollection","onClick","t17","active","buttonProps","selected"],"sources":["../../../src/elements/AddNewRelation/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { hasAutosaveEnabled } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\nimport type { Props } from './types.js'\n\nimport { useRelatedCollections } from '../../hooks/useRelatedCollections.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup } from '../Popup/index.js'\nimport * as PopupList from '../Popup/PopupButtonList/index.js'\nimport './index.css'\n\nconst baseClass = 'relationship-add-new'\n\nexport const AddNewRelation: React.FC<Props> = ({\n Button: ButtonFromProps,\n hasMany,\n onChange,\n path,\n relationTo,\n unstyled,\n value,\n}) => {\n const relatedCollections = useRelatedCollections(relationTo)\n const { permissions } = useAuth()\n const [show, setShow] = useState(false)\n const [selectedCollection, setSelectedCollection] = useState<string>()\n\n const relatedToMany = relatedCollections.length > 1\n\n const [collectionConfig, setCollectionConfig] = useState<ClientCollectionConfig>(() =>\n !relatedToMany ? relatedCollections[0] : undefined,\n )\n\n const [popupOpen, setPopupOpen] = useState(false)\n const { i18n, t } = useTranslation()\n\n const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen, toggleDrawer }] = useDocumentDrawer(\n {\n collectionSlug: collectionConfig?.slug,\n },\n )\n\n const onSave: DocumentDrawerContextType['onSave'] = useCallback(\n ({ doc, operation }) => {\n // if autosave is enabled, the operation will be 'update'\n if (\n operation === 'create' ||\n (operation === 'update' && hasAutosaveEnabled(collectionConfig))\n ) {\n // ensure the value is not already in the array\n let isNewValue = false\n if (!value) {\n isNewValue = true\n } else {\n isNewValue = Array.isArray(value)\n ? !value.some((v) => v && v.value === doc.id)\n : value.value !== doc.id\n }\n\n if (isNewValue) {\n if (hasMany === true) {\n onChange([\n ...(Array.isArray(value) ? value : []),\n {\n relationTo: collectionConfig?.slug,\n value: doc.id,\n },\n ])\n } else {\n onChange({\n relationTo: collectionConfig?.slug,\n value: doc.id,\n })\n }\n }\n\n setSelectedCollection(undefined)\n }\n },\n [collectionConfig, hasMany, onChange, value],\n )\n\n useEffect(() => {\n if (permissions) {\n if (relatedCollections.length === 1) {\n setShow(permissions.collections[relatedCollections[0]?.slug]?.create)\n } else {\n setShow(\n relatedCollections.some(\n (collection) => permissions.collections[collection?.slug]?.create,\n ),\n )\n }\n }\n }, [permissions, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && selectedCollection) {\n setCollectionConfig(\n relatedCollections.find((collection) => collection?.slug === selectedCollection),\n )\n }\n }, [selectedCollection, relatedToMany, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && collectionConfig) {\n // the drawer must be rendered on the page before before opening it\n // this is why 'selectedCollection' is different from 'collectionConfig'\n toggleDrawer()\n setSelectedCollection(undefined)\n }\n }, [toggleDrawer, relatedToMany, collectionConfig])\n\n useEffect(() => {\n if (relatedToMany && !isDrawerOpen) {\n setCollectionConfig(undefined)\n }\n }, [isDrawerOpen, relatedToMany])\n\n const label = t('fields:addNewLabel', {\n label: getTranslation(relatedCollections[0]?.labels.singular, i18n),\n })\n\n if (!show) {\n return null\n }\n\n return (\n <div className={baseClass} id={`${path}-add-new`}>\n {relatedCollections.length === 1 && (\n <Fragment>\n <DocumentDrawerToggler\n buttonStyle=\"secondary\"\n className={[\n `${baseClass}__add-button`,\n unstyled && `${baseClass}__add-button--unstyled`,\n ]\n .filter(Boolean)\n .join(' ')}\n tooltip={ButtonFromProps ? undefined : label}\n >\n {ButtonFromProps ? ButtonFromProps : <PlusIcon />}\n </DocumentDrawerToggler>\n <DocumentDrawer onSave={onSave} />\n </Fragment>\n )}\n {relatedCollections.length > 1 && (\n <Fragment>\n <Popup\n buttonType=\"custom\"\n horizontalAlign=\"right\"\n onToggleClose={() => setPopupOpen(false)}\n onToggleOpen={() => setPopupOpen(true)}\n popupType=\"menu\"\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relatedCollections.map((relatedCollection) => {\n if (permissions.collections[relatedCollection?.slug]?.create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection?.slug}`}\n key={relatedCollection?.slug}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection?.slug)\n }}\n >\n {getTranslation(relatedCollection?.labels?.singular, i18n)}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n renderButton={({ active, ...buttonProps }) => (\n <Button\n className={`${baseClass}__add-button`}\n {...buttonProps}\n buttonStyle=\"secondary\"\n selected={active}\n tooltip={popupOpen ? '' : t('fields:addNew')}\n >\n <PlusIcon />\n </Button>\n )}\n />\n {collectionConfig && permissions.collections[collectionConfig?.slug]?.create && (\n <DocumentDrawer onSave={onSave} />\n )}\n </Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","hasAutosaveEnabled","React","Fragment","useCallback","useEffect","useState","useRelatedCollections","PlusIcon","useAuth","useTranslation","Button","useDocumentDrawer","Popup","PopupList","baseClass","AddNewRelation","t0","$","ButtonFromProps","hasMany","onChange","path","relationTo","unstyled","value","relatedCollections","permissions","show","setShow","selectedCollection","setSelectedCollection","relatedToMany","length","t1","undefined","collectionConfig","setCollectionConfig","popupOpen","setPopupOpen","i18n","t","t2","slug","t3","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t4","isDrawerOpen","toggleDrawer","t5","t6","doc","operation","isNewValue","Array","isArray","some","v","id","onSave","t7","collections","create","collection","t8","t9","find","collection_0","t10","t11","t12","t13","t14","t15","Symbol","for","bb0","label","labels","singular","_jsxs","className","children","_jsx","buttonStyle","filter","Boolean","join","tooltip","buttonType","horizontalAlign","onToggleClose","onToggleOpen","popupType","render","t16","close","closePopup","ButtonGroup","map","relatedCollection","onClick","t17","active","buttonProps","extraButtonProps","title","selected"],"sources":["../../../src/elements/AddNewRelation/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { hasAutosaveEnabled } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\nimport type { Props } from './types.js'\n\nimport { useRelatedCollections } from '../../hooks/useRelatedCollections.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup } from '../Popup/index.js'\nimport * as PopupList from '../Popup/PopupButtonList/index.js'\nimport './index.css'\n\nconst baseClass = 'relationship-add-new'\n\nexport const AddNewRelation: React.FC<Props> = ({\n Button: ButtonFromProps,\n hasMany,\n onChange,\n path,\n relationTo,\n unstyled,\n value,\n}) => {\n const relatedCollections = useRelatedCollections(relationTo)\n const { permissions } = useAuth()\n const [show, setShow] = useState(false)\n const [selectedCollection, setSelectedCollection] = useState<string>()\n\n const relatedToMany = relatedCollections.length > 1\n\n const [collectionConfig, setCollectionConfig] = useState<ClientCollectionConfig>(() =>\n !relatedToMany ? relatedCollections[0] : undefined,\n )\n\n const [popupOpen, setPopupOpen] = useState(false)\n const { i18n, t } = useTranslation()\n\n const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen, toggleDrawer }] = useDocumentDrawer(\n {\n collectionSlug: collectionConfig?.slug,\n },\n )\n\n const onSave: DocumentDrawerContextType['onSave'] = useCallback(\n ({ doc, operation }) => {\n // if autosave is enabled, the operation will be 'update'\n if (\n operation === 'create' ||\n (operation === 'update' && hasAutosaveEnabled(collectionConfig))\n ) {\n // ensure the value is not already in the array\n let isNewValue = false\n if (!value) {\n isNewValue = true\n } else {\n isNewValue = Array.isArray(value)\n ? !value.some((v) => v && v.value === doc.id)\n : value.value !== doc.id\n }\n\n if (isNewValue) {\n if (hasMany === true) {\n onChange([\n ...(Array.isArray(value) ? value : []),\n {\n relationTo: collectionConfig?.slug,\n value: doc.id,\n },\n ])\n } else {\n onChange({\n relationTo: collectionConfig?.slug,\n value: doc.id,\n })\n }\n }\n\n setSelectedCollection(undefined)\n }\n },\n [collectionConfig, hasMany, onChange, value],\n )\n\n useEffect(() => {\n if (permissions) {\n if (relatedCollections.length === 1) {\n setShow(permissions.collections[relatedCollections[0]?.slug]?.create)\n } else {\n setShow(\n relatedCollections.some(\n (collection) => permissions.collections[collection?.slug]?.create,\n ),\n )\n }\n }\n }, [permissions, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && selectedCollection) {\n setCollectionConfig(\n relatedCollections.find((collection) => collection?.slug === selectedCollection),\n )\n }\n }, [selectedCollection, relatedToMany, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && collectionConfig) {\n // the drawer must be rendered on the page before before opening it\n // this is why 'selectedCollection' is different from 'collectionConfig'\n toggleDrawer()\n setSelectedCollection(undefined)\n }\n }, [toggleDrawer, relatedToMany, collectionConfig])\n\n useEffect(() => {\n if (relatedToMany && !isDrawerOpen) {\n setCollectionConfig(undefined)\n }\n }, [isDrawerOpen, relatedToMany])\n\n const label = t('fields:addNewLabel', {\n label: getTranslation(relatedCollections[0]?.labels.singular, i18n),\n })\n\n if (!show) {\n return null\n }\n\n return (\n <div className={baseClass} id={`${path}-add-new`}>\n {relatedCollections.length === 1 && (\n <Fragment>\n <DocumentDrawerToggler\n buttonStyle=\"secondary\"\n className={[\n `${baseClass}__add-button`,\n unstyled && `${baseClass}__add-button--unstyled`,\n ]\n .filter(Boolean)\n .join(' ')}\n tooltip={ButtonFromProps ? undefined : label}\n >\n {ButtonFromProps ? ButtonFromProps : <PlusIcon />}\n </DocumentDrawerToggler>\n <DocumentDrawer onSave={onSave} />\n </Fragment>\n )}\n {relatedCollections.length > 1 && (\n <Fragment>\n <Popup\n buttonType=\"custom\"\n horizontalAlign=\"right\"\n onToggleClose={() => setPopupOpen(false)}\n onToggleOpen={() => setPopupOpen(true)}\n popupType=\"menu\"\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relatedCollections.map((relatedCollection) => {\n if (permissions.collections[relatedCollection?.slug]?.create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection?.slug}`}\n key={relatedCollection?.slug}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection?.slug)\n }}\n >\n {getTranslation(relatedCollection?.labels?.singular, i18n)}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n renderButton={({ active, ...buttonProps }) => (\n <Button\n className={`${baseClass}__add-button`}\n {...buttonProps}\n aria-label={t('fields:addNew')}\n buttonStyle=\"secondary\"\n extraButtonProps={{ title: undefined }}\n selected={active}\n tooltip={popupOpen ? '' : t('fields:addNew')}\n >\n <PlusIcon />\n </Button>\n )}\n />\n {collectionConfig && permissions.collections[collectionConfig?.slug]?.create && (\n <DocumentDrawer onSave={onSave} />\n )}\n </Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AppHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAe1D,OAAO,aAAa,CAAA;AAIpB,wBAAgB,SAAS,sBA8GxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AppHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAe1D,OAAO,aAAa,CAAA;AAIpB,wBAAgB,SAAS,sBA+GxB"}
@@ -30,6 +30,7 @@ export function AppHeader() {
30
30
  } = useActions();
31
31
  const {
32
32
  navOpen,
33
+ navToggleRef,
33
34
  setNavOpen
34
35
  } = useNav();
35
36
  const {
@@ -80,6 +81,7 @@ export function AppHeader() {
80
81
  className: `${baseClass}__sidebar-toggle`,
81
82
  icon: /*#__PURE__*/_jsx(SidebarIcon, {}),
82
83
  onClick: () => setNavOpen(!navOpen, true),
84
+ ref: navToggleRef,
83
85
  type: "button"
84
86
  }), /*#__PURE__*/_jsx("div", {
85
87
  className: `${baseClass}__step-nav-wrapper`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","useEffect","useRef","useState","useElementHeightVariable","ChevronIcon","LanguageIcon","SidebarIcon","useActions","useConfig","useEmbed","useLocale","useTranslation","Button","Localizer","useNav","StepNav","baseClass","AppHeader","i18n","t","locale","localeLabel","label","Actions","navOpen","setNavOpen","isEmbedded","config","localization","headerRef","customControlsRef","isScrollable","setIsScrollable","cssVar","ref","checkIsScrollable","el","current","scrollable","scrollWidth","clientWidth","window","addEventListener","removeEventListener","ActionComponents","Object","values","_jsx","className","filter","Boolean","join","_jsxs","buttonStyle","icon","onClick","type","map","Action","i","length","renderButton","active","onKeyDown","ariaProps","extraButtonProps","style","padding","size","iconPosition","selected","direction"],"sources":["../../../src/elements/AppHeader/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { useElementHeightVariable } from '../../hooks/useElementHeightVariable.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { LanguageIcon } from '../../icons/Language/index.js'\nimport { SidebarIcon } from '../../icons/Sidebar/index.js'\nimport { useActions } from '../../providers/Actions/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEmbed } from '../../providers/Embed/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Localizer } from '../Localizer/index.js'\nimport { useNav } from '../Nav/context.js'\nimport { StepNav } from '../StepNav/index.js'\nimport './index.css'\n\nconst baseClass = 'app-header'\n\nexport function AppHeader() {\n const { i18n, t } = useTranslation()\n const locale = useLocale()\n const localeLabel = locale && getTranslation(locale.label, i18n)\n const { Actions } = useActions()\n\n const { navOpen, setNavOpen } = useNav()\n const { isEmbedded } = useEmbed()\n\n const {\n config: { localization },\n } = useConfig()\n\n const headerRef = useRef<HTMLElement>(null)\n const customControlsRef = useRef<HTMLDivElement>(null)\n const [isScrollable, setIsScrollable] = useState(false)\n\n useElementHeightVariable({ cssVar: '--app-header-height', ref: headerRef })\n\n useEffect(() => {\n const checkIsScrollable = () => {\n const el = customControlsRef.current\n if (el) {\n const scrollable = el.scrollWidth > el.clientWidth\n setIsScrollable(scrollable)\n }\n }\n\n checkIsScrollable()\n window.addEventListener('resize', checkIsScrollable)\n\n return () => {\n window.removeEventListener('resize', checkIsScrollable)\n }\n }, [Actions])\n\n const ActionComponents = Actions ? Object.values(Actions) : []\n\n return (\n <header\n className={[\n baseClass,\n navOpen && `${baseClass}--nav-open`,\n isEmbedded && `${baseClass}--embedded`,\n ]\n .filter(Boolean)\n .join(' ')}\n ref={headerRef}\n >\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__step-nav-wrapper`}>\n <Button\n aria-expanded={navOpen}\n aria-label={`${navOpen ? t('general:close') : t('general:open')} ${t('general:menu')}`}\n buttonStyle=\"ghost\"\n className={`${baseClass}__sidebar-toggle`}\n icon={<SidebarIcon />}\n onClick={() => setNavOpen(!navOpen, true)}\n type=\"button\"\n />\n <div className={`${baseClass}__step-nav-wrapper`}>\n <StepNav className={`${baseClass}__step-nav`} />\n </div>\n </div>\n <div className={`${baseClass}__actions-wrapper`}>\n <div className={`${baseClass}__actions`} ref={customControlsRef}>\n {ActionComponents.map((Action, i) => (\n <div\n className={\n isScrollable && i === ActionComponents.length - 1\n ? `${baseClass}__last-action`\n : ''\n }\n key={i}\n >\n {Action}\n </div>\n ))}\n </div>\n {isScrollable && <div className={`${baseClass}__gradient-placeholder`} />}\n </div>\n {localization && (\n <Localizer\n className={`${baseClass}__localizer`}\n renderButton={({ active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n aria-label={t('general:locale')}\n buttonStyle=\"secondary\"\n extraButtonProps={{ onKeyDown, style: { padding: '0 var(--spacer-1) 0 0' } }}\n icon={<LanguageIcon size={24} />}\n iconPosition=\"left\"\n onClick={onClick}\n selected={active}\n {...ariaProps}\n >\n <div className=\"localizer__button-content\">\n {localeLabel}\n <ChevronIcon direction={active ? 'up' : 'down'} size={16} />\n </div>\n </Button>\n )}\n />\n )}\n </div>\n </div>\n </div>\n </header>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","useEffect","useRef","useState","useElementHeightVariable","ChevronIcon","LanguageIcon","SidebarIcon","useActions","useConfig","useEmbed","useLocale","useTranslation","Button","Localizer","useNav","StepNav","baseClass","AppHeader","i18n","t","locale","localeLabel","label","Actions","navOpen","navToggleRef","setNavOpen","isEmbedded","config","localization","headerRef","customControlsRef","isScrollable","setIsScrollable","cssVar","ref","checkIsScrollable","el","current","scrollable","scrollWidth","clientWidth","window","addEventListener","removeEventListener","ActionComponents","Object","values","_jsx","className","filter","Boolean","join","_jsxs","buttonStyle","icon","onClick","type","map","Action","i","length","renderButton","active","onKeyDown","ariaProps","extraButtonProps","style","padding","size","iconPosition","selected","direction"],"sources":["../../../src/elements/AppHeader/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { useElementHeightVariable } from '../../hooks/useElementHeightVariable.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { LanguageIcon } from '../../icons/Language/index.js'\nimport { SidebarIcon } from '../../icons/Sidebar/index.js'\nimport { useActions } from '../../providers/Actions/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEmbed } from '../../providers/Embed/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Localizer } from '../Localizer/index.js'\nimport { useNav } from '../Nav/context.js'\nimport { StepNav } from '../StepNav/index.js'\nimport './index.css'\n\nconst baseClass = 'app-header'\n\nexport function AppHeader() {\n const { i18n, t } = useTranslation()\n const locale = useLocale()\n const localeLabel = locale && getTranslation(locale.label, i18n)\n const { Actions } = useActions()\n\n const { navOpen, navToggleRef, setNavOpen } = useNav()\n const { isEmbedded } = useEmbed()\n\n const {\n config: { localization },\n } = useConfig()\n\n const headerRef = useRef<HTMLElement>(null)\n const customControlsRef = useRef<HTMLDivElement>(null)\n const [isScrollable, setIsScrollable] = useState(false)\n\n useElementHeightVariable({ cssVar: '--app-header-height', ref: headerRef })\n\n useEffect(() => {\n const checkIsScrollable = () => {\n const el = customControlsRef.current\n if (el) {\n const scrollable = el.scrollWidth > el.clientWidth\n setIsScrollable(scrollable)\n }\n }\n\n checkIsScrollable()\n window.addEventListener('resize', checkIsScrollable)\n\n return () => {\n window.removeEventListener('resize', checkIsScrollable)\n }\n }, [Actions])\n\n const ActionComponents = Actions ? Object.values(Actions) : []\n\n return (\n <header\n className={[\n baseClass,\n navOpen && `${baseClass}--nav-open`,\n isEmbedded && `${baseClass}--embedded`,\n ]\n .filter(Boolean)\n .join(' ')}\n ref={headerRef}\n >\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__step-nav-wrapper`}>\n <Button\n aria-expanded={navOpen}\n aria-label={`${navOpen ? t('general:close') : t('general:open')} ${t('general:menu')}`}\n buttonStyle=\"ghost\"\n className={`${baseClass}__sidebar-toggle`}\n icon={<SidebarIcon />}\n onClick={() => setNavOpen(!navOpen, true)}\n ref={navToggleRef}\n type=\"button\"\n />\n <div className={`${baseClass}__step-nav-wrapper`}>\n <StepNav className={`${baseClass}__step-nav`} />\n </div>\n </div>\n <div className={`${baseClass}__actions-wrapper`}>\n <div className={`${baseClass}__actions`} ref={customControlsRef}>\n {ActionComponents.map((Action, i) => (\n <div\n className={\n isScrollable && i === ActionComponents.length - 1\n ? `${baseClass}__last-action`\n : ''\n }\n key={i}\n >\n {Action}\n </div>\n ))}\n </div>\n {isScrollable && <div className={`${baseClass}__gradient-placeholder`} />}\n </div>\n {localization && (\n <Localizer\n className={`${baseClass}__localizer`}\n renderButton={({ active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n aria-label={t('general:locale')}\n buttonStyle=\"secondary\"\n extraButtonProps={{ onKeyDown, style: { padding: '0 var(--spacer-1) 0 0' } }}\n icon={<LanguageIcon size={24} />}\n iconPosition=\"left\"\n onClick={onClick}\n selected={active}\n {...ariaProps}\n >\n <div className=\"localizer__button-content\">\n {localeLabel}\n <ChevronIcon direction={active ? 'up' : 'down'} size={16} />\n </div>\n </Button>\n )}\n />\n )}\n </div>\n </div>\n </div>\n </header>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -77,7 +77,7 @@
77
77
 
78
78
  &:focus-visible {
79
79
  outline: var(--accessibility-outline);
80
- outline-offset: -1px;
80
+ outline-offset: var(--accessibility-outline-inset);
81
81
  }
82
82
 
83
83
  span {
@@ -151,7 +151,7 @@
151
151
 
152
152
  &:focus-visible {
153
153
  outline: var(--stroke-width-small) solid var(--accessibility-focus-color);
154
- outline-offset: calc(-1 * var(--accessibility-outline-offset));
154
+ outline-offset: var(--accessibility-outline-inset);
155
155
  }
156
156
  }
157
157
 
@@ -189,7 +189,7 @@
189
189
  &:focus-visible {
190
190
  opacity: 1;
191
191
  outline: var(--stroke-width-small) solid var(--accessibility-focus-color);
192
- outline-offset: calc(-1 * var(--accessibility-outline-offset));
192
+ outline-offset: var(--accessibility-outline-inset);
193
193
  }
194
194
 
195
195
  &:active {
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AASrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkK/D,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AASrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAoK/D,CAAA"}
@@ -121,20 +121,26 @@ export const DocumentDrawerContent = ({
121
121
  abortAndIgnore(abortGetDocumentView);
122
122
  };
123
123
  }, []);
124
- return /*#__PURE__*/_jsxs(DocumentDrawerContextProvider, {
124
+ return /*#__PURE__*/_jsx(DocumentDrawerContextProvider, {
125
125
  clearDoc: clearDoc,
126
126
  drawerSlug: drawerSlug,
127
127
  onDelete: onDelete,
128
128
  onDuplicate: onDuplicate,
129
129
  onSave: onSave,
130
- children: [!isLoading && /*#__PURE__*/_jsx("div", {
131
- className: "drawer__fade-in",
132
- children: DocumentView
133
- }), /*#__PURE__*/_jsx(LoadingOverlay, {
134
- animationDuration: "200ms",
135
- overlayType: "drawer",
136
- show: isLoading
137
- })]
130
+ children: /*#__PURE__*/_jsxs(React.Suspense, {
131
+ fallback: /*#__PURE__*/_jsx(LoadingOverlay, {
132
+ animationDuration: "200ms",
133
+ overlayType: "drawer"
134
+ }),
135
+ children: [!isLoading && /*#__PURE__*/_jsx("div", {
136
+ className: "drawer__fade-in",
137
+ children: DocumentView
138
+ }), /*#__PURE__*/_jsx(LoadingOverlay, {
139
+ animationDuration: "200ms",
140
+ overlayType: "drawer",
141
+ show: isLoading
142
+ })]
143
+ })
138
144
  });
139
145
  };
140
146
  //# sourceMappingURL=DrawerContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","docID","collectionSlug","disableActions","drawerSlug","initialData","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","getEntityConfig","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasInitialized","getDocumentView","showLoadingIndicator","controller","fetchDocumentView","result","signal","Document","error","message","current","args","operation","doc","clearDoc","abortGetDocumentView","_jsxs","_jsx","className","animationDuration","overlayType","show"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: docID,\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug }))\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const hasInitialized = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: DocumentDrawerProps['id'], showLoadingIndicator: boolean = false) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n if (showLoadingIndicator) {\n setIsLoading(true)\n }\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n overrideEntityVisibility,\n redirectAfterCreate,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n redirectAfterRestore: redirectAfterRestore !== undefined ? redirectAfterRestore : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n renderDocument,\n redirectAfterCreate,\n closeModal,\n overrideEntityVisibility,\n t,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n if (args.operation === 'create') {\n getDocumentView(args.doc.id)\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView(undefined, true)\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasInitialized.current) {\n getDocumentView(docID, true)\n hasInitialized.current = true\n }\n }, [DocumentView, getDocumentView, docID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {!isLoading && <div className=\"drawer__fade-in\">{DocumentView}</div>}\n <LoadingOverlay animationDuration=\"200ms\" overlayType=\"drawer\" show={isLoading} />\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","docID","collectionSlug","disableActions","drawerSlug","initialData","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","getEntityConfig","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasInitialized","getDocumentView","showLoadingIndicator","controller","fetchDocumentView","result","signal","Document","error","message","current","args","operation","doc","clearDoc","abortGetDocumentView","_jsx","_jsxs","Suspense","fallback","animationDuration","overlayType","className","show"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: docID,\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug }))\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const hasInitialized = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: DocumentDrawerProps['id'], showLoadingIndicator: boolean = false) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n if (showLoadingIndicator) {\n setIsLoading(true)\n }\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n overrideEntityVisibility,\n redirectAfterCreate,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n redirectAfterRestore: redirectAfterRestore !== undefined ? redirectAfterRestore : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n renderDocument,\n redirectAfterCreate,\n closeModal,\n overrideEntityVisibility,\n t,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n if (args.operation === 'create') {\n getDocumentView(args.doc.id)\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView(undefined, true)\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasInitialized.current) {\n getDocumentView(docID, true)\n hasInitialized.current = true\n }\n }, [DocumentView, getDocumentView, docID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n <React.Suspense fallback={<LoadingOverlay animationDuration=\"200ms\" overlayType=\"drawer\" />}>\n {!isLoading && <div className=\"drawer__fade-in\">{DocumentView}</div>}\n <LoadingOverlay animationDuration=\"200ms\" overlayType=\"drawer\" show={isLoading} />\n </React.Suspense>\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,YAAY,EAAE,qBAAqB,CAAA;IACnC,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;CAC9B,CA+DA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAClC,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,YAAY,EAAE,qBAAqB,CAAA;IACnC,WAAW,EAAE,oBAAoB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;CAC9B,CAgEA,CAAA"}
@@ -65,14 +65,16 @@ export const DocumentTabs = ({
65
65
  }
66
66
  });
67
67
  }
68
- return /*#__PURE__*/_jsx(DefaultDocumentTab, {
69
- collectionConfig: collectionConfig,
70
- globalConfig: globalConfig,
71
- path: viewPath,
72
- permissions: permissions,
73
- req: req,
74
- tabConfig: tabConfig,
75
- user: user
68
+ return /*#__PURE__*/_jsx("li", {
69
+ children: /*#__PURE__*/_jsx(DefaultDocumentTab, {
70
+ collectionConfig: collectionConfig,
71
+ globalConfig: globalConfig,
72
+ path: viewPath,
73
+ permissions: permissions,
74
+ req: req,
75
+ tabConfig: tabConfig,
76
+ user: user
77
+ })
76
78
  }, `tab-${index}`);
77
79
  })
78
80
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","ShouldRenderTabs","RenderServerComponent","DefaultDocumentTab","getTabs","baseClass","DocumentTabs","collectionConfig","globalConfig","permissions","req","user","config","payload","tabs","_jsx","className","map","tab","tabConfig","viewPath","index","condition","meetsCondition","Component","clientProps","path","importMap","key","serverProps","i18n","server"],"sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"sourcesContent":["import type {\n DocumentTabClientProps,\n DocumentTabServerPropsOnly,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n} from 'payload'\n\nimport React from 'react'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary\nimport { ShouldRenderTabs } from '../../../exports/client/index.js'\nimport { RenderServerComponent } from '../../RenderServerComponent/index.js'\nimport { DefaultDocumentTab } from './Tab/index.js'\nimport { getTabs } from './tabs/index.js'\nimport './index.css'\n\nconst baseClass = 'doc-tabs'\n\nexport const DocumentTabs: React.FC<{\n collectionConfig: SanitizedCollectionConfig\n globalConfig: SanitizedGlobalConfig\n permissions: SanitizedPermissions\n req: PayloadRequest\n user?: PayloadRequest['user']\n}> = ({ collectionConfig, globalConfig, permissions, req, user }) => {\n const { config } = req.payload\n\n const tabs = getTabs({\n collectionConfig,\n globalConfig,\n })\n\n return (\n <ShouldRenderTabs>\n <div className={baseClass}>\n <div className={`${baseClass}__tabs-container`}>\n <ul className={`${baseClass}__tabs`}>\n {tabs?.map(({ tab: tabConfig, viewPath }, index) => {\n const { condition } = tabConfig || {}\n\n const meetsCondition =\n !condition ||\n condition({ collectionConfig, config, globalConfig, permissions, req })\n\n if (!meetsCondition) {\n return null\n }\n\n if (tabConfig?.Component) {\n return RenderServerComponent({\n clientProps: {\n path: viewPath,\n } satisfies DocumentTabClientProps,\n Component: tabConfig.Component,\n importMap: req.payload.importMap,\n key: `tab-${index}`,\n serverProps: {\n collectionConfig,\n globalConfig,\n i18n: req.i18n,\n payload: req.payload,\n permissions,\n req,\n server: req.server,\n user,\n } satisfies DocumentTabServerPropsOnly,\n })\n }\n\n return (\n <DefaultDocumentTab\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n key={`tab-${index}`}\n path={viewPath}\n permissions={permissions}\n req={req}\n tabConfig={tabConfig}\n user={user}\n />\n )\n })}\n </ul>\n </div>\n </div>\n </ShouldRenderTabs>\n )\n}\n"],"mappings":";AASA,OAAOA,KAAA,MAAW;AAElB;AACA,SAASC,gBAAgB,QAAQ;AACjC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,OAAO,QAAQ;AACxB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,YAAA,GAMRA,CAAC;EAAEC,gBAAgB;EAAEC,YAAY;EAAEC,WAAW;EAAEC,GAAG;EAAEC;AAAI,CAAE;EAC9D,MAAM;IAAEC;EAAM,CAAE,GAAGF,GAAA,CAAIG,OAAO;EAE9B,MAAMC,IAAA,GAAOV,OAAA,CAAQ;IACnBG,gBAAA;IACAC;EACF;EAEA,oBACEO,IAAA,CAACd,gBAAA;cACC,aAAAc,IAAA,CAAC;MAAIC,SAAA,EAAWX,SAAA;gBACd,aAAAU,IAAA,CAAC;QAAIC,SAAA,EAAW,GAAGX,SAAA,kBAA2B;kBAC5C,aAAAU,IAAA,CAAC;UAAGC,SAAA,EAAW,GAAGX,SAAA,QAAiB;oBAChCS,IAAA,EAAMG,GAAA,CAAI,CAAC;YAAEC,GAAA,EAAKC,SAAS;YAAEC;UAAQ,CAAE,EAAEC,KAAA;YACxC,MAAM;cAAEC;YAAS,CAAE,GAAGH,SAAA,IAAa,CAAC;YAEpC,MAAMI,cAAA,GACJ,CAACD,SAAA,IACDA,SAAA,CAAU;cAAEf,gBAAA;cAAkBK,MAAA;cAAQJ,YAAA;cAAcC,WAAA;cAAaC;YAAI;YAEvE,IAAI,CAACa,cAAA,EAAgB;cACnB,OAAO;YACT;YAEA,IAAIJ,SAAA,EAAWK,SAAA,EAAW;cACxB,OAAOtB,qBAAA,CAAsB;gBAC3BuB,WAAA,EAAa;kBACXC,IAAA,EAAMN;gBACR;gBACAI,SAAA,EAAWL,SAAA,CAAUK,SAAS;gBAC9BG,SAAA,EAAWjB,GAAA,CAAIG,OAAO,CAACc,SAAS;gBAChCC,GAAA,EAAK,OAAOP,KAAA,EAAO;gBACnBQ,WAAA,EAAa;kBACXtB,gBAAA;kBACAC,YAAA;kBACAsB,IAAA,EAAMpB,GAAA,CAAIoB,IAAI;kBACdjB,OAAA,EAASH,GAAA,CAAIG,OAAO;kBACpBJ,WAAA;kBACAC,GAAA;kBACAqB,MAAA,EAAQrB,GAAA,CAAIqB,MAAM;kBAClBpB;gBACF;cACF;YACF;YAEA,oBACEI,IAAA,CAACZ,kBAAA;cACCI,gBAAA,EAAkBA,gBAAA;cAClBC,YAAA,EAAcA,YAAA;cAEdkB,IAAA,EAAMN,QAAA;cACNX,WAAA,EAAaA,WAAA;cACbC,GAAA,EAAKA,GAAA;cACLS,SAAA,EAAWA,SAAA;cACXR,IAAA,EAAMA;eALD,OAAOU,KAAA,EAAO;UAQzB;;;;;AAMZ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","ShouldRenderTabs","RenderServerComponent","DefaultDocumentTab","getTabs","baseClass","DocumentTabs","collectionConfig","globalConfig","permissions","req","user","config","payload","tabs","_jsx","className","map","tab","tabConfig","viewPath","index","condition","meetsCondition","Component","clientProps","path","importMap","key","serverProps","i18n","server"],"sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"sourcesContent":["import type {\n DocumentTabClientProps,\n DocumentTabServerPropsOnly,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n} from 'payload'\n\nimport React from 'react'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary\nimport { ShouldRenderTabs } from '../../../exports/client/index.js'\nimport { RenderServerComponent } from '../../RenderServerComponent/index.js'\nimport { DefaultDocumentTab } from './Tab/index.js'\nimport { getTabs } from './tabs/index.js'\nimport './index.css'\n\nconst baseClass = 'doc-tabs'\n\nexport const DocumentTabs: React.FC<{\n collectionConfig: SanitizedCollectionConfig\n globalConfig: SanitizedGlobalConfig\n permissions: SanitizedPermissions\n req: PayloadRequest\n user?: PayloadRequest['user']\n}> = ({ collectionConfig, globalConfig, permissions, req, user }) => {\n const { config } = req.payload\n\n const tabs = getTabs({\n collectionConfig,\n globalConfig,\n })\n\n return (\n <ShouldRenderTabs>\n <div className={baseClass}>\n <div className={`${baseClass}__tabs-container`}>\n <ul className={`${baseClass}__tabs`}>\n {tabs?.map(({ tab: tabConfig, viewPath }, index) => {\n const { condition } = tabConfig || {}\n\n const meetsCondition =\n !condition ||\n condition({ collectionConfig, config, globalConfig, permissions, req })\n\n if (!meetsCondition) {\n return null\n }\n\n if (tabConfig?.Component) {\n return RenderServerComponent({\n clientProps: {\n path: viewPath,\n } satisfies DocumentTabClientProps,\n Component: tabConfig.Component,\n importMap: req.payload.importMap,\n key: `tab-${index}`,\n serverProps: {\n collectionConfig,\n globalConfig,\n i18n: req.i18n,\n payload: req.payload,\n permissions,\n req,\n server: req.server,\n user,\n } satisfies DocumentTabServerPropsOnly,\n })\n }\n\n return (\n <li key={`tab-${index}`}>\n <DefaultDocumentTab\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n path={viewPath}\n permissions={permissions}\n req={req}\n tabConfig={tabConfig}\n user={user}\n />\n </li>\n )\n })}\n </ul>\n </div>\n </div>\n </ShouldRenderTabs>\n )\n}\n"],"mappings":";AASA,OAAOA,KAAA,MAAW;AAElB;AACA,SAASC,gBAAgB,QAAQ;AACjC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,OAAO,QAAQ;AACxB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,YAAA,GAMRA,CAAC;EAAEC,gBAAgB;EAAEC,YAAY;EAAEC,WAAW;EAAEC,GAAG;EAAEC;AAAI,CAAE;EAC9D,MAAM;IAAEC;EAAM,CAAE,GAAGF,GAAA,CAAIG,OAAO;EAE9B,MAAMC,IAAA,GAAOV,OAAA,CAAQ;IACnBG,gBAAA;IACAC;EACF;EAEA,oBACEO,IAAA,CAACd,gBAAA;cACC,aAAAc,IAAA,CAAC;MAAIC,SAAA,EAAWX,SAAA;gBACd,aAAAU,IAAA,CAAC;QAAIC,SAAA,EAAW,GAAGX,SAAA,kBAA2B;kBAC5C,aAAAU,IAAA,CAAC;UAAGC,SAAA,EAAW,GAAGX,SAAA,QAAiB;oBAChCS,IAAA,EAAMG,GAAA,CAAI,CAAC;YAAEC,GAAA,EAAKC,SAAS;YAAEC;UAAQ,CAAE,EAAEC,KAAA;YACxC,MAAM;cAAEC;YAAS,CAAE,GAAGH,SAAA,IAAa,CAAC;YAEpC,MAAMI,cAAA,GACJ,CAACD,SAAA,IACDA,SAAA,CAAU;cAAEf,gBAAA;cAAkBK,MAAA;cAAQJ,YAAA;cAAcC,WAAA;cAAaC;YAAI;YAEvE,IAAI,CAACa,cAAA,EAAgB;cACnB,OAAO;YACT;YAEA,IAAIJ,SAAA,EAAWK,SAAA,EAAW;cACxB,OAAOtB,qBAAA,CAAsB;gBAC3BuB,WAAA,EAAa;kBACXC,IAAA,EAAMN;gBACR;gBACAI,SAAA,EAAWL,SAAA,CAAUK,SAAS;gBAC9BG,SAAA,EAAWjB,GAAA,CAAIG,OAAO,CAACc,SAAS;gBAChCC,GAAA,EAAK,OAAOP,KAAA,EAAO;gBACnBQ,WAAA,EAAa;kBACXtB,gBAAA;kBACAC,YAAA;kBACAsB,IAAA,EAAMpB,GAAA,CAAIoB,IAAI;kBACdjB,OAAA,EAASH,GAAA,CAAIG,OAAO;kBACpBJ,WAAA;kBACAC,GAAA;kBACAqB,MAAA,EAAQrB,GAAA,CAAIqB,MAAM;kBAClBpB;gBACF;cACF;YACF;YAEA,oBACEI,IAAA,CAAC;wBACC,aAAAA,IAAA,CAACZ,kBAAA;gBACCI,gBAAA,EAAkBA,gBAAA;gBAClBC,YAAA,EAAcA,YAAA;gBACdkB,IAAA,EAAMN,QAAA;gBACNX,WAAA,EAAaA,WAAA;gBACbC,GAAA,EAAKA,GAAA;gBACLS,SAAA,EAAWA,SAAA;gBACXR,IAAA,EAAMA;;eARD,OAAOU,KAAA,EAAO;UAY3B;;;;;AAMZ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/DraggableFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOzE,MAAM,MAAM,yBAAyB,GAAG;IACtC,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,QAAQ,CAAC,EAAE,SAAS,CAAA;KACrB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA6EpE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/DraggableFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOzE,MAAM,MAAM,yBAAyB,GAAG;IACtC,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,QAAQ,CAAC,EAAE,SAAS,CAAA;KACrB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAgFpE,CAAA"}
@@ -3,6 +3,7 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import React from 'react';
6
+ import { useTranslation } from '../../../providers/Translation/index.js';
6
7
  import { Button } from '../../Button/index.js';
7
8
  import { Thumbnail } from '../../Thumbnail/index.js';
8
9
  import './index.css';
@@ -12,7 +13,10 @@ import { AlignJustifiedIcon } from '../../../icons/AlignJustified/index.js';
12
13
  import { EditIcon } from '../../../icons/Edit/index.js';
13
14
  import { useDocumentDrawer } from '../../DocumentDrawer/index.js';
14
15
  export const DraggableFileDetails = props => {
15
- const $ = _c(21);
16
+ const $ = _c(22);
17
+ const {
18
+ t
19
+ } = useTranslation();
16
20
  const {
17
21
  collectionSlug,
18
22
  doc,
@@ -43,7 +47,7 @@ export const DraggableFileDetails = props => {
43
47
  }
44
48
  const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer(t0);
45
49
  let t1;
46
- if ($[3] !== DocumentDrawer || $[4] !== DocumentDrawerToggler || $[5] !== collectionSlug || $[6] !== doc || $[7] !== filename || $[8] !== hideRemoveFile || $[9] !== id || $[10] !== imageCacheTag || $[11] !== isSortable || $[12] !== removeItem || $[13] !== rowIndex || $[14] !== thumbnailURL || $[15] !== uploadConfig || $[16] !== url) {
50
+ if ($[3] !== DocumentDrawer || $[4] !== DocumentDrawerToggler || $[5] !== collectionSlug || $[6] !== doc || $[7] !== filename || $[8] !== hideRemoveFile || $[9] !== id || $[10] !== imageCacheTag || $[11] !== isSortable || $[12] !== removeItem || $[13] !== rowIndex || $[14] !== t || $[15] !== thumbnailURL || $[16] !== uploadConfig || $[17] !== url) {
47
51
  t1 = draggableSortableItemProps => _jsxs("div", {
48
52
  className: [baseClass, draggableSortableItemProps && isSortable && `${baseClass}--has-drag-handle`].filter(Boolean).join(" "),
49
53
  ref: draggableSortableItemProps.setNodeRef,
@@ -58,6 +62,7 @@ export const DraggableFileDetails = props => {
58
62
  className: `${baseClass}__drag`,
59
63
  ...draggableSortableItemProps.attributes,
60
64
  ...draggableSortableItemProps.listeners,
65
+ "aria-label": `${t("general:dragToMove")}: ${filename}`,
61
66
  children: _jsx(AlignJustifiedIcon, {})
62
67
  }), _jsx(Thumbnail, {
63
68
  className: `${baseClass}__thumbnail`,
@@ -75,6 +80,7 @@ export const DraggableFileDetails = props => {
75
80
  children: [_jsx(DocumentDrawer, {}), _jsx(DocumentDrawerToggler, {
76
81
  children: _jsx(EditIcon, {})
77
82
  }), !hideRemoveFile && removeItem && _jsx(Button, {
83
+ "aria-label": `${t("general:remove")}: ${filename}`,
78
84
  buttonStyle: "ghost",
79
85
  className: `${baseClass}__remove`,
80
86
  icon: "x",
@@ -94,24 +100,25 @@ export const DraggableFileDetails = props => {
94
100
  $[11] = isSortable;
95
101
  $[12] = removeItem;
96
102
  $[13] = rowIndex;
97
- $[14] = thumbnailURL;
98
- $[15] = uploadConfig;
99
- $[16] = url;
100
- $[17] = t1;
103
+ $[14] = t;
104
+ $[15] = thumbnailURL;
105
+ $[16] = uploadConfig;
106
+ $[17] = url;
107
+ $[18] = t1;
101
108
  } else {
102
- t1 = $[17];
109
+ t1 = $[18];
103
110
  }
104
111
  let t2;
105
- if ($[18] !== id || $[19] !== t1) {
112
+ if ($[19] !== id || $[20] !== t1) {
106
113
  t2 = _jsx(DraggableSortableItem, {
107
114
  id,
108
115
  children: t1
109
116
  }, id);
110
- $[18] = id;
111
- $[19] = t1;
112
- $[20] = t2;
117
+ $[19] = id;
118
+ $[20] = t1;
119
+ $[21] = t2;
113
120
  } else {
114
- t2 = $[20];
121
+ t2 = $[21];
115
122
  }
116
123
  return t2;
117
124
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","Button","Thumbnail","baseClass","DraggableSortableItem","AlignJustifiedIcon","EditIcon","useDocumentDrawer","DraggableFileDetails","props","$","collectionSlug","doc","hideRemoveFile","imageCacheTag","isSortable","removeItem","rowIndex","uploadConfig","id","filename","thumbnailURL","url","t0","DocumentDrawer","DocumentDrawerToggler","t1","draggableSortableItemProps","_jsxs","className","filter","Boolean","join","ref","setNodeRef","style","transform","transition","zIndex","isDragging","undefined","children","_jsx","attributes","listeners","fileSrc","buttonStyle","icon","onClick","round","t2"],"sources":["../../../../src/elements/FileDetails/DraggableFileDetails/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { Button } from '../../Button/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport './index.css'\n\nconst baseClass = 'file-details-draggable'\n\nimport type { Data, FileSizes, SanitizedCollectionConfig } from 'payload'\n\nimport { DraggableSortableItem } from '../../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { AlignJustifiedIcon } from '../../../icons/AlignJustified/index.js'\nimport { EditIcon } from '../../../icons/Edit/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\n\nexport type DraggableFileDetailsProps = {\n collectionSlug: string\n customUploadActions?: React.ReactNode[]\n doc: {\n variants?: FileSizes\n } & Data\n enableAdjustments?: boolean\n hasImageSizes?: boolean\n hasMany: boolean\n hideRemoveFile?: boolean\n imageCacheTag?: false | string\n isSortable?: boolean\n removeItem?: (index: number) => void\n rowIndex: number\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const DraggableFileDetails: React.FC<DraggableFileDetailsProps> = (props) => {\n const {\n collectionSlug,\n doc,\n hideRemoveFile,\n imageCacheTag,\n isSortable,\n removeItem,\n rowIndex,\n uploadConfig,\n } = props\n\n const { id, filename, thumbnailURL, url } = doc\n\n const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer({\n id,\n collectionSlug,\n })\n\n return (\n <DraggableSortableItem id={id} key={id}>\n {(draggableSortableItemProps) => (\n <div\n className={[\n baseClass,\n draggableSortableItemProps && isSortable && `${baseClass}--has-drag-handle`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={id}\n ref={draggableSortableItemProps.setNodeRef}\n style={{\n transform: draggableSortableItemProps.transform,\n transition: draggableSortableItemProps.transition,\n zIndex: draggableSortableItemProps.isDragging ? 1 : undefined,\n }}\n >\n <div className={`${baseClass}--drag-wrapper`}>\n {isSortable && draggableSortableItemProps && (\n <div\n className={`${baseClass}__drag`}\n {...draggableSortableItemProps.attributes}\n {...draggableSortableItemProps.listeners}\n >\n <AlignJustifiedIcon />\n </div>\n )}\n <Thumbnail\n className={`${baseClass}__thumbnail`}\n collectionSlug={collectionSlug}\n doc={doc}\n fileSrc={thumbnailURL || url}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n </div>\n <div className={`${baseClass}__main-detail`}>{filename}</div>\n\n <div className={`${baseClass}__actions`}>\n <DocumentDrawer />\n <DocumentDrawerToggler>\n <EditIcon />\n </DocumentDrawerToggler>\n {!hideRemoveFile && removeItem && (\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n onClick={() => removeItem(rowIndex)}\n round\n />\n )}\n </div>\n </div>\n )}\n </DraggableSortableItem>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useTranslation","Button","Thumbnail","baseClass","DraggableSortableItem","AlignJustifiedIcon","EditIcon","useDocumentDrawer","DraggableFileDetails","props","$","t","collectionSlug","doc","hideRemoveFile","imageCacheTag","isSortable","removeItem","rowIndex","uploadConfig","id","filename","thumbnailURL","url","t0","DocumentDrawer","DocumentDrawerToggler","t1","draggableSortableItemProps","_jsxs","className","filter","Boolean","join","ref","setNodeRef","style","transform","transition","zIndex","isDragging","undefined","children","_jsx","attributes","listeners","fileSrc","buttonStyle","icon","onClick","round","t2"],"sources":["../../../../src/elements/FileDetails/DraggableFileDetails/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport './index.css'\n\nconst baseClass = 'file-details-draggable'\n\nimport type { Data, FileSizes, SanitizedCollectionConfig } from 'payload'\n\nimport { DraggableSortableItem } from '../../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { AlignJustifiedIcon } from '../../../icons/AlignJustified/index.js'\nimport { EditIcon } from '../../../icons/Edit/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\n\nexport type DraggableFileDetailsProps = {\n collectionSlug: string\n customUploadActions?: React.ReactNode[]\n doc: {\n variants?: FileSizes\n } & Data\n enableAdjustments?: boolean\n hasImageSizes?: boolean\n hasMany: boolean\n hideRemoveFile?: boolean\n imageCacheTag?: false | string\n isSortable?: boolean\n removeItem?: (index: number) => void\n rowIndex: number\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const DraggableFileDetails: React.FC<DraggableFileDetailsProps> = (props) => {\n const { t } = useTranslation()\n const {\n collectionSlug,\n doc,\n hideRemoveFile,\n imageCacheTag,\n isSortable,\n removeItem,\n rowIndex,\n uploadConfig,\n } = props\n\n const { id, filename, thumbnailURL, url } = doc\n\n const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer({\n id,\n collectionSlug,\n })\n\n return (\n <DraggableSortableItem id={id} key={id}>\n {(draggableSortableItemProps) => (\n <div\n className={[\n baseClass,\n draggableSortableItemProps && isSortable && `${baseClass}--has-drag-handle`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={id}\n ref={draggableSortableItemProps.setNodeRef}\n style={{\n transform: draggableSortableItemProps.transform,\n transition: draggableSortableItemProps.transition,\n zIndex: draggableSortableItemProps.isDragging ? 1 : undefined,\n }}\n >\n <div className={`${baseClass}--drag-wrapper`}>\n {isSortable && draggableSortableItemProps && (\n <div\n className={`${baseClass}__drag`}\n {...draggableSortableItemProps.attributes}\n {...draggableSortableItemProps.listeners}\n aria-label={`${t('general:dragToMove')}: ${filename}`}\n >\n <AlignJustifiedIcon />\n </div>\n )}\n <Thumbnail\n className={`${baseClass}__thumbnail`}\n collectionSlug={collectionSlug}\n doc={doc}\n fileSrc={thumbnailURL || url}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n </div>\n <div className={`${baseClass}__main-detail`}>{filename}</div>\n\n <div className={`${baseClass}__actions`}>\n <DocumentDrawer />\n <DocumentDrawerToggler>\n <EditIcon />\n </DocumentDrawerToggler>\n {!hideRemoveFile && removeItem && (\n <Button\n aria-label={`${t('general:remove')}: ${filename}`}\n buttonStyle=\"ghost\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n onClick={() => removeItem(rowIndex)}\n round\n />\n )}\n </div>\n </div>\n )}\n </DraggableSortableItem>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,QAAQ;AAC1B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAIlB,SAASC,qBAAqB,QAAQ;AACtC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,QAAQ,QAAQ;AACzB,SAASC,iBAAiB,QAAQ;AAmBlC,OAAO,MAAMC,oBAAA,GAA4DC,KAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EACvE;IAAAa;EAAA,IAAcX,cAAA;EACd;IAAAY,cAAA;IAAAC,GAAA;IAAAC,cAAA;IAAAC,aAAA;IAAAC,UAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC;EAAA,IASIV,KAAA;EAEJ;IAAAW,EAAA;IAAAC,QAAA;IAAAC,YAAA;IAAAC;EAAA,IAA4CV,GAAA;EAAA,IAAAW,EAAA;EAAA,IAAAd,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAU,EAAA;IAEsBI,EAAA;MAAAJ,EAAA;MAAAR;IAGlE;IAAAF,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAU,EAAA;IAAAV,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAHA,OAAAe,cAAA,EAAAC,qBAAA,IAAgDnB,iBAAA,CAAkBiB,EAGlE;EAAA,IAAAG,EAAA;EAAA,IAAAjB,CAAA,QAAAe,cAAA,IAAAf,CAAA,QAAAgB,qBAAA,IAAAhB,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAG,GAAA,IAAAH,CAAA,QAAAW,QAAA,IAAAX,CAAA,QAAAI,cAAA,IAAAJ,CAAA,QAAAU,EAAA,IAAAV,CAAA,SAAAK,aAAA,IAAAL,CAAA,SAAAM,UAAA,IAAAN,CAAA,SAAAO,UAAA,IAAAP,CAAA,SAAAQ,QAAA,IAAAR,CAAA,SAAAC,CAAA,IAAAD,CAAA,SAAAY,YAAA,IAAAZ,CAAA,SAAAS,YAAA,IAAAT,CAAA,SAAAa,GAAA;IAIKI,EAAA,GAAAC,0BAAA,IACCC,KAAA,CAAC;MAAAC,SAAA,EACY,CACT3B,SAAA,EACAyB,0BAA8B,IAA9BZ,UAA2E,IAA3E,GAA+Cb,SAAA,mBAA4B,CAC5E,CAAA4B,MACQ,CAACC,OAAA,EAAAC,IACH,CAAC;MAAAC,GAAA,EAEHN,0BAAA,CAAAO,UAAqC;MAAAC,KAAA,EACnC;QAAAC,SAAA,EACMT,0BAAA,CAAAS,SAAoC;QAAAC,UAAA,EACnCV,0BAAA,CAAAU,UAAqC;QAAAC,MAAA,EACzCX,0BAAA,CAAAY,UAA4C,GAA5C,CAA4C,GAA5CC;MACV;MAAAC,QAAA,E,CAEAb,KAAA,CAAC;QAAAC,SAAA,EAAe,GAAG3B,SAAA,gBAAyB;QAAAuC,QAAA,E,CACzC1B,UAAc,IAAdY,0B,IACCe,IAAA,CAAC;UAAAb,SAAA,EACY,GAAG3B,SAAA,QAAiB;UAAA,GAC3ByB,0BAAA,CAAAgB,UAAqC;UAAA,GACrChB,0BAAA,CAAAiB,SAAoC;UAAA,cAC5B,GAAGlC,CAAA,CAAE,0BAA0BU,QAAA,EAAU;UAAAqB,QAAA,EAErDC,IAAA,CAACtC,kBAAA;YAGLsC,IAAA,CAACzC,SAAA;UAAA4B,SAAA,EACY,GAAG3B,SAAA,aAAsB;UAAAS,cAAA;UAAAC,GAAA;UAAAiC,OAAA,EAG3BxB,YAAgB,IAAhBC,GAAgB;UAAAR,aAAA;UAAAI;;UAK7BwB,IAAA,CAAC;QAAAb,SAAA,EAAe,GAAG3B,SAAA,eAAwB;QAAAuC,QAAA,EAAGrB;UAE9CQ,KAAA,CAAC;QAAAC,SAAA,EAAe,GAAG3B,SAAA,WAAoB;QAAAuC,QAAA,E,CACrCC,IAAA,CAAClB,cAAA,OACDkB,IAAA,CAACjB,qBAAA;UAAAgB,QAAA,EACCC,IAAA,CAACrC,QAAA;YAEF,CAACQ,cAAkB,IAAnBG,U,IACC0B,IAAA,CAAC1C,MAAA;UAAA,cACa,GAAGU,CAAA,CAAE,sBAAsBU,QAAA,EAAU;UAAA0B,WAAA,EACrC;UAAAjB,SAAA,EACD,GAAG3B,SAAA,UAAmB;UAAA6C,IAAA,EAC5B;UAAAC,OAAA,EACIA,CAAA,KAAMhC,UAAA,CAAWC,QAAA;UAAAgC,KAAA,EACrB;;;OA1CN9B,EAAA;IAAAV,CAAA,MAAAe,cAAA;IAAAf,CAAA,MAAAgB,qBAAA;IAAAhB,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAG,GAAA;IAAAH,CAAA,MAAAW,QAAA;IAAAX,CAAA,MAAAI,cAAA;IAAAJ,CAAA,MAAAU,EAAA;IAAAV,CAAA,OAAAK,aAAA;IAAAL,CAAA,OAAAM,UAAA;IAAAN,CAAA,OAAAO,UAAA;IAAAP,CAAA,OAAAQ,QAAA;IAAAR,CAAA,OAAAC,CAAA;IAAAD,CAAA,OAAAY,YAAA;IAAAZ,CAAA,OAAAS,YAAA;IAAAT,CAAA,OAAAa,GAAA;IAAAb,CAAA,OAAAiB,EAAA;EAAA;IAAAA,EAAA,GAAAjB,CAAA;EAAA;EAAA,IAAAyC,EAAA;EAAA,IAAAzC,CAAA,SAAAU,EAAA,IAAAV,CAAA,SAAAiB,EAAA;IATXwB,EAAA,GAAAR,IAAA,CAACvC,qBAAA;MAAAgB,EAAA;MAAAsB,QAAA,EACEf;OADiCP,EAAA;IAAAV,CAAA,OAAAU,EAAA;IAAAV,CAAA,OAAAiB,EAAA;IAAAjB,CAAA,OAAAyC,EAAA;EAAA;IAAAA,EAAA,GAAAzC,CAAA;EAAA;EAAA,OAApCyC,EAAoC;AAAA,CA2DxC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEzE,MAAM,MAAM,sBAAsB,GAAG;IACnC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,QAAQ,CAAC,EAAE,SAAS,CAAA;KACrB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA4D9D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEzE,MAAM,MAAM,sBAAsB,GAAG;IACnC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,QAAQ,CAAC,EAAE,SAAS,CAAA;KACrB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA8D9D,CAAA"}