@payloadcms/ui 3.56.0-internal.72f4fd2 → 3.56.0

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 (180) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.js +4 -18
  2. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  3. package/dist/elements/ClipboardAction/index.js +173 -74
  4. package/dist/elements/ClipboardAction/index.js.map +1 -1
  5. package/dist/elements/CodeEditor/CodeEditor.js +155 -67
  6. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  7. package/dist/elements/Collapsible/index.js +15 -7
  8. package/dist/elements/Collapsible/index.js.map +1 -1
  9. package/dist/elements/ConfirmationModal/index.js +44 -8
  10. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  11. package/dist/elements/CopyLocaleData/index.js +97 -89
  12. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  13. package/dist/elements/CopyToClipboard/index.js +22 -2
  14. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  15. package/dist/elements/DefaultListViewTabs/index.js +47 -32
  16. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  17. package/dist/elements/DeleteMany/index.js +83 -47
  18. package/dist/elements/DeleteMany/index.js.map +1 -1
  19. package/dist/elements/DocumentControls/index.js +55 -27
  20. package/dist/elements/DocumentControls/index.js.map +1 -1
  21. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +10 -2
  22. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  23. package/dist/elements/DocumentDrawer/index.js +99 -47
  24. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  25. package/dist/elements/Drawer/index.js +57 -23
  26. package/dist/elements/Drawer/index.js.map +1 -1
  27. package/dist/elements/DrawerActionHeader/index.js +21 -3
  28. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  29. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
  30. package/dist/elements/EmailAndUsername/index.js +31 -24
  31. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  32. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +225 -149
  33. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  34. package/dist/elements/FolderView/FolderFileCard/index.js +27 -19
  35. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  36. package/dist/elements/FolderView/MoveDocToFolder/index.js +23 -12
  37. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  38. package/dist/elements/FullscreenModal/index.js +20 -10
  39. package/dist/elements/FullscreenModal/index.js.map +1 -1
  40. package/dist/elements/ListDrawer/index.js +24 -18
  41. package/dist/elements/ListDrawer/index.js.map +1 -1
  42. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +32 -19
  43. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  44. package/dist/elements/ListSelection/index.js +27 -11
  45. package/dist/elements/ListSelection/index.js.map +1 -1
  46. package/dist/elements/LivePreview/Window/index.js +146 -65
  47. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  48. package/dist/elements/Loading/index.js +11 -2
  49. package/dist/elements/Loading/index.js.map +1 -1
  50. package/dist/elements/LoadingOverlay/index.js +102 -46
  51. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  52. package/dist/elements/Localizer/LocalizerLabel/index.js +36 -23
  53. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  54. package/dist/elements/QueryPresets/QueryPresetToggler/index.js +139 -41
  55. package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
  56. package/dist/elements/RenderIfInViewport/index.d.ts +2 -2
  57. package/dist/elements/RenderIfInViewport/index.d.ts.map +1 -1
  58. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  59. package/dist/elements/SelectRow/index.js +40 -39
  60. package/dist/elements/SelectRow/index.js.map +1 -1
  61. package/dist/elements/ShimmerEffect/index.js +12 -20
  62. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  63. package/dist/elements/SortColumn/index.js +30 -21
  64. package/dist/elements/SortColumn/index.js.map +1 -1
  65. package/dist/elements/Table/DefaultCell/fields/Date/index.js +37 -9
  66. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  67. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +37 -35
  68. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  69. package/dist/elements/Table/DefaultCell/fields/Select/index.js +27 -12
  70. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  71. package/dist/elements/Thumbnail/index.js +75 -35
  72. package/dist/elements/Thumbnail/index.js.map +1 -1
  73. package/dist/elements/ThumbnailCard/index.js +26 -17
  74. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  75. package/dist/elements/Tooltip/index.js +127 -51
  76. package/dist/elements/Tooltip/index.js.map +1 -1
  77. package/dist/elements/Upload/index.js +10 -2
  78. package/dist/elements/Upload/index.js.map +1 -1
  79. package/dist/elements/WhereBuilder/Condition/Select/index.js +44 -31
  80. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  81. package/dist/exports/client/{CodeEditor-RHQXPDK5.js → CodeEditor-4J4OH4TD.js} +2 -2
  82. package/dist/exports/client/{DatePicker-F432AIH3.js → DatePicker-NMDEHPWL.js} +2 -2
  83. package/dist/exports/client/{chunk-AZDI6MW4.js → chunk-7RGKTZG2.js} +1 -1
  84. package/dist/exports/client/{chunk-AZDI6MW4.js.map → chunk-7RGKTZG2.js.map} +1 -1
  85. package/dist/exports/client/chunk-HBCG32CP.js +26 -0
  86. package/dist/exports/client/{chunk-FKP64OEZ.js.map → chunk-HBCG32CP.js.map} +4 -4
  87. package/dist/exports/client/index.d.ts +4 -5
  88. package/dist/exports/client/index.d.ts.map +1 -1
  89. package/dist/exports/client/index.js +12 -12
  90. package/dist/exports/client/index.js.map +4 -4
  91. package/dist/exports/rsc/index.d.ts +0 -1
  92. package/dist/exports/rsc/index.d.ts.map +1 -1
  93. package/dist/exports/rsc/index.js +0 -1
  94. package/dist/exports/rsc/index.js.map +1 -1
  95. package/dist/fields/Array/ArrayRow.d.ts +3 -2
  96. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  97. package/dist/fields/Array/ArrayRow.js +23 -13
  98. package/dist/fields/Array/ArrayRow.js.map +1 -1
  99. package/dist/fields/Array/index.js +477 -273
  100. package/dist/fields/Array/index.js.map +1 -1
  101. package/dist/fields/Checkbox/Input.js +19 -2
  102. package/dist/fields/Checkbox/Input.js.map +1 -1
  103. package/dist/fields/FieldError/index.js +29 -30
  104. package/dist/fields/FieldError/index.js.map +1 -1
  105. package/dist/fields/FieldLabel/index.js +64 -12
  106. package/dist/fields/FieldLabel/index.js.map +1 -1
  107. package/dist/fields/Group/index.d.ts +1 -1
  108. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  109. package/dist/fields/Relationship/Input.js +8 -0
  110. package/dist/fields/Relationship/Input.js.map +1 -1
  111. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +103 -45
  112. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  113. package/dist/fields/Relationship/select-components/SingleValue/index.js +44 -29
  114. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  115. package/dist/fields/Row/index.d.ts +3 -1
  116. package/dist/fields/Row/index.d.ts.map +1 -1
  117. package/dist/fields/Select/Input.js +31 -18
  118. package/dist/fields/Select/Input.js.map +1 -1
  119. package/dist/fields/Tabs/Tab/index.js +11 -2
  120. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  121. package/dist/fields/Tabs/index.d.ts +1 -2
  122. package/dist/fields/Tabs/index.d.ts.map +1 -1
  123. package/dist/fields/Tabs/index.js +225 -185
  124. package/dist/fields/Tabs/index.js.map +1 -1
  125. package/dist/fields/Upload/RelationshipContent/index.js +127 -79
  126. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  127. package/dist/forms/Form/createNestedClientFieldPath.js +1 -1
  128. package/dist/forms/Form/createNestedClientFieldPath.js.map +1 -1
  129. package/dist/forms/Form/index.d.ts.map +1 -1
  130. package/dist/forms/Form/index.js +8 -1
  131. package/dist/forms/Form/index.js.map +1 -1
  132. package/dist/forms/RenderFields/RenderField.js +237 -245
  133. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  134. package/dist/forms/RenderFields/context.d.ts +29 -0
  135. package/dist/forms/RenderFields/context.d.ts.map +1 -1
  136. package/dist/forms/RenderFields/context.js +30 -2
  137. package/dist/forms/RenderFields/context.js.map +1 -1
  138. package/dist/forms/RenderFields/types.d.ts +10 -2
  139. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  140. package/dist/forms/RenderFields/types.js.map +1 -1
  141. package/dist/forms/useField/index.d.ts +0 -5
  142. package/dist/forms/useField/index.d.ts.map +1 -1
  143. package/dist/forms/useField/index.js +45 -74
  144. package/dist/forms/useField/index.js.map +1 -1
  145. package/dist/hooks/useIntersect.js +53 -35
  146. package/dist/hooks/useIntersect.js.map +1 -1
  147. package/dist/hooks/usePayloadAPI.js +44 -36
  148. package/dist/hooks/usePayloadAPI.js.map +1 -1
  149. package/dist/providers/Config/index.d.ts +17 -2
  150. package/dist/providers/Config/index.d.ts.map +1 -1
  151. package/dist/providers/Config/index.js +57 -20
  152. package/dist/providers/Config/index.js.map +1 -1
  153. package/dist/providers/Folders/index.d.ts.map +1 -1
  154. package/dist/providers/Folders/index.js +24 -13
  155. package/dist/providers/Folders/index.js.map +1 -1
  156. package/dist/providers/ServerFunctions/index.d.ts +1 -4
  157. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  158. package/dist/providers/ServerFunctions/index.js +0 -13
  159. package/dist/providers/ServerFunctions/index.js.map +1 -1
  160. package/dist/utilities/buildFormState.d.ts.map +1 -1
  161. package/dist/utilities/buildFormState.js +2 -1
  162. package/dist/utilities/buildFormState.js.map +1 -1
  163. package/dist/utilities/reduceFieldsToOptions.d.ts +1 -1
  164. package/dist/utilities/reduceFieldsToOptions.d.ts.map +1 -1
  165. package/dist/utilities/reduceFieldsToOptions.js +7 -12
  166. package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
  167. package/dist/views/BrowseByFolder/index.js +55 -37
  168. package/dist/views/BrowseByFolder/index.js.map +1 -1
  169. package/dist/views/CollectionFolder/index.js +40 -13
  170. package/dist/views/CollectionFolder/index.js.map +1 -1
  171. package/dist/views/Edit/Auth/index.js +105 -93
  172. package/dist/views/Edit/Auth/index.js.map +1 -1
  173. package/package.json +8 -8
  174. package/dist/exports/client/chunk-FKP64OEZ.js +0 -26
  175. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +0 -35
  176. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +0 -1
  177. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +0 -83
  178. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +0 -1
  179. /package/dist/exports/client/{CodeEditor-RHQXPDK5.js.map → CodeEditor-4J4OH4TD.js.map} +0 -0
  180. /package/dist/exports/client/{DatePicker-F432AIH3.js.map → DatePicker-NMDEHPWL.js.map} +0 -0
@@ -16,42 +16,76 @@ export const formatDrawerSlug = ({
16
16
  }) => `drawer_${depth}_${slug}`;
17
17
  export { useDrawerSlug } from './useDrawerSlug.js';
18
18
  export const DrawerToggler = t0 => {
19
- const $ = _c(4);
20
- const {
21
- slug,
22
- children,
23
- className,
24
- disabled,
25
- onClick,
26
- ...rest
27
- } = t0;
19
+ const $ = _c(17);
20
+ let children;
21
+ let className;
22
+ let disabled;
23
+ let onClick;
24
+ let rest;
25
+ let slug;
26
+ if ($[0] !== t0) {
27
+ ({
28
+ slug,
29
+ children,
30
+ className,
31
+ disabled,
32
+ onClick,
33
+ ...rest
34
+ } = t0);
35
+ $[0] = t0;
36
+ $[1] = children;
37
+ $[2] = className;
38
+ $[3] = disabled;
39
+ $[4] = onClick;
40
+ $[5] = rest;
41
+ $[6] = slug;
42
+ } else {
43
+ children = $[1];
44
+ className = $[2];
45
+ disabled = $[3];
46
+ onClick = $[4];
47
+ rest = $[5];
48
+ slug = $[6];
49
+ }
28
50
  const {
29
51
  openModal
30
52
  } = useModal();
31
53
  let t1;
32
- if ($[0] !== onClick || $[1] !== openModal || $[2] !== slug) {
54
+ if ($[7] !== onClick || $[8] !== openModal || $[9] !== slug) {
33
55
  t1 = e => {
34
56
  openModal(slug);
35
57
  if (typeof onClick === "function") {
36
58
  onClick(e);
37
59
  }
38
60
  };
39
- $[0] = onClick;
40
- $[1] = openModal;
41
- $[2] = slug;
42
- $[3] = t1;
61
+ $[7] = onClick;
62
+ $[8] = openModal;
63
+ $[9] = slug;
64
+ $[10] = t1;
43
65
  } else {
44
- t1 = $[3];
66
+ t1 = $[10];
45
67
  }
46
68
  const handleClick = t1;
47
- return _jsx("button", {
48
- className,
49
- disabled,
50
- onClick: handleClick,
51
- type: "button",
52
- ...rest,
53
- children
54
- });
69
+ let t2;
70
+ if ($[11] !== children || $[12] !== className || $[13] !== disabled || $[14] !== handleClick || $[15] !== rest) {
71
+ t2 = _jsx("button", {
72
+ className,
73
+ disabled,
74
+ onClick: handleClick,
75
+ type: "button",
76
+ ...rest,
77
+ children
78
+ });
79
+ $[11] = children;
80
+ $[12] = className;
81
+ $[13] = disabled;
82
+ $[14] = handleClick;
83
+ $[15] = rest;
84
+ $[16] = t2;
85
+ } else {
86
+ t2 = $[16];
87
+ }
88
+ return t2;
55
89
  };
56
90
  export const Drawer = t0 => {
57
91
  const $ = _c(22);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","createContext","use","useCallback","useLayoutEffect","useState","XIcon","useTranslation","Gutter","baseClass","drawerZBase","formatDrawerSlug","slug","depth","useDrawerSlug","DrawerToggler","t0","$","children","className","disabled","onClick","rest","openModal","t1","e","handleClick","_jsx","type","Drawer","gutter","Header","hoverTitle","title","undefined","t","closeModal","modalState","drawerDepth","useDrawerDepth","isOpen","animateIn","setAnimateIn","t2","t3","t4","t5","t6","filter","Boolean","t7","join","t8","t9","t10","DrawerDepthProvider","_jsxs","style","zIndex","id","width","left","right","DrawerDepthContext","parentDepth","value"],"sources":["../../../src/elements/Drawer/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { createContext, use, useCallback, useLayoutEffect, useState } from 'react'\n\nimport type { Props, TogglerProps } from './types.js'\n\nimport { XIcon } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport './index.scss'\n\nconst baseClass = 'drawer'\n\nexport const drawerZBase = 100\n\nexport const formatDrawerSlug = ({ slug, depth }: { depth: number; slug: string }): string =>\n `drawer_${depth}_${slug}`\n\nexport { useDrawerSlug } from './useDrawerSlug.js'\n\nexport const DrawerToggler: React.FC<TogglerProps> = ({\n slug,\n children,\n className,\n disabled,\n onClick,\n ...rest\n}) => {\n const { openModal } = useModal()\n\n const handleClick = useCallback(\n (e) => {\n openModal(slug)\n if (typeof onClick === 'function') {\n onClick(e)\n }\n },\n [openModal, slug, onClick],\n )\n\n return (\n <button className={className} disabled={disabled} onClick={handleClick} type=\"button\" {...rest}>\n {children}\n </button>\n )\n}\n\nexport const Drawer: React.FC<Props> = ({\n slug,\n children,\n className,\n gutter = true,\n Header,\n hoverTitle,\n title,\n}) => {\n const { t } = useTranslation()\n const { closeModal, modalState } = useModal()\n const drawerDepth = useDrawerDepth()\n\n const isOpen = !!modalState[slug]?.isOpen\n\n const [animateIn, setAnimateIn] = useState(isOpen)\n\n useLayoutEffect(() => {\n setAnimateIn(isOpen)\n }, [isOpen])\n\n if (isOpen) {\n // IMPORTANT: do not render the drawer until it is explicitly open, this is to avoid large html trees especially when nesting drawers\n return (\n <DrawerDepthProvider>\n <Modal\n className={[\n className,\n baseClass,\n animateIn && `${baseClass}--is-open`,\n drawerDepth > 1 && `${baseClass}--nested`,\n ]\n .filter(Boolean)\n .join(' ')}\n slug={slug}\n style={{\n zIndex: drawerZBase + drawerDepth,\n }}\n >\n {(!drawerDepth || drawerDepth === 1) && <div className={`${baseClass}__blur-bg`} />}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__close`}\n id={`close-drawer__${slug}`}\n onClick={() => closeModal(slug)}\n type=\"button\"\n />\n <div\n className={`${baseClass}__content`}\n style={{\n width: `calc(100% - (${drawerDepth} * var(--gutter-h)))`,\n }}\n >\n <div className={`${baseClass}__blur-bg-content`} />\n <Gutter className={`${baseClass}__content-children`} left={gutter} right={gutter}>\n {Header}\n {Header === undefined && (\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`} title={hoverTitle ? title : null}>\n {title}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${slug}`}\n onClick={() => closeModal(slug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n )}\n {children}\n </Gutter>\n </div>\n </Modal>\n </DrawerDepthProvider>\n )\n }\n\n return null\n}\n\nexport const DrawerDepthContext = createContext(1)\n\nexport const DrawerDepthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const parentDepth = useDrawerDepth()\n const depth = parentDepth + 1\n\n return <DrawerDepthContext value={depth}>{children}</DrawerDepthContext>\n}\n\nexport const useDrawerDepth = (): number => use(DrawerDepthContext)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,KAAK,EAAEC,QAAQ,QAAQ;AAChC,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,WAAW,EAAEC,eAAe,EAAEC,QAAQ,QAAQ;AAIlF,SAASC,KAAK,QAAQ;AACtB,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,WAAA,GAAc;AAE3B,OAAO,MAAMC,gBAAA,GAAmBA,CAAC;EAAEC,IAAI;EAAEC;AAAK,CAAmC,KAC/E,UAAUA,KAAA,IAASD,IAAA,EAAM;AAE3B,SAASE,aAAa,QAAQ;AAE9B,OAAO,MAAMC,aAAA,GAAwCC,EAAA;EAAA,MAAAC,CAAA,GAAApB,EAAA;EAAC;IAAAe,IAAA;IAAAM,QAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,OAAA;IAAA,GAAAC;EAAA,IAAAN,EAOrD;EACC;IAAAO;EAAA,IAAsBxB,QAAA;EAAA,IAAAyB,EAAA;EAAA,IAAAP,CAAA,QAAAI,OAAA,IAAAJ,CAAA,QAAAM,SAAA,IAAAN,CAAA,QAAAL,IAAA;IAGpBY,EAAA,GAAAC,CAAA;MACEF,SAAA,CAAUX,IAAA;MAAA,IACN,OAAOS,OAAA,KAAY;QACrBA,OAAA,CAAQI,CAAA;MAAA;IAAA;IAEZR,CAAA,MAAAI,OAAA;IAAAJ,CAAA,MAAAM,SAAA;IAAAN,CAAA,MAAAL,IAAA;IAAAK,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EANF,MAAAS,WAAA,GAAoBF,EAOQ;EAAA,OAI1BG,IAAA,CAAC;IAAAR,SAAA;IAAAC,QAAA;IAAAC,OAAA,EAA0DK,WAAA;IAAAE,IAAA,EAAkB;IAAA,GAAaN,IAAI;IAAAJ;EAAA,C;CAIlG;AAEA,OAAO,MAAMW,MAAA,GAA0Bb,EAAA;EAAA,MAAAC,CAAA,GAAApB,EAAA;EAAC;IAAAe,IAAA;IAAAM,QAAA;IAAAC,SAAA;IAAAW,MAAA,EAAAN,EAAA;IAAAO,MAAA;IAAAC,UAAA;IAAAC;EAAA,IAAAjB,EAQvC;EAJC,MAAAc,MAAA,GAAAN,EAAa,KAAAU,SAAA,UAAbV,EAAa;EAKb;IAAAW;EAAA,IAAc5B,cAAA;EACd;IAAA6B,UAAA;IAAAC;EAAA,IAAmCtC,QAAA;EACnC,MAAAuC,WAAA,GAAoBC,cAAA;EAEpB,MAAAC,MAAA,KAAiBH,UAAU,CAACzB,IAAA,GAAA4B,MAAA;EAE5B,OAAAC,SAAA,EAAAC,YAAA,IAAkCrC,QAAA,CAASmC,MAAA;EAAA,IAAAG,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA3B,CAAA,QAAAuB,MAAA;IAE3BG,EAAA,GAAAA,CAAA;MACdD,YAAA,CAAaF,MAAA;IAAA;IACZI,EAAA,IAACJ,MAAA;IAAOvB,CAAA,MAAAuB,MAAA;IAAAvB,CAAA,MAAA0B,EAAA;IAAA1B,CAAA,MAAA2B,EAAA;EAAA;IAAAD,EAAA,GAAA1B,CAAA;IAAA2B,EAAA,GAAA3B,CAAA;EAAA;EAFXb,eAAA,CAAgBuC,EAEhB,EAAGC,EAAQ;EAAA,IAEPJ,MAAA;IAQM,MAAAK,EAAA,GAAAJ,SAAA,IAAa,GAAAhC,SAAA,WAAuB;IACpC,MAAAqC,EAAA,GAAAR,WAAA,IAAc,IAAK,GAAA7B,SAAA,UAAsB;IAAA,IAAAsC,EAAA;IAAA,IAAA9B,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAA4B,EAAA,IAAA5B,CAAA,QAAA6B,EAAA;MAJhCC,EAAA,IACT5B,SAAA,EAAAV,SAAA,EAEAoC,EAAoC,EACpCC,EAAyC,EAAAE,MAAA,CAAAC,OAEjC;MAAAhC,CAAA,MAAAE,SAAA;MAAAF,CAAA,MAAA4B,EAAA;MAAA5B,CAAA,MAAA6B,EAAA;MAAA7B,CAAA,MAAA8B,EAAA;IAAA;MAAAA,EAAA,GAAA9B,CAAA;IAAA;IANC,MAAAiC,EAAA,GAAAH,EAMD,CAAAI,IAAA,CACF;IAGE,MAAAC,EAAA,GAAA1C,WAAA,GAAc4B,WAAA;IAAA,IAAAe,EAAA;IAAA,IAAApC,CAAA,QAAAc,MAAA,IAAAd,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAmB,UAAA,IAAAnB,CAAA,SAAAqB,WAAA,IAAArB,CAAA,SAAAa,MAAA,IAAAb,CAAA,SAAAe,UAAA,IAAAf,CAAA,SAAAL,IAAA,IAAAK,CAAA,SAAAkB,CAAA,IAAAlB,CAAA,SAAAiC,EAAA,IAAAjC,CAAA,SAAAmC,EAAA,IAAAnC,CAAA,SAAAgB,KAAA;MAAA,IAAAqB,GAAA;MAAA,IAAArC,CAAA,SAAAmB,UAAA,IAAAnB,CAAA,SAAAL,IAAA;QAQb0C,GAAA,GAAAA,CAAA,KAAMlB,UAAA,CAAWxB,IAAA;QAAAK,CAAA,OAAAmB,UAAA;QAAAnB,CAAA,OAAAL,IAAA;QAAAK,CAAA,OAAAqC,GAAA;MAAA;QAAAA,GAAA,GAAArC,CAAA;MAAA;MApBhCoC,EAAA,GAAA1B,IAAA,CAAA4B,mBAAA;QAAArC,QAAA,EACEsC,KAAA,CAAA1D,KAAA;UAAAqB,SAAA,EACa+B,EAOH;UAAAtC,IAAA;UAAA6C,KAAA;YAAAC,MAAA,EAGEN;UAAc;UAAAlC,QAAA,GAGtB,EAACoB,WAAA,IAAeA,WAAA,MAAgB,KAAMX,IAAA,CAAC;YAAAR,SAAA,EAAe,GAAAV,SAAA;UAAuB,C,GAC/EkB,IAAA,CAAC;YAAA,cACaQ,CAAA,CAAE;YAAAhB,SAAA,EACH,GAAAV,SAAA,SAAqB;YAAAkD,EAAA,EAC5B,iBAAiB/C,IAAA,EAAM;YAAAS,OAAA,EAClBiC,GAAiB;YAAA1B,IAAA,EACrB;UAAA,C,GAEP4B,KAAA,CAAC;YAAArC,SAAA,EACY,GAAAV,SAAA,WAAuB;YAAAgD,KAAA;cAAAG,KAAA,EAEzB,gBAAgBtB,WAAA;YAAiC;YAAApB,QAAA,GAG1DS,IAAA,CAAC;cAAAR,SAAA,EAAe,GAAAV,SAAA;YAA+B,C,GAC/C+C,KAAA,CAAAhD,MAAA;cAAAW,SAAA,EAAmB,GAAAV,SAAA,oBAAgC;cAAAoD,IAAA,EAAQ/B,MAAA;cAAAgC,KAAA,EAAehC,MAAA;cAAAZ,QAAA,GACvEa,MAAA,EACAA,MAAA,KAAAG,SAAW,IACVsB,KAAA,CAAC;gBAAArC,SAAA,EAAe,GAAAV,SAAA,UAAsB;gBAAAS,QAAA,GACpCS,IAAA,CAAC;kBAAAR,SAAA,EAAc,GAAAV,SAAA,iBAA6B;kBAAAwB,KAAA,EAASD,UAAA,GAAaC,KAAA,OAAQ;kBAAAf,QAAA,EACvEe;gBAAA,C,GAKHN,IAAA,CAAC;kBAAA,cACaQ,CAAA,CAAE;kBAAAhB,SAAA,EACH,GAAAV,SAAA,iBAA6B;kBAAAkD,EAAA,EACpC,iBAAiB/C,IAAA,EAAM;kBAAAS,OAAA,EAAAA,CAAA,KACZe,UAAA,CAAWxB,IAAA;kBAAAgB,IAAA,EACrB;kBAAAV,QAAA,EAELS,IAAA,CAAArB,KAAA,IAAC;gBAAA,C;kBAINY,QAAA;YAAA,C;;;;;;;;;;;;;;;;;;;WAnDTmC,E;;;CA4DN;AAEA,OAAO,MAAMU,kBAAA,gBAAqB9D,aAAA,CAAc;AAEhD,OAAO,MAAMsD,mBAAA,GAA+DvC,EAAA;EAAA,MAAAC,CAAA,GAAApB,EAAA;EAAC;IAAAqB;EAAA,IAAAF,EAAY;EACvF,MAAAgD,WAAA,GAAoBzB,cAAA;EACpB,MAAA1B,KAAA,GAAcmD,WAAA,IAAc;EAAA,IAAAxC,EAAA;EAAA,IAAAP,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAJ,KAAA;IAErBW,EAAA,GAAAG,IAAA,CAAAoC,kBAAA;MAAAE,KAAA,EAA2BpD,KAAA;MAAAK;IAAA,C;;;;;;;SAA3BM,E;CACT;AAEA,OAAO,MAAMe,cAAA,GAAiBA,CAAA,KAAcrC,GAAA,CAAI6D,kBAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","createContext","use","useCallback","useLayoutEffect","useState","XIcon","useTranslation","Gutter","baseClass","drawerZBase","formatDrawerSlug","slug","depth","useDrawerSlug","DrawerToggler","t0","$","children","className","disabled","onClick","rest","openModal","t1","e","handleClick","t2","_jsx","type","Drawer","gutter","Header","hoverTitle","title","undefined","t","closeModal","modalState","drawerDepth","useDrawerDepth","isOpen","animateIn","setAnimateIn","t3","t4","t5","t6","filter","Boolean","t7","join","t8","t9","t10","DrawerDepthProvider","_jsxs","style","zIndex","id","width","left","right","DrawerDepthContext","parentDepth","value"],"sources":["../../../src/elements/Drawer/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { createContext, use, useCallback, useLayoutEffect, useState } from 'react'\n\nimport type { Props, TogglerProps } from './types.js'\n\nimport { XIcon } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport './index.scss'\n\nconst baseClass = 'drawer'\n\nexport const drawerZBase = 100\n\nexport const formatDrawerSlug = ({ slug, depth }: { depth: number; slug: string }): string =>\n `drawer_${depth}_${slug}`\n\nexport { useDrawerSlug } from './useDrawerSlug.js'\n\nexport const DrawerToggler: React.FC<TogglerProps> = ({\n slug,\n children,\n className,\n disabled,\n onClick,\n ...rest\n}) => {\n const { openModal } = useModal()\n\n const handleClick = useCallback(\n (e) => {\n openModal(slug)\n if (typeof onClick === 'function') {\n onClick(e)\n }\n },\n [openModal, slug, onClick],\n )\n\n return (\n <button className={className} disabled={disabled} onClick={handleClick} type=\"button\" {...rest}>\n {children}\n </button>\n )\n}\n\nexport const Drawer: React.FC<Props> = ({\n slug,\n children,\n className,\n gutter = true,\n Header,\n hoverTitle,\n title,\n}) => {\n const { t } = useTranslation()\n const { closeModal, modalState } = useModal()\n const drawerDepth = useDrawerDepth()\n\n const isOpen = !!modalState[slug]?.isOpen\n\n const [animateIn, setAnimateIn] = useState(isOpen)\n\n useLayoutEffect(() => {\n setAnimateIn(isOpen)\n }, [isOpen])\n\n if (isOpen) {\n // IMPORTANT: do not render the drawer until it is explicitly open, this is to avoid large html trees especially when nesting drawers\n return (\n <DrawerDepthProvider>\n <Modal\n className={[\n className,\n baseClass,\n animateIn && `${baseClass}--is-open`,\n drawerDepth > 1 && `${baseClass}--nested`,\n ]\n .filter(Boolean)\n .join(' ')}\n slug={slug}\n style={{\n zIndex: drawerZBase + drawerDepth,\n }}\n >\n {(!drawerDepth || drawerDepth === 1) && <div className={`${baseClass}__blur-bg`} />}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__close`}\n id={`close-drawer__${slug}`}\n onClick={() => closeModal(slug)}\n type=\"button\"\n />\n <div\n className={`${baseClass}__content`}\n style={{\n width: `calc(100% - (${drawerDepth} * var(--gutter-h)))`,\n }}\n >\n <div className={`${baseClass}__blur-bg-content`} />\n <Gutter className={`${baseClass}__content-children`} left={gutter} right={gutter}>\n {Header}\n {Header === undefined && (\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`} title={hoverTitle ? title : null}>\n {title}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${slug}`}\n onClick={() => closeModal(slug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n )}\n {children}\n </Gutter>\n </div>\n </Modal>\n </DrawerDepthProvider>\n )\n }\n\n return null\n}\n\nexport const DrawerDepthContext = createContext(1)\n\nexport const DrawerDepthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const parentDepth = useDrawerDepth()\n const depth = parentDepth + 1\n\n return <DrawerDepthContext value={depth}>{children}</DrawerDepthContext>\n}\n\nexport const useDrawerDepth = (): number => use(DrawerDepthContext)\n"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,7 @@ import { Button } from '../Button/index.js';
9
9
  import './index.scss';
10
10
  const baseClass = 'drawer-action-header';
11
11
  export const DrawerActionHeader = t0 => {
12
- const $ = _c(10);
12
+ const $ = _c(16);
13
13
  const {
14
14
  cancelLabel,
15
15
  className,
@@ -32,6 +32,24 @@ export const DrawerActionHeader = t0 => {
32
32
  const t2 = t1.join(" ");
33
33
  let t3;
34
34
  if ($[2] !== cancelLabel || $[3] !== onCancel || $[4] !== onSave || $[5] !== saveLabel || $[6] !== t || $[7] !== t2 || $[8] !== title) {
35
+ let t4;
36
+ if ($[10] !== cancelLabel || $[11] !== t) {
37
+ t4 = cancelLabel || t("general:cancel");
38
+ $[10] = cancelLabel;
39
+ $[11] = t;
40
+ $[12] = t4;
41
+ } else {
42
+ t4 = $[12];
43
+ }
44
+ let t5;
45
+ if ($[13] !== saveLabel || $[14] !== t) {
46
+ t5 = saveLabel || t("general:applyChanges");
47
+ $[13] = saveLabel;
48
+ $[14] = t;
49
+ $[15] = t5;
50
+ } else {
51
+ t5 = $[15];
52
+ }
35
53
  t3 = _jsx("div", {
36
54
  className: t2,
37
55
  children: _jsxs("div", {
@@ -45,11 +63,11 @@ export const DrawerActionHeader = t0 => {
45
63
  "aria-label": t("general:cancel"),
46
64
  buttonStyle: "secondary",
47
65
  onClick: onCancel,
48
- children: cancelLabel || t("general:cancel")
66
+ children: t4
49
67
  }), _jsx(FormSubmit, {
50
68
  "aria-label": t("general:applyChanges"),
51
69
  onClick: onSave,
52
- children: saveLabel || t("general:applyChanges")
70
+ children: t5
53
71
  })]
54
72
  })]
55
73
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","FormSubmit","useTranslation","Button","baseClass","DrawerActionHeader","t0","$","cancelLabel","className","onCancel","onSave","saveLabel","title","t","t1","filter","Boolean","t2","join","t3","_jsx","children","_jsxs","buttonStyle","onClick"],"sources":["../../../src/elements/DrawerActionHeader/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'drawer-action-header'\n\ntype DrawerActionHeaderArgs = {\n readonly cancelLabel?: string\n className?: string\n readonly onCancel?: () => void\n readonly onSave?: () => void\n readonly saveLabel?: string\n readonly title: React.ReactNode | string\n}\nexport const DrawerActionHeader = ({\n cancelLabel,\n className,\n onCancel,\n onSave,\n saveLabel,\n title,\n}: DrawerActionHeaderArgs) => {\n const { t } = useTranslation()\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__content`}>\n <h1 className={`${baseClass}__title`}>{title}</h1>\n\n <div className={`${baseClass}__actions`}>\n <Button aria-label={t('general:cancel')} buttonStyle=\"secondary\" onClick={onCancel}>\n {cancelLabel || t('general:cancel')}\n </Button>\n\n <FormSubmit aria-label={t('general:applyChanges')} onClick={onSave}>\n {saveLabel || t('general:applyChanges')}\n </FormSubmit>\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,UAAU,QAAQ;AAC3B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAUlB,OAAO,MAAMC,kBAAA,GAAqBC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,WAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,MAAA;IAAAC,SAAA;IAAAC;EAAA,IAAAP,EAOV;EACvB;IAAAQ;EAAA,IAAcZ,cAAA;EAAA,IAAAa,EAAA;EAAA,IAAAR,CAAA,QAAAE,SAAA;IAGIM,EAAA,IAAAX,SAAA,EAAYK,SAAA,EAAAO,MAAA,CAAAC,OAAkB;IAAAV,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAA9B,MAAAW,EAAA,GAAAH,EAA8B,CAAAI,IAAA,CAAc;EAAA,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAI,MAAA,IAAAJ,CAAA,QAAAK,SAAA,IAAAL,CAAA,QAAAO,CAAA,IAAAP,CAAA,QAAAW,EAAA,IAAAX,CAAA,QAAAM,KAAA;IAA5DO,EAAA,GAAAC,IAAA,CAAC;MAAAZ,SAAA,EAAeS,EAA4C;MAAAI,QAAA,EAC1DC,KAAA,CAAC;QAAAd,SAAA,EAAe,GAAAL,SAAA,WAAuB;QAAAkB,QAAA,GACrCD,IAAA,CAAC;UAAAZ,SAAA,EAAc,GAAAL,SAAA,SAAqB;UAAAkB,QAAA,EAAGT;QAAA,C,GAEvCU,KAAA,CAAC;UAAAd,SAAA,EAAe,GAAAL,SAAA,WAAuB;UAAAkB,QAAA,GACrCD,IAAA,CAAAlB,MAAA;YAAA,cAAoBW,CAAA,CAAE;YAAAU,WAAA,EAA+B;YAAAC,OAAA,EAAqBf,QAAA;YAAAY,QAAA,EACvEd,WAAA,IAAeM,CAAA,CAAE;UAAA,C,GAGpBO,IAAA,CAAApB,UAAA;YAAA,cAAwBa,CAAA,CAAE;YAAAW,OAAA,EAAkCd,MAAA;YAAAW,QAAA,EACzDV,SAAA,IAAaE,CAAA,CAAE;UAAA,C;;;;;;;;;;;;;;;SAVxBM,E;CAgBJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","FormSubmit","useTranslation","Button","baseClass","DrawerActionHeader","t0","$","cancelLabel","className","onCancel","onSave","saveLabel","title","t","t1","filter","Boolean","t2","join","t3","t4","t5","_jsx","children","_jsxs","buttonStyle","onClick"],"sources":["../../../src/elements/DrawerActionHeader/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'drawer-action-header'\n\ntype DrawerActionHeaderArgs = {\n readonly cancelLabel?: string\n className?: string\n readonly onCancel?: () => void\n readonly onSave?: () => void\n readonly saveLabel?: string\n readonly title: React.ReactNode | string\n}\nexport const DrawerActionHeader = ({\n cancelLabel,\n className,\n onCancel,\n onSave,\n saveLabel,\n title,\n}: DrawerActionHeaderArgs) => {\n const { t } = useTranslation()\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__content`}>\n <h1 className={`${baseClass}__title`}>{title}</h1>\n\n <div className={`${baseClass}__actions`}>\n <Button aria-label={t('general:cancel')} buttonStyle=\"secondary\" onClick={onCancel}>\n {cancelLabel || t('general:cancel')}\n </Button>\n\n <FormSubmit aria-label={t('general:applyChanges')} onClick={onSave}>\n {saveLabel || t('general:applyChanges')}\n </FormSubmit>\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,UAAU,QAAQ;AAC3B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAUlB,OAAO,MAAMC,kBAAA,GAAqBC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,WAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,MAAA;IAAAC,SAAA;IAAAC;EAAA,IAAAP,EAOV;EACvB;IAAAQ;EAAA,IAAcZ,cAAA;EAAA,IAAAa,EAAA;EAAA,IAAAR,CAAA,QAAAE,SAAA;IAGIM,EAAA,IAAAX,SAAA,EAAYK,SAAA,EAAAO,MAAA,CAAAC,OAAkB;IAAAV,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAA9B,MAAAW,EAAA,GAAAH,EAA8B,CAAAI,IAAA,CAAc;EAAA,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAI,MAAA,IAAAJ,CAAA,QAAAK,SAAA,IAAAL,CAAA,QAAAO,CAAA,IAAAP,CAAA,QAAAW,EAAA,IAAAX,CAAA,QAAAM,KAAA;IAAA,IAAAQ,EAAA;IAAA,IAAAd,CAAA,SAAAC,WAAA,IAAAD,CAAA,SAAAO,CAAA;MAMnDO,EAAA,GAAAb,WAAA,IAAeM,CAAA,CAAE;MAAAP,CAAA,OAAAC,WAAA;MAAAD,CAAA,OAAAO,CAAA;MAAAP,CAAA,OAAAc,EAAA;IAAA;MAAAA,EAAA,GAAAd,CAAA;IAAA;IAAA,IAAAe,EAAA;IAAA,IAAAf,CAAA,SAAAK,SAAA,IAAAL,CAAA,SAAAO,CAAA;MAIjBQ,EAAA,GAAAV,SAAA,IAAaE,CAAA,CAAE;MAAAP,CAAA,OAAAK,SAAA;MAAAL,CAAA,OAAAO,CAAA;MAAAP,CAAA,OAAAe,EAAA;IAAA;MAAAA,EAAA,GAAAf,CAAA;IAAA;IAVxBa,EAAA,GAAAG,IAAA,CAAC;MAAAd,SAAA,EAAeS,EAA4C;MAAAM,QAAA,EAC1DC,KAAA,CAAC;QAAAhB,SAAA,EAAe,GAAAL,SAAA,WAAuB;QAAAoB,QAAA,GACrCD,IAAA,CAAC;UAAAd,SAAA,EAAc,GAAAL,SAAA,SAAqB;UAAAoB,QAAA,EAAGX;QAAA,C,GAEvCY,KAAA,CAAC;UAAAhB,SAAA,EAAe,GAAAL,SAAA,WAAuB;UAAAoB,QAAA,GACrCD,IAAA,CAAApB,MAAA;YAAA,cAAoBW,CAAA,CAAE;YAAAY,WAAA,EAA+B;YAAAC,OAAA,EAAqBjB,QAAA;YAAAc,QAAA,EACvEH;UAAiB,C,GAGpBE,IAAA,CAAAtB,UAAA;YAAA,cAAwBa,CAAA,CAAE;YAAAa,OAAA,EAAkChB,MAAA;YAAAa,QAAA,EACzDF;UAAe,C;;;;;;;;;;;;;;;SAVxBF,E;CAgBJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/EmailAndUsername/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAGlF,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAGrB,KAAK,iCAAiC,GAAG;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,KAAK,GAAG,wBAAwB,CAAA;IACpD,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC/B,WAAW,CAAC,EACR;QACE,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,CAAA;KAC/C,GACD,IAAI,CAAA;IACR,QAAQ,EAAE,OAAO,CAAA;IACjB,CAAC,EAAE,SAAS,CAAA;CACb,CAAA;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,iCAAiC,qBAyF9E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/EmailAndUsername/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAGlF,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAIrB,KAAK,iCAAiC,GAAG;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,KAAK,GAAG,wBAAwB,CAAA;IACpD,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC/B,WAAW,CAAC,EACR;QACE,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,CAAA;KAC/C,GACD,IAAI,CAAA;IACR,QAAQ,EAAE,OAAO,CAAA;IACjB,CAAC,EAAE,SAAS,CAAA;CACb,CAAA;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,iCAAiC,qBA8F9E"}
@@ -6,6 +6,7 @@ import React from 'react';
6
6
  import { EmailField } from '../../fields/Email/index.js';
7
7
  import { TextField } from '../../fields/Text/index.js';
8
8
  import './index.scss';
9
+ import { FieldPathContext } from '../../forms/RenderFields/context.js';
9
10
  const baseClass = 'login-fields';
10
11
  export function EmailAndUsernameFields(props) {
11
12
  const {
@@ -49,32 +50,38 @@ export function EmailAndUsernameFields(props) {
49
50
  if (showEmailField || showUsernameField) {
50
51
  return /*#__PURE__*/_jsxs("div", {
51
52
  className: [baseClass, className && className].filter(Boolean).join(' '),
52
- children: [showEmailField ? /*#__PURE__*/_jsx(EmailField, {
53
- field: {
54
- name: 'email',
55
- admin: {
56
- autoComplete: 'off'
53
+ children: [showEmailField ? /*#__PURE__*/_jsx(FieldPathContext, {
54
+ value: "email",
55
+ children: /*#__PURE__*/_jsx(EmailField, {
56
+ field: {
57
+ name: 'email',
58
+ admin: {
59
+ autoComplete: 'off'
60
+ },
61
+ label: t('general:email'),
62
+ required: !loginWithUsername || loginWithUsername && loginWithUsername.requireEmail
57
63
  },
58
- label: t('general:email'),
59
- required: !loginWithUsername || loginWithUsername && loginWithUsername.requireEmail
60
- },
61
- path: "email",
62
- readOnly: readOnly || !emailPermissions.update,
63
- schemaPath: "email",
64
- validate: email
65
- }) : null, showUsernameField && /*#__PURE__*/_jsx(TextField, {
66
- field: {
67
- name: 'username',
68
- admin: {
69
- autoComplete: 'off'
64
+ path: "email",
65
+ readOnly: readOnly || !emailPermissions.update,
66
+ schemaPath: "email",
67
+ validate: email
68
+ })
69
+ }) : null, showUsernameField && /*#__PURE__*/_jsx(FieldPathContext, {
70
+ value: "username",
71
+ children: /*#__PURE__*/_jsx(TextField, {
72
+ field: {
73
+ name: 'username',
74
+ admin: {
75
+ autoComplete: 'off'
76
+ },
77
+ label: t('authentication:username'),
78
+ required: loginWithUsername && loginWithUsername.requireUsername
70
79
  },
71
- label: t('authentication:username'),
72
- required: loginWithUsername && loginWithUsername.requireUsername
73
- },
74
- path: "username",
75
- readOnly: readOnly || !usernamePermissions.update,
76
- schemaPath: "username",
77
- validate: username
80
+ path: "username",
81
+ readOnly: readOnly || !usernamePermissions.update,
82
+ schemaPath: "username",
83
+ validate: username
84
+ })
78
85
  })]
79
86
  });
80
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["email","getFieldPermissions","username","React","EmailField","TextField","baseClass","EmailAndUsernameFields","props","className","loginWithUsername","operation","operationFromProps","permissions","readOnly","t","getAuthFieldPermission","fieldName","permissionsResult","field","name","type","parentName","hasEmailFieldOverride","hasUsernameFieldOverride","emailPermissions","read","update","usernamePermissions","showEmailField","requireEmail","allowEmailLogin","showUsernameField","Boolean","_jsxs","filter","join","_jsx","admin","autoComplete","label","required","path","schemaPath","validate","requireUsername"],"sources":["../../../src/elements/EmailAndUsername/index.tsx"],"sourcesContent":["'use client'\n\nimport type { TFunction } from '@payloadcms/translations'\nimport type { LoginWithUsernameOptions, SanitizedFieldPermissions } from 'payload'\n\nimport { email, getFieldPermissions, username } from 'payload/shared'\nimport React from 'react'\n\nimport { EmailField } from '../../fields/Email/index.js'\nimport { TextField } from '../../fields/Text/index.js'\nimport './index.scss'\n\nconst baseClass = 'login-fields'\ntype RenderEmailAndUsernameFieldsProps = {\n className?: string\n loginWithUsername?: false | LoginWithUsernameOptions\n operation?: 'create' | 'update'\n permissions?:\n | {\n [fieldName: string]: SanitizedFieldPermissions\n }\n | true\n readOnly: boolean\n t: TFunction\n}\n\nexport function EmailAndUsernameFields(props: RenderEmailAndUsernameFieldsProps) {\n const {\n className,\n loginWithUsername,\n operation: operationFromProps,\n permissions,\n readOnly,\n t,\n } = props\n\n function getAuthFieldPermission(fieldName: string, operation: 'read' | 'update') {\n const permissionsResult = getFieldPermissions({\n field: { name: fieldName, type: 'text' },\n operation: operationFromProps === 'create' ? 'create' : operation,\n parentName: '',\n permissions,\n })\n return permissionsResult.operation\n }\n\n const hasEmailFieldOverride =\n typeof permissions === 'object' && 'email' in permissions && permissions.email\n const hasUsernameFieldOverride =\n typeof permissions === 'object' && 'username' in permissions && permissions.username\n\n const emailPermissions = hasEmailFieldOverride\n ? {\n read: getAuthFieldPermission('email', 'read'),\n update: getAuthFieldPermission('email', 'update'),\n }\n : {\n read: true,\n update: true,\n }\n\n const usernamePermissions = hasUsernameFieldOverride\n ? {\n read: getAuthFieldPermission('username', 'read'),\n update: getAuthFieldPermission('username', 'update'),\n }\n : {\n read: true,\n update: true,\n }\n\n const showEmailField =\n (!loginWithUsername || loginWithUsername?.requireEmail || loginWithUsername?.allowEmailLogin) &&\n emailPermissions.read\n\n const showUsernameField = Boolean(loginWithUsername) && usernamePermissions.read\n\n if (showEmailField || showUsernameField) {\n return (\n <div className={[baseClass, className && className].filter(Boolean).join(' ')}>\n {showEmailField ? (\n <EmailField\n field={{\n name: 'email',\n admin: {\n autoComplete: 'off',\n },\n label: t('general:email'),\n required: !loginWithUsername || (loginWithUsername && loginWithUsername.requireEmail),\n }}\n path=\"email\"\n readOnly={readOnly || !emailPermissions.update}\n schemaPath=\"email\"\n validate={email}\n />\n ) : null}\n {showUsernameField && (\n <TextField\n field={{\n name: 'username',\n admin: {\n autoComplete: 'off',\n },\n label: t('authentication:username'),\n required: loginWithUsername && loginWithUsername.requireUsername,\n }}\n path=\"username\"\n readOnly={readOnly || !usernamePermissions.update}\n schemaPath=\"username\"\n validate={username}\n />\n )}\n </div>\n )\n }\n}\n"],"mappings":"AAAA;;;AAKA,SAASA,KAAK,EAAEC,mBAAmB,EAAEC,QAAQ,QAAQ;AACrD,OAAOC,KAAA,MAAW;AAElB,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAclB,OAAO,SAASC,uBAAuBC,KAAwC;EAC7E,MAAM;IACJC,SAAS;IACTC,iBAAiB;IACjBC,SAAA,EAAWC,kBAAkB;IAC7BC,WAAW;IACXC,QAAQ;IACRC;EAAC,CACF,GAAGP,KAAA;EAEJ,SAASQ,uBAAuBC,SAAiB,EAAEN,SAA4B;IAC7E,MAAMO,iBAAA,GAAoBjB,mBAAA,CAAoB;MAC5CkB,KAAA,EAAO;QAAEC,IAAA,EAAMH,SAAA;QAAWI,IAAA,EAAM;MAAO;MACvCV,SAAA,EAAWC,kBAAA,KAAuB,WAAW,WAAWD,SAAA;MACxDW,UAAA,EAAY;MACZT;IACF;IACA,OAAOK,iBAAA,CAAkBP,SAAS;EACpC;EAEA,MAAMY,qBAAA,GACJ,OAAOV,WAAA,KAAgB,YAAY,WAAWA,WAAA,IAAeA,WAAA,CAAYb,KAAK;EAChF,MAAMwB,wBAAA,GACJ,OAAOX,WAAA,KAAgB,YAAY,cAAcA,WAAA,IAAeA,WAAA,CAAYX,QAAQ;EAEtF,MAAMuB,gBAAA,GAAmBF,qBAAA,GACrB;IACEG,IAAA,EAAMV,sBAAA,CAAuB,SAAS;IACtCW,MAAA,EAAQX,sBAAA,CAAuB,SAAS;EAC1C,IACA;IACEU,IAAA,EAAM;IACNC,MAAA,EAAQ;EACV;EAEJ,MAAMC,mBAAA,GAAsBJ,wBAAA,GACxB;IACEE,IAAA,EAAMV,sBAAA,CAAuB,YAAY;IACzCW,MAAA,EAAQX,sBAAA,CAAuB,YAAY;EAC7C,IACA;IACEU,IAAA,EAAM;IACNC,MAAA,EAAQ;EACV;EAEJ,MAAME,cAAA,GACJ,CAAC,CAACnB,iBAAA,IAAqBA,iBAAA,EAAmBoB,YAAA,IAAgBpB,iBAAA,EAAmBqB,eAAc,KAC3FN,gBAAA,CAAiBC,IAAI;EAEvB,MAAMM,iBAAA,GAAoBC,OAAA,CAAQvB,iBAAA,KAAsBkB,mBAAA,CAAoBF,IAAI;EAEhF,IAAIG,cAAA,IAAkBG,iBAAA,EAAmB;IACvC,oBACEE,KAAA,CAAC;MAAIzB,SAAA,EAAW,CAACH,SAAA,EAAWG,SAAA,IAAaA,SAAA,CAAU,CAAC0B,MAAM,CAACF,OAAA,EAASG,IAAI,CAAC;iBACtEP,cAAA,gBACCQ,IAAA,CAACjC,UAAA;QACCe,KAAA,EAAO;UACLC,IAAA,EAAM;UACNkB,KAAA,EAAO;YACLC,YAAA,EAAc;UAChB;UACAC,KAAA,EAAOzB,CAAA,CAAE;UACT0B,QAAA,EAAU,CAAC/B,iBAAA,IAAsBA,iBAAA,IAAqBA,iBAAA,CAAkBoB;QAC1E;QACAY,IAAA,EAAK;QACL5B,QAAA,EAAUA,QAAA,IAAY,CAACW,gBAAA,CAAiBE,MAAM;QAC9CgB,UAAA,EAAW;QACXC,QAAA,EAAU5C;WAEV,MACHgC,iBAAA,iBACCK,IAAA,CAAChC,SAAA;QACCc,KAAA,EAAO;UACLC,IAAA,EAAM;UACNkB,KAAA,EAAO;YACLC,YAAA,EAAc;UAChB;UACAC,KAAA,EAAOzB,CAAA,CAAE;UACT0B,QAAA,EAAU/B,iBAAA,IAAqBA,iBAAA,CAAkBmC;QACnD;QACAH,IAAA,EAAK;QACL5B,QAAA,EAAUA,QAAA,IAAY,CAACc,mBAAA,CAAoBD,MAAM;QACjDgB,UAAA,EAAW;QACXC,QAAA,EAAU1C;;;EAKpB;AACF","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["email","getFieldPermissions","username","React","EmailField","TextField","FieldPathContext","baseClass","EmailAndUsernameFields","props","className","loginWithUsername","operation","operationFromProps","permissions","readOnly","t","getAuthFieldPermission","fieldName","permissionsResult","field","name","type","parentName","hasEmailFieldOverride","hasUsernameFieldOverride","emailPermissions","read","update","usernamePermissions","showEmailField","requireEmail","allowEmailLogin","showUsernameField","Boolean","_jsxs","filter","join","_jsx","value","admin","autoComplete","label","required","path","schemaPath","validate","requireUsername"],"sources":["../../../src/elements/EmailAndUsername/index.tsx"],"sourcesContent":["'use client'\n\nimport type { TFunction } from '@payloadcms/translations'\nimport type { LoginWithUsernameOptions, SanitizedFieldPermissions } from 'payload'\n\nimport { email, getFieldPermissions, username } from 'payload/shared'\nimport React from 'react'\n\nimport { EmailField } from '../../fields/Email/index.js'\nimport { TextField } from '../../fields/Text/index.js'\nimport './index.scss'\nimport { FieldPathContext } from '../../forms/RenderFields/context.js'\n\nconst baseClass = 'login-fields'\ntype RenderEmailAndUsernameFieldsProps = {\n className?: string\n loginWithUsername?: false | LoginWithUsernameOptions\n operation?: 'create' | 'update'\n permissions?:\n | {\n [fieldName: string]: SanitizedFieldPermissions\n }\n | true\n readOnly: boolean\n t: TFunction\n}\n\nexport function EmailAndUsernameFields(props: RenderEmailAndUsernameFieldsProps) {\n const {\n className,\n loginWithUsername,\n operation: operationFromProps,\n permissions,\n readOnly,\n t,\n } = props\n\n function getAuthFieldPermission(fieldName: string, operation: 'read' | 'update') {\n const permissionsResult = getFieldPermissions({\n field: { name: fieldName, type: 'text' },\n operation: operationFromProps === 'create' ? 'create' : operation,\n parentName: '',\n permissions,\n })\n return permissionsResult.operation\n }\n\n const hasEmailFieldOverride =\n typeof permissions === 'object' && 'email' in permissions && permissions.email\n const hasUsernameFieldOverride =\n typeof permissions === 'object' && 'username' in permissions && permissions.username\n\n const emailPermissions = hasEmailFieldOverride\n ? {\n read: getAuthFieldPermission('email', 'read'),\n update: getAuthFieldPermission('email', 'update'),\n }\n : {\n read: true,\n update: true,\n }\n\n const usernamePermissions = hasUsernameFieldOverride\n ? {\n read: getAuthFieldPermission('username', 'read'),\n update: getAuthFieldPermission('username', 'update'),\n }\n : {\n read: true,\n update: true,\n }\n\n const showEmailField =\n (!loginWithUsername || loginWithUsername?.requireEmail || loginWithUsername?.allowEmailLogin) &&\n emailPermissions.read\n\n const showUsernameField = Boolean(loginWithUsername) && usernamePermissions.read\n\n if (showEmailField || showUsernameField) {\n return (\n <div className={[baseClass, className && className].filter(Boolean).join(' ')}>\n {showEmailField ? (\n <FieldPathContext value=\"email\">\n <EmailField\n field={{\n name: 'email',\n admin: {\n autoComplete: 'off',\n },\n label: t('general:email'),\n required:\n !loginWithUsername || (loginWithUsername && loginWithUsername.requireEmail),\n }}\n path=\"email\"\n readOnly={readOnly || !emailPermissions.update}\n schemaPath=\"email\"\n validate={email}\n />\n </FieldPathContext>\n ) : null}\n {showUsernameField && (\n <FieldPathContext value=\"username\">\n <TextField\n field={{\n name: 'username',\n admin: {\n autoComplete: 'off',\n },\n label: t('authentication:username'),\n required: loginWithUsername && loginWithUsername.requireUsername,\n }}\n path=\"username\"\n readOnly={readOnly || !usernamePermissions.update}\n schemaPath=\"username\"\n validate={username}\n />\n </FieldPathContext>\n )}\n </div>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}