@universityofmaryland/web-elements-library 1.6.6 → 1.6.8

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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # University of Maryland Web Elements Library
2
2
 
3
- [![Elements Version](https://img.shields.io/badge/Elements-v1.6.6-blue)](https://www.npmjs.com/package/@universityofmaryland/web-elements-library)
3
+ [![Elements Version](https://img.shields.io/badge/Elements-v1.6.8-blue)](https://www.npmjs.com/package/@universityofmaryland/web-elements-library)
4
4
 
5
5
  Foundational UI building blocks for the UMD Design System, providing atomic elements that combine to create complex, accessible, and brand-compliant University of Maryland digital experiences.
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../../../source/atomic/text-lockup/contact.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AA4FpD,eAAO,MAAM,uBAAuB,GAAI,+EASrC,kBAAkB,kFAqGpB,CAAC"}
1
+ {"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../../../source/atomic/text-lockup/contact.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAiGpD,eAAO,MAAM,uBAAuB,GAAI,+EASrC,kBAAkB,kFAqGpB,CAAC"}
@@ -15,7 +15,11 @@ const makeIcon = ({
15
15
  elementStyles.action.icon.composeIcon({
16
16
  theme: theme.variant(isThemeDark)
17
17
  })
18
- ).build();
18
+ ).withStyles({
19
+ element: {
20
+ alignSelf: "flex-start"
21
+ }
22
+ }).build();
19
23
  };
20
24
  const makeText = ({
21
25
  text,
@@ -1 +1 @@
1
- {"version":3,"file":"contact.js","sources":["../../../source/atomic/text-lockup/contact.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport * as layout from '@universityofmaryland/web-styles-library/layout';\nimport * as elementStyles from '@universityofmaryland/web-styles-library/element';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport {\n email as iconEmail,\n phone as iconPhone,\n} from '@universityofmaryland/web-icons-library/communication';\nimport { pin as iconPin } from '@universityofmaryland/web-icons-library/location';\nimport {\n linkedin as iconLinkedIn,\n bluesky as iconBluesky,\n substack as iconSubstack,\n} from '@universityofmaryland/web-icons-library/social';\nimport { type PersonContactProps } from '../_types';\n\nconst makeIcon = ({\n icon,\n isThemeDark,\n}: {\n icon: string;\n isThemeDark?: boolean;\n}) => {\n return new ElementBuilder('span')\n .withHTML(icon)\n .styled(\n elementStyles.action.icon.composeIcon({\n theme: theme.variant(isThemeDark),\n }),\n )\n .build();\n};\n\nconst makeText = ({\n text,\n isThemeDark,\n}: {\n text: string;\n isThemeDark?: boolean;\n}) => {\n return new ElementBuilder('span')\n .withHTML(text)\n .styled(\n typography.sans.compose('smaller', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n ...(!isThemeDark && { color: `${token.color.gray.dark}` }),\n },\n })\n .build();\n};\n\nconst makeContactLink = ({\n element,\n icon,\n isThemeDark,\n}: {\n element: HTMLElement | HTMLAnchorElement;\n icon: string;\n isThemeDark?: boolean;\n}) => {\n const isLink = element.getAttribute('href') && icon !== iconPin;\n const textSpan = makeText({ text: element.innerHTML, isThemeDark });\n const iconSpan = makeIcon({ icon, isThemeDark });\n const containerStyles = {\n element: {\n marginTop: '4px',\n lineHeight: '1.2em',\n\n [`&a:hover, &a:focus`]: {\n textDecoration: 'underline',\n\n ...(isThemeDark && {\n color: `${token.color.white}`,\n }),\n },\n },\n };\n\n if (isLink) {\n const ariaLabel = element.getAttribute('aria-label');\n const href = element.getAttribute('href') || '';\n\n const linkBuilder = new ElementBuilder('a')\n .styled(layout.grid.inline.row)\n .withStyles(containerStyles)\n .withChildren(iconSpan, textSpan)\n .withAttribute('href', href);\n\n if (ariaLabel) {\n linkBuilder.withAttribute('aria-label', ariaLabel);\n }\n\n return linkBuilder.build();\n }\n\n return new ElementBuilder()\n .styled(layout.grid.inline.row)\n .withStyles(containerStyles)\n .withChildren(iconSpan, textSpan)\n .build();\n};\n\nexport const createTextLockupContact = ({\n actions,\n address,\n email,\n isThemeDark,\n linkedin,\n bluesky,\n substack,\n phone,\n}: PersonContactProps) => {\n const container = new ElementBuilder()\n .withClassName('text-lockup-contact')\n .withStyles({\n element: {\n marginTop: `${token.spacing.sm}`,\n },\n });\n\n if (phone) {\n const phoneElement = new ElementBuilder()\n .withClassName('text-lockup-contact-phone')\n .withChild(\n makeContactLink({ element: phone, icon: iconPhone, isThemeDark }),\n )\n .build();\n\n container.withChild(phoneElement);\n }\n\n if (email) {\n const emailElement = new ElementBuilder()\n .withClassName('text-lockup-contact-email')\n .withChild(\n makeContactLink({ element: email, icon: iconEmail, isThemeDark }),\n )\n .build();\n\n container.withChild(emailElement);\n }\n\n if (linkedin) {\n const linkedInElement = new ElementBuilder()\n .withClassName('text-lockup-contact-linkedin')\n .withChild(\n makeContactLink({\n element: linkedin,\n icon: iconLinkedIn,\n isThemeDark,\n }),\n )\n .build();\n\n container.withChild(linkedInElement);\n }\n\n if (bluesky) {\n const blueSkyElement = new ElementBuilder()\n .withClassName('text-lockup-contact-bluesky')\n .withChild(\n makeContactLink({\n element: bluesky,\n icon: iconBluesky,\n isThemeDark,\n }),\n )\n .build();\n\n container.withChild(blueSkyElement);\n }\n\n if (substack) {\n const substackElement = new ElementBuilder()\n .withClassName('text-lockup-contact-substack')\n .withChild(\n makeContactLink({\n element: substack,\n icon: iconSubstack,\n isThemeDark,\n }),\n )\n .build();\n\n container.withChild(substackElement);\n }\n\n if (address) {\n const addressElement = new ElementBuilder()\n .withClassName('text-lockup-contact-address')\n .withChild(\n makeContactLink({ element: address, icon: iconPin, isThemeDark }),\n )\n .build();\n\n container.withChild(addressElement);\n }\n\n if (actions) {\n const actionsElement = new ElementBuilder(actions)\n .styled(layout.grid.inline.tabletRows)\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n },\n })\n .build();\n\n container.withChild(actionsElement);\n }\n\n return container.build();\n};\n"],"names":["iconPin","email","linkedin","bluesky","substack","phone","iconPhone","iconEmail","iconLinkedIn","iconBluesky","iconSubstack"],"mappings":";;;;;;;;;AAkBA,MAAM,WAAW,CAAC;AAAA,EAChB;AAAA,EACA;AACF,MAGM;AACJ,SAAO,IAAI,eAAe,MAAM,EAC7B,SAAS,IAAI,EACb;AAAA,IACC,cAAc,OAAO,KAAK,YAAY;AAAA,MACpC,OAAO,MAAM,QAAQ,WAAW;AAAA,IAAA,CACjC;AAAA,EAAA,EAEF,MAAA;AACL;AAEA,MAAM,WAAW,CAAC;AAAA,EAChB;AAAA,EACA;AACF,MAGM;AACJ,SAAO,IAAI,eAAe,MAAM,EAC7B,SAAS,IAAI,EACb;AAAA,IACC,WAAW,KAAK,QAAQ,WAAW;AAAA,MACjC,OAAO,MAAM,UAAU,WAAW;AAAA,IAAA,CACnC;AAAA,EAAA,EAEF,WAAW;AAAA,IACV,SAAS;AAAA,MACP,GAAI,CAAC,eAAe,EAAE,OAAO,GAAG,MAAM,MAAM,KAAK,IAAI,GAAA;AAAA,IAAG;AAAA,EAC1D,CACD,EACA,MAAA;AACL;AAEA,MAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,QAAM,SAAS,QAAQ,aAAa,MAAM,KAAK,SAASA;AACxD,QAAM,WAAW,SAAS,EAAE,MAAM,QAAQ,WAAW,aAAa;AAClE,QAAM,WAAW,SAAS,EAAE,MAAM,aAAa;AAC/C,QAAM,kBAAkB;AAAA,IACtB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,YAAY;AAAA,MAEZ,CAAC,oBAAoB,GAAG;AAAA,QACtB,gBAAgB;AAAA,QAEhB,GAAI,eAAe;AAAA,UACjB,OAAO,GAAG,MAAM,MAAM,KAAK;AAAA,QAAA;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AAGF,MAAI,QAAQ;AACV,UAAM,YAAY,QAAQ,aAAa,YAAY;AACnD,UAAM,OAAO,QAAQ,aAAa,MAAM,KAAK;AAE7C,UAAM,cAAc,IAAI,eAAe,GAAG,EACvC,OAAO,OAAO,KAAK,OAAO,GAAG,EAC7B,WAAW,eAAe,EAC1B,aAAa,UAAU,QAAQ,EAC/B,cAAc,QAAQ,IAAI;AAE7B,QAAI,WAAW;AACb,kBAAY,cAAc,cAAc,SAAS;AAAA,IACnD;AAEA,WAAO,YAAY,MAAA;AAAA,EACrB;AAEA,SAAO,IAAI,eAAA,EACR,OAAO,OAAO,KAAK,OAAO,GAAG,EAC7B,WAAW,eAAe,EAC1B,aAAa,UAAU,QAAQ,EAC/B,MAAA;AACL;AAEO,MAAM,0BAA0B,CAAC;AAAA,EACtC;AAAA,EACA;AAAA,EAAA,OACAC;AAAAA,EACA;AAAA,EAAA,UACAC;AAAAA,EAAA,SACAC;AAAAA,EAAA,UACAC;AAAAA,EAAA,OACAC;AACF,MAA0B;AACxB,QAAM,YAAY,IAAI,eAAA,EACnB,cAAc,qBAAqB,EACnC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,WAAW,GAAG,MAAM,QAAQ,EAAE;AAAA,IAAA;AAAA,EAChC,CACD;AAEH,MAAIA,SAAO;AACT,UAAM,eAAe,IAAI,eAAA,EACtB,cAAc,2BAA2B,EACzC;AAAA,MACC,gBAAgB,EAAE,SAASA,SAAO,MAAMC,OAAW,aAAa;AAAA,IAAA,EAEjE,MAAA;AAEH,cAAU,UAAU,YAAY;AAAA,EAClC;AAEA,MAAIL,SAAO;AACT,UAAM,eAAe,IAAI,eAAA,EACtB,cAAc,2BAA2B,EACzC;AAAA,MACC,gBAAgB,EAAE,SAASA,SAAO,MAAMM,OAAW,aAAa;AAAA,IAAA,EAEjE,MAAA;AAEH,cAAU,UAAU,YAAY;AAAA,EAClC;AAEA,MAAIL,YAAU;AACZ,UAAM,kBAAkB,IAAI,eAAA,EACzB,cAAc,8BAA8B,EAC5C;AAAA,MACC,gBAAgB;AAAA,QACd,SAASA;AAAAA,QACT,MAAMM;AAAAA,QACN;AAAA,MAAA,CACD;AAAA,IAAA,EAEF,MAAA;AAEH,cAAU,UAAU,eAAe;AAAA,EACrC;AAEA,MAAIL,WAAS;AACX,UAAM,iBAAiB,IAAI,eAAA,EACxB,cAAc,6BAA6B,EAC3C;AAAA,MACC,gBAAgB;AAAA,QACd,SAASA;AAAAA,QACT,MAAMM;AAAAA,QACN;AAAA,MAAA,CACD;AAAA,IAAA,EAEF,MAAA;AAEH,cAAU,UAAU,cAAc;AAAA,EACpC;AAEA,MAAIL,YAAU;AACZ,UAAM,kBAAkB,IAAI,eAAA,EACzB,cAAc,8BAA8B,EAC5C;AAAA,MACC,gBAAgB;AAAA,QACd,SAASA;AAAAA,QACT,MAAMM;AAAAA,QACN;AAAA,MAAA,CACD;AAAA,IAAA,EAEF,MAAA;AAEH,cAAU,UAAU,eAAe;AAAA,EACrC;AAEA,MAAI,SAAS;AACX,UAAM,iBAAiB,IAAI,eAAA,EACxB,cAAc,6BAA6B,EAC3C;AAAA,MACC,gBAAgB,EAAE,SAAS,SAAS,MAAMV,KAAS,aAAa;AAAA,IAAA,EAEjE,MAAA;AAEH,cAAU,UAAU,cAAc;AAAA,EACpC;AAEA,MAAI,SAAS;AACX,UAAM,iBAAiB,IAAI,eAAe,OAAO,EAC9C,OAAO,OAAO,KAAK,OAAO,UAAU,EACpC,WAAW;AAAA,MACV,SAAS;AAAA,QACP,WAAW,MAAM,QAAQ;AAAA,MAAA;AAAA,IAC3B,CACD,EACA,MAAA;AAEH,cAAU,UAAU,cAAc;AAAA,EACpC;AAEA,SAAO,UAAU,MAAA;AACnB;"}
1
+ {"version":3,"file":"contact.js","sources":["../../../source/atomic/text-lockup/contact.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport * as layout from '@universityofmaryland/web-styles-library/layout';\nimport * as elementStyles from '@universityofmaryland/web-styles-library/element';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport {\n email as iconEmail,\n phone as iconPhone,\n} from '@universityofmaryland/web-icons-library/communication';\nimport { pin as iconPin } from '@universityofmaryland/web-icons-library/location';\nimport {\n linkedin as iconLinkedIn,\n bluesky as iconBluesky,\n substack as iconSubstack,\n} from '@universityofmaryland/web-icons-library/social';\nimport { type PersonContactProps } from '../_types';\n\nconst makeIcon = ({\n icon,\n isThemeDark,\n}: {\n icon: string;\n isThemeDark?: boolean;\n}) => {\n return new ElementBuilder('span')\n .withHTML(icon)\n .styled(\n elementStyles.action.icon.composeIcon({\n theme: theme.variant(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n alignSelf: 'flex-start',\n },\n })\n .build();\n};\n\nconst makeText = ({\n text,\n isThemeDark,\n}: {\n text: string;\n isThemeDark?: boolean;\n}) => {\n return new ElementBuilder('span')\n .withHTML(text)\n .styled(\n typography.sans.compose('smaller', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n ...(!isThemeDark && { color: `${token.color.gray.dark}` }),\n },\n })\n .build();\n};\n\nconst makeContactLink = ({\n element,\n icon,\n isThemeDark,\n}: {\n element: HTMLElement | HTMLAnchorElement;\n icon: string;\n isThemeDark?: boolean;\n}) => {\n const isLink = element.getAttribute('href') && icon !== iconPin;\n const textSpan = makeText({ text: element.innerHTML, isThemeDark });\n const iconSpan = makeIcon({ icon, isThemeDark });\n const containerStyles = {\n element: {\n marginTop: '4px',\n lineHeight: '1.2em',\n\n [`&a:hover, &a:focus`]: {\n textDecoration: 'underline',\n\n ...(isThemeDark && {\n color: `${token.color.white}`,\n }),\n },\n },\n };\n\n if (isLink) {\n const ariaLabel = element.getAttribute('aria-label');\n const href = element.getAttribute('href') || '';\n\n const linkBuilder = new ElementBuilder('a')\n .styled(layout.grid.inline.row)\n .withStyles(containerStyles)\n .withChildren(iconSpan, textSpan)\n .withAttribute('href', href);\n\n if (ariaLabel) {\n linkBuilder.withAttribute('aria-label', ariaLabel);\n }\n\n return linkBuilder.build();\n }\n\n return new ElementBuilder()\n .styled(layout.grid.inline.row)\n .withStyles(containerStyles)\n .withChildren(iconSpan, textSpan)\n .build();\n};\n\nexport const createTextLockupContact = ({\n actions,\n address,\n email,\n isThemeDark,\n linkedin,\n bluesky,\n substack,\n phone,\n}: PersonContactProps) => {\n const container = new ElementBuilder()\n .withClassName('text-lockup-contact')\n .withStyles({\n element: {\n marginTop: `${token.spacing.sm}`,\n },\n });\n\n if (phone) {\n const phoneElement = new ElementBuilder()\n .withClassName('text-lockup-contact-phone')\n .withChild(\n makeContactLink({ element: phone, icon: iconPhone, isThemeDark }),\n )\n .build();\n\n container.withChild(phoneElement);\n }\n\n if (email) {\n const emailElement = new ElementBuilder()\n .withClassName('text-lockup-contact-email')\n .withChild(\n makeContactLink({ element: email, icon: iconEmail, isThemeDark }),\n )\n .build();\n\n container.withChild(emailElement);\n }\n\n if (linkedin) {\n const linkedInElement = new ElementBuilder()\n .withClassName('text-lockup-contact-linkedin')\n .withChild(\n makeContactLink({\n element: linkedin,\n icon: iconLinkedIn,\n isThemeDark,\n }),\n )\n .build();\n\n container.withChild(linkedInElement);\n }\n\n if (bluesky) {\n const blueSkyElement = new ElementBuilder()\n .withClassName('text-lockup-contact-bluesky')\n .withChild(\n makeContactLink({\n element: bluesky,\n icon: iconBluesky,\n isThemeDark,\n }),\n )\n .build();\n\n container.withChild(blueSkyElement);\n }\n\n if (substack) {\n const substackElement = new ElementBuilder()\n .withClassName('text-lockup-contact-substack')\n .withChild(\n makeContactLink({\n element: substack,\n icon: iconSubstack,\n isThemeDark,\n }),\n )\n .build();\n\n container.withChild(substackElement);\n }\n\n if (address) {\n const addressElement = new ElementBuilder()\n .withClassName('text-lockup-contact-address')\n .withChild(\n makeContactLink({ element: address, icon: iconPin, isThemeDark }),\n )\n .build();\n\n container.withChild(addressElement);\n }\n\n if (actions) {\n const actionsElement = new ElementBuilder(actions)\n .styled(layout.grid.inline.tabletRows)\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n },\n })\n .build();\n\n container.withChild(actionsElement);\n }\n\n return container.build();\n};\n"],"names":["iconPin","email","linkedin","bluesky","substack","phone","iconPhone","iconEmail","iconLinkedIn","iconBluesky","iconSubstack"],"mappings":";;;;;;;;;AAkBA,MAAM,WAAW,CAAC;AAAA,EAChB;AAAA,EACA;AACF,MAGM;AACJ,SAAO,IAAI,eAAe,MAAM,EAC7B,SAAS,IAAI,EACb;AAAA,IACC,cAAc,OAAO,KAAK,YAAY;AAAA,MACpC,OAAO,MAAM,QAAQ,WAAW;AAAA,IAAA,CACjC;AAAA,EAAA,EAEF,WAAW;AAAA,IACV,SAAS;AAAA,MACP,WAAW;AAAA,IAAA;AAAA,EACb,CACD,EACA,MAAA;AACL;AAEA,MAAM,WAAW,CAAC;AAAA,EAChB;AAAA,EACA;AACF,MAGM;AACJ,SAAO,IAAI,eAAe,MAAM,EAC7B,SAAS,IAAI,EACb;AAAA,IACC,WAAW,KAAK,QAAQ,WAAW;AAAA,MACjC,OAAO,MAAM,UAAU,WAAW;AAAA,IAAA,CACnC;AAAA,EAAA,EAEF,WAAW;AAAA,IACV,SAAS;AAAA,MACP,GAAI,CAAC,eAAe,EAAE,OAAO,GAAG,MAAM,MAAM,KAAK,IAAI,GAAA;AAAA,IAAG;AAAA,EAC1D,CACD,EACA,MAAA;AACL;AAEA,MAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,QAAM,SAAS,QAAQ,aAAa,MAAM,KAAK,SAASA;AACxD,QAAM,WAAW,SAAS,EAAE,MAAM,QAAQ,WAAW,aAAa;AAClE,QAAM,WAAW,SAAS,EAAE,MAAM,aAAa;AAC/C,QAAM,kBAAkB;AAAA,IACtB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,YAAY;AAAA,MAEZ,CAAC,oBAAoB,GAAG;AAAA,QACtB,gBAAgB;AAAA,QAEhB,GAAI,eAAe;AAAA,UACjB,OAAO,GAAG,MAAM,MAAM,KAAK;AAAA,QAAA;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AAGF,MAAI,QAAQ;AACV,UAAM,YAAY,QAAQ,aAAa,YAAY;AACnD,UAAM,OAAO,QAAQ,aAAa,MAAM,KAAK;AAE7C,UAAM,cAAc,IAAI,eAAe,GAAG,EACvC,OAAO,OAAO,KAAK,OAAO,GAAG,EAC7B,WAAW,eAAe,EAC1B,aAAa,UAAU,QAAQ,EAC/B,cAAc,QAAQ,IAAI;AAE7B,QAAI,WAAW;AACb,kBAAY,cAAc,cAAc,SAAS;AAAA,IACnD;AAEA,WAAO,YAAY,MAAA;AAAA,EACrB;AAEA,SAAO,IAAI,eAAA,EACR,OAAO,OAAO,KAAK,OAAO,GAAG,EAC7B,WAAW,eAAe,EAC1B,aAAa,UAAU,QAAQ,EAC/B,MAAA;AACL;AAEO,MAAM,0BAA0B,CAAC;AAAA,EACtC;AAAA,EACA;AAAA,EAAA,OACAC;AAAAA,EACA;AAAA,EAAA,UACAC;AAAAA,EAAA,SACAC;AAAAA,EAAA,UACAC;AAAAA,EAAA,OACAC;AACF,MAA0B;AACxB,QAAM,YAAY,IAAI,eAAA,EACnB,cAAc,qBAAqB,EACnC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,WAAW,GAAG,MAAM,QAAQ,EAAE;AAAA,IAAA;AAAA,EAChC,CACD;AAEH,MAAIA,SAAO;AACT,UAAM,eAAe,IAAI,eAAA,EACtB,cAAc,2BAA2B,EACzC;AAAA,MACC,gBAAgB,EAAE,SAASA,SAAO,MAAMC,OAAW,aAAa;AAAA,IAAA,EAEjE,MAAA;AAEH,cAAU,UAAU,YAAY;AAAA,EAClC;AAEA,MAAIL,SAAO;AACT,UAAM,eAAe,IAAI,eAAA,EACtB,cAAc,2BAA2B,EACzC;AAAA,MACC,gBAAgB,EAAE,SAASA,SAAO,MAAMM,OAAW,aAAa;AAAA,IAAA,EAEjE,MAAA;AAEH,cAAU,UAAU,YAAY;AAAA,EAClC;AAEA,MAAIL,YAAU;AACZ,UAAM,kBAAkB,IAAI,eAAA,EACzB,cAAc,8BAA8B,EAC5C;AAAA,MACC,gBAAgB;AAAA,QACd,SAASA;AAAAA,QACT,MAAMM;AAAAA,QACN;AAAA,MAAA,CACD;AAAA,IAAA,EAEF,MAAA;AAEH,cAAU,UAAU,eAAe;AAAA,EACrC;AAEA,MAAIL,WAAS;AACX,UAAM,iBAAiB,IAAI,eAAA,EACxB,cAAc,6BAA6B,EAC3C;AAAA,MACC,gBAAgB;AAAA,QACd,SAASA;AAAAA,QACT,MAAMM;AAAAA,QACN;AAAA,MAAA,CACD;AAAA,IAAA,EAEF,MAAA;AAEH,cAAU,UAAU,cAAc;AAAA,EACpC;AAEA,MAAIL,YAAU;AACZ,UAAM,kBAAkB,IAAI,eAAA,EACzB,cAAc,8BAA8B,EAC5C;AAAA,MACC,gBAAgB;AAAA,QACd,SAASA;AAAAA,QACT,MAAMM;AAAAA,QACN;AAAA,MAAA,CACD;AAAA,IAAA,EAEF,MAAA;AAEH,cAAU,UAAU,eAAe;AAAA,EACrC;AAEA,MAAI,SAAS;AACX,UAAM,iBAAiB,IAAI,eAAA,EACxB,cAAc,6BAA6B,EAC3C;AAAA,MACC,gBAAgB,EAAE,SAAS,SAAS,MAAMV,KAAS,aAAa;AAAA,IAAA,EAEjE,MAAA;AAEH,cAAU,UAAU,cAAc;AAAA,EACpC;AAEA,MAAI,SAAS;AACX,UAAM,iBAAiB,IAAI,eAAe,OAAO,EAC9C,OAAO,OAAO,KAAK,OAAO,UAAU,EACpC,WAAW;AAAA,MACV,SAAS;AAAA,QACP,WAAW,MAAM,QAAQ;AAAA,MAAA;AAAA,IAC3B,CACD,EACA,MAAA;AAEH,cAAU,UAAU,cAAc;AAAA,EACpC;AAEA,SAAO,UAAU,MAAA;AACnB;"}
@@ -573,7 +573,7 @@ const CreateMenuItems = ({
573
573
  if (isGiftsFeed) {
574
574
  hasItems = true;
575
575
  const getURL = () => {
576
- const defaultURL = "https://giving.umd.edu/giving";
576
+ const defaultURL = "https://giving.umd.edu";
577
577
  if (!giftUrl) return defaultURL;
578
578
  const validURL = giftUrl ? isValidUrl(giftUrl) : null;
579
579
  return validURL ? giftUrl : defaultURL;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../source/composite/navigation/utility/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as elementStyles from '@universityofmaryland/web-styles-library/element';\nimport * as layout from '@universityofmaryland/web-styles-library/layout';\nimport {\n jssToCSS,\n jssEntryToCSS,\n} from '@universityofmaryland/web-utilities-library/styles';\nimport { handleKeyboardNavigation } from '@universityofmaryland/web-utilities-library/events';\nimport { search as iconSearch } from '@universityofmaryland/web-icons-library/search';\nimport { chevron_down as iconChevronDown } from '@universityofmaryland/web-icons-library/controls';\nimport {\n createNavAlert,\n STYLES_NAV_ALERT,\n ALERT_CONSTANTS,\n TypeAlertProps,\n} from './alert';\nimport { createCompositeNavigationSearch as UtilitySearch } from './search';\n\ntype TypeMenuItemsRequirements = {\n alertUrl?: string | null;\n giftUrl?: string;\n isAdmissionsFeed: boolean;\n isAlertOff?: boolean;\n isEventsFeed: boolean;\n isGiftsFeed: boolean;\n isLockFull?: boolean;\n isNewsFeed: boolean;\n isSchoolsFeed: boolean;\n isSearch: boolean;\n isSearchDomain?: boolean;\n};\n\ntype TypeUtilityRequirements = TypeMenuItemsRequirements & TypeAlertProps;\n\nconst flagIcon = `<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\"><title>Flag</title><path d=\"M5 4c0 .72-.39 1.36-1 1.72V25.5c0 .266-.234.5-.5.5h-1c-.266 0-.5-.234-.5-.5V5.72c-.61-.36-1-1-1-1.72 0-1.11.89-2 2-2s2 .89 2 2zm23 1v11.922c0 .578-.36.797-.812 1.03-1.766.954-3.72 1.814-5.766 1.814-2.875 0-4.25-2.188-7.656-2.188-2.484 0-5.094 1.125-7.25 2.28-.172.095-.328.142-.516.142-.547 0-1-.453-1-1V7.406c0-.375.187-.64.484-.86.375-.25.828-.468 1.234-.67 1.97-1 4.36-1.876 6.578-1.876 2.453 0 4.375.812 6.547 1.828.438.22.89.297 1.375.297C23.67 6.125 26.312 4 26.998 4c.548 0 1 .453 1 1z\"></path></svg>`;\nconst homeIcon = `<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"28\" viewBox=\"0 0 26 28\"><title>School</title><path d=\"M22 15.5V23c0 .547-.453 1-1 1h-6v-6h-4v6H5c-.547 0-1-.453-1-1v-7.5c0-.03.016-.063.016-.094L13 8l8.984 7.406c.016.03.016.063.016.094zm3.484-1.078l-.97 1.156c-.077.094-.202.156-.327.172h-.047c-.125 0-.234-.03-.328-.11L13 6.626 2.185 15.64c-.11.08-.234.126-.375.11-.124-.016-.25-.078-.327-.172l-.97-1.156c-.17-.203-.14-.53.064-.703L11.81 4.36c.657-.547 1.72-.547 2.376 0L18 7.547V4.5c0-.28.218-.5.5-.5h3c.28 0 .5.22.5.5v6.375l3.42 2.844c.204.17.235.5.064.702z\"></path></svg>`;\nconst starIcon = `<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"28\" viewBox=\"0 0 26 28\"><title>Star</title><path d=\"M26 10.11c0 .28-.203.546-.406.75l-5.672 5.53 1.344 7.812c.016.11.016.203.016.313 0 .406-.187.78-.64.78-.22 0-.44-.077-.626-.186L13 21.42 5.984 25.11c-.203.108-.406.186-.625.186-.454 0-.657-.375-.657-.78 0-.11.016-.204.03-.314L6.08 16.39.39 10.86c-.187-.204-.39-.47-.39-.75 0-.47.483-.657.874-.72l7.844-1.14 3.516-7.11c.14-.297.406-.64.766-.64s.625.343.766.64l3.516 7.11 7.844 1.14c.375.063.875.25.875.72z\"></path></svg>`;\nconst calendarIcon = `<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"28\" viewBox=\"0 0 26 28\"><title>Calendar</title><path d=\"M2 26h22V10H2v16zM8 7V2.5c0-.28-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5V7c0 .28.22.5.5.5h1c.28 0 .5-.22.5-.5zm12 0V2.5c0-.28-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5V7c0 .28.22.5.5.5h1c.28 0 .5-.22.5-.5zm6-1v20c0 1.094-.906 2-2 2H2c-1.094 0-2-.906-2-2V6c0-1.094.906-2 2-2h2V2.5C4 1.125 5.125 0 6.5 0h1C8.875 0 10 1.125 10 2.5V4h6V2.5C16 1.125 17.125 0 18.5 0h1C20.875 0 22 1.125 22 2.5V4h2c1.094 0 2 .906 2 2z\"></path></svg>`;\nconst mIcon = `<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"28\" viewBox=\"0 0 35 28\"><title>Gift</title><path d=\"M16 1.4C7.937 1.4 1.4 7.937 1.4 16S7.937 30.6 16 30.6c8.063 0 14.6-6.537 14.6-14.6S24.063 1.4 16 1.4zm3.38 22.66v-2.55h2L21 13l-4.68 8.36h-.38L11.11 13l-.27 8.55h2v2.55H6.08v-2.55H8l.45-11.5H6.42V7.5h4.54l5.16 9.19 5-9.27h4.51v2.55h-2.04l.61 11.49h2v2.55z\"></path></svg>`;\n\nconst TABLET = 768;\nconst DESKTOP = 1024;\nconst ANIMATION_OUT_SPEED = 400;\nconst ANIMATION_IN_SPEED = 800;\n\nconst ATTRIBUTE_LOCK = 'lock';\nconst WITH_ITEMS = 'data-items';\nconst LOCK_FULL = 'full';\n\nconst ELEMENT_NAME = 'umd-element-utility-header';\n\nconst IS_LOCK_FULL = `[${ATTRIBUTE_LOCK}=${LOCK_FULL}]`;\nconst IS_HAS_ITEMS = `[${WITH_ITEMS}=\"true\"]`;\nconst IS_WITHOUT_ITEMS = `[${WITH_ITEMS}=\"false\"]`;\n\nconst ELEMENT_UTILITY_DECLARATION = 'element-utility-declaration';\nconst ELEMENT_UTILITY_CONTAINTER = 'element-utility-container';\nconst ELEMENT_UTILITY_LOCK = 'umd-element-nav-utility-lock';\nconst ELEMENT_UTILITY_WRAPPER = 'umd-element-nav-utility-wrapper';\nconst ELEMENT_UTILITY_LOGO = 'umd-element-nav-utility-logo';\nconst ELEMENT_UTILITY_LOGO_COLUMN = 'umd-element-nav-utility-logo-column';\nconst ELEMENT_UTILITY_MENU = 'umd-element-nav-utility-menu';\nconst ELEMENT_UTILITY_MOBILE_MENU = 'umd-element-nav-utility-mobile-menu';\nconst ELEMENT_UTILITY_MOBILE_BUTTON = 'umd-element-nav-utility-mobile-button';\nconst ELEMENT_UTILITY_SEARCH_BUTTON = 'umd-element-nav-utility-search-button';\n\nconst OVERWRITE_LOCK_FULL = `.${ELEMENT_UTILITY_CONTAINTER}${IS_LOCK_FULL} .${ELEMENT_UTILITY_LOCK}`;\n\nconst OVERWRITE_CONTAINER_WITH_ITEMS = `.${ELEMENT_UTILITY_CONTAINTER}${IS_HAS_ITEMS}`;\nconst OVERWRITE_CONTAINER_WITHOUT_ITEMS = `.${ELEMENT_UTILITY_CONTAINTER}${IS_WITHOUT_ITEMS}`;\nconst OVERWRIE_WRAPPER_WITH_ITEMS = `${OVERWRITE_CONTAINER_WITH_ITEMS} .${ELEMENT_UTILITY_WRAPPER}`;\nconst OVERWRIE_WRAPPER_WITHOUT_ITEMS = `${OVERWRITE_CONTAINER_WITHOUT_ITEMS} .${ELEMENT_UTILITY_WRAPPER}`;\n\nconst isDesktop = () => window.innerWidth >= DESKTOP;\n\nconst TOP_TWENTY_TEXT = `A Top 20 Public Research University`;\n\n// prettier-ignore\nconst LockStyles = `\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_UTILITY_LOCK}`]: layout.space.horizontal.larger,\n },\n })}\n\n ${jssToCSS({\n styleObj: {\n [`${OVERWRITE_LOCK_FULL}`]: layout.space.horizontal.full,\n },\n })}\n`;\n\n// prettier-ignore\nconst WrapperStyles = `\n .${ELEMENT_UTILITY_WRAPPER} {\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: relative;\n min-height: 44px;\n }\n\n .${ELEMENT_UTILITY_WRAPPER} > a {\n color: ${token.color.white};\n text-transform: uppercase;\n }\n\n .${ELEMENT_UTILITY_WRAPPER} > a:hover,\n .${ELEMENT_UTILITY_WRAPPER} > a:focus {\n text-decoration: underline;\n }\n\n ${OVERWRIE_WRAPPER_WITHOUT_ITEMS} {\n display: flex;\n justify-content: center;\n justify-self: center;\n }\n`;\n\n// prettier-ignore\nconst MenuStyles = `\n .${ELEMENT_UTILITY_MENU} {\n display: flex;\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MENU} {\n flex-direction: column;\n }\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MENU} {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n }\n\n .${ELEMENT_UTILITY_MENU} a {\n color: ${token.color.white};\n text-decoration: none;\n text-transform: uppercase;\n }\n\n .${ELEMENT_UTILITY_MENU} > * {\n display: flex;\n align-items: center;\n gap: 4px;\n height: 100%;\n padding: ${token.spacing.min} ${token.spacing.sm};\n font-weight: 700;\n font-size: 13px;\n transition: background ${ANIMATION_IN_SPEED}ms;\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MENU} > * {\n justify-content: space-between;\n }\n }\n\n .${ELEMENT_UTILITY_MENU} > *[aria-expanded=\"true\"] {\n background-color: ${token.color.redDark};\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_CONTAINTER} .${ELEMENT_UTILITY_MENU} > * {\n border-top: 1px solid ${token.color.gray.lighter};\n color: ${token.color.red};\n order: 2;\n transition: background ${ANIMATION_OUT_SPEED}ms, color ${ANIMATION_OUT_SPEED}ms;\n }\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MENU} > *:first-child {\n border-top: none;\n }\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MENU} > a:hover,\n .${ELEMENT_UTILITY_MENU} > a:focus {\n background-color: ${token.color.red};\n color: ${token.color.white};\n transition: background ${ANIMATION_IN_SPEED}ms, color ${ANIMATION_IN_SPEED}ms;\n }\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MENU} > *:hover,\n .${ELEMENT_UTILITY_MENU} > *:focus {\n background-color: ${token.color.redDark};\n }\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MENU} > a:hover svg,\n .${ELEMENT_UTILITY_MENU} > a:focus svg {\n fill: ${token.color.white};\n }\n }\n\n .${ELEMENT_UTILITY_SEARCH_BUTTON} svg {\n height: 22px;\n width: inherit;\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_SEARCH_BUTTON} {\n display: none;\n }\n }\n\n .${ELEMENT_UTILITY_MENU} svg {\n max-width: 15px;\n transition: fill ${ANIMATION_OUT_SPEED}ms;\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MENU} svg {\n fill: ${token.color.red};\n transition: fill ${ANIMATION_IN_SPEED}ms;\n }\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MENU} svg {\n fill: ${token.color.white};\n }\n }\n`;\n\n// prettier-ignore\nconst MobileMenuStyles = `\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU} {\n position: absolute;\n left: -${token.spacing['2xl']};\n right: -${token.spacing['2xl']};\n top: 44px;\n box-shadow: 0 5px 5px 1px rgba(0, 0, 0, .2);\n height: 0;\n overflow: hidden;\n transition: height ${ANIMATION_OUT_SPEED}ms;\n display: flex;\n flex-direction: column;\n background-color: ${token.color.white};\n }\n }\n\n @container (max-width: ${TABLET - 1}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU} {\n left: -${token.spacing.md};\n right: -${token.spacing.md};\n }\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU} {\n display: flex;\n height: inherit !important;\n margin-left: auto;\n position: relative;\n margin-right: -${token.spacing.md};\n }\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU}[aria-hidden=\"true\"] {\n transition: height ${ANIMATION_OUT_SPEED}ms;\n display: none;\n }\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU}[aria-hidden=\"false\"] {\n transition: height ${ANIMATION_IN_SPEED}ms;\n }\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU} > button {\n display: none;\n }\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU} > button {\n transition: background ${ANIMATION_OUT_SPEED}ms;\n }\n }\n`\n\n// prettier-ignore\nconst MobileButtonStyles = `\n .${ELEMENT_UTILITY_MOBILE_BUTTON} {\n margin-left: auto;\n height: 100%;\n padding: ${token.spacing.xs} ${token.spacing.md};\n margin-right: -${token.spacing.md};\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n @media (min-width: ${TABLET}px) {\n margin-right: -${token.spacing['2xl']};\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MOBILE_BUTTON} {\n display: none;\n }\n }\n\n .${ELEMENT_UTILITY_MOBILE_BUTTON}:hover,\n .${ELEMENT_UTILITY_MOBILE_BUTTON}:focus {\n background-color: ${token.color.redDark};\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MOBILE_BUTTON} svg {\n fill: ${token.color.white};\n width: 18px;\n height: 18px;\n }\n }\n`;\n\n// prettier-ignore\nconst LogoStyles = `\n .${ELEMENT_UTILITY_LOGO_COLUMN} {\n display: flex;\n opacity: 0;\n transition: opacity .3s ease-in;\n padding: 10px 0;\n }\n\n @media (max-width: ${TABLET - 1}px) {\n .${ELEMENT_UTILITY_LOGO_COLUMN} {\n flex-direction: column;\n gap: ${token.spacing.min};\n text-align: center;\n }\n }\n\n @media (min-width: ${TABLET}px) {\n .${ELEMENT_UTILITY_LOGO_COLUMN} {\n align-items: center;\n gap: ${token.spacing.xs};\n }\n }\n\n .${ELEMENT_UTILITY_LOGO_COLUMN} * {\n color: ${token.color.white};\n\n }\n\n .${ELEMENT_UTILITY_LOGO_COLUMN} > p {\n display: block;\n font-size: 11px;\n }\n\n @media (max-width: ${TABLET - 1}px) {\n ${OVERWRIE_WRAPPER_WITH_ITEMS} .${ELEMENT_UTILITY_LOGO_COLUMN} > p {\n display: none;\n }\n }\n\n @media (min-width: ${TABLET}px) {\n .${ELEMENT_UTILITY_LOGO_COLUMN} > p {\n position: relative;\n font-size: 13px;\n }\n\n .${ELEMENT_UTILITY_LOGO_COLUMN} > p:before {\n content: '';\n position: absolute;\n left: -7px;\n height: 100%;\n width: 1px;\n background-color: ${token.color.white};\n }\n }\n\n .${ELEMENT_UTILITY_LOGO} {\n font-family: Crimson Text, Georgia, serif;\n letter-spacing: 1px;\n font-size: 14px;\n text-transform: uppercase;\n }\n`;\n\nlet STYLES_NAVIGATION_UTILITY = `\n .${ELEMENT_UTILITY_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n .${ELEMENT_UTILITY_CONTAINTER} {\n display: block;\n background-color: ${token.color.red};\n position: relative;\n z-index: 999;\n }\n\n ${LockStyles}\n ${WrapperStyles}\n ${LogoStyles}\n ${MenuStyles}\n ${MobileButtonStyles}\n ${MobileMenuStyles}\n ${STYLES_NAV_ALERT}\n ${UtilitySearch.Styles}\n`;\n\nconst CreateSearchFormButton = ({\n expandElement,\n}: {\n expandElement: HTMLDivElement | HTMLFormElement;\n}) => {\n const button = document.createElement('button');\n const elements = Array.from(expandElement.querySelectorAll('div'));\n let focusCallback = () => {};\n\n const eventClose = () => {\n expandElement.style.height = `0`;\n\n setTimeout(() => {\n expandElement.style.display = 'none';\n expandElement.setAttribute('aria-hidden', 'true');\n button.setAttribute('aria-expanded', 'false');\n button.focus();\n\n if (focusCallback) {\n focusCallback();\n focusCallback = () => {};\n }\n }, ANIMATION_OUT_SPEED + 100);\n };\n\n const eventOpen = () => {\n const focusElement = expandElement.querySelector(\n 'input[type=\"text\"]',\n ) as HTMLInputElement;\n\n expandElement.style.display = 'block';\n\n setTimeout(() => {\n const size = elements.reduce((accumulator, currentValue) => {\n return accumulator + currentValue.offsetHeight;\n }, 0);\n\n expandElement.setAttribute('aria-hidden', 'false');\n expandElement.style.height = `${size}px`;\n button.setAttribute('aria-expanded', 'true');\n if (focusElement) focusElement.focus();\n }, 100);\n\n focusCallback = handleKeyboardNavigation({\n element: expandElement,\n action: () => eventClose(),\n });\n };\n\n button.setAttribute('aria-label', 'enable the search form');\n button.setAttribute('type', 'button');\n button.innerHTML = `${iconSearch}`;\n button.setAttribute('aria-controls', UtilitySearch.Elements.form);\n button.classList.add(ELEMENT_UTILITY_SEARCH_BUTTON);\n button.setAttribute('aria-expanded', 'false');\n\n button.addEventListener('click', () => {\n const isExpanded = button.getAttribute('aria-expanded') === 'true';\n\n if (isExpanded) {\n eventClose();\n } else {\n eventOpen();\n }\n });\n\n return button;\n};\n\nconst CreateMobileMenuButton = ({\n expandElement,\n}: {\n expandElement: HTMLDivElement;\n}) => {\n const button = document.createElement('button');\n let focusCallback = () => {};\n\n const eventClose = () => {\n expandElement.style.height = `0`;\n\n setTimeout(() => {\n expandElement.style.display = 'none';\n expandElement.setAttribute('aria-hidden', 'true');\n button.setAttribute('aria-expanded', 'false');\n button.focus();\n\n if (focusCallback) {\n focusCallback();\n focusCallback = () => {};\n }\n }, ANIMATION_OUT_SPEED + 100);\n };\n\n const eventOpen = () => {\n const wrapper = expandElement.querySelector(\n `.${ELEMENT_UTILITY_MENU}`,\n ) as HTMLElement;\n const focusElement = expandElement.querySelector('a') as HTMLAnchorElement;\n\n expandElement.style.display = 'block';\n\n setTimeout(() => {\n expandElement.setAttribute('aria-hidden', 'false');\n expandElement.style.height = `${wrapper.offsetHeight}px`;\n button.setAttribute('aria-expanded', 'true');\n if (focusElement) focusElement.focus();\n }, 100);\n\n focusCallback = handleKeyboardNavigation({\n element: expandElement,\n action: () => eventClose(),\n });\n };\n\n button.innerHTML = `${iconChevronDown}`;\n button.setAttribute('type', 'button');\n button.setAttribute('aria-label', 'toggle mobile menu');\n button.setAttribute('aria-controls', `${ELEMENT_UTILITY_MOBILE_MENU}`);\n button.classList.add(ELEMENT_UTILITY_MOBILE_BUTTON);\n\n button.addEventListener('click', () => {\n const isExpanded = button.getAttribute('aria-expanded') === 'true';\n\n if (isExpanded) {\n eventClose();\n } else {\n eventOpen();\n }\n });\n\n return button;\n};\n\nconst createLogoElement = () => {\n const logo = document.createElement('a');\n\n logo.innerHTML = 'University of Maryland';\n logo.setAttribute('href', 'https://umd.edu');\n logo.setAttribute('target', '_blank');\n logo.setAttribute('rel', 'noopener noreferrer');\n logo.classList.add(ELEMENT_UTILITY_LOGO);\n\n return logo;\n};\n\nconst createLogoColumn = () => {\n const container = document.createElement('div');\n const text = document.createElement('p');\n const logo = createLogoElement();\n\n text.innerHTML = TOP_TWENTY_TEXT;\n\n container.appendChild(logo);\n container.appendChild(text);\n container.classList.add(ELEMENT_UTILITY_LOGO_COLUMN);\n\n setTimeout(() => {\n container.style.opacity = '1';\n }, 400);\n\n return container;\n};\n\nconst CreateMenuItems = ({\n isAdmissionsFeed,\n isEventsFeed,\n isGiftsFeed,\n isNewsFeed,\n isSchoolsFeed,\n isSearch,\n giftUrl,\n isSearchDomain,\n}: TypeMenuItemsRequirements) => {\n const container = document.createElement('div');\n\n const isValidUrl = (url: string) => {\n try {\n new URL(url);\n } catch (e) {\n return false;\n }\n return true;\n };\n\n const makeLinkElement = ({\n name,\n icon,\n url,\n }: {\n name: string;\n icon: string;\n url: string;\n }) => {\n const tag = document.createElement('a');\n\n tag.setAttribute('href', url);\n tag.setAttribute('target', '_blank');\n tag.setAttribute('rel', 'noopener noreferrer');\n tag.innerHTML = `${icon} <span>${name}</span>`;\n\n return tag;\n };\n\n let hasItems = false;\n\n if (isAdmissionsFeed) {\n hasItems = true;\n\n container.appendChild(\n makeLinkElement({\n name: 'Admissions',\n url: 'https://umd.edu/admissions',\n icon: flagIcon,\n }),\n );\n }\n\n if (isSchoolsFeed) {\n hasItems = true;\n\n container.appendChild(\n makeLinkElement({\n name: 'Colleges & Schools',\n url: 'https://umd.edu/colleges-and-schools',\n icon: homeIcon,\n }),\n );\n }\n\n if (isNewsFeed) {\n hasItems = true;\n\n container.appendChild(\n makeLinkElement({\n name: 'News',\n url: 'https://today.umd.edu/',\n icon: starIcon,\n }),\n );\n }\n\n if (isEventsFeed) {\n hasItems = true;\n\n container.appendChild(\n makeLinkElement({\n name: 'Events',\n url: 'https://calendar.umd.edu',\n icon: calendarIcon,\n }),\n );\n }\n\n if (isGiftsFeed) {\n hasItems = true;\n const getURL = () => {\n const defaultURL = 'https://giving.umd.edu/giving';\n\n if (!giftUrl) return defaultURL;\n\n const validURL = giftUrl ? isValidUrl(giftUrl) : null;\n return validURL ? giftUrl : defaultURL;\n };\n\n container.appendChild(\n makeLinkElement({\n name: 'Make a Gift',\n url: getURL(),\n icon: mIcon,\n }),\n );\n }\n\n if (isSearch || isSearchDomain) {\n hasItems = true;\n const formElement = UtilitySearch.CreateElement({ isSearchDomain });\n const button = CreateSearchFormButton({\n expandElement: formElement,\n });\n\n container.appendChild(button);\n container.appendChild(formElement);\n }\n\n container.classList.add(ELEMENT_UTILITY_MENU);\n\n if (!hasItems) return null;\n\n return container;\n};\n\nconst CreateNavigationUtility = (props: TypeUtilityRequirements) =>\n (() => {\n {\n const { isLockFull, isAlertOff } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const lock = document.createElement('div');\n const wrapper = document.createElement('div');\n const logoColumn = createLogoColumn();\n\n const secondaryCta = {\n ...elementStyles.action.secondary.normal,\n className: `${ALERT_CONSTANTS.ELEMENTS.CTA}`,\n };\n\n let styles = STYLES_NAVIGATION_UTILITY + jssEntryToCSS(secondaryCta);\n\n const setLayout = () => {\n const menuItems = CreateMenuItems({ ...props });\n const mobileMenu = document.createElement('div');\n const mobileMenuButton = CreateMobileMenuButton({\n expandElement: mobileMenu,\n });\n\n mobileMenu.setAttribute('id', `${ELEMENT_UTILITY_MOBILE_MENU}`);\n mobileMenu.classList.add(ELEMENT_UTILITY_MOBILE_MENU);\n mobileMenu.setAttribute('aria-hidden', (!isDesktop()).toString());\n\n if (menuItems) {\n mobileMenu.appendChild(menuItems);\n wrapper.appendChild(mobileMenuButton);\n wrapper.appendChild(mobileMenu);\n container.setAttribute(WITH_ITEMS, 'true');\n } else {\n container.setAttribute(WITH_ITEMS, 'false');\n }\n };\n\n const resizeEvent = () => {\n const isDesktop = window.innerWidth >= DESKTOP;\n\n const form = container.querySelector(`.${UtilitySearch.Elements.form}`);\n const menu = container.querySelector(`.${ELEMENT_UTILITY_MOBILE_MENU}`);\n\n if (!form || !menu) return;\n\n if (isDesktop) {\n menu.setAttribute('aria-hidden', 'false');\n form.setAttribute('aria-hidden', 'true');\n form.setAttribute('layout', 'desktop');\n } else {\n menu.setAttribute('aria-hidden', 'true');\n form.setAttribute('aria-hidden', 'false');\n form.setAttribute('layout', 'mobile');\n }\n };\n\n const load = async () => {\n if (!isAlertOff) {\n const alert = await createNavAlert(props);\n\n if (alert) {\n container.insertBefore(alert?.element, container.firstChild);\n }\n }\n\n setLayout();\n resizeEvent();\n };\n\n const showAlert = async () => {\n const isCurrentAlert = container.querySelector(\n `.${ALERT_CONSTANTS.ELEMENTS.CONTAINER}`,\n );\n\n if (isCurrentAlert) return;\n\n const alert = await createNavAlert(props);\n\n if (alert) {\n container.insertBefore(alert?.element, container.firstChild);\n }\n };\n\n const hideAlert = () => {\n const alert = container.querySelector(\n `.${ALERT_CONSTANTS.ELEMENTS.CONTAINER}`,\n );\n\n if (alert) {\n alert.remove();\n }\n };\n\n wrapper.appendChild(logoColumn);\n wrapper.classList.add(ELEMENT_UTILITY_WRAPPER);\n\n lock.appendChild(wrapper);\n lock.classList.add(ELEMENT_UTILITY_LOCK);\n\n container.appendChild(lock);\n container.classList.add(ELEMENT_UTILITY_CONTAINTER);\n if (isLockFull) container.setAttribute(ATTRIBUTE_LOCK, LOCK_FULL);\n\n declaration.appendChild(container);\n declaration.classList.add(ELEMENT_UTILITY_DECLARATION);\n\n load();\n window.addEventListener('resize', resizeEvent);\n\n return {\n element: declaration,\n styles,\n events: {\n showAlert,\n hideAlert,\n },\n };\n }\n })();\n\nexport const createCompositeNavigationUtility = CreateNavigationUtility;\n"],"names":["UtilitySearch","iconSearch","iconChevronDown","isDesktop"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../source/composite/navigation/utility/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as elementStyles from '@universityofmaryland/web-styles-library/element';\nimport * as layout from '@universityofmaryland/web-styles-library/layout';\nimport {\n jssToCSS,\n jssEntryToCSS,\n} from '@universityofmaryland/web-utilities-library/styles';\nimport { handleKeyboardNavigation } from '@universityofmaryland/web-utilities-library/events';\nimport { search as iconSearch } from '@universityofmaryland/web-icons-library/search';\nimport { chevron_down as iconChevronDown } from '@universityofmaryland/web-icons-library/controls';\nimport {\n createNavAlert,\n STYLES_NAV_ALERT,\n ALERT_CONSTANTS,\n TypeAlertProps,\n} from './alert';\nimport { createCompositeNavigationSearch as UtilitySearch } from './search';\n\ntype TypeMenuItemsRequirements = {\n alertUrl?: string | null;\n giftUrl?: string;\n isAdmissionsFeed: boolean;\n isAlertOff?: boolean;\n isEventsFeed: boolean;\n isGiftsFeed: boolean;\n isLockFull?: boolean;\n isNewsFeed: boolean;\n isSchoolsFeed: boolean;\n isSearch: boolean;\n isSearchDomain?: boolean;\n};\n\ntype TypeUtilityRequirements = TypeMenuItemsRequirements & TypeAlertProps;\n\nconst flagIcon = `<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\"><title>Flag</title><path d=\"M5 4c0 .72-.39 1.36-1 1.72V25.5c0 .266-.234.5-.5.5h-1c-.266 0-.5-.234-.5-.5V5.72c-.61-.36-1-1-1-1.72 0-1.11.89-2 2-2s2 .89 2 2zm23 1v11.922c0 .578-.36.797-.812 1.03-1.766.954-3.72 1.814-5.766 1.814-2.875 0-4.25-2.188-7.656-2.188-2.484 0-5.094 1.125-7.25 2.28-.172.095-.328.142-.516.142-.547 0-1-.453-1-1V7.406c0-.375.187-.64.484-.86.375-.25.828-.468 1.234-.67 1.97-1 4.36-1.876 6.578-1.876 2.453 0 4.375.812 6.547 1.828.438.22.89.297 1.375.297C23.67 6.125 26.312 4 26.998 4c.548 0 1 .453 1 1z\"></path></svg>`;\nconst homeIcon = `<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"28\" viewBox=\"0 0 26 28\"><title>School</title><path d=\"M22 15.5V23c0 .547-.453 1-1 1h-6v-6h-4v6H5c-.547 0-1-.453-1-1v-7.5c0-.03.016-.063.016-.094L13 8l8.984 7.406c.016.03.016.063.016.094zm3.484-1.078l-.97 1.156c-.077.094-.202.156-.327.172h-.047c-.125 0-.234-.03-.328-.11L13 6.626 2.185 15.64c-.11.08-.234.126-.375.11-.124-.016-.25-.078-.327-.172l-.97-1.156c-.17-.203-.14-.53.064-.703L11.81 4.36c.657-.547 1.72-.547 2.376 0L18 7.547V4.5c0-.28.218-.5.5-.5h3c.28 0 .5.22.5.5v6.375l3.42 2.844c.204.17.235.5.064.702z\"></path></svg>`;\nconst starIcon = `<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"28\" viewBox=\"0 0 26 28\"><title>Star</title><path d=\"M26 10.11c0 .28-.203.546-.406.75l-5.672 5.53 1.344 7.812c.016.11.016.203.016.313 0 .406-.187.78-.64.78-.22 0-.44-.077-.626-.186L13 21.42 5.984 25.11c-.203.108-.406.186-.625.186-.454 0-.657-.375-.657-.78 0-.11.016-.204.03-.314L6.08 16.39.39 10.86c-.187-.204-.39-.47-.39-.75 0-.47.483-.657.874-.72l7.844-1.14 3.516-7.11c.14-.297.406-.64.766-.64s.625.343.766.64l3.516 7.11 7.844 1.14c.375.063.875.25.875.72z\"></path></svg>`;\nconst calendarIcon = `<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"28\" viewBox=\"0 0 26 28\"><title>Calendar</title><path d=\"M2 26h22V10H2v16zM8 7V2.5c0-.28-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5V7c0 .28.22.5.5.5h1c.28 0 .5-.22.5-.5zm12 0V2.5c0-.28-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5V7c0 .28.22.5.5.5h1c.28 0 .5-.22.5-.5zm6-1v20c0 1.094-.906 2-2 2H2c-1.094 0-2-.906-2-2V6c0-1.094.906-2 2-2h2V2.5C4 1.125 5.125 0 6.5 0h1C8.875 0 10 1.125 10 2.5V4h6V2.5C16 1.125 17.125 0 18.5 0h1C20.875 0 22 1.125 22 2.5V4h2c1.094 0 2 .906 2 2z\"></path></svg>`;\nconst mIcon = `<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"28\" viewBox=\"0 0 35 28\"><title>Gift</title><path d=\"M16 1.4C7.937 1.4 1.4 7.937 1.4 16S7.937 30.6 16 30.6c8.063 0 14.6-6.537 14.6-14.6S24.063 1.4 16 1.4zm3.38 22.66v-2.55h2L21 13l-4.68 8.36h-.38L11.11 13l-.27 8.55h2v2.55H6.08v-2.55H8l.45-11.5H6.42V7.5h4.54l5.16 9.19 5-9.27h4.51v2.55h-2.04l.61 11.49h2v2.55z\"></path></svg>`;\n\nconst TABLET = 768;\nconst DESKTOP = 1024;\nconst ANIMATION_OUT_SPEED = 400;\nconst ANIMATION_IN_SPEED = 800;\n\nconst ATTRIBUTE_LOCK = 'lock';\nconst WITH_ITEMS = 'data-items';\nconst LOCK_FULL = 'full';\n\nconst ELEMENT_NAME = 'umd-element-utility-header';\n\nconst IS_LOCK_FULL = `[${ATTRIBUTE_LOCK}=${LOCK_FULL}]`;\nconst IS_HAS_ITEMS = `[${WITH_ITEMS}=\"true\"]`;\nconst IS_WITHOUT_ITEMS = `[${WITH_ITEMS}=\"false\"]`;\n\nconst ELEMENT_UTILITY_DECLARATION = 'element-utility-declaration';\nconst ELEMENT_UTILITY_CONTAINTER = 'element-utility-container';\nconst ELEMENT_UTILITY_LOCK = 'umd-element-nav-utility-lock';\nconst ELEMENT_UTILITY_WRAPPER = 'umd-element-nav-utility-wrapper';\nconst ELEMENT_UTILITY_LOGO = 'umd-element-nav-utility-logo';\nconst ELEMENT_UTILITY_LOGO_COLUMN = 'umd-element-nav-utility-logo-column';\nconst ELEMENT_UTILITY_MENU = 'umd-element-nav-utility-menu';\nconst ELEMENT_UTILITY_MOBILE_MENU = 'umd-element-nav-utility-mobile-menu';\nconst ELEMENT_UTILITY_MOBILE_BUTTON = 'umd-element-nav-utility-mobile-button';\nconst ELEMENT_UTILITY_SEARCH_BUTTON = 'umd-element-nav-utility-search-button';\n\nconst OVERWRITE_LOCK_FULL = `.${ELEMENT_UTILITY_CONTAINTER}${IS_LOCK_FULL} .${ELEMENT_UTILITY_LOCK}`;\n\nconst OVERWRITE_CONTAINER_WITH_ITEMS = `.${ELEMENT_UTILITY_CONTAINTER}${IS_HAS_ITEMS}`;\nconst OVERWRITE_CONTAINER_WITHOUT_ITEMS = `.${ELEMENT_UTILITY_CONTAINTER}${IS_WITHOUT_ITEMS}`;\nconst OVERWRIE_WRAPPER_WITH_ITEMS = `${OVERWRITE_CONTAINER_WITH_ITEMS} .${ELEMENT_UTILITY_WRAPPER}`;\nconst OVERWRIE_WRAPPER_WITHOUT_ITEMS = `${OVERWRITE_CONTAINER_WITHOUT_ITEMS} .${ELEMENT_UTILITY_WRAPPER}`;\n\nconst isDesktop = () => window.innerWidth >= DESKTOP;\n\nconst TOP_TWENTY_TEXT = `A Top 20 Public Research University`;\n\n// prettier-ignore\nconst LockStyles = `\n ${jssToCSS({\n styleObj: {\n [`.${ELEMENT_UTILITY_LOCK}`]: layout.space.horizontal.larger,\n },\n })}\n\n ${jssToCSS({\n styleObj: {\n [`${OVERWRITE_LOCK_FULL}`]: layout.space.horizontal.full,\n },\n })}\n`;\n\n// prettier-ignore\nconst WrapperStyles = `\n .${ELEMENT_UTILITY_WRAPPER} {\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: relative;\n min-height: 44px;\n }\n\n .${ELEMENT_UTILITY_WRAPPER} > a {\n color: ${token.color.white};\n text-transform: uppercase;\n }\n\n .${ELEMENT_UTILITY_WRAPPER} > a:hover,\n .${ELEMENT_UTILITY_WRAPPER} > a:focus {\n text-decoration: underline;\n }\n\n ${OVERWRIE_WRAPPER_WITHOUT_ITEMS} {\n display: flex;\n justify-content: center;\n justify-self: center;\n }\n`;\n\n// prettier-ignore\nconst MenuStyles = `\n .${ELEMENT_UTILITY_MENU} {\n display: flex;\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MENU} {\n flex-direction: column;\n }\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MENU} {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n }\n\n .${ELEMENT_UTILITY_MENU} a {\n color: ${token.color.white};\n text-decoration: none;\n text-transform: uppercase;\n }\n\n .${ELEMENT_UTILITY_MENU} > * {\n display: flex;\n align-items: center;\n gap: 4px;\n height: 100%;\n padding: ${token.spacing.min} ${token.spacing.sm};\n font-weight: 700;\n font-size: 13px;\n transition: background ${ANIMATION_IN_SPEED}ms;\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MENU} > * {\n justify-content: space-between;\n }\n }\n\n .${ELEMENT_UTILITY_MENU} > *[aria-expanded=\"true\"] {\n background-color: ${token.color.redDark};\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_CONTAINTER} .${ELEMENT_UTILITY_MENU} > * {\n border-top: 1px solid ${token.color.gray.lighter};\n color: ${token.color.red};\n order: 2;\n transition: background ${ANIMATION_OUT_SPEED}ms, color ${ANIMATION_OUT_SPEED}ms;\n }\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MENU} > *:first-child {\n border-top: none;\n }\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MENU} > a:hover,\n .${ELEMENT_UTILITY_MENU} > a:focus {\n background-color: ${token.color.red};\n color: ${token.color.white};\n transition: background ${ANIMATION_IN_SPEED}ms, color ${ANIMATION_IN_SPEED}ms;\n }\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MENU} > *:hover,\n .${ELEMENT_UTILITY_MENU} > *:focus {\n background-color: ${token.color.redDark};\n }\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MENU} > a:hover svg,\n .${ELEMENT_UTILITY_MENU} > a:focus svg {\n fill: ${token.color.white};\n }\n }\n\n .${ELEMENT_UTILITY_SEARCH_BUTTON} svg {\n height: 22px;\n width: inherit;\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_SEARCH_BUTTON} {\n display: none;\n }\n }\n\n .${ELEMENT_UTILITY_MENU} svg {\n max-width: 15px;\n transition: fill ${ANIMATION_OUT_SPEED}ms;\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MENU} svg {\n fill: ${token.color.red};\n transition: fill ${ANIMATION_IN_SPEED}ms;\n }\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MENU} svg {\n fill: ${token.color.white};\n }\n }\n`;\n\n// prettier-ignore\nconst MobileMenuStyles = `\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU} {\n position: absolute;\n left: -${token.spacing['2xl']};\n right: -${token.spacing['2xl']};\n top: 44px;\n box-shadow: 0 5px 5px 1px rgba(0, 0, 0, .2);\n height: 0;\n overflow: hidden;\n transition: height ${ANIMATION_OUT_SPEED}ms;\n display: flex;\n flex-direction: column;\n background-color: ${token.color.white};\n }\n }\n\n @container (max-width: ${TABLET - 1}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU} {\n left: -${token.spacing.md};\n right: -${token.spacing.md};\n }\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU} {\n display: flex;\n height: inherit !important;\n margin-left: auto;\n position: relative;\n margin-right: -${token.spacing.md};\n }\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU}[aria-hidden=\"true\"] {\n transition: height ${ANIMATION_OUT_SPEED}ms;\n display: none;\n }\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU}[aria-hidden=\"false\"] {\n transition: height ${ANIMATION_IN_SPEED}ms;\n }\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU} > button {\n display: none;\n }\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MOBILE_MENU} > button {\n transition: background ${ANIMATION_OUT_SPEED}ms;\n }\n }\n`\n\n// prettier-ignore\nconst MobileButtonStyles = `\n .${ELEMENT_UTILITY_MOBILE_BUTTON} {\n margin-left: auto;\n height: 100%;\n padding: ${token.spacing.xs} ${token.spacing.md};\n margin-right: -${token.spacing.md};\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n @media (min-width: ${TABLET}px) {\n margin-right: -${token.spacing['2xl']};\n }\n\n @container (min-width: ${DESKTOP}px) {\n .${ELEMENT_UTILITY_MOBILE_BUTTON} {\n display: none;\n }\n }\n\n .${ELEMENT_UTILITY_MOBILE_BUTTON}:hover,\n .${ELEMENT_UTILITY_MOBILE_BUTTON}:focus {\n background-color: ${token.color.redDark};\n }\n\n @container (max-width: ${DESKTOP - 1}px) {\n .${ELEMENT_UTILITY_MOBILE_BUTTON} svg {\n fill: ${token.color.white};\n width: 18px;\n height: 18px;\n }\n }\n`;\n\n// prettier-ignore\nconst LogoStyles = `\n .${ELEMENT_UTILITY_LOGO_COLUMN} {\n display: flex;\n opacity: 0;\n transition: opacity .3s ease-in;\n padding: 10px 0;\n }\n\n @media (max-width: ${TABLET - 1}px) {\n .${ELEMENT_UTILITY_LOGO_COLUMN} {\n flex-direction: column;\n gap: ${token.spacing.min};\n text-align: center;\n }\n }\n\n @media (min-width: ${TABLET}px) {\n .${ELEMENT_UTILITY_LOGO_COLUMN} {\n align-items: center;\n gap: ${token.spacing.xs};\n }\n }\n\n .${ELEMENT_UTILITY_LOGO_COLUMN} * {\n color: ${token.color.white};\n\n }\n\n .${ELEMENT_UTILITY_LOGO_COLUMN} > p {\n display: block;\n font-size: 11px;\n }\n\n @media (max-width: ${TABLET - 1}px) {\n ${OVERWRIE_WRAPPER_WITH_ITEMS} .${ELEMENT_UTILITY_LOGO_COLUMN} > p {\n display: none;\n }\n }\n\n @media (min-width: ${TABLET}px) {\n .${ELEMENT_UTILITY_LOGO_COLUMN} > p {\n position: relative;\n font-size: 13px;\n }\n\n .${ELEMENT_UTILITY_LOGO_COLUMN} > p:before {\n content: '';\n position: absolute;\n left: -7px;\n height: 100%;\n width: 1px;\n background-color: ${token.color.white};\n }\n }\n\n .${ELEMENT_UTILITY_LOGO} {\n font-family: Crimson Text, Georgia, serif;\n letter-spacing: 1px;\n font-size: 14px;\n text-transform: uppercase;\n }\n`;\n\nlet STYLES_NAVIGATION_UTILITY = `\n .${ELEMENT_UTILITY_DECLARATION} {\n container: ${ELEMENT_NAME} / inline-size;\n }\n\n .${ELEMENT_UTILITY_CONTAINTER} {\n display: block;\n background-color: ${token.color.red};\n position: relative;\n z-index: 999;\n }\n\n ${LockStyles}\n ${WrapperStyles}\n ${LogoStyles}\n ${MenuStyles}\n ${MobileButtonStyles}\n ${MobileMenuStyles}\n ${STYLES_NAV_ALERT}\n ${UtilitySearch.Styles}\n`;\n\nconst CreateSearchFormButton = ({\n expandElement,\n}: {\n expandElement: HTMLDivElement | HTMLFormElement;\n}) => {\n const button = document.createElement('button');\n const elements = Array.from(expandElement.querySelectorAll('div'));\n let focusCallback = () => {};\n\n const eventClose = () => {\n expandElement.style.height = `0`;\n\n setTimeout(() => {\n expandElement.style.display = 'none';\n expandElement.setAttribute('aria-hidden', 'true');\n button.setAttribute('aria-expanded', 'false');\n button.focus();\n\n if (focusCallback) {\n focusCallback();\n focusCallback = () => {};\n }\n }, ANIMATION_OUT_SPEED + 100);\n };\n\n const eventOpen = () => {\n const focusElement = expandElement.querySelector(\n 'input[type=\"text\"]',\n ) as HTMLInputElement;\n\n expandElement.style.display = 'block';\n\n setTimeout(() => {\n const size = elements.reduce((accumulator, currentValue) => {\n return accumulator + currentValue.offsetHeight;\n }, 0);\n\n expandElement.setAttribute('aria-hidden', 'false');\n expandElement.style.height = `${size}px`;\n button.setAttribute('aria-expanded', 'true');\n if (focusElement) focusElement.focus();\n }, 100);\n\n focusCallback = handleKeyboardNavigation({\n element: expandElement,\n action: () => eventClose(),\n });\n };\n\n button.setAttribute('aria-label', 'enable the search form');\n button.setAttribute('type', 'button');\n button.innerHTML = `${iconSearch}`;\n button.setAttribute('aria-controls', UtilitySearch.Elements.form);\n button.classList.add(ELEMENT_UTILITY_SEARCH_BUTTON);\n button.setAttribute('aria-expanded', 'false');\n\n button.addEventListener('click', () => {\n const isExpanded = button.getAttribute('aria-expanded') === 'true';\n\n if (isExpanded) {\n eventClose();\n } else {\n eventOpen();\n }\n });\n\n return button;\n};\n\nconst CreateMobileMenuButton = ({\n expandElement,\n}: {\n expandElement: HTMLDivElement;\n}) => {\n const button = document.createElement('button');\n let focusCallback = () => {};\n\n const eventClose = () => {\n expandElement.style.height = `0`;\n\n setTimeout(() => {\n expandElement.style.display = 'none';\n expandElement.setAttribute('aria-hidden', 'true');\n button.setAttribute('aria-expanded', 'false');\n button.focus();\n\n if (focusCallback) {\n focusCallback();\n focusCallback = () => {};\n }\n }, ANIMATION_OUT_SPEED + 100);\n };\n\n const eventOpen = () => {\n const wrapper = expandElement.querySelector(\n `.${ELEMENT_UTILITY_MENU}`,\n ) as HTMLElement;\n const focusElement = expandElement.querySelector('a') as HTMLAnchorElement;\n\n expandElement.style.display = 'block';\n\n setTimeout(() => {\n expandElement.setAttribute('aria-hidden', 'false');\n expandElement.style.height = `${wrapper.offsetHeight}px`;\n button.setAttribute('aria-expanded', 'true');\n if (focusElement) focusElement.focus();\n }, 100);\n\n focusCallback = handleKeyboardNavigation({\n element: expandElement,\n action: () => eventClose(),\n });\n };\n\n button.innerHTML = `${iconChevronDown}`;\n button.setAttribute('type', 'button');\n button.setAttribute('aria-label', 'toggle mobile menu');\n button.setAttribute('aria-controls', `${ELEMENT_UTILITY_MOBILE_MENU}`);\n button.classList.add(ELEMENT_UTILITY_MOBILE_BUTTON);\n\n button.addEventListener('click', () => {\n const isExpanded = button.getAttribute('aria-expanded') === 'true';\n\n if (isExpanded) {\n eventClose();\n } else {\n eventOpen();\n }\n });\n\n return button;\n};\n\nconst createLogoElement = () => {\n const logo = document.createElement('a');\n\n logo.innerHTML = 'University of Maryland';\n logo.setAttribute('href', 'https://umd.edu');\n logo.setAttribute('target', '_blank');\n logo.setAttribute('rel', 'noopener noreferrer');\n logo.classList.add(ELEMENT_UTILITY_LOGO);\n\n return logo;\n};\n\nconst createLogoColumn = () => {\n const container = document.createElement('div');\n const text = document.createElement('p');\n const logo = createLogoElement();\n\n text.innerHTML = TOP_TWENTY_TEXT;\n\n container.appendChild(logo);\n container.appendChild(text);\n container.classList.add(ELEMENT_UTILITY_LOGO_COLUMN);\n\n setTimeout(() => {\n container.style.opacity = '1';\n }, 400);\n\n return container;\n};\n\nconst CreateMenuItems = ({\n isAdmissionsFeed,\n isEventsFeed,\n isGiftsFeed,\n isNewsFeed,\n isSchoolsFeed,\n isSearch,\n giftUrl,\n isSearchDomain,\n}: TypeMenuItemsRequirements) => {\n const container = document.createElement('div');\n\n const isValidUrl = (url: string) => {\n try {\n new URL(url);\n } catch (e) {\n return false;\n }\n return true;\n };\n\n const makeLinkElement = ({\n name,\n icon,\n url,\n }: {\n name: string;\n icon: string;\n url: string;\n }) => {\n const tag = document.createElement('a');\n\n tag.setAttribute('href', url);\n tag.setAttribute('target', '_blank');\n tag.setAttribute('rel', 'noopener noreferrer');\n tag.innerHTML = `${icon} <span>${name}</span>`;\n\n return tag;\n };\n\n let hasItems = false;\n\n if (isAdmissionsFeed) {\n hasItems = true;\n\n container.appendChild(\n makeLinkElement({\n name: 'Admissions',\n url: 'https://umd.edu/admissions',\n icon: flagIcon,\n }),\n );\n }\n\n if (isSchoolsFeed) {\n hasItems = true;\n\n container.appendChild(\n makeLinkElement({\n name: 'Colleges & Schools',\n url: 'https://umd.edu/colleges-and-schools',\n icon: homeIcon,\n }),\n );\n }\n\n if (isNewsFeed) {\n hasItems = true;\n\n container.appendChild(\n makeLinkElement({\n name: 'News',\n url: 'https://today.umd.edu/',\n icon: starIcon,\n }),\n );\n }\n\n if (isEventsFeed) {\n hasItems = true;\n\n container.appendChild(\n makeLinkElement({\n name: 'Events',\n url: 'https://calendar.umd.edu',\n icon: calendarIcon,\n }),\n );\n }\n\n if (isGiftsFeed) {\n hasItems = true;\n const getURL = () => {\n const defaultURL = 'https://giving.umd.edu';\n\n if (!giftUrl) return defaultURL;\n\n const validURL = giftUrl ? isValidUrl(giftUrl) : null;\n return validURL ? giftUrl : defaultURL;\n };\n\n container.appendChild(\n makeLinkElement({\n name: 'Make a Gift',\n url: getURL(),\n icon: mIcon,\n }),\n );\n }\n\n if (isSearch || isSearchDomain) {\n hasItems = true;\n const formElement = UtilitySearch.CreateElement({ isSearchDomain });\n const button = CreateSearchFormButton({\n expandElement: formElement,\n });\n\n container.appendChild(button);\n container.appendChild(formElement);\n }\n\n container.classList.add(ELEMENT_UTILITY_MENU);\n\n if (!hasItems) return null;\n\n return container;\n};\n\nconst CreateNavigationUtility = (props: TypeUtilityRequirements) =>\n (() => {\n {\n const { isLockFull, isAlertOff } = props;\n const declaration = document.createElement('div');\n const container = document.createElement('div');\n const lock = document.createElement('div');\n const wrapper = document.createElement('div');\n const logoColumn = createLogoColumn();\n\n const secondaryCta = {\n ...elementStyles.action.secondary.normal,\n className: `${ALERT_CONSTANTS.ELEMENTS.CTA}`,\n };\n\n let styles = STYLES_NAVIGATION_UTILITY + jssEntryToCSS(secondaryCta);\n\n const setLayout = () => {\n const menuItems = CreateMenuItems({ ...props });\n const mobileMenu = document.createElement('div');\n const mobileMenuButton = CreateMobileMenuButton({\n expandElement: mobileMenu,\n });\n\n mobileMenu.setAttribute('id', `${ELEMENT_UTILITY_MOBILE_MENU}`);\n mobileMenu.classList.add(ELEMENT_UTILITY_MOBILE_MENU);\n mobileMenu.setAttribute('aria-hidden', (!isDesktop()).toString());\n\n if (menuItems) {\n mobileMenu.appendChild(menuItems);\n wrapper.appendChild(mobileMenuButton);\n wrapper.appendChild(mobileMenu);\n container.setAttribute(WITH_ITEMS, 'true');\n } else {\n container.setAttribute(WITH_ITEMS, 'false');\n }\n };\n\n const resizeEvent = () => {\n const isDesktop = window.innerWidth >= DESKTOP;\n\n const form = container.querySelector(`.${UtilitySearch.Elements.form}`);\n const menu = container.querySelector(`.${ELEMENT_UTILITY_MOBILE_MENU}`);\n\n if (!form || !menu) return;\n\n if (isDesktop) {\n menu.setAttribute('aria-hidden', 'false');\n form.setAttribute('aria-hidden', 'true');\n form.setAttribute('layout', 'desktop');\n } else {\n menu.setAttribute('aria-hidden', 'true');\n form.setAttribute('aria-hidden', 'false');\n form.setAttribute('layout', 'mobile');\n }\n };\n\n const load = async () => {\n if (!isAlertOff) {\n const alert = await createNavAlert(props);\n\n if (alert) {\n container.insertBefore(alert?.element, container.firstChild);\n }\n }\n\n setLayout();\n resizeEvent();\n };\n\n const showAlert = async () => {\n const isCurrentAlert = container.querySelector(\n `.${ALERT_CONSTANTS.ELEMENTS.CONTAINER}`,\n );\n\n if (isCurrentAlert) return;\n\n const alert = await createNavAlert(props);\n\n if (alert) {\n container.insertBefore(alert?.element, container.firstChild);\n }\n };\n\n const hideAlert = () => {\n const alert = container.querySelector(\n `.${ALERT_CONSTANTS.ELEMENTS.CONTAINER}`,\n );\n\n if (alert) {\n alert.remove();\n }\n };\n\n wrapper.appendChild(logoColumn);\n wrapper.classList.add(ELEMENT_UTILITY_WRAPPER);\n\n lock.appendChild(wrapper);\n lock.classList.add(ELEMENT_UTILITY_LOCK);\n\n container.appendChild(lock);\n container.classList.add(ELEMENT_UTILITY_CONTAINTER);\n if (isLockFull) container.setAttribute(ATTRIBUTE_LOCK, LOCK_FULL);\n\n declaration.appendChild(container);\n declaration.classList.add(ELEMENT_UTILITY_DECLARATION);\n\n load();\n window.addEventListener('resize', resizeEvent);\n\n return {\n element: declaration,\n styles,\n events: {\n showAlert,\n hideAlert,\n },\n };\n }\n })();\n\nexport const createCompositeNavigationUtility = CreateNavigationUtility;\n"],"names":["UtilitySearch","iconSearch","iconChevronDown","isDesktop"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@universityofmaryland/web-elements-library",
3
- "version": "1.6.6",
3
+ "version": "1.6.8",
4
4
  "description": "UMD Web Elements",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -62,6 +62,7 @@
62
62
  },
63
63
  "devDependencies": {
64
64
  "@vitejs/plugin-legacy": "^7.2.1",
65
+ "typescript": "^5.8.2",
65
66
  "vite": "^7.1.4",
66
67
  "vite-plugin-checker": "^0.10.3",
67
68
  "vite-plugin-dts": "^4.5.4"