@bloom-housing/ui-components 8.3.0-alpha.1 → 9.0.0-alpha.1

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 (96) hide show
  1. package/dist/__tests__/actions/ExpandableContent.test.js +1 -1
  2. package/dist/__tests__/actions/ExpandableContent.test.js.map +1 -1
  3. package/dist/__tests__/page_components/ContentAccordion.test.js +2 -2
  4. package/dist/__tests__/page_components/ContentAccordion.test.js.map +1 -1
  5. package/dist/src/actions/Button.d.ts +1 -1
  6. package/dist/src/actions/Button.js +1 -1
  7. package/dist/src/actions/Button.js.map +1 -1
  8. package/dist/src/actions/LinkButton.js +2 -2
  9. package/dist/src/actions/LinkButton.js.map +1 -1
  10. package/dist/src/blocks/DashBlock.js +1 -1
  11. package/dist/src/blocks/DashBlock.js.map +1 -1
  12. package/dist/src/blocks/ImageCard.js +1 -1
  13. package/dist/src/blocks/ImageCard.js.map +1 -1
  14. package/dist/src/blocks/ViewItem.js +2 -2
  15. package/dist/src/blocks/ViewItem.js.map +1 -1
  16. package/dist/src/forms/Dropzone.js +1 -1
  17. package/dist/src/forms/Dropzone.js.map +1 -1
  18. package/dist/src/forms/Field.js +1 -1
  19. package/dist/src/forms/Field.js.map +1 -1
  20. package/dist/src/forms/FieldGroup.js +8 -8
  21. package/dist/src/forms/FieldGroup.js.map +1 -1
  22. package/dist/src/forms/HouseholdMemberForm.js +1 -1
  23. package/dist/src/forms/HouseholdMemberForm.js.map +1 -1
  24. package/dist/src/forms/MultiSelectField.js +1 -1
  25. package/dist/src/forms/MultiSelectField.js.map +1 -1
  26. package/dist/src/forms/PhoneField.js +3 -3
  27. package/dist/src/forms/PhoneField.js.map +1 -1
  28. package/dist/src/forms/PhoneMask.js +1 -1
  29. package/dist/src/forms/PhoneMask.js.map +1 -1
  30. package/dist/src/forms/Select.js +2 -2
  31. package/dist/src/forms/Select.js.map +1 -1
  32. package/dist/src/forms/Textarea.js +1 -1
  33. package/dist/src/forms/Textarea.js.map +1 -1
  34. package/dist/src/headers/Hero.js +2 -2
  35. package/dist/src/headers/Hero.js.map +1 -1
  36. package/dist/src/headers/PageHeader.js +1 -1
  37. package/dist/src/headers/PageHeader.js.map +1 -1
  38. package/dist/src/headers/SiteHeader.js +3 -3
  39. package/dist/src/headers/SiteHeader.js.map +1 -1
  40. package/dist/src/icons/Icon.js +2 -2
  41. package/dist/src/icons/Icon.js.map +1 -1
  42. package/dist/src/notifications/AlertBox.js +1 -1
  43. package/dist/src/notifications/AlertBox.js.map +1 -1
  44. package/dist/src/notifications/ErrorMessage.js +1 -1
  45. package/dist/src/notifications/ErrorMessage.js.map +1 -1
  46. package/dist/src/overlays/LoadingOverlay.js +1 -1
  47. package/dist/src/overlays/LoadingOverlay.js.map +1 -1
  48. package/dist/src/page_components/listing/ContentAccordion.js +1 -1
  49. package/dist/src/page_components/listing/ContentAccordion.js.map +1 -1
  50. package/dist/src/page_components/listing/ListingCard.js +1 -1
  51. package/dist/src/page_components/listing/ListingCard.js.map +1 -1
  52. package/dist/src/page_components/listing/listing_sidebar/GetApplication.js +2 -2
  53. package/dist/src/page_components/listing/listing_sidebar/GetApplication.js.map +1 -1
  54. package/dist/src/page_components/sign-in/FormSignIn.js +1 -1
  55. package/dist/src/page_components/sign-in/FormSignIn.js.map +1 -1
  56. package/dist/src/page_components/sign-in/FormSignInAddPhone.js +1 -1
  57. package/dist/src/page_components/sign-in/FormSignInAddPhone.js.map +1 -1
  58. package/dist/src/page_components/sign-in/FormSignInMFACode.js +1 -1
  59. package/dist/src/page_components/sign-in/FormSignInMFACode.js.map +1 -1
  60. package/dist/src/page_components/sign-in/FormSignInMFAType.js +2 -2
  61. package/dist/src/page_components/sign-in/FormSignInMFAType.js.map +1 -1
  62. package/dist/src/page_components/sign-in/FormTerms.js +1 -1
  63. package/dist/src/page_components/sign-in/FormTerms.js.map +1 -1
  64. package/dist/src/tables/AgPagination.js +4 -4
  65. package/dist/src/tables/AgPagination.js.map +1 -1
  66. package/package.json +3 -3
  67. package/src/actions/Button.tsx +2 -2
  68. package/src/actions/LinkButton.tsx +2 -2
  69. package/src/blocks/DashBlock.tsx +1 -1
  70. package/src/blocks/ImageCard.tsx +1 -1
  71. package/src/blocks/ViewItem.tsx +2 -2
  72. package/src/forms/Dropzone.tsx +1 -1
  73. package/src/forms/Field.tsx +1 -1
  74. package/src/forms/FieldGroup.tsx +10 -10
  75. package/src/forms/HouseholdMemberForm.tsx +1 -1
  76. package/src/forms/MultiSelectField.tsx +1 -1
  77. package/src/forms/PhoneField.tsx +7 -3
  78. package/src/forms/PhoneMask.tsx +1 -0
  79. package/src/forms/Select.tsx +3 -3
  80. package/src/forms/Textarea.tsx +1 -1
  81. package/src/headers/Hero.tsx +2 -2
  82. package/src/headers/PageHeader.tsx +1 -1
  83. package/src/headers/SiteHeader.tsx +3 -3
  84. package/src/icons/Icon.tsx +2 -2
  85. package/src/notifications/AlertBox.tsx +1 -1
  86. package/src/notifications/ErrorMessage.tsx +1 -1
  87. package/src/overlays/LoadingOverlay.tsx +1 -1
  88. package/src/page_components/listing/ContentAccordion.tsx +1 -1
  89. package/src/page_components/listing/ListingCard.tsx +1 -1
  90. package/src/page_components/listing/listing_sidebar/GetApplication.tsx +2 -2
  91. package/src/page_components/sign-in/FormSignIn.tsx +1 -1
  92. package/src/page_components/sign-in/FormSignInAddPhone.tsx +1 -1
  93. package/src/page_components/sign-in/FormSignInMFACode.tsx +1 -1
  94. package/src/page_components/sign-in/FormSignInMFAType.tsx +2 -2
  95. package/src/page_components/sign-in/FormTerms.tsx +1 -1
  96. package/src/tables/AgPagination.tsx +4 -4
@@ -27,7 +27,7 @@ const HouseholdMemberForm = (props: HouseholdMemberFormProps) => {
27
27
  className="edit-link"
28
28
  onClick={() => props.editMember && props.editMember(props.memberId)}
29
29
  type={"button"}
30
- data-test-id={"app-household-member-edit-button"}
30
+ data-testid={"app-household-member-edit-button"}
31
31
  >
32
32
  {props.strings?.edit ?? t("t.edit")}
33
33
  </button>
@@ -80,7 +80,7 @@ const MultiSelectField = (props: MultiSelectFieldProps) => {
80
80
  return (
81
81
  <div className="field multi-select-field">
82
82
  {props.label && label}
83
- <div className="control" data-test-id={props.dataTestId}>
83
+ <div className="control" data-testid={props.dataTestId}>
84
84
  <Icon symbol="search" size="medium" />
85
85
  <input
86
86
  id={props.id}
@@ -55,8 +55,12 @@ export const PhoneField = (props: {
55
55
 
56
56
  return (
57
57
  <div className={"field " + (props.error ? "error" : "")}>
58
- {props.label && <label className={labelClasses.join(" ")}>{props.label}</label>}
59
- <div className={props.controlClassName} data-test-id={props.dataTestId}>
58
+ {props.label && (
59
+ <label id={"phone-label"} className={labelClasses.join(" ")}>
60
+ {props.label}
61
+ </label>
62
+ )}
63
+ <div className={props.controlClassName} data-testid={props.dataTestId}>
60
64
  {props.mask ? (
61
65
  <Controller {...controllerProps} render={props.mask} />
62
66
  ) : (
@@ -64,7 +68,7 @@ export const PhoneField = (props: {
64
68
  )}
65
69
  </div>
66
70
  {props.subNote && <p className="field-sub-note">{props.subNote}</p>}
67
- <ErrorMessage id={`${props.id}-error`} error={props.error}>
71
+ <ErrorMessage id={`${props.id || ""}-error`} error={props.error}>
68
72
  {props.errorMessage}
69
73
  </ErrorMessage>
70
74
  </div>
@@ -20,6 +20,7 @@ export const PhoneMask = React.forwardRef((props: any, ref: any) => {
20
20
  onChange(e)
21
21
  }}
22
22
  ref={ref}
23
+ aria-labelledby={"phone-label"}
23
24
  />
24
25
  )
25
26
  })
@@ -60,8 +60,8 @@ export const Select = ({
60
60
  className="input"
61
61
  id={id || name}
62
62
  name={name}
63
- data-test-id={dataTestId}
64
- aria-describedby={describedBy ? describedBy : `${id}-error`}
63
+ data-testid={dataTestId}
64
+ aria-describedby={describedBy ? describedBy : `${id || name}-error`}
65
65
  aria-invalid={!!error || false}
66
66
  aria-label={label}
67
67
  ref={register && register(validation)}
@@ -79,7 +79,7 @@ export const Select = ({
79
79
  </div>
80
80
  {subNote && <p className="field-sub-note">{subNote}</p>}
81
81
  {error && errorMessage && (
82
- <ErrorMessage id={`${id}-error`} error={error}>
82
+ <ErrorMessage id={`${id || name}-error`} error={error}>
83
83
  {errorMessage}
84
84
  </ErrorMessage>
85
85
  )}
@@ -57,7 +57,7 @@ export const Textarea = (props: TextareaProps) => {
57
57
  wrap={props.wrap ?? "soft"}
58
58
  title={props.label}
59
59
  {...inputProps}
60
- data-test-id={props.dataTestId}
60
+ data-testid={props.dataTestId}
61
61
  />
62
62
  {props.note && <p className="field-note font-normal mb-2">{props.note}</p>}
63
63
  {props.errorMessage && <span className="textarea-error-message">{props.errorMessage}</span>}
@@ -20,7 +20,7 @@ export interface HeroProps {
20
20
  }
21
21
 
22
22
  const HeroButton = (props: { title: string; href: string; className?: string }) => (
23
- <span className={props.className + " hero__button"}>
23
+ <span className={`${props.className || ""} hero__button`}>
24
24
  <LinkButton href={props.href}>{props.title}</LinkButton>
25
25
  </span>
26
26
  )
@@ -44,7 +44,7 @@ const Hero = (props: HeroProps) => {
44
44
  classNames = "centered"
45
45
  }
46
46
  return (
47
- <div className={`hero ${classNames}`} style={styles} data-test-id={"hero-component"}>
47
+ <div className={`hero ${classNames}`} style={styles} data-testid={"hero-component"}>
48
48
  <h1 className={`hero__title ${props.extraLargeTitle ? "lg:text-6.5xl" : ""}`}>
49
49
  {props.title}
50
50
  </h1>
@@ -31,7 +31,7 @@ const PageHeader = (props: PageHeaderProps) => {
31
31
  )}
32
32
 
33
33
  {props.title && (
34
- <h1 data-test-id="page-header" className="page-header__title">
34
+ <h1 data-testid="page-header" className="page-header__title">
35
35
  {props.title}
36
36
  </h1>
37
37
  )}
@@ -157,7 +157,7 @@ const SiteHeader = (props: SiteHeaderProps) => {
157
157
  }
158
158
  dropdownOptionKeyDown(event, index)
159
159
  }}
160
- data-test-id={`${option.title}-${index}`}
160
+ data-testid={`${option.title}-${index}`}
161
161
  >
162
162
  {dropdownOptionContent(option)}
163
163
  </button>
@@ -327,7 +327,7 @@ const SiteHeader = (props: SiteHeaderProps) => {
327
327
  }`}
328
328
  href={menuLink.href}
329
329
  key={`${menuLink.title}-${index}`}
330
- data-test-id={`${menuLink.title}-${index}`}
330
+ data-testid={`${menuLink.title}-${index}`}
331
331
  >
332
332
  {menuContent}
333
333
  </LinkComponent>
@@ -367,7 +367,7 @@ const SiteHeader = (props: SiteHeaderProps) => {
367
367
  onMouseEnter={() => changeMenuShow(menuLink.title, activeMenus, setActiveMenus)}
368
368
  onMouseLeave={() => changeMenuShow(menuLink.title, activeMenus, setActiveMenus)}
369
369
  role={"button"}
370
- data-test-id={`${menuLink.title}-${index}`}
370
+ data-testid={`${menuLink.title}-${index}`}
371
371
  >
372
372
  {menuContent}
373
373
  </span>
@@ -171,7 +171,7 @@ const Icon = (props: IconProps) => {
171
171
  <span
172
172
  className={wrapperClasses.join(" ")}
173
173
  aria-hidden={props.ariaHidden}
174
- data-test-id={props.dataTestId ?? null}
174
+ data-testid={props.dataTestId ?? null}
175
175
  >
176
176
  <SpecificIcon fill={props.fill ? props.fill : undefined} />
177
177
  </span>
@@ -179,7 +179,7 @@ const Icon = (props: IconProps) => {
179
179
  <span
180
180
  className={wrapperClasses.join(" ")}
181
181
  aria-hidden={props.ariaHidden}
182
- data-test-id={props.dataTestId ?? null}
182
+ data-testid={props.dataTestId ?? null}
183
183
  style={{ color: props.fill }}
184
184
  >
185
185
  {SpecificIcon}
@@ -83,7 +83,7 @@ const AlertBox = (props: AlertBoxProps) => {
83
83
  }
84
84
 
85
85
  return showing ? (
86
- <div className={classNames} role="alert" data-test-id={"alert-box"}>
86
+ <div className={classNames} role="alert" data-testid={"alert-box"}>
87
87
  {innerSection}
88
88
  </div>
89
89
  ) : null
@@ -17,7 +17,7 @@ const ErrorMessage = (props: {
17
17
  id={props.id}
18
18
  className={classes.join(" ")}
19
19
  aria-live="assertive"
20
- data-test-id={"error-message"}
20
+ data-testid={"error-message"}
21
21
  >
22
22
  {props.children}
23
23
  </span>
@@ -12,7 +12,7 @@ const LoadingOverlay = ({ isLoading, children }: LoadingOverlayProps) => {
12
12
  if (!isLoading) return children
13
13
 
14
14
  return (
15
- <div className="loading-overlay" data-test-id="loading-overlay">
15
+ <div className="loading-overlay" data-testid="loading-overlay">
16
16
  <Icon size="3xl" symbol="spinner" className="loading-overlay__spinner" />
17
17
  {children}
18
18
  </div>
@@ -35,7 +35,7 @@ const ContentAccordion = (props: ContentAccordionProps) => {
35
35
  className={`w-full text-left ${props.disableAccordion ? "cursor-default" : ""}`}
36
36
  ref={buttonRef}
37
37
  aria-expanded={accordionOpen}
38
- data-test-id={"content-accordion-button"}
38
+ data-testid={"content-accordion-button"}
39
39
  >
40
40
  <div
41
41
  className={`flex justify-between ${props.barClass ? props.barClass : ""} ${
@@ -182,7 +182,7 @@ const ListingCard = (props: ListingCardProps) => {
182
182
  }
183
183
 
184
184
  return (
185
- <article className="listings-row" data-test-id={"listing-card-component"}>
185
+ <article className="listings-row" data-testid={"listing-card-component"}>
186
186
  <div className="listings-row_figure">
187
187
  <ImageCard {...imageCardProps} />
188
188
  </div>
@@ -55,7 +55,7 @@ const GetApplication = (props: ApplicationsProps) => {
55
55
  if (!showSection) return null
56
56
 
57
57
  return (
58
- <section className="aside-block" data-test-id="get-application-section">
58
+ <section className="aside-block" data-testid="get-application-section">
59
59
  <Heading priority={2} styleType={"underlineWeighted"}>
60
60
  {props.strings?.howToApply ?? t("listings.apply.howToApply")}
61
61
  </Heading>
@@ -71,7 +71,7 @@ const GetApplication = (props: ApplicationsProps) => {
71
71
  {props.applicationsOpen && props.onlineApplicationURL && (
72
72
  <>
73
73
  {props.preview ? (
74
- <Button disabled className="w-full mb-2" data-test-id={"listing-view-apply-button"}>
74
+ <Button disabled className="w-full mb-2" data-testid={"listing-view-apply-button"}>
75
75
  {props.strings?.applyOnline ?? t("listings.apply.applyOnline")}
76
76
  </Button>
77
77
  ) : (
@@ -105,7 +105,7 @@ const FormSignIn = ({
105
105
  />
106
106
 
107
107
  <div className="text-center mt-6">
108
- <Button styleType={AppearanceStyleType.primary} data-test-id="sign-in-button">
108
+ <Button styleType={AppearanceStyleType.primary} data-testid="sign-in-button">
109
109
  {t("nav.signIn")}
110
110
  </Button>
111
111
  </div>
@@ -73,7 +73,7 @@ const FormSignInAddPhone = ({
73
73
  <div className="text-center mt-10">
74
74
  <Button
75
75
  styleType={AppearanceStyleType.primary}
76
- data-test-id="request-mfa-code-and-add-phone"
76
+ data-testid="request-mfa-code-and-add-phone"
77
77
  >
78
78
  {t("nav.signInMFA.addPhoneNumber")}
79
79
  </Button>
@@ -93,7 +93,7 @@ const FormSignInMFACode = ({
93
93
  note={note}
94
94
  />
95
95
  <div className="text-center mt-10">
96
- <Button styleType={AppearanceStyleType.primary} data-test-id="verify-and-sign-in">
96
+ <Button styleType={AppearanceStyleType.primary} data-testid="verify-and-sign-in">
97
97
  {t("nav.signInMFA.signIn")}
98
98
  </Button>
99
99
  </div>
@@ -74,7 +74,7 @@ const FormSignInMFAType = ({
74
74
  <div className="text-center mt-6">
75
75
  <Button
76
76
  styleType={AppearanceStyleType.accentCool}
77
- data-test-id="verify-by-email"
77
+ data-testid="verify-by-email"
78
78
  onClick={emailOnClick}
79
79
  >
80
80
  {t("nav.signInMFA.verifyByEmail")}
@@ -83,7 +83,7 @@ const FormSignInMFAType = ({
83
83
  <div className="text-center mt-6">
84
84
  <Button
85
85
  styleType={AppearanceStyleType.accentCool}
86
- data-test-id="verify-by-phone"
86
+ data-testid="verify-by-phone"
87
87
  onClick={smsOnClick}
88
88
  >
89
89
  {t("nav.signInMFA.verifyByPhone")}
@@ -63,7 +63,7 @@ const FormTerms = (props: FormTermsProps) => {
63
63
 
64
64
  <div className="form-card__pager">
65
65
  <div className="form-card__pager-row primary">
66
- <Button styleType={AppearanceStyleType.primary} data-test-id="form-submit">
66
+ <Button styleType={AppearanceStyleType.primary} data-testid="form-submit">
67
67
  {t("t.submit")}
68
68
  </Button>
69
69
  </div>
@@ -67,7 +67,7 @@ const AgPagination = ({
67
67
  {t("t.show")}
68
68
  </label>
69
69
  <select
70
- data-test-id="ag-page-size"
70
+ data-testid="ag-page-size"
71
71
  name="page-size"
72
72
  id="page-size"
73
73
  value={itemsPerPage}
@@ -86,7 +86,7 @@ const AgPagination = ({
86
86
  {t("t.jumpTo")}
87
87
  </label>
88
88
  <select
89
- data-test-id="ag-page-select"
89
+ data-testid="ag-page-select"
90
90
  name="page-jump"
91
91
  id="page-jump"
92
92
  onChange={(e: React.ChangeEvent<HTMLSelectElement>) =>
@@ -112,7 +112,7 @@ const AgPagination = ({
112
112
  <div className="w-full md:w-auto flex justify-between mt-5 md:mt-0 ">
113
113
  <div className="md:hidden">
114
114
  <Button
115
- data-test-id="ag-btn-prev"
115
+ data-testid="ag-btn-prev"
116
116
  className="data-pager__previous data-pager__control"
117
117
  onClick={onPrevClick}
118
118
  disabled={currentPage === 1}
@@ -122,7 +122,7 @@ const AgPagination = ({
122
122
  </div>
123
123
 
124
124
  <Button
125
- data-test-id="ag-btn-next"
125
+ data-testid="ag-btn-next"
126
126
  className="data-pager__next data-pager__control"
127
127
  onClick={onNextClick}
128
128
  disabled={totalPages === currentPage || totalPages === 0}