@economic/taco 1.26.0 → 1.26.1

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 (29) hide show
  1. package/dist/components/Header/Header.d.ts +1 -1
  2. package/dist/components/Header/components/Agreement/Avatar.d.ts +7 -0
  3. package/dist/components/Header/components/Agreement/Badge.d.ts +6 -0
  4. package/dist/components/Header/components/Agreement/Display.d.ts +9 -0
  5. package/dist/components/Header/components/Agreement/Item.d.ts +8 -0
  6. package/dist/components/Header/components/{Agreements/AgreementDetails.d.ts → Agreement/types.d.ts} +0 -7
  7. package/dist/components/Header/components/AgreementSelector.d.ts +8 -6
  8. package/dist/esm/packages/taco/src/components/Header/Header.js.map +1 -1
  9. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Avatar.js +28 -0
  10. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Avatar.js.map +1 -0
  11. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Badge.js +23 -0
  12. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Badge.js.map +1 -0
  13. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Display.js +36 -0
  14. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Display.js.map +1 -0
  15. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Item.js +39 -0
  16. package/dist/esm/packages/taco/src/components/Header/components/Agreement/Item.js.map +1 -0
  17. package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js +17 -16
  18. package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js.map +1 -1
  19. package/dist/esm/packages/taco/src/components/Header/components/PrimaryNavigation.js +3 -2
  20. package/dist/esm/packages/taco/src/components/Header/components/PrimaryNavigation.js.map +1 -1
  21. package/dist/esm/packages/taco/src/index.js +1 -1
  22. package/dist/taco.cjs.development.js +103 -69
  23. package/dist/taco.cjs.development.js.map +1 -1
  24. package/dist/taco.cjs.production.min.js +1 -1
  25. package/dist/taco.cjs.production.min.js.map +1 -1
  26. package/package.json +2 -2
  27. package/types.json +177 -115
  28. package/dist/esm/packages/taco/src/components/Header/components/Agreements/AgreementDetails.js +0 -73
  29. package/dist/esm/packages/taco/src/components/Header/components/Agreements/AgreementDetails.js.map +0 -1
@@ -5,7 +5,7 @@ import { Logo } from './components/Logo';
5
5
  import { PrimaryNavigation } from './components/PrimaryNavigation';
6
6
  import { SecondaryNavigation } from './components/SecondaryNavigation';
7
7
  import { MenuButton } from './components/MenuButton';
8
- import { AgreementDisplay, AgreementSelector } from './components/AgreementSelector';
8
+ import { AgreementSelector, AgreementDisplay } from './components/AgreementSelector';
9
9
  export declare type HeaderTexts = {
10
10
  addAgreement: string;
11
11
  logout: string;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export declare type AgreementAvatarProps = React.ImgHTMLAttributes<HTMLImageElement> & {
3
+ fallbackSrc: string;
4
+ };
5
+ export declare const AgreementAvatar: React.ForwardRefExoticComponent<React.ImgHTMLAttributes<HTMLImageElement> & {
6
+ fallbackSrc: string;
7
+ } & React.RefAttributes<HTMLImageElement>>;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { Agreement } from './types';
3
+ export declare type AgreementBadgeProps = React.HTMLAttributes<HTMLSpanElement> & {
4
+ agreement: Agreement;
5
+ };
6
+ export declare const AgreementBadge: ({ agreement, ...props }: AgreementBadgeProps) => JSX.Element | null;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { Agreement } from './types';
3
+ export declare type AgreementDisplayProps = {
4
+ children?: JSX.Element | null;
5
+ className?: string;
6
+ currentAgreement: Agreement;
7
+ fallbackImageSrc: string;
8
+ };
9
+ export declare const AgreementDisplay: (props: AgreementDisplayProps) => JSX.Element;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { Agreement } from './types';
3
+ export declare type AgreementItemProps = Agreement & {
4
+ children?: JSX.Element | null;
5
+ className?: string;
6
+ fallbackImageSrc: string;
7
+ };
8
+ export declare const AgreementItem: (props: AgreementItemProps) => JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare type Agreement = {
3
2
  adminAgreementNumber?: number;
4
3
  number: number;
@@ -12,9 +11,3 @@ export declare type Agreement = {
12
11
  statuses?: any[];
13
12
  secure: boolean;
14
13
  };
15
- export declare type AgreementDetailsProps = Agreement & {
16
- children?: JSX.Element | null;
17
- className?: string;
18
- fallbackImageSrc: string;
19
- };
20
- export declare const AgreementDetails: (props: AgreementDetailsProps) => JSX.Element;
@@ -1,12 +1,9 @@
1
1
  import React from 'react';
2
- import { Agreement } from './Agreements/AgreementDetails';
3
- export declare type AgreementDisplayProps = React.HTMLAttributes<HTMLDivElement> & {
2
+ import { Agreement } from './Agreement/types';
3
+ export declare type AgreementSelectorProps = {
4
+ agreements: Agreement[];
4
5
  currentAgreement: Agreement;
5
6
  fallbackImageSrc: string;
6
- };
7
- export declare function AgreementDisplay(props: AgreementDisplayProps): JSX.Element;
8
- export declare type AgreementSelectorProps = AgreementDisplayProps & {
9
- agreements: Agreement[];
10
7
  filterAgreement: (agreement: Agreement, filter: (agreement: Agreement) => boolean) => void;
11
8
  filterClientAgreement: (agreement: Agreement, filter: (agreement: Agreement) => boolean) => void;
12
9
  onAddAgreement?: () => void;
@@ -16,3 +13,8 @@ export declare type AgreementSelectorProps = AgreementDisplayProps & {
16
13
  setOpen?: (open: boolean) => void;
17
14
  };
18
15
  export declare function AgreementSelector(props: AgreementSelectorProps): JSX.Element;
16
+ export declare type AgreementDisplayProps = React.HTMLAttributes<HTMLDivElement> & {
17
+ currentAgreement: Agreement;
18
+ fallbackImageSrc: string;
19
+ };
20
+ export declare function AgreementDisplay(props: AgreementDisplayProps): JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../../../../../../../src/components/Header/Header.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Button } from './components/Button';\nimport { Link } from './components/Link';\nimport { Logo } from './components/Logo';\nimport { PrimaryNavigation } from './components/PrimaryNavigation';\nimport { SecondaryNavigation } from './components/SecondaryNavigation';\nimport { MenuButton } from './components/MenuButton';\nimport { AgreementDisplay, AgreementSelector } from './components/AgreementSelector';\n\nexport type HeaderTexts = {\n addAgreement: string;\n logout: string;\n more: string;\n new: string;\n search: string;\n};\n\ntype HeaderProps = React.HTMLAttributes<HTMLElement>;\n\nexport type ForwardedHeaderWithStatics = React.ForwardRefExoticComponent<HeaderProps & React.RefAttributes<HTMLDivElement>> & {\n AgreementDisplay: typeof AgreementDisplay;\n AgreementSelector: typeof AgreementSelector;\n Button: typeof Button;\n Link: typeof Link;\n Logo: typeof Logo;\n PrimaryNavigation: typeof PrimaryNavigation;\n SecondaryNavigation: typeof SecondaryNavigation;\n MenuButton: typeof MenuButton;\n};\n\nexport const Header = React.forwardRef<HTMLDivElement, HeaderProps>(function Header(props, ref) {\n const className = cn(\n 'bg-blue-900 flex h-16 w-full shrink-0 items-center gap-4 pl-2',\n '[&>a:focus-visible]:yt-focus-dark [&>a]:px-2 [&>a]:rounded [&>a]:h-[calc(100%-14px)]', // styles for logo wrapped inside an anchor\n props.className\n );\n\n return <header {...props} className={className} ref={ref} />;\n}) as ForwardedHeaderWithStatics;\n\nHeader.AgreementDisplay = AgreementDisplay;\nHeader.AgreementSelector = AgreementSelector;\nHeader.Button = Button;\nHeader.Link = Link;\nHeader.Logo = Logo;\nHeader.PrimaryNavigation = PrimaryNavigation;\nHeader.SecondaryNavigation = SecondaryNavigation;\nHeader.MenuButton = MenuButton;\n"],"names":["Header","React","forwardRef","props","ref","className","cn","AgreementDisplay","AgreementSelector","Button","Link","Logo","PrimaryNavigation","SecondaryNavigation","MenuButton"],"mappings":";;;;;;;;;;MA+BaA,MAAM,gBAAGC,cAAK,CAACC,UAAU,CAA8B,SAASF,MAAM,CAACG,KAAK,EAAEC,GAAG;EAC1F,MAAMC,SAAS,GAAGC,EAAE,CAChB,+DAA+D,EAC/D,sFAAsF;;EACtFH,KAAK,CAACE,SAAS,CAClB;EAED,oBAAOJ,yDAAYE,KAAK;IAAEE,SAAS,EAAEA,SAAS;IAAED,GAAG,EAAEA;KAAO;AAChE,CAAC;AAEDJ,MAAM,CAACO,gBAAgB,GAAGA,gBAAgB;AAC1CP,MAAM,CAACQ,iBAAiB,GAAGA,iBAAiB;AAC5CR,MAAM,CAACS,MAAM,GAAGA,MAAM;AACtBT,MAAM,CAACU,IAAI,GAAGA,IAAI;AAClBV,MAAM,CAACW,IAAI,GAAGA,IAAI;AAClBX,MAAM,CAACY,iBAAiB,GAAGA,iBAAiB;AAC5CZ,MAAM,CAACa,mBAAmB,GAAGA,mBAAmB;AAChDb,MAAM,CAACc,UAAU,GAAGA,UAAU;;;;"}
1
+ {"version":3,"file":"Header.js","sources":["../../../../../../../src/components/Header/Header.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Button } from './components/Button';\nimport { Link } from './components/Link';\nimport { Logo } from './components/Logo';\nimport { PrimaryNavigation } from './components/PrimaryNavigation';\nimport { SecondaryNavigation } from './components/SecondaryNavigation';\nimport { MenuButton } from './components/MenuButton';\nimport { AgreementSelector, AgreementDisplay } from './components/AgreementSelector';\n\nexport type HeaderTexts = {\n addAgreement: string;\n logout: string;\n more: string;\n new: string;\n search: string;\n};\n\ntype HeaderProps = React.HTMLAttributes<HTMLElement>;\n\nexport type ForwardedHeaderWithStatics = React.ForwardRefExoticComponent<HeaderProps & React.RefAttributes<HTMLDivElement>> & {\n AgreementDisplay: typeof AgreementDisplay;\n AgreementSelector: typeof AgreementSelector;\n Button: typeof Button;\n Link: typeof Link;\n Logo: typeof Logo;\n PrimaryNavigation: typeof PrimaryNavigation;\n SecondaryNavigation: typeof SecondaryNavigation;\n MenuButton: typeof MenuButton;\n};\n\nexport const Header = React.forwardRef<HTMLDivElement, HeaderProps>(function Header(props, ref) {\n const className = cn(\n 'bg-blue-900 flex h-16 w-full shrink-0 items-center gap-4 pl-2',\n '[&>a:focus-visible]:yt-focus-dark [&>a]:px-2 [&>a]:rounded [&>a]:h-[calc(100%-14px)]', // styles for logo wrapped inside an anchor\n props.className\n );\n\n return <header {...props} className={className} ref={ref} />;\n}) as ForwardedHeaderWithStatics;\n\nHeader.AgreementDisplay = AgreementDisplay;\nHeader.AgreementSelector = AgreementSelector;\nHeader.Button = Button;\nHeader.Link = Link;\nHeader.Logo = Logo;\nHeader.PrimaryNavigation = PrimaryNavigation;\nHeader.SecondaryNavigation = SecondaryNavigation;\nHeader.MenuButton = MenuButton;\n"],"names":["Header","React","forwardRef","props","ref","className","cn","AgreementDisplay","AgreementSelector","Button","Link","Logo","PrimaryNavigation","SecondaryNavigation","MenuButton"],"mappings":";;;;;;;;;;MA+BaA,MAAM,gBAAGC,cAAK,CAACC,UAAU,CAA8B,SAASF,MAAM,CAACG,KAAK,EAAEC,GAAG;EAC1F,MAAMC,SAAS,GAAGC,EAAE,CAChB,+DAA+D,EAC/D,sFAAsF;;EACtFH,KAAK,CAACE,SAAS,CAClB;EAED,oBAAOJ,yDAAYE,KAAK;IAAEE,SAAS,EAAEA,SAAS;IAAED,GAAG,EAAEA;KAAO;AAChE,CAAC;AAEDJ,MAAM,CAACO,gBAAgB,GAAGA,gBAAgB;AAC1CP,MAAM,CAACQ,iBAAiB,GAAGA,iBAAiB;AAC5CR,MAAM,CAACS,MAAM,GAAGA,MAAM;AACtBT,MAAM,CAACU,IAAI,GAAGA,IAAI;AAClBV,MAAM,CAACW,IAAI,GAAGA,IAAI;AAClBX,MAAM,CAACY,iBAAiB,GAAGA,iBAAiB;AAC5CZ,MAAM,CAACa,mBAAmB,GAAGA,mBAAmB;AAChDb,MAAM,CAACc,UAAU,GAAGA,UAAU;;;;"}
@@ -0,0 +1,28 @@
1
+ import React__default from 'react';
2
+ import cn from 'classnames';
3
+
4
+ const AgreementAvatar = /*#__PURE__*/React__default.forwardRef(function AgreementAvatar(props, ref) {
5
+ const {
6
+ src,
7
+ fallbackSrc,
8
+ ...otherProps
9
+ } = props;
10
+ const [loaded, setLoaded] = React__default.useState(false);
11
+ const handleLoad = () => setLoaded(true);
12
+ const handleError = event => {
13
+ event.target.src = fallbackSrc;
14
+ };
15
+ const className = cn('h-9 w-9 rounded-full shrink-0 group-focus:yt-focus-dark xl:group-focus:shadow-none', {
16
+ visible: loaded
17
+ }, props.className);
18
+ return /*#__PURE__*/React__default.createElement("img", Object.assign({}, otherProps, {
19
+ className: className,
20
+ src: src,
21
+ onLoad: handleLoad,
22
+ onError: handleError,
23
+ ref: ref
24
+ }));
25
+ });
26
+
27
+ export { AgreementAvatar };
28
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.js","sources":["../../../../../../../../../src/components/Header/components/Agreement/Avatar.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\n\nexport type AgreementAvatarProps = React.ImgHTMLAttributes<HTMLImageElement> & { fallbackSrc: string };\n\nexport const AgreementAvatar = React.forwardRef<HTMLImageElement, AgreementAvatarProps>(function AgreementAvatar(props, ref) {\n const { src, fallbackSrc, ...otherProps } = props;\n const [loaded, setLoaded] = React.useState(false);\n const handleLoad = () => setLoaded(true);\n const handleError = event => {\n event.target.src = fallbackSrc;\n };\n\n const className = cn(\n 'h-9 w-9 rounded-full shrink-0 group-focus:yt-focus-dark xl:group-focus:shadow-none',\n {\n visible: loaded,\n },\n props.className\n );\n\n return <img {...otherProps} className={className} src={src} onLoad={handleLoad} onError={handleError} ref={ref} />;\n});\n"],"names":["AgreementAvatar","React","forwardRef","props","ref","src","fallbackSrc","otherProps","loaded","setLoaded","useState","handleLoad","handleError","event","target","className","cn","visible","onLoad","onError"],"mappings":";;;MAKaA,eAAe,gBAAGC,cAAK,CAACC,UAAU,CAAyC,SAASF,eAAe,CAACG,KAAK,EAAEC,GAAG;EACvH,MAAM;IAAEC,GAAG;IAAEC,WAAW;IAAE,GAAGC;GAAY,GAAGJ,KAAK;EACjD,MAAM,CAACK,MAAM,EAAEC,SAAS,CAAC,GAAGR,cAAK,CAACS,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAMC,UAAU,GAAG,MAAMF,SAAS,CAAC,IAAI,CAAC;EACxC,MAAMG,WAAW,GAAGC,KAAK;IACrBA,KAAK,CAACC,MAAM,CAACT,GAAG,GAAGC,WAAW;GACjC;EAED,MAAMS,SAAS,GAAGC,EAAE,CAChB,oFAAoF,EACpF;IACIC,OAAO,EAAET;GACZ,EACDL,KAAK,CAACY,SAAS,CAClB;EAED,oBAAOd,sDAASM,UAAU;IAAEQ,SAAS,EAAEA,SAAS;IAAEV,GAAG,EAAEA,GAAG;IAAEa,MAAM,EAAEP,UAAU;IAAEQ,OAAO,EAAEP,WAAW;IAAER,GAAG,EAAEA;KAAO;AACtH,CAAC;;;;"}
@@ -0,0 +1,23 @@
1
+ import React__default from 'react';
2
+ import { Badge } from '../../../Badge/Badge.js';
3
+
4
+ const AgreementBadge = ({
5
+ agreement,
6
+ ...props
7
+ }) => {
8
+ if (agreement.isAdministrator) {
9
+ return /*#__PURE__*/React__default.createElement(Badge, Object.assign({}, props, {
10
+ color: "blue",
11
+ small: true
12
+ }), "Admin");
13
+ } else if (agreement.isDeveloper) {
14
+ return /*#__PURE__*/React__default.createElement(Badge, Object.assign({}, props, {
15
+ color: "blue",
16
+ small: true
17
+ }), "Developer");
18
+ }
19
+ return null;
20
+ };
21
+
22
+ export { AgreementBadge };
23
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","sources":["../../../../../../../../../src/components/Header/components/Agreement/Badge.tsx"],"sourcesContent":["import React from 'react';\nimport { Badge } from '../../../Badge/Badge';\nimport { Agreement } from './types';\n\nexport type AgreementBadgeProps = React.HTMLAttributes<HTMLSpanElement> & {\n agreement: Agreement;\n};\n\nexport const AgreementBadge = ({ agreement, ...props }: AgreementBadgeProps) => {\n if (agreement.isAdministrator) {\n return (\n <Badge {...props} color=\"blue\" small>\n Admin\n </Badge>\n );\n } else if (agreement.isDeveloper) {\n return (\n <Badge {...props} color=\"blue\" small>\n Developer\n </Badge>\n );\n }\n\n return null;\n};\n"],"names":["AgreementBadge","agreement","props","isAdministrator","React","Badge","color","small","isDeveloper"],"mappings":";;;MAQaA,cAAc,GAAG,CAAC;EAAEC,SAAS;EAAE,GAAGC;CAA4B;EACvE,IAAID,SAAS,CAACE,eAAe,EAAE;IAC3B,oBACIC,6BAACC,KAAK,oBAAKH,KAAK;MAAEI,KAAK,EAAC,MAAM;MAACC,KAAK;gBAE5B;GAEf,MAAM,IAAIN,SAAS,CAACO,WAAW,EAAE;IAC9B,oBACIJ,6BAACC,KAAK,oBAAKH,KAAK;MAAEI,KAAK,EAAC,MAAM;MAACC,KAAK;oBAE5B;;EAIhB,OAAO,IAAI;AACf;;;;"}
@@ -0,0 +1,36 @@
1
+ import React__default from 'react';
2
+ import cn from 'classnames';
3
+ import { AgreementAvatar } from './Avatar.js';
4
+ import { AgreementBadge } from './Badge.js';
5
+ import { AgreementItem } from './Item.js';
6
+ import { useMatchMedia } from '../../../../hooks/useMatchMedia.js';
7
+
8
+ const AgreementDisplay = props => {
9
+ const {
10
+ children,
11
+ currentAgreement,
12
+ fallbackImageSrc
13
+ } = props;
14
+ const isXlScreen = useMatchMedia('(min-width: 1280px)', window.innerWidth > 1280);
15
+ if (isXlScreen) {
16
+ const className = cn('h-12 flex-grow xl:[button>&]:hover:bg-white/[0.16]', props.className);
17
+ return /*#__PURE__*/React__default.createElement(AgreementItem, Object.assign({}, currentAgreement, {
18
+ children: children,
19
+ className: className,
20
+ fallbackImageSrc: fallbackImageSrc
21
+ }));
22
+ }
23
+ return /*#__PURE__*/React__default.createElement("span", {
24
+ className: "relative flex h-12 flex-grow items-center pr-2"
25
+ }, /*#__PURE__*/React__default.createElement(AgreementAvatar, {
26
+ fallbackSrc: fallbackImageSrc,
27
+ src: currentAgreement.imageSrc,
28
+ title: `${currentAgreement.name} - ${currentAgreement.number} ${currentAgreement.userId}`
29
+ }), /*#__PURE__*/React__default.createElement(AgreementBadge, {
30
+ agreement: currentAgreement,
31
+ className: "absolute top-0 right-0 -mr-1 w-8 !justify-start"
32
+ }));
33
+ };
34
+
35
+ export { AgreementDisplay };
36
+ //# sourceMappingURL=Display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Display.js","sources":["../../../../../../../../../src/components/Header/components/Agreement/Display.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Agreement } from './types';\nimport { AgreementAvatar } from './Avatar';\nimport { AgreementItem } from './Item';\nimport { AgreementBadge } from './Badge';\nimport { useMatchMedia } from '../../../../hooks/useMatchMedia';\n\nexport type AgreementDisplayProps = {\n children?: JSX.Element | null;\n className?: string;\n currentAgreement: Agreement;\n fallbackImageSrc: string;\n};\n\nexport const AgreementDisplay = (props: AgreementDisplayProps) => {\n const { children, currentAgreement, fallbackImageSrc } = props;\n const isXlScreen = useMatchMedia('(min-width: 1280px)', window.innerWidth > 1280);\n\n if (isXlScreen) {\n const className = cn('h-12 flex-grow xl:[button>&]:hover:bg-white/[0.16]', props.className);\n return (\n <AgreementItem {...currentAgreement} children={children} className={className} fallbackImageSrc={fallbackImageSrc} />\n );\n }\n\n return (\n <span className=\"relative flex h-12 flex-grow items-center pr-2\">\n <AgreementAvatar\n fallbackSrc={fallbackImageSrc}\n src={currentAgreement.imageSrc}\n title={`${currentAgreement.name} - ${currentAgreement.number} ${currentAgreement.userId}`}\n />\n <AgreementBadge agreement={currentAgreement} className=\"absolute top-0 right-0 -mr-1 w-8 !justify-start\" />\n </span>\n );\n};\n"],"names":["AgreementDisplay","props","children","currentAgreement","fallbackImageSrc","isXlScreen","useMatchMedia","window","innerWidth","className","cn","React","AgreementItem","AgreementAvatar","fallbackSrc","src","imageSrc","title","name","number","userId","AgreementBadge","agreement"],"mappings":";;;;;;;MAeaA,gBAAgB,GAAIC,KAA4B;EACzD,MAAM;IAAEC,QAAQ;IAAEC,gBAAgB;IAAEC;GAAkB,GAAGH,KAAK;EAC9D,MAAMI,UAAU,GAAGC,aAAa,CAAC,qBAAqB,EAAEC,MAAM,CAACC,UAAU,GAAG,IAAI,CAAC;EAEjF,IAAIH,UAAU,EAAE;IACZ,MAAMI,SAAS,GAAGC,EAAE,CAAC,oDAAoD,EAAET,KAAK,CAACQ,SAAS,CAAC;IAC3F,oBACIE,6BAACC,aAAa,oBAAKT,gBAAgB;MAAED,QAAQ,EAAEA,QAAQ;MAAEO,SAAS,EAAEA,SAAS;MAAEL,gBAAgB,EAAEA;OAAoB;;EAI7H,oBACIO;IAAMF,SAAS,EAAC;kBACZE,6BAACE,eAAe;IACZC,WAAW,EAAEV,gBAAgB;IAC7BW,GAAG,EAAEZ,gBAAgB,CAACa,QAAQ;IAC9BC,KAAK,KAAKd,gBAAgB,CAACe,UAAUf,gBAAgB,CAACgB,UAAUhB,gBAAgB,CAACiB;IACnF,eACFT,6BAACU,cAAc;IAACC,SAAS,EAAEnB,gBAAgB;IAAEM,SAAS,EAAC;IAAoD,CACxG;AAEf;;;;"}
@@ -0,0 +1,39 @@
1
+ import React__default from 'react';
2
+ import cn from 'classnames';
3
+ import { Icon } from '../../../Icon/Icon.js';
4
+ import { AgreementAvatar } from './Avatar.js';
5
+ import { AgreementBadge } from './Badge.js';
6
+
7
+ const AgreementItem = props => {
8
+ const {
9
+ children,
10
+ className: customClassName,
11
+ fallbackImageSrc,
12
+ ...agreement
13
+ } = props;
14
+ const className = cn('w-full rounded flex px-2 gap-2 overflow-hidden text-left items-center', customClassName);
15
+ return /*#__PURE__*/React__default.createElement("span", {
16
+ className: className
17
+ }, /*#__PURE__*/React__default.createElement(AgreementAvatar, {
18
+ fallbackSrc: fallbackImageSrc,
19
+ src: agreement.imageSrc,
20
+ title: `${agreement.name} - ${agreement.number} ${agreement.userId}`
21
+ }), /*#__PURE__*/React__default.createElement("span", {
22
+ className: "flex flex-col overflow-hidden"
23
+ }, /*#__PURE__*/React__default.createElement("span", {
24
+ className: "flex truncate text-white",
25
+ title: agreement.name
26
+ }, /*#__PURE__*/React__default.createElement("span", {
27
+ className: "truncate"
28
+ }, agreement.name), ' ', agreement.secure ? /*#__PURE__*/React__default.createElement(Icon, {
29
+ name: "secure-tick",
30
+ className: "ml-1 mt-0.5 mb-0.5 !h-4 !w-4 flex-shrink-0 flex-grow-0"
31
+ }) : null), /*#__PURE__*/React__default.createElement("span", {
32
+ className: "text-grey-100 whitespace-nowrap text-xs"
33
+ }, agreement.number, " ", agreement.userId, " ", /*#__PURE__*/React__default.createElement(AgreementBadge, {
34
+ agreement: agreement
35
+ }))), children);
36
+ };
37
+
38
+ export { AgreementItem };
39
+ //# sourceMappingURL=Item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Item.js","sources":["../../../../../../../../../src/components/Header/components/Agreement/Item.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Icon } from '../../../Icon/Icon';\nimport { AgreementAvatar } from './Avatar';\nimport { Agreement } from './types';\nimport { AgreementBadge } from './Badge';\n\nexport type AgreementItemProps = Agreement & {\n children?: JSX.Element | null;\n className?: string;\n fallbackImageSrc: string;\n};\n\nexport const AgreementItem = (props: AgreementItemProps) => {\n const { children, className: customClassName, fallbackImageSrc, ...agreement } = props;\n const className = cn('w-full rounded flex px-2 gap-2 overflow-hidden text-left items-center', customClassName);\n\n return (\n <span className={className}>\n <AgreementAvatar\n fallbackSrc={fallbackImageSrc}\n src={agreement.imageSrc}\n title={`${agreement.name} - ${agreement.number} ${agreement.userId}`}\n />\n <span className=\"flex flex-col overflow-hidden\">\n <span className=\"flex truncate text-white\" title={agreement.name}>\n <span className=\"truncate\">{agreement.name}</span>{' '}\n {agreement.secure ? (\n <Icon name=\"secure-tick\" className=\"ml-1 mt-0.5 mb-0.5 !h-4 !w-4 flex-shrink-0 flex-grow-0\" />\n ) : null}\n </span>\n <span className=\"text-grey-100 whitespace-nowrap text-xs\">\n {agreement.number} {agreement.userId} <AgreementBadge agreement={agreement} />\n </span>\n </span>\n {children}\n </span>\n );\n};\n"],"names":["AgreementItem","props","children","className","customClassName","fallbackImageSrc","agreement","cn","React","AgreementAvatar","fallbackSrc","src","imageSrc","title","name","number","userId","secure","Icon","AgreementBadge"],"mappings":";;;;;;MAaaA,aAAa,GAAIC,KAAyB;EACnD,MAAM;IAAEC,QAAQ;IAAEC,SAAS,EAAEC,eAAe;IAAEC,gBAAgB;IAAE,GAAGC;GAAW,GAAGL,KAAK;EACtF,MAAME,SAAS,GAAGI,EAAE,CAAC,uEAAuE,EAAEH,eAAe,CAAC;EAE9G,oBACII;IAAML,SAAS,EAAEA;kBACbK,6BAACC,eAAe;IACZC,WAAW,EAAEL,gBAAgB;IAC7BM,GAAG,EAAEL,SAAS,CAACM,QAAQ;IACvBC,KAAK,KAAKP,SAAS,CAACQ,UAAUR,SAAS,CAACS,UAAUT,SAAS,CAACU;IAC9D,eACFR;IAAML,SAAS,EAAC;kBACZK;IAAML,SAAS,EAAC,0BAA0B;IAACU,KAAK,EAAEP,SAAS,CAACQ;kBACxDN;IAAML,SAAS,EAAC;KAAYG,SAAS,CAACQ,IAAI,CAAQ,EAAC,GAAG,EACrDR,SAAS,CAACW,MAAM,gBACbT,6BAACU,IAAI;IAACJ,IAAI,EAAC,aAAa;IAACX,SAAS,EAAC;IAA2D,GAC9F,IAAI,CACL,eACPK;IAAML,SAAS,EAAC;KACXG,SAAS,CAACS,MAAM,OAAGT,SAAS,CAACU,MAAM,oBAAER,6BAACW,cAAc;IAACb,SAAS,EAAEA;IAAa,CAC3E,CACJ,EACNJ,QAAQ,CACN;AAEf;;;;"}
@@ -8,26 +8,17 @@ import { createCustomKeyboardEvent } from '../../../utils/input.js';
8
8
  import { SearchInput } from '../../SearchInput/SearchInput.js';
9
9
  import { Root as Root$1 } from '../../../primitives/Collection/components/Root.js';
10
10
  import '../../../primitives/Collection/Collection.js';
11
- import { AgreementDetails } from './Agreements/AgreementDetails.js';
11
+ import { AgreementItem } from './Agreement/Item.js';
12
+ import { AgreementDisplay as AgreementDisplay$1 } from './Agreement/Display.js';
12
13
 
13
14
  const Container = props => {
14
15
  return /*#__PURE__*/React__default.createElement("div", {
15
- className: "-ml-3 flex flex-shrink-0 flex-grow-0 items-center gap-2 xl:ml-auto xl:w-64 xl:pr-2",
16
+ className: "-ml-2 flex flex-shrink-0 flex-grow-0 items-center gap-2 pr-2 xl:ml-auto xl:w-64",
16
17
  "data-taco": "header-agreements"
17
18
  }, /*#__PURE__*/React__default.createElement("span", {
18
19
  className: "hidden h-8 w-px flex-shrink-0 flex-grow-0 bg-white/[0.3] xl:flex"
19
20
  }), props.children);
20
21
  };
21
- function AgreementDisplay(props) {
22
- const {
23
- currentAgreement,
24
- fallbackImageSrc
25
- } = props;
26
- return /*#__PURE__*/React__default.createElement(Container, null, /*#__PURE__*/React__default.createElement(AgreementDetails, Object.assign({}, currentAgreement, {
27
- className: "h-12 [&>span>span]:hidden xl:[&>span>span]:flex ",
28
- fallbackImageSrc: fallbackImageSrc
29
- })));
30
- }
31
22
  function AgreementSelector(props) {
32
23
  const {
33
24
  agreements,
@@ -69,10 +60,10 @@ function AgreementSelector(props) {
69
60
  onOpenChange: setOpen
70
61
  }, /*#__PURE__*/React__default.createElement(Trigger, {
71
62
  className: "xl:focus-visible:yt-focus-dark [&:focus-visible_img]:yt-focus-dark w-full rounded outline-none xl:[&:focus-visible_img]:shadow-none"
72
- }, /*#__PURE__*/React__default.createElement(AgreementDetails, Object.assign({}, currentAgreement, {
73
- className: "h-12 flex-grow xl:hover:bg-white/[0.16] [&>span>span]:hidden xl:[&>span>span]:flex [[aria-current='true']>&]:bg-white/[0.16]",
63
+ }, /*#__PURE__*/React__default.createElement(AgreementDisplay$1, {
64
+ currentAgreement: currentAgreement,
74
65
  fallbackImageSrc: fallbackImageSrc
75
- }), agreements ? /*#__PURE__*/React__default.createElement(Icon, {
66
+ }, agreements ? /*#__PURE__*/React__default.createElement(Icon, {
76
67
  className: "ml-auto hidden flex-shrink-0 flex-grow-0 text-white xl:flex",
77
68
  name: open ? 'chevron-up' : 'chevron-down'
78
69
  }) : null)), /*#__PURE__*/React__default.createElement(Content, {
@@ -133,11 +124,21 @@ const createAgreementButton = (agreement, fallbackImageSrc, onChangeAgreement, i
133
124
  onClick: () => onChangeAgreement(agreement),
134
125
  onKeyDown: handleKeyDown,
135
126
  tabIndex: 0
136
- }, /*#__PURE__*/React__default.createElement(AgreementDetails, Object.assign({}, agreement, {
127
+ }, /*#__PURE__*/React__default.createElement(AgreementItem, Object.assign({}, agreement, {
137
128
  className: "h-14 bg-white/[0.08] xl:hover:bg-white/[0.16] [[aria-current='true']>&]:bg-white/[0.16]",
138
129
  fallbackImageSrc: fallbackImageSrc
139
130
  })));
140
131
  };
132
+ function AgreementDisplay(props) {
133
+ const {
134
+ currentAgreement,
135
+ fallbackImageSrc
136
+ } = props;
137
+ return /*#__PURE__*/React__default.createElement(Container, null, /*#__PURE__*/React__default.createElement(AgreementDisplay$1, {
138
+ currentAgreement: currentAgreement,
139
+ fallbackImageSrc: fallbackImageSrc
140
+ }));
141
+ }
141
142
 
142
143
  export { AgreementDisplay, AgreementSelector };
143
144
  //# sourceMappingURL=AgreementSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgreementSelector.js","sources":["../../../../../../../../src/components/Header/components/AgreementSelector.tsx"],"sourcesContent":["import React from 'react';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as CollectionPrimitive from '../../../primitives/Collection/Collection';\nimport { Agreement, AgreementDetails } from './Agreements/AgreementDetails';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\nimport { Icon } from '../../Icon/Icon';\nimport { SearchInput } from '../../SearchInput/SearchInput';\nimport { Button } from '../../Button/Button';\nimport { useLocalization } from '../../Provider/Localization';\n\nconst Container = props => {\n return (\n <div\n className=\"-ml-3 flex flex-shrink-0 flex-grow-0 items-center gap-2 xl:ml-auto xl:w-64 xl:pr-2\"\n data-taco=\"header-agreements\">\n <span className=\"hidden h-8 w-px flex-shrink-0 flex-grow-0 bg-white/[0.3] xl:flex\" />\n {props.children}\n </div>\n );\n};\n\nexport type AgreementDisplayProps = React.HTMLAttributes<HTMLDivElement> & {\n currentAgreement: Agreement;\n fallbackImageSrc: string;\n};\n\nexport function AgreementDisplay(props: AgreementDisplayProps) {\n const { currentAgreement, fallbackImageSrc } = props;\n\n return (\n <Container>\n <AgreementDetails\n {...currentAgreement}\n className=\"h-12 [&>span>span]:hidden xl:[&>span>span]:flex \"\n fallbackImageSrc={fallbackImageSrc}\n />\n </Container>\n );\n}\n\nexport type AgreementSelectorProps = AgreementDisplayProps & {\n agreements: Agreement[];\n filterAgreement: (agreement: Agreement, filter: (agreement: Agreement) => boolean) => void;\n filterClientAgreement: (agreement: Agreement, filter: (agreement: Agreement) => boolean) => void;\n onAddAgreement?: () => void;\n onChangeAgreement: (agreement: Agreement) => void;\n onLogout: () => void;\n open?: boolean;\n setOpen?: (open: boolean) => void;\n};\n\nexport function AgreementSelector(props: AgreementSelectorProps) {\n const {\n agreements,\n currentAgreement,\n fallbackImageSrc,\n filterAgreement = () => true,\n filterClientAgreement = () => true,\n onAddAgreement: handleAddAgreement,\n onChangeAgreement,\n onLogout: handleLogout,\n open: prop,\n setOpen: onChange,\n } = props;\n const { texts } = useLocalization();\n const collectionRef = React.useRef<CollectionPrimitive.CollectionRef | null>(null);\n const [open, setOpen] = useControllableState<boolean>({\n onChange,\n prop,\n });\n const [search, setSearch] = React.useState('');\n\n React.useEffect(() => {\n setSearch('');\n }, [open]);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp' || event.key === 'Enter') {\n event.preventDefault();\n collectionRef.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\n }\n };\n\n const handleChangeAgreement = (agreement: Agreement) => {\n onChangeAgreement(agreement);\n setOpen(false);\n };\n\n return (\n <Container>\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <PopoverPrimitive.Trigger className=\"xl:focus-visible:yt-focus-dark [&:focus-visible_img]:yt-focus-dark w-full rounded outline-none xl:[&:focus-visible_img]:shadow-none\">\n <AgreementDetails\n {...currentAgreement}\n className=\"h-12 flex-grow xl:hover:bg-white/[0.16] [&>span>span]:hidden xl:[&>span>span]:flex [[aria-current='true']>&]:bg-white/[0.16]\"\n fallbackImageSrc={fallbackImageSrc}>\n {agreements ? (\n <Icon\n className=\"ml-auto hidden flex-shrink-0 flex-grow-0 text-white xl:flex\"\n name={open ? 'chevron-up' : 'chevron-down'}\n />\n ) : null}\n </AgreementDetails>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Content className=\"z-[996] mt-2 flex h-[calc(100vh_-_theme(spacing.16))] w-64 flex-col gap-1 bg-blue-900\">\n <SearchInput\n autoFocus\n className=\"focus-visible:!yt-focus-dark mx-2 !border-transparent !bg-white/[0.08] !text-white hover:!bg-white/[0.16] hover:!shadow-none focus:!bg-white/[0.16] active:!bg-white/[0.16] [&+div>button]:!text-white\"\n onChange={event => setSearch(event.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={texts.header.search}\n />\n <CollectionPrimitive.Root\n querySelector=\"button\"\n className=\"-my-1 flex w-full flex-grow flex-col gap-1 overflow-auto px-2 py-1 outline-none\"\n ref={collectionRef}\n tabIndex={-1}>\n {agreements\n ?.filter(agreement => filterAgreement(agreement, filterBySearchValue(search)))\n .map(agreement => {\n const button = createAgreementButton(\n agreement,\n fallbackImageSrc,\n handleChangeAgreement,\n isCurrentAgreement(agreement, currentAgreement)\n );\n\n if (agreement.clients) {\n return (\n <span\n className=\"flex flex-col gap-px [&>*:first-child>span]:!rounded-t [&>*:last-child>span]:!rounded-b [&>*>span]:!rounded-none\"\n key={`${agreement.number}_${agreement.userId}_clients`}>\n {filterBySearchValue(search)(agreement) ? button : null}\n {agreement.clients\n .filter(agreement =>\n filterClientAgreement(agreement, filterBySearchValue(search))\n )\n .map(clientAgreement =>\n createAgreementButton(\n clientAgreement,\n fallbackImageSrc,\n handleChangeAgreement,\n isCurrentAgreement(clientAgreement, currentAgreement)\n )\n )}\n </span>\n );\n }\n\n return button;\n })}\n </CollectionPrimitive.Root>\n {handleAddAgreement ? (\n <Button\n className=\"focus-visible:!yt-focus-dark my-1 mx-2 !h-9 shrink-0 !bg-white/[0.08] !text-white hover:!bg-white/[0.16]\"\n onClick={handleAddAgreement}>\n {texts.header.addAgreement}\n </Button>\n ) : null}\n <hr className=\"my-0 h-px w-full bg-white/[0.08]\" />\n <a\n className=\"focus-visible:yt-focus-dark mx-2 mb-2 flex h-8 shrink-0 items-center justify-center rounded text-white hover:cursor-pointer hover:text-white hover:underline focus-visible:outline-none\"\n onClick={handleLogout}\n tabIndex={0}>\n {texts.header.logout}\n </a>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Root>\n </Container>\n );\n}\n\nconst filterBySearchValue = (search: string) => (agreement: Agreement) => {\n if (!search || !search.length) {\n return true;\n }\n\n const matchesAgreementNumber = String(agreement.number).indexOf(search) > -1;\n const matchesCompanyName = agreement.name.toLowerCase().indexOf(search.toLowerCase()) > -1;\n\n return matchesAgreementNumber || matchesCompanyName;\n};\n\nconst isCurrentAgreement = (agreement: Agreement, currentAgreement: Agreement) => {\n return agreement.number === currentAgreement.number && agreement.userId === currentAgreement.userId;\n};\n\nconst createAgreementButton = (\n agreement: Agreement,\n fallbackImageSrc: string,\n onChangeAgreement: (agreement: Agreement) => void,\n isCurrentAgreement = false\n) => {\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter') {\n onChangeAgreement(agreement);\n }\n };\n\n return (\n <button\n aria-current={isCurrentAgreement ? 'true' : undefined}\n className=\"focus:yt-focus-dark w-full rounded outline-none\"\n data-taco=\"header-agreements-agreement\"\n key={`${agreement.number}_${agreement.userId}`}\n onClick={() => onChangeAgreement(agreement)}\n onKeyDown={handleKeyDown}\n tabIndex={0}>\n <AgreementDetails\n {...agreement}\n className=\"h-14 bg-white/[0.08] xl:hover:bg-white/[0.16] [[aria-current='true']>&]:bg-white/[0.16]\"\n fallbackImageSrc={fallbackImageSrc}\n />\n </button>\n );\n};\n"],"names":["Container","props","React","className","children","AgreementDisplay","currentAgreement","fallbackImageSrc","AgreementDetails","AgreementSelector","agreements","filterAgreement","filterClientAgreement","onAddAgreement","handleAddAgreement","onChangeAgreement","onLogout","handleLogout","open","prop","setOpen","onChange","texts","useLocalization","collectionRef","useRef","useControllableState","search","setSearch","useState","useEffect","handleKeyDown","event","key","preventDefault","current","dispatchEvent","createCustomKeyboardEvent","handleChangeAgreement","agreement","PopoverPrimitive","onOpenChange","Icon","name","SearchInput","autoFocus","target","value","onKeyDown","placeholder","header","CollectionPrimitive","querySelector","ref","tabIndex","filter","filterBySearchValue","map","button","createAgreementButton","isCurrentAgreement","clients","number","userId","clientAgreement","Button","onClick","addAgreement","logout","length","matchesAgreementNumber","String","indexOf","matchesCompanyName","toLowerCase","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"AgreementSelector.js","sources":["../../../../../../../../src/components/Header/components/AgreementSelector.tsx"],"sourcesContent":["import React from 'react';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as CollectionPrimitive from '../../../primitives/Collection/Collection';\nimport { AgreementItem } from './Agreement/Item';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\nimport { Icon } from '../../Icon/Icon';\nimport { SearchInput } from '../../SearchInput/SearchInput';\nimport { Button } from '../../Button/Button';\nimport { useLocalization } from '../../Provider/Localization';\nimport { Agreement } from './Agreement/types';\nimport { AgreementDisplay as Display } from './Agreement/Display';\n\nconst Container = props => {\n return (\n <div\n className=\"-ml-2 flex flex-shrink-0 flex-grow-0 items-center gap-2 pr-2 xl:ml-auto xl:w-64\"\n data-taco=\"header-agreements\">\n <span className=\"hidden h-8 w-px flex-shrink-0 flex-grow-0 bg-white/[0.3] xl:flex\" />\n {props.children}\n </div>\n );\n};\n\nexport type AgreementSelectorProps = {\n agreements: Agreement[];\n currentAgreement: Agreement;\n fallbackImageSrc: string;\n filterAgreement: (agreement: Agreement, filter: (agreement: Agreement) => boolean) => void;\n filterClientAgreement: (agreement: Agreement, filter: (agreement: Agreement) => boolean) => void;\n onAddAgreement?: () => void;\n onChangeAgreement: (agreement: Agreement) => void;\n onLogout: () => void;\n open?: boolean;\n setOpen?: (open: boolean) => void;\n};\n\nexport function AgreementSelector(props: AgreementSelectorProps) {\n const {\n agreements,\n currentAgreement,\n fallbackImageSrc,\n filterAgreement = () => true,\n filterClientAgreement = () => true,\n onAddAgreement: handleAddAgreement,\n onChangeAgreement,\n onLogout: handleLogout,\n open: prop,\n setOpen: onChange,\n } = props;\n const { texts } = useLocalization();\n const collectionRef = React.useRef<CollectionPrimitive.CollectionRef | null>(null);\n const [open, setOpen] = useControllableState<boolean>({\n onChange,\n prop,\n });\n const [search, setSearch] = React.useState('');\n\n React.useEffect(() => {\n setSearch('');\n }, [open]);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp' || event.key === 'Enter') {\n event.preventDefault();\n collectionRef.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\n }\n };\n\n const handleChangeAgreement = (agreement: Agreement) => {\n onChangeAgreement(agreement);\n setOpen(false);\n };\n\n return (\n <Container>\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n <PopoverPrimitive.Trigger className=\"xl:focus-visible:yt-focus-dark [&:focus-visible_img]:yt-focus-dark w-full rounded outline-none xl:[&:focus-visible_img]:shadow-none\">\n <Display currentAgreement={currentAgreement} fallbackImageSrc={fallbackImageSrc}>\n {agreements ? (\n <Icon\n className=\"ml-auto hidden flex-shrink-0 flex-grow-0 text-white xl:flex\"\n name={open ? 'chevron-up' : 'chevron-down'}\n />\n ) : null}\n </Display>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Content className=\"z-[996] mt-2 flex h-[calc(100vh_-_theme(spacing.16))] w-64 flex-col gap-1 bg-blue-900\">\n <SearchInput\n autoFocus\n className=\"focus-visible:!yt-focus-dark mx-2 !border-transparent !bg-white/[0.08] !text-white hover:!bg-white/[0.16] hover:!shadow-none focus:!bg-white/[0.16] active:!bg-white/[0.16] [&+div>button]:!text-white\"\n onChange={event => setSearch(event.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={texts.header.search}\n />\n <CollectionPrimitive.Root\n querySelector=\"button\"\n className=\"-my-1 flex w-full flex-grow flex-col gap-1 overflow-auto px-2 py-1 outline-none\"\n ref={collectionRef}\n tabIndex={-1}>\n {agreements\n ?.filter(agreement => filterAgreement(agreement, filterBySearchValue(search)))\n .map(agreement => {\n const button = createAgreementButton(\n agreement,\n fallbackImageSrc,\n handleChangeAgreement,\n isCurrentAgreement(agreement, currentAgreement)\n );\n\n if (agreement.clients) {\n return (\n <span\n className=\"flex flex-col gap-px [&>*:first-child>span]:!rounded-t [&>*:last-child>span]:!rounded-b [&>*>span]:!rounded-none\"\n key={`${agreement.number}_${agreement.userId}_clients`}>\n {filterBySearchValue(search)(agreement) ? button : null}\n {agreement.clients\n .filter(agreement =>\n filterClientAgreement(agreement, filterBySearchValue(search))\n )\n .map(clientAgreement =>\n createAgreementButton(\n clientAgreement,\n fallbackImageSrc,\n handleChangeAgreement,\n isCurrentAgreement(clientAgreement, currentAgreement)\n )\n )}\n </span>\n );\n }\n\n return button;\n })}\n </CollectionPrimitive.Root>\n {handleAddAgreement ? (\n <Button\n className=\"focus-visible:!yt-focus-dark my-1 mx-2 !h-9 shrink-0 !bg-white/[0.08] !text-white hover:!bg-white/[0.16]\"\n onClick={handleAddAgreement}>\n {texts.header.addAgreement}\n </Button>\n ) : null}\n <hr className=\"my-0 h-px w-full bg-white/[0.08]\" />\n <a\n className=\"focus-visible:yt-focus-dark mx-2 mb-2 flex h-8 shrink-0 items-center justify-center rounded text-white hover:cursor-pointer hover:text-white hover:underline focus-visible:outline-none\"\n onClick={handleLogout}\n tabIndex={0}>\n {texts.header.logout}\n </a>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Root>\n </Container>\n );\n}\n\nconst filterBySearchValue = (search: string) => (agreement: Agreement) => {\n if (!search || !search.length) {\n return true;\n }\n\n const matchesAgreementNumber = String(agreement.number).indexOf(search) > -1;\n const matchesCompanyName = agreement.name.toLowerCase().indexOf(search.toLowerCase()) > -1;\n\n return matchesAgreementNumber || matchesCompanyName;\n};\n\nconst isCurrentAgreement = (agreement: Agreement, currentAgreement: Agreement) => {\n return agreement.number === currentAgreement.number && agreement.userId === currentAgreement.userId;\n};\n\nconst createAgreementButton = (\n agreement: Agreement,\n fallbackImageSrc: string,\n onChangeAgreement: (agreement: Agreement) => void,\n isCurrentAgreement = false\n) => {\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter') {\n onChangeAgreement(agreement);\n }\n };\n\n return (\n <button\n aria-current={isCurrentAgreement ? 'true' : undefined}\n className=\"focus:yt-focus-dark w-full rounded outline-none\"\n data-taco=\"header-agreements-agreement\"\n key={`${agreement.number}_${agreement.userId}`}\n onClick={() => onChangeAgreement(agreement)}\n onKeyDown={handleKeyDown}\n tabIndex={0}>\n <AgreementItem\n {...agreement}\n className=\"h-14 bg-white/[0.08] xl:hover:bg-white/[0.16] [[aria-current='true']>&]:bg-white/[0.16]\"\n fallbackImageSrc={fallbackImageSrc}\n />\n </button>\n );\n};\n\nexport type AgreementDisplayProps = React.HTMLAttributes<HTMLDivElement> & {\n currentAgreement: Agreement;\n fallbackImageSrc: string;\n};\n\nexport function AgreementDisplay(props: AgreementDisplayProps) {\n const { currentAgreement, fallbackImageSrc } = props;\n\n return (\n <Container>\n <Display currentAgreement={currentAgreement} fallbackImageSrc={fallbackImageSrc} />\n </Container>\n );\n}\n"],"names":["Container","props","React","className","children","AgreementSelector","agreements","currentAgreement","fallbackImageSrc","filterAgreement","filterClientAgreement","onAddAgreement","handleAddAgreement","onChangeAgreement","onLogout","handleLogout","open","prop","setOpen","onChange","texts","useLocalization","collectionRef","useRef","useControllableState","search","setSearch","useState","useEffect","handleKeyDown","event","key","preventDefault","current","dispatchEvent","createCustomKeyboardEvent","handleChangeAgreement","agreement","PopoverPrimitive","onOpenChange","Display","Icon","name","SearchInput","autoFocus","target","value","onKeyDown","placeholder","header","CollectionPrimitive","querySelector","ref","tabIndex","filter","filterBySearchValue","map","button","createAgreementButton","isCurrentAgreement","clients","number","userId","clientAgreement","Button","onClick","addAgreement","logout","length","matchesAgreementNumber","String","indexOf","matchesCompanyName","toLowerCase","undefined","AgreementItem","AgreementDisplay"],"mappings":"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"}
@@ -11,8 +11,9 @@ import { Portal } from '@radix-ui/react-portal';
11
11
  const getChildWidths = parent => {
12
12
  const widths = [];
13
13
  for (let index = 0; index < parent.children.length; index++) {
14
- const childRect = parent.children[index].getBoundingClientRect();
15
- widths.push(childRect.width);
14
+ var _parent$children$inde, _childRect$width;
15
+ const childRect = (_parent$children$inde = parent.children[index].firstElementChild) === null || _parent$children$inde === void 0 ? void 0 : _parent$children$inde.getBoundingClientRect();
16
+ widths.push((_childRect$width = childRect === null || childRect === void 0 ? void 0 : childRect.width) !== null && _childRect$width !== void 0 ? _childRect$width : 0);
16
17
  }
17
18
  return widths;
18
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PrimaryNavigation.js","sources":["../../../../../../../../src/components/Header/components/PrimaryNavigation.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Portal } from '@radix-ui/react-portal';\nimport { getLinkClasses } from './Link';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { useBoundingClientRectListener } from '../../../hooks/useBoundingClientRectListener';\nimport { Button } from '../../Button/Button';\nimport { Menu } from '../../Menu/Menu';\nimport { useLocalization } from '../../Provider/Localization';\n\ntype ChildrenWidthProps = {\n setWidth: React.Dispatch<React.SetStateAction<number[]>>;\n children: React.ReactNode;\n};\n\nconst getChildWidths = (parent: HTMLDivElement): number[] => {\n const widths: number[] = [];\n\n for (let index = 0; index < parent.children.length; index++) {\n const childRect = parent.children[index].getBoundingClientRect();\n widths.push(childRect.width);\n }\n\n return widths;\n};\n\nconst ChildrenWidth = ({ setWidth, children }: ChildrenWidthProps) => {\n const ref = React.useRef<HTMLDivElement>(null);\n const [show, setShow] = React.useState(true);\n\n React.useEffect(() => {\n // Calculate the width of children, and then hides the portal\n if (ref.current && show) {\n setWidth(getChildWidths(ref.current));\n setShow(false);\n }\n }, [show]);\n\n React.useEffect(() => {\n // If children changes, then we render the children to calculate their width\n if (!show) {\n setShow(true);\n }\n }, [children]);\n\n return show ? (\n <Portal className={cn('invisible absolute z-[-10] flex translate-x-[-1000px]')} ref={ref}>\n {children}\n </Portal>\n ) : null;\n};\n\nconst useBoundaryIndex = (wrapperWidth: number, buttonRef: React.RefObject<HTMLButtonElement>, childWidths: number[]) => {\n // Primary navigation has a gap of gap-1, so we need to take the gap value in account as well\n // left gap + right gap = 8px\n const GAP = 8;\n\n return React.useMemo(() => {\n if (childWidths.length && wrapperWidth && buttonRef.current) {\n const realWidth = wrapperWidth - buttonRef.current.getBoundingClientRect().width - GAP;\n let boundary: number | undefined;\n let total = 0;\n\n childWidths.every((width, index) => {\n const nextWidth = total + width + GAP;\n\n if (nextWidth > realWidth) {\n boundary = index;\n return false;\n }\n\n total = nextWidth;\n return true;\n });\n\n return boundary;\n }\n\n return undefined;\n }, [childWidths, wrapperWidth]);\n};\n\nexport type PrimaryNavigationProps = React.HTMLAttributes<HTMLElement>;\n\nexport const PrimaryNavigation = React.forwardRef<HTMLElement, PrimaryNavigationProps>(function PrimaryNavigation(props, ref) {\n const { texts } = useLocalization();\n const internalRef = useMergedRef<HTMLDivElement>(ref);\n const rect = useBoundingClientRectListener(internalRef);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const [childWidths, setChildWidths] = React.useState<number[]>([]);\n const boundaryIndex = useBoundaryIndex(rect?.width ?? 0, buttonRef, childWidths);\n\n const className = cn(\n 'flex h-full w-full flex-grow items-center overflow-hidden active:outline-none relative',\n props.className\n );\n\n const moreButtonClassName = cn(getLinkClasses(), '!bg-transparent aria-expanded:!bg-white/[.08]');\n\n const [visibleChildren, hiddenChildren] = React.useMemo(() => {\n const visibleChildren: JSX.Element[] = [];\n const hiddenChildren: JSX.Element[] = [];\n\n React.Children.forEach(props.children, (child, index) => {\n if (React.isValidElement(child) && !!child) {\n if (boundaryIndex && index >= boundaryIndex) {\n hiddenChildren.push(child);\n } else {\n visibleChildren.push(child);\n }\n }\n });\n\n return [visibleChildren, hiddenChildren];\n }, [boundaryIndex, props.children]);\n\n return (\n <nav {...props} className={className} ref={internalRef}>\n <ul className=\"mb-0 flex h-full w-full items-center gap-1 overflow-hidden px-1\">\n {visibleChildren}\n <li className={cn({ invisible: boundaryIndex === undefined })}>\n <Button\n className={moreButtonClassName}\n menu={menuProps => (\n <Menu {...menuProps}>\n <Menu.Content className=\"hidden lg:block\">\n {hiddenChildren.map((child, index) => {\n const href: string | undefined = child.props.to || child.props.href;\n const target = href?.startsWith('http') ? '_blank' : '_self';\n // Removing className prop so that custom styling cannot be applied on Menu.Link\n const { as, className: _, ...otherProps } = child.props;\n\n if (as) {\n return React.cloneElement(child, {\n as: Menu.Link,\n key: index,\n target,\n ...otherProps,\n });\n }\n\n return <Menu.Link key={index} target={target} {...otherProps} />;\n })}\n </Menu.Content>\n </Menu>\n )}\n ref={buttonRef}>\n {texts.header.more}\n </Button>\n </li>\n </ul>\n <ChildrenWidth setWidth={setChildWidths}>{props.children}</ChildrenWidth>\n </nav>\n );\n});\n"],"names":["getChildWidths","parent","widths","index","children","length","childRect","getBoundingClientRect","push","width","ChildrenWidth","setWidth","ref","React","useRef","show","setShow","useState","useEffect","current","Portal","className","cn","useBoundaryIndex","wrapperWidth","buttonRef","childWidths","GAP","useMemo","realWidth","boundary","total","every","nextWidth","undefined","PrimaryNavigation","forwardRef","props","texts","useLocalization","internalRef","useMergedRef","rect","useBoundingClientRectListener","setChildWidths","boundaryIndex","moreButtonClassName","getLinkClasses","visibleChildren","hiddenChildren","Children","forEach","child","isValidElement","invisible","Button","menu","menuProps","Menu","Content","map","href","to","target","startsWith","as","_","otherProps","cloneElement","Link","key","header","more"],"mappings":"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"}
1
+ {"version":3,"file":"PrimaryNavigation.js","sources":["../../../../../../../../src/components/Header/components/PrimaryNavigation.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Portal } from '@radix-ui/react-portal';\nimport { getLinkClasses } from './Link';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { useBoundingClientRectListener } from '../../../hooks/useBoundingClientRectListener';\nimport { Button } from '../../Button/Button';\nimport { Menu } from '../../Menu/Menu';\nimport { useLocalization } from '../../Provider/Localization';\n\ntype ChildrenWidthProps = {\n setWidth: React.Dispatch<React.SetStateAction<number[]>>;\n children: React.ReactNode;\n};\n\nconst getChildWidths = (parent: HTMLDivElement): number[] => {\n const widths: number[] = [];\n\n for (let index = 0; index < parent.children.length; index++) {\n const childRect = parent.children[index].firstElementChild?.getBoundingClientRect();\n widths.push(childRect?.width ?? 0);\n }\n\n return widths;\n};\n\nconst ChildrenWidth = ({ setWidth, children }: ChildrenWidthProps) => {\n const ref = React.useRef<HTMLDivElement>(null);\n const [show, setShow] = React.useState(true);\n\n React.useEffect(() => {\n // Calculate the width of children, and then hides the portal\n if (ref.current && show) {\n setWidth(getChildWidths(ref.current));\n setShow(false);\n }\n }, [show]);\n\n React.useEffect(() => {\n // If children changes, then we render the children to calculate their width\n if (!show) {\n setShow(true);\n }\n }, [children]);\n\n return show ? (\n <Portal className={cn('invisible absolute z-[-10] flex translate-x-[-1000px]')} ref={ref}>\n {children}\n </Portal>\n ) : null;\n};\n\nconst useBoundaryIndex = (wrapperWidth: number, buttonRef: React.RefObject<HTMLButtonElement>, childWidths: number[]) => {\n // Primary navigation has a gap of gap-1, so we need to take the gap value in account as well\n // left gap + right gap = 8px\n const GAP = 8;\n\n return React.useMemo(() => {\n if (childWidths.length && wrapperWidth && buttonRef.current) {\n const realWidth = wrapperWidth - buttonRef.current.getBoundingClientRect().width - GAP;\n let boundary: number | undefined;\n let total = 0;\n\n childWidths.every((width, index) => {\n const nextWidth = total + width + GAP;\n\n if (nextWidth > realWidth) {\n boundary = index;\n return false;\n }\n\n total = nextWidth;\n return true;\n });\n\n return boundary;\n }\n\n return undefined;\n }, [childWidths, wrapperWidth]);\n};\n\nexport type PrimaryNavigationProps = React.HTMLAttributes<HTMLElement>;\n\nexport const PrimaryNavigation = React.forwardRef<HTMLElement, PrimaryNavigationProps>(function PrimaryNavigation(props, ref) {\n const { texts } = useLocalization();\n const internalRef = useMergedRef<HTMLDivElement>(ref);\n const rect = useBoundingClientRectListener(internalRef);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const [childWidths, setChildWidths] = React.useState<number[]>([]);\n const boundaryIndex = useBoundaryIndex(rect?.width ?? 0, buttonRef, childWidths);\n\n const className = cn(\n 'flex h-full w-full flex-grow items-center overflow-hidden active:outline-none relative',\n props.className\n );\n\n const moreButtonClassName = cn(getLinkClasses(), '!bg-transparent aria-expanded:!bg-white/[.08]');\n\n const [visibleChildren, hiddenChildren] = React.useMemo(() => {\n const visibleChildren: JSX.Element[] = [];\n const hiddenChildren: JSX.Element[] = [];\n\n React.Children.forEach(props.children, (child, index) => {\n if (React.isValidElement(child) && !!child) {\n if (boundaryIndex && index >= boundaryIndex) {\n hiddenChildren.push(child);\n } else {\n visibleChildren.push(child);\n }\n }\n });\n\n return [visibleChildren, hiddenChildren];\n }, [boundaryIndex, props.children]);\n\n return (\n <nav {...props} className={className} ref={internalRef}>\n <ul className=\"mb-0 flex h-full w-full items-center gap-1 overflow-hidden px-1\">\n {visibleChildren}\n <li className={cn({ invisible: boundaryIndex === undefined })}>\n <Button\n className={moreButtonClassName}\n menu={menuProps => (\n <Menu {...menuProps}>\n <Menu.Content className=\"hidden lg:block\">\n {hiddenChildren.map((child, index) => {\n const href: string | undefined = child.props.to || child.props.href;\n const target = href?.startsWith('http') ? '_blank' : '_self';\n // Removing className prop so that custom styling cannot be applied on Menu.Link\n const { as, className: _, ...otherProps } = child.props;\n\n if (as) {\n return React.cloneElement(child, {\n as: Menu.Link,\n key: index,\n target,\n ...otherProps,\n });\n }\n\n return <Menu.Link key={index} target={target} {...otherProps} />;\n })}\n </Menu.Content>\n </Menu>\n )}\n ref={buttonRef}>\n {texts.header.more}\n </Button>\n </li>\n </ul>\n <ChildrenWidth setWidth={setChildWidths}>{props.children}</ChildrenWidth>\n </nav>\n );\n});\n"],"names":["getChildWidths","parent","widths","index","children","length","childRect","firstElementChild","getBoundingClientRect","push","width","ChildrenWidth","setWidth","ref","React","useRef","show","setShow","useState","useEffect","current","Portal","className","cn","useBoundaryIndex","wrapperWidth","buttonRef","childWidths","GAP","useMemo","realWidth","boundary","total","every","nextWidth","undefined","PrimaryNavigation","forwardRef","props","texts","useLocalization","internalRef","useMergedRef","rect","useBoundingClientRectListener","setChildWidths","boundaryIndex","moreButtonClassName","getLinkClasses","visibleChildren","hiddenChildren","Children","forEach","child","isValidElement","invisible","Button","menu","menuProps","Menu","Content","map","href","to","target","startsWith","as","_","otherProps","cloneElement","Link","key","header","more"],"mappings":"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"}
@@ -64,8 +64,8 @@ export { Table2 } from './components/Table2/Table2.js';
64
64
  export { Tabs } from './components/Tabs/Tabs.js';
65
65
  export { Textarea } from './components/Textarea/Textarea.js';
66
66
  export { Tour, TourStep } from './components/Tour/Tour.js';
67
- export { Header } from './components/Header/Header.js';
68
67
  export { useMatchMedia } from './hooks/useMatchMedia.js';
68
+ export { Header } from './components/Header/Header.js';
69
69
  export { useIsLargeScreen } from './hooks/useIsLargeScreen.js';
70
70
  export { Layout } from './components/Layout/Layout.js';
71
71
  export { getNavigationLinkClasses } from './components/Navigation2/components/Link.js';