@universityofmaryland/web-elements-library 1.6.17 → 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/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 +6 -6
- 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,125 +1,84 @@
|
|
|
1
1
|
import * as token from "@universityofmaryland/web-token-library";
|
|
2
|
-
import {
|
|
3
|
-
import "../elements/
|
|
4
|
-
import "../elements/
|
|
5
|
-
import "
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
${OVERWRITE_THEME_DARK_SLIDE} {
|
|
32
|
-
border: 1px solid ${token.color.gray.dark};
|
|
33
|
-
border-left: none;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
${OVERWRITE_THEME_DARK_SLIDE}:first-child {
|
|
37
|
-
border-left: 1px solid ${token.color.gray.dark};
|
|
38
|
-
}
|
|
39
|
-
`;
|
|
40
|
-
const OverwriteCarouselStyles = `
|
|
41
|
-
${OVERWRITE_ANIMATION_CAROUSEL_BUTTON} {
|
|
42
|
-
top: 50%;
|
|
43
|
-
transform: translateY(-50%);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:last-of-type {
|
|
47
|
-
left: -${token.spacing.md};
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
${OVERWRITE_ANIMATION_CAROUSEL_BUTTON}:first-of-type {
|
|
51
|
-
right: -${token.spacing.md};
|
|
52
|
-
}
|
|
53
|
-
`;
|
|
54
|
-
const PersonSlideStyles = `
|
|
55
|
-
.${ELEMENT_PERSON_SLIDE} {
|
|
56
|
-
border: 1px solid ${token.color.gray.light};
|
|
57
|
-
border-left: none;
|
|
58
|
-
padding: ${token.spacing.lg};
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.${ELEMENT_THUMBNAIL_CONTAINER} .${ELEMENT_PERSON_SLIDE}:first-child {
|
|
62
|
-
border-left: 1px solid ${token.color.gray.light};
|
|
63
|
-
}
|
|
64
|
-
`;
|
|
65
|
-
const STYLES_CAROUSEL_THUMBNAIL_ELEMENT = `
|
|
66
|
-
.${ELEMENT_THUMBNAIL_DECLARATION} {
|
|
67
|
-
container: ${ELEMENT_NAME} / inline-size;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.${ELEMENT_THUMBNAIL_CONTAINER} {
|
|
71
|
-
overflow: hidden;
|
|
72
|
-
padding: 0 ${token.spacing.md};
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
${createCompositeCarouselBlocks.Styles}
|
|
76
|
-
${PersonSlideStyles}
|
|
77
|
-
${OverwriteCarouselStyles}
|
|
78
|
-
${OverwriteThemeDark}
|
|
79
|
-
`;
|
|
80
|
-
const CreatePerson = ({ block }) => {
|
|
81
|
-
const container = document.createElement("div");
|
|
82
|
-
container.appendChild(block);
|
|
83
|
-
container.classList.add(ELEMENT_PERSON_SLIDE);
|
|
84
|
-
return container;
|
|
85
|
-
};
|
|
2
|
+
import { ElementBuilder } from "@universityofmaryland/web-builder-library";
|
|
3
|
+
import { createCompositeCarouselBlocks } from "../elements/equal-width-items.js";
|
|
4
|
+
import { buttonColorsOnBlack } from "../elements/nav-button.js";
|
|
5
|
+
import "@universityofmaryland/web-utilities-library/styles";
|
|
6
|
+
import "@universityofmaryland/web-icons-library/controls";
|
|
7
|
+
import "@universityofmaryland/web-styles-library/element";
|
|
8
|
+
import "@universityofmaryland/web-styles-library/layout";
|
|
9
|
+
import "@universityofmaryland/web-styles-library/animation";
|
|
10
|
+
import "@universityofmaryland/web-styles-library/typography";
|
|
11
|
+
import "@universityofmaryland/web-utilities-library/media";
|
|
12
|
+
import "@universityofmaryland/web-utilities-library/dom";
|
|
13
|
+
import "@universityofmaryland/web-icons-library/communication";
|
|
14
|
+
import "@universityofmaryland/web-icons-library/files";
|
|
15
|
+
import "@universityofmaryland/web-icons-library/brand";
|
|
16
|
+
import "@universityofmaryland/web-icons-library/arrows";
|
|
17
|
+
import "@universityofmaryland/web-utilities-library/performance";
|
|
18
|
+
import "../../../atomic/animations/brand/card-stack.js";
|
|
19
|
+
import "@universityofmaryland/web-styles-library";
|
|
20
|
+
import "@universityofmaryland/web-utilities-library/accessibility";
|
|
21
|
+
import "@universityofmaryland/web-icons-library/location";
|
|
22
|
+
import "@universityofmaryland/web-icons-library/calendar";
|
|
23
|
+
import "@universityofmaryland/web-utilities-library/theme";
|
|
24
|
+
import "../../../atomic/layout/block/stacked.js";
|
|
25
|
+
import "../../../atomic/layout/person/columns.js";
|
|
26
|
+
import "@universityofmaryland/web-icons-library/social";
|
|
27
|
+
import "@universityofmaryland/web-utilities-library/string";
|
|
28
|
+
import "@universityofmaryland/web-utilities-library/animation";
|
|
29
|
+
import "../../../atomic/text-lockup/small.js";
|
|
30
|
+
import "@universityofmaryland/web-utilities-library/events";
|
|
86
31
|
const createCompositeCarouselThumbnail = (props) => (() => {
|
|
87
32
|
const { blocks, isThemeDark } = props;
|
|
88
|
-
const
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
33
|
+
const slide = new ElementBuilder().build().element;
|
|
34
|
+
const CreatePerson = ({ block }) => new ElementBuilder().withClassName("carousel-person-slide").withStyles({
|
|
35
|
+
element: {
|
|
36
|
+
border: `1px solid ${token.color.gray.light}`,
|
|
37
|
+
...isThemeDark && { border: `1px solid ${token.color.gray.dark}` },
|
|
38
|
+
borderLeft: "none",
|
|
39
|
+
padding: token.spacing.lg,
|
|
40
|
+
"&:first-child": {
|
|
41
|
+
borderLeft: `1px solid ${token.color.gray.light}`,
|
|
42
|
+
...isThemeDark && { borderLeft: `1px solid ${token.color.gray.dark}` }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}).withChild(block).build();
|
|
46
|
+
const blocksWrapperModels = blocks.map((block) => CreatePerson({ block }));
|
|
47
|
+
const blocksWrapper = blocksWrapperModels.map((model) => model.element);
|
|
48
|
+
const blocksStyles = blocksWrapperModels[0] ? blocksWrapperModels[0].styles : "";
|
|
96
49
|
const carousel = createCompositeCarouselBlocks.CreateElement({
|
|
97
50
|
blocks: blocksWrapper,
|
|
98
51
|
slide,
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
52
|
+
mobileBreakpoint: token.media.breakpointValues.medium.min,
|
|
53
|
+
tabletBreakpoint: token.media.breakpointValues.desktop.min,
|
|
54
|
+
desktopBreakpoint: token.media.breakpointValues.highDef.min,
|
|
55
|
+
desktopCount: 3,
|
|
56
|
+
maxCount: 4,
|
|
57
|
+
blockGap: 0,
|
|
58
|
+
showHint: false,
|
|
59
|
+
showMobileHint: false,
|
|
60
|
+
button: {
|
|
61
|
+
outsetOffset: token.spacing.md,
|
|
62
|
+
...isThemeDark && buttonColorsOnBlack()
|
|
108
63
|
}
|
|
109
64
|
});
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
load: carousel.events.load
|
|
65
|
+
const containerModel = new ElementBuilder().withClassName("carousel-thumbnail-container").withStyles({
|
|
66
|
+
element: {
|
|
67
|
+
overflow: "hidden",
|
|
68
|
+
padding: `0 ${token.spacing.md}`,
|
|
69
|
+
...isThemeDark && { backgroundColor: token.color.black }
|
|
70
|
+
}
|
|
71
|
+
}).withChild(carousel).build();
|
|
72
|
+
const declarationModel = new ElementBuilder().withClassName("carousel-thumbnail-declaration").withStyles({
|
|
73
|
+
element: {
|
|
74
|
+
containerType: "inline-size"
|
|
121
75
|
}
|
|
122
|
-
}
|
|
76
|
+
}).withChild(containerModel).withEvents({
|
|
77
|
+
resize: carousel.events.resize,
|
|
78
|
+
load: carousel.events.load
|
|
79
|
+
}).build();
|
|
80
|
+
declarationModel.styles += blocksStyles;
|
|
81
|
+
return declarationModel;
|
|
123
82
|
})();
|
|
124
83
|
export {
|
|
125
84
|
createCompositeCarouselThumbnail
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../source/composite/carousel/thumbnail/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as carouselElements from '../elements';\n\ntype TypeCarouselThumbnailProps = {\n blocks: HTMLElement[];\n isThemeDark?: boolean;\n};\n\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../source/composite/carousel/thumbnail/index.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as carouselElements from '../elements';\n\ntype TypeCarouselThumbnailProps = {\n blocks: HTMLElement[];\n isThemeDark?: boolean;\n};\n\nexport const createCompositeCarouselThumbnail = (\n props: TypeCarouselThumbnailProps,\n) =>\n (() => {\n const { blocks, isThemeDark } = props;\n const slide = new ElementBuilder().build().element;\n\n const CreatePerson = ({ block }: { block: HTMLElement }) =>\n new ElementBuilder()\n .withClassName('carousel-person-slide')\n .withStyles({\n element: {\n border: `1px solid ${token.color.gray.light}`,\n ...(isThemeDark && { border: `1px solid ${token.color.gray.dark}` }),\n borderLeft: 'none',\n padding: token.spacing.lg,\n '&:first-child': {\n borderLeft: `1px solid ${token.color.gray.light}`,\n ...(isThemeDark && { borderLeft: `1px solid ${token.color.gray.dark}` }),\n },\n },\n })\n .withChild(block)\n .build();\n\n const blocksWrapperModels = blocks.map((block) => CreatePerson({ block }));\n const blocksWrapper = blocksWrapperModels.map((model) => model.element);\n const blocksStyles = blocksWrapperModels[0] ? blocksWrapperModels[0].styles : '';\n\n const carousel = carouselElements.blocks.CreateElement({\n blocks: blocksWrapper,\n slide,\n mobileBreakpoint: token.media.breakpointValues.medium.min,\n tabletBreakpoint: token.media.breakpointValues.desktop.min,\n desktopBreakpoint: token.media.breakpointValues.highDef.min,\n desktopCount: 3,\n maxCount: 4,\n blockGap: 0,\n showHint: false,\n showMobileHint: false,\n button: {\n outsetOffset: token.spacing.md,\n ...(isThemeDark && carouselElements.buttonColorsOnBlack()),\n },\n });\n\n const containerModel = new ElementBuilder()\n .withClassName('carousel-thumbnail-container')\n .withStyles({\n element: {\n overflow: 'hidden',\n padding: `0 ${token.spacing.md}`,\n ...(isThemeDark && { backgroundColor: token.color.black }),\n },\n })\n .withChild(carousel)\n .build();\n\n const declarationModel = new ElementBuilder()\n .withClassName('carousel-thumbnail-declaration')\n .withStyles({\n element: {\n containerType: 'inline-size',\n },\n })\n .withChild(containerModel)\n .withEvents({\n resize: carousel.events.resize,\n load: carousel.events.load,\n })\n .build();\n\n declarationModel.styles += blocksStyles;\n\n return declarationModel;\n })();\n"],"names":["carouselElements.blocks","carouselElements.buttonColorsOnBlack"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,MAAM,mCAAmC,CAC9C,WAEC,MAAM;AACL,QAAM,EAAE,QAAQ,YAAA,IAAgB;AAChC,QAAM,QAAQ,IAAI,iBAAiB,QAAQ;AAE3C,QAAM,eAAe,CAAC,EAAE,YACtB,IAAI,eAAA,EACD,cAAc,uBAAuB,EACrC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,QAAQ,aAAa,MAAM,MAAM,KAAK,KAAK;AAAA,MAC3C,GAAI,eAAe,EAAE,QAAQ,aAAa,MAAM,MAAM,KAAK,IAAI,GAAA;AAAA,MAC/D,YAAY;AAAA,MACZ,SAAS,MAAM,QAAQ;AAAA,MACvB,iBAAiB;AAAA,QACf,YAAY,aAAa,MAAM,MAAM,KAAK,KAAK;AAAA,QAC/C,GAAI,eAAe,EAAE,YAAY,aAAa,MAAM,MAAM,KAAK,IAAI,GAAA;AAAA,MAAG;AAAA,IACxE;AAAA,EACF,CACD,EACA,UAAU,KAAK,EACf,MAAA;AAEL,QAAM,sBAAsB,OAAO,IAAI,CAAC,UAAU,aAAa,EAAE,MAAA,CAAO,CAAC;AACzE,QAAM,gBAAgB,oBAAoB,IAAI,CAAC,UAAU,MAAM,OAAO;AACtE,QAAM,eAAe,oBAAoB,CAAC,IAAI,oBAAoB,CAAC,EAAE,SAAS;AAE9E,QAAM,WAAWA,8BAAwB,cAAc;AAAA,IACrD,QAAQ;AAAA,IACR;AAAA,IACA,kBAAkB,MAAM,MAAM,iBAAiB,OAAO;AAAA,IACtD,kBAAkB,MAAM,MAAM,iBAAiB,QAAQ;AAAA,IACvD,mBAAmB,MAAM,MAAM,iBAAiB,QAAQ;AAAA,IACxD,cAAc;AAAA,IACd,UAAU;AAAA,IACV,UAAU;AAAA,IACV,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,QAAQ;AAAA,MACN,cAAc,MAAM,QAAQ;AAAA,MAC5B,GAAI,eAAeC,oBAAiB;AAAA,IAAoB;AAAA,EAC1D,CACD;AAED,QAAM,iBAAiB,IAAI,eAAA,EACxB,cAAc,8BAA8B,EAC5C,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,SAAS,KAAK,MAAM,QAAQ,EAAE;AAAA,MAC9B,GAAI,eAAe,EAAE,iBAAiB,MAAM,MAAM,MAAA;AAAA,IAAM;AAAA,EAC1D,CACD,EACA,UAAU,QAAQ,EAClB,MAAA;AAEH,QAAM,mBAAmB,IAAI,eAAA,EAC1B,cAAc,gCAAgC,EAC9C,WAAW;AAAA,IACV,SAAS;AAAA,MACP,eAAe;AAAA,IAAA;AAAA,EACjB,CACD,EACA,UAAU,cAAc,EACxB,WAAW;AAAA,IACV,QAAQ,SAAS,OAAO;AAAA,IACxB,MAAM,SAAS,OAAO;AAAA,EAAA,CACvB,EACA,MAAA;AAEH,mBAAiB,UAAU;AAE3B,SAAO;AACT,GAAA;"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import { CarouselWideProps } from '../_types';
|
|
2
|
-
export declare const createContainer: (props: CarouselWideProps, onIndicatorClick?: (index: number) => void) =>
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
export declare const createContainer: (props: CarouselWideProps, onIndicatorClick?: (index: number) => void) => {
|
|
3
|
+
element: HTMLElement;
|
|
4
|
+
styles: string;
|
|
5
|
+
refs: {
|
|
6
|
+
indicator: {
|
|
7
|
+
element: HTMLElement;
|
|
8
|
+
styles: string;
|
|
9
|
+
position: (index: number) => void;
|
|
10
|
+
};
|
|
11
|
+
slidesContainer: HTMLDivElement;
|
|
12
|
+
slides: HTMLElement[];
|
|
13
|
+
previews: {
|
|
14
|
+
left: HTMLElement;
|
|
15
|
+
right: HTMLElement;
|
|
16
|
+
};
|
|
17
|
+
controls: {
|
|
18
|
+
prev: HTMLButtonElement;
|
|
19
|
+
next: HTMLButtonElement;
|
|
20
|
+
};
|
|
21
|
+
info: HTMLParagraphElement;
|
|
10
22
|
};
|
|
11
|
-
|
|
12
|
-
slides: HTMLElement[];
|
|
13
|
-
previews: {
|
|
14
|
-
left: HTMLElement;
|
|
15
|
-
right: HTMLElement;
|
|
16
|
-
};
|
|
17
|
-
controls: {
|
|
18
|
-
prev: HTMLButtonElement;
|
|
19
|
-
next: HTMLButtonElement;
|
|
20
|
-
};
|
|
21
|
-
info: HTMLParagraphElement;
|
|
22
|
-
}>;
|
|
23
|
+
};
|
|
23
24
|
//# sourceMappingURL=container.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../source/composite/carousel/wide/container.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../source/composite/carousel/wide/container.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAsBnD,eAAO,MAAM,eAAe,GAC1B,OAAO,iBAAiB,EACxB,mBAAmB,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;;;;;;;;;;;;;;;;;;;cAgEhB,oBAAoB;;CAK/C,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import * as token from "@universityofmaryland/web-token-library";
|
|
1
2
|
import { ElementBuilder } from "@universityofmaryland/web-builder-library";
|
|
2
3
|
import { createIndicator } from "./controls.js";
|
|
3
4
|
import { createFramesContainer } from "./frames.js";
|
|
4
|
-
import { createElementWithRefs } from "./_elementModel.js";
|
|
5
5
|
const createAriaLive = () => {
|
|
6
|
-
const liveText = new ElementBuilder("p").withClassName("umd-carousel-wide__aria-live").withAttribute("aria-live", "polite").withStyles({
|
|
6
|
+
const liveText = new ElementBuilder("p").withClassName("umd-carousel-wide__aria-live").withClassName("sr-only").withAttribute("aria-live", "polite").withStyles({
|
|
7
7
|
element: {
|
|
8
8
|
position: "absolute",
|
|
9
9
|
left: "-10000px",
|
|
@@ -12,7 +12,6 @@ const createAriaLive = () => {
|
|
|
12
12
|
overflow: "hidden"
|
|
13
13
|
}
|
|
14
14
|
}).withText("Slide 1 Selected").build();
|
|
15
|
-
liveText.element.classList.add("sr-only");
|
|
16
15
|
return liveText;
|
|
17
16
|
};
|
|
18
17
|
const createContainer = (props, onIndicatorClick) => {
|
|
@@ -26,20 +25,46 @@ const createContainer = (props, onIndicatorClick) => {
|
|
|
26
25
|
props.isThemeDark,
|
|
27
26
|
onIndicatorClick
|
|
28
27
|
);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
const buttonWrapperModel = new ElementBuilder().withClassName("umd-carousel-wide__buttons").withStyles({
|
|
29
|
+
element: {
|
|
30
|
+
display: "flex",
|
|
31
|
+
justifyContent: "center",
|
|
32
|
+
gap: token.spacing.min,
|
|
33
|
+
width: "100%",
|
|
34
|
+
marginTop: token.spacing.md,
|
|
35
|
+
marginBottom: token.spacing.md,
|
|
36
|
+
[`@media (${token.media.queries.desktop.min})`]: {
|
|
37
|
+
width: "auto",
|
|
38
|
+
marginTop: 0,
|
|
39
|
+
marginBottom: 0
|
|
35
40
|
}
|
|
36
|
-
}
|
|
41
|
+
}
|
|
42
|
+
}).withChildren(framesContainer.buttons.prev, framesContainer.buttons.next).build();
|
|
43
|
+
const indicatorModel = new ElementBuilder().withClassName("umd-carousel-wide__indicator").withStyles({
|
|
44
|
+
element: {
|
|
45
|
+
width: "100%"
|
|
46
|
+
}
|
|
47
|
+
}).withChild(indicatorWrapper).build();
|
|
48
|
+
const model = new ElementBuilder().withClassName("umd-carousel-wide__container").withStyles({
|
|
49
|
+
element: {
|
|
50
|
+
position: "relative",
|
|
51
|
+
display: "flex",
|
|
52
|
+
flexWrap: "wrap",
|
|
53
|
+
justifyContent: "center",
|
|
54
|
+
[`@media (${token.media.queries.desktop.min})`]: {
|
|
55
|
+
display: "block"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}).withChildren(info, framesContainer, indicatorModel, buttonWrapperModel).build();
|
|
59
|
+
return {
|
|
60
|
+
element: model.element,
|
|
61
|
+
styles: model.styles,
|
|
37
62
|
refs: {
|
|
38
63
|
info: info.element,
|
|
39
64
|
...framesContainer.refs,
|
|
40
|
-
indicator: indicatorWrapper
|
|
65
|
+
indicator: indicatorWrapper
|
|
41
66
|
}
|
|
42
|
-
}
|
|
67
|
+
};
|
|
43
68
|
};
|
|
44
69
|
export {
|
|
45
70
|
createContainer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sources":["../../../../source/composite/carousel/wide/container.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"container.js","sources":["../../../../source/composite/carousel/wide/container.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { createIndicator } from './controls';\nimport { createFramesContainer } from './frames';\nimport { type CarouselWideProps } from '../_types';\n\nconst createAriaLive = () => {\n const liveText = new ElementBuilder('p')\n .withClassName('umd-carousel-wide__aria-live')\n .withClassName('sr-only')\n .withAttribute('aria-live', 'polite')\n .withStyles({\n element: {\n position: 'absolute',\n left: '-10000px',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n })\n .withText('Slide 1 Selected')\n .build();\n\n return liveText;\n};\n\nexport const createContainer = (\n props: CarouselWideProps,\n onIndicatorClick?: (index: number) => void,\n) => {\n const info = createAriaLive();\n const framesContainer = createFramesContainer(\n props.slides,\n props.isThemeDark,\n );\n\n const indicatorWrapper = createIndicator(\n props.slides,\n props.isThemeDark,\n onIndicatorClick,\n );\n\n const buttonWrapperModel = new ElementBuilder()\n .withClassName('umd-carousel-wide__buttons')\n .withStyles({\n element: {\n display: 'flex',\n justifyContent: 'center',\n gap: token.spacing.min,\n width: '100%',\n marginTop: token.spacing.md,\n marginBottom: token.spacing.md,\n [`@media (${token.media.queries.desktop.min})`]: {\n width: 'auto',\n marginTop: 0,\n marginBottom: 0,\n },\n },\n })\n .withChildren(framesContainer.buttons.prev, framesContainer.buttons.next)\n .build();\n\n const indicatorModel = new ElementBuilder()\n .withClassName('umd-carousel-wide__indicator')\n .withStyles({\n element: {\n width: '100%',\n },\n })\n .withChild(indicatorWrapper)\n .build();\n\n const model = new ElementBuilder()\n .withClassName('umd-carousel-wide__container')\n .withStyles({\n element: {\n position: 'relative',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'center',\n [`@media (${token.media.queries.desktop.min})`]: {\n display: 'block',\n },\n },\n })\n .withChildren(info, framesContainer, indicatorModel, buttonWrapperModel)\n .build();\n\n return {\n element: model.element,\n styles: model.styles,\n refs: {\n info: info.element as HTMLParagraphElement,\n ...framesContainer.refs,\n indicator: indicatorWrapper,\n },\n };\n};\n"],"names":[],"mappings":";;;;AAMA,MAAM,iBAAiB,MAAM;AAC3B,QAAM,WAAW,IAAI,eAAe,GAAG,EACpC,cAAc,8BAA8B,EAC5C,cAAc,SAAS,EACvB,cAAc,aAAa,QAAQ,EACnC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,IAAA;AAAA,EACZ,CACD,EACA,SAAS,kBAAkB,EAC3B,MAAA;AAEH,SAAO;AACT;AAEO,MAAM,kBAAkB,CAC7B,OACA,qBACG;AACH,QAAM,OAAO,eAAA;AACb,QAAM,kBAAkB;AAAA,IACtB,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAGR,QAAM,mBAAmB;AAAA,IACvB,MAAM;AAAA,IACN,MAAM;AAAA,IACN;AAAA,EAAA;AAGF,QAAM,qBAAqB,IAAI,eAAA,EAC5B,cAAc,4BAA4B,EAC1C,WAAW;AAAA,IACV,SAAS;AAAA,MACP,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,KAAK,MAAM,QAAQ;AAAA,MACnB,OAAO;AAAA,MACP,WAAW,MAAM,QAAQ;AAAA,MACzB,cAAc,MAAM,QAAQ;AAAA,MAC5B,CAAC,WAAW,MAAM,MAAM,QAAQ,QAAQ,GAAG,GAAG,GAAG;AAAA,QAC/C,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc;AAAA,MAAA;AAAA,IAChB;AAAA,EACF,CACD,EACA,aAAa,gBAAgB,QAAQ,MAAM,gBAAgB,QAAQ,IAAI,EACvE,MAAA;AAEH,QAAM,iBAAiB,IAAI,eAAA,EACxB,cAAc,8BAA8B,EAC5C,WAAW;AAAA,IACV,SAAS;AAAA,MACP,OAAO;AAAA,IAAA;AAAA,EACT,CACD,EACA,UAAU,gBAAgB,EAC1B,MAAA;AAEH,QAAM,QAAQ,IAAI,eAAA,EACf,cAAc,8BAA8B,EAC5C,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,MACV,gBAAgB;AAAA,MAChB,CAAC,WAAW,MAAM,MAAM,QAAQ,QAAQ,GAAG,GAAG,GAAG;AAAA,QAC/C,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,EACF,CACD,EACA,aAAa,MAAM,iBAAiB,gBAAgB,kBAAkB,EACtE,MAAA;AAEH,SAAO;AAAA,IACL,SAAS,MAAM;AAAA,IACf,QAAQ,MAAM;AAAA,IACd,MAAM;AAAA,MACJ,MAAM,KAAK;AAAA,MACX,GAAG,gBAAgB;AAAA,MACnB,WAAW;AAAA,IAAA;AAAA,EACb;AAEJ;"}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import { CarouselWideProps } from '../_types';
|
|
2
2
|
export declare const createControlButton: (type: "prev" | "next", isThemeDark?: boolean) => import('../../../../builder/dist/index.d.ts').ElementModel<HTMLElement>;
|
|
3
|
-
export declare const createIndicator: (slides: CarouselWideProps["slides"], isThemeDark?: boolean, callback?: (index: number) => void) =>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
update?: (props: Partial<import('../../../../builder/dist/index.d.ts').BuilderOptions>) => void;
|
|
9
|
-
destroy?: () => void;
|
|
10
|
-
events?: Record<string, Function>;
|
|
11
|
-
};
|
|
12
|
-
}>;
|
|
3
|
+
export declare const createIndicator: (slides: CarouselWideProps["slides"], isThemeDark?: boolean, callback?: (index: number) => void) => {
|
|
4
|
+
element: HTMLElement;
|
|
5
|
+
styles: string;
|
|
6
|
+
position: (index: number) => void;
|
|
7
|
+
};
|
|
13
8
|
//# sourceMappingURL=controls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../source/composite/carousel/wide/controls.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../source/composite/carousel/wide/controls.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,GAAG,MAAM,EACrB,cAAc,OAAO,kFAyCtB,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,QAAQ,iBAAiB,CAAC,QAAQ,CAAC,EACnC,cAAc,OAAO,EACrB,WAAW,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;;;;CAQnC,CAAC"}
|
|
@@ -1,117 +1,47 @@
|
|
|
1
|
-
import { ElementBuilder } from "@universityofmaryland/web-builder-library";
|
|
2
1
|
import * as token from "@universityofmaryland/web-token-library";
|
|
3
|
-
import {
|
|
4
|
-
import "
|
|
5
|
-
import "@universityofmaryland/web-styles-library/layout";
|
|
6
|
-
import "@universityofmaryland/web-styles-library/animation";
|
|
7
|
-
import "@universityofmaryland/web-styles-library/typography";
|
|
8
|
-
import "@universityofmaryland/web-utilities-library/media";
|
|
9
|
-
import "@universityofmaryland/web-utilities-library/dom";
|
|
10
|
-
import "@universityofmaryland/web-icons-library/controls";
|
|
11
|
-
import "@universityofmaryland/web-icons-library/communication";
|
|
12
|
-
import "@universityofmaryland/web-icons-library/files";
|
|
13
|
-
import "@universityofmaryland/web-icons-library/brand";
|
|
14
|
-
import { createAnimationIndicator } from "../../../atomic/animations/actions/indicator.js";
|
|
15
|
-
import "../../../atomic/animations/brand/chevron-scroll.js";
|
|
16
|
-
import "../../../atomic/animations/brand/card-stack.js";
|
|
17
|
-
import "@universityofmaryland/web-styles-library";
|
|
18
|
-
import "@universityofmaryland/web-utilities-library/performance";
|
|
19
|
-
import "@universityofmaryland/web-utilities-library/accessibility";
|
|
20
|
-
import "@universityofmaryland/web-icons-library/location";
|
|
21
|
-
import "@universityofmaryland/web-icons-library/calendar";
|
|
22
|
-
import "@universityofmaryland/web-utilities-library/theme";
|
|
23
|
-
import "../../../atomic/layout/block/stacked.js";
|
|
24
|
-
import "../../../atomic/layout/overlay/modal.js";
|
|
25
|
-
import "../../../atomic/layout/person/columns.js";
|
|
26
|
-
import "@universityofmaryland/web-icons-library/social";
|
|
27
|
-
import "../../../atomic/text-lockup/date.js";
|
|
28
|
-
import "../../../atomic/text-lockup/small.js";
|
|
29
|
-
import { createElementWithRefs } from "./_elementModel.js";
|
|
2
|
+
import { createCarouselIndicatorWrapper } from "../elements/indicator-wrapper.js";
|
|
3
|
+
import { createCarouselNavButton, buttonColorsOnWhite } from "../elements/nav-button.js";
|
|
30
4
|
const createControlButton = (type, isThemeDark) => {
|
|
31
5
|
const isPrev = type === "prev";
|
|
32
|
-
|
|
33
|
-
const buttonTabletPosition = `calc(10vw - (${token.spacing.md} + ${token.spacing.md}))`;
|
|
6
|
+
`calc(10vw - (${token.spacing.md} + ${token.spacing.md}))`;
|
|
34
7
|
const buttonDesktopPosition = `calc(15vw - (${token.spacing["xl"]} + ${token.spacing.md}))`;
|
|
35
8
|
const buttonHighPosition = `calc(20vw - (${token.spacing["xl"]} + ${token.spacing.md}))`;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
9
|
+
return createCarouselNavButton({
|
|
10
|
+
className: isPrev ? "umd-carousel-wide__control--prev" : "umd-carousel-wide__control--next",
|
|
11
|
+
direction: type,
|
|
12
|
+
label: isPrev ? "Go to previous slide" : "Go to next slide"
|
|
13
|
+
}).withStyles({
|
|
40
14
|
element: {
|
|
41
|
-
backgroundColor: isThemeDark ? token.color.red : token.color.white,
|
|
42
|
-
height: token.spacing.lg,
|
|
43
15
|
padding: token.spacing.min,
|
|
44
|
-
position: "
|
|
45
|
-
|
|
16
|
+
position: "relative",
|
|
17
|
+
top: "auto",
|
|
18
|
+
bottom: "auto",
|
|
19
|
+
left: "auto",
|
|
20
|
+
right: "auto",
|
|
46
21
|
zIndex: 3,
|
|
47
22
|
transition: "background 0.5s",
|
|
48
|
-
|
|
49
|
-
[`@media (${token.media.queries.large.max})`]: {
|
|
50
|
-
top: `calc(22vw + ${token.spacing.sm})`,
|
|
51
|
-
left: isPrev ? "auto" : `${token.spacing["xl"]}`,
|
|
52
|
-
right: isPrev ? `${token.spacing["xl"]}` : "auto"
|
|
53
|
-
},
|
|
54
|
-
[`@media (${token.media.queries.tablet.min})`]: {
|
|
55
|
-
boxShadow: "0 0 5px 0 rgba(0, 0, 0, 0.4)",
|
|
56
|
-
left: isPrev ? "auto" : buttonTabletPosition,
|
|
57
|
-
right: isPrev ? buttonTabletPosition : "auto",
|
|
58
|
-
bottom: "35%"
|
|
59
|
-
},
|
|
23
|
+
...buttonColorsOnWhite(isThemeDark),
|
|
60
24
|
[`@media (${token.media.queries.desktop.min})`]: {
|
|
61
|
-
|
|
62
|
-
|
|
25
|
+
position: "absolute",
|
|
26
|
+
boxShadow: "0 0 5px 0 rgba(0, 0, 0, 0.4)",
|
|
63
27
|
padding: token.spacing.xs,
|
|
64
|
-
left: isPrev ? "auto"
|
|
65
|
-
right: isPrev ?
|
|
28
|
+
left: isPrev ? buttonDesktopPosition : "auto",
|
|
29
|
+
right: isPrev ? "auto" : buttonDesktopPosition,
|
|
30
|
+
bottom: "35%"
|
|
66
31
|
},
|
|
67
32
|
[`@media (${token.media.queries.highDef.min})`]: {
|
|
68
|
-
left: isPrev ? "auto"
|
|
69
|
-
right: isPrev ?
|
|
70
|
-
},
|
|
71
|
-
"& svg": {
|
|
72
|
-
height: "100%",
|
|
73
|
-
width: "100%",
|
|
74
|
-
fill: isThemeDark ? token.color.white : token.color.black,
|
|
75
|
-
transition: "fill 0.5s"
|
|
76
|
-
},
|
|
77
|
-
"&:hover, &:focus": {
|
|
78
|
-
backgroundColor: isThemeDark ? token.color.redDark : token.color.red,
|
|
79
|
-
"& svg": {
|
|
80
|
-
fill: token.color.white
|
|
81
|
-
}
|
|
33
|
+
left: isPrev ? buttonHighPosition : "auto",
|
|
34
|
+
right: isPrev ? "auto" : buttonHighPosition
|
|
82
35
|
}
|
|
83
36
|
}
|
|
84
|
-
}).withModifier((el) => {
|
|
85
|
-
el.append(srText.element);
|
|
86
|
-
el.insertAdjacentHTML("afterbegin", arrow_left);
|
|
87
37
|
}).build();
|
|
88
|
-
return button;
|
|
89
38
|
};
|
|
90
39
|
const createIndicator = (slides, isThemeDark, callback) => {
|
|
91
|
-
|
|
40
|
+
return createCarouselIndicatorWrapper({
|
|
92
41
|
count: slides.length,
|
|
93
42
|
isThemeDark,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
});
|
|
97
|
-
return createElementWithRefs({
|
|
98
|
-
className: "umd-carousel-wide__drawer",
|
|
99
|
-
children: [indicator],
|
|
100
|
-
elementStyles: {
|
|
101
|
-
element: {
|
|
102
|
-
display: "flex",
|
|
103
|
-
justifyContent: "center",
|
|
104
|
-
margin: "auto",
|
|
105
|
-
padding: token.spacing.md,
|
|
106
|
-
[`@media (${token.media.queries.tablet.min})`]: {
|
|
107
|
-
padding: 0,
|
|
108
|
-
paddingTop: token.spacing.lg
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
refs: {
|
|
113
|
-
indicator
|
|
114
|
-
}
|
|
43
|
+
isBackground: false,
|
|
44
|
+
callback
|
|
115
45
|
});
|
|
116
46
|
};
|
|
117
47
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.js","sources":["../../../../source/composite/carousel/wide/controls.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"controls.js","sources":["../../../../source/composite/carousel/wide/controls.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { createCarouselIndicatorWrapper } from '../elements/indicator-wrapper';\nimport { createCarouselNavButton, buttonColorsOnWhite } from '../elements/nav-button';\nimport { type CarouselWideProps } from '../_types';\n\nexport const createControlButton = (\n type: 'prev' | 'next',\n isThemeDark?: boolean,\n) => {\n const isPrev = type === 'prev';\n const buttonTabletPosition = `calc(10vw - (${token.spacing.md} + ${token.spacing.md}))`;\n const buttonDesktopPosition = `calc(15vw - (${token.spacing['xl']} + ${token.spacing.md}))`;\n const buttonHighPosition = `calc(20vw - (${token.spacing['xl']} + ${token.spacing.md}))`;\n return createCarouselNavButton({\n className: isPrev ? 'umd-carousel-wide__control--prev' : 'umd-carousel-wide__control--next',\n direction: type,\n label: isPrev ? 'Go to previous slide' : 'Go to next slide',\n })\n .withStyles({\n element: {\n padding: token.spacing.min,\n position: 'relative',\n top: 'auto',\n bottom: 'auto',\n left: 'auto',\n right: 'auto',\n zIndex: 3,\n transition: 'background 0.5s',\n ...buttonColorsOnWhite(isThemeDark),\n\n [`@media (${token.media.queries.desktop.min})`]: {\n position: 'absolute',\n boxShadow: '0 0 5px 0 rgba(0, 0, 0, 0.4)',\n padding: token.spacing.xs,\n left: isPrev ? buttonDesktopPosition : 'auto',\n right: isPrev ? 'auto' : buttonDesktopPosition,\n bottom: '35%',\n },\n\n [`@media (${token.media.queries.highDef.min})`]: {\n left: isPrev ? buttonHighPosition : 'auto',\n right: isPrev ? 'auto' : buttonHighPosition,\n },\n\n\n },\n })\n .build();\n};\n\nexport const createIndicator = (\n slides: CarouselWideProps['slides'],\n isThemeDark?: boolean,\n callback?: (index: number) => void,\n) => {\n return createCarouselIndicatorWrapper({\n count: slides.length,\n isThemeDark,\n isBackground: false,\n callback,\n });\n};\n"],"names":[],"mappings":";;;AAKO,MAAM,sBAAsB,CACjC,MACA,gBACG;AACH,QAAM,SAAS,SAAS;AACK,kBAAgB,MAAM,QAAQ,EAAE,MAAM,MAAM,QAAQ,EAAE;AACnF,QAAM,wBAAwB,gBAAgB,MAAM,QAAQ,IAAI,CAAC,MAAM,MAAM,QAAQ,EAAE;AACvF,QAAM,qBAAqB,gBAAgB,MAAM,QAAQ,IAAI,CAAC,MAAM,MAAM,QAAQ,EAAE;AACpF,SAAO,wBAAwB;AAAA,IAC7B,WAAW,SAAS,qCAAqC;AAAA,IACzD,WAAW;AAAA,IACX,OAAO,SAAS,yBAAyB;AAAA,EAAA,CAC1C,EACE,WAAW;AAAA,IACV,SAAS;AAAA,MACP,SAAS,MAAM,QAAQ;AAAA,MACvB,UAAU;AAAA,MACV,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,GAAG,oBAAoB,WAAW;AAAA,MAElC,CAAC,WAAW,MAAM,MAAM,QAAQ,QAAQ,GAAG,GAAG,GAAG;AAAA,QAC/C,UAAU;AAAA,QACV,WAAW;AAAA,QACX,SAAS,MAAM,QAAQ;AAAA,QACvB,MAAM,SAAS,wBAAwB;AAAA,QACvC,OAAO,SAAS,SAAS;AAAA,QACzB,QAAQ;AAAA,MAAA;AAAA,MAGV,CAAC,WAAW,MAAM,MAAM,QAAQ,QAAQ,GAAG,GAAG,GAAG;AAAA,QAC/C,MAAM,SAAS,qBAAqB;AAAA,QACpC,OAAO,SAAS,SAAS;AAAA,MAAA;AAAA,IAC3B;AAAA,EAGF,CACD,EACA,MAAA;AACL;AAEO,MAAM,kBAAkB,CAC7B,QACA,aACA,aACG;AACH,SAAO,+BAA+B;AAAA,IACpC,OAAO,OAAO;AAAA,IACd;AAAA,IACA,cAAc;AAAA,IACd;AAAA,EAAA,CACD;AACH;"}
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { CarouselWideProps } from '../_types';
|
|
2
|
-
export declare const createFramesContainer: (slides: CarouselWideProps["slides"], isThemeDark?: boolean) =>
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
export declare const createFramesContainer: (slides: CarouselWideProps["slides"], isThemeDark?: boolean) => {
|
|
3
|
+
element: HTMLElement;
|
|
4
|
+
styles: string;
|
|
5
|
+
buttons: {
|
|
6
|
+
prev: import('../../../../builder/dist/index.d.ts').ElementModel<HTMLElement>;
|
|
7
|
+
next: import('../../../../builder/dist/index.d.ts').ElementModel<HTMLElement>;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
refs: {
|
|
10
|
+
slidesContainer: HTMLDivElement;
|
|
11
|
+
slides: HTMLElement[];
|
|
12
|
+
previews: {
|
|
13
|
+
left: HTMLElement;
|
|
14
|
+
right: HTMLElement;
|
|
15
|
+
};
|
|
16
|
+
controls: {
|
|
17
|
+
prev: HTMLButtonElement;
|
|
18
|
+
next: HTMLButtonElement;
|
|
19
|
+
};
|
|
12
20
|
};
|
|
13
|
-
}
|
|
21
|
+
};
|
|
14
22
|
//# sourceMappingURL=frames.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../../source/composite/carousel/wide/frames.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../../source/composite/carousel/wide/frames.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAuRnD,eAAO,MAAM,qBAAqB,GAChC,QAAQ,iBAAiB,CAAC,QAAQ,CAAC,EACnC,cAAc,OAAO;;;;;;;;yBA+CyB,cAAc;;;kBAGzB,WAAW;mBACT,WAAW;;;kBAGV,iBAAiB;kBACrB,iBAAiB;;;CAIpD,CAAC"}
|