@universityofmaryland/web-elements-library 1.6.3 → 1.6.5

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.3-blue)](https://www.npmjs.com/package/@universityofmaryland/web-elements-library)
3
+ [![Elements Version](https://img.shields.io/badge/Elements-v1.6.5-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
 
@@ -7,6 +7,8 @@ export interface PersonContactProps extends PersonCtaProps, Pick<ThemeProps, 'is
7
7
  address?: ContentElement;
8
8
  email?: ContentElement;
9
9
  linkedin?: ContentElement;
10
+ substack?: ContentElement;
11
+ bluesky?: ContentElement;
10
12
  phone?: ContentElement;
11
13
  }
12
14
  export interface PersonTextLockupProps extends PersonCtaProps, Pick<ThemeProps, 'isThemeDark'> {
@@ -1 +1 @@
1
- {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../source/atomic/_types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAKD,MAAM,WAAW,kBACf,SAAQ,cAAc,EACpB,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;IACjC,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAGD,MAAM,WAAW,qBACf,SAAQ,cAAc,EACpB,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,aAAa,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAGD,MAAM,WAAW,4BAA6B,SAAQ,kBAAkB;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,+BAAgC,SAAQ,qBAAqB;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,eACf,SAAQ,qBAAqB,EAC3B,kBAAkB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B"}
1
+ {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../source/atomic/_types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAKD,MAAM,WAAW,kBACf,SAAQ,cAAc,EACpB,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;IACjC,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAGD,MAAM,WAAW,qBACf,SAAQ,cAAc,EACpB,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,aAAa,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAGD,MAAM,WAAW,4BAA6B,SAAQ,kBAAkB;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,+BAAgC,SAAQ,qBAAqB;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,eACf,SAAQ,qBAAqB,EAC3B,kBAAkB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B"}
@@ -1,3 +1,3 @@
1
1
  import { PersonContactProps } from '../_types';
2
- export declare const createTextLockupContact: ({ actions, address, email, isThemeDark, linkedin, phone, }: PersonContactProps) => import('@universityofmaryland/web-builder-library').ElementModel<HTMLElement>;
2
+ export declare const createTextLockupContact: ({ actions, address, email, isThemeDark, linkedin, bluesky, substack, phone, }: PersonContactProps) => import('@universityofmaryland/web-builder-library').ElementModel<HTMLElement>;
3
3
  //# sourceMappingURL=contact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../../../source/atomic/text-lockup/contact.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AA4FpD,eAAO,MAAM,uBAAuB,GAAI,4DAOrC,kBAAkB,kFAuEpB,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;AA4FpD,eAAO,MAAM,uBAAuB,GAAI,+EASrC,kBAAkB,kFAqGpB,CAAC"}
@@ -6,7 +6,7 @@ import * as elementStyles from "@universityofmaryland/web-styles-library/element
6
6
  import { theme } from "@universityofmaryland/web-utilities-library/theme";
7
7
  import { phone, email } from "@universityofmaryland/web-icons-library/communication";
8
8
  import { pin } from "@universityofmaryland/web-icons-library/location";
9
- import { linkedin } from "@universityofmaryland/web-icons-library/social";
9
+ import { linkedin, bluesky, substack } from "@universityofmaryland/web-icons-library/social";
10
10
  const makeIcon = ({
11
11
  icon,
12
12
  isThemeDark
@@ -68,6 +68,8 @@ const createTextLockupContact = ({
68
68
  email: email$1,
69
69
  isThemeDark,
70
70
  linkedin: linkedin$1,
71
+ bluesky: bluesky$1,
72
+ substack: substack$1,
71
73
  phone: phone$1
72
74
  }) => {
73
75
  const container = new ElementBuilder().withClassName("text-lockup-contact").withStyles({
@@ -97,6 +99,26 @@ const createTextLockupContact = ({
97
99
  ).build();
98
100
  container.withChild(linkedInElement);
99
101
  }
102
+ if (bluesky$1) {
103
+ const blueSkyElement = new ElementBuilder().withClassName("text-lockup-contact-bluesky").withChild(
104
+ makeContactLink({
105
+ element: bluesky$1,
106
+ icon: bluesky,
107
+ isThemeDark
108
+ })
109
+ ).build();
110
+ container.withChild(blueSkyElement);
111
+ }
112
+ if (substack$1) {
113
+ const substackElement = new ElementBuilder().withClassName("text-lockup-contact-substack").withChild(
114
+ makeContactLink({
115
+ element: substack$1,
116
+ icon: substack,
117
+ isThemeDark
118
+ })
119
+ ).build();
120
+ container.withChild(substackElement);
121
+ }
100
122
  if (address) {
101
123
  const addressElement = new ElementBuilder().withClassName("text-lockup-contact-address").withChild(
102
124
  makeContactLink({ element: address, icon: pin, isThemeDark })
@@ -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 { linkedin as iconLinkedIn } 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 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 (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","phone","iconPhone","iconEmail","iconLinkedIn"],"mappings":"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"}
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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"small.d.ts","sourceRoot":"","sources":["../../../source/atomic/text-lockup/small.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,KAAK,SAAS,GAAG;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,WAAW,GAAG,SAAS,GAAG;IAC7B,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG;IAC5C,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAkBF,eAAO,MAAM,aAAa;;;;;;;;;;CAWzB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;CAIxB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;CAiB1B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,cAAc,OAAO;;;;;;;;;;CAc9C,CAAC;AAEH,eAAO,MAAM,UAAU,GAAI,cAAc,OAAO;;;;;;;;;;;CAc9C,CAAC;AAEH,eAAO,MAAM,aAAa,GAAI,0BAA0B,WAAW,kFAQvD,CAAC;AAEb,eAAO,MAAM,mBAAmB,GAAI,aAAa,WAAW,kFAIhD,CAAC;AAEb,eAAO,MAAM,aAAa,GAAI,aAAa,WAAW,kFAQ1C,CAAC;AAEb,eAAO,MAAM,qBAAqB,GAAI,qEAQnC,mBAAmB,kFAyErB,CAAC"}
1
+ {"version":3,"file":"small.d.ts","sourceRoot":"","sources":["../../../source/atomic/text-lockup/small.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,KAAK,SAAS,GAAG;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,WAAW,GAAG,SAAS,GAAG;IAC7B,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG;IAC5C,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAkBF,eAAO,MAAM,aAAa;;;;;;;;;;CAWzB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;CAIxB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;CAiB1B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,cAAc,OAAO;;;;;;;;;;CAc9C,CAAC;AAEH,eAAO,MAAM,UAAU,GAAI,cAAc,OAAO;;;;;;;;;;;CAc9C,CAAC;AAEH,eAAO,MAAM,aAAa,GAAI,0BAA0B,WAAW,kFAQvD,CAAC;AAEb,eAAO,MAAM,mBAAmB,GAAI,aAAa,WAAW,kFAIhD,CAAC;AAEb,eAAO,MAAM,aAAa,GAAI,aAAa,WAAW,kFAQ1C,CAAC;AAEb,eAAO,MAAM,qBAAqB,GAAI,qEAQnC,mBAAmB,kFAwErB,CAAC"}
@@ -133,11 +133,11 @@ const createTextLockupSmall = ({
133
133
  container.withChild(textElement);
134
134
  }
135
135
  if (date) {
136
- const dateElement = new ElementBuilder("slot").withClassName("umd-headline-sans-min").styled(
136
+ const dateElement = new ElementBuilder(date).withClassName("umd-headline-sans-min").styled(
137
137
  typography.sans.compose("min", {
138
138
  theme: theme.fontColor(isThemeDark)
139
139
  })
140
- ).withAnimation("slideUnder").withChild(date).withStyles(dateStyles(isThemeDark)).build();
140
+ ).withAnimation("slideUnder").withStyles(dateStyles(isThemeDark)).build();
141
141
  container.withChild(dateElement);
142
142
  }
143
143
  if (actions) {
@@ -1 +1 @@
1
- {"version":3,"file":"small.js","sources":["../../../source/atomic/text-lockup/small.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as elementStyles from '@universityofmaryland/web-styles-library/element';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport * as layout from '@universityofmaryland/web-styles-library/layout';\nimport * as animationStyles from '@universityofmaryland/web-styles-library/animation';\nimport { wrapTextNodeInSpan } from '@universityofmaryland/web-utilities-library/dom';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { type UMDElement } from '../../_types';\n\ntype TypeTheme = {\n isThemeDark?: boolean;\n};\n\ntype TypeEyebrow = TypeTheme & {\n eyebrow: HTMLElement;\n};\n\ntype TypeActions = {\n actions: HTMLElement;\n};\n\nexport type TypeTextLockupSmall = TypeTheme & {\n headline: HTMLElement | null;\n eyebrow?: HTMLElement | null;\n text?: HTMLElement | null;\n date?: HTMLElement | null;\n actions?: HTMLElement | null;\n eventMeta?: UMDElement;\n hasEyebrowRibbon?: boolean;\n};\n\nconst ELEMENT_TEXT_LOCKUP_SMALL_CONTAINER = 'text-lockup-small-container';\nconst metaContainer = elementStyles?.event?.meta?.container;\nconst metaClass: string = (() => {\n if (!metaContainer?.className) return '';\n\n if (Array.isArray(metaContainer.className)) {\n return metaContainer.className[0] || '';\n }\n\n if (typeof metaContainer.className === 'string') {\n return metaContainer.className;\n }\n\n return '';\n})();\n\nexport const eyebrowStyles = {\n element: {\n display: 'block',\n\n ['*']: {\n color: 'currentColor',\n },\n },\n siblingAfter: {\n marginTop: token.spacing.min,\n },\n};\n\nexport const ribbonStyles = {\n siblingAfter: {\n marginTop: token.spacing.sm,\n },\n};\n\nexport const headlineStyles = {\n element: {\n fontWeight: '700',\n\n [`& + *`]: {\n marginTop: token.spacing.sm,\n },\n\n [`& + .${metaClass}`]: {\n [`@media (max-width: 479px)`]: {\n marginTop: token.spacing.min,\n },\n },\n },\n subElement: {\n color: 'currentColor',\n },\n};\n\nexport const textStyles = (isThemeDark?: boolean) => ({\n element: {\n ...(!isThemeDark && {\n color: `${token.color.gray.dark}`,\n }),\n },\n child: {\n ...(!isThemeDark && {\n color: `${token.color.gray.dark}`,\n }),\n },\n siblingAfter: {\n marginTop: token.spacing.min,\n },\n});\n\nexport const dateStyles = (isThemeDark?: boolean) => ({\n element: {\n display: 'block',\n\n ...(!isThemeDark && {\n color: `${token.color.gray.mediumAA}`,\n }),\n },\n child: {\n color: 'currentColor',\n },\n siblingAfter: {\n marginTop: token.spacing.min,\n },\n});\n\nexport const createEyebrow = ({ eyebrow, isThemeDark }: TypeEyebrow) =>\n new ElementBuilder(eyebrow)\n .styled(\n typography.elements.compose('eyebrow', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles(eyebrowStyles)\n .build();\n\nexport const createRibbonEyebrow = ({ eyebrow }: TypeEyebrow) =>\n new ElementBuilder(eyebrow)\n .styled(elementStyles.text.decoration.ribbon)\n .withStyles(ribbonStyles)\n .build();\n\nexport const createActions = ({ actions }: TypeActions) =>\n new ElementBuilder(actions)\n .styled(layout.grid.inline.tabletRows)\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n },\n })\n .build();\n\nexport const createTextLockupSmall = ({\n eyebrow,\n headline,\n text,\n actions,\n date,\n eventMeta,\n isThemeDark,\n}: TypeTextLockupSmall) => {\n const container = new ElementBuilder()\n .withClassName(ELEMENT_TEXT_LOCKUP_SMALL_CONTAINER)\n .withStyles({\n element: {\n zIndex: '9',\n position: 'relative',\n },\n });\n\n if (eyebrow) {\n const eyebrowElement = createEyebrow({ eyebrow, isThemeDark });\n container.withChild(eyebrowElement);\n }\n\n if (headline) {\n const composeHeadlineStyles = {\n ...animationStyles.line.composeSlideUnder({\n color: theme.foreground(isThemeDark),\n }),\n ...typography.sans.compose('larger', {\n theme: theme.fontColor(isThemeDark),\n }),\n };\n\n const headlineElement = new ElementBuilder(headline)\n .styled(composeHeadlineStyles)\n .withStyles(headlineStyles)\n .withModifier((el) => wrapTextNodeInSpan(el))\n .build();\n\n container.withChild(headlineElement);\n }\n\n if (eventMeta) {\n container.withChild(eventMeta);\n }\n\n if (text) {\n const textElement = new ElementBuilder(text)\n .styled(\n elementStyles.text.rich.composeSimple({\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles(textStyles(isThemeDark))\n .build();\n\n container.withChild(textElement);\n }\n\n if (date) {\n const dateElement = new ElementBuilder('slot')\n .withClassName('umd-headline-sans-min')\n .styled(\n typography.sans.compose('min', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withAnimation('slideUnder')\n .withChild(date)\n .withStyles(dateStyles(isThemeDark))\n .build();\n\n container.withChild(dateElement);\n }\n\n if (actions) {\n const actionsElement = createActions({ actions });\n container.withChild(actionsElement);\n }\n\n return container.build();\n};\n"],"names":["animationStyles"],"mappings":"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"}
1
+ {"version":3,"file":"small.js","sources":["../../../source/atomic/text-lockup/small.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as elementStyles from '@universityofmaryland/web-styles-library/element';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport * as layout from '@universityofmaryland/web-styles-library/layout';\nimport * as animationStyles from '@universityofmaryland/web-styles-library/animation';\nimport { wrapTextNodeInSpan } from '@universityofmaryland/web-utilities-library/dom';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { type UMDElement } from '../../_types';\n\ntype TypeTheme = {\n isThemeDark?: boolean;\n};\n\ntype TypeEyebrow = TypeTheme & {\n eyebrow: HTMLElement;\n};\n\ntype TypeActions = {\n actions: HTMLElement;\n};\n\nexport type TypeTextLockupSmall = TypeTheme & {\n headline: HTMLElement | null;\n eyebrow?: HTMLElement | null;\n text?: HTMLElement | null;\n date?: HTMLElement | null;\n actions?: HTMLElement | null;\n eventMeta?: UMDElement;\n hasEyebrowRibbon?: boolean;\n};\n\nconst ELEMENT_TEXT_LOCKUP_SMALL_CONTAINER = 'text-lockup-small-container';\nconst metaContainer = elementStyles?.event?.meta?.container;\nconst metaClass: string = (() => {\n if (!metaContainer?.className) return '';\n\n if (Array.isArray(metaContainer.className)) {\n return metaContainer.className[0] || '';\n }\n\n if (typeof metaContainer.className === 'string') {\n return metaContainer.className;\n }\n\n return '';\n})();\n\nexport const eyebrowStyles = {\n element: {\n display: 'block',\n\n ['*']: {\n color: 'currentColor',\n },\n },\n siblingAfter: {\n marginTop: token.spacing.min,\n },\n};\n\nexport const ribbonStyles = {\n siblingAfter: {\n marginTop: token.spacing.sm,\n },\n};\n\nexport const headlineStyles = {\n element: {\n fontWeight: '700',\n\n [`& + *`]: {\n marginTop: token.spacing.sm,\n },\n\n [`& + .${metaClass}`]: {\n [`@media (max-width: 479px)`]: {\n marginTop: token.spacing.min,\n },\n },\n },\n subElement: {\n color: 'currentColor',\n },\n};\n\nexport const textStyles = (isThemeDark?: boolean) => ({\n element: {\n ...(!isThemeDark && {\n color: `${token.color.gray.dark}`,\n }),\n },\n child: {\n ...(!isThemeDark && {\n color: `${token.color.gray.dark}`,\n }),\n },\n siblingAfter: {\n marginTop: token.spacing.min,\n },\n});\n\nexport const dateStyles = (isThemeDark?: boolean) => ({\n element: {\n display: 'block',\n\n ...(!isThemeDark && {\n color: `${token.color.gray.mediumAA}`,\n }),\n },\n child: {\n color: 'currentColor',\n },\n siblingAfter: {\n marginTop: token.spacing.min,\n },\n});\n\nexport const createEyebrow = ({ eyebrow, isThemeDark }: TypeEyebrow) =>\n new ElementBuilder(eyebrow)\n .styled(\n typography.elements.compose('eyebrow', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles(eyebrowStyles)\n .build();\n\nexport const createRibbonEyebrow = ({ eyebrow }: TypeEyebrow) =>\n new ElementBuilder(eyebrow)\n .styled(elementStyles.text.decoration.ribbon)\n .withStyles(ribbonStyles)\n .build();\n\nexport const createActions = ({ actions }: TypeActions) =>\n new ElementBuilder(actions)\n .styled(layout.grid.inline.tabletRows)\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n },\n })\n .build();\n\nexport const createTextLockupSmall = ({\n eyebrow,\n headline,\n text,\n actions,\n date,\n eventMeta,\n isThemeDark,\n}: TypeTextLockupSmall) => {\n const container = new ElementBuilder()\n .withClassName(ELEMENT_TEXT_LOCKUP_SMALL_CONTAINER)\n .withStyles({\n element: {\n zIndex: '9',\n position: 'relative',\n },\n });\n\n if (eyebrow) {\n const eyebrowElement = createEyebrow({ eyebrow, isThemeDark });\n container.withChild(eyebrowElement);\n }\n\n if (headline) {\n const composeHeadlineStyles = {\n ...animationStyles.line.composeSlideUnder({\n color: theme.foreground(isThemeDark),\n }),\n ...typography.sans.compose('larger', {\n theme: theme.fontColor(isThemeDark),\n }),\n };\n\n const headlineElement = new ElementBuilder(headline)\n .styled(composeHeadlineStyles)\n .withStyles(headlineStyles)\n .withModifier((el) => wrapTextNodeInSpan(el))\n .build();\n\n container.withChild(headlineElement);\n }\n\n if (eventMeta) {\n container.withChild(eventMeta);\n }\n\n if (text) {\n const textElement = new ElementBuilder(text)\n .styled(\n elementStyles.text.rich.composeSimple({\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles(textStyles(isThemeDark))\n .build();\n\n container.withChild(textElement);\n }\n\n if (date) {\n const dateElement = new ElementBuilder(date)\n .withClassName('umd-headline-sans-min')\n .styled(\n typography.sans.compose('min', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withAnimation('slideUnder')\n .withStyles(dateStyles(isThemeDark))\n .build();\n\n container.withChild(dateElement);\n }\n\n if (actions) {\n const actionsElement = createActions({ actions });\n container.withChild(actionsElement);\n }\n\n return container.build();\n};\n"],"names":["animationStyles"],"mappings":"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"}
package/dist/atomic.js CHANGED
@@ -4,8 +4,8 @@ import * as index$2 from "./atomic/assets/index.js";
4
4
  import * as index$3 from "./atomic/buttons/index.js";
5
5
  import * as index$4 from "./atomic/events/index.js";
6
6
  import * as index$5 from "./atomic/layout/index.js";
7
- import * as index$6 from "./atomic/text-lockup/index.js";
8
- import * as index$7 from "./atomic/text/index.js";
7
+ import * as index$7 from "./atomic/text-lockup/index.js";
8
+ import * as index$6 from "./atomic/text/index.js";
9
9
  export {
10
10
  index as actions,
11
11
  index$1 as animations,
@@ -13,7 +13,7 @@ export {
13
13
  index$3 as buttons,
14
14
  index$4 as events,
15
15
  index$5 as layout,
16
- index$7 as text,
17
- index$6 as textLockup
16
+ index$6 as text,
17
+ index$7 as textLockup
18
18
  };
19
19
  //# sourceMappingURL=atomic.js.map
@@ -8,6 +8,8 @@ export interface PersonContact extends PersonTheme {
8
8
  phone?: HTMLElement | null;
9
9
  email?: HTMLElement | null;
10
10
  linkedin?: HTMLElement | null;
11
+ bluesky?: HTMLElement | null;
12
+ substack?: HTMLElement | null;
11
13
  address?: HTMLElement | null;
12
14
  additionalContact?: HTMLElement | null;
13
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../source/composite/person/_types.ts"],"names":[],"mappings":"AAAA,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,aAAc,SAAQ,WAAW;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,iBAAiB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,MAAO,SAAQ,aAAa,EAAE,aAAa;IAC1D,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC,KAAK,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC"}
1
+ {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../source/composite/person/_types.ts"],"names":[],"mappings":"AAAA,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,aAAc,SAAQ,WAAW;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,iBAAiB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,MAAO,SAAQ,aAAa,EAAE,aAAa;IAC1D,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC,KAAK,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC"}
package/dist/composite.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as index from "./composite/accordion/index.js";
2
- import * as index$1 from "./composite/banner/index.js";
3
- import * as index$2 from "./composite/alert/index.js";
2
+ import * as index$2 from "./composite/banner/index.js";
3
+ import * as index$1 from "./composite/alert/index.js";
4
4
  import * as index$3 from "./composite/card/index.js";
5
5
  import * as index$4 from "./composite/carousel/index.js";
6
6
  import * as index$5 from "./composite/footer/index.js";
@@ -16,8 +16,8 @@ import * as index$e from "./composite/social/index.js";
16
16
  import * as index$f from "./composite/tabs/index.js";
17
17
  export {
18
18
  index as accordion,
19
- index$2 as alert,
20
- index$1 as banner,
19
+ index$1 as alert,
20
+ index$2 as banner,
21
21
  index$3 as card,
22
22
  index$4 as carousel,
23
23
  index$5 as footer,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@universityofmaryland/web-elements-library",
3
- "version": "1.6.3",
3
+ "version": "1.6.5",
4
4
  "description": "UMD Web Elements",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",