@universityofmaryland/web-elements-library 1.6.8 → 1.6.10-beta.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.
Files changed (114) hide show
  1. package/LICENSE +5 -0
  2. package/README.md +1 -1
  3. package/dist/_types.d.ts +1 -1
  4. package/dist/atomic/actions/icon.d.ts +1 -1
  5. package/dist/atomic/actions/text.d.ts +4 -4
  6. package/dist/atomic/animations/actions/indicator.d.ts +1 -1
  7. package/dist/atomic/animations/brand/card-stack.d.ts +1 -1
  8. package/dist/atomic/animations/brand/card-stack.js.map +1 -1
  9. package/dist/atomic/assets/image/background.d.ts +1 -1
  10. package/dist/atomic/assets/image/gif.d.ts +1 -1
  11. package/dist/atomic/assets/image/placeholder.d.ts +1 -1
  12. package/dist/atomic/assets/video/observed-auto-play.d.ts +1 -1
  13. package/dist/atomic/assets/video/toggle.d.ts +1 -1
  14. package/dist/atomic/buttons/fullscreen.d.ts +1 -1
  15. package/dist/atomic/events/meta.d.ts +1 -1
  16. package/dist/atomic/events/sign.d.ts +1 -1
  17. package/dist/atomic/layout/block/stacked.d.ts +3 -3
  18. package/dist/atomic/layout/person/columns.d.ts +4 -4
  19. package/dist/atomic/text/stat.d.ts +1 -1
  20. package/dist/atomic/text-lockup/contact.d.ts +1 -1
  21. package/dist/atomic/text-lockup/large.d.ts +1 -1
  22. package/dist/atomic/text-lockup/medium.d.ts +1 -1
  23. package/dist/atomic/text-lockup/person.d.ts +1 -1
  24. package/dist/atomic/text-lockup/small-scaling.d.ts +1 -1
  25. package/dist/atomic/text-lockup/small.d.ts +5 -5
  26. package/dist/atomic/text-lockup/small.d.ts.map +1 -1
  27. package/dist/atomic/text-lockup/small.js.map +1 -1
  28. package/dist/composite/alert/elements/closeButton.d.ts +1 -1
  29. package/dist/composite/alert/elements/text.d.ts +1 -1
  30. package/dist/composite/alert/page.d.ts +1 -1
  31. package/dist/composite/alert/site.d.ts +1 -1
  32. package/dist/composite/banner/promo.d.ts +1 -1
  33. package/dist/composite/card/_types.d.ts +9 -0
  34. package/dist/composite/card/_types.d.ts.map +1 -1
  35. package/dist/composite/card/block.d.ts +1 -1
  36. package/dist/composite/card/event-time.d.ts +3 -0
  37. package/dist/composite/card/event-time.d.ts.map +1 -0
  38. package/dist/composite/card/event-time.js +238 -0
  39. package/dist/composite/card/event-time.js.map +1 -0
  40. package/dist/composite/card/index.d.ts +1 -0
  41. package/dist/composite/card/index.d.ts.map +1 -1
  42. package/dist/composite/card/index.js +2 -0
  43. package/dist/composite/card/index.js.map +1 -1
  44. package/dist/composite/card/list.d.ts +1 -1
  45. package/dist/composite/card/overlay/color.d.ts +1 -1
  46. package/dist/composite/card/overlay/icon.d.ts +1 -1
  47. package/dist/composite/card/overlay/image.d.ts +1 -1
  48. package/dist/composite/card/video/block.d.ts +1 -1
  49. package/dist/composite/card/video/short.d.ts +1 -1
  50. package/dist/composite/carousel/wide/container.d.ts +1 -1
  51. package/dist/composite/carousel/wide/controls.d.ts +2 -2
  52. package/dist/composite/carousel/wide/index.d.ts +1 -1
  53. package/dist/composite/footer/base.d.ts +1 -1
  54. package/dist/composite/footer/elements/utility-section/index.d.ts +1 -1
  55. package/dist/composite/footer/mega.d.ts +1 -1
  56. package/dist/composite/footer/simple.d.ts +1 -1
  57. package/dist/composite/footer/visual.d.ts +1 -1
  58. package/dist/composite/hero/custom/expand.d.ts +1 -1
  59. package/dist/composite/hero/custom/grid.d.ts +1 -1
  60. package/dist/composite/hero/custom/video-arrow.d.ts +1 -1
  61. package/dist/composite/hero/logo.d.ts +1 -1
  62. package/dist/composite/hero/minimal.d.ts +1 -1
  63. package/dist/composite/hero/overlay.d.ts +1 -1
  64. package/dist/composite/hero/stacked.d.ts +1 -1
  65. package/dist/composite/hero/standard.d.ts +1 -1
  66. package/dist/composite/layout/section-intro/small.js.map +1 -1
  67. package/dist/composite/media/elements/gif.d.ts +1 -1
  68. package/dist/composite/navigation/elements/item/index.js +1 -1
  69. package/dist/composite/navigation/elements/item/index.js.map +1 -1
  70. package/dist/composite/pathway/_common.d.ts +4 -4
  71. package/dist/composite/pathway/hero.d.ts +1 -1
  72. package/dist/composite/pathway/highlight.d.ts +1 -1
  73. package/dist/composite/pathway/overlay.d.ts +1 -1
  74. package/dist/composite/pathway/standard.d.ts +1 -1
  75. package/dist/composite/pathway/sticky.d.ts +1 -1
  76. package/dist/composite/quote/_types.d.ts +31 -3
  77. package/dist/composite/quote/_types.d.ts.map +1 -1
  78. package/dist/composite/quote/elements/action.d.ts +4 -6
  79. package/dist/composite/quote/elements/action.d.ts.map +1 -1
  80. package/dist/composite/quote/elements/action.js +9 -1
  81. package/dist/composite/quote/elements/action.js.map +1 -1
  82. package/dist/composite/quote/elements/icon.d.ts +3 -6
  83. package/dist/composite/quote/elements/icon.d.ts.map +1 -1
  84. package/dist/composite/quote/elements/icon.js +19 -1
  85. package/dist/composite/quote/elements/icon.js.map +1 -1
  86. package/dist/composite/quote/elements/image.d.ts +3 -6
  87. package/dist/composite/quote/elements/image.d.ts.map +1 -1
  88. package/dist/composite/quote/elements/image.js +22 -1
  89. package/dist/composite/quote/elements/image.js.map +1 -1
  90. package/dist/composite/quote/elements/index.d.ts +2 -0
  91. package/dist/composite/quote/elements/index.d.ts.map +1 -1
  92. package/dist/composite/quote/elements/index.js +5 -2
  93. package/dist/composite/quote/elements/quote.d.ts +3 -8
  94. package/dist/composite/quote/elements/quote.d.ts.map +1 -1
  95. package/dist/composite/quote/elements/quote.js +11 -1
  96. package/dist/composite/quote/elements/quote.js.map +1 -1
  97. package/dist/composite/quote/elements/text.d.ts +5 -2
  98. package/dist/composite/quote/elements/text.d.ts.map +1 -1
  99. package/dist/composite/quote/elements/text.js +52 -1
  100. package/dist/composite/quote/elements/text.js.map +1 -1
  101. package/dist/composite/quote/featured.d.ts +1 -1
  102. package/dist/composite/quote/helper/animation.d.ts +1 -6
  103. package/dist/composite/quote/helper/animation.d.ts.map +1 -1
  104. package/dist/composite/quote/helper/animation.js.map +1 -1
  105. package/dist/composite/quote/index.d.ts +1 -0
  106. package/dist/composite/quote/index.d.ts.map +1 -1
  107. package/dist/composite/quote/index.js +3 -1
  108. package/dist/composite/quote/index.js.map +1 -1
  109. package/dist/composite/quote/inline.d.ts +1 -1
  110. package/dist/composite/quote/statement.d.ts +1 -1
  111. package/dist/composite/quote/statement.d.ts.map +1 -1
  112. package/dist/composite/quote/statement.js +71 -0
  113. package/dist/composite/quote/statement.js.map +1 -0
  114. package/package.json +21 -17
@@ -78,6 +78,53 @@ const createChildren = (props) => {
78
78
  }
79
79
  return wrapperChildren;
80
80
  };
81
+ const CreateStatementQuoteHeadline = ({
82
+ headline
83
+ }) => {
84
+ if (!headline) return null;
85
+ return new ElementBuilder(headline).withClassName("statement-headline").withStyles({
86
+ element: {
87
+ color: token.color.black,
88
+ fontSize: token.font.size.base,
89
+ textTransform: "uppercase",
90
+ marginBottom: token.spacing.sm,
91
+ letterSpacing: "2px",
92
+ fontWeight: token.font.weight.light
93
+ }
94
+ }).build();
95
+ };
96
+ const CreateStatementQuoteAttribution = ({
97
+ attribution,
98
+ attributionSubText
99
+ }) => {
100
+ if (!attribution && !attributionSubText) return null;
101
+ const container = new ElementBuilder().withClassName("statement-attribution-container").withStyles({
102
+ element: {
103
+ margin: token.spacing.lg
104
+ }
105
+ });
106
+ if (attribution) {
107
+ const attributionElement = new ElementBuilder(attribution).withClassName("statement-attribution").withStyles({
108
+ element: {
109
+ fontWeight: token.font.weight.bold,
110
+ color: token.color.black,
111
+ fontSize: token.font.size.xl,
112
+ marginBottom: token.spacing.xs
113
+ }
114
+ }).build();
115
+ container.withChild(attributionElement);
116
+ }
117
+ if (attributionSubText) {
118
+ const subTextElement = new ElementBuilder(attributionSubText).withClassName("statement-attribution-subtext").withStyles({
119
+ element: {
120
+ color: token.color.gray.dark,
121
+ fontSize: token.font.size.sm
122
+ }
123
+ }).build();
124
+ container.withChild(subTextElement);
125
+ }
126
+ return container.build();
127
+ };
81
128
  const CreateQuoteTextElement = (props) => {
82
129
  const {
83
130
  image,
@@ -116,7 +163,11 @@ const CreateQuoteTextElement = (props) => {
116
163
  }).build();
117
164
  };
118
165
  const createCompositeQuoteText = CreateQuoteTextElement;
166
+ const createStatementQuoteHeadline = CreateStatementQuoteHeadline;
167
+ const createStatementQuoteAttribution = CreateStatementQuoteAttribution;
119
168
  export {
120
- createCompositeQuoteText
169
+ createCompositeQuoteText,
170
+ createStatementQuoteAttribution,
171
+ createStatementQuoteHeadline
121
172
  };
122
173
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sources":["../../../../source/composite/quote/elements/text.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { createCompositeQuoteAction as elementAction } from './action';\nimport { createCompositeQuote as elementQuote } from './quote';\nimport { SMALL } from '../_constants';\nimport { type QuoteTextProps } from '../_types';\nimport { type ElementModel } from '../../../_types';\n\ninterface ChildrenProps\n extends Pick<\n QuoteTextProps,\n | 'quote'\n | 'image'\n | 'attribution'\n | 'attributionSubText'\n | 'action'\n | 'isThemeDark'\n | 'isSizeLarge'\n | 'isTypeFeatured'\n | 'includesAnimation'\n > {\n shouldHaveWhiteText?: boolean;\n hasImage: boolean;\n}\n\nconst createChildren = (props: ChildrenProps): ElementModel<HTMLElement>[] => {\n const {\n action,\n attribution,\n attributionSubText,\n hasImage,\n includesAnimation,\n isThemeDark,\n isSizeLarge,\n quote,\n shouldHaveWhiteText,\n } = props;\n const wrapperChildren: ElementModel<HTMLElement>[] = [];\n\n if (quote) {\n wrapperChildren.push(\n elementQuote({\n ...props,\n shouldHaveWhiteText,\n quote,\n hasImage,\n isSizeLarge,\n }),\n );\n }\n\n if (attribution) {\n const attributionElement = new ElementBuilder(attribution)\n .styled(\n typography.sans.compose('medium', {\n theme: theme.fontColor(shouldHaveWhiteText),\n }),\n )\n .withClassName('quote-container-attribution')\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n\n ...(includesAnimation && {\n opacity: '0',\n transform: 'translateY(20px)',\n transition: 'opacity 1s ease, transform 0.5s ease',\n }),\n\n ...(!shouldHaveWhiteText && {\n color: token.color.gray.dark,\n }),\n\n [`& *`]: {\n color: 'currentColor',\n },\n },\n })\n .build();\n\n wrapperChildren.push(attributionElement);\n }\n\n if (attributionSubText) {\n const attributionSubTextElement = new ElementBuilder(attributionSubText)\n .styled(typography.sans.small)\n .withClassName('quote-container-text-attribution-sub-text')\n .withStyles({\n element: {\n color: token.color.gray.dark,\n fontStyle: 'italic',\n\n ...(includesAnimation && {\n opacity: '0',\n transform: 'translateY(20px)',\n transition: 'opacity 1s ease, transform 0.5s ease',\n }),\n\n ...(shouldHaveWhiteText && {\n color: token.color.white,\n }),\n },\n })\n .build();\n\n wrapperChildren.push(attributionSubTextElement);\n }\n\n if (action) {\n const actionElement = elementAction({\n ...props,\n action,\n });\n\n wrapperChildren.push(actionElement);\n }\n\n return wrapperChildren;\n};\n\nconst CreateQuoteTextElement = (\n props: Pick<\n QuoteTextProps,\n | 'isThemeDark'\n | 'isThemeMaryland'\n | 'isSizeLarge'\n | 'isTypeFeatured'\n | 'image'\n | 'quote'\n | 'attribution'\n | 'attributionSubText'\n | 'action'\n | 'includesAnimation'\n >,\n) => {\n const {\n image,\n isSizeLarge = false,\n isThemeDark,\n isThemeMaryland,\n isTypeFeatured = false,\n } = props;\n const shouldHaveWhiteText = isThemeDark || isThemeMaryland;\n const isSizeLargeAndNotFeatured = isSizeLarge && !isTypeFeatured;\n const hasImage = image != null;\n const isHasImageAndNotFeatured = hasImage && !isTypeFeatured;\n\n const children = createChildren({\n ...props,\n shouldHaveWhiteText,\n hasImage,\n });\n\n const wrapper = new ElementBuilder()\n .withClassName('quote-text-container-wrapper')\n .withChildren(...children)\n .build();\n\n return new ElementBuilder()\n .withClassName('quote-text-container')\n .withChild(wrapper)\n .withStyles({\n element: {\n width: '100%',\n\n [`@container (max-width: ${SMALL - 1}px)`]: {\n paddingLeft: token.spacing.md,\n\n ...(!hasImage && {\n paddingTop: token.spacing.lg,\n }),\n\n ...(isSizeLargeAndNotFeatured && {\n paddingTop: token.spacing['2xl'],\n }),\n },\n\n [`@container (min-width: ${SMALL}px)`]: {\n paddingLeft: token.spacing['4xl'],\n\n ...(isHasImageAndNotFeatured && { paddingLeft: '0' }),\n },\n },\n })\n .build();\n};\n\nexport const createCompositeQuoteText = CreateQuoteTextElement;\n"],"names":["elementQuote","elementAction"],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sources":["../../../../source/composite/quote/elements/text.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { createCompositeQuoteAction as elementAction } from './action';\nimport { createCompositeQuote as elementQuote } from './quote';\nimport { SMALL } from '../_constants';\nimport {\n type QuoteStatementProps,\n type QuoteTextChildrenProps,\n type QuoteTextProps,\n} from '../_types';\nimport { type ElementModel } from '../../../_types';\n\nconst createChildren = (\n props: QuoteTextChildrenProps,\n): ElementModel<HTMLElement>[] => {\n const {\n action,\n attribution,\n attributionSubText,\n hasImage,\n includesAnimation,\n isThemeDark,\n isSizeLarge,\n quote,\n shouldHaveWhiteText,\n } = props;\n const wrapperChildren: ElementModel<HTMLElement>[] = [];\n\n if (quote) {\n wrapperChildren.push(\n elementQuote({\n ...props,\n shouldHaveWhiteText,\n quote,\n hasImage,\n isSizeLarge,\n }),\n );\n }\n\n if (attribution) {\n const attributionElement = new ElementBuilder(attribution)\n .styled(\n typography.sans.compose('medium', {\n theme: theme.fontColor(shouldHaveWhiteText),\n }),\n )\n .withClassName('quote-container-attribution')\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n\n ...(includesAnimation && {\n opacity: '0',\n transform: 'translateY(20px)',\n transition: 'opacity 1s ease, transform 0.5s ease',\n }),\n\n ...(!shouldHaveWhiteText && {\n color: token.color.gray.dark,\n }),\n\n [`& *`]: {\n color: 'currentColor',\n },\n },\n })\n .build();\n\n wrapperChildren.push(attributionElement);\n }\n\n if (attributionSubText) {\n const attributionSubTextElement = new ElementBuilder(attributionSubText)\n .styled(typography.sans.small)\n .withClassName('quote-container-text-attribution-sub-text')\n .withStyles({\n element: {\n color: token.color.gray.dark,\n fontStyle: 'italic',\n\n ...(includesAnimation && {\n opacity: '0',\n transform: 'translateY(20px)',\n transition: 'opacity 1s ease, transform 0.5s ease',\n }),\n\n ...(shouldHaveWhiteText && {\n color: token.color.white,\n }),\n },\n })\n .build();\n\n wrapperChildren.push(attributionSubTextElement);\n }\n\n if (action) {\n const actionElement = elementAction({\n ...props,\n action,\n });\n\n wrapperChildren.push(actionElement);\n }\n\n return wrapperChildren;\n};\n\nconst CreateStatementQuoteHeadline = ({\n headline,\n}: Pick<QuoteStatementProps, 'headline'>): ElementModel<HTMLElement> | null => {\n if (!headline) return null;\n return new ElementBuilder(headline)\n .withClassName('statement-headline')\n .withStyles({\n element: {\n color: token.color.black,\n fontSize: token.font.size.base,\n textTransform: 'uppercase',\n marginBottom: token.spacing.sm,\n letterSpacing: '2px',\n fontWeight: token.font.weight.light,\n },\n })\n .build();\n};\n\nconst CreateStatementQuoteAttribution = ({\n attribution,\n attributionSubText,\n}: Pick<\n QuoteStatementProps,\n 'attribution' | 'attributionSubText'\n>): ElementModel<HTMLElement> | null => {\n if (!attribution && !attributionSubText) return null;\n\n const container = new ElementBuilder()\n .withClassName('statement-attribution-container')\n .withStyles({\n element: {\n margin: token.spacing.lg,\n },\n });\n\n if (attribution) {\n const attributionElement = new ElementBuilder(attribution)\n .withClassName('statement-attribution')\n .withStyles({\n element: {\n fontWeight: token.font.weight.bold,\n color: token.color.black,\n fontSize: token.font.size.xl,\n marginBottom: token.spacing.xs,\n },\n })\n .build();\n\n container.withChild(attributionElement);\n }\n\n if (attributionSubText) {\n const subTextElement = new ElementBuilder(attributionSubText)\n .withClassName('statement-attribution-subtext')\n .withStyles({\n element: {\n color: token.color.gray.dark,\n fontSize: token.font.size.sm,\n },\n })\n .build();\n container.withChild(subTextElement);\n }\n\n return container.build();\n};\n\nconst CreateQuoteTextElement = (\n props: Pick<\n QuoteTextProps,\n | 'isThemeDark'\n | 'isThemeMaryland'\n | 'isSizeLarge'\n | 'isTypeFeatured'\n | 'image'\n | 'quote'\n | 'attribution'\n | 'attributionSubText'\n | 'action'\n | 'includesAnimation'\n >,\n) => {\n const {\n image,\n isSizeLarge = false,\n isThemeDark,\n isThemeMaryland,\n isTypeFeatured = false,\n } = props;\n const shouldHaveWhiteText = isThemeDark || isThemeMaryland;\n const isSizeLargeAndNotFeatured = isSizeLarge && !isTypeFeatured;\n const hasImage = image != null;\n const isHasImageAndNotFeatured = hasImage && !isTypeFeatured;\n\n const children = createChildren({\n ...props,\n shouldHaveWhiteText,\n hasImage,\n });\n\n const wrapper = new ElementBuilder()\n .withClassName('quote-text-container-wrapper')\n .withChildren(...children)\n .build();\n\n return new ElementBuilder()\n .withClassName('quote-text-container')\n .withChild(wrapper)\n .withStyles({\n element: {\n width: '100%',\n\n [`@container (max-width: ${SMALL - 1}px)`]: {\n paddingLeft: token.spacing.md,\n\n ...(!hasImage && {\n paddingTop: token.spacing.lg,\n }),\n\n ...(isSizeLargeAndNotFeatured && {\n paddingTop: token.spacing['2xl'],\n }),\n },\n\n [`@container (min-width: ${SMALL}px)`]: {\n paddingLeft: token.spacing['4xl'],\n\n ...(isHasImageAndNotFeatured && { paddingLeft: '0' }),\n },\n },\n })\n .build();\n};\n\nexport const createCompositeQuoteText = CreateQuoteTextElement;\nexport const createStatementQuoteHeadline = CreateStatementQuoteHeadline;\nexport const createStatementQuoteAttribution = CreateStatementQuoteAttribution;\n"],"names":["elementQuote","elementAction"],"mappings":"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"}
@@ -5,7 +5,7 @@ export declare const createCompositeQuoteFeatured: (props: QuoteFeaturedProps) =
5
5
  };
6
6
  element: HTMLElement;
7
7
  styles: string;
8
- update?: (props: Partial<import('@universityofmaryland/web-builder-library').BuilderOptions>) => void;
8
+ update?: (props: Partial<import('../../../builder/dist/index.d.ts').BuilderOptions>) => void;
9
9
  destroy?: () => void;
10
10
  };
11
11
  //# sourceMappingURL=featured.d.ts.map
@@ -1,8 +1,3 @@
1
- import { QuoteBaseProps, QuoteVariantProps } from '../_types';
2
- import { ElementModel } from '../../../_types';
3
- interface QuoteAnimationProps extends QuoteVariantProps, Pick<QuoteBaseProps, 'quote' | 'includesAnimation' | 'image'> {
4
- quoteElement: ElementModel<HTMLElement>;
5
- }
1
+ import { QuoteAnimationProps } from '../_types';
6
2
  export declare const quoteAnimation: ({ image, includesAnimation, isTypeFeatured, quote, quoteElement, }: QuoteAnimationProps) => void;
7
- export {};
8
3
  //# sourceMappingURL=animation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../../source/composite/quote/helper/animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,UAAU,mBACR,SAAQ,iBAAiB,EACvB,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,mBAAmB,GAAG,OAAO,CAAC;IAC/D,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;CACzC;AAED,eAAO,MAAM,cAAc,GAAI,oEAM5B,mBAAmB,SAgHrB,CAAC"}
1
+ {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../../source/composite/quote/helper/animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAErD,eAAO,MAAM,cAAc,GAAI,oEAM5B,mBAAmB,SAgHrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"animation.js","sources":["../../../../source/composite/quote/helper/animation.ts"],"sourcesContent":["import { type QuoteBaseProps, type QuoteVariantProps } from '../_types';\nimport { type ElementModel } from '../../../_types';\n\ninterface QuoteAnimationProps\n extends QuoteVariantProps,\n Pick<QuoteBaseProps, 'quote' | 'includesAnimation' | 'image'> {\n quoteElement: ElementModel<HTMLElement>;\n}\n\nexport const quoteAnimation = ({\n image,\n includesAnimation,\n isTypeFeatured = false,\n quote,\n quoteElement,\n}: QuoteAnimationProps) => {\n if (!includesAnimation || !quote) return;\n\n const quoteTextElement = quoteElement.element.querySelector(\n '.quote-container-quote',\n ) as HTMLElement;\n const attributionElement = quoteElement.element.querySelector(\n '.quote-container-attribution',\n ) as HTMLElement;\n const attributionSubTextElement = quoteElement.element.querySelector(\n '.quote-container-text-attribution-sub-text',\n ) as HTMLElement;\n const actionsElement = quoteElement.element.querySelector(\n '.quote-container-actions',\n ) as HTMLElement;\n\n const animateAction = !isTypeFeatured || (isTypeFeatured && !image);\n\n const applyFinalState = () => {\n const wordsList = Array.from(\n quoteTextElement.querySelectorAll('.quote-text-split-word'),\n ) as HTMLElement[];\n\n wordsList.forEach((word) => {\n word.style.transition = 'none';\n word.style.opacity = '1';\n word.style.transform = 'translateY(0)';\n });\n\n if (attributionElement) {\n attributionElement.style.transition = 'none';\n attributionElement.style.opacity = '1';\n attributionElement.style.transform = 'translateY(0)';\n }\n\n if (attributionSubTextElement) {\n attributionSubTextElement.style.transition = 'none';\n attributionSubTextElement.style.opacity = '1';\n attributionSubTextElement.style.transform = 'translateY(0)';\n }\n\n if (actionsElement && animateAction) {\n actionsElement.style.transition = 'none';\n actionsElement.style.opacity = '1';\n actionsElement.style.transform = 'translateY(0)';\n }\n };\n\n const runAnimation = () => {\n const wordsList = Array.from(\n quoteTextElement.querySelectorAll('.quote-text-split-word'),\n ) as HTMLElement[];\n\n let quoteAnimationLength = 50;\n\n wordsList.forEach((word, i) => {\n setTimeout(() => {\n word.style.opacity = '1';\n word.style.transform = 'translateY(0)';\n }, i * 50);\n\n quoteAnimationLength += 50;\n });\n\n if (attributionElement) {\n setTimeout(() => {\n attributionElement.style.opacity = '1';\n attributionElement.style.transform = 'translateY(0)';\n }, quoteAnimationLength);\n }\n\n if (attributionSubTextElement) {\n setTimeout(() => {\n attributionSubTextElement.style.opacity = '1';\n attributionSubTextElement.style.transform = 'translateY(0)';\n }, quoteAnimationLength);\n }\n\n if (actionsElement && animateAction) {\n setTimeout(() => {\n actionsElement.style.opacity = '1';\n actionsElement.style.transform = 'translateY(0)';\n }, quoteAnimationLength);\n }\n };\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n runAnimation();\n observer.unobserve(entry.target);\n }\n });\n },\n {\n rootMargin: '0px 0px -120px 0px',\n threshold: 0,\n },\n );\n\n const rect = quoteTextElement.getBoundingClientRect();\n const windowHeight =\n window.innerHeight || document.documentElement.clientHeight;\n const triggerPoint = windowHeight - 120;\n const isAlreadyPast = rect.top < triggerPoint;\n\n if (isAlreadyPast) {\n applyFinalState();\n } else {\n observer.observe(quoteTextElement);\n }\n};\n"],"names":[],"mappings":"AASO,MAAM,iBAAiB,CAAC;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AACF,MAA2B;AACzB,MAAI,CAAC,qBAAqB,CAAC,MAAO;AAElC,QAAM,mBAAmB,aAAa,QAAQ;AAAA,IAC5C;AAAA,EAAA;AAEF,QAAM,qBAAqB,aAAa,QAAQ;AAAA,IAC9C;AAAA,EAAA;AAEF,QAAM,4BAA4B,aAAa,QAAQ;AAAA,IACrD;AAAA,EAAA;AAEF,QAAM,iBAAiB,aAAa,QAAQ;AAAA,IAC1C;AAAA,EAAA;AAGF,QAAM,gBAAgB,CAAC,kBAAmB,kBAAkB,CAAC;AAE7D,QAAM,kBAAkB,MAAM;AAC5B,UAAM,YAAY,MAAM;AAAA,MACtB,iBAAiB,iBAAiB,wBAAwB;AAAA,IAAA;AAG5D,cAAU,QAAQ,CAAC,SAAS;AAC1B,WAAK,MAAM,aAAa;AACxB,WAAK,MAAM,UAAU;AACrB,WAAK,MAAM,YAAY;AAAA,IACzB,CAAC;AAED,QAAI,oBAAoB;AACtB,yBAAmB,MAAM,aAAa;AACtC,yBAAmB,MAAM,UAAU;AACnC,yBAAmB,MAAM,YAAY;AAAA,IACvC;AAEA,QAAI,2BAA2B;AAC7B,gCAA0B,MAAM,aAAa;AAC7C,gCAA0B,MAAM,UAAU;AAC1C,gCAA0B,MAAM,YAAY;AAAA,IAC9C;AAEA,QAAI,kBAAkB,eAAe;AACnC,qBAAe,MAAM,aAAa;AAClC,qBAAe,MAAM,UAAU;AAC/B,qBAAe,MAAM,YAAY;AAAA,IACnC;AAAA,EACF;AAEA,QAAM,eAAe,MAAM;AACzB,UAAM,YAAY,MAAM;AAAA,MACtB,iBAAiB,iBAAiB,wBAAwB;AAAA,IAAA;AAG5D,QAAI,uBAAuB;AAE3B,cAAU,QAAQ,CAAC,MAAM,MAAM;AAC7B,iBAAW,MAAM;AACf,aAAK,MAAM,UAAU;AACrB,aAAK,MAAM,YAAY;AAAA,MACzB,GAAG,IAAI,EAAE;AAET,8BAAwB;AAAA,IAC1B,CAAC;AAED,QAAI,oBAAoB;AACtB,iBAAW,MAAM;AACf,2BAAmB,MAAM,UAAU;AACnC,2BAAmB,MAAM,YAAY;AAAA,MACvC,GAAG,oBAAoB;AAAA,IACzB;AAEA,QAAI,2BAA2B;AAC7B,iBAAW,MAAM;AACf,kCAA0B,MAAM,UAAU;AAC1C,kCAA0B,MAAM,YAAY;AAAA,MAC9C,GAAG,oBAAoB;AAAA,IACzB;AAEA,QAAI,kBAAkB,eAAe;AACnC,iBAAW,MAAM;AACf,uBAAe,MAAM,UAAU;AAC/B,uBAAe,MAAM,YAAY;AAAA,MACnC,GAAG,oBAAoB;AAAA,IACzB;AAAA,EACF;AAEA,QAAM,WAAW,IAAI;AAAA,IACnB,CAAC,YAAY;AACX,cAAQ,QAAQ,CAAC,UAAU;AACzB,YAAI,MAAM,gBAAgB;AACxB,uBAAA;AACA,mBAAS,UAAU,MAAM,MAAM;AAAA,QACjC;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA;AAAA,MACE,YAAY;AAAA,MACZ,WAAW;AAAA,IAAA;AAAA,EACb;AAGF,QAAM,OAAO,iBAAiB,sBAAA;AAC9B,QAAM,eACJ,OAAO,eAAe,SAAS,gBAAgB;AACjD,QAAM,eAAe,eAAe;AACpC,QAAM,gBAAgB,KAAK,MAAM;AAEjC,MAAI,eAAe;AACjB,oBAAA;AAAA,EACF,OAAO;AACL,aAAS,QAAQ,gBAAgB;AAAA,EACnC;AACF;"}
1
+ {"version":3,"file":"animation.js","sources":["../../../../source/composite/quote/helper/animation.ts"],"sourcesContent":["import { type QuoteAnimationProps } from '../_types';\n\nexport const quoteAnimation = ({\n image,\n includesAnimation,\n isTypeFeatured = false,\n quote,\n quoteElement,\n}: QuoteAnimationProps) => {\n if (!includesAnimation || !quote) return;\n\n const quoteTextElement = quoteElement.element.querySelector(\n '.quote-container-quote',\n ) as HTMLElement;\n const attributionElement = quoteElement.element.querySelector(\n '.quote-container-attribution',\n ) as HTMLElement;\n const attributionSubTextElement = quoteElement.element.querySelector(\n '.quote-container-text-attribution-sub-text',\n ) as HTMLElement;\n const actionsElement = quoteElement.element.querySelector(\n '.quote-container-actions',\n ) as HTMLElement;\n\n const animateAction = !isTypeFeatured || (isTypeFeatured && !image);\n\n const applyFinalState = () => {\n const wordsList = Array.from(\n quoteTextElement.querySelectorAll('.quote-text-split-word'),\n ) as HTMLElement[];\n\n wordsList.forEach((word) => {\n word.style.transition = 'none';\n word.style.opacity = '1';\n word.style.transform = 'translateY(0)';\n });\n\n if (attributionElement) {\n attributionElement.style.transition = 'none';\n attributionElement.style.opacity = '1';\n attributionElement.style.transform = 'translateY(0)';\n }\n\n if (attributionSubTextElement) {\n attributionSubTextElement.style.transition = 'none';\n attributionSubTextElement.style.opacity = '1';\n attributionSubTextElement.style.transform = 'translateY(0)';\n }\n\n if (actionsElement && animateAction) {\n actionsElement.style.transition = 'none';\n actionsElement.style.opacity = '1';\n actionsElement.style.transform = 'translateY(0)';\n }\n };\n\n const runAnimation = () => {\n const wordsList = Array.from(\n quoteTextElement.querySelectorAll('.quote-text-split-word'),\n ) as HTMLElement[];\n\n let quoteAnimationLength = 50;\n\n wordsList.forEach((word, i) => {\n setTimeout(() => {\n word.style.opacity = '1';\n word.style.transform = 'translateY(0)';\n }, i * 50);\n\n quoteAnimationLength += 50;\n });\n\n if (attributionElement) {\n setTimeout(() => {\n attributionElement.style.opacity = '1';\n attributionElement.style.transform = 'translateY(0)';\n }, quoteAnimationLength);\n }\n\n if (attributionSubTextElement) {\n setTimeout(() => {\n attributionSubTextElement.style.opacity = '1';\n attributionSubTextElement.style.transform = 'translateY(0)';\n }, quoteAnimationLength);\n }\n\n if (actionsElement && animateAction) {\n setTimeout(() => {\n actionsElement.style.opacity = '1';\n actionsElement.style.transform = 'translateY(0)';\n }, quoteAnimationLength);\n }\n };\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n runAnimation();\n observer.unobserve(entry.target);\n }\n });\n },\n {\n rootMargin: '0px 0px -120px 0px',\n threshold: 0,\n },\n );\n\n const rect = quoteTextElement.getBoundingClientRect();\n const windowHeight =\n window.innerHeight || document.documentElement.clientHeight;\n const triggerPoint = windowHeight - 120;\n const isAlreadyPast = rect.top < triggerPoint;\n\n if (isAlreadyPast) {\n applyFinalState();\n } else {\n observer.observe(quoteTextElement);\n }\n};\n"],"names":[],"mappings":"AAEO,MAAM,iBAAiB,CAAC;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AACF,MAA2B;AACzB,MAAI,CAAC,qBAAqB,CAAC,MAAO;AAElC,QAAM,mBAAmB,aAAa,QAAQ;AAAA,IAC5C;AAAA,EAAA;AAEF,QAAM,qBAAqB,aAAa,QAAQ;AAAA,IAC9C;AAAA,EAAA;AAEF,QAAM,4BAA4B,aAAa,QAAQ;AAAA,IACrD;AAAA,EAAA;AAEF,QAAM,iBAAiB,aAAa,QAAQ;AAAA,IAC1C;AAAA,EAAA;AAGF,QAAM,gBAAgB,CAAC,kBAAmB,kBAAkB,CAAC;AAE7D,QAAM,kBAAkB,MAAM;AAC5B,UAAM,YAAY,MAAM;AAAA,MACtB,iBAAiB,iBAAiB,wBAAwB;AAAA,IAAA;AAG5D,cAAU,QAAQ,CAAC,SAAS;AAC1B,WAAK,MAAM,aAAa;AACxB,WAAK,MAAM,UAAU;AACrB,WAAK,MAAM,YAAY;AAAA,IACzB,CAAC;AAED,QAAI,oBAAoB;AACtB,yBAAmB,MAAM,aAAa;AACtC,yBAAmB,MAAM,UAAU;AACnC,yBAAmB,MAAM,YAAY;AAAA,IACvC;AAEA,QAAI,2BAA2B;AAC7B,gCAA0B,MAAM,aAAa;AAC7C,gCAA0B,MAAM,UAAU;AAC1C,gCAA0B,MAAM,YAAY;AAAA,IAC9C;AAEA,QAAI,kBAAkB,eAAe;AACnC,qBAAe,MAAM,aAAa;AAClC,qBAAe,MAAM,UAAU;AAC/B,qBAAe,MAAM,YAAY;AAAA,IACnC;AAAA,EACF;AAEA,QAAM,eAAe,MAAM;AACzB,UAAM,YAAY,MAAM;AAAA,MACtB,iBAAiB,iBAAiB,wBAAwB;AAAA,IAAA;AAG5D,QAAI,uBAAuB;AAE3B,cAAU,QAAQ,CAAC,MAAM,MAAM;AAC7B,iBAAW,MAAM;AACf,aAAK,MAAM,UAAU;AACrB,aAAK,MAAM,YAAY;AAAA,MACzB,GAAG,IAAI,EAAE;AAET,8BAAwB;AAAA,IAC1B,CAAC;AAED,QAAI,oBAAoB;AACtB,iBAAW,MAAM;AACf,2BAAmB,MAAM,UAAU;AACnC,2BAAmB,MAAM,YAAY;AAAA,MACvC,GAAG,oBAAoB;AAAA,IACzB;AAEA,QAAI,2BAA2B;AAC7B,iBAAW,MAAM;AACf,kCAA0B,MAAM,UAAU;AAC1C,kCAA0B,MAAM,YAAY;AAAA,MAC9C,GAAG,oBAAoB;AAAA,IACzB;AAEA,QAAI,kBAAkB,eAAe;AACnC,iBAAW,MAAM;AACf,uBAAe,MAAM,UAAU;AAC/B,uBAAe,MAAM,YAAY;AAAA,MACnC,GAAG,oBAAoB;AAAA,IACzB;AAAA,EACF;AAEA,QAAM,WAAW,IAAI;AAAA,IACnB,CAAC,YAAY;AACX,cAAQ,QAAQ,CAAC,UAAU;AACzB,YAAI,MAAM,gBAAgB;AACxB,uBAAA;AACA,mBAAS,UAAU,MAAM,MAAM;AAAA,QACjC;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA;AAAA,MACE,YAAY;AAAA,MACZ,WAAW;AAAA,IAAA;AAAA,EACb;AAGF,QAAM,OAAO,iBAAiB,sBAAA;AAC9B,QAAM,eACJ,OAAO,eAAe,SAAS,gBAAgB;AACjD,QAAM,eAAe,eAAe;AACpC,QAAM,gBAAgB,KAAK,MAAM;AAEjC,MAAI,eAAe;AACjB,oBAAA;AAAA,EACF,OAAO;AACL,aAAS,QAAQ,gBAAgB;AAAA,EACnC;AACF;"}
@@ -1,4 +1,5 @@
1
1
  export * as elements from './elements';
2
2
  export { createCompositeQuoteFeatured as featured } from './featured';
3
3
  export { createCompositeQuoteInline as inline } from './inline';
4
+ export { createCompositeQuoteStatement as statement } from './statement';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/composite/quote/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,4BAA4B,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,0BAA0B,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/composite/quote/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,4BAA4B,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,0BAA0B,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,6BAA6B,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import * as index from "./elements/index.js";
2
2
  import { createCompositeQuoteFeatured } from "./featured.js";
3
3
  import { createCompositeQuoteInline } from "./inline.js";
4
+ import { createCompositeQuoteStatement } from "./statement.js";
4
5
  export {
5
6
  index as elements,
6
7
  createCompositeQuoteFeatured as featured,
7
- createCompositeQuoteInline as inline
8
+ createCompositeQuoteInline as inline,
9
+ createCompositeQuoteStatement as statement
8
10
  };
9
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -5,7 +5,7 @@ export declare const createCompositeQuoteInline: (props: QuoteInlineProps) => {
5
5
  };
6
6
  element: HTMLElement;
7
7
  styles: string;
8
- update?: (props: Partial<import('@universityofmaryland/web-builder-library').BuilderOptions>) => void;
8
+ update?: (props: Partial<import('../../../builder/dist/index.d.ts').BuilderOptions>) => void;
9
9
  destroy?: () => void;
10
10
  };
11
11
  //# sourceMappingURL=inline.d.ts.map
@@ -1,3 +1,3 @@
1
1
  import { QuoteStatementProps } from './_types';
2
- export declare const CreateQuoteStatementElement: (element: QuoteStatementProps) => import('@universityofmaryland/web-builder-library').ElementModel<HTMLElement>;
2
+ export declare const createCompositeQuoteStatement: (props: QuoteStatementProps) => import('../../../builder/dist/index.d.ts').ElementModel<HTMLElement>;
3
3
  //# sourceMappingURL=statement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"statement.d.ts","sourceRoot":"","sources":["../../../source/composite/quote/statement.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,eAAO,MAAM,2BAA2B,GAAI,SAAS,mBAAmB,kFAWvE,CAAC"}
1
+ {"version":3,"file":"statement.d.ts","sourceRoot":"","sources":["../../../source/composite/quote/statement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAyFpD,eAAO,MAAM,6BAA6B,UA1EI,mBAAmB,kFA0ES,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { createStatementQuoteImage } from "./elements/image.js";
2
+ import { createStatementQuote } from "./elements/quote.js";
3
+ import { createStatementQuoteIcon } from "./elements/icon.js";
4
+ import { ElementBuilder } from "@universityofmaryland/web-builder-library";
5
+ import * as token from "@universityofmaryland/web-token-library";
6
+ import { createStatementQuoteAction } from "./elements/action.js";
7
+ import { createStatementQuoteHeadline, createStatementQuoteAttribution } from "./elements/text.js";
8
+ import { createMediaQuery } from "@universityofmaryland/web-utilities-library";
9
+ const CreateCompositeQuoteStatement = (props) => {
10
+ const {
11
+ action,
12
+ attribution,
13
+ attributionSubText,
14
+ quote,
15
+ headline,
16
+ image,
17
+ isThemeGold
18
+ } = props;
19
+ const statementChildren = [];
20
+ if (image) {
21
+ const imageElement = createStatementQuoteImage({ image, isThemeGold });
22
+ statementChildren.push(imageElement);
23
+ }
24
+ const iconElement = createStatementQuoteIcon({ isThemeGold });
25
+ statementChildren.push(iconElement);
26
+ const headlineElement = createStatementQuoteHeadline({ headline });
27
+ if (headlineElement) {
28
+ statementChildren.push(headlineElement);
29
+ }
30
+ if (quote) {
31
+ const quoteElement = createStatementQuote({ quote });
32
+ statementChildren.push(quoteElement);
33
+ }
34
+ const attributionContainerElement = createStatementQuoteAttribution({
35
+ attribution,
36
+ attributionSubText
37
+ });
38
+ if (attributionContainerElement) {
39
+ statementChildren.push(attributionContainerElement);
40
+ }
41
+ const actionElement = createStatementQuoteAction({ action });
42
+ if (actionElement) {
43
+ statementChildren.push(actionElement);
44
+ }
45
+ return new ElementBuilder().withClassName("quote-statement").withStyles({
46
+ element: {
47
+ backgroundColor: token.color.white,
48
+ borderTop: `4px solid ${token.color.red}`,
49
+ position: "relative",
50
+ textAlign: "center",
51
+ boxShadow: "0 2px 4px rgba(0, 0, 0, 0.06), 0 8px 16px rgba(0, 0, 0, 0.08), 0 24px 40px rgba(0, 0, 0, 0.10)",
52
+ marginTop: `${token.spacing["2xl"]}`,
53
+ padding: `${token.spacing["6xl"]} ${token.spacing.lg} ${token.spacing.xl}`,
54
+ ...createMediaQuery(
55
+ "min-width",
56
+ token.media.breakpointValues.desktop.min,
57
+ {
58
+ padding: `${token.spacing["8xl"]} ${token.spacing["3xl"]} ${token.spacing["6xl"]}`
59
+ }
60
+ ),
61
+ ...isThemeGold && {
62
+ borderTop: `4px solid ${token.color.gold}`
63
+ }
64
+ }
65
+ }).withChildren(...statementChildren).build();
66
+ };
67
+ const createCompositeQuoteStatement = CreateCompositeQuoteStatement;
68
+ export {
69
+ createCompositeQuoteStatement
70
+ };
71
+ //# sourceMappingURL=statement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statement.js","sources":["../../../source/composite/quote/statement.ts"],"sourcesContent":["import { type QuoteStatementProps } from './_types';\nimport { type ElementModel } from '../../_types';\nimport { createStatementQuoteImage } from './elements/image';\nimport { createStatementQuote } from './elements/quote';\nimport { createStatementQuoteIcon } from './elements/icon';\nimport { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { createStatementQuoteAction } from './elements/action';\nimport {\n createStatementQuoteHeadline,\n createStatementQuoteAttribution,\n} from './elements/text';\nimport * as Style from '@universityofmaryland/web-styles-library';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library';\n\nconst CreateCompositeQuoteStatement = (props: QuoteStatementProps) => {\n const {\n action,\n attribution,\n attributionSubText,\n quote,\n headline,\n image,\n isThemeGold,\n } = props;\n\n const statementChildren: ElementModel<HTMLElement>[] = [];\n\n if (image) {\n const imageElement = createStatementQuoteImage({ image, isThemeGold });\n statementChildren.push(imageElement);\n }\n\n const iconElement = createStatementQuoteIcon({ isThemeGold });\n statementChildren.push(iconElement);\n\n const headlineElement = createStatementQuoteHeadline({ headline });\n if (headlineElement) {\n statementChildren.push(headlineElement);\n }\n\n if (quote) {\n const quoteElement = createStatementQuote({ quote });\n statementChildren.push(quoteElement);\n }\n\n const attributionContainerElement = createStatementQuoteAttribution({\n attribution,\n attributionSubText,\n });\n if (attributionContainerElement) {\n statementChildren.push(attributionContainerElement);\n }\n\n const actionElement = createStatementQuoteAction({ action });\n if (actionElement) {\n statementChildren.push(actionElement);\n }\n\n return new ElementBuilder()\n .withClassName('quote-statement')\n .withStyles({\n element: {\n backgroundColor: token.color.white,\n borderTop: `4px solid ${token.color.red}`,\n position: 'relative',\n textAlign: 'center',\n boxShadow:\n '0 2px 4px rgba(0, 0, 0, 0.06), 0 8px 16px rgba(0, 0, 0, 0.08), 0 24px 40px rgba(0, 0, 0, 0.10)',\n marginTop: `${token.spacing['2xl']}`,\n padding: `${token.spacing['6xl']} ${token.spacing.lg} ${token.spacing.xl}`,\n\n ...createMediaQuery(\n 'min-width',\n token.media.breakpointValues.desktop.min,\n {\n padding: `${token.spacing['8xl']} ${token.spacing['3xl']} ${token.spacing['6xl']}`,\n },\n ),\n\n ...(isThemeGold && {\n borderTop: `4px solid ${token.color.gold}`,\n }),\n },\n })\n .withChildren(...statementChildren)\n .build();\n};\n\nexport const createCompositeQuoteStatement = CreateCompositeQuoteStatement;\n"],"names":[],"mappings":";;;;;;;;AAeA,MAAM,gCAAgC,CAAC,UAA+B;AACpE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE;AAEJ,QAAM,oBAAiD,CAAA;AAEvD,MAAI,OAAO;AACT,UAAM,eAAe,0BAA0B,EAAE,OAAO,aAAa;AACrE,sBAAkB,KAAK,YAAY;AAAA,EACrC;AAEA,QAAM,cAAc,yBAAyB,EAAE,aAAa;AAC5D,oBAAkB,KAAK,WAAW;AAElC,QAAM,kBAAkB,6BAA6B,EAAE,UAAU;AACjE,MAAI,iBAAiB;AACnB,sBAAkB,KAAK,eAAe;AAAA,EACxC;AAEA,MAAI,OAAO;AACT,UAAM,eAAe,qBAAqB,EAAE,OAAO;AACnD,sBAAkB,KAAK,YAAY;AAAA,EACrC;AAEA,QAAM,8BAA8B,gCAAgC;AAAA,IAClE;AAAA,IACA;AAAA,EAAA,CACD;AACD,MAAI,6BAA6B;AAC/B,sBAAkB,KAAK,2BAA2B;AAAA,EACpD;AAEA,QAAM,gBAAgB,2BAA2B,EAAE,QAAQ;AAC3D,MAAI,eAAe;AACjB,sBAAkB,KAAK,aAAa;AAAA,EACtC;AAEA,SAAO,IAAI,eAAA,EACR,cAAc,iBAAiB,EAC/B,WAAW;AAAA,IACV,SAAS;AAAA,MACP,iBAAiB,MAAM,MAAM;AAAA,MAC7B,WAAW,aAAa,MAAM,MAAM,GAAG;AAAA,MACvC,UAAU;AAAA,MACV,WAAW;AAAA,MACX,WACE;AAAA,MACF,WAAW,GAAG,MAAM,QAAQ,KAAK,CAAC;AAAA,MAClC,SAAS,GAAG,MAAM,QAAQ,KAAK,CAAC,IAAI,MAAM,QAAQ,EAAE,IAAI,MAAM,QAAQ,EAAE;AAAA,MAExE,GAAG;AAAA,QACD;AAAA,QACA,MAAM,MAAM,iBAAiB,QAAQ;AAAA,QACrC;AAAA,UACE,SAAS,GAAG,MAAM,QAAQ,KAAK,CAAC,IAAI,MAAM,QAAQ,KAAK,CAAC,IAAI,MAAM,QAAQ,KAAK,CAAC;AAAA,QAAA;AAAA,MAClF;AAAA,MAGF,GAAI,eAAe;AAAA,QACjB,WAAW,aAAa,MAAM,MAAM,IAAI;AAAA,MAAA;AAAA,IAC1C;AAAA,EACF,CACD,EACA,aAAa,GAAG,iBAAiB,EACjC,MAAA;AACL;AAEO,MAAM,gCAAgC;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@universityofmaryland/web-elements-library",
3
- "version": "1.6.8",
3
+ "version": "1.6.10-beta.0",
4
4
  "description": "UMD Web Elements",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -37,22 +37,13 @@
37
37
  "access": "public",
38
38
  "registry": "https://registry.npmjs.org/"
39
39
  },
40
- "scripts": {
41
- "clean": "rm -rf dist build",
42
- "docs": "npx typedoc --options ./typedoc.json",
43
- "prebuild": "node ../../scripts/update-badges.js",
44
- "release": "npm run test && npm run build && npm publish --access public",
45
- "build": "vite build",
46
- "dev": "vite build --watch",
47
- "start": "npm run dev",
48
- "test": "jest",
49
- "test:watch": "jest --watch",
50
- "test:coverage": "jest --coverage",
51
- "test:snapshot": "jest --updateSnapshot"
52
- },
53
40
  "dependencies": {
54
41
  "@types/postcss-js": "^4.0.4",
55
- "@universityofmaryland/web-token-library": "^1.0.0"
42
+ "@universityofmaryland/web-builder-library": "^1.0.3-beta.0",
43
+ "@universityofmaryland/web-icons-library": "^1.0.4-beta.0",
44
+ "@universityofmaryland/web-token-library": "^1.0.1",
45
+ "@universityofmaryland/web-utilities-library": "^1.0.5-beta.0",
46
+ "@universityofmaryland/web-styles-library": "^1.8.6-beta.0"
56
47
  },
57
48
  "peerDependencies": {
58
49
  "@universityofmaryland/web-builder-library": "^1.0.0",
@@ -62,9 +53,22 @@
62
53
  },
63
54
  "devDependencies": {
64
55
  "@vitejs/plugin-legacy": "^7.2.1",
65
- "typescript": "^5.8.2",
56
+ "typescript": "~5.8.2",
66
57
  "vite": "^7.1.4",
67
58
  "vite-plugin-checker": "^0.10.3",
68
59
  "vite-plugin-dts": "^4.5.4"
60
+ },
61
+ "scripts": {
62
+ "clean": "rm -rf dist",
63
+ "docs": "npx typedoc --options ./typedoc.json",
64
+ "prebuild": "node ../../scripts/update-badges.js",
65
+ "release": "pnpm run test && pnpm run build && pnpm publish --access public",
66
+ "build": "vite build",
67
+ "dev": "vite build --watch",
68
+ "start": "pnpm run dev",
69
+ "test": "jest",
70
+ "test:watch": "jest --watch",
71
+ "test:coverage": "jest --coverage",
72
+ "test:snapshot": "jest --updateSnapshot"
69
73
  }
70
- }
74
+ }