@saasquatch/mint-components 1.5.3-4 → 1.5.3-7
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/dist/cjs/sqm-big-stat_35.cjs.entry.js +26 -20
- package/dist/cjs/sqm-stencilbook.cjs.entry.js +5 -5
- package/dist/collection/components/sqm-checkbox-field/UseCheckboxField.stories.js +2 -2
- package/dist/collection/components/sqm-checkbox-field/sqm-checkbox-field.js +4 -1
- package/dist/collection/components/sqm-dropdown-field/sqm-dropdown-field.js +5 -1
- package/dist/collection/components/sqm-input-field/sqm-input-field.js +13 -6
- package/dist/collection/components/sqm-name-fields/sqm-name-fields.js +3 -0
- package/dist/collection/components/sqm-referral-iframe/sqm-referral-iframe.js +1 -1
- package/dist/collection/components/sqm-share-code/sqm-share-code.js +2 -3
- package/dist/collection/components/sqm-share-link/sqm-share-link.js +2 -3
- package/dist/collection/utils/RequiredPropsError.js +19 -11
- package/dist/esm/sqm-big-stat_35.entry.js +26 -20
- package/dist/esm/sqm-stencilbook.entry.js +5 -5
- package/dist/esm-es5/sqm-big-stat_35.entry.js +1 -1
- package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
- package/dist/mint-components/mint-components.esm.js +1 -1
- package/dist/mint-components/{p-6e3f8914.system.entry.js → p-1cb53b63.system.entry.js} +1 -1
- package/dist/mint-components/p-436da6b8.system.js +1 -1
- package/dist/mint-components/{p-58704085.entry.js → p-5c1c2d86.entry.js} +2 -2
- package/dist/mint-components/{p-0284a378.entry.js → p-dfad44ee.entry.js} +8 -8
- package/dist/mint-components/p-ebfefab4.system.entry.js +1 -0
- package/dist/types/components/sqm-checkbox-field/sqm-checkbox-field.d.ts +4 -1
- package/dist/types/components/sqm-dropdown-field/sqm-dropdown-field.d.ts +4 -1
- package/dist/types/components/sqm-input-field/sqm-input-field.d.ts +10 -4
- package/dist/types/components/sqm-name-fields/sqm-name-fields.d.ts +4 -1
- package/dist/types/components.d.ts +26 -14
- package/dist/types/utils/RequiredPropsError.d.ts +4 -1
- package/docs/docs.docx +0 -0
- package/docs/raisins.json +1 -0
- package/grapesjs/grapesjs.js +1 -1
- package/package.json +8 -3
- package/CHANGELOG.md +0 -414
- package/dist/mint-components/p-2e4453e2.system.entry.js +0 -1
- package/shoelace/assets/icons/123.svg +0 -3
- package/shoelace/assets/icons/activity.svg +0 -3
- package/shoelace/assets/icons/apple.svg +0 -4
- package/shoelace/assets/icons/bandaid-fill.svg +0 -3
- package/shoelace/assets/icons/bandaid.svg +0 -4
- package/shoelace/assets/icons/bank.svg +0 -3
- package/shoelace/assets/icons/bank2.svg +0 -3
- package/shoelace/assets/icons/behance.svg +0 -3
- package/shoelace/assets/icons/bell-slash-fill.svg +0 -3
- package/shoelace/assets/icons/bell-slash.svg +0 -3
- package/shoelace/assets/icons/bluetooth.svg +0 -3
- package/shoelace/assets/icons/body-text.svg +0 -3
- package/shoelace/assets/icons/boombox-fill.svg +0 -4
- package/shoelace/assets/icons/boombox.svg +0 -6
- package/shoelace/assets/icons/boxes.svg +0 -3
- package/shoelace/assets/icons/cash-coin.svg +0 -6
- package/shoelace/assets/icons/check-lg.svg +0 -3
- package/shoelace/assets/icons/cloud-haze2.svg +0 -3
- package/shoelace/assets/icons/coin.svg +0 -5
- package/shoelace/assets/icons/currency-bitcoin.svg +0 -3
- package/shoelace/assets/icons/currency-dollar.svg +0 -3
- package/shoelace/assets/icons/currency-euro.svg +0 -3
- package/shoelace/assets/icons/currency-exchange.svg +0 -3
- package/shoelace/assets/icons/currency-pound.svg +0 -3
- package/shoelace/assets/icons/currency-yen.svg +0 -3
- package/shoelace/assets/icons/dash-lg.svg +0 -3
- package/shoelace/assets/icons/device-hdd-fill.svg +0 -4
- package/shoelace/assets/icons/device-hdd.svg +0 -5
- package/shoelace/assets/icons/device-ssd-fill.svg +0 -4
- package/shoelace/assets/icons/device-ssd.svg +0 -4
- package/shoelace/assets/icons/displayport-fill.svg +0 -3
- package/shoelace/assets/icons/displayport.svg +0 -4
- package/shoelace/assets/icons/dpad-fill.svg +0 -3
- package/shoelace/assets/icons/dpad.svg +0 -4
- package/shoelace/assets/icons/dribbble.svg +0 -3
- package/shoelace/assets/icons/ear-fill.svg +0 -3
- package/shoelace/assets/icons/ear.svg +0 -3
- package/shoelace/assets/icons/easel2-fill.svg +0 -4
- package/shoelace/assets/icons/easel2.svg +0 -3
- package/shoelace/assets/icons/easel3-fill.svg +0 -3
- package/shoelace/assets/icons/easel3.svg +0 -3
- package/shoelace/assets/icons/envelope-check-fill.svg +0 -4
- package/shoelace/assets/icons/envelope-check.svg +0 -4
- package/shoelace/assets/icons/envelope-dash-fill.svg +0 -4
- package/shoelace/assets/icons/envelope-dash.svg +0 -4
- package/shoelace/assets/icons/envelope-exclamation-fill.svg +0 -4
- package/shoelace/assets/icons/envelope-exclamation.svg +0 -4
- package/shoelace/assets/icons/envelope-plus-fill.svg +0 -4
- package/shoelace/assets/icons/envelope-plus.svg +0 -4
- package/shoelace/assets/icons/envelope-slash-fill.svg +0 -4
- package/shoelace/assets/icons/envelope-slash.svg +0 -4
- package/shoelace/assets/icons/envelope-x-fill.svg +0 -4
- package/shoelace/assets/icons/envelope-x.svg +0 -4
- package/shoelace/assets/icons/ethernet.svg +0 -4
- package/shoelace/assets/icons/exclamation-lg.svg +0 -3
- package/shoelace/assets/icons/explicit-fill.svg +0 -3
- package/shoelace/assets/icons/explicit.svg +0 -4
- package/shoelace/assets/icons/fan.svg +0 -4
- package/shoelace/assets/icons/file-earmark-pdf-fill.svg +0 -4
- package/shoelace/assets/icons/file-earmark-pdf.svg +0 -4
- package/shoelace/assets/icons/file-pdf-fill.svg +0 -4
- package/shoelace/assets/icons/file-pdf.svg +0 -4
- package/shoelace/assets/icons/fingerprint.svg +0 -7
- package/shoelace/assets/icons/gender-ambiguous.svg +0 -3
- package/shoelace/assets/icons/gender-female.svg +0 -3
- package/shoelace/assets/icons/gender-male.svg +0 -3
- package/shoelace/assets/icons/gender-trans.svg +0 -3
- package/shoelace/assets/icons/git.svg +0 -3
- package/shoelace/assets/icons/gpu-card.svg +0 -5
- package/shoelace/assets/icons/graph-down-arrow.svg +0 -3
- package/shoelace/assets/icons/graph-up-arrow.svg +0 -3
- package/shoelace/assets/icons/hdmi-fill.svg +0 -3
- package/shoelace/assets/icons/hdmi.svg +0 -4
- package/shoelace/assets/icons/headset-vr.svg +0 -4
- package/shoelace/assets/icons/hypnotize.svg +0 -4
- package/shoelace/assets/icons/infinity.svg +0 -3
- package/shoelace/assets/icons/info-lg.svg +0 -3
- package/shoelace/assets/icons/line.svg +0 -3
- package/shoelace/assets/icons/list-columns-reverse.svg +0 -3
- package/shoelace/assets/icons/list-columns.svg +0 -3
- package/shoelace/assets/icons/magic.svg +0 -3
- package/shoelace/assets/icons/mastodon.svg +0 -3
- package/shoelace/assets/icons/medium.svg +0 -3
- package/shoelace/assets/icons/memory.svg +0 -3
- package/shoelace/assets/icons/messenger.svg +0 -3
- package/shoelace/assets/icons/meta.svg +0 -3
- package/shoelace/assets/icons/microsoft.svg +0 -3
- package/shoelace/assets/icons/modem-fill.svg +0 -3
- package/shoelace/assets/icons/modem.svg +0 -4
- package/shoelace/assets/icons/mortarboard-fill.svg +0 -4
- package/shoelace/assets/icons/mortarboard.svg +0 -4
- package/shoelace/assets/icons/motherboard-fill.svg +0 -4
- package/shoelace/assets/icons/motherboard.svg +0 -4
- package/shoelace/assets/icons/nintendo-switch.svg +0 -4
- package/shoelace/assets/icons/optical-audio-fill.svg +0 -4
- package/shoelace/assets/icons/optical-audio.svg +0 -5
- package/shoelace/assets/icons/paypal.svg +0 -3
- package/shoelace/assets/icons/pc-display-horizontal.svg +0 -3
- package/shoelace/assets/icons/pc-display.svg +0 -3
- package/shoelace/assets/icons/pc-horizontal.svg +0 -3
- package/shoelace/assets/icons/pc.svg +0 -3
- package/shoelace/assets/icons/pci-card.svg +0 -4
- package/shoelace/assets/icons/person-rolodex.svg +0 -4
- package/shoelace/assets/icons/person-video.svg +0 -4
- package/shoelace/assets/icons/person-video2.svg +0 -4
- package/shoelace/assets/icons/person-video3.svg +0 -4
- package/shoelace/assets/icons/person-workspace.svg +0 -4
- package/shoelace/assets/icons/piggy-bank-fill.svg +0 -3
- package/shoelace/assets/icons/piggy-bank.svg +0 -4
- package/shoelace/assets/icons/pin-map-fill.svg +0 -4
- package/shoelace/assets/icons/pin-map.svg +0 -4
- package/shoelace/assets/icons/pinterest.svg +0 -3
- package/shoelace/assets/icons/playstation.svg +0 -3
- package/shoelace/assets/icons/plus-lg.svg +0 -3
- package/shoelace/assets/icons/plus-slash-minus.svg +0 -3
- package/shoelace/assets/icons/projector-fill.svg +0 -3
- package/shoelace/assets/icons/projector.svg +0 -4
- package/shoelace/assets/icons/qr-code-scan.svg +0 -7
- package/shoelace/assets/icons/qr-code.svg +0 -7
- package/shoelace/assets/icons/question-lg.svg +0 -3
- package/shoelace/assets/icons/quora.svg +0 -3
- package/shoelace/assets/icons/quote.svg +0 -3
- package/shoelace/assets/icons/radioactive.svg +0 -4
- package/shoelace/assets/icons/recycle.svg +0 -3
- package/shoelace/assets/icons/reddit.svg +0 -4
- package/shoelace/assets/icons/robot.svg +0 -4
- package/shoelace/assets/icons/router-fill.svg +0 -6
- package/shoelace/assets/icons/router.svg +0 -6
- package/shoelace/assets/icons/safe-fill.svg +0 -4
- package/shoelace/assets/icons/safe.svg +0 -4
- package/shoelace/assets/icons/safe2-fill.svg +0 -4
- package/shoelace/assets/icons/safe2.svg +0 -4
- package/shoelace/assets/icons/sd-card-fill.svg +0 -3
- package/shoelace/assets/icons/sd-card.svg +0 -4
- package/shoelace/assets/icons/send-check-fill.svg +0 -4
- package/shoelace/assets/icons/send-check.svg +0 -4
- package/shoelace/assets/icons/send-dash-fill.svg +0 -4
- package/shoelace/assets/icons/send-dash.svg +0 -4
- package/shoelace/assets/icons/send-exclamation-fill.svg +0 -4
- package/shoelace/assets/icons/send-exclamation.svg +0 -4
- package/shoelace/assets/icons/send-fill.svg +0 -3
- package/shoelace/assets/icons/send-plus-fill.svg +0 -4
- package/shoelace/assets/icons/send-plus.svg +0 -4
- package/shoelace/assets/icons/send-slash-fill.svg +0 -4
- package/shoelace/assets/icons/send-slash.svg +0 -4
- package/shoelace/assets/icons/send-x-fill.svg +0 -4
- package/shoelace/assets/icons/send-x.svg +0 -4
- package/shoelace/assets/icons/send.svg +0 -3
- package/shoelace/assets/icons/signal.svg +0 -3
- package/shoelace/assets/icons/skype.svg +0 -3
- package/shoelace/assets/icons/slash-lg.svg +0 -3
- package/shoelace/assets/icons/snapchat.svg +0 -3
- package/shoelace/assets/icons/spotify.svg +0 -3
- package/shoelace/assets/icons/stack-overflow.svg +0 -4
- package/shoelace/assets/icons/steam.svg +0 -4
- package/shoelace/assets/icons/strava.svg +0 -3
- package/shoelace/assets/icons/terminal-dash.svg +0 -4
- package/shoelace/assets/icons/terminal-plus.svg +0 -4
- package/shoelace/assets/icons/terminal-split.svg +0 -4
- package/shoelace/assets/icons/terminal-x.svg +0 -4
- package/shoelace/assets/icons/thunderbolt-fill.svg +0 -3
- package/shoelace/assets/icons/thunderbolt.svg +0 -4
- package/shoelace/assets/icons/ticket-detailed-fill.svg +0 -3
- package/shoelace/assets/icons/ticket-detailed.svg +0 -4
- package/shoelace/assets/icons/ticket-fill.svg +0 -3
- package/shoelace/assets/icons/ticket-perforated-fill.svg +0 -3
- package/shoelace/assets/icons/ticket-perforated.svg +0 -4
- package/shoelace/assets/icons/ticket.svg +0 -3
- package/shoelace/assets/icons/tiktok.svg +0 -3
- package/shoelace/assets/icons/translate.svg +0 -4
- package/shoelace/assets/icons/usb-c-fill.svg +0 -3
- package/shoelace/assets/icons/usb-c.svg +0 -4
- package/shoelace/assets/icons/usb-drive-fill.svg +0 -3
- package/shoelace/assets/icons/usb-drive.svg +0 -3
- package/shoelace/assets/icons/usb-fill.svg +0 -3
- package/shoelace/assets/icons/usb-micro-fill.svg +0 -3
- package/shoelace/assets/icons/usb-micro.svg +0 -4
- package/shoelace/assets/icons/usb-mini-fill.svg +0 -3
- package/shoelace/assets/icons/usb-mini.svg +0 -4
- package/shoelace/assets/icons/usb-plug-fill.svg +0 -3
- package/shoelace/assets/icons/usb-plug.svg +0 -3
- package/shoelace/assets/icons/usb-symbol.svg +0 -3
- package/shoelace/assets/icons/usb.svg +0 -4
- package/shoelace/assets/icons/vimeo.svg +0 -3
- package/shoelace/assets/icons/webcam-fill.svg +0 -4
- package/shoelace/assets/icons/webcam.svg +0 -4
- package/shoelace/assets/icons/window-dash.svg +0 -5
- package/shoelace/assets/icons/window-desktop.svg +0 -4
- package/shoelace/assets/icons/window-fullscreen.svg +0 -4
- package/shoelace/assets/icons/window-plus.svg +0 -5
- package/shoelace/assets/icons/window-split.svg +0 -4
- package/shoelace/assets/icons/window-stack.svg +0 -4
- package/shoelace/assets/icons/window-x.svg +0 -5
- package/shoelace/assets/icons/windows.svg +0 -3
- package/shoelace/assets/icons/wordpress.svg +0 -5
- package/shoelace/assets/icons/x-lg.svg +0 -4
- package/shoelace/assets/icons/xbox.svg +0 -3
- package/shoelace/assets/icons/yin-yang.svg +0 -4
- package/shoelace/themes/themes/dark.styles.d.ts +0 -2
- package/shoelace/themes/themes/dark.styles.js +0 -531
- package/shoelace/themes/themes/light.css +0 -439
- package/shoelace/themes/themes/light.styles.d.ts +0 -2
- package/shoelace/themes/themes/light.styles.js +0 -531
|
@@ -134,34 +134,41 @@ const style = {
|
|
|
134
134
|
Heading: {
|
|
135
135
|
display: "inline-block",
|
|
136
136
|
},
|
|
137
|
-
|
|
138
|
-
|
|
137
|
+
Children: {
|
|
138
|
+
display: "none",
|
|
139
139
|
},
|
|
140
140
|
};
|
|
141
141
|
const sheet = createStyleSheet(style);
|
|
142
142
|
const styleString = sheet.toString();
|
|
143
|
-
function RequiredPropsError({ missingProps }) {
|
|
143
|
+
function RequiredPropsError({ missingProps, heading = "There was a problem loading this section", subheading = "There was a technical problem that prevented this section from loading. Please contact us with the link to this page.", description = "Error occured while loading <{tagName}>. Values for the following attributes are missing:", }, children) {
|
|
144
144
|
if (!missingProps)
|
|
145
145
|
return false;
|
|
146
146
|
const host = P();
|
|
147
147
|
const [detailsOpen, setDetailsOpen] = useState(false);
|
|
148
|
-
return (h$1("sl-alert", { type: "danger", open: true
|
|
148
|
+
return (h$1("sl-alert", { type: "danger", open: true },
|
|
149
149
|
h$1("style", { type: "text/css" }, styleString),
|
|
150
150
|
h$1("div", { slot: "icon", class: sheet.classes.IconStyle },
|
|
151
151
|
h$1("sl-icon", { name: "exclamation-octagon" })),
|
|
152
152
|
h$1("div", { class: sheet.classes.DivStyle },
|
|
153
|
-
h$1("h2", { class: sheet.classes.Heading },
|
|
154
|
-
|
|
153
|
+
h$1("h2", { class: sheet.classes.Heading }, intl.formatMessage({
|
|
154
|
+
id: `error-heading`,
|
|
155
|
+
defaultMessage: heading,
|
|
156
|
+
})),
|
|
157
|
+
h$1("p", null, intl.formatMessage({
|
|
158
|
+
id: `error-subheading`,
|
|
159
|
+
defaultMessage: subheading,
|
|
160
|
+
}))),
|
|
155
161
|
h$1("details", { class: sheet.classes.Details },
|
|
156
162
|
h$1("summary", { onClick: () => setDetailsOpen(!detailsOpen) },
|
|
157
163
|
detailsOpen ? "Less" : "More",
|
|
158
164
|
" details"),
|
|
159
|
-
h$1("p", null,
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
165
|
+
h$1("p", null, intl.formatMessage({
|
|
166
|
+
id: `error-description`,
|
|
167
|
+
defaultMessage: description,
|
|
168
|
+
}, { tagName: host.tagName.toLowerCase() })),
|
|
163
169
|
h$1("ul", null, missingProps.map((prop) => (h$1("li", null,
|
|
164
|
-
h$1("strong", null, prop.attribute))))))
|
|
170
|
+
h$1("strong", null, prop.attribute)))))),
|
|
171
|
+
h$1("div", { class: sheet.classes.Children }, children)));
|
|
165
172
|
}
|
|
166
173
|
|
|
167
174
|
const FORM_VALIDATION_CONTEXT = "sq:validation-state";
|
|
@@ -221,7 +228,7 @@ const CheckboxField = class {
|
|
|
221
228
|
},
|
|
222
229
|
]);
|
|
223
230
|
if (!jn() && missingProps) {
|
|
224
|
-
return h$1(RequiredPropsError, { missingProps: missingProps });
|
|
231
|
+
return (h$1(RequiredPropsError, { missingProps: missingProps, heading: "An error occured while loading this form", subheading: "A technical problem prevented this checkbox field from loading. Please contact us with the link to this page.", description: "Values for the following attributes are missing:" }));
|
|
225
232
|
}
|
|
226
233
|
const content = {
|
|
227
234
|
...getProps(this),
|
|
@@ -347,7 +354,7 @@ const DropdownField = class {
|
|
|
347
354
|
},
|
|
348
355
|
]);
|
|
349
356
|
if (!jn() && missingProps) {
|
|
350
|
-
return h$1(RequiredPropsError, { missingProps: missingProps });
|
|
357
|
+
return (h$1(RequiredPropsError, { missingProps: missingProps, heading: "An error occured while loading this form", subheading: "A technical problem prevented this drop down field from loading. Please contact us with the link to this page.", description: "Values for the following attributes are missing:" }, h$1("slot", null)));
|
|
351
358
|
}
|
|
352
359
|
const content = {
|
|
353
360
|
...getProps(this),
|
|
@@ -817,10 +824,11 @@ const InputField = class {
|
|
|
817
824
|
* @uiName Input Type
|
|
818
825
|
* @uiType string
|
|
819
826
|
* @uiEnum ["text", "date", "tel"]
|
|
827
|
+
* @uiEnumNames ["Text", "Date", "Phone Number"]
|
|
820
828
|
*/
|
|
821
829
|
this.fieldType = "text";
|
|
822
830
|
/**
|
|
823
|
-
* @uiName
|
|
831
|
+
* @uiName Required Error Message
|
|
824
832
|
*/
|
|
825
833
|
this.errorMessage = "Cannot be empty";
|
|
826
834
|
/**
|
|
@@ -841,7 +849,7 @@ const InputField = class {
|
|
|
841
849
|
},
|
|
842
850
|
]);
|
|
843
851
|
if (!jn() && missingProps) {
|
|
844
|
-
return h$1(RequiredPropsError, { missingProps: missingProps });
|
|
852
|
+
return (h$1(RequiredPropsError, { missingProps: missingProps, heading: "An error occured while loading this form", subheading: "A technical problem prevented this input field from loading. Please contact us with the link to this page.", description: "Values for the following attributes are missing:" }));
|
|
845
853
|
}
|
|
846
854
|
const { states } = jn() ? useInputFieldDemo(this) : useInputField();
|
|
847
855
|
return h$1(InputFieldView, { states: states, content: content });
|
|
@@ -5836,7 +5844,7 @@ const SqmReferralIframe = class {
|
|
|
5836
5844
|
},
|
|
5837
5845
|
]);
|
|
5838
5846
|
if (missingProps) {
|
|
5839
|
-
return h$1(RequiredPropsError, { missingProps: missingProps });
|
|
5847
|
+
return (h$1(RequiredPropsError, { missingProps: missingProps, heading: "An error occured while loading this page", subheading: "A technical problem prevented this iframe from loading. Please contact us with the link to this page.", description: "Values for the following attributes are missing:" }));
|
|
5840
5848
|
}
|
|
5841
5849
|
const { states, data } = jn()
|
|
5842
5850
|
? useReferralIframeDemo(getProps(this))
|
|
@@ -7121,7 +7129,6 @@ function useShareCode(props) {
|
|
|
7121
7129
|
return { ...props, onClick, open, shareString };
|
|
7122
7130
|
}
|
|
7123
7131
|
|
|
7124
|
-
const DEFAULT_TOOLTIP_LIFESPAN = 1000;
|
|
7125
7132
|
const ShareCode = class {
|
|
7126
7133
|
constructor(hostRef) {
|
|
7127
7134
|
registerInstance(this, hostRef);
|
|
@@ -7136,7 +7143,7 @@ const ShareCode = class {
|
|
|
7136
7143
|
*
|
|
7137
7144
|
* @uiName Tooltip lifespan
|
|
7138
7145
|
*/
|
|
7139
|
-
this.tooltiplifespan =
|
|
7146
|
+
this.tooltiplifespan = 1000;
|
|
7140
7147
|
h(this);
|
|
7141
7148
|
}
|
|
7142
7149
|
disconnectedCallback() { }
|
|
@@ -7165,7 +7172,6 @@ function useDemoShareCode(props) {
|
|
|
7165
7172
|
}, props.demoData || {}, { arrayMerge: (_, a) => a });
|
|
7166
7173
|
}
|
|
7167
7174
|
|
|
7168
|
-
const DEFAULT_TOOLTIP_LIFESPAN$1 = 1000;
|
|
7169
7175
|
const ShareLink = class {
|
|
7170
7176
|
constructor(hostRef) {
|
|
7171
7177
|
registerInstance(this, hostRef);
|
|
@@ -7180,7 +7186,7 @@ const ShareLink = class {
|
|
|
7180
7186
|
*
|
|
7181
7187
|
* @uiName Tooltip lifespan
|
|
7182
7188
|
*/
|
|
7183
|
-
this.tooltiplifespan =
|
|
7189
|
+
this.tooltiplifespan = 1000;
|
|
7184
7190
|
h(this);
|
|
7185
7191
|
}
|
|
7186
7192
|
disconnectedCallback() { }
|
|
@@ -9377,7 +9377,7 @@ const ReferralIframeReadme = "# sqm-referral-iframe\r\n\r\n\r\n\r\n<!-- Auto Gen
|
|
|
9377
9377
|
|
|
9378
9378
|
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";
|
|
9379
9379
|
|
|
9380
|
-
const RegisterReadme = "# sqm-portal-register\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\
|
|
9380
|
+
const RegisterReadme = "# sqm-portal-register\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| -------------------------- | ---------------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `\"Confirm Password\"` |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; validationState?: FormState; enablePasswordValidation?: boolean; loginPath: string; }; refs?: { formRef: any; }; content?: { formData?: VNode; terms?: VNode; passwordField?: VNode; secondaryButton?: VNode; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; }` | `undefined` |\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\n| `enablePasswordValidation` | `enable-password-validation` | | `boolean` | `true` |\n| `hideInputs` | `hide-inputs` | | `boolean` | `false` |\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\n| `loginPath` | `login-path` | | `string` | `\"/login\"` |\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\n| `redirectPath` | `redirect-path` | The page that users are redirected to from the verification email. | `string` | `\"/verifyEmail\"` |\n| `submitLabel` | `submit-label` | | `string` | `\"Register\"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n- [sqm-password-field](../sqm-password-field)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-register --> sqm-form-message\n sqm-portal-register --> sqm-password-field\n sqm-stencilbook --> sqm-portal-register\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
|
|
9381
9381
|
|
|
9382
9382
|
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";
|
|
9383
9383
|
|
|
@@ -9889,7 +9889,7 @@ const NameFields$1 = /*#__PURE__*/Object.freeze({
|
|
|
9889
9889
|
NameFieldsWithErrors: NameFieldsWithErrors
|
|
9890
9890
|
});
|
|
9891
9891
|
|
|
9892
|
-
const scenario$i = "@owner:sam\r\n@author:sam\r\nFeature: Checkbox Field\r\n\r\n Field to be used to be used as a checkbox during registration. A motivating use case is to use this component as a terms\r\n and conditions field, to sastisfy legal requirements that a customer might have for their end users.\r\n\r\n Background: A user is on the portal registration page\r\n Given a user is viewing the \"/register\"\r\n And \"/register\" contains the registration form\r\n And the registration form has the following fields\r\n | fields |\r\n | first name |\r\n | last name |\r\n | email |\r\n | password |\r\n | checkbox |\r\n\r\n @motivating\r\n Scenario: Checkbox is required by default\r\n Given the user is filling out the registration form\r\n And the name fields have valid input\r\n And the email field has valid input\r\n And the password field has valid input\r\n And the checkbox is not checked\r\n When they try to register\r\n Then the checkbox is highlighted in red\r\n And the error message says \"Must be checked\"\r\n\r\n @landmine\r\n Scenario: Checkboxes with the same \"checkbox-name\" are not submitted in the form data\r\n Given the register form has the following html\r\n \"\"\"\r\n <sqm-portal-register>\r\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\r\n <sqm-checkbox-field\r\n slot=\"formData\"\r\n checkbox-label=\"I am not a robot\"\r\n error-message=\"Cannot be a robot\"\r\n checkbox-name=\"isHuman\"\r\n ></sqm-checkbox-field>\r\n <div slot=\"terms\">\r\n <sqm-checkbox-field checkbox-name=\"isHuman\"></sqm-checkbox-field>\r\n </div>\r\n </sqm-portal-register>\r\n \"\"\"\r\n And the checkboxes are checked\r\n When the user tries to register\r\n Then the form is submitted\r\n But no field with key \"isHuman\" is included in the form data\r\n\r\n @motivating\r\n Scenario: Multiple checkboxes need different \"checkbox-name\" values\r\n Given the register form has the following html\r\n \"\"\"\r\n <sqm-portal-register>\r\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\r\n <sqm-checkbox-field\r\n slot=\"formData\"\r\n checkbox-label=\"I am not a robot\"\r\n error-message=\"Cannot be a robot\"\r\n checkbox-name=\"isHuman\"\r\n ></sqm-checkbox-field>\r\n <div slot=\"terms\">\r\n <sqm-checkbox-field checkbox-name=\"myCheckbox\"></sqm-checkbox-field>\r\n </div>\r\n </sqm-portal-register>\r\n \"\"\"\r\n And the checkboxes are not checked\r\n When the user tries to register\r\n Then both checkboxes are bordered in red\r\n And the checkboxes have different error messages\r\n When the user checks the boxes\r\n And tries to register\r\n Then the form is submitted\r\n And the following fields are included in the form data\r\n | feilds |\r\n | isHuman |\r\n | myCheckbox |\r\n\r\n @motivating\r\n Scenario: Checkboxes can be optional\r\n Given the register form has the following html\r\n \"\"\"\r\n <sqm-portal-register>\r\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\r\n <sqm-checkbox-field\r\n slot=\"formData\"\r\n checkbox-label=\"I am not a robot\"\r\n checkbox-optional=\"true\"\r\n checkbox-name=\"isHuman\"\r\n />\r\n </sqm-portal-register>\r\n \"\"\"\r\n And the checkbox is not checked\r\n When the user tries to register\r\n Then there is no error for the checkbox\r\n\r\n @minutae\r\n Scenario Outline: Validation error message is configurable\r\n The error message string is evaluated as an ICU string, but currently is provided no context\r\n Given the checkbox is required\r\n And the checkbox has prop \"error-message\" with <propValue>\r\n When the user tries to register\r\n But they havent checked the checkbox\r\n Then they see <errorMessage> below\r\n Examples:\r\n | propValue | errorMessage |\r\n | | Must be checked |\r\n | My Custom Message | My Custom Message |\r\n\r\n @motivating\r\n Scenario Outline: Checkbox text and link are configurable\r\n Given the checkbox has the following prop values\r\n | prop | value |\r\n | checkbox-label | <labelText> |\r\n | checkbox-label-link | <labelLink> |\r\n | checkbox-label-link-text | <labelLinkText> |\r\n When the user views the checkbox\r\n Then they see <text>\r\n And when they click <labelLinkText> they are redirected to <labelLink>\r\n #First example below is the defaults set by the controller\r\n Examples:\r\n | labelText | labelLinkText | labelLink | text |\r\n | By signing up you agree to the {labelLink} | Terms and Conditions | https://example.com | By signing up you agree to the Terms and Conditions |\r\n | Read our {labelLink} before registration | Terms of Service | https://example.com/terms | Read our Terms of Service before registration |\r\n | By registering you agree to our terms and conditions | N/A | N/A | By registering you agree to our terms and conditions |\r\n\r\n @motivating\r\n Scenario: The form field name attribute is configurable\r\n Given the checkbox has prop \"checkbox-name\" with value \"myCheckBox\"\r\n When the user checks the box\r\n And they register\r\n Then the value of the checkbox is submitted under \"myCheckBox\" field\r\n\r\n @minutae\r\n Scenario Outline: The checkbox field component fails fast if a checkbox name isn't provided\r\n Given the checkbox <mayHave> prop \"checkbox-name\"\r\n And it <mayHavePropValue>\r\n When a user views the checkbox\r\n Then an alert with an error message is displayed in place of the checkbox\r\n And it has a details section\r\n When \"More details\" is clicked\r\n Then the following information
|
|
9892
|
+
const scenario$i = "@owner:sam\r\n@author:sam\r\nFeature: Checkbox Field\r\n\r\n Field to be used to be used as a checkbox during registration. A motivating use case is to use this component as a terms\r\n and conditions field, to sastisfy legal requirements that a customer might have for their end users.\r\n\r\n Background: A user is on the portal registration page\r\n Given a user is viewing the \"/register\"\r\n And \"/register\" contains the registration form\r\n And the registration form has the following fields\r\n | fields |\r\n | first name |\r\n | last name |\r\n | email |\r\n | password |\r\n | checkbox |\r\n\r\n @motivating\r\n Scenario: Checkbox is required by default\r\n Given the user is filling out the registration form\r\n And the name fields have valid input\r\n And the email field has valid input\r\n And the password field has valid input\r\n And the checkbox is not checked\r\n When they try to register\r\n Then the checkbox is highlighted in red\r\n And the error message says \"Must be checked\"\r\n\r\n @landmine\r\n Scenario: Checkboxes with the same \"checkbox-name\" are not submitted in the form data\r\n Given the register form has the following html\r\n \"\"\"\r\n <sqm-portal-register>\r\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\r\n <sqm-checkbox-field\r\n slot=\"formData\"\r\n checkbox-label=\"I am not a robot\"\r\n error-message=\"Cannot be a robot\"\r\n checkbox-name=\"isHuman\"\r\n ></sqm-checkbox-field>\r\n <div slot=\"terms\">\r\n <sqm-checkbox-field checkbox-name=\"isHuman\"></sqm-checkbox-field>\r\n </div>\r\n </sqm-portal-register>\r\n \"\"\"\r\n And the checkboxes are checked\r\n When the user tries to register\r\n Then the form is submitted\r\n But no field with key \"isHuman\" is included in the form data\r\n\r\n @motivating\r\n Scenario: Multiple checkboxes need different \"checkbox-name\" values\r\n Given the register form has the following html\r\n \"\"\"\r\n <sqm-portal-register>\r\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\r\n <sqm-checkbox-field\r\n slot=\"formData\"\r\n checkbox-label=\"I am not a robot\"\r\n error-message=\"Cannot be a robot\"\r\n checkbox-name=\"isHuman\"\r\n ></sqm-checkbox-field>\r\n <div slot=\"terms\">\r\n <sqm-checkbox-field checkbox-name=\"myCheckbox\"></sqm-checkbox-field>\r\n </div>\r\n </sqm-portal-register>\r\n \"\"\"\r\n And the checkboxes are not checked\r\n When the user tries to register\r\n Then both checkboxes are bordered in red\r\n And the checkboxes have different error messages\r\n When the user checks the boxes\r\n And tries to register\r\n Then the form is submitted\r\n And the following fields are included in the form data\r\n | feilds |\r\n | isHuman |\r\n | myCheckbox |\r\n\r\n @motivating\r\n Scenario: Checkboxes can be optional\r\n Given the register form has the following html\r\n \"\"\"\r\n <sqm-portal-register>\r\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\r\n <sqm-checkbox-field\r\n slot=\"formData\"\r\n checkbox-label=\"I am not a robot\"\r\n checkbox-optional=\"true\"\r\n checkbox-name=\"isHuman\"\r\n />\r\n </sqm-portal-register>\r\n \"\"\"\r\n And the checkbox is not checked\r\n When the user tries to register\r\n Then there is no error for the checkbox\r\n\r\n @minutae\r\n Scenario Outline: Validation error message is configurable\r\n The error message string is evaluated as an ICU string, but currently is provided no context\r\n Given the checkbox is required\r\n And the checkbox has prop \"error-message\" with <propValue>\r\n When the user tries to register\r\n But they havent checked the checkbox\r\n Then they see <errorMessage> below\r\n Examples:\r\n | propValue | errorMessage |\r\n | | Must be checked |\r\n | My Custom Message | My Custom Message |\r\n\r\n @motivating\r\n Scenario Outline: Checkbox text and link are configurable\r\n Given the checkbox has the following prop values\r\n | prop | value |\r\n | checkbox-label | <labelText> |\r\n | checkbox-label-link | <labelLink> |\r\n | checkbox-label-link-text | <labelLinkText> |\r\n When the user views the checkbox\r\n Then they see <text>\r\n And when they click <labelLinkText> they are redirected to <labelLink>\r\n #First example below is the defaults set by the controller\r\n Examples:\r\n | labelText | labelLinkText | labelLink | text |\r\n | By signing up you agree to the {labelLink} | Terms and Conditions | https://example.com | By signing up you agree to the Terms and Conditions |\r\n | Read our {labelLink} before registration | Terms of Service | https://example.com/terms | Read our Terms of Service before registration |\r\n | By registering you agree to our terms and conditions | N/A | N/A | By registering you agree to our terms and conditions |\r\n\r\n @motivating\r\n Scenario: The form field name attribute is configurable\r\n Given the checkbox has prop \"checkbox-name\" with value \"myCheckBox\"\r\n When the user checks the box\r\n And they register\r\n Then the boolean value of the checkbox is submitted under \"myCheckBox\" field\r\n\r\n @minutae\r\n Scenario Outline: The checkbox field component fails fast if a checkbox name isn't provided\r\n Given the checkbox <mayHave> prop \"checkbox-name\"\r\n And it <mayHavePropValue>\r\n When a user views the checkbox\r\n Then an alert with an error message is displayed in place of the checkbox\r\n And it has a details section\r\n When \"More details\" is clicked\r\n Then the following information is displayed\r\n | information |\r\n | component being used |\r\n | missing attribute(s) |\r\n Examples:\r\n | mayBeAnAttribute | mayHavePropValue |\r\n | doesn't have | N/A |\r\n | has | \"\" |\r\n | has | |";
|
|
9893
9893
|
|
|
9894
9894
|
const CheckboxField_stories = {
|
|
9895
9895
|
title: "Components/Checkbox Field",
|
|
@@ -10038,7 +10038,7 @@ const MultipleCheckboxes = createHookStory(() => {
|
|
|
10038
10038
|
h("sqm-name-fields", { slot: "formData" }),
|
|
10039
10039
|
h("sqm-checkbox-field", { slot: "formData", "checkbox-label": "I am not a robot", "error-message": "Cannot be a robot", "checkbox-name": "isHuman" }),
|
|
10040
10040
|
h("div", { slot: "terms" },
|
|
10041
|
-
h("sqm-checkbox-field",
|
|
10041
|
+
h("sqm-checkbox-field", { "checkbox-name": "otherCheckbox" }))));
|
|
10042
10042
|
});
|
|
10043
10043
|
const OptionalCheckboxes = createHookStory(() => {
|
|
10044
10044
|
setupGraphQL$9();
|
|
@@ -10046,7 +10046,7 @@ const OptionalCheckboxes = createHookStory(() => {
|
|
|
10046
10046
|
h("sqm-name-fields", { slot: "formData" }),
|
|
10047
10047
|
h("sqm-checkbox-field", { slot: "formData", "checkbox-label": "I am not a robot", "checkbox-optional": "true", "checkbox-name": "isHuman" }),
|
|
10048
10048
|
h("div", { slot: "terms" },
|
|
10049
|
-
h("sqm-checkbox-field",
|
|
10049
|
+
h("sqm-checkbox-field", { "checkbox-name": "required" }))));
|
|
10050
10050
|
});
|
|
10051
10051
|
const MissingName = createHookStory(() => {
|
|
10052
10052
|
setupGraphQL$9();
|
|
@@ -10169,7 +10169,7 @@ const UseDropdownField = /*#__PURE__*/Object.freeze({
|
|
|
10169
10169
|
MissingName: MissingName$1
|
|
10170
10170
|
});
|
|
10171
10171
|
|
|
10172
|
-
const scenario$j = "@author:derek\r\n@owner:derek\r\nFeature: Form Input Field\r\n\r\n This component is used as a custom registration field during registration. The field can be text,\r\n a date or phone number. A motivating use case is to ask for a users company name, this value would then be mapped\r\n through the Managed Identity Service and upserted on the user after registration.\r\n\r\n Background: A user exists and is viewing the hosted portal registration\r\n Given a user is viewing \"/register\"\r\n And \"/register\" contains the registration form\r\n And the registration form has a custom input field\r\n\r\n @motivating\r\n Scenario Outline: Input fields are required by default but can be optional\r\n Given the input has prop \"field-optional\" with <value>\r\n And the input is empty\r\n When the user tries to register\r\n Then the input <mayBe> highlighted in red\r\n And an error message <mayAppear> in red below\r\n And form submission <mayBe> blocked\r\n Examples:\r\n | value | mayBe | mayAppear |\r\n | false | is | appears |\r\n | | is | appears |\r\n | true | isn't | doesn't appear |\r\n\r\n @motivating\r\n Scenario: Input field labels are configurable\r\n Given the input has prop \"field-label\" with value \"My Custom Input\"\r\n When the user views the registration form\r\n Then they see the input field\r\n And it has label \"My Custom Input\" above the input\r\n\r\n @minutae\r\n Scenario Outline: The validation error message is configurable\r\n The error message string is evaluated as an ICU string, but currently is provided no context\r\n Given the input is required\r\n And it has prop \"error-message\" with <value>\r\n When the user tries to register\r\n But they haven't filled in the input\r\n Then they see <errorMessage> below\r\n Examples:\r\n | value | errorMessage |\r\n | | Cannot be empty |\r\n | My Custom Message | My Custom Message |\r\n\r\n @motivating\r\n Scenario: Form data attribute name is configurable\r\n Given the input has prop \"field-name\" with value \"myCustomField\"\r\n When the user types \"testing testing\" into the input\r\n And they register\r\n Then \"testing testing\" is submitted under \"myCustomField\" in the form data\r\n\r\n @motivating\r\n Scenario Outline: The input field is a text input by default\r\n Given the input <mayHave> prop \"field-type\" with <value>\r\n When the user views the input field\r\n Then it is a text input\r\n Examples:\r\n | mayHave | value |\r\n | has | text |\r\n | doesn't have | |\r\n\r\n @motivating\r\n Scenario: Date type inputs are supported\r\n Given the input has prop \"field-type\" \"date\"\r\n When the user views the input field\r\n Then they see \"mm/dd/yyyy\" as a placeholder\r\n And they see a calendar icon on the right\r\n When they start typing a date\r\n Then it maintains the \"mm/dd/yyyy\" format\r\n When they click the calendar icon\r\n Then a dropdown appears\r\n And they see a calendar\r\n When they select a date\r\n Then it is applied to the input\r\n\r\n @motivating\r\n Scenario: Phone number type inputs are supported\r\n Given the input has prop \"field-type\" with value \"tel\"\r\n When the user starts typing a phone number in the input\r\n Then it is formatted into the following form \"(XXX) XXX-XXXX\"\r\n When they pre-fix their phone number with a \"1\"\r\n Then it is formatted into the following form \"1 (XXX) XXX-XXXX\"\r\n\r\n @landmine\r\n Scenario: Telephone formatting is removed after 10 numbers\r\n Given a user using a phone number input field\r\n And they entered their 10 character phone number\r\n And it was not prefixed with a 1\r\n When they add another character\r\n Then the formatting is removed\r\n\r\n @landmine\r\n Scenario Outline: Input values are always recorded as strings in the form data\r\n Given the input has prop \"field-type\" with <value>\r\n And it has a \"field-name\"\r\n When the user inputs <formInput>\r\n And they register\r\n Then <formData> is recorded in the form data as a string\r\n Examples:\r\n | value | formInput | formData |\r\n | text | Hello there | Hello there |\r\n | date | 05/07/2021 | 2021-05-07 |\r\n | tel | (250) 234-9877 | (250) 234-9877 |\r\n\r\n @minutae\r\n Scenario Outline: The input field component fails fast if a field name isn't provided\r\n Given the input <mayHave> prop \"field-name\"\r\n And it <mayHavePropValue>\r\n When a user views the input\r\n Then an alert with an error message is displayed in place of the input\r\n And it has a details section\r\n When \"More details\" is clicked\r\n Then the following information
|
|
10172
|
+
const scenario$j = "@author:derek\r\n@owner:derek\r\nFeature: Form Input Field\r\n\r\n This component is used as a custom registration field during registration. The field can be text,\r\n a date or phone number. A motivating use case is to ask for a users company name, this value would then be mapped\r\n through the Managed Identity Service and upserted on the user after registration.\r\n\r\n Background: A user exists and is viewing the hosted portal registration\r\n Given a user is viewing \"/register\"\r\n And \"/register\" contains the registration form\r\n And the registration form has a custom input field\r\n\r\n @motivating\r\n Scenario Outline: Input fields are required by default but can be optional\r\n Given the input has prop \"field-optional\" with <value>\r\n And the input is empty\r\n When the user tries to register\r\n Then the input <mayBe> highlighted in red\r\n And an error message <mayAppear> in red below\r\n And form submission <mayBe> blocked\r\n Examples:\r\n | value | mayBe | mayAppear |\r\n | false | is | appears |\r\n | | is | appears |\r\n | true | isn't | doesn't appear |\r\n\r\n @motivating\r\n Scenario: Input field labels are configurable\r\n Given the input has prop \"field-label\" with value \"My Custom Input\"\r\n When the user views the registration form\r\n Then they see the input field\r\n And it has label \"My Custom Input\" above the input\r\n\r\n @minutae\r\n Scenario Outline: The validation error message is configurable\r\n The error message string is evaluated as an ICU string, but currently is provided no context\r\n Given the input is required\r\n And it has prop \"error-message\" with <value>\r\n When the user tries to register\r\n But they haven't filled in the input\r\n Then they see <errorMessage> below\r\n Examples:\r\n | value | errorMessage |\r\n | | Cannot be empty |\r\n | My Custom Message | My Custom Message |\r\n\r\n @motivating\r\n Scenario: Form data attribute name is configurable\r\n Given the input has prop \"field-name\" with value \"myCustomField\"\r\n When the user types \"testing testing\" into the input\r\n And they register\r\n Then \"testing testing\" is submitted under \"myCustomField\" in the form data\r\n\r\n @motivating\r\n Scenario Outline: The input field is a text input by default\r\n Given the input <mayHave> prop \"field-type\" with <value>\r\n When the user views the input field\r\n Then it is a text input\r\n Examples:\r\n | mayHave | value |\r\n | has | text |\r\n | doesn't have | |\r\n\r\n @motivating\r\n Scenario: Date type inputs are supported\r\n Given the input has prop \"field-type\" \"date\"\r\n When the user views the input field\r\n Then they see \"mm/dd/yyyy\" as a placeholder\r\n And they see a calendar icon on the right\r\n When they start typing a date\r\n Then it maintains the \"mm/dd/yyyy\" format\r\n When they click the calendar icon\r\n Then a dropdown appears\r\n And they see a calendar\r\n When they select a date\r\n Then it is applied to the input\r\n\r\n @landmine\r\n Scenario: The clear text button in the date picker does not clear the date\r\n Due to an incompatibility between our shoelace version and the browser, the clear funtionality is not supported currently\r\n Given the input has prop \"field-type\" \"date\"\r\n And the user has entered a date\r\n When they click the calendar icon\r\n And click the 'clear' text button\r\n Then their selected date is not cleared\r\n\r\n @motivating\r\n Scenario: Phone number type inputs are supported\r\n Given the input has prop \"field-type\" with value \"tel\"\r\n When the user starts typing a phone number in the input\r\n Then it is formatted into the following form \"(XXX) XXX-XXXX\"\r\n When they pre-fix their phone number with a \"1\"\r\n Then it is formatted into the following form \"1 (XXX) XXX-XXXX\"\r\n\r\n @landmine\r\n Scenario: Telephone formatting is removed after 10 numbers\r\n Given a user using a phone number input field\r\n And they entered their 10 character phone number\r\n And it was not prefixed with a 1\r\n When they add another character\r\n Then the formatting is removed\r\n\r\n @landmine\r\n Scenario Outline: Input values are always recorded as strings in the form data\r\n Given the input has prop \"field-type\" with <value>\r\n And it has a \"field-name\"\r\n When the user inputs <formInput>\r\n And they register\r\n Then <formData> is recorded in the form data as a string\r\n Examples:\r\n | value | formInput | formData |\r\n | text | Hello there | Hello there |\r\n | date | 05/07/2021 | 2021-05-07 |\r\n | tel | (250) 234-9877 | (250) 234-9877 |\r\n\r\n @minutae\r\n Scenario Outline: The input field component fails fast if a field name isn't provided\r\n Given the input <mayHave> prop \"field-name\"\r\n And it <mayHavePropValue>\r\n When a user views the input\r\n Then an alert with an error message is displayed in place of the input\r\n And it has a details section\r\n When \"More details\" is clicked\r\n Then the following information is displayed\r\n | information |\r\n | component being used |\r\n | missing attribute(s) |\r\n Examples:\r\n | mayBeAnAttribute | mayHavePropValue |\r\n | doesn't have | N/A |\r\n | has | \"\" |\r\n | has | |";
|
|
10173
10173
|
|
|
10174
10174
|
const InputField_stories = {
|
|
10175
10175
|
title: "Components/Input Field",
|