@universityofmaryland/web-elements-library 1.6.16 → 1.7.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/README.md +1 -1
- package/dist/atomic/animations/brand/card-stack.js +2 -3
- package/dist/atomic/animations/brand/card-stack.js.map +1 -1
- package/dist/atomic/animations/brand/chevron-flow.d.ts +1 -7
- package/dist/atomic/animations/brand/chevron-flow.d.ts.map +1 -1
- package/dist/atomic/animations/brand/chevron-flow.js +82 -159
- package/dist/atomic/animations/brand/chevron-flow.js.map +1 -1
- package/dist/atomic/animations/brand/chevron-scroll.d.ts +1 -4
- package/dist/atomic/animations/brand/chevron-scroll.d.ts.map +1 -1
- package/dist/atomic/animations/brand/chevron-scroll.js +89 -143
- package/dist/atomic/animations/brand/chevron-scroll.js.map +1 -1
- package/dist/atomic/assets/image/caption.d.ts +9 -0
- package/dist/atomic/assets/image/caption.d.ts.map +1 -0
- package/dist/atomic/assets/image/caption.js +166 -0
- package/dist/atomic/assets/image/caption.js.map +1 -0
- package/dist/atomic/assets/image/gif.d.ts.map +1 -1
- package/dist/atomic/assets/image/gif.js +6 -1
- package/dist/atomic/assets/image/gif.js.map +1 -1
- package/dist/atomic/assets/image/index.d.ts +1 -0
- package/dist/atomic/assets/image/index.d.ts.map +1 -1
- package/dist/atomic/assets/image/index.js +2 -0
- package/dist/atomic/assets/image/index.js.map +1 -1
- package/dist/atomic/assets/video/toggle.d.ts.map +1 -1
- package/dist/atomic/assets/video/toggle.js +9 -2
- package/dist/atomic/assets/video/toggle.js.map +1 -1
- package/dist/atomic/buttons/fullscreen.d.ts +1 -0
- package/dist/atomic/buttons/fullscreen.d.ts.map +1 -1
- package/dist/atomic/buttons/fullscreen.js +35 -3
- package/dist/atomic/buttons/fullscreen.js.map +1 -1
- package/dist/atomic/layout/overlay/modal.d.ts +1 -10
- package/dist/atomic/layout/overlay/modal.d.ts.map +1 -1
- package/dist/atomic/layout/overlay/modal.js +28 -44
- package/dist/atomic/layout/overlay/modal.js.map +1 -1
- package/dist/atomic/layout/person/columns.js +2 -3
- package/dist/atomic/layout/person/columns.js.map +1 -1
- package/dist/atomic/text-lockup/date.d.ts +1 -4
- package/dist/atomic/text-lockup/date.d.ts.map +1 -1
- package/dist/atomic/text-lockup/date.js +42 -75
- package/dist/atomic/text-lockup/date.js.map +1 -1
- package/dist/composite/accordion/item.d.ts +3 -16
- package/dist/composite/accordion/item.d.ts.map +1 -1
- package/dist/composite/accordion/item.js +152 -245
- package/dist/composite/accordion/item.js.map +1 -1
- package/dist/composite/card/block.js +2 -3
- package/dist/composite/card/block.js.map +1 -1
- package/dist/composite/card/event-time.js +2 -3
- package/dist/composite/card/event-time.js.map +1 -1
- package/dist/composite/card/list.js +2 -3
- package/dist/composite/card/list.js.map +1 -1
- package/dist/composite/card/overlay/color.js +3 -3
- package/dist/composite/card/overlay/icon.js +3 -3
- package/dist/composite/card/overlay/image.d.ts.map +1 -1
- package/dist/composite/card/overlay/image.js +9 -12
- package/dist/composite/card/overlay/image.js.map +1 -1
- package/dist/composite/card/video/block.js +4 -3
- package/dist/composite/card/video/block.js.map +1 -1
- package/dist/composite/carousel/cards/index.d.ts +1 -8
- package/dist/composite/carousel/cards/index.d.ts.map +1 -1
- package/dist/composite/carousel/cards/index.js +163 -282
- package/dist/composite/carousel/cards/index.js.map +1 -1
- package/dist/composite/carousel/default/index.d.ts +9 -15
- package/dist/composite/carousel/default/index.d.ts.map +1 -1
- package/dist/composite/carousel/default/index.js +78 -129
- package/dist/composite/carousel/default/index.js.map +1 -1
- package/dist/composite/carousel/elements/equal-width-items.d.ts +37 -0
- package/dist/composite/carousel/elements/equal-width-items.d.ts.map +1 -0
- package/dist/composite/carousel/elements/{blocks.js → equal-width-items.js} +157 -227
- package/dist/composite/carousel/elements/equal-width-items.js.map +1 -0
- package/dist/composite/carousel/elements/full-screen.d.ts +3 -2
- package/dist/composite/carousel/elements/full-screen.d.ts.map +1 -1
- package/dist/composite/carousel/elements/full-screen.js +34 -41
- package/dist/composite/carousel/elements/full-screen.js.map +1 -1
- package/dist/composite/carousel/elements/image.d.ts +15 -2
- package/dist/composite/carousel/elements/image.d.ts.map +1 -1
- package/dist/composite/carousel/elements/image.js +176 -151
- package/dist/composite/carousel/elements/image.js.map +1 -1
- package/dist/composite/carousel/elements/index.d.ts +4 -1
- package/dist/composite/carousel/elements/index.d.ts.map +1 -1
- package/dist/composite/carousel/elements/indicator-wrapper.d.ts +13 -0
- package/dist/composite/carousel/elements/indicator-wrapper.d.ts.map +1 -0
- package/dist/composite/carousel/elements/indicator-wrapper.js +67 -0
- package/dist/composite/carousel/elements/indicator-wrapper.js.map +1 -0
- package/dist/composite/carousel/elements/nav-button.d.ts +82 -0
- package/dist/composite/carousel/elements/nav-button.d.ts.map +1 -0
- package/dist/composite/carousel/elements/nav-button.js +164 -0
- package/dist/composite/carousel/elements/nav-button.js.map +1 -0
- package/dist/composite/carousel/elements/overlay.d.ts +3 -2
- package/dist/composite/carousel/elements/overlay.d.ts.map +1 -1
- package/dist/composite/carousel/elements/overlay.js +85 -55
- package/dist/composite/carousel/elements/overlay.js.map +1 -1
- package/dist/composite/carousel/image/multiple.d.ts +2 -7
- package/dist/composite/carousel/image/multiple.d.ts.map +1 -1
- package/dist/composite/carousel/image/multiple.js +85 -150
- package/dist/composite/carousel/image/multiple.js.map +1 -1
- package/dist/composite/carousel/image/standard.d.ts +2 -7
- package/dist/composite/carousel/image/standard.d.ts.map +1 -1
- package/dist/composite/carousel/image/standard.js +148 -262
- package/dist/composite/carousel/image/standard.js.map +1 -1
- package/dist/composite/carousel/thumbnail/index.d.ts +1 -8
- package/dist/composite/carousel/thumbnail/index.d.ts.map +1 -1
- package/dist/composite/carousel/thumbnail/index.js +72 -113
- package/dist/composite/carousel/thumbnail/index.js.map +1 -1
- package/dist/composite/carousel/wide/container.d.ts +21 -20
- package/dist/composite/carousel/wide/container.d.ts.map +1 -1
- package/dist/composite/carousel/wide/container.js +37 -12
- package/dist/composite/carousel/wide/container.js.map +1 -1
- package/dist/composite/carousel/wide/controls.d.ts +5 -10
- package/dist/composite/carousel/wide/controls.d.ts.map +1 -1
- package/dist/composite/carousel/wide/controls.js +24 -94
- package/dist/composite/carousel/wide/controls.js.map +1 -1
- package/dist/composite/carousel/wide/frames.d.ts +18 -10
- package/dist/composite/carousel/wide/frames.d.ts.map +1 -1
- package/dist/composite/carousel/wide/frames.js +60 -78
- package/dist/composite/carousel/wide/frames.js.map +1 -1
- package/dist/composite/carousel/wide/index.d.ts.map +1 -1
- package/dist/composite/carousel/wide/index.js +11 -19
- package/dist/composite/carousel/wide/index.js.map +1 -1
- package/dist/composite/hero/custom/expand.js +3 -4
- package/dist/composite/hero/custom/expand.js.map +1 -1
- package/dist/composite/hero/custom/grid.js +2 -3
- package/dist/composite/hero/custom/grid.js.map +1 -1
- package/dist/composite/hero/custom/video-arrow.js +4 -3
- package/dist/composite/hero/custom/video-arrow.js.map +1 -1
- package/dist/composite/hero/logo.js +3 -3
- package/dist/composite/hero/minimal.js +3 -3
- package/dist/composite/hero/overlay.js +5 -4
- package/dist/composite/hero/overlay.js.map +1 -1
- package/dist/composite/hero/stacked.js +3 -3
- package/dist/composite/hero/standard.js +4 -3
- package/dist/composite/hero/standard.js.map +1 -1
- package/dist/composite/layout/box/logo.d.ts +1 -4
- package/dist/composite/layout/box/logo.d.ts.map +1 -1
- package/dist/composite/layout/box/logo.js +55 -103
- package/dist/composite/layout/box/logo.js.map +1 -1
- package/dist/composite/layout/image/expand.d.ts +1 -4
- package/dist/composite/layout/image/expand.d.ts.map +1 -1
- package/dist/composite/layout/image/expand.js +136 -243
- package/dist/composite/layout/image/expand.js.map +1 -1
- package/dist/composite/layout/scroll-top/index.d.ts +1 -7
- package/dist/composite/layout/scroll-top/index.d.ts.map +1 -1
- package/dist/composite/layout/scroll-top/index.js +65 -77
- package/dist/composite/layout/scroll-top/index.js.map +1 -1
- package/dist/composite/layout/sticky-columns/index.d.ts +2 -2
- package/dist/composite/layout/sticky-columns/index.d.ts.map +1 -1
- package/dist/composite/layout/sticky-columns/index.js +42 -70
- package/dist/composite/layout/sticky-columns/index.js.map +1 -1
- package/dist/composite/media/elements/gif.js +3 -3
- package/dist/composite/media/inline/caption.d.ts +4 -2
- package/dist/composite/media/inline/caption.d.ts.map +1 -1
- package/dist/composite/media/inline/caption.js +56 -67
- package/dist/composite/media/inline/caption.js.map +1 -1
- package/dist/composite/media/inline/index.d.ts +9 -8
- package/dist/composite/media/inline/index.d.ts.map +1 -1
- package/dist/composite/media/inline/standard.d.ts +1 -4
- package/dist/composite/media/inline/standard.d.ts.map +1 -1
- package/dist/composite/media/inline/standard.js +16 -24
- package/dist/composite/media/inline/standard.js.map +1 -1
- package/dist/composite/media/inline/wrapped.d.ts +4 -2
- package/dist/composite/media/inline/wrapped.d.ts.map +1 -1
- package/dist/composite/media/inline/wrapped.js +80 -83
- package/dist/composite/media/inline/wrapped.js.map +1 -1
- package/dist/composite/navigation/elements/slider/slide-first.d.ts.map +1 -1
- package/dist/composite/navigation/elements/slider/slide-first.js +4 -1
- package/dist/composite/navigation/elements/slider/slide-first.js.map +1 -1
- package/dist/composite/navigation/utility/alert.js +3 -4
- package/dist/composite/navigation/utility/alert.js.map +1 -1
- package/dist/composite/pathway/_common.js +4 -3
- package/dist/composite/pathway/_common.js.map +1 -1
- package/dist/composite/pathway/hero.js +3 -3
- package/dist/composite/person/bio/full.js +3 -3
- package/dist/composite/person/bio/small.js +2 -3
- package/dist/composite/person/bio/small.js.map +1 -1
- package/dist/composite/person/block.js +2 -3
- package/dist/composite/person/block.js.map +1 -1
- package/dist/composite/person/hero.js +3 -3
- package/dist/composite/person/list.js +2 -3
- package/dist/composite/person/list.js.map +1 -1
- package/dist/composite/person/tabular.js +2 -3
- package/dist/composite/person/tabular.js.map +1 -1
- package/dist/composite/slider/events.d.ts +6 -12
- package/dist/composite/slider/events.d.ts.map +1 -1
- package/dist/composite/slider/events.js +304 -428
- package/dist/composite/slider/events.js.map +1 -1
- package/dist/layout/image.d.ts +5 -10
- package/dist/layout/image.d.ts.map +1 -1
- package/dist/layout/image.js +27 -88
- package/dist/layout/image.js.map +1 -1
- package/dist/layout/index.d.ts +1 -1
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout.js +2 -2
- package/package.json +5 -5
- package/dist/composite/carousel/elements/blocks.d.ts +0 -42
- package/dist/composite/carousel/elements/blocks.d.ts.map +0 -1
- package/dist/composite/carousel/elements/blocks.js.map +0 -1
- package/dist/composite/carousel/wide/_elementModel.d.ts +0 -18
- package/dist/composite/carousel/wide/_elementModel.d.ts.map +0 -1
- package/dist/composite/carousel/wide/_elementModel.js +0 -29
- package/dist/composite/carousel/wide/_elementModel.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-time.js","sources":["../../../source/composite/card/event-time.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 animationStyles from '@universityofmaryland/web-styles-library/animation';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { parseDateFromElement } from '@universityofmaryland/web-utilities-library/date';\nimport { pin as iconPin } from '@universityofmaryland/web-icons-library/location';\nimport { info as iconInfo } from '@universityofmaryland/web-icons-library/indicators';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { wrapTextNodeInSpan } from '@universityofmaryland/web-utilities-library/dom';\nimport { textLockup, assets } from 'atomic';\nimport { CardEventTimeProps } from './_types';\nimport { type UMDElement } from '../../_types';\n\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\nconst smallBreakpoint = token.media.breakpointValues.small.max;\n\nconst MakeDetailItem = (props: {\n icon: string;\n text: string;\n isThemeDark?: boolean;\n}) => {\n const { icon, text, isThemeDark } = props;\n\n const iconElement = new ElementBuilder('span').withHTML(icon).build();\n const textElement = new ElementBuilder('span').withHTML(text).build();\n\n return new ElementBuilder('p')\n .styled(\n elementStyles.event.meta.composeItem({\n theme: isThemeDark ? 'dark' : 'light',\n }),\n )\n .withStyles({\n element: {\n display: 'flex',\n alignItems: 'flex-start',\n\n [`& + .${elementStyles.event.meta.item.className}, & + .${elementStyles.event.meta.itemDark.className}`]:\n {\n marginTop: '5px',\n },\n\n ['& span ']: {\n marginLeft: '0 !important',\n marginTop: '0 !important',\n },\n },\n })\n .withChildren(iconElement, textElement)\n .build();\n};\n\nconst makeTimeRow = ({\n startTime,\n endTime,\n isThemeDark,\n}: {\n startTime: CardEventTimeProps['startTime'];\n endTime?: CardEventTimeProps['endTime'];\n isThemeDark?: boolean;\n}) => {\n const startParsed = parseDateFromElement({ element: startTime });\n if (!startParsed) return null;\n\n let timeText = startParsed.time;\n const endParsed = parseDateFromElement({ element: endTime ?? null });\n\n if (endParsed && endParsed.time !== startParsed.time) {\n timeText = `${timeText} - ${endParsed.time}`;\n }\n\n return new ElementBuilder('p')\n .withClassName('card-event-time-row')\n .styled(\n typography.sans.compose('small', {\n theme: isThemeDark ? 'dark' : 'light',\n }),\n )\n .withStyles({\n element: {\n marginBottom: token.spacing.sm,\n textTransform: 'uppercase',\n fontWeight: token.font.weight.bold,\n },\n })\n .withHTML(timeText)\n .build();\n};\n\nconst makeMetaRow = ({\n location,\n information,\n isThemeDark,\n}: {\n location?: CardEventTimeProps['location'];\n information?: CardEventTimeProps['information'];\n isThemeDark?: boolean;\n}) => {\n const children: UMDElement[] = [];\n\n if (location?.textContent) {\n children.push(\n MakeDetailItem({\n icon: iconPin,\n text: location.textContent,\n isThemeDark,\n }),\n );\n }\n\n if (information?.textContent) {\n children.push(\n MakeDetailItem({\n icon: iconInfo,\n text: information.textContent,\n isThemeDark,\n }),\n );\n }\n\n if (children.length === 0) return null;\n\n return new ElementBuilder()\n .withClassName('card-event-time-meta')\n .withStyles({\n element: {\n marginBottom: token.spacing.sm,\n\n '> *:not(:first-child)': {\n [`@container (min-width: 650px)`]: {\n width: 'auto',\n },\n },\n },\n })\n .withChildren(...children)\n .build();\n};\n\nconst makeImageColumn = ({\n image,\n isAligned,\n}: {\n image: NonNullable<CardEventTimeProps['image']>;\n isAligned?: CardEventTimeProps['isAligned'];\n}) => {\n const backgroundImage = assets.image.background({\n element: image,\n isScaled: isAligned,\n isGifAllowed: false,\n imageLoading: 'lazy',\n });\n\n return new ElementBuilder()\n .withClassName('card-event-time-image-wrapper')\n .withStyles({\n element: {\n ...createMediaQuery('max-width', smallBreakpoint, {\n marginLeft: token.spacing.min,\n marginBottom: token.spacing.md,\n width: '120px',\n float: 'right',\n position: 'relative',\n zIndex: 99,\n\n ...(isAligned && {\n height: '104px',\n }),\n }),\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n display: 'block',\n width: '160px',\n order: '2',\n\n ...(isAligned && {\n height: '160px',\n }),\n }),\n\n '& img': {\n ...createMediaQuery('max-width', smallBreakpoint, {\n height: 'auto !important',\n }),\n },\n },\n })\n .withChild(backgroundImage)\n .build();\n};\n\nexport const createCompositeCardEventTime = (props: CardEventTimeProps) => {\n const {\n headline,\n startTime,\n endTime,\n location,\n information,\n text,\n actions,\n image,\n isAligned,\n isThemeDark,\n } = props;\n\n const contentChildren: UMDElement[] = [];\n\n const timeRow = makeTimeRow({ startTime, endTime, isThemeDark });\n if (timeRow) contentChildren.push(timeRow);\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({\n element: {\n fontWeight: '700',\n\n [`& + *`]: {\n marginTop: token.spacing.sm,\n },\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .withModifier((el) => wrapTextNodeInSpan(el))\n .build();\n\n contentChildren.push(headlineElement);\n }\n\n const metaRow = makeMetaRow({ location, information, isThemeDark });\n if (metaRow) contentChildren.push(metaRow);\n\n const lockup = textLockup.small({\n text: text || null,\n actions: actions || null,\n isThemeDark,\n });\n contentChildren.push(lockup);\n\n const contentColumn = new ElementBuilder()\n .withClassName('card-event-time-content')\n .withStyles({\n element: {\n flex: '1 0',\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n paddingRight: token.spacing.md,\n order: '1',\n }),\n },\n })\n .withChildren(...contentChildren)\n .build();\n\n const children: UMDElement[] = [];\n\n if (image) {\n children.push(makeImageColumn({ image, isAligned }));\n }\n\n children.push(contentColumn);\n\n const wrapper = new ElementBuilder()\n .withClassName('card-event-time-wrapper')\n .withStyles({\n element: {\n containerType: 'inline-size',\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n display: 'flex',\n justifyContent: 'space-between',\n }),\n },\n })\n .withChildren(...children)\n .build();\n\n return new ElementBuilder()\n .withClassName('card-event-time-container')\n .withStyles({\n element: {\n height: '100%',\n overflow: 'hidden',\n\n ...(isThemeDark && {\n backgroundColor: token.color.black,\n color: token.color.white,\n }),\n },\n })\n .withChild(wrapper)\n .build();\n};\n"],"names":["iconPin","iconInfo","assets.image.background","animationStyles","textLockup.small"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event-time.js","sources":["../../../source/composite/card/event-time.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 animationStyles from '@universityofmaryland/web-styles-library/animation';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { parseDateFromElement } from '@universityofmaryland/web-utilities-library/date';\nimport { pin as iconPin } from '@universityofmaryland/web-icons-library/location';\nimport { info as iconInfo } from '@universityofmaryland/web-icons-library/indicators';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { wrapTextNodeInSpan } from '@universityofmaryland/web-utilities-library/dom';\nimport { textLockup, assets } from 'atomic';\nimport { CardEventTimeProps } from './_types';\nimport { type UMDElement } from '../../_types';\n\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\nconst smallBreakpoint = token.media.breakpointValues.small.max;\n\nconst MakeDetailItem = (props: {\n icon: string;\n text: string;\n isThemeDark?: boolean;\n}) => {\n const { icon, text, isThemeDark } = props;\n\n const iconElement = new ElementBuilder('span').withHTML(icon).build();\n const textElement = new ElementBuilder('span').withHTML(text).build();\n\n return new ElementBuilder('p')\n .styled(\n elementStyles.event.meta.composeItem({\n theme: isThemeDark ? 'dark' : 'light',\n }),\n )\n .withStyles({\n element: {\n display: 'flex',\n alignItems: 'flex-start',\n\n [`& + .${elementStyles.event.meta.item.className}, & + .${elementStyles.event.meta.itemDark.className}`]:\n {\n marginTop: '5px',\n },\n\n ['& span ']: {\n marginLeft: '0 !important',\n marginTop: '0 !important',\n },\n },\n })\n .withChildren(iconElement, textElement)\n .build();\n};\n\nconst makeTimeRow = ({\n startTime,\n endTime,\n isThemeDark,\n}: {\n startTime: CardEventTimeProps['startTime'];\n endTime?: CardEventTimeProps['endTime'];\n isThemeDark?: boolean;\n}) => {\n const startParsed = parseDateFromElement({ element: startTime });\n if (!startParsed) return null;\n\n let timeText = startParsed.time;\n const endParsed = parseDateFromElement({ element: endTime ?? null });\n\n if (endParsed && endParsed.time !== startParsed.time) {\n timeText = `${timeText} - ${endParsed.time}`;\n }\n\n return new ElementBuilder('p')\n .withClassName('card-event-time-row')\n .styled(\n typography.sans.compose('small', {\n theme: isThemeDark ? 'dark' : 'light',\n }),\n )\n .withStyles({\n element: {\n marginBottom: token.spacing.sm,\n textTransform: 'uppercase',\n fontWeight: token.font.weight.bold,\n },\n })\n .withHTML(timeText)\n .build();\n};\n\nconst makeMetaRow = ({\n location,\n information,\n isThemeDark,\n}: {\n location?: CardEventTimeProps['location'];\n information?: CardEventTimeProps['information'];\n isThemeDark?: boolean;\n}) => {\n const children: UMDElement[] = [];\n\n if (location?.textContent) {\n children.push(\n MakeDetailItem({\n icon: iconPin,\n text: location.textContent,\n isThemeDark,\n }),\n );\n }\n\n if (information?.textContent) {\n children.push(\n MakeDetailItem({\n icon: iconInfo,\n text: information.textContent,\n isThemeDark,\n }),\n );\n }\n\n if (children.length === 0) return null;\n\n return new ElementBuilder()\n .withClassName('card-event-time-meta')\n .withStyles({\n element: {\n marginBottom: token.spacing.sm,\n\n '> *:not(:first-child)': {\n [`@container (min-width: 650px)`]: {\n width: 'auto',\n },\n },\n },\n })\n .withChildren(...children)\n .build();\n};\n\nconst makeImageColumn = ({\n image,\n isAligned,\n}: {\n image: NonNullable<CardEventTimeProps['image']>;\n isAligned?: CardEventTimeProps['isAligned'];\n}) => {\n const backgroundImage = assets.image.background({\n element: image,\n isScaled: isAligned,\n isGifAllowed: false,\n imageLoading: 'lazy',\n });\n\n return new ElementBuilder()\n .withClassName('card-event-time-image-wrapper')\n .withStyles({\n element: {\n ...createMediaQuery('max-width', smallBreakpoint, {\n marginLeft: token.spacing.min,\n marginBottom: token.spacing.md,\n width: '120px',\n float: 'right',\n position: 'relative',\n zIndex: 99,\n\n ...(isAligned && {\n height: '104px',\n }),\n }),\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n display: 'block',\n width: '160px',\n order: '2',\n\n ...(isAligned && {\n height: '160px',\n }),\n }),\n\n '& img': {\n ...createMediaQuery('max-width', smallBreakpoint, {\n height: 'auto !important',\n }),\n },\n },\n })\n .withChild(backgroundImage)\n .build();\n};\n\nexport const createCompositeCardEventTime = (props: CardEventTimeProps) => {\n const {\n headline,\n startTime,\n endTime,\n location,\n information,\n text,\n actions,\n image,\n isAligned,\n isThemeDark,\n } = props;\n\n const contentChildren: UMDElement[] = [];\n\n const timeRow = makeTimeRow({ startTime, endTime, isThemeDark });\n if (timeRow) contentChildren.push(timeRow);\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({\n element: {\n fontWeight: '700',\n\n [`& + *`]: {\n marginTop: token.spacing.sm,\n },\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .withModifier((el) => wrapTextNodeInSpan(el))\n .build();\n\n contentChildren.push(headlineElement);\n }\n\n const metaRow = makeMetaRow({ location, information, isThemeDark });\n if (metaRow) contentChildren.push(metaRow);\n\n const lockup = textLockup.small({\n text: text || null,\n actions: actions || null,\n isThemeDark,\n });\n contentChildren.push(lockup);\n\n const contentColumn = new ElementBuilder()\n .withClassName('card-event-time-content')\n .withStyles({\n element: {\n flex: '1 0',\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n paddingRight: token.spacing.md,\n order: '1',\n }),\n },\n })\n .withChildren(...contentChildren)\n .build();\n\n const children: UMDElement[] = [];\n\n if (image) {\n children.push(makeImageColumn({ image, isAligned }));\n }\n\n children.push(contentColumn);\n\n const wrapper = new ElementBuilder()\n .withClassName('card-event-time-wrapper')\n .withStyles({\n element: {\n containerType: 'inline-size',\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n display: 'flex',\n justifyContent: 'space-between',\n }),\n },\n })\n .withChildren(...children)\n .build();\n\n return new ElementBuilder()\n .withClassName('card-event-time-container')\n .withStyles({\n element: {\n height: '100%',\n overflow: 'hidden',\n\n ...(isThemeDark && {\n backgroundColor: token.color.black,\n color: token.color.white,\n }),\n },\n })\n .withChild(wrapper)\n .build();\n};\n"],"names":["iconPin","iconInfo","assets.image.background","animationStyles","textLockup.small"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,wBAAwB,MAAM,MAAM,iBAAiB,OAAO;AAClE,MAAM,kBAAkB,MAAM,MAAM,iBAAiB,MAAM;AAE3D,MAAM,iBAAiB,CAAC,UAIlB;AACJ,QAAM,EAAE,MAAM,MAAM,YAAA,IAAgB;AAEpC,QAAM,cAAc,IAAI,eAAe,MAAM,EAAE,SAAS,IAAI,EAAE,MAAA;AAC9D,QAAM,cAAc,IAAI,eAAe,MAAM,EAAE,SAAS,IAAI,EAAE,MAAA;AAE9D,SAAO,IAAI,eAAe,GAAG,EAC1B;AAAA,IACC,cAAc,MAAM,KAAK,YAAY;AAAA,MACnC,OAAO,cAAc,SAAS;AAAA,IAAA,CAC/B;AAAA,EAAA,EAEF,WAAW;AAAA,IACV,SAAS;AAAA,MACP,SAAS;AAAA,MACT,YAAY;AAAA,MAEZ,CAAC,QAAQ,cAAc,MAAM,KAAK,KAAK,SAAS,UAAU,cAAc,MAAM,KAAK,SAAS,SAAS,EAAE,GACrG;AAAA,QACE,WAAW;AAAA,MAAA;AAAA,MAGf,CAAC,SAAS,GAAG;AAAA,QACX,YAAY;AAAA,QACZ,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,EACF,CACD,EACA,aAAa,aAAa,WAAW,EACrC,MAAA;AACL;AAEA,MAAM,cAAc,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,QAAM,cAAc,qBAAqB,EAAE,SAAS,WAAW;AAC/D,MAAI,CAAC,YAAa,QAAO;AAEzB,MAAI,WAAW,YAAY;AAC3B,QAAM,YAAY,qBAAqB,EAAE,SAAS,WAAW,MAAM;AAEnE,MAAI,aAAa,UAAU,SAAS,YAAY,MAAM;AACpD,eAAW,GAAG,QAAQ,MAAM,UAAU,IAAI;AAAA,EAC5C;AAEA,SAAO,IAAI,eAAe,GAAG,EAC1B,cAAc,qBAAqB,EACnC;AAAA,IACC,WAAW,KAAK,QAAQ,SAAS;AAAA,MAC/B,OAAO,cAAc,SAAS;AAAA,IAAA,CAC/B;AAAA,EAAA,EAEF,WAAW;AAAA,IACV,SAAS;AAAA,MACP,cAAc,MAAM,QAAQ;AAAA,MAC5B,eAAe;AAAA,MACf,YAAY,MAAM,KAAK,OAAO;AAAA,IAAA;AAAA,EAChC,CACD,EACA,SAAS,QAAQ,EACjB,MAAA;AACL;AAEA,MAAM,cAAc,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,QAAM,WAAyB,CAAA;AAE/B,MAAI,UAAU,aAAa;AACzB,aAAS;AAAA,MACP,eAAe;AAAA,QACb,MAAMA;AAAAA,QACN,MAAM,SAAS;AAAA,QACf;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,aAAa,aAAa;AAC5B,aAAS;AAAA,MACP,eAAe;AAAA,QACb,MAAMC;AAAAA,QACN,MAAM,YAAY;AAAA,QAClB;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,SAAS,WAAW,EAAG,QAAO;AAElC,SAAO,IAAI,eAAA,EACR,cAAc,sBAAsB,EACpC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,cAAc,MAAM,QAAQ;AAAA,MAE5B,yBAAyB;AAAA,QACvB,CAAC,+BAA+B,GAAG;AAAA,UACjC,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,IACF;AAAA,EACF,CACD,EACA,aAAa,GAAG,QAAQ,EACxB,MAAA;AACL;AAEA,MAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA;AACF,MAGM;AACJ,QAAM,kBAAkBC,sBAAwB;AAAA,IAC9C,SAAS;AAAA,IACT,UAAU;AAAA,IACV,cAAc;AAAA,IACd,cAAc;AAAA,EAAA,CACf;AAED,SAAO,IAAI,eAAA,EACR,cAAc,+BAA+B,EAC7C,WAAW;AAAA,IACV,SAAS;AAAA,MACP,GAAG,iBAAiB,aAAa,iBAAiB;AAAA,QAChD,YAAY,MAAM,QAAQ;AAAA,QAC1B,cAAc,MAAM,QAAQ;AAAA,QAC5B,OAAO;AAAA,QACP,OAAO;AAAA,QACP,UAAU;AAAA,QACV,QAAQ;AAAA,QAER,GAAI,aAAa;AAAA,UACf,QAAQ;AAAA,QAAA;AAAA,MACV,CACD;AAAA,MAED,GAAG,iBAAiB,aAAa,uBAAuB;AAAA,QACtD,SAAS;AAAA,QACT,OAAO;AAAA,QACP,OAAO;AAAA,QAEP,GAAI,aAAa;AAAA,UACf,QAAQ;AAAA,QAAA;AAAA,MACV,CACD;AAAA,MAED,SAAS;AAAA,QACP,GAAG,iBAAiB,aAAa,iBAAiB;AAAA,UAChD,QAAQ;AAAA,QAAA,CACT;AAAA,MAAA;AAAA,IACH;AAAA,EACF,CACD,EACA,UAAU,eAAe,EACzB,MAAA;AACL;AAEO,MAAM,+BAA+B,CAAC,UAA8B;AACzE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE;AAEJ,QAAM,kBAAgC,CAAA;AAEtC,QAAM,UAAU,YAAY,EAAE,WAAW,SAAS,aAAa;AAC/D,MAAI,QAAS,iBAAgB,KAAK,OAAO;AAEzC,MAAI,UAAU;AACZ,UAAM,wBAAwB;AAAA,MAC5B,GAAGC,UAAgB,KAAK,kBAAkB;AAAA,QACxC,OAAO,MAAM,WAAW,WAAW;AAAA,MAAA,CACpC;AAAA,MACD,GAAG,WAAW,KAAK,QAAQ,UAAU;AAAA,QACnC,OAAO,MAAM,UAAU,WAAW;AAAA,MAAA,CACnC;AAAA,IAAA;AAGH,UAAM,kBAAkB,IAAI,eAAe,QAAQ,EAChD,OAAO,qBAAqB,EAC5B,WAAW;AAAA,MACV,SAAS;AAAA,QACP,YAAY;AAAA,QAEZ,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,oBAAgB,KAAK,eAAe;AAAA,EACtC;AAEA,QAAM,UAAU,YAAY,EAAE,UAAU,aAAa,aAAa;AAClE,MAAI,QAAS,iBAAgB,KAAK,OAAO;AAEzC,QAAM,SAASC,sBAAiB;AAAA,IAC9B,MAAM,QAAQ;AAAA,IACd,SAAS,WAAW;AAAA,IACpB;AAAA,EAAA,CACD;AACD,kBAAgB,KAAK,MAAM;AAE3B,QAAM,gBAAgB,IAAI,eAAA,EACvB,cAAc,yBAAyB,EACvC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,MAAM;AAAA,MAEN,GAAG,iBAAiB,aAAa,uBAAuB;AAAA,QACtD,cAAc,MAAM,QAAQ;AAAA,QAC5B,OAAO;AAAA,MAAA,CACR;AAAA,IAAA;AAAA,EACH,CACD,EACA,aAAa,GAAG,eAAe,EAC/B,MAAA;AAEH,QAAM,WAAyB,CAAA;AAE/B,MAAI,OAAO;AACT,aAAS,KAAK,gBAAgB,EAAE,OAAO,UAAA,CAAW,CAAC;AAAA,EACrD;AAEA,WAAS,KAAK,aAAa;AAE3B,QAAM,UAAU,IAAI,eAAA,EACjB,cAAc,yBAAyB,EACvC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,eAAe;AAAA,MAEf,GAAG,iBAAiB,aAAa,uBAAuB;AAAA,QACtD,SAAS;AAAA,QACT,gBAAgB;AAAA,MAAA,CACjB;AAAA,IAAA;AAAA,EACH,CACD,EACA,aAAa,GAAG,QAAQ,EACxB,MAAA;AAEH,SAAO,IAAI,eAAA,EACR,cAAc,2BAA2B,EACzC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,MAEV,GAAI,eAAe;AAAA,QACjB,iBAAiB,MAAM,MAAM;AAAA,QAC7B,OAAO,MAAM,MAAM;AAAA,MAAA;AAAA,IACrB;AAAA,EACF,CACD,EACA,UAAU,OAAO,EACjB,MAAA;AACL;"}
|
|
@@ -13,7 +13,6 @@ import "@universityofmaryland/web-icons-library/files";
|
|
|
13
13
|
import "@universityofmaryland/web-icons-library/brand";
|
|
14
14
|
import "@universityofmaryland/web-icons-library/arrows";
|
|
15
15
|
import "@universityofmaryland/web-utilities-library/performance";
|
|
16
|
-
import "../../atomic/animations/brand/chevron-scroll.js";
|
|
17
16
|
import "../../atomic/animations/brand/card-stack.js";
|
|
18
17
|
import { createImageBackground } from "../../atomic/assets/image/background.js";
|
|
19
18
|
import "@universityofmaryland/web-styles-library";
|
|
@@ -22,10 +21,10 @@ import "@universityofmaryland/web-icons-library/location";
|
|
|
22
21
|
import "@universityofmaryland/web-icons-library/calendar";
|
|
23
22
|
import "@universityofmaryland/web-utilities-library/theme";
|
|
24
23
|
import "../../atomic/layout/block/stacked.js";
|
|
25
|
-
import "../../atomic/layout/overlay/modal.js";
|
|
26
24
|
import "../../atomic/layout/person/columns.js";
|
|
27
25
|
import "@universityofmaryland/web-icons-library/social";
|
|
28
|
-
import "
|
|
26
|
+
import "@universityofmaryland/web-utilities-library/string";
|
|
27
|
+
import "@universityofmaryland/web-utilities-library/animation";
|
|
29
28
|
import { createTextLockupSmall } from "../../atomic/text-lockup/small.js";
|
|
30
29
|
const smallBreakpoint = token.media.breakpointValues.small.max;
|
|
31
30
|
const mediumBreakpointStart = token.media.breakpointValues.medium.min;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sources":["../../../source/composite/card/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 { textLockup, assets } from 'atomic';\nimport { CardListProps } from './_types';\nimport { type UMDElement } 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 makeDateColumn = (dateSign: UMDElement) =>\n new ElementBuilder()\n .withClassName('card-list-date-sign-wrapper')\n .withStyles({\n element: {\n width: `${token.spacing.xl}`,\n order: 1,\n alignSelf: 'flex-start',\n\n ...createMediaQuery('max-width', mediumBreakpoint, {\n display: 'none',\n }),\n ...createMediaQuery('min-width', mediumBreakpoint, {\n width: `${token.spacing['8xl']}`,\n }),\n },\n })\n .withChild(dateSign)\n .build();\n\nconst makeTextColumn = (props: CardListProps) => {\n const lockup = textLockup.small(props);\n\n return new ElementBuilder()\n .withClassName('card-list-text-wrapper')\n .withStyles({\n element: {\n flex: '1 0',\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n paddingRight: `${token.spacing.md}`,\n order: '2',\n }),\n\n ...createMediaQuery('min-width', mediumBreakpoint, {\n width: '208px',\n }),\n },\n })\n .withChild(lockup)\n .build();\n};\n\nconst makeImageColumn = ({\n image,\n isAligned,\n}: {\n image: NonNullable<CardListProps['image']>;\n isAligned?: CardListProps['isAligned'];\n}) => {\n const backgroundImage = assets.image.background({\n element: image,\n isScaled: isAligned,\n isGifAllowed: false,\n imageLoading: 'lazy',\n });\n\n return new ElementBuilder()\n .withClassName('card-list-image-wrapper')\n .withStyles({\n element: {\n ...createMediaQuery('max-width', smallBreakpoint, {\n marginLeft: token.spacing.min,\n marginBottom: token.spacing.md,\n width: '120px',\n float: 'right',\n position: 'relative',\n zIndex: 99,\n\n ...(isAligned && {\n height: '104px',\n }),\n }),\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n display: 'block',\n width: '160px',\n order: '3',\n\n ...(isAligned && {\n height: '160px',\n }),\n }),\n\n ...createMediaQuery('min-width', mediumBreakpoint, {\n width: '208px',\n }),\n\n '& img': {\n ...createMediaQuery('max-width', smallBreakpoint, {\n height: 'auto !important',\n }),\n },\n },\n })\n .withChild(backgroundImage)\n .build();\n};\n\nexport const createCompositeCardList = (props: CardListProps) => {\n const { image, isAligned, isThemeDark, dateSign } = props;\n let children: UMDElement[] = [];\n\n if (image) {\n children.push(makeImageColumn({ image, isAligned }));\n }\n\n if (dateSign) {\n children.push(makeDateColumn(dateSign));\n }\n\n children.push(makeTextColumn(props));\n\n const wrapper = new ElementBuilder()\n .withClassName('card-list-wrapper')\n .withStyles({\n element: {\n containerType: 'inline-size',\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n display: 'flex',\n justifyContent: 'space-between',\n }),\n },\n })\n .withChildren(...children)\n .build();\n\n return new ElementBuilder()\n .withClassName('card-list-container')\n .withStyles({\n element: {\n height: '100%',\n overflow: 'hidden',\n\n ...(isThemeDark && {\n backgroundColor: token.color.black,\n color: token.color.white,\n }),\n },\n })\n .withChild(wrapper)\n .build();\n};\n"],"names":["textLockup.small","assets.image.background"],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.js","sources":["../../../source/composite/card/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 { textLockup, assets } from 'atomic';\nimport { CardListProps } from './_types';\nimport { type UMDElement } 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 makeDateColumn = (dateSign: UMDElement) =>\n new ElementBuilder()\n .withClassName('card-list-date-sign-wrapper')\n .withStyles({\n element: {\n width: `${token.spacing.xl}`,\n order: 1,\n alignSelf: 'flex-start',\n\n ...createMediaQuery('max-width', mediumBreakpoint, {\n display: 'none',\n }),\n ...createMediaQuery('min-width', mediumBreakpoint, {\n width: `${token.spacing['8xl']}`,\n }),\n },\n })\n .withChild(dateSign)\n .build();\n\nconst makeTextColumn = (props: CardListProps) => {\n const lockup = textLockup.small(props);\n\n return new ElementBuilder()\n .withClassName('card-list-text-wrapper')\n .withStyles({\n element: {\n flex: '1 0',\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n paddingRight: `${token.spacing.md}`,\n order: '2',\n }),\n\n ...createMediaQuery('min-width', mediumBreakpoint, {\n width: '208px',\n }),\n },\n })\n .withChild(lockup)\n .build();\n};\n\nconst makeImageColumn = ({\n image,\n isAligned,\n}: {\n image: NonNullable<CardListProps['image']>;\n isAligned?: CardListProps['isAligned'];\n}) => {\n const backgroundImage = assets.image.background({\n element: image,\n isScaled: isAligned,\n isGifAllowed: false,\n imageLoading: 'lazy',\n });\n\n return new ElementBuilder()\n .withClassName('card-list-image-wrapper')\n .withStyles({\n element: {\n ...createMediaQuery('max-width', smallBreakpoint, {\n marginLeft: token.spacing.min,\n marginBottom: token.spacing.md,\n width: '120px',\n float: 'right',\n position: 'relative',\n zIndex: 99,\n\n ...(isAligned && {\n height: '104px',\n }),\n }),\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n display: 'block',\n width: '160px',\n order: '3',\n\n ...(isAligned && {\n height: '160px',\n }),\n }),\n\n ...createMediaQuery('min-width', mediumBreakpoint, {\n width: '208px',\n }),\n\n '& img': {\n ...createMediaQuery('max-width', smallBreakpoint, {\n height: 'auto !important',\n }),\n },\n },\n })\n .withChild(backgroundImage)\n .build();\n};\n\nexport const createCompositeCardList = (props: CardListProps) => {\n const { image, isAligned, isThemeDark, dateSign } = props;\n let children: UMDElement[] = [];\n\n if (image) {\n children.push(makeImageColumn({ image, isAligned }));\n }\n\n if (dateSign) {\n children.push(makeDateColumn(dateSign));\n }\n\n children.push(makeTextColumn(props));\n\n const wrapper = new ElementBuilder()\n .withClassName('card-list-wrapper')\n .withStyles({\n element: {\n containerType: 'inline-size',\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n display: 'flex',\n justifyContent: 'space-between',\n }),\n },\n })\n .withChildren(...children)\n .build();\n\n return new ElementBuilder()\n .withClassName('card-list-container')\n .withStyles({\n element: {\n height: '100%',\n overflow: 'hidden',\n\n ...(isThemeDark && {\n backgroundColor: token.color.black,\n color: token.color.white,\n }),\n },\n })\n .withChild(wrapper)\n .build();\n};\n"],"names":["textLockup.small","assets.image.background"],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import "@universityofmaryland/web-icons-library/files";
|
|
|
12
12
|
import "@universityofmaryland/web-icons-library/brand";
|
|
13
13
|
import { createActionIcon } from "../../../atomic/actions/icon.js";
|
|
14
14
|
import "@universityofmaryland/web-utilities-library/performance";
|
|
15
|
-
import "
|
|
15
|
+
import "@universityofmaryland/web-utilities-library/styles";
|
|
16
16
|
import "../../../atomic/animations/brand/card-stack.js";
|
|
17
17
|
import "@universityofmaryland/web-styles-library";
|
|
18
18
|
import "@universityofmaryland/web-utilities-library/accessibility";
|
|
@@ -20,10 +20,10 @@ import "@universityofmaryland/web-icons-library/location";
|
|
|
20
20
|
import "@universityofmaryland/web-icons-library/calendar";
|
|
21
21
|
import "@universityofmaryland/web-utilities-library/theme";
|
|
22
22
|
import "../../../atomic/layout/block/stacked.js";
|
|
23
|
-
import "../../../atomic/layout/overlay/modal.js";
|
|
24
23
|
import "../../../atomic/layout/person/columns.js";
|
|
25
24
|
import "@universityofmaryland/web-icons-library/social";
|
|
26
|
-
import "
|
|
25
|
+
import "@universityofmaryland/web-utilities-library/string";
|
|
26
|
+
import "@universityofmaryland/web-utilities-library/animation";
|
|
27
27
|
import "../../../atomic/text-lockup/small.js";
|
|
28
28
|
import { createTextLockupSmallScaling } from "../../../atomic/text-lockup/small-scaling.js";
|
|
29
29
|
const createCompositeCardOverlayColor = (props) => {
|
|
@@ -12,7 +12,7 @@ import "@universityofmaryland/web-icons-library/files";
|
|
|
12
12
|
import "@universityofmaryland/web-icons-library/brand";
|
|
13
13
|
import "@universityofmaryland/web-icons-library/arrows";
|
|
14
14
|
import "@universityofmaryland/web-utilities-library/performance";
|
|
15
|
-
import "
|
|
15
|
+
import "@universityofmaryland/web-utilities-library/styles";
|
|
16
16
|
import "../../../atomic/animations/brand/card-stack.js";
|
|
17
17
|
import "@universityofmaryland/web-styles-library";
|
|
18
18
|
import "@universityofmaryland/web-utilities-library/accessibility";
|
|
@@ -20,10 +20,10 @@ import "@universityofmaryland/web-icons-library/location";
|
|
|
20
20
|
import "@universityofmaryland/web-icons-library/calendar";
|
|
21
21
|
import "@universityofmaryland/web-utilities-library/theme";
|
|
22
22
|
import "../../../atomic/layout/block/stacked.js";
|
|
23
|
-
import "../../../atomic/layout/overlay/modal.js";
|
|
24
23
|
import "../../../atomic/layout/person/columns.js";
|
|
25
24
|
import "@universityofmaryland/web-icons-library/social";
|
|
26
|
-
import "
|
|
25
|
+
import "@universityofmaryland/web-utilities-library/string";
|
|
26
|
+
import "@universityofmaryland/web-utilities-library/animation";
|
|
27
27
|
import "../../../atomic/text-lockup/small.js";
|
|
28
28
|
import { createTextLockupSmallScaling } from "../../../atomic/text-lockup/small-scaling.js";
|
|
29
29
|
const createCompositeCardOverlayIcon = (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../../source/composite/card/overlay/image.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG7C,eAAO,MAAM,QAAQ,uBAAuB,CAAC;AAE7C,eAAO,MAAM,sBAAsB,GAAI,OAAO,gBAAgB;;;;;;;;
|
|
1
|
+
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../../source/composite/card/overlay/image.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG7C,eAAO,MAAM,QAAQ,uBAAuB,CAAC;AAE7C,eAAO,MAAM,sBAAsB,GAAI,OAAO,gBAAgB;;;;;;;;CAgN7D,CAAC"}
|
|
@@ -15,7 +15,6 @@ import "@universityofmaryland/web-icons-library/communication";
|
|
|
15
15
|
import "@universityofmaryland/web-icons-library/files";
|
|
16
16
|
import { createActionIcon } from "../../../atomic/actions/icon.js";
|
|
17
17
|
import "@universityofmaryland/web-utilities-library/performance";
|
|
18
|
-
import "../../../atomic/animations/brand/chevron-scroll.js";
|
|
19
18
|
import "../../../atomic/animations/brand/card-stack.js";
|
|
20
19
|
import { createImageBackground } from "../../../atomic/assets/image/background.js";
|
|
21
20
|
import "@universityofmaryland/web-utilities-library/accessibility";
|
|
@@ -23,10 +22,9 @@ import "@universityofmaryland/web-icons-library/location";
|
|
|
23
22
|
import "@universityofmaryland/web-icons-library/calendar";
|
|
24
23
|
import "@universityofmaryland/web-utilities-library/theme";
|
|
25
24
|
import "../../../atomic/layout/block/stacked.js";
|
|
26
|
-
import "../../../atomic/layout/overlay/modal.js";
|
|
27
25
|
import "../../../atomic/layout/person/columns.js";
|
|
28
26
|
import "@universityofmaryland/web-icons-library/social";
|
|
29
|
-
import "
|
|
27
|
+
import "@universityofmaryland/web-utilities-library/animation";
|
|
30
28
|
import "../../../atomic/text-lockup/small.js";
|
|
31
29
|
import { createTextLockupSmallScaling } from "../../../atomic/text-lockup/small-scaling.js";
|
|
32
30
|
const classRef = "card-overlay-image";
|
|
@@ -92,9 +90,6 @@ const createCardOverlayImage = (props) => {
|
|
|
92
90
|
},
|
|
93
91
|
[`&[data-size="large"]:before`]: {
|
|
94
92
|
background: "linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .55) 30%, rgba(0, 0, 0, 0.9) 100%)"
|
|
95
|
-
},
|
|
96
|
-
[`img`]: {
|
|
97
|
-
transform: "scale(1.025)"
|
|
98
93
|
}
|
|
99
94
|
}
|
|
100
95
|
});
|
|
@@ -176,12 +171,14 @@ const createCardOverlayImage = (props) => {
|
|
|
176
171
|
element: {
|
|
177
172
|
height: "100%",
|
|
178
173
|
containerType: "inline-size",
|
|
179
|
-
[`&:hover
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
174
|
+
[`&:hover, &:focus`]: {
|
|
175
|
+
[`& .${imageContainerClass}:before`]: {
|
|
176
|
+
opacity: 0.7
|
|
177
|
+
},
|
|
178
|
+
["& img"]: {
|
|
179
|
+
transform: "scale(1.025)",
|
|
180
|
+
transition: "transform 0.5s ease-in-out"
|
|
181
|
+
}
|
|
185
182
|
}
|
|
186
183
|
}
|
|
187
184
|
}).withChild(container).build();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","sources":["../../../../source/composite/card/overlay/image.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 { truncateTextBasedOnSize } from '@universityofmaryland/web-utilities-library/string';\nimport { quote as iconQuote } from '@universityofmaryland/web-icons-library/brand';\nimport { actions, assets, textLockup } from 'atomic';\nimport { CardOverlayProps } from '../_types';\nimport { type UMDElement } from '../../../_types';\n\nexport const classRef = 'card-overlay-image';\n\nexport const createCardOverlayImage = (props: CardOverlayProps) => {\n const {\n isQuote,\n ctaIcon,\n dateSign,\n backgroundImage,\n text,\n imageLoading = 'lazy',\n } = props;\n const children: UMDElement[] = [];\n const wrapperChildren: UMDElement[] = [];\n const load = () => {\n const sizeElements = () => {\n const textCopy = text?.innerHTML;\n if (text && textCopy) {\n const modifiedText = truncateTextBasedOnSize({\n text: textCopy,\n size: composite.element.offsetWidth,\n });\n\n text.innerHTML = modifiedText;\n\n if (modifiedText.length >= 220) {\n const assetContainer = composite.element.querySelector(\n `.${imageContainerClass}`,\n );\n if (assetContainer) {\n assetContainer.setAttribute('data-size', 'large');\n }\n }\n }\n };\n\n sizeElements();\n };\n let imageContainerClass: string | null = null;\n\n if (ctaIcon && ctaIcon instanceof HTMLElement) {\n children.push(actions.icon({ ...props, ctaIcon, isThemeLight: false }));\n }\n\n if (backgroundImage) {\n const imageContainer = assets.image.background({\n element: backgroundImage,\n isScaled: true,\n isGifAllowed: true,\n imageLoading,\n customStyles: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n\n [`&:before`]: {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 1,\n opacity: 1,\n transition: `opacity 0.5s ease-in-out`,\n background:\n 'linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .55) 60%, rgba(0, 0, 0, 0.9) 100%)',\n },\n\n [`&[data-size=\"large\"]:before`]: {\n background:\n 'linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .55) 30%, rgba(0, 0, 0, 0.9) 100%)',\n },\n
|
|
1
|
+
{"version":3,"file":"image.js","sources":["../../../../source/composite/card/overlay/image.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 { truncateTextBasedOnSize } from '@universityofmaryland/web-utilities-library/string';\nimport { quote as iconQuote } from '@universityofmaryland/web-icons-library/brand';\nimport { actions, assets, textLockup } from 'atomic';\nimport { CardOverlayProps } from '../_types';\nimport { type UMDElement } from '../../../_types';\n\nexport const classRef = 'card-overlay-image';\n\nexport const createCardOverlayImage = (props: CardOverlayProps) => {\n const {\n isQuote,\n ctaIcon,\n dateSign,\n backgroundImage,\n text,\n imageLoading = 'lazy',\n } = props;\n const children: UMDElement[] = [];\n const wrapperChildren: UMDElement[] = [];\n const load = () => {\n const sizeElements = () => {\n const textCopy = text?.innerHTML;\n if (text && textCopy) {\n const modifiedText = truncateTextBasedOnSize({\n text: textCopy,\n size: composite.element.offsetWidth,\n });\n\n text.innerHTML = modifiedText;\n\n if (modifiedText.length >= 220) {\n const assetContainer = composite.element.querySelector(\n `.${imageContainerClass}`,\n );\n if (assetContainer) {\n assetContainer.setAttribute('data-size', 'large');\n }\n }\n }\n };\n\n sizeElements();\n };\n let imageContainerClass: string | null = null;\n\n if (ctaIcon && ctaIcon instanceof HTMLElement) {\n children.push(actions.icon({ ...props, ctaIcon, isThemeLight: false }));\n }\n\n if (backgroundImage) {\n const imageContainer = assets.image.background({\n element: backgroundImage,\n isScaled: true,\n isGifAllowed: true,\n imageLoading,\n customStyles: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n\n [`&:before`]: {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 1,\n opacity: 1,\n transition: `opacity 0.5s ease-in-out`,\n background:\n 'linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .55) 60%, rgba(0, 0, 0, 0.9) 100%)',\n },\n\n [`&[data-size=\"large\"]:before`]: {\n background:\n 'linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .55) 30%, rgba(0, 0, 0, 0.9) 100%)',\n },\n },\n });\n\n children.push(imageContainer);\n imageContainerClass = imageContainer.element.className;\n }\n\n if (dateSign) {\n wrapperChildren.push(\n new ElementBuilder()\n .styled(Styles.layout.background.box.white)\n .withStyles({\n element: {\n alignSelf: `flex-start`,\n },\n siblingAfter: {\n marginTop: `${token.spacing.min}`,\n },\n })\n .withChild(dateSign)\n .build(),\n );\n }\n\n if (isQuote) {\n const quoteWrapper = new ElementBuilder()\n .withClassName('card-overlay-image-quote-wrapper')\n .withStyles({\n element: {\n width: '41px',\n height: '30px',\n marginBottom: `${token.spacing.xs}`,\n\n '& svg': {\n fill: `${token.color.red}`,\n },\n },\n })\n .withHTML(iconQuote)\n .build();\n\n wrapperChildren.push(quoteWrapper);\n }\n\n wrapperChildren.push(\n textLockup.smallScaling({\n ...props,\n isThemeDark: true,\n }),\n );\n\n const textContent = new ElementBuilder()\n .withClassName('card-overlay-image-text-content')\n .withStyles({\n element: {\n maxWidth: `${token.spacing.maxWidth.smallest}`,\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n zIndex: 9,\n position: 'relative',\n\n [' & * ']: {\n color: `${token.color.white}`,\n },\n },\n })\n .withChildren(...wrapperChildren)\n .build();\n\n const textWrapper = new ElementBuilder()\n .withClassName('card-overlay-image-text-wrapper')\n .withStyles({\n element: {\n height: 'auto',\n paddingRight: `${ctaIcon ? token.spacing['2xl'] : 0}`,\n },\n })\n .withChild(textContent)\n .build();\n\n const container = new ElementBuilder()\n .withClassName('card-overlay-image-container')\n .withStyles({\n element: {\n position: 'relative',\n padding: `${token.spacing.lg} ${token.spacing.md}`,\n paddingTop: `${token.spacing['4xl']}`,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-end',\n minHeight: '360px',\n height: '100%',\n overflow: 'hidden',\n\n ...createMediaQuery(\n 'min-width',\n token.media.breakpointValues.medium.min,\n {\n paddingTop: `${token.spacing['8xl']}`,\n minHeight: `424px`,\n },\n ),\n },\n })\n .withChildren(...children, textWrapper)\n .build();\n\n const composite = new ElementBuilder()\n .withClassName(classRef)\n .withStyles({\n element: {\n height: '100%',\n containerType: 'inline-size',\n\n [`&:hover, &:focus`]: {\n [`& .${imageContainerClass}:before`]: {\n opacity: 0.7,\n },\n\n ['& img']: {\n transform: 'scale(1.025)',\n transition: 'transform 0.5s ease-in-out',\n },\n },\n },\n })\n .withChild(container)\n .build();\n\n return {\n ...composite,\n events: {\n load,\n },\n };\n};\n"],"names":["actions.icon","assets.image.background","iconQuote","textLockup.smallScaling"],"mappings":"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"}
|
|
@@ -12,18 +12,19 @@ import "@universityofmaryland/web-icons-library/files";
|
|
|
12
12
|
import "@universityofmaryland/web-icons-library/brand";
|
|
13
13
|
import "@universityofmaryland/web-icons-library/arrows";
|
|
14
14
|
import "@universityofmaryland/web-utilities-library/performance";
|
|
15
|
-
import "
|
|
15
|
+
import "@universityofmaryland/web-utilities-library/styles";
|
|
16
16
|
import "../../../atomic/animations/brand/card-stack.js";
|
|
17
17
|
import "@universityofmaryland/web-styles-library";
|
|
18
|
+
import "@universityofmaryland/web-utilities-library/accessibility";
|
|
18
19
|
import { createVideoObservedAutoPlay } from "../../../atomic/assets/video/observed-auto-play.js";
|
|
19
20
|
import "@universityofmaryland/web-icons-library/location";
|
|
20
21
|
import "@universityofmaryland/web-icons-library/calendar";
|
|
21
22
|
import "@universityofmaryland/web-utilities-library/theme";
|
|
22
23
|
import "../../../atomic/layout/block/stacked.js";
|
|
23
|
-
import "../../../atomic/layout/overlay/modal.js";
|
|
24
24
|
import "../../../atomic/layout/person/columns.js";
|
|
25
25
|
import "@universityofmaryland/web-icons-library/social";
|
|
26
|
-
import "
|
|
26
|
+
import "@universityofmaryland/web-utilities-library/string";
|
|
27
|
+
import "@universityofmaryland/web-utilities-library/animation";
|
|
27
28
|
import "../../../atomic/text-lockup/small.js";
|
|
28
29
|
const createCompositeCardVideoBlock = (props) => (() => createVideoObservedAutoPlay({
|
|
29
30
|
...props,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.js","sources":["../../../../source/composite/card/video/block.ts"],"sourcesContent":["import { assets } from 'atomic';\n\ninterface CardVideoShortProps {\n video: HTMLVideoElement;\n isAutoplay?: boolean;\n}\n\nexport const createCompositeCardVideoBlock = (props: CardVideoShortProps) =>\n (() =>\n assets.video.observedAutoPlay({\n ...props,\n additionalElementStyles: {\n width: '100%',\n aspectRatio: '1 / 1',\n position: 'relative',\n overflow: 'hidden',\n\n [`& video`]: {\n height: '100%',\n width: '100%',\n objectFit: 'cover',\n },\n },\n }))();\n"],"names":["assets.video.observedAutoPlay"],"mappings":"
|
|
1
|
+
{"version":3,"file":"block.js","sources":["../../../../source/composite/card/video/block.ts"],"sourcesContent":["import { assets } from 'atomic';\n\ninterface CardVideoShortProps {\n video: HTMLVideoElement;\n isAutoplay?: boolean;\n}\n\nexport const createCompositeCardVideoBlock = (props: CardVideoShortProps) =>\n (() =>\n assets.video.observedAutoPlay({\n ...props,\n additionalElementStyles: {\n width: '100%',\n aspectRatio: '1 / 1',\n position: 'relative',\n overflow: 'hidden',\n\n [`& video`]: {\n height: '100%',\n width: '100%',\n objectFit: 'cover',\n },\n },\n }))();\n"],"names":["assets.video.observedAutoPlay"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,gCAAgC,CAAC,WAC3C,MACCA,4BAA8B;AAAA,EAC5B,GAAG;AAAA,EACH,yBAAyB;AAAA,IACvB,OAAO;AAAA,IACP,aAAa;AAAA,IACb,UAAU;AAAA,IACV,UAAU;AAAA,IAEV,CAAC,SAAS,GAAG;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,WAAW;AAAA,IAAA;AAAA,EACb;AAEJ,CAAC,GAAA;"}
|
|
@@ -6,13 +6,6 @@ type TypeCarouselCardsRequirements = {
|
|
|
6
6
|
shadowRef?: HTMLElement;
|
|
7
7
|
cards: HTMLElement[];
|
|
8
8
|
};
|
|
9
|
-
export declare const createCompositeCarouselCards: (props: TypeCarouselCardsRequirements) =>
|
|
10
|
-
element: HTMLDivElement;
|
|
11
|
-
styles: string;
|
|
12
|
-
events: {
|
|
13
|
-
resize: () => void;
|
|
14
|
-
load: () => void;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
9
|
+
export declare const createCompositeCarouselCards: (props: TypeCarouselCardsRequirements) => import('../../../../builder/dist/index.d.ts').ElementModel<HTMLElement>;
|
|
17
10
|
export {};
|
|
18
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/composite/carousel/cards/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/composite/carousel/cards/index.ts"],"names":[],"mappings":"AAUA,KAAK,6BAA6B,GAAG;IACnC,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB,CAAC;AA8FF,eAAO,MAAM,4BAA4B,GAAI,OAAO,6BAA6B,kFAkH3E,CAAC"}
|