@bloom-housing/ui-components 10.0.16 → 11.0.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.
@@ -1,13 +1,11 @@
1
1
  import React from "react";
2
2
  import { render, cleanup } from "@testing-library/react";
3
3
  import { FormCard } from "../../src/blocks/FormCard";
4
+ import Heading from "../../src/text/Heading";
4
5
  afterEach(cleanup);
5
6
  describe("<FormCard>", function () {
6
7
  it("can render with a header", function () {
7
- var getByText = render(React.createElement(FormCard, { header: {
8
- isVisible: true,
9
- title: "Header Text",
10
- } }, "Children go here")).getByText;
8
+ var getByText = render(React.createElement(FormCard, { header: React.createElement(Heading, null, "Header Text") }, "Children go here")).getByText;
11
9
  expect(getByText("Header Text")).not.toBeNull();
12
10
  });
13
11
  it("can apply a custom class", function () {
@@ -1 +1 @@
1
- {"version":3,"file":"FormCard.test.js","sourceRoot":"","sources":["../../../__tests__/blocks/FormCard.test.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAEpD,SAAS,CAAC,OAAO,CAAC,CAAA;AAElB,QAAQ,CAAC,YAAY,EAAE;IACrB,EAAE,CAAC,0BAA0B,EAAE;QACrB,IAAA,SAAS,GAAK,MAAM,CAC1B,oBAAC,QAAQ,IACP,MAAM,EAAE;gBACN,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,aAAa;aACrB,uBAGQ,CACZ,UATgB,CAShB;QACD,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IACjD,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,0BAA0B,EAAE;QACrB,IAAA,SAAS,GAAK,MAAM,CAAC,oBAAC,QAAQ,IAAC,SAAS,EAAE,cAAc,uBAA6B,CAAC,UAA7E,CAA6E;QAC9F,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"FormCard.test.js","sourceRoot":"","sources":["../../../__tests__/blocks/FormCard.test.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,OAAO,MAAM,wBAAwB,CAAA;AAE5C,SAAS,CAAC,OAAO,CAAC,CAAA;AAElB,QAAQ,CAAC,YAAY,EAAE;IACrB,EAAE,CAAC,0BAA0B,EAAE;QACrB,IAAA,SAAS,GAAK,MAAM,CAC1B,oBAAC,QAAQ,IAAC,MAAM,EAAE,oBAAC,OAAO,sBAAsB,uBAA6B,CAC9E,UAFgB,CAEhB;QACD,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IACjD,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,0BAA0B,EAAE;QACrB,IAAA,SAAS,GAAK,MAAM,CAAC,oBAAC,QAAQ,IAAC,SAAS,EAAE,cAAc,uBAA6B,CAAC,UAA7E,CAA6E;QAC9F,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,13 +1,9 @@
1
1
  import * as React from "react";
2
2
  import "./FormCard.scss";
3
3
  export interface FormCardProps {
4
- header?: FormCardHeader;
4
+ header?: React.ReactNode;
5
5
  children: React.ReactNode;
6
6
  className?: string;
7
7
  }
8
- export interface FormCardHeader {
9
- isVisible: boolean;
10
- title: string;
11
- }
12
8
  declare const FormCard: (props: FormCardProps) => JSX.Element;
13
9
  export { FormCard as default, FormCard };
@@ -1,12 +1,11 @@
1
1
  import * as React from "react";
2
2
  import "./FormCard.scss";
3
3
  var FormCard = function (props) {
4
- var _a;
5
- var classNames = props.className ? "".concat(props.className, " form-card") : "form-card";
6
- if ((_a = props.header) === null || _a === void 0 ? void 0 : _a.isVisible) {
4
+ var classNames = "form-card ".concat(props.className || "");
5
+ if (props.header) {
7
6
  return (React.createElement("article", { className: classNames },
8
7
  React.createElement("div", { className: "form-card__header" },
9
- React.createElement("header", { className: "form-card__header_group" }, props.header.title && (React.createElement("h1", { className: "form-card__header_title" }, props.header.title))),
8
+ React.createElement("header", { className: "form-card__header_group form-card__header_title" }, props.header),
10
9
  React.createElement("div", { className: "form-card__header_nav" }, props.children))));
11
10
  }
12
11
  return React.createElement("article", { className: classNames }, props.children);
@@ -1 +1 @@
1
- {"version":3,"file":"FormCard.js","sourceRoot":"","sources":["../../../src/blocks/FormCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,iBAAiB,CAAA;AAaxB,IAAM,QAAQ,GAAG,UAAC,KAAoB;;IACpC,IAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,UAAG,KAAK,CAAC,SAAS,eAAY,CAAC,CAAC,CAAC,WAAW,CAAA;IACjF,IAAI,MAAA,KAAK,CAAC,MAAM,0CAAE,SAAS,EAAE;QAC3B,OAAO,CACL,iCAAS,SAAS,EAAE,UAAU;YAC5B,6BAAK,SAAS,EAAC,mBAAmB;gBAChC,gCAAQ,SAAS,EAAC,yBAAyB,IACxC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CACrB,4BAAI,SAAS,EAAC,yBAAyB,IAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAM,CAClE,CACM;gBAET,6BAAK,SAAS,EAAC,uBAAuB,IAAE,KAAK,CAAC,QAAQ,CAAO,CACzD,CACE,CACX,CAAA;KACF;IAED,OAAO,iCAAS,SAAS,EAAE,UAAU,IAAG,KAAK,CAAC,QAAQ,CAAW,CAAA;AACnE,CAAC,CAAA;AAED,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"FormCard.js","sourceRoot":"","sources":["../../../src/blocks/FormCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,iBAAiB,CAAA;AAQxB,IAAM,QAAQ,GAAG,UAAC,KAAoB;IACpC,IAAM,UAAU,GAAG,oBAAa,KAAK,CAAC,SAAS,IAAI,EAAE,CAAE,CAAA;IACvD,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,OAAO,CACL,iCAAS,SAAS,EAAE,UAAU;YAC5B,6BAAK,SAAS,EAAC,mBAAmB;gBAChC,gCAAQ,SAAS,EAAC,iDAAiD,IAChE,KAAK,CAAC,MAAM,CACN;gBAET,6BAAK,SAAS,EAAC,uBAAuB,IAAE,KAAK,CAAC,QAAQ,CAAO,CACzD,CACE,CACX,CAAA;KACF;IAED,OAAO,iCAAS,SAAS,EAAE,UAAU,IAAG,KAAK,CAAC,QAAQ,CAAW,CAAA;AACnE,CAAC,CAAA;AAED,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ title: string;
3
+ };
4
+ export default _default;
5
+ export declare const defaultCard: () => JSX.Element;
6
+ export declare const noHeader: () => JSX.Element;
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import FormCard from "./FormCard";
3
+ import Heading from "../text/Heading";
4
+ export default {
5
+ title: "Blocks/Form Card",
6
+ };
7
+ export var defaultCard = function () { return (React.createElement(FormCard, { header: React.createElement(Heading, { priority: 1 }, "Header") }, "Children")); };
8
+ export var noHeader = function () { return React.createElement(FormCard, null, "Children"); };
9
+ //# sourceMappingURL=FormCard.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormCard.stories.js","sourceRoot":"","sources":["../../../src/blocks/FormCard.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,OAAO,MAAM,iBAAiB,CAAA;AACrC,eAAe;IACb,KAAK,EAAE,kBAAkB;CAC1B,CAAA;AAED,MAAM,CAAC,IAAM,WAAW,GAAG,cAAM,OAAA,CAC/B,oBAAC,QAAQ,IAAC,MAAM,EAAE,oBAAC,OAAO,IAAC,QAAQ,EAAE,CAAC,aAAkB,eAAqB,CAC9E,EAFgC,CAEhC,CAAA;AAED,MAAM,CAAC,IAAM,QAAQ,GAAG,cAAM,OAAA,oBAAC,QAAQ,mBAAoB,EAA7B,CAA6B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bloom-housing/ui-components",
3
- "version": "10.0.16",
3
+ "version": "11.0.0",
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",
@@ -1,3 +1,5 @@
1
+ @import "../global/mixins.scss";
2
+
1
3
  .form-card {
2
4
  @apply bg-white;
3
5
 
@@ -70,6 +72,7 @@
70
72
 
71
73
  @screen print {
72
74
  @apply py-2;
75
+ @apply px-0;
73
76
  }
74
77
  }
75
78
 
@@ -87,11 +90,16 @@
87
90
  }
88
91
 
89
92
  .form-card__group {
90
- @apply px-8;
93
+ @screen md {
94
+ @apply px-8;
95
+ }
96
+
97
+ @screen print {
98
+ @apply px-0;
99
+ }
91
100
  }
92
101
 
93
102
  .form-card__header {
94
- @apply text-white;
95
103
  @apply text-center;
96
104
 
97
105
  @screen md {
@@ -100,7 +108,10 @@
100
108
  }
101
109
 
102
110
  .form-card__header_group {
103
- @apply flex justify-center items-center;
111
+ @apply text-white;
112
+ @apply flex;
113
+ @apply justify-center;
114
+ @apply items-center;
104
115
  @apply bg-primary;
105
116
  @apply p-4;
106
117
  @apply h-16;
@@ -112,14 +123,14 @@
112
123
  @screen print {
113
124
  @apply py-0;
114
125
  }
115
- }
116
126
 
117
- .form-card__header_title {
118
- @apply text-xl;
119
- @apply font-alt-sans;
120
- @apply font-bold;
121
- @apply uppercase;
122
- @apply mb-0;
127
+ @include headings {
128
+ @apply text-xl;
129
+ @apply font-alt-sans;
130
+ @apply font-bold;
131
+ @apply uppercase;
132
+ @apply mb-0;
133
+ }
123
134
  }
124
135
 
125
136
  .form-card__header_nav {
@@ -0,0 +1,12 @@
1
+ import React from "react"
2
+ import FormCard from "./FormCard"
3
+ import Heading from "../text/Heading"
4
+ export default {
5
+ title: "Blocks/Form Card",
6
+ }
7
+
8
+ export const defaultCard = () => (
9
+ <FormCard header={<Heading priority={1}>Header</Heading>}>Children</FormCard>
10
+ )
11
+
12
+ export const noHeader = () => <FormCard>Children</FormCard>
@@ -2,26 +2,19 @@ import * as React from "react"
2
2
  import "./FormCard.scss"
3
3
 
4
4
  export interface FormCardProps {
5
- header?: FormCardHeader
5
+ header?: React.ReactNode
6
6
  children: React.ReactNode
7
7
  className?: string
8
8
  }
9
9
 
10
- export interface FormCardHeader {
11
- isVisible: boolean
12
- title: string
13
- }
14
-
15
10
  const FormCard = (props: FormCardProps) => {
16
- const classNames = props.className ? `${props.className} form-card` : "form-card"
17
- if (props.header?.isVisible) {
11
+ const classNames = `form-card ${props.className || ""}`
12
+ if (props.header) {
18
13
  return (
19
14
  <article className={classNames}>
20
15
  <div className="form-card__header">
21
- <header className="form-card__header_group">
22
- {props.header.title && (
23
- <h1 className="form-card__header_title">{props.header.title}</h1>
24
- )}
16
+ <header className="form-card__header_group form-card__header_title">
17
+ {props.header}
25
18
  </header>
26
19
 
27
20
  <div className="form-card__header_nav">{props.children}</div>
@@ -199,3 +199,14 @@
199
199
  overflow: hidden;
200
200
  text-overflow: ellipsis;
201
201
  }
202
+
203
+ @mixin headings {
204
+ h1,
205
+ h2,
206
+ h3,
207
+ h4,
208
+ h5,
209
+ h6 {
210
+ @content;
211
+ }
212
+ }