@universityofmaryland/web-elements-library 1.6.0-beta.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/atomic/animations/actions/_types.d.ts +7 -0
- package/dist/atomic/animations/actions/_types.d.ts.map +1 -0
- package/dist/atomic/animations/actions/indicator.d.ts +7 -10
- package/dist/atomic/animations/actions/indicator.d.ts.map +1 -1
- package/dist/atomic/animations/actions/indicator.js +102 -104
- package/dist/atomic/animations/actions/indicator.js.map +1 -1
- package/dist/atomic/animations/brand/card-stack.js +1 -2
- package/dist/atomic/animations/brand/card-stack.js.map +1 -1
- package/dist/atomic/layout/person/columns.js +1 -2
- package/dist/atomic/layout/person/columns.js.map +1 -1
- package/dist/atomic/text-lockup/small.d.ts +3 -0
- package/dist/atomic/text-lockup/small.d.ts.map +1 -1
- package/dist/atomic/text-lockup/small.js +4 -1
- package/dist/atomic/text-lockup/small.js.map +1 -1
- package/dist/composite/card/block.js +1 -2
- package/dist/composite/card/block.js.map +1 -1
- package/dist/composite/card/list.js +1 -2
- package/dist/composite/card/list.js.map +1 -1
- package/dist/composite/card/overlay/color.js +1 -2
- package/dist/composite/card/overlay/color.js.map +1 -1
- package/dist/composite/card/overlay/icon.js +1 -2
- package/dist/composite/card/overlay/icon.js.map +1 -1
- package/dist/composite/card/overlay/image.js +1 -2
- package/dist/composite/card/overlay/image.js.map +1 -1
- package/dist/composite/card/video/block.js +1 -2
- package/dist/composite/card/video/block.js.map +1 -1
- package/dist/composite/carousel/elements/full-screen.js +1 -2
- package/dist/composite/carousel/elements/full-screen.js.map +1 -1
- package/dist/composite/carousel/image/multiple.js +1 -2
- package/dist/composite/carousel/image/multiple.js.map +1 -1
- package/dist/composite/carousel/image/standard.d.ts.map +1 -1
- package/dist/composite/carousel/image/standard.js +3 -1
- package/dist/composite/carousel/image/standard.js.map +1 -1
- package/dist/composite/carousel/wide/container.d.ts +5 -3
- package/dist/composite/carousel/wide/container.d.ts.map +1 -1
- package/dist/composite/carousel/wide/controls.d.ts +5 -3
- package/dist/composite/carousel/wide/controls.d.ts.map +1 -1
- package/dist/composite/carousel/wide/frames.js +1 -2
- package/dist/composite/carousel/wide/frames.js.map +1 -1
- package/dist/composite/carousel/wide/index.js +1 -2
- package/dist/composite/carousel/wide/index.js.map +1 -1
- package/dist/composite/footer/base.d.ts +1 -1
- package/dist/composite/hero/custom/expand.js +1 -2
- package/dist/composite/hero/custom/expand.js.map +1 -1
- package/dist/composite/hero/custom/grid.js +1 -2
- package/dist/composite/hero/custom/grid.js.map +1 -1
- package/dist/composite/hero/custom/video-arrow.js +0 -1
- package/dist/composite/hero/custom/video-arrow.js.map +1 -1
- package/dist/composite/hero/logo.js +1 -2
- package/dist/composite/hero/logo.js.map +1 -1
- package/dist/composite/hero/minimal.js +1 -2
- package/dist/composite/hero/minimal.js.map +1 -1
- package/dist/composite/hero/overlay.js +1 -2
- package/dist/composite/hero/overlay.js.map +1 -1
- package/dist/composite/hero/stacked.js +1 -2
- package/dist/composite/hero/stacked.js.map +1 -1
- package/dist/composite/hero/standard.js +1 -2
- package/dist/composite/hero/standard.js.map +1 -1
- package/dist/composite/media/elements/gif.js +1 -2
- package/dist/composite/media/elements/gif.js.map +1 -1
- package/dist/composite/navigation/utility/alert.js +1 -2
- package/dist/composite/navigation/utility/alert.js.map +1 -1
- package/dist/composite/pathway/_common.js +1 -2
- package/dist/composite/pathway/_common.js.map +1 -1
- package/dist/composite/pathway/hero.js +1 -2
- package/dist/composite/pathway/hero.js.map +1 -1
- package/dist/composite/person/bio/full.js +1 -2
- package/dist/composite/person/bio/full.js.map +1 -1
- package/dist/composite/person/bio/small.js +1 -2
- package/dist/composite/person/bio/small.js.map +1 -1
- package/dist/composite/person/block.js +1 -2
- package/dist/composite/person/block.js.map +1 -1
- package/dist/composite/person/hero.js +1 -2
- package/dist/composite/person/hero.js.map +1 -1
- package/dist/composite/person/list.js +1 -2
- package/dist/composite/person/list.js.map +1 -1
- package/dist/composite/person/tabular.js +1 -2
- package/dist/composite/person/tabular.js.map +1 -1
- package/package.json +13 -9
|
@@ -14,11 +14,10 @@ import "@universityofmaryland/web-icons-library/communication";
|
|
|
14
14
|
import "@universityofmaryland/web-icons-library/files";
|
|
15
15
|
import "@universityofmaryland/web-icons-library/brand";
|
|
16
16
|
import "@universityofmaryland/web-icons-library/arrows";
|
|
17
|
-
import "
|
|
17
|
+
import "@universityofmaryland/web-utilities-library/performance";
|
|
18
18
|
import "../../../atomic/animations/brand/chevron-scroll.js";
|
|
19
19
|
import "../../../atomic/animations/brand/card-stack.js";
|
|
20
20
|
import { createImageBackground } from "../../../atomic/assets/image/background.js";
|
|
21
|
-
import "@universityofmaryland/web-utilities-library/performance";
|
|
22
21
|
import "@universityofmaryland/web-utilities-library/accessibility";
|
|
23
22
|
import "@universityofmaryland/web-icons-library/location";
|
|
24
23
|
import "@universityofmaryland/web-icons-library/calendar";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"small.js","sources":["../../../../source/composite/person/bio/small.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as Styles from '@universityofmaryland/web-styles-library';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { assets, textLockup } from 'atomic';\nimport { PersonBio } from '../_types';\nimport { type ElementModel } from '../../../_types';\n\nconst createTextContainer = (props: PersonBio): ElementModel<HTMLElement> => {\n const { isThemeDark, name, ...textProps } = props;\n\n const builder = new ElementBuilder().styled(\n Styles.element.text.line.adjustentInset,\n );\n\n if (name) {\n builder.withChild(\n new ElementBuilder(name)\n .styled(\n Styles.typography.sans.compose('extralarge', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n textTransform: 'uppercase',\n fontWeight: '800',\n display: 'block',\n ...(!isThemeDark && { color: `${token.color.black}` }),\n },\n siblingAfter: {\n marginTop: token.spacing.sm,\n },\n })\n .build(),\n );\n }\n\n builder.withChild(textLockup.person({ ...textProps, isThemeDark }));\n\n return builder.build();\n};\n\nconst createTextColumn = (props: PersonBio): ElementModel<HTMLElement> => {\n const { actions } = props;\n const textContainer = createTextContainer(props);\n\n const builder = new ElementBuilder()\n .withClassName('person-bio-summary-text-column')\n .withChild(textContainer)\n .withChild(textLockup.contact(props));\n\n if (actions) {\n builder.withChild(\n new ElementBuilder(actions)\n .styled(Styles.layout.grid.inline.tabletRows)\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n },\n })\n .build(),\n );\n }\n\n return builder.build();\n};\n\nconst makeContainer = (props: PersonBio): ElementModel<HTMLElement> => {\n const { image } = props;\n const textColumn = createTextColumn(props);\n\n const builder = new ElementBuilder()\n .withClassName('person-bio-summary-container')\n .withStyles({\n element: {\n display: 'grid',\n gridGap: `${token.spacing.md}`,\n\n ...createMediaQuery(\n 'min-width',\n token.media.breakpointValues.large.min,\n {\n gridTemplateColumns: `repeat(8, 1fr)`,\n gridGap: `${token.spacing.lg}`,\n alignItems: `center`,\n },\n ),\n\n [`& > *`]: {\n ...createMediaQuery(\n 'min-width',\n token.media.breakpointValues.large.min,\n {\n gridColumn: `span 5`,\n },\n ),\n },\n\n [`&:has(> :nth-child(2)) > *:first-child `]: {\n ...createMediaQuery(\n 'min-width',\n token.media.breakpointValues.large.min,\n {\n gridColumn: `span 3`,\n alignSelf: `flex-start`,\n },\n ),\n },\n },\n });\n\n if (image) {\n builder.withChild(\n assets.image.background({\n element: image,\n isScaled: false,\n customStyles: {\n element: {\n ...createMediaQuery(\n 'max-width',\n token.media.breakpointValues.medium.max,\n {\n display: 'flex',\n },\n ),\n\n [`& img`]: {\n ...createMediaQuery(\n 'min-width',\n token.media.breakpointValues.large.min,\n {\n width: `100%`,\n height: `auto !important`,\n },\n ),\n },\n },\n },\n }),\n );\n }\n\n builder.withChild(textColumn);\n\n return builder.build();\n};\n\nconst CreatePersonBioSmallElement = (props: PersonBio): ElementModel<HTMLElement> => {\n const { isThemeDark, description } = props;\n const container = makeContainer(props);\n\n const builder = new ElementBuilder()\n .withClassName('person-bio-summary-composite')\n .withChild(container);\n\n if (description) {\n builder.withChild(\n new ElementBuilder(description)\n .styled(\n Styles.element.text.rich.composeSimple({\n size: 'large',\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n marginTop: token.spacing.lg,\n maxWidth: token.spacing.maxWidth.smallest,\n },\n })\n .build(),\n );\n }\n\n return builder.build();\n};\n\nexport const createCompositePersonBioSmall = CreatePersonBioSmallElement;\n"],"names":["textLockup.person","textLockup.contact","assets.image.background"],"mappings":"
|
|
1
|
+
{"version":3,"file":"small.js","sources":["../../../../source/composite/person/bio/small.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as Styles from '@universityofmaryland/web-styles-library';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { assets, textLockup } from 'atomic';\nimport { PersonBio } from '../_types';\nimport { type ElementModel } from '../../../_types';\n\nconst createTextContainer = (props: PersonBio): ElementModel<HTMLElement> => {\n const { isThemeDark, name, ...textProps } = props;\n\n const builder = new ElementBuilder().styled(\n Styles.element.text.line.adjustentInset,\n );\n\n if (name) {\n builder.withChild(\n new ElementBuilder(name)\n .styled(\n Styles.typography.sans.compose('extralarge', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n textTransform: 'uppercase',\n fontWeight: '800',\n display: 'block',\n ...(!isThemeDark && { color: `${token.color.black}` }),\n },\n siblingAfter: {\n marginTop: token.spacing.sm,\n },\n })\n .build(),\n );\n }\n\n builder.withChild(textLockup.person({ ...textProps, isThemeDark }));\n\n return builder.build();\n};\n\nconst createTextColumn = (props: PersonBio): ElementModel<HTMLElement> => {\n const { actions } = props;\n const textContainer = createTextContainer(props);\n\n const builder = new ElementBuilder()\n .withClassName('person-bio-summary-text-column')\n .withChild(textContainer)\n .withChild(textLockup.contact(props));\n\n if (actions) {\n builder.withChild(\n new ElementBuilder(actions)\n .styled(Styles.layout.grid.inline.tabletRows)\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n },\n })\n .build(),\n );\n }\n\n return builder.build();\n};\n\nconst makeContainer = (props: PersonBio): ElementModel<HTMLElement> => {\n const { image } = props;\n const textColumn = createTextColumn(props);\n\n const builder = new ElementBuilder()\n .withClassName('person-bio-summary-container')\n .withStyles({\n element: {\n display: 'grid',\n gridGap: `${token.spacing.md}`,\n\n ...createMediaQuery(\n 'min-width',\n token.media.breakpointValues.large.min,\n {\n gridTemplateColumns: `repeat(8, 1fr)`,\n gridGap: `${token.spacing.lg}`,\n alignItems: `center`,\n },\n ),\n\n [`& > *`]: {\n ...createMediaQuery(\n 'min-width',\n token.media.breakpointValues.large.min,\n {\n gridColumn: `span 5`,\n },\n ),\n },\n\n [`&:has(> :nth-child(2)) > *:first-child `]: {\n ...createMediaQuery(\n 'min-width',\n token.media.breakpointValues.large.min,\n {\n gridColumn: `span 3`,\n alignSelf: `flex-start`,\n },\n ),\n },\n },\n });\n\n if (image) {\n builder.withChild(\n assets.image.background({\n element: image,\n isScaled: false,\n customStyles: {\n element: {\n ...createMediaQuery(\n 'max-width',\n token.media.breakpointValues.medium.max,\n {\n display: 'flex',\n },\n ),\n\n [`& img`]: {\n ...createMediaQuery(\n 'min-width',\n token.media.breakpointValues.large.min,\n {\n width: `100%`,\n height: `auto !important`,\n },\n ),\n },\n },\n },\n }),\n );\n }\n\n builder.withChild(textColumn);\n\n return builder.build();\n};\n\nconst CreatePersonBioSmallElement = (props: PersonBio): ElementModel<HTMLElement> => {\n const { isThemeDark, description } = props;\n const container = makeContainer(props);\n\n const builder = new ElementBuilder()\n .withClassName('person-bio-summary-composite')\n .withChild(container);\n\n if (description) {\n builder.withChild(\n new ElementBuilder(description)\n .styled(\n Styles.element.text.rich.composeSimple({\n size: 'large',\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n marginTop: token.spacing.lg,\n maxWidth: token.spacing.maxWidth.smallest,\n },\n })\n .build(),\n );\n }\n\n return builder.build();\n};\n\nexport const createCompositePersonBioSmall = CreatePersonBioSmallElement;\n"],"names":["textLockup.person","textLockup.contact","assets.image.background"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,sBAAsB,CAAC,UAAgD;AAC3E,QAAM,EAAE,aAAa,MAAM,GAAG,cAAc;AAE5C,QAAM,UAAU,IAAI,eAAA,EAAiB;AAAA,IACnC,OAAO,QAAQ,KAAK,KAAK;AAAA,EAAA;AAG3B,MAAI,MAAM;AACR,YAAQ;AAAA,MACN,IAAI,eAAe,IAAI,EACpB;AAAA,QACC,OAAO,WAAW,KAAK,QAAQ,cAAc;AAAA,UAC3C,OAAO,MAAM,UAAU,WAAW;AAAA,QAAA,CACnC;AAAA,MAAA,EAEF,WAAW;AAAA,QACV,SAAS;AAAA,UACP,eAAe;AAAA,UACf,YAAY;AAAA,UACZ,SAAS;AAAA,UACT,GAAI,CAAC,eAAe,EAAE,OAAO,GAAG,MAAM,MAAM,KAAK,GAAA;AAAA,QAAG;AAAA,QAEtD,cAAc;AAAA,UACZ,WAAW,MAAM,QAAQ;AAAA,QAAA;AAAA,MAC3B,CACD,EACA,MAAA;AAAA,IAAM;AAAA,EAEb;AAEA,UAAQ,UAAUA,uBAAkB,EAAE,GAAG,WAAW,YAAA,CAAa,CAAC;AAElE,SAAO,QAAQ,MAAA;AACjB;AAEA,MAAM,mBAAmB,CAAC,UAAgD;AACxE,QAAM,EAAE,YAAY;AACpB,QAAM,gBAAgB,oBAAoB,KAAK;AAE/C,QAAM,UAAU,IAAI,eAAA,EACjB,cAAc,gCAAgC,EAC9C,UAAU,aAAa,EACvB,UAAUC,wBAAmB,KAAK,CAAC;AAEtC,MAAI,SAAS;AACX,YAAQ;AAAA,MACN,IAAI,eAAe,OAAO,EACvB,OAAO,OAAO,OAAO,KAAK,OAAO,UAAU,EAC3C,WAAW;AAAA,QACV,SAAS;AAAA,UACP,WAAW,MAAM,QAAQ;AAAA,QAAA;AAAA,MAC3B,CACD,EACA,MAAA;AAAA,IAAM;AAAA,EAEb;AAEA,SAAO,QAAQ,MAAA;AACjB;AAEA,MAAM,gBAAgB,CAAC,UAAgD;AACrE,QAAM,EAAE,UAAU;AAClB,QAAM,aAAa,iBAAiB,KAAK;AAEzC,QAAM,UAAU,IAAI,eAAA,EACjB,cAAc,8BAA8B,EAC5C,WAAW;AAAA,IACV,SAAS;AAAA,MACP,SAAS;AAAA,MACT,SAAS,GAAG,MAAM,QAAQ,EAAE;AAAA,MAE5B,GAAG;AAAA,QACD;AAAA,QACA,MAAM,MAAM,iBAAiB,MAAM;AAAA,QACnC;AAAA,UACE,qBAAqB;AAAA,UACrB,SAAS,GAAG,MAAM,QAAQ,EAAE;AAAA,UAC5B,YAAY;AAAA,QAAA;AAAA,MACd;AAAA,MAGF,CAAC,OAAO,GAAG;AAAA,QACT,GAAG;AAAA,UACD;AAAA,UACA,MAAM,MAAM,iBAAiB,MAAM;AAAA,UACnC;AAAA,YACE,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,MACF;AAAA,MAGF,CAAC,yCAAyC,GAAG;AAAA,QAC3C,GAAG;AAAA,UACD;AAAA,UACA,MAAM,MAAM,iBAAiB,MAAM;AAAA,UACnC;AAAA,YACE,YAAY;AAAA,YACZ,WAAW;AAAA,UAAA;AAAA,QACb;AAAA,MACF;AAAA,IACF;AAAA,EACF,CACD;AAEH,MAAI,OAAO;AACT,YAAQ;AAAA,MACNC,sBAAwB;AAAA,QACtB,SAAS;AAAA,QACT,UAAU;AAAA,QACV,cAAc;AAAA,UACZ,SAAS;AAAA,YACP,GAAG;AAAA,cACD;AAAA,cACA,MAAM,MAAM,iBAAiB,OAAO;AAAA,cACpC;AAAA,gBACE,SAAS;AAAA,cAAA;AAAA,YACX;AAAA,YAGF,CAAC,OAAO,GAAG;AAAA,cACT,GAAG;AAAA,gBACD;AAAA,gBACA,MAAM,MAAM,iBAAiB,MAAM;AAAA,gBACnC;AAAA,kBACE,OAAO;AAAA,kBACP,QAAQ;AAAA,gBAAA;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,UAAQ,UAAU,UAAU;AAE5B,SAAO,QAAQ,MAAA;AACjB;AAEA,MAAM,8BAA8B,CAAC,UAAgD;AACnF,QAAM,EAAE,aAAa,YAAA,IAAgB;AACrC,QAAM,YAAY,cAAc,KAAK;AAErC,QAAM,UAAU,IAAI,eAAA,EACjB,cAAc,8BAA8B,EAC5C,UAAU,SAAS;AAEtB,MAAI,aAAa;AACf,YAAQ;AAAA,MACN,IAAI,eAAe,WAAW,EAC3B;AAAA,QACC,OAAO,QAAQ,KAAK,KAAK,cAAc;AAAA,UACrC,MAAM;AAAA,UACN,OAAO,MAAM,UAAU,WAAW;AAAA,QAAA,CACnC;AAAA,MAAA,EAEF,WAAW;AAAA,QACV,SAAS;AAAA,UACP,WAAW,MAAM,QAAQ;AAAA,UACzB,UAAU,MAAM,QAAQ,SAAS;AAAA,QAAA;AAAA,MACnC,CACD,EACA,MAAA;AAAA,IAAM;AAAA,EAEb;AAEA,SAAO,QAAQ,MAAA;AACjB;AAEO,MAAM,gCAAgC;"}
|
|
@@ -13,12 +13,11 @@ import "@universityofmaryland/web-icons-library/communication";
|
|
|
13
13
|
import "@universityofmaryland/web-icons-library/files";
|
|
14
14
|
import "@universityofmaryland/web-icons-library/brand";
|
|
15
15
|
import "@universityofmaryland/web-icons-library/arrows";
|
|
16
|
-
import "
|
|
16
|
+
import "@universityofmaryland/web-utilities-library/performance";
|
|
17
17
|
import "../../atomic/animations/brand/chevron-scroll.js";
|
|
18
18
|
import "../../atomic/animations/brand/card-stack.js";
|
|
19
19
|
import { createImageBackground } from "../../atomic/assets/image/background.js";
|
|
20
20
|
import "@universityofmaryland/web-styles-library";
|
|
21
|
-
import "@universityofmaryland/web-utilities-library/performance";
|
|
22
21
|
import "@universityofmaryland/web-utilities-library/accessibility";
|
|
23
22
|
import "@universityofmaryland/web-icons-library/location";
|
|
24
23
|
import "@universityofmaryland/web-icons-library/calendar";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.js","sources":["../../../source/composite/person/block.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { imageFromSvg } from '@universityofmaryland/web-utilities-library/media';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { person as iconPerson } from '@universityofmaryland/web-icons-library/people';\nimport { assets, textLockup } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\n\nconst CreatePersonBlockElement = (props: PersonCard): ElementModel<HTMLElement> => {\n const { image: personImage, isThemeDark } = props;\n const textLockupElement = textLockup.person(props);\n const contactLockupElement = textLockup.contact(props);\n\n let image = personImage;\n\n if (!image) {\n image = imageFromSvg({\n SVG: iconPerson,\n });\n }\n\n const imageContainer = new ElementBuilder()\n .withClassName('person-block-image')\n .withChild(\n assets.image.background({\n element: image,\n isScaled: false,\n customStyles: {\n height: 'auto',\n },\n }),\n )\n .withStyles({\n element: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: `${token.color.gray.lighter}`,\n marginBottom: `${token.spacing.md}`,\n\n ...(isThemeDark && {\n backgroundColor: `${token.color.gray.darker}`,\n }),\n\n ['& img, & svg']: {\n display: 'block',\n width: '100%',\n objectFit: 'contain',\n height: '140px !important',\n transform: `none !important`,\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n height: '200px !important',\n }),\n },\n },\n })\n .build();\n\n return new ElementBuilder()\n .withClassName('person-block')\n .withChildren(imageContainer, textLockupElement, contactLockupElement)\n .build();\n};\n\nexport const createCompositePersonBlock = CreatePersonBlockElement;\n"],"names":["textLockup.person","textLockup.contact","iconPerson","assets.image.background"],"mappings":"
|
|
1
|
+
{"version":3,"file":"block.js","sources":["../../../source/composite/person/block.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { imageFromSvg } from '@universityofmaryland/web-utilities-library/media';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { person as iconPerson } from '@universityofmaryland/web-icons-library/people';\nimport { assets, textLockup } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\n\nconst CreatePersonBlockElement = (props: PersonCard): ElementModel<HTMLElement> => {\n const { image: personImage, isThemeDark } = props;\n const textLockupElement = textLockup.person(props);\n const contactLockupElement = textLockup.contact(props);\n\n let image = personImage;\n\n if (!image) {\n image = imageFromSvg({\n SVG: iconPerson,\n });\n }\n\n const imageContainer = new ElementBuilder()\n .withClassName('person-block-image')\n .withChild(\n assets.image.background({\n element: image,\n isScaled: false,\n customStyles: {\n height: 'auto',\n },\n }),\n )\n .withStyles({\n element: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: `${token.color.gray.lighter}`,\n marginBottom: `${token.spacing.md}`,\n\n ...(isThemeDark && {\n backgroundColor: `${token.color.gray.darker}`,\n }),\n\n ['& img, & svg']: {\n display: 'block',\n width: '100%',\n objectFit: 'contain',\n height: '140px !important',\n transform: `none !important`,\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n height: '200px !important',\n }),\n },\n },\n })\n .build();\n\n return new ElementBuilder()\n .withClassName('person-block')\n .withChildren(imageContainer, textLockupElement, contactLockupElement)\n .build();\n};\n\nexport const createCompositePersonBlock = CreatePersonBlockElement;\n"],"names":["textLockup.person","textLockup.contact","iconPerson","assets.image.background"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,wBAAwB,MAAM,MAAM,iBAAiB,OAAO;AAElE,MAAM,2BAA2B,CAAC,UAAiD;AACjF,QAAM,EAAE,OAAO,aAAa,YAAA,IAAgB;AAC5C,QAAM,oBAAoBA,uBAAkB,KAAK;AACjD,QAAM,uBAAuBC,wBAAmB,KAAK;AAErD,MAAI,QAAQ;AAEZ,MAAI,CAAC,OAAO;AACV,YAAQ,aAAa;AAAA,MACnB,KAAKC;AAAAA,IAAA,CACN;AAAA,EACH;AAEA,QAAM,iBAAiB,IAAI,eAAA,EACxB,cAAc,oBAAoB,EAClC;AAAA,IACCC,sBAAwB;AAAA,MACtB,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc;AAAA,QACZ,QAAQ;AAAA,MAAA;AAAA,IACV,CACD;AAAA,EAAA,EAEF,WAAW;AAAA,IACV,SAAS;AAAA,MACP,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,iBAAiB,GAAG,MAAM,MAAM,KAAK,OAAO;AAAA,MAC5C,cAAc,GAAG,MAAM,QAAQ,EAAE;AAAA,MAEjC,GAAI,eAAe;AAAA,QACjB,iBAAiB,GAAG,MAAM,MAAM,KAAK,MAAM;AAAA,MAAA;AAAA,MAG7C,CAAC,cAAc,GAAG;AAAA,QAChB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,WAAW;AAAA,QAEX,GAAG,iBAAiB,aAAa,uBAAuB;AAAA,UACtD,QAAQ;AAAA,QAAA,CACT;AAAA,MAAA;AAAA,IACH;AAAA,EACF,CACD,EACA,MAAA;AAEH,SAAO,IAAI,eAAA,EACR,cAAc,cAAc,EAC5B,aAAa,gBAAgB,mBAAmB,oBAAoB,EACpE,MAAA;AACL;AAEO,MAAM,6BAA6B;"}
|
|
@@ -13,11 +13,10 @@ import "@universityofmaryland/web-icons-library/communication";
|
|
|
13
13
|
import "@universityofmaryland/web-icons-library/files";
|
|
14
14
|
import "@universityofmaryland/web-icons-library/brand";
|
|
15
15
|
import "@universityofmaryland/web-icons-library/arrows";
|
|
16
|
-
import "
|
|
16
|
+
import "@universityofmaryland/web-utilities-library/performance";
|
|
17
17
|
import "../../atomic/animations/brand/chevron-scroll.js";
|
|
18
18
|
import "../../atomic/animations/brand/card-stack.js";
|
|
19
19
|
import { createImageBackground } from "../../atomic/assets/image/background.js";
|
|
20
|
-
import "@universityofmaryland/web-utilities-library/performance";
|
|
21
20
|
import "@universityofmaryland/web-utilities-library/accessibility";
|
|
22
21
|
import "@universityofmaryland/web-icons-library/location";
|
|
23
22
|
import "@universityofmaryland/web-icons-library/calendar";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hero.js","sources":["../../../source/composite/person/hero.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as Styles from '@universityofmaryland/web-styles-library';\nimport { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { assets, textLockup } from 'atomic';\nimport { PersonContact } from './_types';\nimport { type ElementModel } from '../../_types';\n\ninterface Theme {\n isThemeDark?: boolean;\n}\n\ninterface PersonText extends Theme {\n name: HTMLElement | null;\n job?: HTMLElement | null;\n subText?: HTMLElement | null;\n}\n\ninterface PersonInfo extends PersonContact, Theme {\n image?: HTMLImageElement | null;\n association?: HTMLElement | null;\n pronouns?: HTMLElement | null;\n}\n\ninterface PersonHero extends PersonText, PersonInfo {\n breadcrumbMobile?: HTMLElement | null;\n breadcrumbDesktop?: HTMLElement | null;\n}\n\nconst CreateImageBlock = (props: PersonInfo): ElementModel<HTMLElement> => {\n const { image, association, pronouns, isThemeDark } = props;\n\n const wrapper = new ElementBuilder().withClassName(\n 'umd-person-hero-image-wrapper',\n );\n\n const contactContainer = textLockup.contact({\n ...props,\n isThemeDark: !isThemeDark,\n });\n\n if (image) {\n const imageBlock = assets.image.background({\n element: image,\n isScaled: false,\n });\n\n const imageContainer = new ElementBuilder()\n .withClassName('umd-person-hero-image')\n .withChild(imageBlock)\n .withStyles({\n element: {\n backgroundColor: `${\n isThemeDark ? token.color.gray.lightest : token.color.gray.darker\n }`,\n display: 'flex',\n justifyContent: 'center',\n marginBottom: token.spacing.md,\n\n ['& img']: {\n [`@container (max-width: ${token.media.breakpoints.large.max})`]: {\n maxHeight: '160px',\n },\n },\n },\n })\n .build();\n\n wrapper.withChild(imageContainer);\n }\n\n if (association) {\n wrapper.withChild(\n new ElementBuilder(association)\n .styled(\n Styles.typography.sans.compose('large', {\n theme: theme.fontColor(!isThemeDark),\n }),\n )\n .withStyles({\n element: {\n display: 'block',\n },\n siblingAfter: {\n marginTop: token.spacing.min,\n },\n })\n .build(),\n );\n }\n\n if (pronouns) {\n wrapper.withChild(\n new ElementBuilder(document.createElement('i'))\n .withClassName('umd-person-hero-pronouns')\n .withStyles({\n element: {\n display: 'block',\n color: `${isThemeDark ? token.color.black : token.color.white}`,\n\n ['*']: {\n color: 'currentColor',\n },\n },\n siblingAfter: {\n display: 'block',\n marginTop: token.spacing.min,\n },\n })\n .withChild(pronouns)\n .build(),\n );\n }\n\n if (contactContainer) {\n wrapper.withChild(contactContainer);\n }\n\n const wrapperBuilt = wrapper.build();\n\n return new ElementBuilder()\n .withClassName('umd-person-hero-image-container')\n .withChild(wrapperBuilt)\n .withStyles({\n element: {\n paddingTop: `${token.spacing.lg}`,\n paddingBottom: `${token.spacing.lg}`,\n backgroundColor: `${\n isThemeDark ? token.color.gray.lightest : token.color.black\n }`,\n position: 'relative',\n\n [`@container (max-width: ${token.media.breakpoints.large.max})`]: {\n paddingLeft: `${token.spacing.md}`,\n paddingRight: `${token.spacing.md}`,\n },\n\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n padding: `${token.spacing.md}`,\n width: '30%',\n maxWidth: '320px',\n },\n },\n })\n .build();\n};\n\nconst CreateTextContainer = ({\n name,\n job,\n subText,\n isThemeDark,\n}: PersonText): ElementModel<HTMLElement> => {\n const lineWrapper = new ElementBuilder()\n .styled(Styles.element.text.line.adjustentInset)\n .withStyles({\n pseudoBefore: {\n backgroundColor: `${isThemeDark ? token.color.gold : token.color.red}`,\n },\n });\n\n if (subText) {\n lineWrapper.withChild(\n new ElementBuilder(subText)\n .styled(\n Styles.typography.sans.compose('small', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n display: 'block',\n textTransform: 'uppercase',\n fontWeight: '700',\n maxWidth: '650px',\n },\n siblingAfter: {\n marginTop: token.spacing.min,\n\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n marginTop: token.spacing.sm,\n },\n },\n })\n .build(),\n );\n }\n\n if (name) {\n lineWrapper.withChild(\n new ElementBuilder(name)\n .styled(\n Styles.typography.campaign.compose('large', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n textTransform: 'uppercase',\n fontWeight: '700',\n display: 'block',\n },\n siblingAfter: {\n marginTop: token.spacing.min,\n\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n marginTop: token.spacing.md,\n },\n },\n })\n .build(),\n );\n }\n\n if (job) {\n lineWrapper.withChild(\n new ElementBuilder(job)\n .styled(\n Styles.typography.sans.compose('medium', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n display: 'block',\n\n ...(!isThemeDark && {\n color: token.color.gray.dark,\n }),\n },\n })\n .build(),\n );\n }\n\n const lineWrapperBuilt = lineWrapper.build();\n\n return new ElementBuilder()\n .withClassName('person-hero-text')\n .withChild(lineWrapperBuilt)\n .withStyles({\n element: {\n backgroundColor: `${\n isThemeDark ? token.color.black : token.color.gray.lightest\n }`,\n paddingTop: `${token.spacing['3xl']}`,\n paddingBottom: `${token.spacing['3xl']}`,\n position: 'relative',\n\n [`@container (max-width: ${token.media.breakpoints.large.max})`]: {\n paddingLeft: `${token.spacing.md}`,\n paddingRight: `${token.spacing.md}`,\n },\n\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n paddingTop: `0`,\n paddingBottom: `${token.spacing['7xl']}`,\n alignSelf: 'flex-start',\n },\n },\n pseudoBefore: {\n content: '\"\"',\n position: 'absolute',\n top: '-100px',\n left: '0',\n bottom: '0',\n width: '200vw',\n transform: 'translateX(-20%)',\n backgroundColor: `${\n isThemeDark ? token.color.black : token.color.gray.lightest\n }`,\n },\n })\n .build();\n};\n\nconst CreatePersonHeroElement = (props: PersonHero): ElementModel<HTMLElement> => {\n const { breadcrumbMobile, breadcrumbDesktop } = props;\n const textContainer = CreateTextContainer(props);\n\n const textColumns = new ElementBuilder()\n .withClassName('umd-person-hero-columns')\n .withChild(textContainer)\n .withStyles({\n element: {\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n width: '70%',\n },\n },\n });\n\n if (breadcrumbDesktop) {\n const textColumnBreadcrumb = new ElementBuilder()\n .withClassName('umd-person-hero-breadcrumb-desktop')\n .withChild(breadcrumbDesktop)\n .withStyles({\n element: {\n [`@container (max-width: ${token.media.breakpoints.large.max})`]: {\n display: 'none',\n },\n },\n })\n .build();\n\n textColumns.withChild(textColumnBreadcrumb);\n }\n\n const textColumnsBuilt = textColumns.build();\n const imageBlock = CreateImageBlock(props);\n\n const elementWrapper = new ElementBuilder()\n .withClassName('umd-person-hero-wrapper')\n .withChild(textColumnsBuilt)\n .withChild(imageBlock)\n .withStyles({\n element: {\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n display: 'flex',\n justifyContent: 'space-between',\n paddingTop: `${token.spacing['7xl']}`,\n },\n },\n })\n .build();\n\n const elementLock = new ElementBuilder()\n .styled(Styles.layout.space.horizontal.larger)\n .withChild(elementWrapper)\n .withStyles({\n element: {\n [`@container (max-width: ${token.media.breakpoints.large.max})`]: {\n padding: '0',\n },\n },\n });\n\n if (breadcrumbMobile) {\n const mainBreadcrumb = new ElementBuilder()\n .withClassName('umd-person-hero-breadcrumb-mobile')\n .withChild(breadcrumbMobile)\n .withStyles({\n element: {\n paddingLeft: `${token.spacing.md}`,\n paddingRight: `${token.spacing.md}`,\n\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n display: 'none',\n },\n },\n })\n .build();\n\n elementLock.withChild(mainBreadcrumb);\n }\n\n const elementLockBuilt = elementLock.build();\n\n return new ElementBuilder()\n .withClassName('umd-person-hero')\n .withChild(elementLockBuilt)\n .withStyles({\n element: {\n overflow: 'hidden',\n containerType: 'inline-size',\n },\n })\n .build();\n};\n\nexport const createCompositePersonHero = CreatePersonHeroElement;\n"],"names":["textLockup.contact","assets.image.background"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hero.js","sources":["../../../source/composite/person/hero.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as Styles from '@universityofmaryland/web-styles-library';\nimport { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { assets, textLockup } from 'atomic';\nimport { PersonContact } from './_types';\nimport { type ElementModel } from '../../_types';\n\ninterface Theme {\n isThemeDark?: boolean;\n}\n\ninterface PersonText extends Theme {\n name: HTMLElement | null;\n job?: HTMLElement | null;\n subText?: HTMLElement | null;\n}\n\ninterface PersonInfo extends PersonContact, Theme {\n image?: HTMLImageElement | null;\n association?: HTMLElement | null;\n pronouns?: HTMLElement | null;\n}\n\ninterface PersonHero extends PersonText, PersonInfo {\n breadcrumbMobile?: HTMLElement | null;\n breadcrumbDesktop?: HTMLElement | null;\n}\n\nconst CreateImageBlock = (props: PersonInfo): ElementModel<HTMLElement> => {\n const { image, association, pronouns, isThemeDark } = props;\n\n const wrapper = new ElementBuilder().withClassName(\n 'umd-person-hero-image-wrapper',\n );\n\n const contactContainer = textLockup.contact({\n ...props,\n isThemeDark: !isThemeDark,\n });\n\n if (image) {\n const imageBlock = assets.image.background({\n element: image,\n isScaled: false,\n });\n\n const imageContainer = new ElementBuilder()\n .withClassName('umd-person-hero-image')\n .withChild(imageBlock)\n .withStyles({\n element: {\n backgroundColor: `${\n isThemeDark ? token.color.gray.lightest : token.color.gray.darker\n }`,\n display: 'flex',\n justifyContent: 'center',\n marginBottom: token.spacing.md,\n\n ['& img']: {\n [`@container (max-width: ${token.media.breakpoints.large.max})`]: {\n maxHeight: '160px',\n },\n },\n },\n })\n .build();\n\n wrapper.withChild(imageContainer);\n }\n\n if (association) {\n wrapper.withChild(\n new ElementBuilder(association)\n .styled(\n Styles.typography.sans.compose('large', {\n theme: theme.fontColor(!isThemeDark),\n }),\n )\n .withStyles({\n element: {\n display: 'block',\n },\n siblingAfter: {\n marginTop: token.spacing.min,\n },\n })\n .build(),\n );\n }\n\n if (pronouns) {\n wrapper.withChild(\n new ElementBuilder(document.createElement('i'))\n .withClassName('umd-person-hero-pronouns')\n .withStyles({\n element: {\n display: 'block',\n color: `${isThemeDark ? token.color.black : token.color.white}`,\n\n ['*']: {\n color: 'currentColor',\n },\n },\n siblingAfter: {\n display: 'block',\n marginTop: token.spacing.min,\n },\n })\n .withChild(pronouns)\n .build(),\n );\n }\n\n if (contactContainer) {\n wrapper.withChild(contactContainer);\n }\n\n const wrapperBuilt = wrapper.build();\n\n return new ElementBuilder()\n .withClassName('umd-person-hero-image-container')\n .withChild(wrapperBuilt)\n .withStyles({\n element: {\n paddingTop: `${token.spacing.lg}`,\n paddingBottom: `${token.spacing.lg}`,\n backgroundColor: `${\n isThemeDark ? token.color.gray.lightest : token.color.black\n }`,\n position: 'relative',\n\n [`@container (max-width: ${token.media.breakpoints.large.max})`]: {\n paddingLeft: `${token.spacing.md}`,\n paddingRight: `${token.spacing.md}`,\n },\n\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n padding: `${token.spacing.md}`,\n width: '30%',\n maxWidth: '320px',\n },\n },\n })\n .build();\n};\n\nconst CreateTextContainer = ({\n name,\n job,\n subText,\n isThemeDark,\n}: PersonText): ElementModel<HTMLElement> => {\n const lineWrapper = new ElementBuilder()\n .styled(Styles.element.text.line.adjustentInset)\n .withStyles({\n pseudoBefore: {\n backgroundColor: `${isThemeDark ? token.color.gold : token.color.red}`,\n },\n });\n\n if (subText) {\n lineWrapper.withChild(\n new ElementBuilder(subText)\n .styled(\n Styles.typography.sans.compose('small', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n display: 'block',\n textTransform: 'uppercase',\n fontWeight: '700',\n maxWidth: '650px',\n },\n siblingAfter: {\n marginTop: token.spacing.min,\n\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n marginTop: token.spacing.sm,\n },\n },\n })\n .build(),\n );\n }\n\n if (name) {\n lineWrapper.withChild(\n new ElementBuilder(name)\n .styled(\n Styles.typography.campaign.compose('large', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n textTransform: 'uppercase',\n fontWeight: '700',\n display: 'block',\n },\n siblingAfter: {\n marginTop: token.spacing.min,\n\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n marginTop: token.spacing.md,\n },\n },\n })\n .build(),\n );\n }\n\n if (job) {\n lineWrapper.withChild(\n new ElementBuilder(job)\n .styled(\n Styles.typography.sans.compose('medium', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n display: 'block',\n\n ...(!isThemeDark && {\n color: token.color.gray.dark,\n }),\n },\n })\n .build(),\n );\n }\n\n const lineWrapperBuilt = lineWrapper.build();\n\n return new ElementBuilder()\n .withClassName('person-hero-text')\n .withChild(lineWrapperBuilt)\n .withStyles({\n element: {\n backgroundColor: `${\n isThemeDark ? token.color.black : token.color.gray.lightest\n }`,\n paddingTop: `${token.spacing['3xl']}`,\n paddingBottom: `${token.spacing['3xl']}`,\n position: 'relative',\n\n [`@container (max-width: ${token.media.breakpoints.large.max})`]: {\n paddingLeft: `${token.spacing.md}`,\n paddingRight: `${token.spacing.md}`,\n },\n\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n paddingTop: `0`,\n paddingBottom: `${token.spacing['7xl']}`,\n alignSelf: 'flex-start',\n },\n },\n pseudoBefore: {\n content: '\"\"',\n position: 'absolute',\n top: '-100px',\n left: '0',\n bottom: '0',\n width: '200vw',\n transform: 'translateX(-20%)',\n backgroundColor: `${\n isThemeDark ? token.color.black : token.color.gray.lightest\n }`,\n },\n })\n .build();\n};\n\nconst CreatePersonHeroElement = (props: PersonHero): ElementModel<HTMLElement> => {\n const { breadcrumbMobile, breadcrumbDesktop } = props;\n const textContainer = CreateTextContainer(props);\n\n const textColumns = new ElementBuilder()\n .withClassName('umd-person-hero-columns')\n .withChild(textContainer)\n .withStyles({\n element: {\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n width: '70%',\n },\n },\n });\n\n if (breadcrumbDesktop) {\n const textColumnBreadcrumb = new ElementBuilder()\n .withClassName('umd-person-hero-breadcrumb-desktop')\n .withChild(breadcrumbDesktop)\n .withStyles({\n element: {\n [`@container (max-width: ${token.media.breakpoints.large.max})`]: {\n display: 'none',\n },\n },\n })\n .build();\n\n textColumns.withChild(textColumnBreadcrumb);\n }\n\n const textColumnsBuilt = textColumns.build();\n const imageBlock = CreateImageBlock(props);\n\n const elementWrapper = new ElementBuilder()\n .withClassName('umd-person-hero-wrapper')\n .withChild(textColumnsBuilt)\n .withChild(imageBlock)\n .withStyles({\n element: {\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n display: 'flex',\n justifyContent: 'space-between',\n paddingTop: `${token.spacing['7xl']}`,\n },\n },\n })\n .build();\n\n const elementLock = new ElementBuilder()\n .styled(Styles.layout.space.horizontal.larger)\n .withChild(elementWrapper)\n .withStyles({\n element: {\n [`@container (max-width: ${token.media.breakpoints.large.max})`]: {\n padding: '0',\n },\n },\n });\n\n if (breadcrumbMobile) {\n const mainBreadcrumb = new ElementBuilder()\n .withClassName('umd-person-hero-breadcrumb-mobile')\n .withChild(breadcrumbMobile)\n .withStyles({\n element: {\n paddingLeft: `${token.spacing.md}`,\n paddingRight: `${token.spacing.md}`,\n\n [`@container (min-width: ${token.media.breakpoints.tablet.min})`]: {\n display: 'none',\n },\n },\n })\n .build();\n\n elementLock.withChild(mainBreadcrumb);\n }\n\n const elementLockBuilt = elementLock.build();\n\n return new ElementBuilder()\n .withClassName('umd-person-hero')\n .withChild(elementLockBuilt)\n .withStyles({\n element: {\n overflow: 'hidden',\n containerType: 'inline-size',\n },\n })\n .build();\n};\n\nexport const createCompositePersonHero = CreatePersonHeroElement;\n"],"names":["textLockup.contact","assets.image.background"],"mappings":"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"}
|
|
@@ -12,11 +12,10 @@ import "@universityofmaryland/web-icons-library/communication";
|
|
|
12
12
|
import "@universityofmaryland/web-icons-library/files";
|
|
13
13
|
import "@universityofmaryland/web-icons-library/brand";
|
|
14
14
|
import "@universityofmaryland/web-icons-library/arrows";
|
|
15
|
-
import "
|
|
15
|
+
import "@universityofmaryland/web-utilities-library/performance";
|
|
16
16
|
import "../../atomic/animations/brand/chevron-scroll.js";
|
|
17
17
|
import "../../atomic/animations/brand/card-stack.js";
|
|
18
18
|
import "@universityofmaryland/web-styles-library";
|
|
19
|
-
import "@universityofmaryland/web-utilities-library/performance";
|
|
20
19
|
import "@universityofmaryland/web-utilities-library/accessibility";
|
|
21
20
|
import "@universityofmaryland/web-icons-library/location";
|
|
22
21
|
import "@universityofmaryland/web-icons-library/calendar";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sources":["../../../source/composite/person/list.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { layout } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst smallBreakpoint = token.media.breakpointValues.small.max;\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\nconst mediumBreakpoint = token.media.breakpointValues.large.min;\n\nconst CreatePersonListElement = ({\n actions,\n address,\n association,\n email,\n image,\n isThemeDark,\n job,\n linkedin,\n name,\n phone,\n pronouns,\n subText,\n}: PersonCard): ElementModel<HTMLElement> => {\n const builder = new ElementBuilder()\n .withClassName('person-list-container')\n .withStyles({\n element: {\n overflow: 'hidden',\n display: 'flex',\n\n ...createMediaQuery('max-width', smallBreakpoint, {\n flexDirection: 'column',\n }),\n },\n });\n\n if (image) {\n builder.withChild(\n layout.person.columns.image({\n customStyles: {\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n display: 'block',\n width: '160px',\n minWidth: '160px',\n paddingRight: `${token.spacing.md}`,\n alignSelf: 'flex-start',\n }),\n\n ...createMediaQuery('min-width', mediumBreakpoint, {\n width: '208px',\n minWidth: '208px',\n }),\n },\n image,\n isThemeDark,\n }),\n );\n }\n\n if (name) {\n builder.withChild(\n layout.person.columns.information({\n actions,\n address,\n association,\n customStyles: {},\n email,\n isThemeDark,\n job,\n linkedin,\n name,\n phone,\n pronouns,\n subText,\n }),\n );\n }\n\n return builder.build();\n};\n\nexport const createCompositePersonList = CreatePersonListElement;\n"],"names":["image","layout.person.columns.image","layout.person.columns.information"],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.js","sources":["../../../source/composite/person/list.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { layout } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst smallBreakpoint = token.media.breakpointValues.small.max;\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\nconst mediumBreakpoint = token.media.breakpointValues.large.min;\n\nconst CreatePersonListElement = ({\n actions,\n address,\n association,\n email,\n image,\n isThemeDark,\n job,\n linkedin,\n name,\n phone,\n pronouns,\n subText,\n}: PersonCard): ElementModel<HTMLElement> => {\n const builder = new ElementBuilder()\n .withClassName('person-list-container')\n .withStyles({\n element: {\n overflow: 'hidden',\n display: 'flex',\n\n ...createMediaQuery('max-width', smallBreakpoint, {\n flexDirection: 'column',\n }),\n },\n });\n\n if (image) {\n builder.withChild(\n layout.person.columns.image({\n customStyles: {\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n display: 'block',\n width: '160px',\n minWidth: '160px',\n paddingRight: `${token.spacing.md}`,\n alignSelf: 'flex-start',\n }),\n\n ...createMediaQuery('min-width', mediumBreakpoint, {\n width: '208px',\n minWidth: '208px',\n }),\n },\n image,\n isThemeDark,\n }),\n );\n }\n\n if (name) {\n builder.withChild(\n layout.person.columns.information({\n actions,\n address,\n association,\n customStyles: {},\n email,\n isThemeDark,\n job,\n linkedin,\n name,\n phone,\n pronouns,\n subText,\n }),\n );\n }\n\n return builder.build();\n};\n\nexport const createCompositePersonList = CreatePersonListElement;\n"],"names":["image","layout.person.columns.image","layout.person.columns.information"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,kBAAkB,MAAM,MAAM,iBAAiB,MAAM;AAC3D,MAAM,wBAAwB,MAAM,MAAM,iBAAiB,OAAO;AAClE,MAAM,mBAAmB,MAAM,MAAM,iBAAiB,MAAM;AAE5D,MAAM,0BAA0B,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAAA,OACAA;AAAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6C;AAC3C,QAAM,UAAU,IAAI,eAAA,EACjB,cAAc,uBAAuB,EACrC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,MAET,GAAG,iBAAiB,aAAa,iBAAiB;AAAA,QAChD,eAAe;AAAA,MAAA,CAChB;AAAA,IAAA;AAAA,EACH,CACD;AAEH,MAAIA,SAAO;AACT,YAAQ;AAAA,MACNC,MAA4B;AAAA,QAC1B,cAAc;AAAA,UACZ,GAAG,iBAAiB,aAAa,uBAAuB;AAAA,YACtD,SAAS;AAAA,YACT,OAAO;AAAA,YACP,UAAU;AAAA,YACV,cAAc,GAAG,MAAM,QAAQ,EAAE;AAAA,YACjC,WAAW;AAAA,UAAA,CACZ;AAAA,UAED,GAAG,iBAAiB,aAAa,kBAAkB;AAAA,YACjD,OAAO;AAAA,YACP,UAAU;AAAA,UAAA,CACX;AAAA,QAAA;AAAA,QACH,OACAD;AAAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,MAAM;AACR,YAAQ;AAAA,MACNE,YAAkC;AAAA,QAChC;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,SAAO,QAAQ,MAAA;AACjB;AAEO,MAAM,4BAA4B;"}
|
|
@@ -13,11 +13,10 @@ import "@universityofmaryland/web-icons-library/communication";
|
|
|
13
13
|
import "@universityofmaryland/web-icons-library/files";
|
|
14
14
|
import "@universityofmaryland/web-icons-library/brand";
|
|
15
15
|
import "@universityofmaryland/web-icons-library/arrows";
|
|
16
|
-
import "
|
|
16
|
+
import "@universityofmaryland/web-utilities-library/performance";
|
|
17
17
|
import "../../atomic/animations/brand/chevron-scroll.js";
|
|
18
18
|
import "../../atomic/animations/brand/card-stack.js";
|
|
19
19
|
import "@universityofmaryland/web-styles-library";
|
|
20
|
-
import "@universityofmaryland/web-utilities-library/performance";
|
|
21
20
|
import "@universityofmaryland/web-utilities-library/accessibility";
|
|
22
21
|
import "@universityofmaryland/web-icons-library/location";
|
|
23
22
|
import "@universityofmaryland/web-icons-library/calendar";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabular.js","sources":["../../../source/composite/person/tabular.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 animationStyles from '@universityofmaryland/web-styles-library/animation';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { wrapTextNodeInSpan } from '@universityofmaryland/web-utilities-library/dom';\nimport { layout } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type UMDElement } from '../../_types';\n\nconst smallBreakpoint = token.media.breakpointValues.small.max;\n\nconst CreatePersonTabularElement = ({\n actions,\n additionalContact,\n address,\n association,\n email,\n image,\n isThemeDark,\n job,\n linkedin,\n name,\n phone,\n pronouns,\n subText,\n}: PersonCard): UMDElement => {\n const builder = new ElementBuilder()\n .withClassName('person-tabular-container')\n .withStyles({\n element: {\n overflow: 'hidden',\n display: 'flex',\n\n ...createMediaQuery('max-width', smallBreakpoint, {\n flexDirection: 'column',\n }),\n },\n });\n\n if (image) {\n builder.withChild(\n layout.person.columns.image({\n image,\n isThemeDark,\n }),\n );\n }\n\n if (name) {\n const nameStyles = {\n ...typography.sans.compose('large', {\n theme: theme.fontColor(isThemeDark),\n }),\n ...animationStyles.line.composeSlideUnder({\n color: theme.foreground(isThemeDark),\n }),\n };\n\n const nameComposite = new ElementBuilder(name)\n .withClassName('person-tabular-name')\n .styled(nameStyles)\n .withStyles({\n element: {\n fontWeight: `${token.font.weight.bold}`,\n\n [`& + *`]: {\n marginTop: token.spacing.min,\n },\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .withModifier((el) => wrapTextNodeInSpan(el))\n .build();\n\n builder.withChild(\n layout.person.columns.details({\n actions,\n association,\n isThemeDark,\n customStyles: {},\n job,\n nameComposite,\n pronouns,\n subText,\n }),\n );\n }\n\n if (additionalContact || address || email || linkedin || phone) {\n builder.withChild(\n layout.person.columns.contact({\n additionalContact,\n address,\n customStyles: {},\n email,\n isThemeDark,\n linkedin,\n phone,\n }),\n );\n }\n\n return builder.build();\n};\n\nexport const createCompositePersonTabular = CreatePersonTabularElement;\n"],"names":["image","layout.person.columns.image","animationStyles","layout.person.columns.details","layout.person.columns.contact"],"mappings":"
|
|
1
|
+
{"version":3,"file":"tabular.js","sources":["../../../source/composite/person/tabular.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 animationStyles from '@universityofmaryland/web-styles-library/animation';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { wrapTextNodeInSpan } from '@universityofmaryland/web-utilities-library/dom';\nimport { layout } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type UMDElement } from '../../_types';\n\nconst smallBreakpoint = token.media.breakpointValues.small.max;\n\nconst CreatePersonTabularElement = ({\n actions,\n additionalContact,\n address,\n association,\n email,\n image,\n isThemeDark,\n job,\n linkedin,\n name,\n phone,\n pronouns,\n subText,\n}: PersonCard): UMDElement => {\n const builder = new ElementBuilder()\n .withClassName('person-tabular-container')\n .withStyles({\n element: {\n overflow: 'hidden',\n display: 'flex',\n\n ...createMediaQuery('max-width', smallBreakpoint, {\n flexDirection: 'column',\n }),\n },\n });\n\n if (image) {\n builder.withChild(\n layout.person.columns.image({\n image,\n isThemeDark,\n }),\n );\n }\n\n if (name) {\n const nameStyles = {\n ...typography.sans.compose('large', {\n theme: theme.fontColor(isThemeDark),\n }),\n ...animationStyles.line.composeSlideUnder({\n color: theme.foreground(isThemeDark),\n }),\n };\n\n const nameComposite = new ElementBuilder(name)\n .withClassName('person-tabular-name')\n .styled(nameStyles)\n .withStyles({\n element: {\n fontWeight: `${token.font.weight.bold}`,\n\n [`& + *`]: {\n marginTop: token.spacing.min,\n },\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .withModifier((el) => wrapTextNodeInSpan(el))\n .build();\n\n builder.withChild(\n layout.person.columns.details({\n actions,\n association,\n isThemeDark,\n customStyles: {},\n job,\n nameComposite,\n pronouns,\n subText,\n }),\n );\n }\n\n if (additionalContact || address || email || linkedin || phone) {\n builder.withChild(\n layout.person.columns.contact({\n additionalContact,\n address,\n customStyles: {},\n email,\n isThemeDark,\n linkedin,\n phone,\n }),\n );\n }\n\n return builder.build();\n};\n\nexport const createCompositePersonTabular = CreatePersonTabularElement;\n"],"names":["image","layout.person.columns.image","animationStyles","layout.person.columns.details","layout.person.columns.contact"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,kBAAkB,MAAM,MAAM,iBAAiB,MAAM;AAE3D,MAAM,6BAA6B,CAAC;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAAA,OACAA;AAAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8B;AAC5B,QAAM,UAAU,IAAI,eAAA,EACjB,cAAc,0BAA0B,EACxC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,MAET,GAAG,iBAAiB,aAAa,iBAAiB;AAAA,QAChD,eAAe;AAAA,MAAA,CAChB;AAAA,IAAA;AAAA,EACH,CACD;AAEH,MAAIA,SAAO;AACT,YAAQ;AAAA,MACNC,MAA4B;AAAA,QAAA,OAC1BD;AAAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,MAAM;AACR,UAAM,aAAa;AAAA,MACjB,GAAG,WAAW,KAAK,QAAQ,SAAS;AAAA,QAClC,OAAO,MAAM,UAAU,WAAW;AAAA,MAAA,CACnC;AAAA,MACD,GAAGE,UAAgB,KAAK,kBAAkB;AAAA,QACxC,OAAO,MAAM,WAAW,WAAW;AAAA,MAAA,CACpC;AAAA,IAAA;AAGH,UAAM,gBAAgB,IAAI,eAAe,IAAI,EAC1C,cAAc,qBAAqB,EACnC,OAAO,UAAU,EACjB,WAAW;AAAA,MACV,SAAS;AAAA,QACP,YAAY,GAAG,MAAM,KAAK,OAAO,IAAI;AAAA,QAErC,CAAC,OAAO,GAAG;AAAA,UACT,WAAW,MAAM,QAAQ;AAAA,QAAA;AAAA,MAC3B;AAAA,MAEF,YAAY;AAAA,QACV,OAAO;AAAA,MAAA;AAAA,IACT,CACD,EACA,aAAa,CAAC,OAAO,mBAAmB,EAAE,CAAC,EAC3C,MAAA;AAEH,YAAQ;AAAA,MACNC,QAA8B;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,qBAAqB,WAAW,SAAS,YAAY,OAAO;AAC9D,YAAQ;AAAA,MACNC,QAA8B;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,SAAO,QAAQ,MAAA;AACjB;AAEO,MAAM,+BAA+B;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@universityofmaryland/web-elements-library",
|
|
3
|
-
"version": "1.6.0
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "UMD Web Elements",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -9,19 +9,23 @@
|
|
|
9
9
|
"exports": {
|
|
10
10
|
".": {
|
|
11
11
|
"types": "./dist/index.d.ts",
|
|
12
|
-
"import": "./dist/index.js"
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"default": "./dist/index.js"
|
|
13
14
|
},
|
|
14
15
|
"./atomic": {
|
|
15
16
|
"types": "./dist/atomic.d.ts",
|
|
16
|
-
"import": "./dist/atomic.js"
|
|
17
|
+
"import": "./dist/atomic.js",
|
|
18
|
+
"default": "./dist/atomic.js"
|
|
17
19
|
},
|
|
18
20
|
"./composite": {
|
|
19
21
|
"types": "./dist/composite.d.ts",
|
|
20
|
-
"import": "./dist/composite.js"
|
|
22
|
+
"import": "./dist/composite.js",
|
|
23
|
+
"default": "./dist/composite.js"
|
|
21
24
|
},
|
|
22
25
|
"./layout": {
|
|
23
26
|
"types": "./dist/layout.d.ts",
|
|
24
|
-
"import": "./dist/layout.js"
|
|
27
|
+
"import": "./dist/layout.js",
|
|
28
|
+
"default": "./dist/layout.js"
|
|
25
29
|
}
|
|
26
30
|
},
|
|
27
31
|
"license": "MIT",
|
|
@@ -48,13 +52,13 @@
|
|
|
48
52
|
},
|
|
49
53
|
"dependencies": {
|
|
50
54
|
"@types/postcss-js": "^4.0.4",
|
|
51
|
-
"@universityofmaryland/web-
|
|
52
|
-
"@universityofmaryland/web-token-library": "^1.0.0",
|
|
53
|
-
"@universityofmaryland/web-utilities-library": "^1.0.0"
|
|
55
|
+
"@universityofmaryland/web-token-library": "^1.0.0"
|
|
54
56
|
},
|
|
55
57
|
"peerDependencies": {
|
|
58
|
+
"@universityofmaryland/web-builder-library": "^1.0.0",
|
|
59
|
+
"@universityofmaryland/web-icons-library": "^1.0.0",
|
|
56
60
|
"@universityofmaryland/web-styles-library": "^1.0.0",
|
|
57
|
-
"@universityofmaryland/web-
|
|
61
|
+
"@universityofmaryland/web-utilities-library": "^1.0.0"
|
|
58
62
|
},
|
|
59
63
|
"devDependencies": {
|
|
60
64
|
"@vitejs/plugin-legacy": "^7.2.1",
|