@payloadcms/ui 3.0.0-beta.32 → 3.0.0-beta.34

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 (71) hide show
  1. package/dist/assets/index.d.ts +4 -4
  2. package/dist/assets/index.d.ts.map +1 -1
  3. package/dist/assets/index.js +4 -4
  4. package/dist/assets/index.js.map +1 -1
  5. package/dist/elements/Banner/index.js +1 -1
  6. package/dist/elements/Banner/index.js.map +1 -1
  7. package/dist/elements/Pill/index.js +1 -1
  8. package/dist/elements/Pill/index.js.map +1 -1
  9. package/dist/elements/ReactSelect/ClearIndicator/index.d.ts.map +1 -1
  10. package/dist/elements/ReactSelect/ClearIndicator/index.js +10 -2
  11. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  12. package/dist/elements/ReactSelect/ClearIndicator/index.scss +4 -0
  13. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts +8 -0
  14. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -0
  15. package/dist/elements/ReactSelect/DropdownIndicator/index.js +19 -0
  16. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -0
  17. package/dist/elements/ReactSelect/DropdownIndicator/index.scss +16 -0
  18. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  19. package/dist/elements/ReactSelect/MultiValue/index.js +3 -3
  20. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  21. package/dist/elements/ReactSelect/MultiValueLabel/index.scss +4 -0
  22. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts.map +1 -1
  23. package/dist/elements/ReactSelect/MultiValueRemove/index.js +6 -0
  24. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  25. package/dist/elements/ReactSelect/index.js +3 -3
  26. package/dist/elements/ReactSelect/index.js.map +1 -1
  27. package/dist/elements/ReactSelect/index.scss +1 -1
  28. package/dist/elements/StepNav/index.d.ts.map +1 -1
  29. package/dist/elements/StepNav/index.js +13 -3
  30. package/dist/elements/StepNav/index.js.map +1 -1
  31. package/dist/elements/StepNav/index.scss +11 -0
  32. package/dist/fields/Relationship/index.js +1 -1
  33. package/dist/fields/Relationship/index.js.map +1 -1
  34. package/dist/fields/Relationship/select-components/MultiValueLabel/index.d.ts.map +1 -1
  35. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +8 -1
  36. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  37. package/dist/fields/Relationship/select-components/MultiValueLabel/index.scss +4 -0
  38. package/dist/fields/Relationship/select-components/SingleValue/index.d.ts.map +1 -1
  39. package/dist/fields/Relationship/select-components/SingleValue/index.js +5 -0
  40. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  41. package/dist/fields/Relationship/select-components/SingleValue/index.scss +2 -2
  42. package/dist/forms/Form/index.js.map +1 -1
  43. package/dist/forms/Submit/index.d.ts.map +1 -1
  44. package/dist/forms/Submit/index.js.map +1 -1
  45. package/dist/graphics/Icon/index.d.ts +3 -1
  46. package/dist/graphics/Icon/index.d.ts.map +1 -1
  47. package/dist/graphics/Icon/index.js +10 -36
  48. package/dist/graphics/Icon/index.js.map +1 -1
  49. package/dist/icons/Edit/index.d.ts +3 -1
  50. package/dist/icons/Edit/index.d.ts.map +1 -1
  51. package/dist/icons/Edit/index.js +5 -2
  52. package/dist/icons/Edit/index.js.map +1 -1
  53. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -1
  54. package/dist/providers/ComponentMap/buildComponentMap/collections.js +3 -2
  55. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -1
  56. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -1
  57. package/dist/providers/ComponentMap/buildComponentMap/globals.js +2 -1
  58. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -1
  59. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  60. package/dist/providers/DocumentInfo/index.js +40 -27
  61. package/dist/providers/DocumentInfo/index.js.map +1 -1
  62. package/dist/utilities/hasSavePermission.d.ts +8 -0
  63. package/dist/utilities/hasSavePermission.d.ts.map +1 -0
  64. package/dist/utilities/hasSavePermission.js +12 -0
  65. package/dist/utilities/hasSavePermission.js.map +1 -0
  66. package/dist/utilities/isEditing.d.ts +6 -0
  67. package/dist/utilities/isEditing.d.ts.map +1 -0
  68. package/dist/utilities/isEditing.js +3 -0
  69. package/dist/utilities/isEditing.js.map +1 -0
  70. package/package.json +10 -10
  71. /package/dist/assets/{og-image.png → static-og-image.png} +0 -0
@@ -1,5 +1,5 @@
1
- export { default as payloadOgImage } from '../assets/og-image.png';
2
- export { default as payloadFavicon } from '../assets/payload-favicon.svg';
3
- export { default as payloadFaviconDark } from '../assets/payload-favicon-dark.png';
4
- export { default as payloadFaviconLight } from '../assets/payload-favicon-light.png';
1
+ export { default as payloadFavicon } from './payload-favicon.svg';
2
+ export { default as payloadFaviconDark } from './payload-favicon-dark.png';
3
+ export { default as payloadFaviconLight } from './payload-favicon-light.png';
4
+ export { default as staticOGImage } from './static-og-image.png';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,qCAAqC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1,6 +1,6 @@
1
- export { default as payloadOgImage } from '../assets/og-image.png';
2
- export { default as payloadFavicon } from '../assets/payload-favicon.svg';
3
- export { default as payloadFaviconDark } from '../assets/payload-favicon-dark.png';
4
- export { default as payloadFaviconLight } from '../assets/payload-favicon-light.png';
1
+ export { default as payloadFavicon } from './payload-favicon.svg';
2
+ export { default as payloadFaviconDark } from './payload-favicon-dark.png';
3
+ export { default as payloadFaviconLight } from './payload-favicon-light.png';
4
+ export { default as staticOGImage } from './static-og-image.png';
5
5
 
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/assets/index.ts"],"sourcesContent":["export { default as payloadOgImage } from '../assets/og-image.png'\nexport { default as payloadFavicon } from '../assets/payload-favicon.svg'\nexport { default as payloadFaviconDark } from '../assets/payload-favicon-dark.png'\nexport { default as payloadFaviconLight } from '../assets/payload-favicon-light.png'\n"],"names":["default","payloadOgImage","payloadFavicon","payloadFaviconDark","payloadFaviconLight"],"rangeMappings":";;;","mappings":"AAAA,SAASA,WAAWC,cAAc,QAAQ,yBAAwB;AAClE,SAASD,WAAWE,cAAc,QAAQ,gCAA+B;AACzE,SAASF,WAAWG,kBAAkB,QAAQ,qCAAoC;AAClF,SAASH,WAAWI,mBAAmB,QAAQ,sCAAqC"}
1
+ {"version":3,"sources":["../../src/assets/index.ts"],"sourcesContent":["export { default as payloadFavicon } from './payload-favicon.svg'\nexport { default as payloadFaviconDark } from './payload-favicon-dark.png'\nexport { default as payloadFaviconLight } from './payload-favicon-light.png'\nexport { default as staticOGImage } from './static-og-image.png'\n"],"names":["default","payloadFavicon","payloadFaviconDark","payloadFaviconLight","staticOGImage"],"rangeMappings":";;;","mappings":"AAAA,SAASA,WAAWC,cAAc,QAAQ,wBAAuB;AACjE,SAASD,WAAWE,kBAAkB,QAAQ,6BAA4B;AAC1E,SAASF,WAAWG,mBAAmB,QAAQ,8BAA6B;AAC5E,SAASH,WAAWI,aAAa,QAAQ,wBAAuB"}
@@ -17,7 +17,7 @@ export const Banner = ({ type = 'default', alignIcon = 'right', children, classN
17
17
  if (to) RenderedType = Link;
18
18
  return /*#__PURE__*/ React.createElement(RenderedType, {
19
19
  className: classes,
20
- href: to || '',
20
+ href: to || null,
21
21
  onClick: onClick
22
22
  }, icon && alignIcon === 'left' && /*#__PURE__*/ React.createElement(React.Fragment, null, icon), /*#__PURE__*/ React.createElement("span", {
23
23
  className: `${baseClass}__content`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Banner/index.tsx"],"sourcesContent":["import LinkImport from 'next/link.js' // TODO: abstract this out to support all routers\nimport type { MouseEvent } from 'react'\n\nimport React from 'react'\n\nimport './index.scss'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nconst baseClass = 'banner'\n\ntype onClick = (event: MouseEvent) => void\n\nexport type Props = {\n alignIcon?: 'left' | 'right'\n children?: React.ReactNode\n className?: string\n icon?: React.ReactNode\n onClick?: onClick\n to?: string\n type?: 'default' | 'error' | 'info' | 'success'\n}\n\nexport type RenderedTypeProps = {\n children?: React.ReactNode\n className?: string\n onClick?: onClick\n to: string\n}\n\nexport const Banner: React.FC<Props> = ({\n type = 'default',\n alignIcon = 'right',\n children,\n className,\n icon,\n onClick,\n to,\n}) => {\n const classes = [\n baseClass,\n `${baseClass}--type-${type}`,\n className && className,\n to && `${baseClass}--has-link`,\n (to || onClick) && `${baseClass}--has-action`,\n icon && `${baseClass}--has-icon`,\n icon && `${baseClass}--align-icon-${alignIcon}`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let RenderedType: React.ComponentType<RenderedTypeProps> | React.ElementType = 'div'\n\n if (onClick && !to) RenderedType = 'button'\n if (to) RenderedType = Link\n\n return (\n <RenderedType className={classes} href={to || ''} onClick={onClick}>\n {icon && alignIcon === 'left' && <React.Fragment>{icon}</React.Fragment>}\n <span className={`${baseClass}__content`}>{children}</span>\n {icon && alignIcon === 'right' && <React.Fragment>{icon}</React.Fragment>}\n </RenderedType>\n )\n}\n"],"names":["LinkImport","React","Link","default","baseClass","Banner","type","alignIcon","children","className","icon","onClick","to","classes","filter","Boolean","join","RenderedType","href","Fragment","span"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,gBAAgB,eAAc,CAAC,iDAAiD;AAGvF,OAAOC,WAAW,QAAO;AAIzB,MAAMC,OAAQF,WAAWG,OAAO,IAAIH;AAEpC,MAAMI,YAAY;AAqBlB,OAAO,MAAMC,SAA0B,CAAC,EACtCC,OAAO,SAAS,EAChBC,YAAY,OAAO,EACnBC,QAAQ,EACRC,SAAS,EACTC,IAAI,EACJC,OAAO,EACPC,EAAE,EACH;IACC,MAAMC,UAAU;QACdT;QACA,CAAC,EAAEA,UAAU,OAAO,EAAEE,KAAK,CAAC;QAC5BG,aAAaA;QACbG,MAAM,CAAC,EAAER,UAAU,UAAU,CAAC;QAC7BQ,CAAAA,MAAMD,OAAM,KAAM,CAAC,EAAEP,UAAU,YAAY,CAAC;QAC7CM,QAAQ,CAAC,EAAEN,UAAU,UAAU,CAAC;QAChCM,QAAQ,CAAC,EAAEN,UAAU,aAAa,EAAEG,UAAU,CAAC;KAChD,CACEO,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,IAAIC,eAA2E;IAE/E,IAAIN,WAAW,CAACC,IAAIK,eAAe;IACnC,IAAIL,IAAIK,eAAef;IAEvB,qBACE,oBAACe;QAAaR,WAAWI;QAASK,MAAMN,MAAM;QAAID,SAASA;OACxDD,QAAQH,cAAc,wBAAU,oBAACN,MAAMkB,QAAQ,QAAET,qBAClD,oBAACU;QAAKX,WAAW,CAAC,EAAEL,UAAU,SAAS,CAAC;OAAGI,WAC1CE,QAAQH,cAAc,yBAAW,oBAACN,MAAMkB,QAAQ,QAAET;AAGzD,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/Banner/index.tsx"],"sourcesContent":["import LinkImport from 'next/link.js' // TODO: abstract this out to support all routers\nimport type { MouseEvent } from 'react'\n\nimport React from 'react'\n\nimport './index.scss'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nconst baseClass = 'banner'\n\ntype onClick = (event: MouseEvent) => void\n\nexport type Props = {\n alignIcon?: 'left' | 'right'\n children?: React.ReactNode\n className?: string\n icon?: React.ReactNode\n onClick?: onClick\n to?: string\n type?: 'default' | 'error' | 'info' | 'success'\n}\n\nexport type RenderedTypeProps = {\n children?: React.ReactNode\n className?: string\n onClick?: onClick\n to: string\n}\n\nexport const Banner: React.FC<Props> = ({\n type = 'default',\n alignIcon = 'right',\n children,\n className,\n icon,\n onClick,\n to,\n}) => {\n const classes = [\n baseClass,\n `${baseClass}--type-${type}`,\n className && className,\n to && `${baseClass}--has-link`,\n (to || onClick) && `${baseClass}--has-action`,\n icon && `${baseClass}--has-icon`,\n icon && `${baseClass}--align-icon-${alignIcon}`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let RenderedType: React.ComponentType<RenderedTypeProps> | React.ElementType = 'div'\n\n if (onClick && !to) RenderedType = 'button'\n if (to) RenderedType = Link\n\n return (\n <RenderedType className={classes} href={to || null} onClick={onClick}>\n {icon && alignIcon === 'left' && <React.Fragment>{icon}</React.Fragment>}\n <span className={`${baseClass}__content`}>{children}</span>\n {icon && alignIcon === 'right' && <React.Fragment>{icon}</React.Fragment>}\n </RenderedType>\n )\n}\n"],"names":["LinkImport","React","Link","default","baseClass","Banner","type","alignIcon","children","className","icon","onClick","to","classes","filter","Boolean","join","RenderedType","href","Fragment","span"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,gBAAgB,eAAc,CAAC,iDAAiD;AAGvF,OAAOC,WAAW,QAAO;AAIzB,MAAMC,OAAQF,WAAWG,OAAO,IAAIH;AAEpC,MAAMI,YAAY;AAqBlB,OAAO,MAAMC,SAA0B,CAAC,EACtCC,OAAO,SAAS,EAChBC,YAAY,OAAO,EACnBC,QAAQ,EACRC,SAAS,EACTC,IAAI,EACJC,OAAO,EACPC,EAAE,EACH;IACC,MAAMC,UAAU;QACdT;QACA,CAAC,EAAEA,UAAU,OAAO,EAAEE,KAAK,CAAC;QAC5BG,aAAaA;QACbG,MAAM,CAAC,EAAER,UAAU,UAAU,CAAC;QAC7BQ,CAAAA,MAAMD,OAAM,KAAM,CAAC,EAAEP,UAAU,YAAY,CAAC;QAC7CM,QAAQ,CAAC,EAAEN,UAAU,UAAU,CAAC;QAChCM,QAAQ,CAAC,EAAEN,UAAU,aAAa,EAAEG,UAAU,CAAC;KAChD,CACEO,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,IAAIC,eAA2E;IAE/E,IAAIN,WAAW,CAACC,IAAIK,eAAe;IACnC,IAAIL,IAAIK,eAAef;IAEvB,qBACE,oBAACe;QAAaR,WAAWI;QAASK,MAAMN,MAAM;QAAMD,SAASA;OAC1DD,QAAQH,cAAc,wBAAU,oBAACN,MAAMkB,QAAQ,QAAET,qBAClD,oBAACU;QAAKX,WAAW,CAAC,EAAEL,UAAU,SAAS,CAAC;OAAGI,WAC1CE,QAAQH,cAAc,yBAAW,oBAACN,MAAMkB,QAAQ,QAAET;AAGzD,EAAC"}
@@ -48,7 +48,7 @@ const StaticPill = (props)=>{
48
48
  "aria-expanded": ariaExpanded,
49
49
  "aria-label": ariaLabel,
50
50
  className: classes,
51
- href: to || '',
51
+ href: to || null,
52
52
  onClick: onClick,
53
53
  type: Element === 'button' ? 'button' : undefined
54
54
  }, icon && alignIcon === 'left' && /*#__PURE__*/ React.createElement("span", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Pill/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementType } from 'react'\n\nimport LinkWithDefault from 'next/link.js'\nconst Link = LinkWithDefault.default\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport type { HTMLAttributes } from 'react'\n\nexport type PillProps = {\n alignIcon?: 'left' | 'right'\n 'aria-checked'?: boolean\n 'aria-controls'?: string\n 'aria-expanded'?: boolean\n 'aria-label'?: string\n children?: React.ReactNode\n className?: string\n draggable?: boolean\n elementProps?: HTMLAttributes<HTMLElement> & {\n ref: React.RefCallback<HTMLElement>\n }\n icon?: React.ReactNode\n id?: string\n onClick?: () => void\n pillStyle?: 'dark' | 'error' | 'light' | 'light-gray' | 'success' | 'warning' | 'white'\n rounded?: boolean\n to?: string\n}\n\nexport type RenderedTypeProps = {\n children: React.ReactNode\n className?: string\n onClick?: () => void\n to: string\n type?: 'button'\n}\n\nimport { useDraggableSortable } from '../DraggableSortable/useDraggableSortable/index.js'\nimport './index.scss'\n\nconst baseClass = 'pill'\n\nconst DraggablePill: React.FC<PillProps> = (props) => {\n const { id, className } = props\n\n const { attributes, isDragging, listeners, setNodeRef, transform } = useDraggableSortable({\n id,\n })\n\n return (\n <StaticPill\n {...props}\n className={[isDragging && `${baseClass}--is-dragging`, className].filter(Boolean).join(' ')}\n elementProps={{\n ...listeners,\n ...attributes,\n ref: setNodeRef,\n style: {\n transform,\n },\n }}\n />\n )\n}\n\nconst StaticPill: React.FC<PillProps> = (props) => {\n const {\n alignIcon = 'right',\n 'aria-checked': ariaChecked,\n 'aria-controls': ariaControls,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n children,\n className,\n draggable,\n elementProps,\n icon,\n onClick,\n pillStyle = 'light',\n rounded,\n to,\n } = props\n\n const classes = [\n baseClass,\n `${baseClass}--style-${pillStyle}`,\n className && className,\n to && `${baseClass}--has-link`,\n (to || onClick) && `${baseClass}--has-action`,\n icon && `${baseClass}--has-icon`,\n icon && `${baseClass}--align-icon-${alignIcon}`,\n draggable && `${baseClass}--draggable`,\n rounded && `${baseClass}--rounded`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let Element: ElementType | React.FC<RenderedTypeProps> = 'div'\n\n if (onClick && !to) Element = 'button'\n if (to) Element = Link\n\n return (\n <Element\n {...elementProps}\n aria-checked={ariaChecked}\n aria-controls={ariaControls}\n aria-expanded={ariaExpanded}\n aria-label={ariaLabel}\n className={classes}\n href={to || ''}\n onClick={onClick}\n type={Element === 'button' ? 'button' : undefined}\n >\n {icon && alignIcon === 'left' && <span className={`${baseClass}__icon`}>{icon}</span>}\n <span className={`${baseClass}__label`}>{children}</span>\n {icon && alignIcon === 'right' && <span className={`${baseClass}__icon`}>{icon}</span>}\n </Element>\n )\n}\n\nexport const Pill: React.FC<PillProps> = (props) => {\n const { draggable } = props\n\n if (draggable) return <DraggablePill {...props} />\n return <StaticPill {...props} />\n}\n"],"names":["LinkWithDefault","Link","default","React","useDraggableSortable","baseClass","DraggablePill","props","id","className","attributes","isDragging","listeners","setNodeRef","transform","StaticPill","filter","Boolean","join","elementProps","ref","style","alignIcon","ariaChecked","ariaControls","ariaExpanded","ariaLabel","children","draggable","icon","onClick","pillStyle","rounded","to","classes","Element","aria-checked","aria-controls","aria-expanded","aria-label","href","type","undefined","span","Pill"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAGA,OAAOA,qBAAqB,eAAc;AAC1C,MAAMC,OAAOD,gBAAgBE,OAAO;AACpC,OAAOC,WAAW,QAAO,CAAC,iDAAiD;AAgC3E,SAASC,oBAAoB,QAAQ,qDAAoD;AAGzF,MAAMC,YAAY;AAElB,MAAMC,gBAAqC,CAACC;IAC1C,MAAM,EAAEC,EAAE,EAAEC,SAAS,EAAE,GAAGF;IAE1B,MAAM,EAAEG,UAAU,EAAEC,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGV,qBAAqB;QACxFI;IACF;IAEA,qBACE,oBAACO;QACE,GAAGR,KAAK;QACTE,WAAW;YAACE,cAAc,CAAC,EAAEN,UAAU,aAAa,CAAC;YAAEI;SAAU,CAACO,MAAM,CAACC,SAASC,IAAI,CAAC;QACvFC,cAAc;YACZ,GAAGP,SAAS;YACZ,GAAGF,UAAU;YACbU,KAAKP;YACLQ,OAAO;gBACLP;YACF;QACF;;AAGN;AAEA,MAAMC,aAAkC,CAACR;IACvC,MAAM,EACJe,YAAY,OAAO,EACnB,gBAAgBC,WAAW,EAC3B,iBAAiBC,YAAY,EAC7B,iBAAiBC,YAAY,EAC7B,cAAcC,SAAS,EACvBC,QAAQ,EACRlB,SAAS,EACTmB,SAAS,EACTT,YAAY,EACZU,IAAI,EACJC,OAAO,EACPC,YAAY,OAAO,EACnBC,OAAO,EACPC,EAAE,EACH,GAAG1B;IAEJ,MAAM2B,UAAU;QACd7B;QACA,CAAC,EAAEA,UAAU,QAAQ,EAAE0B,UAAU,CAAC;QAClCtB,aAAaA;QACbwB,MAAM,CAAC,EAAE5B,UAAU,UAAU,CAAC;QAC7B4B,CAAAA,MAAMH,OAAM,KAAM,CAAC,EAAEzB,UAAU,YAAY,CAAC;QAC7CwB,QAAQ,CAAC,EAAExB,UAAU,UAAU,CAAC;QAChCwB,QAAQ,CAAC,EAAExB,UAAU,aAAa,EAAEiB,UAAU,CAAC;QAC/CM,aAAa,CAAC,EAAEvB,UAAU,WAAW,CAAC;QACtC2B,WAAW,CAAC,EAAE3B,UAAU,SAAS,CAAC;KACnC,CACEW,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,IAAIiB,UAAqD;IAEzD,IAAIL,WAAW,CAACG,IAAIE,UAAU;IAC9B,IAAIF,IAAIE,UAAUlC;IAElB,qBACE,oBAACkC;QACE,GAAGhB,YAAY;QAChBiB,gBAAcb;QACdc,iBAAeb;QACfc,iBAAeb;QACfc,cAAYb;QACZjB,WAAWyB;QACXM,MAAMP,MAAM;QACZH,SAASA;QACTW,MAAMN,YAAY,WAAW,WAAWO;OAEvCb,QAAQP,cAAc,wBAAU,oBAACqB;QAAKlC,WAAW,CAAC,EAAEJ,UAAU,MAAM,CAAC;OAAGwB,qBACzE,oBAACc;QAAKlC,WAAW,CAAC,EAAEJ,UAAU,OAAO,CAAC;OAAGsB,WACxCE,QAAQP,cAAc,yBAAW,oBAACqB;QAAKlC,WAAW,CAAC,EAAEJ,UAAU,MAAM,CAAC;OAAGwB;AAGhF;AAEA,OAAO,MAAMe,OAA4B,CAACrC;IACxC,MAAM,EAAEqB,SAAS,EAAE,GAAGrB;IAEtB,IAAIqB,WAAW,qBAAO,oBAACtB,eAAkBC;IACzC,qBAAO,oBAACQ,YAAeR;AACzB,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/Pill/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementType } from 'react'\n\nimport LinkWithDefault from 'next/link.js'\nconst Link = LinkWithDefault.default\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport type { HTMLAttributes } from 'react'\n\nexport type PillProps = {\n alignIcon?: 'left' | 'right'\n 'aria-checked'?: boolean\n 'aria-controls'?: string\n 'aria-expanded'?: boolean\n 'aria-label'?: string\n children?: React.ReactNode\n className?: string\n draggable?: boolean\n elementProps?: HTMLAttributes<HTMLElement> & {\n ref: React.RefCallback<HTMLElement>\n }\n icon?: React.ReactNode\n id?: string\n onClick?: () => void\n pillStyle?: 'dark' | 'error' | 'light' | 'light-gray' | 'success' | 'warning' | 'white'\n rounded?: boolean\n to?: string\n}\n\nexport type RenderedTypeProps = {\n children: React.ReactNode\n className?: string\n onClick?: () => void\n to: string\n type?: 'button'\n}\n\nimport { useDraggableSortable } from '../DraggableSortable/useDraggableSortable/index.js'\nimport './index.scss'\n\nconst baseClass = 'pill'\n\nconst DraggablePill: React.FC<PillProps> = (props) => {\n const { id, className } = props\n\n const { attributes, isDragging, listeners, setNodeRef, transform } = useDraggableSortable({\n id,\n })\n\n return (\n <StaticPill\n {...props}\n className={[isDragging && `${baseClass}--is-dragging`, className].filter(Boolean).join(' ')}\n elementProps={{\n ...listeners,\n ...attributes,\n ref: setNodeRef,\n style: {\n transform,\n },\n }}\n />\n )\n}\n\nconst StaticPill: React.FC<PillProps> = (props) => {\n const {\n alignIcon = 'right',\n 'aria-checked': ariaChecked,\n 'aria-controls': ariaControls,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n children,\n className,\n draggable,\n elementProps,\n icon,\n onClick,\n pillStyle = 'light',\n rounded,\n to,\n } = props\n\n const classes = [\n baseClass,\n `${baseClass}--style-${pillStyle}`,\n className && className,\n to && `${baseClass}--has-link`,\n (to || onClick) && `${baseClass}--has-action`,\n icon && `${baseClass}--has-icon`,\n icon && `${baseClass}--align-icon-${alignIcon}`,\n draggable && `${baseClass}--draggable`,\n rounded && `${baseClass}--rounded`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let Element: ElementType | React.FC<RenderedTypeProps> = 'div'\n\n if (onClick && !to) Element = 'button'\n if (to) Element = Link\n\n return (\n <Element\n {...elementProps}\n aria-checked={ariaChecked}\n aria-controls={ariaControls}\n aria-expanded={ariaExpanded}\n aria-label={ariaLabel}\n className={classes}\n href={to || null}\n onClick={onClick}\n type={Element === 'button' ? 'button' : undefined}\n >\n {icon && alignIcon === 'left' && <span className={`${baseClass}__icon`}>{icon}</span>}\n <span className={`${baseClass}__label`}>{children}</span>\n {icon && alignIcon === 'right' && <span className={`${baseClass}__icon`}>{icon}</span>}\n </Element>\n )\n}\n\nexport const Pill: React.FC<PillProps> = (props) => {\n const { draggable } = props\n\n if (draggable) return <DraggablePill {...props} />\n return <StaticPill {...props} />\n}\n"],"names":["LinkWithDefault","Link","default","React","useDraggableSortable","baseClass","DraggablePill","props","id","className","attributes","isDragging","listeners","setNodeRef","transform","StaticPill","filter","Boolean","join","elementProps","ref","style","alignIcon","ariaChecked","ariaControls","ariaExpanded","ariaLabel","children","draggable","icon","onClick","pillStyle","rounded","to","classes","Element","aria-checked","aria-controls","aria-expanded","aria-label","href","type","undefined","span","Pill"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAGA,OAAOA,qBAAqB,eAAc;AAC1C,MAAMC,OAAOD,gBAAgBE,OAAO;AACpC,OAAOC,WAAW,QAAO,CAAC,iDAAiD;AAgC3E,SAASC,oBAAoB,QAAQ,qDAAoD;AAGzF,MAAMC,YAAY;AAElB,MAAMC,gBAAqC,CAACC;IAC1C,MAAM,EAAEC,EAAE,EAAEC,SAAS,EAAE,GAAGF;IAE1B,MAAM,EAAEG,UAAU,EAAEC,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGV,qBAAqB;QACxFI;IACF;IAEA,qBACE,oBAACO;QACE,GAAGR,KAAK;QACTE,WAAW;YAACE,cAAc,CAAC,EAAEN,UAAU,aAAa,CAAC;YAAEI;SAAU,CAACO,MAAM,CAACC,SAASC,IAAI,CAAC;QACvFC,cAAc;YACZ,GAAGP,SAAS;YACZ,GAAGF,UAAU;YACbU,KAAKP;YACLQ,OAAO;gBACLP;YACF;QACF;;AAGN;AAEA,MAAMC,aAAkC,CAACR;IACvC,MAAM,EACJe,YAAY,OAAO,EACnB,gBAAgBC,WAAW,EAC3B,iBAAiBC,YAAY,EAC7B,iBAAiBC,YAAY,EAC7B,cAAcC,SAAS,EACvBC,QAAQ,EACRlB,SAAS,EACTmB,SAAS,EACTT,YAAY,EACZU,IAAI,EACJC,OAAO,EACPC,YAAY,OAAO,EACnBC,OAAO,EACPC,EAAE,EACH,GAAG1B;IAEJ,MAAM2B,UAAU;QACd7B;QACA,CAAC,EAAEA,UAAU,QAAQ,EAAE0B,UAAU,CAAC;QAClCtB,aAAaA;QACbwB,MAAM,CAAC,EAAE5B,UAAU,UAAU,CAAC;QAC7B4B,CAAAA,MAAMH,OAAM,KAAM,CAAC,EAAEzB,UAAU,YAAY,CAAC;QAC7CwB,QAAQ,CAAC,EAAExB,UAAU,UAAU,CAAC;QAChCwB,QAAQ,CAAC,EAAExB,UAAU,aAAa,EAAEiB,UAAU,CAAC;QAC/CM,aAAa,CAAC,EAAEvB,UAAU,WAAW,CAAC;QACtC2B,WAAW,CAAC,EAAE3B,UAAU,SAAS,CAAC;KACnC,CACEW,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,IAAIiB,UAAqD;IAEzD,IAAIL,WAAW,CAACG,IAAIE,UAAU;IAC9B,IAAIF,IAAIE,UAAUlC;IAElB,qBACE,oBAACkC;QACE,GAAGhB,YAAY;QAChBiB,gBAAcb;QACdc,iBAAeb;QACfc,iBAAeb;QACfc,cAAYb;QACZjB,WAAWyB;QACXM,MAAMP,MAAM;QACZH,SAASA;QACTW,MAAMN,YAAY,WAAW,WAAWO;OAEvCb,QAAQP,cAAc,wBAAU,oBAACqB;QAAKlC,WAAW,CAAC,EAAEJ,UAAU,MAAM,CAAC;OAAGwB,qBACzE,oBAACc;QAAKlC,WAAW,CAAC,EAAEJ,UAAU,OAAO,CAAC;OAAGsB,WACxCE,QAAQP,cAAc,yBAAW,oBAACqB;QAAKlC,WAAW,CAAC,EAAEJ,UAAU,MAAM,CAAC;OAAGwB;AAGhF;AAEA,OAAO,MAAMe,OAA4B,CAACrC;IACxC,MAAM,EAAEqB,SAAS,EAAE,GAAGrB;IAEtB,IAAIqB,WAAW,qBAAO,oBAACtB,eAAkBC;IACzC,qBAAO,oBAACQ,YAAeR;AACzB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/ClearIndicator/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AAGvD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAU1E,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/ClearIndicator/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AAGvD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAuB1E,CAAA"}
@@ -2,11 +2,19 @@ import React from 'react';
2
2
  import { X } from '../../../icons/X/index.js';
3
3
  const baseClass = 'clear-indicator';
4
4
  export const ClearIndicator = (props)=>{
5
- const { innerProps: { ref, ...restInnerProps } } = props;
5
+ const { clearValue, innerProps: { ref, ...restInnerProps } } = props;
6
6
  return /*#__PURE__*/ React.createElement("div", {
7
7
  className: baseClass,
8
8
  ref: ref,
9
- ...restInnerProps
9
+ ...restInnerProps,
10
+ onKeyDown: (e)=>{
11
+ if (e.key === 'Enter') {
12
+ clearValue();
13
+ e.stopPropagation();
14
+ }
15
+ },
16
+ role: "button",
17
+ tabIndex: 0
10
18
  }, /*#__PURE__*/ React.createElement(X, {
11
19
  className: `${baseClass}__icon`
12
20
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/ReactSelect/ClearIndicator/index.tsx"],"sourcesContent":["import type { ClearIndicatorProps } from 'react-select'\n\nimport React from 'react'\n\nimport type { Option as OptionType } from '../types.js'\n\nimport { X } from '../../../icons/X/index.js'\nimport './index.scss'\n\nconst baseClass = 'clear-indicator'\n\nexport const ClearIndicator: React.FC<ClearIndicatorProps<OptionType, true>> = (props) => {\n const {\n innerProps: { ref, ...restInnerProps },\n } = props\n\n return (\n <div className={baseClass} ref={ref} {...restInnerProps}>\n <X className={`${baseClass}__icon`} />\n </div>\n )\n}\n"],"names":["React","X","baseClass","ClearIndicator","props","innerProps","ref","restInnerProps","div","className"],"rangeMappings":";;;;;;;;;;;;","mappings":"AAEA,OAAOA,WAAW,QAAO;AAIzB,SAASC,CAAC,QAAQ,4BAA2B;AAG7C,MAAMC,YAAY;AAElB,OAAO,MAAMC,iBAAkE,CAACC;IAC9E,MAAM,EACJC,YAAY,EAAEC,GAAG,EAAE,GAAGC,gBAAgB,EACvC,GAAGH;IAEJ,qBACE,oBAACI;QAAIC,WAAWP;QAAWI,KAAKA;QAAM,GAAGC,cAAc;qBACrD,oBAACN;QAAEQ,WAAW,CAAC,EAAEP,UAAU,MAAM,CAAC;;AAGxC,EAAC"}
1
+ {"version":3,"sources":["../../../../src/elements/ReactSelect/ClearIndicator/index.tsx"],"sourcesContent":["import type { ClearIndicatorProps } from 'react-select'\n\nimport React from 'react'\n\nimport type { Option as OptionType } from '../types.js'\n\nimport { X } from '../../../icons/X/index.js'\nimport './index.scss'\n\nconst baseClass = 'clear-indicator'\n\nexport const ClearIndicator: React.FC<ClearIndicatorProps<OptionType, true>> = (props) => {\n const {\n clearValue,\n innerProps: { ref, ...restInnerProps },\n } = props\n\n return (\n <div\n className={baseClass}\n ref={ref}\n {...restInnerProps}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n clearValue()\n e.stopPropagation()\n }\n }}\n role=\"button\"\n tabIndex={0}\n >\n <X className={`${baseClass}__icon`} />\n </div>\n )\n}\n"],"names":["React","X","baseClass","ClearIndicator","props","clearValue","innerProps","ref","restInnerProps","div","className","onKeyDown","e","key","stopPropagation","role","tabIndex"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,WAAW,QAAO;AAIzB,SAASC,CAAC,QAAQ,4BAA2B;AAG7C,MAAMC,YAAY;AAElB,OAAO,MAAMC,iBAAkE,CAACC;IAC9E,MAAM,EACJC,UAAU,EACVC,YAAY,EAAEC,GAAG,EAAE,GAAGC,gBAAgB,EACvC,GAAGJ;IAEJ,qBACE,oBAACK;QACCC,WAAWR;QACXK,KAAKA;QACJ,GAAGC,cAAc;QAClBG,WAAW,CAACC;YACV,IAAIA,EAAEC,GAAG,KAAK,SAAS;gBACrBR;gBACAO,EAAEE,eAAe;YACnB;QACF;QACAC,MAAK;QACLC,UAAU;qBAEV,oBAACf;QAAES,WAAW,CAAC,EAAER,UAAU,MAAM,CAAC;;AAGxC,EAAC"}
@@ -2,4 +2,8 @@
2
2
 
3
3
  .clear-indicator {
4
4
  cursor: pointer;
5
+
6
+ &:focus-visible {
7
+ outline: var(--accessibility-outline);
8
+ }
5
9
  }
@@ -0,0 +1,8 @@
1
+ import type { DropdownIndicatorProps } from 'react-select';
2
+ import React from 'react';
3
+ import type { Option as OptionType } from '../types.js';
4
+ import './index.scss';
5
+ export declare const DropdownIndicator: React.FC<DropdownIndicatorProps<OptionType, true> & {
6
+ innerProps: JSX.IntrinsicElements['button'];
7
+ }>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/DropdownIndicator/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAG1D,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AAEvD,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CACtC,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG;IACzC,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CAC5C,CAmBF,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { Chevron } from '@payloadcms/ui/icons/Chevron';
2
+ import React from 'react';
3
+ const baseClass = 'dropdown-indicator';
4
+ export const DropdownIndicator = (props)=>{
5
+ const { innerProps: { ref, ...restInnerProps } } = props;
6
+ return /*#__PURE__*/ React.createElement("button", {
7
+ className: baseClass,
8
+ ref: ref,
9
+ ...restInnerProps,
10
+ onKeyDown: (e)=>{
11
+ if (e.key === 'Enter') e.key = ' ';
12
+ },
13
+ type: "button"
14
+ }, /*#__PURE__*/ React.createElement(Chevron, {
15
+ className: `${baseClass}__icon`
16
+ }));
17
+ };
18
+
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/elements/ReactSelect/DropdownIndicator/index.tsx"],"sourcesContent":["import type { DropdownIndicatorProps } from 'react-select'\n\nimport { Chevron } from '@payloadcms/ui/icons/Chevron'\nimport React from 'react'\n\nimport type { Option as OptionType } from '../types.js'\n\nimport './index.scss'\n\nconst baseClass = 'dropdown-indicator'\nexport const DropdownIndicator: React.FC<\n DropdownIndicatorProps<OptionType, true> & {\n innerProps: JSX.IntrinsicElements['button']\n }\n> = (props) => {\n const {\n innerProps: { ref, ...restInnerProps },\n } = props\n\n return (\n <button\n className={baseClass}\n ref={ref}\n {...restInnerProps}\n onKeyDown={(e) => {\n if (e.key === 'Enter') e.key = ' '\n }}\n type=\"button\"\n >\n <Chevron className={`${baseClass}__icon`} />\n </button>\n )\n}\n"],"names":["Chevron","React","baseClass","DropdownIndicator","props","innerProps","ref","restInnerProps","button","className","onKeyDown","e","key","type"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,OAAO,QAAQ,+BAA8B;AACtD,OAAOC,WAAW,QAAO;AAMzB,MAAMC,YAAY;AAClB,OAAO,MAAMC,oBAIT,CAACC;IACH,MAAM,EACJC,YAAY,EAAEC,GAAG,EAAE,GAAGC,gBAAgB,EACvC,GAAGH;IAEJ,qBACE,oBAACI;QACCC,WAAWP;QACXI,KAAKA;QACJ,GAAGC,cAAc;QAClBG,WAAW,CAACC;YACV,IAAIA,EAAEC,GAAG,KAAK,SAASD,EAAEC,GAAG,GAAG;QACjC;QACAC,MAAK;qBAEL,oBAACb;QAAQS,WAAW,CAAC,EAAEP,UAAU,MAAM,CAAC;;AAG9C,EAAC"}
@@ -0,0 +1,16 @@
1
+ @import '../../../scss/styles.scss';
2
+
3
+ .dropdown-indicator {
4
+ cursor: pointer;
5
+ @include btn-reset;
6
+
7
+ &:focus-visible {
8
+ outline: var(--accessibility-outline);
9
+ }
10
+
11
+ &__icon {
12
+ .stroke {
13
+ stroke-width: 1px;
14
+ }
15
+ }
16
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/MultiValue/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CA6CxD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/MultiValue/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CA8CxD,CAAA"}
@@ -1,13 +1,12 @@
1
1
  import React from 'react';
2
2
  import { components as SelectComponents } from 'react-select';
3
- import { v4 as uuid } from 'uuid';
4
3
  import { useDraggableSortable } from '../../DraggableSortable/useDraggableSortable/index.js';
5
4
  const baseClass = 'multi-value';
6
5
  export const MultiValue = (props)=>{
7
6
  const { className, data: { value }, innerProps, isDisabled, // @ts-expect-error // TODO Fix this - moduleResolution 16 breaks our declare module
8
7
  selectProps: { customProps: { disableMouseDown } = {}, isSortable } = {} } = props;
9
8
  const { attributes, isDragging, listeners, setNodeRef, transform } = useDraggableSortable({
10
- id: typeof value === 'object' && 'path' in value ? String(value.path) : uuid(),
9
+ id: typeof value === 'string' && value.toString(),
11
10
  disabled: !isSortable
12
11
  });
13
12
  const classes = [
@@ -31,7 +30,8 @@ export const MultiValue = (props)=>{
31
30
  },
32
31
  ref: setNodeRef,
33
32
  style: {
34
- transform
33
+ transform,
34
+ ...attributes?.style
35
35
  }
36
36
  }
37
37
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/ReactSelect/MultiValue/index.tsx"],"sourcesContent":["import type { MultiValueProps } from 'react-select'\n\nimport React from 'react'\nimport { components as SelectComponents } from 'react-select'\nimport { v4 as uuid } from 'uuid'\n\nimport type { Option } from '../types.js'\n\nimport { useDraggableSortable } from '../../DraggableSortable/useDraggableSortable/index.js'\nimport './index.scss'\n\nconst baseClass = 'multi-value'\nexport const MultiValue: React.FC<MultiValueProps<Option>> = (props) => {\n const {\n className,\n data: { value },\n innerProps,\n isDisabled,\n // @ts-expect-error // TODO Fix this - moduleResolution 16 breaks our declare module\n selectProps: { customProps: { disableMouseDown } = {}, isSortable } = {},\n } = props\n\n const { attributes, isDragging, listeners, setNodeRef, transform } = useDraggableSortable({\n id: typeof value === 'object' && 'path' in value ? String(value.path) : uuid(),\n disabled: !isSortable,\n })\n\n const classes = [\n baseClass,\n className,\n !isDisabled && 'draggable',\n isDragging && `${baseClass}--is-dragging`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <SelectComponents.MultiValue\n {...props}\n className={classes}\n innerProps={{\n ...innerProps,\n ...attributes,\n ...listeners,\n onMouseDown: (e) => {\n if (!disableMouseDown) {\n // we need to prevent the dropdown from opening when clicking on the drag handle, but not when a modal is open (i.e. the 'Relationship' field component)\n e.stopPropagation()\n }\n },\n ref: setNodeRef,\n style: {\n transform,\n },\n }}\n />\n )\n}\n"],"names":["React","components","SelectComponents","v4","uuid","useDraggableSortable","baseClass","MultiValue","props","className","data","value","innerProps","isDisabled","selectProps","customProps","disableMouseDown","isSortable","attributes","isDragging","listeners","setNodeRef","transform","id","String","path","disabled","classes","filter","Boolean","join","onMouseDown","e","stopPropagation","ref","style"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,WAAW,QAAO;AACzB,SAASC,cAAcC,gBAAgB,QAAQ,eAAc;AAC7D,SAASC,MAAMC,IAAI,QAAQ,OAAM;AAIjC,SAASC,oBAAoB,QAAQ,wDAAuD;AAG5F,MAAMC,YAAY;AAClB,OAAO,MAAMC,aAAgD,CAACC;IAC5D,MAAM,EACJC,SAAS,EACTC,MAAM,EAAEC,KAAK,EAAE,EACfC,UAAU,EACVC,UAAU,EACV,oFAAoF;IACpFC,aAAa,EAAEC,aAAa,EAAEC,gBAAgB,EAAE,GAAG,CAAC,CAAC,EAAEC,UAAU,EAAE,GAAG,CAAC,CAAC,EACzE,GAAGT;IAEJ,MAAM,EAAEU,UAAU,EAAEC,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGjB,qBAAqB;QACxFkB,IAAI,OAAOZ,UAAU,YAAY,UAAUA,QAAQa,OAAOb,MAAMc,IAAI,IAAIrB;QACxEsB,UAAU,CAACT;IACb;IAEA,MAAMU,UAAU;QACdrB;QACAG;QACA,CAACI,cAAc;QACfM,cAAc,CAAC,EAAEb,UAAU,aAAa,CAAC;KAC1C,CACEsB,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,qBACE,oBAAC5B,iBAAiBK,UAAU;QACzB,GAAGC,KAAK;QACTC,WAAWkB;QACXf,YAAY;YACV,GAAGA,UAAU;YACb,GAAGM,UAAU;YACb,GAAGE,SAAS;YACZW,aAAa,CAACC;gBACZ,IAAI,CAAChB,kBAAkB;oBACrB,wJAAwJ;oBACxJgB,EAAEC,eAAe;gBACnB;YACF;YACAC,KAAKb;YACLc,OAAO;gBACLb;YACF;QACF;;AAGN,EAAC"}
1
+ {"version":3,"sources":["../../../../src/elements/ReactSelect/MultiValue/index.tsx"],"sourcesContent":["import type { MultiValueProps } from 'react-select'\n\nimport React from 'react'\nimport { components as SelectComponents } from 'react-select'\nimport { v4 as uuid } from 'uuid'\n\nimport type { Option } from '../types.js'\n\nimport { useDraggableSortable } from '../../DraggableSortable/useDraggableSortable/index.js'\nimport './index.scss'\n\nconst baseClass = 'multi-value'\nexport const MultiValue: React.FC<MultiValueProps<Option>> = (props) => {\n const {\n className,\n data: { value },\n innerProps,\n isDisabled,\n // @ts-expect-error // TODO Fix this - moduleResolution 16 breaks our declare module\n selectProps: { customProps: { disableMouseDown } = {}, isSortable } = {},\n } = props\n\n const { attributes, isDragging, listeners, setNodeRef, transform } = useDraggableSortable({\n id: typeof value === 'string' && value.toString(),\n disabled: !isSortable,\n })\n\n const classes = [\n baseClass,\n className,\n !isDisabled && 'draggable',\n isDragging && `${baseClass}--is-dragging`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <SelectComponents.MultiValue\n {...props}\n className={classes}\n innerProps={{\n ...innerProps,\n ...attributes,\n ...listeners,\n onMouseDown: (e) => {\n if (!disableMouseDown) {\n // we need to prevent the dropdown from opening when clicking on the drag handle, but not when a modal is open (i.e. the 'Relationship' field component)\n e.stopPropagation()\n }\n },\n ref: setNodeRef,\n style: {\n transform,\n ...attributes?.style,\n },\n }}\n />\n )\n}\n"],"names":["React","components","SelectComponents","useDraggableSortable","baseClass","MultiValue","props","className","data","value","innerProps","isDisabled","selectProps","customProps","disableMouseDown","isSortable","attributes","isDragging","listeners","setNodeRef","transform","id","toString","disabled","classes","filter","Boolean","join","onMouseDown","e","stopPropagation","ref","style"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,WAAW,QAAO;AACzB,SAASC,cAAcC,gBAAgB,QAAQ,eAAc;AAK7D,SAASC,oBAAoB,QAAQ,wDAAuD;AAG5F,MAAMC,YAAY;AAClB,OAAO,MAAMC,aAAgD,CAACC;IAC5D,MAAM,EACJC,SAAS,EACTC,MAAM,EAAEC,KAAK,EAAE,EACfC,UAAU,EACVC,UAAU,EACV,oFAAoF;IACpFC,aAAa,EAAEC,aAAa,EAAEC,gBAAgB,EAAE,GAAG,CAAC,CAAC,EAAEC,UAAU,EAAE,GAAG,CAAC,CAAC,EACzE,GAAGT;IAEJ,MAAM,EAAEU,UAAU,EAAEC,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGjB,qBAAqB;QACxFkB,IAAI,OAAOZ,UAAU,YAAYA,MAAMa,QAAQ;QAC/CC,UAAU,CAACR;IACb;IAEA,MAAMS,UAAU;QACdpB;QACAG;QACA,CAACI,cAAc;QACfM,cAAc,CAAC,EAAEb,UAAU,aAAa,CAAC;KAC1C,CACEqB,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,qBACE,oBAACzB,iBAAiBG,UAAU;QACzB,GAAGC,KAAK;QACTC,WAAWiB;QACXd,YAAY;YACV,GAAGA,UAAU;YACb,GAAGM,UAAU;YACb,GAAGE,SAAS;YACZU,aAAa,CAACC;gBACZ,IAAI,CAACf,kBAAkB;oBACrB,wJAAwJ;oBACxJe,EAAEC,eAAe;gBACnB;YACF;YACAC,KAAKZ;YACLa,OAAO;gBACLZ;gBACA,GAAGJ,YAAYgB,KAAK;YACtB;QACF;;AAGN,EAAC"}
@@ -13,4 +13,8 @@
13
13
  overflow: hidden;
14
14
  white-space: nowrap;
15
15
  }
16
+
17
+ &:focus-visible {
18
+ outline: var(--accessibility-outline);
19
+ }
16
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/MultiValueRemove/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEzD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CACrC,qBAAqB,CAAC,UAAU,CAAC,GAAG;IAClC,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CAC5C,CA4BF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/MultiValueRemove/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEzD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CACrC,qBAAqB,CAAC,UAAU,CAAC,GAAG;IAClC,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CAC5C,CAkCF,CAAA"}
@@ -17,6 +17,12 @@ export const MultiValueRemove = (props)=>{
17
17
  setShowTooltip(false);
18
18
  onClick(e);
19
19
  },
20
+ onKeyDown: (e)=>{
21
+ if (e.key === 'Enter') {
22
+ e.stopPropagation();
23
+ }
24
+ },
25
+ onMouseDown: (e)=>e.stopPropagation(),
20
26
  onMouseEnter: ()=>setShowTooltip(true),
21
27
  onMouseLeave: ()=>setShowTooltip(false),
22
28
  onTouchEnd: onTouchEnd,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/ReactSelect/MultiValueRemove/index.tsx"],"sourcesContent":["import type { MultiValueRemoveProps } from 'react-select'\n\nimport React from 'react'\n\nimport type { Option as OptionType } from '../types.js'\n\nimport { X } from '../../../icons/X/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Tooltip } from '../../Tooltip/index.js'\nimport './index.scss'\n\nconst baseClass = 'multi-value-remove'\n\nexport const MultiValueRemove: React.FC<\n MultiValueRemoveProps<OptionType> & {\n innerProps: JSX.IntrinsicElements['button']\n }\n> = (props) => {\n const {\n innerProps: { className, onClick, onTouchEnd },\n } = props\n\n const [showTooltip, setShowTooltip] = React.useState(false)\n const { t } = useTranslation()\n\n return (\n <button\n aria-label={t('general:remove')}\n className={[baseClass, className].filter(Boolean).join(' ')}\n onClick={(e) => {\n setShowTooltip(false)\n onClick(e)\n }}\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n onTouchEnd={onTouchEnd}\n type=\"button\"\n >\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {t('general:remove')}\n </Tooltip>\n <X className={`${baseClass}__icon`} />\n </button>\n )\n}\n"],"names":["React","X","useTranslation","Tooltip","baseClass","MultiValueRemove","props","innerProps","className","onClick","onTouchEnd","showTooltip","setShowTooltip","useState","t","button","aria-label","filter","Boolean","join","e","onMouseEnter","onMouseLeave","type","show"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,WAAW,QAAO;AAIzB,SAASC,CAAC,QAAQ,4BAA2B;AAC7C,SAASC,cAAc,QAAQ,0CAAyC;AACxE,SAASC,OAAO,QAAQ,yBAAwB;AAGhD,MAAMC,YAAY;AAElB,OAAO,MAAMC,mBAIT,CAACC;IACH,MAAM,EACJC,YAAY,EAAEC,SAAS,EAAEC,OAAO,EAAEC,UAAU,EAAE,EAC/C,GAAGJ;IAEJ,MAAM,CAACK,aAAaC,eAAe,GAAGZ,MAAMa,QAAQ,CAAC;IACrD,MAAM,EAAEC,CAAC,EAAE,GAAGZ;IAEd,qBACE,oBAACa;QACCC,cAAYF,EAAE;QACdN,WAAW;YAACJ;YAAWI;SAAU,CAACS,MAAM,CAACC,SAASC,IAAI,CAAC;QACvDV,SAAS,CAACW;YACRR,eAAe;YACfH,QAAQW;QACV;QACAC,cAAc,IAAMT,eAAe;QACnCU,cAAc,IAAMV,eAAe;QACnCF,YAAYA;QACZa,MAAK;qBAEL,oBAACpB;QAAQK,WAAW,CAAC,EAAEJ,UAAU,SAAS,CAAC;QAAEoB,MAAMb;OAChDG,EAAE,kCAEL,oBAACb;QAAEO,WAAW,CAAC,EAAEJ,UAAU,MAAM,CAAC;;AAGxC,EAAC"}
1
+ {"version":3,"sources":["../../../../src/elements/ReactSelect/MultiValueRemove/index.tsx"],"sourcesContent":["import type { MultiValueRemoveProps } from 'react-select'\n\nimport React from 'react'\n\nimport type { Option as OptionType } from '../types.js'\n\nimport { X } from '../../../icons/X/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Tooltip } from '../../Tooltip/index.js'\nimport './index.scss'\n\nconst baseClass = 'multi-value-remove'\n\nexport const MultiValueRemove: React.FC<\n MultiValueRemoveProps<OptionType> & {\n innerProps: JSX.IntrinsicElements['button']\n }\n> = (props) => {\n const {\n innerProps: { className, onClick, onTouchEnd },\n } = props\n\n const [showTooltip, setShowTooltip] = React.useState(false)\n const { t } = useTranslation()\n\n return (\n <button\n aria-label={t('general:remove')}\n className={[baseClass, className].filter(Boolean).join(' ')}\n onClick={(e) => {\n setShowTooltip(false)\n onClick(e)\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.stopPropagation()\n }\n }}\n onMouseDown={(e) => e.stopPropagation()}\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n onTouchEnd={onTouchEnd}\n type=\"button\"\n >\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {t('general:remove')}\n </Tooltip>\n <X className={`${baseClass}__icon`} />\n </button>\n )\n}\n"],"names":["React","X","useTranslation","Tooltip","baseClass","MultiValueRemove","props","innerProps","className","onClick","onTouchEnd","showTooltip","setShowTooltip","useState","t","button","aria-label","filter","Boolean","join","e","onKeyDown","key","stopPropagation","onMouseDown","onMouseEnter","onMouseLeave","type","show"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,WAAW,QAAO;AAIzB,SAASC,CAAC,QAAQ,4BAA2B;AAC7C,SAASC,cAAc,QAAQ,0CAAyC;AACxE,SAASC,OAAO,QAAQ,yBAAwB;AAGhD,MAAMC,YAAY;AAElB,OAAO,MAAMC,mBAIT,CAACC;IACH,MAAM,EACJC,YAAY,EAAEC,SAAS,EAAEC,OAAO,EAAEC,UAAU,EAAE,EAC/C,GAAGJ;IAEJ,MAAM,CAACK,aAAaC,eAAe,GAAGZ,MAAMa,QAAQ,CAAC;IACrD,MAAM,EAAEC,CAAC,EAAE,GAAGZ;IAEd,qBACE,oBAACa;QACCC,cAAYF,EAAE;QACdN,WAAW;YAACJ;YAAWI;SAAU,CAACS,MAAM,CAACC,SAASC,IAAI,CAAC;QACvDV,SAAS,CAACW;YACRR,eAAe;YACfH,QAAQW;QACV;QACAC,WAAW,CAACD;YACV,IAAIA,EAAEE,GAAG,KAAK,SAAS;gBACrBF,EAAEG,eAAe;YACnB;QACF;QACAC,aAAa,CAACJ,IAAMA,EAAEG,eAAe;QACrCE,cAAc,IAAMb,eAAe;QACnCc,cAAc,IAAMd,eAAe;QACnCF,YAAYA;QACZiB,MAAK;qBAEL,oBAACxB;QAAQK,WAAW,CAAC,EAAEJ,UAAU,SAAS,CAAC;QAAEwB,MAAMjB;OAChDG,EAAE,kCAEL,oBAACb;QAAEO,WAAW,CAAC,EAAEJ,UAAU,MAAM,CAAC;;AAGxC,EAAC"}
@@ -4,11 +4,11 @@ import { getTranslation } from '@payloadcms/translations';
4
4
  import React from 'react';
5
5
  import Select from 'react-select';
6
6
  import CreatableSelect from 'react-select/creatable';
7
- import { Chevron } from '../../icons/Chevron/index.js';
8
7
  import { useTranslation } from '../../providers/Translation/index.js';
9
8
  import { DraggableSortable } from '../DraggableSortable/index.js';
10
9
  import { ClearIndicator } from './ClearIndicator/index.js';
11
10
  import { Control } from './Control/index.js';
11
+ import { DropdownIndicator } from './DropdownIndicator/index.js';
12
12
  import { MultiValue } from './MultiValue/index.js';
13
13
  import { MultiValueLabel } from './MultiValueLabel/index.js';
14
14
  import { MultiValueRemove } from './MultiValueRemove/index.js';
@@ -41,7 +41,7 @@ const SelectAdapter = (props)=>{
41
41
  components: {
42
42
  ClearIndicator,
43
43
  Control,
44
- DropdownIndicator: Chevron,
44
+ DropdownIndicator,
45
45
  MultiValue,
46
46
  MultiValueLabel,
47
47
  MultiValueRemove,
@@ -112,7 +112,7 @@ const SelectAdapter = (props)=>{
112
112
  components: {
113
113
  ClearIndicator,
114
114
  Control,
115
- DropdownIndicator: Chevron,
115
+ DropdownIndicator,
116
116
  MultiValue,
117
117
  MultiValueLabel,
118
118
  MultiValueRemove,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\nimport Select from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option } from './types.js'\nimport type { Props as ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { Chevron } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { MultiValue } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\nimport './index.scss'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator: Chevron,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n // eslint-disable-next-line no-restricted-globals\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') return\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator: Chevron,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { onChange, value } = props\n\n let ids: string[] = []\n if (value)\n ids = Array.isArray(value)\n ? value.map((item) => item?.id ?? `${item?.value}`)\n : [value?.id || `${value?.value}`]\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={ids}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"names":["arrayMove","getTranslation","React","Select","CreatableSelect","Chevron","useTranslation","DraggableSortable","ClearIndicator","Control","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","captureMenuScroll","classNamePrefix","DropdownIndicator","isDisabled","menuPlacement","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","ids","Array","isArray","map","item","id","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\nimport Select from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option } from './types.js'\nimport type { Props as ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport { MultiValue } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\nimport './index.scss'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n // eslint-disable-next-line no-restricted-globals\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') return\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { onChange, value } = props\n\n let ids: string[] = []\n if (value)\n ids = Array.isArray(value)\n ? value.map((item) => item?.id ?? `${item?.value}`)\n : [value?.id || `${value?.value}`]\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={ids}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"names":["arrayMove","getTranslation","React","Select","CreatableSelect","useTranslation","DraggableSortable","ClearIndicator","Control","DropdownIndicator","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","captureMenuScroll","classNamePrefix","isDisabled","menuPlacement","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","ids","Array","isArray","map","item","id","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -32,7 +32,7 @@
32
32
  }
33
33
 
34
34
  .rs__menu {
35
- z-index: 2;
35
+ z-index: 4;
36
36
  border-radius: 0;
37
37
  @include shadow-lg;
38
38
  background: var(--theme-input-bg);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StepNav/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAGnD,OAAO,KAAwD,MAAM,OAAO,CAAA;AAK5E,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACtD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IAC1C,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB,CAAA;AAMD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAa7D,CAAA;AAED,QAAA,MAAM,UAAU,QAAO,WAAkC,CAAA;AAEzD,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAoDA,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StepNav/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAInD,OAAO,KAAwD,MAAM,OAAO,CAAA;AAK5E,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACtD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IAC1C,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB,CAAA;AAMD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAa7D,CAAA;AAED,QAAA,MAAM,UAAU,QAAO,WAAkC,CAAA;AAEzD,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CA4DA,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,CAAA"}
@@ -1,7 +1,8 @@
1
1
  'use client';
2
2
  import { getTranslation } from '@payloadcms/translations';
3
+ import { useComponentMap } from '@payloadcms/ui/providers/ComponentMap';
3
4
  import React, { Fragment, createContext, useContext, useState } from 'react';
4
- import { Icon } from '../../graphics/Icon/index.js';
5
+ import { PayloadIcon } from '../../graphics/Icon/index.js';
5
6
  import { useConfig } from '../../providers/Config/index.js';
6
7
  import { useTranslation } from '../../providers/Translation/index.js';
7
8
  export { SetStepNav } from './SetStepNav.js';
@@ -22,6 +23,9 @@ const StepNav = ({ Link, className })=>{
22
23
  const { stepNav } = useStepNav();
23
24
  const config = useConfig();
24
25
  const { routes: { admin } } = config;
26
+ const { componentMap } = useComponentMap();
27
+ const { t } = useTranslation();
28
+ const Icon = componentMap?.Icon || /*#__PURE__*/ React.createElement(PayloadIcon, null);
25
29
  const LinkElement = Link || 'a';
26
30
  return /*#__PURE__*/ React.createElement(Fragment, null, stepNav.length > 0 ? /*#__PURE__*/ React.createElement("nav", {
27
31
  className: [
@@ -32,7 +36,9 @@ const StepNav = ({ Link, className })=>{
32
36
  className: `${baseClass}__home`,
33
37
  href: admin,
34
38
  tabIndex: 0
35
- }, /*#__PURE__*/ React.createElement(Icon, null)), /*#__PURE__*/ React.createElement("span", null, "/"), stepNav.map((item, i)=>{
39
+ }, /*#__PURE__*/ React.createElement("span", {
40
+ title: t('general:dashboard')
41
+ }, Icon)), /*#__PURE__*/ React.createElement("span", null, "/"), stepNav.map((item, i)=>{
36
42
  const StepLabel = getTranslation(item.label, i18n);
37
43
  const isLast = stepNav.length === i + 1;
38
44
  const Step = isLast ? /*#__PURE__*/ React.createElement("span", {
@@ -53,7 +59,11 @@ const StepNav = ({ Link, className })=>{
53
59
  baseClass,
54
60
  className
55
61
  ].filter(Boolean).join(' ')
56
- }, /*#__PURE__*/ React.createElement(Icon, null)));
62
+ }, /*#__PURE__*/ React.createElement("div", {
63
+ className: `${baseClass}__home`
64
+ }, /*#__PURE__*/ React.createElement("span", {
65
+ title: t('general:dashboard')
66
+ }, Icon))));
57
67
  };
58
68
  export { StepNav, StepNavProvider, useStepNav };
59
69
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/StepNav/index.tsx"],"sourcesContent":["'use client'\nimport type { LabelFunction } from 'payload/config'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, createContext, useContext, useState } from 'react'\n\nimport { Icon } from '../../graphics/Icon/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nexport { SetStepNav } from './SetStepNav.js'\n\nexport type StepNavItem = {\n label: LabelFunction | Record<string, string> | string\n url?: string\n}\n\nexport type ContextType = {\n setStepNav: (items: StepNavItem[]) => void\n stepNav: StepNavItem[]\n}\n\nconst baseClass = 'step-nav'\n\nconst Context = createContext({} as ContextType)\n\nconst StepNavProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const [stepNav, setStepNav] = useState([])\n\n return (\n <Context.Provider\n value={{\n setStepNav,\n stepNav,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nconst useStepNav = (): ContextType => useContext(Context)\n\nconst StepNav: React.FC<{\n Link?: React.ComponentType\n className?: string\n}> = ({ Link, className }) => {\n const { i18n } = useTranslation()\n\n const { stepNav } = useStepNav()\n\n const config = useConfig()\n\n const {\n routes: { admin },\n } = config\n\n const LinkElement = Link || 'a'\n\n return (\n <Fragment>\n {stepNav.length > 0 ? (\n <nav className={[baseClass, className].filter(Boolean).join(' ')}>\n <LinkElement className={`${baseClass}__home`} href={admin} tabIndex={0}>\n <Icon />\n </LinkElement>\n <span>/</span>\n {stepNav.map((item, i) => {\n const StepLabel = getTranslation(item.label, i18n)\n const isLast = stepNav.length === i + 1\n\n const Step = isLast ? (\n <span className={`${baseClass}__last`} key={i}>\n {StepLabel}\n </span>\n ) : (\n <Fragment key={i}>\n {item.url ? (\n <LinkElement href={item.url}>\n <span key={i}>{StepLabel}</span>\n </LinkElement>\n ) : (\n <span key={i}>{StepLabel}</span>\n )}\n <span>/</span>\n </Fragment>\n )\n\n return Step\n })}\n </nav>\n ) : (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Icon />\n </div>\n )}\n </Fragment>\n )\n}\n\nexport { StepNav, StepNavProvider, useStepNav }\n"],"names":["getTranslation","React","Fragment","createContext","useContext","useState","Icon","useConfig","useTranslation","SetStepNav","baseClass","Context","StepNavProvider","children","stepNav","setStepNav","Provider","value","useStepNav","StepNav","Link","className","i18n","config","routes","admin","LinkElement","length","nav","filter","Boolean","join","href","tabIndex","span","map","item","i","StepLabel","label","isLast","Step","key","url","div"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,SAASC,QAAQ,EAAEC,aAAa,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,QAAO;AAE5E,SAASC,IAAI,QAAQ,+BAA8B;AACnD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AAGrE,SAASC,UAAU,QAAQ,kBAAiB;AAY5C,MAAMC,YAAY;AAElB,MAAMC,wBAAUR,cAAc,CAAC;AAE/B,MAAMS,kBAA4D,CAAC,EAAEC,QAAQ,EAAE;IAC7E,MAAM,CAACC,SAASC,WAAW,GAAGV,SAAS,EAAE;IAEzC,qBACE,oBAACM,QAAQK,QAAQ;QACfC,OAAO;YACLF;YACAD;QACF;OAECD;AAGP;AAEA,MAAMK,aAAa,IAAmBd,WAAWO;AAEjD,MAAMQ,UAGD,CAAC,EAAEC,IAAI,EAAEC,SAAS,EAAE;IACvB,MAAM,EAAEC,IAAI,EAAE,GAAGd;IAEjB,MAAM,EAAEM,OAAO,EAAE,GAAGI;IAEpB,MAAMK,SAAShB;IAEf,MAAM,EACJiB,QAAQ,EAAEC,KAAK,EAAE,EAClB,GAAGF;IAEJ,MAAMG,cAAcN,QAAQ;IAE5B,qBACE,oBAAClB,gBACEY,QAAQa,MAAM,GAAG,kBAChB,oBAACC;QAAIP,WAAW;YAACX;YAAWW;SAAU,CAACQ,MAAM,CAACC,SAASC,IAAI,CAAC;qBAC1D,oBAACL;QAAYL,WAAW,CAAC,EAAEX,UAAU,MAAM,CAAC;QAAEsB,MAAMP;QAAOQ,UAAU;qBACnE,oBAAC3B,4BAEH,oBAAC4B,cAAK,MACLpB,QAAQqB,GAAG,CAAC,CAACC,MAAMC;QAClB,MAAMC,YAAYtC,eAAeoC,KAAKG,KAAK,EAAEjB;QAC7C,MAAMkB,SAAS1B,QAAQa,MAAM,KAAKU,IAAI;QAEtC,MAAMI,OAAOD,uBACX,oBAACN;YAAKb,WAAW,CAAC,EAAEX,UAAU,MAAM,CAAC;YAAEgC,KAAKL;WACzCC,2BAGH,oBAACpC;YAASwC,KAAKL;WACZD,KAAKO,GAAG,iBACP,oBAACjB;YAAYM,MAAMI,KAAKO,GAAG;yBACzB,oBAACT;YAAKQ,KAAKL;WAAIC,4BAGjB,oBAACJ;YAAKQ,KAAKL;WAAIC,0BAEjB,oBAACJ,cAAK;QAIV,OAAOO;IACT,oBAGF,oBAACG;QAAIvB,WAAW;YAACX;YAAWW;SAAU,CAACQ,MAAM,CAACC,SAASC,IAAI,CAAC;qBAC1D,oBAACzB;AAKX;AAEA,SAASa,OAAO,EAAEP,eAAe,EAAEM,UAAU,GAAE"}
1
+ {"version":3,"sources":["../../../src/elements/StepNav/index.tsx"],"sourcesContent":["'use client'\nimport type { LabelFunction } from 'payload/config'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport React, { Fragment, createContext, useContext, useState } from 'react'\n\nimport { PayloadIcon } from '../../graphics/Icon/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nexport { SetStepNav } from './SetStepNav.js'\n\nexport type StepNavItem = {\n label: LabelFunction | Record<string, string> | string\n url?: string\n}\n\nexport type ContextType = {\n setStepNav: (items: StepNavItem[]) => void\n stepNav: StepNavItem[]\n}\n\nconst baseClass = 'step-nav'\n\nconst Context = createContext({} as ContextType)\n\nconst StepNavProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const [stepNav, setStepNav] = useState([])\n\n return (\n <Context.Provider\n value={{\n setStepNav,\n stepNav,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nconst useStepNav = (): ContextType => useContext(Context)\n\nconst StepNav: React.FC<{\n Link?: React.ComponentType\n className?: string\n}> = ({ Link, className }) => {\n const { i18n } = useTranslation()\n\n const { stepNav } = useStepNav()\n\n const config = useConfig()\n\n const {\n routes: { admin },\n } = config\n\n const { componentMap } = useComponentMap()\n\n const { t } = useTranslation()\n\n const Icon = componentMap?.Icon || <PayloadIcon />\n\n const LinkElement = Link || 'a'\n\n return (\n <Fragment>\n {stepNav.length > 0 ? (\n <nav className={[baseClass, className].filter(Boolean).join(' ')}>\n <LinkElement className={`${baseClass}__home`} href={admin} tabIndex={0}>\n <span title={t('general:dashboard')}>{Icon}</span>\n </LinkElement>\n <span>/</span>\n {stepNav.map((item, i) => {\n const StepLabel = getTranslation(item.label, i18n)\n const isLast = stepNav.length === i + 1\n\n const Step = isLast ? (\n <span className={`${baseClass}__last`} key={i}>\n {StepLabel}\n </span>\n ) : (\n <Fragment key={i}>\n {item.url ? (\n <LinkElement href={item.url}>\n <span key={i}>{StepLabel}</span>\n </LinkElement>\n ) : (\n <span key={i}>{StepLabel}</span>\n )}\n <span>/</span>\n </Fragment>\n )\n\n return Step\n })}\n </nav>\n ) : (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__home`}>\n <span title={t('general:dashboard')}>{Icon}</span>\n </div>\n </div>\n )}\n </Fragment>\n )\n}\n\nexport { StepNav, StepNavProvider, useStepNav }\n"],"names":["getTranslation","useComponentMap","React","Fragment","createContext","useContext","useState","PayloadIcon","useConfig","useTranslation","SetStepNav","baseClass","Context","StepNavProvider","children","stepNav","setStepNav","Provider","value","useStepNav","StepNav","Link","className","i18n","config","routes","admin","componentMap","t","Icon","LinkElement","length","nav","filter","Boolean","join","href","tabIndex","span","title","map","item","i","StepLabel","label","isLast","Step","key","url","div"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,eAAe,QAAQ,wCAAuC;AACvE,OAAOC,SAASC,QAAQ,EAAEC,aAAa,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,QAAO;AAE5E,SAASC,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AAGrE,SAASC,UAAU,QAAQ,kBAAiB;AAY5C,MAAMC,YAAY;AAElB,MAAMC,wBAAUR,cAAc,CAAC;AAE/B,MAAMS,kBAA4D,CAAC,EAAEC,QAAQ,EAAE;IAC7E,MAAM,CAACC,SAASC,WAAW,GAAGV,SAAS,EAAE;IAEzC,qBACE,oBAACM,QAAQK,QAAQ;QACfC,OAAO;YACLF;YACAD;QACF;OAECD;AAGP;AAEA,MAAMK,aAAa,IAAmBd,WAAWO;AAEjD,MAAMQ,UAGD,CAAC,EAAEC,IAAI,EAAEC,SAAS,EAAE;IACvB,MAAM,EAAEC,IAAI,EAAE,GAAGd;IAEjB,MAAM,EAAEM,OAAO,EAAE,GAAGI;IAEpB,MAAMK,SAAShB;IAEf,MAAM,EACJiB,QAAQ,EAAEC,KAAK,EAAE,EAClB,GAAGF;IAEJ,MAAM,EAAEG,YAAY,EAAE,GAAG1B;IAEzB,MAAM,EAAE2B,CAAC,EAAE,GAAGnB;IAEd,MAAMoB,OAAOF,cAAcE,sBAAQ,oBAACtB;IAEpC,MAAMuB,cAAcT,QAAQ;IAE5B,qBACE,oBAAClB,gBACEY,QAAQgB,MAAM,GAAG,kBAChB,oBAACC;QAAIV,WAAW;YAACX;YAAWW;SAAU,CAACW,MAAM,CAACC,SAASC,IAAI,CAAC;qBAC1D,oBAACL;QAAYR,WAAW,CAAC,EAAEX,UAAU,MAAM,CAAC;QAAEyB,MAAMV;QAAOW,UAAU;qBACnE,oBAACC;QAAKC,OAAOX,EAAE;OAAuBC,sBAExC,oBAACS,cAAK,MACLvB,QAAQyB,GAAG,CAAC,CAACC,MAAMC;QAClB,MAAMC,YAAY3C,eAAeyC,KAAKG,KAAK,EAAErB;QAC7C,MAAMsB,SAAS9B,QAAQgB,MAAM,KAAKW,IAAI;QAEtC,MAAMI,OAAOD,uBACX,oBAACP;YAAKhB,WAAW,CAAC,EAAEX,UAAU,MAAM,CAAC;YAAEoC,KAAKL;WACzCC,2BAGH,oBAACxC;YAAS4C,KAAKL;WACZD,KAAKO,GAAG,iBACP,oBAAClB;YAAYM,MAAMK,KAAKO,GAAG;yBACzB,oBAACV;YAAKS,KAAKL;WAAIC,4BAGjB,oBAACL;YAAKS,KAAKL;WAAIC,0BAEjB,oBAACL,cAAK;QAIV,OAAOQ;IACT,oBAGF,oBAACG;QAAI3B,WAAW;YAACX;YAAWW;SAAU,CAACW,MAAM,CAACC,SAASC,IAAI,CAAC;qBAC1D,oBAACc;QAAI3B,WAAW,CAAC,EAAEX,UAAU,MAAM,CAAC;qBAClC,oBAAC2B;QAAKC,OAAOX,EAAE;OAAuBC;AAMlD;AAEA,SAAST,OAAO,EAAEP,eAAe,EAAEM,UAAU,GAAE"}
@@ -17,6 +17,8 @@
17
17
  // Use a pseudo element for the accessability so that it doesn't take up DOM space
18
18
  // Also because the parent element has `overflow: hidden` which would clip an outline
19
19
  &__home {
20
+ width: 18px;
21
+ height: 18px;
20
22
  position: relative;
21
23
 
22
24
  &:focus-visible {
@@ -63,6 +65,15 @@
63
65
  white-space: nowrap;
64
66
  }
65
67
 
68
+ @include mid-break {
69
+ .step-nav {
70
+ &__home {
71
+ width: 16px;
72
+ height: 16px;
73
+ }
74
+ }
75
+ }
76
+
66
77
  @include small-break {
67
78
  gap: calc(var(--base) / 4);
68
79
  }
@@ -405,7 +405,7 @@ const RelationshipField = (props)=>{
405
405
  onSave,
406
406
  setDrawerIsOpen
407
407
  },
408
- disabled: readOnly || formProcessing,
408
+ disabled: readOnly || formProcessing || drawerIsOpen,
409
409
  filterOption: enableWordBoundarySearch ? filterOption : undefined,
410
410
  isLoading: isLoading,
411
411
  isMulti: hasMany,