@payloadcms/ui 3.24.0-canary.7d9fbaf → 3.24.0-canary.a62d86f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +143 -108
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/ConfirmationModal/index.d.ts +19 -0
  5. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -0
  6. package/dist/elements/ConfirmationModal/index.js +143 -0
  7. package/dist/elements/ConfirmationModal/index.js.map +1 -0
  8. package/dist/elements/{GenerateConfirmation → ConfirmationModal}/index.scss +1 -1
  9. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  10. package/dist/elements/DeleteDocument/index.js +39 -80
  11. package/dist/elements/DeleteDocument/index.js.map +1 -1
  12. package/dist/elements/DeleteDocument/index.scss +0 -29
  13. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  14. package/dist/elements/DeleteMany/index.js +24 -44
  15. package/dist/elements/DeleteMany/index.js.map +1 -1
  16. package/dist/elements/DeleteMany/index.scss +0 -29
  17. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  18. package/dist/elements/DocumentControls/index.js.map +1 -1
  19. package/dist/elements/DuplicateDocument/index.d.ts +0 -1
  20. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  21. package/dist/elements/DuplicateDocument/index.js +38 -54
  22. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  23. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -0
  24. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  25. package/dist/elements/FileDetails/DraggableFileDetails/index.js +19 -17
  26. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  27. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +1 -0
  28. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  29. package/dist/elements/FileDetails/StaticFileDetails/index.js +2 -1
  30. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  31. package/dist/elements/FileDetails/index.d.ts +1 -0
  32. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  33. package/dist/elements/FileDetails/index.js.map +1 -1
  34. package/dist/elements/GenerateConfirmation/index.d.ts +1 -2
  35. package/dist/elements/GenerateConfirmation/index.d.ts.map +1 -1
  36. package/dist/elements/GenerateConfirmation/index.js +28 -47
  37. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  38. package/dist/elements/LeaveWithoutSaving/index.d.ts +0 -1
  39. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  40. package/dist/elements/LeaveWithoutSaving/index.js +63 -114
  41. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  42. package/dist/elements/ListControls/index.d.ts +1 -0
  43. package/dist/elements/ListControls/index.d.ts.map +1 -1
  44. package/dist/elements/ListControls/index.js +14 -0
  45. package/dist/elements/ListControls/index.js.map +1 -1
  46. package/dist/elements/ListControls/index.scss +5 -0
  47. package/dist/elements/PreviewButton/index.d.ts +2 -1
  48. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  49. package/dist/elements/PreviewButton/index.js +2 -2
  50. package/dist/elements/PreviewButton/index.js.map +1 -1
  51. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +1 -2
  52. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  53. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  54. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  55. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  56. package/dist/elements/PublishButton/index.d.ts +2 -3
  57. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  58. package/dist/elements/PublishButton/index.js +2 -2
  59. package/dist/elements/PublishButton/index.js.map +1 -1
  60. package/dist/elements/PublishMany/index.d.ts +0 -1
  61. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  62. package/dist/elements/PublishMany/index.js +27 -46
  63. package/dist/elements/PublishMany/index.js.map +1 -1
  64. package/dist/elements/RelationshipTable/index.d.ts +7 -2
  65. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  66. package/dist/elements/RelationshipTable/index.js +69 -23
  67. package/dist/elements/RelationshipTable/index.js.map +1 -1
  68. package/dist/elements/RelationshipTable/index.scss +6 -0
  69. package/dist/elements/SaveButton/index.d.ts +2 -3
  70. package/dist/elements/SaveButton/index.d.ts.map +1 -1
  71. package/dist/elements/SaveButton/index.js +3 -3
  72. package/dist/elements/SaveButton/index.js.map +1 -1
  73. package/dist/elements/SaveDraftButton/index.d.ts +2 -1
  74. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  75. package/dist/elements/SaveDraftButton/index.js +2 -2
  76. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  77. package/dist/elements/Status/index.d.ts.map +1 -1
  78. package/dist/elements/Status/index.js +179 -154
  79. package/dist/elements/Status/index.js.map +1 -1
  80. package/dist/elements/Status/index.scss +0 -41
  81. package/dist/elements/StayLoggedIn/index.d.ts +0 -1
  82. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  83. package/dist/elements/StayLoggedIn/index.js +53 -77
  84. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  85. package/dist/elements/Table/index.d.ts +1 -9
  86. package/dist/elements/Table/index.d.ts.map +1 -1
  87. package/dist/elements/Table/index.js.map +1 -1
  88. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
  89. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  90. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  91. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts +20 -0
  92. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
  93. package/dist/elements/TableColumns/buildPolymorphicColumnState.js +200 -0
  94. package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +1 -0
  95. package/dist/elements/TableColumns/index.d.ts +2 -3
  96. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  97. package/dist/elements/TableColumns/index.js +4 -3
  98. package/dist/elements/TableColumns/index.js.map +1 -1
  99. package/dist/elements/UnpublishMany/index.d.ts +1 -2
  100. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  101. package/dist/elements/UnpublishMany/index.js +22 -43
  102. package/dist/elements/UnpublishMany/index.js.map +1 -1
  103. package/dist/elements/Upload/index.d.ts.map +1 -1
  104. package/dist/elements/Upload/index.js +5 -1
  105. package/dist/elements/Upload/index.js.map +1 -1
  106. package/dist/elements/ViewDescription/index.d.ts +2 -5
  107. package/dist/elements/ViewDescription/index.d.ts.map +1 -1
  108. package/dist/elements/ViewDescription/index.js +2 -2
  109. package/dist/elements/ViewDescription/index.js.map +1 -1
  110. package/dist/exports/client/index.d.ts +46 -4
  111. package/dist/exports/client/index.d.ts.map +1 -1
  112. package/dist/exports/client/index.js +23 -23
  113. package/dist/exports/client/index.js.map +4 -4
  114. package/dist/fields/Join/index.d.ts.map +1 -1
  115. package/dist/fields/Join/index.js +8 -3
  116. package/dist/fields/Join/index.js.map +1 -1
  117. package/dist/fields/Select/Input.d.ts.map +1 -1
  118. package/dist/fields/Select/Input.js +2 -0
  119. package/dist/fields/Select/Input.js.map +1 -1
  120. package/dist/fields/Upload/Input.d.ts +1 -0
  121. package/dist/fields/Upload/Input.d.ts.map +1 -1
  122. package/dist/fields/Upload/Input.js.map +1 -1
  123. package/dist/forms/Form/index.d.ts.map +1 -1
  124. package/dist/forms/Form/index.js +19 -8
  125. package/dist/forms/Form/index.js.map +1 -1
  126. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  127. package/dist/forms/Form/initContextState.js +2 -0
  128. package/dist/forms/Form/initContextState.js.map +1 -1
  129. package/dist/forms/Form/types.d.ts +6 -0
  130. package/dist/forms/Form/types.d.ts.map +1 -1
  131. package/dist/forms/Form/types.js.map +1 -1
  132. package/dist/icons/Dots/index.d.ts +7 -0
  133. package/dist/icons/Dots/index.d.ts.map +1 -0
  134. package/dist/icons/Dots/index.js +12 -0
  135. package/dist/icons/Dots/index.js.map +1 -0
  136. package/dist/icons/Dots/index.scss +27 -0
  137. package/dist/providers/Selection/index.d.ts.map +1 -1
  138. package/dist/providers/Selection/index.js +5 -6
  139. package/dist/providers/Selection/index.js.map +1 -1
  140. package/dist/styles.css +1 -1
  141. package/dist/utilities/buildTableState.d.ts +1 -2
  142. package/dist/utilities/buildTableState.d.ts.map +1 -1
  143. package/dist/utilities/buildTableState.js +72 -20
  144. package/dist/utilities/buildTableState.js.map +1 -1
  145. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  146. package/dist/utilities/handleFormStateLocking.js +3 -6
  147. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  148. package/dist/utilities/renderTable.d.ts +6 -4
  149. package/dist/utilities/renderTable.d.ts.map +1 -1
  150. package/dist/utilities/renderTable.js +49 -17
  151. package/dist/utilities/renderTable.js.map +1 -1
  152. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  153. package/dist/views/Edit/Auth/index.js +61 -62
  154. package/dist/views/Edit/Auth/index.js.map +1 -1
  155. package/dist/views/Edit/index.d.ts +2 -2
  156. package/dist/views/Edit/index.d.ts.map +1 -1
  157. package/dist/views/Edit/index.js +3 -3
  158. package/dist/views/Edit/index.js.map +1 -1
  159. package/dist/views/List/index.d.ts +2 -25
  160. package/dist/views/List/index.d.ts.map +1 -1
  161. package/dist/views/List/index.js +6 -3
  162. package/dist/views/List/index.js.map +1 -1
  163. package/dist/views/List/types.d.ts +1 -18
  164. package/dist/views/List/types.d.ts.map +1 -1
  165. package/dist/views/List/types.js.map +1 -1
  166. package/package.json +5 -5
  167. package/dist/elements/DuplicateDocument/index.scss +0 -42
  168. package/dist/elements/LeaveWithoutSaving/index.scss +0 -39
  169. package/dist/elements/PublishMany/index.scss +0 -39
  170. package/dist/elements/StayLoggedIn/index.scss +0 -40
  171. package/dist/elements/UnpublishMany/index.scss +0 -39
@@ -1,16 +1,15 @@
1
1
  'use client';
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
- import { Modal, useModal } from '@faceless-ui/modal';
5
- import React from 'react';
4
+ import { useModal } from '@faceless-ui/modal';
5
+ import React, { useCallback } from 'react';
6
6
  import { toast } from 'sonner';
7
7
  import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
8
8
  import { useTranslation } from '../../providers/Translation/index.js';
9
9
  import { Button } from '../Button/index.js';
10
+ import { ConfirmationModal } from '../ConfirmationModal/index.js';
10
11
  import { Translation } from '../Translation/index.js';
11
- import './index.scss';
12
- const baseClass = 'generate-confirmation';
13
- export const GenerateConfirmation = props => {
12
+ export function GenerateConfirmation(props) {
14
13
  const {
15
14
  highlightField,
16
15
  setKey
@@ -25,12 +24,16 @@ export const GenerateConfirmation = props => {
25
24
  t
26
25
  } = useTranslation();
27
26
  const modalSlug = `generate-confirmation-${id}`;
28
- const handleGenerate = () => {
27
+ const handleGenerate = useCallback(({
28
+ closeConfirmationModal,
29
+ setConfirming
30
+ }) => {
29
31
  setKey();
30
- toggleModal(modalSlug);
31
32
  toast.success(t('authentication:newAPIKeyGenerated'));
32
33
  highlightField(true);
33
- };
34
+ setConfirming(false);
35
+ closeConfirmationModal();
36
+ }, [highlightField, setKey, t]);
34
37
  return /*#__PURE__*/_jsxs(React.Fragment, {
35
38
  children: [/*#__PURE__*/_jsx(Button, {
36
39
  buttonStyle: "secondary",
@@ -39,45 +42,23 @@ export const GenerateConfirmation = props => {
39
42
  },
40
43
  size: "small",
41
44
  children: t('authentication:generateNewAPIKey')
42
- }), /*#__PURE__*/_jsx(Modal, {
43
- className: baseClass,
44
- slug: modalSlug,
45
- children: /*#__PURE__*/_jsxs("div", {
46
- className: `${baseClass}__wrapper`,
47
- children: [/*#__PURE__*/_jsxs("div", {
48
- className: `${baseClass}__content`,
49
- children: [/*#__PURE__*/_jsx("h1", {
50
- children: t('authentication:confirmGeneration')
51
- }), /*#__PURE__*/_jsx("p", {
52
- children: /*#__PURE__*/_jsx(Translation, {
53
- elements: {
54
- 1: ({
55
- children
56
- }) => /*#__PURE__*/_jsx("strong", {
57
- children: children
58
- })
59
- },
60
- i18nKey: "authentication:generatingNewAPIKeyWillInvalidate",
61
- t: t
62
- })
63
- })]
64
- }), /*#__PURE__*/_jsxs("div", {
65
- className: `${baseClass}__controls`,
66
- children: [/*#__PURE__*/_jsx(Button, {
67
- buttonStyle: "secondary",
68
- onClick: () => {
69
- toggleModal(modalSlug);
70
- },
71
- size: "large",
72
- type: "button",
73
- children: t('general:cancel')
74
- }), /*#__PURE__*/_jsx(Button, {
75
- onClick: handleGenerate,
76
- children: t('authentication:generate')
77
- })]
78
- })]
79
- })
45
+ }), /*#__PURE__*/_jsx(ConfirmationModal, {
46
+ body: /*#__PURE__*/_jsx(Translation, {
47
+ elements: {
48
+ 1: ({
49
+ children
50
+ }) => /*#__PURE__*/_jsx("strong", {
51
+ children: children
52
+ })
53
+ },
54
+ i18nKey: "authentication:generatingNewAPIKeyWillInvalidate",
55
+ t: t
56
+ }),
57
+ confirmLabel: t('authentication:generate'),
58
+ heading: t('authentication:confirmGeneration'),
59
+ modalSlug: modalSlug,
60
+ onConfirm: handleGenerate
80
61
  })]
81
62
  });
82
- };
63
+ }
83
64
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Modal","useModal","React","toast","useDocumentInfo","useTranslation","Button","Translation","baseClass","GenerateConfirmation","props","highlightField","setKey","id","toggleModal","t","modalSlug","handleGenerate","success","_jsxs","Fragment","_jsx","buttonStyle","onClick","size","className","slug","elements","children","i18nKey","type"],"sources":["../../../src/elements/GenerateConfirmation/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'generate-confirmation'\n\nexport type GenerateConfirmationProps = {\n highlightField: (Boolean) => void\n setKey: () => void\n}\n\nexport const GenerateConfirmation: React.FC<GenerateConfirmationProps> = (props) => {\n const { highlightField, setKey } = props\n\n const { id } = useDocumentInfo()\n const { toggleModal } = useModal()\n const { t } = useTranslation()\n\n const modalSlug = `generate-confirmation-${id}`\n\n const handleGenerate = () => {\n setKey()\n toggleModal(modalSlug)\n toast.success(t('authentication:newAPIKeyGenerated'))\n highlightField(true)\n }\n\n return (\n <React.Fragment>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n toggleModal(modalSlug)\n }}\n size=\"small\"\n >\n {t('authentication:generateNewAPIKey')}\n </Button>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('authentication:confirmGeneration')}</h1>\n <p>\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"authentication:generatingNewAPIKeyWillInvalidate\"\n t={t}\n />\n </p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n toggleModal(modalSlug)\n }}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={handleGenerate}>{t('authentication:generate')}</Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;;AACA,SAASA,KAAK,EAAEC,QAAQ,QAAQ;AAChC,OAAOC,KAAA,MAAW;AAClB,SAASC,KAAK,QAAQ;AAEtB,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,WAAW,QAAQ;AAC5B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAOlB,OAAO,MAAMC,oBAAA,GAA6DC,KAAA;EACxE,MAAM;IAAEC,cAAc;IAAEC;EAAM,CAAE,GAAGF,KAAA;EAEnC,MAAM;IAAEG;EAAE,CAAE,GAAGT,eAAA;EACf,MAAM;IAAEU;EAAW,CAAE,GAAGb,QAAA;EACxB,MAAM;IAAEc;EAAC,CAAE,GAAGV,cAAA;EAEd,MAAMW,SAAA,GAAY,yBAAyBH,EAAA,EAAI;EAE/C,MAAMI,cAAA,GAAiBA,CAAA;IACrBL,MAAA;IACAE,WAAA,CAAYE,SAAA;IACZb,KAAA,CAAMe,OAAO,CAACH,CAAA,CAAE;IAChBJ,cAAA,CAAe;EACjB;EAEA,oBACEQ,KAAA,CAACjB,KAAA,CAAMkB,QAAQ;4BACbC,IAAA,CAACf,MAAA;MACCgB,WAAA,EAAY;MACZC,OAAA,EAASA,CAAA;QACPT,WAAA,CAAYE,SAAA;MACd;MACAQ,IAAA,EAAK;gBAEJT,CAAA,CAAE;qBAELM,IAAA,CAACrB,KAAA;MAAMyB,SAAA,EAAWjB,SAAA;MAAWkB,IAAA,EAAMV,SAAA;gBACjC,aAAAG,KAAA,CAAC;QAAIM,SAAA,EAAW,GAAGjB,SAAA,WAAoB;gCACrCW,KAAA,CAAC;UAAIM,SAAA,EAAW,GAAGjB,SAAA,WAAoB;kCACrCa,IAAA,CAAC;sBAAIN,CAAA,CAAE;2BACPM,IAAA,CAAC;sBACC,aAAAA,IAAA,CAACd,WAAA;cACCoB,QAAA,EAAU;gBACR,GAAG,CAAC;kBAAEC;gBAAQ,CAAE,kBAAKP,IAAA,CAAC;4BAAQO;;cAChC;cACAC,OAAA,EAAQ;cACRd,CAAA,EAAGA;;;yBAITI,KAAA,CAAC;UAAIM,SAAA,EAAW,GAAGjB,SAAA,YAAqB;kCACtCa,IAAA,CAACf,MAAA;YACCgB,WAAA,EAAY;YACZC,OAAA,EAASA,CAAA;cACPT,WAAA,CAAYE,SAAA;YACd;YACAQ,IAAA,EAAK;YACLM,IAAA,EAAK;sBAEJf,CAAA,CAAE;2BAELM,IAAA,CAACf,MAAA;YAAOiB,OAAA,EAASN,cAAA;sBAAiBF,CAAA,CAAE;;;;;;AAMhD","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","React","useCallback","toast","useDocumentInfo","useTranslation","Button","ConfirmationModal","Translation","GenerateConfirmation","props","highlightField","setKey","id","toggleModal","t","modalSlug","handleGenerate","closeConfirmationModal","setConfirming","success","_jsxs","Fragment","_jsx","buttonStyle","onClick","size","body","elements","children","i18nKey","confirmLabel","heading","onConfirm"],"sources":["../../../src/elements/GenerateConfirmation/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { OnConfirm } from '../ConfirmationModal/index.js'\n\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { Translation } from '../Translation/index.js'\n\nexport type GenerateConfirmationProps = {\n highlightField: (Boolean) => void\n setKey: () => void\n}\n\nexport function GenerateConfirmation(props: GenerateConfirmationProps) {\n const { highlightField, setKey } = props\n\n const { id } = useDocumentInfo()\n const { toggleModal } = useModal()\n const { t } = useTranslation()\n\n const modalSlug = `generate-confirmation-${id}`\n\n const handleGenerate: OnConfirm = useCallback(\n ({ closeConfirmationModal, setConfirming }) => {\n setKey()\n toast.success(t('authentication:newAPIKeyGenerated'))\n highlightField(true)\n setConfirming(false)\n closeConfirmationModal()\n },\n [highlightField, setKey, t],\n )\n\n return (\n <React.Fragment>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n toggleModal(modalSlug)\n }}\n size=\"small\"\n >\n {t('authentication:generateNewAPIKey')}\n </Button>\n <ConfirmationModal\n body={\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"authentication:generatingNewAPIKeyWillInvalidate\"\n t={t}\n />\n }\n confirmLabel={t('authentication:generate')}\n heading={t('authentication:confirmGeneration')}\n modalSlug={modalSlug}\n onConfirm={handleGenerate}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;;AACA,SAASA,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,WAAW,QAAQ;AACnC,SAASC,KAAK,QAAQ;AAItB,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,WAAW,QAAQ;AAO5B,OAAO,SAASC,qBAAqBC,KAAgC;EACnE,MAAM;IAAEC,cAAc;IAAEC;EAAM,CAAE,GAAGF,KAAA;EAEnC,MAAM;IAAEG;EAAE,CAAE,GAAGT,eAAA;EACf,MAAM;IAAEU;EAAW,CAAE,GAAGd,QAAA;EACxB,MAAM;IAAEe;EAAC,CAAE,GAAGV,cAAA;EAEd,MAAMW,SAAA,GAAY,yBAAyBH,EAAA,EAAI;EAE/C,MAAMI,cAAA,GAA4Bf,WAAA,CAChC,CAAC;IAAEgB,sBAAsB;IAAEC;EAAa,CAAE;IACxCP,MAAA;IACAT,KAAA,CAAMiB,OAAO,CAACL,CAAA,CAAE;IAChBJ,cAAA,CAAe;IACfQ,aAAA,CAAc;IACdD,sBAAA;EACF,GACA,CAACP,cAAA,EAAgBC,MAAA,EAAQG,CAAA,CAAE;EAG7B,oBACEM,KAAA,CAACpB,KAAA,CAAMqB,QAAQ;4BACbC,IAAA,CAACjB,MAAA;MACCkB,WAAA,EAAY;MACZC,OAAA,EAASA,CAAA;QACPX,WAAA,CAAYE,SAAA;MACd;MACAU,IAAA,EAAK;gBAEJX,CAAA,CAAE;qBAELQ,IAAA,CAAChB,iBAAA;MACCoB,IAAA,eACEJ,IAAA,CAACf,WAAA;QACCoB,QAAA,EAAU;UACR,GAAG,CAAC;YAAEC;UAAQ,CAAE,kBAAKN,IAAA,CAAC;sBAAQM;;QAChC;QACAC,OAAA,EAAQ;QACRf,CAAA,EAAGA;;MAGPgB,YAAA,EAAchB,CAAA,CAAE;MAChBiB,OAAA,EAASjB,CAAA,CAAE;MACXC,SAAA,EAAWA,SAAA;MACXiB,SAAA,EAAWhB;;;AAInB","ignoreList":[]}
@@ -1,4 +1,3 @@
1
1
  import React from 'react';
2
- import './index.scss';
3
2
  export declare const LeaveWithoutSaving: React.FC;
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiC,MAAM,OAAO,CAAA;AAOrD,OAAO,cAAc,CAAA;AAkDrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EA8BtC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAa1C,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAyCtC,CAAA"}
@@ -1,166 +1,115 @@
1
1
  'use client';
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- import React, { useCallback, useEffect } from 'react';
6
- import { useFormModified } from '../../forms/Form/index.js';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import React, { useCallback } from 'react';
6
+ import { useForm, useFormModified } from '../../forms/Form/index.js';
7
7
  import { useAuth } from '../../providers/Auth/index.js';
8
8
  import { useTranslation } from '../../providers/Translation/index.js';
9
- import { Button } from '../Button/index.js';
10
- import { Modal, useModal } from '../Modal/index.js';
11
- import './index.scss';
9
+ import { ConfirmationModal } from '../ConfirmationModal/index.js';
10
+ import { useModal } from '../Modal/index.js';
12
11
  import { usePreventLeave } from './usePreventLeave.js';
13
12
  const modalSlug = 'leave-without-saving';
14
- const baseClass = 'leave-without-saving';
15
- const Component = t0 => {
16
- const $ = _c(9);
17
- const {
18
- isActive,
19
- onCancel,
20
- onConfirm
21
- } = t0;
13
+ export const LeaveWithoutSaving = () => {
14
+ const $ = _c(15);
22
15
  const {
23
16
  closeModal,
24
17
  openModal
25
18
  } = useModal();
26
- const {
27
- t
28
- } = useTranslation();
29
- let t1;
30
- let t2;
31
- if ($[0] !== closeModal || $[1] !== isActive || $[2] !== openModal) {
32
- t1 = () => {
33
- if (isActive) {
34
- openModal(modalSlug);
35
- } else {
36
- closeModal(modalSlug);
37
- }
38
- };
39
- t2 = [isActive, openModal, closeModal];
40
- $[0] = closeModal;
41
- $[1] = isActive;
42
- $[2] = openModal;
43
- $[3] = t1;
44
- $[4] = t2;
45
- } else {
46
- t1 = $[3];
47
- t2 = $[4];
48
- }
49
- useEffect(t1, t2);
50
- let t3;
51
- if ($[5] !== onCancel || $[6] !== onConfirm || $[7] !== t) {
52
- t3 = _jsx(Modal, {
53
- className: baseClass,
54
- onClose: onCancel,
55
- slug: modalSlug,
56
- children: _jsxs("div", {
57
- className: `${baseClass}__wrapper`,
58
- children: [_jsxs("div", {
59
- className: `${baseClass}__content`,
60
- children: [_jsx("h1", {
61
- children: t("general:leaveWithoutSaving")
62
- }), _jsx("p", {
63
- children: t("general:changesNotSaved")
64
- })]
65
- }), _jsxs("div", {
66
- className: `${baseClass}__controls`,
67
- children: [_jsx(Button, {
68
- buttonStyle: "secondary",
69
- onClick: onCancel,
70
- size: "large",
71
- children: t("general:stayOnThisPage")
72
- }), _jsx(Button, {
73
- onClick: onConfirm,
74
- size: "large",
75
- children: t("general:leaveAnyway")
76
- })]
77
- })]
78
- })
79
- });
80
- $[5] = onCancel;
81
- $[6] = onConfirm;
82
- $[7] = t;
83
- $[8] = t3;
84
- } else {
85
- t3 = $[8];
86
- }
87
- return t3;
88
- };
89
- export const LeaveWithoutSaving = () => {
90
- const $ = _c(11);
91
- const {
92
- closeModal
93
- } = useModal();
94
19
  const modified = useFormModified();
20
+ const {
21
+ isValid
22
+ } = useForm();
95
23
  const {
96
24
  user
97
25
  } = useAuth();
98
- const [show, setShow] = React.useState(false);
99
26
  const [hasAccepted, setHasAccepted] = React.useState(false);
100
- const prevent = Boolean(modified && user);
27
+ const {
28
+ t
29
+ } = useTranslation();
30
+ const prevent = Boolean((modified || !isValid) && user);
101
31
  let t0;
102
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
32
+ if ($[0] !== openModal) {
103
33
  t0 = () => {
104
- setShow(true);
34
+ openModal(modalSlug);
105
35
  };
106
- $[0] = t0;
36
+ $[0] = openModal;
37
+ $[1] = t0;
107
38
  } else {
108
- t0 = $[0];
39
+ t0 = $[1];
109
40
  }
110
41
  const onPrevent = t0;
111
42
  let t1;
112
- if ($[1] !== closeModal) {
43
+ if ($[2] !== closeModal) {
113
44
  t1 = () => {
114
45
  closeModal(modalSlug);
115
46
  };
116
- $[1] = closeModal;
117
- $[2] = t1;
47
+ $[2] = closeModal;
48
+ $[3] = t1;
118
49
  } else {
119
- t1 = $[2];
50
+ t1 = $[3];
120
51
  }
121
52
  const handleAccept = t1;
122
53
  let t2;
123
- if ($[3] !== handleAccept || $[4] !== hasAccepted || $[5] !== prevent) {
54
+ if ($[4] !== handleAccept || $[5] !== hasAccepted || $[6] !== onPrevent || $[7] !== prevent) {
124
55
  t2 = {
125
56
  hasAccepted,
126
57
  onAccept: handleAccept,
127
58
  onPrevent,
128
59
  prevent
129
60
  };
130
- $[3] = handleAccept;
131
- $[4] = hasAccepted;
132
- $[5] = prevent;
133
- $[6] = t2;
61
+ $[4] = handleAccept;
62
+ $[5] = hasAccepted;
63
+ $[6] = onPrevent;
64
+ $[7] = prevent;
65
+ $[8] = t2;
134
66
  } else {
135
- t2 = $[6];
67
+ t2 = $[8];
136
68
  }
137
69
  usePreventLeave(t2);
138
70
  let t3;
139
- let t4;
140
- if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
71
+ if ($[9] !== closeModal) {
141
72
  t3 = () => {
142
- setShow(false);
73
+ closeModal(modalSlug);
143
74
  };
144
- t4 = () => {
75
+ $[9] = closeModal;
76
+ $[10] = t3;
77
+ } else {
78
+ t3 = $[10];
79
+ }
80
+ const onCancel = t3;
81
+ let t4;
82
+ if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
83
+ t4 = t5 => {
84
+ const {
85
+ closeConfirmationModal,
86
+ setConfirming
87
+ } = t5;
145
88
  setHasAccepted(true);
89
+ setConfirming(false);
90
+ closeConfirmationModal();
146
91
  };
147
- $[7] = t3;
148
- $[8] = t4;
92
+ $[11] = t4;
149
93
  } else {
150
- t3 = $[7];
151
- t4 = $[8];
94
+ t4 = $[11];
152
95
  }
96
+ const onConfirm = t4;
153
97
  let t5;
154
- if ($[9] !== show) {
155
- t5 = _jsx(Component, {
156
- isActive: show,
157
- onCancel: t3,
158
- onConfirm: t4
98
+ if ($[12] !== onCancel || $[13] !== t) {
99
+ t5 = _jsx(ConfirmationModal, {
100
+ body: t("general:changesNotSaved"),
101
+ cancelLabel: t("general:stayOnThisPage"),
102
+ confirmLabel: t("general:leaveAnyway"),
103
+ heading: t("general:leaveWithoutSaving"),
104
+ modalSlug,
105
+ onCancel,
106
+ onConfirm
159
107
  });
160
- $[9] = show;
161
- $[10] = t5;
108
+ $[12] = onCancel;
109
+ $[13] = t;
110
+ $[14] = t5;
162
111
  } else {
163
- t5 = $[10];
112
+ t5 = $[14];
164
113
  }
165
114
  return t5;
166
115
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useEffect","useFormModified","useAuth","useTranslation","Button","Modal","useModal","usePreventLeave","modalSlug","baseClass","Component","t0","$","isActive","onCancel","onConfirm","closeModal","openModal","t","t1","t2","t3","_jsx","className","onClose","slug","children","_jsxs","buttonStyle","onClick","size","LeaveWithoutSaving","modified","user","show","setShow","useState","hasAccepted","setHasAccepted","prevent","Boolean","Symbol","for","onPrevent","handleAccept","onAccept","t4","t5"],"sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect } from 'react'\n\nimport { useFormModified } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Modal, useModal } from '../Modal/index.js'\nimport './index.scss'\nimport { usePreventLeave } from './usePreventLeave.js'\n\nconst modalSlug = 'leave-without-saving'\n\nconst baseClass = 'leave-without-saving'\n\nconst Component: React.FC<{\n isActive: boolean\n onCancel: () => void\n onConfirm: () => void\n}> = ({ isActive, onCancel, onConfirm }) => {\n const { closeModal, openModal } = useModal()\n const { t } = useTranslation()\n\n // Manually check for modal state as 'esc' key will not trigger the nav inactivity\n // useEffect(() => {\n // if (!modalState?.[modalSlug]?.isOpen && isActive) {\n // onCancel()\n // }\n // }, [modalState, isActive, onCancel])\n\n useEffect(() => {\n if (isActive) {\n openModal(modalSlug)\n } else {\n closeModal(modalSlug)\n }\n }, [isActive, openModal, closeModal])\n\n return (\n <Modal className={baseClass} onClose={onCancel} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('general:leaveWithoutSaving')}</h1>\n <p>{t('general:changesNotSaved')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button buttonStyle=\"secondary\" onClick={onCancel} size=\"large\">\n {t('general:stayOnThisPage')}\n </Button>\n <Button onClick={onConfirm} size=\"large\">\n {t('general:leaveAnyway')}\n </Button>\n </div>\n </div>\n </Modal>\n )\n}\n\nexport const LeaveWithoutSaving: React.FC = () => {\n const { closeModal } = useModal()\n const modified = useFormModified()\n const { user } = useAuth()\n const [show, setShow] = React.useState(false)\n const [hasAccepted, setHasAccepted] = React.useState(false)\n\n const prevent = Boolean(modified && user)\n\n const onPrevent = useCallback(() => {\n setShow(true)\n }, [])\n\n const handleAccept = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal])\n\n usePreventLeave({ hasAccepted, onAccept: handleAccept, onPrevent, prevent })\n\n return (\n <Component\n isActive={show}\n onCancel={() => {\n setShow(false)\n }}\n onConfirm={() => {\n setHasAccepted(true)\n }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useForm","useFormModified","useAuth","useTranslation","ConfirmationModal","useModal","usePreventLeave","modalSlug","LeaveWithoutSaving","$","closeModal","openModal","modified","isValid","user","hasAccepted","setHasAccepted","useState","t","prevent","Boolean","t0","onPrevent","t1","handleAccept","t2","onAccept","t3","onCancel","t4","Symbol","for","t5","closeConfirmationModal","setConfirming","onConfirm","_jsx","body","cancelLabel","confirmLabel","heading"],"sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback } from 'react'\n\nimport type { OnCancel, OnConfirm } from '../ConfirmationModal/index.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { useModal } from '../Modal/index.js'\nimport { usePreventLeave } from './usePreventLeave.js'\n\nconst modalSlug = 'leave-without-saving'\n\nexport const LeaveWithoutSaving: React.FC = () => {\n const { closeModal, openModal } = useModal()\n const modified = useFormModified()\n const { isValid } = useForm()\n const { user } = useAuth()\n const [hasAccepted, setHasAccepted] = React.useState(false)\n const { t } = useTranslation()\n\n const prevent = Boolean((modified || !isValid) && user)\n\n const onPrevent = useCallback(() => {\n openModal(modalSlug)\n }, [openModal])\n\n const handleAccept = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal])\n\n usePreventLeave({ hasAccepted, onAccept: handleAccept, onPrevent, prevent })\n\n const onCancel: OnCancel = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal])\n\n const onConfirm: OnConfirm = useCallback(({ closeConfirmationModal, setConfirming }) => {\n setHasAccepted(true)\n setConfirming(false)\n closeConfirmationModal()\n }, [])\n\n return (\n <ConfirmationModal\n body={t('general:changesNotSaved')}\n cancelLabel={t('general:stayOnThisPage')}\n confirmLabel={t('general:leaveAnyway')}\n heading={t('general:leaveWithoutSaving')}\n modalSlug={modalSlug}\n onCancel={onCancel}\n onConfirm={onConfirm}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAInC,SAASC,OAAO,EAAEC,eAAe,QAAQ;AACzC,SAASC,OAAO,QAAQ;AACxB,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,QAAQ,QAAQ;AACzB,SAASC,eAAe,QAAQ;AAEhC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,kBAAA,GAA+BA,CAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAC1C;IAAAa,UAAA;IAAAC;EAAA,IAAkCN,QAAA;EAClC,MAAAO,QAAA,GAAiBX,eAAA;EACjB;IAAAY;EAAA,IAAoBb,OAAA;EACpB;IAAAc;EAAA,IAAiBZ,OAAA;EACjB,OAAAa,WAAA,EAAAC,cAAA,IAAsClB,KAAA,CAAAmB,QAAA,MAAe;EACrD;IAAAC;EAAA,IAAcf,cAAA;EAEd,MAAAgB,OAAA,GAAgBC,OAAA,CAAQ,CAACR,QAAA,KAAaC,OAAM,KAAMC,IAAA;EAAA,IAAAO,EAAA;EAAA,IAAAZ,CAAA,QAAAE,SAAA;IAEpBU,EAAA,GAAAA,CAAA;MAC5BV,SAAA,CAAAJ,SAAU;IAAA;IACZE,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAFA,MAAAa,SAAA,GAAkBD,EAEJ;EAAA,IAAAE,EAAA;EAAA,IAAAd,CAAA,QAAAC,UAAA;IAEmBa,EAAA,GAAAA,CAAA;MAC/Bb,UAAA,CAAAH,SAAW;IAAA;IACbE,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAFA,MAAAe,YAAA,GAAqBD,EAEN;EAAA,IAAAE,EAAA;EAAA,IAAAhB,CAAA,QAAAe,YAAA,IAAAf,CAAA,QAAAM,WAAA,IAAAN,CAAA,QAAAa,SAAA,IAAAb,CAAA,QAAAU,OAAA;IAECM,EAAA;MAAAV,WAAA;MAAAW,QAAA,EAAyBF,YAAA;MAAAF,SAAA;MAAAH;IAAA;IAAiCV,CAAA,MAAAe,YAAA;IAAAf,CAAA,MAAAM,WAAA;IAAAN,CAAA,MAAAa,SAAA;IAAAb,CAAA,MAAAU,OAAA;IAAAV,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAA1EH,eAAA,CAAgBmB,EAA0D;EAAA,IAAAE,EAAA;EAAA,IAAAlB,CAAA,QAAAC,UAAA;IAEnCiB,EAAA,GAAAA,CAAA;MACrCjB,UAAA,CAAAH,SAAW;IAAA;IACbE,CAAA,MAAAC,UAAA;IAAAD,CAAA,OAAAkB,EAAA;EAAA;IAAAA,EAAA,GAAAlB,CAAA;EAAA;EAFA,MAAAmB,QAAA,GAA2BD,EAEZ;EAAA,IAAAE,EAAA;EAAA,IAAApB,CAAA,SAAAqB,MAAA,CAAAC,GAAA;IAE0BF,EAAA,GAAAG,EAAA;MAAC;QAAAC,sBAAA;QAAAC;MAAA,IAAAF,EAAyC;MACjFhB,cAAA,KAAe;MACfkB,aAAA,MAAc;MACdD,sBAAA;IAAA;IACFxB,CAAA,OAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAJA,MAAA0B,SAAA,GAA6BN,EAIxB;EAAA,IAAAG,EAAA;EAAA,IAAAvB,CAAA,SAAAmB,QAAA,IAAAnB,CAAA,SAAAS,CAAA;IAGHc,EAAA,GAAAI,IAAA,CAAAhC,iBAAA;MAAAiC,IAAA,EACQnB,CAAA,CAAE;MAAAoB,WAAA,EACKpB,CAAA,CAAE;MAAAqB,YAAA,EACDrB,CAAA,CAAE;MAAAsB,OAAA,EACPtB,CAAA,CAAE;MAAAX,SAAA;MAAAqB,QAAA;MAAAO;IAAA,C;;;;;;;SAJbH,E;CAUJ","ignoreList":[]}
@@ -12,6 +12,7 @@ export type ListControlsProps = {
12
12
  readonly handleSearchChange?: (search: string) => void;
13
13
  readonly handleSortChange?: (sort: string) => void;
14
14
  readonly handleWhereChange?: (where: Where) => void;
15
+ readonly listMenuItems?: React.ReactNode[];
15
16
  readonly renderedFilters?: Map<string, React.ReactNode>;
16
17
  readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>;
17
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAInF,OAAO,KAAgD,MAAM,OAAO,CAAA;AAkBpE,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACvD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CACpE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA8LpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAInF,OAAO,KAAgD,MAAM,OAAO,CAAA;AAoBpE,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACvD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CACpE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyMpD,CAAA"}
@@ -4,8 +4,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useWindowInfo } from '@faceless-ui/window-info';
5
5
  import { getTranslation } from '@payloadcms/translations';
6
6
  import React, { Fragment, useEffect, useRef, useState } from 'react';
7
+ import { Popup, PopupList } from '../../elements/Popup/index.js';
7
8
  import { useUseTitleField } from '../../hooks/useUseAsTitle.js';
8
9
  import { ChevronIcon } from '../../icons/Chevron/index.js';
10
+ import { Dots } from '../../icons/Dots/index.js';
9
11
  import { SearchIcon } from '../../icons/Search/index.js';
10
12
  import { useListQuery } from '../../providers/ListQuery/index.js';
11
13
  import { useTranslation } from '../../providers/Translation/index.js';
@@ -36,6 +38,7 @@ export const ListControls = props => {
36
38
  disableBulkEdit,
37
39
  enableColumns = true,
38
40
  enableSort = false,
41
+ listMenuItems,
39
42
  renderedFilters,
40
43
  resolvedFilterOptions
41
44
  } = props;
@@ -144,6 +147,17 @@ export const ListControls = props => {
144
147
  onClick: () => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined),
145
148
  pillStyle: "light",
146
149
  children: t('general:sort')
150
+ }), listMenuItems && /*#__PURE__*/_jsx(Popup, {
151
+ button: /*#__PURE__*/_jsx(Dots, {
152
+ ariaLabel: t('general:moreOptions')
153
+ }),
154
+ className: `${baseClass}__popup`,
155
+ horizontalAlign: "right",
156
+ size: "large",
157
+ verticalAlign: "bottom",
158
+ children: /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
159
+ children: listMenuItems.map(item => item)
160
+ })
147
161
  })]
148
162
  })
149
163
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useWindowInfo","getTranslation","React","Fragment","useEffect","useRef","useState","useUseTitleField","ChevronIcon","SearchIcon","useListQuery","useTranslation","AnimateHeight","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","disableBulkDelete","disableBulkEdit","enableColumns","enableSort","renderedFilters","resolvedFilterOptions","handleSearchChange","query","titleField","i18n","t","breakpoints","s","smallBreak","searchLabel","label","name","listSearchableFields","admin","fields","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","_jsxs","className","_jsx","fieldName","handleChange","search","initialParams","collection","icon","direction","onClick","pillStyle","height","id","slug","collectionPluralLabel","labels","plural"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ResolvedFilterOptions, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n readonly disableBulkDelete?: boolean\n readonly disableBulkEdit?: boolean\n readonly enableColumns?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly renderedFilters?: Map<string, React.ReactNode>\n readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n enableColumns = true,\n enableSort = false,\n renderedFilters,\n resolvedFilterOptions,\n } = props\n\n const { handleSearchChange, query } = useListQuery()\n const titleField = useUseTitleField(collectionConfig)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField && typeof titleField.label === 'string'\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n collectionConfig.fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(query?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={titleField && 'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n // @ts-expect-error @todo: fix types\n initialParams={query}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n {beforeActions && beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns`}\n icon={<ChevronIcon direction={visibleDrawer === 'columns' ? 'up' : 'down'} />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where`}\n icon={<ChevronIcon direction={visibleDrawer === 'where' ? 'up' : 'down'} />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAE7D,SAASC,gBAAgB,QAAQ;AACjC,SAASC,WAAW,QAAQ;AAC5B,SAASC,UAAU,QAAQ;AAC3B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,QAAQ,QAAQ;AACzB,SAASC,IAAI,QAAQ;AACrB,SAASC,WAAW,QAAQ;AAC5B,SAASC,YAAY,QAAQ;AAC7B,SAASC,aAAa,QAAQ;AAC9B,SAASC,YAAY,QAAQ;AAC7B,OAAOC,kBAAA,MAAwB;AAC/B,SAASC,yBAAyB,QAAQ;AAC1C,OAAO;AAEP,MAAMC,SAAA,GAAY;AAiBlB;;;;;AAKA,OAAO,MAAMC,YAAA,GAA6CC,KAAA;EACxD,MAAM;IACJC,aAAa;IACbC,gBAAgB;IAChBC,cAAc;IACdC,iBAAiB;IACjBC,eAAe;IACfC,aAAA,GAAgB,IAAI;IACpBC,UAAA,GAAa,KAAK;IAClBC,eAAe;IACfC;EAAqB,CACtB,GAAGT,KAAA;EAEJ,MAAM;IAAEU,kBAAkB;IAAEC;EAAK,CAAE,GAAG1B,YAAA;EACtC,MAAM2B,UAAA,GAAa9B,gBAAA,CAAiBoB,gBAAA;EACpC,MAAM;IAAEW,IAAI;IAAEC;EAAC,CAAE,GAAG5B,cAAA;EACpB,MAAM;IACJ6B,WAAA,EAAa;MAAEC,CAAA,EAAGC;IAAU;EAAE,CAC/B,GAAG1C,aAAA;EAEJ,MAAM2C,WAAA,GACJ,CAACN,UAAA,IACCpC,cAAA,CACE,WAAWoC,UAAA,IAAc,OAAOA,UAAA,CAAWO,KAAK,KAAK,WACjDP,UAAA,CAAWO,KAAK,GAChB,UAAUP,UAAA,GACRA,UAAA,CAAWQ,IAAI,GACf,MACNP,IAAA,CACF,KACF;EAEF,MAAMQ,oBAAA,GAAuBxB,yBAAA,CAC3BK,gBAAA,CAAiBoB,KAAK,CAACD,oBAAoB,EAC3CnB,gBAAA,CAAiBqB,MAAM;EAGzB,MAAMC,qBAAA,GAAwB5C,MAAA,CAC5BkC,CAAA,CAAE,oBAAoB;IAAEK,KAAA,EAAO3C,cAAA,CAAe0C,WAAA,EAAaL,IAAA;EAAM;EAGnE,MAAMY,aAAA,GAAgB7C,MAAA,CAAO8C,OAAA,CAAQf,KAAA,EAAOgB,KAAA;EAE5C,MAAMC,2BAAA,GAA8BhC,kBAAA,CAAmBe,KAAA,EAAOgB,KAAA;EAC9D,MAAM,CAACE,aAAA,EAAeC,gBAAA,CAAiB,GAAGjD,QAAA,CACxC+C,2BAAA,GAA8B,UAAUG,SAAA;EAG1CpD,SAAA,CAAU;IACR,IAAI8C,aAAA,CAAcO,OAAO,IAAI,CAACrB,KAAA,EAAOgB,KAAA,EAAO;MAC1CF,aAAA,CAAcO,OAAO,GAAG;IAC1B,OAAO,IAAIrB,KAAA,EAAOgB,KAAA,EAAO;MACvBF,aAAA,CAAcO,OAAO,GAAG;IAC1B;EACF,GAAG,CAACF,gBAAA,EAAkBnB,KAAA,EAAOgB,KAAA,CAAM;EAEnChD,SAAA,CAAU;IACR,IAAI0C,oBAAA,EAAsBY,MAAA,GAAS,GAAG;MACpCT,qBAAA,CAAsBQ,OAAO,GAAGX,oBAAA,CAAqBa,MAAM,CACzD,CAACC,eAAA,EAAyBC,KAAA,EAAOC,CAAA;QAC/B,MAAMlB,KAAA,GACJ,WAAWiB,KAAA,IAASA,KAAA,CAAMjB,KAAK,GAAGiB,KAAA,CAAMjB,KAAK,GAAG,UAAUiB,KAAA,GAAQA,KAAA,CAAMhB,IAAI,GAAG;QAEjF,IAAIiB,CAAA,KAAM,GAAG;UACX,OAAO,GAAGvB,CAAA,CAAE,oBAAoB;YAC9BK,KAAA,EAAO3C,cAAA,CAAe2C,KAAA,EAAON,IAAA;UAC/B,IAAI;QACN;QAEA,IAAIwB,CAAA,KAAMhB,oBAAA,CAAqBY,MAAM,GAAG,GAAG;UACzC,OAAO,GAAGE,eAAA,IAAmBrB,CAAA,CAAE,iBAAiBtC,cAAA,CAAe2C,KAAA,EAAON,IAAA,GAAO;QAC/E;QAEA,OAAO,GAAGsB,eAAA,KAAoB3D,cAAA,CAAe2C,KAAA,EAAON,IAAA,GAAO;MAC7D,GACA;IAEJ,OAAO;MACLW,qBAAA,CAAsBQ,OAAO,GAAGlB,CAAA,CAAE,oBAAoB;QACpDK,KAAA,EAAO3C,cAAA,CAAe0C,WAAA,EAAaL,IAAA;MACrC;IACF;EACF,GAAG,CAACC,CAAA,EAAGO,oBAAA,EAAsBR,IAAA,EAAMK,WAAA,CAAY;EAE/C,oBACEoB,KAAA,CAAC;IAAIC,SAAA,EAAWzC,SAAA;4BACdwC,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGzC,SAAA,QAAiB;8BAClC0C,IAAA,CAACxD,UAAA,O,aACDwD,IAAA,CAAC/C,YAAA;QACCgD,SAAA,EAAW7B,UAAA,IAAc,UAAUA,UAAA,GAAaA,UAAA,EAAYQ,IAAA,GAAO;QACnEsB,YAAA,EAAeC,MAAA;UACb,OAAO,KAAKjC,kBAAA,CAAmBiC,MAAA;QACjC;QACA;QACAC,aAAA,EAAejC,KAAA;QAEfQ,KAAA,EAAOK,qBAAA,CAAsBQ;SADxB7B,cAAA,G,aAGPqC,IAAA,CAAC;QAAID,SAAA,EAAW,GAAGzC,SAAA,WAAoB;kBACrC,aAAAwC,KAAA,CAAC;UAAIC,SAAA,EAAW,GAAGzC,SAAA,gBAAyB;qBACzC,CAACmB,UAAA,iBACAqB,KAAA,CAAC7D,KAAA,CAAMC,QAAQ;uBACZuB,aAAA,IAAiBA,aAAA,EACjB,CAACI,eAAA,iBACAiC,KAAA,CAAC5D,QAAA;sCACC8D,IAAA,CAAClD,QAAA;gBAASuD,UAAA,EAAY3C;+BACtBsC,IAAA,CAAChD,WAAA;gBAAYqD,UAAA,EAAY3C;+BACzBsC,IAAA,CAAC9C,aAAA;gBAAcmD,UAAA,EAAY3C;;gBAG9B,CAACE,iBAAA,iBAAqBoC,IAAA,CAACnD,UAAA;cAAWwD,UAAA,EAAY3C;;cAGlDI,aAAA,iBACCkC,IAAA,CAACjD,IAAA;YACC,iBAAe,GAAGO,SAAA,UAAmB;YACrC,iBAAe+B,aAAA,KAAkB;YACjCU,SAAA,EAAW,GAAGzC,SAAA,kBAA2B;YACzCgD,IAAA,eAAMN,IAAA,CAACzD,WAAA;cAAYgE,SAAA,EAAWlB,aAAA,KAAkB,YAAY,OAAO;;YACnEmB,OAAA,EAASA,CAAA,KACPlB,gBAAA,CAAiBD,aAAA,KAAkB,YAAY,YAAYE,SAAA;YAE7DkB,SAAA,EAAU;sBAETnC,CAAA,CAAE;2BAGP0B,IAAA,CAACjD,IAAA;YACC,iBAAe,GAAGO,SAAA,QAAiB;YACnC,iBAAe+B,aAAA,KAAkB;YACjCU,SAAA,EAAW,GAAGzC,SAAA,gBAAyB;YACvCgD,IAAA,eAAMN,IAAA,CAACzD,WAAA;cAAYgE,SAAA,EAAWlB,aAAA,KAAkB,UAAU,OAAO;;YACjEmB,OAAA,EAASA,CAAA,KAAMlB,gBAAA,CAAiBD,aAAA,KAAkB,UAAU,UAAUE,SAAA;YACtEkB,SAAA,EAAU;sBAETnC,CAAA,CAAE;cAEJP,UAAA,iBACCiC,IAAA,CAACjD,IAAA;YACC,iBAAe,GAAGO,SAAA,OAAgB;YAClC,iBAAe+B,aAAA,KAAkB;YACjCU,SAAA,EAAW,GAAGzC,SAAA,eAAwB;YACtCgD,IAAA,eAAMN,IAAA,CAACzD,WAAA;YACPiE,OAAA,EAASA,CAAA,KAAMlB,gBAAA,CAAiBD,aAAA,KAAkB,SAAS,SAASE,SAAA;YACpEkB,SAAA,EAAU;sBAETnC,CAAA,CAAE;;;;QAMZR,aAAA,iBACCkC,IAAA,CAACrD,aAAA;MACCoD,SAAA,EAAW,GAAGzC,SAAA,WAAoB;MAClCoD,MAAA,EAAQrB,aAAA,KAAkB,YAAY,SAAS;MAC/CsB,EAAA,EAAI,GAAGrD,SAAA,UAAmB;gBAE1B,aAAA0C,IAAA,CAACpD,cAAA;QAAee,cAAA,EAAgBD,gBAAA,CAAiBkD;;qBAGrDZ,IAAA,CAACrD,aAAA;MACCoD,SAAA,EAAW,GAAGzC,SAAA,SAAkB;MAChCoD,MAAA,EAAQrB,aAAA,KAAkB,UAAU,SAAS;MAC7CsB,EAAA,EAAI,GAAGrD,SAAA,QAAiB;gBAExB,aAAA0C,IAAA,CAAC7C,YAAA;QACC0D,qBAAA,EAAuBnD,gBAAA,EAAkBoD,MAAA,EAAQC,MAAA;QACjDpD,cAAA,EAAgBD,gBAAA,CAAiBkD,IAAI;QACrC7B,MAAA,EAAQrB,gBAAA,EAAkBqB,MAAA;QAC1Bf,eAAA,EAAiBA,eAAA;QACjBC,qBAAA,EAAuBA;;QAG1BF,UAAA,iBACCiC,IAAA,CAACrD,aAAA;MACCoD,SAAA,EAAW,GAAGzC,SAAA,QAAiB;MAC/BoD,MAAA,EAAQrB,aAAA,KAAkB,SAAS,SAAS;MAC5CsB,EAAA,EAAI,GAAGrD,SAAA,OAAgB;gBAEvB,aAAA0C,IAAA,CAAC;kBAAE;;;;AAUb","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useWindowInfo","getTranslation","React","Fragment","useEffect","useRef","useState","Popup","PopupList","useUseTitleField","ChevronIcon","Dots","SearchIcon","useListQuery","useTranslation","AnimateHeight","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","disableBulkDelete","disableBulkEdit","enableColumns","enableSort","listMenuItems","renderedFilters","resolvedFilterOptions","handleSearchChange","query","titleField","i18n","t","breakpoints","s","smallBreak","searchLabel","label","name","listSearchableFields","admin","fields","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","_jsxs","className","_jsx","fieldName","handleChange","search","initialParams","collection","icon","direction","onClick","pillStyle","button","ariaLabel","horizontalAlign","size","verticalAlign","ButtonGroup","map","item","height","id","slug","collectionPluralLabel","labels","plural"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ResolvedFilterOptions, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport { Popup, PopupList } from '../../elements/Popup/index.js'\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { Dots } from '../../icons/Dots/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n readonly disableBulkDelete?: boolean\n readonly disableBulkEdit?: boolean\n readonly enableColumns?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly listMenuItems?: React.ReactNode[]\n readonly renderedFilters?: Map<string, React.ReactNode>\n readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n enableColumns = true,\n enableSort = false,\n listMenuItems,\n renderedFilters,\n resolvedFilterOptions,\n } = props\n const { handleSearchChange, query } = useListQuery()\n const titleField = useUseTitleField(collectionConfig)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField && typeof titleField.label === 'string'\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n collectionConfig.fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(query?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={titleField && 'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n // @ts-expect-error @todo: fix types\n initialParams={query}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n {beforeActions && beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns`}\n icon={<ChevronIcon direction={visibleDrawer === 'columns' ? 'up' : 'down'} />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where`}\n icon={<ChevronIcon direction={visibleDrawer === 'where' ? 'up' : 'down'} />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n {listMenuItems && (\n <Popup\n button={<Dots ariaLabel={t('general:moreOptions')} />}\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>{listMenuItems.map((item) => item)}</PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,11 @@
19
19
  }
20
20
  }
21
21
 
22
+ &__custom-control {
23
+ padding: 0;
24
+ border-radius: 0;
25
+ }
26
+
22
27
  &__buttons-wrap {
23
28
  display: flex;
24
29
  align-items: center;
@@ -1,3 +1,4 @@
1
+ import type { PreviewButtonClientProps } from 'payload';
1
2
  import React from 'react';
2
- export declare const PreviewButton: React.FC;
3
+ export declare function PreviewButton(props: PreviewButtonClientProps): React.JSX.Element;
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PreviewButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAoBjC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PreviewButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAEvD,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,wBAAgB,aAAa,CAAC,KAAK,EAAE,wBAAwB,qBAoB5D"}
@@ -6,7 +6,7 @@ import React from 'react';
6
6
  import { Button } from '../Button/index.js';
7
7
  import { usePreviewURL } from './usePreviewURL.js';
8
8
  const baseClass = 'preview-btn';
9
- export const PreviewButton = () => {
9
+ export function PreviewButton(props) {
10
10
  const $ = _c(5);
11
11
  const {
12
12
  generatePreviewURL,
@@ -40,5 +40,5 @@ export const PreviewButton = () => {
40
40
  t1 = $[4];
41
41
  }
42
42
  return t1;
43
- };
43
+ }
44
44
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","Button","usePreviewURL","baseClass","PreviewButton","$","generatePreviewURL","label","t0","openPreviewWindow","t1","_jsx","buttonStyle","className","icon","iconPosition","onClick","size","children"],"sources":["../../../src/elements/PreviewButton/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { Button } from '../Button/index.js'\nimport { usePreviewURL } from './usePreviewURL.js'\n\nconst baseClass = 'preview-btn'\n\nexport const PreviewButton: React.FC = () => {\n const { generatePreviewURL, label } = usePreviewURL()\n\n return (\n <Button\n buttonStyle=\"secondary\"\n className={baseClass}\n icon={'link'}\n iconPosition=\"left\"\n // disabled={disabled}\n onClick={() =>\n generatePreviewURL({\n openPreviewWindow: true,\n })\n }\n size=\"medium\"\n >\n {label}\n </Button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,SAASC,MAAM,QAAQ;AACvB,SAASC,aAAa,QAAQ;AAE9B,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,aAAA,GAA0BA,CAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EACrC;IAAAO,kBAAA;IAAAC;EAAA,IAAsCL,aAAA;EAAA,IAAAM,EAAA;EAAA,IAAAH,CAAA,QAAAC,kBAAA;IASzBE,EAAA,GAAAA,CAAA,KACPF,kBAAA;MAAAG,iBAAA;IAAA,CAEA;IAAAJ,CAAA,MAAAC,kBAAA;IAAAD,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,IAAAK,EAAA;EAAA,IAAAL,CAAA,QAAAE,KAAA,IAAAF,CAAA,QAAAG,EAAA;IATJE,EAAA,GAAAC,IAAA,CAAAV,MAAA;MAAAW,WAAA,EACc;MAAAC,SAAA,EAAAV,SAAA;MAAAW,IAAA,EAEN;MAAAC,YAAA,EACO;MAAAC,OAAA,EAEJR,EAGP;MAAAS,IAAA,EAEG;MAAAC,QAAA,EAEJX;IAAA,C;;;;;;;SAbHG,E;CAgBJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","Button","usePreviewURL","baseClass","PreviewButton","props","$","generatePreviewURL","label","t0","openPreviewWindow","t1","_jsx","buttonStyle","className","icon","iconPosition","onClick","size","children"],"sources":["../../../src/elements/PreviewButton/index.tsx"],"sourcesContent":["'use client'\nimport type { PreviewButtonClientProps } from 'payload'\n\nimport React from 'react'\n\nimport { Button } from '../Button/index.js'\nimport { usePreviewURL } from './usePreviewURL.js'\n\nconst baseClass = 'preview-btn'\n\nexport function PreviewButton(props: PreviewButtonClientProps) {\n const { generatePreviewURL, label } = usePreviewURL()\n\n return (\n <Button\n buttonStyle=\"secondary\"\n className={baseClass}\n icon={'link'}\n iconPosition=\"left\"\n // disabled={disabled}\n onClick={() =>\n generatePreviewURL({\n openPreviewWindow: true,\n })\n }\n size=\"medium\"\n >\n {label}\n </Button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,MAAM,QAAQ;AACvB,SAASC,aAAa,QAAQ;AAE9B,MAAMC,SAAA,GAAY;AAElB,OAAO,SAAAC,cAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EACL;IAAAQ,kBAAA;IAAAC;EAAA,IAAsCN,aAAA;EAAA,IAAAO,EAAA;EAAA,IAAAH,CAAA,QAAAC,kBAAA;IASzBE,EAAA,GAAAA,CAAA,KACPF,kBAAA;MAAAG,iBAAA;IAAA,CAEA;IAAAJ,CAAA,MAAAC,kBAAA;IAAAD,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,IAAAK,EAAA;EAAA,IAAAL,CAAA,QAAAE,KAAA,IAAAF,CAAA,QAAAG,EAAA;IATJE,EAAA,GAAAC,IAAA,CAAAX,MAAA;MAAAY,WAAA,EACc;MAAAC,SAAA,EAAAX,SAAA;MAAAY,IAAA,EAEN;MAAAC,YAAA,EACO;MAAAC,OAAA,EAEJR,EAGP;MAAAS,IAAA,EAEG;MAAAC,QAAA,EAEJX;IAAA,C;;;;;;;SAbHG,E","ignoreList":[]}
@@ -1,6 +1,5 @@
1
- import type { ClientConfig } from 'payload';
1
+ import type { ClientConfig, Column } from 'payload';
2
2
  import { type I18nClient, type TFunction } from '@payloadcms/translations';
3
- import type { Column } from '../../Table/index.js';
4
3
  import type { UpcomingEvent } from './types.js';
5
4
  type Args = {
6
5
  dateFormat: string;
@@ -1 +1 @@
1
- {"version":3,"file":"buildUpcomingColumns.d.ts","sourceRoot":"","sources":["../../../../src/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,OAAO,EAAkB,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAG1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAM/C,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;IAC5C,IAAI,EAAE,aAAa,EAAE,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAA;IAC1C,CAAC,EAAE,SAAS,CAAA;CACb,CAAA;AAED,eAAO,MAAM,oBAAoB,gEAO9B,IAAI,KAAG,MAAM,EAsGf,CAAA"}
1
+ {"version":3,"file":"buildUpcomingColumns.d.ts","sourceRoot":"","sources":["../../../../src/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,EAAkB,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAG1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAM/C,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;IAC5C,IAAI,EAAE,aAAa,EAAE,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC,CAAA;IAC1C,CAAC,EAAE,SAAS,CAAA;CACb,CAAA;AAED,eAAO,MAAM,oBAAoB,gEAO9B,IAAI,KAAG,MAAM,EAsGf,CAAA"}