diff --git a/packages/mint-components/CHANGELOG.md b/packages/mint-components/CHANGELOG.md index e2fb31f9fd..89699da6b1 100644 --- a/packages/mint-components/CHANGELOG.md +++ b/packages/mint-components/CHANGELOG.md @@ -7,6 +7,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.8.0] - 2024-04-10 + +### Changed + +- \ + - Added new query to get a users payout balance +- \ + - Added optional `contentAreaWidth` prop to override max with of content area +- \ + - Added a cancel button +- \ + - Added new query to get a users impact tax details + - Updated default template to use new ICU string and text props +- \ + - New reward statuses for tax and cash +- \ + - Updated ICU strings to work with new reward statuses +- \ + - Added new reward statuses for tax and cash +- \ + - Added new query to get a users impact tax details + - Updated default template to use new ICU string and text props +- Added options prop to the following reward table columns + - \ + - \ + - \ + - \ + - \ + +### Added + +- Added the following components for new tax and cash functionality + - \ + - \ + - \ + - \ + - \ + - \ + - \ + ## [1.7.6] - 2024-03-05 ### Changed @@ -21,7 +61,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Added new text prop(s) to the following components which previous contained hardcoded text: +- Added new text prop(s) to the following components which previously contained hardcoded text: - \ - \ - \ @@ -36,7 +76,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - \ - \ - ## [1.7.4] - 2024-02-09 ### Fixed @@ -860,7 +899,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - \ - \ -[unreleased]: https://github.com/saasquatch/program-tools/compare/mint-components@1.7.6...HEAD +[unreleased]: https://github.com/saasquatch/program-tools/compare/mint-components@1.8.0...HEAD +[1.8.0]: https://github.com/saasquatch/program-tools/releases/tag/%40saasquatch%2Fmint-components%401.8.0 [1.7.6]: https://github.com/saasquatch/program-tools/releases/tag/%40saasquatch%2Fmint-components%401.7.6 [1.7.5]: https://github.com/saasquatch/program-tools/releases/tag/%40saasquatch%2Fmint-components%401.7.5 [1.7.4]: https://github.com/saasquatch/program-tools/releases/tag/%40saasquatch%2Fmint-components%401.7.4 diff --git a/packages/mint-components/package-lock.json b/packages/mint-components/package-lock.json index c08e29e9a2..92dc3f575e 100644 --- a/packages/mint-components/package-lock.json +++ b/packages/mint-components/package-lock.json @@ -1,17 +1,18 @@ { "name": "@saasquatch/mint-components", - "version": "1.7.6", + "version": "1.8.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@saasquatch/mint-components", - "version": "1.7.6", + "version": "1.8.0", "hasInstallScript": true, "license": "MIT", "dependencies": { "@raisins/stencil-docs-target": "^1.0.0", - "@saasquatch/component-boilerplate": "^1.6.2", + "@saasquatch/component-boilerplate": "^1.6.3", + "@saasquatch/dom-context-hooks": "^1.0.3", "@saasquatch/shoelace": "^1.0.0", "@saasquatch/stencil-hooks": "^2.0.2", "@saasquatch/stencilbook": "^1.1.0", @@ -20,6 +21,8 @@ "canvas-confetti": "^1.4.0", "color2k": "^1.2.4", "deepmerge": "^4.2.2", + "dom-context": "^1.2.0", + "fast-equals": "^4.0.3", "graphql": "^15.5.0", "graphql-request": "^3.4.0", "highlight.js": "^10.6.0", @@ -45,19 +48,16 @@ "@types/canvas-confetti": "^1.4.2", "@types/jest": "^26.0.21", "@types/luxon": "^2.0.9", - "@types/puppeteer": "^5.4.2", "@types/resize-observer-browser": "^0.1.5", "clipboard": "^1.7.1", "cross-env": "^7.0.2", "docx": "^5.4.1", - "dom-context": "^1.2.0", "jest": "^26.6.3", "jest-cli": "^26.6.3", "jest-config": "^26.6.3", "marked": "^3.0.4", "patch-package": "^6.5.1", "picklesdoc": "^1.2.1", - "puppeteer": "^19.5.2", "rollup-plugin-copy": "^3.4.0", "rollup-plugin-css-only": "^3.1.0", "rollup-plugin-string": "^3.0.0", @@ -2609,9 +2609,9 @@ } }, "node_modules/@popperjs/core": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.0.tgz", - "integrity": "sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ==", + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -2805,17 +2805,19 @@ } }, "node_modules/@saasquatch/component-boilerplate": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@saasquatch/component-boilerplate/-/component-boilerplate-1.6.2.tgz", - "integrity": "sha512-xujUagmij5VSLlthml5NjbMs/CfE+RFBIGfzLFxYuaEs1YC3mTwuS1K9jCrCXYza914NwpPHLvMTT2DNRJ2mQQ==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@saasquatch/component-boilerplate/-/component-boilerplate-1.6.3.tgz", + "integrity": "sha512-Os8BwiQDq0UIPiSOyHAPlxq5lLD3ou+YJCZ55ZeTiDAaP0xnWTl8OpVk3bQFBnKA/FKZbYMU0JA0GNBwfW6F5A==", "dependencies": { "@formatjs/intl": "^1.8.2", "@saasquatch/component-environment": "^1.0.4", "@saasquatch/dom-context-hooks": "^1.0.3", + "@saasquatch/stencil-hooks": "^2.0.2", "@saasquatch/universal-hooks": "^1.0.0", "@wry/equality": "^0.5.2", "debounce": "^1.2.0", "dom-context": "^1.2.0", + "fast-equals": "^5.0.1", "fast-memoize": "^2.5.2", "graphql": "^15.5.0", "graphql-combine-query": "^1.2.3", @@ -2826,10 +2828,18 @@ "rxjs": "^6.6.7" } }, + "node_modules/@saasquatch/component-boilerplate/node_modules/fast-equals": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", + "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@saasquatch/component-environment": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@saasquatch/component-environment/-/component-environment-1.0.5.tgz", - "integrity": "sha512-agj6vEinrI4B3RZLaz9zu2cIIj5p+wXvgFF1lSvd07okYOS7sHK9KduVaI/J81szCUOKSqK/G8+BamxCaqrFYA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@saasquatch/component-environment/-/component-environment-1.0.4.tgz", + "integrity": "sha512-szew8ETIm9rPSm6C73jVP/0uAGFGT6+oslVXMQdba7DrhuyBUamZeYBeCEawaExCoy8GaEzHhw/+gn4nUPodnw==", "dependencies": { "@wry/equality": "^0.5.2", "dom-context": "^1.2.0", @@ -3148,15 +3158,6 @@ "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", "dev": true }, - "node_modules/@types/puppeteer": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.4.tgz", - "integrity": "sha512-3Nau+qi69CN55VwZb0ATtdUAlYlqOOQ3OfQfq0Hqgc4JMFXiQT/XInlwQ9g6LbicDslE6loIFsXFklGh5XmI6Q==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/q": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", @@ -3197,16 +3198,6 @@ "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", "dev": true }, - "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@wry/equality": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.6.tgz", @@ -3872,26 +3863,6 @@ "node": ">=0.10.0" } }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -3900,31 +3871,6 @@ "node": "*" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -3999,39 +3945,6 @@ "node-int64": "^0.4.0" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -4214,12 +4127,6 @@ "node": ">=10" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -5175,12 +5082,6 @@ "node": ">=8" } }, - "node_modules/devtools-protocol": { - "version": "0.0.1068969", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1068969.tgz", - "integrity": "sha512-ATFTrPbY1dKYhPPvpjtwWKSK2mIwGmRwX54UASn9THEuIZCe2n9k3vVuMmt6jWeL+e5QaaguEv/pMyR+JQB7VQ==", - "dev": true - }, "node_modules/diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", @@ -5846,25 +5747,10 @@ "url": "https://github.com/sponsors/jaydenseric" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } + "node_modules/fast-equals": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", + "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==" }, "node_modules/fast-glob": { "version": "3.2.7", @@ -5917,15 +5803,6 @@ "bser": "2.1.1" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", @@ -6054,12 +5931,6 @@ "node": ">=0.10.0" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -6543,26 +6414,6 @@ "postcss": "^8.1.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/ignore": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", @@ -9872,12 +9723,6 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, "node_modules/moment": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", @@ -10735,12 +10580,6 @@ "node": ">=8" } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, "node_modules/picklesdoc": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/picklesdoc/-/picklesdoc-1.2.1.tgz", @@ -12472,15 +12311,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/promise.series": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", @@ -12537,12 +12367,6 @@ "pbts": "bin/pbts" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, "node_modules/psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -12568,98 +12392,6 @@ "node": ">=6" } }, - "node_modules/puppeteer": { - "version": "19.5.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.5.2.tgz", - "integrity": "sha512-xlqRyrhXhVH114l79Y0XqYXUVG+Yfw4sKlvN55t8Y9DxtA5fzI1uqF8SVXbWK5DUMbD6Jo4lpixTZCTTZGD05g==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "cosmiconfig": "8.0.0", - "https-proxy-agent": "5.0.1", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "puppeteer-core": "19.5.2" - }, - "engines": { - "node": ">=14.1.0" - } - }, - "node_modules/puppeteer-core": { - "version": "19.5.2", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.5.2.tgz", - "integrity": "sha512-Rqk+3kqM+Z2deooTYqcYt8lRtGffJdifWa9td9nbJSjhANWsFouk8kLBNUKycewCCFHM8TZUKS0x28OllavW2A==", - "dev": true, - "dependencies": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.1068969", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.11.0" - }, - "engines": { - "node": ">=14.1.0" - } - }, - "node_modules/puppeteer-core/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/puppeteer/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/puppeteer/node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/puppeteer/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -14365,48 +14097,6 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -14467,12 +14157,6 @@ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", "dev": true }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, "node_modules/timsort": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", @@ -14693,16 +14377,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -15411,16 +15085,6 @@ "node": ">=4" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "node_modules/yn": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", @@ -17255,9 +16919,9 @@ } }, "@popperjs/core": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.0.tgz", - "integrity": "sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ==" + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" }, "@protobufjs/aspromise": { "version": "1.1.2", @@ -17406,17 +17070,19 @@ } }, "@saasquatch/component-boilerplate": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@saasquatch/component-boilerplate/-/component-boilerplate-1.6.2.tgz", - "integrity": "sha512-xujUagmij5VSLlthml5NjbMs/CfE+RFBIGfzLFxYuaEs1YC3mTwuS1K9jCrCXYza914NwpPHLvMTT2DNRJ2mQQ==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@saasquatch/component-boilerplate/-/component-boilerplate-1.6.3.tgz", + "integrity": "sha512-Os8BwiQDq0UIPiSOyHAPlxq5lLD3ou+YJCZ55ZeTiDAaP0xnWTl8OpVk3bQFBnKA/FKZbYMU0JA0GNBwfW6F5A==", "requires": { "@formatjs/intl": "^1.8.2", "@saasquatch/component-environment": "^1.0.4", "@saasquatch/dom-context-hooks": "^1.0.3", + "@saasquatch/stencil-hooks": "^2.0.2", "@saasquatch/universal-hooks": "^1.0.0", "@wry/equality": "^0.5.2", "debounce": "^1.2.0", "dom-context": "^1.2.0", + "fast-equals": "^5.0.1", "fast-memoize": "^2.5.2", "graphql": "^15.5.0", "graphql-combine-query": "^1.2.3", @@ -17425,12 +17091,19 @@ "jwt-decode": "^3.1.2", "nanoid": "^3.1.23", "rxjs": "^6.6.7" + }, + "dependencies": { + "fast-equals": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", + "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==" + } } }, "@saasquatch/component-environment": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@saasquatch/component-environment/-/component-environment-1.0.5.tgz", - "integrity": "sha512-agj6vEinrI4B3RZLaz9zu2cIIj5p+wXvgFF1lSvd07okYOS7sHK9KduVaI/J81szCUOKSqK/G8+BamxCaqrFYA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@saasquatch/component-environment/-/component-environment-1.0.4.tgz", + "integrity": "sha512-szew8ETIm9rPSm6C73jVP/0uAGFGT6+oslVXMQdba7DrhuyBUamZeYBeCEawaExCoy8GaEzHhw/+gn4nUPodnw==", "requires": { "@wry/equality": "^0.5.2", "dom-context": "^1.2.0", @@ -17720,15 +17393,6 @@ "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", "dev": true }, - "@types/puppeteer": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.4.tgz", - "integrity": "sha512-3Nau+qi69CN55VwZb0ATtdUAlYlqOOQ3OfQfq0Hqgc4JMFXiQT/XInlwQ9g6LbicDslE6loIFsXFklGh5XmI6Q==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/q": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", @@ -17769,16 +17433,6 @@ "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", "dev": true }, - "@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, "@wry/equality": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.6.tgz", @@ -18289,41 +17943,11 @@ } } }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -18382,22 +18006,6 @@ "node-int64": "^0.4.0" } }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -18531,12 +18139,6 @@ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -19288,12 +18890,6 @@ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, - "devtools-protocol": { - "version": "0.0.1068969", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1068969.tgz", - "integrity": "sha512-ATFTrPbY1dKYhPPvpjtwWKSK2mIwGmRwX54UASn9THEuIZCe2n9k3vVuMmt6jWeL+e5QaaguEv/pMyR+JQB7VQ==", - "dev": true - }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", @@ -19811,17 +19407,10 @@ "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - } + "fast-equals": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", + "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==" }, "fast-glob": { "version": "3.2.7", @@ -19871,15 +19460,6 @@ "bser": "2.1.1" } }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, "figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", @@ -19973,12 +19553,6 @@ "map-cache": "^0.2.2" } }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -20349,12 +19923,6 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==" }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, "ignore": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", @@ -22916,12 +22484,6 @@ "minimist": "^1.2.5" } }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, "moment": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", @@ -23555,12 +23117,6 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, "picklesdoc": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/picklesdoc/-/picklesdoc-1.2.1.tgz", @@ -24807,12 +24363,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, "promise.series": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", @@ -24857,12 +24407,6 @@ "long": "^4.0.0" } }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -24885,74 +24429,6 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "puppeteer": { - "version": "19.5.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.5.2.tgz", - "integrity": "sha512-xlqRyrhXhVH114l79Y0XqYXUVG+Yfw4sKlvN55t8Y9DxtA5fzI1uqF8SVXbWK5DUMbD6Jo4lpixTZCTTZGD05g==", - "dev": true, - "requires": { - "cosmiconfig": "8.0.0", - "https-proxy-agent": "5.0.1", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "puppeteer-core": "19.5.2" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "puppeteer-core": { - "version": "19.5.2", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.5.2.tgz", - "integrity": "sha512-Rqk+3kqM+Z2deooTYqcYt8lRtGffJdifWa9td9nbJSjhANWsFouk8kLBNUKycewCCFHM8TZUKS0x28OllavW2A==", - "dev": true, - "requires": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.1068969", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.11.0" - }, - "dependencies": { - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true - } - } - }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -26322,44 +25798,6 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, "terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -26404,12 +25842,6 @@ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", "dev": true }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, "timsort": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", @@ -26583,16 +26015,6 @@ "which-boxed-primitive": "^1.0.2" } }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -27195,16 +26617,6 @@ } } }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "yn": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", diff --git a/packages/mint-components/package.json b/packages/mint-components/package.json index 7385eb02d7..6f9fce05cb 100644 --- a/packages/mint-components/package.json +++ b/packages/mint-components/package.json @@ -1,7 +1,7 @@ { "name": "@saasquatch/mint-components", "title": "Mint Components", - "version": "1.7.6", + "version": "1.8.0", "description": "A minimal design library with components for referral and loyalty experiences. Built with Shoelace components by Saasquatch.", "icon": "https://res.cloudinary.com/saasquatch/image/upload/v1652219900/squatch-assets/For_Mint.svg", "raisins": "docs/raisins.json", @@ -30,7 +30,7 @@ "test.watch": "stencil test --spec --e2e --watchAll", "generate": "stencil generate", "specs": "picklesdoc xlsx src docs --testers=2", - "serve:package": "serve . --cors", + "serve:package": "serve . --cors -l 5000", "start:raisins": "run-p start serve:package", "postinstall": "patch-package" }, @@ -49,19 +49,16 @@ "@types/canvas-confetti": "^1.4.2", "@types/jest": "^26.0.21", "@types/luxon": "^2.0.9", - "@types/puppeteer": "^5.4.2", "@types/resize-observer-browser": "^0.1.5", "clipboard": "^1.7.1", "cross-env": "^7.0.2", "docx": "^5.4.1", - "dom-context": "^1.2.0", "jest": "^26.6.3", "jest-cli": "^26.6.3", "jest-config": "^26.6.3", "marked": "^3.0.4", "patch-package": "^6.5.1", "picklesdoc": "^1.2.1", - "puppeteer": "^19.5.2", "rollup-plugin-copy": "^3.4.0", "rollup-plugin-css-only": "^3.1.0", "rollup-plugin-string": "^3.0.0", @@ -71,7 +68,8 @@ }, "dependencies": { "@raisins/stencil-docs-target": "^1.0.0", - "@saasquatch/component-boilerplate": "^1.6.2", + "@saasquatch/component-boilerplate": "^1.6.3", + "@saasquatch/dom-context-hooks": "^1.0.3", "@saasquatch/shoelace": "^1.0.0", "@saasquatch/stencil-hooks": "^2.0.2", "@saasquatch/stencilbook": "^1.1.0", @@ -80,6 +78,8 @@ "canvas-confetti": "^1.4.0", "color2k": "^1.2.4", "deepmerge": "^4.2.2", + "dom-context": "^1.2.0", + "fast-equals": "^4.0.3", "graphql": "^15.5.0", "graphql-request": "^3.4.0", "highlight.js": "^10.6.0", diff --git a/packages/mint-components/src/components.d.ts b/packages/mint-components/src/components.d.ts index 8f074a748d..d37fa047ff 100644 --- a/packages/mint-components/src/components.d.ts +++ b/packages/mint-components/src/components.d.ts @@ -7,15 +7,19 @@ import { HTMLStencilElement, JSXBase } from "@stencil/core/internal"; import { DemoData } from "./global/demo"; import { AssetCardViewProps } from "./components/sqm-asset-card/sqm-asset-card-view"; +import { BankingInfoFormViewProps } from "./components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form-view"; import { BigStatViewProps } from "./components/sqm-big-stat/sqm-big-stat-view"; import { CheckboxFieldViewProps } from "./components/sqm-checkbox-field/sqm-checkbox-field-view"; import { CouponCodeViewProps } from "./components/sqm-coupon-code/sqm-coupon-code-view"; +import { UseDocusignFormResult } from "./components/tax-and-cash/sqm-docusign-form/useDocusignForm"; import { DropdownFieldViewProps } from "./components/sqm-dropdown-field/sqm-dropdown-field-view"; import { EditProfileViewProps } from "./components/sqm-edit-profile/sqm-edit-profile-view"; import { Spacing } from "./global/mixins"; import { FunctionalComponent } from "@stencil/core"; +import { UseIndirectTaxFormResult } from "./components/tax-and-cash/sqm-indirect-tax-form/useIndirectTaxForm"; import { InputFieldViewProps } from "./components/sqm-input-field/sqm-input-field-view"; import { EmailRegistrationViewProps } from "./components/views/email-registration-view"; +import { GenericTableViewProps } from "./tables/GenericTableView"; import { LeaderboardViewProps } from "./components/sqm-leaderboard/sqm-leaderboard-view"; import { LeaderboardRankViewProps } from "./components/sqm-leaderboard-rank/sqm-leaderboard-rank-view"; import { CopyTextViewProps } from "./components/views/copy-text-view"; @@ -34,11 +38,13 @@ import { PortalRegistrationFormViewProps } from "./components/sqm-portal-registr import { PortalResetPasswordViewProps } from "./components/sqm-portal-reset-password/sqm-portal-reset-password-view"; import { PortalVerifyEmailViewProps } from "./components/sqm-portal-verify-email/sqm-portal-verify-email-view"; import { ReferralIframeViewProps } from "./components/sqm-referral-iframe/sqm-referral-iframe-view"; -import { GenericTableViewProps } from "./tables/GenericTableView"; import { ReferralDates } from "./components/sqm-referral-table/useReferralTable"; import { RewardExchangeViewProps } from "./components/sqm-reward-exchange-list/sqm-reward-exchange-list-view"; import { ShareButtonViewProps } from "./components/sqm-share-button/sqm-share-button-view"; import { TaskCardViewProps } from "./components/sqm-task-card/sqm-task-card-view"; +import { UseTaxAndCashResultType } from "./components/tax-and-cash/sqm-tax-and-cash/useTaxAndCash"; +import { UseTaxAndCashDashboardResult } from "./components/tax-and-cash/sqm-tax-and-cash-dashboard/useTaxAndCashDashboard"; +import { UseUserInfoFormResult } from "./components/tax-and-cash/sqm-user-info-form/useUserInfoForm"; import { UserNameViewProps } from "./components/sqm-user-name/sqm-user-name-view"; export namespace Components { interface RaisinsPlopTarget { @@ -60,6 +66,252 @@ export namespace Components { */ "titleText": string; } + interface SqmBankingInfoForm { + /** + * @uiName Agency code field label + */ + "agencyCodeLabel": string; + /** + * Text for the back button in the form + * @uiName Back button label + */ + "backButton": string; + /** + * @uiName Bank account number field label + */ + "bankAccountNumberLabel": string; + /** + * @uiName Bank account type field label + */ + "bankAccountTypeLabel": string; + /** + * @uiName Bank address field label + */ + "bankAddressLabel": string; + /** + * @uiName Bank city field label + */ + "bankCityLabel": string; + /** + * @uiName Bank country field label + */ + "bankLocationLabel": string; + /** + * @uiName Bank name field label + */ + "bankNameLabel": string; + /** + * @uiName Bank postal code field label + */ + "bankPostalCodeLabel": string; + /** + * @uiName Bank province/state field label + */ + "bankStateLabel": string; + /** + * @uiName Beneficiary account field label + */ + "beneficiaryAccountNameLabel": string; + /** + * @uiName Branch code field label + */ + "branchCodeLabel": string; + /** + * One of three options listed for the classification field + * @uiName Business classification option + */ + "businessSelectItemLabel": string; + /** + * @uiName Checking account option + */ + "checkingSelectItemLabel": string; + /** + * @uiName Classification CPF field label + */ + "classificationCPFLabel": string; + /** + * @uiName Classification entity field label + */ + "classificationEntityLabel": string; + /** + * Label text for the classification input field + * @uiName Classification field label + */ + "classificationLabel": string; + /** + * @uiName Continue button label + */ + "continueButton": string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Direct to bank payout option + */ + "directlyToBankAccount": string; + /** + * Default payment method to the participants’ bank account. + * @uiName EFT withdrawal payment method + */ + "eftWithdrawalLabel": string; + /** + * Displayed under a field when it has an invalid entry. + * @uiName Form field error message + */ + "fieldInvalidError": string; + /** + * Displayed under a field that is missing required information. + * @uiName Empty form field error message + */ + "fieldRequiredError": string; + /** + * One of three options listed for the classification field + * @uiName Foreign classification option + */ + "foreignSelectItemLabel": string; + /** + * @uiName Setup progress + */ + "formStep": string; + /** + * @uiName FX Wire Processing fee text + */ + "fxWireProcessingFeeLabel": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message description + * @uiWidget textArea + */ + "generalErrorDescription": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message title + * @uiWidget textArea + */ + "generalErrorTitle": string; + /** + * @uiName IBAN field label + */ + "ibanLabel": string; + /** + * One of three options listed for the classification field + * @uiName Individual classification option + */ + "individualSelectItemLabel": string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert description + * @uiWidget textArea + */ + "isPartnerAlertDescription": string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert title + * @uiWidget textArea + */ + "isPartnerAlertHeader": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message description + * @uiWidget textArea + */ + "loadingErrorAlertDescription": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message title + * @uiWidget textArea + */ + "loadingErrorAlertHeader": string; + /** + * @uiName Patronymic name field label + */ + "patronymicNameLabel": string; + /** + * Displayed to participants who choose PayPal as their payout method + * @uiName PayPal email field label + */ + "payPalInputLabel": string; + /** + * Label text for the payment day select option for the fifteenth of the month + * @uiName Fifteenth of month payday option + */ + "paymentDayFifteenthOfMonthLabelText": string; + /** + * One of two payment day options + * @uiName First of month payday option + */ + "paymentDayFirstOfMonthLabelText": string; + /** + * Let the participant choose what day of the month they’ll get paid + * @uiName Payment day field label + */ + "paymentDaySelectLabel": string; + /** + * @uiName Payment method section header + */ + "paymentMethod": string; + /** + * @uiName Payment method section description + */ + "paymentMethodSubtext": string; + /** + * @uiName Payment schedule section header + */ + "paymentSchedule": string; + /** + * @uiName Threshold balance payment schedule option + */ + "paymentScheduleBalanceThreshold": string; + /** + * @uiName Fixed day payment schedule option + */ + "paymentScheduleFixedDay": string; + /** + * Participant use this field to select the balance at which they want to be paid + * @uiName Payment threshold field label + */ + "paymentThresholdSelectLabel": string; + /** + * @uiName Routing code field label + */ + "routingCodeLabel": string; + /** + * @uiName Savings account options + */ + "savingsSelectItemLabel": string; + /** + * Placeholder text displayed in the country search dropdown + * @uiName Country field placeholder text + */ + "searchForCountryText": string; + /** + * @uiName SWIFT code field label + */ + "swiftCodeLabel": string; + /** + * @uiName Step 4 title + */ + "taxAndPayouts": string; + /** + * Displayed at the top of the page on all set up steps. + * @uiName Page description + */ + "taxAndPayoutsDescription": string; + /** + * @uiName Taxpayer ID field label + */ + "taxPayerIdLabel": string; + /** + * @uiName PayPal payout option + */ + "toPayPalAccount": string; + /** + * @uiName VO code field label + */ + "voCodeLabel": string; + } interface SqmBigStat { /** * Controls the alignment of the flexbox @@ -164,6 +416,9 @@ export namespace Components { */ "color": string; } + interface SqmContextRouter { + "contextName": string; + } interface SqmCouponCode { /** * Set the copy button style and placement. @@ -259,6 +514,12 @@ export namespace Components { "tooltiptext": string; } interface SqmDividedLayout { + /** + * Overrides max-width of content area + * @uiName Content Area Width + * @uiType string + */ + "contentAreaWidth": string | null; /** * @uiName Direction * @uiType string @@ -272,6 +533,109 @@ export namespace Components { */ "dividerStyle": string; } + interface SqmDocusignForm { + /** + * An option for the participant type field. Used to determine which W-8 form is required. + * @uiName Business representative participant type label + */ + "businessEntity": string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * This appears inside the Docusign frame. + * @uiName Docusign form error message + * @uiWidget textArea + */ + "docusignError": string; + /** + * This appears inside the Docusign frame. + * @uiName Docusign session expired messag + * @uiWidget textArea + */ + "docusignExpired": string; + /** + * Remind participants their session will time out after 20 minutes of inactivity. + * @uiName Docusign timed session message + * @uiWidget textArea + */ + "docusignSessionWarning": string; + /** + * @uiName Setup progress + */ + "formStep": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message description + * @uiWidget textArea + */ + "generalErrorDescription": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message title + * @uiWidget textArea + */ + "generalErrorTitle": string; + /** + * An option for the participant type field. Used to determine which W-8 form is required. + * @uiName Individual participant type label + */ + "individualParticipant": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message description + * @uiWidget textArea + */ + "loadingErrorAlertDescription": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message title + * @uiWidget textArea + */ + "loadingErrorAlertHeader": string; + /** + * @uiName Participant type field label + */ + "participantType": string; + /** + * @uiName Refresh page button label + */ + "refreshButton": string; + /** + * Displayed at the top of the page on all set up steps. + * @uiName Page description + */ + "taxAndPayoutsDescription": string; + /** + * @uiName Step 3 title + */ + "taxForm": string; + /** + * Displayed at the top of the page to participants based in the US. + * @uiName W-9 tax form description + * @uiWidget textArea + */ + "taxFormDescription": string; + /** + * Displayed at the top of the page to participants representing a business. + * @uiName W-8 BEN-E tax form description + * @uiWidget textArea + */ + "taxFormDescriptionBusinessEntity": string; + /** + * Displayed at the top of the page to individuals joining a US program who reside outside the country. + * @uiName W-8 BEN tax form description + * @uiWidget textArea + */ + "taxFormDescriptionIndividualParticipant": string; + /** + * Display the type of tax form that the participant must submit. + * @uiName Tax form name + */ + "taxFormLabel": string; + } interface SqmDropdownField { /** * @undocumented @@ -564,6 +928,157 @@ export namespace Components { */ "minHeight"?: string; } + interface SqmIndirectTaxForm { + /** + * @uiName Back button label + */ + "backButton": string; + /** + * Communicate that after this step, only Support can change personal and indirect tax information. + * @uiName Submission confirmation alert + * @uiWidget textArea + */ + "cannotChangeInfoAlert": string; + /** + * @uiName Continue button label + */ + "continueButton": string; + /** + * @undocumented + */ + "demoData"?: DemoData; + /** + * Displayed under a field that is missing required information. + * @uiName Empty form field error message + */ + "fieldRequiredError": string; + /** + * @uiName Setup progress + */ + "formStep": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message description + * @uiWidget textArea + */ + "generalErrorDescription": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message title + * @uiWidget textArea + */ + "generalErrorTitle": string; + /** + * @uiName Step 2 title + */ + "indirectTax": string; + /** + * Displayed under the title of this step. + * @uiName Step 2 description + * @uiWidget textArea + */ + "indirectTaxDescription": string; + /** + * Displayed with indirect tax registration options. + * @uiName Indirect tax details section title + */ + "indirectTaxDetails": string; + /** + * @uiName Indirect tax number field label + */ + "indirectTaxNumber": string; + /** + * @uiName Missing indirect tax number error message + */ + "indirectTaxNumberError": string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert description + * @uiWidget textArea + */ + "isPartnerAlertDescription": string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert title + * @uiWidget textArea + */ + "isPartnerAlertHeader": string; + /** + * Displayed to participants registered for indirect tax in Quebec, Canada. + * @uiName QST tax checkbox + */ + "isRegisteredQST": string; + /** + * Displayed to participants registered for indirect tax in Spain. + * @uiName Spain income tax checkbox + * @uiWidget textArea + */ + "isRegisteredSubRegionIncomeTax": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message description + * @uiWidget textArea + */ + "loadingErrorAlertDescription": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message title + * @uiWidget textArea + */ + "loadingErrorAlertHeader": string; + /** + * @uiName Not registered for indirect tax option + * @uiWidget textArea + */ + "notRegistered": string; + /** + * Participants based in the US are considered not registered. + * @uiName Not registered for indirect tax option description + */ + "notRegisteredSubtext": string; + /** + * @uiName Registered for indirect tax option + * @uiWidget textArea + */ + "otherRegion": string; + /** + * Selecting this option will display fields to enter indirect tax details. + * @uiName Registered for indirect tax option description + */ + "otherRegionSubtext": string; + /** + * @uiName Province field label + */ + "province": string; + /** + * Displayed to participants registered for QST. + * @uiName QST number field label + */ + "qstNumber": string; + /** + * Placeholder text displayed in the country search dropdown + * @uiName Country field placeholder text + */ + "searchForCountryText": string; + /** + * @uiName Region of indirect tax field label + */ + "selectedRegion": string; + /** + * Displayed to participants registered in Spain. + * @uiName Sub-region of indirect tax field label + */ + "subRegion": string; + /** + * @uiName Income tax field label + */ + "subRegionTaxNumberLabel": string; + /** + * Displayed at the top of the page on all set up steps. + * @uiName Page description + */ + "taxAndPayoutsDescription": string; + } interface SqmInputField { /** * @undocumented @@ -691,17 +1206,112 @@ export namespace Components { */ "requiredFieldErrorMessage": string; } - interface SqmLeaderboard { - /** - * Title displayed for users without names - * @uiName Unknown user text - */ - "anonymousUser": string; + interface SqmInvoiceTable { /** * @undocumented * @uiType object */ - "demoData"?: DemoData; + "demoData"?: DemoData & { + mockData?: { data: Invoice[] }; + }; + /** + * @uiName Invoice table description + */ + "description"?: string; + /** + * @uiName Empty invoice table header + */ + "emptyStateHeader": string; + /** + * @uiName Empty invoice table description + */ + "emptyStateText": string; + /** + * @uiName Invoice table title + */ + "header"?: string; + /** + * Provide the column numbers (0 indexed) that should not be displayed in mobile views. Ex. 0,2,3 + * @uiName Hidden mobile columns + */ + "hiddenColumns"?: string; + /** + * @uiName Hide column labels + */ + "hideLabels"?: boolean; + /** + * @uiName Tablet breakpoint + */ + "mdBreakpoint"?: number; + /** + * @uiName Invoice table next page button label + */ + "moreLabel"?: string; + /** + * Number of invoices displayed per page + * @uiName Invoices per page + */ + "perPage": number; + /** + * @uiName Invoice table previous page button label + */ + "prevLabel"?: string; + /** + * Filters to only show invoices in this program. Will default to filtering by the program context where this table lives. If no program ID is set or provided by context, then shows all invoices from all programs. If program ID is "classic", shows classic-only invoices + * @uiName Program + * @uiWidget programSelector + */ + "programId": string; + /** + * @uiName Mobile breakpoint + */ + "smBreakpoint"?: number; + } + interface SqmInvoiceTableDataCell { + "data": string; + } + interface SqmInvoiceTableDataColumn { + /** + * @uiName Column title + */ + "columnTitle": string; + /** + * @uiName Property name + */ + "property": string; + "renderCell": (data: Invoice) => Promise; + "renderLabel": () => Promise; + } + interface SqmInvoiceTableDateCell { + "date": number; + "locale": string; + } + interface SqmInvoiceTableDateColumn { + /** + * @uiName Column title + */ + "columnTitle": string; + "renderCell": (data: Invoice, options?: { locale: string; }) => Promise; + "renderLabel": () => Promise; + } + interface SqmInvoiceTableDownloadCell { + "downloadUrl": string; + } + interface SqmInvoiceTableDownloadColumn { + "renderCell": (data: Invoice) => Promise; + "renderLabel": () => Promise; + } + interface SqmLeaderboard { + /** + * Title displayed for users without names + * @uiName Unknown user text + */ + "anonymousUser": string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; /** * Hide the viewer's leaderboard row if not in the top results. * @uiName Hide viewing user @@ -938,6 +1548,42 @@ export namespace Components { */ "uppercaseErrorText": string; } + interface SqmPayoutDetailsCard { + /** + * Shown before the participant’s bank account information. + * @uiName Bank account field label + */ + "accountText": string; + /** + * @undocumented + */ + "demoData"?: DemoData; + /** + * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts. + * @uiName Payout error message description + */ + "errorDescriptionText": string; + /** + * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts. + * @uiName Payout error message title + */ + "errorTitleText": string; + /** + * Text displayed for existing publishers that do not have saved banking information. + * @uiName Payout missing information subtext + */ + "payoutMissingInformationText": string; + /** + * Badge text indicating payout status + * @uiName Payout badge status text + */ + "statusBadgeText": string; + /** + * Display participants' payout preference on the payout information card, indicating the balance at which they want to get paid. + * @uiName Payout schedule by threshold text + */ + "thresholdPayoutText": string; + } interface SqmPopupContainer { /** * Display a close button on the popup @@ -1988,7 +2634,7 @@ export namespace Components { * @uiEnumNames ["Date Converted", "Date Referral Started", "Date Fraud Checks Completed", "Date Moderated", "Date Modified", "Date Referral Ended", "Date Referral Paid", "Date User Modified"] */ "dateShown": ReferralDates; - "renderCell": (data: Referral, locale: string) => Promise; + "renderCell": (data: Referral, options?: { locale: string; }) => Promise; "renderLabel": () => Promise; "renderReferrerCell": (data: Referrer) => Promise; } @@ -2003,6 +2649,7 @@ export namespace Components { "rewards": Reward[]; "statusLongText": string; "statusText": string; + "taxConnection": ImpactConnection; } interface SqmReferralTableRewardsColumn { /** @@ -2034,7 +2681,7 @@ export namespace Components { * @uiName Reward pending text */ "pendingForText": string; - "renderCell": (data: Referral, locale: string) => Promise; + "renderCell": (data: Referral, options?: { locale: string; taxConnection: ImpactConnection; }) => Promise; "renderLabel": () => Promise; "renderReferrerCell": (data: Referrer) => Promise; /** @@ -2403,7 +3050,7 @@ export namespace Components { * @uiName Column title */ "columnTitle": string; - "renderCell": (data: Reward, locale: string) => Promise; + "renderCell": (data: Reward, options?: { locale: string; }) => Promise; "renderLabel": () => Promise; } interface SqmRewardsTableDateCell { @@ -2422,7 +3069,7 @@ export namespace Components { * @uiEnumNames ["Date Given", "Date Expires", "Date Cancelled", "Date Redeemed", "Date Scheduled For"] */ "dateShown": string; - "renderCell": (data: Reward, locale: string) => Promise; + "renderCell": (data: Reward, options?: { locale: string; }) => Promise; "renderLabel": () => Promise; } interface SqmRewardsTableRewardCell { @@ -2449,7 +3096,7 @@ export namespace Components { * @uiName Redeemed amount text */ "redeemedText": string; - "renderCell": (data: Reward, locale: string) => Promise; + "renderCell": (data: Reward, options?: { locale: string; }) => Promise; "renderLabel": () => Promise; } interface SqmRewardsTableSourceCell { @@ -2482,7 +3129,7 @@ export namespace Components { * @uiWidget textArea */ "referralText": string; - "renderCell": (data: Reward, locale: any) => Promise; + "renderCell": (data: Reward, options?: { locale: string; }) => Promise; "renderLabel": () => Promise; /** * @uiName Reward exchange label @@ -2499,12 +3146,20 @@ export namespace Components { "deniedText": string; "expiryText": string; "locale": string; + "payoutApproved": string; + "payoutCancelled": string; + "payoutFailed": string; + "pendingNewTaxForm": string; + "pendingPartnerCreation": string; "pendingReviewText": string; "pendingScheduled": string; + "pendingTaxReview": string; + "pendingTaxSubmission": string; "pendingUnhandled": string; "pendingUsTax": string; "reward": Reward; "statusText": string; + "taxConnection": ImpactConnection; } interface SqmRewardsTableStatusColumn { /** @@ -2521,6 +3176,31 @@ export namespace Components { * @uiName Expiry date prefix */ "expiryText": string; + /** + * Displayed when reward payout is approved (based on Impact cash payout configuration). + * @uiName Payout approved text + */ + "payoutApproved": string; + /** + * Displayed when reward payout was reversed (based on Impact cash payout configuration). + * @uiName Payout cancelled text + */ + "payoutCancelled": string; + /** + * Displayed when reward payout has failed (based on Impact cash payout configuration). + * @uiName Payout failed text + */ + "payoutFailed": string; + /** + * Displayed when pending due to requiring a new tax document + * @uiName Pending new tax form text + */ + "pendingNewTaxForm": string; + /** + * Displayed when pending due to need to connect to an Impact partner + * @uiName Pending partner creation text + */ + "pendingPartnerCreation": string; /** * Displayed when flagged for fraud. * @uiName Pending review text @@ -2531,6 +3211,16 @@ export namespace Components { * @uiName Pending date prefix */ "pendingScheduled": string; + /** + * Displayed when pending due to tax document review. + * @uiName Pending tax review text + */ + "pendingTaxReview": string; + /** + * Displayed when pending due to lack of tax document submission. + * @uiName Pending tax submission text + */ + "pendingTaxSubmission": string; /** * Displayed when fulfillment error occured when creating a reward. * @uiName Unhandled error text @@ -2541,7 +3231,7 @@ export namespace Components { * @uiName W9 pending text */ "pendingUsTax": string; - "renderCell": (data: Reward, locale: string) => Promise; + "renderCell": (data: Reward, options?: { locale: string; taxConnection: ImpactConnection; }) => Promise; "renderLabel": () => Promise; /** * @uiName Reward status text @@ -3038,1767 +3728,4726 @@ export namespace Components { */ "steps": boolean; } - interface SqmText { - } - interface SqmTextSpan { + interface SqmTaxAndCash { /** - * @uiName Text + * @uiName Back button label + * @uiGroup General Form Properties */ - "text": string; + "backButton": string; /** - * @uiName Type - * @uiType string - * @uiEnum ["p", "subtext", "h1", "h2", "h3", "h4"] - * @uiEnumNames ["Paragraph", "Subtext", "Header 1", "Header 2", "Header 3", "Header 4"] + * @uiName Cancel button label + * @uiGroup General Form Properties */ - "type": "p" | "subtext" | "h1" | "h2" | "h3" | "h4"; - } - interface SqmTimeline { + "cancelButton": string; /** - * @uiName Icon - * @uiType string - * @uiEnum ["gift", "circle"] - * @uiEnumNames ["Gift", "Circle"] + * @uiName Continue button label + * @uiGroup General Form Properties */ - "icon": "gift" | "circle"; - } - interface SqmTimelineEntry { + "continueButton": string; /** - * @uiName Description + * Shown before the participant’s bank account information. + * @uiName Bank account field label + * @uiGroup Dashboard Properties */ - "desc": string; + "dashboard_accountText": string; /** - * @uiName Icon - * @uiType string - * @uiEnum ["gift", "circle"] - * @uiEnumNames ["Gift", "Circle"] + * Additional text displayed next to the tax form's status badge. + * @uiName Tax form in review description + * @uiGroup Dashboard Properties */ - "icon": "gift" | "circle"; + "dashboard_badgeTextAwaitingReview"?: string; /** - * @uiName Reward amount + * Additional text displayed next to the tax form's status badge + * @uiName Active W-9 description + * @uiGroup Dashboard Properties */ - "reward": string; - "setIcon": (value: "gift" | "circle") => Promise; + "dashboard_badgeTextSubmittedOn"?: string; /** - * @uiName Reward unit + * Additional text displayed next to the tax form's status badge. + * @uiName Active W-8 description + * @uiGroup Dashboard Properties */ - "unit": string; - } - interface SqmTitledSection { + "dashboard_badgeTextSubmittedOnW8"?: string; /** - * Text value shown when there is no label slot declared. - * @uiName Label + * @uiName Payout information section header + * @uiGroup Dashboard Properties */ - "label": string; + "dashboard_bankingInformationSectionHeader": string; /** - * Margin applied to the bottom of the label slot - * @uiName Label bottom margin - * @uiType string - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Date column title + * @uiGroup Dashboard Properties */ - "labelMargin": Spacing; + "dashboard_dateColumnTitle": string; /** - * Padding applied to all 4 sides of the container - * @uiName Section padding - * @uiType string - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Earnings after tax column title + * @uiGroup Dashboard Properties */ - "padding": Spacing; + "dashboard_earningsAfterTaxColumnTitle": string; /** - * @uiName Text alignment - * @uiType string - * @uiEnum ["left", "center", "right"] - * @uiEnumNames ["Left", "Center", "Right"] + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Earnings column title + * @uiGroup Dashboard Properties */ - "textAlign": "left" | "center" | "right"; - } - interface SqmUserName { + "dashboard_earningsColumnTitle": string; + /** + * @uiName Edit payment info button label + * @uiGroup Dashboard Properties + */ + "dashboard_editPaymentInformationButton": string; + /** + * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts. + * @uiName Payout error message description + * @uiGroup Dashboard Properties + * @uiWidget textArea + */ + "dashboard_errorDescriptionText": string; + /** + * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts. + * @uiName Payout error message title + * @uiGroup Dashboard Properties + * @uiWidget textArea + */ + "dashboard_errorTitleText": string; + /** + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Indirect tax column title + * @uiGroup Dashboard Properties + */ + "dashboard_indirectTaxColumnTitle": string; + /** + * Displayed to participants who have submitted their indirect tax information. + * @uiName Indirect tax details + * @uiGroup Dashboard Properties + */ + "dashboard_indirectTaxDetails": string; + /** + * If the participant is registered for indirect tax in Canada, display the province they’re registered in. + * @uiName Canadian province of indirect tax + * @uiGroup Dashboard Properties + */ + "dashboard_indirectTaxInfoCanada": string; + /** + * If the participant is registered for indirect tax, display the country they’re registered in. + * @uiName Indirect tax country + * @uiGroup Dashboard Properties + */ + "dashboard_indirectTaxInfoOtherCountry": string; + /** + * @uiName Indirect tax section header + * @uiGroup Dashboard Properties + */ + "dashboard_indirectTaxInfoSectionHeader": string; + /** + * If the participant is registered for indirect tax in Spain, display the region they’re registered in. + * @uiName Spanish region of indirect tax + * @uiGroup Dashboard Properties + */ + "dashboard_indirectTaxInfoSpain": string; + /** + * @uiName Indirect tax tooltip + * @uiGroup Dashboard Properties + * @uiWidget textArea + */ + "dashboard_indirectTaxTooltipSupport": string; + /** + * Additional text displayed next to the tax form's status badge. + * @uiName Invalid tax form description + * @uiGroup Dashboard Properties + * @uiWidget textArea + */ + "dashboard_invalidForm"?: string; + /** + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Invoice number column title + * @uiGroup Dashboard Properties + */ + "dashboard_invoiceColumnTitle": string; + /** + * @uiName Invoice table description + * @uiGroup Dashboard Properties + */ + "dashboard_invoiceDescription": string; + /** + * @uiName Empty invoice table header + * @uiGroup Dashboard Properties + */ + "dashboard_invoiceEmptyStateHeader": string; + /** + * @uiName Empty invoice table description + * @uiGroup Dashboard Properties + */ + "dashboard_invoiceEmptyStateText": string; + /** + * @uiName Invoice table title + * @uiGroup Dashboard Properties + */ + "dashboard_invoiceHeader": string; + /** + * @uiName Invoice table next page button label + * @uiGroup Dashboard Properties + */ + "dashboard_invoiceMoreLabel": string; + /** + * @uiName Invoice table previous page button label + * @uiGroup Dashboard Properties + */ + "dashboard_invoicePrevLabel": string; + /** + * @uiName Submit new tax form button label + * @uiGroup Dashboard Properties + */ + "dashboard_newFormButton": string; + /** + * No other statuses or badges will be displayed in the tax form section in this case. + * @uiName Tax form not required text + * @uiGroup Dashboard Properties + * @uiWidget textArea + */ + "dashboard_noFormNeededSubtext": string; + /** + * @uiName Not registered for indirect tax text + * @uiGroup Dashboard Properties + * @uiWidget textArea + */ + "dashboard_notRegisteredForTax": string; + /** + * Displayed under the payout details card. + * @uiName Payout from impact text + * @uiGroup Dashboard Properties + * @uiWidget textArea + */ + "dashboard_payoutFromImpact": string; + /** + * Text displayed for existing publishers that do not have saved banking information. + * @uiName Payout missing information subtext + * @uiGroup Dashboard Properties + */ + "dashboard_payoutMissingInformationText": string; + /** + * Displayed to participants registered in Quebec, Canada. + * @uiName QST indirect tax details + * @uiGroup Dashboard Properties + */ + "dashboard_qstNumber": string; + /** + * @uiName Replace tax form modal body text + * @uiGroup Dashboard Properties + * @uiWidget textArea + */ + "dashboard_replaceTaxFormModalBodyText": string; + /** + * @uiName Replace tax form modal header + * @uiGroup Dashboard Properties + */ + "dashboard_replaceTaxFormModalHeader": string; + /** + * @uiName Payout status badge + * @uiGroup Dashboard Properties + */ + "dashboard_statusBadgeText": string; + /** + * @uiName Active tax form badge label + * @uiGroup Dashboard Properties + */ + "dashboard_statusTextActive"?: string; + /** + * @uiName Invalid tax form badge label + * @uiGroup Dashboard Properties + */ + "dashboard_statusTextNotActive"?: string; + /** + * Displayed when the participant submitted their form but it is awaiting review. + * @uiName Not verified tax form badge label + * @uiGroup Dashboard Properties + */ + "dashboard_statusTextNotVerified"?: string; + /** + * @uiName Spain sub-region indirect tax number + * @uiGroup Dashboard Properties + */ + "dashboard_subRegionTaxNumber": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-8 error message title + * @uiGroup Dashboard Properties + * @uiWidget textArea + */ + "dashboard_taxAlertHeaderNotActiveW8"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-9 error message title + * @uiGroup Dashboard Properties + * @uiWidget textArea + */ + "dashboard_taxAlertHeaderNotActiveW9"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-8 error message description + * @uiGroup Dashboard Properties + */ + "dashboard_taxAlertNotActiveMessageW8"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-9 error message description + * @uiGroup Dashboard Properties + * @uiWidget textArea + */ + "dashboard_taxAlertNotActiveMessageW9"?: string; + /** + * @uiName Tax document section header + * @uiGroup Dashboard Properties + */ + "dashboard_taxDocumentSectionHeader": string; + /** + * Displayed under the tax document section header. + * @uiName Tax documents section description + * @uiGroup Dashboard Properties + */ + "dashboard_taxDocumentSectionSubHeader": string; + /** + * Display participants' payout preference on the payout information card, indicating the balance at which they want to get paid. + * @uiName Payout schedule by threshold text + * @uiGroup Dashboard Properties + */ + "dashboard_thresholdPayoutText": string; /** * @undocumented * @uiType object */ - "demoData"?: DemoData; + "demoData"?: DemoData; /** - * @uiName Unknown user name + * Displayed under a field when it has an invalid entry. + * @uiName Form field error message + * @uiGroup General Form Properties */ - "fallback": string; + "fieldInvalidError": string; /** - * Text displayed while the participant’s name is loading. - * @uiName Loading text + * Displayed under a field that is missing required information. + * @uiName Empty form field error message + * @uiGroup General Form Properties */ - "loadingText": string; - } -} + "fieldRequiredError": string; + /** + * @uiName Setup progress + * @uiGroup General Form Properties + */ + "formStep": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message description + * @uiGroup General Form Properties + * @uiWidget textArea + */ + "generalErrorDescription": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message title + * @uiGroup General Form Properties + * @uiWidget textArea + */ + "generalErrorTitle": string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert description + * @uiGroup General Form Properties + * @uiWidget textArea + */ + "isPartnerAlertDescription": string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert title + * @uiGroup General Form Properties + * @uiWidget textArea + */ + "isPartnerAlertHeader": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message description + * @uiGroup General Form Properties + * @uiWidget textArea + */ + "loadingErrorAlertDescription": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message title + * @uiGroup General Form Properties + * @uiWidget textArea + */ + "loadingErrorAlertHeader": string; + /** + * Placeholder text displayed in the country search dropdown + * @uiName Country field placeholder text + * @uiGroup General Form Properties + */ + "searchForCountryText": string; + /** + * Edit the property called terms and conditions text to change what's displayed for {termsAndConditionsLink}. + * @uiName Terms and conditions checkbox + * @uiGroup Step 1 Properties + */ + "step1_allowBankingCollection": string; + /** + * @uiName Country field label + * @uiGroup Step 1 Properties + */ + "step1_country": string; + /** + * @uiName Currency field label + * @uiGroup Step 1 Properties + */ + "step1_currency": string; + /** + * @uiName Currency field help text + * @uiGroup Step 1 Properties + */ + "step1_currencyHelpText": string; + /** + * @uiName Email field label + * @uiGroup Step 1 Properties + */ + "step1_email": string; + /** + * @uiName First name field label + * @uiGroup Step 1 Properties + */ + "step1_firstName": string; + /** + * @uiName Last name field label + * @uiGroup Step 1 Properties + */ + "step1_lastName": string; + /** + * @uiName Step 1 title + * @uiGroup Step 1 Properties + */ + "step1_personalInformation": string; + /** + * Placeholder text displayed in the currency search dropdown + * @uiName Currency field placeholder text + * @uiGroup Step 1 Properties + */ + "step1_searchForCurrencyText": string; + /** + * The text link that appears in the terms and conditions checkbox + * @uiName Terms and conditions text + * @uiGroup Step 1 Properties + * @uiWidget textArea + */ + "step1_termsAndConditionsLabel": string; + /** + * Communicate that after this step, only Support can change personal and indirect tax information. + * @uiName Submission confirmation alert + * @uiGroup Step 2 Properties + * @uiWidget textArea + */ + "step2_cannotChangeInfoAlert": string; + /** + * @uiName Step 2 title + * @uiGroup Step 2 Properties + */ + "step2_indirectTax": string; + /** + * Displayed under the title of this step. + * @uiName Step 2 description + * @uiGroup Step 2 Properties + * @uiWidget textArea + */ + "step2_indirectTaxDescription": string; + /** + * Displayed with indirect tax registration options. + * @uiName Indirect tax details section title + * @uiGroup Step 2 Properties + */ + "step2_indirectTaxDetails": string; + /** + * @uiName Indirect tax number field label + * @uiGroup Step 2 Properties + */ + "step2_indirectTaxNumber": string; + /** + * @uiName Missing indirect tax number error message + * @uiGroup Step 2 Properties + */ + "step2_indirectTaxNumberError": string; + /** + * Displayed to participants registered for indirect tax in Quebec, Canada. + * @uiName QST tax checkbox + * @uiGroup Step 2 Properties + */ + "step2_isRegisteredQST": string; + /** + * Displayed to participants registered for indirect tax in Spain. + * @uiName Spain income tax checkbox + * @uiGroup Step 2 Properties + * @uiWidget textArea + */ + "step2_isRegisteredSubRegionIncomeTax": string; + /** + * @uiName Not registered for indirect tax option + * @uiGroup Step 2 Properties + * @uiWidget textArea + */ + "step2_notRegistered": string; + /** + * Participants based in the US are considered not registered. + * @uiName Not registered for indirect tax option description + * @uiGroup Step 2 Properties + */ + "step2_notRegisteredSubtext": string; + /** + * @uiName Registered for indirect tax option + * @uiGroup Step 2 Properties + * @uiWidget textArea + */ + "step2_otherRegion": string; + /** + * Selecting this option will display fields to enter indirect tax details. + * @uiName Registered for indirect tax option description + * @uiGroup Step 2 Properties + */ + "step2_otherRegionSubtext": string; + /** + * @uiName Province field label + * @uiGroup Step 2 Properties + */ + "step2_province": string; + /** + * Displayed to participants registered for QST. + * @uiName QST number field label + * @uiGroup Step 2 Properties + */ + "step2_qstNumber": string; + /** + * @uiName Region of indirect tax field label + * @uiGroup Step 2 Properties + */ + "step2_selectedRegion": string; + /** + * Displayed to participants registered in Spain. + * @uiName Sub-region of indirect tax field label + * @uiGroup Step 2 Properties + */ + "step2_subRegion": string; + /** + * @uiName Income tax field label + * @uiGroup Step 2 Properties + */ + "step2_subRegionTaxNumberLabel": string; + /** + * An option for the participant type field. Used to determine which W-8 form is required. + * @uiName Business representative participant type label + * @uiGroup Step 3 Properties + */ + "step3_businessEntity": string; + /** + * This appears inside the Docusign frame. + * @uiName Docusign form error message + * @uiGroup Step 3 Properties + * @uiWidget textArea + */ + "step3_docusignError": string; + /** + * This appears inside the Docusign frame. + * @uiName Docusign session expired message + * @uiGroup Step 3 Properties + * @uiWidget textArea + */ + "step3_docusignExpired": string; + /** + * Remind participants their session will time out after 20 minutes of inactivity. + * @uiName Docusign timed session message + * @uiGroup Step 3 Properties + * @uiWidget textArea + */ + "step3_docusignSessionWarning": string; + /** + * An option for the participant type field. Used to determine which W-8 form is required. + * @uiName Individual participant type label + * @uiGroup Step 3 Properties + */ + "step3_individualParticipant": string; + /** + * @uiName Participant type field label + * @uiGroup Step 3 Properties + */ + "step3_participantType": string; + /** + * @uiName Refresh page button label + * @uiGroup Step 3 Properties + */ + "step3_refreshButton": string; + /** + * @uiName Step 3 title + * @uiGroup Step 3 Properties + */ + "step3_taxForm": string; + /** + * Displayed at the top of the page to participants based in the US. + * @uiName W-9 tax form description + * @uiGroup Step 3 Properties + * @uiWidget textArea + */ + "step3_taxFormDescription": string; + /** + * Displayed at the top of the page to participants representing a business. + * @uiName W-8 BEN-E tax form description + * @uiGroup Step 3 Properties + * @uiWidget textArea + */ + "step3_taxFormDescriptionBusinessEntity": string; + /** + * Displayed at the top of the page to individuals joining a US program who reside outside the country. + * @uiName W-8 BEN tax form description + * @uiGroup Step 3 Properties + * @uiWidget textArea + */ + "step3_taxFormDescriptionIndividualParticipant": string; + /** + * Display the type of tax form that the participant must submit. + * @uiName Tax form name + * @uiGroup Step 3 Properties + */ + "step3_taxFormLabel": string; + /** + * @uiName Agency code field label + * @uiGroup Step 4 Properties + */ + "step4_agencyCodeLabel": string; + /** + * @uiName Bank account number field label + * @uiGroup Step 4 Properties + */ + "step4_bankAccountNumberLabel": string; + /** + * @uiName Bank account type field label + * @uiGroup Step 4 Properties + */ + "step4_bankAccountTypeLabel": string; + /** + * @uiName Bank address field label + * @uiGroup Step 4 Properties + */ + "step4_bankAddressLabel": string; + /** + * @uiName Bank city field label + * @uiGroup Step 4 Properties + */ + "step4_bankCityLabel": string; + /** + * @uiName Bank country field label + * @uiGroup Step 4 Properties + */ + "step4_bankLocationLabel": string; + /** + * @uiName Bank name field label + * @uiGroup Step 4 Properties + */ + "step4_bankNameLabel": string; + /** + * @uiName Bank postal code field label + * @uiGroup Step 4 Properties + */ + "step4_bankPostalCodeLabel": string; + /** + * @uiName Bank province/state field label + * @uiGroup Step 4 Properties + */ + "step4_bankStateLabel": string; + /** + * @uiName Beneficiary account field label + * @uiGroup Step 4 Properties + */ + "step4_beneficiaryAccountNameLabel": string; + /** + * @uiName Branch code field label + * @uiGroup Step 4 Properties + */ + "step4_branchCodeLabel": string; + /** + * One of three options listed for the classification field + * @uiName Business classification option + * @uiGroup Step 4 Properties + */ + "step4_businessSelectItemLabel": string; + /** + * @uiName Checking account option + * @uiGroup Step 4 Properties + */ + "step4_checkingSelectItemLabel": string; + /** + * @uiName Classification CPF field label + * @uiGroup Step 4 Properties + */ + "step4_classificationCPFLabel": string; + /** + * @uiName Classification entity field label + * @uiGroup Step 4 Properties + */ + "step4_classificationEntityLabel": string; + /** + * Label text for the classification input field + * @uiName Classification field label + * @uiGroup Step 4 Properties + */ + "step4_classificationLabel": string; + /** + * @uiName Direct to bank payout option + * @uiGroup Step 4 Properties + */ + "step4_directlyToBankAccount": string; + /** + * Default payment method to the participants’ bank account. + * @uiName EFT withdrawal payment method + * @uiGroup Step 4 Properties + */ + "step4_eftWithdrawalLabel": string; + /** + * One of three options listed for the classification field + * @uiName Foreign classification option + * @uiGroup Step 4 Properties + */ + "step4_foreignSelectItemLabel": string; + /** + * @uiName FX Wire Processing fee text + * @uiGroup Step 4 Properties + */ + "step4_fxWireProcessingFeeLabel": string; + /** + * @uiName IBAN field label + * @uiGroup Step 4 Properties + */ + "step4_ibanLabel": string; + /** + * One of three options listed for the classification field + * @uiName Individual classification option + * @uiGroup Step 4 Properties + */ + "step4_individualSelectItemLabel": string; + /** + * @uiName Patronymic name field label + * @uiGroup Step 4 Properties + */ + "step4_patronymicNameLabel": string; + /** + * Displayed to participants who choose PayPal as their payout method + * @uiName PayPal email field label + * @uiGroup Step 4 Properties + */ + "step4_payPalInputLabel": string; + /** + * One of two payment day options + * @uiName Fifteenth of month payday option + * @uiGroup Step 4 Properties + */ + "step4_paymentDayFifteenthOfMonthLabelText": string; + /** + * One of two payment day options + * @uiName First of month payday option + * @uiGroup Step 4 Properties + */ + "step4_paymentDayFirstOfMonthLabelText": string; + /** + * Let the participant choose what day of the month they’ll get paid + * @uiName Payment day field label + * @uiGroup Step 4 Properties + */ + "step4_paymentDaySelectLabel": string; + /** + * @uiName Payment method section header + * @uiGroup Step 4 Properties + */ + "step4_paymentMethod": string; + /** + * @uiName Payment method section description + * @uiGroup Step 4 Properties + */ + "step4_paymentMethodSubtext": string; + /** + * @uiName Payment schedule section header + * @uiGroup Step 4 Properties + */ + "step4_paymentSchedule": string; + /** + * @uiName Threshold balance payment schedule option + * @uiGroup Step 4 Properties + */ + "step4_paymentScheduleBalanceThreshold": string; + /** + * @uiName Fixed day payment schedule option + * @uiGroup Step 4 Properties + */ + "step4_paymentScheduleFixedDay": string; + /** + * Participant use this field to select the balance at which they want to be paid + * @uiName Payment threshold field label + * @uiGroup Step 4 Properties + */ + "step4_paymentThresholdSelectLabel": string; + /** + * @uiName Routing code field label + * @uiGroup Step 4 Properties + */ + "step4_routingCodeLabel": string; + /** + * Label text for the savings account type select item + * @uiName Savings account options + * @uiGroup Step 4 Properties + */ + "step4_savingsSelectItemLabel": string; + /** + * @uiName SWIFT code field label + * @uiGroup Step 4 Properties + */ + "step4_swiftCodeLabel": string; + /** + * @uiName Step 4 title + * @uiGroup Step 4 Properties + */ + "step4_taxAndPayouts": string; + /** + * @uiName Taxpayer ID field label + * @uiGroup Step 4 Properties + */ + "step4_taxPayerIdLabel": string; + /** + * @uiName PayPal payout option + * @uiGroup Step 4 Properties + */ + "step4_toPayPalAccount": string; + /** + * @uiName VO code field label + * @uiGroup Step 4 Properties + */ + "step4_voCodeLabel": string; + /** + * Displayed at the top of the page on all set up steps. + * @uiName Page description + * @uiGroup General Form Properties + */ + "taxAndPayoutsDescription": string; + } + interface SqmTaxAndCashDashboard { + /** + * Shown before the participant’s bank account information. + * @uiName Bank account field label + */ + "accountText": string; + /** + * Additional text displayed next to the tax form's status badge. + * @uiName Tax form in review description + */ + "badgeTextAwaitingReview"?: string; + /** + * Additional text displayed next to the tax form's status badge + * @uiName Active W-9 description + */ + "badgeTextSubmittedOn"?: string; + /** + * Additional text displayed next to the tax form's status badge. + * @uiName Active W-8 description + */ + "badgeTextSubmittedOnW8"?: string; + /** + * @uiName Payout information section header + */ + "bankingInformationSectionHeader": string; + /** + * @uiName Cancel button label + */ + "cancelButton": string; + /** + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Date column title + */ + "dateColumnTitle": string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Earnings after tax column title + */ + "earningsAfterTaxColumnTitle": string; + /** + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Earnings column title + */ + "earningsColumnTitle": string; + /** + * @uiName Edit payment info button label + */ + "editPaymentInformationButton": string; + /** + * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts. + * @uiName Payout error message description + * @uiWidget textArea + */ + "errorDescriptionText": string; + /** + * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts. + * @uiName Payout error message title + * @uiWidget textArea + */ + "errorTitleText": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message description + * @uiWidget textArea + */ + "generalErrorDescription": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message title + * @uiWidget textArea + */ + "generalErrorTitle": string; + /** + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Indirect tax column title + */ + "indirectTaxColumnTitle": string; + /** + * Displayed to participants who have submitted their indirect tax information. + * @uiName Indirect tax details + */ + "indirectTaxDetails": string; + /** + * If the participant is registered for indirect tax in Canada, display the province they’re registered in. + * @uiName Canadian province of indirect tax + */ + "indirectTaxInfoCanada": string; + /** + * If the participant is registered for indirect tax, display the country they’re registered in. + * @uiName Indirect tax country + */ + "indirectTaxInfoOtherCountry": string; + /** + * @uiName Indirect tax section header + */ + "indirectTaxInfoSectionHeader": string; + /** + * If the participant is registered for indirect tax in Spain, display the region they’re registered in. + * @uiName Spanish region of indirect tax + */ + "indirectTaxInfoSpain": string; + /** + * @uiName Indirect tax tooltip + * @uiWidget textArea + */ + "indirectTaxTooltipSupport": string; + /** + * Additional text displayed next to the tax form's status badge. + * @uiName Invalid tax form description + * @uiWidget textArea + */ + "invalidForm"?: string; + /** + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Invoice number column title + */ + "invoiceColumnTitle": string; + /** + * @uiName Invoice table description + */ + "invoiceDescription": string; + /** + * @uiName Empty invoice table header + */ + "invoiceEmptyStateHeader": string; + /** + * @uiName Empty invoice table description + */ + "invoiceEmptyStateText": string; + /** + * @uiName Invoice table title + */ + "invoiceHeader": string; + /** + * @uiName Invoice table next page button label + */ + "invoiceMoreLabel": string; + /** + * @uiName Invoice table previous page button label + */ + "invoicePrevLabel": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message description + * @uiWidget textArea + */ + "loadingErrorAlertDescription": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message title + * @uiWidget textArea + */ + "loadingErrorAlertHeader": string; + /** + * @uiName Submit new tax form button label + */ + "newFormButton": string; + /** + * No other statuses or badges will be displayed in the tax form section in this case. + * @uiName Tax form not required text + * @uiWidget textArea + */ + "noFormNeededSubtext": string; + /** + * @uiName Not registered for indirect tax text + * @uiWidget textArea + */ + "notRegisteredForTax": string; + /** + * Displayed under the payout details card. + * @uiName Payout from impact text + * @uiWidget textArea + */ + "payoutFromImpact": string; + /** + * Text displayed for existing publishers that do not have saved banking information. + * @uiName Payout missing information subtext + */ + "payoutMissingInformationText": string; + /** + * Displayed to participants registered in Quebec, Canada. + * @uiName QST indirect tax details + */ + "qstNumber": string; + /** + * @uiName Replace tax form modal body text + */ + "replaceTaxFormModalBodyText": string; + /** + * @uiName Replace tax form modal header + */ + "replaceTaxFormModalHeader": string; + /** + * @uiName Payout status badge + */ + "statusBadgeText": string; + /** + * @uiName Active tax form badge label + */ + "statusTextActive"?: string; + /** + * @uiName Invalid tax form badge label + */ + "statusTextNotActive"?: string; + /** + * Displayed when the participant submitted their form but it is awaiting review. + * @uiName Not verified tax form badge label + */ + "statusTextNotVerified"?: string; + /** + * @uiName Spain sub-region indirect tax number + */ + "subRegionTaxNumber": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-8 error message title + * @uiWidget textArea + */ + "taxAlertHeaderNotActiveW8"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-9 error message title + * @uiWidget textArea + */ + "taxAlertHeaderNotActiveW9"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-8 error message description + */ + "taxAlertNotActiveMessageW8"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-9 error message description + * @uiWidget textArea + */ + "taxAlertNotActiveMessageW9"?: string; + /** + * Displayed at the top of the page on all set up steps and on the dashboard. + * @uiName Page description + */ + "taxAndPayoutsDescription": string; + /** + * @uiName Tax document section header + */ + "taxDocumentSectionHeader": string; + /** + * Displayed under the tax document section header. + * @uiName Tax documents section description + */ + "taxDocumentSectionSubHeader": string; + /** + * Display participants' payout preference on the payout information card, indicating the balance at which they want to get paid. + * @uiName Payout schedule by threshold text + */ + "thresholdPayoutText": string; + } + interface SqmText { + } + interface SqmTextSpan { + /** + * @uiName Text + */ + "text": string; + /** + * @uiName Type + * @uiType string + * @uiEnum ["p", "subtext", "h1", "h2", "h3", "h4"] + * @uiEnumNames ["Paragraph", "Subtext", "Header 1", "Header 2", "Header 3", "Header 4"] + */ + "type": "p" | "subtext" | "h1" | "h2" | "h3" | "h4"; + } + interface SqmTimeline { + /** + * @uiName Icon + * @uiType string + * @uiEnum ["gift", "circle"] + * @uiEnumNames ["Gift", "Circle"] + */ + "icon": "gift" | "circle"; + } + interface SqmTimelineEntry { + /** + * @uiName Description + */ + "desc": string; + /** + * @uiName Icon + * @uiType string + * @uiEnum ["gift", "circle"] + * @uiEnumNames ["Gift", "Circle"] + */ + "icon": "gift" | "circle"; + /** + * @uiName Reward amount + */ + "reward": string; + "setIcon": (value: "gift" | "circle") => Promise; + /** + * @uiName Reward unit + */ + "unit": string; + } + interface SqmTitledSection { + /** + * Text value shown when there is no label slot declared. + * @uiName Label + */ + "label": string; + /** + * Margin applied to the bottom of the label slot + * @uiName Label bottom margin + * @uiType string + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "labelMargin": Spacing; + /** + * Padding applied to all 4 sides of the container + * @uiName Section padding + * @uiType string + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "padding": Spacing; + /** + * @uiName Text alignment + * @uiType string + * @uiEnum ["left", "center", "right"] + * @uiEnumNames ["Left", "Center", "Right"] + */ + "textAlign": "left" | "center" | "right"; + } + interface SqmUserInfoForm { + /** + * Edit the property called terms and conditions text to change what's displayed for {termsAndConditionsLink}. + * @uiName Terms and conditions checkbox + */ + "allowBankingCollection": string; + /** + * @uiName Continue button label + */ + "continueButton": string; + /** + * @uiName Country field label + */ + "country": string; + /** + * @uiName Currency field label + */ + "currency": string; + /** + * @uiName Currency field help text + */ + "currencyHelpText": string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Email field label + */ + "email": string; + /** + * Displayed under a field that is missing required information. + * @uiName Empty form field error message + */ + "fieldRequiredError": string; + /** + * @uiName First name field label + */ + "firstName": string; + /** + * @uiName Setup progress + */ + "formStep": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message description + * @uiWidget textArea + */ + "generalErrorDescription": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message title + * @uiWidget textArea + */ + "generalErrorTitle": string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert description + * @uiWidget textArea + */ + "isPartnerAlertDescription": string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert title + * @uiWidget textArea + */ + "isPartnerAlertHeader": string; + /** + * @uiName Last name field label + */ + "lastName": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message description + * @uiWidget textArea + */ + "loadingErrorAlertDescription": string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message title + * @uiWidget textArea + */ + "loadingErrorAlertHeader": string; + /** + * @uiName Step 1 title + */ + "personalInformation": string; + /** + * Placeholder text displayed in the country search dropdown + * @uiName Country field placeholder text + */ + "searchForCountryText": string; + /** + * Placeholder text displayed in the currency search dropdown + * @uiName Currency field placeholder text + */ + "searchForCurrencyText": string; + /** + * Displayed at the top of the page on all set up steps. + * @uiName Page description + */ + "taxAndPayoutsDescription": string; + /** + * The text link that appears in the terms and conditions checkbox + * @uiName Terms and conditions text + * @uiWidget textArea + */ + "termsAndConditionsLabel": string; + } + interface SqmUserName { + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Unknown user name + */ + "fallback": string; + /** + * Text displayed while the participant’s name is loading. + * @uiName Loading text + */ + "loadingText": string; + } +} declare global { interface HTMLRaisinsPlopTargetElement extends Components.RaisinsPlopTarget, HTMLStencilElement { } - var HTMLRaisinsPlopTargetElement: { - prototype: HTMLRaisinsPlopTargetElement; - new (): HTMLRaisinsPlopTargetElement; + var HTMLRaisinsPlopTargetElement: { + prototype: HTMLRaisinsPlopTargetElement; + new (): HTMLRaisinsPlopTargetElement; + }; + interface HTMLSqmAssetCardElement extends Components.SqmAssetCard, HTMLStencilElement { + } + var HTMLSqmAssetCardElement: { + prototype: HTMLSqmAssetCardElement; + new (): HTMLSqmAssetCardElement; + }; + interface HTMLSqmBankingInfoFormElement extends Components.SqmBankingInfoForm, HTMLStencilElement { + } + var HTMLSqmBankingInfoFormElement: { + prototype: HTMLSqmBankingInfoFormElement; + new (): HTMLSqmBankingInfoFormElement; + }; + interface HTMLSqmBigStatElement extends Components.SqmBigStat, HTMLStencilElement { + } + var HTMLSqmBigStatElement: { + prototype: HTMLSqmBigStatElement; + new (): HTMLSqmBigStatElement; + }; + interface HTMLSqmBrandElement extends Components.SqmBrand, HTMLStencilElement { + } + var HTMLSqmBrandElement: { + prototype: HTMLSqmBrandElement; + new (): HTMLSqmBrandElement; + }; + interface HTMLSqmCardFeedElement extends Components.SqmCardFeed, HTMLStencilElement { + } + var HTMLSqmCardFeedElement: { + prototype: HTMLSqmCardFeedElement; + new (): HTMLSqmCardFeedElement; + }; + interface HTMLSqmCheckboxFieldElement extends Components.SqmCheckboxField, HTMLStencilElement { + } + var HTMLSqmCheckboxFieldElement: { + prototype: HTMLSqmCheckboxFieldElement; + new (): HTMLSqmCheckboxFieldElement; + }; + interface HTMLSqmCloseButtonElement extends Components.SqmCloseButton, HTMLStencilElement { + } + var HTMLSqmCloseButtonElement: { + prototype: HTMLSqmCloseButtonElement; + new (): HTMLSqmCloseButtonElement; + }; + interface HTMLSqmContextRouterElement extends Components.SqmContextRouter, HTMLStencilElement { + } + var HTMLSqmContextRouterElement: { + prototype: HTMLSqmContextRouterElement; + new (): HTMLSqmContextRouterElement; + }; + interface HTMLSqmCouponCodeElement extends Components.SqmCouponCode, HTMLStencilElement { + } + var HTMLSqmCouponCodeElement: { + prototype: HTMLSqmCouponCodeElement; + new (): HTMLSqmCouponCodeElement; + }; + interface HTMLSqmDividedLayoutElement extends Components.SqmDividedLayout, HTMLStencilElement { + } + var HTMLSqmDividedLayoutElement: { + prototype: HTMLSqmDividedLayoutElement; + new (): HTMLSqmDividedLayoutElement; + }; + interface HTMLSqmDocusignFormElement extends Components.SqmDocusignForm, HTMLStencilElement { + } + var HTMLSqmDocusignFormElement: { + prototype: HTMLSqmDocusignFormElement; + new (): HTMLSqmDocusignFormElement; + }; + interface HTMLSqmDropdownFieldElement extends Components.SqmDropdownField, HTMLStencilElement { + } + var HTMLSqmDropdownFieldElement: { + prototype: HTMLSqmDropdownFieldElement; + new (): HTMLSqmDropdownFieldElement; + }; + interface HTMLSqmEditProfileElement extends Components.SqmEditProfile, HTMLStencilElement { + } + var HTMLSqmEditProfileElement: { + prototype: HTMLSqmEditProfileElement; + new (): HTMLSqmEditProfileElement; + }; + interface HTMLSqmEmptyElement extends Components.SqmEmpty, HTMLStencilElement { + } + var HTMLSqmEmptyElement: { + prototype: HTMLSqmEmptyElement; + new (): HTMLSqmEmptyElement; + }; + interface HTMLSqmFormMessageElement extends Components.SqmFormMessage, HTMLStencilElement { + } + var HTMLSqmFormMessageElement: { + prototype: HTMLSqmFormMessageElement; + new (): HTMLSqmFormMessageElement; + }; + interface HTMLSqmGraphqlClientProviderElement extends Components.SqmGraphqlClientProvider, HTMLStencilElement { + } + var HTMLSqmGraphqlClientProviderElement: { + prototype: HTMLSqmGraphqlClientProviderElement; + new (): HTMLSqmGraphqlClientProviderElement; + }; + interface HTMLSqmHeaderLogoElement extends Components.SqmHeaderLogo, HTMLStencilElement { + } + var HTMLSqmHeaderLogoElement: { + prototype: HTMLSqmHeaderLogoElement; + new (): HTMLSqmHeaderLogoElement; + }; + interface HTMLSqmHeroElement extends Components.SqmHero, HTMLStencilElement { + } + var HTMLSqmHeroElement: { + prototype: HTMLSqmHeroElement; + new (): HTMLSqmHeroElement; + }; + interface HTMLSqmHeroImageElement extends Components.SqmHeroImage, HTMLStencilElement { + } + var HTMLSqmHeroImageElement: { + prototype: HTMLSqmHeroImageElement; + new (): HTMLSqmHeroImageElement; + }; + interface HTMLSqmHookStoryContainerElement extends Components.SqmHookStoryContainer, HTMLStencilElement { + } + var HTMLSqmHookStoryContainerElement: { + prototype: HTMLSqmHookStoryContainerElement; + new (): HTMLSqmHookStoryContainerElement; + }; + interface HTMLSqmImageElement extends Components.SqmImage, HTMLStencilElement { + } + var HTMLSqmImageElement: { + prototype: HTMLSqmImageElement; + new (): HTMLSqmImageElement; + }; + interface HTMLSqmIndirectTaxFormElement extends Components.SqmIndirectTaxForm, HTMLStencilElement { + } + var HTMLSqmIndirectTaxFormElement: { + prototype: HTMLSqmIndirectTaxFormElement; + new (): HTMLSqmIndirectTaxFormElement; + }; + interface HTMLSqmInputFieldElement extends Components.SqmInputField, HTMLStencilElement { + } + var HTMLSqmInputFieldElement: { + prototype: HTMLSqmInputFieldElement; + new (): HTMLSqmInputFieldElement; + }; + interface HTMLSqmInstantAccessRegistrationElement extends Components.SqmInstantAccessRegistration, HTMLStencilElement { + } + var HTMLSqmInstantAccessRegistrationElement: { + prototype: HTMLSqmInstantAccessRegistrationElement; + new (): HTMLSqmInstantAccessRegistrationElement; + }; + interface HTMLSqmInvoiceTableElement extends Components.SqmInvoiceTable, HTMLStencilElement { + } + var HTMLSqmInvoiceTableElement: { + prototype: HTMLSqmInvoiceTableElement; + new (): HTMLSqmInvoiceTableElement; + }; + interface HTMLSqmInvoiceTableDataCellElement extends Components.SqmInvoiceTableDataCell, HTMLStencilElement { + } + var HTMLSqmInvoiceTableDataCellElement: { + prototype: HTMLSqmInvoiceTableDataCellElement; + new (): HTMLSqmInvoiceTableDataCellElement; + }; + interface HTMLSqmInvoiceTableDataColumnElement extends Components.SqmInvoiceTableDataColumn, HTMLStencilElement { + } + var HTMLSqmInvoiceTableDataColumnElement: { + prototype: HTMLSqmInvoiceTableDataColumnElement; + new (): HTMLSqmInvoiceTableDataColumnElement; + }; + interface HTMLSqmInvoiceTableDateCellElement extends Components.SqmInvoiceTableDateCell, HTMLStencilElement { + } + var HTMLSqmInvoiceTableDateCellElement: { + prototype: HTMLSqmInvoiceTableDateCellElement; + new (): HTMLSqmInvoiceTableDateCellElement; + }; + interface HTMLSqmInvoiceTableDateColumnElement extends Components.SqmInvoiceTableDateColumn, HTMLStencilElement { + } + var HTMLSqmInvoiceTableDateColumnElement: { + prototype: HTMLSqmInvoiceTableDateColumnElement; + new (): HTMLSqmInvoiceTableDateColumnElement; + }; + interface HTMLSqmInvoiceTableDownloadCellElement extends Components.SqmInvoiceTableDownloadCell, HTMLStencilElement { + } + var HTMLSqmInvoiceTableDownloadCellElement: { + prototype: HTMLSqmInvoiceTableDownloadCellElement; + new (): HTMLSqmInvoiceTableDownloadCellElement; + }; + interface HTMLSqmInvoiceTableDownloadColumnElement extends Components.SqmInvoiceTableDownloadColumn, HTMLStencilElement { + } + var HTMLSqmInvoiceTableDownloadColumnElement: { + prototype: HTMLSqmInvoiceTableDownloadColumnElement; + new (): HTMLSqmInvoiceTableDownloadColumnElement; + }; + interface HTMLSqmLeaderboardElement extends Components.SqmLeaderboard, HTMLStencilElement { + } + var HTMLSqmLeaderboardElement: { + prototype: HTMLSqmLeaderboardElement; + new (): HTMLSqmLeaderboardElement; + }; + interface HTMLSqmLeaderboardRankElement extends Components.SqmLeaderboardRank, HTMLStencilElement { + } + var HTMLSqmLeaderboardRankElement: { + prototype: HTMLSqmLeaderboardRankElement; + new (): HTMLSqmLeaderboardRankElement; + }; + interface HTMLSqmLinkButtonElement extends Components.SqmLinkButton, HTMLStencilElement { + } + var HTMLSqmLinkButtonElement: { + prototype: HTMLSqmLinkButtonElement; + new (): HTMLSqmLinkButtonElement; + }; + interface HTMLSqmLogoutCurrentUserElement extends Components.SqmLogoutCurrentUser, HTMLStencilElement { + } + var HTMLSqmLogoutCurrentUserElement: { + prototype: HTMLSqmLogoutCurrentUserElement; + new (): HTMLSqmLogoutCurrentUserElement; + }; + interface HTMLSqmNameFieldsElement extends Components.SqmNameFields, HTMLStencilElement { + } + var HTMLSqmNameFieldsElement: { + prototype: HTMLSqmNameFieldsElement; + new (): HTMLSqmNameFieldsElement; + }; + interface HTMLSqmNavigationMenuElement extends Components.SqmNavigationMenu, HTMLStencilElement { + } + var HTMLSqmNavigationMenuElement: { + prototype: HTMLSqmNavigationMenuElement; + new (): HTMLSqmNavigationMenuElement; + }; + interface HTMLSqmNavigationSidebarElement extends Components.SqmNavigationSidebar, HTMLStencilElement { + } + var HTMLSqmNavigationSidebarElement: { + prototype: HTMLSqmNavigationSidebarElement; + new (): HTMLSqmNavigationSidebarElement; + }; + interface HTMLSqmNavigationSidebarItemElement extends Components.SqmNavigationSidebarItem, HTMLStencilElement { + } + var HTMLSqmNavigationSidebarItemElement: { + prototype: HTMLSqmNavigationSidebarItemElement; + new (): HTMLSqmNavigationSidebarItemElement; + }; + interface HTMLSqmPasswordFieldElement extends Components.SqmPasswordField, HTMLStencilElement { + } + var HTMLSqmPasswordFieldElement: { + prototype: HTMLSqmPasswordFieldElement; + new (): HTMLSqmPasswordFieldElement; + }; + interface HTMLSqmPayoutDetailsCardElement extends Components.SqmPayoutDetailsCard, HTMLStencilElement { + } + var HTMLSqmPayoutDetailsCardElement: { + prototype: HTMLSqmPayoutDetailsCardElement; + new (): HTMLSqmPayoutDetailsCardElement; + }; + interface HTMLSqmPopupContainerElement extends Components.SqmPopupContainer, HTMLStencilElement { + } + var HTMLSqmPopupContainerElement: { + prototype: HTMLSqmPopupContainerElement; + new (): HTMLSqmPopupContainerElement; + }; + interface HTMLSqmPortalChangePasswordElement extends Components.SqmPortalChangePassword, HTMLStencilElement { + } + var HTMLSqmPortalChangePasswordElement: { + prototype: HTMLSqmPortalChangePasswordElement; + new (): HTMLSqmPortalChangePasswordElement; + }; + interface HTMLSqmPortalContainerElement extends Components.SqmPortalContainer, HTMLStencilElement { + } + var HTMLSqmPortalContainerElement: { + prototype: HTMLSqmPortalContainerElement; + new (): HTMLSqmPortalContainerElement; + }; + interface HTMLSqmPortalEmailVerificationElement extends Components.SqmPortalEmailVerification, HTMLStencilElement { + } + var HTMLSqmPortalEmailVerificationElement: { + prototype: HTMLSqmPortalEmailVerificationElement; + new (): HTMLSqmPortalEmailVerificationElement; + }; + interface HTMLSqmPortalFooterElement extends Components.SqmPortalFooter, HTMLStencilElement { + } + var HTMLSqmPortalFooterElement: { + prototype: HTMLSqmPortalFooterElement; + new (): HTMLSqmPortalFooterElement; + }; + interface HTMLSqmPortalForgotPasswordElement extends Components.SqmPortalForgotPassword, HTMLStencilElement { + } + var HTMLSqmPortalForgotPasswordElement: { + prototype: HTMLSqmPortalForgotPasswordElement; + new (): HTMLSqmPortalForgotPasswordElement; + }; + interface HTMLSqmPortalFrameElement extends Components.SqmPortalFrame, HTMLStencilElement { + } + var HTMLSqmPortalFrameElement: { + prototype: HTMLSqmPortalFrameElement; + new (): HTMLSqmPortalFrameElement; + }; + interface HTMLSqmPortalLoginElement extends Components.SqmPortalLogin, HTMLStencilElement { + } + var HTMLSqmPortalLoginElement: { + prototype: HTMLSqmPortalLoginElement; + new (): HTMLSqmPortalLoginElement; + }; + interface HTMLSqmPortalLogoutElement extends Components.SqmPortalLogout, HTMLStencilElement { + } + var HTMLSqmPortalLogoutElement: { + prototype: HTMLSqmPortalLogoutElement; + new (): HTMLSqmPortalLogoutElement; + }; + interface HTMLSqmPortalProfileElement extends Components.SqmPortalProfile, HTMLStencilElement { + } + var HTMLSqmPortalProfileElement: { + prototype: HTMLSqmPortalProfileElement; + new (): HTMLSqmPortalProfileElement; + }; + interface HTMLSqmPortalProtectedRouteElement extends Components.SqmPortalProtectedRoute, HTMLStencilElement { + } + var HTMLSqmPortalProtectedRouteElement: { + prototype: HTMLSqmPortalProtectedRouteElement; + new (): HTMLSqmPortalProtectedRouteElement; + }; + interface HTMLSqmPortalRegisterElement extends Components.SqmPortalRegister, HTMLStencilElement { + } + var HTMLSqmPortalRegisterElement: { + prototype: HTMLSqmPortalRegisterElement; + new (): HTMLSqmPortalRegisterElement; }; - interface HTMLSqmAssetCardElement extends Components.SqmAssetCard, HTMLStencilElement { + interface HTMLSqmPortalRegistrationFormElement extends Components.SqmPortalRegistrationForm, HTMLStencilElement { } - var HTMLSqmAssetCardElement: { - prototype: HTMLSqmAssetCardElement; - new (): HTMLSqmAssetCardElement; + var HTMLSqmPortalRegistrationFormElement: { + prototype: HTMLSqmPortalRegistrationFormElement; + new (): HTMLSqmPortalRegistrationFormElement; }; - interface HTMLSqmBigStatElement extends Components.SqmBigStat, HTMLStencilElement { + interface HTMLSqmPortalResetPasswordElement extends Components.SqmPortalResetPassword, HTMLStencilElement { } - var HTMLSqmBigStatElement: { - prototype: HTMLSqmBigStatElement; - new (): HTMLSqmBigStatElement; + var HTMLSqmPortalResetPasswordElement: { + prototype: HTMLSqmPortalResetPasswordElement; + new (): HTMLSqmPortalResetPasswordElement; }; - interface HTMLSqmBrandElement extends Components.SqmBrand, HTMLStencilElement { + interface HTMLSqmPortalVerifyEmailElement extends Components.SqmPortalVerifyEmail, HTMLStencilElement { } - var HTMLSqmBrandElement: { - prototype: HTMLSqmBrandElement; - new (): HTMLSqmBrandElement; + var HTMLSqmPortalVerifyEmailElement: { + prototype: HTMLSqmPortalVerifyEmailElement; + new (): HTMLSqmPortalVerifyEmailElement; }; - interface HTMLSqmCardFeedElement extends Components.SqmCardFeed, HTMLStencilElement { + interface HTMLSqmProgramExplainerElement extends Components.SqmProgramExplainer, HTMLStencilElement { } - var HTMLSqmCardFeedElement: { - prototype: HTMLSqmCardFeedElement; - new (): HTMLSqmCardFeedElement; + var HTMLSqmProgramExplainerElement: { + prototype: HTMLSqmProgramExplainerElement; + new (): HTMLSqmProgramExplainerElement; }; - interface HTMLSqmCheckboxFieldElement extends Components.SqmCheckboxField, HTMLStencilElement { + interface HTMLSqmProgramExplainerStepElement extends Components.SqmProgramExplainerStep, HTMLStencilElement { } - var HTMLSqmCheckboxFieldElement: { - prototype: HTMLSqmCheckboxFieldElement; - new (): HTMLSqmCheckboxFieldElement; + var HTMLSqmProgramExplainerStepElement: { + prototype: HTMLSqmProgramExplainerStepElement; + new (): HTMLSqmProgramExplainerStepElement; }; - interface HTMLSqmCloseButtonElement extends Components.SqmCloseButton, HTMLStencilElement { + interface HTMLSqmProgramMenuElement extends Components.SqmProgramMenu, HTMLStencilElement { } - var HTMLSqmCloseButtonElement: { - prototype: HTMLSqmCloseButtonElement; - new (): HTMLSqmCloseButtonElement; + var HTMLSqmProgramMenuElement: { + prototype: HTMLSqmProgramMenuElement; + new (): HTMLSqmProgramMenuElement; }; - interface HTMLSqmCouponCodeElement extends Components.SqmCouponCode, HTMLStencilElement { + interface HTMLSqmReferralCardElement extends Components.SqmReferralCard, HTMLStencilElement { } - var HTMLSqmCouponCodeElement: { - prototype: HTMLSqmCouponCodeElement; - new (): HTMLSqmCouponCodeElement; + var HTMLSqmReferralCardElement: { + prototype: HTMLSqmReferralCardElement; + new (): HTMLSqmReferralCardElement; }; - interface HTMLSqmDividedLayoutElement extends Components.SqmDividedLayout, HTMLStencilElement { + interface HTMLSqmReferralIframeElement extends Components.SqmReferralIframe, HTMLStencilElement { } - var HTMLSqmDividedLayoutElement: { - prototype: HTMLSqmDividedLayoutElement; - new (): HTMLSqmDividedLayoutElement; + var HTMLSqmReferralIframeElement: { + prototype: HTMLSqmReferralIframeElement; + new (): HTMLSqmReferralIframeElement; }; - interface HTMLSqmDropdownFieldElement extends Components.SqmDropdownField, HTMLStencilElement { + interface HTMLSqmReferralTableElement extends Components.SqmReferralTable, HTMLStencilElement { } - var HTMLSqmDropdownFieldElement: { - prototype: HTMLSqmDropdownFieldElement; - new (): HTMLSqmDropdownFieldElement; + var HTMLSqmReferralTableElement: { + prototype: HTMLSqmReferralTableElement; + new (): HTMLSqmReferralTableElement; }; - interface HTMLSqmEditProfileElement extends Components.SqmEditProfile, HTMLStencilElement { + interface HTMLSqmReferralTableCellElement extends Components.SqmReferralTableCell, HTMLStencilElement { } - var HTMLSqmEditProfileElement: { - prototype: HTMLSqmEditProfileElement; - new (): HTMLSqmEditProfileElement; + var HTMLSqmReferralTableCellElement: { + prototype: HTMLSqmReferralTableCellElement; + new (): HTMLSqmReferralTableCellElement; }; - interface HTMLSqmEmptyElement extends Components.SqmEmpty, HTMLStencilElement { + interface HTMLSqmReferralTableColumnElement extends Components.SqmReferralTableColumn, HTMLStencilElement { } - var HTMLSqmEmptyElement: { - prototype: HTMLSqmEmptyElement; - new (): HTMLSqmEmptyElement; + var HTMLSqmReferralTableColumnElement: { + prototype: HTMLSqmReferralTableColumnElement; + new (): HTMLSqmReferralTableColumnElement; }; - interface HTMLSqmFormMessageElement extends Components.SqmFormMessage, HTMLStencilElement { + interface HTMLSqmReferralTableDateCellElement extends Components.SqmReferralTableDateCell, HTMLStencilElement { } - var HTMLSqmFormMessageElement: { - prototype: HTMLSqmFormMessageElement; - new (): HTMLSqmFormMessageElement; + var HTMLSqmReferralTableDateCellElement: { + prototype: HTMLSqmReferralTableDateCellElement; + new (): HTMLSqmReferralTableDateCellElement; }; - interface HTMLSqmGraphqlClientProviderElement extends Components.SqmGraphqlClientProvider, HTMLStencilElement { + interface HTMLSqmReferralTableDateColumnElement extends Components.SqmReferralTableDateColumn, HTMLStencilElement { } - var HTMLSqmGraphqlClientProviderElement: { - prototype: HTMLSqmGraphqlClientProviderElement; - new (): HTMLSqmGraphqlClientProviderElement; + var HTMLSqmReferralTableDateColumnElement: { + prototype: HTMLSqmReferralTableDateColumnElement; + new (): HTMLSqmReferralTableDateColumnElement; }; - interface HTMLSqmHeaderLogoElement extends Components.SqmHeaderLogo, HTMLStencilElement { + interface HTMLSqmReferralTableRewardsCellElement extends Components.SqmReferralTableRewardsCell, HTMLStencilElement { } - var HTMLSqmHeaderLogoElement: { - prototype: HTMLSqmHeaderLogoElement; - new (): HTMLSqmHeaderLogoElement; + var HTMLSqmReferralTableRewardsCellElement: { + prototype: HTMLSqmReferralTableRewardsCellElement; + new (): HTMLSqmReferralTableRewardsCellElement; }; - interface HTMLSqmHeroElement extends Components.SqmHero, HTMLStencilElement { + interface HTMLSqmReferralTableRewardsColumnElement extends Components.SqmReferralTableRewardsColumn, HTMLStencilElement { } - var HTMLSqmHeroElement: { - prototype: HTMLSqmHeroElement; - new (): HTMLSqmHeroElement; + var HTMLSqmReferralTableRewardsColumnElement: { + prototype: HTMLSqmReferralTableRewardsColumnElement; + new (): HTMLSqmReferralTableRewardsColumnElement; }; - interface HTMLSqmHeroImageElement extends Components.SqmHeroImage, HTMLStencilElement { + interface HTMLSqmReferralTableStatusCellElement extends Components.SqmReferralTableStatusCell, HTMLStencilElement { } - var HTMLSqmHeroImageElement: { - prototype: HTMLSqmHeroImageElement; - new (): HTMLSqmHeroImageElement; + var HTMLSqmReferralTableStatusCellElement: { + prototype: HTMLSqmReferralTableStatusCellElement; + new (): HTMLSqmReferralTableStatusCellElement; }; - interface HTMLSqmHookStoryContainerElement extends Components.SqmHookStoryContainer, HTMLStencilElement { + interface HTMLSqmReferralTableStatusColumnElement extends Components.SqmReferralTableStatusColumn, HTMLStencilElement { } - var HTMLSqmHookStoryContainerElement: { - prototype: HTMLSqmHookStoryContainerElement; - new (): HTMLSqmHookStoryContainerElement; + var HTMLSqmReferralTableStatusColumnElement: { + prototype: HTMLSqmReferralTableStatusColumnElement; + new (): HTMLSqmReferralTableStatusColumnElement; }; - interface HTMLSqmImageElement extends Components.SqmImage, HTMLStencilElement { + interface HTMLSqmReferralTableUserCellElement extends Components.SqmReferralTableUserCell, HTMLStencilElement { } - var HTMLSqmImageElement: { - prototype: HTMLSqmImageElement; - new (): HTMLSqmImageElement; + var HTMLSqmReferralTableUserCellElement: { + prototype: HTMLSqmReferralTableUserCellElement; + new (): HTMLSqmReferralTableUserCellElement; }; - interface HTMLSqmInputFieldElement extends Components.SqmInputField, HTMLStencilElement { + interface HTMLSqmReferralTableUserColumnElement extends Components.SqmReferralTableUserColumn, HTMLStencilElement { } - var HTMLSqmInputFieldElement: { - prototype: HTMLSqmInputFieldElement; - new (): HTMLSqmInputFieldElement; + var HTMLSqmReferralTableUserColumnElement: { + prototype: HTMLSqmReferralTableUserColumnElement; + new (): HTMLSqmReferralTableUserColumnElement; }; - interface HTMLSqmInstantAccessRegistrationElement extends Components.SqmInstantAccessRegistration, HTMLStencilElement { + interface HTMLSqmReferredRegistrationElement extends Components.SqmReferredRegistration, HTMLStencilElement { } - var HTMLSqmInstantAccessRegistrationElement: { - prototype: HTMLSqmInstantAccessRegistrationElement; - new (): HTMLSqmInstantAccessRegistrationElement; + var HTMLSqmReferredRegistrationElement: { + prototype: HTMLSqmReferredRegistrationElement; + new (): HTMLSqmReferredRegistrationElement; }; - interface HTMLSqmLeaderboardElement extends Components.SqmLeaderboard, HTMLStencilElement { + interface HTMLSqmRewardExchangeListElement extends Components.SqmRewardExchangeList, HTMLStencilElement { } - var HTMLSqmLeaderboardElement: { - prototype: HTMLSqmLeaderboardElement; - new (): HTMLSqmLeaderboardElement; + var HTMLSqmRewardExchangeListElement: { + prototype: HTMLSqmRewardExchangeListElement; + new (): HTMLSqmRewardExchangeListElement; }; - interface HTMLSqmLeaderboardRankElement extends Components.SqmLeaderboardRank, HTMLStencilElement { + interface HTMLSqmRewardsTableElement extends Components.SqmRewardsTable, HTMLStencilElement { } - var HTMLSqmLeaderboardRankElement: { - prototype: HTMLSqmLeaderboardRankElement; - new (): HTMLSqmLeaderboardRankElement; + var HTMLSqmRewardsTableElement: { + prototype: HTMLSqmRewardsTableElement; + new (): HTMLSqmRewardsTableElement; }; - interface HTMLSqmLinkButtonElement extends Components.SqmLinkButton, HTMLStencilElement { + interface HTMLSqmRewardsTableCustomerNoteCellElement extends Components.SqmRewardsTableCustomerNoteCell, HTMLStencilElement { } - var HTMLSqmLinkButtonElement: { - prototype: HTMLSqmLinkButtonElement; - new (): HTMLSqmLinkButtonElement; + var HTMLSqmRewardsTableCustomerNoteCellElement: { + prototype: HTMLSqmRewardsTableCustomerNoteCellElement; + new (): HTMLSqmRewardsTableCustomerNoteCellElement; }; - interface HTMLSqmLogoutCurrentUserElement extends Components.SqmLogoutCurrentUser, HTMLStencilElement { + interface HTMLSqmRewardsTableCustomerNoteColumnElement extends Components.SqmRewardsTableCustomerNoteColumn, HTMLStencilElement { } - var HTMLSqmLogoutCurrentUserElement: { - prototype: HTMLSqmLogoutCurrentUserElement; - new (): HTMLSqmLogoutCurrentUserElement; + var HTMLSqmRewardsTableCustomerNoteColumnElement: { + prototype: HTMLSqmRewardsTableCustomerNoteColumnElement; + new (): HTMLSqmRewardsTableCustomerNoteColumnElement; }; - interface HTMLSqmNameFieldsElement extends Components.SqmNameFields, HTMLStencilElement { + interface HTMLSqmRewardsTableDateCellElement extends Components.SqmRewardsTableDateCell, HTMLStencilElement { } - var HTMLSqmNameFieldsElement: { - prototype: HTMLSqmNameFieldsElement; - new (): HTMLSqmNameFieldsElement; + var HTMLSqmRewardsTableDateCellElement: { + prototype: HTMLSqmRewardsTableDateCellElement; + new (): HTMLSqmRewardsTableDateCellElement; }; - interface HTMLSqmNavigationMenuElement extends Components.SqmNavigationMenu, HTMLStencilElement { + interface HTMLSqmRewardsTableDateColumnElement extends Components.SqmRewardsTableDateColumn, HTMLStencilElement { } - var HTMLSqmNavigationMenuElement: { - prototype: HTMLSqmNavigationMenuElement; - new (): HTMLSqmNavigationMenuElement; + var HTMLSqmRewardsTableDateColumnElement: { + prototype: HTMLSqmRewardsTableDateColumnElement; + new (): HTMLSqmRewardsTableDateColumnElement; }; - interface HTMLSqmNavigationSidebarElement extends Components.SqmNavigationSidebar, HTMLStencilElement { + interface HTMLSqmRewardsTableRewardCellElement extends Components.SqmRewardsTableRewardCell, HTMLStencilElement { } - var HTMLSqmNavigationSidebarElement: { - prototype: HTMLSqmNavigationSidebarElement; - new (): HTMLSqmNavigationSidebarElement; + var HTMLSqmRewardsTableRewardCellElement: { + prototype: HTMLSqmRewardsTableRewardCellElement; + new (): HTMLSqmRewardsTableRewardCellElement; }; - interface HTMLSqmNavigationSidebarItemElement extends Components.SqmNavigationSidebarItem, HTMLStencilElement { + interface HTMLSqmRewardsTableRewardColumnElement extends Components.SqmRewardsTableRewardColumn, HTMLStencilElement { } - var HTMLSqmNavigationSidebarItemElement: { - prototype: HTMLSqmNavigationSidebarItemElement; - new (): HTMLSqmNavigationSidebarItemElement; + var HTMLSqmRewardsTableRewardColumnElement: { + prototype: HTMLSqmRewardsTableRewardColumnElement; + new (): HTMLSqmRewardsTableRewardColumnElement; + }; + interface HTMLSqmRewardsTableSourceCellElement extends Components.SqmRewardsTableSourceCell, HTMLStencilElement { + } + var HTMLSqmRewardsTableSourceCellElement: { + prototype: HTMLSqmRewardsTableSourceCellElement; + new (): HTMLSqmRewardsTableSourceCellElement; + }; + interface HTMLSqmRewardsTableSourceColumnElement extends Components.SqmRewardsTableSourceColumn, HTMLStencilElement { + } + var HTMLSqmRewardsTableSourceColumnElement: { + prototype: HTMLSqmRewardsTableSourceColumnElement; + new (): HTMLSqmRewardsTableSourceColumnElement; + }; + interface HTMLSqmRewardsTableStatusCellElement extends Components.SqmRewardsTableStatusCell, HTMLStencilElement { + } + var HTMLSqmRewardsTableStatusCellElement: { + prototype: HTMLSqmRewardsTableStatusCellElement; + new (): HTMLSqmRewardsTableStatusCellElement; + }; + interface HTMLSqmRewardsTableStatusColumnElement extends Components.SqmRewardsTableStatusColumn, HTMLStencilElement { + } + var HTMLSqmRewardsTableStatusColumnElement: { + prototype: HTMLSqmRewardsTableStatusColumnElement; + new (): HTMLSqmRewardsTableStatusColumnElement; }; - interface HTMLSqmPasswordFieldElement extends Components.SqmPasswordField, HTMLStencilElement { + interface HTMLSqmRouteElement extends Components.SqmRoute, HTMLStencilElement { } - var HTMLSqmPasswordFieldElement: { - prototype: HTMLSqmPasswordFieldElement; - new (): HTMLSqmPasswordFieldElement; + var HTMLSqmRouteElement: { + prototype: HTMLSqmRouteElement; + new (): HTMLSqmRouteElement; }; - interface HTMLSqmPopupContainerElement extends Components.SqmPopupContainer, HTMLStencilElement { + interface HTMLSqmRouterElement extends Components.SqmRouter, HTMLStencilElement { } - var HTMLSqmPopupContainerElement: { - prototype: HTMLSqmPopupContainerElement; - new (): HTMLSqmPopupContainerElement; + var HTMLSqmRouterElement: { + prototype: HTMLSqmRouterElement; + new (): HTMLSqmRouterElement; }; - interface HTMLSqmPortalChangePasswordElement extends Components.SqmPortalChangePassword, HTMLStencilElement { + interface HTMLSqmScrollElement extends Components.SqmScroll, HTMLStencilElement { } - var HTMLSqmPortalChangePasswordElement: { - prototype: HTMLSqmPortalChangePasswordElement; - new (): HTMLSqmPortalChangePasswordElement; + var HTMLSqmScrollElement: { + prototype: HTMLSqmScrollElement; + new (): HTMLSqmScrollElement; }; - interface HTMLSqmPortalContainerElement extends Components.SqmPortalContainer, HTMLStencilElement { + interface HTMLSqmShareButtonElement extends Components.SqmShareButton, HTMLStencilElement { } - var HTMLSqmPortalContainerElement: { - prototype: HTMLSqmPortalContainerElement; - new (): HTMLSqmPortalContainerElement; + var HTMLSqmShareButtonElement: { + prototype: HTMLSqmShareButtonElement; + new (): HTMLSqmShareButtonElement; }; - interface HTMLSqmPortalEmailVerificationElement extends Components.SqmPortalEmailVerification, HTMLStencilElement { + interface HTMLSqmShareCodeElement extends Components.SqmShareCode, HTMLStencilElement { } - var HTMLSqmPortalEmailVerificationElement: { - prototype: HTMLSqmPortalEmailVerificationElement; - new (): HTMLSqmPortalEmailVerificationElement; + var HTMLSqmShareCodeElement: { + prototype: HTMLSqmShareCodeElement; + new (): HTMLSqmShareCodeElement; }; - interface HTMLSqmPortalFooterElement extends Components.SqmPortalFooter, HTMLStencilElement { + interface HTMLSqmShareLinkElement extends Components.SqmShareLink, HTMLStencilElement { } - var HTMLSqmPortalFooterElement: { - prototype: HTMLSqmPortalFooterElement; - new (): HTMLSqmPortalFooterElement; + var HTMLSqmShareLinkElement: { + prototype: HTMLSqmShareLinkElement; + new (): HTMLSqmShareLinkElement; }; - interface HTMLSqmPortalForgotPasswordElement extends Components.SqmPortalForgotPassword, HTMLStencilElement { + interface HTMLSqmStatContainerElement extends Components.SqmStatContainer, HTMLStencilElement { } - var HTMLSqmPortalForgotPasswordElement: { - prototype: HTMLSqmPortalForgotPasswordElement; - new (): HTMLSqmPortalForgotPasswordElement; + var HTMLSqmStatContainerElement: { + prototype: HTMLSqmStatContainerElement; + new (): HTMLSqmStatContainerElement; }; - interface HTMLSqmPortalFrameElement extends Components.SqmPortalFrame, HTMLStencilElement { + interface HTMLSqmStencilbookElement extends Components.SqmStencilbook, HTMLStencilElement { } - var HTMLSqmPortalFrameElement: { - prototype: HTMLSqmPortalFrameElement; - new (): HTMLSqmPortalFrameElement; + var HTMLSqmStencilbookElement: { + prototype: HTMLSqmStencilbookElement; + new (): HTMLSqmStencilbookElement; }; - interface HTMLSqmPortalLoginElement extends Components.SqmPortalLogin, HTMLStencilElement { + interface HTMLSqmTabElement extends Components.SqmTab, HTMLStencilElement { } - var HTMLSqmPortalLoginElement: { - prototype: HTMLSqmPortalLoginElement; - new (): HTMLSqmPortalLoginElement; + var HTMLSqmTabElement: { + prototype: HTMLSqmTabElement; + new (): HTMLSqmTabElement; }; - interface HTMLSqmPortalLogoutElement extends Components.SqmPortalLogout, HTMLStencilElement { + interface HTMLSqmTableCellElement extends Components.SqmTableCell, HTMLStencilElement { } - var HTMLSqmPortalLogoutElement: { - prototype: HTMLSqmPortalLogoutElement; - new (): HTMLSqmPortalLogoutElement; + var HTMLSqmTableCellElement: { + prototype: HTMLSqmTableCellElement; + new (): HTMLSqmTableCellElement; }; - interface HTMLSqmPortalProfileElement extends Components.SqmPortalProfile, HTMLStencilElement { + interface HTMLSqmTableRowElement extends Components.SqmTableRow, HTMLStencilElement { } - var HTMLSqmPortalProfileElement: { - prototype: HTMLSqmPortalProfileElement; - new (): HTMLSqmPortalProfileElement; + var HTMLSqmTableRowElement: { + prototype: HTMLSqmTableRowElement; + new (): HTMLSqmTableRowElement; }; - interface HTMLSqmPortalProtectedRouteElement extends Components.SqmPortalProtectedRoute, HTMLStencilElement { + interface HTMLSqmTabsElement extends Components.SqmTabs, HTMLStencilElement { } - var HTMLSqmPortalProtectedRouteElement: { - prototype: HTMLSqmPortalProtectedRouteElement; - new (): HTMLSqmPortalProtectedRouteElement; + var HTMLSqmTabsElement: { + prototype: HTMLSqmTabsElement; + new (): HTMLSqmTabsElement; }; - interface HTMLSqmPortalRegisterElement extends Components.SqmPortalRegister, HTMLStencilElement { + interface HTMLSqmTaskCardElement extends Components.SqmTaskCard, HTMLStencilElement { } - var HTMLSqmPortalRegisterElement: { - prototype: HTMLSqmPortalRegisterElement; - new (): HTMLSqmPortalRegisterElement; + var HTMLSqmTaskCardElement: { + prototype: HTMLSqmTaskCardElement; + new (): HTMLSqmTaskCardElement; }; - interface HTMLSqmPortalRegistrationFormElement extends Components.SqmPortalRegistrationForm, HTMLStencilElement { + interface HTMLSqmTaxAndCashElement extends Components.SqmTaxAndCash, HTMLStencilElement { } - var HTMLSqmPortalRegistrationFormElement: { - prototype: HTMLSqmPortalRegistrationFormElement; - new (): HTMLSqmPortalRegistrationFormElement; + var HTMLSqmTaxAndCashElement: { + prototype: HTMLSqmTaxAndCashElement; + new (): HTMLSqmTaxAndCashElement; }; - interface HTMLSqmPortalResetPasswordElement extends Components.SqmPortalResetPassword, HTMLStencilElement { + interface HTMLSqmTaxAndCashDashboardElement extends Components.SqmTaxAndCashDashboard, HTMLStencilElement { } - var HTMLSqmPortalResetPasswordElement: { - prototype: HTMLSqmPortalResetPasswordElement; - new (): HTMLSqmPortalResetPasswordElement; + var HTMLSqmTaxAndCashDashboardElement: { + prototype: HTMLSqmTaxAndCashDashboardElement; + new (): HTMLSqmTaxAndCashDashboardElement; }; - interface HTMLSqmPortalVerifyEmailElement extends Components.SqmPortalVerifyEmail, HTMLStencilElement { + interface HTMLSqmTextElement extends Components.SqmText, HTMLStencilElement { } - var HTMLSqmPortalVerifyEmailElement: { - prototype: HTMLSqmPortalVerifyEmailElement; - new (): HTMLSqmPortalVerifyEmailElement; + var HTMLSqmTextElement: { + prototype: HTMLSqmTextElement; + new (): HTMLSqmTextElement; }; - interface HTMLSqmProgramExplainerElement extends Components.SqmProgramExplainer, HTMLStencilElement { + interface HTMLSqmTextSpanElement extends Components.SqmTextSpan, HTMLStencilElement { } - var HTMLSqmProgramExplainerElement: { - prototype: HTMLSqmProgramExplainerElement; - new (): HTMLSqmProgramExplainerElement; + var HTMLSqmTextSpanElement: { + prototype: HTMLSqmTextSpanElement; + new (): HTMLSqmTextSpanElement; }; - interface HTMLSqmProgramExplainerStepElement extends Components.SqmProgramExplainerStep, HTMLStencilElement { + interface HTMLSqmTimelineElement extends Components.SqmTimeline, HTMLStencilElement { } - var HTMLSqmProgramExplainerStepElement: { - prototype: HTMLSqmProgramExplainerStepElement; - new (): HTMLSqmProgramExplainerStepElement; + var HTMLSqmTimelineElement: { + prototype: HTMLSqmTimelineElement; + new (): HTMLSqmTimelineElement; }; - interface HTMLSqmProgramMenuElement extends Components.SqmProgramMenu, HTMLStencilElement { + interface HTMLSqmTimelineEntryElement extends Components.SqmTimelineEntry, HTMLStencilElement { } - var HTMLSqmProgramMenuElement: { - prototype: HTMLSqmProgramMenuElement; - new (): HTMLSqmProgramMenuElement; + var HTMLSqmTimelineEntryElement: { + prototype: HTMLSqmTimelineEntryElement; + new (): HTMLSqmTimelineEntryElement; }; - interface HTMLSqmReferralCardElement extends Components.SqmReferralCard, HTMLStencilElement { + interface HTMLSqmTitledSectionElement extends Components.SqmTitledSection, HTMLStencilElement { } - var HTMLSqmReferralCardElement: { - prototype: HTMLSqmReferralCardElement; - new (): HTMLSqmReferralCardElement; + var HTMLSqmTitledSectionElement: { + prototype: HTMLSqmTitledSectionElement; + new (): HTMLSqmTitledSectionElement; }; - interface HTMLSqmReferralIframeElement extends Components.SqmReferralIframe, HTMLStencilElement { + interface HTMLSqmUserInfoFormElement extends Components.SqmUserInfoForm, HTMLStencilElement { } - var HTMLSqmReferralIframeElement: { - prototype: HTMLSqmReferralIframeElement; - new (): HTMLSqmReferralIframeElement; + var HTMLSqmUserInfoFormElement: { + prototype: HTMLSqmUserInfoFormElement; + new (): HTMLSqmUserInfoFormElement; }; - interface HTMLSqmReferralTableElement extends Components.SqmReferralTable, HTMLStencilElement { + interface HTMLSqmUserNameElement extends Components.SqmUserName, HTMLStencilElement { } - var HTMLSqmReferralTableElement: { - prototype: HTMLSqmReferralTableElement; - new (): HTMLSqmReferralTableElement; + var HTMLSqmUserNameElement: { + prototype: HTMLSqmUserNameElement; + new (): HTMLSqmUserNameElement; }; - interface HTMLSqmReferralTableCellElement extends Components.SqmReferralTableCell, HTMLStencilElement { + interface HTMLElementTagNameMap { + "raisins-plop-target": HTMLRaisinsPlopTargetElement; + "sqm-asset-card": HTMLSqmAssetCardElement; + "sqm-banking-info-form": HTMLSqmBankingInfoFormElement; + "sqm-big-stat": HTMLSqmBigStatElement; + "sqm-brand": HTMLSqmBrandElement; + "sqm-card-feed": HTMLSqmCardFeedElement; + "sqm-checkbox-field": HTMLSqmCheckboxFieldElement; + "sqm-close-button": HTMLSqmCloseButtonElement; + "sqm-context-router": HTMLSqmContextRouterElement; + "sqm-coupon-code": HTMLSqmCouponCodeElement; + "sqm-divided-layout": HTMLSqmDividedLayoutElement; + "sqm-docusign-form": HTMLSqmDocusignFormElement; + "sqm-dropdown-field": HTMLSqmDropdownFieldElement; + "sqm-edit-profile": HTMLSqmEditProfileElement; + "sqm-empty": HTMLSqmEmptyElement; + "sqm-form-message": HTMLSqmFormMessageElement; + "sqm-graphql-client-provider": HTMLSqmGraphqlClientProviderElement; + "sqm-header-logo": HTMLSqmHeaderLogoElement; + "sqm-hero": HTMLSqmHeroElement; + "sqm-hero-image": HTMLSqmHeroImageElement; + "sqm-hook-story-container": HTMLSqmHookStoryContainerElement; + "sqm-image": HTMLSqmImageElement; + "sqm-indirect-tax-form": HTMLSqmIndirectTaxFormElement; + "sqm-input-field": HTMLSqmInputFieldElement; + "sqm-instant-access-registration": HTMLSqmInstantAccessRegistrationElement; + "sqm-invoice-table": HTMLSqmInvoiceTableElement; + "sqm-invoice-table-data-cell": HTMLSqmInvoiceTableDataCellElement; + "sqm-invoice-table-data-column": HTMLSqmInvoiceTableDataColumnElement; + "sqm-invoice-table-date-cell": HTMLSqmInvoiceTableDateCellElement; + "sqm-invoice-table-date-column": HTMLSqmInvoiceTableDateColumnElement; + "sqm-invoice-table-download-cell": HTMLSqmInvoiceTableDownloadCellElement; + "sqm-invoice-table-download-column": HTMLSqmInvoiceTableDownloadColumnElement; + "sqm-leaderboard": HTMLSqmLeaderboardElement; + "sqm-leaderboard-rank": HTMLSqmLeaderboardRankElement; + "sqm-link-button": HTMLSqmLinkButtonElement; + "sqm-logout-current-user": HTMLSqmLogoutCurrentUserElement; + "sqm-name-fields": HTMLSqmNameFieldsElement; + "sqm-navigation-menu": HTMLSqmNavigationMenuElement; + "sqm-navigation-sidebar": HTMLSqmNavigationSidebarElement; + "sqm-navigation-sidebar-item": HTMLSqmNavigationSidebarItemElement; + "sqm-password-field": HTMLSqmPasswordFieldElement; + "sqm-payout-details-card": HTMLSqmPayoutDetailsCardElement; + "sqm-popup-container": HTMLSqmPopupContainerElement; + "sqm-portal-change-password": HTMLSqmPortalChangePasswordElement; + "sqm-portal-container": HTMLSqmPortalContainerElement; + "sqm-portal-email-verification": HTMLSqmPortalEmailVerificationElement; + "sqm-portal-footer": HTMLSqmPortalFooterElement; + "sqm-portal-forgot-password": HTMLSqmPortalForgotPasswordElement; + "sqm-portal-frame": HTMLSqmPortalFrameElement; + "sqm-portal-login": HTMLSqmPortalLoginElement; + "sqm-portal-logout": HTMLSqmPortalLogoutElement; + "sqm-portal-profile": HTMLSqmPortalProfileElement; + "sqm-portal-protected-route": HTMLSqmPortalProtectedRouteElement; + "sqm-portal-register": HTMLSqmPortalRegisterElement; + "sqm-portal-registration-form": HTMLSqmPortalRegistrationFormElement; + "sqm-portal-reset-password": HTMLSqmPortalResetPasswordElement; + "sqm-portal-verify-email": HTMLSqmPortalVerifyEmailElement; + "sqm-program-explainer": HTMLSqmProgramExplainerElement; + "sqm-program-explainer-step": HTMLSqmProgramExplainerStepElement; + "sqm-program-menu": HTMLSqmProgramMenuElement; + "sqm-referral-card": HTMLSqmReferralCardElement; + "sqm-referral-iframe": HTMLSqmReferralIframeElement; + "sqm-referral-table": HTMLSqmReferralTableElement; + "sqm-referral-table-cell": HTMLSqmReferralTableCellElement; + "sqm-referral-table-column": HTMLSqmReferralTableColumnElement; + "sqm-referral-table-date-cell": HTMLSqmReferralTableDateCellElement; + "sqm-referral-table-date-column": HTMLSqmReferralTableDateColumnElement; + "sqm-referral-table-rewards-cell": HTMLSqmReferralTableRewardsCellElement; + "sqm-referral-table-rewards-column": HTMLSqmReferralTableRewardsColumnElement; + "sqm-referral-table-status-cell": HTMLSqmReferralTableStatusCellElement; + "sqm-referral-table-status-column": HTMLSqmReferralTableStatusColumnElement; + "sqm-referral-table-user-cell": HTMLSqmReferralTableUserCellElement; + "sqm-referral-table-user-column": HTMLSqmReferralTableUserColumnElement; + "sqm-referred-registration": HTMLSqmReferredRegistrationElement; + "sqm-reward-exchange-list": HTMLSqmRewardExchangeListElement; + "sqm-rewards-table": HTMLSqmRewardsTableElement; + "sqm-rewards-table-customer-note-cell": HTMLSqmRewardsTableCustomerNoteCellElement; + "sqm-rewards-table-customer-note-column": HTMLSqmRewardsTableCustomerNoteColumnElement; + "sqm-rewards-table-date-cell": HTMLSqmRewardsTableDateCellElement; + "sqm-rewards-table-date-column": HTMLSqmRewardsTableDateColumnElement; + "sqm-rewards-table-reward-cell": HTMLSqmRewardsTableRewardCellElement; + "sqm-rewards-table-reward-column": HTMLSqmRewardsTableRewardColumnElement; + "sqm-rewards-table-source-cell": HTMLSqmRewardsTableSourceCellElement; + "sqm-rewards-table-source-column": HTMLSqmRewardsTableSourceColumnElement; + "sqm-rewards-table-status-cell": HTMLSqmRewardsTableStatusCellElement; + "sqm-rewards-table-status-column": HTMLSqmRewardsTableStatusColumnElement; + "sqm-route": HTMLSqmRouteElement; + "sqm-router": HTMLSqmRouterElement; + "sqm-scroll": HTMLSqmScrollElement; + "sqm-share-button": HTMLSqmShareButtonElement; + "sqm-share-code": HTMLSqmShareCodeElement; + "sqm-share-link": HTMLSqmShareLinkElement; + "sqm-stat-container": HTMLSqmStatContainerElement; + "sqm-stencilbook": HTMLSqmStencilbookElement; + "sqm-tab": HTMLSqmTabElement; + "sqm-table-cell": HTMLSqmTableCellElement; + "sqm-table-row": HTMLSqmTableRowElement; + "sqm-tabs": HTMLSqmTabsElement; + "sqm-task-card": HTMLSqmTaskCardElement; + "sqm-tax-and-cash": HTMLSqmTaxAndCashElement; + "sqm-tax-and-cash-dashboard": HTMLSqmTaxAndCashDashboardElement; + "sqm-text": HTMLSqmTextElement; + "sqm-text-span": HTMLSqmTextSpanElement; + "sqm-timeline": HTMLSqmTimelineElement; + "sqm-timeline-entry": HTMLSqmTimelineEntryElement; + "sqm-titled-section": HTMLSqmTitledSectionElement; + "sqm-user-info-form": HTMLSqmUserInfoFormElement; + "sqm-user-name": HTMLSqmUserNameElement; } - var HTMLSqmReferralTableCellElement: { - prototype: HTMLSqmReferralTableCellElement; - new (): HTMLSqmReferralTableCellElement; - }; - interface HTMLSqmReferralTableColumnElement extends Components.SqmReferralTableColumn, HTMLStencilElement { +} +declare namespace LocalJSX { + interface RaisinsPlopTarget { } - var HTMLSqmReferralTableColumnElement: { - prototype: HTMLSqmReferralTableColumnElement; - new (): HTMLSqmReferralTableColumnElement; - }; - interface HTMLSqmReferralTableDateCellElement extends Components.SqmReferralTableDateCell, HTMLStencilElement { + interface SqmAssetCard { + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Banner image + */ + "imgUrl"?: string; + /** + * @uiName Banner title + */ + "titleText"?: string; } - var HTMLSqmReferralTableDateCellElement: { - prototype: HTMLSqmReferralTableDateCellElement; - new (): HTMLSqmReferralTableDateCellElement; - }; - interface HTMLSqmReferralTableDateColumnElement extends Components.SqmReferralTableDateColumn, HTMLStencilElement { + interface SqmBankingInfoForm { + /** + * @uiName Agency code field label + */ + "agencyCodeLabel"?: string; + /** + * Text for the back button in the form + * @uiName Back button label + */ + "backButton"?: string; + /** + * @uiName Bank account number field label + */ + "bankAccountNumberLabel"?: string; + /** + * @uiName Bank account type field label + */ + "bankAccountTypeLabel"?: string; + /** + * @uiName Bank address field label + */ + "bankAddressLabel"?: string; + /** + * @uiName Bank city field label + */ + "bankCityLabel"?: string; + /** + * @uiName Bank country field label + */ + "bankLocationLabel"?: string; + /** + * @uiName Bank name field label + */ + "bankNameLabel"?: string; + /** + * @uiName Bank postal code field label + */ + "bankPostalCodeLabel"?: string; + /** + * @uiName Bank province/state field label + */ + "bankStateLabel"?: string; + /** + * @uiName Beneficiary account field label + */ + "beneficiaryAccountNameLabel"?: string; + /** + * @uiName Branch code field label + */ + "branchCodeLabel"?: string; + /** + * One of three options listed for the classification field + * @uiName Business classification option + */ + "businessSelectItemLabel"?: string; + /** + * @uiName Checking account option + */ + "checkingSelectItemLabel"?: string; + /** + * @uiName Classification CPF field label + */ + "classificationCPFLabel"?: string; + /** + * @uiName Classification entity field label + */ + "classificationEntityLabel"?: string; + /** + * Label text for the classification input field + * @uiName Classification field label + */ + "classificationLabel"?: string; + /** + * @uiName Continue button label + */ + "continueButton"?: string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Direct to bank payout option + */ + "directlyToBankAccount"?: string; + /** + * Default payment method to the participants’ bank account. + * @uiName EFT withdrawal payment method + */ + "eftWithdrawalLabel"?: string; + /** + * Displayed under a field when it has an invalid entry. + * @uiName Form field error message + */ + "fieldInvalidError"?: string; + /** + * Displayed under a field that is missing required information. + * @uiName Empty form field error message + */ + "fieldRequiredError"?: string; + /** + * One of three options listed for the classification field + * @uiName Foreign classification option + */ + "foreignSelectItemLabel"?: string; + /** + * @uiName Setup progress + */ + "formStep"?: string; + /** + * @uiName FX Wire Processing fee text + */ + "fxWireProcessingFeeLabel"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message description + * @uiWidget textArea + */ + "generalErrorDescription"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message title + * @uiWidget textArea + */ + "generalErrorTitle"?: string; + /** + * @uiName IBAN field label + */ + "ibanLabel"?: string; + /** + * One of three options listed for the classification field + * @uiName Individual classification option + */ + "individualSelectItemLabel"?: string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert description + * @uiWidget textArea + */ + "isPartnerAlertDescription"?: string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert title + * @uiWidget textArea + */ + "isPartnerAlertHeader"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message description + * @uiWidget textArea + */ + "loadingErrorAlertDescription"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message title + * @uiWidget textArea + */ + "loadingErrorAlertHeader"?: string; + /** + * @uiName Patronymic name field label + */ + "patronymicNameLabel"?: string; + /** + * Displayed to participants who choose PayPal as their payout method + * @uiName PayPal email field label + */ + "payPalInputLabel"?: string; + /** + * Label text for the payment day select option for the fifteenth of the month + * @uiName Fifteenth of month payday option + */ + "paymentDayFifteenthOfMonthLabelText"?: string; + /** + * One of two payment day options + * @uiName First of month payday option + */ + "paymentDayFirstOfMonthLabelText"?: string; + /** + * Let the participant choose what day of the month they’ll get paid + * @uiName Payment day field label + */ + "paymentDaySelectLabel"?: string; + /** + * @uiName Payment method section header + */ + "paymentMethod"?: string; + /** + * @uiName Payment method section description + */ + "paymentMethodSubtext"?: string; + /** + * @uiName Payment schedule section header + */ + "paymentSchedule"?: string; + /** + * @uiName Threshold balance payment schedule option + */ + "paymentScheduleBalanceThreshold"?: string; + /** + * @uiName Fixed day payment schedule option + */ + "paymentScheduleFixedDay"?: string; + /** + * Participant use this field to select the balance at which they want to be paid + * @uiName Payment threshold field label + */ + "paymentThresholdSelectLabel"?: string; + /** + * @uiName Routing code field label + */ + "routingCodeLabel"?: string; + /** + * @uiName Savings account options + */ + "savingsSelectItemLabel"?: string; + /** + * Placeholder text displayed in the country search dropdown + * @uiName Country field placeholder text + */ + "searchForCountryText"?: string; + /** + * @uiName SWIFT code field label + */ + "swiftCodeLabel"?: string; + /** + * @uiName Step 4 title + */ + "taxAndPayouts"?: string; + /** + * Displayed at the top of the page on all set up steps. + * @uiName Page description + */ + "taxAndPayoutsDescription"?: string; + /** + * @uiName Taxpayer ID field label + */ + "taxPayerIdLabel"?: string; + /** + * @uiName PayPal payout option + */ + "toPayPalAccount"?: string; + /** + * @uiName VO code field label + */ + "voCodeLabel"?: string; } - var HTMLSqmReferralTableDateColumnElement: { - prototype: HTMLSqmReferralTableDateColumnElement; - new (): HTMLSqmReferralTableDateColumnElement; - }; - interface HTMLSqmReferralTableRewardsCellElement extends Components.SqmReferralTableRewardsCell, HTMLStencilElement { + interface SqmBigStat { + /** + * Controls the alignment of the flexbox + * @uiName Alignment + * @uiType string + * @uiEnum ["left", "right", "center"] + * @uiEnumNames ["Left", "Right", "Center"] + */ + "alignment"?: "left" | "right" | "center"; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * Controls the order of the stat value & description column + * @uiName Flex reverse + * @default + */ + "flexReverse"?: boolean; + /** + * The ID of the program that is used to scope stats. Defaults to the program context when no ID is specified. + * @uiName Program ID + * @uiWidget programSelector + */ + "programId"?: string; + /** + * Select what type of stat to display. Manual paths are also supported. + * @uiWidget statTypeSelectWidget + * @uiName Stat type + * @required + * @uiWidgetOptions {"version": 1.1} + */ + "statType"?: string; } - var HTMLSqmReferralTableRewardsCellElement: { - prototype: HTMLSqmReferralTableRewardsCellElement; - new (): HTMLSqmReferralTableRewardsCellElement; - }; - interface HTMLSqmReferralTableRewardsColumnElement extends Components.SqmReferralTableRewardsColumn, HTMLStencilElement { + interface SqmBrand { + /** + * Controls the primary brand color used in the Mint Components library. + * @uiName Brand color + * @uiWidget color + * @format color + */ + "brandColor"?: string; + /** + * Enter a font from the Google Fonts library to use throughout your widget. This value is case sensitive. Some fonts may not require quotations. Example: Roboto + * @uiName Brand font + * @default "Nunito Sans" + */ + "brandFont"?: string; } - var HTMLSqmReferralTableRewardsColumnElement: { - prototype: HTMLSqmReferralTableRewardsColumnElement; - new (): HTMLSqmReferralTableRewardsColumnElement; - }; - interface HTMLSqmReferralTableStatusCellElement extends Components.SqmReferralTableStatusCell, HTMLStencilElement { + interface SqmCardFeed { + /** + * @uiName Column gap + * @uiType number + */ + "gap"?: number; + /** + * @uiName Card width + */ + "width"?: number; } - var HTMLSqmReferralTableStatusCellElement: { - prototype: HTMLSqmReferralTableStatusCellElement; - new (): HTMLSqmReferralTableStatusCellElement; - }; - interface HTMLSqmReferralTableStatusColumnElement extends Components.SqmReferralTableStatusColumn, HTMLStencilElement { + interface SqmCheckboxField { + /** + * @uiName Checkbox label + * @uiWidget textArea + */ + "checkboxLabel"?: string; + /** + * Used with link text if the checkbox label contains {labelLink} + * @uiName Checkbox label link + */ + "checkboxLabelLink"?: string; + /** + * @uiName Checkbox label link lext + */ + "checkboxLabelLinkText"?: string; + /** + * This name is used as the key for this form field on submission. The name must be unique within this specific form. + * @uiName Checkbox name attribute + * @required + */ + "checkboxName"?: string; + /** + * @uiName Optional + */ + "checkboxOptional"?: boolean; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Unchecked error message + */ + "errorMessage"?: string; } - var HTMLSqmReferralTableStatusColumnElement: { - prototype: HTMLSqmReferralTableStatusColumnElement; - new (): HTMLSqmReferralTableStatusColumnElement; - }; - interface HTMLSqmReferralTableUserCellElement extends Components.SqmReferralTableUserCell, HTMLStencilElement { + interface SqmCloseButton { + /** + * @uiName Color + * @uiWidget color + * @uiType string + */ + "color"?: string; } - var HTMLSqmReferralTableUserCellElement: { - prototype: HTMLSqmReferralTableUserCellElement; - new (): HTMLSqmReferralTableUserCellElement; - }; - interface HTMLSqmReferralTableUserColumnElement extends Components.SqmReferralTableUserColumn, HTMLStencilElement { + interface SqmContextRouter { + "contextName"?: string; } - var HTMLSqmReferralTableUserColumnElement: { - prototype: HTMLSqmReferralTableUserColumnElement; - new (): HTMLSqmReferralTableUserColumnElement; - }; - interface HTMLSqmReferredRegistrationElement extends Components.SqmReferredRegistration, HTMLStencilElement { + interface SqmCouponCode { + /** + * Set the copy button style and placement. + * @uiName Style + * @uiType string + * @uiEnum ["icon", "button-outside", "button-below"] + * @uiEnumNames ["Icon", "Button outside", "Button below"] + */ + "buttonStyle"?: "icon" | "button-outside" | "button-below"; + /** + * Display this message when the coupon code has been cancelled. + * @uiWidget textArea + * @uiName Cancelled code error message + * @uiGroup Coupon code error + */ + "cancelledErrorText"?: string; + /** + * @uiName Copy button label + */ + "copyButtonLabel"?: string; + /** + * @uiName Coupon code label + */ + "couponCodeLabel"?: string; + /** + * Display this text when the coupon code can’t be retrieved. + * @uiName Coupon code placeholder + * @uiGroup Coupon code error + */ + "couponCodePlaceholder"?: string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * Display this message when the coupon code has expired. + * @uiWidget textArea + * @uiName Expired code error message + * @uiGroup Coupon code error + */ + "expiredErrorText"?: string; + /** + * Display this message when the code fails to load due to a fulfillment error. + * @uiWidget textArea + * @uiName Code fulfillment error message + * @uiGroup Coupon code error + */ + "fullfillmentErrorText"?: string; + /** + * Display this message when the code fails to load due to an unspecified error. + * @uiWidget textArea + * @uiName Code retrieval error message + * @uiGroup Coupon code error + */ + "genericErrorText"?: string; + /** + * Display this message when the coupon code not available yet. Use the ICU message, {unpendDate}, to show the date the code will be available. + * @uiWidget textArea + * @uiName Code pending error message + * @uiGroup Coupon code error + */ + "pendingErrorText"?: string; + /** + * The ID of the program that should generate the code. Defaults to the program ID in context where this widget is loaded. + * @uiName Program ID + * @uiWidget programSelector + */ + "programId"?: string; + /** + * Display this message when the coupon code has already been redeemed. + * @uiWidget textArea + * @uiName Redeemed code error message + * @uiGroup Coupon code error + */ + "redeemedErrorText"?: string; + /** + * @uiName Coupon code alignment + * @uiType string + * @uiEnum ["left", "center", "right"] + * @uiEnumNames ["Left", "Center", "Right"] + */ + "textAlign"?: "left" | "center" | "right"; + /** + * The number of milliseconds that the tooltip appears for + * @uiName Tooltip lifespan + */ + "tooltiplifespan"?: number; + /** + * Shown inside a tooltip after someone has successfully copied the link to their clipboard. + * @uiName Tooltip text + */ + "tooltiptext"?: string; } - var HTMLSqmReferredRegistrationElement: { - prototype: HTMLSqmReferredRegistrationElement; - new (): HTMLSqmReferredRegistrationElement; - }; - interface HTMLSqmRewardExchangeListElement extends Components.SqmRewardExchangeList, HTMLStencilElement { + interface SqmDividedLayout { + /** + * Overrides max-width of content area + * @uiName Content Area Width + * @uiType string + */ + "contentAreaWidth"?: string | null; + /** + * @uiName Direction + * @uiType string + * @uiEnum ["row", "column"] + * @uiEnumNames ["Row", "Column"] + */ + "direction"?: "row" | "column"; + /** + * Uses Shorthand CSS border syntax allowing specification of thickness, fill style and color. + * @uiName Border style + */ + "dividerStyle"?: string; } - var HTMLSqmRewardExchangeListElement: { - prototype: HTMLSqmRewardExchangeListElement; - new (): HTMLSqmRewardExchangeListElement; - }; - interface HTMLSqmRewardsTableElement extends Components.SqmRewardsTable, HTMLStencilElement { + interface SqmDocusignForm { + /** + * An option for the participant type field. Used to determine which W-8 form is required. + * @uiName Business representative participant type label + */ + "businessEntity"?: string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * This appears inside the Docusign frame. + * @uiName Docusign form error message + * @uiWidget textArea + */ + "docusignError"?: string; + /** + * This appears inside the Docusign frame. + * @uiName Docusign session expired messag + * @uiWidget textArea + */ + "docusignExpired"?: string; + /** + * Remind participants their session will time out after 20 minutes of inactivity. + * @uiName Docusign timed session message + * @uiWidget textArea + */ + "docusignSessionWarning"?: string; + /** + * @uiName Setup progress + */ + "formStep"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message description + * @uiWidget textArea + */ + "generalErrorDescription"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message title + * @uiWidget textArea + */ + "generalErrorTitle"?: string; + /** + * An option for the participant type field. Used to determine which W-8 form is required. + * @uiName Individual participant type label + */ + "individualParticipant"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message description + * @uiWidget textArea + */ + "loadingErrorAlertDescription"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message title + * @uiWidget textArea + */ + "loadingErrorAlertHeader"?: string; + /** + * @uiName Participant type field label + */ + "participantType"?: string; + /** + * @uiName Refresh page button label + */ + "refreshButton"?: string; + /** + * Displayed at the top of the page on all set up steps. + * @uiName Page description + */ + "taxAndPayoutsDescription"?: string; + /** + * @uiName Step 3 title + */ + "taxForm"?: string; + /** + * Displayed at the top of the page to participants based in the US. + * @uiName W-9 tax form description + * @uiWidget textArea + */ + "taxFormDescription"?: string; + /** + * Displayed at the top of the page to participants representing a business. + * @uiName W-8 BEN-E tax form description + * @uiWidget textArea + */ + "taxFormDescriptionBusinessEntity"?: string; + /** + * Displayed at the top of the page to individuals joining a US program who reside outside the country. + * @uiName W-8 BEN tax form description + * @uiWidget textArea + */ + "taxFormDescriptionIndividualParticipant"?: string; + /** + * Display the type of tax form that the participant must submit. + * @uiName Tax form name + */ + "taxFormLabel"?: string; } - var HTMLSqmRewardsTableElement: { - prototype: HTMLSqmRewardsTableElement; - new (): HTMLSqmRewardsTableElement; - }; - interface HTMLSqmRewardsTableCustomerNoteCellElement extends Components.SqmRewardsTableCustomerNoteCell, HTMLStencilElement { + interface SqmDropdownField { + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Dropdown label + */ + "dropdownLabel"?: string; + /** + * This name is used as the key for this form field on submission. The name must be unique within this specific form. + * @uiName Dropdown name attribute + * @required + */ + "dropdownName"?: string; + /** + * @uiName Optional + * @default + */ + "dropdownOptional"?: boolean; + /** + * @uiName Unselected error message + */ + "errorMessage"?: string; } - var HTMLSqmRewardsTableCustomerNoteCellElement: { - prototype: HTMLSqmRewardsTableCustomerNoteCellElement; - new (): HTMLSqmRewardsTableCustomerNoteCellElement; - }; - interface HTMLSqmRewardsTableCustomerNoteColumnElement extends Components.SqmRewardsTableCustomerNoteColumn, HTMLStencilElement { + interface SqmEditProfile { + /** + * @uiName Cancel button text + */ + "canceltext"?: string; + /** + * @uiName Region field label + */ + "currentregiontext"?: string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Heading + */ + "editprofileheader"?: string; + /** + * Enable editing button text + * @uiName Edit profile text + */ + "editprofiletext"?: string; + /** + * @uiName Empty field error message + */ + "fieldEmptyText"?: string; + /** + * @uiName First name label + */ + "firstnametext"?: string; + /** + * @uiName Form error message + */ + "formErrorText"?: string; + /** + * @uiName Last name label + */ + "lastnametext"?: string; + /** + * @uiName Network error message + */ + "networkErrorMessage"?: string; + /** + * Show or hide current region + * @uiName Show region + */ + "showregion"?: boolean; + /** + * @uiName Info button text + */ + "updatetext"?: string; } - var HTMLSqmRewardsTableCustomerNoteColumnElement: { - prototype: HTMLSqmRewardsTableCustomerNoteColumnElement; - new (): HTMLSqmRewardsTableCustomerNoteColumnElement; - }; - interface HTMLSqmRewardsTableDateCellElement extends Components.SqmRewardsTableDateCell, HTMLStencilElement { + interface SqmEmpty { + /** + * @uiName Title + */ + "emptyStateHeader"?: string; + /** + * @uiWidget ImageUpload + * @format url + * @uiName Image + */ + "emptyStateImage"?: string; + /** + * @uiName Description + * @uiWidget textArea + */ + "emptyStateText"?: string; } - var HTMLSqmRewardsTableDateCellElement: { - prototype: HTMLSqmRewardsTableDateCellElement; - new (): HTMLSqmRewardsTableDateCellElement; - }; - interface HTMLSqmRewardsTableDateColumnElement extends Components.SqmRewardsTableDateColumn, HTMLStencilElement { + interface SqmFormMessage { + /** + * Icon to use in alert. Use icon values from Shoelace (e.g. "star" or "heart") at https://shoelace.style/components/icon + * @uiName Icon + */ + "icon"?: string; + /** + * Options include "success", "info", "warning", and "error" + * @uiName Alert type + */ + "type"?: string; } - var HTMLSqmRewardsTableDateColumnElement: { - prototype: HTMLSqmRewardsTableDateColumnElement; - new (): HTMLSqmRewardsTableDateColumnElement; - }; - interface HTMLSqmRewardsTableRewardCellElement extends Components.SqmRewardsTableRewardCell, HTMLStencilElement { + interface SqmGraphqlClientProvider { + /** + * @uiName Domain + */ + "domain"?: string; } - var HTMLSqmRewardsTableRewardCellElement: { - prototype: HTMLSqmRewardsTableRewardCellElement; - new (): HTMLSqmRewardsTableRewardCellElement; - }; - interface HTMLSqmRewardsTableRewardColumnElement extends Components.SqmRewardsTableRewardColumn, HTMLStencilElement { + interface SqmHeaderLogo { + /** + * @uiName Logo height + */ + "height"?: number; + /** + * @uiWidget ImageUpload + * @format url + * @uiName Logo image + */ + "imageUrl"?: string; + /** + * Page participants are navigated to after clicking the header logo. + * @uiName Redirect path + * @uiWidget pageSelect + */ + "nextPage"?: string; } - var HTMLSqmRewardsTableRewardColumnElement: { - prototype: HTMLSqmRewardsTableRewardColumnElement; - new (): HTMLSqmRewardsTableRewardColumnElement; - }; - interface HTMLSqmRewardsTableSourceCellElement extends Components.SqmRewardsTableSourceCell, HTMLStencilElement { + interface SqmHero { + /** + * Can be an image url, colour or Shoelace variable. + * @uiName Background + * @uiWidget Background + */ + "background"?: string; + /** + * @uiName Columns + * @uiEnum [1, 2] + * @uiEnumNames ["One", "Two"] + */ + "columns"?: 1 | 2; + /** + * Minimum height of each column including when they are stacked on mobile + * @uiName Minimum height (in px) + */ + "minHeight"?: number; + /** + * @uiName Padding size + * @uiEnum ["none", "small", "medium","large"] + * @uiEnumNames ["None", "Small", "Medium", "Large"] + */ + "paddingSize"?: "none" | "small" | "medium" | "large"; + /** + * Secondary background image or color (for use in the right column) + * @uiName Secondary background + * @uiWidget Background + */ + "secondaryBackground"?: string; + /** + * Flexbox wrap direction, accepts wrap or wrap-reverse + * @uiName Wrap direction + * @uiEnum ["wrap", "wrap-reverse"] + * @uiEnumNames ["Wrap", "Wrap Reverse"] + */ + "wrapDirection"?: "wrap" | "wrap-reverse"; } - var HTMLSqmRewardsTableSourceCellElement: { - prototype: HTMLSqmRewardsTableSourceCellElement; - new (): HTMLSqmRewardsTableSourceCellElement; - }; - interface HTMLSqmRewardsTableSourceColumnElement extends Components.SqmRewardsTableSourceColumn, HTMLStencilElement { + interface SqmHeroImage { + /** + * @uiName Background color + * @uiWidget color + * @format color + */ + "backgroundColor"?: string; + /** + * @uiName Button link + */ + "buttonLink"?: string; + /** + * @uiName Open link in new tab + * @default + */ + "buttonNewTab"?: boolean; + /** + * @uiName Button text + */ + "buttonText"?: string; + /** + * @uiName Description + * @uiWidget textArea + */ + "description"?: string; + /** + * @uiName Title + */ + "header"?: string; + /** + * @uiName Image mobile position + * @uiType string + * @uiEnum ["top", "bottom"] + * @uiEnumNames ["Top", "Bottom"] + */ + "imageMobilePos"?: "top" | "bottom"; + /** + * @uiName Image percentage + * @uiType number + */ + "imagePercentage"?: number; + /** + * @uiName Image position + * @uiType string + * @uiEnum ["left", "center", "right"] + * @uiEnumNames ["Left", "Center", "Right"] + */ + "imagePos"?: "left" | "center" | "right"; + /** + * @uiWidget ImageUpload + * @format url + * @uiName Image + */ + "imageUrl"?: string; + /** + * @uiName Image layout + * @uiType string + * @uiEnum ["overlay", "columns"] + * @uiEnumNames ["Overlay", "Two-column"] + */ + "layout"?: "overlay" | "columns"; + /** + * @uiName Overlay color + * @uiWidget color + * @format color + */ + "overlayColor"?: string; + /** + * @uiName Overlay opacity + */ + "overlayOpacity"?: string; + /** + * @uiName Image padding + * @uiType string + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "paddingImage"?: Spacing; + /** + * @uiName Text padding + * @uiType string + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "paddingText"?: Spacing; + /** + * @uiName Text color + * @uiWidget color + * @format color + */ + "textColor"?: string; } - var HTMLSqmRewardsTableSourceColumnElement: { - prototype: HTMLSqmRewardsTableSourceColumnElement; - new (): HTMLSqmRewardsTableSourceColumnElement; - }; - interface HTMLSqmRewardsTableStatusCellElement extends Components.SqmRewardsTableStatusCell, HTMLStencilElement { + interface SqmHookStoryContainer { + "hookStory"?: FunctionalComponent; } - var HTMLSqmRewardsTableStatusCellElement: { - prototype: HTMLSqmRewardsTableStatusCellElement; - new (): HTMLSqmRewardsTableStatusCellElement; - }; - interface HTMLSqmRewardsTableStatusColumnElement extends Components.SqmRewardsTableStatusColumn, HTMLStencilElement { + interface SqmImage { + /** + * @uiName Position alignment + * @uiType string + * @uiEnum ["left", "center", "right"] + * @uiEnumNames ["Left", "Center", "Right"] + */ + "alignment"?: "left" | "center" | "right"; + /** + * @uiName Background color + * @uiWidget color + * @format color + */ + "backgroundColor"?: string; + /** + * @uiWidget ImageUpload + * @format url + * @required + * @uiName Image link + */ + "imageUrl"?: string; + /** + * (Optional) Helps with constraining the minimum image size. Can be a pixel value or a percentage i.e. "500px", "33%", etc. + * @uiName Minimum height + */ + "minHeight"?: string; } - var HTMLSqmRewardsTableStatusColumnElement: { - prototype: HTMLSqmRewardsTableStatusColumnElement; - new (): HTMLSqmRewardsTableStatusColumnElement; - }; - interface HTMLSqmRouteElement extends Components.SqmRoute, HTMLStencilElement { + interface SqmIndirectTaxForm { + /** + * @uiName Back button label + */ + "backButton"?: string; + /** + * Communicate that after this step, only Support can change personal and indirect tax information. + * @uiName Submission confirmation alert + * @uiWidget textArea + */ + "cannotChangeInfoAlert"?: string; + /** + * @uiName Continue button label + */ + "continueButton"?: string; + /** + * @undocumented + */ + "demoData"?: DemoData; + /** + * Displayed under a field that is missing required information. + * @uiName Empty form field error message + */ + "fieldRequiredError"?: string; + /** + * @uiName Setup progress + */ + "formStep"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message description + * @uiWidget textArea + */ + "generalErrorDescription"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message title + * @uiWidget textArea + */ + "generalErrorTitle"?: string; + /** + * @uiName Step 2 title + */ + "indirectTax"?: string; + /** + * Displayed under the title of this step. + * @uiName Step 2 description + * @uiWidget textArea + */ + "indirectTaxDescription"?: string; + /** + * Displayed with indirect tax registration options. + * @uiName Indirect tax details section title + */ + "indirectTaxDetails"?: string; + /** + * @uiName Indirect tax number field label + */ + "indirectTaxNumber"?: string; + /** + * @uiName Missing indirect tax number error message + */ + "indirectTaxNumberError"?: string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert description + * @uiWidget textArea + */ + "isPartnerAlertDescription"?: string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert title + * @uiWidget textArea + */ + "isPartnerAlertHeader"?: string; + /** + * Displayed to participants registered for indirect tax in Quebec, Canada. + * @uiName QST tax checkbox + */ + "isRegisteredQST"?: string; + /** + * Displayed to participants registered for indirect tax in Spain. + * @uiName Spain income tax checkbox + * @uiWidget textArea + */ + "isRegisteredSubRegionIncomeTax"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message description + * @uiWidget textArea + */ + "loadingErrorAlertDescription"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message title + * @uiWidget textArea + */ + "loadingErrorAlertHeader"?: string; + /** + * @uiName Not registered for indirect tax option + * @uiWidget textArea + */ + "notRegistered"?: string; + /** + * Participants based in the US are considered not registered. + * @uiName Not registered for indirect tax option description + */ + "notRegisteredSubtext"?: string; + /** + * @uiName Registered for indirect tax option + * @uiWidget textArea + */ + "otherRegion"?: string; + /** + * Selecting this option will display fields to enter indirect tax details. + * @uiName Registered for indirect tax option description + */ + "otherRegionSubtext"?: string; + /** + * @uiName Province field label + */ + "province"?: string; + /** + * Displayed to participants registered for QST. + * @uiName QST number field label + */ + "qstNumber"?: string; + /** + * Placeholder text displayed in the country search dropdown + * @uiName Country field placeholder text + */ + "searchForCountryText"?: string; + /** + * @uiName Region of indirect tax field label + */ + "selectedRegion"?: string; + /** + * Displayed to participants registered in Spain. + * @uiName Sub-region of indirect tax field label + */ + "subRegion"?: string; + /** + * @uiName Income tax field label + */ + "subRegionTaxNumberLabel"?: string; + /** + * Displayed at the top of the page on all set up steps. + * @uiName Page description + */ + "taxAndPayoutsDescription"?: string; } - var HTMLSqmRouteElement: { - prototype: HTMLSqmRouteElement; - new (): HTMLSqmRouteElement; - }; - interface HTMLSqmRouterElement extends Components.SqmRouter, HTMLStencilElement { + interface SqmInputField { + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Required error message + */ + "errorMessage"?: string; + /** + * @uiName Input label + */ + "fieldLabel"?: string; + /** + * This name is used as the key for this form field on submission. The name must be unique within this specific form. + * @uiName Input name attribute + * @required + */ + "fieldName"?: string; + /** + * @uiName Optional + * @default + */ + "fieldOptional"?: boolean; + /** + * @uiName Input type + * @uiType string + * @uiEnum ["text", "date", "tel"] + * @uiEnumNames ["Text", "Date", "Phone Number"] + */ + "fieldType"?: "text" | "date" | "tel"; } - var HTMLSqmRouterElement: { - prototype: HTMLSqmRouterElement; - new (): HTMLSqmRouterElement; - }; - interface HTMLSqmScrollElement extends Components.SqmScroll, HTMLStencilElement { + interface SqmInstantAccessRegistration { + /** + * @uiName Background color + * @uiWidget color + * @uiGroup Card style + * @uiType string + */ + "backgroundColor"?: string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Email field label + */ + "emailLabel"?: string; + /** + * @uiName First name field label + */ + "firstNameLabel"?: string; + /** + * @uiName Hide border + * @uiGroup Card style + */ + "hideBorder"?: boolean; + /** + * @undocumented + * @uiType boolean + */ + "includeCookies"?: boolean; + /** + * Require your participants to enter their first and last name. + * @uiName Include name fields + */ + "includeName"?: boolean; + /** + * Display this message when the given email is invalid. + * @uiName Invalid email message + * @uiWidget textArea + * @uiGroup Error messages + */ + "invalidEmailErrorMessage"?: string; + /** + * @uiName Last name field label + */ + "lastNameLabel"?: string; + /** + * Display this message when the form submission unexpectedly fails. + * @uiName Network error message + * @uiWidget textArea + * @uiGroup Error messages + */ + "networkErrorMessage"?: string; + /** + * @uiName Bottom padding + * @uiGroup Card style + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "paddingBottom"?: string; + /** + * @uiName Left padding + * @uiGroup Card style + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "paddingLeft"?: string; + /** + * @uiName Right padding + * @uiGroup Card style + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "paddingRight"?: string; + /** + * @uiName Top padding + * @uiGroup Card style + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "paddingTop"?: string; + /** + * @uiName Register button text + */ + "registerLabel"?: string; + /** + * Display this message when a required field has not been filled out. + * @uiName Required field message + * @uiWidget textArea + * @uiGroup Error messages + */ + "requiredFieldErrorMessage"?: string; } - var HTMLSqmScrollElement: { - prototype: HTMLSqmScrollElement; - new (): HTMLSqmScrollElement; - }; - interface HTMLSqmShareButtonElement extends Components.SqmShareButton, HTMLStencilElement { + interface SqmInvoiceTable { + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData & { + mockData?: { data: Invoice[] }; + }; + /** + * @uiName Invoice table description + */ + "description"?: string; + /** + * @uiName Empty invoice table header + */ + "emptyStateHeader"?: string; + /** + * @uiName Empty invoice table description + */ + "emptyStateText"?: string; + /** + * @uiName Invoice table title + */ + "header"?: string; + /** + * Provide the column numbers (0 indexed) that should not be displayed in mobile views. Ex. 0,2,3 + * @uiName Hidden mobile columns + */ + "hiddenColumns"?: string; + /** + * @uiName Hide column labels + */ + "hideLabels"?: boolean; + /** + * @uiName Tablet breakpoint + */ + "mdBreakpoint"?: number; + /** + * @uiName Invoice table next page button label + */ + "moreLabel"?: string; + /** + * Number of invoices displayed per page + * @uiName Invoices per page + */ + "perPage"?: number; + /** + * @uiName Invoice table previous page button label + */ + "prevLabel"?: string; + /** + * Filters to only show invoices in this program. Will default to filtering by the program context where this table lives. If no program ID is set or provided by context, then shows all invoices from all programs. If program ID is "classic", shows classic-only invoices + * @uiName Program + * @uiWidget programSelector + */ + "programId"?: string; + /** + * @uiName Mobile breakpoint + */ + "smBreakpoint"?: number; } - var HTMLSqmShareButtonElement: { - prototype: HTMLSqmShareButtonElement; - new (): HTMLSqmShareButtonElement; - }; - interface HTMLSqmShareCodeElement extends Components.SqmShareCode, HTMLStencilElement { + interface SqmInvoiceTableDataCell { + "data"?: string; } - var HTMLSqmShareCodeElement: { - prototype: HTMLSqmShareCodeElement; - new (): HTMLSqmShareCodeElement; - }; - interface HTMLSqmShareLinkElement extends Components.SqmShareLink, HTMLStencilElement { + interface SqmInvoiceTableDataColumn { + /** + * @uiName Column title + */ + "columnTitle"?: string; + /** + * @uiName Property name + */ + "property"?: string; } - var HTMLSqmShareLinkElement: { - prototype: HTMLSqmShareLinkElement; - new (): HTMLSqmShareLinkElement; - }; - interface HTMLSqmStatContainerElement extends Components.SqmStatContainer, HTMLStencilElement { + interface SqmInvoiceTableDateCell { + "date"?: number; + "locale"?: string; } - var HTMLSqmStatContainerElement: { - prototype: HTMLSqmStatContainerElement; - new (): HTMLSqmStatContainerElement; - }; - interface HTMLSqmStencilbookElement extends Components.SqmStencilbook, HTMLStencilElement { + interface SqmInvoiceTableDateColumn { + /** + * @uiName Column title + */ + "columnTitle"?: string; } - var HTMLSqmStencilbookElement: { - prototype: HTMLSqmStencilbookElement; - new (): HTMLSqmStencilbookElement; - }; - interface HTMLSqmTabElement extends Components.SqmTab, HTMLStencilElement { + interface SqmInvoiceTableDownloadCell { + "downloadUrl"?: string; } - var HTMLSqmTabElement: { - prototype: HTMLSqmTabElement; - new (): HTMLSqmTabElement; - }; - interface HTMLSqmTableCellElement extends Components.SqmTableCell, HTMLStencilElement { + interface SqmInvoiceTableDownloadColumn { } - var HTMLSqmTableCellElement: { - prototype: HTMLSqmTableCellElement; - new (): HTMLSqmTableCellElement; - }; - interface HTMLSqmTableRowElement extends Components.SqmTableRow, HTMLStencilElement { + interface SqmLeaderboard { + /** + * Title displayed for users without names + * @uiName Unknown user text + */ + "anonymousUser"?: string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * Hide the viewer's leaderboard row if not in the top results. + * @uiName Hide viewing user + * @default + */ + "hideViewer"?: boolean; + /** + * @uiName Leaderboard time interval + * @uiWidget dateRange + * @uiWidgetOptions {"allowPastDates":true, "months": 1} + */ + "interval"?: string; + /** + * @uiName Leaderboard type + * @uiType string + * @required + * @uiEnum ["topStartedReferrers", "topConvertedReferrers", "topPointEarners"] + * @uiEnumNames ["Top Started Referrers", "Top Converted Referrers", "Top Point Earners"] + */ + "leaderboardType"?: | "topStartedReferrers" + | "topConvertedReferrers" + | "topPointEarners"; + /** + * Control the maximum amount of rows displayed on the leaderboard. + * @uiName Maximum rows number + */ + "maxRows"?: number; + /** + * Filters leaderboard to show only data from this program. Defaults to the program context where this leaderboard is. If no program ID is set or provided by context, then a global leaderboard is shown. + * @uiName Program + * @uiWidget programSelector + */ + "programId"?: string; + /** + * @uiName Rank type + * @uiType string + * @uiEnum ["rowNumber", "rank", "denseRank"] + * @uiEnumNames ["Row Number", "Rank", "Dense Rank"] + */ + "rankType"?: "rowNumber" | "rank" | "denseRank"; + /** + * @uiName Rank column heading + */ + "rankheading"?: string; + /** + * @uiName Show leaderboard rank + */ + "showRank"?: boolean; + /** + * @uiName Stats column heading + */ + "statsheading"?: string; + /** + * @uiName User column heading + */ + "usersheading"?: string; } - var HTMLSqmTableRowElement: { - prototype: HTMLSqmTableRowElement; - new (): HTMLSqmTableRowElement; - }; - interface HTMLSqmTabsElement extends Components.SqmTabs, HTMLStencilElement { + interface SqmLeaderboardRank { + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Leaderboard time interval + * @uiWidget dateRange + * @uiWidgetOptions {"allowPastDates":true, "months": 1} + */ + "interval"?: string; + /** + * @uiName Leaderboard type + * @uiType string + * @required + * @uiEnum ["topStartedReferrers", "topConvertedReferrers", "topPointEarners"] + * @uiEnumNames ["Top Started Referrers", "Top Converted Referrers", "Top Point Earners"] + */ + "leaderboardType"?: | "topStartedReferrers" + | "topConvertedReferrers" + | "topPointEarners"; + /** + * Filters leaderboard to show only data from this program. Defaults to the program context where this leaderboard is. If no program ID is set or provided by context, then a global leaderboard is shown. + * @uiName Program + * @uiWidget programSelector + */ + "programId"?: string; + /** + * @uiName Rank text + * @uiWidget textArea + */ + "rankText"?: string; + /** + * @uiName Default rank + * @uiType string + * @uiEnum ["rowNumber", "rank", "denseRank"] + * @uiEnumNames ["Row Number", "Rank", "Dense Rank"] + */ + "rankType"?: "rowNumber" | "rank" | "denseRank"; + /** + * @uiName Unranked text + */ + "unrankedText"?: string; } - var HTMLSqmTabsElement: { - prototype: HTMLSqmTabsElement; - new (): HTMLSqmTabsElement; - }; - interface HTMLSqmTaskCardElement extends Components.SqmTaskCard, HTMLStencilElement { + interface SqmLinkButton { + /** + * @uiName Button text + * @uiType string + */ + "buttonText"?: string; + /** + * Enter the URL where you want your participants redirected. Example: https://www.example.com + * @required + * @uiName Link + */ + "link"?: string; + /** + * @uiName Open link in new tab + */ + "openInNewTab"?: boolean; } - var HTMLSqmTaskCardElement: { - prototype: HTMLSqmTaskCardElement; - new (): HTMLSqmTaskCardElement; - }; - interface HTMLSqmTextElement extends Components.SqmText, HTMLStencilElement { + interface SqmLogoutCurrentUser { + /** + * @required + * @uiName Switch user button link + */ + "demoData"?: DemoData; + /** + * @required + * @uiName Error text + */ + "emailErrorText"?: string; + /** + * @required + * @uiName Switch user button label + */ + "switchUserText"?: string; + /** + * @required + * @uiName User identification text + */ + "userIdentificationText"?: string; } - var HTMLSqmTextElement: { - prototype: HTMLSqmTextElement; - new (): HTMLSqmTextElement; - }; - interface HTMLSqmTextSpanElement extends Components.SqmTextSpan, HTMLStencilElement { + interface SqmNameFields { + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName First name label + */ + "firstNameLabel"?: string; + /** + * @uiName Last name label + */ + "lastNameLabel"?: string; } - var HTMLSqmTextSpanElement: { - prototype: HTMLSqmTextSpanElement; - new (): HTMLSqmTextSpanElement; - }; - interface HTMLSqmTimelineElement extends Components.SqmTimeline, HTMLStencilElement { + interface SqmNavigationMenu { + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Include dropdown menu + */ + "includeDropdown"?: boolean; + /** + * Label on the header menu + * @uiName Menu label + */ + "menuLabel"?: string; } - var HTMLSqmTimelineElement: { - prototype: HTMLSqmTimelineElement; - new (): HTMLSqmTimelineElement; - }; - interface HTMLSqmTimelineEntryElement extends Components.SqmTimelineEntry, HTMLStencilElement { + interface SqmNavigationSidebar { } - var HTMLSqmTimelineEntryElement: { - prototype: HTMLSqmTimelineEntryElement; - new (): HTMLSqmTimelineEntryElement; - }; - interface HTMLSqmTitledSectionElement extends Components.SqmTitledSection, HTMLStencilElement { + interface SqmNavigationSidebarItem { + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * Options available at https://shoelace.style/components/icon + * @uiName Icon + */ + "icon"?: string; + /** + * @uiName Label + */ + "label"?: string; + /** + * @uiName Navigation path + * @uiWidget pageSelect + */ + "path"?: string; } - var HTMLSqmTitledSectionElement: { - prototype: HTMLSqmTitledSectionElement; - new (): HTMLSqmTitledSectionElement; - }; - interface HTMLSqmUserNameElement extends Components.SqmUserName, HTMLStencilElement { + interface SqmPasswordField { + /** + * @undocumented + * @uiType object + */ + "demoData"?: PasswordFieldViewDemoProps; + /** + * Disable live password validation + * @uiName Disable validation + */ + "disableValidation"?: boolean; + /** + * @uiName Password requirement failed + */ + "doesNotMeetRequirementsText"?: string; + /** + * Label for password field + * @uiName Password label + */ + "fieldLabel"?: string; + /** + * @uiName Missing number or symbol text + */ + "hasErrorText"?: string; + /** + * @uiName Missing lowercase text + */ + "lowercaseErrorText"?: string; + /** + * @uiName Password requirement met + */ + "meetsRequirementsText"?: string; + /** + * @uiName Minimum length text + */ + "minErrorText"?: string; + /** + * @uiName Missing uppercase text + */ + "uppercaseErrorText"?: string; } - var HTMLSqmUserNameElement: { - prototype: HTMLSqmUserNameElement; - new (): HTMLSqmUserNameElement; - }; - interface HTMLElementTagNameMap { - "raisins-plop-target": HTMLRaisinsPlopTargetElement; - "sqm-asset-card": HTMLSqmAssetCardElement; - "sqm-big-stat": HTMLSqmBigStatElement; - "sqm-brand": HTMLSqmBrandElement; - "sqm-card-feed": HTMLSqmCardFeedElement; - "sqm-checkbox-field": HTMLSqmCheckboxFieldElement; - "sqm-close-button": HTMLSqmCloseButtonElement; - "sqm-coupon-code": HTMLSqmCouponCodeElement; - "sqm-divided-layout": HTMLSqmDividedLayoutElement; - "sqm-dropdown-field": HTMLSqmDropdownFieldElement; - "sqm-edit-profile": HTMLSqmEditProfileElement; - "sqm-empty": HTMLSqmEmptyElement; - "sqm-form-message": HTMLSqmFormMessageElement; - "sqm-graphql-client-provider": HTMLSqmGraphqlClientProviderElement; - "sqm-header-logo": HTMLSqmHeaderLogoElement; - "sqm-hero": HTMLSqmHeroElement; - "sqm-hero-image": HTMLSqmHeroImageElement; - "sqm-hook-story-container": HTMLSqmHookStoryContainerElement; - "sqm-image": HTMLSqmImageElement; - "sqm-input-field": HTMLSqmInputFieldElement; - "sqm-instant-access-registration": HTMLSqmInstantAccessRegistrationElement; - "sqm-leaderboard": HTMLSqmLeaderboardElement; - "sqm-leaderboard-rank": HTMLSqmLeaderboardRankElement; - "sqm-link-button": HTMLSqmLinkButtonElement; - "sqm-logout-current-user": HTMLSqmLogoutCurrentUserElement; - "sqm-name-fields": HTMLSqmNameFieldsElement; - "sqm-navigation-menu": HTMLSqmNavigationMenuElement; - "sqm-navigation-sidebar": HTMLSqmNavigationSidebarElement; - "sqm-navigation-sidebar-item": HTMLSqmNavigationSidebarItemElement; - "sqm-password-field": HTMLSqmPasswordFieldElement; - "sqm-popup-container": HTMLSqmPopupContainerElement; - "sqm-portal-change-password": HTMLSqmPortalChangePasswordElement; - "sqm-portal-container": HTMLSqmPortalContainerElement; - "sqm-portal-email-verification": HTMLSqmPortalEmailVerificationElement; - "sqm-portal-footer": HTMLSqmPortalFooterElement; - "sqm-portal-forgot-password": HTMLSqmPortalForgotPasswordElement; - "sqm-portal-frame": HTMLSqmPortalFrameElement; - "sqm-portal-login": HTMLSqmPortalLoginElement; - "sqm-portal-logout": HTMLSqmPortalLogoutElement; - "sqm-portal-profile": HTMLSqmPortalProfileElement; - "sqm-portal-protected-route": HTMLSqmPortalProtectedRouteElement; - "sqm-portal-register": HTMLSqmPortalRegisterElement; - "sqm-portal-registration-form": HTMLSqmPortalRegistrationFormElement; - "sqm-portal-reset-password": HTMLSqmPortalResetPasswordElement; - "sqm-portal-verify-email": HTMLSqmPortalVerifyEmailElement; - "sqm-program-explainer": HTMLSqmProgramExplainerElement; - "sqm-program-explainer-step": HTMLSqmProgramExplainerStepElement; - "sqm-program-menu": HTMLSqmProgramMenuElement; - "sqm-referral-card": HTMLSqmReferralCardElement; - "sqm-referral-iframe": HTMLSqmReferralIframeElement; - "sqm-referral-table": HTMLSqmReferralTableElement; - "sqm-referral-table-cell": HTMLSqmReferralTableCellElement; - "sqm-referral-table-column": HTMLSqmReferralTableColumnElement; - "sqm-referral-table-date-cell": HTMLSqmReferralTableDateCellElement; - "sqm-referral-table-date-column": HTMLSqmReferralTableDateColumnElement; - "sqm-referral-table-rewards-cell": HTMLSqmReferralTableRewardsCellElement; - "sqm-referral-table-rewards-column": HTMLSqmReferralTableRewardsColumnElement; - "sqm-referral-table-status-cell": HTMLSqmReferralTableStatusCellElement; - "sqm-referral-table-status-column": HTMLSqmReferralTableStatusColumnElement; - "sqm-referral-table-user-cell": HTMLSqmReferralTableUserCellElement; - "sqm-referral-table-user-column": HTMLSqmReferralTableUserColumnElement; - "sqm-referred-registration": HTMLSqmReferredRegistrationElement; - "sqm-reward-exchange-list": HTMLSqmRewardExchangeListElement; - "sqm-rewards-table": HTMLSqmRewardsTableElement; - "sqm-rewards-table-customer-note-cell": HTMLSqmRewardsTableCustomerNoteCellElement; - "sqm-rewards-table-customer-note-column": HTMLSqmRewardsTableCustomerNoteColumnElement; - "sqm-rewards-table-date-cell": HTMLSqmRewardsTableDateCellElement; - "sqm-rewards-table-date-column": HTMLSqmRewardsTableDateColumnElement; - "sqm-rewards-table-reward-cell": HTMLSqmRewardsTableRewardCellElement; - "sqm-rewards-table-reward-column": HTMLSqmRewardsTableRewardColumnElement; - "sqm-rewards-table-source-cell": HTMLSqmRewardsTableSourceCellElement; - "sqm-rewards-table-source-column": HTMLSqmRewardsTableSourceColumnElement; - "sqm-rewards-table-status-cell": HTMLSqmRewardsTableStatusCellElement; - "sqm-rewards-table-status-column": HTMLSqmRewardsTableStatusColumnElement; - "sqm-route": HTMLSqmRouteElement; - "sqm-router": HTMLSqmRouterElement; - "sqm-scroll": HTMLSqmScrollElement; - "sqm-share-button": HTMLSqmShareButtonElement; - "sqm-share-code": HTMLSqmShareCodeElement; - "sqm-share-link": HTMLSqmShareLinkElement; - "sqm-stat-container": HTMLSqmStatContainerElement; - "sqm-stencilbook": HTMLSqmStencilbookElement; - "sqm-tab": HTMLSqmTabElement; - "sqm-table-cell": HTMLSqmTableCellElement; - "sqm-table-row": HTMLSqmTableRowElement; - "sqm-tabs": HTMLSqmTabsElement; - "sqm-task-card": HTMLSqmTaskCardElement; - "sqm-text": HTMLSqmTextElement; - "sqm-text-span": HTMLSqmTextSpanElement; - "sqm-timeline": HTMLSqmTimelineElement; - "sqm-timeline-entry": HTMLSqmTimelineEntryElement; - "sqm-titled-section": HTMLSqmTitledSectionElement; - "sqm-user-name": HTMLSqmUserNameElement; + interface SqmPayoutDetailsCard { + /** + * Shown before the participant’s bank account information. + * @uiName Bank account field label + */ + "accountText"?: string; + /** + * @undocumented + */ + "demoData"?: DemoData; + /** + * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts. + * @uiName Payout error message description + */ + "errorDescriptionText"?: string; + /** + * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts. + * @uiName Payout error message title + */ + "errorTitleText"?: string; + /** + * Text displayed for existing publishers that do not have saved banking information. + * @uiName Payout missing information subtext + */ + "payoutMissingInformationText"?: string; + /** + * Badge text indicating payout status + * @uiName Payout badge status text + */ + "statusBadgeText"?: string; + /** + * Display participants' payout preference on the payout information card, indicating the balance at which they want to get paid. + * @uiName Payout schedule by threshold text + */ + "thresholdPayoutText"?: string; } -} -declare namespace LocalJSX { - interface RaisinsPlopTarget { + interface SqmPopupContainer { + /** + * Display a close button on the popup + * @uiName Show close button + */ + "closeButton"?: boolean; + /** + * Text inside the close button + * @uiName Close button text + */ + "closeButtonText"?: string; + /** + * Specify padding on the popup contents when in embedded mode + * @uiName Embed padding + * @uiType string + * @uiEnum ["none", "small", "medium", "large"] + * @uiEnumNames ["None", "Small", "Medium", "Large"] + */ + "embedPadding"?: "none" | "small" | "medium" | "large"; + /** + * Specify padding on the popup contents when in popup mode + * @uiName Popup padding + * @uiType string + * @uiEnum ["none", "small", "medium", "large"] + * @uiEnumNames ["None", "Small", "Medium", "Large"] + */ + "popupPadding"?: "none" | "small" | "medium" | "large"; + /** + * Show Powered by Impact.com link + * @uiName Show powered by + */ + "poweredBy"?: boolean; + /** + * Text at the bottom of the popup + * @uiName "Powered by" text + */ + "poweredByText"?: string; } - interface SqmAssetCard { + interface SqmPortalChangePassword { + /** + * Found in modal + * @uiName Cancel button text + */ + "cancelText"?: string; + /** + * Found in modal + * @uiName Change password button text + */ + "changePasswordButtonText"?: string; + /** + * Found in modal + * @uiName Confirm password Label + */ + "confirmPasswordFieldLabel"?: string; /** * @undocumented * @uiType object */ - "demoData"?: DemoData; + "demoData"?: DemoData; /** - * @uiName Banner image + * @uiName Password requirement failed */ - "imgUrl"?: string; + "doesNotMeetRequirementsText"?: string; /** - * @uiName Banner title + * @uiName Missing number or symbol text */ - "titleText"?: string; + "hasErrorText"?: string; + /** + * @uiName Invalid user session error message + */ + "invalidSessionErrorText"?: string; + /** + * @uiName Missing lowercase text + */ + "lowercaseErrorText"?: string; + /** + * @uiName Password requirement met + */ + "meetsRequirementsText"?: string; + /** + * @uiName Minimum length text + */ + "minErrorText"?: string; + /** + * @uiName Change password modal header + */ + "modalChangePasswordHeader"?: string; + /** + * @uiName Passwords don’t match error message + */ + "nonMatchingPasswordErrorText"?: string; + /** + * Found in modal + * @uiName New password field label + */ + "passwordFieldLabel"?: string; + /** + * @uiName Change password button text + */ + "portalChangePasswordButtonText"?: string; + /** + * Portal change password section header + * @uiName Change password header + */ + "portalChangePasswordHeader"?: string; + /** + * Successful password change message + * @uiName Successful password change message + * @uiWidget textArea + */ + "successMessage"?: string; + /** + * @uiName Missing uppercase text + */ + "uppercaseErrorText"?: string; } - interface SqmBigStat { + interface SqmPortalContainer { /** - * Controls the alignment of the flexbox - * @uiName Alignment + * @uiName Background color + * @uiWidget color + * @uiGroup Card style * @uiType string - * @uiEnum ["left", "right", "center"] - * @uiEnumNames ["Left", "Right", "Center"] */ - "alignment"?: "left" | "right" | "center"; + "backgroundColor"?: string; + /** + * @uiName Center content + */ + "center"?: boolean; + /** + * @uiName Direction + * @uiType string + * @uiEnum ["row", "column"] + * @uiEnumNames ["Row", "Column"] + */ + "direction"?: "row" | "column"; + /** + * @uiName Display + * @uiType string + * @uiEnum ["grid", "flex"] + * @uiEnumNames ["Grid", "Flex"] + */ + "display"?: "grid" | "flex"; + /** + * @uiName Gap + * @uiType string + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "gap"?: Spacing; + /** + * Define how this container distributes its contents along the main-axis. + * @uiName Justify content + * @uiType string + * @uiEnum ["start", "center", "end", "space-between", "space-around", "space-evenly"] + * @uiEnumNames ["Start", "Center", "End", "Space Between", "Space Around", "Space Evenly"] + */ + "justifyContent"?: | "start" + | "center" + | "end" + | "space-between" + | "space-around" + | "space-evenly"; + /** + * @uiName Maximum width + */ + "maxWidth"?: string; + /** + * @uiName Minimum width + */ + "minWidth"?: string; + /** + * @uiName Padding + * @uiType string + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "padding"?: Spacing; + } + interface SqmPortalEmailVerification { /** * @undocumented * @uiType object */ - "demoData"?: DemoData; + "demoData"?: DemoData; /** - * Controls the order of the stat value & description column - * @uiName Flex reverse - * @default + * @uiName Email verification header text */ - "flexReverse"?: boolean; + "emailVerificationHeader"?: string; /** - * The ID of the program that is used to scope stats. Defaults to the program context when no ID is specified. - * @uiName Program ID - * @uiWidget programSelector + * @uiName Network error message Displayed when your verification email fails to send due to a network error. The participant can try refreshing the page. */ - "programId"?: string; + "networkErrorMessage"?: string; /** - * Select what type of stat to display. Manual paths are also supported. - * @uiWidget statTypeSelectWidget - * @uiName Stat type - * @required - * @uiWidgetOptions {"version": 1.1} + * Redirect participants to this page from their verification email. + * @uiName Email redirect + * @uiWidget pageSelect */ - "statType"?: string; - } - interface SqmBrand { + "redirectPath"?: string; /** - * Controls the primary brand color used in the Mint Components library. - * @uiName Brand color - * @uiWidget color - * @format color + * @uiName Re-send email button text */ - "brandColor"?: string; + "resendEmailButtonText"?: string; /** - * Enter a font from the Google Fonts library to use throughout your widget. This value is case sensitive. Some fonts may not require quotations. Example: Roboto - * @uiName Brand font - * @default "Nunito Sans" + * @uiName Email verification checking text + * @uiWidget textArea */ - "brandFont"?: string; - } - interface SqmCardFeed { + "verificationLoadingMessage"?: string; /** - * @uiName Column gap - * @uiType number + * @uiName Email verification resent text + * @uiWidget textArea */ - "gap"?: number; + "verificationResentMessage"?: string; /** - * @uiName Card width + * @uiName Email verification status text + * @uiWidget textArea */ - "width"?: number; + "verificationStatusMessage"?: string; + /** + * @uiName Email verification body text + * @uiWidget textArea + */ + "verifyMessage"?: string; } - interface SqmCheckboxField { + interface SqmPortalFooter { /** - * @uiName Checkbox label + * @uiName FAQ link + */ + "faqLink"?: string; + /** + * @uiName FAQ text + */ + "faqText"?: string; + /** + * @uiName Hide powered by Impact.com + */ + "hidePoweredBy"?: boolean; + /** + * @uiName Hide support message + */ + "hideSupportText"?: boolean; + /** + * @uiName Bottom padding + * @uiGroup Padding + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "paddingBottom"?: string; + /** + * @uiName Left padding + * @uiGroup Padding + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "paddingLeft"?: string; + /** + * @uiName Right padding + * @uiGroup Padding + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "paddingRight"?: string; + /** + * @uiName Top padding + * @uiGroup Padding + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + */ + "paddingTop"?: string; + /** + * @uiName Powered By link + */ + "poweredByLink"?: string; + /** + * @uiName Support email + */ + "supportEmail"?: string; + /** + * @uiName Support message * @uiWidget textArea */ - "checkboxLabel"?: string; + "supportText"?: string; + /** + * @uiName Terms and conditions link + */ + "termsLink"?: string; /** - * Used with link text if the checkbox label contains {labelLink} - * @uiName Checkbox label link + * @uiName Terms and conditions text */ - "checkboxLabelLink"?: string; + "termsText"?: string; + } + interface SqmPortalForgotPassword { /** - * @uiName Checkbox label link lext + * @undocumented + * @uiType object */ - "checkboxLabelLinkText"?: string; + "demoData"?: DemoData; /** - * This name is used as the key for this form field on submission. The name must be unique within this specific form. - * @uiName Checkbox name attribute - * @required + * @uiName Email field label */ - "checkboxName"?: string; + "emailLabel"?: string; /** - * @uiName Optional + * @uiName Header text + * @uiWidget textArea */ - "checkboxOptional"?: boolean; + "headerText"?: string; /** - * @undocumented - * @uiType object + * @uiName Login redirect path + * @uiWidget pageSelect */ - "demoData"?: DemoData; + "loginPath"?: string; /** - * @uiName Unchecked error message + * @uiName Sign in link text */ - "errorMessage"?: string; - } - interface SqmCloseButton { + "loginText"?: string; /** - * @uiName Color - * @uiWidget color - * @uiType string + * @uiName Network error message Displayed when the forgot password action fails due to a network error. The participant can try refreshing the page. */ - "color"?: string; - } - interface SqmCouponCode { + "networkErrorMessage"?: string; /** - * Set the copy button style and placement. - * @uiName Style - * @uiType string - * @uiEnum ["icon", "button-outside", "button-below"] - * @uiEnumNames ["Icon", "Button outside", "Button below"] + * Redirect participants to this page after they verify their email. + * @uiName Email redirect + * @uiWidget pageSelect */ - "buttonStyle"?: "icon" | "button-outside" | "button-below"; + "redirectPath"?: string; /** - * Display this message when the coupon code has been cancelled. - * @uiWidget textArea - * @uiName Cancelled code error message - * @uiGroup Coupon code error + * @uiName Password reset button text */ - "cancelledErrorText"?: string; + "submitLabel"?: string; /** - * @uiName Copy button label + * @uiName Email verification sent text */ - "copyButtonLabel"?: string; + "successAlertText"?: string; + } + interface SqmPortalFrame { /** - * @uiName Coupon code label + * @undocumented + * @uiType object */ - "couponCodeLabel"?: string; + "demoData"?: DemoData; /** - * Display this text when the coupon code can’t be retrieved. - * @uiName Coupon code placeholder - * @uiGroup Coupon code error + * @undocumented */ - "couponCodePlaceholder"?: string; + "notFullScreen"?: boolean; + } + interface SqmPortalLogin { /** * @undocumented * @uiType object */ - "demoData"?: DemoData; + "demoData"?: DemoData; /** - * Display this message when the coupon code has expired. - * @uiWidget textArea - * @uiName Expired code error message - * @uiGroup Coupon code error + * @uiName Email field label */ - "expiredErrorText"?: string; + "emailLabel"?: string; /** - * Display this message when the code fails to load due to a fulfillment error. - * @uiWidget textArea - * @uiName Code fulfillment error message - * @uiGroup Coupon code error + * @uiName Forgot password text */ - "fullfillmentErrorText"?: string; + "forgotPasswordLabel"?: string; /** - * Display this message when the code fails to load due to an unspecified error. - * @uiWidget textArea - * @uiName Code retrieval error message - * @uiGroup Coupon code error + * Redirect participants to this page to reset their password + * @uiName Forgot password redirect + * @uiWidget pageSelect */ - "genericErrorText"?: string; + "forgotPasswordPath"?: string; /** - * Display this message when the coupon code not available yet. Use the ICU message, {unpendDate}, to show the date the code will be available. - * @uiWidget textArea - * @uiName Code pending error message - * @uiGroup Coupon code error + * @uiName Network error message Displayed when the login fails due to a network error. The participant can try refreshing the page. */ - "pendingErrorText"?: string; + "networkErrorMessage"?: string; /** - * The ID of the program that should generate the code. Defaults to the program ID in context where this widget is loaded. - * @uiName Program ID - * @uiWidget programSelector + * Redirect participants to this page after they successfully login. + * @uiName Login redirect + * @uiWidget pageSelect */ - "programId"?: string; + "nextPage"?: string; /** - * Display this message when the coupon code has already been redeemed. + * @uiName Heading label * @uiWidget textArea - * @uiName Redeemed code error message - * @uiGroup Coupon code error */ - "redeemedErrorText"?: string; + "pageLabel"?: string; /** - * @uiName Coupon code alignment - * @uiType string - * @uiEnum ["left", "center", "right"] - * @uiEnumNames ["Left", "Center", "Right"] + * @uiName Password field label */ - "textAlign"?: "left" | "center" | "right"; + "passwordLabel"?: string; /** - * The number of milliseconds that the tooltip appears for - * @uiName Tooltip lifespan + * @uiName Register button text */ - "tooltiplifespan"?: number; + "registerLabel"?: string; /** - * Shown inside a tooltip after someone has successfully copied the link to their clipboard. - * @uiName Tooltip text + * Redirect participants to this page to start registration. + * @uiName Register button redirect + * @uiWidget pageSelect */ - "tooltiptext"?: string; - } - interface SqmDividedLayout { + "registerPath"?: string; /** - * @uiName Direction - * @uiType string - * @uiEnum ["row", "column"] - * @uiEnumNames ["Row", "Column"] + * @uiName Submit button text */ - "direction"?: "row" | "column"; + "submitLabel"?: string; + } + interface SqmPortalLogout { /** - * Uses Shorthand CSS border syntax allowing specification of thickness, fill style and color. - * @uiName Border style + * Redirect participants to this page when they log out. + * @uiName Logout redirect path + * @uiWidget pageSelect */ - "dividerStyle"?: string; + "nextPage"?: string; } - interface SqmDropdownField { + interface SqmPortalProfile { + /** + * @uiName Country field label + */ + "countrytext"?: string; /** * @undocumented * @uiType object */ - "demoData"?: DemoData; + "demoData"?: DemoData; /** - * @uiName Dropdown label + * @uiName Edit profile header */ - "dropdownLabel"?: string; + "editProfileHeader"?: string; /** - * This name is used as the key for this form field on submission. The name must be unique within this specific form. - * @uiName Dropdown name attribute - * @required + * @uiName Edit profile sub header */ - "dropdownName"?: string; + "editProfileSubHeader"?: string; /** - * @uiName Optional - * @default + * @uiName Email field label */ - "dropdownOptional"?: boolean; + "emailtext"?: string; /** - * @uiName Unselected error message + * @uiName Field empty text */ - "errorMessage"?: string; - } - interface SqmEditProfile { + "fieldEmptyText"?: string; /** - * @uiName Cancel button text + * @uiName First name label */ - "canceltext"?: string; + "firstnametext"?: string; /** - * @uiName Region field label + * @uiName Form error message */ - "currentregiontext"?: string; + "formErrorText"?: string; /** - * @undocumented - * @uiType object + * @uiName Hide country field */ - "demoData"?: DemoData; + "hideCountry"?: boolean; /** - * @uiName Heading + * @uiName Last name field label */ - "editprofileheader"?: string; + "lastnametext"?: string; /** - * Enable editing button text - * @uiName Edit profile text + * @uiName Network request error message Displayed when the page fails to load due to a network error. The participant can try refreshing the page. */ - "editprofiletext"?: string; + "networkRequestMessage"?: string; /** - * @uiName Empty field error message + * @uiName Submission success text */ - "fieldEmptyText"?: string; + "submissionSuccessText"?: string; /** - * @uiName First name label + * @uiName Submit changes button text */ - "firstnametext"?: string; + "submitChangeButtonText"?: string; + } + interface SqmPortalProtectedRoute { /** - * @uiName Form error message + * Redirect participants to this page they are not logged in. + * @uiName Unauthenticated participant redirect */ - "formErrorText"?: string; + "redirectTo"?: string; /** - * @uiName Last name label + * Redirect participants to this page when email verification is required but they have not verified their email. + * @uiName Unverified participant redirect */ - "lastnametext"?: string; + "redirectToUnverified"?: string; /** - * @uiName Network error message + * @uiName Require email verification */ - "networkErrorMessage"?: string; + "requireEmailVerification"?: boolean; + } + interface SqmPortalRegister { /** - * Show or hide current region - * @uiName Show region + * @uiName Show confirm password field */ - "showregion"?: boolean; + "confirmPassword"?: boolean; /** - * @uiName Info button text + * @uiName Confirm password field label + */ + "confirmPasswordLabel"?: string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Disable password validation */ - "updatetext"?: string; - } - interface SqmEmpty { + "disablePasswordValidation"?: boolean; /** - * @uiName Title + * @uiName Password requirement failed */ - "emptyStateHeader"?: string; + "doesNotMeetRequirementsText"?: string; /** - * @uiWidget ImageUpload - * @format url - * @uiName Image + * @uiName Email field label */ - "emptyStateImage"?: string; + "emailLabel"?: string; /** - * @uiName Description - * @uiWidget textArea + * @uiName Missing number or symbol text */ - "emptyStateText"?: string; - } - interface SqmFormMessage { + "hasErrorText"?: string; /** - * Icon to use in alert. Use icon values from Shoelace (e.g. "star" or "heart") at https://shoelace.style/components/icon - * @uiName Icon + * Hides the email and password fields. Note: If you hide default inputs, you must add additional input fields. They must have the input name attributes "email" and "password" for this form to succeed. + * @uiName Hide default fields */ - "icon"?: string; + "hideInputs"?: boolean; /** - * Options include "success", "info", "warning", and "error" - * @uiName Alert type + * The message to be displayed when the email used is invalid or blocked. + * @uiName Invalid email message + * @uiWidget textArea */ - "type"?: string; - } - interface SqmGraphqlClientProvider { + "invalidEmailErrorMessage"?: string; /** - * @uiName Domain + * @uiName Login button text */ - "domain"?: string; - } - interface SqmHeaderLogo { + "loginLabel"?: string; /** - * @uiName Logo height + * Redirect participants to this page after clicking the login button. + * @uiName Login redirect + * @uiWidget pageSelect */ - "height"?: number; + "loginPath"?: string; /** - * @uiWidget ImageUpload - * @format url - * @uiName Logo image + * @uiName Missing lowercase text */ - "imageUrl"?: string; + "lowercaseErrorText"?: string; /** - * Page participants are navigated to after clicking the header logo. - * @uiName Redirect path - * @uiWidget pageSelect + * @uiName Password requirement met */ - "nextPage"?: string; - } - interface SqmHero { + "meetsRequirementsText"?: string; /** - * Can be an image url, colour or Shoelace variable. - * @uiName Background - * @uiWidget Background + * @uiName Minimum length text */ - "background"?: string; + "minErrorText"?: string; /** - * @uiName Columns - * @uiEnum [1, 2] - * @uiEnumNames ["One", "Two"] + * The message to be displayed when a the form submission fails unexpectedly. + * @uiName Network error message + * @uiWidget textArea */ - "columns"?: 1 | 2; + "networkErrorMessage"?: string; /** - * Minimum height of each column including when they are stacked on mobile - * @uiName Minimum height (in px) + * Redirect participants to this page from their verification email + * @uiName Registration redirect + * @uiWidget pageSelect */ - "minHeight"?: number; + "nextPage"?: string; /** - * @uiName Padding size - * @uiEnum ["none", "small", "medium","large"] - * @uiEnumNames ["None", "Small", "Medium", "Large"] + * @uiName Header text */ - "paddingSize"?: "none" | "small" | "medium" | "large"; + "pageLabel"?: string; /** - * Secondary background image or color (for use in the right column) - * @uiName Secondary background - * @uiWidget Background + * @uiName Password field label */ - "secondaryBackground"?: string; + "passwordLabel"?: string; /** - * Flexbox wrap direction, accepts wrap or wrap-reverse - * @uiName Wrap direction - * @uiEnum ["wrap", "wrap-reverse"] - * @uiEnumNames ["Wrap", "Wrap Reverse"] + * The message to be displayed when password inputs do not match. + * @uiName Password mismatch message + * @uiWidget textArea */ - "wrapDirection"?: "wrap" | "wrap-reverse"; - } - interface SqmHeroImage { + "passwordMismatchErrorMessage"?: string; /** - * @uiName Background color - * @uiWidget color - * @format color + * The page that participants are redirected to from the verification email. + * @uiName Email verification redirect + * @uiWidget pageSelect */ - "backgroundColor"?: string; + "redirectPath"?: string; /** - * @uiName Button link + * The message to be displayed when a required field is not filled. + * @uiName Required field message + * @uiWidget textArea */ - "buttonLink"?: string; + "requiredFieldErrorMessage"?: string; /** - * @uiName Open link in new tab - * @default + * @uiName Submit button text */ - "buttonNewTab"?: boolean; + "submitLabel"?: string; /** - * @uiName Button text + * @uiName Missing uppercase text */ - "buttonText"?: string; + "uppercaseErrorText"?: string; + } + interface SqmPortalRegistrationForm { /** - * @uiName Description - * @uiWidget textArea + * @uiName Show confirm password field */ - "description"?: string; + "confirmPassword"?: boolean; /** - * @uiName Title + * @uiName Confirm password field label */ - "header"?: string; + "confirmPasswordLabel"?: string; /** - * @uiName Image mobile position - * @uiType string - * @uiEnum ["top", "bottom"] - * @uiEnumNames ["Top", "Bottom"] + * @undocumented + * @uiType object */ - "imageMobilePos"?: "top" | "bottom"; + "demoData"?: DemoData; /** - * @uiName Image percentage - * @uiType number + * @uiName Disable password validation */ - "imagePercentage"?: number; + "disablePasswordValidation"?: boolean; /** - * @uiName Image position - * @uiType string - * @uiEnum ["left", "center", "right"] - * @uiEnumNames ["Left", "Center", "Right"] + * @uiName Password requirement failed */ - "imagePos"?: "left" | "center" | "right"; + "doesNotMeetRequirementsText"?: string; /** - * @uiWidget ImageUpload - * @format url - * @uiName Image + * @uiName Email field label */ - "imageUrl"?: string; + "emailLabel"?: string; /** - * @uiName Image layout - * @uiType string - * @uiEnum ["overlay", "columns"] - * @uiEnumNames ["Overlay", "Two-column"] + * The message to be displayed when the registration form is disabled. + * @uiName Form disabled message + * @uiWidget textArea */ - "layout"?: "overlay" | "columns"; + "formDisabledErrorMessage"?: string; /** - * @uiName Overlay color - * @uiWidget color - * @format color + * The key of the registration form used for this microsite. + * @uiName Form key + * @required */ - "overlayColor"?: string; + "formKey"?: string; /** - * @uiName Overlay opacity + * @uiName Missing number or symbol text */ - "overlayOpacity"?: string; + "hasErrorText"?: string; /** - * @uiName Image padding - * @uiType string - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * Hides the email and password fields. Note: If you hide default inputs, you must add additional input fields. They must have the input name attributes "email" and "password" for this form to succeed. + * @uiName Hide default fields */ - "paddingImage"?: Spacing; + "hideInputs"?: boolean; /** - * @uiName Text padding - * @uiType string - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * The message to be displayed when the email used is invalid or blocked. + * @uiName Invalid email message + * @uiWidget textArea */ - "paddingText"?: Spacing; + "invalidEmailErrorMessage"?: string; /** - * @uiName Text color - * @uiWidget color - * @format color + * @uiName Login button text */ - "textColor"?: string; - } - interface SqmHookStoryContainer { - "hookStory"?: FunctionalComponent; - } - interface SqmImage { + "loginLabel"?: string; /** - * @uiName Position alignment - * @uiType string - * @uiEnum ["left", "center", "right"] - * @uiEnumNames ["Left", "Center", "Right"] + * Redirect participants to this page after clicking the login button. + * @uiName Login redirect + * @uiWidget pageSelect */ - "alignment"?: "left" | "center" | "right"; + "loginPath"?: string; /** - * @uiName Background color - * @uiWidget color - * @format color + * @uiName Missing lowercase text */ - "backgroundColor"?: string; + "lowercaseErrorText"?: string; /** - * @uiWidget ImageUpload - * @format url - * @required - * @uiName Image link + * @uiName Password requirement met */ - "imageUrl"?: string; + "meetsRequirementsText"?: string; /** - * (Optional) Helps with constraining the minimum image size. Can be a pixel value or a percentage i.e. "500px", "33%", etc. - * @uiName Minimum height + * @uiName Minimum length text */ - "minHeight"?: string; - } - interface SqmInputField { + "minErrorText"?: string; /** - * @undocumented - * @uiType object + * The message to be displayed when a the form submission fails unexpectedly. + * @uiName Network error message + * @uiWidget textArea */ - "demoData"?: DemoData; + "networkErrorMessage"?: string; /** - * @uiName Required error message + * Redirect participants to this page after they successfully register. + * @uiName Registration redirect + * @uiWidget pageSelect */ - "errorMessage"?: string; + "nextPage"?: string; /** - * @uiName Input label + * @uiName Header text */ - "fieldLabel"?: string; + "pageLabel"?: string; /** - * This name is used as the key for this form field on submission. The name must be unique within this specific form. - * @uiName Input name attribute - * @required + * @uiName Password field label */ - "fieldName"?: string; + "passwordLabel"?: string; /** - * @uiName Optional - * @default + * The message to be displayed when password inputs do not match. + * @uiName Password mismatch message + * @uiWidget textArea */ - "fieldOptional"?: boolean; + "passwordMismatchErrorMessage"?: string; /** - * @uiName Input type - * @uiType string - * @uiEnum ["text", "date", "tel"] - * @uiEnumNames ["Text", "Date", "Phone Number"] + * Redirect participants to this page from their verification email + * @uiName Email verification redirect + * @uiWidget pageSelect */ - "fieldType"?: "text" | "date" | "tel"; - } - interface SqmInstantAccessRegistration { + "redirectPath"?: string; /** - * @uiName Background color - * @uiWidget color - * @uiGroup Card style - * @uiType string + * The message to be displayed when a required field is not filled. + * @uiName Required field message + * @uiWidget textArea */ - "backgroundColor"?: string; + "requiredFieldErrorMessage"?: string; /** - * @undocumented - * @uiType object + * @uiName Submit button text */ - "demoData"?: DemoData; + "submitLabel"?: string; /** - * @uiName Email field label + * @uiName Missing uppercase text */ - "emailLabel"?: string; + "uppercaseErrorText"?: string; + } + interface SqmPortalResetPassword { /** - * @uiName First name field label + * @uiName Reset code invalid error message */ - "firstNameLabel"?: string; + "codeInvalidText"?: string; /** - * @uiName Hide border - * @uiGroup Card style + * @uiName Show confirm password field */ - "hideBorder"?: boolean; + "confirmPassword"?: boolean; /** - * @undocumented - * @uiType boolean + * @uiName Password confirmation field label */ - "includeCookies"?: boolean; + "confirmPasswordFieldLabel"?: string; /** - * Require your participants to enter their first and last name. - * @uiName Include name fields + * Button text displayed after a successful password reset. + * @uiName Continue button text */ - "includeName"?: boolean; + "continueButtonText"?: string; /** - * Display this message when the given email is invalid. - * @uiName Invalid email message - * @uiWidget textArea - * @uiGroup Error messages + * @undocumented + * @uiType object */ - "invalidEmailErrorMessage"?: string; + "demoData"?: DemoData; /** - * @uiName Last name field label + * @uiName Password requirement failed */ - "lastNameLabel"?: string; + "doesNotMeetRequirementsText"?: string; /** - * Display this message when the form submission unexpectedly fails. - * @uiName Network error message - * @uiWidget textArea - * @uiGroup Error messages + * Redirect participants to this page if password reset fails due to an outdated reset attempt. + * @uiName Failed reset redirect + * @uiWidget pageSelect */ - "networkErrorMessage"?: string; + "failedPage"?: string; /** - * @uiName Bottom padding - * @uiGroup Card style - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * @uiName Missing number or symbol text */ - "paddingBottom"?: string; + "hasErrorText"?: string; /** - * @uiName Left padding - * @uiGroup Card style - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * @uiName Missing lowercase text */ - "paddingLeft"?: string; + "lowercaseErrorText"?: string; /** - * @uiName Right padding - * @uiGroup Card style - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * @uiName Password requirement met */ - "paddingRight"?: string; + "meetsRequirementsText"?: string; /** - * @uiName Top padding - * @uiGroup Card style - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * @uiName Minimum length text */ - "paddingTop"?: string; + "minErrorText"?: string; /** - * @uiName Register button text + * @uiName Network error message Displayed when the password reset fails due to a network error. The participant can try refreshing the page. */ - "registerLabel"?: string; + "networkErrorMessage"?: string; /** - * Display this message when a required field has not been filled out. - * @uiName Required field message - * @uiWidget textArea - * @uiGroup Error messages + * Redirect participants to this page when they successfully reset their password. + * @uiName Successful reset redirect + * @uiWidget pageSelect */ - "requiredFieldErrorMessage"?: string; - } - interface SqmLeaderboard { + "nextPage"?: string; /** - * Title displayed for users without names - * @uiName Unknown user text + * @uiName Password field label */ - "anonymousUser"?: string; + "passwordFieldLabel"?: string; /** - * @undocumented - * @uiType object + * @uiName Passwords don’t match error message Please make sure your passwords match */ - "demoData"?: DemoData; + "passwordMismatchText"?: string; /** - * Hide the viewer's leaderboard row if not in the top results. - * @uiName Hide viewing user - * @default + * Displayed after a successful password reset. + * @uiName Successful password reset text + * @uiWidget textArea */ - "hideViewer"?: boolean; + "passwordResetHeader"?: string; /** - * @uiName Leaderboard time interval - * @uiWidget dateRange - * @uiWidgetOptions {"allowPastDates":true, "months": 1} + * @uiName Password reset button text */ - "interval"?: string; + "resetPasswordButtonText"?: string; /** - * @uiName Leaderboard type - * @uiType string - * @required - * @uiEnum ["topStartedReferrers", "topConvertedReferrers", "topPointEarners"] - * @uiEnumNames ["Top Started Referrers", "Top Converted Referrers", "Top Point Earners"] + * @uiName Reset password header text */ - "leaderboardType"?: | "topStartedReferrers" - | "topConvertedReferrers" - | "topPointEarners"; + "resetPasswordHeader"?: string; /** - * Control the maximum amount of rows displayed on the leaderboard. - * @uiName Maximum rows number + * @uiName Reset success text */ - "maxRows"?: number; + "resetSuccessText"?: string; /** - * Filters leaderboard to show only data from this program. Defaults to the program context where this leaderboard is. If no program ID is set or provided by context, then a global leaderboard is shown. - * @uiName Program - * @uiWidget programSelector + * @uiName Missing uppercase text */ - "programId"?: string; + "uppercaseErrorText"?: string; + } + interface SqmPortalVerifyEmail { /** - * @uiName Rank type - * @uiType string - * @uiEnum ["rowNumber", "rank", "denseRank"] - * @uiEnumNames ["Row Number", "Rank", "Dense Rank"] + * @uiName Continue text */ - "rankType"?: "rowNumber" | "rank" | "denseRank"; + "continueText"?: string; /** - * @uiName Rank column heading + * @undocumented + * @uiType object */ - "rankheading"?: string; + "demoData"?: DemoData; /** - * @uiName Show leaderboard rank + * Redirect participants to this page if verification fails due to an outdated verification attempt. + * @uiName Failed verification redirect + * @uiWidget pageSelect */ - "showRank"?: boolean; + "failedPage"?: string; /** - * @uiName Stats column heading + * @uiName Network error message Displayed when the email verification fails due to a network error. The participant can try refreshing the page. */ - "statsheading"?: string; + "networkErrorMessage"?: string; /** - * @uiName User column heading + * Redirect participants to this page when they successfully verify their email. + * @uiName Successful verification redirect + * @uiWidget pageSelect */ - "usersheading"?: string; - } - interface SqmLeaderboardRank { + "nextPage"?: string; /** - * @undocumented - * @uiType object + * @uiName Verify email text + * @uiWidget textArea */ - "demoData"?: DemoData; + "verifyEmailText"?: string; /** - * @uiName Leaderboard time interval - * @uiWidget dateRange - * @uiWidgetOptions {"allowPastDates":true, "months": 1} + * @uiName Email verification invalid text + * @uiWidget textArea */ - "interval"?: string; + "verifyInvalidText"?: string; /** - * @uiName Leaderboard type - * @uiType string - * @required - * @uiEnum ["topStartedReferrers", "topConvertedReferrers", "topPointEarners"] - * @uiEnumNames ["Top Started Referrers", "Top Converted Referrers", "Top Point Earners"] + * @uiName Email verification success text + * @uiWidget textArea */ - "leaderboardType"?: | "topStartedReferrers" - | "topConvertedReferrers" - | "topPointEarners"; + "verifySuccessText"?: string; + } + interface SqmProgramExplainer { /** - * Filters leaderboard to show only data from this program. Defaults to the program context where this leaderboard is. If no program ID is set or provided by context, then a global leaderboard is shown. - * @uiName Program - * @uiWidget programSelector + * @uiName Header background color + * @uiWidget color + * @format color */ - "programId"?: string; + "backgroundColor"?: string; /** - * @uiName Rank text - * @uiWidget textArea + * @uiName Header text */ - "rankText"?: string; + "header"?: string; /** - * @uiName Default rank - * @uiType string - * @uiEnum ["rowNumber", "rank", "denseRank"] - * @uiEnumNames ["Row Number", "Rank", "Dense Rank"] + * @uiName Header text color + * @uiWidget color + * @format color */ - "rankType"?: "rowNumber" | "rank" | "denseRank"; + "textColor"?: string; + } + interface SqmProgramExplainerStep { /** - * @uiName Unranked text + * @uiName Background color + * @uiWidget color + * @format color */ - "unrankedText"?: string; - } - interface SqmLinkButton { + "backgroundColor"?: string; /** - * @uiName Button text - * @uiType string + * @uiName Description + * @uiWidget textArea */ - "buttonText"?: string; + "description"?: string; /** - * Enter the URL where you want your participants redirected. Example: https://www.example.com - * @required - * @uiName Link + * @uiName Title */ - "link"?: string; + "header"?: string; /** - * @uiName Open link in new tab + * Full list of valid icon names available in the [Shoelace Icon Library](https://shoelace.style/components/icon). This value is case sensitive. + * @uiName Icon */ - "openInNewTab"?: boolean; - } - interface SqmLogoutCurrentUser { + "icon"?: string; /** - * @required - * @uiName Switch user button link + * Displayed in place of an icon + * @uiName Image URL + * @uiWidget imageUpload + * @format url */ - "demoData"?: DemoData; + "imageUrl"?: string; /** - * @required - * @uiName Error text + * @uiName Text color + * @uiWidget color + * @format color */ - "emailErrorText"?: string; + "textColor"?: string; + } + interface SqmProgramMenu { + } + interface SqmReferralCard { /** - * @required - * @uiName Switch user button label + * @uiName Background color + * @uiWidget color + * @uiType string */ - "switchUserText"?: string; + "backgroundColor"?: string; /** - * @required - * @uiName User identification text + * @uiName Hide border + * @uiType boolean */ - "userIdentificationText"?: string; - } - interface SqmNameFields { + "hideBorder"?: boolean; /** - * @undocumented - * @uiType object + * @uiName Limit width + * @uiType boolean */ - "demoData"?: DemoData; + "limitWidth"?: boolean; /** - * @uiName First name label + * @uiName Bottom padding + * @uiGroup Padding + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] */ - "firstNameLabel"?: string; + "paddingBottom"?: string; /** - * @uiName Last name label + * @uiName Left padding + * @uiGroup Padding + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] */ - "lastNameLabel"?: string; - } - interface SqmNavigationMenu { + "paddingLeft"?: string; /** - * @undocumented - * @uiType object + * @uiName Right padding + * @uiGroup Padding + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] */ - "demoData"?: DemoData; + "paddingRight"?: string; /** - * @uiName Include dropdown menu + * @uiName Top padding + * @uiGroup Padding + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] */ - "includeDropdown"?: boolean; + "paddingTop"?: string; /** - * Label on the header menu - * @uiName Menu label + * @uiName Vertical alignment + * @uiType string + * @uiEnum ["start", "center", "end"] + * @uiEnumNames ["Top", "Center", "Bottom"] */ - "menuLabel"?: string; - } - interface SqmNavigationSidebar { + "verticalAlignment"?: "start" | "center" | "end"; } - interface SqmNavigationSidebarItem { + interface SqmReferralIframe { /** * @undocumented * @uiType object */ - "demoData"?: DemoData; + "demoData"?: DemoData; /** - * Options available at https://shoelace.style/components/icon - * @uiName Icon + * Define the height of the iframe with any valid CSS height value. Example: 100px, 5rem, or auto. + * @uiName IFrame height */ - "icon"?: string; + "iframeHeight"?: string; /** - * @uiName Label + * URL of iframe to display + * @uiName IFrame source + * @required */ - "label"?: string; + "iframeSrc"?: string; /** - * @uiName Navigation path - * @uiWidget pageSelect + * Define the width of the iframe with any valid CSS width value. Example: 100px, 5rem, or auto. + * @uiName IFrame width */ - "path"?: string; + "iframeWidth"?: string; } - interface SqmPasswordField { + interface SqmReferralTable { /** * @undocumented * @uiType object */ - "demoData"?: PasswordFieldViewDemoProps; + "demoData"?: DemoData & { + mockData?: { data: Referral[] }; + }; /** - * Disable live password validation - * @uiName Disable validation + * Provide the column numbers (0 indexed) that should not be displayed in mobile views. Ex. 0,2,3 + * @uiName Hidden mobile columns */ - "disableValidation"?: boolean; + "hiddenColumns"?: string; /** - * @uiName Password requirement failed + * @uiName Hide column labels */ - "doesNotMeetRequirementsText"?: string; + "hideLabels"?: boolean; /** - * Label for password field - * @uiName Password label + * @uiName Tablet breakpoint */ - "fieldLabel"?: string; + "mdBreakpoint"?: number; /** - * @uiName Missing number or symbol text + * @uiName View More button text */ - "hasErrorText"?: string; + "moreLabel"?: string; /** - * @uiName Missing lowercase text + * Number of referrals displayed per page + * @uiName Referrals per page */ - "lowercaseErrorText"?: string; + "perPage"?: number; /** - * @uiName Password requirement met + * @uiName Previous button text */ - "meetsRequirementsText"?: string; + "prevLabel"?: string; /** - * @uiName Minimum length text + * Filters to only show referrals in this program. Will default to filtering by the program context where this table lives. If no program ID is set or provided by context, then shows all referrals from all programs. If program ID is "classic", shows classic-only referrals + * @uiName Program + * @uiWidget programSelector */ - "minErrorText"?: string; + "programId"?: string; /** - * @uiName Missing uppercase text + * Show referred by user in table + * @uiName Show referrer + * @default */ - "uppercaseErrorText"?: string; - } - interface SqmPopupContainer { + "showReferrer"?: boolean; /** - * Display a close button on the popup - * @uiName Show close button + * @uiName Mobile breakpoint */ - "closeButton"?: boolean; + "smBreakpoint"?: number; + } + interface SqmReferralTableCell { + "innerTemplate"?: string; + } + interface SqmReferralTableColumn { /** - * Text inside the close button - * @uiName Close button text + * @uiName Column title */ - "closeButtonText"?: string; + "columnTitle"?: string; + } + interface SqmReferralTableDateCell { + "date"?: number; + "locale"?: string; + } + interface SqmReferralTableDateColumn { /** - * Specify padding on the popup contents when in embedded mode - * @uiName Embed padding - * @uiType string - * @uiEnum ["none", "small", "medium", "large"] - * @uiEnumNames ["None", "Small", "Medium", "Large"] + * @uiName Date column title */ - "embedPadding"?: "none" | "small" | "medium" | "large"; + "columnTitle"?: string; /** - * Specify padding on the popup contents when in popup mode - * @uiName Popup padding + * @uiName Date displayed * @uiType string - * @uiEnum ["none", "small", "medium", "large"] - * @uiEnumNames ["None", "Small", "Medium", "Large"] + * @uiEnum ["dateConverted", "dateReferralStarted", "dateFraudChecksCompleted", "dateModerated", "dateModified", "dateReferralEnded", "dateReferralPaid", "dateUserModified"] + * @uiEnumNames ["Date Converted", "Date Referral Started", "Date Fraud Checks Completed", "Date Moderated", "Date Modified", "Date Referral Ended", "Date Referral Paid", "Date User Modified"] */ - "popupPadding"?: "none" | "small" | "medium" | "large"; + "dateShown"?: ReferralDates; + } + interface SqmReferralTableRewardsCell { + "deniedHelpText"?: string; + "expiringText"?: string; + "fuelTankText"?: string; + "hideDetails"?: boolean; + "locale"?: string; + "pendingForText"?: string; + "rewardReceivedText"?: string; + "rewards"?: Reward[]; + "statusLongText"?: string; + "statusText"?: string; + "taxConnection"?: ImpactConnection; + } + interface SqmReferralTableRewardsColumn { /** - * Show Powered by Impact.com link - * @uiName Show powered by + * @uiName Reward column title */ - "poweredBy"?: boolean; + "columnTitle"?: string; /** - * Text at the bottom of the popup - * @uiName "Powered by" text + * Shown in the dropdown details when a reward was denied. + * @uiName Reward denied help text */ - "poweredByText"?: string; - } - interface SqmPortalChangePassword { + "deniedHelpText"?: string; /** - * Found in modal - * @uiName Cancel button text + * Shown in the dropdown details when a reward has an expiry date. + * @uiName Reward expiring text */ - "cancelText"?: string; - /** - * Found in modal - * @uiName Change password button text + "expiringText"?: string; + /** + * Shown in the dropdown details when a reward has an associated fuel tank code. + * @uiName Fuel tank code text */ - "changePasswordButtonText"?: string; + "fuelTankText"?: string; /** - * Found in modal - * @uiName Confirm password Label + * @uiName Hide dropdown details of reward + * @default */ - "confirmPasswordFieldLabel"?: string; + "hideDetails"?: boolean; /** - * @undocumented - * @uiType object + * Shown in the dropdown details when a reward is pending. + * @uiName Reward pending text */ - "demoData"?: DemoData; + "pendingForText"?: string; /** - * @uiName Password requirement failed + * Shown in the dropdown details when a reward has been received.’ + * @uiName Reward received text */ - "doesNotMeetRequirementsText"?: string; + "rewardReceivedText"?: string; /** - * @uiName Missing number or symbol text + * Additional status text shown in the details drop down. + * @uiName Reward status long text + * @uiWidget textArea */ - "hasErrorText"?: string; + "statusLongText"?: string; /** - * @uiName Invalid user session error message + * Text shown in the reward status badge. + * @uiName Reward status text + * @uiWidget textArea */ - "invalidSessionErrorText"?: string; + "statusText"?: string; + } + interface SqmReferralTableStatusCell { + "converted"?: boolean; + "fraudStatus"?: FraudStatus; + "statusSubText"?: string; + "statusText"?: string; + } + interface SqmReferralTableStatusColumn { /** - * @uiName Missing lowercase text + * @uiName Column title */ - "lowercaseErrorText"?: string; + "columnTitle"?: string; /** - * @uiName Password requirement met + * @uiName Converted status text */ - "meetsRequirementsText"?: string; + "convertedStatusText"?: string; /** - * @uiName Minimum length text + * @uiName Denied status sub-text */ - "minErrorText"?: string; + "deniedStatusSubText"?: string; /** - * @uiName Change password modal header + * @uiName Denied status text */ - "modalChangePasswordHeader"?: string; + "deniedStatusText"?: string; /** - * @uiName Passwords don’t match error message + * @uiName In progress status text */ - "nonMatchingPasswordErrorText"?: string; + "inProgressStatusText"?: string; /** - * Found in modal - * @uiName New password field label + * @uiName Pending review status sub-text */ - "passwordFieldLabel"?: string; + "pendingReviewStatusSubText"?: string; /** - * @uiName Change password button text + * @uiName Pending review status text */ - "portalChangePasswordButtonText"?: string; + "pendingReviewStatusText"?: string; + } + interface SqmReferralTableUserCell { + "name"?: string; + } + interface SqmReferralTableUserColumn { /** - * Portal change password section header - * @uiName Change password header + * Name displayed for unknown users + * @uiName Anonymous user text */ - "portalChangePasswordHeader"?: string; + "anonymousUser"?: string; /** - * Successful password change message - * @uiName Successful password change message - * @uiWidget textArea + * @uiName User column title */ - "successMessage"?: string; + "columnTitle"?: string; /** - * @uiName Missing uppercase text + * Name displayed for deleted users + * @uiName Deleted user text */ - "uppercaseErrorText"?: string; + "deletedUser"?: string; } - interface SqmPortalContainer { + interface SqmReferredRegistration { /** * @uiName Background color * @uiWidget color @@ -4807,1956 +8456,2012 @@ declare namespace LocalJSX { */ "backgroundColor"?: string; /** - * @uiName Center content + * @undocumented + * @uiType object */ - "center"?: boolean; + "demoData"?: DemoData; /** - * @uiName Direction - * @uiType string - * @uiEnum ["row", "column"] - * @uiEnumNames ["Row", "Column"] + * @uiName Email field label */ - "direction"?: "row" | "column"; + "emailLabel"?: string; /** - * @uiName Display - * @uiType string - * @uiEnum ["grid", "flex"] - * @uiEnumNames ["Grid", "Flex"] + * @uiName First name field label */ - "display"?: "grid" | "flex"; + "firstNameLabel"?: string; /** - * @uiName Gap - * @uiType string - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * Display this message when there is suspected fraud. + * @uiName Fraud error message + * @uiWidget textArea + * @uiGroup Error messages */ - "gap"?: Spacing; + "fraudErrorMessage"?: string; /** - * Define how this container distributes its contents along the main-axis. - * @uiName Justify content - * @uiType string - * @uiEnum ["start", "center", "end", "space-between", "space-around", "space-evenly"] - * @uiEnumNames ["Start", "Center", "End", "Space Between", "Space Around", "Space Evenly"] + * Display this message when there is suspected fraud. + * @uiName Fraud error message title + * @uiWidget textArea + * @uiGroup Error messages */ - "justifyContent"?: | "start" - | "center" - | "end" - | "space-between" - | "space-around" - | "space-evenly"; + "fraudErrorMessageTitle"?: string; /** - * @uiName Maximum width + * @uiName Hide border + * @uiGroup Card style */ - "maxWidth"?: string; + "hideBorder"?: boolean; /** - * @uiName Minimum width + * @undocumented + * @uiType boolean */ - "minWidth"?: string; + "includeCookies"?: boolean; /** - * @uiName Padding - * @uiType string - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * Require your participants to enter their first and last name. + * @uiName Include name fields */ - "padding"?: Spacing; - } - interface SqmPortalEmailVerification { + "includeName"?: boolean; /** - * @undocumented - * @uiType object + * Display this message when the given email is invalid. + * @uiName Invalid email message + * @uiWidget textArea + * @uiGroup Error messages */ - "demoData"?: DemoData; + "invalidEmailErrorMessage"?: string; /** - * @uiName Email verification header text + * @uiName Last name field label */ - "emailVerificationHeader"?: string; + "lastNameLabel"?: string; /** - * @uiName Network error message Displayed when your verification email fails to send due to a network error. The participant can try refreshing the page. + * Display this message when the form submission unexpectedly fails. + * @uiName Network error message + * @uiWidget textArea + * @uiGroup Error messages */ "networkErrorMessage"?: string; /** - * Redirect participants to this page from their verification email. - * @uiName Email redirect - * @uiWidget pageSelect + * @uiName Bottom padding + * @uiGroup Card style + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] */ - "redirectPath"?: string; + "paddingBottom"?: string; /** - * @uiName Re-send email button text + * @uiName Left padding + * @uiGroup Card style + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] */ - "resendEmailButtonText"?: string; + "paddingLeft"?: string; /** - * @uiName Email verification checking text - * @uiWidget textArea + * @uiName Right padding + * @uiGroup Card style + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] */ - "verificationLoadingMessage"?: string; + "paddingRight"?: string; /** - * @uiName Email verification resent text - * @uiWidget textArea + * @uiName Top padding + * @uiGroup Card style + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] */ - "verificationResentMessage"?: string; + "paddingTop"?: string; /** - * @uiName Email verification status text - * @uiWidget textArea + * @uiName Register button text */ - "verificationStatusMessage"?: string; + "registerLabel"?: string; /** - * @uiName Email verification body text + * Display this message when a required field has not been filled out. + * @uiName Required field message * @uiWidget textArea + * @uiGroup Error messages */ - "verifyMessage"?: string; + "requiredFieldErrorMessage"?: string; } - interface SqmPortalFooter { + interface SqmRewardExchangeList { /** - * @uiName FAQ link + * @uiName Back button text */ - "faqLink"?: string; + "backText"?: string; /** - * @uiName FAQ text + * @uiName Cancel button text */ - "faqText"?: string; + "cancelText"?: string; /** - * @uiName Hide powered by Impact.com + * @uiName Choose amount progress title */ - "hidePoweredBy"?: boolean; + "chooseAmountTitle"?: string; /** - * @uiName Hide support message + * @uiName Choose reward progress title */ - "hideSupportText"?: boolean; + "chooseRewardTitle"?: string; /** - * @uiName Bottom padding - * @uiGroup Padding - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * @uiName Confirmation progress title */ - "paddingBottom"?: string; + "confirmationTitle"?: string; /** - * @uiName Left padding - * @uiGroup Padding - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * @uiName Continue button text */ - "paddingLeft"?: string; + "continueText"?: string; + /** + * Displayed on the reward selection page. + * @uiName Continue to confirmation button text + */ + "continueToConfirmationText"?: string; /** - * @uiName Right padding - * @uiGroup Padding - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * Shown in the confirmation state. + * @uiName Cost row title */ - "paddingRight"?: string; + "costTitle"?: string; /** - * @uiName Top padding - * @uiGroup Padding - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * @undocumented + * @uiType object */ - "paddingTop"?: string; + "demoData"?: DemoData; /** - * @uiName Powered By link + * @uiName Done text */ - "poweredByLink"?: string; + "doneText"?: string; /** - * @uiName Support email + * Error message shown when reward is not available + * @uiName Not available error + * @uiWidget textArea */ - "supportEmail"?: string; + "notAvailableError"?: string; /** - * @uiName Support message + * @uiName Not enough error message * @uiWidget textArea */ - "supportText"?: string; + "notEnoughError"?: string; /** - * @uiName Terms and conditions link + * @uiName Promo code text */ - "termsLink"?: string; + "promoCode"?: string; /** - * @uiName Terms and conditions text + * Shown if an error occurs when loading the reward exchange. + * @uiName Reward list error message + * @uiWidget textArea */ - "termsText"?: string; - } - interface SqmPortalForgotPassword { + "queryError"?: string; /** - * @undocumented - * @uiType object + * @uiName Redeem button text */ - "demoData"?: DemoData; + "redeemText"?: string; /** - * @uiName Email field label + * Displayed as the header for the confirmation page. + * @uiName Confirmation title text */ - "emailLabel"?: string; + "redeemTitle"?: string; /** - * @uiName Header text + * Shown if an error occurs during the reward exchange. + * @uiName Redemption error message * @uiWidget textArea */ - "headerText"?: string; + "redemptionError"?: string; /** - * @uiName Login redirect path - * @uiWidget pageSelect + * Displayed on the success screen when a user successfully exchanges for a reward. + * @uiName Redemption success message + * @uiWidget textArea */ - "loginPath"?: string; + "redemptionSuccessText"?: string; /** - * @uiName Sign in link text + * Shown in the confirmation state. + * @uiName Reward amount row title */ - "loginText"?: string; + "rewardAmountTitle"?: string; /** - * @uiName Network error message Displayed when the forgot password action fails due to a network error. The participant can try refreshing the page. + * Shown in the confirmation state. + * @uiName Reward row title */ - "networkErrorMessage"?: string; + "rewardNameTitle"?: string; /** - * Redirect participants to this page after they verify their email. - * @uiName Email redirect - * @uiWidget pageSelect + * @uiName Reward redeemed text */ - "redirectPath"?: string; + "rewardRedeemedText"?: string; /** - * @uiName Password reset button text + * @uiName Reward title text */ - "submitLabel"?: string; + "rewardTitle"?: string; /** - * @uiName Email verification sent text + * @uiName Select amount text + * @uiWidget textArea */ - "successAlertText"?: string; - } - interface SqmPortalFrame { + "selectText"?: string; /** - * @undocumented - * @uiType object + * Set the number of placeholder cards to be shown in loading state. + * @uiName Loading cards */ - "demoData"?: DemoData; + "skeletonCardNum"?: number; /** - * @undocumented + * Displayed on the reward exchange cards. + * @uiName Reward exchange amount text + * @uiWidget textArea */ - "notFullScreen"?: boolean; + "sourceAmountMessage"?: string; + /** + * Shown when a user copies a fuel tank code + * @uiName Tooltip text + */ + "tooltipText"?: string; } - interface SqmPortalLogin { + interface SqmRewardsTable { /** * @undocumented * @uiType object */ - "demoData"?: DemoData; + "demoData"?: DemoData & { + mockData?: { data: Referral[] }; + }; /** - * @uiName Email field label + * Provide the column numbers (0 indexed) that should not be displayed in mobile views. Ex. 0,2,3 + * @uiName Mobile hidden columns */ - "emailLabel"?: string; + "hiddenColumns"?: string; /** - * @uiName Forgot password text + * @uiName Hide column labels */ - "forgotPasswordLabel"?: string; + "hideLabels"?: boolean; /** - * Redirect participants to this page to reset their password - * @uiName Forgot password redirect - * @uiWidget pageSelect + * @uiName Tablet breakpoint */ - "forgotPasswordPath"?: string; + "mdBreakpoint"?: number; /** - * @uiName Network error message Displayed when the login fails due to a network error. The participant can try refreshing the page. + * @uiName View more button text */ - "networkErrorMessage"?: string; + "moreLabel"?: string; /** - * Redirect participants to this page after they successfully login. - * @uiName Login redirect - * @uiWidget pageSelect + * @uiName Rewards per page */ - "nextPage"?: string; + "perPage"?: number; /** - * @uiName Heading label - * @uiWidget textArea + * @uiName Previous button text */ - "pageLabel"?: string; + "prevLabel"?: string; /** - * @uiName Password field label + * Filters to only show rewards in this program. Will default to filtering by the program context where this table lives. If no program ID is set or provided by context, then shows all rewards from all programs. + * @uiName Program + * @uiWidget programSelector */ - "passwordLabel"?: string; + "programId"?: string; /** - * @uiName Register button text + * @uiName Mobile breakpoint */ - "registerLabel"?: string; + "smBreakpoint"?: number; + } + interface SqmRewardsTableCustomerNoteCell { + "locale"?: string; + "note"?: string; + } + interface SqmRewardsTableCustomerNoteColumn { /** - * Redirect participants to this page to start registration. - * @uiName Register button redirect - * @uiWidget pageSelect + * @uiName Column title */ - "registerPath"?: string; + "columnTitle"?: string; + } + interface SqmRewardsTableDateCell { + "date"?: number; + "locale"?: string; + } + interface SqmRewardsTableDateColumn { /** - * @uiName Submit button text + * @uiName Date column title */ - "submitLabel"?: string; - } - interface SqmPortalLogout { + "columnTitle"?: string; /** - * Redirect participants to this page when they log out. - * @uiName Logout redirect path - * @uiWidget pageSelect + * @uiName Date displayed + * @uiType string + * @uiEnum ["dateGiven", "dateExpires", "dateCancelled", "dateRedeemed", "dateScheduledFor"] + * @uiEnumNames ["Date Given", "Date Expires", "Date Cancelled", "Date Redeemed", "Date Scheduled For"] */ - "nextPage"?: string; + "dateShown"?: string; } - interface SqmPortalProfile { + interface SqmRewardsTableRewardCell { + "availableText"?: string; + "copyText"?: string; + "locale"?: string; + "redeemedText"?: string; + "reward"?: Reward; + } + interface SqmRewardsTableRewardColumn { /** - * @uiName Country field label + * @uiName Remaining amount text */ - "countrytext"?: string; + "availableText"?: string; /** - * @undocumented - * @uiType object + * @uiName Reward column title */ - "demoData"?: DemoData; + "columnTitle"?: string; /** - * @uiName Edit profile header + * @uiName Copied fuel tank text */ - "editProfileHeader"?: string; + "copyText"?: string; /** - * @uiName Edit profile sub header + * @uiName Redeemed amount text */ - "editProfileSubHeader"?: string; + "redeemedText"?: string; + } + interface SqmRewardsTableSourceCell { + "anonymousUserText"?: string; + "deletedUserText"?: string; + "locale"?: string; + "referralText"?: string; + "reward"?: Reward; + "rewardExchangeText"?: string; + "rewardSourceText"?: string; + } + interface SqmRewardsTableSourceColumn { /** - * @uiName Email field label + * Name displayed for unknown users + * @uiName Anonymous user text */ - "emailtext"?: string; + "anonymousUser"?: string; /** - * @uiName Field empty text + * @uiName Soruce column title */ - "fieldEmptyText"?: string; + "columnTitle"?: string; /** - * @uiName First name label + * Name displayed for deleted users + * @uiName Deleted user text */ - "firstnametext"?: string; + "deletedUser"?: string; /** - * @uiName Form error message + * Shown when a reward has been created by a referral + * @uiName Referral text + * @uiWidget textArea */ - "formErrorText"?: string; + "referralText"?: string; /** - * @uiName Hide country field + * @uiName Reward exchange label */ - "hideCountry"?: boolean; + "rewardExchangeText"?: string; /** - * @uiName Last name field label + * Shown when a reward has been created by a source other than a referral. + * @uiName Reward source text + * @uiWidget textArea */ - "lastnametext"?: string; + "rewardSourceText"?: string; + } + interface SqmRewardsTableStatusCell { + "deniedText"?: string; + "expiryText"?: string; + "locale"?: string; + "payoutApproved"?: string; + "payoutCancelled"?: string; + "payoutFailed"?: string; + "pendingNewTaxForm"?: string; + "pendingPartnerCreation"?: string; + "pendingReviewText"?: string; + "pendingScheduled"?: string; + "pendingTaxReview"?: string; + "pendingTaxSubmission"?: string; + "pendingUnhandled"?: string; + "pendingUsTax"?: string; + "reward"?: Reward; + "statusText"?: string; + "taxConnection"?: ImpactConnection; + } + interface SqmRewardsTableStatusColumn { /** - * @uiName Network request error message Displayed when the page fails to load due to a network error. The participant can try refreshing the page. + * @uiName Column title */ - "networkRequestMessage"?: string; + "columnTitle"?: string; /** - * @uiName Submission success text + * Displayed when denied for fraud. + * @uiName Denied text */ - "submissionSuccessText"?: string; + "deniedText"?: string; /** - * @uiName Submit changes button text + * Text shown before the date of an expiring reward. + * @uiName Expiry date prefix */ - "submitChangeButtonText"?: string; - } - interface SqmPortalProtectedRoute { + "expiryText"?: string; /** - * Redirect participants to this page they are not logged in. - * @uiName Unauthenticated participant redirect + * Displayed when reward payout is approved (based on Impact cash payout configuration). + * @uiName Payout approved text */ - "redirectTo"?: string; + "payoutApproved"?: string; /** - * Redirect participants to this page when email verification is required but they have not verified their email. - * @uiName Unverified participant redirect + * Displayed when reward payout was reversed (based on Impact cash payout configuration). + * @uiName Payout cancelled text */ - "redirectToUnverified"?: string; + "payoutCancelled"?: string; /** - * @uiName Require email verification + * Displayed when reward payout has failed (based on Impact cash payout configuration). + * @uiName Payout failed text */ - "requireEmailVerification"?: boolean; - } - interface SqmPortalRegister { + "payoutFailed"?: string; /** - * @uiName Show confirm password field + * Displayed when pending due to requiring a new tax document + * @uiName Pending new tax form text */ - "confirmPassword"?: boolean; + "pendingNewTaxForm"?: string; /** - * @uiName Confirm password field label + * Displayed when pending due to need to connect to an Impact partner + * @uiName Pending partner creation text */ - "confirmPasswordLabel"?: string; + "pendingPartnerCreation"?: string; /** - * @undocumented - * @uiType object + * Displayed when flagged for fraud. + * @uiName Pending review text */ - "demoData"?: DemoData; + "pendingReviewText"?: string; /** - * @uiName Disable password validation + * Text shown before the available date of a pending reward. + * @uiName Pending date prefix */ - "disablePasswordValidation"?: boolean; + "pendingScheduled"?: string; /** - * @uiName Password requirement failed + * Displayed when pending due to tax document review. + * @uiName Pending tax review text */ - "doesNotMeetRequirementsText"?: string; + "pendingTaxReview"?: string; /** - * @uiName Email field label + * Displayed when pending due to lack of tax document submission. + * @uiName Pending tax submission text */ - "emailLabel"?: string; + "pendingTaxSubmission"?: string; /** - * @uiName Missing number or symbol text + * Displayed when fulfillment error occured when creating a reward. + * @uiName Unhandled error text */ - "hasErrorText"?: string; + "pendingUnhandled"?: string; /** - * Hides the email and password fields. Note: If you hide default inputs, you must add additional input fields. They must have the input name attributes "email" and "password" for this form to succeed. - * @uiName Hide default fields + * Displayed when a reward is pending due to W9 compliance. + * @uiName W9 pending text */ - "hideInputs"?: boolean; + "pendingUsTax"?: string; /** - * The message to be displayed when the email used is invalid or blocked. - * @uiName Invalid email message + * @uiName Reward status text * @uiWidget textArea */ - "invalidEmailErrorMessage"?: string; - /** - * @uiName Login button text - */ - "loginLabel"?: string; + "statusText"?: string; + } + interface SqmRoute { /** - * Redirect participants to this page after clicking the login button. - * @uiName Login redirect - * @uiWidget pageSelect + * Page Path URL for this route. + * @uiName Navigation path name */ - "loginPath"?: string; + "path"?: string; + } + interface SqmRouter { + } + interface SqmScroll { /** - * @uiName Missing lowercase text + * @uiName Button text */ - "lowercaseErrorText"?: string; + "buttonText"?: string; /** - * @uiName Password requirement met + * @uiName Button type + * @uiType string + * @uiEnum ["default", "primary", "success", "neutral", "warning", "danger", "text"] + * @uiEnumNames ["Default", "Primary", "Success", "Neutral", "Warning", "Danger", "Text"] */ - "meetsRequirementsText"?: string; + "buttonType"?: | "default" + | "primary" + | "success" + | "neutral" + | "warning" + | "danger" + | "text"; /** - * @uiName Minimum length text + * Draws a circle button. + * @uiName Circle */ - "minErrorText"?: string; + "circle"?: boolean; /** - * The message to be displayed when a the form submission fails unexpectedly. - * @uiName Network error message - * @uiWidget textArea + * Full list of valid icon names available in the [Shoelace Icon Library](https://shoelace.style/components/icon). This value is case sensitive. + * @uiName Icon */ - "networkErrorMessage"?: string; + "iconName"?: string; /** - * Redirect participants to this page from their verification email - * @uiName Registration redirect - * @uiWidget pageSelect + * @uiName Icon slot + * @uiType string + * @uiEnum ["prefix", "suffix"] + * @uiEnumNames ["Prefix", "Suffix"] */ - "nextPage"?: string; + "iconSlot"?: string; /** - * @uiName Header text + * The button becomes full width if the screen size is smaller than 500px + * @uiName Full width on mobile */ - "pageLabel"?: string; + "mobile"?: boolean; /** - * @uiName Password field label + * Draws an outlined button. + * @uiName Outline */ - "passwordLabel"?: string; + "outline"?: boolean; /** - * The message to be displayed when password inputs do not match. - * @uiName Password mismatch message - * @uiWidget textArea + * Draws a pill-style button with rounded edges. + * @uiName Pill */ - "passwordMismatchErrorMessage"?: string; + "pill"?: boolean; /** - * The page that participants are redirected to from the verification email. - * @uiName Email verification redirect - * @uiWidget pageSelect + * @uiName Scroll animation style + * @uiType string + * @uiEnum ["smooth", "auto"] + * @uiEnumNames ["Smooth", "Auto"] */ - "redirectPath"?: string; + "scrollAnimation"?: "smooth" | "auto"; /** - * The message to be displayed when a required field is not filled. - * @uiName Required field message - * @uiWidget textArea + * ID applied to the HTML tag you would like to scroll to. E.g tab-1 + * @uiName Scroll ID */ - "requiredFieldErrorMessage"?: string; + "scrollId"?: string; /** - * @uiName Submit button text + * The name of the HTML tag you would like to scroll to. E.g referral-table + * @uiName Scroll tag name */ - "submitLabel"?: string; + "scrollTagName"?: string; /** - * @uiName Missing uppercase text + * @uiName Size + * @uiType string + * @uiEnum ["small", "medium", "large"] + * @uiEnumNames ["Small", "Medium", "Large"] */ - "uppercaseErrorText"?: string; + "size"?: string; } - interface SqmPortalRegistrationForm { + interface SqmShareButton { /** - * @uiName Show confirm password field + * @uiName Button background color + * @uiWidget color + * @format color */ - "confirmPassword"?: boolean; + "backgroundcolor"?: string; /** - * @uiName Confirm password field label + * Configure border radius with pixel amount + * @uiName Border radius */ - "confirmPasswordLabel"?: string; + "borderradius"?: number; /** * @undocumented * @uiType object */ - "demoData"?: DemoData; - /** - * @uiName Disable password validation - */ - "disablePasswordValidation"?: boolean; - /** - * @uiName Password requirement failed - */ - "doesNotMeetRequirementsText"?: string; + "demoData"?: DemoData; /** - * @uiName Email field label + * @uiName Disabled */ - "emailLabel"?: string; + "disabled"?: boolean; /** - * The message to be displayed when the registration form is disabled. - * @uiName Form disabled message - * @uiWidget textArea + * @uiName Hide icon + * @default */ - "formDisabledErrorMessage"?: string; + "hideicon"?: boolean; /** - * The key of the registration form used for this microsite. - * @uiName Form key - * @required + * @uiName Hide text + * @default */ - "formKey"?: string; + "hidetext"?: boolean; /** - * @uiName Missing number or symbol text + * Options available at https://shoelace.style/components/icon Icon used in button. Will try to select an icon based on the share medium if left empty. + * @uiName Icon */ - "hasErrorText"?: string; + "icon"?: string; /** - * Hides the email and password fields. Note: If you hide default inputs, you must add additional input fields. They must have the input name attributes "email" and "password" for this form to succeed. - * @uiName Hide default fields + * @uiName Icon location + * @uiType string + * @uiEnum ["prefix", "suffix" ] + * @uiEnumNames ["Prefix", "Suffix"] */ - "hideInputs"?: boolean; + "iconslot"?: "prefix" | "suffix"; /** - * The message to be displayed when the email used is invalid or blocked. - * @uiName Invalid email message - * @uiWidget textArea + * The social medium to share on. Share messages and links will be pulled from your program config and tagged for analytics. + * @uiName Share medium + * @uiType string + * @required + * @uiEnum ["facebook", "twitter", "email", "direct", "linkedin", "sms", "fbmessenger", "whatsapp", "linemessenger", "pinterest" ] + * @uiEnumNames ["Facebook", "Twitter", "Email", "Web Share Sheet", "Linkedin", "SMS", "Facebook Messenger", "Whatsapp", "Line Messenger", "Pinterest"] */ - "invalidEmailErrorMessage"?: string; + "medium"?: | "facebook" + | "twitter" + | "email" + | "direct" + | "linkedin" + | "sms" + | "fbmessenger" + | "whatsapp" + | "linemessenger" + | "pinterest" + | "reminder" + | "unknown"; /** - * @uiName Login button text + * @uiName Display pill */ - "loginLabel"?: string; - /** - * Redirect participants to this page after clicking the login button. - * @uiName Login redirect - * @uiWidget pageSelect + "pill"?: boolean; + /** + * Optional programId, or uses the programId context where this button is rendered. + * @uiName Program ID + * @uiWidget programSelector */ - "loginPath"?: string; + "programId"?: string; /** - * @uiName Missing lowercase text + * Text used for native sharing (mobile only) + * @uiName Share text */ - "lowercaseErrorText"?: string; + "sharetext"?: string; /** - * @uiName Password requirement met + * Title used for native sharing (mobile only) + * @uiName Share title */ - "meetsRequirementsText"?: string; + "sharetitle"?: string; /** - * @uiName Minimum length text + * @uiName Button size + * @uiType string + * @uiEnum ["small", "medium", "large" ] + * @uiEnumNames ["Small", "Medium", "Large"] */ - "minErrorText"?: string; + "size"?: "small" | "medium" | "large"; /** - * The message to be displayed when a the form submission fails unexpectedly. - * @uiName Network error message - * @uiWidget textArea + * @uiName Button text color + * @uiWidget color + * @format color */ - "networkErrorMessage"?: string; + "textcolor"?: string; /** - * Redirect participants to this page after they successfully register. - * @uiName Registration redirect - * @uiWidget pageSelect + * @uiType string + * @uiName Button style + * @uiEnum ["primary" , "success", "info", "warning", "danger", "default", "text" ] + * @uiEnumNames ["Primary", "Success", "Info", "Warning", "Danger", "Default", "Text"] */ - "nextPage"?: string; + "type"?: | "primary" + | "success" + | "info" + | "warning" + | "danger" + | "default" + | "text"; /** - * @uiName Header text + * Alert text shown if the share link is undefined + * @uiName Undefined link text */ - "pageLabel"?: string; + "undefinedLinkText"?: string; /** - * @uiName Password field label + * Alert text shown if the user's device does not support native sharing + * @uiName Unsupported platform text */ - "passwordLabel"?: string; + "unsupportedPlatformText"?: string; + } + interface SqmShareCode { /** - * The message to be displayed when password inputs do not match. - * @uiName Password mismatch message - * @uiWidget textArea + * Set the copy button style and placement + * @uiName Style + * @uiType string + * @uiEnum ["icon", "button-outside", "button-below"] + * @uiEnumNames ["Icon", "Button outside", "Button below"] */ - "passwordMismatchErrorMessage"?: string; + "buttonStyle"?: "icon" | "button-outside" | "button-below"; /** - * Redirect participants to this page from their verification email - * @uiName Email verification redirect - * @uiWidget pageSelect + * @uiName Copy button label */ - "redirectPath"?: string; + "copyButtonLabel"?: string; /** - * The message to be displayed when a required field is not filled. - * @uiName Required field message - * @uiWidget textArea + * @undocumented + * @uiType object */ - "requiredFieldErrorMessage"?: string; + "demoData"?: DemoData; /** - * @uiName Submit button text + * The ID of the program that should generate the code. Defaults to the program ID in context where this widget is loaded. + * @uiName Program ID + * @uiWidget programSelector */ - "submitLabel"?: string; + "programId"?: string; /** - * @uiName Missing uppercase text + * Change the text alignment + * @uiName Share code alignment + * @uiType string + * @uiEnum ["left", "center", "right"] + * @uiEnumNames ["Left", "Center", "Right"] */ - "uppercaseErrorText"?: string; - } - interface SqmPortalResetPassword { + "textAlign"?: "left" | "center" | "right"; /** - * @uiName Reset code invalid error message + * The number of milliseconds that the tooltip appears for + * @uiName Tooltip lifespan */ - "codeInvalidText"?: string; + "tooltiplifespan"?: number; /** - * @uiName Show confirm password field + * Shown inside a tooltip after someone has successfully copied the link to their clipboard + * @uiName Tooltip text */ - "confirmPassword"?: boolean; + "tooltiptext"?: string; + } + interface SqmShareLink { /** - * @uiName Password confirmation field label + * Set the copy button style and placement + * @uiName Style + * @uiType string + * @uiEnum ["icon", "button-outside", "button-below"] + * @uiEnumNames ["Icon", "Button outside", "Button below"] */ - "confirmPasswordFieldLabel"?: string; + "buttonStyle"?: "icon" | "button-outside" | "button-below"; /** - * Button text displayed after a successful password reset. - * @uiName Continue button text + * @uiName Copy button label */ - "continueButtonText"?: string; + "copyButtonLabel"?: string; /** * @undocumented * @uiType object */ - "demoData"?: DemoData; - /** - * @uiName Password requirement failed - */ - "doesNotMeetRequirementsText"?: string; + "demoData"?: DemoData; /** - * Redirect participants to this page if password reset fails due to an outdated reset attempt. - * @uiName Failed reset redirect - * @uiWidget pageSelect + * The ID of the program that should generate the link. Defaults to the program ID in context where this widget is loaded. + * @uiName Program ID + * @uiWidget programSelector */ - "failedPage"?: string; + "programId"?: string; /** - * @uiName Missing number or symbol text + * Change the text alignment + * @uiName Share link alignment + * @uiType string + * @uiEnum ["left", "center", "right"] + * @uiEnumNames ["Left", "Center", "Right"] */ - "hasErrorText"?: string; + "textAlign"?: "left" | "center" | "right"; /** - * @uiName Missing lowercase text + * The number of milliseconds that the tooltip appears for + * @uiName Tooltip lifespan */ - "lowercaseErrorText"?: string; + "tooltiplifespan"?: number; /** - * @uiName Password requirement met + * Shown inside a tooltip after someone has successfully copied the link to their clipboard + * @uiName Tooltip text */ - "meetsRequirementsText"?: string; + "tooltiptext"?: string; + } + interface SqmStatContainer { /** - * @uiName Minimum length text + * @uiName Display + * @uiType string + * @uiEnum ["grid", "flex"] + * @uiEnumNames ["Grid", "Flex"] */ - "minErrorText"?: string; + "display"?: "grid" | "flex"; /** - * @uiName Network error message Displayed when the password reset fails due to a network error. The participant can try refreshing the page. + * @uiName Space between stats + * @uiType string + * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] + * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] */ - "networkErrorMessage"?: string; + "space"?: Spacing; + } + interface SqmStencilbook { + } + interface SqmTab { /** - * Redirect participants to this page when they successfully reset their password. - * @uiName Successful reset redirect - * @uiWidget pageSelect + * @uiName Tab title */ - "nextPage"?: string; + "header"?: string; + } + interface SqmTableCell { /** - * @uiName Password field label + * @uiName Column span */ - "passwordFieldLabel"?: string; + "colspan"?: number; /** - * @uiName Passwords don’t match error message Please make sure your passwords match + * @uiName Padding */ - "passwordMismatchText"?: string; + "padding"?: string; + } + interface SqmTableRow { /** - * Displayed after a successful password reset. - * @uiName Successful password reset text - * @uiWidget textArea + * @uiName Border */ - "passwordResetHeader"?: string; + "border"?: string; + } + interface SqmTabs { /** - * @uiName Password reset button text + * Used to specify the placement of the tabs + * @uiName Tabs placement + * @uiType string + * @uiEnum ["left", "right", "bottom", "top"] + * @uiEnumNames ["Left", "Right", "Bottom", "Top"] */ - "resetPasswordButtonText"?: string; + "placement"?: "left" | "right" | "bottom" | "top"; + } + interface SqmTaskCard { /** - * @uiName Reset password header text + * @uiName Button link + * @uiGroup Button */ - "resetPasswordHeader"?: string; + "buttonLink"?: string; /** - * @uiName Reset success text + * @uiName Button text + * @uiGroup Button */ - "resetSuccessText"?: string; + "buttonText"?: string; /** - * @uiName Missing uppercase text + * @uiName Title + * @uiGroup Task */ - "uppercaseErrorText"?: string; - } - interface SqmPortalVerifyEmail { + "cardTitle"?: string; /** - * @uiName Continue text + * Displays the amount of times that a user has completed a repeatable task. + * @uiName Completed count text + * @uiGroup Task + * @uiWidget textArea */ - "continueText"?: string; + "completedText"?: string; /** * @undocumented * @uiType object */ - "demoData"?: DemoData; - /** - * Redirect participants to this page if verification fails due to an outdated verification attempt. - * @uiName Failed verification redirect - * @uiWidget pageSelect - */ - "failedPage"?: string; - /** - * @uiName Network error message Displayed when the email verification fails due to a network error. The participant can try refreshing the page. - */ - "networkErrorMessage"?: string; + "demoData"?: DemoData; /** - * Redirect participants to this page when they successfully verify their email. - * @uiName Successful verification redirect - * @uiWidget pageSelect + * @uiName Description + * @uiGroup Task */ - "nextPage"?: string; + "description"?: string; /** - * @uiName Verify email text - * @uiWidget textArea + * Task cards are hidden from users outside of the duration. They are always displayed if no duration is configured. + * @uiName Display duration + * @uiWidget dateRange + * @uiWidgetOptions {"allowPastDates":true, "months": 1} + * @uiGroup Task */ - "verifyEmailText"?: string; + "displayDuration"?: string; /** - * @uiName Email verification invalid text - * @uiWidget textArea + * Shown to users after the end of the task duration. + * @uiName Ended date message + * @uiGroup Task */ - "verifyInvalidText"?: string; + "endedMessage"?: string; /** - * @uiName Email verification success text - * @uiWidget textArea + * Optionally send an event to SaaSquatch when a user clicks the button. Enter your event key into this field. + * @uiName Task card button event key + * @uiGroup Button */ - "verifySuccessText"?: string; - } - interface SqmProgramExplainer { + "eventKey"?: string; /** - * @uiName Header background color - * @uiWidget color - * @format color + * Displayed when a user views a task card after the reward duration interval. + * @uiName Expiry date message + * @uiGroup Task */ - "backgroundColor"?: string; + "expiryMessage"?: string; /** - * @uiName Header text + * The number of times a task can be completed when repeatable. Use zero for no limit (the default). + * @uiName Repeat amount + * @uiGroup Reward */ - "header"?: string; + "finite"?: number; /** - * @uiName Header text color - * @uiWidget color - * @format color + * Sets the goal for users progress to know when a task has been completed. If repeatable is checked, repeatable goals is an increment of this. + * @uiName Goal completion number + * @uiGroup Goal */ - "textColor"?: string; - } - interface SqmProgramExplainerStep { + "goal"?: number; /** - * @uiName Background color - * @uiWidget color - * @format color + * @uiName Hide CTA button + * @uiGroup Button */ - "backgroundColor"?: string; + "hideButton"?: boolean; /** - * @uiName Description - * @uiWidget textArea + * Button link opens in new tab + * @uiName Open in new tab + * @uiGroup Button + * @default */ - "description"?: string; + "openNewTab"?: boolean; /** - * @uiName Title + * The ID of the program that is used to scope the task card. When no ID is specified, it defaults to the program context in which the component is rendered. + * @uiName Program ID override + * @uiWidget programSelector + * @uiGroup Goal */ - "header"?: string; + "programId"?: string; /** - * Full list of valid icon names available in the [Shoelace Icon Library](https://shoelace.style/components/icon). This value is case sensitive. - * @uiName Icon + * The unit displayed to the right of steps and progress numbers on the progress bar. Ex: $ for dollars + * @uiName Progress bar unit + * @uiGroup Goal */ - "icon"?: string; + "progressBarUnit"?: string; /** - * Displayed in place of an icon - * @uiName Image URL - * @uiWidget imageUpload - * @format url + * @uiName Goal repeatable + * @uiGroup Goal + * @default */ - "imageUrl"?: string; + "repeatable"?: boolean; /** - * @uiName Text color - * @uiWidget color - * @format color + * @uiName Reward amount + * @uiGroup Reward */ - "textColor"?: string; - } - interface SqmProgramMenu { - } - interface SqmReferralCard { + "rewardAmount"?: string; /** - * @uiName Background color - * @uiWidget color - * @uiType string + * Task cards are disabled to users outside of the duration. They are not disabled if no duration is configured. + * @uiName Reward duration + * @uiWidget dateRange + * @uiWidgetOptions {"allowPastDates":true, "months": 1} + * @uiGroup Reward */ - "backgroundColor"?: string; + "rewardDuration"?: string; /** - * @uiName Hide border - * @uiType boolean + * @uiName Reward unit + * @uiGroup Reward */ - "hideBorder"?: boolean; + "rewardUnit"?: string; /** - * @uiName Limit width - * @uiType boolean + * @uiName Show progress bar + * @uiGroup Goal + * @default */ - "limitWidth"?: boolean; + "showProgressBar"?: boolean; /** - * @uiName Bottom padding - * @uiGroup Padding - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * Shown to users before the start of the task duration. + * @uiName Start date message + * @uiGroup Task */ - "paddingBottom"?: string; + "startsOnMessage"?: string; /** - * @uiName Left padding - * @uiGroup Padding - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * Select what type of stat to display for the goal. Manual paths are also supported. + * @uiName Goal progress source + * @required + * @minLength 1 + * @uiWidget statTypeSelectWidget + * @uiWidgetOptions {"version": 1.1} + * @uiGroup Goal */ - "paddingLeft"?: string; + "statType"?: string; /** - * @uiName Right padding - * @uiGroup Padding - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * @uiName Progress bar steps + * @uiGroup Goal + * @default */ - "paddingRight"?: string; + "steps"?: boolean; + } + interface SqmTaxAndCash { /** - * @uiName Top padding - * @uiGroup Padding - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * @uiName Back button label + * @uiGroup General Form Properties */ - "paddingTop"?: string; + "backButton"?: string; /** - * @uiName Vertical alignment - * @uiType string - * @uiEnum ["start", "center", "end"] - * @uiEnumNames ["Top", "Center", "Bottom"] + * @uiName Cancel button label + * @uiGroup General Form Properties */ - "verticalAlignment"?: "start" | "center" | "end"; - } - interface SqmReferralIframe { + "cancelButton"?: string; /** - * @undocumented - * @uiType object + * @uiName Continue button label + * @uiGroup General Form Properties */ - "demoData"?: DemoData; + "continueButton"?: string; /** - * Define the height of the iframe with any valid CSS height value. Example: 100px, 5rem, or auto. - * @uiName IFrame height + * Shown before the participant’s bank account information. + * @uiName Bank account field label + * @uiGroup Dashboard Properties */ - "iframeHeight"?: string; + "dashboard_accountText"?: string; /** - * URL of iframe to display - * @uiName IFrame source - * @required + * Additional text displayed next to the tax form's status badge. + * @uiName Tax form in review description + * @uiGroup Dashboard Properties */ - "iframeSrc"?: string; + "dashboard_badgeTextAwaitingReview"?: string; /** - * Define the width of the iframe with any valid CSS width value. Example: 100px, 5rem, or auto. - * @uiName IFrame width + * Additional text displayed next to the tax form's status badge + * @uiName Active W-9 description + * @uiGroup Dashboard Properties */ - "iframeWidth"?: string; - } - interface SqmReferralTable { + "dashboard_badgeTextSubmittedOn"?: string; /** - * @undocumented - * @uiType object + * Additional text displayed next to the tax form's status badge. + * @uiName Active W-8 description + * @uiGroup Dashboard Properties */ - "demoData"?: DemoData & { - mockData?: { data: Referral[] }; - }; + "dashboard_badgeTextSubmittedOnW8"?: string; /** - * Provide the column numbers (0 indexed) that should not be displayed in mobile views. Ex. 0,2,3 - * @uiName Hidden mobile columns + * @uiName Payout information section header + * @uiGroup Dashboard Properties */ - "hiddenColumns"?: string; + "dashboard_bankingInformationSectionHeader"?: string; /** - * @uiName Hide column labels + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Date column title + * @uiGroup Dashboard Properties */ - "hideLabels"?: boolean; + "dashboard_dateColumnTitle"?: string; /** - * @uiName Tablet breakpoint + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Earnings after tax column title + * @uiGroup Dashboard Properties */ - "mdBreakpoint"?: number; + "dashboard_earningsAfterTaxColumnTitle"?: string; /** - * @uiName View More button text + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Earnings column title + * @uiGroup Dashboard Properties */ - "moreLabel"?: string; + "dashboard_earningsColumnTitle"?: string; /** - * Number of referrals displayed per page - * @uiName Referrals per page + * @uiName Edit payment info button label + * @uiGroup Dashboard Properties */ - "perPage"?: number; + "dashboard_editPaymentInformationButton"?: string; /** - * @uiName Previous button text + * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts. + * @uiName Payout error message description + * @uiGroup Dashboard Properties + * @uiWidget textArea */ - "prevLabel"?: string; + "dashboard_errorDescriptionText"?: string; /** - * Filters to only show referrals in this program. Will default to filtering by the program context where this table lives. If no program ID is set or provided by context, then shows all referrals from all programs. If program ID is "classic", shows classic-only referrals - * @uiName Program - * @uiWidget programSelector + * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts. + * @uiName Payout error message title + * @uiGroup Dashboard Properties + * @uiWidget textArea */ - "programId"?: string; + "dashboard_errorTitleText"?: string; /** - * Show referred by user in table - * @uiName Show referrer - * @default + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Indirect tax column title + * @uiGroup Dashboard Properties */ - "showReferrer"?: boolean; + "dashboard_indirectTaxColumnTitle"?: string; /** - * @uiName Mobile breakpoint + * Displayed to participants who have submitted their indirect tax information. + * @uiName Indirect tax details + * @uiGroup Dashboard Properties */ - "smBreakpoint"?: number; - } - interface SqmReferralTableCell { - "innerTemplate"?: string; - } - interface SqmReferralTableColumn { + "dashboard_indirectTaxDetails"?: string; /** - * @uiName Column title + * If the participant is registered for indirect tax in Canada, display the province they’re registered in. + * @uiName Canadian province of indirect tax + * @uiGroup Dashboard Properties */ - "columnTitle"?: string; - } - interface SqmReferralTableDateCell { - "date"?: number; - "locale"?: string; - } - interface SqmReferralTableDateColumn { + "dashboard_indirectTaxInfoCanada"?: string; /** - * @uiName Date column title + * If the participant is registered for indirect tax, display the country they’re registered in. + * @uiName Indirect tax country + * @uiGroup Dashboard Properties */ - "columnTitle"?: string; + "dashboard_indirectTaxInfoOtherCountry"?: string; /** - * @uiName Date displayed - * @uiType string - * @uiEnum ["dateConverted", "dateReferralStarted", "dateFraudChecksCompleted", "dateModerated", "dateModified", "dateReferralEnded", "dateReferralPaid", "dateUserModified"] - * @uiEnumNames ["Date Converted", "Date Referral Started", "Date Fraud Checks Completed", "Date Moderated", "Date Modified", "Date Referral Ended", "Date Referral Paid", "Date User Modified"] + * @uiName Indirect tax section header + * @uiGroup Dashboard Properties */ - "dateShown"?: ReferralDates; - } - interface SqmReferralTableRewardsCell { - "deniedHelpText"?: string; - "expiringText"?: string; - "fuelTankText"?: string; - "hideDetails"?: boolean; - "locale"?: string; - "pendingForText"?: string; - "rewardReceivedText"?: string; - "rewards"?: Reward[]; - "statusLongText"?: string; - "statusText"?: string; - } - interface SqmReferralTableRewardsColumn { + "dashboard_indirectTaxInfoSectionHeader"?: string; /** - * @uiName Reward column title + * If the participant is registered for indirect tax in Spain, display the region they’re registered in. + * @uiName Spanish region of indirect tax + * @uiGroup Dashboard Properties */ - "columnTitle"?: string; + "dashboard_indirectTaxInfoSpain"?: string; /** - * Shown in the dropdown details when a reward was denied. - * @uiName Reward denied help text + * @uiName Indirect tax tooltip + * @uiGroup Dashboard Properties + * @uiWidget textArea */ - "deniedHelpText"?: string; + "dashboard_indirectTaxTooltipSupport"?: string; /** - * Shown in the dropdown details when a reward has an expiry date. - * @uiName Reward expiring text + * Additional text displayed next to the tax form's status badge. + * @uiName Invalid tax form description + * @uiGroup Dashboard Properties + * @uiWidget textArea */ - "expiringText"?: string; + "dashboard_invalidForm"?: string; /** - * Shown in the dropdown details when a reward has an associated fuel tank code. - * @uiName Fuel tank code text + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Invoice number column title + * @uiGroup Dashboard Properties */ - "fuelTankText"?: string; + "dashboard_invoiceColumnTitle"?: string; /** - * @uiName Hide dropdown details of reward - * @default + * @uiName Invoice table description + * @uiGroup Dashboard Properties */ - "hideDetails"?: boolean; + "dashboard_invoiceDescription"?: string; /** - * Shown in the dropdown details when a reward is pending. - * @uiName Reward pending text + * @uiName Empty invoice table header + * @uiGroup Dashboard Properties */ - "pendingForText"?: string; + "dashboard_invoiceEmptyStateHeader"?: string; /** - * Shown in the dropdown details when a reward has been received.’ - * @uiName Reward received text + * @uiName Empty invoice table description + * @uiGroup Dashboard Properties */ - "rewardReceivedText"?: string; + "dashboard_invoiceEmptyStateText"?: string; /** - * Additional status text shown in the details drop down. - * @uiName Reward status long text - * @uiWidget textArea + * @uiName Invoice table title + * @uiGroup Dashboard Properties */ - "statusLongText"?: string; + "dashboard_invoiceHeader"?: string; /** - * Text shown in the reward status badge. - * @uiName Reward status text - * @uiWidget textArea + * @uiName Invoice table next page button label + * @uiGroup Dashboard Properties */ - "statusText"?: string; - } - interface SqmReferralTableStatusCell { - "converted"?: boolean; - "fraudStatus"?: FraudStatus; - "statusSubText"?: string; - "statusText"?: string; - } - interface SqmReferralTableStatusColumn { + "dashboard_invoiceMoreLabel"?: string; /** - * @uiName Column title + * @uiName Invoice table previous page button label + * @uiGroup Dashboard Properties */ - "columnTitle"?: string; + "dashboard_invoicePrevLabel"?: string; /** - * @uiName Converted status text + * @uiName Submit new tax form button label + * @uiGroup Dashboard Properties */ - "convertedStatusText"?: string; + "dashboard_newFormButton"?: string; /** - * @uiName Denied status sub-text + * No other statuses or badges will be displayed in the tax form section in this case. + * @uiName Tax form not required text + * @uiGroup Dashboard Properties + * @uiWidget textArea */ - "deniedStatusSubText"?: string; + "dashboard_noFormNeededSubtext"?: string; /** - * @uiName Denied status text + * @uiName Not registered for indirect tax text + * @uiGroup Dashboard Properties + * @uiWidget textArea */ - "deniedStatusText"?: string; + "dashboard_notRegisteredForTax"?: string; /** - * @uiName In progress status text + * Displayed under the payout details card. + * @uiName Payout from impact text + * @uiGroup Dashboard Properties + * @uiWidget textArea */ - "inProgressStatusText"?: string; + "dashboard_payoutFromImpact"?: string; /** - * @uiName Pending review status sub-text + * Text displayed for existing publishers that do not have saved banking information. + * @uiName Payout missing information subtext + * @uiGroup Dashboard Properties */ - "pendingReviewStatusSubText"?: string; + "dashboard_payoutMissingInformationText"?: string; /** - * @uiName Pending review status text + * Displayed to participants registered in Quebec, Canada. + * @uiName QST indirect tax details + * @uiGroup Dashboard Properties */ - "pendingReviewStatusText"?: string; - } - interface SqmReferralTableUserCell { - "name"?: string; - } - interface SqmReferralTableUserColumn { + "dashboard_qstNumber"?: string; /** - * Name displayed for unknown users - * @uiName Anonymous user text + * @uiName Replace tax form modal body text + * @uiGroup Dashboard Properties + * @uiWidget textArea */ - "anonymousUser"?: string; + "dashboard_replaceTaxFormModalBodyText"?: string; /** - * @uiName User column title + * @uiName Replace tax form modal header + * @uiGroup Dashboard Properties */ - "columnTitle"?: string; + "dashboard_replaceTaxFormModalHeader"?: string; /** - * Name displayed for deleted users - * @uiName Deleted user text + * @uiName Payout status badge + * @uiGroup Dashboard Properties */ - "deletedUser"?: string; - } - interface SqmReferredRegistration { + "dashboard_statusBadgeText"?: string; /** - * @uiName Background color - * @uiWidget color - * @uiGroup Card style - * @uiType string + * @uiName Active tax form badge label + * @uiGroup Dashboard Properties */ - "backgroundColor"?: string; + "dashboard_statusTextActive"?: string; /** - * @undocumented - * @uiType object + * @uiName Invalid tax form badge label + * @uiGroup Dashboard Properties */ - "demoData"?: DemoData; + "dashboard_statusTextNotActive"?: string; /** - * @uiName Email field label + * Displayed when the participant submitted their form but it is awaiting review. + * @uiName Not verified tax form badge label + * @uiGroup Dashboard Properties */ - "emailLabel"?: string; + "dashboard_statusTextNotVerified"?: string; /** - * @uiName First name field label + * @uiName Spain sub-region indirect tax number + * @uiGroup Dashboard Properties */ - "firstNameLabel"?: string; + "dashboard_subRegionTaxNumber"?: string; /** - * Display this message when there is suspected fraud. - * @uiName Fraud error message + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-8 error message title + * @uiGroup Dashboard Properties * @uiWidget textArea - * @uiGroup Error messages */ - "fraudErrorMessage"?: string; + "dashboard_taxAlertHeaderNotActiveW8"?: string; /** - * Display this message when there is suspected fraud. - * @uiName Fraud error message title + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-9 error message title + * @uiGroup Dashboard Properties * @uiWidget textArea - * @uiGroup Error messages */ - "fraudErrorMessageTitle"?: string; + "dashboard_taxAlertHeaderNotActiveW9"?: string; /** - * @uiName Hide border - * @uiGroup Card style + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-8 error message description + * @uiGroup Dashboard Properties */ - "hideBorder"?: boolean; + "dashboard_taxAlertNotActiveMessageW8"?: string; /** - * @undocumented - * @uiType boolean + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-9 error message description + * @uiGroup Dashboard Properties + * @uiWidget textArea */ - "includeCookies"?: boolean; + "dashboard_taxAlertNotActiveMessageW9"?: string; /** - * Require your participants to enter their first and last name. - * @uiName Include name fields + * @uiName Tax document section header + * @uiGroup Dashboard Properties */ - "includeName"?: boolean; + "dashboard_taxDocumentSectionHeader"?: string; /** - * Display this message when the given email is invalid. - * @uiName Invalid email message - * @uiWidget textArea - * @uiGroup Error messages + * Displayed under the tax document section header. + * @uiName Tax documents section description + * @uiGroup Dashboard Properties */ - "invalidEmailErrorMessage"?: string; + "dashboard_taxDocumentSectionSubHeader"?: string; /** - * @uiName Last name field label + * Display participants' payout preference on the payout information card, indicating the balance at which they want to get paid. + * @uiName Payout schedule by threshold text + * @uiGroup Dashboard Properties */ - "lastNameLabel"?: string; + "dashboard_thresholdPayoutText"?: string; /** - * Display this message when the form submission unexpectedly fails. - * @uiName Network error message - * @uiWidget textArea - * @uiGroup Error messages + * @undocumented + * @uiType object */ - "networkErrorMessage"?: string; + "demoData"?: DemoData; /** - * @uiName Bottom padding - * @uiGroup Card style - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * Displayed under a field when it has an invalid entry. + * @uiName Form field error message + * @uiGroup General Form Properties */ - "paddingBottom"?: string; + "fieldInvalidError"?: string; /** - * @uiName Left padding - * @uiGroup Card style - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * Displayed under a field that is missing required information. + * @uiName Empty form field error message + * @uiGroup General Form Properties */ - "paddingLeft"?: string; + "fieldRequiredError"?: string; /** - * @uiName Right padding - * @uiGroup Card style - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * @uiName Setup progress + * @uiGroup General Form Properties */ - "paddingRight"?: string; + "formStep"?: string; /** - * @uiName Top padding - * @uiGroup Card style - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message description + * @uiGroup General Form Properties + * @uiWidget textArea */ - "paddingTop"?: string; + "generalErrorDescription"?: string; /** - * @uiName Register button text + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message title + * @uiGroup General Form Properties + * @uiWidget textArea */ - "registerLabel"?: string; + "generalErrorTitle"?: string; /** - * Display this message when a required field has not been filled out. - * @uiName Required field message + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert description + * @uiGroup General Form Properties * @uiWidget textArea - * @uiGroup Error messages */ - "requiredFieldErrorMessage"?: string; - } - interface SqmRewardExchangeList { + "isPartnerAlertDescription"?: string; /** - * @uiName Back button text + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert title + * @uiGroup General Form Properties + * @uiWidget textArea */ - "backText"?: string; + "isPartnerAlertHeader"?: string; /** - * @uiName Cancel button text + * Part of the alert displayed at the top of the page. + * @uiName Page load error message description + * @uiGroup General Form Properties + * @uiWidget textArea */ - "cancelText"?: string; + "loadingErrorAlertDescription"?: string; /** - * @uiName Choose amount progress title + * Part of the alert displayed at the top of the page. + * @uiName Page load error message title + * @uiGroup General Form Properties + * @uiWidget textArea */ - "chooseAmountTitle"?: string; + "loadingErrorAlertHeader"?: string; /** - * @uiName Choose reward progress title + * Placeholder text displayed in the country search dropdown + * @uiName Country field placeholder text + * @uiGroup General Form Properties */ - "chooseRewardTitle"?: string; + "searchForCountryText"?: string; /** - * @uiName Confirmation progress title + * Edit the property called terms and conditions text to change what's displayed for {termsAndConditionsLink}. + * @uiName Terms and conditions checkbox + * @uiGroup Step 1 Properties */ - "confirmationTitle"?: string; + "step1_allowBankingCollection"?: string; /** - * @uiName Continue button text + * @uiName Country field label + * @uiGroup Step 1 Properties */ - "continueText"?: string; + "step1_country"?: string; /** - * Displayed on the reward selection page. - * @uiName Continue to confirmation button text + * @uiName Currency field label + * @uiGroup Step 1 Properties */ - "continueToConfirmationText"?: string; + "step1_currency"?: string; /** - * Shown in the confirmation state. - * @uiName Cost row title + * @uiName Currency field help text + * @uiGroup Step 1 Properties */ - "costTitle"?: string; + "step1_currencyHelpText"?: string; /** - * @undocumented - * @uiType object + * @uiName Email field label + * @uiGroup Step 1 Properties */ - "demoData"?: DemoData; + "step1_email"?: string; /** - * @uiName Done text + * @uiName First name field label + * @uiGroup Step 1 Properties */ - "doneText"?: string; + "step1_firstName"?: string; /** - * Error message shown when reward is not available - * @uiName Not available error - * @uiWidget textArea + * @uiName Last name field label + * @uiGroup Step 1 Properties */ - "notAvailableError"?: string; + "step1_lastName"?: string; /** - * @uiName Not enough error message - * @uiWidget textArea + * @uiName Step 1 title + * @uiGroup Step 1 Properties */ - "notEnoughError"?: string; + "step1_personalInformation"?: string; /** - * @uiName Promo code text + * Placeholder text displayed in the currency search dropdown + * @uiName Currency field placeholder text + * @uiGroup Step 1 Properties */ - "promoCode"?: string; + "step1_searchForCurrencyText"?: string; /** - * Shown if an error occurs when loading the reward exchange. - * @uiName Reward list error message + * The text link that appears in the terms and conditions checkbox + * @uiName Terms and conditions text + * @uiGroup Step 1 Properties * @uiWidget textArea */ - "queryError"?: string; + "step1_termsAndConditionsLabel"?: string; /** - * @uiName Redeem button text + * Communicate that after this step, only Support can change personal and indirect tax information. + * @uiName Submission confirmation alert + * @uiGroup Step 2 Properties + * @uiWidget textArea */ - "redeemText"?: string; + "step2_cannotChangeInfoAlert"?: string; /** - * Displayed as the header for the confirmation page. - * @uiName Confirmation title text + * @uiName Step 2 title + * @uiGroup Step 2 Properties */ - "redeemTitle"?: string; + "step2_indirectTax"?: string; /** - * Shown if an error occurs during the reward exchange. - * @uiName Redemption error message + * Displayed under the title of this step. + * @uiName Step 2 description + * @uiGroup Step 2 Properties * @uiWidget textArea */ - "redemptionError"?: string; + "step2_indirectTaxDescription"?: string; /** - * Displayed on the success screen when a user successfully exchanges for a reward. - * @uiName Redemption success message - * @uiWidget textArea + * Displayed with indirect tax registration options. + * @uiName Indirect tax details section title + * @uiGroup Step 2 Properties */ - "redemptionSuccessText"?: string; + "step2_indirectTaxDetails"?: string; /** - * Shown in the confirmation state. - * @uiName Reward amount row title + * @uiName Indirect tax number field label + * @uiGroup Step 2 Properties */ - "rewardAmountTitle"?: string; + "step2_indirectTaxNumber"?: string; /** - * Shown in the confirmation state. - * @uiName Reward row title + * @uiName Missing indirect tax number error message + * @uiGroup Step 2 Properties */ - "rewardNameTitle"?: string; + "step2_indirectTaxNumberError"?: string; /** - * @uiName Reward redeemed text + * Displayed to participants registered for indirect tax in Quebec, Canada. + * @uiName QST tax checkbox + * @uiGroup Step 2 Properties */ - "rewardRedeemedText"?: string; + "step2_isRegisteredQST"?: string; /** - * @uiName Reward title text + * Displayed to participants registered for indirect tax in Spain. + * @uiName Spain income tax checkbox + * @uiGroup Step 2 Properties + * @uiWidget textArea */ - "rewardTitle"?: string; + "step2_isRegisteredSubRegionIncomeTax"?: string; /** - * @uiName Select amount text + * @uiName Not registered for indirect tax option + * @uiGroup Step 2 Properties * @uiWidget textArea */ - "selectText"?: string; + "step2_notRegistered"?: string; /** - * Set the number of placeholder cards to be shown in loading state. - * @uiName Loading cards + * Participants based in the US are considered not registered. + * @uiName Not registered for indirect tax option description + * @uiGroup Step 2 Properties */ - "skeletonCardNum"?: number; + "step2_notRegisteredSubtext"?: string; /** - * Displayed on the reward exchange cards. - * @uiName Reward exchange amount text + * @uiName Registered for indirect tax option + * @uiGroup Step 2 Properties * @uiWidget textArea */ - "sourceAmountMessage"?: string; - /** - * Shown when a user copies a fuel tank code - * @uiName Tooltip text - */ - "tooltipText"?: string; - } - interface SqmRewardsTable { + "step2_otherRegion"?: string; /** - * @undocumented - * @uiType object + * Selecting this option will display fields to enter indirect tax details. + * @uiName Registered for indirect tax option description + * @uiGroup Step 2 Properties */ - "demoData"?: DemoData & { - mockData?: { data: Referral[] }; - }; + "step2_otherRegionSubtext"?: string; /** - * Provide the column numbers (0 indexed) that should not be displayed in mobile views. Ex. 0,2,3 - * @uiName Mobile hidden columns + * @uiName Province field label + * @uiGroup Step 2 Properties */ - "hiddenColumns"?: string; + "step2_province"?: string; /** - * @uiName Hide column labels + * Displayed to participants registered for QST. + * @uiName QST number field label + * @uiGroup Step 2 Properties */ - "hideLabels"?: boolean; + "step2_qstNumber"?: string; /** - * @uiName Tablet breakpoint + * @uiName Region of indirect tax field label + * @uiGroup Step 2 Properties */ - "mdBreakpoint"?: number; + "step2_selectedRegion"?: string; /** - * @uiName View more button text + * Displayed to participants registered in Spain. + * @uiName Sub-region of indirect tax field label + * @uiGroup Step 2 Properties */ - "moreLabel"?: string; + "step2_subRegion"?: string; /** - * @uiName Rewards per page + * @uiName Income tax field label + * @uiGroup Step 2 Properties */ - "perPage"?: number; + "step2_subRegionTaxNumberLabel"?: string; /** - * @uiName Previous button text + * An option for the participant type field. Used to determine which W-8 form is required. + * @uiName Business representative participant type label + * @uiGroup Step 3 Properties */ - "prevLabel"?: string; + "step3_businessEntity"?: string; /** - * Filters to only show rewards in this program. Will default to filtering by the program context where this table lives. If no program ID is set or provided by context, then shows all rewards from all programs. - * @uiName Program - * @uiWidget programSelector + * This appears inside the Docusign frame. + * @uiName Docusign form error message + * @uiGroup Step 3 Properties + * @uiWidget textArea */ - "programId"?: string; + "step3_docusignError"?: string; /** - * @uiName Mobile breakpoint + * This appears inside the Docusign frame. + * @uiName Docusign session expired message + * @uiGroup Step 3 Properties + * @uiWidget textArea */ - "smBreakpoint"?: number; - } - interface SqmRewardsTableCustomerNoteCell { - "locale"?: string; - "note"?: string; - } - interface SqmRewardsTableCustomerNoteColumn { + "step3_docusignExpired"?: string; /** - * @uiName Column title + * Remind participants their session will time out after 20 minutes of inactivity. + * @uiName Docusign timed session message + * @uiGroup Step 3 Properties + * @uiWidget textArea */ - "columnTitle"?: string; - } - interface SqmRewardsTableDateCell { - "date"?: number; - "locale"?: string; - } - interface SqmRewardsTableDateColumn { + "step3_docusignSessionWarning"?: string; /** - * @uiName Date column title + * An option for the participant type field. Used to determine which W-8 form is required. + * @uiName Individual participant type label + * @uiGroup Step 3 Properties */ - "columnTitle"?: string; + "step3_individualParticipant"?: string; /** - * @uiName Date displayed - * @uiType string - * @uiEnum ["dateGiven", "dateExpires", "dateCancelled", "dateRedeemed", "dateScheduledFor"] - * @uiEnumNames ["Date Given", "Date Expires", "Date Cancelled", "Date Redeemed", "Date Scheduled For"] + * @uiName Participant type field label + * @uiGroup Step 3 Properties */ - "dateShown"?: string; - } - interface SqmRewardsTableRewardCell { - "availableText"?: string; - "copyText"?: string; - "locale"?: string; - "redeemedText"?: string; - "reward"?: Reward; - } - interface SqmRewardsTableRewardColumn { + "step3_participantType"?: string; /** - * @uiName Remaining amount text + * @uiName Refresh page button label + * @uiGroup Step 3 Properties */ - "availableText"?: string; + "step3_refreshButton"?: string; /** - * @uiName Reward column title + * @uiName Step 3 title + * @uiGroup Step 3 Properties */ - "columnTitle"?: string; + "step3_taxForm"?: string; /** - * @uiName Copied fuel tank text + * Displayed at the top of the page to participants based in the US. + * @uiName W-9 tax form description + * @uiGroup Step 3 Properties + * @uiWidget textArea */ - "copyText"?: string; + "step3_taxFormDescription"?: string; /** - * @uiName Redeemed amount text + * Displayed at the top of the page to participants representing a business. + * @uiName W-8 BEN-E tax form description + * @uiGroup Step 3 Properties + * @uiWidget textArea */ - "redeemedText"?: string; - } - interface SqmRewardsTableSourceCell { - "anonymousUserText"?: string; - "deletedUserText"?: string; - "locale"?: string; - "referralText"?: string; - "reward"?: Reward; - "rewardExchangeText"?: string; - "rewardSourceText"?: string; - } - interface SqmRewardsTableSourceColumn { + "step3_taxFormDescriptionBusinessEntity"?: string; /** - * Name displayed for unknown users - * @uiName Anonymous user text + * Displayed at the top of the page to individuals joining a US program who reside outside the country. + * @uiName W-8 BEN tax form description + * @uiGroup Step 3 Properties + * @uiWidget textArea */ - "anonymousUser"?: string; + "step3_taxFormDescriptionIndividualParticipant"?: string; /** - * @uiName Soruce column title + * Display the type of tax form that the participant must submit. + * @uiName Tax form name + * @uiGroup Step 3 Properties */ - "columnTitle"?: string; + "step3_taxFormLabel"?: string; /** - * Name displayed for deleted users - * @uiName Deleted user text + * @uiName Agency code field label + * @uiGroup Step 4 Properties */ - "deletedUser"?: string; + "step4_agencyCodeLabel"?: string; /** - * Shown when a reward has been created by a referral - * @uiName Referral text - * @uiWidget textArea + * @uiName Bank account number field label + * @uiGroup Step 4 Properties */ - "referralText"?: string; + "step4_bankAccountNumberLabel"?: string; /** - * @uiName Reward exchange label + * @uiName Bank account type field label + * @uiGroup Step 4 Properties */ - "rewardExchangeText"?: string; + "step4_bankAccountTypeLabel"?: string; /** - * Shown when a reward has been created by a source other than a referral. - * @uiName Reward source text - * @uiWidget textArea + * @uiName Bank address field label + * @uiGroup Step 4 Properties */ - "rewardSourceText"?: string; - } - interface SqmRewardsTableStatusCell { - "deniedText"?: string; - "expiryText"?: string; - "locale"?: string; - "pendingReviewText"?: string; - "pendingScheduled"?: string; - "pendingUnhandled"?: string; - "pendingUsTax"?: string; - "reward"?: Reward; - "statusText"?: string; - } - interface SqmRewardsTableStatusColumn { + "step4_bankAddressLabel"?: string; /** - * @uiName Column title + * @uiName Bank city field label + * @uiGroup Step 4 Properties */ - "columnTitle"?: string; + "step4_bankCityLabel"?: string; /** - * Displayed when denied for fraud. - * @uiName Denied text + * @uiName Bank country field label + * @uiGroup Step 4 Properties */ - "deniedText"?: string; + "step4_bankLocationLabel"?: string; /** - * Text shown before the date of an expiring reward. - * @uiName Expiry date prefix + * @uiName Bank name field label + * @uiGroup Step 4 Properties */ - "expiryText"?: string; + "step4_bankNameLabel"?: string; /** - * Displayed when flagged for fraud. - * @uiName Pending review text + * @uiName Bank postal code field label + * @uiGroup Step 4 Properties */ - "pendingReviewText"?: string; + "step4_bankPostalCodeLabel"?: string; /** - * Text shown before the available date of a pending reward. - * @uiName Pending date prefix + * @uiName Bank province/state field label + * @uiGroup Step 4 Properties */ - "pendingScheduled"?: string; + "step4_bankStateLabel"?: string; /** - * Displayed when fulfillment error occured when creating a reward. - * @uiName Unhandled error text + * @uiName Beneficiary account field label + * @uiGroup Step 4 Properties */ - "pendingUnhandled"?: string; + "step4_beneficiaryAccountNameLabel"?: string; /** - * Displayed when a reward is pending due to W9 compliance. - * @uiName W9 pending text + * @uiName Branch code field label + * @uiGroup Step 4 Properties */ - "pendingUsTax"?: string; + "step4_branchCodeLabel"?: string; /** - * @uiName Reward status text - * @uiWidget textArea + * One of three options listed for the classification field + * @uiName Business classification option + * @uiGroup Step 4 Properties */ - "statusText"?: string; - } - interface SqmRoute { + "step4_businessSelectItemLabel"?: string; /** - * Page Path URL for this route. - * @uiName Navigation path name + * @uiName Checking account option + * @uiGroup Step 4 Properties */ - "path"?: string; - } - interface SqmRouter { - } - interface SqmScroll { + "step4_checkingSelectItemLabel"?: string; /** - * @uiName Button text + * @uiName Classification CPF field label + * @uiGroup Step 4 Properties */ - "buttonText"?: string; + "step4_classificationCPFLabel"?: string; /** - * @uiName Button type - * @uiType string - * @uiEnum ["default", "primary", "success", "neutral", "warning", "danger", "text"] - * @uiEnumNames ["Default", "Primary", "Success", "Neutral", "Warning", "Danger", "Text"] + * @uiName Classification entity field label + * @uiGroup Step 4 Properties */ - "buttonType"?: | "default" - | "primary" - | "success" - | "neutral" - | "warning" - | "danger" - | "text"; + "step4_classificationEntityLabel"?: string; /** - * Draws a circle button. - * @uiName Circle + * Label text for the classification input field + * @uiName Classification field label + * @uiGroup Step 4 Properties */ - "circle"?: boolean; + "step4_classificationLabel"?: string; /** - * Full list of valid icon names available in the [Shoelace Icon Library](https://shoelace.style/components/icon). This value is case sensitive. - * @uiName Icon + * @uiName Direct to bank payout option + * @uiGroup Step 4 Properties */ - "iconName"?: string; + "step4_directlyToBankAccount"?: string; /** - * @uiName Icon slot - * @uiType string - * @uiEnum ["prefix", "suffix"] - * @uiEnumNames ["Prefix", "Suffix"] + * Default payment method to the participants’ bank account. + * @uiName EFT withdrawal payment method + * @uiGroup Step 4 Properties */ - "iconSlot"?: string; + "step4_eftWithdrawalLabel"?: string; /** - * The button becomes full width if the screen size is smaller than 500px - * @uiName Full width on mobile + * One of three options listed for the classification field + * @uiName Foreign classification option + * @uiGroup Step 4 Properties */ - "mobile"?: boolean; + "step4_foreignSelectItemLabel"?: string; /** - * Draws an outlined button. - * @uiName Outline + * @uiName FX Wire Processing fee text + * @uiGroup Step 4 Properties */ - "outline"?: boolean; + "step4_fxWireProcessingFeeLabel"?: string; /** - * Draws a pill-style button with rounded edges. - * @uiName Pill + * @uiName IBAN field label + * @uiGroup Step 4 Properties */ - "pill"?: boolean; + "step4_ibanLabel"?: string; /** - * @uiName Scroll animation style - * @uiType string - * @uiEnum ["smooth", "auto"] - * @uiEnumNames ["Smooth", "Auto"] + * One of three options listed for the classification field + * @uiName Individual classification option + * @uiGroup Step 4 Properties */ - "scrollAnimation"?: "smooth" | "auto"; + "step4_individualSelectItemLabel"?: string; /** - * ID applied to the HTML tag you would like to scroll to. E.g tab-1 - * @uiName Scroll ID + * @uiName Patronymic name field label + * @uiGroup Step 4 Properties */ - "scrollId"?: string; + "step4_patronymicNameLabel"?: string; /** - * The name of the HTML tag you would like to scroll to. E.g referral-table - * @uiName Scroll tag name + * Displayed to participants who choose PayPal as their payout method + * @uiName PayPal email field label + * @uiGroup Step 4 Properties */ - "scrollTagName"?: string; + "step4_payPalInputLabel"?: string; /** - * @uiName Size - * @uiType string - * @uiEnum ["small", "medium", "large"] - * @uiEnumNames ["Small", "Medium", "Large"] + * One of two payment day options + * @uiName Fifteenth of month payday option + * @uiGroup Step 4 Properties */ - "size"?: string; - } - interface SqmShareButton { + "step4_paymentDayFifteenthOfMonthLabelText"?: string; /** - * @uiName Button background color - * @uiWidget color - * @format color + * One of two payment day options + * @uiName First of month payday option + * @uiGroup Step 4 Properties */ - "backgroundcolor"?: string; + "step4_paymentDayFirstOfMonthLabelText"?: string; /** - * Configure border radius with pixel amount - * @uiName Border radius + * Let the participant choose what day of the month they’ll get paid + * @uiName Payment day field label + * @uiGroup Step 4 Properties */ - "borderradius"?: number; + "step4_paymentDaySelectLabel"?: string; /** - * @undocumented - * @uiType object + * @uiName Payment method section header + * @uiGroup Step 4 Properties */ - "demoData"?: DemoData; + "step4_paymentMethod"?: string; /** - * @uiName Disabled + * @uiName Payment method section description + * @uiGroup Step 4 Properties */ - "disabled"?: boolean; + "step4_paymentMethodSubtext"?: string; /** - * @uiName Hide icon - * @default + * @uiName Payment schedule section header + * @uiGroup Step 4 Properties */ - "hideicon"?: boolean; + "step4_paymentSchedule"?: string; /** - * @uiName Hide text - * @default + * @uiName Threshold balance payment schedule option + * @uiGroup Step 4 Properties */ - "hidetext"?: boolean; + "step4_paymentScheduleBalanceThreshold"?: string; /** - * Options available at https://shoelace.style/components/icon Icon used in button. Will try to select an icon based on the share medium if left empty. - * @uiName Icon + * @uiName Fixed day payment schedule option + * @uiGroup Step 4 Properties */ - "icon"?: string; + "step4_paymentScheduleFixedDay"?: string; /** - * @uiName Icon location - * @uiType string - * @uiEnum ["prefix", "suffix" ] - * @uiEnumNames ["Prefix", "Suffix"] + * Participant use this field to select the balance at which they want to be paid + * @uiName Payment threshold field label + * @uiGroup Step 4 Properties */ - "iconslot"?: "prefix" | "suffix"; + "step4_paymentThresholdSelectLabel"?: string; /** - * The social medium to share on. Share messages and links will be pulled from your program config and tagged for analytics. - * @uiName Share medium - * @uiType string - * @required - * @uiEnum ["facebook", "twitter", "email", "direct", "linkedin", "sms", "fbmessenger", "whatsapp", "linemessenger", "pinterest" ] - * @uiEnumNames ["Facebook", "Twitter", "Email", "Web Share Sheet", "Linkedin", "SMS", "Facebook Messenger", "Whatsapp", "Line Messenger", "Pinterest"] + * @uiName Routing code field label + * @uiGroup Step 4 Properties */ - "medium"?: | "facebook" - | "twitter" - | "email" - | "direct" - | "linkedin" - | "sms" - | "fbmessenger" - | "whatsapp" - | "linemessenger" - | "pinterest" - | "reminder" - | "unknown"; + "step4_routingCodeLabel"?: string; /** - * @uiName Display pill + * Label text for the savings account type select item + * @uiName Savings account options + * @uiGroup Step 4 Properties */ - "pill"?: boolean; + "step4_savingsSelectItemLabel"?: string; /** - * Optional programId, or uses the programId context where this button is rendered. - * @uiName Program ID - * @uiWidget programSelector + * @uiName SWIFT code field label + * @uiGroup Step 4 Properties */ - "programId"?: string; + "step4_swiftCodeLabel"?: string; /** - * Text used for native sharing (mobile only) - * @uiName Share text + * @uiName Step 4 title + * @uiGroup Step 4 Properties */ - "sharetext"?: string; + "step4_taxAndPayouts"?: string; /** - * Title used for native sharing (mobile only) - * @uiName Share title + * @uiName Taxpayer ID field label + * @uiGroup Step 4 Properties */ - "sharetitle"?: string; + "step4_taxPayerIdLabel"?: string; /** - * @uiName Button size - * @uiType string - * @uiEnum ["small", "medium", "large" ] - * @uiEnumNames ["Small", "Medium", "Large"] + * @uiName PayPal payout option + * @uiGroup Step 4 Properties */ - "size"?: "small" | "medium" | "large"; + "step4_toPayPalAccount"?: string; /** - * @uiName Button text color - * @uiWidget color - * @format color + * @uiName VO code field label + * @uiGroup Step 4 Properties */ - "textcolor"?: string; + "step4_voCodeLabel"?: string; /** - * @uiType string - * @uiName Button style - * @uiEnum ["primary" , "success", "info", "warning", "danger", "default", "text" ] - * @uiEnumNames ["Primary", "Success", "Info", "Warning", "Danger", "Default", "Text"] + * Displayed at the top of the page on all set up steps. + * @uiName Page description + * @uiGroup General Form Properties */ - "type"?: | "primary" - | "success" - | "info" - | "warning" - | "danger" - | "default" - | "text"; + "taxAndPayoutsDescription"?: string; + } + interface SqmTaxAndCashDashboard { /** - * Alert text shown if the share link is undefined - * @uiName Undefined link text + * Shown before the participant’s bank account information. + * @uiName Bank account field label */ - "undefinedLinkText"?: string; + "accountText"?: string; /** - * Alert text shown if the user's device does not support native sharing - * @uiName Unsupported platform text + * Additional text displayed next to the tax form's status badge. + * @uiName Tax form in review description */ - "unsupportedPlatformText"?: string; - } - interface SqmShareCode { + "badgeTextAwaitingReview"?: string; /** - * Set the copy button style and placement - * @uiName Style - * @uiType string - * @uiEnum ["icon", "button-outside", "button-below"] - * @uiEnumNames ["Icon", "Button outside", "Button below"] + * Additional text displayed next to the tax form's status badge + * @uiName Active W-9 description */ - "buttonStyle"?: "icon" | "button-outside" | "button-below"; + "badgeTextSubmittedOn"?: string; /** - * @uiName Copy button label + * Additional text displayed next to the tax form's status badge. + * @uiName Active W-8 description */ - "copyButtonLabel"?: string; + "badgeTextSubmittedOnW8"?: string; + /** + * @uiName Payout information section header + */ + "bankingInformationSectionHeader"?: string; + /** + * @uiName Cancel button label + */ + "cancelButton"?: string; + /** + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Date column title + */ + "dateColumnTitle"?: string; /** * @undocumented * @uiType object */ - "demoData"?: DemoData; + "demoData"?: DemoData; + /** + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Earnings after tax column title + */ + "earningsAfterTaxColumnTitle"?: string; + /** + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Earnings column title + */ + "earningsColumnTitle"?: string; /** - * The ID of the program that should generate the code. Defaults to the program ID in context where this widget is loaded. - * @uiName Program ID - * @uiWidget programSelector + * @uiName Edit payment info button label */ - "programId"?: string; + "editPaymentInformationButton"?: string; /** - * Change the text alignment - * @uiName Share code alignment - * @uiType string - * @uiEnum ["left", "center", "right"] - * @uiEnumNames ["Left", "Center", "Right"] + * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts. + * @uiName Payout error message description + * @uiWidget textArea */ - "textAlign"?: "left" | "center" | "right"; + "errorDescriptionText"?: string; /** - * The number of milliseconds that the tooltip appears for - * @uiName Tooltip lifespan + * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts. + * @uiName Payout error message title + * @uiWidget textArea */ - "tooltiplifespan"?: number; + "errorTitleText"?: string; /** - * Shown inside a tooltip after someone has successfully copied the link to their clipboard - * @uiName Tooltip text + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message description + * @uiWidget textArea */ - "tooltiptext"?: string; - } - interface SqmShareLink { + "generalErrorDescription"?: string; /** - * Set the copy button style and placement - * @uiName Style - * @uiType string - * @uiEnum ["icon", "button-outside", "button-below"] - * @uiEnumNames ["Icon", "Button outside", "Button below"] + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message title + * @uiWidget textArea */ - "buttonStyle"?: "icon" | "button-outside" | "button-below"; + "generalErrorTitle"?: string; /** - * @uiName Copy button label + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Indirect tax column title */ - "copyButtonLabel"?: string; + "indirectTaxColumnTitle"?: string; /** - * @undocumented - * @uiType object + * Displayed to participants who have submitted their indirect tax information. + * @uiName Indirect tax details */ - "demoData"?: DemoData; + "indirectTaxDetails"?: string; /** - * The ID of the program that should generate the link. Defaults to the program ID in context where this widget is loaded. - * @uiName Program ID - * @uiWidget programSelector + * If the participant is registered for indirect tax in Canada, display the province they’re registered in. + * @uiName Canadian province of indirect tax */ - "programId"?: string; + "indirectTaxInfoCanada"?: string; /** - * Change the text alignment - * @uiName Share link alignment - * @uiType string - * @uiEnum ["left", "center", "right"] - * @uiEnumNames ["Left", "Center", "Right"] + * If the participant is registered for indirect tax, display the country they’re registered in. + * @uiName Indirect tax country */ - "textAlign"?: "left" | "center" | "right"; + "indirectTaxInfoOtherCountry"?: string; /** - * The number of milliseconds that the tooltip appears for - * @uiName Tooltip lifespan + * @uiName Indirect tax section header */ - "tooltiplifespan"?: number; + "indirectTaxInfoSectionHeader"?: string; /** - * Shown inside a tooltip after someone has successfully copied the link to their clipboard - * @uiName Tooltip text + * If the participant is registered for indirect tax in Spain, display the region they’re registered in. + * @uiName Spanish region of indirect tax */ - "tooltiptext"?: string; - } - interface SqmStatContainer { + "indirectTaxInfoSpain"?: string; /** - * @uiName Display - * @uiType string - * @uiEnum ["grid", "flex"] - * @uiEnumNames ["Grid", "Flex"] + * @uiName Indirect tax tooltip + * @uiWidget textArea */ - "display"?: "grid" | "flex"; + "indirectTaxTooltipSupport"?: string; /** - * @uiName Space between stats - * @uiType string - * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"] - * @uiEnumNames ["None", "XXX-Small", "XX-Small", "X-Small", "Small", "Medium", "Large", "X-Large", "XX-Large", "XXX-Large", "XXXX-Large"] + * Additional text displayed next to the tax form's status badge. + * @uiName Invalid tax form description + * @uiWidget textArea */ - "space"?: Spacing; - } - interface SqmStencilbook { - } - interface SqmTab { + "invalidForm"?: string; /** - * @uiName Tab title + * Part of the Invoice table displayed at the bottom of the page. + * @uiName Invoice number column title */ - "header"?: string; - } - interface SqmTableCell { + "invoiceColumnTitle"?: string; /** - * @uiName Column span + * @uiName Invoice table description */ - "colspan"?: number; + "invoiceDescription"?: string; /** - * @uiName Padding + * @uiName Empty invoice table header */ - "padding"?: string; - } - interface SqmTableRow { + "invoiceEmptyStateHeader"?: string; /** - * @uiName Border + * @uiName Empty invoice table description */ - "border"?: string; - } - interface SqmTabs { + "invoiceEmptyStateText"?: string; /** - * Used to specify the placement of the tabs - * @uiName Tabs placement - * @uiType string - * @uiEnum ["left", "right", "bottom", "top"] - * @uiEnumNames ["Left", "Right", "Bottom", "Top"] + * @uiName Invoice table title */ - "placement"?: "left" | "right" | "bottom" | "top"; - } - interface SqmTaskCard { + "invoiceHeader"?: string; /** - * @uiName Button link - * @uiGroup Button + * @uiName Invoice table next page button label */ - "buttonLink"?: string; + "invoiceMoreLabel"?: string; /** - * @uiName Button text - * @uiGroup Button + * @uiName Invoice table previous page button label */ - "buttonText"?: string; + "invoicePrevLabel"?: string; /** - * @uiName Title - * @uiGroup Task + * Part of the alert displayed at the top of the page. + * @uiName Page load error message description + * @uiWidget textArea */ - "cardTitle"?: string; + "loadingErrorAlertDescription"?: string; /** - * Displays the amount of times that a user has completed a repeatable task. - * @uiName Completed count text - * @uiGroup Task + * Part of the alert displayed at the top of the page. + * @uiName Page load error message title * @uiWidget textArea */ - "completedText"?: string; + "loadingErrorAlertHeader"?: string; /** - * @undocumented - * @uiType object + * @uiName Submit new tax form button label */ - "demoData"?: DemoData; + "newFormButton"?: string; /** - * @uiName Description - * @uiGroup Task + * No other statuses or badges will be displayed in the tax form section in this case. + * @uiName Tax form not required text + * @uiWidget textArea */ - "description"?: string; + "noFormNeededSubtext"?: string; /** - * Task cards are hidden from users outside of the duration. They are always displayed if no duration is configured. - * @uiName Display duration - * @uiWidget dateRange - * @uiWidgetOptions {"allowPastDates":true, "months": 1} - * @uiGroup Task + * @uiName Not registered for indirect tax text + * @uiWidget textArea */ - "displayDuration"?: string; + "notRegisteredForTax"?: string; /** - * Shown to users after the end of the task duration. - * @uiName Ended date message - * @uiGroup Task + * Displayed under the payout details card. + * @uiName Payout from impact text + * @uiWidget textArea */ - "endedMessage"?: string; + "payoutFromImpact"?: string; /** - * Optionally send an event to SaaSquatch when a user clicks the button. Enter your event key into this field. - * @uiName Task card button event key - * @uiGroup Button + * Text displayed for existing publishers that do not have saved banking information. + * @uiName Payout missing information subtext */ - "eventKey"?: string; + "payoutMissingInformationText"?: string; /** - * Displayed when a user views a task card after the reward duration interval. - * @uiName Expiry date message - * @uiGroup Task + * Displayed to participants registered in Quebec, Canada. + * @uiName QST indirect tax details */ - "expiryMessage"?: string; + "qstNumber"?: string; /** - * The number of times a task can be completed when repeatable. Use zero for no limit (the default). - * @uiName Repeat amount - * @uiGroup Reward + * @uiName Replace tax form modal body text */ - "finite"?: number; + "replaceTaxFormModalBodyText"?: string; /** - * Sets the goal for users progress to know when a task has been completed. If repeatable is checked, repeatable goals is an increment of this. - * @uiName Goal completion number - * @uiGroup Goal + * @uiName Replace tax form modal header */ - "goal"?: number; + "replaceTaxFormModalHeader"?: string; /** - * @uiName Hide CTA button - * @uiGroup Button + * @uiName Payout status badge */ - "hideButton"?: boolean; + "statusBadgeText"?: string; /** - * Button link opens in new tab - * @uiName Open in new tab - * @uiGroup Button - * @default + * @uiName Active tax form badge label */ - "openNewTab"?: boolean; + "statusTextActive"?: string; /** - * The ID of the program that is used to scope the task card. When no ID is specified, it defaults to the program context in which the component is rendered. - * @uiName Program ID override - * @uiWidget programSelector - * @uiGroup Goal + * @uiName Invalid tax form badge label */ - "programId"?: string; + "statusTextNotActive"?: string; /** - * The unit displayed to the right of steps and progress numbers on the progress bar. Ex: $ for dollars - * @uiName Progress bar unit - * @uiGroup Goal + * Displayed when the participant submitted their form but it is awaiting review. + * @uiName Not verified tax form badge label */ - "progressBarUnit"?: string; + "statusTextNotVerified"?: string; /** - * @uiName Goal repeatable - * @uiGroup Goal - * @default + * @uiName Spain sub-region indirect tax number */ - "repeatable"?: boolean; + "subRegionTaxNumber"?: string; /** - * @uiName Reward amount - * @uiGroup Reward + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-8 error message title + * @uiWidget textArea */ - "rewardAmount"?: string; + "taxAlertHeaderNotActiveW8"?: string; /** - * Task cards are disabled to users outside of the duration. They are not disabled if no duration is configured. - * @uiName Reward duration - * @uiWidget dateRange - * @uiWidgetOptions {"allowPastDates":true, "months": 1} - * @uiGroup Reward + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-9 error message title + * @uiWidget textArea */ - "rewardDuration"?: string; + "taxAlertHeaderNotActiveW9"?: string; /** - * @uiName Reward unit - * @uiGroup Reward + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-8 error message description */ - "rewardUnit"?: string; + "taxAlertNotActiveMessageW8"?: string; /** - * @uiName Show progress bar - * @uiGroup Goal - * @default + * Part of the alert displayed at the top of the page. + * @uiName Inactive W-9 error message description + * @uiWidget textArea */ - "showProgressBar"?: boolean; + "taxAlertNotActiveMessageW9"?: string; /** - * Shown to users before the start of the task duration. - * @uiName Start date message - * @uiGroup Task + * Displayed at the top of the page on all set up steps and on the dashboard. + * @uiName Page description */ - "startsOnMessage"?: string; + "taxAndPayoutsDescription"?: string; /** - * Select what type of stat to display for the goal. Manual paths are also supported. - * @uiName Goal progress source - * @required - * @minLength 1 - * @uiWidget statTypeSelectWidget - * @uiWidgetOptions {"version": 1.1} - * @uiGroup Goal + * @uiName Tax document section header */ - "statType"?: string; + "taxDocumentSectionHeader"?: string; /** - * @uiName Progress bar steps - * @uiGroup Goal - * @default + * Displayed under the tax document section header. + * @uiName Tax documents section description */ - "steps"?: boolean; + "taxDocumentSectionSubHeader"?: string; + /** + * Display participants' payout preference on the payout information card, indicating the balance at which they want to get paid. + * @uiName Payout schedule by threshold text + */ + "thresholdPayoutText"?: string; } interface SqmText { } @@ -6833,6 +10538,116 @@ declare namespace LocalJSX { */ "textAlign"?: "left" | "center" | "right"; } + interface SqmUserInfoForm { + /** + * Edit the property called terms and conditions text to change what's displayed for {termsAndConditionsLink}. + * @uiName Terms and conditions checkbox + */ + "allowBankingCollection"?: string; + /** + * @uiName Continue button label + */ + "continueButton"?: string; + /** + * @uiName Country field label + */ + "country"?: string; + /** + * @uiName Currency field label + */ + "currency"?: string; + /** + * @uiName Currency field help text + */ + "currencyHelpText"?: string; + /** + * @undocumented + * @uiType object + */ + "demoData"?: DemoData; + /** + * @uiName Email field label + */ + "email"?: string; + /** + * Displayed under a field that is missing required information. + * @uiName Empty form field error message + */ + "fieldRequiredError"?: string; + /** + * @uiName First name field label + */ + "firstName"?: string; + /** + * @uiName Setup progress + */ + "formStep"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message description + * @uiWidget textArea + */ + "generalErrorDescription"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Form submission error message title + * @uiWidget textArea + */ + "generalErrorTitle"?: string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert description + * @uiWidget textArea + */ + "isPartnerAlertDescription"?: string; + /** + * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com. + * @uiName Participant is a partner alert title + * @uiWidget textArea + */ + "isPartnerAlertHeader"?: string; + /** + * @uiName Last name field label + */ + "lastName"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message description + * @uiWidget textArea + */ + "loadingErrorAlertDescription"?: string; + /** + * Part of the alert displayed at the top of the page. + * @uiName Page load error message title + * @uiWidget textArea + */ + "loadingErrorAlertHeader"?: string; + /** + * @uiName Step 1 title + */ + "personalInformation"?: string; + /** + * Placeholder text displayed in the country search dropdown + * @uiName Country field placeholder text + */ + "searchForCountryText"?: string; + /** + * Placeholder text displayed in the currency search dropdown + * @uiName Currency field placeholder text + */ + "searchForCurrencyText"?: string; + /** + * Displayed at the top of the page on all set up steps. + * @uiName Page description + */ + "taxAndPayoutsDescription"?: string; + /** + * The text link that appears in the terms and conditions checkbox + * @uiName Terms and conditions text + * @uiWidget textArea + */ + "termsAndConditionsLabel"?: string; + } interface SqmUserName { /** * @undocumented @@ -6852,13 +10667,16 @@ declare namespace LocalJSX { interface IntrinsicElements { "raisins-plop-target": RaisinsPlopTarget; "sqm-asset-card": SqmAssetCard; + "sqm-banking-info-form": SqmBankingInfoForm; "sqm-big-stat": SqmBigStat; "sqm-brand": SqmBrand; "sqm-card-feed": SqmCardFeed; "sqm-checkbox-field": SqmCheckboxField; "sqm-close-button": SqmCloseButton; + "sqm-context-router": SqmContextRouter; "sqm-coupon-code": SqmCouponCode; "sqm-divided-layout": SqmDividedLayout; + "sqm-docusign-form": SqmDocusignForm; "sqm-dropdown-field": SqmDropdownField; "sqm-edit-profile": SqmEditProfile; "sqm-empty": SqmEmpty; @@ -6869,8 +10687,16 @@ declare namespace LocalJSX { "sqm-hero-image": SqmHeroImage; "sqm-hook-story-container": SqmHookStoryContainer; "sqm-image": SqmImage; + "sqm-indirect-tax-form": SqmIndirectTaxForm; "sqm-input-field": SqmInputField; "sqm-instant-access-registration": SqmInstantAccessRegistration; + "sqm-invoice-table": SqmInvoiceTable; + "sqm-invoice-table-data-cell": SqmInvoiceTableDataCell; + "sqm-invoice-table-data-column": SqmInvoiceTableDataColumn; + "sqm-invoice-table-date-cell": SqmInvoiceTableDateCell; + "sqm-invoice-table-date-column": SqmInvoiceTableDateColumn; + "sqm-invoice-table-download-cell": SqmInvoiceTableDownloadCell; + "sqm-invoice-table-download-column": SqmInvoiceTableDownloadColumn; "sqm-leaderboard": SqmLeaderboard; "sqm-leaderboard-rank": SqmLeaderboardRank; "sqm-link-button": SqmLinkButton; @@ -6880,6 +10706,7 @@ declare namespace LocalJSX { "sqm-navigation-sidebar": SqmNavigationSidebar; "sqm-navigation-sidebar-item": SqmNavigationSidebarItem; "sqm-password-field": SqmPasswordField; + "sqm-payout-details-card": SqmPayoutDetailsCard; "sqm-popup-container": SqmPopupContainer; "sqm-portal-change-password": SqmPortalChangePassword; "sqm-portal-container": SqmPortalContainer; @@ -6937,11 +10764,14 @@ declare namespace LocalJSX { "sqm-table-row": SqmTableRow; "sqm-tabs": SqmTabs; "sqm-task-card": SqmTaskCard; + "sqm-tax-and-cash": SqmTaxAndCash; + "sqm-tax-and-cash-dashboard": SqmTaxAndCashDashboard; "sqm-text": SqmText; "sqm-text-span": SqmTextSpan; "sqm-timeline": SqmTimeline; "sqm-timeline-entry": SqmTimelineEntry; "sqm-titled-section": SqmTitledSection; + "sqm-user-info-form": SqmUserInfoForm; "sqm-user-name": SqmUserName; } } @@ -6951,13 +10781,16 @@ declare module "@stencil/core" { interface IntrinsicElements { "raisins-plop-target": LocalJSX.RaisinsPlopTarget & JSXBase.HTMLAttributes; "sqm-asset-card": LocalJSX.SqmAssetCard & JSXBase.HTMLAttributes; + "sqm-banking-info-form": LocalJSX.SqmBankingInfoForm & JSXBase.HTMLAttributes; "sqm-big-stat": LocalJSX.SqmBigStat & JSXBase.HTMLAttributes; "sqm-brand": LocalJSX.SqmBrand & JSXBase.HTMLAttributes; "sqm-card-feed": LocalJSX.SqmCardFeed & JSXBase.HTMLAttributes; "sqm-checkbox-field": LocalJSX.SqmCheckboxField & JSXBase.HTMLAttributes; "sqm-close-button": LocalJSX.SqmCloseButton & JSXBase.HTMLAttributes; + "sqm-context-router": LocalJSX.SqmContextRouter & JSXBase.HTMLAttributes; "sqm-coupon-code": LocalJSX.SqmCouponCode & JSXBase.HTMLAttributes; "sqm-divided-layout": LocalJSX.SqmDividedLayout & JSXBase.HTMLAttributes; + "sqm-docusign-form": LocalJSX.SqmDocusignForm & JSXBase.HTMLAttributes; "sqm-dropdown-field": LocalJSX.SqmDropdownField & JSXBase.HTMLAttributes; "sqm-edit-profile": LocalJSX.SqmEditProfile & JSXBase.HTMLAttributes; "sqm-empty": LocalJSX.SqmEmpty & JSXBase.HTMLAttributes; @@ -6968,8 +10801,16 @@ declare module "@stencil/core" { "sqm-hero-image": LocalJSX.SqmHeroImage & JSXBase.HTMLAttributes; "sqm-hook-story-container": LocalJSX.SqmHookStoryContainer & JSXBase.HTMLAttributes; "sqm-image": LocalJSX.SqmImage & JSXBase.HTMLAttributes; + "sqm-indirect-tax-form": LocalJSX.SqmIndirectTaxForm & JSXBase.HTMLAttributes; "sqm-input-field": LocalJSX.SqmInputField & JSXBase.HTMLAttributes; "sqm-instant-access-registration": LocalJSX.SqmInstantAccessRegistration & JSXBase.HTMLAttributes; + "sqm-invoice-table": LocalJSX.SqmInvoiceTable & JSXBase.HTMLAttributes; + "sqm-invoice-table-data-cell": LocalJSX.SqmInvoiceTableDataCell & JSXBase.HTMLAttributes; + "sqm-invoice-table-data-column": LocalJSX.SqmInvoiceTableDataColumn & JSXBase.HTMLAttributes; + "sqm-invoice-table-date-cell": LocalJSX.SqmInvoiceTableDateCell & JSXBase.HTMLAttributes; + "sqm-invoice-table-date-column": LocalJSX.SqmInvoiceTableDateColumn & JSXBase.HTMLAttributes; + "sqm-invoice-table-download-cell": LocalJSX.SqmInvoiceTableDownloadCell & JSXBase.HTMLAttributes; + "sqm-invoice-table-download-column": LocalJSX.SqmInvoiceTableDownloadColumn & JSXBase.HTMLAttributes; "sqm-leaderboard": LocalJSX.SqmLeaderboard & JSXBase.HTMLAttributes; "sqm-leaderboard-rank": LocalJSX.SqmLeaderboardRank & JSXBase.HTMLAttributes; "sqm-link-button": LocalJSX.SqmLinkButton & JSXBase.HTMLAttributes; @@ -6979,6 +10820,7 @@ declare module "@stencil/core" { "sqm-navigation-sidebar": LocalJSX.SqmNavigationSidebar & JSXBase.HTMLAttributes; "sqm-navigation-sidebar-item": LocalJSX.SqmNavigationSidebarItem & JSXBase.HTMLAttributes; "sqm-password-field": LocalJSX.SqmPasswordField & JSXBase.HTMLAttributes; + "sqm-payout-details-card": LocalJSX.SqmPayoutDetailsCard & JSXBase.HTMLAttributes; "sqm-popup-container": LocalJSX.SqmPopupContainer & JSXBase.HTMLAttributes; "sqm-portal-change-password": LocalJSX.SqmPortalChangePassword & JSXBase.HTMLAttributes; "sqm-portal-container": LocalJSX.SqmPortalContainer & JSXBase.HTMLAttributes; @@ -7036,11 +10878,14 @@ declare module "@stencil/core" { "sqm-table-row": LocalJSX.SqmTableRow & JSXBase.HTMLAttributes; "sqm-tabs": LocalJSX.SqmTabs & JSXBase.HTMLAttributes; "sqm-task-card": LocalJSX.SqmTaskCard & JSXBase.HTMLAttributes; + "sqm-tax-and-cash": LocalJSX.SqmTaxAndCash & JSXBase.HTMLAttributes; + "sqm-tax-and-cash-dashboard": LocalJSX.SqmTaxAndCashDashboard & JSXBase.HTMLAttributes; "sqm-text": LocalJSX.SqmText & JSXBase.HTMLAttributes; "sqm-text-span": LocalJSX.SqmTextSpan & JSXBase.HTMLAttributes; "sqm-timeline": LocalJSX.SqmTimeline & JSXBase.HTMLAttributes; "sqm-timeline-entry": LocalJSX.SqmTimelineEntry & JSXBase.HTMLAttributes; "sqm-titled-section": LocalJSX.SqmTitledSection & JSXBase.HTMLAttributes; + "sqm-user-info-form": LocalJSX.SqmUserInfoForm & JSXBase.HTMLAttributes; "sqm-user-name": LocalJSX.SqmUserName & JSXBase.HTMLAttributes; } } diff --git a/packages/mint-components/src/components/sqm-asset-card/readme.md b/packages/mint-components/src/components/sqm-asset-card/readme.md index fc56c3a150..bae1dd3ddb 100644 --- a/packages/mint-components/src/components/sqm-asset-card/readme.md +++ b/packages/mint-components/src/components/sqm-asset-card/readme.md @@ -7,11 +7,11 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| ----------- | ------------ | ----------- | ----------------------------------------------------- | ----------- | -| `demoData` | -- | | `{ text?: { titleText: string; }; imgUrl?: string; }` | `undefined` | -| `imgUrl` | `img-url` | | `string` | `undefined` | -| `titleText` | `title-text` | | `string` | `undefined` | +| Property | Attribute | Description | Type | Default | +| ----------- | ------------ | ----------- | ---------------------- | ----------- | +| `demoData` | -- | | `{ imgUrl?: string; }` | `undefined` | +| `imgUrl` | `img-url` | | `string` | `undefined` | +| `titleText` | `title-text` | | `string` | `undefined` | ---------------------------------------------- diff --git a/packages/mint-components/src/components/sqm-big-stat/UseBigStat.stories.tsx b/packages/mint-components/src/components/sqm-big-stat/UseBigStat.stories.tsx index f07a613a7f..39410a7e0b 100644 --- a/packages/mint-components/src/components/sqm-big-stat/UseBigStat.stories.tsx +++ b/packages/mint-components/src/components/sqm-big-stat/UseBigStat.stories.tsx @@ -331,3 +331,7 @@ export const GeneratedRevenue = createHookStory(() => export const ReferredRevenue = createHookStory(() => View("/userStats/referredRevenue", "/(userStat)/:statId", "Referred Revenue") ); + +export const PayoutBalance = createHookStory(() => + View("/payoutBalance", "/(payoutBalance)") +); diff --git a/packages/mint-components/src/components/sqm-big-stat/readme.md b/packages/mint-components/src/components/sqm-big-stat/readme.md index e228e2cb85..452c413eec 100644 --- a/packages/mint-components/src/components/sqm-big-stat/readme.md +++ b/packages/mint-components/src/components/sqm-big-stat/readme.md @@ -10,7 +10,7 @@ | Property | Attribute | Description | Type | Default | | ------------- | -------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | | `alignment` | `alignment` | Controls the alignment of the flexbox | `"center" \| "left" \| "right"` | `undefined` | -| `demoData` | -- | | `{ value?: number; statvalue?: string; loading?: boolean; flexReverse?: boolean; alignment?: "left" \| "right" \| "center"; labelSlot?: VNode; }` | `undefined` | +| `demoData` | -- | | `{ loading?: boolean; value?: number; statvalue?: string; flexReverse?: boolean; alignment?: "left" \| "right" \| "center"; labelSlot?: VNode; }` | `undefined` | | `flexReverse` | `flex-reverse` | Controls the order of the stat value & description column | `boolean` | `false` | | `programId` | `program-id` | The ID of the program that is used to scope stats. Defaults to the program context when no ID is specified. | `string` | `undefined` | | `statType` | `stat-type` | Select what type of stat to display. Manual paths are also supported. | `string` | `undefined` | diff --git a/packages/mint-components/src/components/sqm-big-stat/useBigStat.tsx b/packages/mint-components/src/components/sqm-big-stat/useBigStat.tsx index a49ac2e26c..ddacd3f7cc 100644 --- a/packages/mint-components/src/components/sqm-big-stat/useBigStat.tsx +++ b/packages/mint-components/src/components/sqm-big-stat/useBigStat.tsx @@ -892,6 +892,34 @@ const userStatsQuery = (_programId, _locale, statId) => { ); }; +const payoutBalanceQuery = () => { + return debugQuery( + gql` + query payoutBalance { + viewer: viewer { + ... on User { + publisher { + payoutsAccount { + balance + } + } + } + } + } + `, + {}, + (res) => { + const fallback = 0; + const balance = res.data?.viewer?.publisher?.payoutsAccount?.balance; + + const balanceText = `${balance || fallback}`; + return { + value: balance || fallback, + statvalue: balanceText, + }; + } + ); +}; // functions are of the form (programId: string, ...args: string) => string export const queries: { [key: string]: { @@ -978,6 +1006,10 @@ export const queries: { label: "User Stat", query: userStatsQuery, }, + payoutBalance: { + label: "Payout Balance", + query: payoutBalanceQuery, + }, }; // this should be exposed in documentation somehow @@ -1037,6 +1069,10 @@ export const StatPaths = [ name: "userStats", route: "/(userStats)/:statId", }, + { + name: "payoutBalance", + route: "/(payoutBalance)", + }, ]; export const StatPatterns = StatPaths.map((pattern) => diff --git a/packages/mint-components/src/components/sqm-context-router/ContextRouter.tsx b/packages/mint-components/src/components/sqm-context-router/ContextRouter.tsx new file mode 100644 index 0000000000..ff1571a30d --- /dev/null +++ b/packages/mint-components/src/components/sqm-context-router/ContextRouter.tsx @@ -0,0 +1,175 @@ +import { navigation } from "@saasquatch/component-boilerplate"; +import { useState } from "@saasquatch/stencil-hooks"; +import { h } from "@stencil/core"; +import { createHookStory } from "../sqm-stencilbook/HookStoryAddon"; + +export default { + title: "Tests/Router", +}; + +const templates = ` + + + + +`; + +const routes = ` +

foo

+ +

These elements don't produce a specific box by themselves. They are replaced by their pseudo-box and their child boxes. Please note that the CSS Display Level 3 spec defines how the contents value should affect "unusual elements" — elements that aren’t rendered purely by CSS box concepts such as replaced elements. See Appendix B: Effects of display: contents on Unusual Elements for more details. + + Due to a bug in browsers this will currently remove the element from the accessibility tree — screen readers will not look at what's inside. See the Accessibility concerns section below for more details.

+
+

bar

+

Turns off the display of an element so that it has no effect on layout (the document is rendered as though the element did not exist). All descendant elements also have their display turned off. + To have an element take up the space that it would normally take, but without actually rendering anything, use the visibility property instead.

+
+

baz/bang

+
+    ▄▄▄▄▄▄▄░▄▄▄▄▄▄▄░▄▄▄▄▄▄░▄▄▄▄▄
+    ░░▀███░░░░▀██░░░░██▀░░░░██░░
+    ░░░▀██░░░░░▀██░░▄█░░░░░▄█░░░
+    ░░░░███░░░░░▀██▄█░░░░░░█░░░░
+    ░░░░░███░░░░░▀██░░░░░░█▀░░░░
+    ░░░░░░███░░░░▄███░░░░█▀░░░░░
+    ░░░░░░░██▄░░▄▀░███░░█▀░░░░░░
+    ░░░░░░░▀██▄█▀░░░███▄▀░░░░░░░
+    ░░░░░░░░▀██▀░░░░░███░░░░░░░░
+    ░░░░░░░░░▀▀░░░░░░░▀░░░░░░░░░
+    
+
+

/refer/:page

+
+      refer/:page
+    
+
+`; + +export const TemplateNavigation = createHookStory(() => { + return ( +
+ + + + + + + + + +
+ +
+ ); +}); + +export const RouteNavigation = createHookStory(() => { + return ( +
+ + + + + + + + + +
+ +
+ ); +}); + +export const Styling = createHookStory(() => { + return ( +
+ + +
+
+ + +
Column 1
+
Column 2
+ `} + >
+
+
+ ); +}); + +function useTemplate(templateString: string) { + const [editedTemplate, setEditedTemplate] = useState(templateString); + const [previewTemplate, setPreviewTemplate] = useState(templateString); + function setPath(e: Event) { + //@ts-ignore + navigation.push(e.target.value); + } + return { + states: { previewTemplate, editedTemplate }, + callbacks: { setEditedTemplate, setPreviewTemplate, setPath }, + }; +} + +const defaultRouter = ` + + + +`; + +function TemplateView(props) { + const { states, callbacks } = props; + return [ + , + , + , +
, + ]; +} + +export const RouterPlayground = createHookStory(() => { + const { states, callbacks } = useTemplate(defaultRouter); + return ; +}); diff --git a/packages/mint-components/src/components/sqm-context-router/readme.md b/packages/mint-components/src/components/sqm-context-router/readme.md new file mode 100644 index 0000000000..af3ddfde62 --- /dev/null +++ b/packages/mint-components/src/components/sqm-context-router/readme.md @@ -0,0 +1,17 @@ +# sqm-router + + + + + + +## Properties + +| Property | Attribute | Description | Type | Default | +| ------------- | -------------- | ----------- | -------- | ----------- | +| `contextName` | `context-name` | | `string` | `undefined` | + + +---------------------------------------------- + +*Built with [StencilJS](https://stenciljs.com/)* diff --git a/packages/mint-components/src/components/sqm-context-router/sqm-context-router.css b/packages/mint-components/src/components/sqm-context-router/sqm-context-router.css new file mode 100644 index 0000000000..fdb1c96c3f --- /dev/null +++ b/packages/mint-components/src/components/sqm-context-router/sqm-context-router.css @@ -0,0 +1,7 @@ +sqm-router { + /** + Acts like a slot, doesn't provide it's own box + see: https://developer.mozilla.org/en-US/docs/Web/CSS/display#box + **/ + display: contents; +} diff --git a/packages/mint-components/src/components/sqm-context-router/sqm-context-router.e2e.ts b/packages/mint-components/src/components/sqm-context-router/sqm-context-router.e2e.ts new file mode 100644 index 0000000000..3a6e29842d --- /dev/null +++ b/packages/mint-components/src/components/sqm-context-router/sqm-context-router.e2e.ts @@ -0,0 +1,266 @@ +import { E2EPage, newE2EPage } from "@stencil/core/testing"; + +function newRoute(id: string, path: string) { + return /*html*/ ` + +
+
`; +} + +function newTemplate(id: string, path: string) { + return /*html*/ ` + `; +} + +function newPageFunctions(page: Readonly) { + return { + expectElement: async (selector: string) => + // convert to string because jest pretty printing the object causes errors + expect((await page.find(selector))?.id).not.toBeUndefined(), + dontExpectElement: async (selector: string) => + expect((await page.find(selector))?.id).toBeUndefined(), + expectTemplate: async (selector: string) => + expect((await page.find("#" + selector))?.id).not.toBeUndefined(), + dontExpectTemplate: async (selector: string) => + expect((await page.find("#" + selector))?.id).toBeUndefined(), + expectRoute: async (selector: string) => + expect( + (await page.find('div[style="display: contents;"] > div#' + selector)) + ?.id + ).not.toBeUndefined(), + dontExpectRoute: async (selector: string) => + expect( + (await page.find('div[style="display: contents;"] > div#' + selector)) + ?.id + ).toBeUndefined(), + history: { + push: (path: string) => + page.evaluate((x) => window.squatchHistory.push(x), path), + back: () => page.evaluate(() => window.squatchHistory.back()), + }, + }; +} + +describe("sqm-router", () => { + test("Default route", async () => { + const html = /*html*/ ` + + ${newRoute("RouteA", "/")} + ${newRoute("RouteB", "/B")} + + `; + + const page = await newE2EPage(); + await page.setContent(html); + + const { expectElement, expectRoute, dontExpectRoute } = newPageFunctions( + page + ); + + await expectElement("sqm-router"); + + await expectRoute("RouteA"); + await dontExpectRoute("RouteB"); + + page.close(); + }); + + test("Changing pages", async () => { + const html = /*html*/ ` + + ${newRoute("RouteA", "/")} + ${newRoute("RouteB", "/B")} + + `; + + const page = await newE2EPage(); + await page.setContent(html); + + const { + expectElement, + expectRoute, + dontExpectRoute, + history, + } = newPageFunctions(page); + + await expectElement("sqm-router"); + + await expectRoute("RouteA"); + await dontExpectRoute("RouteB"); + + await history.push("/B"); + await page.waitForChanges(); + + await dontExpectRoute("RouteA"); + await expectRoute("RouteB"); + + await history.push("/"); + await page.waitForChanges(); + + await expectRoute("RouteA"); + await dontExpectRoute("RouteB"); + + page.close(); + }); + + test("Going back", async () => { + const html = /*html*/ ` + + ${newRoute("RouteA", "/")} + ${newRoute("RouteB", "/B")} + ${newRoute("RouteC", "/C")} + + `; + + const page = await newE2EPage(); + await page.setContent(html); + + const { + expectElement, + expectRoute, + dontExpectRoute, + history, + } = newPageFunctions(page); + + await expectElement("sqm-router"); + + await expectRoute("RouteA"); + await dontExpectRoute("RouteB"); + await dontExpectRoute("RouteC"); + + await history.push("/B"); + await page.waitForChanges(); + + await dontExpectRoute("RouteA"); + await expectRoute("RouteB"); + await dontExpectRoute("RouteC"); + + await history.push("/C"); + await page.waitForChanges(); + + await dontExpectRoute("RouteA"); + await dontExpectRoute("RouteB"); + await expectRoute("RouteC"); + + await history.back(); + await page.waitForChanges(); + + await dontExpectRoute("RouteA"); + await expectRoute("RouteB"); + await dontExpectRoute("RouteC"); + + await history.back(); + await page.waitForChanges(); + + await expectRoute("RouteA"); + await dontExpectRoute("RouteB"); + await dontExpectRoute("RouteC"); + + page.close(); + }); + + test("Template has precedence over route", async () => { + const html = /*html*/ ` + + ${newRoute("RouteA", "/")} + ${newTemplate("RouteB", "/")} + ${newRoute("RouteC", "/B")} + + `; + + const page = await newE2EPage(); + await page.setContent(html); + + const { + expectElement, + expectTemplate, + dontExpectTemplate, + expectRoute, + dontExpectRoute, + history, + } = newPageFunctions(page); + + await expectElement("sqm-router"); + + await dontExpectRoute("RouteA"); + await expectTemplate("RouteB"); + await dontExpectRoute("RouteC"); + + await history.push("/B"); + await page.waitForChanges(); + + await dontExpectRoute("RouteA"); + await dontExpectTemplate("RouteB"); + await expectRoute("RouteC"); + + await history.push("/"); + await page.waitForChanges(); + + await dontExpectRoute("RouteA"); + await expectTemplate("RouteB"); + await dontExpectRoute("RouteC"); + + page.close(); + }); + + test("First matching element is chosen, with precedence", async () => { + const html = /*html*/ ` + + ${newRoute("RootA", "/")} + ${newRoute("RootB", "/")} + ${newTemplate("RootC", "/")} + ${newTemplate("RootD", "/")} + ${newRoute("StuffA", "/stuff")} + ${newRoute("StuffB", "/stuff")} + + `; + + const page = await newE2EPage(); + await page.setContent(html); + + const { + expectElement, + expectTemplate, + dontExpectTemplate, + expectRoute, + dontExpectRoute, + history, + } = newPageFunctions(page); + + await expectElement("sqm-router"); + + await dontExpectRoute("RootA"); + await dontExpectRoute("RootB"); + await expectTemplate("RootC"); + await dontExpectTemplate("RootD"); + await dontExpectRoute("StuffA"); + await dontExpectRoute("StuffB"); + + await history.push("/stuff"); + await page.waitForChanges(); + + await dontExpectRoute("RootA"); + await dontExpectRoute("RootB"); + await dontExpectTemplate("RootC"); + await dontExpectTemplate("RootD"); + await expectRoute("StuffA"); + await dontExpectRoute("StuffB"); + + await history.push("/"); + await page.waitForChanges(); + + await dontExpectRoute("RootA"); + await dontExpectRoute("RootB"); + await expectTemplate("RootC"); + await dontExpectTemplate("RootD"); + await dontExpectRoute("StuffA"); + await dontExpectRoute("StuffB"); + + page.close(); + }); +}); + +// nice debugging tool +// console.log(await page.evaluate(()=>document.body.innerHTML)) diff --git a/packages/mint-components/src/components/sqm-context-router/sqm-context-router.tsx b/packages/mint-components/src/components/sqm-context-router/sqm-context-router.tsx new file mode 100644 index 0000000000..d8bc9b0db9 --- /dev/null +++ b/packages/mint-components/src/components/sqm-context-router/sqm-context-router.tsx @@ -0,0 +1,38 @@ +import { withHooks } from "@saasquatch/stencil-hooks"; +import { Component, Host, Prop, State, h } from "@stencil/core"; +import { getProps } from "../../utils/utils"; +import { useContextRouter } from "./useContextRouter"; + +/** + * @uiName Context Router + * @slots [{"name":"","title":"Routes"}] + */ +@Component({ + tag: "sqm-context-router", + styleUrl: "sqm-context-router.css", +}) +export class SqmContextRouter { + @State() + ignored = true; + + @Prop() + contextName: string; + + constructor() { + withHooks(this); + } + + disconnectedCallback() {} + + render() { + const { callbacks } = useContextRouter(getProps(this)); + return ( + +
+ +
+
+
+ ); + } +} diff --git a/packages/mint-components/src/components/sqm-context-router/useContextRouter.ts b/packages/mint-components/src/components/sqm-context-router/useContextRouter.ts new file mode 100644 index 0000000000..58ba2d7100 --- /dev/null +++ b/packages/mint-components/src/components/sqm-context-router/useContextRouter.ts @@ -0,0 +1,95 @@ +import { useCurrentPage, useHost } from "@saasquatch/component-boilerplate"; +import { useEffect, useState } from "@saasquatch/universal-hooks"; +import debugFn from "debug"; +import { pathToRegexp } from "path-to-regexp"; +import { SqmContextRouter } from "./sqm-context-router"; +import { useDomContext } from "@saasquatch/stencil-hooks"; +const debug = debugFn("sq:useRouter"); + +export type Route = { + path: string; +}; + +function matchPath(pattern: string, page: string) { + if (!pattern) return; + const regexp = pathToRegexp(pattern); + return regexp.exec(page); +} + +export function useContextRouter(props: SqmContextRouter) { + const host = useHost(); + const [slot, setSlot] = useState(undefined); + const [container, setContainer] = useState(undefined); + + const context = props.contextName; + + const page = useDomContext(context); + + // convert sqm-routes into templates + useEffect(() => { + const routes = host.querySelectorAll(`sqm-route`); + const routesArray = Array.from(routes); + routesArray.forEach((route) => { + const newTemplate = document.createElement("template"); + newTemplate.setAttribute("path", route.path); + newTemplate.innerHTML = route.innerHTML; + route.parentNode.appendChild(newTemplate); + route.parentNode.removeChild(route); + }); + }, []); + + useEffect(() => { + if (!container || !slot) { + debug("DOM not ready for navigation rendering on:", page); + return; + } + + //