@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.
- package/CHANGELOG.md +188 -0
- package/index.ts +3 -0
- package/package.json +4 -2
- package/src/actions/Button.scss +8 -0
- package/src/actions/Button.tsx +14 -12
- package/src/actions/ExpandableContent.tsx +1 -1
- package/src/actions/LinkButton.tsx +16 -1
- package/src/blocks/ImageCard.scss +2 -2
- package/src/blocks/InfoCard.scss +9 -0
- package/src/blocks/StandardCard.scss +1 -1
- package/src/forms/Field.tsx +1 -1
- package/src/forms/Textarea.tsx +2 -0
- package/src/global/blocks.scss +22 -0
- package/src/global/mixins.scss +3 -3
- package/src/global/tokens/borders.scss +2 -0
- package/src/global/tokens/fonts.scss +1 -0
- package/src/global/tokens/screens.scss +1 -0
- package/src/headers/PageHeader.scss +14 -1
- package/src/headers/PageHeader.tsx +4 -1
- package/src/helpers/MultiLineAddress.tsx +16 -12
- package/src/lists/PreferencesList.scss +13 -9
- package/src/locales/es.json +11 -1
- package/src/locales/general.json +12 -1
- package/src/locales/tl.json +2 -1
- package/src/locales/vi.json +11 -1
- package/src/locales/zh.json +11 -1
- package/src/navigation/SideNav.docs.mdx +34 -0
- package/src/navigation/SideNav.scss +58 -24
- package/src/navigation/SideNav.tsx +44 -9
- package/src/navigation/TabNav.scss +5 -2
- package/src/notifications/ApplicationStatus.tsx +8 -1
- package/src/notifications/SiteAlert.tsx +25 -1
- package/src/overlays/Modal.docs.mdx +27 -0
- package/src/overlays/Modal.scss +56 -30
- package/src/overlays/Modal.tsx +17 -16
- package/src/page_components/NavigationHeader.scss +3 -0
- package/src/page_components/NavigationHeader.tsx +95 -0
- package/src/page_components/listing/AdditionalFees.tsx +14 -10
- package/src/page_components/listing/listing_sidebar/Contact.tsx +2 -2
- package/src/page_components/listing/listing_sidebar/ExpandableSection.tsx +6 -2
- package/src/page_components/listing/listing_sidebar/GetApplication.tsx +8 -2
- package/src/page_components/listing/listing_sidebar/SidebarBlock.tsx +23 -0
- package/src/page_components/sign-in/FormSignInMFAType.tsx +2 -2
- 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.
|
|
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": "
|
|
113
|
+
"gitHead": "e9eb58b6a83245200b200af3d17fe6987096c256"
|
|
112
114
|
}
|
package/src/actions/Button.scss
CHANGED
|
@@ -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
|
|
package/src/actions/Button.tsx
CHANGED
|
@@ -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
|
-
|
|
7
|
+
"data-test-id"?: string
|
|
8
|
+
ariaHidden?: boolean
|
|
9
|
+
ariaLabel?: string
|
|
9
10
|
children: React.ReactNode
|
|
10
|
-
|
|
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
|
-
|
|
18
|
-
fullWidth?: boolean
|
|
19
|
-
className?: string
|
|
20
|
-
disabled?: boolean
|
|
21
|
+
inlineIcon?: "left" | "right"
|
|
21
22
|
loading?: boolean
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
|
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 {
|
package/src/blocks/InfoCard.scss
CHANGED
|
@@ -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-
|
|
22
|
+
padding: var(--bloom-s6) var(--bloom-s5) var(--bloom-s2) var(--bloom-s5);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
.standard-card__blank {
|
package/src/forms/Field.tsx
CHANGED
|
@@ -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 === "
|
|
77
|
+
if (props.type === "radio") {
|
|
78
78
|
labelClasses.push("font-semibold")
|
|
79
79
|
}
|
|
80
80
|
|
package/src/forms/Textarea.tsx
CHANGED
|
@@ -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>}
|
package/src/global/blocks.scss
CHANGED
|
@@ -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
|
+
}
|
package/src/global/mixins.scss
CHANGED
|
@@ -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
|
|
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
|
|
|
@@ -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
|
-
|
|
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="
|
|
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
|
-
{
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
7
|
-
|
|
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: -
|
|
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-
|
|
55
|
+
@apply text-gray-750;
|
|
51
56
|
@apply text-tiny;
|
|
52
|
-
@apply ml-4;
|
|
53
57
|
|
|
54
|
-
@screen
|
|
55
|
-
|
|
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-
|
|
64
|
+
@apply text-gray-750;
|
|
61
65
|
@apply text-sm;
|
|
62
66
|
@apply mt-3;
|
|
63
67
|
}
|