@saasquatch/mint-components 1.4.1 → 1.4.2

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 CHANGED
@@ -7,7 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ## [1.4.1] - 2021-01-10
10
+
11
+ ## [1.4.2] - 2022-01-14
12
+
13
+ ### Changed
14
+
15
+ - Added ability to include slotted content on \<sqm-portal-register> using `slot="terms"`
16
+ - Slotted content is displayed above the registration button
17
+
18
+ ## [1.4.1] - 2021-01-17
11
19
 
12
20
  ### Fixed
13
21
 
@@ -15,6 +23,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
15
23
 
16
24
  ## [1.4.0] - 2021-12-09
17
25
 
26
+ ### Changed
27
+
18
28
  - Updated version of component-boilerplate to prevent rare case of user context being deleted during register
19
29
  - Updated version of component-boilerplate to support new registration, password reset, and verify requests
20
30
  - Changed components:
@@ -188,7 +198,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
188
198
  - \<sqm-popup-container>
189
199
  - \<sqm-stencilbook>
190
200
 
191
- [unreleased]: https://github.com/saasquatch/program-tools/compare/mint-components@1.4.1...HEAD
201
+
202
+ [unreleased]: https://github.com/saasquatch/program-tools/compare/mint-components@1.4.2...HEAD
203
+ [1.4.2]: https://github.com/saasquatch/program-tools/releases/tag/%40saasquatch%2Fmint-components%401.4.2
192
204
  [1.4.1]: https://github.com/saasquatch/program-tools/releases/tag/%40saasquatch%2Fmint-components%401.4.1
193
205
  [1.4.0]: https://github.com/saasquatch/program-tools/releases/tag/%40saasquatch%2Fmint-components%401.4.0
194
206
  [1.3.0]: https://github.com/saasquatch/program-tools/releases/tag/%40saasquatch%2Fmint-components%401.3.0
@@ -1579,6 +1579,7 @@ function PortalRegisterView(props) {
1579
1579
  "Cannot be empty",
1580
1580
  }
1581
1581
  : [])))),
1582
+ content.terms,
1582
1583
  index.h("div", { class: sheet$4.classes.ButtonsContainer },
1583
1584
  index.h("sl-button", { submit: true, loading: states.loading, exportparts: "base: primarybutton-base", type: "primary" }, content.submitLabel || "Register"),
1584
1585
  content.secondaryButton))));
@@ -5637,6 +5638,7 @@ const PortalRegister = class {
5637
5638
  const content = {
5638
5639
  formData: index.h("slot", { name: "formData" }),
5639
5640
  secondaryButton: (index.h("slot", { name: "secondaryButton" }, index.h("sl-button", { type: "text", disabled: states.loading, onClick: () => index_module.mn.push(states.loginPath) }, this.loginLabel))),
5641
+ terms: index.h("slot", { name: "terms" }),
5640
5642
  emailLabel: this.emailLabel,
5641
5643
  passwordLabel: this.passwordLabel,
5642
5644
  submitLabel: this.submitLabel,
@@ -18067,7 +18069,7 @@ const defaultProps$3 = {
18067
18069
  loading: false,
18068
18070
  confirmPassword: true,
18069
18071
  hideInputs: false,
18070
- loginPath: "/login"
18072
+ loginPath: "/login",
18071
18073
  },
18072
18074
  callbacks: {
18073
18075
  submit: () => console.log("Submit!"),
@@ -18084,7 +18086,7 @@ const errorProps$1 = {
18084
18086
  loading: false,
18085
18087
  confirmPassword: true,
18086
18088
  hideInputs: false,
18087
- loginPath: "/login"
18089
+ loginPath: "/login",
18088
18090
  },
18089
18091
  callbacks: {
18090
18092
  submit: () => console.log("Submit!"),
@@ -18104,7 +18106,7 @@ const loadingProps$1 = {
18104
18106
  loading: true,
18105
18107
  confirmPassword: true,
18106
18108
  hideInputs: false,
18107
- loginPath: "/login"
18109
+ loginPath: "/login",
18108
18110
  },
18109
18111
  callbacks: {
18110
18112
  submit: () => console.log("Submit!"),
@@ -18121,7 +18123,7 @@ const slottedProps = {
18121
18123
  loading: false,
18122
18124
  confirmPassword: true,
18123
18125
  hideInputs: false,
18124
- loginPath: "/login"
18126
+ loginPath: "/login",
18125
18127
  },
18126
18128
  callbacks: {
18127
18129
  submit: () => console.log("Submit!"),
@@ -18148,11 +18150,18 @@ const FieldsHidden = () => {
18148
18150
  loading: true,
18149
18151
  confirmPassword: true,
18150
18152
  hideInputs: true,
18151
- loginPath: "/login"
18153
+ loginPath: "/login",
18152
18154
  },
18153
18155
  } }));
18154
18156
  };
18155
- const SlottedInputs = () => index.h(PortalRegisterView, Object.assign({}, slottedProps));
18157
+ const SlottedInputs = () => index.h(PortalRegisterView, Object.assign({}, slottedProps));
18158
+ const TermsAndConditions = () => (index.h(PortalRegisterView, Object.assign({}, defaultProps$3, { content: {
18159
+ ...defaultProps$3.content,
18160
+ terms: (index.h("p", null,
18161
+ "By signing up you agree to the",
18162
+ " ",
18163
+ index.h("a", { href: "https://example.com", target: "_blank" }, "Terms and Conditions"))),
18164
+ } })));
18156
18165
 
18157
18166
  const PortalRegister$1 = /*#__PURE__*/Object.freeze({
18158
18167
  __proto__: null,
@@ -18161,7 +18170,8 @@ const PortalRegister$1 = /*#__PURE__*/Object.freeze({
18161
18170
  RegisterWithError: RegisterWithError,
18162
18171
  RegisterLoading: RegisterLoading,
18163
18172
  FieldsHidden: FieldsHidden,
18164
- SlottedInputs: SlottedInputs
18173
+ SlottedInputs: SlottedInputs,
18174
+ TermsAndConditions: TermsAndConditions
18165
18175
  });
18166
18176
 
18167
18177
  const scenario = "@author:derek\r\n@owner:ian\r\nFeature: Forgot Password\r\n\r\n @motivating\r\n Scenario: Users can request to reset their password\r\n Given a user enters their email address\r\n And that email address is linked to a previously created account\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n When the password reset email is sent\r\n Then a confirmation banner is shown stating a password reset email was sent\r\n\r\n @motivating\r\n Scenario: Users are notified if sending their password reset email fails\r\n Given a user enters their email address\r\n And that email address is linked to a previously created account\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n When the password reset email fails to send\r\n Then the user does not receive a password reset email\r\n And an error banner is shown stating that they should try again\r\n\r\n @motivating\r\n @landmine\r\n Scenario: If the input email is not associated to an account a success banner is shown but an email is not be sent\r\n Given the user entered an email address that is not associated to an accoun\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n But no email is sent\r\n And a success banner is shown stating a password reset email was sent if the given email was associated to an account\r\n\r\n @motivating\r\n Scenario: Users can resend password reset email\r\n Given a user had previously requested to reset their password\r\n When they enter their email address\r\n And that email address is linked to a previously created account\r\n And they click \"Reset Password\"\r\n Then the user receives a second password reset email\r\n And a success banner is shown stating that their email was sent\r\n\r\n @motivating\r\n Scenario Outline: The email link can be configured to redirect users to a specific base path but defaults to \"/resetPassword\"\r\n Given a user viewing the password reset component\r\n And the component <mayHave> \"redirect-path\" with <value>\r\n When they request a password reset email\r\n And they click the link in the email\r\n Then they are redirected to <redirectPath>\r\n Examples:\r\n | mayHave | value | redirectPath |\r\n | doesn't have | N/A | /resetPassword |\r\n | has | /resetMyPassword | /resetMyPassword |\r\n\r\n @minutae\r\n Scenario Outline: Navigation back to the login page can be customized but defaults to \"/login\"\r\n Given a user viewing the password reset component\r\n And the component <mayHave> \"login-path\" with <value>\r\n Then they see a \"Sign In\" text button\r\n When they click \"Sign In\"\r\n Then they are redirected to <redirectPath>\r\n Examples:\r\n | mayHave | value | redirectPath |\r\n | doesn't have | N/A | /login |\r\n | has | /signin | /signin |";
@@ -22940,7 +22950,7 @@ const ReferralIframeReadme = "# sqm-referral-iframe\r\n\r\n\r\n\r\n<!-- Auto Gen
22940
22950
 
22941
22951
  const ForgotPasswordReadme = "# sqm-portal-forgot-password\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------- | --------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; loginPath: string; }; content?: { secondaryButton: any; messageSlot: any; emailLabel?: string; submitLabel?: string; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `loginPath` | `login-path` | | `string` | `\"/login\"` |\r\n| `redirectPath` | `redirect-path` | The page that users are redirected to from the password reset email. | `string` | `\"/resetPassword\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Request Password Reset\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-forgot-password --> sqm-form-message\r\n style sqm-portal-forgot-password fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22942
22952
 
22943
- const RegisterReadme = "# sqm-portal-register\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------------------- | ---------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `\"Confirm Password\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; validationState?: FormState; enablePasswordValidation?: boolean; loginPath: string; }; content?: { formData?: any; passwordField?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; refs?: { formRef: any; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `enablePasswordValidation` | `enable-password-validation` | | `boolean` | `true` |\r\n| `hideInputs` | `hide-inputs` | | `boolean` | `false` |\r\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\r\n| `loginPath` | `login-path` | | `string` | `\"/login\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `redirectPath` | `redirect-path` | The page that users are redirected to from the verification email. | `string` | `\"/verifyEmail\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Register\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-register --> sqm-form-message\r\n sqm-portal-register --> sqm-password-field\r\n sqm-stencilbook --> sqm-portal-register\r\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22953
+ const RegisterReadme = "# sqm-portal-register\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------------------- | ---------------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `\"Confirm Password\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; validationState?: FormState; enablePasswordValidation?: boolean; loginPath: string; }; content?: { formData?: VNode; terms?: VNode; passwordField?: VNode; secondaryButton?: VNode; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; refs?: { formRef: any; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `enablePasswordValidation` | `enable-password-validation` | | `boolean` | `true` |\r\n| `hideInputs` | `hide-inputs` | | `boolean` | `false` |\r\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\r\n| `loginPath` | `login-path` | | `string` | `\"/login\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `redirectPath` | `redirect-path` | The page that users are redirected to from the verification email. | `string` | `\"/verifyEmail\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Register\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-register --> sqm-form-message\r\n sqm-portal-register --> sqm-password-field\r\n sqm-stencilbook --> sqm-portal-register\r\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22944
22954
 
22945
22955
  const EditProfileReadme = "# sqm-portal-profile\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------------------ | --------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |\r\n| `countrytext` | `countrytext` | | `string` | `\"Country\"` |\r\n| `demoData` | -- | | `{ states?: { success: boolean; loading: boolean; submitDisabled: boolean; showCountry: boolean; formState: { country: string; firstName: string; lastName: string; errors: any; error: string; }; user: { id: string; accountId: string; firstName: string; lastName: string; email: string; countryCode: string; }; text: { firstnametext: string; lastnametext: string; emailtext: string; countrytext: string; editProfileHeader: string; editProfileSubHeader: string; submitChangeButtonText: string; }; }; }` | `undefined` |\r\n| `editProfileHeader` | `edit-profile-header` | | `string` | `\"Edit your profile\"` |\r\n| `editProfileSubHeader` | `edit-profile-sub-header` | | `string` | `\"Personal Information\"` |\r\n| `emailtext` | `emailtext` | | `string` | `\"Email\"` |\r\n| `firstnametext` | `firstnametext` | | `string` | `\"First Name\"` |\r\n| `lastnametext` | `lastnametext` | | `string` | `\"Last Name\"` |\r\n| `showCountry` | `show-country` | | `boolean` | `true` |\r\n| `submitChangeButtonText` | `submit-change-button-text` | | `string` | `\"Submit Changes\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-profile --> sqm-form-message\r\n style sqm-portal-profile fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22946
22956
 
@@ -69,6 +69,7 @@ export function PortalRegisterView(props) {
69
69
  "Cannot be empty",
70
70
  }
71
71
  : [])))),
72
+ content.terms,
72
73
  h("div", { class: sheet.classes.ButtonsContainer },
73
74
  h("sl-button", { submit: true, loading: states.loading, exportparts: "base: primarybutton-base", type: "primary" }, content.submitLabel || "Register"),
74
75
  content.secondaryButton))));
@@ -71,6 +71,7 @@ export class PortalRegister {
71
71
  formData: h("slot", { name: "formData" }),
72
72
  secondaryButton: (h("slot", { name: "secondaryButton" },
73
73
  h("sl-button", { type: "text", disabled: states.loading, onClick: () => navigation.push(states.loginPath) }, this.loginLabel))),
74
+ terms: h("slot", { name: "terms" }),
74
75
  emailLabel: this.emailLabel,
75
76
  passwordLabel: this.passwordLabel,
76
77
  submitLabel: this.submitLabel,
@@ -339,7 +340,7 @@ export class PortalRegister {
339
340
  "mutable": false,
340
341
  "complexType": {
341
342
  "original": "DemoData<PortalRegisterViewProps>",
342
- "resolved": "{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; validationState?: FormState; enablePasswordValidation?: boolean; loginPath: string; }; content?: { formData?: any; passwordField?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; refs?: { formRef: any; }; }",
343
+ "resolved": "{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; validationState?: FormState; enablePasswordValidation?: boolean; loginPath: string; }; content?: { formData?: VNode; terms?: VNode; passwordField?: VNode; secondaryButton?: VNode; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; refs?: { formRef: any; }; }",
343
344
  "references": {
344
345
  "DemoData": {
345
346
  "location": "import",
@@ -9,7 +9,7 @@ const defaultProps = {
9
9
  loading: false,
10
10
  confirmPassword: true,
11
11
  hideInputs: false,
12
- loginPath: "/login"
12
+ loginPath: "/login",
13
13
  },
14
14
  callbacks: {
15
15
  submit: () => console.log("Submit!"),
@@ -26,7 +26,7 @@ const errorProps = {
26
26
  loading: false,
27
27
  confirmPassword: true,
28
28
  hideInputs: false,
29
- loginPath: "/login"
29
+ loginPath: "/login",
30
30
  },
31
31
  callbacks: {
32
32
  submit: () => console.log("Submit!"),
@@ -46,7 +46,7 @@ const loadingProps = {
46
46
  loading: true,
47
47
  confirmPassword: true,
48
48
  hideInputs: false,
49
- loginPath: "/login"
49
+ loginPath: "/login",
50
50
  },
51
51
  callbacks: {
52
52
  submit: () => console.log("Submit!"),
@@ -63,7 +63,7 @@ const slottedProps = {
63
63
  loading: false,
64
64
  confirmPassword: true,
65
65
  hideInputs: false,
66
- loginPath: "/login"
66
+ loginPath: "/login",
67
67
  },
68
68
  callbacks: {
69
69
  submit: () => console.log("Submit!"),
@@ -90,8 +90,15 @@ export const FieldsHidden = () => {
90
90
  loading: true,
91
91
  confirmPassword: true,
92
92
  hideInputs: true,
93
- loginPath: "/login"
93
+ loginPath: "/login",
94
94
  },
95
95
  } }));
96
96
  };
97
97
  export const SlottedInputs = () => h(PortalRegisterView, Object.assign({}, slottedProps));
98
+ export const TermsAndConditions = () => (h(PortalRegisterView, Object.assign({}, defaultProps, { content: {
99
+ ...defaultProps.content,
100
+ terms: (h("p", null,
101
+ "By signing up you agree to the",
102
+ " ",
103
+ h("a", { href: "https://example.com", target: "_blank" }, "Terms and Conditions"))),
104
+ } })));
@@ -1575,6 +1575,7 @@ function PortalRegisterView(props) {
1575
1575
  "Cannot be empty",
1576
1576
  }
1577
1577
  : [])))),
1578
+ content.terms,
1578
1579
  h("div", { class: sheet$4.classes.ButtonsContainer },
1579
1580
  h("sl-button", { submit: true, loading: states.loading, exportparts: "base: primarybutton-base", type: "primary" }, content.submitLabel || "Register"),
1580
1581
  content.secondaryButton))));
@@ -5633,6 +5634,7 @@ const PortalRegister = class {
5633
5634
  const content = {
5634
5635
  formData: h("slot", { name: "formData" }),
5635
5636
  secondaryButton: (h("slot", { name: "secondaryButton" }, h("sl-button", { type: "text", disabled: states.loading, onClick: () => mn.push(states.loginPath) }, this.loginLabel))),
5637
+ terms: h("slot", { name: "terms" }),
5636
5638
  emailLabel: this.emailLabel,
5637
5639
  passwordLabel: this.passwordLabel,
5638
5640
  submitLabel: this.submitLabel,
@@ -18063,7 +18065,7 @@ const defaultProps$3 = {
18063
18065
  loading: false,
18064
18066
  confirmPassword: true,
18065
18067
  hideInputs: false,
18066
- loginPath: "/login"
18068
+ loginPath: "/login",
18067
18069
  },
18068
18070
  callbacks: {
18069
18071
  submit: () => console.log("Submit!"),
@@ -18080,7 +18082,7 @@ const errorProps$1 = {
18080
18082
  loading: false,
18081
18083
  confirmPassword: true,
18082
18084
  hideInputs: false,
18083
- loginPath: "/login"
18085
+ loginPath: "/login",
18084
18086
  },
18085
18087
  callbacks: {
18086
18088
  submit: () => console.log("Submit!"),
@@ -18100,7 +18102,7 @@ const loadingProps$1 = {
18100
18102
  loading: true,
18101
18103
  confirmPassword: true,
18102
18104
  hideInputs: false,
18103
- loginPath: "/login"
18105
+ loginPath: "/login",
18104
18106
  },
18105
18107
  callbacks: {
18106
18108
  submit: () => console.log("Submit!"),
@@ -18117,7 +18119,7 @@ const slottedProps = {
18117
18119
  loading: false,
18118
18120
  confirmPassword: true,
18119
18121
  hideInputs: false,
18120
- loginPath: "/login"
18122
+ loginPath: "/login",
18121
18123
  },
18122
18124
  callbacks: {
18123
18125
  submit: () => console.log("Submit!"),
@@ -18144,11 +18146,18 @@ const FieldsHidden = () => {
18144
18146
  loading: true,
18145
18147
  confirmPassword: true,
18146
18148
  hideInputs: true,
18147
- loginPath: "/login"
18149
+ loginPath: "/login",
18148
18150
  },
18149
18151
  } }));
18150
18152
  };
18151
- const SlottedInputs = () => h(PortalRegisterView, Object.assign({}, slottedProps));
18153
+ const SlottedInputs = () => h(PortalRegisterView, Object.assign({}, slottedProps));
18154
+ const TermsAndConditions = () => (h(PortalRegisterView, Object.assign({}, defaultProps$3, { content: {
18155
+ ...defaultProps$3.content,
18156
+ terms: (h("p", null,
18157
+ "By signing up you agree to the",
18158
+ " ",
18159
+ h("a", { href: "https://example.com", target: "_blank" }, "Terms and Conditions"))),
18160
+ } })));
18152
18161
 
18153
18162
  const PortalRegister$1 = /*#__PURE__*/Object.freeze({
18154
18163
  __proto__: null,
@@ -18157,7 +18166,8 @@ const PortalRegister$1 = /*#__PURE__*/Object.freeze({
18157
18166
  RegisterWithError: RegisterWithError,
18158
18167
  RegisterLoading: RegisterLoading,
18159
18168
  FieldsHidden: FieldsHidden,
18160
- SlottedInputs: SlottedInputs
18169
+ SlottedInputs: SlottedInputs,
18170
+ TermsAndConditions: TermsAndConditions
18161
18171
  });
18162
18172
 
18163
18173
  const scenario = "@author:derek\r\n@owner:ian\r\nFeature: Forgot Password\r\n\r\n @motivating\r\n Scenario: Users can request to reset their password\r\n Given a user enters their email address\r\n And that email address is linked to a previously created account\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n When the password reset email is sent\r\n Then a confirmation banner is shown stating a password reset email was sent\r\n\r\n @motivating\r\n Scenario: Users are notified if sending their password reset email fails\r\n Given a user enters their email address\r\n And that email address is linked to a previously created account\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n When the password reset email fails to send\r\n Then the user does not receive a password reset email\r\n And an error banner is shown stating that they should try again\r\n\r\n @motivating\r\n @landmine\r\n Scenario: If the input email is not associated to an account a success banner is shown but an email is not be sent\r\n Given the user entered an email address that is not associated to an accoun\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n But no email is sent\r\n And a success banner is shown stating a password reset email was sent if the given email was associated to an account\r\n\r\n @motivating\r\n Scenario: Users can resend password reset email\r\n Given a user had previously requested to reset their password\r\n When they enter their email address\r\n And that email address is linked to a previously created account\r\n And they click \"Reset Password\"\r\n Then the user receives a second password reset email\r\n And a success banner is shown stating that their email was sent\r\n\r\n @motivating\r\n Scenario Outline: The email link can be configured to redirect users to a specific base path but defaults to \"/resetPassword\"\r\n Given a user viewing the password reset component\r\n And the component <mayHave> \"redirect-path\" with <value>\r\n When they request a password reset email\r\n And they click the link in the email\r\n Then they are redirected to <redirectPath>\r\n Examples:\r\n | mayHave | value | redirectPath |\r\n | doesn't have | N/A | /resetPassword |\r\n | has | /resetMyPassword | /resetMyPassword |\r\n\r\n @minutae\r\n Scenario Outline: Navigation back to the login page can be customized but defaults to \"/login\"\r\n Given a user viewing the password reset component\r\n And the component <mayHave> \"login-path\" with <value>\r\n Then they see a \"Sign In\" text button\r\n When they click \"Sign In\"\r\n Then they are redirected to <redirectPath>\r\n Examples:\r\n | mayHave | value | redirectPath |\r\n | doesn't have | N/A | /login |\r\n | has | /signin | /signin |";
@@ -22936,7 +22946,7 @@ const ReferralIframeReadme = "# sqm-referral-iframe\r\n\r\n\r\n\r\n<!-- Auto Gen
22936
22946
 
22937
22947
  const ForgotPasswordReadme = "# sqm-portal-forgot-password\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------- | --------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; loginPath: string; }; content?: { secondaryButton: any; messageSlot: any; emailLabel?: string; submitLabel?: string; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `loginPath` | `login-path` | | `string` | `\"/login\"` |\r\n| `redirectPath` | `redirect-path` | The page that users are redirected to from the password reset email. | `string` | `\"/resetPassword\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Request Password Reset\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-forgot-password --> sqm-form-message\r\n style sqm-portal-forgot-password fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22938
22948
 
22939
- const RegisterReadme = "# sqm-portal-register\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------------------- | ---------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `\"Confirm Password\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; validationState?: FormState; enablePasswordValidation?: boolean; loginPath: string; }; content?: { formData?: any; passwordField?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; refs?: { formRef: any; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `enablePasswordValidation` | `enable-password-validation` | | `boolean` | `true` |\r\n| `hideInputs` | `hide-inputs` | | `boolean` | `false` |\r\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\r\n| `loginPath` | `login-path` | | `string` | `\"/login\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `redirectPath` | `redirect-path` | The page that users are redirected to from the verification email. | `string` | `\"/verifyEmail\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Register\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-register --> sqm-form-message\r\n sqm-portal-register --> sqm-password-field\r\n sqm-stencilbook --> sqm-portal-register\r\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22949
+ const RegisterReadme = "# sqm-portal-register\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------------------- | ---------------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `\"Confirm Password\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; validationState?: FormState; enablePasswordValidation?: boolean; loginPath: string; }; content?: { formData?: VNode; terms?: VNode; passwordField?: VNode; secondaryButton?: VNode; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; refs?: { formRef: any; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `enablePasswordValidation` | `enable-password-validation` | | `boolean` | `true` |\r\n| `hideInputs` | `hide-inputs` | | `boolean` | `false` |\r\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\r\n| `loginPath` | `login-path` | | `string` | `\"/login\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `redirectPath` | `redirect-path` | The page that users are redirected to from the verification email. | `string` | `\"/verifyEmail\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Register\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-register --> sqm-form-message\r\n sqm-portal-register --> sqm-password-field\r\n sqm-stencilbook --> sqm-portal-register\r\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22940
22950
 
22941
22951
  const EditProfileReadme = "# sqm-portal-profile\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------------------ | --------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |\r\n| `countrytext` | `countrytext` | | `string` | `\"Country\"` |\r\n| `demoData` | -- | | `{ states?: { success: boolean; loading: boolean; submitDisabled: boolean; showCountry: boolean; formState: { country: string; firstName: string; lastName: string; errors: any; error: string; }; user: { id: string; accountId: string; firstName: string; lastName: string; email: string; countryCode: string; }; text: { firstnametext: string; lastnametext: string; emailtext: string; countrytext: string; editProfileHeader: string; editProfileSubHeader: string; submitChangeButtonText: string; }; }; }` | `undefined` |\r\n| `editProfileHeader` | `edit-profile-header` | | `string` | `\"Edit your profile\"` |\r\n| `editProfileSubHeader` | `edit-profile-sub-header` | | `string` | `\"Personal Information\"` |\r\n| `emailtext` | `emailtext` | | `string` | `\"Email\"` |\r\n| `firstnametext` | `firstnametext` | | `string` | `\"First Name\"` |\r\n| `lastnametext` | `lastnametext` | | `string` | `\"Last Name\"` |\r\n| `showCountry` | `show-country` | | `boolean` | `true` |\r\n| `submitChangeButtonText` | `submit-change-button-text` | | `string` | `\"Submit Changes\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-profile --> sqm-form-message\r\n style sqm-portal-profile fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22942
22952