@saasquatch/mint-components 1.13.2 → 1.13.3-10

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 (91) hide show
  1. package/dist/cjs/ErrorView-b2fcf954.js +35 -0
  2. package/dist/cjs/{ShadowViewAddon-cf0ee0a0.js → ShadowViewAddon-3ddee92b.js} +6 -5
  3. package/dist/cjs/copy-text-view-c85acaaa.js +96 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/mint-components.cjs.js +1 -1
  6. package/dist/cjs/sqm-banking-info-form_17.cjs.entry.js +3 -2
  7. package/dist/cjs/sqm-big-stat_39.cjs.entry.js +3 -2
  8. package/dist/cjs/{sqm-invoice-table-view-baded4af.js → sqm-invoice-table-view-16ac73d0.js} +2 -31
  9. package/dist/cjs/sqm-pagination_3.cjs.entry.js +6 -5
  10. package/dist/cjs/sqm-qr-code-view-3f30d2cd.js +94 -0
  11. package/dist/cjs/sqm-qr-code.cjs.entry.js +199 -0
  12. package/dist/cjs/sqm-stencilbook.cjs.entry.js +55 -6
  13. package/dist/cjs/{copy-text-view-a5524c20.js → useReferralCodes-82e8797b.js} +0 -93
  14. package/dist/collection/collection-manifest.json +1 -0
  15. package/dist/collection/components/sqm-qr-code/QRCode.stories.js +37 -0
  16. package/dist/collection/components/sqm-qr-code/sqm-qr-code-view.js +89 -0
  17. package/dist/collection/components/sqm-qr-code/sqm-qr-code.js +229 -0
  18. package/dist/collection/components/sqm-qr-code/useQRCode.js +129 -0
  19. package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +2 -0
  20. package/dist/esm/ErrorView-48e2b969.js +33 -0
  21. package/dist/esm/{ShadowViewAddon-fd07e6e1.js → ShadowViewAddon-499b1f86.js} +2 -1
  22. package/dist/esm/copy-text-view-782137ba.js +94 -0
  23. package/dist/esm/loader.js +1 -1
  24. package/dist/esm/mint-components.js +1 -1
  25. package/dist/esm/sqm-banking-info-form_17.entry.js +2 -1
  26. package/dist/esm/sqm-big-stat_39.entry.js +3 -2
  27. package/dist/esm/{sqm-invoice-table-view-af69cd33.js → sqm-invoice-table-view-2c726568.js} +2 -30
  28. package/dist/esm/sqm-pagination_3.entry.js +2 -1
  29. package/dist/esm/sqm-qr-code-view-7c441329.js +92 -0
  30. package/dist/esm/sqm-qr-code.entry.js +195 -0
  31. package/dist/esm/sqm-stencilbook.entry.js +55 -6
  32. package/dist/esm/{copy-text-view-459a2e35.js → useReferralCodes-8f75921a.js} +1 -93
  33. package/dist/esm-es5/ErrorView-48e2b969.js +1 -0
  34. package/dist/esm-es5/ShadowViewAddon-499b1f86.js +1 -0
  35. package/dist/esm-es5/copy-text-view-782137ba.js +1 -0
  36. package/dist/esm-es5/loader.js +1 -1
  37. package/dist/esm-es5/mint-components.js +1 -1
  38. package/dist/esm-es5/sqm-banking-info-form_17.entry.js +1 -1
  39. package/dist/esm-es5/sqm-big-stat_39.entry.js +1 -1
  40. package/dist/esm-es5/sqm-invoice-table-view-2c726568.js +1 -0
  41. package/dist/esm-es5/sqm-pagination_3.entry.js +1 -1
  42. package/dist/esm-es5/sqm-qr-code-view-7c441329.js +1 -0
  43. package/dist/esm-es5/sqm-qr-code.entry.js +1 -0
  44. package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
  45. package/dist/esm-es5/useReferralCodes-8f75921a.js +1 -0
  46. package/dist/mint-components/mint-components.esm.js +1 -1
  47. package/dist/mint-components/{p-f29eda2f.entry.js → p-012af236.entry.js} +4 -4
  48. package/dist/mint-components/p-06267664.system.js +1 -0
  49. package/dist/mint-components/p-31015791.js +1 -0
  50. package/dist/mint-components/p-37996351.system.js +1 -1
  51. package/dist/mint-components/p-3a62a7e2.system.js +1 -0
  52. package/dist/mint-components/p-3b90e01b.system.js +1 -0
  53. package/dist/mint-components/p-3f067fd5.js +1 -0
  54. package/dist/mint-components/p-3f7b81b8.js +52 -0
  55. package/dist/mint-components/p-45e82465.entry.js +17 -0
  56. package/dist/mint-components/p-5afd7e38.system.entry.js +1 -0
  57. package/dist/mint-components/p-5cb7f9fc.system.entry.js +1 -0
  58. package/dist/mint-components/{p-b51e79b3.entry.js → p-7846937e.entry.js} +2 -2
  59. package/dist/mint-components/p-97038074.system.entry.js +1 -0
  60. package/dist/mint-components/p-9acb5038.js +1 -0
  61. package/dist/mint-components/p-a7746488.system.js +1 -0
  62. package/dist/mint-components/p-b630683c.system.entry.js +1 -0
  63. package/dist/mint-components/p-da4ff3b4.system.js +1 -0
  64. package/dist/mint-components/p-dbc0e4f8.system.js +1 -0
  65. package/dist/mint-components/p-dfcc0f0e.entry.js +9 -0
  66. package/dist/mint-components/{p-d12fc50f.js → p-e2d5cd22.js} +20 -20
  67. package/dist/mint-components/p-e6e2b28b.js +1 -0
  68. package/dist/mint-components/p-e706440c.system.entry.js +1 -0
  69. package/dist/mint-components/{p-87d385d8.entry.js → p-f15c1a53.entry.js} +1 -1
  70. package/dist/types/components/sqm-qr-code/QRCode.stories.d.ts +8 -0
  71. package/dist/types/components/sqm-qr-code/sqm-qr-code-view.d.ts +17 -0
  72. package/dist/types/components/sqm-qr-code/sqm-qr-code.d.ts +41 -0
  73. package/dist/types/components/sqm-qr-code/useQRCode.d.ts +3 -0
  74. package/dist/types/components.d.ts +72 -0
  75. package/docs/docs.docx +0 -0
  76. package/docs/raisins.json +1 -1
  77. package/grapesjs/grapesjs.js +1 -1
  78. package/package.json +1 -1
  79. package/dist/esm-es5/ShadowViewAddon-fd07e6e1.js +0 -1
  80. package/dist/esm-es5/copy-text-view-459a2e35.js +0 -1
  81. package/dist/esm-es5/sqm-invoice-table-view-af69cd33.js +0 -1
  82. package/dist/mint-components/p-57e2c2fa.system.js +0 -1
  83. package/dist/mint-components/p-717cc8ac.system.js +0 -1
  84. package/dist/mint-components/p-71bc04d2.system.entry.js +0 -1
  85. package/dist/mint-components/p-7f2d4212.js +0 -52
  86. package/dist/mint-components/p-9320582e.system.js +0 -1
  87. package/dist/mint-components/p-962f3200.js +0 -1
  88. package/dist/mint-components/p-abedbbf3.system.entry.js +0 -1
  89. package/dist/mint-components/p-b93fd99c.system.entry.js +0 -1
  90. package/dist/mint-components/p-bc83460e.system.entry.js +0 -1
  91. package/dist/mint-components/p-da932ca2.entry.js +0 -9
@@ -0,0 +1,195 @@
1
+ import { r as registerInstance, h as h$1 } from './index-91e7729f.js';
2
+ import { k as useState, f as useEffect, n as h } from './stencil-hooks.module-4bc38af4.js';
3
+ import { d as dist, H, J, F as Fn, w as wn, $ as $e, B, i as isDemo } from './index.module-89a79f66.js';
4
+ import { c as cjs } from './cjs-bdfb4486.js';
5
+ import { g as getProps } from './utils-334c1e34.js';
6
+ import './JSS-67b5cff8.js';
7
+ import { a as REFERRAL_CODES_NAMESPACE } from './useReferralCodes-8f75921a.js';
8
+ import './ErrorView-48e2b969.js';
9
+ import { Q as QrCodeView } from './sqm-qr-code-view-7c441329.js';
10
+
11
+ const ShareLinkQuery = dist.gql `
12
+ query shareLink($programId: ID, $engagementMedium: UserEngagementMedium!) {
13
+ user: viewer {
14
+ ... on User {
15
+ shareLink(
16
+ programId: $programId
17
+ engagementMedium: $engagementMedium
18
+ shareMedium: DIRECT
19
+ )
20
+ }
21
+ }
22
+ }
23
+ `;
24
+ const WIDGET_ENGAGEMENT_EVENT = dist.gql `
25
+ mutation loadEvent($eventMeta: UserAnalyticsEvent!) {
26
+ createUserAnalyticsEvent(eventMeta: $eventMeta)
27
+ }
28
+ `;
29
+ function useQRCode(props) {
30
+ var _a;
31
+ const programId = H();
32
+ const user = J();
33
+ const engagementMedium = B();
34
+ const contextData = Fn(REFERRAL_CODES_NAMESPACE);
35
+ const [dialogIsOpen, setDialog] = useState(false);
36
+ const [qrLink, setQrUrl] = useState(null);
37
+ const [error, setError] = useState(false);
38
+ const [viewError, setViewError] = useState(false);
39
+ const { data, errors } = wn(ShareLinkQuery, { programId, engagementMedium }, !(user === null || user === void 0 ? void 0 : user.jwt) || (contextData === null || contextData === void 0 ? void 0 : contextData.shareLink) !== undefined);
40
+ const [sendLoadEvent] = $e(WIDGET_ENGAGEMENT_EVENT);
41
+ const shareLink = (_a = data === null || data === void 0 ? void 0 : data.user) === null || _a === void 0 ? void 0 : _a.shareLink;
42
+ const qrPrefix = `${shareLink}?qrCode`;
43
+ useEffect(() => {
44
+ if (!shareLink)
45
+ return;
46
+ const getQrCode = async () => {
47
+ try {
48
+ const res = await fetch(`${shareLink}?qrCode&qrCodeImageFormat=svg`);
49
+ const blob = await res.blob();
50
+ const url = URL.createObjectURL(blob);
51
+ setQrUrl(url);
52
+ }
53
+ catch (e) {
54
+ setViewError(true);
55
+ }
56
+ };
57
+ getQrCode();
58
+ }, [shareLink]);
59
+ const fireEvent = async () => {
60
+ sendLoadEvent({
61
+ eventMeta: {
62
+ programId,
63
+ id: user === null || user === void 0 ? void 0 : user.id,
64
+ accountId: user === null || user === void 0 ? void 0 : user.accountId,
65
+ type: "USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT",
66
+ meta: {
67
+ engagementMedium,
68
+ shareMedium: "DIRECT",
69
+ },
70
+ },
71
+ });
72
+ };
73
+ const createDownloadable = async () => {
74
+ try {
75
+ const res = await fetch(`${qrPrefix}&qrCodeSize=800&qrCodeImageFormat=png`);
76
+ const blob = await res.blob();
77
+ const url = URL.createObjectURL(blob);
78
+ // Successful
79
+ if (blob)
80
+ fireEvent();
81
+ // Trigger download
82
+ const link = document.createElement("a");
83
+ link.href = url;
84
+ link.download = "qrCode.png";
85
+ document.body.appendChild(link);
86
+ link.click();
87
+ document.body.removeChild(link);
88
+ }
89
+ catch (e) {
90
+ console.error("Failed to fetch QR code:", e);
91
+ setError(true);
92
+ }
93
+ };
94
+ const createPrintable = async () => {
95
+ try {
96
+ const res = await fetch(`${qrPrefix}&qrCodeSize=1000&qrCodeImageFormat=png&qrCodeErrorCorrectionLevel=H`);
97
+ const blob = await res.blob();
98
+ const url = URL.createObjectURL(blob);
99
+ // Successful
100
+ if (blob)
101
+ fireEvent();
102
+ // Trigger print
103
+ const page = window.open("about:blank", "_new");
104
+ const img = page.document.createElement("img");
105
+ img.src = url;
106
+ img.onload = () => {
107
+ page.print();
108
+ page.close();
109
+ };
110
+ page.document.body.appendChild(img);
111
+ }
112
+ catch (e) {
113
+ console.error("Failed to fetch QR code: ", e);
114
+ setError(true);
115
+ }
116
+ };
117
+ return {
118
+ ...props,
119
+ qrLink,
120
+ dialogIsOpen,
121
+ error: error,
122
+ viewError: viewError || !!(errors === null || errors === void 0 ? void 0 : errors.message),
123
+ showDialog: () => {
124
+ setError(false);
125
+ setDialog(true);
126
+ },
127
+ hideDialog: () => {
128
+ setError(false);
129
+ setDialog(false);
130
+ },
131
+ createDownloadable,
132
+ createPrintable,
133
+ };
134
+ }
135
+
136
+ const QrCode = class {
137
+ constructor(hostRef) {
138
+ registerInstance(this, hostRef);
139
+ /**
140
+ * @uiName Title
141
+ */
142
+ this.titleText = "Share your QR code";
143
+ /**
144
+ * @uiName View QR code text
145
+ */
146
+ this.viewCodeText = "View QR code";
147
+ /**
148
+ * @uiName Download QR code text
149
+ */
150
+ this.downloadCodeText = "Download";
151
+ /**
152
+ * @uiName Print QR code text
153
+ */
154
+ this.printCodeText = "Print";
155
+ /**
156
+ * @uiName Header for error banner
157
+ */
158
+ this.errorHeaderText = "There was an error loading your QR code";
159
+ /**
160
+ * @uiName Description for error banner
161
+ */
162
+ this.errorDescriptionText = "Please refresh this page and try again";
163
+ h(this);
164
+ }
165
+ disconnectedCallback() { }
166
+ render() {
167
+ const thisProps = getProps(this);
168
+ const props = isDemo() ? useDemoQRCode(thisProps) : useQRCode(thisProps);
169
+ return h$1(QrCodeView, Object.assign({}, props));
170
+ }
171
+ };
172
+ function useDemoQRCode(props) {
173
+ const [dialogIsOpen, setDialog] = useState(false);
174
+ return cjs({
175
+ dialogIsOpen,
176
+ showDialog: () => setDialog(true),
177
+ hideDialog: () => setDialog(false),
178
+ titleText: props.titleText,
179
+ viewCodeText: props.viewCodeText,
180
+ downloadCodeText: props.downloadCodeText,
181
+ printCodeText: props.printCodeText,
182
+ qrLink: "https://media.istockphoto.com/id/1251071788/vector/qr-code-bar-code-black-icon-digital-technology.jpg?s=612x612&w=0&k=20&c=maw4OqMSEegAdSo8Drm9HO7i1ddddvP2YaL1UuWbRig=",
183
+ fireViewQrEvent: () => {
184
+ console.log("View QR Code clicked");
185
+ },
186
+ createDownloadable: async () => {
187
+ console.log("Download QR Code clicked");
188
+ },
189
+ createPrintable: async () => {
190
+ console.log("Print QR Code clicked");
191
+ },
192
+ }, props.demoData || {}, { arrayMerge: (_, a) => a });
193
+ }
194
+
195
+ export { QrCode as sqm_qr_code };
@@ -5,8 +5,9 @@ import { j as jn, k as kn, b as setUserIdentity, d as dist, X as Xe, p as setPro
5
5
  import './cjs-bdfb4486.js';
6
6
  import './utils-334c1e34.js';
7
7
  import { c as createStyleSheet } from './JSS-67b5cff8.js';
8
- import { C as CopyTextView } from './copy-text-view-459a2e35.js';
8
+ import './useReferralCodes-8f75921a.js';
9
9
  import './mixins-83f90fa1.js';
10
+ import { C as CopyTextView } from './copy-text-view-782137ba.js';
10
11
  import { G as GenericTableView } from './GenericTableView-7b9087af.js';
11
12
  import './useChildElements-7945ae56.js';
12
13
  import { l as luxon } from './luxon-8d51c92b.js';
@@ -28,9 +29,11 @@ import { P as PortalProfileView } from './sqm-portal-profile-view-93003974.js';
28
29
  import './utilities-5b0ca040.js';
29
30
  import { P as PortalResetPasswordView } from './sqm-portal-reset-password-view-54a8651f.js';
30
31
  import { P as PortalVerifyEmailView } from './sqm-portal-verify-email-view-b12cb894.js';
31
- import { S as ShareButtonView, L as LeaderboardView, B as BigStatView, P as PortalFrameView, E as EditProfileView, u as useShareLink, a as useShareButton, b as useDemoBigStat, c as StatContainerView, d as PortalChangePasswordView, e as PortalRegisterView, T as TaskCardView, f as ProgressBarView, g as PoweredByImg$1, h as PortalFooterView, H as HeroView, R as ReferralIframeView, N as NameFieldsView, C as CheckboxFieldView, D as DropdownFieldView, I as InputFieldView, i as RewardExchangeView, r as rewardExchangeCustomErrorMsg, j as rewardExchangeLongText, k as rewardExchangeSelected, l as chooseAmountFixed, m as chooseAmountFixedNoDescription, n as chooseAmountVariable, o as chooseAmountVariableNoDescription, p as chooseAmountVariableDisabled, q as chooseAmountVariableUnavailable, s as confirmFixed, t as confirmVariable, v as redemptionError, w as queryError, x as success, y as successVariable, z as loading, A as empty$1, F as rewardExchange, G as CardFeedView, J as CouponCodeView, K as ProgressBar$2, M as autoColorScaleCss, O as ShadowViewAddon } from './ShadowViewAddon-fd07e6e1.js';
32
+ import './ErrorView-48e2b969.js';
33
+ import { Q as QrCodeView } from './sqm-qr-code-view-7c441329.js';
34
+ import { S as ShareButtonView, L as LeaderboardView, B as BigStatView, P as PortalFrameView, E as EditProfileView, u as useShareLink, a as useShareButton, b as useDemoBigStat, c as StatContainerView, d as PortalChangePasswordView, e as PortalRegisterView, T as TaskCardView, f as ProgressBarView, g as PoweredByImg$1, h as PortalFooterView, H as HeroView, R as ReferralIframeView, N as NameFieldsView, C as CheckboxFieldView, D as DropdownFieldView, I as InputFieldView, i as RewardExchangeView, r as rewardExchangeCustomErrorMsg, j as rewardExchangeLongText, k as rewardExchangeSelected, l as chooseAmountFixed, m as chooseAmountFixedNoDescription, n as chooseAmountVariable, o as chooseAmountVariableNoDescription, p as chooseAmountVariableDisabled, q as chooseAmountVariableUnavailable, s as confirmFixed, t as confirmVariable, v as redemptionError, w as queryError, x as success, y as successVariable, z as loading, A as empty$1, F as rewardExchange, G as CardFeedView, J as CouponCodeView, K as ProgressBar$2, M as autoColorScaleCss, O as ShadowViewAddon } from './ShadowViewAddon-499b1f86.js';
32
35
  import { P as PortalContainerView, a as PortalSectionView } from './sqm-portal-container-view-1683ae32.js';
33
- import { O as OtherRegionSlotView, I as InvoiceTableView, T as TaxForm } from './sqm-invoice-table-view-af69cd33.js';
36
+ import { O as OtherRegionSlotView, I as InvoiceTableView, T as TaxForm } from './sqm-invoice-table-view-2c726568.js';
34
37
 
35
38
  /**
36
39
  * lodash (Custom Build) <https://lodash.com/>
@@ -4100,7 +4103,7 @@ const promoCodeReferralWidget = "<sqm-brand brand-color=\"#4225c4\" brand-font=\
4100
4103
 
4101
4104
  const loyaltyWidget = "<sqm-brand brand-color=\"#4225c4\" brand-font=\"Nunito Sans\">\n <sqm-portal-container\n direction=\"column\"\n padding=\"small\"\n gap=\"xxxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n background-color=\"#ffffff\"\n >\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-hero-image\n image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\"\n header=\"MyCompany Rewards\"\n description=\"Complete tasks to earn rewards\"\n layout=\"overlay\"\n padding-image=\"xxxx-large\"\n padding-text=\"xxx-large\"\n image-pos=\"center\"\n overlay-color=\"#5e5669\"\n overlay-opacity=\"0.9\"\n >\n </sqm-hero-image>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n max-width=\"770px\"\n center\n display=\"grid\"\n >\n <sqm-program-explainer header=\"How it works\">\n <sqm-program-explainer-step\n description=\"Complete tasks like uploading your first video or sharing videos with friends\"\n header=\"Earn points for using our product\"\n icon=\"cash-stack\"\n text-color=\"#000000\"\n >\n </sqm-program-explainer-step>\n <sqm-program-explainer-step\n description=\"Redeem rewards like one free month of Enterprise or two plane tickets to anywhere in North America\"\n header=\"Redeem rewards with your points\"\n icon=\"people\"\n text-color=\"#000000\"\n >\n </sqm-program-explainer-step>\n </sqm-program-explainer>\n <sqm-portal-container\n center\n direction=\"row\"\n display=\"flex\"\n justify-content=\"space-between\"\n gap=\"xxx-large\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-stat-container space=\"xxx-large\" display=\"flex\">\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsRedeemed/CREDIT/POINTS\"\n >\n <p>Points Redeemed</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/POINT/value/global\"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n </sqm-portal-container>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-titled-section\n label-margin=\"small\"\n padding=\"none\"\n text-align=\"center\"\n >\n <h3 slot=\"label\">Earn points</h3>\n </sqm-titled-section>\n <sqm-card-feed gap=\"24\" width=\"347\">\n <sqm-task-card\n reward-amount=\"20\"\n goal=\"1\"\n card-title=\"Complete a Survey\"\n description=\"Fill out our NPS survey and get 20 points for giving us honest feedback.\"\n button-text=\"Take survey\"\n reward-unit=\"Points\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"250\"\n goal=\"500\"\n show-progress-bar\n card-title=\"Spend $500\"\n description=\"Earn 250 points when you spend $500 or more.\"\n button-text=\"See plans\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n progress-bar-unit=\"$\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n goal=\"1\"\n reward-amount=\"50\"\n card-title=\"Follow Us on X\"\n description=\"Earn 50 points when you Follow Us on X!\"\n button-text=\"Follow\"\n button-link=\"https://twitter.com/\"\n open-new-tab=\"true\"\n event-key=\"socialFollow\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"1\"\n reward-unit=\"Free Month\"\n goal=\"1\"\n card-title=\"Upgrade Your Plan\"\n description=\"Receive one free month for being a committed customer when you upgrade your plan.\"\n button-text=\"Upgrade\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n open-new-tab=\"false\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n </sqm-card-feed>\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n padding=\"none\"\n text-align=\"center\"\n label-margin=\"xx-small\"\n >\n <h3 slot=\"label\">Reward History</h3>\n </sqm-titled-section>\n <sqm-rewards-table\n per-page=\"4\"\n hidden-columns=\"0\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-rewards-table-reward-column\n available-text=\"{availableAmount} remaining\"\n column-title=\"Reward\"\n copy-text=\"Copied!\"\n redeemed-text=\"{redeemedAmount} redeemed\"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user=\"Anonymous User\"\n column-title=\"Source\"\n deleted-user=\"Deleted User\"\n referral-text=\"{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}\"\n reward-exchange-text=\"Reward Exchange\"\n reward-source-text=\"{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}\"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title=\"Status\"\n expiry-text=\"Expires on \"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }\"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title=\"Date received\"\n date-shown=\"dateGiven\"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png\"\n empty-state-header=\"View your rewards\"\n empty-state-text=\"Refer friends and complete tasks to view the details of your rewards\"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-portal-container>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n terms-link=\"https:\\/\\/example.com\"\n faq-link=\"https:\\/\\/example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n";
4102
4105
 
4103
- const instantAccessReferrerShareWidget = "<sqm-hero\n background=\"https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png\"\n columns=\"2\"\n padding-size=\"medium\"\n wrap-direction=\"wrap\"\n secondary-background=\"#FFFFFF\"\n min-height=\"200\"\n ><sqm-referral-card\n vertical-alignment=\"start\"\n slot=\"secondary-column\"\n padding-bottom=\"small\"\n padding-left=\"x-large\"\n padding-right=\"x-large\"\n padding-top=\"small\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"none\"\n padding=\"none\"\n slot=\"header\"\n ><h1 slot=\"label\">Invite your friends to unlock rewards!</h1>\n <p slot=\"content\">\n They&#x2019;ll get a &#x24;50 credit towards a new account and\n you&#x2019;ll get a &#x24;50 in credit for each friend you refer.\n </p></sqm-titled-section\n >\n <sqm-portal-container\n gap=\"small\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n slot=\"left\"\n >\n <p style=\"margin: 0\">Choose how you want to share:</p>\n <sqm-share-link\n tooltip-text=\"Copied to Clipboard\"\n tooltip-lifespan=\"1000\"\n >\n </sqm-share-link>\n <sqm-share-button\n medium=\"email\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium=\"linkedin\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium=\"twitter\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Post about us on X\n </sqm-share-button> </sqm-portal-container\n ><sqm-portal-container\n display=\"flex\"\n slot=\"footer\"\n gap=\"small\"\n justify-content=\"center\"\n >\n <sqm-logout-current-user\n user-identification-text=\"{email}\"\n switch-user-link=\"#\"\n switch-user-text=\"not you?\"\n ></sqm-logout-current-user>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n show-powered-by=\"true\"\n padding-bottom=\"x-small\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n hide-support-text\n terms-text=\"Terms And Conditions\"\n terms-link=\"https://example.com\"\n ></sqm-portal-footer></sqm-portal-container\n ></sqm-referral-card>\n</sqm-hero>\n";
4106
+ const instantAccessReferrerShareWidget = "<sqm-hero\n background=\"https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png\"\n columns=\"2\"\n padding-size=\"medium\"\n wrap-direction=\"wrap\"\n secondary-background=\"#FFFFFF\"\n min-height=\"200\"\n ><sqm-referral-card\n vertical-alignment=\"start\"\n slot=\"secondary-column\"\n padding-bottom=\"small\"\n padding-left=\"x-large\"\n padding-right=\"x-large\"\n padding-top=\"small\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"none\"\n padding=\"none\"\n slot=\"header\"\n ><h1 slot=\"label\">Invite your friends to unlock rewards!</h1>\n <p slot=\"content\">\n They&#x2019;ll get a &#x24;50 credit towards a new account and\n you&#x2019;ll get a &#x24;50 in credit for each friend you refer.\n </p></sqm-titled-section\n >\n <sqm-portal-container\n gap=\"small\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n slot=\"left\"\n >\n <p style=\"margin: 0\">Choose how you want to share:</p>\n <sqm-share-link\n tooltip-text=\"Copied to Clipboard\"\n tooltip-lifespan=\"1000\"\n >\n </sqm-share-link>\n <sqm-share-button\n medium=\"email\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium=\"linkedin\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium=\"twitter\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Post about us on X\n </sqm-share-button> </sqm-portal-container\n ><sqm-portal-container\n display=\"flex\"\n slot=\"footer\"\n gap=\"small\"\n justify-content=\"center\"\n >\n <sqm-logout-current-user\n user-identification-text=\"{email}\"\n switch-user-link=\"#\"\n switch-user-text=\"not you?\"\n email-error-text=\"Error fetching email\"\n ></sqm-logout-current-user>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n show-powered-by=\"true\"\n padding-bottom=\"x-small\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n hide-support-text\n terms-text=\"Terms And Conditions\"\n terms-link=\"https://example.com\"\n ></sqm-portal-footer></sqm-portal-container\n ></sqm-referral-card>\n</sqm-hero>\n";
4104
4107
 
4105
4108
  const instantAccessFriendCouponWidget = "<sqm-hero\n background=\"https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png\"\n columns=\"2\"\n padding-size=\"medium\"\n wrap-direction=\"wrap\"\n secondary-background=\"#FFFFFF\"\n>\n <sqm-referral-card\n vertical-alignment=\"start\"\n padding-bottom=\"small\"\n padding-left=\"x-large\"\n padding-right=\"x-large\"\n padding-top=\"small\"\n slot=\"secondary-column\"\n >\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"flex\"\n justify-content=\"center\"\n max-width=\"100%\"\n padding=\"none\"\n slot=\"header\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n >\n <h1 slot=\"label\">You got &#x24;50 off thanks to a friend!</h1>\n <p slot=\"content\">\n <span> Use this reward to get &#x24;50 off your next purchase. </span>\n </p>\n </sqm-titled-section>\n\n <sqm-coupon-code copy-button-style=\"button-outside\"></sqm-coupon-code>\n </sqm-portal-container>\n\n <sqm-portal-footer\n slot=\"footer\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n hide-support-text\n terms-text=\"Terms And Conditions\"\n terms-link=\"https://example.com\"\n ></sqm-portal-footer>\n </sqm-referral-card>\n</sqm-hero>\n";
4106
4109
 
@@ -15667,6 +15670,51 @@ const PortalGoogleRegistrationFormStories = /*#__PURE__*/Object.freeze({
15667
15670
  TermsAndConditions: TermsAndConditions$4
15668
15671
  });
15669
15672
 
15673
+ const QRCode_stories = {
15674
+ title: "Components/QR Code",
15675
+ };
15676
+ const defaultProps$r = {
15677
+ dialogIsOpen: false,
15678
+ error: false,
15679
+ viewError: false,
15680
+ showDialog: () => void 0,
15681
+ hideDialog: () => void 0,
15682
+ qrLink: "https://media.istockphoto.com/id/1251071788/vector/qr-code-bar-code-black-icon-digital-technology.jpg?s=612x612&w=0&k=20&c=maw4OqMSEegAdSo8Drm9HO7i1ddddvP2YaL1UuWbRig=",
15683
+ createDownloadable: async () => {
15684
+ console.log("Download QR Code clicked");
15685
+ },
15686
+ createPrintable: async () => {
15687
+ console.log("Print QR Code clicked");
15688
+ },
15689
+ titleText: "Share your QR code",
15690
+ viewCodeText: "View QR code",
15691
+ downloadCodeText: "Download",
15692
+ printCodeText: "Print",
15693
+ errorHeaderText: "There was an error loading your QR code",
15694
+ errorDescriptionText: "Please refresh this page and try again",
15695
+ };
15696
+ const Default$o = () => {
15697
+ return h(QrCodeView, Object.assign({}, defaultProps$r));
15698
+ };
15699
+ const Expanded = () => {
15700
+ return h(QrCodeView, Object.assign({}, defaultProps$r, { dialogIsOpen: true }));
15701
+ };
15702
+ const Error$b = () => {
15703
+ return (h(QrCodeView, Object.assign({}, defaultProps$r, { dialogIsOpen: true, viewError: true })));
15704
+ };
15705
+ const DownloadError = () => {
15706
+ return (h(QrCodeView, Object.assign({}, defaultProps$r, { dialogIsOpen: false, error: true })));
15707
+ };
15708
+
15709
+ const QRCode = /*#__PURE__*/Object.freeze({
15710
+ __proto__: null,
15711
+ 'default': QRCode_stories,
15712
+ Default: Default$o,
15713
+ Expanded: Expanded,
15714
+ Error: Error$b,
15715
+ DownloadError: DownloadError
15716
+ });
15717
+
15670
15718
  /**
15671
15719
  *
15672
15720
  * Themes
@@ -15679,7 +15727,7 @@ const PortalGoogleRegistrationFormStories = /*#__PURE__*/Object.freeze({
15679
15727
  *
15680
15728
  */
15681
15729
  //
15682
- const Default$o = `
15730
+ const Default$p = `
15683
15731
  // No CSS
15684
15732
  `;
15685
15733
  const Orangey = `
@@ -15713,7 +15761,7 @@ const Klip = `
15713
15761
 
15714
15762
  const Themes = /*#__PURE__*/Object.freeze({
15715
15763
  __proto__: null,
15716
- Default: Default$o,
15764
+ Default: Default$p,
15717
15765
  Orangey: Orangey,
15718
15766
  Netflix: Netflix,
15719
15767
  SaaSquatchCorporate: SaaSquatchCorporate,
@@ -18400,6 +18448,7 @@ const stories = [
18400
18448
  WidgetCodeVerification,
18401
18449
  PayoutButtonScroll,
18402
18450
  PayoutStatusAlert,
18451
+ QRCode,
18403
18452
  ];
18404
18453
  const StencilStorybook = class {
18405
18454
  constructor(hostRef) {
@@ -1,8 +1,5 @@
1
- import { h } from './index-91e7729f.js';
2
1
  import { f as useEffect } from './stencil-hooks.module-4bc38af4.js';
3
2
  import { d as dist, J, H, Q as Qe, R as Rn, I as In, B } from './index.module-89a79f66.js';
4
- import { c as createStyleSheet } from './JSS-67b5cff8.js';
5
- import { H as HostBlock } from './mixins-83f90fa1.js';
6
3
 
7
4
  const GET_REFERRAL_CODES = dist.gql `
8
5
  query getCodes(
@@ -133,93 +130,4 @@ function useReferralCodes(props) {
133
130
  };
134
131
  }
135
132
 
136
- const style = {
137
- HostBlock: HostBlock,
138
- inputStyle: {
139
- "&::part(input)": { textOverflow: "ellipsis", width: "100%" },
140
- "&::part(base)": { cursor: "pointer", overflow: "visible" },
141
- width: "100%",
142
- },
143
- inputErrorStyle: {
144
- "&::part(base)": {
145
- border: "2px solid red",
146
- },
147
- },
148
- ContainerDiv: {
149
- display: "flex",
150
- alignItems: "flex-start",
151
- flexDirection: "column",
152
- justifyContent: "center",
153
- gap: "var(--sl-spacing-x-small)",
154
- width: "100%",
155
- },
156
- containerStyle: {
157
- display: "flex",
158
- alignItems: "center",
159
- gap: "var(--sl-spacing-x-small)",
160
- width: "100%",
161
- },
162
- errorTextStyle: {
163
- margin: "0",
164
- color: "var(--sl-color-danger-500)",
165
- },
166
- notificationTextStyle: {
167
- margin: "0",
168
- color: "var(--sl-color-neutral-500)",
169
- },
170
- };
171
- const vanillaStyle = `
172
- :host{
173
- display: block;
174
- width: 100%;
175
- }
176
- `;
177
- const textAlignStyle = {
178
- right: `
179
- sl-input::part(input){
180
- text-align: right;
181
- }`,
182
- center: `
183
- sl-input::part(input){
184
- text-align: center;
185
- }`,
186
- left: ``,
187
- };
188
- const disabledStyles = `
189
- sl-input::part(input){
190
- cursor: default;
191
- }
192
- `;
193
- const sheet = createStyleSheet(style);
194
- const styleString = sheet.toString();
195
- function CopyTextView(props) {
196
- const { buttonStyle = "icon" } = props;
197
- const error = !props.loading && props.error;
198
- const inputText = error ? props.inputPlaceholderText : props.copyString;
199
- const disabled = error || props.loading || props.disabled;
200
- const tooltipPlacement = props.buttonStyle === "button-below"
201
- ? "bottom"
202
- : props.buttonStyle === "button-outside"
203
- ? "top"
204
- : "top-end";
205
- const copyButton = (h("sl-tooltip", { trigger: "manual", content: props.tooltiptext, placement: tooltipPlacement, disabled: props.disabled, open: props.open, skidding: props.buttonStyle === "icon" ? -5 : 0, slot: "suffix" }, buttonStyle === "icon" ? (h("sl-icon-button", { exportparts: "base: icon-button-base", onClick: () => { var _a; return (_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props); }, name: "files", disabled: disabled })) : (h("sl-button", { exportparts: "base: copy-button-base", onClick: () => { var _a; return (_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props); }, size: "medium", style: { width: `${buttonStyle === "button-below" && "100%"}` }, disabled: disabled, type: "primary" }, props.copyButtonLabel || "Copy"))));
206
- return (h("div", { class: sheet.classes.ContainerDiv },
207
- h("style", { type: "text/css" },
208
- styleString,
209
- vanillaStyle,
210
- textAlignStyle[props.textAlign],
211
- disabled && disabledStyles),
212
- h("div", { class: sheet.classes.containerStyle, style: {
213
- flexDirection: `${buttonStyle === "button-below" ? "column" : "row"}`,
214
- } },
215
- h("sl-input", { class: `${sheet.classes.inputStyle} ${error ? sheet.classes.inputErrorStyle : ""}`, exportparts: "base: input-base, input: input-label", value: props.loading ? "Loading..." : inputText, readonly: true, disabled: disabled },
216
- buttonStyle === "icon" && copyButton,
217
- error && (h("p", { slot: "help-text", class: sheet.classes.errorTextStyle }, props.errorText))),
218
- (buttonStyle === "button-outside" || buttonStyle === "button-below") &&
219
- copyButton),
220
- props.isCopied &&
221
- props.showNotificationText &&
222
- props.notificationText && (h("p", { part: "sqm-notification-text", class: sheet.classes.notificationTextStyle }, props.notificationText))));
223
- }
224
-
225
- export { CopyTextView as C, REFERRAL_CODES_PAGINATION_CONTEXT as R, SET_CODE_COPIED as S, REFERRAL_CODES_NAMESPACE as a, useReferralCodes as u };
133
+ export { REFERRAL_CODES_PAGINATION_CONTEXT as R, SET_CODE_COPIED as S, REFERRAL_CODES_NAMESPACE as a, useReferralCodes as u };
@@ -0,0 +1 @@
1
+ import{h}from"./index-91e7729f.js";import{c as createStyleSheet}from"./JSS-67b5cff8.js";var styles={Alert:{"&::part(base)":{backgroundColor:"var(--sl-color-danger-100)",border:"1px solid var(--sl-color-danger-200)",padding:"0 16px"},"& sl-icon":{margin:0},"& sl-icon::part(base)":{color:"var(--sl-color-danger-500)",margin:0}}};var ErrorView=function(r){var e=createStyleSheet(styles);var o=e.toString();var a=e.classes;return h("div",null,h("style",null,o),h("sl-alert",{exportparts:"base: alert-base, icon:alert-icon",type:"danger",open:true,class:a.Alert},h("sl-icon",{slot:"icon",name:"exclamation-octagon",class:"Error"}),h("strong",null,r.loadingErrorAlertHeader),h("br",null),r.loadingErrorAlertDescription))};export{ErrorView as E};