+
{statusText}
diff --git a/packages/mint-components/src/components/sqm-rewards-table/columns/RewardTableColumn.tsx b/packages/mint-components/src/components/sqm-rewards-table/columns/RewardTableColumn.tsx
index 6372c80b21..db9b23081c 100644
--- a/packages/mint-components/src/components/sqm-rewards-table/columns/RewardTableColumn.tsx
+++ b/packages/mint-components/src/components/sqm-rewards-table/columns/RewardTableColumn.tsx
@@ -1,4 +1,5 @@
import { VNode } from "@stencil/core";
+import { ImpactConnection, Reward } from "../../../saasquatch";
export interface RewardTableColumn {
renderLabel(idx?: number): Promise;
diff --git a/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-date-column.tsx b/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-date-column.tsx
index 32863f2751..f6f6cf416d 100644
--- a/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-date-column.tsx
+++ b/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-date-column.tsx
@@ -1,5 +1,6 @@
import { withHooks } from "@saasquatch/stencil-hooks";
import { Component, h, Host, Method, Prop } from "@stencil/core";
+import { Reward } from "../../../saasquatch";
import { useRequestRerender } from "../../../tables/re-render";
import { RewardTableColumn } from "./RewardTableColumn";
@@ -7,7 +8,7 @@ import { RewardTableColumn } from "./RewardTableColumn";
* @uiName Reward Table Date Column
* @validParents ["sqm-rewards-table"]
* @exampleGroup Rewards
- * @example Reward Table Date Column -
+ * @example Date Column -
*/
@Component({
tag: "sqm-rewards-table-date-column",
diff --git a/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-note-column.tsx b/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-note-column.tsx
index 9194c7e005..6aca10a21d 100644
--- a/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-note-column.tsx
+++ b/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-note-column.tsx
@@ -1,5 +1,6 @@
import { withHooks } from "@saasquatch/stencil-hooks";
import { Component, h, Host, Method, Prop } from "@stencil/core";
+import { Reward } from "../../../saasquatch";
import { useRequestRerender } from "../../../tables/re-render";
import { RewardTableColumn } from "./RewardTableColumn";
@@ -7,7 +8,7 @@ import { RewardTableColumn } from "./RewardTableColumn";
* @uiName Reward Table Customer Note Column
* @validParents ["sqm-rewards-table"]
* @exampleGroup Rewards
- * @example Reward Table Customer Note Column -
+ * @example Customer Note Column -
*/
@Component({
tag: "sqm-rewards-table-customer-note-column",
diff --git a/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-reward-column.tsx b/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-reward-column.tsx
index f61378edff..2a88926a51 100644
--- a/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-reward-column.tsx
+++ b/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-reward-column.tsx
@@ -1,12 +1,13 @@
import { withHooks } from "@saasquatch/stencil-hooks";
import { Component, h, Host, Method, Prop } from "@stencil/core";
+import { Reward } from "../../../saasquatch";
import { useRequestRerender } from "../../../tables/re-render";
import { RewardTableColumn } from "./RewardTableColumn";
/**
* @uiName Rewards Table Reward Column
* @validParents ["sqm-rewards-table"]
* @exampleGroup Rewards
- * @example Rewards Table Reward Column -
+ * @example Reward Column -
*/
@Component({
tag: "sqm-rewards-table-reward-column",
diff --git a/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-source-column.tsx b/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-source-column.tsx
index 3d320bcac1..9b43e98426 100644
--- a/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-source-column.tsx
+++ b/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-source-column.tsx
@@ -1,5 +1,6 @@
import { withHooks } from "@saasquatch/stencil-hooks";
import { Component, h, Host, Method, Prop } from "@stencil/core";
+import { Reward } from "../../../saasquatch";
import { useRequestRerender } from "../../../tables/re-render";
import { RewardTableColumn } from "./RewardTableColumn";
diff --git a/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-status-column.tsx b/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-status-column.tsx
index 1efb6f42f7..f4a4a71bab 100644
--- a/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-status-column.tsx
+++ b/packages/mint-components/src/components/sqm-rewards-table/columns/sqm-rewards-table-status-column.tsx
@@ -1,5 +1,6 @@
import { withHooks } from "@saasquatch/stencil-hooks";
import { Component, h, Host, Method, Prop } from "@stencil/core";
+import { ImpactConnection, Reward } from "../../../saasquatch";
import { useRequestRerender } from "../../../tables/re-render";
import { RewardTableColumn } from "./RewardTableColumn";
diff --git a/packages/mint-components/src/components/sqm-rewards-table/mockRewardData.ts b/packages/mint-components/src/components/sqm-rewards-table/mockRewardData.ts
index ebd0a7b60b..f39b2911b2 100644
--- a/packages/mint-components/src/components/sqm-rewards-table/mockRewardData.ts
+++ b/packages/mint-components/src/components/sqm-rewards-table/mockRewardData.ts
@@ -1,4 +1,5 @@
import { DateTime } from "luxon";
+import { Reward } from "../../saasquatch";
export default (count = 4, status = undefined) => {
const data = [...Array(count)].map(() => getMockData(status)) as Reward[];
diff --git a/packages/mint-components/src/components/sqm-rewards-table/mockTaxData.ts b/packages/mint-components/src/components/sqm-rewards-table/mockTaxData.ts
index 853c95458e..59afe0ab4d 100644
--- a/packages/mint-components/src/components/sqm-rewards-table/mockTaxData.ts
+++ b/packages/mint-components/src/components/sqm-rewards-table/mockTaxData.ts
@@ -1,3 +1,5 @@
+import { ImpactConnection } from "../../saasquatch";
+
export default (): ImpactConnection => {
return {
connected: true,
diff --git a/packages/mint-components/src/components/sqm-rewards-table/sqm-rewards-table.tsx b/packages/mint-components/src/components/sqm-rewards-table/sqm-rewards-table.tsx
index 820e088495..f8180e4a56 100644
--- a/packages/mint-components/src/components/sqm-rewards-table/sqm-rewards-table.tsx
+++ b/packages/mint-components/src/components/sqm-rewards-table/sqm-rewards-table.tsx
@@ -1,6 +1,6 @@
import { isDemo } from "@saasquatch/component-boilerplate";
import { withHooks } from "@saasquatch/stencil-hooks";
-import { useEffect, useReducer, useMemo } from "@saasquatch/universal-hooks";
+import { useEffect, useMemo, useReducer } from "@saasquatch/universal-hooks";
import { Component, h, Prop, VNode } from "@stencil/core";
import deepmerge from "deepmerge";
import { DemoData } from "../../global/demo";
@@ -15,10 +15,12 @@ import {
import { useChildElements } from "../../tables/useChildElements";
import mockRewardData from "./mockRewardData";
+import { Referral } from "../../saasquatch";
import { tryMethod, useRewardsTable } from "./useRewardsTable";
/**
* @uiName Reward Table
+ * @validParents ["sqm-portal-container","div","sqm-divided-layout","sqm-brand","template","sqm-hero","sqm-tab","sqb-program-section","sqb-conditional-section"]
* @exampleGroup Rewards
* @slots [{"name":"", "title":"Table Row"},{"name":"empty", "title":"Empty"},{"name":"loading","title":"Loading"}]
* @example Reward Table -
diff --git a/packages/mint-components/src/components/sqm-rewards-table/useRewardsTable.tsx b/packages/mint-components/src/components/sqm-rewards-table/useRewardsTable.tsx
index adfb60b1a6..b000379212 100644
--- a/packages/mint-components/src/components/sqm-rewards-table/useRewardsTable.tsx
+++ b/packages/mint-components/src/components/sqm-rewards-table/useRewardsTable.tsx
@@ -7,15 +7,14 @@ import {
} from "@saasquatch/component-boilerplate";
import { useEffect, useReducer } from "@saasquatch/universal-hooks";
import { h, VNode } from "@stencil/core";
+import debugFn from "debug";
import { gql } from "graphql-request";
+import { ImpactConnection, Reward } from "../../saasquatch";
+import { GenericTableViewProps } from "../../tables/GenericTableView";
import { useRerenderListener } from "../../tables/re-render";
-import { RewardsTable } from "./sqm-rewards-table";
import { useChildElements } from "../../tables/useChildElements";
import { generateUserError } from "../sqm-referral-table/useReferralTable";
-import { GenericTableViewProps } from "../../tables/GenericTableView";
-import debugFn from "debug";
-import mockRewardData from "./mockRewardData";
-import mockTaxData from "./mockTaxData";
+import { RewardsTable } from "./sqm-rewards-table";
const debug = debugFn("sq:useRewardsTable");
export const CSS_NAMESPACE = "sqm-rewards-table";
diff --git a/packages/mint-components/src/components/sqm-route/sqm-route.tsx b/packages/mint-components/src/components/sqm-route/sqm-route.tsx
index b2408cc4d6..b8f5d3ec4e 100644
--- a/packages/mint-components/src/components/sqm-route/sqm-route.tsx
+++ b/packages/mint-components/src/components/sqm-route/sqm-route.tsx
@@ -5,6 +5,7 @@ export interface RouteProps {
/**
* @uiName Route
+ * @validParents ["sqm-portal-container","div","sqm-divided-layout","sqm-brand","template","sqm-hero","sqm-tab"]
* @slots [{"name":"","title":"Content"}]
*/
@Component({
diff --git a/packages/mint-components/src/components/sqm-router/sqm-router.tsx b/packages/mint-components/src/components/sqm-router/sqm-router.tsx
index d180528112..6df2e86c51 100644
--- a/packages/mint-components/src/components/sqm-router/sqm-router.tsx
+++ b/packages/mint-components/src/components/sqm-router/sqm-router.tsx
@@ -4,6 +4,8 @@ import { useRouter } from "./useRouter";
/**
* @uiName Router
+ * @validParents ["sqm-portal-container","div","sqm-divided-layout","sqm-brand","template","sqm-hero","sqm-tab", "sqb-program-section", "sqb-conditional-section"]
+ * @validChildren ["sqm-route"]
* @slots [{"name":"","title":"Routes"}]
*/
@Component({
diff --git a/packages/mint-components/src/components/sqm-scroll/readme.md b/packages/mint-components/src/components/sqm-scroll/readme.md
index 9a3fba3a7e..5ec8ef920d 100644
--- a/packages/mint-components/src/components/sqm-scroll/readme.md
+++ b/packages/mint-components/src/components/sqm-scroll/readme.md
@@ -5,20 +5,19 @@
## Properties
-| Property | Attribute | Description | Type | Default |
-| ----------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ----------- |
-| `buttonText` | `button-text` | | `string` | `undefined` |
-| `buttonType` | `button-type` | | `"danger" \| "default" \| "neutral" \| "primary" \| "success" \| "text" \| "warning"` | `"default"` |
-| `circle` | `circle` | Draws a circle button. | `boolean` | `undefined` |
-| `iconName` | `icon-name` | Full list of valid icon names available in the [Shoelace Icon Library](https://shoelace.style/components/icon). This value is case sensitive. | `string` | `undefined` |
-| `iconSlot` | `icon-slot` | | `string` | `undefined` |
-| `mobile` | `mobile` | The button becomes full width if the screen size is smaller than 500px | `boolean` | `undefined` |
-| `outline` | `outline` | Draws an outlined button. | `boolean` | `undefined` |
-| `pill` | `pill` | Draws a pill-style button with rounded edges. | `boolean` | `undefined` |
-| `scrollAnimation` | `scroll-animation` | | `"auto" \| "smooth"` | `"smooth"` |
-| `scrollId` | `scroll-id` | ID applied to the HTML tag you would like to scroll to. E.g tab-1 | `string` | `undefined` |
-| `scrollTagName` | `scroll-tag-name` | The name of the HTML tag you would like to scroll to. E.g referral-table | `string` | `undefined` |
-| `size` | `size` | | `string` | `undefined` |
+| Property | Attribute | Description | Type | Default |
+| ----------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ----------- |
+| `buttonText` | `button-text` | | `string` | `undefined` |
+| `circle` | `circle` | Draws a circle button. | `boolean` | `undefined` |
+| `iconName` | `icon-name` | Full list of valid icon names available in the [Shoelace Icon Library](https://shoelace.style/components/icon). This value is case sensitive. | `string` | `undefined` |
+| `iconSlot` | `icon-slot` | | `string` | `undefined` |
+| `mobile` | `mobile` | The button becomes full width if the screen size is smaller than 500px | `boolean` | `undefined` |
+| `outline` | `outline` | Draws an outlined button. | `boolean` | `undefined` |
+| `pill` | `pill` | Draws a pill-style button with rounded edges. | `boolean` | `undefined` |
+| `scrollAnimation` | `scroll-animation` | | `"auto" \| "smooth"` | `"smooth"` |
+| `scrollId` | `scroll-id` | ID applied to the HTML tag you would like to scroll to. E.g tab-1 | `string` | `undefined` |
+| `scrollTagName` | `scroll-tag-name` | The name of the HTML tag you would like to scroll to. E.g referral-table | `string` | `undefined` |
+| `size` | `size` | | `string` | `undefined` |
## Dependencies
diff --git a/packages/mint-components/src/components/sqm-scroll/sqm-scroll.tsx b/packages/mint-components/src/components/sqm-scroll/sqm-scroll.tsx
index f683ce85be..a0656286eb 100644
--- a/packages/mint-components/src/components/sqm-scroll/sqm-scroll.tsx
+++ b/packages/mint-components/src/components/sqm-scroll/sqm-scroll.tsx
@@ -5,6 +5,7 @@ import { createStyleSheet } from "../../styling/JSS";
/**
* @uiName Scroll Button
+ * @validParents ["sqm-portal-container","div","sqm-divided-layout","sqm-brand","template","sqm-hero","sqm-tab","sqb-program-section","sqb-conditional-section"]
* @slots [{"name":"", "title":"Button Content"}]
* @slotEditor richText
*/
@@ -16,22 +17,6 @@ export class Scroll {
@State()
ignored = true;
- /**
- * @uiName Button type
- * @uiType string
- * @uiEnum ["default", "primary", "success", "neutral", "warning", "danger", "text"]
- * @uiEnumNames ["Default", "Primary", "Success", "Neutral", "Warning", "Danger", "Text"]
-
- */
- @Prop() buttonType:
- | "default"
- | "primary"
- | "success"
- | "neutral"
- | "warning"
- | "danger"
- | "text" = "default";
-
/**
* @uiName Button text
*/
@@ -116,86 +101,42 @@ export class Scroll {
render() {
const { callbacks } = useScroll(this);
- const outlineColor = this.buttonType ?? "primary";
- const style = {
- Button: {
- "& .outline": {
- "&::part(base)": {
- color: "var(--sl-color-" + outlineColor + "-500)",
- borderColor: "var(--sl-color-" + outlineColor + "-500)",
- backgroundColor: "transparent",
- "&:hover": {
- color: "var(--sl-color-primary-text)",
- backgroundColor: "var(--sl-color-" + outlineColor + "-500)",
- },
- },
- },
- "& .neutral": {
- "&::part(base)": {
- color: "var(--sl-color-primary-text)",
- background: "var(--sl-color-neutral-500)",
- "&:hover": {
- opacity: "0.8",
- },
- },
- },
- "& .mobile": {
- "@media (max-width: 499px)": {
- width: "100%",
- },
- },
- },
- };
-
- const sheet = createStyleSheet(style);
- const styleString = sheet.toString();
-
- const vanillaStyle = `
- :host{
- display: contents;
- }
- ${
- this.mobile &&
- `
- @media only screen and (max-width: 499px) {
- :host {
- display: block;
- width: 100%;
- }
- }
- `
+ const vanillaStyleString = `
+ *::part(secondarybutton-base),
+ sl-button[type="secondary"]::part(base) {
+ font-family: var(--sqm-primary-font);
+ background-color: var(--sqm-secondary-button-background);
+ color: var(--sqm-secondary-button-color);
+ border-color: var(--sqm-secondary-button-color-border);
+ border-radius: var(--sqm-secondary-button-radius);
}
- `;
-
- let classStack = "";
- if (this.outline && this.buttonType != "default") classStack += "outline ";
- if (this.buttonType === "neutral") classStack += "neutral ";
- if (this.mobile) classStack += "mobile ";
+ *::part(secondarybutton-base):hover,
+ sl-button[type="secondary"]::part(base):hover {
+ background-color: var(--sqm-secondary-button-background-hover);
+ color: var(--sqm-secondary-button-color-hover);
+ border-color: var(--sqm-secondary-button-border-color-hover);
+ }
+ `;
return (
-
-
-
- {(this.iconSlot || this.iconName) && (
-
- )}
- {this.buttonText}
-
-
-
+
+
+ {(this.iconSlot || this.iconName) && (
+
+ )}
+ {this.buttonText}
+
+
);
}
}
diff --git a/packages/mint-components/src/components/sqm-share-button/ShareButton.stories.tsx b/packages/mint-components/src/components/sqm-share-button/ShareButton.stories.tsx
index cf451b65c8..64ef0bab80 100644
--- a/packages/mint-components/src/components/sqm-share-button/ShareButton.stories.tsx
+++ b/packages/mint-components/src/components/sqm-share-button/ShareButton.stories.tsx
@@ -53,13 +53,15 @@ export const TextStyleWithoutIcon = () => {
return Share;
};
-export const WithCustomColors = () => {
+export const WithCustomColorsAndBranding = () => {
const props = {
medium: "facebook",
type: "text",
backgroundcolor: "red",
textcolor: "yellow",
iconslot: "prefix",
+ border: "2px solid yellow",
+ borderradius: 30,
} as const;
return Facebook;
};
diff --git a/packages/mint-components/src/components/sqm-share-button/readme.md b/packages/mint-components/src/components/sqm-share-button/readme.md
index 2ecd38695c..2e0d6d7ec3 100644
--- a/packages/mint-components/src/components/sqm-share-button/readme.md
+++ b/packages/mint-components/src/components/sqm-share-button/readme.md
@@ -7,26 +7,27 @@
## Properties
-| Property | Attribute | Description | Type | Default |
-| ------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
-| `backgroundcolor` | `backgroundcolor` | | `string` | `undefined` |
-| `borderradius` | `borderradius` | Configure border radius with pixel amount | `number` | `undefined` |
-| `demoData` | -- | | `{ loading?: boolean; icon?: string; disabled?: boolean; onClick?: () => void; medium?: "facebook" \| "twitter" \| "email" \| "direct" \| "linkedin" \| "sms" \| "fbmessenger" \| "whatsapp" \| "linemessenger" \| "pinterest" \| "reminder" \| "unknown"; pill?: boolean; type?: "text" \| "warning" \| "info" \| "success" \| "default" \| "primary" \| "danger"; size?: "small" \| "medium" \| "large"; hideicon?: boolean; hidetext?: boolean; iconslot?: "prefix" \| "suffix"; hide?: boolean; borderradius?: number; backgroundcolor?: string; textcolor?: string; messageLink?: string; openInSameTab?: boolean; isPlainLink?: boolean; }` | `undefined` |
-| `disabled` | `disabled` | | `boolean` | `undefined` |
-| `hideicon` | `hideicon` | | `boolean` | `false` |
-| `hidetext` | `hidetext` | | `boolean` | `false` |
-| `icon` | `icon` | 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. | `string` | `undefined` |
-| `iconslot` | `iconslot` | | `"prefix" \| "suffix"` | `"prefix"` |
-| `medium` | `medium` | The social medium to share on. Share messages and links will be pulled from your program config and tagged for analytics. | `"direct" \| "email" \| "facebook" \| "fbmessenger" \| "linemessenger" \| "linkedin" \| "pinterest" \| "reminder" \| "sms" \| "twitter" \| "unknown" \| "whatsapp"` | `undefined` |
-| `pill` | `pill` | | `boolean` | `undefined` |
-| `programId` | `program-id` | Optional programId, or uses the programId context where this button is rendered. | `string` | `undefined` |
-| `sharetext` | `sharetext` | Text used for native sharing (mobile only) | `string` | `undefined` |
-| `sharetitle` | `sharetitle` | Title used for native sharing (mobile only) | `string` | `undefined` |
-| `size` | `size` | | `"large" \| "medium" \| "small"` | `undefined` |
-| `textcolor` | `textcolor` | | `string` | `undefined` |
-| `type` | `type` | | `"danger" \| "default" \| "info" \| "primary" \| "success" \| "text" \| "warning"` | `"default"` |
-| `undefinedLinkText` | `undefined-link-text` | Alert text shown if the share link is undefined | `string` | `"Error: message link undefined!"` |
-| `unsupportedPlatformText` | `unsupported-platform-text` | Alert text shown if the user's device does not support native sharing | `string` | `"Error: not on a supported device"` |
+| Property | Attribute | Description | Type | Default |
+| ------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
+| `backgroundcolor` | `backgroundcolor` | | `string` | `undefined` |
+| `border` | `border` | | `string` | `undefined` |
+| `borderradius` | `borderradius` | Configure border radius with pixel amount | `number` | `undefined` |
+| `demoData` | -- | | `{ loading?: boolean; icon?: string; disabled?: boolean; onClick?: () => void; medium?: "facebook" \| "twitter" \| "email" \| "direct" \| "linkedin" \| "sms" \| "fbmessenger" \| "whatsapp" \| "linemessenger" \| "pinterest" \| "reminder" \| "unknown"; border?: string; pill?: boolean; type?: "text" \| "primary" \| "secondary" \| "warning" \| "info" \| "success" \| "danger" \| "default"; size?: "small" \| "medium" \| "large"; hideicon?: boolean; hidetext?: boolean; iconslot?: "prefix" \| "suffix"; hide?: boolean; borderradius?: number; backgroundcolor?: string; textcolor?: string; messageLink?: string; openInSameTab?: boolean; isPlainLink?: boolean; }` | `undefined` |
+| `disabled` | `disabled` | | `boolean` | `undefined` |
+| `hideicon` | `hideicon` | | `boolean` | `false` |
+| `hidetext` | `hidetext` | | `boolean` | `false` |
+| `icon` | `icon` | 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. | `string` | `undefined` |
+| `iconslot` | `iconslot` | | `"prefix" \| "suffix"` | `"prefix"` |
+| `medium` | `medium` | The social medium to share on. Share messages and links will be pulled from your program config and tagged for analytics. | `"direct" \| "email" \| "facebook" \| "fbmessenger" \| "linemessenger" \| "linkedin" \| "pinterest" \| "reminder" \| "sms" \| "twitter" \| "unknown" \| "whatsapp"` | `undefined` |
+| `pill` | `pill` | | `boolean` | `undefined` |
+| `programId` | `program-id` | Optional programId, or uses the programId context where this button is rendered. | `string` | `undefined` |
+| `sharetext` | `sharetext` | Text used for native sharing (mobile only) | `string` | `undefined` |
+| `sharetitle` | `sharetitle` | Title used for native sharing (mobile only) | `string` | `undefined` |
+| `size` | `size` | | `"large" \| "medium" \| "small"` | `undefined` |
+| `textcolor` | `textcolor` | | `string` | `undefined` |
+| `type` | `type` | | `"danger" \| "default" \| "info" \| "primary" \| "secondary" \| "success" \| "text" \| "warning"` | `"default"` |
+| `undefinedLinkText` | `undefined-link-text` | Alert text shown if the share link is undefined | `string` | `"Error: message link undefined!"` |
+| `unsupportedPlatformText` | `unsupported-platform-text` | Alert text shown if the user's device does not support native sharing | `string` | `"Error: not on a supported device"` |
## Dependencies
diff --git a/packages/mint-components/src/components/sqm-share-button/sqm-share-button-view.tsx b/packages/mint-components/src/components/sqm-share-button/sqm-share-button-view.tsx
index ca77f43b8d..0f7e9cd764 100644
--- a/packages/mint-components/src/components/sqm-share-button/sqm-share-button-view.tsx
+++ b/packages/mint-components/src/components/sqm-share-button/sqm-share-button-view.tsx
@@ -21,6 +21,7 @@ export interface ShareButtonViewProps {
pill?: boolean;
type?:
| "primary"
+ | "secondary"
| "success"
| "info"
| "warning"
@@ -28,7 +29,7 @@ export interface ShareButtonViewProps {
| "default"
| "text";
size?: "small" | "medium" | "large";
-
+ border?: string;
icon?: string;
hideicon?: boolean;
hidetext?: boolean;
@@ -47,7 +48,11 @@ const medium = {
facebook: { color: "#1877f2", text: "#fff", icon: "facebook" },
twitter: { color: "#000000", text: "#fff", icon: "twitter-x" },
email: { color: "#666666", text: "#fff", icon: "envelope" },
- direct: { color: "var(--sl-color-primary-500)", text: "#fff", icon: "send" },
+ direct: {
+ color: "var(--sqm-primary-button-background)",
+ text: "var(--sqm-primary-button-color)",
+ icon: "send",
+ },
linkedin: { color: "#0077b5", text: "#fff", icon: "linkedin" },
sms: { color: "#34DA50", text: "#fff", icon: "chat" },
fbmessenger: { color: "#0084ff", text: "#fff", icon: "messenger" },
@@ -71,15 +76,9 @@ const styleString = sheet.toString();
export function ShareButtonView(props: ShareButtonViewProps, children: VNode) {
const vanillaStyle = `
- *::part(base) {
- border: none;
- --sl-focus-ring-color-primary: ${
- props.backgroundcolor
- ? props.backgroundcolor
- : props.medium
- ? medium[props.medium].color
- : ""
- }80!important;
+ sl-button::part(base) {
+ border: ${props.border || "none"};
+ font-family: var(--sqm-primary-font);
background: ${
props.backgroundcolor
@@ -95,28 +94,14 @@ export function ShareButtonView(props: ShareButtonViewProps, children: VNode) {
? medium[props.medium].text
: ""
};
- border-radius: ${props.borderradius ? props.borderradius + "px" : ""};
+ border-radius: ${
+ props.borderradius
+ ? props.borderradius + "px"
+ : "var(--sqm-primary-button-radius)"
+ };
}
- *::part(base):hover {
- border-color: ${
- props.backgroundcolor
- ? props.backgroundcolor
- : props.medium
- ? medium[props.medium].color
- : ""
- }D1!important;
- }
- *::part(base):focus {
- border-color: ${
- props.backgroundcolor
- ? props.backgroundcolor
- : props.medium
- ? medium[props.medium].color
- : ""
- }D1!important;
- }
*::part(label) {
position: relative;
@@ -140,7 +125,7 @@ export function ShareButtonView(props: ShareButtonViewProps, children: VNode) {
type={props.type}
onClick={!props.isPlainLink ? props.onClick : undefined}
href={props.isPlainLink ? props.messageLink : undefined}
- exportparts={`base: ${props.type}sharebutton-base`}
+ exportparts={`base: ${props.type}button-base`}
>
{!props.hideicon && (
Share on Facebook
* @example X Share Button - Share via X
* @example Email Share Button - Share via Email
- * @example Web Share Sheet Share Button - Share
+ * @example Mobile Share Sheet Button - Share
* @example LinkedIn Share Button - Share on LinkedIn
* @example SMS Share Button - Text a friend
- * @example Facebook Messenger Share Button - Share via Messenger
+ * @example Messenger Share Button - Share via Messenger
* @example WhatsApp Share Button - Share via WhatsApp
- * @example Line Messenger Share Button - Share via Line Messenger
+ * @example LINE Share Button - Share via Line Messenger
* @example Pinterest Share Button - Share on Pinterest
*/
@Component({
@@ -68,24 +69,35 @@ export class ShareButton {
/**
* Configure border radius with pixel amount
* @uiName Border radius
+ * @uiGroup Style
*/
@Prop() borderradius?: number;
/**
* @uiName Button background color
* @uiWidget color
* @format color
+ * @uiGroup Style
*/
@Prop() backgroundcolor?: string;
+
+ /**
+ * @uiName Border
+ * @uiGroup Style
+ */
+ @Prop() border?: string;
/**
* @uiName Button text color
* @uiWidget color
* @format color
+ * @uiGroup Style
*/
@Prop() textcolor?: string;
/**
* @uiName Display pill
+ * @uiGroup Style
*/
@Prop() pill?: boolean;
+
/**
* @uiName Disabled
*/
@@ -93,11 +105,12 @@ export class ShareButton {
/**
* @uiType string
* @uiName Button style
- * @uiEnum ["primary" , "success", "info", "warning", "danger", "default", "text" ]
- * @uiEnumNames ["Primary", "Success", "Info", "Warning", "Danger", "Default", "Text"]
+ * @uiEnum ["primary", "secondary", "success", "info", "warning", "danger", "default", "text" ]
+ * @uiEnumNames ["Primary", "Secondary", "Success", "Info", "Warning", "Danger", "Default", "Text"]
*/
@Prop() type?:
| "primary"
+ | "secondary"
| "success"
| "info"
| "warning"
@@ -109,6 +122,7 @@ export class ShareButton {
* @uiType string
* @uiEnum ["small", "medium", "large" ]
* @uiEnumNames ["Small", "Medium", "Large"]
+ * @uiGroup Style
*/
@Prop() size?: "small" | "medium" | "large";
/**
@@ -128,11 +142,13 @@ export class ShareButton {
@Prop() icon?: string;
/**
* @uiName Hide icon
+ * @uiGroup Style
* @default
*/
@Prop() hideicon?: boolean = false;
/**
* @uiName Hide text
+ * @uiGroup Style
* @default
*/
@Prop() hidetext?: boolean = false;
diff --git a/packages/mint-components/src/components/sqm-share-code/readme.md b/packages/mint-components/src/components/sqm-share-code/readme.md
index ea021d3630..28d7e0fdbf 100644
--- a/packages/mint-components/src/components/sqm-share-code/readme.md
+++ b/packages/mint-components/src/components/sqm-share-code/readme.md
@@ -5,15 +5,20 @@
## Properties
-| Property | Attribute | Description | Type | Default |
-| ----------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
-| `buttonStyle` | `copy-button-style` | Set the copy button style and placement | `"button-below" \| "button-outside" \| "icon"` | `"icon"` |
-| `copyButtonLabel` | `copy-button-label` | | `string` | `"Copy Code"` |
-| `demoData` | -- | | `{ loading?: boolean; copyString?: string; tooltiptext?: string; open?: boolean; copyButtonLabel?: string; disabled?: boolean; textAlign?: "left" \| "right" \| "center"; buttonStyle?: "icon" \| "button-outside" \| "button-below"; error?: boolean; errorText?: string; notificationText?: string; showNotificationText?: boolean; inputPlaceholderText?: string; dateAvailable?: string; isCopied?: boolean; onClick?: () => void; }` | `undefined` |
-| `programId` | `program-id` | The ID of the program that should generate the code. Defaults to the program ID in context where this widget is loaded. | `string` | `undefined` |
-| `textAlign` | `text-align` | Change the text alignment | `"center" \| "left" \| "right"` | `"left"` |
-| `tooltiplifespan` | `tooltip-lifespan` | The number of milliseconds that the tooltip appears for | `number` | `1000` |
-| `tooltiptext` | `tooltip-text` | Shown inside a tooltip after someone has successfully copied the link to their clipboard | `string` | `"Copied to Clipboard"` |
+| Property | Attribute | Description | Type | Default |
+| ----------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
+| `backgroundColor` | `background-color` | Background color of share link container | `string` | `undefined` |
+| `borderColor` | `border-color` | Border color of share link container | `string` | `undefined` |
+| `borderRadius` | `border-radius` | The border radius on the share link container (in pixels) | `string` | `undefined` |
+| `buttonStyle` | `copy-button-style` | Set the copy button style and placement | `"button-below" \| "button-outside" \| "icon"` | `"icon"` |
+| `buttonType` | `button-type` | The type of the button that is used (primary or secondary). | `"primary" \| "secondary"` | `"primary"` |
+| `copyButtonLabel` | `copy-button-label` | | `string` | `"Copy Code"` |
+| `demoData` | -- | | `{ loading?: boolean; textColor?: string; buttonType?: "primary" \| "secondary"; copyString?: string; tooltiptext?: string; open?: boolean; copyButtonLabel?: string; disabled?: boolean; textAlign?: "left" \| "right" \| "center"; buttonStyle?: "icon" \| "button-outside" \| "button-below"; error?: boolean; errorText?: string; notificationText?: string; showNotificationText?: boolean; inputPlaceholderText?: string; dateAvailable?: string; isCopied?: boolean; backgroundColor?: string; borderRadius?: string; borderColor?: string; onClick?: () => void; }` | `undefined` |
+| `programId` | `program-id` | The ID of the program that should generate the code. Defaults to the program ID in context where this widget is loaded. | `string` | `undefined` |
+| `textAlign` | `text-align` | Change the text alignment | `"center" \| "left" \| "right"` | `"left"` |
+| `textColor` | `text-color` | Color of the text and copy icon | `string` | `undefined` |
+| `tooltiplifespan` | `tooltip-lifespan` | The number of milliseconds that the tooltip appears for | `number` | `1000` |
+| `tooltiptext` | `tooltip-text` | Shown inside a tooltip after someone has successfully copied the link to their clipboard | `string` | `"Copied to Clipboard"` |
## Dependencies
diff --git a/packages/mint-components/src/components/sqm-share-code/sqm-share-code.tsx b/packages/mint-components/src/components/sqm-share-code/sqm-share-code.tsx
index c1920d1872..5ce8385938 100644
--- a/packages/mint-components/src/components/sqm-share-code/sqm-share-code.tsx
+++ b/packages/mint-components/src/components/sqm-share-code/sqm-share-code.tsx
@@ -9,6 +9,7 @@ import { useShareCode } from "./useShareCode";
/**
* @uiName Share Code
+ * @validParents ["sqm-portal-container","div","sqm-divided-layout","sqm-brand","template","sqb-program-section","sqb-conditional-section", "sqm-titled-section"]
* @exampleGroup Sharing
* @example Share Code -
*/
@@ -49,12 +50,39 @@ export class ShareCode {
* @uiType string
* @uiEnum ["left", "center", "right"]
* @uiEnumNames ["Left", "Center", "Right"]
+ * @uiGroup Style
*/
@Prop({
attribute: "text-align",
})
textAlign: "left" | "center" | "right" = "left";
+ /**
+ * Background color of share link container
+ * @uiName Background color
+ * @uiWidget color
+ * @format color
+ * @uiGroup Style
+ */
+ @Prop() backgroundColor?: string;
+
+ /**
+ * Color of the text and copy icon
+ * @uiName Text color
+ * @uiWidget color
+ * @format color
+ * @uiGroup Style
+ */
+ @Prop() textColor?: string;
+
+ /**
+ * The border radius on the share link container (in pixels)
+ * @uiName Border Radius
+ * @uiType number
+ * @uiGroup Style
+ */
+ @Prop() borderRadius?: string;
+
/**
* @uiName Copy button label
*/
@@ -70,12 +98,33 @@ export class ShareCode {
* @uiType string
* @uiEnum ["icon", "button-outside", "button-below"]
* @uiEnumNames ["Icon", "Button outside", "Button below"]
+ * @uiGroup Style
*/
@Prop({
attribute: "copy-button-style",
})
buttonStyle?: "icon" | "button-outside" | "button-below" = "icon";
+ /**
+ * The type of the button that is used (primary or secondary).
+ * @uiName Button Type
+ * @uiType string
+ * @uiEnum ["primary", "secondary"]
+ * @uiEnumNames ["Primary", "Secondary"]
+ * @uiGroup Style
+ */
+ @Prop()
+ buttonType?: "primary" | "secondary" = "primary";
+
+ /**
+ * Border color of share link container
+ * @uiName Border color
+ * @uiWidget color
+ * @format color
+ * @uiGroup Style
+ */
+ @Prop() borderColor?: string;
+
/**
* @undocumented
* @uiType object
@@ -106,6 +155,11 @@ function useDemoShareCode(props: ShareCode): CopyTextViewProps {
textAlign: props.textAlign,
copyButtonLabel: props.copyButtonLabel,
buttonStyle: props.buttonStyle,
+ backgroundColor: props.backgroundColor,
+ textColor: props.textColor,
+ borderRadius: props.borderRadius,
+ borderColor: props.borderColor,
+ buttonType: props.buttonType,
rewardStatus: "AVAILABLE",
open,
onClick: () => {
diff --git a/packages/mint-components/src/components/sqm-share-link/ShareLink.stories.tsx b/packages/mint-components/src/components/sqm-share-link/ShareLink.stories.tsx
index 9e5cafd1d2..72d3b37844 100644
--- a/packages/mint-components/src/components/sqm-share-link/ShareLink.stories.tsx
+++ b/packages/mint-components/src/components/sqm-share-link/ShareLink.stories.tsx
@@ -77,6 +77,38 @@ export const CopyButtonBelow = () => {
>
);
};
+
+export const CustomStyles = () => {
+ const props = {
+ copyString: "https://noah.example.com",
+ open: false,
+ tooltiptext: "Copied!",
+ backgroundColor: "#1ed760",
+ borderRadius: "30px",
+ textColor: "#121212",
+ buttonType: "primary" as const,
+ };
+ return ;
+};
+
+export const CustomStylesWithDemoHooks = () => {
+ const props = {
+ copyString: "https://noah.example.com",
+ open: false,
+ tooltiptext: "Copied!",
+ backgroundColor: "#1ed760",
+ borderRadius: "30px",
+ textColor: "red",
+ buttonType: "primary" as const,
+ borderColor: "#121212",
+ };
+ return (
+
+ );
+};
export const FullStack = () => {
return ;
};
diff --git a/packages/mint-components/src/components/sqm-share-link/readme.md b/packages/mint-components/src/components/sqm-share-link/readme.md
index 0355dcd0f1..3973b50392 100644
--- a/packages/mint-components/src/components/sqm-share-link/readme.md
+++ b/packages/mint-components/src/components/sqm-share-link/readme.md
@@ -5,15 +5,20 @@
## Properties
-| Property | Attribute | Description | Type | Default |
-| ----------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
-| `buttonStyle` | `copy-button-style` | Set the copy button style and placement | `"button-below" \| "button-outside" \| "icon"` | `"icon"` |
-| `copyButtonLabel` | `copy-button-label` | | `string` | `"Copy Link"` |
-| `demoData` | -- | | `{ loading?: boolean; copyString?: string; tooltiptext?: string; open?: boolean; copyButtonLabel?: string; disabled?: boolean; textAlign?: "left" \| "right" \| "center"; buttonStyle?: "icon" \| "button-outside" \| "button-below"; error?: boolean; errorText?: string; notificationText?: string; showNotificationText?: boolean; inputPlaceholderText?: string; dateAvailable?: string; isCopied?: boolean; onClick?: () => void; }` | `undefined` |
-| `programId` | `program-id` | The ID of the program that should generate the link. Defaults to the program ID in context where this widget is loaded. | `string` | `undefined` |
-| `textAlign` | `text-align` | Change the text alignment | `"center" \| "left" \| "right"` | `"left"` |
-| `tooltiplifespan` | `tooltip-lifespan` | The number of milliseconds that the tooltip appears for | `number` | `1000` |
-| `tooltiptext` | `tooltip-text` | Shown inside a tooltip after someone has successfully copied the link to their clipboard | `string` | `"Copied to Clipboard"` |
+| Property | Attribute | Description | Type | Default |
+| ----------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
+| `backgroundColor` | `background-color` | Background color of share link container | `string` | `undefined` |
+| `borderColor` | `border-color` | Border color of share link container | `string` | `undefined` |
+| `borderRadius` | `border-radius` | The border radius on the share link container (in pixels) | `string` | `undefined` |
+| `buttonStyle` | `copy-button-style` | Set the copy button style and placement | `"button-below" \| "button-outside" \| "icon"` | `"icon"` |
+| `buttonType` | `button-type` | The type of the button that is used (primary or secondary). | `"primary" \| "secondary"` | `"primary"` |
+| `copyButtonLabel` | `copy-button-label` | | `string` | `"Copy Link"` |
+| `demoData` | -- | | `{ loading?: boolean; textColor?: string; buttonType?: "primary" \| "secondary"; copyString?: string; tooltiptext?: string; open?: boolean; copyButtonLabel?: string; disabled?: boolean; textAlign?: "left" \| "right" \| "center"; buttonStyle?: "icon" \| "button-outside" \| "button-below"; error?: boolean; errorText?: string; notificationText?: string; showNotificationText?: boolean; inputPlaceholderText?: string; dateAvailable?: string; isCopied?: boolean; backgroundColor?: string; borderRadius?: string; borderColor?: string; onClick?: () => void; }` | `undefined` |
+| `programId` | `program-id` | The ID of the program that should generate the link. Defaults to the program ID in context where this widget is loaded. | `string` | `undefined` |
+| `textAlign` | `text-align` | Change the text alignment | `"center" \| "left" \| "right"` | `"left"` |
+| `textColor` | `text-color` | Color of the text and copy icon | `string` | `undefined` |
+| `tooltiplifespan` | `tooltip-lifespan` | The number of milliseconds that the tooltip appears for | `number` | `1000` |
+| `tooltiptext` | `tooltip-text` | Shown inside a tooltip after someone has successfully copied the link to their clipboard | `string` | `"Copied to Clipboard"` |
## Dependencies
diff --git a/packages/mint-components/src/components/sqm-share-link/sqm-share-link.tsx b/packages/mint-components/src/components/sqm-share-link/sqm-share-link.tsx
index 7b2940be7b..83e3e330f6 100644
--- a/packages/mint-components/src/components/sqm-share-link/sqm-share-link.tsx
+++ b/packages/mint-components/src/components/sqm-share-link/sqm-share-link.tsx
@@ -10,6 +10,7 @@ import { useShareLink } from "./useShareLink";
/**
* @uiName Share Link
* @exampleGroup Sharing
+ * @validParents ["sqm-portal-container", "sqm-titled-section", "div","sqm-hero","sqm-referral-card","sqm-instant-access-registration","sqb-program-section","sqb-conditional-section"]
* @example Share Link -
*/
@Component({
@@ -52,6 +53,7 @@ export class ShareLink {
* @uiType string
* @uiEnum ["left", "center", "right"]
* @uiEnumNames ["Left", "Center", "Right"]
+ * @uiGroup Style
*/
@Prop({
attribute: "text-align",
@@ -66,13 +68,60 @@ export class ShareLink {
})
copyButtonLabel: string = "Copy Link";
+ /**
+ * Background color of share link container
+ * @uiName Background color
+ * @uiWidget color
+ * @format color
+ * @uiGroup Style
+ */
+ @Prop() backgroundColor?: string;
+
+ /**
+ * Border color of share link container
+ * @uiName Border color
+ * @uiWidget color
+ * @format color
+ * @uiGroup Style
+ */
+ @Prop() borderColor?: string;
+
+ /**
+ * Color of the text and copy icon
+ * @uiName Text color
+ * @uiWidget color
+ * @format color
+ * @uiGroup Style
+ */
+ @Prop() textColor?: string;
+
+ /**
+ * The border radius on the share link container (in pixels)
+ * @uiName Border Radius
+ * @uiType number
+ * @uiGroup Style
+ */
+ @Prop() borderRadius?: string;
+
+ /**
+ * The type of the button that is used (primary or secondary).
+ * @uiName Button Type
+ * @uiType string
+ * @uiEnum ["primary", "secondary"]
+ * @uiEnumNames ["Primary", "Secondary"]
+ * @uiGroup Style
+ */
+ @Prop()
+ buttonType?: "primary" | "secondary" = "primary";
+
/**
* Set the copy button style and placement
*
- * @uiName Style
+ * @uiName Button style
* @uiType string
* @uiEnum ["icon", "button-outside", "button-below"]
* @uiEnumNames ["Icon", "Button outside", "Button below"]
+ * @uiGroup Style
*/
@Prop({
attribute: "copy-button-style",
@@ -102,13 +151,20 @@ export class ShareLink {
function useDemoShareLink(props: ShareLink): CopyTextViewProps {
const [open, setOpen] = useState(false);
const copyString = "https://www.example.com/sharelink/abc";
+
+ console.log("Demo props", props);
return deepmerge(
{
copyString: copyString,
tooltiptext: props.tooltiptext,
textAlign: props.textAlign,
buttonStyle: props.buttonStyle,
+ backgroundColor: props.backgroundColor,
+ textColor: props.textColor,
+ borderRadius: props.borderRadius,
+ buttonType: props.buttonType,
copyButtonLabel: props.copyButtonLabel,
+ borderColor: props.borderColor,
rewardStatus: "AVAILABLE",
open,
onClick: () => {
diff --git a/packages/mint-components/src/components/sqm-stat-container/readme.md b/packages/mint-components/src/components/sqm-stat-container/readme.md
index 872d4aa4cd..6c2c90e472 100644
--- a/packages/mint-components/src/components/sqm-stat-container/readme.md
+++ b/packages/mint-components/src/components/sqm-stat-container/readme.md
@@ -7,10 +7,13 @@
## Properties
-| Property | Attribute | Description | Type | Default |
-| --------- | --------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
-| `display` | `display` | | `"flex" \| "grid"` | `"grid"` |
-| `space` | `space` | | `"large" \| "medium" \| "none" \| "small" \| "x-large" \| "x-small" \| "xx-large" \| "xx-small" \| "xxx-large" \| "xxx-small" \| "xxxx-large"` | `"xxx-large"` |
+| Property | Attribute | Description | Type | Default |
+| ------------ | ------------- | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
+| `alignment` | `alignment` | Controls the alignment of the flexbox | `"center" \| "left" \| "right"` | `"center"` |
+| `display` | `display` | | `"flex" \| "grid"` | `"flex"` |
+| `gap` | `gap` | | `"large" \| "medium" \| "none" \| "small" \| "x-large" \| "x-small" \| "xx-large" \| "xx-small" \| "xxx-large" \| "xxx-small" \| "xxxx-large"` | `"x-large"` |
+| `hideBorder` | `hide-border` | Hide the seperating border between stats | `boolean` | `undefined` |
+| `space` | `space` | | `"large" \| "medium" \| "none" \| "small" \| "x-large" \| "x-small" \| "xx-large" \| "xx-small" \| "xxx-large" \| "xxx-small" \| "xxxx-large"` | `"xxx-large"` |
## Dependencies
diff --git a/packages/mint-components/src/components/sqm-stat-container/sqm-stat-container-view.tsx b/packages/mint-components/src/components/sqm-stat-container/sqm-stat-container-view.tsx
index d8d68c10d9..8657ef093c 100644
--- a/packages/mint-components/src/components/sqm-stat-container/sqm-stat-container-view.tsx
+++ b/packages/mint-components/src/components/sqm-stat-container/sqm-stat-container-view.tsx
@@ -4,6 +4,9 @@ import { createStyleSheet } from "../../styling/JSS";
export interface StatContainerProps {
space: string;
display?: "grid" | "flex";
+ alignment?: "left" | "right" | "center";
+ hideBorder?: boolean;
+ gap?: string;
}
export function StatContainerView(props: StatContainerProps, children: VNode) {
@@ -14,25 +17,40 @@ export function StatContainerView(props: StatContainerProps, children: VNode) {
return `${Math.floor(parseInt(spaceValue) / 2)}rem`;
};
- // Dependent on props, not feasiable to move out
+ // take alignment variable and convert it to CSS flexbox alignment
+ const alignment =
+ props.alignment === "center"
+ ? "center"
+ : props.alignment === "right"
+ ? "flex-end"
+ : "flex-start";
+
+ // Dependent on props, not feasible to move out
const style = {
StatContainer: {
width: "100%",
- display: props.display || "grid",
- "grid-template-columns": "repeat(auto-fill, minmax(130px, auto))",
- gap: divideSpace(),
- // First set of styles applies when shadow DOM is disabled, second set applies when shadow DOM is enabled
+ display: "flex",
+ flexWrap: "wrap",
+ alignItems: "center",
+ justifyContent: alignment,
+ flexDirection: "row",
+ gap: `var(--sl-spacing-${props.gap})`,
+
+ // Apply border styles conditionally based on the hideBorder prop
"& > *": {
- "border-right": "1px solid #EAEAEA",
+ "border-right": props.hideBorder
+ ? "none"
+ : "var(--sqm-border-thickness) solid var(--sqm-border-color)",
"padding-right": divideSpace(),
},
"& > :last-child": {
"border-right": "none",
},
"& > ::slotted(*)": {
- "border-right": "1px solid #EAEAEA",
+ "border-right": props.hideBorder
+ ? "none"
+ : "var(--sqm-border-thickness) solid var(--sqm-border-color)",
"padding-right": divideSpace(),
- height: "100%",
},
"& > ::slotted(*:last-child)": {
"border-right": "none",
@@ -48,7 +66,7 @@ export function StatContainerView(props: StatContainerProps, children: VNode) {
display: "flex",
},
BorderFix: {
- "border-right": "1px solid transparent",
+ "border-right": "var(--sqm-border-thickness) solid transparent",
width: "0px",
"margin-left": "-1px",
},
diff --git a/packages/mint-components/src/components/sqm-stat-container/sqm-stat-container.tsx b/packages/mint-components/src/components/sqm-stat-container/sqm-stat-container.tsx
index 5ac5514a92..4081c1235d 100644
--- a/packages/mint-components/src/components/sqm-stat-container/sqm-stat-container.tsx
+++ b/packages/mint-components/src/components/sqm-stat-container/sqm-stat-container.tsx
@@ -6,6 +6,8 @@ import { Spacing } from "../../global/mixins";
/**
* @uiName Stat Container
+ * @validParents ["sqm-portal-container","div","sqm-divided-layout","sqm-brand","template","sqm-hero", "sqb-program-section", "sqb-conditional-section"]
+ * @validChildren ["sqm-big-stat"]
* @slots [{"name":"", "title":"Stats"}]
* @exampleGroup Statistics
* @example Container with Three Stats - Points Balance
Giftcards Earned
Referrals
@@ -27,12 +29,38 @@ export class StatContainer {
@Prop() space: Spacing = "xxx-large";
/**
+ * @undocumented
* @uiName Display
* @uiType string
* @uiEnum ["grid", "flex"]
* @uiEnumNames ["Grid", "Flex"]
*/
- @Prop() display: "grid" | "flex" = "grid";
+ @Prop() display: "grid" | "flex" = "flex";
+
+ /**
+ * Hide the seperating border between stats
+ * @uiName Hide border
+ * @uiType boolean
+ */
+ @Prop() hideBorder?: boolean;
+
+ /**
+ * Controls the alignment of the flexbox
+ *
+ * @uiName Alignment
+ * @uiType string
+ * @uiEnum ["left", "right", "center"]
+ * @uiEnumNames ["Left", "Right", "Center"]
+ */
+ @Prop() alignment?: "left" | "right" | "center" = "center";
+
+ /**
+ * @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"]
+ */
+ @Prop() gap: Spacing = "x-large";
constructor() {
withHooks(this);
diff --git a/packages/mint-components/src/components/sqm-stencilbook/BrandSelector.tsx b/packages/mint-components/src/components/sqm-stencilbook/BrandSelector.tsx
new file mode 100644
index 0000000000..01ccac5323
--- /dev/null
+++ b/packages/mint-components/src/components/sqm-stencilbook/BrandSelector.tsx
@@ -0,0 +1,243 @@
+import { Component, h, Host, State } from "@stencil/core";
+import { BrandingConfiguration } from "../../saasquatch";
+import * as Themes from "./Themes";
+
+const LOCAL_STORAGE_BRAND_KEY = "localStorageBrandKey";
+const LOCAL_STORAGE_BRAND_CONFIG_KEY = "localStorageBrandConfigKey";
+
+@Component({
+ tag: "sqm-brand-selector",
+ shadow: false,
+})
+export class SqmBrandSelector {
+ @State() selectedBrand: string = "Netflix";
+
+ constructor() {
+ const storedBrand = localStorage.getItem(LOCAL_STORAGE_BRAND_KEY);
+ const initialBrandName = storedBrand;
+
+ this.selectedBrand = initialBrandName;
+
+ // Initialize window.SquatchBrandingConfig based on the loaded brand
+ const initialConfig =
+ Themes[initialBrandName as keyof typeof Themes] || Themes.Netflix;
+
+ window.SquatchBrandingConfig = initialConfig;
+ const event = new CustomEvent("brandingConfigUpdated", {
+ detail: window.SquatchBrandingConfig,
+ });
+ window.dispatchEvent(event);
+ }
+
+ componentDidLoad() {
+ const storedBrand = localStorage.getItem(LOCAL_STORAGE_BRAND_KEY);
+ const initialBrandName = storedBrand;
+
+ this.selectedBrand = initialBrandName;
+ }
+
+ disconnectedCallback() {}
+
+ private brands = [
+ {
+ name: "Netflix",
+ logoUrl:
+ "https://res.cloudinary.com/saasquatch-staging/image/upload/v1750803365/netflix_ftjbrr.png",
+ },
+ {
+ name: "Amazon",
+ logoUrl:
+ "https://res.cloudinary.com/saasquatch-staging/image/upload/v1750803366/amazon_mc22fr.png",
+ },
+ {
+ name: "Spotify",
+ logoUrl:
+ "https://res.cloudinary.com/saasquatch-staging/image/upload/v1750803510/spotify_j5qi1r.png",
+ },
+ {
+ name: "Google",
+ logoUrl:
+ "https://res.cloudinary.com/saasquatch-staging/image/upload/v1750803168/pngimg.com_-_google_PNG19644_jvypwl.png",
+ },
+ ];
+
+ private updateBrand(brandName: string) {
+ this.selectedBrand = brandName;
+ const configToSet: BrandingConfiguration =
+ Themes[brandName as keyof typeof Themes] || Themes.Netflix;
+ const brandConfigString = JSON.stringify(configToSet);
+
+ localStorage.setItem(LOCAL_STORAGE_BRAND_KEY, brandName);
+ localStorage.setItem(LOCAL_STORAGE_BRAND_CONFIG_KEY, brandConfigString);
+
+ window.SquatchBrandingConfig = configToSet;
+ window.location.reload();
+
+ const event = new CustomEvent("brandingConfigUpdated", {
+ detail: window.SquatchBrandingConfig,
+ });
+ window.dispatchEvent(event);
+ }
+
+ render() {
+ return (
+
+
+
+
Select Branding
+
+
+ {this.brands.map((brand) => (
+
this.updateBrand(brand.name)}
+ >
+

{
+ e.target.src =
+ "https://placehold.co/80x40/cccccc/000000?text=Logo";
+ }}
+ />
+
+ ))}
+
+
+
+ );
+ }
+}
diff --git a/packages/mint-components/src/components/sqm-stencilbook/Themes.tsx b/packages/mint-components/src/components/sqm-stencilbook/Themes.tsx
index 90d0a70eb7..d8f2b6512c 100644
--- a/packages/mint-components/src/components/sqm-stencilbook/Themes.tsx
+++ b/packages/mint-components/src/components/sqm-stencilbook/Themes.tsx
@@ -10,42 +10,334 @@
*
*/
-import { autoColorScaleCss } from "./AutoColor";
+import { BrandingConfiguration } from "../../saasquatch";
-//
-export const Default = `
- // No CSS
-`;
+// @ts-nocheck
+export const Default = null;
-export const Orangey = `
-:root{
- ${autoColorScaleCss("orange")}
-}
-`;
+export const Netflix: BrandingConfiguration = {
+ main: {
+ brandFont: "Netflix Sans, Arial, sans-serif",
+ brandColor: "#E50914",
+ },
+ border: {
+ borderColor: "#333333",
+ borderRadius: 4,
+ borderThickness: 1,
+ },
+ color: {
+ textColorShades: {
+ mainText: "white",
+ subduedText: "#B3B3B3",
+ },
+ backgroundColor: "#101010",
+ accentColorShades: {
+ text: "#E50914",
+ icon: "#E50914",
+ border: "#E50914",
+ background: "#300609",
+ },
+ success: {
+ text: "#66BB6A",
+ border: "#4CAF50",
+ background: "#1B5E20",
+ iconAndBadge: "#4CAF50",
+ },
+ warning: {
+ text: "#FFCA28",
+ border: "#FFA726",
+ background: "#F57C00",
+ iconAndBadge: "#FFA726",
+ },
+ critical: {
+ text: "#EF9A9A",
+ border: "#E50914",
+ background: "#B71C1C",
+ iconAndBadge: "#E50914",
+ },
+ informative: {
+ text: "#64B5F6",
+ border: "#42A5F5",
+ background: "#1976D2",
+ iconAndBadge: "#42A5F5",
+ },
+ neutral: {
+ text: "white",
+ iconAndBadge: "#B3B3B3",
+ border: "#333333",
+ background: "#222222",
+ },
+ },
+ primaryButton: {
+ buttonColor: {
+ background: "#E50914",
+ border: "transparent",
+ label: "#FFFFFF",
+ },
+ buttonHoverColor: {
+ background: "#CC0000",
+ border: "transparent",
+ label: "#FFFFFF",
+ },
+ borderRadius: 4,
+ },
+ secondaryButton: {
+ buttonColor: {
+ background: "transparent",
+ border: "#B3B3B3",
+ label: "#FFFFFF",
+ },
+ buttonHoverColor: {
+ background: "#333333",
+ border: "#B3B3B3",
+ label: "#FFFFFF",
+ },
+ borderRadius: 4,
+ },
+ formFields: {
+ formFieldColor: {
+ background: "#222222",
+ border: "#B3B3B3",
+ inputText: "#B3B3B3",
+ },
+ hoverStateColor: "#777777",
+ selectedStateColor: "#E50914",
+ borderRadius: 4,
+ },
+};
-export const Netflix = `
-:root{
- ${autoColorScaleCss("#e50914")}
-}
-`;
+export const Amazon: BrandingConfiguration = {
+ main: {
+ brandFont: "Amazon Ember, Arial, sans-serif",
+ brandColor: "#FF9900",
+ },
+ border: {
+ borderColor: "#D5D9D9",
+ borderRadius: 4,
+ borderThickness: 1,
+ },
+ color: {
+ backgroundColor: "#ffffff",
+ textColorShades: {
+ mainText: "#2f2f2f",
+ subduedText: "#565959",
+ },
+ accentColorShades: {
+ text: "#FF9900",
+ icon: "#FF9900",
+ border: "#FFBF66",
+ background: "#FFF4DD",
+ },
+ success: {
+ text: "#198754",
+ border: "#BCE8B2",
+ background: "#D4EDDA",
+ iconAndBadge: "#28A745",
+ },
+ warning: {
+ text: "#856404",
+ border: "#FFEBA2",
+ background: "#FFF3CD",
+ iconAndBadge: "#FFC107",
+ },
+ critical: {
+ text: "#721C24",
+ border: "#F5C6CB",
+ background: "#F8D7DA",
+ iconAndBadge: "#DC3545",
+ },
+ informative: {
+ text: "#004085",
+ border: "#B8DAFF",
+ background: "#CCE5FF",
+ iconAndBadge: "#007BFF",
+ },
+ neutral: {
+ text: "#232F3E",
+ iconAndBadge: "#565959",
+ border: "#D5D9D9",
+ background: "#F0F2F2",
+ },
+ },
+ primaryButton: {
+ buttonColor: {
+ background: "#FF9900",
+ border: "transparent",
+ label: "#FFFFFF",
+ },
+ buttonHoverColor: {
+ background: "#EB9100",
+ border: "transparent",
+ label: "#FFFFFF",
+ },
+ borderRadius: 4,
+ },
+ secondaryButton: {
+ buttonColor: {
+ background: "#FFFFFF",
+ border: "#888C8C",
+ label: "#232F3E",
+ },
+ buttonHoverColor: {
+ background: "#F0F2F2",
+ border: "#888C8C",
+ label: "#232F3E",
+ },
+ borderRadius: 4,
+ },
+ formFields: {
+ formFieldColor: {
+ background: "#FFFFFF",
+ border: "#D5D9D9",
+ inputText: "#2f2f2f",
+ },
+ borderRadius: 4,
+ hoverStateColor: "#A2A2A2",
+ selectedStateColor: "#007185",
+ },
+};
-export const SaaSquatchCorporate = `
-:root{
- ${autoColorScaleCss("#65bd60")}
- --sl-font-sans: Arial;
-}
-`;
+export const Spotify: BrandingConfiguration = {
+ main: {
+ brandColor: "#1ed760",
+ },
+ border: {
+ borderColor: "#f4f4f4",
+ borderRadius: 18,
+ borderThickness: 1,
+ },
+ color: {
+ textColorShades: {
+ mainText: "white",
+ subduedText: "white",
+ },
+ backgroundColor: "#121212",
+ accentColorShades: {
+ icon: "#1ed760",
+ },
+ },
+ primaryButton: {
+ buttonColor: {
+ background: "#1ed760",
+ border: "transparent",
+ label: "#121212",
+ },
+ buttonHoverColor: {
+ background: "#1DB954",
+ border: "transparent",
+ label: "#121212",
+ },
+ borderRadius: 30,
+ },
+ secondaryButton: {
+ buttonColor: {
+ background: "#191414",
+ border: "#FFFFFF",
+ label: "#FFFFFF",
+ },
+ buttonHoverColor: {
+ background: "#282828",
+ border: "#FFFFFF",
+ label: "#121212",
+ },
+ borderRadius: 30,
+ },
+ formFields: {
+ formFieldColor: {
+ background: "#121212",
+ border: "#7c7c7c",
+ inputText: "#fff",
+ },
+ borderRadius: 30,
+ hoverStateColor: "white",
+ selectedStateColor: "white",
+ },
+};
-export const NYTimes = `
-:root{
- ${autoColorScaleCss("black")}
- --sl-font-sans: Georgia, 'Times New Roman', serif;
-}
-`;
-
-export const Klip = `
-:root{
- ${autoColorScaleCss("#4225C4")};
-}
-
-`;
+export const Google: BrandingConfiguration = {
+ main: { brandColor: "#4285F4", brandFont: "Roboto, Arial, sans-serif" },
+ border: {
+ borderColor: "#DADCE0",
+ borderRadius: 4,
+ borderThickness: 1,
+ },
+ color: {
+ textColorShades: {
+ mainText: "#212124",
+ subduedText: "#5F6368",
+ },
+ backgroundColor: "#FFFFFF",
+ accentColorShades: {
+ text: "#1A73E8",
+ border: "#8AB4F8",
+ background: "#E8F0FE",
+ icon: "#4285F4",
+ },
+ success: {
+ text: "#044e1d",
+ border: "#A8DCD7",
+ background: "#E6F4EA",
+ iconAndBadge: "#34A853",
+ },
+ warning: {
+ text: "#996a3d",
+ border: "#FCD667",
+ background: "#FFF7EE",
+ iconAndBadge: "#FBBC04",
+ },
+ critical: {
+ text: "#760b09",
+ border: "#F28B82",
+ background: "#FCE8E6",
+ iconAndBadge: "#EA4335",
+ },
+ informative: {
+ text: "#01368c",
+ border: "#BFDBFE",
+ background: "#E8F0FE",
+ iconAndBadge: "#4285F4",
+ },
+ neutral: {
+ text: "#202124",
+ border: "#DADCE0",
+ background: "#F8F9FA",
+ iconAndBadge: "#5F6368",
+ },
+ },
+ primaryButton: {
+ buttonColor: {
+ background: "#4285F4",
+ border: "transparent",
+ label: "#FFFFFF",
+ },
+ buttonHoverColor: {
+ background: "#3C7CD1",
+ border: "transparent",
+ label: "#FFFFFF",
+ },
+ borderRadius: 4,
+ },
+ secondaryButton: {
+ buttonColor: {
+ background: "#FFFFFF",
+ border: "#DADCE0",
+ label: "#4285F4",
+ },
+ buttonHoverColor: {
+ background: "#E8F0FE",
+ border: "#DADCE0",
+ label: "#4285F4",
+ },
+ borderRadius: 4,
+ },
+ formFields: {
+ formFieldColor: {
+ background: "#FFFFFF",
+ border: "#DADCE0",
+ inputText: "#202124",
+ },
+ borderRadius: 4,
+ hoverStateColor: "#9AA0A6",
+ selectedStateColor: "#4285F4",
+ },
+};
diff --git a/packages/mint-components/src/components/sqm-stencilbook/readme.md b/packages/mint-components/src/components/sqm-stencilbook/readme.md
index 32bb03ccde..8fa5578bf3 100644
--- a/packages/mint-components/src/components/sqm-stencilbook/readme.md
+++ b/packages/mint-components/src/components/sqm-stencilbook/readme.md
@@ -1,7 +1,5 @@
# sqm-stencilbook
-
-
@@ -9,94 +7,96 @@
### Depends on
-- [sqm-share-button](../sqm-share-button)
-- [sqm-empty](../sqm-empty)
-- [sqm-pagination](../sqm-pagination)
-- [sqm-share-link](../sqm-share-link)
-- [sqm-stat-container](../sqm-stat-container)
-- [sqm-big-stat](../sqm-big-stat)
+- [sqm-brand-selector](.)
+- [sqm-divided-layout](../sqm-divided-layout)
- [sqm-text](../sqm-text)
-- [sqm-image](../sqm-image)
-- [sqm-leaderboard](../sqm-leaderboard)
-- [sqm-router](../sqm-router)
-- [sqm-hook-story-container](../sqm-hook-story-container)
-- [sqm-navigation-menu](../sqm-navigation-menu)
-- [sqm-portal-frame](../sqm-portal-frame)
-- [sqm-edit-profile](../sqm-edit-profile)
- [sqm-form-message](../sqm-form-message)
-- [sqm-divided-layout](../sqm-divided-layout)
-- [sqm-reward-exchange-list](../sqm-reward-exchange-list)
-- [sqm-rewards-table](../sqm-rewards-table)
-- [sqm-rewards-table-reward-column](../sqm-rewards-table/columns)
-- [sqm-rewards-table-source-column](../sqm-rewards-table/columns)
-- [sqm-rewards-table-status-column](../sqm-rewards-table/columns)
-- [sqm-rewards-table-date-column](../sqm-rewards-table/columns)
-- [sqm-task-card](../sqm-task-card)
-- [sqm-card-feed](../sqm-card-feed)
- [sqm-password-field](../sqm-password-field)
-- [sqm-portal-login](../sqm-portal-login)
-- [sqm-portal-register](../sqm-portal-register)
+- [sqm-hook-story-container](../sqm-hook-story-container)
+- [sqm-big-stat](../sqm-big-stat)
+- [sqm-stat-container](../sqm-stat-container)
+- [sqm-brand](../sqm-brand)
- [sqm-checkbox-field](../sqm-checkbox-field)
-- [sqm-portal-change-marketing](../sqm-portal-change-marketing)
+- [sqm-portal-register](../sqm-portal-register)
+- [sqm-name-fields](../sqm-name-fields)
+- [sqm-coupon-code](../sqm-coupon-code)
+- [sqm-dropdown-field](../sqm-dropdown-field)
+- [sqm-edit-profile](../sqm-edit-profile)
+- [sqm-empty](../sqm-empty)
+- [sqm-hero-image](../sqm-hero-image)
+- [sqm-portal-login](../sqm-portal-login)
+- [sqm-hero](../sqm-hero)
+- [sqm-portal-change-password](../sqm-portal-change-password)
+- [sqm-referred-registration](../sqm-referred-registration)
+- [sqm-titled-section](../sqm-titled-section)
+- [sqm-portal-footer](../sqm-portal-footer)
+- [sqm-image](../sqm-image)
+- [sqm-input-field](../sqm-input-field)
- [sqm-table-row](../sqm-table-row)
- [sqm-table-cell](../sqm-table-cell)
+- [sqm-invoice-table](../sqm-invoice-table)
+- [sqm-invoice-table-download-cell](../sqm-invoice-table/cells)
+- [sqm-invoice-table-date-cell](../sqm-invoice-table/cells)
+- [sqm-invoice-table-download-column](../sqm-invoice-table/columns)
+- [sqm-invoice-table-date-column](../sqm-invoice-table/columns)
+- [sqm-invoice-table-data-column](../sqm-invoice-table/columns)
+- [sqm-leaderboard](../sqm-leaderboard)
+- [sqm-link-button](../sqm-link-button)
+- [sqm-marketing-emails-checkbox](../sqm-marketing-emails-checkbox)
+- [sqm-pagination](../sqm-pagination)
+- [sqm-payout-button-scroll](../sqm-payout-button-scroll)
+- [sqm-portal-container](../sqm-portal-container)
+- [sqm-portal-change-marketing](../sqm-portal-change-marketing)
+- [sqm-share-button](../sqm-share-button)
+- [sqm-scroll](../sqm-scroll)
+- [sqm-portal-forgot-password](../sqm-portal-forgot-password)
+- [sqm-navigation-menu](../sqm-navigation-menu)
+- [sqm-portal-frame](../sqm-portal-frame)
+- [sqm-program-explainer-step](../sqm-program-explainer-step)
+- [sqm-program-explainer](../sqm-program-explainer)
+- [sqm-program-menu](../sqm-program-menu)
+- [sqm-share-code](../sqm-share-code)
+- [sqm-share-link](../sqm-share-link)
+- [sqm-timeline](../sqm-timeline)
+- [sqm-timeline-entry](../sqm-timeline)
+- [sqm-referral-card](../sqm-referral-card)
+- [sqm-referral-code](../sqm-referral-code)
+- [sqm-referral-codes](../sqm-referral-codes)
+- [sqm-referral-iframe](../sqm-referral-iframe)
- [sqm-referral-table-user-cell](../sqm-referral-table/cells)
- [sqm-referral-table-date-cell](../sqm-referral-table/cells)
- [sqm-referral-table-cell](../sqm-referral-table/cells)
- [sqm-referral-table-status-cell](../sqm-referral-table/cells)
- [sqm-referral-table](../sqm-referral-table)
- [sqm-referral-table-rewards-cell](../sqm-referral-table/cells)
-- [sqm-user-name](../sqm-user-name)
-- [sqm-program-menu](../sqm-program-menu)
-- [sqm-hero](../sqm-hero)
-- [sqm-portal-change-password](../sqm-portal-change-password)
-- [sqm-referral-iframe](../sqm-referral-iframe)
-- [sqm-marketing-emails-checkbox](../sqm-marketing-emails-checkbox)
-- [sqm-name-fields](../sqm-name-fields)
-- [sqm-dropdown-field](../sqm-dropdown-field)
-- [sqm-input-field](../sqm-input-field)
-- [sqm-program-explainer](../sqm-program-explainer)
-- [sqm-program-explainer-step](../sqm-program-explainer-step)
-- [sqm-brand](../sqm-brand)
-- [sqm-portal-container](../sqm-portal-container)
-- [sqm-scroll](../sqm-scroll)
+- [sqm-referral-table-user-column](../sqm-referral-table/columns)
+- [sqm-referral-table-status-column](../sqm-referral-table/columns)
+- [sqm-referral-table-date-column](../sqm-referral-table/columns)
+- [sqm-referral-table-rewards-column](../sqm-referral-table/columns)
+- [sqm-reward-exchange-list](../sqm-reward-exchange-list)
- [sqm-rewards-table-reward-cell](../sqm-rewards-table/cells)
- [sqm-rewards-table-source-cell](../sqm-rewards-table/cells)
- [sqm-rewards-table-status-cell](../sqm-rewards-table/cells)
- [sqm-rewards-table-date-cell](../sqm-rewards-table/cells)
- [sqm-rewards-table-customer-note-cell](../sqm-rewards-table/cells)
-- [sqm-referral-table-user-column](../sqm-referral-table/columns)
-- [sqm-referral-table-status-column](../sqm-referral-table/columns)
-- [sqm-referral-table-date-column](../sqm-referral-table/columns)
-- [sqm-referral-table-rewards-column](../sqm-referral-table/columns)
-- [sqm-hero-image](../sqm-hero-image)
-- [sqm-share-code](../sqm-share-code)
-- [sqm-timeline](../sqm-timeline)
-- [sqm-timeline-entry](../sqm-timeline)
-- [sqm-referral-card](../sqm-referral-card)
-- [sqm-portal-footer](../sqm-portal-footer)
-- [sqm-titled-section](../sqm-titled-section)
-- [sqm-referral-code](../sqm-referral-code)
-- [sqm-coupon-code](../sqm-coupon-code)
-- [sqm-link-button](../sqm-link-button)
+- [sqm-rewards-table](../sqm-rewards-table)
+- [sqm-rewards-table-reward-column](../sqm-rewards-table/columns)
+- [sqm-rewards-table-source-column](../sqm-rewards-table/columns)
+- [sqm-rewards-table-status-column](../sqm-rewards-table/columns)
+- [sqm-rewards-table-date-column](../sqm-rewards-table/columns)
+- [sqm-router](../sqm-router)
+- [sqm-task-card](../sqm-task-card)
+- [sqm-card-feed](../sqm-card-feed)
+- [sqm-user-name](../sqm-user-name)
+- [sqm-code-verification](../sqm-widget-verification/sqm-code-verification)
+- [sqm-email-verification](../sqm-widget-verification/sqm-email-verification)
+- [sqm-banking-info-form](../tax-and-cash/sqm-banking-info-form)
- [sqm-payout-details-card](../tax-and-cash/sqm-payout-details-card)
- [sqm-user-info-form](../tax-and-cash/sqm-user-info-form)
- [sqm-indirect-tax-form](../tax-and-cash/sqm-indirect-tax-form)
- [sqm-docusign-form](../tax-and-cash/sqm-docusign-form)
-- [sqm-banking-info-form](../tax-and-cash/sqm-banking-info-form)
- [sqm-tax-and-cash-dashboard](../tax-and-cash/sqm-tax-and-cash-dashboard)
-- [sqm-tax-and-cash](../tax-and-cash/sqm-tax-and-cash)
-- [sqm-invoice-table](../sqm-invoice-table)
-- [sqm-invoice-table-download-cell](../sqm-invoice-table/cells)
-- [sqm-invoice-table-date-cell](../sqm-invoice-table/cells)
-- [sqm-invoice-table-download-column](../sqm-invoice-table/columns)
-- [sqm-invoice-table-date-column](../sqm-invoice-table/columns)
-- [sqm-invoice-table-data-column](../sqm-invoice-table/columns)
-- [sqm-email-verification](../sqm-widget-verification/sqm-email-verification)
-- [sqm-code-verification](../sqm-widget-verification/sqm-code-verification)
-- [sqm-payout-button-scroll](../sqm-payout-button-scroll)
- [sqm-payout-status-alert](../tax-and-cash/sqm-payout-status-alert)
-- [sqm-referral-codes](../sqm-referral-codes)
- [sqm-lead-input-field](../sqm-lead-form)
- [sqm-lead-dropdown-field](../sqm-lead-form)
- [sqm-lead-form](../sqm-lead-form)
@@ -104,152 +104,151 @@
### Graph
```mermaid
graph TD;
- sqm-stencilbook --> sqm-share-button
- sqm-stencilbook --> sqm-empty
- sqm-stencilbook --> sqm-pagination
- sqm-stencilbook --> sqm-share-link
- sqm-stencilbook --> sqm-stat-container
- sqm-stencilbook --> sqm-big-stat
+ sqm-stencilbook --> sqm-brand-selector
+ sqm-stencilbook --> sqm-divided-layout
sqm-stencilbook --> sqm-text
- sqm-stencilbook --> sqm-image
- sqm-stencilbook --> sqm-leaderboard
- sqm-stencilbook --> sqm-router
- sqm-stencilbook --> sqm-hook-story-container
- sqm-stencilbook --> sqm-navigation-menu
- sqm-stencilbook --> sqm-portal-frame
- sqm-stencilbook --> sqm-edit-profile
sqm-stencilbook --> sqm-form-message
- sqm-stencilbook --> sqm-divided-layout
- sqm-stencilbook --> sqm-reward-exchange-list
- sqm-stencilbook --> sqm-rewards-table
- sqm-stencilbook --> sqm-rewards-table-reward-column
- sqm-stencilbook --> sqm-rewards-table-source-column
- sqm-stencilbook --> sqm-rewards-table-status-column
- sqm-stencilbook --> sqm-rewards-table-date-column
- sqm-stencilbook --> sqm-task-card
- sqm-stencilbook --> sqm-card-feed
sqm-stencilbook --> sqm-password-field
- sqm-stencilbook --> sqm-portal-login
- sqm-stencilbook --> sqm-portal-register
+ sqm-stencilbook --> sqm-hook-story-container
+ sqm-stencilbook --> sqm-big-stat
+ sqm-stencilbook --> sqm-stat-container
+ sqm-stencilbook --> sqm-brand
sqm-stencilbook --> sqm-checkbox-field
- sqm-stencilbook --> sqm-portal-change-marketing
+ sqm-stencilbook --> sqm-portal-register
+ sqm-stencilbook --> sqm-name-fields
+ sqm-stencilbook --> sqm-coupon-code
+ sqm-stencilbook --> sqm-dropdown-field
+ sqm-stencilbook --> sqm-edit-profile
+ sqm-stencilbook --> sqm-empty
+ sqm-stencilbook --> sqm-hero-image
+ sqm-stencilbook --> sqm-portal-login
+ sqm-stencilbook --> sqm-hero
+ sqm-stencilbook --> sqm-portal-change-password
+ sqm-stencilbook --> sqm-referred-registration
+ sqm-stencilbook --> sqm-titled-section
+ sqm-stencilbook --> sqm-portal-footer
+ sqm-stencilbook --> sqm-image
+ sqm-stencilbook --> sqm-input-field
sqm-stencilbook --> sqm-table-row
sqm-stencilbook --> sqm-table-cell
+ sqm-stencilbook --> sqm-invoice-table
+ sqm-stencilbook --> sqm-invoice-table-download-cell
+ sqm-stencilbook --> sqm-invoice-table-date-cell
+ sqm-stencilbook --> sqm-invoice-table-download-column
+ sqm-stencilbook --> sqm-invoice-table-date-column
+ sqm-stencilbook --> sqm-invoice-table-data-column
+ sqm-stencilbook --> sqm-leaderboard
+ sqm-stencilbook --> sqm-link-button
+ sqm-stencilbook --> sqm-marketing-emails-checkbox
+ sqm-stencilbook --> sqm-pagination
+ sqm-stencilbook --> sqm-payout-button-scroll
+ sqm-stencilbook --> sqm-portal-container
+ sqm-stencilbook --> sqm-portal-change-marketing
+ sqm-stencilbook --> sqm-share-button
+ sqm-stencilbook --> sqm-scroll
+ sqm-stencilbook --> sqm-portal-forgot-password
+ sqm-stencilbook --> sqm-navigation-menu
+ sqm-stencilbook --> sqm-portal-frame
+ sqm-stencilbook --> sqm-program-explainer-step
+ sqm-stencilbook --> sqm-program-explainer
+ sqm-stencilbook --> sqm-program-menu
+ sqm-stencilbook --> sqm-share-code
+ sqm-stencilbook --> sqm-share-link
+ sqm-stencilbook --> sqm-timeline
+ sqm-stencilbook --> sqm-timeline-entry
+ sqm-stencilbook --> sqm-referral-card
+ sqm-stencilbook --> sqm-referral-code
+ sqm-stencilbook --> sqm-referral-codes
+ sqm-stencilbook --> sqm-referral-iframe
sqm-stencilbook --> sqm-referral-table-user-cell
sqm-stencilbook --> sqm-referral-table-date-cell
sqm-stencilbook --> sqm-referral-table-cell
sqm-stencilbook --> sqm-referral-table-status-cell
sqm-stencilbook --> sqm-referral-table
sqm-stencilbook --> sqm-referral-table-rewards-cell
- sqm-stencilbook --> sqm-user-name
- sqm-stencilbook --> sqm-program-menu
- sqm-stencilbook --> sqm-hero
- sqm-stencilbook --> sqm-portal-change-password
- sqm-stencilbook --> sqm-referral-iframe
- sqm-stencilbook --> sqm-marketing-emails-checkbox
- sqm-stencilbook --> sqm-name-fields
- sqm-stencilbook --> sqm-dropdown-field
- sqm-stencilbook --> sqm-input-field
- sqm-stencilbook --> sqm-program-explainer
- sqm-stencilbook --> sqm-program-explainer-step
- sqm-stencilbook --> sqm-brand
- sqm-stencilbook --> sqm-portal-container
- sqm-stencilbook --> sqm-scroll
+ sqm-stencilbook --> sqm-referral-table-user-column
+ sqm-stencilbook --> sqm-referral-table-status-column
+ sqm-stencilbook --> sqm-referral-table-date-column
+ sqm-stencilbook --> sqm-referral-table-rewards-column
+ sqm-stencilbook --> sqm-reward-exchange-list
sqm-stencilbook --> sqm-rewards-table-reward-cell
sqm-stencilbook --> sqm-rewards-table-source-cell
sqm-stencilbook --> sqm-rewards-table-status-cell
sqm-stencilbook --> sqm-rewards-table-date-cell
sqm-stencilbook --> sqm-rewards-table-customer-note-cell
- sqm-stencilbook --> sqm-referral-table-user-column
- sqm-stencilbook --> sqm-referral-table-status-column
- sqm-stencilbook --> sqm-referral-table-date-column
- sqm-stencilbook --> sqm-referral-table-rewards-column
- sqm-stencilbook --> sqm-hero-image
- sqm-stencilbook --> sqm-share-code
- sqm-stencilbook --> sqm-timeline
- sqm-stencilbook --> sqm-timeline-entry
- sqm-stencilbook --> sqm-referral-card
- sqm-stencilbook --> sqm-portal-footer
- sqm-stencilbook --> sqm-titled-section
- sqm-stencilbook --> sqm-referral-code
- sqm-stencilbook --> sqm-coupon-code
- sqm-stencilbook --> sqm-link-button
+ sqm-stencilbook --> sqm-rewards-table
+ sqm-stencilbook --> sqm-rewards-table-reward-column
+ sqm-stencilbook --> sqm-rewards-table-source-column
+ sqm-stencilbook --> sqm-rewards-table-status-column
+ sqm-stencilbook --> sqm-rewards-table-date-column
+ sqm-stencilbook --> sqm-router
+ sqm-stencilbook --> sqm-task-card
+ sqm-stencilbook --> sqm-card-feed
+ sqm-stencilbook --> sqm-user-name
+ sqm-stencilbook --> sqm-code-verification
+ sqm-stencilbook --> sqm-email-verification
+ sqm-stencilbook --> sqm-banking-info-form
sqm-stencilbook --> sqm-payout-details-card
sqm-stencilbook --> sqm-user-info-form
sqm-stencilbook --> sqm-indirect-tax-form
sqm-stencilbook --> sqm-docusign-form
- sqm-stencilbook --> sqm-banking-info-form
sqm-stencilbook --> sqm-tax-and-cash-dashboard
- sqm-stencilbook --> sqm-tax-and-cash
- sqm-stencilbook --> sqm-invoice-table
- sqm-stencilbook --> sqm-invoice-table-download-cell
- sqm-stencilbook --> sqm-invoice-table-date-cell
- sqm-stencilbook --> sqm-invoice-table-download-column
- sqm-stencilbook --> sqm-invoice-table-date-column
- sqm-stencilbook --> sqm-invoice-table-data-column
- sqm-stencilbook --> sqm-email-verification
- sqm-stencilbook --> sqm-code-verification
- sqm-stencilbook --> sqm-payout-button-scroll
sqm-stencilbook --> sqm-payout-status-alert
- sqm-stencilbook --> sqm-referral-codes
sqm-stencilbook --> sqm-lead-input-field
sqm-stencilbook --> sqm-lead-dropdown-field
sqm-stencilbook --> sqm-lead-form
+ sqm-portal-register --> sqm-form-message
+ sqm-portal-register --> sqm-password-field
+ sqm-coupon-code --> sqm-form-message
+ sqm-edit-profile --> sqm-form-message
sqm-empty --> sqm-portal-container
sqm-empty --> sqm-titled-section
sqm-empty --> sqm-text
- sqm-leaderboard --> sqm-empty
- sqm-edit-profile --> sqm-form-message
- sqm-reward-exchange-list --> sqm-empty
- sqm-rewards-table --> sqm-empty
- sqm-rewards-table --> sqm-table-row
- sqm-rewards-table --> sqm-table-cell
- sqm-rewards-table-reward-column --> sqm-rewards-table-reward-cell
- sqm-rewards-table-source-column --> sqm-rewards-table-source-cell
- sqm-rewards-table-status-column --> sqm-rewards-table-status-cell
- sqm-rewards-table-date-column --> sqm-rewards-table-date-cell
sqm-portal-login --> sqm-form-message
- sqm-portal-register --> sqm-form-message
- sqm-portal-register --> sqm-password-field
+ sqm-portal-change-password --> sqm-form-message
+ sqm-portal-change-password --> sqm-password-field
+ sqm-referred-registration --> sqm-form-message
+ sqm-invoice-table --> sqm-empty
+ sqm-invoice-table --> sqm-table-row
+ sqm-invoice-table --> sqm-table-cell
+ sqm-invoice-table-download-column --> sqm-invoice-table-download-cell
+ sqm-invoice-table-date-column --> sqm-invoice-table-date-cell
+ sqm-invoice-table-data-column --> sqm-invoice-table-data-cell
+ sqm-leaderboard --> sqm-empty
+ sqm-payout-button-scroll --> sqm-scroll
sqm-portal-change-marketing --> sqm-form-message
+ sqm-portal-forgot-password --> sqm-form-message
+ sqm-referral-codes --> sqm-empty
sqm-referral-table --> sqm-empty
sqm-referral-table --> sqm-table-row
sqm-referral-table --> sqm-table-cell
- sqm-portal-change-password --> sqm-form-message
- sqm-portal-change-password --> sqm-password-field
sqm-referral-table-user-column --> sqm-referral-table-user-cell
sqm-referral-table-status-column --> sqm-referral-table-status-cell
sqm-referral-table-date-column --> sqm-referral-table-date-cell
sqm-referral-table-rewards-column --> sqm-referral-table-rewards-cell
- sqm-coupon-code --> sqm-form-message
- sqm-user-info-form --> sqm-payout-details-card
- sqm-user-info-form --> sqm-user-info-form
- sqm-user-info-form --> sqm-indirect-tax-form
- sqm-user-info-form --> sqm-docusign-form
- sqm-user-info-form --> sqm-banking-info-form
- sqm-user-info-form --> sqm-tax-and-cash-dashboard
- sqm-user-info-form --> sqm-tax-and-cash
- sqm-banking-info-form --> sqm-code-verification
+ sqm-reward-exchange-list --> sqm-empty
+ sqm-rewards-table --> sqm-empty
+ sqm-rewards-table --> sqm-table-row
+ sqm-rewards-table --> sqm-table-cell
+ sqm-rewards-table-reward-column --> sqm-rewards-table-reward-cell
+ sqm-rewards-table-source-column --> sqm-rewards-table-source-cell
+ sqm-rewards-table-status-column --> sqm-rewards-table-status-cell
+ sqm-rewards-table-date-column --> sqm-rewards-table-date-cell
sqm-code-verification --> sqm-form-message
+ sqm-email-verification --> sqm-form-message
+ sqm-banking-info-form --> sqm-code-verification
+ sqm-banking-info-form --> sqm-form-message
+ sqm-user-info-form --> sqm-form-message
+ sqm-indirect-tax-form --> sqm-form-message
+ sqm-docusign-form --> sqm-form-message
sqm-tax-and-cash-dashboard --> sqm-payout-details-card
+ sqm-tax-and-cash-dashboard --> sqm-form-message
sqm-tax-and-cash-dashboard --> sqm-invoice-table
sqm-tax-and-cash-dashboard --> sqm-invoice-table-download-column
sqm-tax-and-cash-dashboard --> sqm-invoice-table-date-column
sqm-tax-and-cash-dashboard --> sqm-invoice-table-data-column
- sqm-invoice-table --> sqm-empty
- sqm-invoice-table --> sqm-table-row
- sqm-invoice-table --> sqm-table-cell
- sqm-invoice-table-download-column --> sqm-invoice-table-download-cell
- sqm-invoice-table-date-column --> sqm-invoice-table-date-cell
- sqm-invoice-table-data-column --> sqm-invoice-table-data-cell
- sqm-tax-and-cash --> sqm-user-info-form
- sqm-tax-and-cash --> sqm-indirect-tax-form
- sqm-tax-and-cash --> sqm-docusign-form
- sqm-tax-and-cash --> sqm-banking-info-form
- sqm-tax-and-cash --> sqm-tax-and-cash-dashboard
- sqm-payout-button-scroll --> sqm-scroll
sqm-payout-status-alert --> sqm-scroll
- sqm-referral-codes --> sqm-empty
+ sqm-payout-status-alert --> sqm-form-message
sqm-lead-form --> sqm-form-message
sqm-lead-form --> sqm-lead-input-field
style sqm-stencilbook fill:#f9f,stroke:#333,stroke-width:4px
diff --git a/packages/mint-components/src/components/sqm-stencilbook/sqm-stencilbook.tsx b/packages/mint-components/src/components/sqm-stencilbook/sqm-stencilbook.tsx
index 6c24fd1671..59aca2d61e 100644
--- a/packages/mint-components/src/components/sqm-stencilbook/sqm-stencilbook.tsx
+++ b/packages/mint-components/src/components/sqm-stencilbook/sqm-stencilbook.tsx
@@ -1,113 +1,111 @@
-import { h, Component, Host, State } from "@stencil/core";
-import { useStencilbook } from "@saasquatch/stencilbook";
import { useState, withHooks } from "@saasquatch/stencil-hooks";
+import { useStencilbook } from "@saasquatch/stencilbook";
+import { Component, h, Host, State } from "@stencil/core";
-import * as ShareButton from "../sqm-share-button/ShareButton.stories";
-import * as EmptyState from "../sqm-empty/EmptyState.stories";
-import * as Pagination from "../sqm-pagination/Pagination.stories";
-import * as ShareLink from "../sqm-share-link/ShareLink.stories";
+import * as NewPortal from "../../stories/NewPortal.stories";
+import * as PortalTemplates from "../../stories/PortalTemplates.stories";
+import * as PoweredByImg from "../../stories/PoweredByImg.stories";
+import * as Widget from "../../stories/Widget.stories";
+import * as BaseRegistrationForm from "../sqm-base-registration/BaseRegistrationForm.stories";
import * as BigStat from "../sqm-big-stat/BigStat.stories";
-import * as Leaderboard from "../sqm-leaderboard/Leaderboard.stories";
-import * as Router from "../sqm-router/Router.stories";
-import * as LeaderboardRank from "../sqm-leaderboard-rank/LeaderboardRank.stories";
-import * as PortalFrame from "../sqm-portal-frame/PortalFrame.stories";
-import * as EditProfile from "../sqm-edit-profile/EditProfileForm.stories";
-import * as UseShareLink from "../sqm-share-link/UseShareLink.stories";
-import * as UseShareButton from "../sqm-share-button/UseShareButton.stories";
import * as UseBigStat from "../sqm-big-stat/UseBigStat.stories";
+import * as BrandStories from "../sqm-brand/SqmBrand.stories";
+import * as CardFeed from "../sqm-card-feed/CardFeed.stories";
+import * as CheckboxField from "../sqm-checkbox-field/CheckboxField.stories";
+import * as UseCheckboxField from "../sqm-checkbox-field/UseCheckboxField.stories";
+import * as CloseButton from "../sqm-close-button/CloseButton.stories";
+import * as CouponCode from "../sqm-coupon-code/CouponCode.stories";
+import * as DividedLayout from "../sqm-divided-layout/DividedLayout.stories";
+import * as DropdownField from "../sqm-dropdown-field/DropdownField.stories";
+import * as UseDropdownField from "../sqm-dropdown-field/UseDropdownField.stories";
+import * as EditProfile from "../sqm-edit-profile/EditProfileForm.stories";
import * as UseEditProfile from "../sqm-edit-profile/UseEditProfile.stories";
-import * as UseLeaderboard from "../sqm-leaderboard/UseLeaderboard.stories";
+import * as EmptyState from "../sqm-empty/EmptyState.stories";
import * as FormMessage from "../sqm-form-message/FormMessage.stories";
-import * as UseRewardExchangeList from "../sqm-reward-exchange-list/UseRewardExchangeList.stories";
-import * as UseRewardsTable from "../sqm-rewards-table/UseRewardsTable.stories";
-import * as UseTaskCard from "../sqm-task-card/UseTaskCard.stories";
-import * as NewPortal from "../../stories/NewPortal.stories";
-import * as Widget from "../../stories/Widget.stories";
+import * as HeroImage from "../sqm-hero-image/HeroImage.stories";
+import * as Hero from "../sqm-hero/Hero.stories";
+import * as Image from "../sqm-image/Image.stories";
+import * as InputField from "../sqm-input-field/InputField.stories";
+import * as UseInputField from "../sqm-input-field/UseInputField.stories";
+import * as InvoiceTable from "../sqm-invoice-table/InvoiceTable.stories";
+import * as InvoiceTableCells from "../sqm-invoice-table/InvoiceTableCell.stories";
+import * as UseInvoiceTableCells from "../sqm-invoice-table/UseInvoiceTable.stories";
+import * as LeaderboardRank from "../sqm-leaderboard-rank/LeaderboardRank.stories";
+import * as Leaderboard from "../sqm-leaderboard/Leaderboard.stories";
+import * as UseLeaderboard from "../sqm-leaderboard/UseLeaderboard.stories";
+import * as LinkButton from "../sqm-link-button/LinkButton.stories";
+import * as LogoutCurrentUser from "../sqm-logout-current-user/LogoutCurrentUser.stories";
+import * as MarketingEmailsCheckbox from "../sqm-marketing-emails-checkbox/MarketingEmailsCheckbox.stories";
+import * as NameFields from "../sqm-name-fields/NameFields.stories";
import * as SidebarItem from "../sqm-navigation-sidebar-item/SidebarItem.stories";
import * as NavigationSidebar from "../sqm-navigation-sidebar/NavigationSidebar.stories";
+import * as Pagination from "../sqm-pagination/Pagination.stories";
+import * as PasswordField from "../sqm-password-field/PasswordField.stories";
+import * as PayoutButtonScroll from "../sqm-payout-button-scroll/PayoutButtonScroll.stories";
+import * as ChangeMarketing from "../sqm-portal-change-marketing/ChangeMarketing.stories";
+import * as ChangePassword from "../sqm-portal-change-password/ChangePassword.stories";
+import * as PortalContainer from "../sqm-portal-container/PortalContainer.stories";
+import * as PortalEmailVerification from "../sqm-portal-email-verification/PortalEmailVerification.stories";
+import * as PortalFooter from "../sqm-portal-footer/PortalFooter.stories";
+import * as PortalForgotPassword from "../sqm-portal-forgot-password/PortalForgotPassword.stories";
+import * as PortalFrame from "../sqm-portal-frame/PortalFrame.stories";
+import * as PortalGoogleRegistrationFormStories from "../sqm-portal-google-registration-form/PortalGoogleRegistrationForm.stories";
import * as PortalLogin from "../sqm-portal-login/PortalLogin.stories";
+import * as PortalProfile from "../sqm-portal-profile/PortalProfile.stories";
import * as PortalRegister from "../sqm-portal-register/PortalRegister.stories";
import * as NewPortalRegistrationForm from "../sqm-portal-registration-form/PortalRegistrationForm.stories";
-import * as PortalForgotPassword from "../sqm-portal-forgot-password/PortalForgotPassword.stories";
-import * as PortalEmailVerification from "../sqm-portal-email-verification/PortalEmailVerification.stories";
import * as PortalResetPassword from "../sqm-portal-reset-password/PortalResetPassword.stories";
import * as PortalVerifyEmail from "../sqm-portal-verify-email/PortalVerifyEmail.stories";
-import * as AssetCard from "../sqm-asset-card/AssetCard.stories";
-import * as DividedLayout from "../sqm-divided-layout/DividedLayout.stories";
-import * as ChangePassword from "../sqm-portal-change-password/ChangePassword.stories";
-import * as ChangeMarketing from "../sqm-portal-change-marketing/ChangeMarketing.stories";
-import * as PortalProfile from "../sqm-portal-profile/PortalProfile.stories";
+import * as ProgramExplainerStep from "../sqm-program-explainer-step/ProgramExplainerStep.stories";
+import * as ProgramExplainer from "../sqm-program-explainer/ProgramExplainer.stories";
+import * as ProgramMenu from "../sqm-program-menu/ProgramMenu.stories";
+import * as QRCode from "../sqm-qr-code/QRCode.stories";
+import * as RadioCard from "../sqm-radio-card/RadioCard.stories";
+import * as ReferralCard from "../sqm-referral-card/ReferralCard.stories";
+import * as ReferralCode from "../sqm-referral-code/ReferralCode.stories";
+import * as ReferralCodes from "../sqm-referral-codes/ReferralCodes.stories";
+import * as ReferralIframe from "../sqm-referral-iframe/ReferralIframe.stories";
import * as ReferralTable from "../sqm-referral-table/ReferralTable.stories";
import * as ReferralTableCell from "../sqm-referral-table/ReferralTableCell.stories";
import * as ReferralTableRewardsCell from "../sqm-referral-table/ReferralTableRewardsCell.stories";
-import * as UserName from "../sqm-user-name/UserName.stories";
-import * as PasswordField from "../sqm-password-field/PasswordField.stories";
-import * as TaskCard from "../sqm-task-card/TaskCard.stories";
-import * as PortalTemplates from "../../stories/PortalTemplates.stories";
-import * as ProgramMenu from "../sqm-program-menu/ProgramMenu.stories";
-import * as PoweredByImg from "../../stories/PoweredByImg.stories";
-import * as PortalFooter from "../sqm-portal-footer/PortalFooter.stories";
-import * as Hero from "../sqm-hero/Hero.stories";
-import * as ReferralIframe from "../sqm-referral-iframe/ReferralIframe.stories";
-import * as NameFields from "../sqm-name-fields/NameFields.stories";
-import * as CheckboxField from "../sqm-checkbox-field/CheckboxField.stories";
-import * as MarketingEmailsCheckbox from "../sqm-marketing-emails-checkbox/MarketingEmailsCheckbox.stories";
-import * as UseCheckboxField from "../sqm-checkbox-field/UseCheckboxField.stories";
-import * as DropdownField from "../sqm-dropdown-field/DropdownField.stories";
-import * as UseDropdownField from "../sqm-dropdown-field/UseDropdownField.stories";
-import * as InputField from "../sqm-input-field/InputField.stories";
-import * as UseInputField from "../sqm-input-field/UseInputField.stories";
+import * as UseReferralTable from "../sqm-referral-table/UseReferralTable.stories";
import * as RewardExchangeList from "../sqm-reward-exchange-list/RewardExchangeList.stories";
-import * as ProgramExplainer from "../sqm-program-explainer/ProgramExplainer.stories";
-import * as ProgramExplainerStep from "../sqm-program-explainer-step/ProgramExplainerStep.stories";
-import * as BrandStories from "../sqm-brand/SqmBrand.stories";
-import * as CardFeed from "../sqm-card-feed/CardFeed.stories";
-import * as PortalContainer from "../sqm-portal-container/PortalContainer.stories";
-import * as RewardsTableCell from "../sqm-rewards-table/RewardsTableCell.stories";
+import * as UseRewardExchangeList from "../sqm-reward-exchange-list/UseRewardExchangeList.stories";
import * as RewardsTable from "../sqm-rewards-table/RewardsTable.stories";
-import * as UseReferralTable from "../sqm-referral-table/UseReferralTable.stories";
-import * as HeroImage from "../sqm-hero-image/HeroImage.stories";
-import * as ReferralCard from "../sqm-referral-card/ReferralCard.stories";
-import * as Timeline from "../sqm-timeline/Timeline.stories";
-import * as Image from "../sqm-image/Image.stories";
-import * as TitledSection from "../sqm-titled-section/TitledSection.stories";
+import * as RewardsTableCell from "../sqm-rewards-table/RewardsTableCell.stories";
+import * as UseRewardsTable from "../sqm-rewards-table/UseRewardsTable.stories";
+import * as Router from "../sqm-router/Router.stories";
import * as Scroll from "../sqm-scroll/Scroll.stories";
-import * as Tabs from "../sqm-tabs/Tabs.stories";
+import * as ShareButton from "../sqm-share-button/ShareButton.stories";
+import * as UseShareButton from "../sqm-share-button/UseShareButton.stories";
import * as ShareCode from "../sqm-share-code/ShareCode.stories";
-import * as ReferralCode from "../sqm-referral-code/ReferralCode.stories";
-import * as EmailRegistration from "../views/EmailRegistration.stories";
-import * as CouponCode from "../sqm-coupon-code/CouponCode.stories";
-import * as LogoutCurrentUser from "../sqm-logout-current-user/LogoutCurrentUser.stories";
-import * as LinkButton from "../sqm-link-button/LinkButton.stories";
-import * as CloseButton from "../sqm-close-button/CloseButton.stories";
-import * as TaxForm from "../tax-and-cash/TaxForm.stories";
-import * as TaxFormSlots from "../tax-and-cash/sqm-user-info-form/small-views/SlotViews.stories";
-import * as RadioCard from "../sqm-radio-card/RadioCard.stories";
+import * as ShareLink from "../sqm-share-link/ShareLink.stories";
+import * as UseShareLink from "../sqm-share-link/UseShareLink.stories";
+import * as Tabs from "../sqm-tabs/Tabs.stories";
+import * as TaskCard from "../sqm-task-card/TaskCard.stories";
+import * as UseTaskCard from "../sqm-task-card/UseTaskCard.stories";
import * as ProgressBar from "../sqm-task-card/progress-bar/ProgressBar.stories";
-import * as PayoutDetailsCard from "../tax-and-cash/sqm-payout-details-card/PayoutDetailsCard.stories";
-import * as BankingInfoForm from "../tax-and-cash/BankingForm.stories";
-import * as InvoiceTable from "../sqm-invoice-table/InvoiceTable.stories";
-import * as InvoiceTableCells from "../sqm-invoice-table/InvoiceTableCell.stories";
-import * as UseInvoiceTableCells from "../sqm-invoice-table/UseInvoiceTable.stories";
-import * as WidgetEmailVerification from "../sqm-widget-verification/sqm-email-verification/WidgetEmailVerification.stories";
+import * as Text from "../sqm-text/Text.stories";
+import * as Timeline from "../sqm-timeline/Timeline.stories";
+import * as TitledSection from "../sqm-titled-section/TitledSection.stories";
+import * as UserName from "../sqm-user-name/UserName.stories";
import * as WidgetCodeVerification from "../sqm-widget-verification/sqm-code-verification/WidgetCodeVerification.stories";
-import * as PayoutButtonScroll from "../sqm-payout-button-scroll/PayoutButtonScroll.stories";
+import * as WidgetEmailVerification from "../sqm-widget-verification/sqm-email-verification/WidgetEmailVerification.stories";
+import * as BankingInfoForm from "../tax-and-cash/BankingForm.stories";
+import * as TaxForm from "../tax-and-cash/TaxForm.stories";
+import * as PayoutDetailsCard from "../tax-and-cash/sqm-payout-details-card/PayoutDetailsCard.stories";
import * as PayoutStatusAlert from "../tax-and-cash/sqm-payout-status-alert/PayoutStatusAlert.stories";
-import * as ReferralCodes from "../sqm-referral-codes/ReferralCodes.stories";
-import * as BaseRegistrationForm from "../sqm-base-registration/BaseRegistrationForm.stories";
-import * as PortalRegistrationForm from "../sqm-portal-registration-form/PortalRegistrationForm.stories";
-import * as PortalGoogleRegistrationFormStories from "../sqm-portal-google-registration-form/PortalGoogleRegistrationForm.stories";
-import * as QRCode from "../sqm-qr-code/QRCode.stories";
+import * as TaxFormSlots from "../tax-and-cash/sqm-user-info-form/small-views/SlotViews.stories";
+import * as EmailRegistration from "../views/EmailRegistration.stories";
import * as LeadForm from "../sqm-lead-form/LeadForm.stories";
import * as LeadInputField from "../sqm-lead-form/LeadInputField.stories";
import * as LeadFormDropdownField from "../sqm-lead-form/LeadFormDropdownField.stories";
import * as LeadCheckboxField from "../sqm-lead-form/LeadCheckboxField.stories";
-import * as Themes from "./Themes";
+import { ShadowViewAddon } from "../../ShadowViewAddon";
import { CucumberAddon } from "./CucumberAddon";
import { HookStoryAddon } from "./HookStoryAddon";
-import { ShadowViewAddon } from "../../ShadowViewAddon";
-import { ResizerStylesheet } from "./Resizer";
+import * as Themes from "./Themes";
const stories = [
InvoiceTable,
@@ -141,7 +139,6 @@ const stories = [
PortalEmailVerification,
PortalResetPassword,
PortalVerifyEmail,
- AssetCard,
DividedLayout,
ChangePassword,
PortalProfile,
@@ -199,13 +196,13 @@ const stories = [
NewPortalRegistrationForm,
ChangeMarketing,
BaseRegistrationForm,
- PortalRegistrationForm,
PortalGoogleRegistrationFormStories,
WidgetEmailVerification,
WidgetCodeVerification,
PayoutButtonScroll,
PayoutStatusAlert,
QRCode,
+ Text,
LeadForm,
LeadInputField,
LeadFormDropdownField,
@@ -221,8 +218,7 @@ const stories = [
tag: "sqm-stencilbook",
})
export class StencilStorybook {
- @State()
- ignored = true;
+ @State() ignored = true;
constructor() {
withHooks(this);
@@ -241,7 +237,7 @@ export class StencilStorybook {
const theme = Themes[selectedTheme];
return (
- {t}
))}
-
-
-
-
setCheckerboard(!checkerboard)}
- onChange={() =>
- document.documentElement.style.setProperty(
- "--checker-color-1",
- checkerboard ? "#ebebeb" : "#ffffff00"
- )
- }
- >
-
-
-
-
+