diff --git a/.github/labeler.yml b/.github/labeler.yml
new file mode 100644
index 0000000000..92d3e92a7b
--- /dev/null
+++ b/.github/labeler.yml
@@ -0,0 +1,2 @@
+mercury-rising:
+ - base-branch: ['mercury-rising']
diff --git a/docs/lib/sage_rails/app/sage_components/sage_icon.rb b/docs/lib/sage_rails/app/sage_components/sage_icon.rb
index 9b0b7b7e78..5d54b21dd5 100644
--- a/docs/lib/sage_rails/app/sage_components/sage_icon.rb
+++ b/docs/lib/sage_rails/app/sage_components/sage_icon.rb
@@ -6,7 +6,7 @@ class SageIcon < SageComponent
card_color: [:optional, NilClass, Set.new(SageSchemas::STATUSES), String],
circular: [:optional, NilClass, TrueClass],
color: [:optional, NilClass, SageSchemas::COLOR_SLIDER],
- icon: SageSchemas::ICON,
+ icon: String,
label: [:optional, NilClass, String],
size: [:optional, NilClass, SageSchemas::ICON_SIZE],
})
diff --git a/lerna.json b/lerna.json
index 61bb73671f..89f06de875 100644
--- a/lerna.json
+++ b/lerna.json
@@ -3,7 +3,7 @@
"packages/*",
"docs"
],
- "version": "independent",
+ "version": "6.0.0",
"npmClient": "yarn",
"useWorkspaces": true,
"command": {
diff --git a/packages/sage-assets/lib/stylesheets/components/_button.scss b/packages/sage-assets/lib/stylesheets/components/_button.scss
index f31cb406d7..5e9bd9a688 100644
--- a/packages/sage-assets/lib/stylesheets/components/_button.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_button.scss
@@ -14,7 +14,7 @@ $-btn-base-padding-block: sage-spacing(xs); // vertical (y) axis
$-btn-base-padding-inline: sage-spacing(sm); // horizontal (x) axis
$-btn-base-line-height: var(--sage-line-height-body, #{rem(24px)});
$-btn-border-radius: 9999px;
-$-btn-shadow-base: sage-shadow(sm);
+$-btn-shadow-base: sage-shadow(050);
$-btn-icon-only-standard-size: rem(40px);
$-btn-icon-only-subtle-size: rem(16px);
$-btn-icon-only-hover-size: rem(24px);
@@ -49,13 +49,14 @@ $-btn-base-styles: (
primary: (
default: (
color: sage-color(white),
- background-color: sage-color(charcoal, 400),
- border-color: sage-color(charcoal, 400),
+ background-color: sage-color(grey, 900),
+ border-color: sage-color(grey, 900),
ring-color: sage-color(purple, 300),
),
hover: (
color: sage-color(white),
background-color: sage-color(grey, 950),
+ border-color: sage-color(grey, 950),
),
focus: (
color: sage-color(white),
@@ -63,19 +64,19 @@ $-btn-base-styles: (
border-color: sage-color(grey, 900),
),
disabled: (
- color: sage-color(grey, 600),
- background-color: sage-color(grey, 200),
- border-color: sage-color(grey, 200),
+ color: sage-color(grey, 400),
+ background-color: sage-color(grey, 150),
+ border-color: sage-color(grey, 150),
)
),
secondary: (
default: (
- color: sage-color(grey, 900),
+ color: sage-color(grey, 800),
background-color: sage-color(white),
ring-color: sage-color(purple, 300),
),
hover: (
- color: sage-color(grey, 900),
+ color: sage-color(grey, 950),
background-color: sage-color(grey, 100),
),
focus: (
@@ -96,7 +97,8 @@ $-btn-base-styles: (
),
hover: (
color: sage-color(white),
- background-color: sage-color(red, 800),
+ background-color: sage-color(red, 600),
+ border-color: sage-color(red, 600),
),
focus: (
color: sage-color(white),
@@ -184,9 +186,14 @@ $-btn-loading-min-height: rem(36px);
border-width: 1px;
border-style: solid;
border-radius: $-btn-border-radius;
+ box-shadow: $-btn-shadow-base;
transition: $-btn-transition;
transition-property: border, background-color, box-shadow;
+ &:focus {
+ outline: none;
+ }
+
&:disabled,
&[aria-disabled="true"] {
@include sage-button-style-disabled;
@@ -238,7 +245,9 @@ $-btn-loading-min-height: rem(36px);
}
.sage-dropdown__trigger--select & {
- font-weight: sage-font-weight(regular);
+ height: rem(40px);
+ font-family: $-body-font-stack;
+ font-weight: sage-font-weight(medium);
border-width: 0;
box-shadow: sage-border-interactive(default);
&:hover {
@@ -524,6 +533,7 @@ a.sage-btn {
}
}
@else if ($-style-type-name == focus) {
+ &:focus,
&:focus-visible,
&:active {
color: map-get($-style-type-configs, color);
@@ -588,31 +598,27 @@ a.sage-btn {
// Secondary styles, no shadow variation
.sage-btn--secondary {
- color: sage-color(grey, 900);
+ color: sage-color(grey, 800);
background-color: sage-color(white);
- border: 1px solid sage-color(grey, 500);
+ border: 1px solid sage-color(grey, 200);
&:hover {
- background-color: sage-color(white);
- border-color: sage-color(grey, 600);
- }
-
- &:focus {
- outline: none;
+ color: sage-color(grey, 950);
+ background-color: sage-color(grey, 100);
+ border-color: sage-color(grey, 300);
}
&:focus-visible,
&:active {
- color: sage-color(grey, 800);
background-color: sage-color(white);
border-color: sage-color(grey);
}
&:disabled,
&[aria-disabled="true"] {
- color: sage-color(grey, 600);
+ color: sage-color(grey, 400);
background-color: sage-color(white);
- border-color: sage-color(grey, 200);
+ border-color: sage-color(grey, 150);
}
}
diff --git a/packages/sage-assets/lib/stylesheets/components/_card.scss b/packages/sage-assets/lib/stylesheets/components/_card.scss
index 60ffb9bd64..7071da1a87 100644
--- a/packages/sage-assets/lib/stylesheets/components/_card.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_card.scss
@@ -19,6 +19,7 @@ $-sage-card-background: transparent;
.sage-card,
.sage-panel & {
box-shadow: none;
+ border: sage-border();
}
}
diff --git a/packages/sage-assets/lib/stylesheets/components/_checkbox.scss b/packages/sage-assets/lib/stylesheets/components/_checkbox.scss
index e64daed60f..4d14795dd9 100644
--- a/packages/sage-assets/lib/stylesheets/components/_checkbox.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_checkbox.scss
@@ -213,6 +213,10 @@ $-checkbox-focus-outline-color: sage-color(purple, 300);
background-color: sage-color(grey, 100);
}
+ &:focus:not(:disabled) {
+ outline: none;
+ }
+
&:focus-visible:not(:disabled),
&:active:not(:disabled) {
outline: none;
diff --git a/packages/sage-assets/lib/stylesheets/components/_choice.scss b/packages/sage-assets/lib/stylesheets/components/_choice.scss
index 9c59d682e0..7cb579aaf6 100644
--- a/packages/sage-assets/lib/stylesheets/components/_choice.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_choice.scss
@@ -65,6 +65,10 @@ $-choice-radio-color-checked-inner: map-get($sage-radio-colors, checked-inner);
color: $-choice-color-active;
}
+ &:focus {
+ outline: none;
+ }
+
&:focus-visible {
border-color: sage-color(purple, 300);
outline: none;
@@ -98,6 +102,7 @@ $-choice-radio-color-checked-inner: map-get($sage-radio-colors, checked-inner);
.sage-card & ,
.sage-panel & {
box-shadow: none;
+ border: sage-border();
}
.sage-tabs--layout-default &:not(:last-child) {
diff --git a/packages/sage-assets/lib/stylesheets/components/_dropdown.scss b/packages/sage-assets/lib/stylesheets/components/_dropdown.scss
index c31161dc81..8bc011f8bc 100644
--- a/packages/sage-assets/lib/stylesheets/components/_dropdown.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_dropdown.scss
@@ -122,6 +122,10 @@ $-dropdown-trigger-dropdown-offset: rem(16px) + sage-spacing(xs);
@extend %t-sage-body;
+ &:focus {
+ outline: none;
+ }
+
&:active,
&:focus-visible,
&:focus-within {
@@ -434,6 +438,10 @@ $-dropdown-trigger-dropdown-offset: rem(16px) + sage-spacing(xs);
}
}
+.sage-dropdown__trigger--select {
+ font-family: $-body-font-stack;
+}
+
.sage-dropdown__trigger--select,
.sage-dropdown__trigger--select-labeled {
:not(.sage-dropdown--customized) > & {
@@ -448,10 +456,11 @@ $-dropdown-trigger-dropdown-offset: rem(16px) + sage-spacing(xs);
.sage-dropdown__trigger-selected-value {
justify-content: space-between;
width: 100%;
+ font-weight: sage-font-weight(medium);
}
.sage-dropdown__trigger-label {
- @extend %t-sage-body;
+ @extend %t-sage-body-med;
position: absolute;
z-index: sage-z-index(default, 1);
@@ -467,9 +476,9 @@ $-dropdown-trigger-dropdown-offset: rem(16px) + sage-spacing(xs);
.sage-dropdown--value-selected & {
@extend %t-sage-body-xsmall-semi;
-
transform: translateY(calc(#{-$-dropdown-height} + 50%));
width: auto;
+ font-weight: sage-font-weight(medium);
background-color: $-dropdown-trigger-label-color-label-background;
transition: transform 0.15s ease-in-out, color 0.15s ease-out;
}
diff --git a/packages/sage-assets/lib/stylesheets/components/_form_select.scss b/packages/sage-assets/lib/stylesheets/components/_form_select.scss
index 550ceb3a18..5de77e99bf 100644
--- a/packages/sage-assets/lib/stylesheets/components/_form_select.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_form_select.scss
@@ -96,7 +96,7 @@ $-select-arrow-position-inverse-with-message: calc(100% - #{$-select-height + $-
}
.sage-select--value-selected & {
- color: sage-color(grey, 900);
+ color: map-get($sage-field-colors, default);
}
.sage-select--value-selected &:not(:disabled) + .sage-select__arrow::before {
diff --git a/packages/sage-assets/lib/stylesheets/components/_link.scss b/packages/sage-assets/lib/stylesheets/components/_link.scss
index 6193f5e1c9..ff85c37cca 100644
--- a/packages/sage-assets/lib/stylesheets/components/_link.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_link.scss
@@ -176,6 +176,10 @@ $-link-base-styles: (
color: sage-color(grey, 600);
}
+ &:focus {
+ outline: none;
+ }
+
&:hover,
&:active,
&:focus-visible {
diff --git a/packages/sage-assets/lib/stylesheets/components/_media_tile.scss b/packages/sage-assets/lib/stylesheets/components/_media_tile.scss
index 519870434f..88f405f1be 100644
--- a/packages/sage-assets/lib/stylesheets/components/_media_tile.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_media_tile.scss
@@ -77,6 +77,10 @@ $-media-tile-breakpoints: (
color: inherit;
}
+ &:focus {
+ outline: none;
+ }
+
&:focus-visible {
outline: 0;
diff --git a/packages/sage-assets/lib/stylesheets/components/_panel.scss b/packages/sage-assets/lib/stylesheets/components/_panel.scss
index 4bfee719b2..be09769dc7 100644
--- a/packages/sage-assets/lib/stylesheets/components/_panel.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_panel.scss
@@ -11,6 +11,7 @@
.sage-card &,
.sage-panel {
box-shadow: none;
+ border: sage-border();
}
}
diff --git a/packages/sage-assets/lib/stylesheets/components/_radio.scss b/packages/sage-assets/lib/stylesheets/components/_radio.scss
index e357763793..18587e1b8e 100644
--- a/packages/sage-assets/lib/stylesheets/components/_radio.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_radio.scss
@@ -176,6 +176,10 @@ $-radio-focus-outline-color: currentColor;
}
}
+ &:focus:not(:disabled) {
+ outline: none;
+ }
+
&:focus-visible:not(:disabled),
&:active:not(:disabled) {
outline: none;
diff --git a/packages/sage-assets/lib/stylesheets/components/_search.scss b/packages/sage-assets/lib/stylesheets/components/_search.scss
index de5ba504d4..d658fa5a06 100644
--- a/packages/sage-assets/lib/stylesheets/components/_search.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_search.scss
@@ -115,10 +115,6 @@ $-search-icon: "::before";
.sage-dropdown__panel & {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
-
- &:focus-within {
- box-shadow: inset map-get($sage-toolbar-button-borders, focus);
- }
}
}
diff --git a/packages/sage-assets/lib/stylesheets/components/_stat_box.scss b/packages/sage-assets/lib/stylesheets/components/_stat_box.scss
index ce7ca6961f..9416185f9e 100644
--- a/packages/sage-assets/lib/stylesheets/components/_stat_box.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_stat_box.scss
@@ -17,6 +17,7 @@ $-stat-box-image-max-width: rem(48px);
.sage-card &,
.sage-panel & {
box-shadow: none;
+ border: sage-border();
}
&.sage-stat-box--raised {
diff --git a/packages/sage-assets/lib/stylesheets/components/_switch.scss b/packages/sage-assets/lib/stylesheets/components/_switch.scss
index 0a0517a861..ddaa05baef 100644
--- a/packages/sage-assets/lib/stylesheets/components/_switch.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_switch.scss
@@ -48,6 +48,7 @@ $-switch-toggle-size: rem(16px);
.sage-card &,
.sage-panel & {
box-shadow: none;
+ border: sage-border();
}
}
@@ -95,6 +96,10 @@ $-switch-toggle-size: rem(16px);
border-radius: $-switch-border-radius;
transition: background 0.3s ease-out;
+ &:focus {
+ outline: none !important; /* stylelint-disable-line declaration-no-important */
+ }
+
.sage-switch--has-border & {
position: absolute;
}
diff --git a/packages/sage-assets/lib/stylesheets/components/_transaction_card.scss b/packages/sage-assets/lib/stylesheets/components/_transaction_card.scss
index 0dfdadc996..0ddb767c98 100644
--- a/packages/sage-assets/lib/stylesheets/components/_transaction_card.scss
+++ b/packages/sage-assets/lib/stylesheets/components/_transaction_card.scss
@@ -14,6 +14,7 @@ $-transaction-card-price-max-width: rem(100px);
.sage-card &,
.sage-panel & {
box-shadow: none;
+ border: sage-border();
}
position: relative;
diff --git a/packages/sage-assets/lib/stylesheets/core/_typography.scss b/packages/sage-assets/lib/stylesheets/core/_typography.scss
index 383d8ca9c7..22545bc729 100644
--- a/packages/sage-assets/lib/stylesheets/core/_typography.scss
+++ b/packages/sage-assets/lib/stylesheets/core/_typography.scss
@@ -6,7 +6,7 @@
// Font definitions
-$-heading-font: "GreetStandard";
+$-heading-font: "GreetStandard", "Inter", -apple-system, system-ui, "BlinkMacSystemFont", "Segoe UI", "Roboto", "Ubuntu", sans-serif;
$-body-font-stack: "Inter", -apple-system, system-ui, "BlinkMacSystemFont", "Segoe UI", "Roboto", "Ubuntu", sans-serif;
$-body-margin-bottom: sage-spacing(xs);
$-headings-margin-bottom: sage-spacing(sm);
diff --git a/packages/sage-packs/package.json b/packages/sage-packs/package.json
index 41f9acc43e..c70559a66a 100644
--- a/packages/sage-packs/package.json
+++ b/packages/sage-packs/package.json
@@ -1,6 +1,6 @@
{
"name": "@kajabi/sage-packs",
- "version": "1.1.16",
+ "version": "6.0.0",
"description": "Sage Packs",
"keywords": [
"sage",
diff --git a/packages/sage-react/lib/ExpandableCard/ExpandableCard.jsx b/packages/sage-react/lib/ExpandableCard/ExpandableCard.jsx
index 2109efdaae..ab109b1fc6 100644
--- a/packages/sage-react/lib/ExpandableCard/ExpandableCard.jsx
+++ b/packages/sage-react/lib/ExpandableCard/ExpandableCard.jsx
@@ -12,6 +12,7 @@ export const ExpandableCard = ({
expanded,
children,
className,
+ customKey,
headerContent,
name,
onClick,
@@ -32,7 +33,7 @@ export const ExpandableCard = ({
}
};
- const id = uuid();
+ const id = customKey || uuid();
const containerClassnames = classnames(
'sage-expandable-card',
@@ -98,6 +99,7 @@ ExpandableCard.defaultProps = {
expanded: false,
children: null,
className: null,
+ customKey: null,
headerContent: null,
alignTrigger: 'middle',
name: null,
@@ -109,6 +111,7 @@ ExpandableCard.defaultProps = {
ExpandableCard.propTypes = {
alignArrowRight: PropTypes.bool,
bodyBordered: PropTypes.bool,
+ customKey: PropTypes.string,
headerContent: PropTypes.node,
expanded: PropTypes.bool,
className: PropTypes.string,
diff --git a/packages/sage-react/lib/Tooltip/Tooltip.jsx b/packages/sage-react/lib/Tooltip/Tooltip.jsx
index 13c12d8d6b..a23e6cd609 100644
--- a/packages/sage-react/lib/Tooltip/Tooltip.jsx
+++ b/packages/sage-react/lib/Tooltip/Tooltip.jsx
@@ -2,14 +2,13 @@ import React, { Children, useState, cloneElement } from 'react';
import ReactDOM from 'react-dom';
import PropTypes from 'prop-types';
import { TooltipElement } from './TooltipElement';
-import {
- TOOLTIP_POSITIONS
-} from './configs';
+import { TOOLTIP_POSITIONS } from './configs';
export const Tooltip = ({
children,
content,
position,
+ tooltipCustomClass,
...rest
}) => {
const [active, setActive] = useState(false);
@@ -38,6 +37,7 @@ export const Tooltip = ({
content={content}
parentDomRect={parentDomRect}
position={position}
+ tooltipCustomClass={tooltipCustomClass}
/>,
document.body
)}
@@ -50,10 +50,12 @@ Tooltip.POSITIONS = TOOLTIP_POSITIONS;
Tooltip.defaultProps = {
position: TOOLTIP_POSITIONS.DEFAULT,
+ tooltipCustomClass: '',
};
Tooltip.propTypes = {
children: PropTypes.node.isRequired,
content: PropTypes.oneOfType([PropTypes.node, PropTypes.string]).isRequired,
position: PropTypes.oneOf(Object.values(TOOLTIP_POSITIONS)),
+ tooltipCustomClass: PropTypes.string,
};
diff --git a/packages/sage-react/lib/Tooltip/Tooltip.story.jsx b/packages/sage-react/lib/Tooltip/Tooltip.story.jsx
index 3cd8896733..33e5fad4e4 100644
--- a/packages/sage-react/lib/Tooltip/Tooltip.story.jsx
+++ b/packages/sage-react/lib/Tooltip/Tooltip.story.jsx
@@ -37,3 +37,29 @@ export const Default = Template.bind({});
export const Static = () => (
);
+
+export const CustomClass = Template.bind({});
+CustomClass.args = {
+ children: ,
+ content: 'This content and sizing is styled with the applied custom class. Use at your own risk',
+ position: Tooltip.POSITIONS.DEFAULT,
+ tooltipCustomClass: 'custom-tooltip-class',
+};
+
+CustomClass.decorators = [
+ (Story) => (
+ <>
+
+
+ >
+ ),
+];
diff --git a/packages/sage-react/lib/Tooltip/TooltipElement.jsx b/packages/sage-react/lib/Tooltip/TooltipElement.jsx
index 52398cb63a..2bd467d402 100644
--- a/packages/sage-react/lib/Tooltip/TooltipElement.jsx
+++ b/packages/sage-react/lib/Tooltip/TooltipElement.jsx
@@ -1,9 +1,7 @@
import React, { useState, useRef, useLayoutEffect } from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
-import {
- TOOLTIP_POSITIONS
-} from './configs';
+import { TOOLTIP_POSITIONS } from './configs';
/* eslint-disable react-hooks/exhaustive-deps */
@@ -13,12 +11,14 @@ export const TooltipElement = ({
content,
parentDomRect,
position,
+ tooltipCustomClass,
}) => {
const tooltipRef = useRef(null);
const [coordinates, setCoordinates] = useState({ top: null, left: null });
const classNames = classnames(
'sage-tooltip',
+ tooltipCustomClass,
{
'sage-tooltip--static': !parentDomRect,
[`sage-tooltip--${position}`]: position,
@@ -86,6 +86,7 @@ TooltipElement.POSITIONS = TOOLTIP_POSITIONS;
TooltipElement.defaultProps = {
parentDomRect: null,
position: TOOLTIP_POSITIONS.DEFAULT,
+ tooltipCustomClass: '',
};
TooltipElement.propTypes = {
@@ -98,4 +99,5 @@ TooltipElement.propTypes = {
width: PropTypes.number,
}),
position: PropTypes.oneOf(Object.values(TOOLTIP_POSITIONS)),
+ tooltipCustomClass: PropTypes.string,
};
diff --git a/packages/sage-react/package.json b/packages/sage-react/package.json
index 62bd4a25cd..eb779e98f3 100644
--- a/packages/sage-react/package.json
+++ b/packages/sage-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@kajabi/sage-react",
- "version": "2.0.0",
+ "version": "6.0.0",
"description": "React Components",
"keywords": [
"react",
diff --git a/packages/sage-system/package.json b/packages/sage-system/package.json
index 825aea1c54..90f3ea9de6 100644
--- a/packages/sage-system/package.json
+++ b/packages/sage-system/package.json
@@ -1,6 +1,6 @@
{
"name": "@kajabi/sage-system",
- "version": "2.0.0",
+ "version": "6.0.0",
"description": "Sage System",
"keywords": [
"sage",