@bloom-housing/ui-components 10.0.1 → 10.0.3

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.
@@ -29,6 +29,7 @@ export interface FieldProps {
29
29
  setValue?: UseFormMethods["setValue"];
30
30
  dataTestId?: string;
31
31
  hidden?: boolean;
32
+ labelClassName?: string;
32
33
  bordered?: boolean;
33
34
  }
34
35
  declare const Field: (props: FieldProps) => JSX.Element;
@@ -63,13 +63,25 @@ var Field = function (props) {
63
63
  labelClasses.push("text-primary");
64
64
  if (props.readerOnly)
65
65
  labelClasses.push("sr-only");
66
+ if (props.labelClassName)
67
+ labelClasses.push(props.labelClassName);
66
68
  if (props.type === "radio") {
67
69
  labelClasses.push("font-semibold");
68
70
  }
69
71
  if (props.error)
70
72
  labelClasses.push("text-alert");
71
73
  return (React.createElement("label", { className: labelClasses.join(" "), htmlFor: props.id || props.name }, props.label));
72
- }, [props.caps, props.primary, props.readerOnly, props.type, props.id, props.name, props.label]);
74
+ }, [
75
+ props.caps,
76
+ props.primary,
77
+ props.readerOnly,
78
+ props.labelClassName,
79
+ props.type,
80
+ props.id,
81
+ props.name,
82
+ props.label,
83
+ props.error,
84
+ ]);
73
85
  var idOrName = props.id || props.name;
74
86
  var note = React.createElement(React.Fragment, null);
75
87
  if (props.note) {
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../../src/forms/Field.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../../src/forms/Field.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAe,OAAO,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAoC5D,IAAM,KAAK,GAAG,UAAC,KAAiB;IAC9B,IAAM,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;IACzB,IAAI,KAAK,CAAC,KAAK,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KACtB;IAED,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;KAC9B;IAED,IAAM,cAAc,GAAG,EAAE,CAAA;IAEzB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;QAC7B,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;KAC/B;IAED,IAAI,KAAK,CAAC,gBAAgB,EAAE;QAC1B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;KAC5C;IAED,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;QACzE,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAErC,IAAM,WAAW,GAAG,UAAC,OAAe;QAAf,wBAAA,EAAA,eAAe;QAClC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE;YACrC,IAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACjD,IAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;YAE/C,IAAI,OAAO,IAAI,aAAa,EAAE;gBAC5B,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;aAC1E;iBAAM,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE;gBAC/B,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;aAC/B;iBAAM;gBACL,KAAK,CAAC,QAAQ,CACZ,KAAK,CAAC,IAAI,EACV,aAAa,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CACpE,CAAA;aACF;SACF;IACH,CAAC,CAAA;IAED,IAAM,aAAa,GAAG,UAAC,CAAgC;QACrD,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;SAC/F;IACH,CAAC,CAAA;IAED,IAAI,UAAU,gBAAQ,KAAK,CAAC,UAAU,CAAE,CAAA;IACxC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;QAC7B,UAAU,yBACL,UAAU,KACb,MAAM,EAAE,cAAM,OAAA,WAAW,EAAE,EAAb,CAAa,EAC3B,OAAO,EAAE,cAAM,OAAA,WAAW,CAAC,IAAI,CAAC,EAAjB,CAAiB,EAChC,QAAQ,EAAE,aAAa,GACxB,CAAA;KACF;IAED,IAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAA;IAC1E,IAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAE9D,IAAM,KAAK,GAAG,OAAO,CAAC;QACpB,IAAM,YAAY,GAAG,CAAC,OAAO,CAAC,CAAA;QAC9B,IAAI,KAAK,CAAC,IAAI;YAAE,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QACtD,IAAI,KAAK,CAAC,OAAO;YAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACpD,IAAI,KAAK,CAAC,UAAU;YAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,KAAK,CAAC,cAAc;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QACjE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;SACnC;QACD,IAAI,KAAK,CAAC,KAAK;YAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAEhD,OAAO,CACL,+BAAO,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,IACtE,KAAK,CAAC,KAAK,CACN,CACT,CAAA;IACH,CAAC,EAAE;QACD,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,UAAU;QAChB,KAAK,CAAC,cAAc;QACpB,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,EAAE;QACR,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,KAAK;QACX,KAAK,CAAC,KAAK;KACZ,CAAC,CAAA;IAEF,IAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,CAAA;IAEvC,IAAI,IAAI,GAAG,yCAAK,CAAA;IAChB,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,IAAI,GAAG,2BAAG,SAAS,EAAC,iBAAiB,IAAE,KAAK,CAAC,IAAI,CAAK,CAAA;KACvD;IAED,OAAO,CACL,6BAAK,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9B,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK;QAC5C,IAAI;QACL,6BAAK,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;YACrC,KAAK,CAAC,OAAO,IAAI,8BAAM,SAAS,EAAC,SAAS,IAAE,KAAK,CAAC,OAAO,CAAQ;YAClE,4DACoB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,UAAG,QAAQ,CAAE,kBACzD,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,EACpC,SAAS,EAAC,OAAO,EACjB,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,GAAG,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EACvD,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,kBACV,KAAK,CAAC,UAAU,IAC1B,UAAU,IACd,MAAM,EAAE,KAAK,CAAC,MAAM,IACpB;YACD,iBAAiB,IAAI,KAAK,CACvB;QACL,KAAK,CAAC,OAAO,IAAI,2BAAG,SAAS,EAAC,gBAAgB,IAAE,KAAK,CAAC,OAAO,CAAK;QAClE,KAAK,CAAC,YAAY,IAAI,CACrB,oBAAC,YAAY,IAAC,EAAE,EAAE,UAAG,QAAQ,WAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IACtD,KAAK,CAAC,YAAY,CACN,CAChB,CACG,CACP,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -3,7 +3,7 @@ import "./HeadingGroup.scss";
3
3
  export interface HeadingGroupProps {
4
4
  /** A string or element to display in an `h2` tag (overridable via `headingPriority`) */
5
5
  heading: React.ReactNode;
6
- /** A string or element to display in an `p` tag (using `role="doc-subtitle"`) */
6
+ /** A string or element to display in a `p` tag */
7
7
  subheading: React.ReactNode;
8
8
  /**
9
9
  * The heading level (1 through 6)
@@ -8,7 +8,7 @@ var HeadingGroup = function (props) {
8
8
  classNames.push(props.className);
9
9
  return (React.createElement("hgroup", { className: classNames.join(" "), role: "group" },
10
10
  React.createElement(Heading, { priority: (_a = props.headingPriority) !== null && _a !== void 0 ? _a : 2 }, props.heading),
11
- React.createElement("p", { role: "doc-subtitle" }, props.subheading)));
11
+ React.createElement("p", null, props.subheading)));
12
12
  };
13
13
  export { HeadingGroup as default, HeadingGroup };
14
14
  //# sourceMappingURL=HeadingGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeadingGroup.js","sourceRoot":"","sources":["../../../src/headers/HeadingGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,qBAAqB,CAAA;AAgB5B,IAAM,YAAY,GAAG,UAAC,KAAwB;;IAC5C,IAAM,UAAU,GAAG,CAAC,eAAe,CAAC,CAAA;IACpC,IAAI,KAAK,CAAC,SAAS;QAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAErD,OAAO,CACL,gCAAQ,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAC,OAAO;QACnD,oBAAC,OAAO,IAAC,QAAQ,EAAE,MAAA,KAAK,CAAC,eAAe,mCAAI,CAAC,IAAG,KAAK,CAAC,OAAO,CAAW;QACxE,2BAAG,IAAI,EAAC,cAAc,IAAE,KAAK,CAAC,UAAU,CAAK,CACtC,CACV,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"HeadingGroup.js","sourceRoot":"","sources":["../../../src/headers/HeadingGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,qBAAqB,CAAA;AAgB5B,IAAM,YAAY,GAAG,UAAC,KAAwB;;IAC5C,IAAM,UAAU,GAAG,CAAC,eAAe,CAAC,CAAA;IACpC,IAAI,KAAK,CAAC,SAAS;QAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAErD,OAAO,CACL,gCAAQ,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAC,OAAO;QACnD,oBAAC,OAAO,IAAC,QAAQ,EAAE,MAAA,KAAK,CAAC,eAAe,mCAAI,CAAC,IAAG,KAAK,CAAC,OAAO,CAAW;QACxE,+BAAI,KAAK,CAAC,UAAU,CAAK,CAClB,CACV,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -7,10 +7,14 @@ export interface HeroProps {
7
7
  buttonTitle?: string;
8
8
  centered?: boolean;
9
9
  children?: React.ReactNode;
10
+ className?: string;
10
11
  extraLargeTitle?: boolean;
12
+ customActions?: React.ReactNode;
13
+ innerClassName?: string;
11
14
  secondaryButtonLink?: string;
12
15
  secondaryButtonTitle?: string;
13
16
  title: React.ReactNode;
17
+ titleClassName?: string;
14
18
  strings?: {
15
19
  allApplicationsClosed?: string;
16
20
  };
@@ -2,12 +2,19 @@ import * as React from "react";
2
2
  import { LinkButton } from "../actions/LinkButton";
3
3
  import { t } from "../helpers/translator";
4
4
  import "./Hero.scss";
5
- var HeroButton = function (props) { return (React.createElement("span", { className: props.className + " hero__button" },
5
+ var HeroButton = function (props) { return (React.createElement("span", { className: "".concat(props.className || "", " hero__button\"") },
6
6
  React.createElement(LinkButton, { href: props.href }, props.title))); };
7
7
  var Hero = function (props) {
8
8
  var _a, _b;
9
9
  var subHeader, styles;
10
- var classNames = "";
10
+ var heroClasses = ["hero"];
11
+ if (props.centered)
12
+ heroClasses.push("centered");
13
+ if (props.className)
14
+ heroClasses.push(props.className);
15
+ var innerClasses = ["hero__inner"];
16
+ if (props.innerClassName)
17
+ innerClasses.push(props.innerClassName);
11
18
  if (props.allApplicationsClosed) {
12
19
  subHeader = (React.createElement("h2", { className: "hero__subtitle" }, (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.allApplicationsClosed) !== null && _b !== void 0 ? _b : t("welcome.allApplicationClosed")));
13
20
  }
@@ -17,15 +24,13 @@ var Hero = function (props) {
17
24
  if (props.backgroundImage) {
18
25
  styles = { backgroundImage: "url(".concat(props.backgroundImage, ")") };
19
26
  }
20
- if (props.centered) {
21
- classNames = "centered";
22
- }
23
- return (React.createElement("div", { className: "hero ".concat(classNames), style: styles, "data-test-id": "hero-component" },
24
- React.createElement("h1", { className: "hero__title ".concat(props.extraLargeTitle ? "lg:text-6.5xl" : "") }, props.title),
25
- subHeader,
26
- props.buttonTitle && props.buttonLink && (React.createElement(React.Fragment, null, props.secondaryButtonTitle && props.secondaryButtonLink ? (React.createElement("div", { className: "hero__buttons" },
27
- React.createElement(HeroButton, { className: "md:col-start-2 with_secondary", href: props.buttonLink, title: props.buttonTitle }),
28
- React.createElement(HeroButton, { className: "with_secondary", href: props.secondaryButtonLink, title: props.secondaryButtonTitle }))) : (React.createElement(HeroButton, { className: "px-5", href: props.buttonLink, title: props.buttonTitle }))))));
27
+ return (React.createElement("div", { className: heroClasses.join(" "), style: styles, "data-test-id": "hero-component" },
28
+ React.createElement("div", { className: innerClasses.join(" ") },
29
+ React.createElement("h1", { className: "hero__title \n ".concat(props.extraLargeTitle ? "lg:text-6.5xl" : "", " \n ").concat(props.titleClassName || "", "\n ") }, props.title),
30
+ subHeader,
31
+ props.customActions ? (props.customActions) : (React.createElement(React.Fragment, null, props.buttonTitle && props.buttonLink && (React.createElement(React.Fragment, null, props.secondaryButtonTitle && props.secondaryButtonLink ? (React.createElement("div", { className: "hero__buttons" },
32
+ React.createElement(HeroButton, { className: "md:col-start-2 with_secondary", href: props.buttonLink, title: props.buttonTitle }),
33
+ React.createElement(HeroButton, { className: "with_secondary", href: props.secondaryButtonLink, title: props.secondaryButtonTitle }))) : (React.createElement(HeroButton, { className: "px-5", href: props.buttonLink, title: props.buttonTitle })))))))));
29
34
  };
30
35
  export { Hero as default, Hero };
31
36
  //# sourceMappingURL=Hero.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Hero.js","sourceRoot":"","sources":["../../../src/headers/Hero.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,uBAAuB,CAAA;AACzC,OAAO,aAAa,CAAA;AAkBpB,IAAM,UAAU,GAAG,UAAC,KAA0D,IAAK,OAAA,CACjF,8BAAM,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,eAAe;IAChD,oBAAC,UAAU,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAG,KAAK,CAAC,KAAK,CAAc,CACnD,CACR,EAJkF,CAIlF,CAAA;AAED,IAAM,IAAI,GAAG,UAAC,KAAgB;;IAC5B,IAAI,SAAS,EAAE,MAAM,CAAA;IACrB,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,KAAK,CAAC,qBAAqB,EAAE;QAC/B,SAAS,GAAG,CACV,4BAAI,SAAS,EAAC,gBAAgB,IAC3B,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,qBAAqB,mCAAI,CAAC,CAAC,8BAA8B,CAAC,CACvE,CACN,CAAA;KACF;SAAM,IAAI,KAAK,CAAC,QAAQ,EAAE;QACzB,SAAS,GAAG,4BAAI,SAAS,EAAC,gBAAgB,IAAE,KAAK,CAAC,QAAQ,CAAM,CAAA;KACjE;IACD,IAAI,KAAK,CAAC,eAAe,EAAE;QACzB,MAAM,GAAG,EAAE,eAAe,EAAE,cAAO,KAAK,CAAC,eAAe,MAAG,EAAE,CAAA;KAC9D;IACD,IAAI,KAAK,CAAC,QAAQ,EAAE;QAClB,UAAU,GAAG,UAAU,CAAA;KACxB;IACD,OAAO,CACL,6BAAK,SAAS,EAAE,eAAQ,UAAU,CAAE,EAAE,KAAK,EAAE,MAAM,kBAAgB,gBAAgB;QACjF,4BAAI,SAAS,EAAE,sBAAe,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAE,IACzE,KAAK,CAAC,KAAK,CACT;QACJ,SAAS;QAET,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,IAAI,CACxC,0CACG,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CACzD,6BAAK,SAAS,EAAC,eAAe;YAC5B,oBAAC,UAAU,IACT,SAAS,EAAE,+BAA+B,EAC1C,IAAI,EAAE,KAAK,CAAC,UAAU,EACtB,KAAK,EAAE,KAAK,CAAC,WAAW,GACxB;YACF,oBAAC,UAAU,IACT,SAAS,EAAE,gBAAgB,EAC3B,IAAI,EAAE,KAAK,CAAC,mBAAmB,EAC/B,KAAK,EAAE,KAAK,CAAC,oBAAoB,GACjC,CACE,CACP,CAAC,CAAC,CAAC,CACF,oBAAC,UAAU,IAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,GAAI,CACpF,CACA,CACJ,CACG,CACP,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,EAAE,CAAA"}
1
+ {"version":3,"file":"Hero.js","sourceRoot":"","sources":["../../../src/headers/Hero.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
+ import { BADGES } from "../../.storybook/constants";
1
2
  declare const _default: {
2
3
  title: string;
4
+ parameters: {
5
+ badges: BADGES[];
6
+ };
3
7
  };
4
8
  export default _default;
5
9
  export declare const withListings: () => JSX.Element;
@@ -7,3 +11,4 @@ export declare const withNoListings: () => JSX.Element;
7
11
  export declare const withBackground: () => JSX.Element;
8
12
  export declare const withSecondaryButton: () => JSX.Element;
9
13
  export declare const withExtraLargeTitleAndSecondaryButton: () => JSX.Element;
14
+ export declare const withCustomActions: () => JSX.Element;
@@ -1,11 +1,16 @@
1
1
  import * as React from "react";
2
+ import { BADGES } from "../../.storybook/constants";
2
3
  import { Hero } from "./Hero";
3
4
  export default {
4
- title: "Headers/Hero",
5
+ title: "Headers/Hero 🚩",
6
+ parameters: {
7
+ badges: [BADGES.GEN2],
8
+ },
5
9
  };
6
10
  export var withListings = function () { return (React.createElement(Hero, { title: React.createElement(React.Fragment, null, "Say Hello to Your Hero"), buttonTitle: "I am a Button", buttonLink: "/listings" })); };
7
11
  export var withNoListings = function () { return (React.createElement(Hero, { title: React.createElement(React.Fragment, null, "Say Hello to Your Hero"), buttonTitle: "I am a Button", buttonLink: "/listings", allApplicationsClosed: true })); };
8
12
  export var withBackground = function () { return (React.createElement(Hero, { title: React.createElement(React.Fragment, null, "Say Hello to Your Hero"), buttonTitle: "Rental Listings", buttonLink: "/listings", backgroundImage: "/images/banner.png" })); };
9
13
  export var withSecondaryButton = function () { return (React.createElement(Hero, { title: React.createElement(React.Fragment, null, "Say Hello to Your Hero"), buttonTitle: "Rent", buttonLink: "/listings", secondaryButtonTitle: "Buy", secondaryButtonLink: "/listings/for-sale", backgroundImage: "/images/banner.png" })); };
10
14
  export var withExtraLargeTitleAndSecondaryButton = function () { return (React.createElement(Hero, { backgroundImage: "/images/banner.png", buttonLink: "/listings", buttonTitle: "Rent", extraLargeTitle: true, secondaryButtonLink: "/listings/for-sale", secondaryButtonTitle: "Buy", title: "Say Hello to Your Hero" })); };
15
+ export var withCustomActions = function () { return (React.createElement(Hero, { title: React.createElement(React.Fragment, null, "Say Hello to Your Hero"), buttonTitle: "Rental Listings", buttonLink: "/listings", backgroundImage: "/images/banner.png", customActions: React.createElement(React.Fragment, null, "Hero custom action content") })); };
11
16
  //# sourceMappingURL=Hero.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Hero.stories.js","sourceRoot":"","sources":["../../../src/headers/Hero.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,eAAe;IACb,KAAK,EAAE,cAAc;CACtB,CAAA;AAED,MAAM,CAAC,IAAM,YAAY,GAAG,cAAM,OAAA,CAChC,oBAAC,IAAI,IAAC,KAAK,EAAE,mEAA2B,EAAE,WAAW,EAAC,eAAe,EAAC,UAAU,EAAC,WAAW,GAAG,CAChG,EAFiC,CAEjC,CAAA;AAED,MAAM,CAAC,IAAM,cAAc,GAAG,cAAM,OAAA,CAClC,oBAAC,IAAI,IACH,KAAK,EAAE,mEAA2B,EAClC,WAAW,EAAC,eAAe,EAC3B,UAAU,EAAC,WAAW,EACtB,qBAAqB,EAAE,IAAI,GAC3B,CACH,EAPmC,CAOnC,CAAA;AAED,MAAM,CAAC,IAAM,cAAc,GAAG,cAAM,OAAA,CAClC,oBAAC,IAAI,IACH,KAAK,EAAE,mEAA2B,EAClC,WAAW,EAAC,iBAAiB,EAC7B,UAAU,EAAC,WAAW,EACtB,eAAe,EAAC,oBAAoB,GACpC,CACH,EAPmC,CAOnC,CAAA;AAED,MAAM,CAAC,IAAM,mBAAmB,GAAG,cAAM,OAAA,CACvC,oBAAC,IAAI,IACH,KAAK,EAAE,mEAA2B,EAClC,WAAW,EAAC,MAAM,EAClB,UAAU,EAAC,WAAW,EACtB,oBAAoB,EAAC,KAAK,EAC1B,mBAAmB,EAAC,oBAAoB,EACxC,eAAe,EAAC,oBAAoB,GACpC,CACH,EATwC,CASxC,CAAA;AAED,MAAM,CAAC,IAAM,qCAAqC,GAAG,cAAM,OAAA,CACzD,oBAAC,IAAI,IACH,eAAe,EAAC,oBAAoB,EACpC,UAAU,EAAC,WAAW,EACtB,WAAW,EAAC,MAAM,EAClB,eAAe,EAAE,IAAI,EACrB,mBAAmB,EAAC,oBAAoB,EACxC,oBAAoB,EAAC,KAAK,EAC1B,KAAK,EAAE,wBAAwB,GAC/B,CACH,EAV0D,CAU1D,CAAA"}
1
+ {"version":3,"file":"Hero.stories.js","sourceRoot":"","sources":["../../../src/headers/Hero.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,eAAe;IACb,KAAK,EAAE,iBAAiB;IACxB,UAAU,EAAE;QACV,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;KACtB;CACF,CAAA;AAED,MAAM,CAAC,IAAM,YAAY,GAAG,cAAM,OAAA,CAChC,oBAAC,IAAI,IAAC,KAAK,EAAE,mEAA2B,EAAE,WAAW,EAAC,eAAe,EAAC,UAAU,EAAC,WAAW,GAAG,CAChG,EAFiC,CAEjC,CAAA;AAED,MAAM,CAAC,IAAM,cAAc,GAAG,cAAM,OAAA,CAClC,oBAAC,IAAI,IACH,KAAK,EAAE,mEAA2B,EAClC,WAAW,EAAC,eAAe,EAC3B,UAAU,EAAC,WAAW,EACtB,qBAAqB,EAAE,IAAI,GAC3B,CACH,EAPmC,CAOnC,CAAA;AAED,MAAM,CAAC,IAAM,cAAc,GAAG,cAAM,OAAA,CAClC,oBAAC,IAAI,IACH,KAAK,EAAE,mEAA2B,EAClC,WAAW,EAAC,iBAAiB,EAC7B,UAAU,EAAC,WAAW,EACtB,eAAe,EAAC,oBAAoB,GACpC,CACH,EAPmC,CAOnC,CAAA;AAED,MAAM,CAAC,IAAM,mBAAmB,GAAG,cAAM,OAAA,CACvC,oBAAC,IAAI,IACH,KAAK,EAAE,mEAA2B,EAClC,WAAW,EAAC,MAAM,EAClB,UAAU,EAAC,WAAW,EACtB,oBAAoB,EAAC,KAAK,EAC1B,mBAAmB,EAAC,oBAAoB,EACxC,eAAe,EAAC,oBAAoB,GACpC,CACH,EATwC,CASxC,CAAA;AAED,MAAM,CAAC,IAAM,qCAAqC,GAAG,cAAM,OAAA,CACzD,oBAAC,IAAI,IACH,eAAe,EAAC,oBAAoB,EACpC,UAAU,EAAC,WAAW,EACtB,WAAW,EAAC,MAAM,EAClB,eAAe,EAAE,IAAI,EACrB,mBAAmB,EAAC,oBAAoB,EACxC,oBAAoB,EAAC,KAAK,EAC1B,KAAK,EAAE,wBAAwB,GAC/B,CACH,EAV0D,CAU1D,CAAA;AAED,MAAM,CAAC,IAAM,iBAAiB,GAAG,cAAM,OAAA,CACrC,oBAAC,IAAI,IACH,KAAK,EAAE,mEAA2B,EAClC,WAAW,EAAC,iBAAiB,EAC7B,UAAU,EAAC,WAAW,EACtB,eAAe,EAAC,oBAAoB,EACpC,aAAa,EAAE,uEAA+B,GAC9C,CACH,EARsC,CAQtC,CAAA"}
@@ -18,10 +18,10 @@ export var inversed = function () { return (React.createElement(PageHeader, { ti
18
18
  export var withContent = function () { return (React.createElement(PageHeader, { title: "Hello World", subtitle: "Here is a subtitle" }, "Here is some content")); };
19
19
  export var withBackgroundImage = function () { return (React.createElement(PageHeader, { title: "Hello World", inverse: true, subtitle: "Here is a page header with a background image", backgroundImage: "/images/banner.png", className: "bg-cover bg-center" })); };
20
20
  export var styleOverrides = function () {
21
- var cssVarsOverride = "\n .page-header-overrides .page-header {\n --background-color: darkgreen;\n --border-color: red;\n --text-color: yellow;\n --title-font-size: 6rem;\n }\n ";
21
+ var cssVarsOverride = "\n .page-header-overrides .page-header {\n --background-color: lightgray;\n --border-color: gray;\n --text-color: black;\n --title-font-size-desktop: 5rem;\n --title-font-size-mobile: 2rem;\n }\n ";
22
22
  return (React.createElement(React.Fragment, null,
23
23
  React.createElement("div", { className: "page-header-overrides" },
24
- React.createElement(PageHeader, { title: "Big Title", subtitle: "Here is a subtitle" }, "Here is some contenta"),
24
+ React.createElement(PageHeader, { title: "Hello World", subtitle: "Here is a subtitle" }, "Here is some content"),
25
25
  React.createElement("style", null, cssVarsOverride)),
26
26
  React.createElement("p", { className: "mt-12 font-semibold" }, "Customized using the following variable overrides:"),
27
27
  React.createElement("pre", null, cssVarsOverride.replace(".page-header-overrides ", ""))));
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeader.stories.js","sourceRoot":"","sources":["../../../src/headers/PageHeader.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,uBAAuB,MAAM,uBAAuB,CAAA;AAE3D,eAAe;IACb,KAAK,EAAE,wBAAwB;IAC/B,EAAE,EAAE,qBAAqB;IACzB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,uBAAuB;SAC9B;QACD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;KACtB;CACF,CAAA;AAED,MAAM,CAAC,IAAM,eAAe,GAAG,cAAM,OAAA,oBAAC,UAAU,IAAC,KAAK,EAAC,aAAa,GAAG,EAAlC,CAAkC,CAAA;AAEvE,MAAM,CAAC,IAAM,YAAY,GAAG,cAAM,OAAA,oBAAC,UAAU,IAAC,KAAK,EAAC,aAAa,EAAC,QAAQ,EAAC,oBAAoB,GAAG,EAAhE,CAAgE,CAAA;AAElG,MAAM,CAAC,IAAM,QAAQ,GAAG,cAAM,OAAA,CAC5B,oBAAC,UAAU,IAAC,KAAK,EAAC,qBAAqB,EAAC,QAAQ,EAAC,oBAAoB,EAAC,OAAO,SAAG,CACjF,EAF6B,CAE7B,CAAA;AAED,MAAM,CAAC,IAAM,WAAW,GAAG,cAAM,OAAA,CAC/B,oBAAC,UAAU,IAAC,KAAK,EAAC,aAAa,EAAC,QAAQ,EAAC,oBAAoB,2BAEhD,CACd,EAJgC,CAIhC,CAAA;AAED,MAAM,CAAC,IAAM,mBAAmB,GAAG,cAAM,OAAA,CACvC,oBAAC,UAAU,IAAC,KAAK,EAAC,aAAa,EAAC,OAAO,QAAC,QAAQ,EAAC,+CAA+C,EAAC,eAAe,EAAC,oBAAoB,EAAC,SAAS,EAAC,oBAAoB,GAAE,CACvK,EAFwC,CAExC,CAAA;AAED,MAAM,CAAC,IAAM,cAAc,GAAG;IAC5B,IAAM,eAAe,GAAG,uLAOvB,CAAA;IAED,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,uBAAuB;YACpC,oBAAC,UAAU,IAAC,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAC,oBAAoB,4BAE9C;YACb,mCAAQ,eAAe,CAAS,CAC5B;QAEN,2BAAG,SAAS,EAAC,qBAAqB,yDAAuD;QAEzF,iCAAM,eAAe,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAO,CAClE,CACJ,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"PageHeader.stories.js","sourceRoot":"","sources":["../../../src/headers/PageHeader.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,uBAAuB,MAAM,uBAAuB,CAAA;AAE3D,eAAe;IACb,KAAK,EAAE,wBAAwB;IAC/B,EAAE,EAAE,qBAAqB;IACzB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,uBAAuB;SAC9B;QACD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;KACtB;CACF,CAAA;AAED,MAAM,CAAC,IAAM,eAAe,GAAG,cAAM,OAAA,oBAAC,UAAU,IAAC,KAAK,EAAC,aAAa,GAAG,EAAlC,CAAkC,CAAA;AAEvE,MAAM,CAAC,IAAM,YAAY,GAAG,cAAM,OAAA,oBAAC,UAAU,IAAC,KAAK,EAAC,aAAa,EAAC,QAAQ,EAAC,oBAAoB,GAAG,EAAhE,CAAgE,CAAA;AAElG,MAAM,CAAC,IAAM,QAAQ,GAAG,cAAM,OAAA,CAC5B,oBAAC,UAAU,IAAC,KAAK,EAAC,qBAAqB,EAAC,QAAQ,EAAC,oBAAoB,EAAC,OAAO,SAAG,CACjF,EAF6B,CAE7B,CAAA;AAED,MAAM,CAAC,IAAM,WAAW,GAAG,cAAM,OAAA,CAC/B,oBAAC,UAAU,IAAC,KAAK,EAAC,aAAa,EAAC,QAAQ,EAAC,oBAAoB,2BAEhD,CACd,EAJgC,CAIhC,CAAA;AAED,MAAM,CAAC,IAAM,mBAAmB,GAAG,cAAM,OAAA,CACvC,oBAAC,UAAU,IACT,KAAK,EAAC,aAAa,EACnB,OAAO,QACP,QAAQ,EAAC,+CAA+C,EACxD,eAAe,EAAC,oBAAoB,EACpC,SAAS,EAAC,oBAAoB,GAC9B,CACH,EARwC,CAQxC,CAAA;AAED,MAAM,CAAC,IAAM,cAAc,GAAG;IAC5B,IAAM,eAAe,GAAG,sOAQvB,CAAA;IAED,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,uBAAuB;YACpC,oBAAC,UAAU,IAAC,KAAK,EAAC,aAAa,EAAC,QAAQ,EAAC,oBAAoB,2BAEhD;YACb,mCAAQ,eAAe,CAAS,CAC5B;QAEN,2BAAG,SAAS,EAAC,qBAAqB,yDAAuD;QAEzF,iCAAM,eAAe,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAO,CAClE,CACJ,CAAA;AACH,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bloom-housing/ui-components",
3
- "version": "10.0.1",
3
+ "version": "10.0.3",
4
4
  "author": "Sean Albert <sean.albert@exygy.com>",
5
5
  "description": "Shared user interface components for Bloom affordable housing system",
6
6
  "homepage": "https://github.com/bloom-housing/ui-components",
@@ -31,6 +31,7 @@ export interface FieldProps {
31
31
  setValue?: UseFormMethods["setValue"]
32
32
  dataTestId?: string
33
33
  hidden?: boolean
34
+ labelClassName?: string
34
35
  bordered?: boolean
35
36
  }
36
37
 
@@ -99,6 +100,7 @@ const Field = (props: FieldProps) => {
99
100
  if (props.caps) labelClasses.push("text__caps-spaced")
100
101
  if (props.primary) labelClasses.push("text-primary")
101
102
  if (props.readerOnly) labelClasses.push("sr-only")
103
+ if (props.labelClassName) labelClasses.push(props.labelClassName)
102
104
  if (props.type === "radio") {
103
105
  labelClasses.push("font-semibold")
104
106
  }
@@ -109,7 +111,17 @@ const Field = (props: FieldProps) => {
109
111
  {props.label}
110
112
  </label>
111
113
  )
112
- }, [props.caps, props.primary, props.readerOnly, props.type, props.id, props.name, props.label])
114
+ }, [
115
+ props.caps,
116
+ props.primary,
117
+ props.readerOnly,
118
+ props.labelClassName,
119
+ props.type,
120
+ props.id,
121
+ props.name,
122
+ props.label,
123
+ props.error,
124
+ ])
113
125
 
114
126
  const idOrName = props.id || props.name
115
127
 
@@ -5,7 +5,7 @@ import "./HeadingGroup.scss"
5
5
  export interface HeadingGroupProps {
6
6
  /** A string or element to display in an `h2` tag (overridable via `headingPriority`) */
7
7
  heading: React.ReactNode
8
- /** A string or element to display in an `p` tag (using `role="doc-subtitle"`) */
8
+ /** A string or element to display in a `p` tag */
9
9
  subheading: React.ReactNode
10
10
  /**
11
11
  * The heading level (1 through 6)
@@ -23,7 +23,7 @@ const HeadingGroup = (props: HeadingGroupProps) => {
23
23
  return (
24
24
  <hgroup className={classNames.join(" ")} role="group">
25
25
  <Heading priority={props.headingPriority ?? 2}>{props.heading}</Heading>
26
- <p role="doc-subtitle">{props.subheading}</p>
26
+ <p>{props.subheading}</p>
27
27
  </hgroup>
28
28
  )
29
29
  }
@@ -1,13 +1,35 @@
1
1
  .hero {
2
- @apply bg-primary-darker;
3
- @apply py-10;
4
- @apply px-5;
5
- @apply text-white;
6
- @apply text-center;
7
- @apply bg-cover;
8
-
9
- @screen md {
10
- @apply py-20;
2
+ --background-color: var(--bloom-color-primary-darker);
3
+ --border-radius: inherit;
4
+ --font-weight: inherit;
5
+ --inner-background-color: inherit;
6
+ --margin-desktop: inherit;
7
+ --margin-mobile: inherit;
8
+ --max-width: 41rem;
9
+ --subtitle-desktop-font-size: var(--bloom-font-size-xl);
10
+ --subtitle-font-weight: inherit;
11
+ --subtitle-margin: 0 auto var(--bloom-s8) auto;
12
+ --subtitle-mobile-font-size: var(--bloom-font-size-base);
13
+ --subtitle-text-color: var(--bloom-color-gray-100);
14
+ --subtitle-text-shadow: 1px 2px 5px rgba(0, 0, 0, 0.5);
15
+ --text-color: var(--bloom-color-white);
16
+ --title-desktop-font-size: var(--bloom-font-size-5xl);
17
+ --title-letter-spacing: -0.04em;
18
+ --title-line-height: inherit;
19
+ --title-margin-desktop: 0 0 var(--bloom-s8) 0;
20
+ --title-margin-mobile: 0 auto var(--bloom-s5) auto;
21
+ --title-mobile-font-size: var(--bloom-font-size-3xl);
22
+ --title-text-color: inherit;
23
+
24
+ background-color: var(--background-color);
25
+ background-size: cover;
26
+ color: var(--text-color);
27
+ margin: var(--margin-desktop);
28
+ padding: var(--bloom-s20) var(--bloom-s5);
29
+
30
+ @media (max-width: $screen-md) {
31
+ padding: var(--bloom-s10) var(--bloom-s5);
32
+ margin: var(--margin-mobile);
11
33
  }
12
34
 
13
35
  &.centered {
@@ -21,43 +43,59 @@
21
43
  }
22
44
 
23
45
  .hero__buttons {
24
- @apply grid;
25
- @apply md:grid-cols-4;
26
- @apply gap-5;
27
- @apply max-w-screen-md;
28
- @apply m-auto;
46
+ display: grid;
47
+ gap: var(--bloom-s5);
48
+ grid-template-columns: repeat(4, minmax(0, 1fr));
49
+ margin: auto;
50
+ width: 100%;
51
+ max-width: var(--bloom-screen-md);
52
+
53
+ @media (max-width: $screen-md) {
54
+ grid-template-columns: auto;
55
+ }
29
56
  }
57
+
30
58
  .hero__title {
31
- @apply text-3xl;
32
- @apply mb-5;
33
- @apply mx-auto;
34
- letter-spacing: -0.04em;
35
- max-width: 41rem;
36
-
37
- @screen md {
38
- @apply text-5xl;
39
- @apply mb-8;
59
+ color: var(--title-text-color);
60
+ font-size: var(--title-desktop-font-size);
61
+ letter-spacing: var(--title-letter-spacing);
62
+ line-height: var(--title-line-height);
63
+ margin: var(--title-margin-desktop);
64
+ max-width: var(--max-width);
65
+ text-align: center;
66
+
67
+ @media (max-width: $screen-md) {
68
+ font-size: var(--title-mobile-font-size);
69
+ margin: var(--title-margin-mobile);
40
70
  }
41
71
 
42
72
  em {
43
- @apply not-italic;
44
- @apply underline;
45
- -webkit-text-decoration-color: $tailwind-warn;
46
- -moz-text-decoration-color: $tailwind-warn;
47
- text-decoration-color: $tailwind-warn;
73
+ font-style: normal;
74
+ text-decoration: underline;
75
+ -webkit-text-decoration-color: var(--bloom-color-warn);
76
+ -moz-text-decoration-color: var(--bloom-color-warn);
77
+ text-decoration-color: var(--bloom-color-warn);
48
78
  }
49
79
  }
50
80
 
51
- h2.hero__subtitle {
52
- @apply font-sans;
53
- @apply text-base;
54
- @apply text-gray-100;
55
- @apply mb-8;
56
- @apply mx-auto;
57
- max-width: 41rem;
58
- text-shadow: 1px 2px 5px rgba(0, 0, 0, 0.5);
59
-
60
- @screen md {
61
- @apply text-xl;
81
+ .hero__subtitle {
82
+ text-align: center;
83
+ color: var(--subtitle-text-color);
84
+ font-family: var(--bloom-font-sans);
85
+ font-size: var(--subtitle-desktop-font-size);
86
+ font-weight: var(--subtitle-font-weight);
87
+ margin: var(--subtitle-margin);
88
+ max-width: var(--max-width);
89
+ text-shadow: var(--subtitle-text-shadow);
90
+
91
+ @media (max-width: $screen-md) {
92
+ font-size: var(--subtitle-mobile-font-size);
62
93
  }
63
94
  }
95
+
96
+ .hero__inner {
97
+ background-color: var(--inner-background-color);
98
+ display: flex;
99
+ flex-direction: column;
100
+ align-items: center;
101
+ }
@@ -1,9 +1,12 @@
1
1
  import * as React from "react"
2
-
2
+ import { BADGES } from "../../.storybook/constants"
3
3
  import { Hero } from "./Hero"
4
4
 
5
5
  export default {
6
- title: "Headers/Hero",
6
+ title: "Headers/Hero 🚩",
7
+ parameters: {
8
+ badges: [BADGES.GEN2],
9
+ },
7
10
  }
8
11
 
9
12
  export const withListings = () => (
@@ -50,3 +53,13 @@ export const withExtraLargeTitleAndSecondaryButton = () => (
50
53
  title={"Say Hello to Your Hero"}
51
54
  />
52
55
  )
56
+
57
+ export const withCustomActions = () => (
58
+ <Hero
59
+ title={<>Say Hello to Your Hero</>}
60
+ buttonTitle="Rental Listings"
61
+ buttonLink="/listings"
62
+ backgroundImage="/images/banner.png"
63
+ customActions={<>Hero custom action content</>}
64
+ />
65
+ )
@@ -10,24 +10,34 @@ export interface HeroProps {
10
10
  buttonTitle?: string
11
11
  centered?: boolean
12
12
  children?: React.ReactNode
13
+ className?: string
13
14
  extraLargeTitle?: boolean
15
+ customActions?: React.ReactNode
16
+ innerClassName?: string
14
17
  secondaryButtonLink?: string
15
18
  secondaryButtonTitle?: string
16
19
  title: React.ReactNode
20
+ titleClassName?: string
17
21
  strings?: {
18
22
  allApplicationsClosed?: string
19
23
  }
20
24
  }
21
25
 
22
26
  const HeroButton = (props: { title: string; href: string; className?: string }) => (
23
- <span className={props.className + " hero__button"}>
27
+ <span className={`${props.className || ""} hero__button"`}>
24
28
  <LinkButton href={props.href}>{props.title}</LinkButton>
25
29
  </span>
26
30
  )
27
31
 
28
32
  const Hero = (props: HeroProps) => {
29
33
  let subHeader, styles
30
- let classNames = ""
34
+ const heroClasses = ["hero"]
35
+ if (props.centered) heroClasses.push("centered")
36
+ if (props.className) heroClasses.push(props.className)
37
+
38
+ const innerClasses = ["hero__inner"]
39
+ if (props.innerClassName) innerClasses.push(props.innerClassName)
40
+
31
41
  if (props.allApplicationsClosed) {
32
42
  subHeader = (
33
43
  <h2 className="hero__subtitle">
@@ -40,36 +50,51 @@ const Hero = (props: HeroProps) => {
40
50
  if (props.backgroundImage) {
41
51
  styles = { backgroundImage: `url(${props.backgroundImage})` }
42
52
  }
43
- if (props.centered) {
44
- classNames = "centered"
45
- }
53
+
46
54
  return (
47
- <div className={`hero ${classNames}`} style={styles} data-test-id={"hero-component"}>
48
- <h1 className={`hero__title ${props.extraLargeTitle ? "lg:text-6.5xl" : ""}`}>
49
- {props.title}
50
- </h1>
51
- {subHeader}
55
+ <div className={heroClasses.join(" ")} style={styles} data-test-id="hero-component">
56
+ <div className={innerClasses.join(" ")}>
57
+ <h1
58
+ className={`hero__title
59
+ ${props.extraLargeTitle ? "lg:text-6.5xl" : ""}
60
+ ${props.titleClassName || ""}
61
+ `}
62
+ >
63
+ {props.title}
64
+ </h1>
65
+ {subHeader}
52
66
 
53
- {props.buttonTitle && props.buttonLink && (
54
- <>
55
- {props.secondaryButtonTitle && props.secondaryButtonLink ? (
56
- <div className="hero__buttons">
57
- <HeroButton
58
- className={"md:col-start-2 with_secondary"}
59
- href={props.buttonLink}
60
- title={props.buttonTitle}
61
- />
62
- <HeroButton
63
- className={"with_secondary"}
64
- href={props.secondaryButtonLink}
65
- title={props.secondaryButtonTitle}
66
- />
67
- </div>
68
- ) : (
69
- <HeroButton className={"px-5"} href={props.buttonLink} title={props.buttonTitle} />
70
- )}
71
- </>
72
- )}
67
+ {props.customActions ? (
68
+ props.customActions
69
+ ) : (
70
+ <>
71
+ {props.buttonTitle && props.buttonLink && (
72
+ <>
73
+ {props.secondaryButtonTitle && props.secondaryButtonLink ? (
74
+ <div className="hero__buttons">
75
+ <HeroButton
76
+ className={"md:col-start-2 with_secondary"}
77
+ href={props.buttonLink}
78
+ title={props.buttonTitle}
79
+ />
80
+ <HeroButton
81
+ className={"with_secondary"}
82
+ href={props.secondaryButtonLink}
83
+ title={props.secondaryButtonTitle}
84
+ />
85
+ </div>
86
+ ) : (
87
+ <HeroButton
88
+ className={`px-5`}
89
+ href={props.buttonLink}
90
+ title={props.buttonTitle}
91
+ />
92
+ )}
93
+ </>
94
+ )}
95
+ </>
96
+ )}
97
+ </div>
73
98
  </div>
74
99
  )
75
100
  }
@@ -7,16 +7,19 @@
7
7
  --inverse-background-color: var(--bloom-color-primary-darker);
8
8
  --inverse-border-color: var(--bloom-color-primary);
9
9
  --inverse-text-color: var(--bloom-color-white);
10
- --title-font-size: var(--bloom-font-size-4xl);
10
+ --title-font-size-desktop: var(--bloom-font-size-4xl);
11
+ --title-font-size-mobile: var(--bloom-font-size-2xl);
12
+ --padding-desktop: var(--bloom-s10) 0;
13
+ --padding-mobile: var(--bloom-s8) 0;
11
14
 
12
15
  /* Base Styles */
13
- padding: var(--bloom-s8) 0;
16
+ padding: var(--padding-mobile);
14
17
  background-color: var(--background-color);
15
18
  border-top: var(--bloom-border-1) solid var(--border-color);
16
19
  color: var(--text-color);
17
20
 
18
21
  @media (min-width: $screen-md) {
19
- padding: var(--bloom-s10) 0;
22
+ padding: var(--padding-desktop);
20
23
  }
21
24
 
22
25
  /* Variants */
@@ -46,17 +49,19 @@
46
49
  }
47
50
 
48
51
  .page-header__title {
52
+ font-size: var(--title-font-size-mobile);
49
53
  text-align: center;
50
54
  font-family: var(--text-font-family);
51
- word-break: break-all;
55
+ word-break: break-word;
52
56
 
53
57
  @media (min-width: $screen-md) {
54
- font-size: var(--title-font-size);
58
+ font-size: var(--title-font-size-desktop);
55
59
  text-align: left;
56
60
  }
57
61
  }
58
62
 
59
63
  .page-header__lead {
64
+ text-align: center;
60
65
  font-family: var(--text-font-family);
61
66
  max-width: var(--bloom-width-5xl);
62
67
  }
@@ -29,24 +29,31 @@ export const withContent = () => (
29
29
  )
30
30
 
31
31
  export const withBackgroundImage = () => (
32
- <PageHeader title="Hello World" inverse subtitle="Here is a page header with a background image" backgroundImage="/images/banner.png" className="bg-cover bg-center"/>
32
+ <PageHeader
33
+ title="Hello World"
34
+ inverse
35
+ subtitle="Here is a page header with a background image"
36
+ backgroundImage="/images/banner.png"
37
+ className="bg-cover bg-center"
38
+ />
33
39
  )
34
40
 
35
41
  export const styleOverrides = () => {
36
42
  const cssVarsOverride = `
37
43
  .page-header-overrides .page-header {
38
- --background-color: darkgreen;
39
- --border-color: red;
40
- --text-color: yellow;
41
- --title-font-size: 6rem;
44
+ --background-color: lightgray;
45
+ --border-color: gray;
46
+ --text-color: black;
47
+ --title-font-size-desktop: 5rem;
48
+ --title-font-size-mobile: 2rem;
42
49
  }
43
50
  `
44
51
 
45
52
  return (
46
53
  <>
47
54
  <div className="page-header-overrides">
48
- <PageHeader title="Big Title" subtitle="Here is a subtitle">
49
- Here is some contenta
55
+ <PageHeader title="Hello World" subtitle="Here is a subtitle">
56
+ Here is some content
50
57
  </PageHeader>
51
58
  <style>{cssVarsOverride}</style>
52
59
  </div>