Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/bedrock-components/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@saasquatch/bedrock-components",
"title": "Bedrock Components",
"version": "1.5.1",
"version": "1.5.2-0",
"description": "Component library that adds advanced logic to your widgets and pages. Built and maintained by Saasquatch.",
"icon": "https://res.cloudinary.com/saasquatch/image/upload/v1652219900/squatch-assets/For_Bedrock.svg",
"main": "dist/index.cjs.js",
Expand Down
35 changes: 18 additions & 17 deletions packages/bedrock-components/stencil.config.ts
Original file line number Diff line number Diff line change
@@ -1,43 +1,44 @@
import { Config } from '@stencil/core';
import alias from '@rollup/plugin-alias';
import { grapesJsOutput } from '@saasquatch/stencil-grapes-plugin';
import { OutputTarget } from '@stencil/core/internal';
import { string } from 'rollup-plugin-string';
import path from 'path';
import plugin from '@raisins/stencil-docs-target';
import { Config } from "@stencil/core";
import alias from "@rollup/plugin-alias";
import { grapesJsOutput } from "@saasquatch/stencil-grapes-plugin";
import { OutputTarget } from "@stencil/core/internal";
import { string } from "rollup-plugin-string";
import path from "path";
import plugin from "@raisins/stencil-docs-target";

const useGrapesjs: OutputTarget = grapesJsOutput({
outDir: 'grapesjs',
outDir: "grapesjs",
});

export const config: Config = {
namespace: 'bedrock-components',
namespace: "bedrock-components",
buildEs5: true,
globalScript: 'src/global/global.ts',
globalScript: "src/global/global.ts",
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Setting hydratedFlag: null in bedrock-components explicitly disables the hydration flag feature. For consistency across the monorepo and to ensure similar widget load behavior, consider whether bedrock-components should also use the same hydratedFlag configuration as mint-components, or document why they differ.

Suggested change
globalScript: "src/global/global.ts",
globalScript: "src/global/global.ts",
// Note: We explicitly disable Stencil's hydration flag for bedrock-components.
// This differs from mint-components and is intentional to preserve existing
// widget load behavior and DOM markup expectations in consumers.

Copilot uses AI. Check for mistakes.
hydratedFlag: null,
outputTargets: [
{
type: 'dist',
type: "dist",
},
{
type: 'docs-readme',
type: "docs-readme",
},
{
type: 'www',
type: "www",
serviceWorker: null, // disable service workers
},
useGrapesjs,
plugin({
outDir: 'docs',
outDir: "docs",
}),
],
plugins: [string({ include: '**/*.feature' })],
plugins: [string({ include: "**/*.feature" })],
rollupPlugins: {
before: [
alias({
entries: [
{
find: '@saasquatch/universal-hooks',
replacement: path.resolve(__dirname, 'node_modules', '@saasquatch/stencil-hooks'),
find: "@saasquatch/universal-hooks",
replacement: path.resolve(__dirname, "node_modules", "@saasquatch/stencil-hooks"),
},
],
}),
Expand Down
6 changes: 3 additions & 3 deletions packages/mint-components/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@saasquatch/mint-components",
"title": "Mint Components",
"version": "2.1.0",
"version": "2.1.1-1",
"description": "A minimal design library with components for referral and loyalty experiences. Built with Shoelace components by Saasquatch.",
"icon": "https://res.cloudinary.com/saasquatch/image/upload/v1652219900/squatch-assets/For_Mint.svg",
"raisins": "docs/raisins.json",
Expand Down Expand Up @@ -36,7 +36,7 @@
"postinstall": "patch-package"
},
"devDependencies": {
"@formatjs/intl": "1.8.4",
"@formatjs/intl": "^3.1.8",
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The @formatjs/intl dependency is being upgraded from version 1.8.4 to ^3.1.8, which is a major version jump (from v1 to v3). This is a potentially breaking change that could introduce compatibility issues. Ensure that this upgrade has been tested thoroughly and that all formatMessage calls throughout the codebase remain compatible with the new version.

Suggested change
"@formatjs/intl": "^3.1.8",
"@formatjs/intl": "1.8.4",

Copilot uses AI. Check for mistakes.
"@formatjs/intl-pluralrules": "^1.5.8",
"@formatjs/intl-relativetimeformat": "4.5.15",
"@formatjs/intl-utils": "^2.2.5",
Expand Down Expand Up @@ -107,4 +107,4 @@
},
"homepage": "https://github.com/saasquatch/program-tools",
"license": "MIT"
}
}
41 changes: 40 additions & 1 deletion packages/mint-components/src/components.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import { NavigationMenuViewProps } from "./components/sqm-navigation-menu/sqm-na
import { NavigationSidebarViewProps } from "./components/sqm-navigation-sidebar/sqm-navigation-sidebar-view";
import { NavigationSidebarItemViewProps } from "./components/sqm-navigation-sidebar-item/sqm-navigation-sidebar-item-view";
import { UsePagination } from "./components/sqm-pagination/usePagination";
import { PasswordFieldViewDemoProps } from "./components/sqm-password-field/sqm-password-field";
import { PasswordFieldViewDemoProps } from "./components/sqm-password-field/usePasswordField";
import { PayoutButtonScrollViewProps } from "./components/sqm-payout-button-scroll/sqm-payout-button-scroll-view";
import { PayoutStatusAlertViewProps } from "./components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert-view";
import { ChangeMarketingViewProps } from "./components/sqm-portal-change-marketing/sqm-portal-change-marketing-view";
Expand Down Expand Up @@ -985,6 +985,11 @@ export namespace Components {
* @uiName Icon
*/
"icon"?: string;
/**
* Loading state for the alert.
* @uiName Loading
*/
"loading": boolean;
/**
* Render the alert with transparent styles
*/
Expand Down Expand Up @@ -4957,6 +4962,16 @@ export namespace Components {
*/
"tooltiptext": string;
}
interface SqmSkeleton {
/**
* @uiName Height (in pixels or %)
*/
"height"?: string;
/**
* @uiName Width (in pixels or %)
*/
"width"?: string;
}
interface SqmStatContainer {
/**
* Controls the alignment of the flexbox
Expand Down Expand Up @@ -7707,6 +7722,12 @@ declare global {
prototype: HTMLSqmShareLinkElement;
new (): HTMLSqmShareLinkElement;
};
interface HTMLSqmSkeletonElement extends Components.SqmSkeleton, HTMLStencilElement {
}
var HTMLSqmSkeletonElement: {
prototype: HTMLSqmSkeletonElement;
new (): HTMLSqmSkeletonElement;
};
interface HTMLSqmStatContainerElement extends Components.SqmStatContainer, HTMLStencilElement {
}
var HTMLSqmStatContainerElement: {
Expand Down Expand Up @@ -7925,6 +7946,7 @@ declare global {
"sqm-share-button": HTMLSqmShareButtonElement;
"sqm-share-code": HTMLSqmShareCodeElement;
"sqm-share-link": HTMLSqmShareLinkElement;
"sqm-skeleton": HTMLSqmSkeletonElement;
"sqm-stat-container": HTMLSqmStatContainerElement;
"sqm-stencilbook": HTMLSqmStencilbookElement;
"sqm-tab": HTMLSqmTabElement;
Expand Down Expand Up @@ -8870,6 +8892,11 @@ declare namespace LocalJSX {
* @uiName Icon
*/
"icon"?: string;
/**
* Loading state for the alert.
* @uiName Loading
*/
"loading"?: boolean;
/**
* Render the alert with transparent styles
*/
Expand Down Expand Up @@ -12813,6 +12840,16 @@ declare namespace LocalJSX {
*/
"tooltiptext"?: string;
}
interface SqmSkeleton {
/**
* @uiName Height (in pixels or %)
*/
"height"?: string;
/**
* @uiName Width (in pixels or %)
*/
"width"?: string;
}
interface SqmStatContainer {
/**
* Controls the alignment of the flexbox
Expand Down Expand Up @@ -15016,6 +15053,7 @@ declare namespace LocalJSX {
"sqm-share-button": SqmShareButton;
"sqm-share-code": SqmShareCode;
"sqm-share-link": SqmShareLink;
"sqm-skeleton": SqmSkeleton;
"sqm-stat-container": SqmStatContainer;
"sqm-stencilbook": SqmStencilbook;
"sqm-tab": SqmTab;
Expand Down Expand Up @@ -15149,6 +15187,7 @@ declare module "@stencil/core" {
"sqm-share-button": LocalJSX.SqmShareButton & JSXBase.HTMLAttributes<HTMLSqmShareButtonElement>;
"sqm-share-code": LocalJSX.SqmShareCode & JSXBase.HTMLAttributes<HTMLSqmShareCodeElement>;
"sqm-share-link": LocalJSX.SqmShareLink & JSXBase.HTMLAttributes<HTMLSqmShareLinkElement>;
"sqm-skeleton": LocalJSX.SqmSkeleton & JSXBase.HTMLAttributes<HTMLSqmSkeletonElement>;
"sqm-stat-container": LocalJSX.SqmStatContainer & JSXBase.HTMLAttributes<HTMLSqmStatContainerElement>;
"sqm-stencilbook": LocalJSX.SqmStencilbook & JSXBase.HTMLAttributes<HTMLSqmStencilbookElement>;
"sqm-tab": LocalJSX.SqmTab & JSXBase.HTMLAttributes<HTMLSqmTabElement>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
```mermaid
graph TD;
sqm-coupon-code --> sqm-form-message
sqm-form-message --> sqm-skeleton
sqm-stencilbook --> sqm-coupon-code
style sqm-coupon-code fill:#f9f,stroke:#333,stroke-width:4px
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
```mermaid
graph TD;
sqm-edit-profile --> sqm-form-message
sqm-form-message --> sqm-skeleton
sqm-stencilbook --> sqm-edit-profile
style sqm-edit-profile fill:#f9f,stroke:#333,stroke-width:4px
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,11 @@ const EditProfileView = (props: EditProfileViewProps) => {
<form class="FormWrapper" onSubmit={callbacks.onSubmit}>
<div class="FormSection">
{states.formState.error && (
<sqm-form-message type="error" exportparts="erroralert-icon">
<sqm-form-message
loading={states.loading}
type="error"
exportparts="erroralert-icon"
>
<div part="erroralert-text">{states.formState.error}</div>
</sqm-form-message>
)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ const defaultElements = {
return (
<tr>
<td>
<sl-skeleton></sl-skeleton>
<sqm-skeleton></sqm-skeleton>
</td>
</tr>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,12 @@ export const InfoAlertTransparent = () => (
<p part="alert-description">This is the description</p>
</sqm-form-message>
);

export const Loading = () => {
return (
<sqm-form-message type="success" loading={true}>
<p part="alert-title">This is the title</p>
<p part="alert-description">This is the description</p>
</sqm-form-message>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
| Property | Attribute | Description | Type | Default |
| ------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------- | --------- | ----------- |
| `icon` | `icon` | Icon to use in alert. Use icon values from Shoelace (e.g. "star" or "heart") at https://shoelace.style/components/icon | `string` | `undefined` |
| `loading` | `loading` | Loading state for the alert. | `boolean` | `false` |
| `transparent` | `transparent` | Render the alert with transparent styles | `boolean` | `false` |
| `type` | `type` | Options include "success", "info", "warning", and "error" | `string` | `undefined` |

Expand Down Expand Up @@ -45,9 +46,14 @@
- [sqm-tax-and-cash-dashboard](../tax-and-cash/sqm-tax-and-cash-dashboard)
- [sqm-user-info-form](../tax-and-cash/sqm-user-info-form)

### Depends on

- [sqm-skeleton](../sqm-skeleton)

### Graph
```mermaid
graph TD;
sqm-form-message --> sqm-skeleton
sqm-banking-info-form --> sqm-form-message
sqm-code-verification --> sqm-form-message
sqm-coupon-code --> sqm-form-message
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@ export class FormMessage {
* @uiName Alert type
*/
@Prop() type: string;

/**
* Loading state for the alert.
*
* @uiName Loading
*/
@Prop() loading: boolean = false;
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Prop() loading: boolean = false; causes the generated component type (Components.SqmFormMessage) to require a loading attribute, even though it has a default. To avoid breaking TS/JSX consumers, make this prop optional (e.g., loading?: boolean = false) so the generated typings don’t require it.

Suggested change
@Prop() loading: boolean = false;
@Prop() loading?: boolean = false;

Copilot uses AI. Check for mistakes.
/**
* Icon to use in alert. Use icon values from Shoelace (e.g. "star" or "heart") at https://shoelace.style/components/icon
*
Expand All @@ -39,6 +46,10 @@ export class FormMessage {
disconnectedCallback() {}

render() {
if (this.loading) {
return <sqm-skeleton height="90px" width="100%"></sqm-skeleton>;
}

if (this.type === "error") {
return (
<sl-alert
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
```mermaid
graph TD;
sqm-instant-access-registration --> sqm-form-message
sqm-form-message --> sqm-skeleton
style sqm-instant-access-registration fill:#f9f,stroke:#333,stroke-width:4px
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,27 @@ const loadingElement = (
<div slot="loading" style={{ display: "contents" }}>
<sqm-table-row>
<sqm-table-cell colspan={6}>
<sl-skeleton></sl-skeleton>
<sqm-skeleton></sqm-skeleton>
</sqm-table-cell>
</sqm-table-row>
<sqm-table-row>
<sqm-table-cell colspan={6}>
<sl-skeleton></sl-skeleton>
<sqm-skeleton></sqm-skeleton>
</sqm-table-cell>
</sqm-table-row>
<sqm-table-row>
<sqm-table-cell colspan={6}>
<sl-skeleton></sl-skeleton>
<sqm-skeleton></sqm-skeleton>
</sqm-table-cell>
</sqm-table-row>
<sqm-table-row>
<sqm-table-cell colspan={6}>
<sl-skeleton></sl-skeleton>
<sqm-skeleton></sqm-skeleton>
</sqm-table-cell>
</sqm-table-row>
<sqm-table-row>
<sqm-table-cell colspan={6}>
<sl-skeleton></sl-skeleton>
<sqm-skeleton></sqm-skeleton>
</sqm-table-cell>
</sqm-table-row>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,15 @@
- [sqm-empty](../sqm-empty)
- [sqm-table-row](../sqm-table-row)
- [sqm-table-cell](../sqm-table-cell)
- [sqm-skeleton](../sqm-skeleton)

### Graph
```mermaid
graph TD;
sqm-invoice-table --> sqm-empty
sqm-invoice-table --> sqm-table-row
sqm-invoice-table --> sqm-table-cell
sqm-invoice-table --> sqm-skeleton
sqm-empty --> sqm-portal-container
sqm-empty --> sqm-titled-section
sqm-empty --> sqm-text
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ function LoadingRow() {
return (
<sqm-table-row>
<sqm-table-cell colspan={6}>
<sl-skeleton></sl-skeleton>
<sqm-skeleton></sqm-skeleton>
</sqm-table-cell>
</sqm-table-row>
);
Expand Down
Loading