@bloom-housing/ui-components 5.0.1-alpha.2 → 5.0.1-alpha.20

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 (44) hide show
  1. package/CHANGELOG.md +188 -0
  2. package/index.ts +3 -0
  3. package/package.json +4 -2
  4. package/src/actions/Button.scss +8 -0
  5. package/src/actions/Button.tsx +14 -12
  6. package/src/actions/ExpandableContent.tsx +1 -1
  7. package/src/actions/LinkButton.tsx +16 -1
  8. package/src/blocks/ImageCard.scss +2 -2
  9. package/src/blocks/InfoCard.scss +9 -0
  10. package/src/blocks/StandardCard.scss +1 -1
  11. package/src/forms/Field.tsx +1 -1
  12. package/src/forms/Textarea.tsx +2 -0
  13. package/src/global/blocks.scss +22 -0
  14. package/src/global/mixins.scss +3 -3
  15. package/src/global/tokens/borders.scss +2 -0
  16. package/src/global/tokens/fonts.scss +1 -0
  17. package/src/global/tokens/screens.scss +1 -0
  18. package/src/headers/PageHeader.scss +14 -1
  19. package/src/headers/PageHeader.tsx +4 -1
  20. package/src/helpers/MultiLineAddress.tsx +16 -12
  21. package/src/lists/PreferencesList.scss +13 -9
  22. package/src/locales/es.json +11 -1
  23. package/src/locales/general.json +12 -1
  24. package/src/locales/tl.json +2 -1
  25. package/src/locales/vi.json +11 -1
  26. package/src/locales/zh.json +11 -1
  27. package/src/navigation/SideNav.docs.mdx +34 -0
  28. package/src/navigation/SideNav.scss +58 -24
  29. package/src/navigation/SideNav.tsx +44 -9
  30. package/src/navigation/TabNav.scss +5 -2
  31. package/src/notifications/ApplicationStatus.tsx +8 -1
  32. package/src/notifications/SiteAlert.tsx +25 -1
  33. package/src/overlays/Modal.docs.mdx +27 -0
  34. package/src/overlays/Modal.scss +56 -30
  35. package/src/overlays/Modal.tsx +17 -16
  36. package/src/page_components/NavigationHeader.scss +3 -0
  37. package/src/page_components/NavigationHeader.tsx +95 -0
  38. package/src/page_components/listing/AdditionalFees.tsx +14 -10
  39. package/src/page_components/listing/listing_sidebar/Contact.tsx +2 -2
  40. package/src/page_components/listing/listing_sidebar/ExpandableSection.tsx +6 -2
  41. package/src/page_components/listing/listing_sidebar/GetApplication.tsx +8 -2
  42. package/src/page_components/listing/listing_sidebar/SidebarBlock.tsx +23 -0
  43. package/src/page_components/sign-in/FormSignInMFAType.tsx +2 -2
  44. package/tailwind.config.js +1 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,194 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.0.1-alpha.20](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.19...@bloom-housing/ui-components@5.0.1-alpha.20) (2022-07-20)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * render html address properly ([#2897](https://github.com/bloom-housing/bloom/issues/2897)) ([87a759a](https://github.com/bloom-housing/bloom/commit/87a759a68c35d1c47ec4fbbec6c947a63993d27c))
12
+
13
+
14
+
15
+
16
+
17
+ ## [5.0.1-alpha.19](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.18...@bloom-housing/ui-components@5.0.1-alpha.19) (2022-07-19)
18
+
19
+ **Note:** Version bump only for package @bloom-housing/ui-components
20
+
21
+
22
+
23
+
24
+
25
+ ## [5.0.1-alpha.18](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.17...@bloom-housing/ui-components@5.0.1-alpha.18) (2022-07-19)
26
+
27
+
28
+ ### Features
29
+
30
+ * visuals for add preference, preference option drawers ([#2877](https://github.com/bloom-housing/bloom/issues/2877)) ([8611034](https://github.com/bloom-housing/bloom/commit/8611034845b45ce4d4e4eb44e790ac2adec0ba94))
31
+
32
+
33
+
34
+
35
+
36
+ ## [5.0.1-alpha.17](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.16...@bloom-housing/ui-components@5.0.1-alpha.17) (2022-07-15)
37
+
38
+
39
+ ### Features
40
+
41
+ * creating users as admin ([#2856](https://github.com/bloom-housing/bloom/issues/2856)) ([dd946d1](https://github.com/bloom-housing/bloom/commit/dd946d1777b4678e89832da527768180f474d129))
42
+
43
+
44
+
45
+
46
+
47
+ ## [5.0.1-alpha.16](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.15...@bloom-housing/ui-components@5.0.1-alpha.16) (2022-07-13)
48
+
49
+
50
+ ### Bug Fixes
51
+
52
+ * add classname prop for custom styling onto application status component ([#2888](https://github.com/bloom-housing/bloom/issues/2888)) ([fedcaa4](https://github.com/bloom-housing/bloom/commit/fedcaa4e4bf537d0207f7d0ecfaf5078879e1fad))
53
+
54
+
55
+
56
+
57
+
58
+ ## [5.0.1-alpha.15](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.14...@bloom-housing/ui-components@5.0.1-alpha.15) (2022-07-12)
59
+
60
+
61
+ ### Features
62
+
63
+ * modal styling updates ([#2857](https://github.com/bloom-housing/bloom/issues/2857)) ([4faf6de](https://github.com/bloom-housing/bloom/commit/4faf6de448a7fff8d4fa1a7a1144674ace311732))
64
+
65
+
66
+
67
+
68
+
69
+ ## [5.0.1-alpha.14](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.13...@bloom-housing/ui-components@5.0.1-alpha.14) (2022-07-12)
70
+
71
+
72
+ ### Features
73
+
74
+ * **preferencelist:** vertically align content at $md bp ([8dc7867](https://github.com/bloom-housing/bloom/commit/8dc786768fe3e2c82e8e345e418148751971a1c2)), closes [#2827](https://github.com/bloom-housing/bloom/issues/2827)
75
+
76
+
77
+
78
+
79
+
80
+ ## [5.0.1-alpha.13](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.12...@bloom-housing/ui-components@5.0.1-alpha.13) (2022-07-12)
81
+
82
+ **Note:** Version bump only for package @bloom-housing/ui-components
83
+
84
+
85
+
86
+
87
+
88
+ ## [5.0.1-alpha.12](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.11...@bloom-housing/ui-components@5.0.1-alpha.12) (2022-07-11)
89
+
90
+
91
+ ### Bug Fixes
92
+
93
+ * resolve key warning in contact component ([fe1070a](https://github.com/bloom-housing/bloom/commit/fe1070acdbb7b927d9466f583d2f301127de114f))
94
+
95
+
96
+
97
+
98
+
99
+ ## [5.0.1-alpha.11](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.10...@bloom-housing/ui-components@5.0.1-alpha.11) (2022-07-11)
100
+
101
+
102
+ ### Bug Fixes
103
+
104
+ * ux updates and bug fixes for sidebar components ([#2859](https://github.com/bloom-housing/bloom/issues/2859)) ([1bd3b36](https://github.com/bloom-housing/bloom/commit/1bd3b36415ff55be88ea5ada6184de2c232f2da5))
105
+
106
+
107
+
108
+
109
+
110
+ ## [5.0.1-alpha.10](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.9...@bloom-housing/ui-components@5.0.1-alpha.10) (2022-07-08)
111
+
112
+ **Note:** Version bump only for package @bloom-housing/ui-components
113
+
114
+
115
+
116
+
117
+
118
+ ## [5.0.1-alpha.9](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.8...@bloom-housing/ui-components@5.0.1-alpha.9) (2022-07-07)
119
+
120
+
121
+ ### Features
122
+
123
+ * populate jurisdictional preferences on settings page ([#2828](https://github.com/bloom-housing/bloom/issues/2828)) ([2ea5646](https://github.com/bloom-housing/bloom/commit/2ea5646a49dc6782fe0e83e942e1917929fde153))
124
+
125
+
126
+
127
+
128
+
129
+ ## [5.0.1-alpha.8](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.7...@bloom-housing/ui-components@5.0.1-alpha.8) (2022-07-06)
130
+
131
+ **Note:** Version bump only for package @bloom-housing/ui-components
132
+
133
+
134
+
135
+
136
+
137
+ ## [5.0.1-alpha.7](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.6...@bloom-housing/ui-components@5.0.1-alpha.7) (2022-07-02)
138
+
139
+
140
+ ### Bug Fixes
141
+
142
+ * switch back to padding for image card leader ([#2851](https://github.com/bloom-housing/bloom/issues/2851)) ([c3fde4a](https://github.com/bloom-housing/bloom/commit/c3fde4adbff2bd116c4acaf39f609d3c0ed0638f))
143
+
144
+
145
+
146
+
147
+
148
+ ## [5.0.1-alpha.6](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.5...@bloom-housing/ui-components@5.0.1-alpha.6) (2022-06-29)
149
+
150
+
151
+ ### Bug Fixes
152
+
153
+ * hide apply section if there is no data ([#2846](https://github.com/bloom-housing/bloom/issues/2846)) ([5fcaf58](https://github.com/bloom-housing/bloom/commit/5fcaf58acc8cc083c738f53a23beba4e567b2994))
154
+
155
+
156
+
157
+
158
+
159
+ ## [5.0.1-alpha.5](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.4...@bloom-housing/ui-components@5.0.1-alpha.5) (2022-06-27)
160
+
161
+
162
+ ### Bug Fixes
163
+
164
+ * application due date sentence ([#2822](https://github.com/bloom-housing/bloom/issues/2822)) ([62a870e](https://github.com/bloom-housing/bloom/commit/62a870e3696849dc751e410282279e23071db544))
165
+
166
+
167
+
168
+
169
+
170
+ ## [5.0.1-alpha.4](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.3...@bloom-housing/ui-components@5.0.1-alpha.4) (2022-06-23)
171
+
172
+
173
+ ### Features
174
+
175
+ * **preferenceslist:** add storybook example without subtitle ([4a32106](https://github.com/bloom-housing/bloom/commit/4a32106d0f171822961e4dcee5ee9013ee23b329))
176
+ * **preferenceslist:** move ordinal at mobile bp; update text color for contrast ([b063f5d](https://github.com/bloom-housing/bloom/commit/b063f5dd0813778f1d77efa510ee3a2d788be717)), closes [#2827](https://github.com/bloom-housing/bloom/issues/2827)
177
+ * **preferenceslist:** move ordinal left; make other elements align horizontally ([7034cc7](https://github.com/bloom-housing/bloom/commit/7034cc76a04e8c395ae3a51b2f2c4e5cef944086)), closes [Issue#2827](https://github.com/Issue/issues/2827)
178
+
179
+
180
+
181
+
182
+
183
+ ## [5.0.1-alpha.3](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.2...@bloom-housing/ui-components@5.0.1-alpha.3) (2022-06-23)
184
+
185
+
186
+ ### Bug Fixes
187
+
188
+ * mfa verificication fields ([#2842](https://github.com/bloom-housing/bloom/issues/2842)) ([32a3df6](https://github.com/bloom-housing/bloom/commit/32a3df66a883dcffca8b304ba769f8a2d8c5c240))
189
+
190
+
191
+
192
+
193
+
6
194
  ## [5.0.1-alpha.2](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@5.0.1-alpha.1...@bloom-housing/ui-components@5.0.1-alpha.2) (2022-06-23)
7
195
 
8
196
  **Note:** Version bump only for package @bloom-housing/ui-components
package/index.ts CHANGED
@@ -82,6 +82,7 @@ export * from "./src/navigation/LanguageNav"
82
82
  export * from "./src/navigation/ProgressNav"
83
83
  export * from "./src/navigation/TabNav"
84
84
  export * from "./src/navigation/Tabs"
85
+ export * from "./src/navigation/Breadcrumbs"
85
86
 
86
87
  /* Notifications */
87
88
  export * from "./src/notifications/AlertBox"
@@ -115,6 +116,7 @@ export * from "./src/page_components/listing/listing_sidebar/NumberedHeader"
115
116
  export * from "./src/page_components/listing/listing_sidebar/OrDivider"
116
117
  export * from "./src/page_components/listing/listing_sidebar/ReferralApplication"
117
118
  export * from "./src/page_components/listing/listing_sidebar/ContactAddress"
119
+ export * from "./src/page_components/listing/listing_sidebar/SidebarBlock"
118
120
  export * from "./src/page_components/listing/listing_sidebar/SubmitApplication"
119
121
  export * from "./src/page_components/listing/listing_sidebar/QuantityRowSection"
120
122
  export * from "./src/page_components/listing/listing_sidebar/ExpandableSection"
@@ -128,6 +130,7 @@ export * from "./src/page_components/sign-in/FormSignInMFACode"
128
130
  export * from "./src/page_components/sign-in/FormSignInAddPhone"
129
131
  export * from "./src/page_components/sign-in/FormSignInErrorBox"
130
132
  export * from "./src/page_components/forgot-password/FormForgotPassword"
133
+ export * from "./src/page_components/NavigationHeader"
131
134
 
132
135
  /* Responsive Wrappers */
133
136
  export * from "./src/sections/ResponsiveWrappers"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bloom-housing/ui-components",
3
- "version": "5.0.1-alpha.2",
3
+ "version": "5.0.1-alpha.20",
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/bloom/tree/master/shared/ui-components",
@@ -40,6 +40,7 @@
40
40
  "@storybook/theming": "^6.3.8",
41
41
  "@testing-library/jest-dom": "^5.11.9",
42
42
  "@testing-library/react": "^11.2.5",
43
+ "@types/dompurify": "^2.3.3",
43
44
  "@types/jest": "^26.0.14",
44
45
  "@types/jwt-decode": "^2.2.1",
45
46
  "@types/react-map-gl": "^5.2.10",
@@ -89,6 +90,7 @@
89
90
  "axios": "0.21.2",
90
91
  "body-scroll-lock": "^3.1.5",
91
92
  "dayjs": "^1.10.7",
93
+ "dompurify": "^2.3.10",
92
94
  "jwt-decode": "^2.2.0",
93
95
  "markdown-to-jsx": "^6.11.4",
94
96
  "nanoid": "^3.1.12",
@@ -108,5 +110,5 @@
108
110
  "ts-jest": "^26.4.1",
109
111
  "typesafe-actions": "^5.1.0"
110
112
  },
111
- "gitHead": "f04434904aa50d2a8012266329dc53f08168defa"
113
+ "gitHead": "e9eb58b6a83245200b200af3d17fe6987096c256"
112
114
  }
@@ -29,6 +29,10 @@
29
29
  font-weight: var(--label-weight);
30
30
  line-height: var(--bloom-line-height-snug);
31
31
 
32
+ &.transition {
33
+ transition: all 200ms ease-out;
34
+ }
35
+
32
36
  &:focus {
33
37
  outline: none;
34
38
  box-shadow: 0 0 0 2px #fff, 0 0 3px 4px var(--bloom-color-accent-cool);
@@ -36,6 +40,9 @@
36
40
 
37
41
  &:hover {
38
42
  border-color: var(--bloom-color-primary-dark);
43
+ &.transition {
44
+ transition: all 200ms ease-in;
45
+ }
39
46
  }
40
47
 
41
48
  &:disabled {
@@ -52,6 +59,7 @@
52
59
  &:hover {
53
60
  background-color: var(--bloom-color-gray-700);
54
61
  color: var(--bloom-color-white);
62
+ border-color: var(--bloom-color-gray-700);
55
63
  }
56
64
  }
57
65
 
@@ -4,25 +4,26 @@ import { AppearanceProps, classNamesForAppearanceTypes } from "../global/Appeara
4
4
  import { Icon, IconSize, UniversalIconType } from "../icons/Icon"
5
5
 
6
6
  export interface ButtonProps extends AppearanceProps {
7
- id?: string
8
- type?: "button" | "submit" | "reset"
7
+ "data-test-id"?: string
8
+ ariaHidden?: boolean
9
+ ariaLabel?: string
9
10
  children: React.ReactNode
10
- onClick?: (e: React.MouseEvent) => void
11
+ className?: string
12
+ dataTestId?: string
13
+ disabled?: boolean
14
+ fullWidth?: boolean
11
15
  icon?: UniversalIconType
12
16
  iconPlacement?: "left" | "right"
13
17
  iconSize?: IconSize
18
+ id?: string
14
19
  // TODO: inlineIcon is deprecated
15
- inlineIcon?: "left" | "right"
16
20
  inline?: boolean
17
- unstyled?: boolean
18
- fullWidth?: boolean
19
- className?: string
20
- disabled?: boolean
21
+ inlineIcon?: "left" | "right"
21
22
  loading?: boolean
22
- ariaHidden?: boolean
23
- ariaLabel?: string
24
- dataTestId?: string
25
- "data-test-id"?: string
23
+ onClick?: (e: React.MouseEvent) => void
24
+ transition?: boolean
25
+ type?: "button" | "submit" | "reset"
26
+ unstyled?: boolean
26
27
  }
27
28
 
28
29
  export const buttonClassesForProps = (props: Omit<ButtonProps, "onClick">) => {
@@ -36,6 +37,7 @@ export const buttonClassesForProps = (props: Omit<ButtonProps, "onClick">) => {
36
37
  if (props.fullWidth) classNames.push("is-fullwidth")
37
38
  if (props.className) classNames.push(props.className)
38
39
  if (props.loading) classNames.push("is-loading")
40
+ if (props.transition) classNames.push("transition")
39
41
  return classNames
40
42
  }
41
43
 
@@ -15,6 +15,7 @@ const ExpandableContent = ({ children, strings, className }: ExpandableContentPr
15
15
 
16
16
  return (
17
17
  <div className={rootClassNames}>
18
+ {isExpanded && <div>{children}</div>}
18
19
  <button
19
20
  type="button"
20
21
  className="button is-unstyled m-0 no-underline has-toggle"
@@ -25,7 +26,6 @@ const ExpandableContent = ({ children, strings, className }: ExpandableContentPr
25
26
  >
26
27
  {isExpanded ? strings.readLess : strings.readMore}
27
28
  </button>
28
- {isExpanded && <div className="mt-6">{children}</div>}
29
29
  </div>
30
30
  )
31
31
  }
@@ -3,10 +3,14 @@ import "./Button.scss"
3
3
  import { buttonClassesForProps, buttonInner, ButtonProps } from "./Button"
4
4
  import { NavigationContext } from "../config/NavigationContext"
5
5
  import { isExternalLink } from "../helpers/links"
6
+ import { faUpRightFromSquare } from "@fortawesome/free-solid-svg-icons"
7
+ import { Icon } from "../icons/Icon"
6
8
 
7
9
  export interface LinkButtonProps extends Omit<ButtonProps, "onClick"> {
8
10
  href: string
9
11
  dataTestId?: string
12
+ newTab?: boolean
13
+ newTabIcon?: boolean
10
14
  }
11
15
 
12
16
  const LinkButton = (props: LinkButtonProps) => {
@@ -15,8 +19,19 @@ const LinkButton = (props: LinkButtonProps) => {
15
19
 
16
20
  if (isExternalLink(props.href)) {
17
21
  return (
18
- <a href={props.href} className={buttonClasses.join(" ")} data-test-id={props.dataTestId}>
22
+ <a
23
+ href={props.href}
24
+ className={buttonClasses.join(" ")}
25
+ data-test-id={props.dataTestId}
26
+ target={props.newTab ? "_blank" : "_self"}
27
+ >
19
28
  {buttonInner(props)}
29
+ {props.newTabIcon && (
30
+ <>
31
+ <Icon symbol={faUpRightFromSquare} size={"small"} className={"ml-2"} />
32
+ <span className="sr-only">{"Opens in a new tab"}</span>
33
+ </>
34
+ )}
20
35
  </a>
21
36
  )
22
37
  } else {
@@ -61,7 +61,7 @@
61
61
 
62
62
  @media (min-width: $screen-sm) {
63
63
  width: var(--bloom-width-2-3rd);
64
- margin-block-start: var(--bloom-s8);
65
- margin-inline-end: var(--bloom-s8);
64
+ padding-block-start: var(--bloom-s8);
65
+ padding-inline-end: var(--bloom-s8);
66
66
  }
67
67
  }
@@ -35,8 +35,17 @@
35
35
 
36
36
  .info-card__columns {
37
37
  @apply flex;
38
+ @apply flex-wrap;
38
39
  }
39
40
 
40
41
  .info-card__column {
41
42
  @apply flex-1;
42
43
  }
44
+ .info-card__column-2 {
45
+ flex: 1 1 100%;
46
+ @apply mt-4;
47
+ @apply mr-4;
48
+ @media (min-width: 440px) {
49
+ flex: 1 1 45%;
50
+ }
51
+ }
@@ -19,7 +19,7 @@
19
19
  .standard-card__title {
20
20
  color: var(--title-color);
21
21
  font-family: var(--font-family);
22
- padding: var(--bloom-s6) var(--bloom-s6) var(--bloom-s2) var(--bloom-s7);
22
+ padding: var(--bloom-s6) var(--bloom-s5) var(--bloom-s2) var(--bloom-s5);
23
23
  }
24
24
 
25
25
  .standard-card__blank {
@@ -74,7 +74,7 @@ const Field = (props: FieldProps) => {
74
74
  if (props.caps) labelClasses.push("field-label--caps")
75
75
  if (props.primary) labelClasses.push("text-primary")
76
76
  if (props.readerOnly) labelClasses.push("sr-only")
77
- if (props.type === "checkbox" || props.type === "radio") {
77
+ if (props.type === "radio") {
78
78
  labelClasses.push("font-semibold")
79
79
  }
80
80
 
@@ -23,6 +23,7 @@ export interface TextareaProps {
23
23
  wrap?: WrapOptions
24
24
  readerOnly?: boolean
25
25
  inputProps?: Record<string, unknown>
26
+ dataTestId?: string
26
27
  }
27
28
 
28
29
  export const Textarea = (props: TextareaProps) => {
@@ -56,6 +57,7 @@ export const Textarea = (props: TextareaProps) => {
56
57
  wrap={props.wrap ?? "soft"}
57
58
  title={props.label}
58
59
  {...inputProps}
60
+ data-test-id={props.dataTestId}
59
61
  />
60
62
  {props.note && <p className="field-note font-normal mb-2">{props.note}</p>}
61
63
  {props.errorMessage && <span className="textarea-error-message">{props.errorMessage}</span>}
@@ -133,3 +133,25 @@ $shadow-left-slight: -3px 0px 3px -1px rgba(0, 0, 0, 0.1);
133
133
  @apply block;
134
134
  }
135
135
  }
136
+
137
+ .sidebar-detail-layout {
138
+ display: flex;
139
+ flex-direction: column;
140
+ gap: var(--bloom-s6);
141
+ margin-inline: auto;
142
+ max-width: var(--bloom-screen-2xl);
143
+
144
+ @media (min-width: 1000px) {
145
+ flex-direction: row;
146
+ }
147
+
148
+ & > div {
149
+ flex-grow: 1;
150
+ }
151
+
152
+ & > aside {
153
+ @media (min-width: 1000px) {
154
+ width: var(--bloom-s72);
155
+ }
156
+ }
157
+ }
@@ -93,7 +93,7 @@
93
93
  --success-appearance-hover-background-color,
94
94
  var(--bloom-color-success-dark)
95
95
  );
96
- border-color: var(--success-appearance-hover-border-color, var(--bloom-color-success));
96
+ border-color: var(--success-appearance-hover-border-color, var(--bloom-color-success-dark));
97
97
  color: var(--success-appearance-hover-label-color, var(--bloom-color-white));
98
98
  }
99
99
  }
@@ -129,7 +129,7 @@
129
129
  }
130
130
 
131
131
  &.is-borderless {
132
- color: var(--bloom-color-primary-darker);
132
+ color: var(--bloom-color-primary);
133
133
  border-color: transparent;
134
134
  background: transparent;
135
135
 
@@ -152,7 +152,7 @@
152
152
  --outlined-appearance-hover-background-color,
153
153
  var(--bloom-color-primary-dark)
154
154
  );
155
- border-color: var(--outlined-appearance-hover-border-color, var(--bloom-color-primary));
155
+ border-color: var(--outlined-appearance-hover-border-color, var(--bloom-color-primary-dark));
156
156
  color: var(--outlined-appearance-hover-label-color, var(--bloom-color-white));
157
157
  }
158
158
 
@@ -12,4 +12,6 @@
12
12
  --bloom-border-2: 2px;
13
13
  --bloom-border-4: 4px;
14
14
  --bloom-border-8: 8px;
15
+
16
+ --bloom-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
15
17
  }
@@ -10,6 +10,7 @@
10
10
  --bloom-font-size-sm: 0.8125rem;
11
11
  --bloom-font-size-tiny: 0.875rem;
12
12
  --bloom-font-size-base: 1rem;
13
+ --bloom-font-size-base-alt: 1.125rem;
13
14
  --bloom-font-size-lg: 1.25rem;
14
15
  --bloom-font-size-xl: 1.375rem;
15
16
  --bloom-font-size-2xl: 1.5rem;
@@ -3,4 +3,5 @@
3
3
  --bloom-screen-md: #{$screen-md};
4
4
  --bloom-screen-lg: #{$screen-lg};
5
5
  --bloom-screen-xl: #{$screen-xl};
6
+ --bloom-screen-2xl: #{$screen-2xl};
6
7
  }
@@ -3,6 +3,7 @@
3
3
  --background-color: var(--bloom-color-primary-lighter);
4
4
  --border-color: var(--bloom-color-gray-450);
5
5
  --text-color: inherit;
6
+ --text-font-family: var(--bloom-font-serif);
6
7
  --inverse-background-color: var(--bloom-color-primary-darker);
7
8
  --inverse-border-color: var(--bloom-color-primary);
8
9
  --inverse-text-color: var(--bloom-color-white);
@@ -27,13 +28,25 @@
27
28
  }
28
29
 
29
30
  .page-header__group {
31
+ display: flex;
32
+ flex-direction: column;
33
+ align-items: center;
30
34
  padding: 0 var(--bloom-s5);
31
35
  margin: auto;
32
36
  max-width: var(--bloom-width-5xl);
37
+
38
+ @media (min-width: $screen-sm) {
39
+ align-items: flex-start;
40
+ }
41
+ }
42
+
43
+ .page-header__breadcrumbs {
44
+ margin-bottom: 10px;
33
45
  }
34
46
 
35
47
  .page-header__title {
36
48
  text-align: center;
49
+ font-family: var(--text-font-family);
37
50
 
38
51
  @media (min-width: $screen-md) {
39
52
  font-size: var(--title-font-size);
@@ -42,6 +55,6 @@
42
55
  }
43
56
 
44
57
  .page-header__lead {
45
- margin: auto;
58
+ font-family: var(--text-font-family);
46
59
  max-width: var(--bloom-width-5xl);
47
60
  }
@@ -8,6 +8,7 @@ export interface PageHeaderProps {
8
8
  subtitle?: string
9
9
  children?: React.ReactNode
10
10
  tabNav?: React.ReactNode
11
+ breadcrumbs?: React.ReactNode
11
12
  }
12
13
 
13
14
  const PageHeader = (props: PageHeaderProps) => {
@@ -18,8 +19,10 @@ const PageHeader = (props: PageHeaderProps) => {
18
19
  return (
19
20
  <header className={classNames.join(" ")}>
20
21
  <hgroup className="page-header__group">
22
+ {props?.breadcrumbs && <nav className="page-header__breadcrumbs">{props?.breadcrumbs}</nav>}
23
+
21
24
  {props.title && (
22
- <h1 data-test-id="page_header" className="page-header__title">
25
+ <h1 data-test-id="page-header" className="page-header__title">
23
26
  {props.title}
24
27
  </h1>
25
28
  )}
@@ -1,4 +1,5 @@
1
1
  import * as React from "react"
2
+ import DOMPurify from "dompurify"
2
3
 
3
4
  export interface Address {
4
5
  city?: string
@@ -19,18 +20,21 @@ const MultiLineAddress = ({ address }: MultiLineAddressProps) => {
19
20
  if (!address) return null
20
21
 
21
22
  return (
22
- <>
23
- {address.placeName && (
24
- <>
25
- {address.placeName}
26
- <br />
27
- </>
28
- )}
29
- {address.street} {address.street2}
30
- {(address.street || address.street2) && <br />}
31
- {address.city}
32
- {address.city && (address.state || address.zipCode) && ","} {address.state} {address.zipCode}
33
- </>
23
+ <span
24
+ dangerouslySetInnerHTML={{
25
+ __html: DOMPurify.sanitize(
26
+ `
27
+ ${address.placeName ? `${address.placeName} <br />` : ""}
28
+ ${address.street || ""} ${address.street2 || ""}
29
+ ${address.street || address.street2 ? `<br />` : ""}
30
+ ${address.city}
31
+ ${address.city && (address.state || address.zipCode) ? "," : ""} ${address.state} ${` `}
32
+ ${address.zipCode}
33
+ `,
34
+ { USE_PROFILES: { html: true } }
35
+ ),
36
+ }}
37
+ />
34
38
  )
35
39
  }
36
40
 
@@ -1,10 +1,10 @@
1
1
  .preferences-list__item {
2
2
  .info-card__title {
3
3
  @apply mb-0;
4
- @apply ml-4;
5
4
 
6
- @screen md {
7
- @apply ml-2;
5
+ @media (max-width: $screen-md) {
6
+ margin-left: 0px;
7
+ margin-top: var(--bloom-s3);
8
8
  }
9
9
  }
10
10
  }
@@ -37,7 +37,12 @@
37
37
  width: 2.5rem;
38
38
 
39
39
  @screen md {
40
- margin-left: -2.65rem;
40
+ margin-left: -3rem;
41
+ }
42
+
43
+ @media (max-width: $screen-md) {
44
+ margin-left: 0px;
45
+ float: none;
41
46
  }
42
47
 
43
48
  sup {
@@ -47,17 +52,16 @@
47
52
  }
48
53
 
49
54
  .preferences-list__subtitle {
50
- @apply text-gray-700;
55
+ @apply text-gray-750;
51
56
  @apply text-tiny;
52
- @apply ml-4;
53
57
 
54
- @screen md {
55
- @apply ml-2;
58
+ @media (max-width: $screen-md) {
59
+ margin-left: 0px;
56
60
  }
57
61
  }
58
62
 
59
63
  .preferences-list__description {
60
- @apply text-gray-700;
64
+ @apply text-gray-750;
61
65
  @apply text-sm;
62
66
  @apply mt-3;
63
67
  }