@schematichq/schematic-components 0.4.11 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/schematic-components.cjs.js +1341 -721
- package/dist/schematic-components.d.ts +953 -18
- package/dist/schematic-components.esm.js +1363 -743
- package/package.json +14 -14
|
@@ -1664,78 +1664,18 @@ var require_merge = __commonJS({
|
|
|
1664
1664
|
}
|
|
1665
1665
|
});
|
|
1666
1666
|
|
|
1667
|
-
// node_modules/classnames/index.js
|
|
1668
|
-
var require_classnames = __commonJS({
|
|
1669
|
-
"node_modules/classnames/index.js"(exports, module2) {
|
|
1670
|
-
(function() {
|
|
1671
|
-
"use strict";
|
|
1672
|
-
var hasOwn = {}.hasOwnProperty;
|
|
1673
|
-
function classNames() {
|
|
1674
|
-
var classes = "";
|
|
1675
|
-
for (var i2 = 0; i2 < arguments.length; i2++) {
|
|
1676
|
-
var arg = arguments[i2];
|
|
1677
|
-
if (arg) {
|
|
1678
|
-
classes = appendClass(classes, parseValue(arg));
|
|
1679
|
-
}
|
|
1680
|
-
}
|
|
1681
|
-
return classes;
|
|
1682
|
-
}
|
|
1683
|
-
function parseValue(arg) {
|
|
1684
|
-
if (typeof arg === "string" || typeof arg === "number") {
|
|
1685
|
-
return arg;
|
|
1686
|
-
}
|
|
1687
|
-
if (typeof arg !== "object") {
|
|
1688
|
-
return "";
|
|
1689
|
-
}
|
|
1690
|
-
if (Array.isArray(arg)) {
|
|
1691
|
-
return classNames.apply(null, arg);
|
|
1692
|
-
}
|
|
1693
|
-
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
|
|
1694
|
-
return arg.toString();
|
|
1695
|
-
}
|
|
1696
|
-
var classes = "";
|
|
1697
|
-
for (var key in arg) {
|
|
1698
|
-
if (hasOwn.call(arg, key) && arg[key]) {
|
|
1699
|
-
classes = appendClass(classes, key);
|
|
1700
|
-
}
|
|
1701
|
-
}
|
|
1702
|
-
return classes;
|
|
1703
|
-
}
|
|
1704
|
-
function appendClass(value, newClass) {
|
|
1705
|
-
if (!newClass) {
|
|
1706
|
-
return value;
|
|
1707
|
-
}
|
|
1708
|
-
if (value) {
|
|
1709
|
-
return value + " " + newClass;
|
|
1710
|
-
}
|
|
1711
|
-
return value + newClass;
|
|
1712
|
-
}
|
|
1713
|
-
if (typeof module2 !== "undefined" && module2.exports) {
|
|
1714
|
-
classNames.default = classNames;
|
|
1715
|
-
module2.exports = classNames;
|
|
1716
|
-
} else if (typeof define === "function" && typeof define.amd === "object" && define.amd) {
|
|
1717
|
-
define("classnames", [], function() {
|
|
1718
|
-
return classNames;
|
|
1719
|
-
});
|
|
1720
|
-
} else {
|
|
1721
|
-
window.classNames = classNames;
|
|
1722
|
-
}
|
|
1723
|
-
})();
|
|
1724
|
-
}
|
|
1725
|
-
});
|
|
1726
|
-
|
|
1727
1667
|
// node_modules/pluralize/pluralize.js
|
|
1728
1668
|
var require_pluralize = __commonJS({
|
|
1729
1669
|
"node_modules/pluralize/pluralize.js"(exports, module2) {
|
|
1730
|
-
(function(root,
|
|
1670
|
+
(function(root, pluralize2) {
|
|
1731
1671
|
if (typeof require === "function" && typeof exports === "object" && typeof module2 === "object") {
|
|
1732
|
-
module2.exports =
|
|
1672
|
+
module2.exports = pluralize2();
|
|
1733
1673
|
} else if (typeof define === "function" && define.amd) {
|
|
1734
1674
|
define(function() {
|
|
1735
|
-
return
|
|
1675
|
+
return pluralize2();
|
|
1736
1676
|
});
|
|
1737
1677
|
} else {
|
|
1738
|
-
root.pluralize =
|
|
1678
|
+
root.pluralize = pluralize2();
|
|
1739
1679
|
}
|
|
1740
1680
|
})(exports, function() {
|
|
1741
1681
|
var pluralRules = [];
|
|
@@ -1803,45 +1743,45 @@ var require_pluralize = __commonJS({
|
|
|
1803
1743
|
return sanitizeWord(token2, token2, rules) === token2;
|
|
1804
1744
|
};
|
|
1805
1745
|
}
|
|
1806
|
-
function
|
|
1807
|
-
var pluralized = count === 1 ?
|
|
1746
|
+
function pluralize2(word, count, inclusive) {
|
|
1747
|
+
var pluralized = count === 1 ? pluralize2.singular(word) : pluralize2.plural(word);
|
|
1808
1748
|
return (inclusive ? count + " " : "") + pluralized;
|
|
1809
1749
|
}
|
|
1810
|
-
|
|
1750
|
+
pluralize2.plural = replaceWord(
|
|
1811
1751
|
irregularSingles,
|
|
1812
1752
|
irregularPlurals,
|
|
1813
1753
|
pluralRules
|
|
1814
1754
|
);
|
|
1815
|
-
|
|
1755
|
+
pluralize2.isPlural = checkWord(
|
|
1816
1756
|
irregularSingles,
|
|
1817
1757
|
irregularPlurals,
|
|
1818
1758
|
pluralRules
|
|
1819
1759
|
);
|
|
1820
|
-
|
|
1760
|
+
pluralize2.singular = replaceWord(
|
|
1821
1761
|
irregularPlurals,
|
|
1822
1762
|
irregularSingles,
|
|
1823
1763
|
singularRules
|
|
1824
1764
|
);
|
|
1825
|
-
|
|
1765
|
+
pluralize2.isSingular = checkWord(
|
|
1826
1766
|
irregularPlurals,
|
|
1827
1767
|
irregularSingles,
|
|
1828
1768
|
singularRules
|
|
1829
1769
|
);
|
|
1830
|
-
|
|
1770
|
+
pluralize2.addPluralRule = function(rule, replacement) {
|
|
1831
1771
|
pluralRules.push([sanitizeRule(rule), replacement]);
|
|
1832
1772
|
};
|
|
1833
|
-
|
|
1773
|
+
pluralize2.addSingularRule = function(rule, replacement) {
|
|
1834
1774
|
singularRules.push([sanitizeRule(rule), replacement]);
|
|
1835
1775
|
};
|
|
1836
|
-
|
|
1776
|
+
pluralize2.addUncountableRule = function(word) {
|
|
1837
1777
|
if (typeof word === "string") {
|
|
1838
1778
|
uncountables[word.toLowerCase()] = true;
|
|
1839
1779
|
return;
|
|
1840
1780
|
}
|
|
1841
|
-
|
|
1842
|
-
|
|
1781
|
+
pluralize2.addPluralRule(word, "$0");
|
|
1782
|
+
pluralize2.addSingularRule(word, "$0");
|
|
1843
1783
|
};
|
|
1844
|
-
|
|
1784
|
+
pluralize2.addIrregularRule = function(single, plural) {
|
|
1845
1785
|
plural = plural.toLowerCase();
|
|
1846
1786
|
single = single.toLowerCase();
|
|
1847
1787
|
irregularSingles[single] = plural;
|
|
@@ -1901,7 +1841,7 @@ var require_pluralize = __commonJS({
|
|
|
1901
1841
|
["pickaxe", "pickaxes"],
|
|
1902
1842
|
["passerby", "passersby"]
|
|
1903
1843
|
].forEach(function(rule) {
|
|
1904
|
-
return
|
|
1844
|
+
return pluralize2.addIrregularRule(rule[0], rule[1]);
|
|
1905
1845
|
});
|
|
1906
1846
|
[
|
|
1907
1847
|
[/s?$/i, "s"],
|
|
@@ -1930,7 +1870,7 @@ var require_pluralize = __commonJS({
|
|
|
1930
1870
|
[/m[ae]n$/i, "men"],
|
|
1931
1871
|
["thou", "you"]
|
|
1932
1872
|
].forEach(function(rule) {
|
|
1933
|
-
return
|
|
1873
|
+
return pluralize2.addPluralRule(rule[0], rule[1]);
|
|
1934
1874
|
});
|
|
1935
1875
|
[
|
|
1936
1876
|
[/s$/i, ""],
|
|
@@ -1957,7 +1897,7 @@ var require_pluralize = __commonJS({
|
|
|
1957
1897
|
[/(eau)x?$/i, "$1"],
|
|
1958
1898
|
[/men$/i, "man"]
|
|
1959
1899
|
].forEach(function(rule) {
|
|
1960
|
-
return
|
|
1900
|
+
return pluralize2.addSingularRule(rule[0], rule[1]);
|
|
1961
1901
|
});
|
|
1962
1902
|
[
|
|
1963
1903
|
// Singular words with no plurals.
|
|
@@ -2069,12 +2009,249 @@ var require_pluralize = __commonJS({
|
|
|
2069
2009
|
/pox$/i,
|
|
2070
2010
|
// "chickpox", "smallpox"
|
|
2071
2011
|
/sheep$/i
|
|
2072
|
-
].forEach(
|
|
2073
|
-
return
|
|
2012
|
+
].forEach(pluralize2.addUncountableRule);
|
|
2013
|
+
return pluralize2;
|
|
2074
2014
|
});
|
|
2075
2015
|
}
|
|
2076
2016
|
});
|
|
2077
2017
|
|
|
2018
|
+
// node_modules/classnames/index.js
|
|
2019
|
+
var require_classnames = __commonJS({
|
|
2020
|
+
"node_modules/classnames/index.js"(exports, module2) {
|
|
2021
|
+
(function() {
|
|
2022
|
+
"use strict";
|
|
2023
|
+
var hasOwn = {}.hasOwnProperty;
|
|
2024
|
+
function classNames() {
|
|
2025
|
+
var classes = "";
|
|
2026
|
+
for (var i2 = 0; i2 < arguments.length; i2++) {
|
|
2027
|
+
var arg = arguments[i2];
|
|
2028
|
+
if (arg) {
|
|
2029
|
+
classes = appendClass(classes, parseValue(arg));
|
|
2030
|
+
}
|
|
2031
|
+
}
|
|
2032
|
+
return classes;
|
|
2033
|
+
}
|
|
2034
|
+
function parseValue(arg) {
|
|
2035
|
+
if (typeof arg === "string" || typeof arg === "number") {
|
|
2036
|
+
return arg;
|
|
2037
|
+
}
|
|
2038
|
+
if (typeof arg !== "object") {
|
|
2039
|
+
return "";
|
|
2040
|
+
}
|
|
2041
|
+
if (Array.isArray(arg)) {
|
|
2042
|
+
return classNames.apply(null, arg);
|
|
2043
|
+
}
|
|
2044
|
+
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
|
|
2045
|
+
return arg.toString();
|
|
2046
|
+
}
|
|
2047
|
+
var classes = "";
|
|
2048
|
+
for (var key in arg) {
|
|
2049
|
+
if (hasOwn.call(arg, key) && arg[key]) {
|
|
2050
|
+
classes = appendClass(classes, key);
|
|
2051
|
+
}
|
|
2052
|
+
}
|
|
2053
|
+
return classes;
|
|
2054
|
+
}
|
|
2055
|
+
function appendClass(value, newClass) {
|
|
2056
|
+
if (!newClass) {
|
|
2057
|
+
return value;
|
|
2058
|
+
}
|
|
2059
|
+
if (value) {
|
|
2060
|
+
return value + " " + newClass;
|
|
2061
|
+
}
|
|
2062
|
+
return value + newClass;
|
|
2063
|
+
}
|
|
2064
|
+
if (typeof module2 !== "undefined" && module2.exports) {
|
|
2065
|
+
classNames.default = classNames;
|
|
2066
|
+
module2.exports = classNames;
|
|
2067
|
+
} else if (typeof define === "function" && typeof define.amd === "object" && define.amd) {
|
|
2068
|
+
define("classnames", [], function() {
|
|
2069
|
+
return classNames;
|
|
2070
|
+
});
|
|
2071
|
+
} else {
|
|
2072
|
+
window.classNames = classNames;
|
|
2073
|
+
}
|
|
2074
|
+
})();
|
|
2075
|
+
}
|
|
2076
|
+
});
|
|
2077
|
+
|
|
2078
|
+
// node_modules/lodash/now.js
|
|
2079
|
+
var require_now = __commonJS({
|
|
2080
|
+
"node_modules/lodash/now.js"(exports, module2) {
|
|
2081
|
+
var root = require_root();
|
|
2082
|
+
var now = function() {
|
|
2083
|
+
return root.Date.now();
|
|
2084
|
+
};
|
|
2085
|
+
module2.exports = now;
|
|
2086
|
+
}
|
|
2087
|
+
});
|
|
2088
|
+
|
|
2089
|
+
// node_modules/lodash/_trimmedEndIndex.js
|
|
2090
|
+
var require_trimmedEndIndex = __commonJS({
|
|
2091
|
+
"node_modules/lodash/_trimmedEndIndex.js"(exports, module2) {
|
|
2092
|
+
var reWhitespace = /\s/;
|
|
2093
|
+
function trimmedEndIndex(string) {
|
|
2094
|
+
var index = string.length;
|
|
2095
|
+
while (index-- && reWhitespace.test(string.charAt(index))) {
|
|
2096
|
+
}
|
|
2097
|
+
return index;
|
|
2098
|
+
}
|
|
2099
|
+
module2.exports = trimmedEndIndex;
|
|
2100
|
+
}
|
|
2101
|
+
});
|
|
2102
|
+
|
|
2103
|
+
// node_modules/lodash/_baseTrim.js
|
|
2104
|
+
var require_baseTrim = __commonJS({
|
|
2105
|
+
"node_modules/lodash/_baseTrim.js"(exports, module2) {
|
|
2106
|
+
var trimmedEndIndex = require_trimmedEndIndex();
|
|
2107
|
+
var reTrimStart = /^\s+/;
|
|
2108
|
+
function baseTrim(string) {
|
|
2109
|
+
return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
|
|
2110
|
+
}
|
|
2111
|
+
module2.exports = baseTrim;
|
|
2112
|
+
}
|
|
2113
|
+
});
|
|
2114
|
+
|
|
2115
|
+
// node_modules/lodash/isSymbol.js
|
|
2116
|
+
var require_isSymbol = __commonJS({
|
|
2117
|
+
"node_modules/lodash/isSymbol.js"(exports, module2) {
|
|
2118
|
+
var baseGetTag = require_baseGetTag();
|
|
2119
|
+
var isObjectLike = require_isObjectLike();
|
|
2120
|
+
var symbolTag = "[object Symbol]";
|
|
2121
|
+
function isSymbol(value) {
|
|
2122
|
+
return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
|
|
2123
|
+
}
|
|
2124
|
+
module2.exports = isSymbol;
|
|
2125
|
+
}
|
|
2126
|
+
});
|
|
2127
|
+
|
|
2128
|
+
// node_modules/lodash/toNumber.js
|
|
2129
|
+
var require_toNumber = __commonJS({
|
|
2130
|
+
"node_modules/lodash/toNumber.js"(exports, module2) {
|
|
2131
|
+
var baseTrim = require_baseTrim();
|
|
2132
|
+
var isObject2 = require_isObject();
|
|
2133
|
+
var isSymbol = require_isSymbol();
|
|
2134
|
+
var NAN = 0 / 0;
|
|
2135
|
+
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
|
|
2136
|
+
var reIsBinary = /^0b[01]+$/i;
|
|
2137
|
+
var reIsOctal = /^0o[0-7]+$/i;
|
|
2138
|
+
var freeParseInt = parseInt;
|
|
2139
|
+
function toNumber(value) {
|
|
2140
|
+
if (typeof value == "number") {
|
|
2141
|
+
return value;
|
|
2142
|
+
}
|
|
2143
|
+
if (isSymbol(value)) {
|
|
2144
|
+
return NAN;
|
|
2145
|
+
}
|
|
2146
|
+
if (isObject2(value)) {
|
|
2147
|
+
var other = typeof value.valueOf == "function" ? value.valueOf() : value;
|
|
2148
|
+
value = isObject2(other) ? other + "" : other;
|
|
2149
|
+
}
|
|
2150
|
+
if (typeof value != "string") {
|
|
2151
|
+
return value === 0 ? value : +value;
|
|
2152
|
+
}
|
|
2153
|
+
value = baseTrim(value);
|
|
2154
|
+
var isBinary = reIsBinary.test(value);
|
|
2155
|
+
return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
|
|
2156
|
+
}
|
|
2157
|
+
module2.exports = toNumber;
|
|
2158
|
+
}
|
|
2159
|
+
});
|
|
2160
|
+
|
|
2161
|
+
// node_modules/lodash/debounce.js
|
|
2162
|
+
var require_debounce = __commonJS({
|
|
2163
|
+
"node_modules/lodash/debounce.js"(exports, module2) {
|
|
2164
|
+
var isObject2 = require_isObject();
|
|
2165
|
+
var now = require_now();
|
|
2166
|
+
var toNumber = require_toNumber();
|
|
2167
|
+
var FUNC_ERROR_TEXT = "Expected a function";
|
|
2168
|
+
var nativeMax = Math.max;
|
|
2169
|
+
var nativeMin = Math.min;
|
|
2170
|
+
function debounce2(func, wait, options) {
|
|
2171
|
+
var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
|
|
2172
|
+
if (typeof func != "function") {
|
|
2173
|
+
throw new TypeError(FUNC_ERROR_TEXT);
|
|
2174
|
+
}
|
|
2175
|
+
wait = toNumber(wait) || 0;
|
|
2176
|
+
if (isObject2(options)) {
|
|
2177
|
+
leading = !!options.leading;
|
|
2178
|
+
maxing = "maxWait" in options;
|
|
2179
|
+
maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
|
|
2180
|
+
trailing = "trailing" in options ? !!options.trailing : trailing;
|
|
2181
|
+
}
|
|
2182
|
+
function invokeFunc(time) {
|
|
2183
|
+
var args = lastArgs, thisArg = lastThis;
|
|
2184
|
+
lastArgs = lastThis = void 0;
|
|
2185
|
+
lastInvokeTime = time;
|
|
2186
|
+
result = func.apply(thisArg, args);
|
|
2187
|
+
return result;
|
|
2188
|
+
}
|
|
2189
|
+
function leadingEdge(time) {
|
|
2190
|
+
lastInvokeTime = time;
|
|
2191
|
+
timerId = setTimeout(timerExpired, wait);
|
|
2192
|
+
return leading ? invokeFunc(time) : result;
|
|
2193
|
+
}
|
|
2194
|
+
function remainingWait(time) {
|
|
2195
|
+
var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
|
|
2196
|
+
return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
|
|
2197
|
+
}
|
|
2198
|
+
function shouldInvoke(time) {
|
|
2199
|
+
var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
|
|
2200
|
+
return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
|
|
2201
|
+
}
|
|
2202
|
+
function timerExpired() {
|
|
2203
|
+
var time = now();
|
|
2204
|
+
if (shouldInvoke(time)) {
|
|
2205
|
+
return trailingEdge(time);
|
|
2206
|
+
}
|
|
2207
|
+
timerId = setTimeout(timerExpired, remainingWait(time));
|
|
2208
|
+
}
|
|
2209
|
+
function trailingEdge(time) {
|
|
2210
|
+
timerId = void 0;
|
|
2211
|
+
if (trailing && lastArgs) {
|
|
2212
|
+
return invokeFunc(time);
|
|
2213
|
+
}
|
|
2214
|
+
lastArgs = lastThis = void 0;
|
|
2215
|
+
return result;
|
|
2216
|
+
}
|
|
2217
|
+
function cancel() {
|
|
2218
|
+
if (timerId !== void 0) {
|
|
2219
|
+
clearTimeout(timerId);
|
|
2220
|
+
}
|
|
2221
|
+
lastInvokeTime = 0;
|
|
2222
|
+
lastArgs = lastCallTime = lastThis = timerId = void 0;
|
|
2223
|
+
}
|
|
2224
|
+
function flush() {
|
|
2225
|
+
return timerId === void 0 ? result : trailingEdge(now());
|
|
2226
|
+
}
|
|
2227
|
+
function debounced() {
|
|
2228
|
+
var time = now(), isInvoking = shouldInvoke(time);
|
|
2229
|
+
lastArgs = arguments;
|
|
2230
|
+
lastThis = this;
|
|
2231
|
+
lastCallTime = time;
|
|
2232
|
+
if (isInvoking) {
|
|
2233
|
+
if (timerId === void 0) {
|
|
2234
|
+
return leadingEdge(lastCallTime);
|
|
2235
|
+
}
|
|
2236
|
+
if (maxing) {
|
|
2237
|
+
clearTimeout(timerId);
|
|
2238
|
+
timerId = setTimeout(timerExpired, wait);
|
|
2239
|
+
return invokeFunc(lastCallTime);
|
|
2240
|
+
}
|
|
2241
|
+
}
|
|
2242
|
+
if (timerId === void 0) {
|
|
2243
|
+
timerId = setTimeout(timerExpired, wait);
|
|
2244
|
+
}
|
|
2245
|
+
return result;
|
|
2246
|
+
}
|
|
2247
|
+
debounced.cancel = cancel;
|
|
2248
|
+
debounced.flush = flush;
|
|
2249
|
+
return debounced;
|
|
2250
|
+
}
|
|
2251
|
+
module2.exports = debounce2;
|
|
2252
|
+
}
|
|
2253
|
+
});
|
|
2254
|
+
|
|
2078
2255
|
// src/index.ts
|
|
2079
2256
|
var index_exports = {};
|
|
2080
2257
|
__export(index_exports, {
|
|
@@ -2106,6 +2283,7 @@ __export(index_exports, {
|
|
|
2106
2283
|
SchematicEmbed: () => SchematicEmbed,
|
|
2107
2284
|
StyledCard: () => StyledCard,
|
|
2108
2285
|
Text: () => Text,
|
|
2286
|
+
TextPropNames: () => TextPropNames,
|
|
2109
2287
|
Tooltip: () => Tooltip,
|
|
2110
2288
|
UnsubscribeButton: () => UnsubscribeButton,
|
|
2111
2289
|
UpcomingBill: () => UpcomingBill,
|
|
@@ -3104,7 +3282,7 @@ var unitlessKeys = {
|
|
|
3104
3282
|
var f = "undefined" != typeof process && void 0 !== process.env && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || "data-styled";
|
|
3105
3283
|
var m = "active";
|
|
3106
3284
|
var y = "data-styled-version";
|
|
3107
|
-
var v = "6.1.
|
|
3285
|
+
var v = "6.1.16";
|
|
3108
3286
|
var g = "/*!sc*/\n";
|
|
3109
3287
|
var S = "undefined" != typeof window && "HTMLElement" in window;
|
|
3110
3288
|
var w = Boolean("boolean" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : "undefined" != typeof process && void 0 !== process.env && void 0 !== process.env.REACT_APP_SC_DISABLE_SPEEDY && "" !== process.env.REACT_APP_SC_DISABLE_SPEEDY ? "false" !== process.env.REACT_APP_SC_DISABLE_SPEEDY && process.env.REACT_APP_SC_DISABLE_SPEEDY : "undefined" != typeof process && void 0 !== process.env && void 0 !== process.env.SC_DISABLE_SPEEDY && "" !== process.env.SC_DISABLE_SPEEDY ? "false" !== process.env.SC_DISABLE_SPEEDY && process.env.SC_DISABLE_SPEEDY : true);
|
|
@@ -3765,6 +3943,7 @@ var St = "__sc-".concat(f, "__");
|
|
|
3765
3943
|
var TEXT_BASE_SIZE = 16;
|
|
3766
3944
|
var VISIBLE_ENTITLEMENT_COUNT = 4;
|
|
3767
3945
|
var MAX_VISIBLE_INVOICE_COUNT = 12;
|
|
3946
|
+
var DEBOUNCE_TIMEOUT = 250;
|
|
3768
3947
|
|
|
3769
3948
|
// src/hooks/useAvailablePlans.ts
|
|
3770
3949
|
var import_react10 = require("react");
|
|
@@ -10590,6 +10769,7 @@ function BillingProductDetailResponseDataFromJSONTyped(json, ignoreDiscriminator
|
|
|
10590
10769
|
),
|
|
10591
10770
|
productId: json["product_id"],
|
|
10592
10771
|
quantity: json["quantity"],
|
|
10772
|
+
subscriptionCount: json["subscription_count"],
|
|
10593
10773
|
updatedAt: new Date(json["updated_at"])
|
|
10594
10774
|
};
|
|
10595
10775
|
}
|
|
@@ -10662,6 +10842,7 @@ function BillingSubscriptionResponseDataFromJSONTyped(json, ignoreDiscriminator)
|
|
|
10662
10842
|
createdAt: new Date(json["created_at"]),
|
|
10663
10843
|
currency: json["currency"],
|
|
10664
10844
|
customerExternalId: json["customer_external_id"],
|
|
10845
|
+
defaultPaymentMethodId: json["default_payment_method_id"] == null ? void 0 : json["default_payment_method_id"],
|
|
10665
10846
|
expiredAt: json["expired_at"] == null ? void 0 : new Date(json["expired_at"]),
|
|
10666
10847
|
id: json["id"],
|
|
10667
10848
|
interval: json["interval"],
|
|
@@ -10730,7 +10911,6 @@ function PaymentMethodResponseDataFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
10730
10911
|
externalId: json["external_id"],
|
|
10731
10912
|
id: json["id"],
|
|
10732
10913
|
paymentMethodType: json["payment_method_type"],
|
|
10733
|
-
subscriptionExternalId: json["subscription_external_id"] == null ? void 0 : json["subscription_external_id"],
|
|
10734
10914
|
updatedAt: new Date(json["updated_at"])
|
|
10735
10915
|
};
|
|
10736
10916
|
}
|
|
@@ -10750,6 +10930,7 @@ function BillingSubscriptionViewFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
10750
10930
|
createdAt: new Date(json["created_at"]),
|
|
10751
10931
|
currency: json["currency"],
|
|
10752
10932
|
customerExternalId: json["customer_external_id"],
|
|
10933
|
+
defaultPaymentMethodId: json["default_payment_method_id"] == null ? void 0 : json["default_payment_method_id"],
|
|
10753
10934
|
discounts: json["discounts"].map(
|
|
10754
10935
|
BillingSubscriptionDiscountViewFromJSON
|
|
10755
10936
|
),
|
|
@@ -11019,6 +11200,9 @@ function CompanyDetailResponseDataFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
11019
11200
|
CompanyEventPeriodMetricsResponseDataFromJSON
|
|
11020
11201
|
),
|
|
11021
11202
|
name: json["name"],
|
|
11203
|
+
paymentMethods: json["payment_methods"].map(
|
|
11204
|
+
PaymentMethodResponseDataFromJSON
|
|
11205
|
+
),
|
|
11022
11206
|
plan: json["plan"] == null ? void 0 : CompanyPlanWithBillingSubViewFromJSON(json["plan"]),
|
|
11023
11207
|
plans: json["plans"].map(GenericPreviewObjectFromJSON),
|
|
11024
11208
|
traits: json["traits"] == null ? void 0 : json["traits"],
|
|
@@ -11181,6 +11365,8 @@ function FeatureResponseDataFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
11181
11365
|
lifecyclePhase: json["lifecycle_phase"] == null ? void 0 : json["lifecycle_phase"],
|
|
11182
11366
|
maintainerId: json["maintainer_id"] == null ? void 0 : json["maintainer_id"],
|
|
11183
11367
|
name: json["name"],
|
|
11368
|
+
pluralName: json["plural_name"] == null ? void 0 : json["plural_name"],
|
|
11369
|
+
singularName: json["singular_name"] == null ? void 0 : json["singular_name"],
|
|
11184
11370
|
traitId: json["trait_id"] == null ? void 0 : json["trait_id"],
|
|
11185
11371
|
updatedAt: new Date(json["updated_at"])
|
|
11186
11372
|
};
|
|
@@ -11232,6 +11418,8 @@ function FeatureDetailResponseDataFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
11232
11418
|
maintainerId: json["maintainer_id"] == null ? void 0 : json["maintainer_id"],
|
|
11233
11419
|
name: json["name"],
|
|
11234
11420
|
plans: json["plans"].map(PreviewObjectFromJSON),
|
|
11421
|
+
pluralName: json["plural_name"] == null ? void 0 : json["plural_name"],
|
|
11422
|
+
singularName: json["singular_name"] == null ? void 0 : json["singular_name"],
|
|
11235
11423
|
trait: json["trait"] == null ? void 0 : EntityTraitDefinitionResponseDataFromJSON(json["trait"]),
|
|
11236
11424
|
traitId: json["trait_id"] == null ? void 0 : json["trait_id"],
|
|
11237
11425
|
updatedAt: new Date(json["updated_at"])
|
|
@@ -11281,6 +11469,7 @@ function PlanEntitlementResponseDataFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
11281
11469
|
priceBehavior: json["price_behavior"] == null ? void 0 : json["price_behavior"],
|
|
11282
11470
|
ruleId: json["rule_id"],
|
|
11283
11471
|
ruleIdUsageExceeded: json["rule_id_usage_exceeded"] == null ? void 0 : json["rule_id_usage_exceeded"],
|
|
11472
|
+
softLimit: json["soft_limit"] == null ? void 0 : json["soft_limit"],
|
|
11284
11473
|
updatedAt: new Date(json["updated_at"]),
|
|
11285
11474
|
valueBool: json["value_bool"] == null ? void 0 : json["value_bool"],
|
|
11286
11475
|
valueNumeric: json["value_numeric"] == null ? void 0 : json["value_numeric"],
|
|
@@ -11384,6 +11573,7 @@ function ComponentCapabilitiesFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
11384
11573
|
return json;
|
|
11385
11574
|
}
|
|
11386
11575
|
return {
|
|
11576
|
+
badgeVisibility: json["badge_visibility"],
|
|
11387
11577
|
checkout: json["checkout"]
|
|
11388
11578
|
};
|
|
11389
11579
|
}
|
|
@@ -11482,6 +11672,7 @@ function FeatureUsageResponseDataFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
11482
11672
|
period: json["period"] == null ? void 0 : json["period"],
|
|
11483
11673
|
plan: json["plan"] == null ? void 0 : PlanResponseDataFromJSON(json["plan"]),
|
|
11484
11674
|
priceBehavior: json["price_behavior"] == null ? void 0 : json["price_behavior"],
|
|
11675
|
+
softLimit: json["soft_limit"] == null ? void 0 : json["soft_limit"],
|
|
11485
11676
|
usage: json["usage"] == null ? void 0 : json["usage"],
|
|
11486
11677
|
yearlyUsageBasedPrice: json["yearly_usage_based_price"] == null ? void 0 : BillingPriceViewFromJSON(json["yearly_usage_based_price"])
|
|
11487
11678
|
};
|
|
@@ -11544,6 +11735,20 @@ function ComponentHydrateResponseDataFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
11544
11735
|
};
|
|
11545
11736
|
}
|
|
11546
11737
|
|
|
11738
|
+
// src/api/models/DeletePaymentMethodResponse.ts
|
|
11739
|
+
function DeletePaymentMethodResponseFromJSON(json) {
|
|
11740
|
+
return DeletePaymentMethodResponseFromJSONTyped(json, false);
|
|
11741
|
+
}
|
|
11742
|
+
function DeletePaymentMethodResponseFromJSONTyped(json, ignoreDiscriminator) {
|
|
11743
|
+
if (json == null) {
|
|
11744
|
+
return json;
|
|
11745
|
+
}
|
|
11746
|
+
return {
|
|
11747
|
+
data: DeleteResponseFromJSON(json["data"]),
|
|
11748
|
+
params: json["params"]
|
|
11749
|
+
};
|
|
11750
|
+
}
|
|
11751
|
+
|
|
11547
11752
|
// src/api/models/SetupIntentResponseData.ts
|
|
11548
11753
|
function SetupIntentResponseDataFromJSON(json) {
|
|
11549
11754
|
return SetupIntentResponseDataFromJSONTyped(json, false);
|
|
@@ -11748,6 +11953,50 @@ var CheckoutexternalApi = class extends BaseAPI {
|
|
|
11748
11953
|
const response = await this.checkoutUnsubscribeRaw(initOverrides);
|
|
11749
11954
|
return await response.value();
|
|
11750
11955
|
}
|
|
11956
|
+
/**
|
|
11957
|
+
* Delete payment method
|
|
11958
|
+
*/
|
|
11959
|
+
async deletePaymentMethodRaw(requestParameters, initOverrides) {
|
|
11960
|
+
if (requestParameters["checkoutId"] == null) {
|
|
11961
|
+
throw new RequiredError(
|
|
11962
|
+
"checkoutId",
|
|
11963
|
+
'Required parameter "checkoutId" was null or undefined when calling deletePaymentMethod().'
|
|
11964
|
+
);
|
|
11965
|
+
}
|
|
11966
|
+
const queryParameters = {};
|
|
11967
|
+
const headerParameters = {};
|
|
11968
|
+
if (this.configuration && this.configuration.apiKey) {
|
|
11969
|
+
headerParameters["X-Schematic-Api-Key"] = await this.configuration.apiKey(
|
|
11970
|
+
"X-Schematic-Api-Key"
|
|
11971
|
+
);
|
|
11972
|
+
}
|
|
11973
|
+
const response = await this.request(
|
|
11974
|
+
{
|
|
11975
|
+
path: `/checkout/paymentmethod/{checkout_id}`.replace(
|
|
11976
|
+
`{${"checkout_id"}}`,
|
|
11977
|
+
encodeURIComponent(String(requestParameters["checkoutId"]))
|
|
11978
|
+
),
|
|
11979
|
+
method: "DELETE",
|
|
11980
|
+
headers: headerParameters,
|
|
11981
|
+
query: queryParameters
|
|
11982
|
+
},
|
|
11983
|
+
initOverrides
|
|
11984
|
+
);
|
|
11985
|
+
return new JSONApiResponse(
|
|
11986
|
+
response,
|
|
11987
|
+
(jsonValue) => DeletePaymentMethodResponseFromJSON(jsonValue)
|
|
11988
|
+
);
|
|
11989
|
+
}
|
|
11990
|
+
/**
|
|
11991
|
+
* Delete payment method
|
|
11992
|
+
*/
|
|
11993
|
+
async deletePaymentMethod(requestParameters, initOverrides) {
|
|
11994
|
+
const response = await this.deletePaymentMethodRaw(
|
|
11995
|
+
requestParameters,
|
|
11996
|
+
initOverrides
|
|
11997
|
+
);
|
|
11998
|
+
return await response.value();
|
|
11999
|
+
}
|
|
11751
12000
|
/**
|
|
11752
12001
|
* Get setup intent
|
|
11753
12002
|
*/
|
|
@@ -12025,6 +12274,8 @@ var en_default = {
|
|
|
12025
12274
|
"Not ready to cancel?": "Not ready to cancel?",
|
|
12026
12275
|
"Optionally add features to your subscription": "Optionally add features to your subscription",
|
|
12027
12276
|
"Other existing payment method": "Other existing payment method",
|
|
12277
|
+
Overage: "Overage",
|
|
12278
|
+
"Overage fee": "Overage fee",
|
|
12028
12279
|
"Over usage limit": "Over usage limit",
|
|
12029
12280
|
"Pay now": "Pay now",
|
|
12030
12281
|
"Payment Method": "Payment Method",
|
|
@@ -12057,17 +12308,20 @@ var en_default = {
|
|
|
12057
12308
|
Unsubscribe: "Unsubscribe",
|
|
12058
12309
|
"Unsubscribe failed": "Unsubscribe failed",
|
|
12059
12310
|
"Unused time": "Unused time",
|
|
12311
|
+
"Up to a limit of": "Up to a limit of {{amount}} {{units}}",
|
|
12060
12312
|
Usage: "Usage",
|
|
12061
12313
|
"Usage-based": "Usage-based",
|
|
12062
12314
|
"Use existing payment method": "Use existing payment method",
|
|
12063
12315
|
"X% off": "{{percent}}% off",
|
|
12064
12316
|
"X off": "{{amount}} off",
|
|
12317
|
+
"X over the limit": "{{amount}} over the limit",
|
|
12065
12318
|
Yearly: "Yearly",
|
|
12066
12319
|
"You will retain access to your plan until the end of the billing period, on": "You will retain access to your plan until the end of the billing period, on",
|
|
12067
12320
|
day: "day",
|
|
12068
12321
|
month: "month",
|
|
12069
12322
|
per: "per",
|
|
12070
12323
|
year: "year",
|
|
12324
|
+
"overage fee": "overage fee",
|
|
12071
12325
|
used: "used",
|
|
12072
12326
|
usage: {
|
|
12073
12327
|
limited: "{{amount}} of {{allocation}} used",
|
|
@@ -12077,8 +12331,7 @@ var en_default = {
|
|
|
12077
12331
|
};
|
|
12078
12332
|
|
|
12079
12333
|
// src/context/styles.ts
|
|
12080
|
-
var GlobalStyle = ft
|
|
12081
|
-
|
|
12334
|
+
var GlobalStyle = ft`
|
|
12082
12335
|
@font-face {
|
|
12083
12336
|
font-family: "icons";
|
|
12084
12337
|
src: url(data:font/ttf;base64,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ASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwAFYWxhcm0JYW1hem9ucGF5BGFtZXgIYXBwbGVwYXkPYXJyb3ctYW5hbHl0aWNzDGFycm93LWN1cnZlZAphcnJvdy1kb3duCmFycm93LWxlZnQLYXJyb3ctcmlnaHQIYXJyb3ctdXAMYXJyb3ctdXB3YXJkCWJhY2tzcGFjZQRiYW5rBGJlbGwFYm9hcmQIYm9va21hcmsKYm9vbGVhbi1vbgdib29sZWFuBGJ1bGIGYnVyZ2VyB2Nhc2hhcHANY2hlY2stcm91bmRlZAVjaGVjawxjaGV2cm9uLWRvd24MY2hldnJvbi1sZWZ0DWNoZXZyb24tcmlnaHQKY2hldnJvbi11cARjaGlwBWNoaXBzBWNsZXJrFGNsb3NlLXJvdW5kZWQtZmlsbGVkBWNsb3NlCGNsb3VkLXVwBGNsdWIDY21kBGNvZGUGY29mZmVlA2NvZw5jb2xsYXBzZS1lbXB0eQhjb2xsYXBzZQdjb21wYXNzCmNvbm5lY3Rpb24EY29weQZjcmVkaXQHY3lsbmRlcgdkaWFtb25kDmRvbGxhci1yb3VuZGVkD2RvdHMtaG9yaXpvbnRhbA1kb3RzLXZlcnRpY2FsDGVudGl0bGVtZW50cwllcXVhbGl6ZXIaZXhjbGFtYXRpb24tcm91bmRlZC1maWxsZWQDZXllBmZpbHRlcgVmbGFzawxmb2xkZXItbWludXMLZm9sZGVyLXBsdXMGZm9sZGVyD2dlbmVyaWMtcGF5bWVudAZnaXRodWIHZ2xhc3NlcwVnbG9iZQZnb29nbGUGaGFtbWVyBGhhc2gFaGVhcnQHaHVic3BvdAVpbWFnZQxpbmZvLXJvdW5kZWQFanVpY2UDa2V5BGxpbmsKbWFzdGVyY2FyZARtb3ZlBW11c2ljCm5vZGUtbWludXMJbm9kZS1wbHVzB3BhY2thZ2ULcGFwZXItcGxhbmUGcGF5cGFsBnBlbmNpbAdwZXJjZW50BnBpY2tlcgRwbGFuBHBsdWcKcGx1cy1taW51cxRwbHVzLXJvdW5kZWQtb3V0bGluZQdwcmVzZW50CXNjaGVtYXRpYwZzZWFyY2gHc2VnbWVudA1zZXJ2ZXItc2VhcmNoB3NpZGViYXIGc2lnbmFsB3NpbGVuY2UFc3BhZGUHc3BlYWtlcgdzdGFja2VkBnN0YWNrcwZzdHJpcGUEdGV4dAd0aHVuZGVyB3Rvcm5hZG8FdHJ1Y2sEdHViZQt1bnByb3RlY3RlZAt1bnN1YnNjcmliZQh2ZXJpZmllZAx2aWRlby1jYW1lcmEEdmlzYQZ3YWxsZXQKd2F0Y2gtaGFuZAx3YXRjaC1wb2NrZXQKd2F0ZXItZHJvcAV3YXZlcwd3ZWJob29rBHdpbmQAAAAA), format("truetype");
|
|
@@ -12631,7 +12884,8 @@ var defaultTheme = {
|
|
|
12631
12884
|
var defaultSettings = {
|
|
12632
12885
|
theme: defaultTheme,
|
|
12633
12886
|
badge: {
|
|
12634
|
-
alignment: "start"
|
|
12887
|
+
alignment: "start",
|
|
12888
|
+
visibility: "visible"
|
|
12635
12889
|
}
|
|
12636
12890
|
};
|
|
12637
12891
|
function isEditorState(obj) {
|
|
@@ -12695,7 +12949,8 @@ var EmbedProvider = ({
|
|
|
12695
12949
|
accessToken,
|
|
12696
12950
|
apiConfig,
|
|
12697
12951
|
children,
|
|
12698
|
-
mode = "view"
|
|
12952
|
+
mode = "view",
|
|
12953
|
+
...options
|
|
12699
12954
|
}) => {
|
|
12700
12955
|
const styleRef = (0, import_react11.useRef)(null);
|
|
12701
12956
|
const sessionIdRef = (0, import_react11.useRef)(v4_default());
|
|
@@ -12728,6 +12983,14 @@ var EmbedProvider = ({
|
|
|
12728
12983
|
}
|
|
12729
12984
|
};
|
|
12730
12985
|
});
|
|
12986
|
+
const debug = (0, import_react11.useCallback)(
|
|
12987
|
+
(message, ...args) => {
|
|
12988
|
+
if (options.debug) {
|
|
12989
|
+
console.debug(`[Schematic] ${message}`, ...args);
|
|
12990
|
+
}
|
|
12991
|
+
},
|
|
12992
|
+
[options.debug]
|
|
12993
|
+
);
|
|
12731
12994
|
const hydrate = (0, import_react11.useCallback)(async () => {
|
|
12732
12995
|
setState((prev2) => ({ ...prev2, isPending: true, error: void 0 }));
|
|
12733
12996
|
try {
|
|
@@ -12797,7 +13060,7 @@ var EmbedProvider = ({
|
|
|
12797
13060
|
};
|
|
12798
13061
|
});
|
|
12799
13062
|
};
|
|
12800
|
-
|
|
13063
|
+
const initI18n = () => {
|
|
12801
13064
|
instance.use(initReactI18next).init({
|
|
12802
13065
|
resources: {
|
|
12803
13066
|
en: en_default
|
|
@@ -12808,8 +13071,8 @@ var EmbedProvider = ({
|
|
|
12808
13071
|
escapeValue: false
|
|
12809
13072
|
}
|
|
12810
13073
|
});
|
|
12811
|
-
}
|
|
12812
|
-
|
|
13074
|
+
};
|
|
13075
|
+
const initFontStylesheet = () => {
|
|
12813
13076
|
const element = document.getElementById("schematic-fonts");
|
|
12814
13077
|
if (element) {
|
|
12815
13078
|
styleRef.current = element;
|
|
@@ -12820,11 +13083,25 @@ var EmbedProvider = ({
|
|
|
12820
13083
|
style.rel = "stylesheet";
|
|
12821
13084
|
document.head.appendChild(style);
|
|
12822
13085
|
styleRef.current = style;
|
|
12823
|
-
}
|
|
13086
|
+
};
|
|
13087
|
+
(0, import_react11.useEffect)(() => {
|
|
13088
|
+
initI18n();
|
|
13089
|
+
initFontStylesheet();
|
|
13090
|
+
const planChanged = (event) => {
|
|
13091
|
+
if (!(event instanceof CustomEvent)) {
|
|
13092
|
+
return;
|
|
13093
|
+
}
|
|
13094
|
+
debug("plan changed", event.detail);
|
|
13095
|
+
};
|
|
13096
|
+
window.addEventListener("plan-changed", planChanged);
|
|
13097
|
+
return () => {
|
|
13098
|
+
window.removeEventListener("plan-changed", planChanged);
|
|
13099
|
+
};
|
|
13100
|
+
}, [debug]);
|
|
12824
13101
|
(0, import_react11.useEffect)(() => {
|
|
12825
13102
|
if (accessToken) {
|
|
12826
13103
|
const { headers = {} } = apiConfig ?? {};
|
|
12827
|
-
headers["X-Schematic-Components-Version"] = "0.
|
|
13104
|
+
headers["X-Schematic-Components-Version"] = "0.6.0";
|
|
12828
13105
|
headers["X-Schematic-Session-ID"] = sessionIdRef.current;
|
|
12829
13106
|
const config = new Configuration({
|
|
12830
13107
|
...apiConfig,
|
|
@@ -13076,6 +13353,17 @@ attr.rem = function propAsRem(key, value) {
|
|
|
13076
13353
|
`;
|
|
13077
13354
|
};
|
|
13078
13355
|
|
|
13356
|
+
// src/utils/api.ts
|
|
13357
|
+
var import_pluralize = __toESM(require_pluralize());
|
|
13358
|
+
var getFeatureName = (feature, count = 0) => {
|
|
13359
|
+
const shouldBePlural = count === 0 || count > 1;
|
|
13360
|
+
const { name, singularName, pluralName } = feature;
|
|
13361
|
+
if (pluralName && shouldBePlural) return pluralName;
|
|
13362
|
+
if (singularName)
|
|
13363
|
+
return shouldBePlural ? (0, import_pluralize.default)(singularName, count) : singularName;
|
|
13364
|
+
return (0, import_pluralize.default)(name, count);
|
|
13365
|
+
};
|
|
13366
|
+
|
|
13079
13367
|
// src/hooks/useIsLightBackground.ts
|
|
13080
13368
|
function useIsLightBackground() {
|
|
13081
13369
|
const theme = nt();
|
|
@@ -13143,7 +13431,10 @@ var import_react20 = require("react");
|
|
|
13143
13431
|
// src/components/ui/box/styles.ts
|
|
13144
13432
|
var Box = dt.div((props) => {
|
|
13145
13433
|
function reducer(acc, [key, value]) {
|
|
13146
|
-
if (key.startsWith("$") &&
|
|
13434
|
+
if (key.startsWith("$") && ![
|
|
13435
|
+
"$viewport",
|
|
13436
|
+
...Object.values(TextPropNames).filter((prop) => prop !== "$color")
|
|
13437
|
+
].includes(key)) {
|
|
13147
13438
|
acc.push(
|
|
13148
13439
|
// keys will always be CSS properties
|
|
13149
13440
|
attr(camelToHyphen(key.slice(1)), value)
|
|
@@ -13838,7 +14129,7 @@ var Modal = (0, import_react17.forwardRef)(
|
|
|
13838
14129
|
contentRef?.current?.focus({ preventScroll: true });
|
|
13839
14130
|
}, [contentRef]);
|
|
13840
14131
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
13841
|
-
|
|
14132
|
+
Box,
|
|
13842
14133
|
{
|
|
13843
14134
|
ref,
|
|
13844
14135
|
tabIndex: 0,
|
|
@@ -13866,7 +14157,7 @@ var Modal = (0, import_react17.forwardRef)(
|
|
|
13866
14157
|
$scrollbarColor: `${isLightBackground ? "hsla(0, 0%, 0%, 0.15)" : "hsla(0, 0%, 100%, 0.15)"} transparent`,
|
|
13867
14158
|
$scrollbarWidth: "thin",
|
|
13868
14159
|
$scrollbarGutter: "stable both-edges",
|
|
13869
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
14160
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Container2, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
13870
14161
|
Flex,
|
|
13871
14162
|
{
|
|
13872
14163
|
ref: contentRef,
|
|
@@ -13898,7 +14189,7 @@ var Modal = (0, import_react17.forwardRef)(
|
|
|
13898
14189
|
},
|
|
13899
14190
|
children
|
|
13900
14191
|
}
|
|
13901
|
-
)
|
|
14192
|
+
) })
|
|
13902
14193
|
}
|
|
13903
14194
|
);
|
|
13904
14195
|
}
|
|
@@ -13983,9 +14274,11 @@ var ProgressBar = ({
|
|
|
13983
14274
|
value,
|
|
13984
14275
|
total = 0,
|
|
13985
14276
|
color = "gray",
|
|
14277
|
+
bgColor = "#F2F4F7",
|
|
13986
14278
|
barWidth = "100%",
|
|
13987
14279
|
...props
|
|
13988
14280
|
}) => {
|
|
14281
|
+
const theme = nt();
|
|
13989
14282
|
const barColorMap = {
|
|
13990
14283
|
gray: "#9CA3AF",
|
|
13991
14284
|
blue: "#2563EB",
|
|
@@ -14014,7 +14307,7 @@ var ProgressBar = ({
|
|
|
14014
14307
|
$overflow: "hidden",
|
|
14015
14308
|
$width: "100%",
|
|
14016
14309
|
$height: `${8 / TEXT_BASE_SIZE}rem`,
|
|
14017
|
-
$backgroundColor:
|
|
14310
|
+
$backgroundColor: bgColor,
|
|
14018
14311
|
$borderRadius: "9999px",
|
|
14019
14312
|
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
14020
14313
|
Box,
|
|
@@ -14029,18 +14322,37 @@ var ProgressBar = ({
|
|
|
14029
14322
|
)
|
|
14030
14323
|
}
|
|
14031
14324
|
),
|
|
14032
|
-
total !== 0 && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
14033
|
-
|
|
14034
|
-
|
|
14035
|
-
|
|
14036
|
-
|
|
14325
|
+
total !== 0 && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
14326
|
+
Text,
|
|
14327
|
+
{
|
|
14328
|
+
$font: theme.typography.text.fontFamily,
|
|
14329
|
+
$size: 14,
|
|
14330
|
+
$weight: 500,
|
|
14331
|
+
$color: theme.typography.text.color,
|
|
14332
|
+
children: [
|
|
14333
|
+
value,
|
|
14334
|
+
"/",
|
|
14335
|
+
total
|
|
14336
|
+
]
|
|
14337
|
+
}
|
|
14338
|
+
)
|
|
14037
14339
|
]
|
|
14038
14340
|
}
|
|
14039
14341
|
);
|
|
14040
14342
|
};
|
|
14041
14343
|
|
|
14042
14344
|
// src/components/ui/text/styles.ts
|
|
14043
|
-
var
|
|
14345
|
+
var TextPropNames = /* @__PURE__ */ ((TextPropNames2) => {
|
|
14346
|
+
TextPropNames2["Align"] = "$align";
|
|
14347
|
+
TextPropNames2["Font"] = "$font";
|
|
14348
|
+
TextPropNames2["Size"] = "$size";
|
|
14349
|
+
TextPropNames2["Weight"] = "$weight";
|
|
14350
|
+
TextPropNames2["Color"] = "$color";
|
|
14351
|
+
TextPropNames2["Leading"] = "$leading";
|
|
14352
|
+
return TextPropNames2;
|
|
14353
|
+
})(TextPropNames || {});
|
|
14354
|
+
var Text = dt(Box).attrs(({ as = "span", onClick }) => ({
|
|
14355
|
+
as,
|
|
14044
14356
|
...onClick && { tabIndex: 0 }
|
|
14045
14357
|
}))`
|
|
14046
14358
|
${({ $font }) => $font && lt`
|
|
@@ -14073,6 +14385,7 @@ var Text = dt.span.attrs(({ onClick }) => ({
|
|
|
14073
14385
|
// src/components/ui/tooltip/Tooltip.tsx
|
|
14074
14386
|
var import_react19 = require("react");
|
|
14075
14387
|
var import_react_dom = require("react-dom");
|
|
14388
|
+
var import_debounce = __toESM(require_debounce());
|
|
14076
14389
|
|
|
14077
14390
|
// src/components/ui/tooltip/styles.ts
|
|
14078
14391
|
var Trigger = dt(Box)``;
|
|
@@ -14212,7 +14525,7 @@ var Tooltip = ({
|
|
|
14212
14525
|
const ref = (0, import_react19.useRef)(null);
|
|
14213
14526
|
const [show, setShow] = (0, import_react19.useState)(false);
|
|
14214
14527
|
const [coords2, setCoords] = (0, import_react19.useState)({ x: 0, y: 0 });
|
|
14215
|
-
(0, import_react19.
|
|
14528
|
+
const updateCoords = (0, import_react19.useCallback)(() => {
|
|
14216
14529
|
if (ref.current) {
|
|
14217
14530
|
const { top: offsetTop, left: offsetLeft } = document.body.getBoundingClientRect();
|
|
14218
14531
|
const rect = ref.current.getBoundingClientRect();
|
|
@@ -14229,7 +14542,15 @@ var Tooltip = ({
|
|
|
14229
14542
|
y: Math.round(y2 - offsetTop)
|
|
14230
14543
|
});
|
|
14231
14544
|
}
|
|
14232
|
-
}, [position2
|
|
14545
|
+
}, [position2]);
|
|
14546
|
+
(0, import_react19.useLayoutEffect)(() => {
|
|
14547
|
+
updateCoords();
|
|
14548
|
+
const handleResize = (0, import_debounce.default)(updateCoords, DEBOUNCE_TIMEOUT);
|
|
14549
|
+
window.addEventListener("resize", handleResize);
|
|
14550
|
+
return () => {
|
|
14551
|
+
window.removeEventListener("resize", handleResize);
|
|
14552
|
+
};
|
|
14553
|
+
}, [updateCoords]);
|
|
14233
14554
|
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
|
|
14234
14555
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
14235
14556
|
Trigger,
|
|
@@ -14250,7 +14571,17 @@ var Tooltip = ({
|
|
|
14250
14571
|
|
|
14251
14572
|
// src/components/layout/root/styles.ts
|
|
14252
14573
|
var Container2 = dt(Box)`
|
|
14253
|
-
|
|
14574
|
+
all: initial;
|
|
14575
|
+
box-sizing: border-box;
|
|
14576
|
+
font-size: ${TEXT_BASE_SIZE}px;
|
|
14577
|
+
|
|
14578
|
+
*,
|
|
14579
|
+
*::before,
|
|
14580
|
+
*::after {
|
|
14581
|
+
box-sizing: inherit;
|
|
14582
|
+
}
|
|
14583
|
+
|
|
14584
|
+
sub,
|
|
14254
14585
|
sup {
|
|
14255
14586
|
position: static;
|
|
14256
14587
|
line-height: 1;
|
|
@@ -14283,7 +14614,6 @@ var import_react24 = require("react");
|
|
|
14283
14614
|
|
|
14284
14615
|
// src/components/shared/sidebar/Sidebar.tsx
|
|
14285
14616
|
var import_react21 = require("react");
|
|
14286
|
-
var import_pluralize = __toESM(require_pluralize());
|
|
14287
14617
|
|
|
14288
14618
|
// src/components/shared/sidebar/StageButton.tsx
|
|
14289
14619
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
@@ -14570,6 +14900,13 @@ var Sidebar = ({
|
|
|
14570
14900
|
proration: charges?.proration ?? 0
|
|
14571
14901
|
};
|
|
14572
14902
|
}, [charges]);
|
|
14903
|
+
const dispatchPlanChangedEvent = (detail) => {
|
|
14904
|
+
const event = new CustomEvent("plan-changed", {
|
|
14905
|
+
bubbles: true,
|
|
14906
|
+
detail
|
|
14907
|
+
});
|
|
14908
|
+
window.dispatchEvent(event);
|
|
14909
|
+
};
|
|
14573
14910
|
const checkout = (0, import_react21.useCallback)(async () => {
|
|
14574
14911
|
const priceId = (planPeriod === "month" ? selectedPlan?.monthlyPrice : selectedPlan?.yearlyPrice)?.id;
|
|
14575
14912
|
if (!api || !selectedPlan || !priceId) {
|
|
@@ -14578,7 +14915,7 @@ var Sidebar = ({
|
|
|
14578
14915
|
try {
|
|
14579
14916
|
setError(void 0);
|
|
14580
14917
|
setIsLoading(true);
|
|
14581
|
-
await api.checkout({
|
|
14918
|
+
const response = await api.checkout({
|
|
14582
14919
|
changeSubscriptionRequestBody: {
|
|
14583
14920
|
newPlanId: selectedPlan.id,
|
|
14584
14921
|
newPriceId: priceId,
|
|
@@ -14611,6 +14948,7 @@ var Sidebar = ({
|
|
|
14611
14948
|
...promoCode && { promoCode }
|
|
14612
14949
|
}
|
|
14613
14950
|
});
|
|
14951
|
+
dispatchPlanChangedEvent(response.data);
|
|
14614
14952
|
setIsLoading(false);
|
|
14615
14953
|
setLayout("portal");
|
|
14616
14954
|
hydrate();
|
|
@@ -14643,7 +14981,8 @@ var Sidebar = ({
|
|
|
14643
14981
|
try {
|
|
14644
14982
|
setError(void 0);
|
|
14645
14983
|
setIsLoading(true);
|
|
14646
|
-
await api.checkoutUnsubscribe();
|
|
14984
|
+
const response = await api.checkoutUnsubscribe();
|
|
14985
|
+
dispatchPlanChangedEvent(response.data);
|
|
14647
14986
|
setLayout("portal");
|
|
14648
14987
|
hydrate();
|
|
14649
14988
|
} catch {
|
|
@@ -14904,7 +15243,7 @@ var Sidebar = ({
|
|
|
14904
15243
|
}
|
|
14905
15244
|
) }),
|
|
14906
15245
|
removedUsageBasedEntitlements.reduce(
|
|
14907
|
-
(acc, { allocation, quantity, usage }) => {
|
|
15246
|
+
(acc, { allocation, quantity, usage }, index) => {
|
|
14908
15247
|
if (typeof allocation === "number" && usage.feature?.name) {
|
|
14909
15248
|
const price = (planPeriod === "month" ? usage.monthlyUsageBasedPrice : usage.yearlyUsageBasedPrice)?.price;
|
|
14910
15249
|
acc.push(
|
|
@@ -14928,7 +15267,7 @@ var Sidebar = ({
|
|
|
14928
15267
|
children: usage.priceBehavior === "pay_in_advance" ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
|
|
14929
15268
|
quantity,
|
|
14930
15269
|
" ",
|
|
14931
|
-
(
|
|
15270
|
+
getFeatureName(usage.feature, quantity)
|
|
14932
15271
|
] }) : usage.feature.name
|
|
14933
15272
|
}
|
|
14934
15273
|
) }),
|
|
@@ -14957,10 +15296,7 @@ var Sidebar = ({
|
|
|
14957
15296
|
),
|
|
14958
15297
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("sub", { children: [
|
|
14959
15298
|
"/",
|
|
14960
|
-
(
|
|
14961
|
-
usage.feature.name.toLowerCase(),
|
|
14962
|
-
1
|
|
14963
|
-
)
|
|
15299
|
+
getFeatureName(usage.feature, 1)
|
|
14964
15300
|
] })
|
|
14965
15301
|
] })
|
|
14966
15302
|
]
|
|
@@ -14968,7 +15304,7 @@ var Sidebar = ({
|
|
|
14968
15304
|
) })
|
|
14969
15305
|
]
|
|
14970
15306
|
},
|
|
14971
|
-
|
|
15307
|
+
index
|
|
14972
15308
|
)
|
|
14973
15309
|
);
|
|
14974
15310
|
}
|
|
@@ -14977,7 +15313,7 @@ var Sidebar = ({
|
|
|
14977
15313
|
[]
|
|
14978
15314
|
),
|
|
14979
15315
|
changedUsageBasedEntitlements.reduce(
|
|
14980
|
-
(acc, { entitlement, previous, next: next2 }) => {
|
|
15316
|
+
(acc, { entitlement, previous, next: next2 }, index) => {
|
|
14981
15317
|
if (entitlement?.feature?.name) {
|
|
14982
15318
|
acc.push(
|
|
14983
15319
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(Box, { children: [
|
|
@@ -15001,7 +15337,7 @@ var Sidebar = ({
|
|
|
15001
15337
|
children: [
|
|
15002
15338
|
previous.quantity,
|
|
15003
15339
|
" ",
|
|
15004
|
-
(
|
|
15340
|
+
getFeatureName(entitlement.feature)
|
|
15005
15341
|
]
|
|
15006
15342
|
}
|
|
15007
15343
|
) }),
|
|
@@ -15044,7 +15380,7 @@ var Sidebar = ({
|
|
|
15044
15380
|
children: [
|
|
15045
15381
|
next2.quantity,
|
|
15046
15382
|
" ",
|
|
15047
|
-
(
|
|
15383
|
+
getFeatureName(entitlement.feature)
|
|
15048
15384
|
]
|
|
15049
15385
|
}
|
|
15050
15386
|
) }),
|
|
@@ -15070,7 +15406,7 @@ var Sidebar = ({
|
|
|
15070
15406
|
]
|
|
15071
15407
|
}
|
|
15072
15408
|
)
|
|
15073
|
-
] },
|
|
15409
|
+
] }, index)
|
|
15074
15410
|
);
|
|
15075
15411
|
}
|
|
15076
15412
|
return acc;
|
|
@@ -15078,7 +15414,7 @@ var Sidebar = ({
|
|
|
15078
15414
|
[]
|
|
15079
15415
|
),
|
|
15080
15416
|
addedUsageBasedEntitlements.reduce(
|
|
15081
|
-
(acc, { entitlement, quantity }) => {
|
|
15417
|
+
(acc, { entitlement, quantity }, index) => {
|
|
15082
15418
|
if (entitlement.feature?.name) {
|
|
15083
15419
|
const price = (planPeriod === "month" ? entitlement.meteredMonthlyPrice : entitlement.meteredYearlyPrice)?.price;
|
|
15084
15420
|
acc.push(
|
|
@@ -15099,7 +15435,7 @@ var Sidebar = ({
|
|
|
15099
15435
|
children: entitlement.priceBehavior === "pay_in_advance" ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
|
|
15100
15436
|
quantity,
|
|
15101
15437
|
" ",
|
|
15102
|
-
(
|
|
15438
|
+
getFeatureName(entitlement.feature, quantity)
|
|
15103
15439
|
] }) : entitlement.feature.name
|
|
15104
15440
|
}
|
|
15105
15441
|
) }),
|
|
@@ -15128,10 +15464,7 @@ var Sidebar = ({
|
|
|
15128
15464
|
),
|
|
15129
15465
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("sub", { children: [
|
|
15130
15466
|
"/",
|
|
15131
|
-
(
|
|
15132
|
-
entitlement.feature.name.toLowerCase(),
|
|
15133
|
-
1
|
|
15134
|
-
)
|
|
15467
|
+
getFeatureName(entitlement.feature, 1)
|
|
15135
15468
|
] })
|
|
15136
15469
|
] })
|
|
15137
15470
|
]
|
|
@@ -15139,7 +15472,7 @@ var Sidebar = ({
|
|
|
15139
15472
|
) })
|
|
15140
15473
|
]
|
|
15141
15474
|
},
|
|
15142
|
-
|
|
15475
|
+
index
|
|
15143
15476
|
)
|
|
15144
15477
|
);
|
|
15145
15478
|
}
|
|
@@ -15209,7 +15542,7 @@ var Sidebar = ({
|
|
|
15209
15542
|
children: t2("Add-ons")
|
|
15210
15543
|
}
|
|
15211
15544
|
) }),
|
|
15212
|
-
removedAddOns.map((addOn) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
15545
|
+
removedAddOns.map((addOn, index) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
15213
15546
|
Flex,
|
|
15214
15547
|
{
|
|
15215
15548
|
$justifyContent: "space-between",
|
|
@@ -15250,9 +15583,9 @@ var Sidebar = ({
|
|
|
15250
15583
|
) })
|
|
15251
15584
|
]
|
|
15252
15585
|
},
|
|
15253
|
-
|
|
15586
|
+
index
|
|
15254
15587
|
)),
|
|
15255
|
-
selectedAddOns.map((addOn) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
15588
|
+
selectedAddOns.map((addOn, index) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
15256
15589
|
Flex,
|
|
15257
15590
|
{
|
|
15258
15591
|
$justifyContent: "space-between",
|
|
@@ -15278,7 +15611,8 @@ var Sidebar = ({
|
|
|
15278
15611
|
$color: theme.typography.text.color,
|
|
15279
15612
|
children: [
|
|
15280
15613
|
formatCurrency(
|
|
15281
|
-
(planPeriod === "month" ? addOn.monthlyPrice : addOn.yearlyPrice)?.price ?? 0
|
|
15614
|
+
(planPeriod === "month" ? addOn.monthlyPrice : addOn.yearlyPrice)?.price ?? 0,
|
|
15615
|
+
(planPeriod === "month" ? addOn.monthlyPrice : addOn.yearlyPrice)?.currency
|
|
15282
15616
|
),
|
|
15283
15617
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("sub", { children: [
|
|
15284
15618
|
"/",
|
|
@@ -15289,7 +15623,7 @@ var Sidebar = ({
|
|
|
15289
15623
|
) })
|
|
15290
15624
|
]
|
|
15291
15625
|
},
|
|
15292
|
-
|
|
15626
|
+
index
|
|
15293
15627
|
))
|
|
15294
15628
|
] }),
|
|
15295
15629
|
proration !== 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
|
|
@@ -15739,7 +16073,6 @@ var Navigation = ({
|
|
|
15739
16073
|
|
|
15740
16074
|
// src/components/shared/checkout-dialog/Plan.tsx
|
|
15741
16075
|
var import_react22 = require("react");
|
|
15742
|
-
var import_pluralize2 = __toESM(require_pluralize());
|
|
15743
16076
|
|
|
15744
16077
|
// src/components/elements/pricing-table/styles.ts
|
|
15745
16078
|
var ButtonLink = dt.a`
|
|
@@ -15747,6 +16080,7 @@ var ButtonLink = dt.a`
|
|
|
15747
16080
|
justify-content: center;
|
|
15748
16081
|
align-items: center;
|
|
15749
16082
|
flex-grow: 1;
|
|
16083
|
+
height: 100%;
|
|
15750
16084
|
`;
|
|
15751
16085
|
|
|
15752
16086
|
// src/components/shared/checkout-dialog/Plan.tsx
|
|
@@ -15792,13 +16126,11 @@ var Plan = ({
|
|
|
15792
16126
|
$display: "grid",
|
|
15793
16127
|
$gridTemplateColumns: "repeat(auto-fill, minmax(300px, 1fr))",
|
|
15794
16128
|
$gap: "1rem",
|
|
15795
|
-
$flexGrow:
|
|
15796
|
-
children: plans.map((plan) => {
|
|
16129
|
+
$flexGrow: 1,
|
|
16130
|
+
children: plans.map((plan, planIndex) => {
|
|
15797
16131
|
const count = entitlementCounts[plan.id];
|
|
15798
|
-
|
|
15799
|
-
|
|
15800
|
-
isExpanded = true;
|
|
15801
|
-
}
|
|
16132
|
+
const isExpanded = count.limit > VISIBLE_ENTITLEMENT_COUNT;
|
|
16133
|
+
const { price: planPrice, currency: planCurrency } = (period === "month" ? plan.monthlyPrice : period === "year" && plan.yearlyPrice) || {};
|
|
15802
16134
|
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
15803
16135
|
Flex,
|
|
15804
16136
|
{
|
|
@@ -15856,10 +16188,7 @@ var Plan = ({
|
|
|
15856
16188
|
$size: theme.typography.heading2.fontSize,
|
|
15857
16189
|
$weight: theme.typography.heading2.fontWeight,
|
|
15858
16190
|
$color: theme.typography.heading2.color,
|
|
15859
|
-
children: plan.custom ? plan.customPlanConfig?.priceText ? plan.customPlanConfig
|
|
15860
|
-
(period === "month" ? plan.monthlyPrice : plan.yearlyPrice)?.price ?? 0,
|
|
15861
|
-
(period === "month" ? plan.monthlyPrice : plan.yearlyPrice)?.currency
|
|
15862
|
-
)
|
|
16191
|
+
children: plan.custom ? plan.customPlanConfig?.priceText ? plan.customPlanConfig.priceText : t2("Custom Plan Price") : formatCurrency(planPrice ?? 0, planCurrency)
|
|
15863
16192
|
}
|
|
15864
16193
|
),
|
|
15865
16194
|
!plan.custom && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
@@ -15898,88 +16227,148 @@ var Plan = ({
|
|
|
15898
16227
|
{
|
|
15899
16228
|
$flexDirection: "column",
|
|
15900
16229
|
$justifyContent: "end",
|
|
15901
|
-
$flexGrow:
|
|
16230
|
+
$flexGrow: 1,
|
|
15902
16231
|
$gap: `${cardPadding}rem`,
|
|
15903
16232
|
$padding: `${0.75 * cardPadding}rem ${cardPadding}rem 0`,
|
|
15904
16233
|
children: [
|
|
15905
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", $flexGrow:
|
|
15906
|
-
plan.entitlements.reduce(
|
|
15907
|
-
|
|
15908
|
-
|
|
15909
|
-
|
|
15910
|
-
|
|
15911
|
-
|
|
15912
|
-
|
|
15913
|
-
|
|
15914
|
-
|
|
15915
|
-
|
|
15916
|
-
|
|
15917
|
-
|
|
15918
|
-
|
|
15919
|
-
|
|
15920
|
-
|
|
15921
|
-
|
|
15922
|
-
|
|
15923
|
-
|
|
15924
|
-
|
|
15925
|
-
|
|
15926
|
-
|
|
15927
|
-
|
|
15928
|
-
|
|
15929
|
-
|
|
15930
|
-
|
|
15931
|
-
|
|
15932
|
-
|
|
15933
|
-
|
|
15934
|
-
|
|
15935
|
-
|
|
15936
|
-
|
|
15937
|
-
|
|
15938
|
-
|
|
15939
|
-
|
|
15940
|
-
|
|
15941
|
-
|
|
15942
|
-
|
|
15943
|
-
|
|
15944
|
-
|
|
15945
|
-
|
|
15946
|
-
|
|
15947
|
-
|
|
15948
|
-
|
|
15949
|
-
|
|
15950
|
-
|
|
15951
|
-
|
|
15952
|
-
|
|
15953
|
-
|
|
15954
|
-
|
|
15955
|
-
|
|
15956
|
-
|
|
15957
|
-
|
|
15958
|
-
|
|
15959
|
-
|
|
15960
|
-
|
|
15961
|
-
|
|
15962
|
-
|
|
15963
|
-
|
|
15964
|
-
|
|
16234
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", $flexGrow: 1, children: [
|
|
16235
|
+
plan.entitlements.reduce(
|
|
16236
|
+
(acc, entitlement, entitlementIndex) => {
|
|
16237
|
+
const hasNumericValue = entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait";
|
|
16238
|
+
let metricPeriodText;
|
|
16239
|
+
if (hasNumericValue && entitlement.metricPeriod && entitlement.priceBehavior !== "overage") {
|
|
16240
|
+
metricPeriodText = {
|
|
16241
|
+
billing: t2("billing period"),
|
|
16242
|
+
current_day: t2("day"),
|
|
16243
|
+
current_month: t2("month"),
|
|
16244
|
+
current_year: t2("year")
|
|
16245
|
+
}[entitlement.metricPeriod];
|
|
16246
|
+
}
|
|
16247
|
+
const limit = entitlement.softLimit ?? entitlement.valueNumeric;
|
|
16248
|
+
const {
|
|
16249
|
+
price: entitlementPrice,
|
|
16250
|
+
currency: entitlementCurrency
|
|
16251
|
+
} = (period === "month" ? entitlement.meteredMonthlyPrice : period === "year" && entitlement.meteredYearlyPrice) || {};
|
|
16252
|
+
if (entitlement.priceBehavior && typeof entitlementPrice !== "number") {
|
|
16253
|
+
return acc;
|
|
16254
|
+
}
|
|
16255
|
+
acc.push(
|
|
16256
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
16257
|
+
Flex,
|
|
16258
|
+
{
|
|
16259
|
+
$flexWrap: "wrap",
|
|
16260
|
+
$justifyContent: "space-between",
|
|
16261
|
+
$alignItems: "center",
|
|
16262
|
+
$gap: "1rem",
|
|
16263
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(Flex, { $gap: "1rem", children: [
|
|
16264
|
+
entitlement.feature?.icon && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
16265
|
+
IconRound,
|
|
16266
|
+
{
|
|
16267
|
+
name: entitlement.feature.icon,
|
|
16268
|
+
size: "sm",
|
|
16269
|
+
colors: [
|
|
16270
|
+
theme.primary,
|
|
16271
|
+
isLightBackground ? "hsla(0, 0%, 0%, 0.0625)" : "hsla(0, 0%, 100%, 0.25)"
|
|
16272
|
+
]
|
|
16273
|
+
}
|
|
16274
|
+
),
|
|
16275
|
+
entitlement.feature?.name && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
16276
|
+
Flex,
|
|
16277
|
+
{
|
|
16278
|
+
$flexDirection: "column",
|
|
16279
|
+
$justifyContent: "center",
|
|
16280
|
+
$gap: "0.5rem",
|
|
16281
|
+
children: [
|
|
16282
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
16283
|
+
Text,
|
|
16284
|
+
{
|
|
16285
|
+
$font: theme.typography.text.fontFamily,
|
|
16286
|
+
$size: theme.typography.text.fontSize,
|
|
16287
|
+
$weight: theme.typography.text.fontWeight,
|
|
16288
|
+
$color: theme.typography.text.color,
|
|
16289
|
+
$leading: 1.35,
|
|
16290
|
+
children: typeof entitlementPrice === "number" && (entitlement.priceBehavior === "pay_in_advance" || entitlement.priceBehavior === "pay_as_you_go") ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
16291
|
+
formatCurrency(
|
|
16292
|
+
entitlementPrice,
|
|
16293
|
+
entitlementCurrency
|
|
16294
|
+
),
|
|
16295
|
+
" ",
|
|
16296
|
+
t2("per"),
|
|
16297
|
+
" ",
|
|
16298
|
+
getFeatureName(entitlement.feature, 1),
|
|
16299
|
+
entitlement.priceBehavior === "pay_in_advance" && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
16300
|
+
" ",
|
|
16301
|
+
t2("per"),
|
|
16302
|
+
" ",
|
|
16303
|
+
period
|
|
16304
|
+
] })
|
|
16305
|
+
] }) : hasNumericValue ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
16306
|
+
entitlement.valueType === "unlimited" && !entitlement.priceBehavior ? t2("Unlimited", {
|
|
16307
|
+
item: getFeatureName(
|
|
16308
|
+
entitlement.feature
|
|
16309
|
+
)
|
|
16310
|
+
}) : typeof limit === "number" && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
16311
|
+
formatNumber(limit),
|
|
16312
|
+
" ",
|
|
16313
|
+
getFeatureName(
|
|
16314
|
+
entitlement.feature,
|
|
16315
|
+
limit
|
|
16316
|
+
)
|
|
16317
|
+
] }),
|
|
16318
|
+
metricPeriodText ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
16319
|
+
" ",
|
|
16320
|
+
t2("per"),
|
|
16321
|
+
" ",
|
|
16322
|
+
metricPeriodText
|
|
16323
|
+
] }) : entitlement.priceBehavior === "overage" && entitlement.feature.featureType === "event" && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
16324
|
+
"/",
|
|
16325
|
+
shortenPeriod(period)
|
|
16326
|
+
] })
|
|
16327
|
+
] }) : entitlement.feature.name
|
|
16328
|
+
}
|
|
16329
|
+
),
|
|
16330
|
+
entitlement.priceBehavior === "overage" && typeof entitlementPrice === "number" && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
16331
|
+
Text,
|
|
16332
|
+
{
|
|
16333
|
+
$font: theme.typography.text.fontFamily,
|
|
16334
|
+
$size: 0.875 * theme.typography.text.fontSize,
|
|
16335
|
+
$weight: theme.typography.text.fontWeight,
|
|
16336
|
+
$color: hexToHSL(theme.typography.text.color).l > 50 ? darken(
|
|
16337
|
+
theme.typography.text.color,
|
|
16338
|
+
0.46
|
|
16339
|
+
) : lighten(
|
|
16340
|
+
theme.typography.text.color,
|
|
16341
|
+
0.46
|
|
16342
|
+
),
|
|
16343
|
+
$leading: 1.35,
|
|
16344
|
+
children: [
|
|
16345
|
+
formatCurrency(
|
|
16346
|
+
entitlementPrice,
|
|
16347
|
+
entitlementCurrency
|
|
16348
|
+
),
|
|
16349
|
+
"/",
|
|
16350
|
+
getFeatureName(entitlement.feature, 1),
|
|
16351
|
+
entitlement.feature.featureType === "trait" && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
16352
|
+
"/",
|
|
16353
|
+
shortenPeriod(period)
|
|
16354
|
+
] }),
|
|
16355
|
+
" ",
|
|
16356
|
+
t2("overage fee")
|
|
16357
|
+
]
|
|
16358
|
+
}
|
|
15965
16359
|
)
|
|
15966
|
-
|
|
15967
|
-
|
|
15968
|
-
|
|
15969
|
-
|
|
15970
|
-
|
|
15971
|
-
|
|
15972
|
-
|
|
15973
|
-
|
|
15974
|
-
|
|
15975
|
-
|
|
15976
|
-
|
|
15977
|
-
|
|
15978
|
-
entitlement.id
|
|
15979
|
-
)
|
|
15980
|
-
);
|
|
15981
|
-
return acc;
|
|
15982
|
-
}, []).slice(0, count?.limit ?? VISIBLE_ENTITLEMENT_COUNT),
|
|
16360
|
+
]
|
|
16361
|
+
}
|
|
16362
|
+
)
|
|
16363
|
+
] })
|
|
16364
|
+
},
|
|
16365
|
+
entitlementIndex
|
|
16366
|
+
)
|
|
16367
|
+
);
|
|
16368
|
+
return acc;
|
|
16369
|
+
},
|
|
16370
|
+
[]
|
|
16371
|
+
).slice(0, count?.limit ?? VISIBLE_ENTITLEMENT_COUNT),
|
|
15983
16372
|
(count?.size || plan.entitlements.length) > VISIBLE_ENTITLEMENT_COUNT && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
15984
16373
|
Flex,
|
|
15985
16374
|
{
|
|
@@ -16006,8 +16395,8 @@ var Plan = ({
|
|
|
16006
16395
|
$font: theme.typography.link.fontFamily,
|
|
16007
16396
|
$size: theme.typography.link.fontSize,
|
|
16008
16397
|
$weight: theme.typography.link.fontWeight,
|
|
16009
|
-
$leading: 1,
|
|
16010
16398
|
$color: theme.typography.link.color,
|
|
16399
|
+
$leading: 1,
|
|
16011
16400
|
style: { cursor: "pointer" },
|
|
16012
16401
|
children: isExpanded ? t2("Hide all") : t2("See all")
|
|
16013
16402
|
}
|
|
@@ -16038,9 +16427,11 @@ var Plan = ({
|
|
|
16038
16427
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
16039
16428
|
Text,
|
|
16040
16429
|
{
|
|
16041
|
-
$
|
|
16042
|
-
$
|
|
16430
|
+
$font: theme.typography.text.fontFamily,
|
|
16431
|
+
$size: 15 / 16 * theme.typography.text.fontSize,
|
|
16432
|
+
$weight: theme.typography.text.fontWeight,
|
|
16043
16433
|
$color: theme.typography.text.color,
|
|
16434
|
+
$leading: 1,
|
|
16044
16435
|
children: plan.current ? t2("Current plan") : t2("Selected")
|
|
16045
16436
|
}
|
|
16046
16437
|
)
|
|
@@ -16085,7 +16476,7 @@ var Plan = ({
|
|
|
16085
16476
|
)
|
|
16086
16477
|
]
|
|
16087
16478
|
},
|
|
16088
|
-
|
|
16479
|
+
planIndex
|
|
16089
16480
|
);
|
|
16090
16481
|
})
|
|
16091
16482
|
}
|
|
@@ -16105,7 +16496,7 @@ var AddOns = ({ addOns, toggle, isLoading, period }) => {
|
|
|
16105
16496
|
$display: "grid",
|
|
16106
16497
|
$gridTemplateColumns: "repeat(auto-fill, minmax(300px, 1fr))",
|
|
16107
16498
|
$gap: "1rem",
|
|
16108
|
-
children: addOns.map((addOn) => {
|
|
16499
|
+
children: addOns.map((addOn, index) => {
|
|
16109
16500
|
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
16110
16501
|
Flex,
|
|
16111
16502
|
{
|
|
@@ -16221,7 +16612,7 @@ var AddOns = ({ addOns, toggle, isLoading, period }) => {
|
|
|
16221
16612
|
) })
|
|
16222
16613
|
]
|
|
16223
16614
|
},
|
|
16224
|
-
|
|
16615
|
+
index
|
|
16225
16616
|
);
|
|
16226
16617
|
})
|
|
16227
16618
|
}
|
|
@@ -16229,7 +16620,6 @@ var AddOns = ({ addOns, toggle, isLoading, period }) => {
|
|
|
16229
16620
|
};
|
|
16230
16621
|
|
|
16231
16622
|
// src/components/shared/checkout-dialog/Usage.tsx
|
|
16232
|
-
var import_pluralize3 = __toESM(require_pluralize());
|
|
16233
16623
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
16234
16624
|
var Usage = ({ entitlements, updateQuantity, period }) => {
|
|
16235
16625
|
const theme = nt();
|
|
@@ -16238,7 +16628,7 @@ var Usage = ({ entitlements, updateQuantity, period }) => {
|
|
|
16238
16628
|
const unitPriceFontSize = 0.875 * theme.typography.text.fontSize;
|
|
16239
16629
|
const unitPriceColor = hexToHSL(theme.typography.text.color).l > 50 ? darken(theme.typography.text.color, 0.46) : lighten(theme.typography.text.color, 0.46);
|
|
16240
16630
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Flex, { $flexDirection: "column", $gap: "1rem", children: entitlements.reduce(
|
|
16241
|
-
(acc, { entitlement, quantity, usage }) => {
|
|
16631
|
+
(acc, { entitlement, quantity, usage }, index) => {
|
|
16242
16632
|
if (entitlement.priceBehavior === "pay_in_advance" && entitlement.feature) {
|
|
16243
16633
|
acc.push(
|
|
16244
16634
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
@@ -16321,9 +16711,7 @@ var Usage = ({ entitlements, updateQuantity, period }) => {
|
|
|
16321
16711
|
] }),
|
|
16322
16712
|
t2("Currently using", {
|
|
16323
16713
|
quantity: usage,
|
|
16324
|
-
unit: (
|
|
16325
|
-
entitlement.feature.name.toLowerCase()
|
|
16326
|
-
)
|
|
16714
|
+
unit: getFeatureName(entitlement.feature)
|
|
16327
16715
|
})
|
|
16328
16716
|
]
|
|
16329
16717
|
}
|
|
@@ -16370,7 +16758,7 @@ var Usage = ({ entitlements, updateQuantity, period }) => {
|
|
|
16370
16758
|
),
|
|
16371
16759
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("sub", { children: [
|
|
16372
16760
|
"/",
|
|
16373
|
-
(
|
|
16761
|
+
getFeatureName(entitlement.feature, 1),
|
|
16374
16762
|
"/",
|
|
16375
16763
|
shortenPeriod(period)
|
|
16376
16764
|
] })
|
|
@@ -16382,7 +16770,7 @@ var Usage = ({ entitlements, updateQuantity, period }) => {
|
|
|
16382
16770
|
)
|
|
16383
16771
|
]
|
|
16384
16772
|
},
|
|
16385
|
-
|
|
16773
|
+
index
|
|
16386
16774
|
)
|
|
16387
16775
|
);
|
|
16388
16776
|
}
|
|
@@ -16396,12 +16784,12 @@ var Usage = ({ entitlements, updateQuantity, period }) => {
|
|
|
16396
16784
|
var import_react23 = require("react");
|
|
16397
16785
|
|
|
16398
16786
|
// node_modules/@stripe/stripe-js/dist/index.mjs
|
|
16399
|
-
var RELEASE_TRAIN = "
|
|
16787
|
+
var RELEASE_TRAIN = "acacia";
|
|
16400
16788
|
var runtimeVersionToUrlVersion = function runtimeVersionToUrlVersion2(version) {
|
|
16401
16789
|
return version === 3 ? "v3" : version;
|
|
16402
16790
|
};
|
|
16403
16791
|
var ORIGIN = "https://js.stripe.com";
|
|
16404
|
-
var STRIPE_JS_URL = "".concat(ORIGIN, "/
|
|
16792
|
+
var STRIPE_JS_URL = "".concat(ORIGIN, "/").concat(RELEASE_TRAIN, "/stripe.js");
|
|
16405
16793
|
var V3_URL_REGEX = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;
|
|
16406
16794
|
var STRIPE_JS_URL_REGEX = /^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/;
|
|
16407
16795
|
var EXISTING_SCRIPT_MESSAGE = "loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";
|
|
@@ -16436,7 +16824,7 @@ var registerWrapper = function registerWrapper2(stripe, startTime) {
|
|
|
16436
16824
|
}
|
|
16437
16825
|
stripe._registerWrapper({
|
|
16438
16826
|
name: "stripe-js",
|
|
16439
|
-
version: "
|
|
16827
|
+
version: "6.1.0",
|
|
16440
16828
|
startTime
|
|
16441
16829
|
});
|
|
16442
16830
|
};
|
|
@@ -16511,7 +16899,7 @@ var initStripe = function initStripe2(maybeStripe, args, startTime) {
|
|
|
16511
16899
|
var version = runtimeVersionToUrlVersion(maybeStripe.version);
|
|
16512
16900
|
var expectedVersion = RELEASE_TRAIN;
|
|
16513
16901
|
if (isTestKey && version !== expectedVersion) {
|
|
16514
|
-
console.warn("Stripe.js@".concat(version, " was loaded on the page, but @stripe/stripe-js@").concat("
|
|
16902
|
+
console.warn("Stripe.js@".concat(version, " was loaded on the page, but @stripe/stripe-js@").concat("6.1.0", " expected Stripe.js@").concat(expectedVersion, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));
|
|
16515
16903
|
}
|
|
16516
16904
|
var stripe = maybeStripe.apply(void 0, args);
|
|
16517
16905
|
registerWrapper(stripe, startTime);
|
|
@@ -16621,7 +17009,16 @@ var Checkout = ({
|
|
|
16621
17009
|
clientSecret: setupIntent.setupIntentClientSecret
|
|
16622
17010
|
},
|
|
16623
17011
|
children: [
|
|
16624
|
-
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box, { $width: "100%", $marginBottom: "1.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
17012
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box, { $width: "100%", $marginBottom: "1.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
17013
|
+
Text,
|
|
17014
|
+
{
|
|
17015
|
+
$font: theme.typography.text.fontFamily,
|
|
17016
|
+
$size: 18,
|
|
17017
|
+
$weight: theme.typography.text.fontWeight,
|
|
17018
|
+
$color: theme.typography.text.color,
|
|
17019
|
+
children: t2("Add payment method")
|
|
17020
|
+
}
|
|
17021
|
+
) }),
|
|
16625
17022
|
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
16626
17023
|
PaymentForm,
|
|
16627
17024
|
{
|
|
@@ -16706,8 +17103,8 @@ var Checkout = ({
|
|
|
16706
17103
|
$font: theme.typography.link.fontFamily,
|
|
16707
17104
|
$size: theme.typography.link.fontSize,
|
|
16708
17105
|
$weight: theme.typography.link.fontWeight,
|
|
16709
|
-
$leading: 1,
|
|
16710
17106
|
$color: theme.typography.link.color,
|
|
17107
|
+
$leading: 1,
|
|
16711
17108
|
children: t2("Apply discount")
|
|
16712
17109
|
}
|
|
16713
17110
|
) })
|
|
@@ -17216,6 +17613,7 @@ var import_react_stripe_js2 = require("@stripe/react-stripe-js");
|
|
|
17216
17613
|
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
17217
17614
|
var PaymentForm = ({ onConfirm }) => {
|
|
17218
17615
|
const { t: t2 } = useTranslation();
|
|
17616
|
+
const theme = nt();
|
|
17219
17617
|
const stripe = (0, import_react_stripe_js2.useStripe)();
|
|
17220
17618
|
const elements = (0, import_react_stripe_js2.useElements)();
|
|
17221
17619
|
const { api } = useEmbed();
|
|
@@ -17277,7 +17675,17 @@ var PaymentForm = ({ onConfirm }) => {
|
|
|
17277
17675
|
children: isLoading ? t2("Loading") : t2("Save payment method")
|
|
17278
17676
|
}
|
|
17279
17677
|
),
|
|
17280
|
-
message && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box, { $margin: "1rem 0", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
17678
|
+
message && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box, { $margin: "1rem 0", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
17679
|
+
Text,
|
|
17680
|
+
{
|
|
17681
|
+
id: "payment-message",
|
|
17682
|
+
$font: theme.typography.text.fontFamily,
|
|
17683
|
+
$size: 15,
|
|
17684
|
+
$weight: 500,
|
|
17685
|
+
$color: "#DB6669",
|
|
17686
|
+
children: message
|
|
17687
|
+
}
|
|
17688
|
+
) })
|
|
17281
17689
|
]
|
|
17282
17690
|
}
|
|
17283
17691
|
);
|
|
@@ -17593,103 +18001,112 @@ var UnsubscribeDialog = ({ top = 0 }) => {
|
|
|
17593
18001
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
17594
18002
|
var Badge = () => {
|
|
17595
18003
|
const { t: t2 } = useTranslation();
|
|
18004
|
+
const theme = nt();
|
|
17596
18005
|
const { settings } = useEmbed();
|
|
17597
18006
|
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
17598
18007
|
Flex,
|
|
17599
18008
|
{
|
|
18009
|
+
as: "a",
|
|
18010
|
+
href: "https://schematichq.com?utm_source=schematic_component_badge",
|
|
18011
|
+
target: "_blank",
|
|
18012
|
+
rel: "noreferrer",
|
|
17600
18013
|
$justifyContent: settings.badge?.alignment || "start",
|
|
17601
18014
|
$alignItems: "center",
|
|
18015
|
+
$gap: "0.5rem",
|
|
17602
18016
|
$gridColumn: "1 / -1",
|
|
17603
18017
|
children: [
|
|
17604
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box, { $fontSize: "0.75rem", $marginRight: "0.5rem", children: t2("Powered by") }),
|
|
17605
18018
|
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
17606
|
-
|
|
18019
|
+
Text,
|
|
17607
18020
|
{
|
|
17608
|
-
|
|
17609
|
-
|
|
17610
|
-
|
|
17611
|
-
|
|
18021
|
+
$font: theme.typography.text.fontFamily,
|
|
18022
|
+
$size: 0.75 * theme.typography.text.fontSize,
|
|
18023
|
+
$weight: theme.typography.text.fontWeight,
|
|
18024
|
+
$color: theme.typography.text.color,
|
|
17612
18025
|
children: [
|
|
17613
|
-
|
|
17614
|
-
|
|
17615
|
-
{
|
|
17616
|
-
d: "M21.2354 6.16227C21.1796 5.95015 21.0494 5.76779 20.8261 5.61893C20.6028 5.46635 20.3423 5.39564 20.0408 5.39564C19.3151 5.39564 18.7941 5.69708 18.7941 6.2367C18.7941 6.49721 18.9095 6.69073 19.1402 6.81726C19.3635 6.94379 19.732 7.07033 20.2344 7.18569C21.0084 7.37177 21.4922 7.51691 21.9686 7.7402C22.203 7.85557 22.3928 7.97465 22.5305 8.10863C22.7948 8.3803 22.9548 8.74501 22.9362 9.20276C22.9176 9.86147 22.6571 10.375 22.1547 10.7397C21.6523 11.1082 20.9563 11.2905 20.0818 11.2905C19.2072 11.2905 18.5597 11.1268 18.0312 10.8067C17.5065 10.4867 17.2013 10.0215 17.1194 9.41116L18.6192 9.27719C18.6974 9.57491 18.8723 9.7982 19.1514 9.94706C19.4305 10.0959 19.7394 10.1778 20.0818 10.1778C20.4614 10.1778 20.7777 10.0996 21.0308 9.9359C21.2838 9.77959 21.4104 9.56002 21.4104 9.28835C21.4104 8.90876 21.0531 8.61104 20.5991 8.43613C20.3683 8.35053 20.0855 8.27238 19.7468 8.19423C19.2705 8.07886 18.8946 7.97094 18.6155 7.87418C18.3364 7.78486 18.0908 7.66205 17.8712 7.51319C17.4358 7.21547 17.2832 6.8247 17.2832 6.2367C17.2832 5.61521 17.5325 5.13141 18.0312 4.79648C18.5262 4.46526 19.2035 4.29407 20.0669 4.29407C21.5853 4.29407 22.5752 4.9044 22.7389 6.05807L21.228 6.16227H21.2354Z",
|
|
17617
|
-
fill: "currentColor"
|
|
17618
|
-
}
|
|
17619
|
-
),
|
|
17620
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
17621
|
-
"path",
|
|
17622
|
-
{
|
|
17623
|
-
d: "M29.4145 8.9796L30.7803 9.55271C30.49 10.0923 30.0621 10.5129 29.5001 10.8217C28.9382 11.1344 28.3167 11.2944 27.6319 11.2944C26.9472 11.2944 26.3629 11.1567 25.8121 10.8701C25.2613 10.5873 24.8147 10.1742 24.4835 9.6383C24.1523 9.09868 23.9811 8.48835 23.9811 7.79987C23.9811 7.11138 24.1486 6.49361 24.4835 5.95771C24.8147 5.41809 25.2613 5.00873 25.8121 4.72589C26.3629 4.44305 26.9732 4.30164 27.6319 4.30164C28.2906 4.30164 28.9382 4.45794 29.5038 4.77427C30.0658 5.08688 30.4938 5.51113 30.7803 6.05075L29.4145 6.62015C29.0535 5.93539 28.3985 5.56323 27.6319 5.56323C27.0327 5.56323 26.5303 5.77536 26.1135 6.19961C25.6967 6.62387 25.492 7.15977 25.492 7.80731C25.492 8.45486 25.6967 8.99076 26.1135 9.40757C26.5303 9.83182 27.0327 10.0439 27.6319 10.0439C28.3985 10.0439 29.0535 9.66807 29.4145 8.98703V8.9796Z",
|
|
17624
|
-
fill: "currentColor"
|
|
17625
|
-
}
|
|
17626
|
-
),
|
|
17627
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
17628
|
-
"path",
|
|
17629
|
-
{
|
|
17630
|
-
d: "M37.4386 11.2049V7.80341C37.4386 6.35945 36.9139 5.59282 35.697 5.59282C35.0978 5.59282 34.614 5.7975 34.2419 6.21059C33.8623 6.61996 33.6725 7.15214 33.6725 7.80713V11.2086H32.1615V1.9234H33.6725V5.47745C34.1004 4.73315 35.001 4.29773 36.1919 4.29773C37.167 4.29773 37.8666 4.59917 38.302 5.19834C38.7375 5.7975 38.9533 6.66834 38.9533 7.80341V11.2049H37.4349H37.4386Z",
|
|
17631
|
-
fill: "currentColor"
|
|
17632
|
-
}
|
|
17633
|
-
),
|
|
17634
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
17635
|
-
"path",
|
|
17636
|
-
{
|
|
17637
|
-
d: "M46.5692 5.38819C47.2167 6.07295 47.5777 7.1187 47.5107 8.30587H41.8242C41.9284 8.83805 42.1741 9.26602 42.5611 9.59352C42.9481 9.92473 43.4022 10.0885 43.9157 10.0885C44.8052 10.0885 45.5234 9.59724 45.8844 8.78222L47.1795 9.40372C46.8818 9.99172 46.4352 10.4495 45.8509 10.7881C45.2629 11.1268 44.6191 11.2943 43.9157 11.2943C42.9295 11.2943 42.0178 10.9444 41.3516 10.3453C40.6855 9.7461 40.2649 8.83432 40.2649 7.79602C40.2649 6.75771 40.6892 5.84222 41.3516 5.23933C42.0178 4.64017 42.9295 4.29034 43.9157 4.29034C44.9801 4.29034 45.9216 4.69971 46.5692 5.38447V5.38819ZM42.5388 6.00224C42.1592 6.32974 41.921 6.75772 41.8205 7.29734H46.0221C45.9179 6.75772 45.6835 6.3223 45.3039 5.99852C44.9243 5.67847 44.4628 5.51473 43.9195 5.51473C43.3761 5.51473 42.9221 5.67847 42.5425 6.00597L42.5388 6.00224Z",
|
|
17638
|
-
fill: "currentColor"
|
|
17639
|
-
}
|
|
17640
|
-
),
|
|
17641
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
17642
|
-
"path",
|
|
17643
|
-
{
|
|
17644
|
-
d: "M59.7699 5.23933C60.1495 5.86827 60.3132 6.68329 60.3132 7.80347V11.2049H58.8023V7.80347C58.8023 6.35952 58.3371 5.59288 57.2318 5.59288C56.6438 5.59288 56.1861 5.79384 55.8586 6.19577C55.5311 6.60141 55.3673 7.13731 55.3673 7.80347V11.2049H53.8489V7.80347C53.8489 6.35952 53.3838 5.59288 52.2785 5.59288C51.6905 5.59288 51.2327 5.79384 50.9052 6.19577C50.574 6.60141 50.4102 7.13731 50.4102 7.80347V11.2049H48.8993V4.39827H50.3433L50.4102 5.47379C50.8196 4.65878 51.5825 4.29407 52.8106 4.29407C53.9606 4.29407 54.7161 4.78531 55.077 5.76407C55.5199 4.81508 56.4428 4.29407 57.7677 4.29407C58.7093 4.29407 59.3829 4.61412 59.7699 5.23562V5.23933Z",
|
|
17645
|
-
fill: "currentColor"
|
|
17646
|
-
}
|
|
17647
|
-
),
|
|
17648
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
17649
|
-
"path",
|
|
17650
|
-
{
|
|
17651
|
-
d: "M67.4264 5.47382L67.4934 4.3983H68.9373V11.205H67.4934L67.4264 10.1294C67.0282 10.9147 66.1797 11.3092 64.8809 11.3017C63.102 11.3427 61.591 9.79823 61.6283 7.8035C61.591 5.8162 63.102 4.2606 64.8809 4.29782C66.0643 4.29782 67.0096 4.7444 67.4264 5.47754V5.47382ZM66.8049 9.37398C67.2217 8.95717 67.4264 8.43243 67.4264 7.79605C67.4264 7.15967 67.2217 6.64238 66.8049 6.21813C66.3881 5.80132 65.8782 5.58919 65.2828 5.58919C64.6874 5.58919 64.1887 5.80132 63.7719 6.21813C63.355 6.64238 63.1504 7.16711 63.1504 7.79605C63.1504 8.42499 63.355 8.95717 63.7719 9.37398C64.1887 9.79823 64.6911 10.0104 65.2828 10.0104C65.8745 10.0104 66.3881 9.79823 66.8049 9.37398Z",
|
|
17652
|
-
fill: "currentColor"
|
|
17653
|
-
}
|
|
17654
|
-
),
|
|
17655
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
17656
|
-
"path",
|
|
17657
|
-
{
|
|
17658
|
-
d: "M71.3891 2.85757H72.8926V4.39828H74.6455V5.58172H72.8926V8.9683C72.8926 9.5898 73.1048 9.90985 73.5923 9.96568C73.89 10.0252 74.2398 10.0141 74.6455 9.9359V11.1863C74.1989 11.257 73.7858 11.2943 73.4062 11.2943C72.6731 11.2943 72.1595 11.1082 71.8543 10.7323C71.5454 10.3639 71.3891 9.79076 71.3891 9.02041V5.58172H70.4215V4.39828H71.3891V2.85757Z",
|
|
17659
|
-
fill: "currentColor"
|
|
17660
|
-
}
|
|
17661
|
-
),
|
|
17662
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
17663
|
-
"path",
|
|
17664
|
-
{
|
|
17665
|
-
d: "M76.1747 3.15526C75.9923 2.98035 75.903 2.76078 75.903 2.50772C75.903 2.25466 75.9923 2.04997 76.1747 1.86762C76.3496 1.69271 76.5691 1.60339 76.8222 1.60339C77.0753 1.60339 77.2874 1.69271 77.4623 1.86762C77.6372 2.04997 77.7265 2.2621 77.7265 2.50772C77.7265 2.75334 77.6372 2.97291 77.4623 3.15526C77.2874 3.33762 77.0678 3.42694 76.8222 3.42694C76.5766 3.42694 76.3496 3.33762 76.1747 3.15526ZM76.0593 4.39826H77.5777V11.2049H76.0593V4.39826Z",
|
|
17666
|
-
fill: "currentColor"
|
|
17667
|
-
}
|
|
17668
|
-
),
|
|
17669
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
17670
|
-
"path",
|
|
17671
|
-
{
|
|
17672
|
-
d: "M84.3023 8.9796L85.6681 9.55271C85.3778 10.0923 84.9498 10.5129 84.3879 10.8217C83.8259 11.1344 83.2044 11.2944 82.5197 11.2944C81.8349 11.2944 81.2506 11.1567 80.6998 10.8701C80.1491 10.5873 79.7025 10.1742 79.3713 9.6383C79.04 9.09868 78.8689 8.48835 78.8689 7.79987C78.8689 7.11138 79.0363 6.49361 79.3713 5.95771C79.7025 5.41809 80.1528 5.00873 80.6998 4.72589C81.2469 4.44305 81.8609 4.30164 82.5197 4.30164C83.1784 4.30164 83.8259 4.45794 84.3916 4.77427C84.9535 5.08688 85.3815 5.51113 85.6681 6.05075L84.3023 6.62015C83.9413 5.93539 83.2863 5.56323 82.5197 5.56323C81.9205 5.56323 81.4181 5.77536 81.0013 6.19961C80.5845 6.62387 80.3798 7.15977 80.3798 7.80731C80.3798 8.45486 80.5845 8.99076 81.0013 9.40757C81.4181 9.83182 81.9205 10.0439 82.5197 10.0439C83.2863 10.0439 83.9413 9.66807 84.3023 8.98703V8.9796Z",
|
|
17673
|
-
fill: "currentColor"
|
|
17674
|
-
}
|
|
17675
|
-
),
|
|
17676
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
17677
|
-
"path",
|
|
17678
|
-
{
|
|
17679
|
-
d: "M5.93091 10.8141L7.2758 9.41753L3.83719 5.84667C2.98568 4.9624 2.98568 3.52157 3.83719 2.63731C4.68871 1.75305 6.07617 1.75305 6.92769 2.63731L10.3663 6.20817L11.7112 4.81156L8.27258 1.24069C6.67975 -0.413401 4.08513 -0.413401 2.4923 1.24069C0.899472 2.89479 0.899472 5.58919 2.4923 7.24328L5.93091 10.8141Z",
|
|
17680
|
-
fill: "currentColor"
|
|
17681
|
-
}
|
|
17682
|
-
),
|
|
17683
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
17684
|
-
"path",
|
|
17685
|
-
{
|
|
17686
|
-
d: "M6.05827 3.54751C5.68761 3.1626 5.08404 3.1626 4.71338 3.54751C4.34272 3.93243 4.34272 4.55921 4.71338 4.94413L9.02103 9.41746L5.93054 12.6268L1.62288 8.15349C1.25223 7.76857 0.648653 7.76857 0.277994 8.15349C-0.0926647 8.5384 -0.0926647 9.16519 0.277994 9.5501L5.93054 15.4201L11.7108 9.41746L6.05827 3.54751Z",
|
|
17687
|
-
fill: "currentColor"
|
|
17688
|
-
}
|
|
17689
|
-
)
|
|
18026
|
+
t2("Powered by"),
|
|
18027
|
+
" "
|
|
17690
18028
|
]
|
|
17691
18029
|
}
|
|
17692
|
-
)
|
|
18030
|
+
),
|
|
18031
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("svg", { viewBox: "0 0 86 16", width: 86, height: 16, children: [
|
|
18032
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
18033
|
+
"path",
|
|
18034
|
+
{
|
|
18035
|
+
d: "M21.2354 6.16227C21.1796 5.95015 21.0494 5.76779 20.8261 5.61893C20.6028 5.46635 20.3423 5.39564 20.0408 5.39564C19.3151 5.39564 18.7941 5.69708 18.7941 6.2367C18.7941 6.49721 18.9095 6.69073 19.1402 6.81726C19.3635 6.94379 19.732 7.07033 20.2344 7.18569C21.0084 7.37177 21.4922 7.51691 21.9686 7.7402C22.203 7.85557 22.3928 7.97465 22.5305 8.10863C22.7948 8.3803 22.9548 8.74501 22.9362 9.20276C22.9176 9.86147 22.6571 10.375 22.1547 10.7397C21.6523 11.1082 20.9563 11.2905 20.0818 11.2905C19.2072 11.2905 18.5597 11.1268 18.0312 10.8067C17.5065 10.4867 17.2013 10.0215 17.1194 9.41116L18.6192 9.27719C18.6974 9.57491 18.8723 9.7982 19.1514 9.94706C19.4305 10.0959 19.7394 10.1778 20.0818 10.1778C20.4614 10.1778 20.7777 10.0996 21.0308 9.9359C21.2838 9.77959 21.4104 9.56002 21.4104 9.28835C21.4104 8.90876 21.0531 8.61104 20.5991 8.43613C20.3683 8.35053 20.0855 8.27238 19.7468 8.19423C19.2705 8.07886 18.8946 7.97094 18.6155 7.87418C18.3364 7.78486 18.0908 7.66205 17.8712 7.51319C17.4358 7.21547 17.2832 6.8247 17.2832 6.2367C17.2832 5.61521 17.5325 5.13141 18.0312 4.79648C18.5262 4.46526 19.2035 4.29407 20.0669 4.29407C21.5853 4.29407 22.5752 4.9044 22.7389 6.05807L21.228 6.16227H21.2354Z",
|
|
18036
|
+
fill: "currentColor"
|
|
18037
|
+
}
|
|
18038
|
+
),
|
|
18039
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
18040
|
+
"path",
|
|
18041
|
+
{
|
|
18042
|
+
d: "M29.4145 8.9796L30.7803 9.55271C30.49 10.0923 30.0621 10.5129 29.5001 10.8217C28.9382 11.1344 28.3167 11.2944 27.6319 11.2944C26.9472 11.2944 26.3629 11.1567 25.8121 10.8701C25.2613 10.5873 24.8147 10.1742 24.4835 9.6383C24.1523 9.09868 23.9811 8.48835 23.9811 7.79987C23.9811 7.11138 24.1486 6.49361 24.4835 5.95771C24.8147 5.41809 25.2613 5.00873 25.8121 4.72589C26.3629 4.44305 26.9732 4.30164 27.6319 4.30164C28.2906 4.30164 28.9382 4.45794 29.5038 4.77427C30.0658 5.08688 30.4938 5.51113 30.7803 6.05075L29.4145 6.62015C29.0535 5.93539 28.3985 5.56323 27.6319 5.56323C27.0327 5.56323 26.5303 5.77536 26.1135 6.19961C25.6967 6.62387 25.492 7.15977 25.492 7.80731C25.492 8.45486 25.6967 8.99076 26.1135 9.40757C26.5303 9.83182 27.0327 10.0439 27.6319 10.0439C28.3985 10.0439 29.0535 9.66807 29.4145 8.98703V8.9796Z",
|
|
18043
|
+
fill: "currentColor"
|
|
18044
|
+
}
|
|
18045
|
+
),
|
|
18046
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
18047
|
+
"path",
|
|
18048
|
+
{
|
|
18049
|
+
d: "M37.4386 11.2049V7.80341C37.4386 6.35945 36.9139 5.59282 35.697 5.59282C35.0978 5.59282 34.614 5.7975 34.2419 6.21059C33.8623 6.61996 33.6725 7.15214 33.6725 7.80713V11.2086H32.1615V1.9234H33.6725V5.47745C34.1004 4.73315 35.001 4.29773 36.1919 4.29773C37.167 4.29773 37.8666 4.59917 38.302 5.19834C38.7375 5.7975 38.9533 6.66834 38.9533 7.80341V11.2049H37.4349H37.4386Z",
|
|
18050
|
+
fill: "currentColor"
|
|
18051
|
+
}
|
|
18052
|
+
),
|
|
18053
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
18054
|
+
"path",
|
|
18055
|
+
{
|
|
18056
|
+
d: "M46.5692 5.38819C47.2167 6.07295 47.5777 7.1187 47.5107 8.30587H41.8242C41.9284 8.83805 42.1741 9.26602 42.5611 9.59352C42.9481 9.92473 43.4022 10.0885 43.9157 10.0885C44.8052 10.0885 45.5234 9.59724 45.8844 8.78222L47.1795 9.40372C46.8818 9.99172 46.4352 10.4495 45.8509 10.7881C45.2629 11.1268 44.6191 11.2943 43.9157 11.2943C42.9295 11.2943 42.0178 10.9444 41.3516 10.3453C40.6855 9.7461 40.2649 8.83432 40.2649 7.79602C40.2649 6.75771 40.6892 5.84222 41.3516 5.23933C42.0178 4.64017 42.9295 4.29034 43.9157 4.29034C44.9801 4.29034 45.9216 4.69971 46.5692 5.38447V5.38819ZM42.5388 6.00224C42.1592 6.32974 41.921 6.75772 41.8205 7.29734H46.0221C45.9179 6.75772 45.6835 6.3223 45.3039 5.99852C44.9243 5.67847 44.4628 5.51473 43.9195 5.51473C43.3761 5.51473 42.9221 5.67847 42.5425 6.00597L42.5388 6.00224Z",
|
|
18057
|
+
fill: "currentColor"
|
|
18058
|
+
}
|
|
18059
|
+
),
|
|
18060
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
18061
|
+
"path",
|
|
18062
|
+
{
|
|
18063
|
+
d: "M59.7699 5.23933C60.1495 5.86827 60.3132 6.68329 60.3132 7.80347V11.2049H58.8023V7.80347C58.8023 6.35952 58.3371 5.59288 57.2318 5.59288C56.6438 5.59288 56.1861 5.79384 55.8586 6.19577C55.5311 6.60141 55.3673 7.13731 55.3673 7.80347V11.2049H53.8489V7.80347C53.8489 6.35952 53.3838 5.59288 52.2785 5.59288C51.6905 5.59288 51.2327 5.79384 50.9052 6.19577C50.574 6.60141 50.4102 7.13731 50.4102 7.80347V11.2049H48.8993V4.39827H50.3433L50.4102 5.47379C50.8196 4.65878 51.5825 4.29407 52.8106 4.29407C53.9606 4.29407 54.7161 4.78531 55.077 5.76407C55.5199 4.81508 56.4428 4.29407 57.7677 4.29407C58.7093 4.29407 59.3829 4.61412 59.7699 5.23562V5.23933Z",
|
|
18064
|
+
fill: "currentColor"
|
|
18065
|
+
}
|
|
18066
|
+
),
|
|
18067
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
18068
|
+
"path",
|
|
18069
|
+
{
|
|
18070
|
+
d: "M67.4264 5.47382L67.4934 4.3983H68.9373V11.205H67.4934L67.4264 10.1294C67.0282 10.9147 66.1797 11.3092 64.8809 11.3017C63.102 11.3427 61.591 9.79823 61.6283 7.8035C61.591 5.8162 63.102 4.2606 64.8809 4.29782C66.0643 4.29782 67.0096 4.7444 67.4264 5.47754V5.47382ZM66.8049 9.37398C67.2217 8.95717 67.4264 8.43243 67.4264 7.79605C67.4264 7.15967 67.2217 6.64238 66.8049 6.21813C66.3881 5.80132 65.8782 5.58919 65.2828 5.58919C64.6874 5.58919 64.1887 5.80132 63.7719 6.21813C63.355 6.64238 63.1504 7.16711 63.1504 7.79605C63.1504 8.42499 63.355 8.95717 63.7719 9.37398C64.1887 9.79823 64.6911 10.0104 65.2828 10.0104C65.8745 10.0104 66.3881 9.79823 66.8049 9.37398Z",
|
|
18071
|
+
fill: "currentColor"
|
|
18072
|
+
}
|
|
18073
|
+
),
|
|
18074
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
18075
|
+
"path",
|
|
18076
|
+
{
|
|
18077
|
+
d: "M71.3891 2.85757H72.8926V4.39828H74.6455V5.58172H72.8926V8.9683C72.8926 9.5898 73.1048 9.90985 73.5923 9.96568C73.89 10.0252 74.2398 10.0141 74.6455 9.9359V11.1863C74.1989 11.257 73.7858 11.2943 73.4062 11.2943C72.6731 11.2943 72.1595 11.1082 71.8543 10.7323C71.5454 10.3639 71.3891 9.79076 71.3891 9.02041V5.58172H70.4215V4.39828H71.3891V2.85757Z",
|
|
18078
|
+
fill: "currentColor"
|
|
18079
|
+
}
|
|
18080
|
+
),
|
|
18081
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
18082
|
+
"path",
|
|
18083
|
+
{
|
|
18084
|
+
d: "M76.1747 3.15526C75.9923 2.98035 75.903 2.76078 75.903 2.50772C75.903 2.25466 75.9923 2.04997 76.1747 1.86762C76.3496 1.69271 76.5691 1.60339 76.8222 1.60339C77.0753 1.60339 77.2874 1.69271 77.4623 1.86762C77.6372 2.04997 77.7265 2.2621 77.7265 2.50772C77.7265 2.75334 77.6372 2.97291 77.4623 3.15526C77.2874 3.33762 77.0678 3.42694 76.8222 3.42694C76.5766 3.42694 76.3496 3.33762 76.1747 3.15526ZM76.0593 4.39826H77.5777V11.2049H76.0593V4.39826Z",
|
|
18085
|
+
fill: "currentColor"
|
|
18086
|
+
}
|
|
18087
|
+
),
|
|
18088
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
18089
|
+
"path",
|
|
18090
|
+
{
|
|
18091
|
+
d: "M84.3023 8.9796L85.6681 9.55271C85.3778 10.0923 84.9498 10.5129 84.3879 10.8217C83.8259 11.1344 83.2044 11.2944 82.5197 11.2944C81.8349 11.2944 81.2506 11.1567 80.6998 10.8701C80.1491 10.5873 79.7025 10.1742 79.3713 9.6383C79.04 9.09868 78.8689 8.48835 78.8689 7.79987C78.8689 7.11138 79.0363 6.49361 79.3713 5.95771C79.7025 5.41809 80.1528 5.00873 80.6998 4.72589C81.2469 4.44305 81.8609 4.30164 82.5197 4.30164C83.1784 4.30164 83.8259 4.45794 84.3916 4.77427C84.9535 5.08688 85.3815 5.51113 85.6681 6.05075L84.3023 6.62015C83.9413 5.93539 83.2863 5.56323 82.5197 5.56323C81.9205 5.56323 81.4181 5.77536 81.0013 6.19961C80.5845 6.62387 80.3798 7.15977 80.3798 7.80731C80.3798 8.45486 80.5845 8.99076 81.0013 9.40757C81.4181 9.83182 81.9205 10.0439 82.5197 10.0439C83.2863 10.0439 83.9413 9.66807 84.3023 8.98703V8.9796Z",
|
|
18092
|
+
fill: "currentColor"
|
|
18093
|
+
}
|
|
18094
|
+
),
|
|
18095
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
18096
|
+
"path",
|
|
18097
|
+
{
|
|
18098
|
+
d: "M5.93091 10.8141L7.2758 9.41753L3.83719 5.84667C2.98568 4.9624 2.98568 3.52157 3.83719 2.63731C4.68871 1.75305 6.07617 1.75305 6.92769 2.63731L10.3663 6.20817L11.7112 4.81156L8.27258 1.24069C6.67975 -0.413401 4.08513 -0.413401 2.4923 1.24069C0.899472 2.89479 0.899472 5.58919 2.4923 7.24328L5.93091 10.8141Z",
|
|
18099
|
+
fill: "currentColor"
|
|
18100
|
+
}
|
|
18101
|
+
),
|
|
18102
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
18103
|
+
"path",
|
|
18104
|
+
{
|
|
18105
|
+
d: "M6.05827 3.54751C5.68761 3.1626 5.08404 3.1626 4.71338 3.54751C4.34272 3.93243 4.34272 4.55921 4.71338 4.94413L9.02103 9.41746L5.93054 12.6268L1.62288 8.15349C1.25223 7.76857 0.648653 7.76857 0.277994 8.15349C-0.0926647 8.5384 -0.0926647 9.16519 0.277994 9.5501L5.93054 15.4201L11.7108 9.41746L6.05827 3.54751Z",
|
|
18106
|
+
fill: "currentColor"
|
|
18107
|
+
}
|
|
18108
|
+
)
|
|
18109
|
+
] })
|
|
17693
18110
|
]
|
|
17694
18111
|
}
|
|
17695
18112
|
);
|
|
@@ -17746,9 +18163,9 @@ var RenderLayout = ({ children }) => {
|
|
|
17746
18163
|
|
|
17747
18164
|
// src/components/layout/viewport/styles.ts
|
|
17748
18165
|
var StyledViewport = dt(Box).attrs(({ theme }) => ({
|
|
17749
|
-
$gridTemplateColumns:
|
|
18166
|
+
$gridTemplateColumns: "repeat(1, minmax(300px, 1fr))",
|
|
17750
18167
|
$viewport: {
|
|
17751
|
-
|
|
18168
|
+
md: {
|
|
17752
18169
|
$gridTemplateColumns: `repeat(${theme.numberOfColumns}, minmax(300px, 1fr))`
|
|
17753
18170
|
}
|
|
17754
18171
|
}
|
|
@@ -17766,7 +18183,7 @@ var StyledViewport = dt(Box).attrs(({ theme }) => ({
|
|
|
17766
18183
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
17767
18184
|
var Viewport = (0, import_react28.forwardRef)(
|
|
17768
18185
|
({ children, portal, ...props }, ref) => {
|
|
17769
|
-
const { data, layout } = useEmbed();
|
|
18186
|
+
const { data, layout, settings } = useEmbed();
|
|
17770
18187
|
const [top, setTop] = (0, import_react28.useState)(0);
|
|
17771
18188
|
const canCheckout = data.capabilities?.checkout ?? true;
|
|
17772
18189
|
(0, import_react28.useLayoutEffect)(() => {
|
|
@@ -17784,7 +18201,7 @@ var Viewport = (0, import_react28.forwardRef)(
|
|
|
17784
18201
|
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
17785
18202
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(StyledViewport, { ref, ...props, children: [
|
|
17786
18203
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(RenderLayout, { children }),
|
|
17787
|
-
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Badge, {})
|
|
18204
|
+
(!data.capabilities?.badgeVisibility || settings.badge?.visibility !== "hidden") && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Badge, {})
|
|
17788
18205
|
] }),
|
|
17789
18206
|
canCheckout && layout === "checkout" && (0, import_react_dom2.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CheckoutDialog, { top }), portal || document.body),
|
|
17790
18207
|
layout === "unsubscribe" && (0, import_react_dom2.createPortal)(
|
|
@@ -17812,14 +18229,7 @@ var StyledCard = dt.div(({ theme }) => {
|
|
|
17812
18229
|
const borderRadius = `${theme.card.borderRadius / TEXT_BASE_SIZE}rem`;
|
|
17813
18230
|
return lt`
|
|
17814
18231
|
position: relative;
|
|
17815
|
-
|
|
17816
|
-
font-size: ${TEXT_BASE_SIZE}px;
|
|
17817
|
-
|
|
17818
|
-
*,
|
|
17819
|
-
*::before,
|
|
17820
|
-
*::after {
|
|
17821
|
-
box-sizing: inherit;
|
|
17822
|
-
}
|
|
18232
|
+
overflow: hidden;
|
|
17823
18233
|
|
|
17824
18234
|
${theme.sectionLayout === "merged" ? `&:not(:has(${FussyChild}))` : `${Element}:not(:is(${FussyChild}))`} {
|
|
17825
18235
|
color: ${theme.typography.text.color};
|
|
@@ -17889,7 +18299,6 @@ Column.displayName = "Column";
|
|
|
17889
18299
|
|
|
17890
18300
|
// src/components/elements/included-features/Details.tsx
|
|
17891
18301
|
var import_react31 = require("react");
|
|
17892
|
-
var import_pluralize4 = __toESM(require_pluralize());
|
|
17893
18302
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
17894
18303
|
var Details = ({
|
|
17895
18304
|
details,
|
|
@@ -17900,11 +18309,12 @@ var Details = ({
|
|
|
17900
18309
|
const {
|
|
17901
18310
|
allocation,
|
|
17902
18311
|
feature,
|
|
18312
|
+
priceBehavior,
|
|
17903
18313
|
usage,
|
|
18314
|
+
softLimit,
|
|
17904
18315
|
monthlyUsageBasedPrice,
|
|
17905
18316
|
yearlyUsageBasedPrice
|
|
17906
18317
|
} = featureUsage || {};
|
|
17907
|
-
const { priceBehavior } = usageData || {};
|
|
17908
18318
|
const { t: t2 } = useTranslation();
|
|
17909
18319
|
const theme = nt();
|
|
17910
18320
|
const { data } = useEmbed();
|
|
@@ -17933,38 +18343,45 @@ var Details = ({
|
|
|
17933
18343
|
yearlyUsageBasedPrice
|
|
17934
18344
|
]);
|
|
17935
18345
|
const text = (0, import_react31.useMemo)(() => {
|
|
17936
|
-
if (!feature
|
|
18346
|
+
if (!feature) {
|
|
17937
18347
|
return;
|
|
17938
18348
|
}
|
|
17939
18349
|
if (priceBehavior === "pay_in_advance" && typeof allocation === "number") {
|
|
17940
|
-
return `${formatNumber(allocation)} ${(
|
|
18350
|
+
return `${formatNumber(allocation)} ${getFeatureName(feature, allocation)}`;
|
|
17941
18351
|
}
|
|
17942
18352
|
if (priceBehavior === "pay_as_you_go" && typeof price === "number") {
|
|
17943
|
-
return `${formatCurrency(price, currency)} ${t2("per")} ${(
|
|
18353
|
+
return `${formatCurrency(price, currency)} ${t2("per")} ${getFeatureName(feature, 1)}`;
|
|
18354
|
+
}
|
|
18355
|
+
if (priceBehavior === "overage" && typeof softLimit === "number") {
|
|
18356
|
+
return `${formatNumber(softLimit)} ${getFeatureName(feature, softLimit)}`;
|
|
17944
18357
|
}
|
|
17945
18358
|
if (!priceBehavior && typeof allocation === "number") {
|
|
17946
|
-
return `${formatNumber(allocation)} ${(
|
|
18359
|
+
return `${formatNumber(allocation)} ${getFeatureName(feature, allocation)}`;
|
|
17947
18360
|
}
|
|
17948
18361
|
if (!priceBehavior) {
|
|
17949
|
-
return t2("Unlimited", { item: (
|
|
18362
|
+
return t2("Unlimited", { item: getFeatureName(feature) });
|
|
17950
18363
|
}
|
|
17951
|
-
}, [t2, allocation, feature
|
|
18364
|
+
}, [t2, allocation, feature, price, priceBehavior, currency, softLimit]);
|
|
17952
18365
|
const usageText = (0, import_react31.useMemo)(() => {
|
|
17953
|
-
if (!feature
|
|
18366
|
+
if (!feature) {
|
|
17954
18367
|
return;
|
|
17955
18368
|
}
|
|
17956
18369
|
if (usageData) {
|
|
17957
18370
|
let acc;
|
|
17958
18371
|
if (priceBehavior === "pay_in_advance" && typeof data.company?.plan?.planPeriod === "string" && typeof price === "number") {
|
|
17959
|
-
acc = `${formatCurrency(price, currency)}/${(
|
|
17960
|
-
} else if (priceBehavior === "pay_as_you_go" && typeof usage === "number") {
|
|
17961
|
-
acc = `${usage} ${(
|
|
18372
|
+
acc = `${formatCurrency(price, currency)}/${getFeatureName(feature, 1)}/${shortenPeriod(data.company.plan.planPeriod)}`;
|
|
18373
|
+
} else if ((priceBehavior === "pay_as_you_go" || priceBehavior === "overage") && typeof usage === "number") {
|
|
18374
|
+
acc = `${usage} ${getFeatureName(feature, usage)} ${t2("used")}`;
|
|
17962
18375
|
}
|
|
17963
18376
|
if (acc) {
|
|
17964
|
-
if (
|
|
18377
|
+
if (priceBehavior === "pay_in_advance" && typeof price === "number" && typeof allocation === "number") {
|
|
17965
18378
|
acc += ` \u2022 ${formatCurrency(price * allocation, currency)}`;
|
|
17966
|
-
} else if (
|
|
18379
|
+
} else if (priceBehavior === "pay_as_you_go" && typeof price === "number" && typeof usage === "number") {
|
|
17967
18380
|
acc += ` \u2022 ${formatCurrency(price * usage, currency)}`;
|
|
18381
|
+
} else if (priceBehavior === "overage" && typeof price === "number" && typeof usage === "number" && typeof softLimit === "number") {
|
|
18382
|
+
const cost = price * (usage - softLimit);
|
|
18383
|
+
const period = feature.featureType === "event" && typeof data.company?.plan?.planPeriod === "string" ? `/${shortenPeriod(data.company.plan.planPeriod)}` : "";
|
|
18384
|
+
acc += cost > 0 ? ` \u2022 ${t2("Overage")}: ${formatCurrency(cost)}${period}` : ` \u2022 ${`${formatCurrency(price)}/${getFeatureName(feature, 1)}`} ${t2("overage fee")}`;
|
|
17968
18385
|
}
|
|
17969
18386
|
return acc;
|
|
17970
18387
|
}
|
|
@@ -17979,14 +18396,15 @@ var Details = ({
|
|
|
17979
18396
|
}
|
|
17980
18397
|
}, [
|
|
17981
18398
|
t2,
|
|
17982
|
-
allocation,
|
|
17983
18399
|
data.company?.plan?.planPeriod,
|
|
17984
|
-
feature
|
|
17985
|
-
price,
|
|
18400
|
+
feature,
|
|
17986
18401
|
priceBehavior,
|
|
18402
|
+
allocation,
|
|
18403
|
+
price,
|
|
18404
|
+
currency,
|
|
18405
|
+
softLimit,
|
|
17987
18406
|
usage,
|
|
17988
|
-
usageData
|
|
17989
|
-
currency
|
|
18407
|
+
usageData
|
|
17990
18408
|
]);
|
|
17991
18409
|
if (!text) {
|
|
17992
18410
|
return null;
|
|
@@ -18004,8 +18422,8 @@ var Details = ({
|
|
|
18004
18422
|
$font: theme.typography[props.entitlement.fontStyle].fontFamily,
|
|
18005
18423
|
$size: theme.typography[props.entitlement.fontStyle].fontSize,
|
|
18006
18424
|
$weight: theme.typography[props.entitlement.fontStyle].fontWeight,
|
|
18007
|
-
$leading: 1,
|
|
18008
18425
|
$color: theme.typography[props.entitlement.fontStyle].color,
|
|
18426
|
+
$leading: 1,
|
|
18009
18427
|
children: text
|
|
18010
18428
|
}
|
|
18011
18429
|
) }),
|
|
@@ -18015,8 +18433,8 @@ var Details = ({
|
|
|
18015
18433
|
$font: theme.typography[props.usage.fontStyle].fontFamily,
|
|
18016
18434
|
$size: theme.typography[props.usage.fontStyle].fontSize,
|
|
18017
18435
|
$weight: theme.typography[props.usage.fontStyle].fontWeight,
|
|
18018
|
-
$leading: 1,
|
|
18019
18436
|
$color: theme.typography[props.usage.fontStyle].color,
|
|
18437
|
+
$leading: 1,
|
|
18020
18438
|
children: usageText
|
|
18021
18439
|
}
|
|
18022
18440
|
) })
|
|
@@ -18064,7 +18482,19 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
|
|
|
18064
18482
|
const shouldWrapChildren = useWrapChildren(elements.current);
|
|
18065
18483
|
const isLightBackground = useIsLightBackground();
|
|
18066
18484
|
const [showCount, setShowCount] = (0, import_react32.useState)(VISIBLE_ENTITLEMENT_COUNT);
|
|
18067
|
-
const
|
|
18485
|
+
const orderedFeatureUsage = props.visibleFeatures?.reduce(
|
|
18486
|
+
(acc, id) => {
|
|
18487
|
+
const mappedFeatureUsage = data.featureUsage?.features.find(
|
|
18488
|
+
(usage) => usage.feature?.id === id
|
|
18489
|
+
);
|
|
18490
|
+
if (mappedFeatureUsage) {
|
|
18491
|
+
acc.push(mappedFeatureUsage);
|
|
18492
|
+
}
|
|
18493
|
+
return acc;
|
|
18494
|
+
},
|
|
18495
|
+
[]
|
|
18496
|
+
);
|
|
18497
|
+
const entitlements = (orderedFeatureUsage || data.featureUsage?.features || []).reduce(
|
|
18068
18498
|
(acc, usage) => {
|
|
18069
18499
|
const mappedUsageData = data.activeUsageBasedEntitlements.find(
|
|
18070
18500
|
(entitlement) => entitlement.featureId === usage.feature?.id
|
|
@@ -18159,8 +18589,8 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
|
|
|
18159
18589
|
$font: theme.typography[props.entitlementExpiration.fontStyle].fontFamily,
|
|
18160
18590
|
$size: theme.typography[props.entitlementExpiration.fontStyle].fontSize,
|
|
18161
18591
|
$weight: theme.typography[props.entitlementExpiration.fontStyle].fontWeight,
|
|
18162
|
-
$leading: 1,
|
|
18163
18592
|
$color: theme.typography[props.entitlementExpiration.fontStyle].color,
|
|
18593
|
+
$leading: 1,
|
|
18164
18594
|
children: [
|
|
18165
18595
|
"Expires",
|
|
18166
18596
|
" ",
|
|
@@ -18206,8 +18636,8 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
|
|
|
18206
18636
|
$font: theme.typography.link.fontFamily,
|
|
18207
18637
|
$size: theme.typography.link.fontSize,
|
|
18208
18638
|
$weight: theme.typography.link.fontWeight,
|
|
18209
|
-
$leading: 1,
|
|
18210
18639
|
$color: theme.typography.link.color,
|
|
18640
|
+
$leading: 1,
|
|
18211
18641
|
style: { cursor: "pointer" },
|
|
18212
18642
|
children: isExpanded ? t2("Hide all") : t2("See all")
|
|
18213
18643
|
}
|
|
@@ -18247,7 +18677,7 @@ function resolveDesignProps2(props) {
|
|
|
18247
18677
|
};
|
|
18248
18678
|
}
|
|
18249
18679
|
function formatInvoices(invoices = []) {
|
|
18250
|
-
return invoices.
|
|
18680
|
+
return invoices.sort((a2, b2) => a2.dueDate && b2.dueDate ? +b2.dueDate - +a2.dueDate : 1).map(({ amountDue, dueDate, url, currency }) => ({
|
|
18251
18681
|
amount: formatCurrency(amountDue, currency),
|
|
18252
18682
|
...dueDate && { date: toPrettyDate(dueDate) },
|
|
18253
18683
|
...url && { url }
|
|
@@ -18351,7 +18781,6 @@ Invoices.displayName = "Invoices";
|
|
|
18351
18781
|
|
|
18352
18782
|
// src/components/elements/metered-features/MeteredFeatures.tsx
|
|
18353
18783
|
var import_react34 = require("react");
|
|
18354
|
-
var import_pluralize5 = __toESM(require_pluralize());
|
|
18355
18784
|
|
|
18356
18785
|
// src/components/elements/metered-features/styles.ts
|
|
18357
18786
|
var Container4 = dt(Flex)`
|
|
@@ -18405,172 +18834,256 @@ var MeteredFeatures = (0, import_react34.forwardRef)(({ className, ...rest }, re
|
|
|
18405
18834
|
const theme = nt();
|
|
18406
18835
|
const { data, setLayout, setSelected } = useEmbed();
|
|
18407
18836
|
const isLightBackground = useIsLightBackground();
|
|
18408
|
-
const
|
|
18409
|
-
|
|
18410
|
-
|
|
18411
|
-
|
|
18837
|
+
const meteredFeatures = (0, import_react34.useMemo)(() => {
|
|
18838
|
+
return (props.visibleFeatures ? props.visibleFeatures.reduce(
|
|
18839
|
+
(acc, id) => {
|
|
18840
|
+
const mappedFeatureUsage = data.featureUsage?.features.find(
|
|
18841
|
+
(usage) => usage.feature?.id === id
|
|
18842
|
+
);
|
|
18843
|
+
if (mappedFeatureUsage) {
|
|
18844
|
+
acc.push(mappedFeatureUsage);
|
|
18845
|
+
}
|
|
18846
|
+
return acc;
|
|
18847
|
+
},
|
|
18848
|
+
[]
|
|
18849
|
+
) : data.featureUsage?.features || []).filter(
|
|
18850
|
+
(usage) => usage.feature?.featureType === "event" || usage.feature?.featureType === "trait"
|
|
18412
18851
|
);
|
|
18413
|
-
|
|
18414
|
-
|
|
18415
|
-
|
|
18416
|
-
return acc;
|
|
18417
|
-
}, []) : data.featureUsage?.features || []).filter(
|
|
18418
|
-
(usage) => usage.feature?.featureType === "event" || usage.feature?.featureType === "trait"
|
|
18419
|
-
);
|
|
18420
|
-
const shouldShowFeatures = featureUsage.length > 0 || data.company?.plan || (data.company?.addOns ?? []).length > 0 || false;
|
|
18852
|
+
}, [props.visibleFeatures, data.featureUsage?.features]);
|
|
18853
|
+
const planPeriod = data.company?.plan?.planPeriod;
|
|
18854
|
+
const shouldShowFeatures = meteredFeatures.length > 0 || data.company?.plan || (data.company?.addOns ?? []).length > 0 || false;
|
|
18421
18855
|
if (!shouldShowFeatures) {
|
|
18422
18856
|
return null;
|
|
18423
18857
|
}
|
|
18424
|
-
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Container4, { ref, className, children:
|
|
18858
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Container4, { ref, className, children: meteredFeatures.map(
|
|
18425
18859
|
({
|
|
18426
|
-
allocation,
|
|
18427
18860
|
feature,
|
|
18428
|
-
usage,
|
|
18429
18861
|
priceBehavior,
|
|
18862
|
+
usage,
|
|
18863
|
+
allocation,
|
|
18864
|
+
softLimit,
|
|
18430
18865
|
metricResetAt,
|
|
18431
18866
|
monthlyUsageBasedPrice,
|
|
18432
18867
|
yearlyUsageBasedPrice
|
|
18433
18868
|
}, index) => {
|
|
18434
|
-
|
|
18435
|
-
|
|
18436
|
-
|
|
18437
|
-
|
|
18438
|
-
|
|
18439
|
-
|
|
18440
|
-
|
|
18441
|
-
|
|
18442
|
-
|
|
18443
|
-
|
|
18444
|
-
|
|
18445
|
-
|
|
18869
|
+
const limit = softLimit ?? allocation ?? 0;
|
|
18870
|
+
const isOverage = priceBehavior === "overage" && typeof softLimit === "number" && typeof usage === "number" && usage > softLimit;
|
|
18871
|
+
const { price, currency } = (planPeriod === "month" ? monthlyUsageBasedPrice : planPeriod === "year" && yearlyUsageBasedPrice) || {};
|
|
18872
|
+
const progressBar = props.isVisible && typeof usage === "number" && priceBehavior !== "pay_as_you_go" && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
18873
|
+
ProgressBar,
|
|
18874
|
+
{
|
|
18875
|
+
progress: (isOverage ? softLimit / usage : usage / limit) * 100,
|
|
18876
|
+
value: usage,
|
|
18877
|
+
total: isOverage ? softLimit : limit,
|
|
18878
|
+
color: isOverage ? "blue" : progressColorMap[Math.floor(
|
|
18879
|
+
Math.min(usage, limit) / limit * (progressColorMap.length - 1)
|
|
18880
|
+
)],
|
|
18881
|
+
...isOverage && { bgColor: "#EF4444" },
|
|
18882
|
+
$flexGrow: 1
|
|
18883
|
+
}
|
|
18884
|
+
);
|
|
18885
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $flexDirection: "column-reverse", children: [
|
|
18886
|
+
priceBehavior === "overage" && typeof price === "number" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
18887
|
+
Flex,
|
|
18446
18888
|
{
|
|
18447
|
-
|
|
18448
|
-
|
|
18449
|
-
|
|
18450
|
-
|
|
18451
|
-
|
|
18889
|
+
$justifyContent: "space-between",
|
|
18890
|
+
$alignItems: "center",
|
|
18891
|
+
$padding: `${0.4375 * theme.card.padding / TEXT_BASE_SIZE}rem ${theme.card.padding / TEXT_BASE_SIZE}rem`,
|
|
18892
|
+
$backgroundColor: isLightBackground ? darken(theme.card.background, 0.05) : lighten(theme.card.background, 0.1),
|
|
18893
|
+
children: [
|
|
18894
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
18895
|
+
Text,
|
|
18896
|
+
{
|
|
18897
|
+
$font: theme.typography.text.fontFamily,
|
|
18898
|
+
$size: theme.typography.text.fontSize,
|
|
18899
|
+
$weight: theme.typography.text.fontWeight,
|
|
18900
|
+
$color: theme.typography.text.color,
|
|
18901
|
+
$leading: 1.35,
|
|
18902
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
18903
|
+
t2("Overage fee"),
|
|
18904
|
+
": ",
|
|
18905
|
+
formatCurrency(price, currency),
|
|
18906
|
+
feature && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box, { as: "sub", $whiteSpace: "nowrap", children: [
|
|
18907
|
+
"/",
|
|
18908
|
+
getFeatureName(feature, 1),
|
|
18909
|
+
feature.featureType === "trait" && planPeriod && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
18910
|
+
"/",
|
|
18911
|
+
shortenPeriod(planPeriod)
|
|
18912
|
+
] })
|
|
18913
|
+
] })
|
|
18914
|
+
] })
|
|
18915
|
+
}
|
|
18916
|
+
),
|
|
18917
|
+
isOverage && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
18918
|
+
Text,
|
|
18919
|
+
{
|
|
18920
|
+
$font: theme.typography.text.fontFamily,
|
|
18921
|
+
$size: theme.typography.text.fontSize,
|
|
18922
|
+
$weight: theme.typography.text.fontWeight,
|
|
18923
|
+
$color: theme.typography.text.color,
|
|
18924
|
+
$leading: 1.35,
|
|
18925
|
+
children: [
|
|
18926
|
+
t2("X over the limit", {
|
|
18927
|
+
amount: usage - softLimit
|
|
18928
|
+
}),
|
|
18929
|
+
" \xB7 ",
|
|
18930
|
+
formatCurrency(price * (usage - softLimit), currency),
|
|
18931
|
+
feature?.featureType === "trait" && typeof planPeriod === "string" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box, { as: "sub", $whiteSpace: "nowrap", children: [
|
|
18932
|
+
"/",
|
|
18933
|
+
shortenPeriod(planPeriod)
|
|
18934
|
+
] })
|
|
18935
|
+
]
|
|
18936
|
+
}
|
|
18937
|
+
)
|
|
18452
18938
|
]
|
|
18453
18939
|
}
|
|
18454
18940
|
),
|
|
18455
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
18456
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.
|
|
18457
|
-
|
|
18941
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Element, { as: Flex, $gap: "1.5rem", children: [
|
|
18942
|
+
props.icon.isVisible && feature?.icon && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
18943
|
+
IconRound,
|
|
18458
18944
|
{
|
|
18459
|
-
|
|
18460
|
-
|
|
18461
|
-
|
|
18462
|
-
|
|
18463
|
-
|
|
18464
|
-
$flexWrap: "wrap",
|
|
18465
|
-
$gap: "1rem",
|
|
18466
|
-
children: [
|
|
18467
|
-
feature?.name && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $flexDirection: "column", $gap: "0.5rem", $flexGrow: "1", children: [
|
|
18468
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
18469
|
-
Text,
|
|
18470
|
-
{
|
|
18471
|
-
as: Box,
|
|
18472
|
-
$font: theme.typography[props.header.fontStyle].fontFamily,
|
|
18473
|
-
$size: theme.typography[props.header.fontStyle].fontSize,
|
|
18474
|
-
$weight: theme.typography[props.header.fontStyle].fontWeight,
|
|
18475
|
-
$color: theme.typography[props.header.fontStyle].color,
|
|
18476
|
-
children: priceBehavior === "pay_as_you_go" ? typeof usage === "number" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
18477
|
-
formatNumber(usage),
|
|
18478
|
-
" ",
|
|
18479
|
-
(0, import_pluralize5.default)(feature.name, usage)
|
|
18480
|
-
] }) : feature.name
|
|
18481
|
-
}
|
|
18482
|
-
),
|
|
18483
|
-
props.description.isVisible && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
18484
|
-
Text,
|
|
18485
|
-
{
|
|
18486
|
-
as: Box,
|
|
18487
|
-
$font: theme.typography[props.description.fontStyle].fontFamily,
|
|
18488
|
-
$size: theme.typography[props.description.fontStyle].fontSize,
|
|
18489
|
-
$weight: theme.typography[props.description.fontStyle].fontWeight,
|
|
18490
|
-
$color: theme.typography[props.description.fontStyle].color,
|
|
18491
|
-
children: feature.description
|
|
18492
|
-
}
|
|
18493
|
-
)
|
|
18494
|
-
] }),
|
|
18495
|
-
(feature?.featureType === "event" || feature?.featureType === "trait") && feature?.name && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
18496
|
-
Box,
|
|
18497
|
-
{
|
|
18498
|
-
$flexBasis: "min-content",
|
|
18499
|
-
$flexGrow: "1",
|
|
18500
|
-
$textAlign: shouldWrapChildren ? "left" : "right",
|
|
18501
|
-
children: [
|
|
18502
|
-
props.usage.isVisible && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
18503
|
-
Text,
|
|
18504
|
-
{
|
|
18505
|
-
as: Box,
|
|
18506
|
-
$font: theme.typography[props.usage.fontStyle].fontFamily,
|
|
18507
|
-
$size: theme.typography[props.usage.fontStyle].fontSize,
|
|
18508
|
-
$weight: theme.typography[props.usage.fontStyle].fontWeight,
|
|
18509
|
-
$leading: 1.25,
|
|
18510
|
-
$color: theme.typography[props.usage.fontStyle].color,
|
|
18511
|
-
children: priceBehavior === "pay_in_advance" ? typeof allocation === "number" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
18512
|
-
formatNumber(allocation),
|
|
18513
|
-
" ",
|
|
18514
|
-
(0, import_pluralize5.default)(feature.name, allocation)
|
|
18515
|
-
] }) : priceBehavior === "pay_as_you_go" ? typeof price === "number" && typeof usage === "number" && formatCurrency(usage * price, currency) : typeof usage === "number" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
18516
|
-
formatNumber(usage),
|
|
18517
|
-
" ",
|
|
18518
|
-
(0, import_pluralize5.default)(feature.name, usage)
|
|
18519
|
-
] })
|
|
18520
|
-
}
|
|
18521
|
-
),
|
|
18522
|
-
props.allocation.isVisible && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
18523
|
-
Text,
|
|
18524
|
-
{
|
|
18525
|
-
$font: theme.typography[props.allocation.fontStyle].fontFamily,
|
|
18526
|
-
$size: theme.typography[props.allocation.fontStyle].fontSize,
|
|
18527
|
-
$weight: theme.typography[props.allocation.fontStyle].fontWeight,
|
|
18528
|
-
$color: theme.typography[props.allocation.fontStyle].color,
|
|
18529
|
-
children: priceBehavior && metricResetAt ? t2("Resets", {
|
|
18530
|
-
date: toPrettyDate(metricResetAt, {
|
|
18531
|
-
month: "short",
|
|
18532
|
-
day: "numeric",
|
|
18533
|
-
year: void 0
|
|
18534
|
-
})
|
|
18535
|
-
}) : typeof allocation === "number" ? t2("Limit of", {
|
|
18536
|
-
amount: formatNumber(allocation)
|
|
18537
|
-
}) : t2("No limit")
|
|
18538
|
-
}
|
|
18539
|
-
) })
|
|
18540
|
-
]
|
|
18541
|
-
}
|
|
18542
|
-
)
|
|
18945
|
+
name: feature.icon,
|
|
18946
|
+
size: "sm",
|
|
18947
|
+
colors: [
|
|
18948
|
+
theme.primary,
|
|
18949
|
+
isLightBackground ? "hsla(0, 0%, 0%, 0.0625)" : "hsla(0, 0%, 100%, 0.25)"
|
|
18543
18950
|
]
|
|
18544
18951
|
}
|
|
18545
18952
|
),
|
|
18546
|
-
|
|
18547
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.
|
|
18548
|
-
|
|
18549
|
-
{
|
|
18550
|
-
progress: usage / allocation * 100,
|
|
18551
|
-
value: usage,
|
|
18552
|
-
total: allocation,
|
|
18553
|
-
color: progressColorMap[Math.floor(
|
|
18554
|
-
Math.min(usage, allocation) / allocation * (progressColorMap.length - 1)
|
|
18555
|
-
)],
|
|
18556
|
-
$flexGrow: "1"
|
|
18557
|
-
}
|
|
18558
|
-
),
|
|
18559
|
-
priceBehavior === "pay_in_advance" && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
18560
|
-
EmbedButton,
|
|
18953
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $flexDirection: "column", $gap: "2rem", $flexGrow: 1, children: [
|
|
18954
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
18955
|
+
Flex,
|
|
18561
18956
|
{
|
|
18562
|
-
|
|
18563
|
-
|
|
18564
|
-
|
|
18565
|
-
|
|
18566
|
-
},
|
|
18567
|
-
style: {
|
|
18568
|
-
width: "fit-content",
|
|
18569
|
-
padding: "0 1rem 0 0.5rem"
|
|
18957
|
+
ref: (el) => {
|
|
18958
|
+
if (el) {
|
|
18959
|
+
elements.current.push(el);
|
|
18960
|
+
}
|
|
18570
18961
|
},
|
|
18571
|
-
|
|
18962
|
+
$flexWrap: "wrap",
|
|
18963
|
+
$gap: "1rem",
|
|
18964
|
+
children: [
|
|
18965
|
+
feature?.name && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $flexDirection: "column", $gap: "0.5rem", $flexGrow: 1, children: [
|
|
18966
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
18967
|
+
Text,
|
|
18968
|
+
{
|
|
18969
|
+
as: Box,
|
|
18970
|
+
$font: theme.typography[props.header.fontStyle].fontFamily,
|
|
18971
|
+
$size: theme.typography[props.header.fontStyle].fontSize,
|
|
18972
|
+
$weight: theme.typography[props.header.fontStyle].fontWeight,
|
|
18973
|
+
$color: theme.typography[props.header.fontStyle].color,
|
|
18974
|
+
$leading: 1.35,
|
|
18975
|
+
children: priceBehavior === "pay_as_you_go" ? typeof usage === "number" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
18976
|
+
formatNumber(usage),
|
|
18977
|
+
" ",
|
|
18978
|
+
getFeatureName(feature, usage)
|
|
18979
|
+
] }) : feature.name
|
|
18980
|
+
}
|
|
18981
|
+
),
|
|
18982
|
+
props.description.isVisible && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
18983
|
+
Text,
|
|
18984
|
+
{
|
|
18985
|
+
as: Box,
|
|
18986
|
+
$font: theme.typography[props.description.fontStyle].fontFamily,
|
|
18987
|
+
$size: theme.typography[props.description.fontStyle].fontSize,
|
|
18988
|
+
$weight: theme.typography[props.description.fontStyle].fontWeight,
|
|
18989
|
+
$color: theme.typography[props.description.fontStyle].color,
|
|
18990
|
+
children: feature.description
|
|
18991
|
+
}
|
|
18992
|
+
)
|
|
18993
|
+
] }),
|
|
18994
|
+
(feature?.featureType === "event" || feature?.featureType === "trait") && feature?.name && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
18995
|
+
Box,
|
|
18996
|
+
{
|
|
18997
|
+
$flexBasis: "min-content",
|
|
18998
|
+
$flexGrow: 1,
|
|
18999
|
+
$textAlign: shouldWrapChildren ? "left" : "right",
|
|
19000
|
+
children: [
|
|
19001
|
+
props.usage.isVisible && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
19002
|
+
Text,
|
|
19003
|
+
{
|
|
19004
|
+
as: Box,
|
|
19005
|
+
$font: theme.typography[props.usage.fontStyle].fontFamily,
|
|
19006
|
+
$size: theme.typography[props.usage.fontStyle].fontSize,
|
|
19007
|
+
$weight: theme.typography[props.usage.fontStyle].fontWeight,
|
|
19008
|
+
$color: theme.typography[props.usage.fontStyle].color,
|
|
19009
|
+
$leading: 1.35,
|
|
19010
|
+
children: priceBehavior === "pay_in_advance" ? typeof allocation === "number" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
19011
|
+
formatNumber(allocation),
|
|
19012
|
+
" ",
|
|
19013
|
+
getFeatureName(feature, allocation)
|
|
19014
|
+
] }) : priceBehavior === "pay_as_you_go" ? typeof price === "number" && typeof usage === "number" && formatCurrency(usage * price, currency) : typeof usage === "number" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
19015
|
+
formatNumber(usage),
|
|
19016
|
+
" ",
|
|
19017
|
+
getFeatureName(feature, usage),
|
|
19018
|
+
priceBehavior === "overage" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
19019
|
+
" ",
|
|
19020
|
+
t2("used")
|
|
19021
|
+
] })
|
|
19022
|
+
] })
|
|
19023
|
+
}
|
|
19024
|
+
),
|
|
19025
|
+
props.allocation.isVisible && priceBehavior !== "overage" && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
19026
|
+
Text,
|
|
19027
|
+
{
|
|
19028
|
+
$font: theme.typography[props.allocation.fontStyle].fontFamily,
|
|
19029
|
+
$size: theme.typography[props.allocation.fontStyle].fontSize,
|
|
19030
|
+
$weight: theme.typography[props.allocation.fontStyle].fontWeight,
|
|
19031
|
+
$color: theme.typography[props.allocation.fontStyle].color,
|
|
19032
|
+
$leading: 1.35,
|
|
19033
|
+
children: priceBehavior && priceBehavior !== "overage" && metricResetAt ? t2("Resets", {
|
|
19034
|
+
date: toPrettyDate(metricResetAt, {
|
|
19035
|
+
month: "short",
|
|
19036
|
+
day: "numeric",
|
|
19037
|
+
year: void 0
|
|
19038
|
+
})
|
|
19039
|
+
}) : typeof allocation === "number" || typeof softLimit === "number" ? t2("Limit of", {
|
|
19040
|
+
amount: formatNumber(limit)
|
|
19041
|
+
}) : t2("No limit")
|
|
19042
|
+
}
|
|
19043
|
+
) })
|
|
19044
|
+
]
|
|
19045
|
+
}
|
|
19046
|
+
)
|
|
19047
|
+
]
|
|
18572
19048
|
}
|
|
18573
|
-
)
|
|
19049
|
+
),
|
|
19050
|
+
props.isVisible && typeof usage === "number" && priceBehavior !== "pay_as_you_go" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $gap: "2rem", children: [
|
|
19051
|
+
typeof allocation === "number" ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
19052
|
+
Tooltip,
|
|
19053
|
+
{
|
|
19054
|
+
trigger: progressBar,
|
|
19055
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
19056
|
+
Text,
|
|
19057
|
+
{
|
|
19058
|
+
$font: theme.typography.text.fontFamily,
|
|
19059
|
+
$size: 0.875 * theme.typography.text.fontSize,
|
|
19060
|
+
$weight: theme.typography.text.fontWeight,
|
|
19061
|
+
$color: theme.typography.text.color,
|
|
19062
|
+
$leading: 1,
|
|
19063
|
+
children: t2("Up to a limit of", {
|
|
19064
|
+
amount: allocation,
|
|
19065
|
+
units: feature?.name && getFeatureName(feature)
|
|
19066
|
+
})
|
|
19067
|
+
}
|
|
19068
|
+
),
|
|
19069
|
+
$flexGrow: 1
|
|
19070
|
+
}
|
|
19071
|
+
) : progressBar,
|
|
19072
|
+
priceBehavior === "pay_in_advance" && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
19073
|
+
EmbedButton,
|
|
19074
|
+
{
|
|
19075
|
+
onClick: () => {
|
|
19076
|
+
setSelected({ usage: true });
|
|
19077
|
+
setLayout("checkout");
|
|
19078
|
+
},
|
|
19079
|
+
style: {
|
|
19080
|
+
width: "fit-content",
|
|
19081
|
+
padding: "0 1rem 0 0.5rem"
|
|
19082
|
+
},
|
|
19083
|
+
children: t2("Add More")
|
|
19084
|
+
}
|
|
19085
|
+
)
|
|
19086
|
+
] })
|
|
18574
19087
|
] })
|
|
18575
19088
|
] })
|
|
18576
19089
|
] }, index);
|
|
@@ -18592,13 +19105,22 @@ var PaymentElement2 = ({
|
|
|
18592
19105
|
paymentLast4
|
|
18593
19106
|
}) => {
|
|
18594
19107
|
const theme = nt();
|
|
18595
|
-
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
18596
|
-
|
|
18597
|
-
|
|
18598
|
-
|
|
18599
|
-
|
|
18600
|
-
|
|
18601
|
-
|
|
19108
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
19109
|
+
Text,
|
|
19110
|
+
{
|
|
19111
|
+
$font: theme.typography.text.fontFamily,
|
|
19112
|
+
$size: 16,
|
|
19113
|
+
$weight: theme.typography.text.fontWeight,
|
|
19114
|
+
$color: theme.typography.text.color,
|
|
19115
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Flex, { $flexDirection: "row", $alignItems: "center", children: [
|
|
19116
|
+
iconName && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icon2, { name: iconName, title: iconTitle, style: iconStyles }) }),
|
|
19117
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Flex, { $alignItems: "center", children: [
|
|
19118
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box, { $lineHeight: "1", $marginRight: "4px", children: t(label) }),
|
|
19119
|
+
paymentLast4 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box, { $display: "inline-block", $fontWeight: "bold", children: paymentLast4 })
|
|
19120
|
+
] })
|
|
19121
|
+
] })
|
|
19122
|
+
}
|
|
19123
|
+
) });
|
|
18602
19124
|
};
|
|
18603
19125
|
var resolveDesignProps4 = (props) => {
|
|
18604
19126
|
return {
|
|
@@ -18718,6 +19240,7 @@ var PaymentMethodElement = ({
|
|
|
18718
19240
|
{
|
|
18719
19241
|
$font: theme.typography.text.fontFamily,
|
|
18720
19242
|
$size: 14,
|
|
19243
|
+
$weight: theme.typography.text.fontWeight,
|
|
18721
19244
|
$color: "#DB6769",
|
|
18722
19245
|
children: monthsToExpiration > 0 ? t2("Expires in x months", { months: monthsToExpiration }) : t2("Expired")
|
|
18723
19246
|
}
|
|
@@ -18740,8 +19263,8 @@ var PaymentMethodElement = ({
|
|
|
18740
19263
|
$font: theme.typography.link.fontFamily,
|
|
18741
19264
|
$size: theme.typography.link.fontSize,
|
|
18742
19265
|
$weight: theme.typography.link.fontWeight,
|
|
18743
|
-
$leading: 1,
|
|
18744
19266
|
$color: theme.typography.link.color,
|
|
19267
|
+
$leading: 1,
|
|
18745
19268
|
children: t2("Edit")
|
|
18746
19269
|
}
|
|
18747
19270
|
)
|
|
@@ -18953,7 +19476,6 @@ PaymentMethod.displayName = "PaymentMethod";
|
|
|
18953
19476
|
|
|
18954
19477
|
// src/components/elements/plan-manager/PlanManager.tsx
|
|
18955
19478
|
var import_react36 = require("react");
|
|
18956
|
-
var import_pluralize6 = __toESM(require_pluralize());
|
|
18957
19479
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
18958
19480
|
var resolveDesignProps5 = (props) => {
|
|
18959
19481
|
return {
|
|
@@ -18998,34 +19520,28 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
|
|
|
18998
19520
|
};
|
|
18999
19521
|
const usageBasedEntitlements = (featureUsage?.features || []).reduce(
|
|
19000
19522
|
(acc, usage) => {
|
|
19001
|
-
const
|
|
19002
|
-
|
|
19003
|
-
|
|
19004
|
-
if (currentPlan?.planPeriod === "month") {
|
|
19005
|
-
price = usage.monthlyUsageBasedPrice?.price;
|
|
19006
|
-
currencyCode = usage.monthlyUsageBasedPrice?.currency;
|
|
19007
|
-
} else if (currentPlan?.planPeriod === "year") {
|
|
19008
|
-
price = usage.yearlyUsageBasedPrice?.price;
|
|
19009
|
-
currencyCode = usage.yearlyUsageBasedPrice?.currency;
|
|
19010
|
-
}
|
|
19011
|
-
if (usage.priceBehavior && typeof price === "number" && quantity > 0) {
|
|
19012
|
-
acc.push({ ...usage, price, quantity, currencyCode });
|
|
19523
|
+
const { price, currency } = (currentPlan?.planPeriod === "month" ? usage.monthlyUsageBasedPrice : usage.yearlyUsageBasedPrice) || {};
|
|
19524
|
+
if (usage.priceBehavior && typeof price === "number") {
|
|
19525
|
+
acc.push({ ...usage, price, currency });
|
|
19013
19526
|
}
|
|
19014
19527
|
return acc;
|
|
19015
19528
|
},
|
|
19016
19529
|
[]
|
|
19017
19530
|
);
|
|
19018
19531
|
const billingSubscription = data.company?.billingSubscription;
|
|
19532
|
+
const trialEndDays = (0, import_react36.useMemo)(() => {
|
|
19533
|
+
const trialEnd = billingSubscription?.trialEnd;
|
|
19534
|
+
const trialEndDate = trialEnd ? new Date(trialEnd * 1e3) : /* @__PURE__ */ new Date();
|
|
19535
|
+
const todayDate = /* @__PURE__ */ new Date();
|
|
19536
|
+
return Math.floor(
|
|
19537
|
+
(trialEndDate.getTime() - todayDate.getTime()) / (1e3 * 60 * 60 * 24)
|
|
19538
|
+
);
|
|
19539
|
+
}, [billingSubscription?.trialEnd]);
|
|
19019
19540
|
const subscriptionCurrency = billingSubscription?.currency;
|
|
19020
|
-
const
|
|
19021
|
-
const
|
|
19022
|
-
const trialEndDate = billingSubscription?.trialEnd ? new Date(billingSubscription.trialEnd * 1e3) : /* @__PURE__ */ new Date();
|
|
19023
|
-
const todayDate = /* @__PURE__ */ new Date();
|
|
19024
|
-
const trialEndDays = Math.floor(
|
|
19025
|
-
(trialEndDate.getTime() - todayDate.getTime()) / (1e3 * 60 * 60 * 24)
|
|
19026
|
-
);
|
|
19541
|
+
const isTrialSubscription = billingSubscription?.status === "trialing";
|
|
19542
|
+
const willSubscriptionCancel = billingSubscription?.cancelAtPeriodEnd;
|
|
19027
19543
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
|
|
19028
|
-
|
|
19544
|
+
isTrialSubscription && !willSubscriptionCancel ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
19029
19545
|
Box,
|
|
19030
19546
|
{
|
|
19031
19547
|
$backgroundColor: isLightBackground ? "hsla(0, 0%, 0%, 0.04)" : "hsla(0, 0%, 100%, 0.04)",
|
|
@@ -19048,7 +19564,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
|
|
|
19048
19564
|
{
|
|
19049
19565
|
as: "p",
|
|
19050
19566
|
$font: theme.typography.text.fontFamily,
|
|
19051
|
-
$size: theme.typography.text.fontSize
|
|
19567
|
+
$size: 0.8125 * theme.typography.text.fontSize,
|
|
19052
19568
|
$weight: theme.typography.text.fontWeight,
|
|
19053
19569
|
$color: theme.typography.text.color,
|
|
19054
19570
|
children: data.trialPaymentMethodRequired ? t2("After the trial, subscribe") : defaultPlan ? t2("After the trial, cancel", {
|
|
@@ -19060,8 +19576,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
|
|
|
19060
19576
|
)
|
|
19061
19577
|
]
|
|
19062
19578
|
}
|
|
19063
|
-
),
|
|
19064
|
-
showUnsubscribeBox && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
19579
|
+
) : willSubscriptionCancel && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
19065
19580
|
Box,
|
|
19066
19581
|
{
|
|
19067
19582
|
$backgroundColor: isLightBackground ? "hsla(0, 0%, 0%, 0.04)" : "hsla(0, 0%, 100%, 0.04)",
|
|
@@ -19084,10 +19599,10 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
|
|
|
19084
19599
|
{
|
|
19085
19600
|
as: "p",
|
|
19086
19601
|
$font: theme.typography.text.fontFamily,
|
|
19087
|
-
$size: theme.typography.text.fontSize
|
|
19602
|
+
$size: 0.8125 * theme.typography.text.fontSize,
|
|
19088
19603
|
$weight: theme.typography.text.fontWeight,
|
|
19089
19604
|
$color: theme.typography.text.color,
|
|
19090
|
-
children: billingSubscription
|
|
19605
|
+
children: billingSubscription?.cancelAt ? t2("Access to plan will end on", {
|
|
19091
19606
|
date: toPrettyDate(
|
|
19092
19607
|
new Date(billingSubscription.cancelAt * 1e3),
|
|
19093
19608
|
{
|
|
@@ -19185,7 +19700,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
|
|
|
19185
19700
|
children: t2("Add-ons")
|
|
19186
19701
|
}
|
|
19187
19702
|
),
|
|
19188
|
-
addOns.map((addOn) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
19703
|
+
addOns.map((addOn, addOnIndex) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
19189
19704
|
Flex,
|
|
19190
19705
|
{
|
|
19191
19706
|
$justifyContent: "space-between",
|
|
@@ -19221,7 +19736,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
|
|
|
19221
19736
|
)
|
|
19222
19737
|
]
|
|
19223
19738
|
},
|
|
19224
|
-
|
|
19739
|
+
addOnIndex
|
|
19225
19740
|
))
|
|
19226
19741
|
] }),
|
|
19227
19742
|
usageBasedEntitlements.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", children: [
|
|
@@ -19237,7 +19752,10 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
|
|
|
19237
19752
|
}
|
|
19238
19753
|
),
|
|
19239
19754
|
usageBasedEntitlements.reduce(
|
|
19240
|
-
(acc, entitlement) => {
|
|
19755
|
+
(acc, entitlement, entitlementIndex) => {
|
|
19756
|
+
const limit = entitlement.softLimit ?? entitlement.allocation ?? 0;
|
|
19757
|
+
const overageAmount = entitlement.priceBehavior === "overage" && (entitlement?.usage ?? 0) - (entitlement?.softLimit ?? 0);
|
|
19758
|
+
const amount = overageAmount || entitlement.allocation || 0;
|
|
19241
19759
|
if (entitlement.feature?.name) {
|
|
19242
19760
|
acc.push(
|
|
19243
19761
|
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
@@ -19248,25 +19766,55 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
|
|
|
19248
19766
|
$flexWrap: "wrap",
|
|
19249
19767
|
$gap: "1rem",
|
|
19250
19768
|
children: [
|
|
19251
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.
|
|
19769
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
19252
19770
|
Text,
|
|
19253
19771
|
{
|
|
19254
19772
|
$font: theme.typography[props.addOns.fontStyle].fontFamily,
|
|
19255
19773
|
$size: theme.typography[props.addOns.fontStyle].fontSize,
|
|
19256
19774
|
$weight: theme.typography[props.addOns.fontStyle].fontWeight,
|
|
19257
19775
|
$color: theme.typography[props.addOns.fontStyle].color,
|
|
19258
|
-
children:
|
|
19259
|
-
entitlement.
|
|
19260
|
-
|
|
19261
|
-
|
|
19262
|
-
entitlement.feature
|
|
19263
|
-
|
|
19264
|
-
)
|
|
19265
|
-
|
|
19776
|
+
children: [
|
|
19777
|
+
entitlement.priceBehavior === "pay_in_advance" || entitlement.priceBehavior === "overage" && limit > 0 ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
|
|
19778
|
+
limit,
|
|
19779
|
+
" ",
|
|
19780
|
+
getFeatureName(entitlement.feature, limit)
|
|
19781
|
+
] }) : entitlement.feature.name,
|
|
19782
|
+
entitlement.priceBehavior === "overage" && entitlement.feature.featureType === "event" && currentPlan?.planPeriod && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
|
|
19783
|
+
"/",
|
|
19784
|
+
shortenPeriod(currentPlan.planPeriod)
|
|
19785
|
+
] })
|
|
19786
|
+
]
|
|
19266
19787
|
}
|
|
19267
19788
|
),
|
|
19268
19789
|
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Flex, { $alignItems: "center", $gap: "1rem", children: [
|
|
19269
|
-
entitlement.priceBehavior === "
|
|
19790
|
+
entitlement.priceBehavior === "overage" && currentPlan?.planPeriod ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
19791
|
+
Text,
|
|
19792
|
+
{
|
|
19793
|
+
$font: theme.typography.text.fontFamily,
|
|
19794
|
+
$size: 0.875 * theme.typography.text.fontSize,
|
|
19795
|
+
$weight: theme.typography.text.fontWeight,
|
|
19796
|
+
$color: hexToHSL(theme.typography.text.color).l > 50 ? darken(theme.typography.text.color, 0.46) : lighten(theme.typography.text.color, 0.46),
|
|
19797
|
+
children: typeof overageAmount === "number" && overageAmount > 0 ? t2("X over the limit", {
|
|
19798
|
+
amount: overageAmount
|
|
19799
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
|
|
19800
|
+
t2("Overage fee"),
|
|
19801
|
+
":",
|
|
19802
|
+
" ",
|
|
19803
|
+
formatCurrency(
|
|
19804
|
+
entitlement.price,
|
|
19805
|
+
entitlement.currency
|
|
19806
|
+
),
|
|
19807
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("sub", { children: [
|
|
19808
|
+
"/",
|
|
19809
|
+
getFeatureName(entitlement.feature, 1),
|
|
19810
|
+
entitlement.feature.featureType === "trait" && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
|
|
19811
|
+
"/",
|
|
19812
|
+
shortenPeriod(currentPlan.planPeriod)
|
|
19813
|
+
] })
|
|
19814
|
+
] })
|
|
19815
|
+
] })
|
|
19816
|
+
}
|
|
19817
|
+
) : entitlement.priceBehavior === "pay_in_advance" && currentPlan?.planPeriod && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
19270
19818
|
Text,
|
|
19271
19819
|
{
|
|
19272
19820
|
$font: theme.typography.text.fontFamily,
|
|
@@ -19276,21 +19824,18 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
|
|
|
19276
19824
|
children: [
|
|
19277
19825
|
formatCurrency(
|
|
19278
19826
|
entitlement.price,
|
|
19279
|
-
entitlement.
|
|
19827
|
+
entitlement.currency
|
|
19280
19828
|
),
|
|
19281
19829
|
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("sub", { children: [
|
|
19282
19830
|
"/",
|
|
19283
|
-
(
|
|
19284
|
-
entitlement.feature.name.toLowerCase(),
|
|
19285
|
-
1
|
|
19286
|
-
),
|
|
19831
|
+
getFeatureName(entitlement.feature, 1),
|
|
19287
19832
|
"/",
|
|
19288
19833
|
shortenPeriod(currentPlan.planPeriod)
|
|
19289
19834
|
] })
|
|
19290
19835
|
]
|
|
19291
19836
|
}
|
|
19292
19837
|
),
|
|
19293
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
19838
|
+
amount > 0 && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
19294
19839
|
Text,
|
|
19295
19840
|
{
|
|
19296
19841
|
$font: theme.typography.text.fontFamily,
|
|
@@ -19299,15 +19844,12 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
|
|
|
19299
19844
|
$color: theme.typography.text.color,
|
|
19300
19845
|
children: [
|
|
19301
19846
|
formatCurrency(
|
|
19302
|
-
entitlement.price *
|
|
19303
|
-
entitlement.
|
|
19847
|
+
entitlement.price * amount,
|
|
19848
|
+
entitlement.currency
|
|
19304
19849
|
),
|
|
19305
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("sub", { children: [
|
|
19850
|
+
(entitlement.priceBehavior === "pay_in_advance" || entitlement.priceBehavior !== "overage") && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("sub", { children: [
|
|
19306
19851
|
"/",
|
|
19307
|
-
currentPlan?.planPeriod && entitlement.priceBehavior === "pay_in_advance" ? shortenPeriod(currentPlan.planPeriod) : (
|
|
19308
|
-
entitlement.feature.name.toLowerCase(),
|
|
19309
|
-
1
|
|
19310
|
-
)
|
|
19852
|
+
currentPlan?.planPeriod && entitlement.priceBehavior === "pay_in_advance" ? shortenPeriod(currentPlan.planPeriod) : getFeatureName(entitlement.feature, 1)
|
|
19311
19853
|
] })
|
|
19312
19854
|
]
|
|
19313
19855
|
}
|
|
@@ -19315,7 +19857,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
|
|
|
19315
19857
|
] })
|
|
19316
19858
|
]
|
|
19317
19859
|
},
|
|
19318
|
-
|
|
19860
|
+
entitlementIndex
|
|
19319
19861
|
)
|
|
19320
19862
|
);
|
|
19321
19863
|
}
|
|
@@ -19350,7 +19892,6 @@ PlanManager.displayName = "PlanManager";
|
|
|
19350
19892
|
|
|
19351
19893
|
// src/components/elements/pricing-table/PricingTable.tsx
|
|
19352
19894
|
var import_react37 = require("react");
|
|
19353
|
-
var import_pluralize7 = __toESM(require_pluralize());
|
|
19354
19895
|
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
19355
19896
|
var resolveDesignProps6 = (props) => {
|
|
19356
19897
|
return {
|
|
@@ -19481,13 +20022,11 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19481
20022
|
$display: "grid",
|
|
19482
20023
|
$gridTemplateColumns: "repeat(auto-fill, minmax(320px, 1fr))",
|
|
19483
20024
|
$gap: "1rem",
|
|
19484
|
-
children: plans.map((plan,
|
|
20025
|
+
children: plans.map((plan, planIndex, self2) => {
|
|
19485
20026
|
const isActivePlan = plan.current && data.company?.plan?.planPeriod === selectedPeriod;
|
|
20027
|
+
const { price: planPrice, currency: planCurrency } = (selectedPeriod === "month" ? plan.monthlyPrice : selectedPeriod === "year" && plan.yearlyPrice) || {};
|
|
19486
20028
|
const count = entitlementCounts[plan.id];
|
|
19487
|
-
|
|
19488
|
-
if (count?.limit && count.limit > VISIBLE_ENTITLEMENT_COUNT) {
|
|
19489
|
-
isExpanded = true;
|
|
19490
|
-
}
|
|
20029
|
+
const isExpanded = count.limit > VISIBLE_ENTITLEMENT_COUNT;
|
|
19491
20030
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
19492
20031
|
Flex,
|
|
19493
20032
|
{
|
|
@@ -19507,7 +20046,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19507
20046
|
$flexDirection: "column",
|
|
19508
20047
|
$gap: "0.75rem",
|
|
19509
20048
|
$padding: `0 ${cardPadding}rem ${0.75 * cardPadding}rem`,
|
|
19510
|
-
$borderWidth:
|
|
20049
|
+
$borderWidth: 0,
|
|
19511
20050
|
$borderBottomWidth: "1px",
|
|
19512
20051
|
$borderStyle: "solid",
|
|
19513
20052
|
$borderColor: isLightBackground ? "hsla(0, 0%, 0%, 0.175)" : "hsla(0, 0%, 100%, 0.175)",
|
|
@@ -19540,10 +20079,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19540
20079
|
$size: theme.typography[props.plans.name.fontStyle].fontSize,
|
|
19541
20080
|
$weight: theme.typography[props.plans.name.fontStyle].fontWeight,
|
|
19542
20081
|
$color: theme.typography[props.plans.name.fontStyle].color,
|
|
19543
|
-
children: plan.custom ? plan.customPlanConfig?.priceText ? plan.customPlanConfig
|
|
19544
|
-
(selectedPeriod === "month" ? plan.monthlyPrice : plan.yearlyPrice)?.price ?? 0,
|
|
19545
|
-
(selectedPeriod === "month" ? plan.monthlyPrice : plan.yearlyPrice)?.currency
|
|
19546
|
-
)
|
|
20082
|
+
children: plan.custom ? plan.customPlanConfig?.priceText ? plan.customPlanConfig.priceText : t2("Custom Plan Price") : formatCurrency(planPrice ?? 0, planCurrency)
|
|
19547
20083
|
}
|
|
19548
20084
|
),
|
|
19549
20085
|
!plan.custom && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
@@ -19582,12 +20118,12 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19582
20118
|
{
|
|
19583
20119
|
$flexDirection: "column",
|
|
19584
20120
|
$justifyContent: "end",
|
|
19585
|
-
$flexGrow:
|
|
20121
|
+
$flexGrow: 1,
|
|
19586
20122
|
$gap: `${cardPadding}rem`,
|
|
19587
20123
|
$padding: `${0.75 * cardPadding}rem ${cardPadding}rem 0`,
|
|
19588
20124
|
children: [
|
|
19589
|
-
props.plans.showEntitlements && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", $flexGrow:
|
|
19590
|
-
props.plans.showInclusionText &&
|
|
20125
|
+
props.plans.showEntitlements && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", $flexGrow: 1, children: [
|
|
20126
|
+
props.plans.showInclusionText && planIndex > 0 && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box, { $marginBottom: "1.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
19591
20127
|
Text,
|
|
19592
20128
|
{
|
|
19593
20129
|
$font: theme.typography.text.fontFamily,
|
|
@@ -19595,83 +20131,142 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19595
20131
|
$weight: theme.typography.text.fontWeight,
|
|
19596
20132
|
$color: theme.typography.text.color,
|
|
19597
20133
|
children: t2("Everything in", {
|
|
19598
|
-
plan: self2[
|
|
20134
|
+
plan: self2[planIndex - 1].name
|
|
19599
20135
|
})
|
|
19600
20136
|
}
|
|
19601
20137
|
) }),
|
|
19602
|
-
plan.entitlements.reduce(
|
|
19603
|
-
|
|
19604
|
-
|
|
19605
|
-
|
|
19606
|
-
|
|
19607
|
-
|
|
19608
|
-
|
|
19609
|
-
|
|
19610
|
-
|
|
19611
|
-
|
|
19612
|
-
|
|
19613
|
-
|
|
19614
|
-
|
|
19615
|
-
|
|
19616
|
-
|
|
19617
|
-
|
|
19618
|
-
|
|
19619
|
-
|
|
19620
|
-
|
|
19621
|
-
|
|
19622
|
-
|
|
19623
|
-
|
|
19624
|
-
|
|
19625
|
-
|
|
19626
|
-
|
|
19627
|
-
|
|
19628
|
-
|
|
19629
|
-
|
|
19630
|
-
|
|
19631
|
-
|
|
19632
|
-
|
|
19633
|
-
|
|
19634
|
-
|
|
19635
|
-
|
|
19636
|
-
|
|
19637
|
-
|
|
19638
|
-
|
|
19639
|
-
|
|
19640
|
-
|
|
19641
|
-
|
|
19642
|
-
|
|
19643
|
-
|
|
19644
|
-
|
|
19645
|
-
|
|
19646
|
-
|
|
19647
|
-
|
|
19648
|
-
|
|
19649
|
-
|
|
19650
|
-
|
|
19651
|
-
|
|
19652
|
-
|
|
19653
|
-
|
|
19654
|
-
|
|
20138
|
+
plan.entitlements.reduce(
|
|
20139
|
+
(acc, entitlement, entitlementIndex) => {
|
|
20140
|
+
const limit = entitlement.softLimit ?? entitlement.valueNumeric;
|
|
20141
|
+
const {
|
|
20142
|
+
price: entitlementPrice,
|
|
20143
|
+
currency: entitlementCurrency
|
|
20144
|
+
} = (selectedPeriod === "month" ? entitlement.meteredMonthlyPrice : selectedPeriod === "year" && entitlement.meteredYearlyPrice) || {};
|
|
20145
|
+
if (entitlement.priceBehavior && typeof entitlementPrice !== "number") {
|
|
20146
|
+
return acc;
|
|
20147
|
+
}
|
|
20148
|
+
acc.push(
|
|
20149
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Flex, { $gap: "1rem", children: [
|
|
20150
|
+
props.plans.showFeatureIcons && entitlement.feature?.icon && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
20151
|
+
IconRound,
|
|
20152
|
+
{
|
|
20153
|
+
name: entitlement.feature.icon,
|
|
20154
|
+
size: "sm",
|
|
20155
|
+
colors: [
|
|
20156
|
+
theme.primary,
|
|
20157
|
+
isLightBackground ? "hsla(0, 0%, 0%, 0.0625)" : "hsla(0, 0%, 100%, 0.25)"
|
|
20158
|
+
]
|
|
20159
|
+
}
|
|
20160
|
+
),
|
|
20161
|
+
entitlement.feature?.name && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
20162
|
+
Flex,
|
|
20163
|
+
{
|
|
20164
|
+
$flexDirection: "column",
|
|
20165
|
+
$justifyContent: "center",
|
|
20166
|
+
$gap: "0.5rem",
|
|
20167
|
+
children: [
|
|
20168
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
20169
|
+
Text,
|
|
20170
|
+
{
|
|
20171
|
+
$font: theme.typography.text.fontFamily,
|
|
20172
|
+
$size: theme.typography.text.fontSize,
|
|
20173
|
+
$weight: theme.typography.text.fontWeight,
|
|
20174
|
+
$color: theme.typography.text.color,
|
|
20175
|
+
$leading: 1.35,
|
|
20176
|
+
children: typeof entitlementPrice === "number" && (entitlement.priceBehavior === "pay_in_advance" || entitlement.priceBehavior === "pay_as_you_go") ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
20177
|
+
formatCurrency(
|
|
20178
|
+
entitlementPrice,
|
|
20179
|
+
entitlementCurrency
|
|
20180
|
+
),
|
|
20181
|
+
" ",
|
|
20182
|
+
t2("per"),
|
|
20183
|
+
" ",
|
|
20184
|
+
getFeatureName(
|
|
20185
|
+
entitlement.feature,
|
|
20186
|
+
1
|
|
20187
|
+
),
|
|
20188
|
+
entitlement.priceBehavior === "pay_in_advance" && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
20189
|
+
" ",
|
|
20190
|
+
t2("per"),
|
|
20191
|
+
" ",
|
|
20192
|
+
selectedPeriod
|
|
20193
|
+
] })
|
|
20194
|
+
] }) : entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
20195
|
+
entitlement.valueType === "unlimited" && !entitlement.priceBehavior ? t2("Unlimited", {
|
|
20196
|
+
item: getFeatureName(
|
|
20197
|
+
entitlement.feature
|
|
20198
|
+
)
|
|
20199
|
+
}) : typeof limit === "number" && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
20200
|
+
formatNumber(limit),
|
|
20201
|
+
" ",
|
|
20202
|
+
getFeatureName(
|
|
20203
|
+
entitlement.feature,
|
|
20204
|
+
limit
|
|
20205
|
+
)
|
|
20206
|
+
] }),
|
|
20207
|
+
entitlement.metricPeriod && entitlement.priceBehavior !== "overage" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
20208
|
+
" ",
|
|
20209
|
+
t2("per"),
|
|
20210
|
+
" ",
|
|
20211
|
+
{
|
|
20212
|
+
billing: "billing period",
|
|
20213
|
+
current_day: "day",
|
|
20214
|
+
current_month: "month",
|
|
20215
|
+
current_year: "year"
|
|
20216
|
+
}[entitlement.metricPeriod]
|
|
20217
|
+
] }) : entitlement.priceBehavior === "overage" && entitlement.feature.featureType === "event" && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
20218
|
+
"/",
|
|
20219
|
+
shortenPeriod(
|
|
20220
|
+
selectedPeriod
|
|
20221
|
+
)
|
|
20222
|
+
] })
|
|
20223
|
+
] }) : entitlement.feature.name
|
|
20224
|
+
}
|
|
20225
|
+
),
|
|
20226
|
+
entitlement.priceBehavior === "overage" && typeof entitlementPrice === "number" && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
20227
|
+
Text,
|
|
20228
|
+
{
|
|
20229
|
+
$font: theme.typography.text.fontFamily,
|
|
20230
|
+
$size: 0.875 * theme.typography.text.fontSize,
|
|
20231
|
+
$weight: theme.typography.text.fontWeight,
|
|
20232
|
+
$color: hexToHSL(
|
|
20233
|
+
theme.typography.text.color
|
|
20234
|
+
).l > 50 ? darken(
|
|
20235
|
+
theme.typography.text.color,
|
|
20236
|
+
0.46
|
|
20237
|
+
) : lighten(
|
|
20238
|
+
theme.typography.text.color,
|
|
20239
|
+
0.46
|
|
20240
|
+
),
|
|
20241
|
+
$leading: 1.35,
|
|
20242
|
+
children: [
|
|
20243
|
+
formatCurrency(
|
|
20244
|
+
entitlementPrice,
|
|
20245
|
+
entitlementCurrency
|
|
20246
|
+
),
|
|
20247
|
+
"/",
|
|
20248
|
+
getFeatureName(
|
|
20249
|
+
entitlement.feature,
|
|
20250
|
+
1
|
|
20251
|
+
),
|
|
20252
|
+
entitlement.feature.featureType === "trait" && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
20253
|
+
"/",
|
|
20254
|
+
shortenPeriod(selectedPeriod)
|
|
20255
|
+
] }),
|
|
20256
|
+
" ",
|
|
20257
|
+
t2("overage fee")
|
|
20258
|
+
]
|
|
20259
|
+
}
|
|
19655
20260
|
)
|
|
19656
|
-
|
|
19657
|
-
|
|
19658
|
-
|
|
19659
|
-
|
|
19660
|
-
|
|
19661
|
-
|
|
19662
|
-
|
|
19663
|
-
|
|
19664
|
-
|
|
19665
|
-
current_year: "year"
|
|
19666
|
-
}[entitlement.metricPeriod]
|
|
19667
|
-
] })
|
|
19668
|
-
] }) : entitlement.feature.name
|
|
19669
|
-
}
|
|
19670
|
-
) })
|
|
19671
|
-
] }, entitlement.id)
|
|
19672
|
-
);
|
|
19673
|
-
return acc;
|
|
19674
|
-
}, []).slice(0, count?.limit ?? VISIBLE_ENTITLEMENT_COUNT),
|
|
20261
|
+
]
|
|
20262
|
+
}
|
|
20263
|
+
)
|
|
20264
|
+
] }, entitlementIndex)
|
|
20265
|
+
);
|
|
20266
|
+
return acc;
|
|
20267
|
+
},
|
|
20268
|
+
[]
|
|
20269
|
+
).slice(0, count?.limit ?? VISIBLE_ENTITLEMENT_COUNT),
|
|
19675
20270
|
(count?.size || plan.entitlements.length) > VISIBLE_ENTITLEMENT_COUNT && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
19676
20271
|
Flex,
|
|
19677
20272
|
{
|
|
@@ -19698,8 +20293,8 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19698
20293
|
$font: theme.typography.link.fontFamily,
|
|
19699
20294
|
$size: theme.typography.link.fontSize,
|
|
19700
20295
|
$weight: theme.typography.link.fontWeight,
|
|
19701
|
-
$leading: 1,
|
|
19702
20296
|
$color: theme.typography.link.color,
|
|
20297
|
+
$leading: 1,
|
|
19703
20298
|
style: { cursor: "pointer" },
|
|
19704
20299
|
children: isExpanded ? t2("Hide all") : t2("See all")
|
|
19705
20300
|
}
|
|
@@ -19730,9 +20325,11 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19730
20325
|
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
19731
20326
|
Text,
|
|
19732
20327
|
{
|
|
20328
|
+
$font: theme.typography.text.fontFamily,
|
|
19733
20329
|
$size: 15,
|
|
19734
|
-
$
|
|
20330
|
+
$weight: theme.typography.text.fontWeight,
|
|
19735
20331
|
$color: theme.typography.text.color,
|
|
20332
|
+
$leading: 1,
|
|
19736
20333
|
children: t2("Current plan")
|
|
19737
20334
|
}
|
|
19738
20335
|
)
|
|
@@ -19753,7 +20350,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19753
20350
|
setLayout("checkout");
|
|
19754
20351
|
}
|
|
19755
20352
|
},
|
|
19756
|
-
...
|
|
20353
|
+
...planIndex > currentPlanIndex ? {
|
|
19757
20354
|
$size: props.upgrade.buttonSize,
|
|
19758
20355
|
$color: props.upgrade.buttonStyle,
|
|
19759
20356
|
$variant: "filled"
|
|
@@ -19785,7 +20382,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19785
20382
|
)
|
|
19786
20383
|
]
|
|
19787
20384
|
},
|
|
19788
|
-
|
|
20385
|
+
planIndex
|
|
19789
20386
|
);
|
|
19790
20387
|
})
|
|
19791
20388
|
}
|
|
@@ -19816,8 +20413,9 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19816
20413
|
$display: "grid",
|
|
19817
20414
|
$gridTemplateColumns: "repeat(auto-fill, minmax(320px, 1fr))",
|
|
19818
20415
|
$gap: "1rem",
|
|
19819
|
-
children: addOns.map((addOn,
|
|
20416
|
+
children: addOns.map((addOn, addOnIndex) => {
|
|
19820
20417
|
const isActiveAddOn = addOn.current && selectedPeriod === data.company?.addOns.find((a2) => a2.id === addOn.id)?.planPeriod;
|
|
20418
|
+
const { price: addOnPrice, currency: addOnCurrency } = (selectedPeriod === "month" ? addOn.monthlyPrice : selectedPeriod === "year" && addOn.yearlyPrice) || {};
|
|
19821
20419
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
19822
20420
|
Flex,
|
|
19823
20421
|
{
|
|
@@ -19861,10 +20459,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19861
20459
|
$size: theme.typography[props.plans.name.fontStyle].fontSize,
|
|
19862
20460
|
$weight: theme.typography[props.plans.name.fontStyle].fontWeight,
|
|
19863
20461
|
$color: theme.typography[props.plans.name.fontStyle].color,
|
|
19864
|
-
children: formatCurrency(
|
|
19865
|
-
(selectedPeriod === "month" ? addOn.monthlyPrice : addOn.yearlyPrice)?.price ?? 0,
|
|
19866
|
-
(selectedPeriod === "month" ? addOn.monthlyPrice : addOn.yearlyPrice)?.currency
|
|
19867
|
-
)
|
|
20462
|
+
children: formatCurrency(addOnPrice ?? 0, addOnCurrency)
|
|
19868
20463
|
}
|
|
19869
20464
|
),
|
|
19870
20465
|
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
@@ -19902,7 +20497,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19902
20497
|
$flexDirection: "column",
|
|
19903
20498
|
$justifyContent: "end",
|
|
19904
20499
|
$gap: `${cardPadding}rem`,
|
|
19905
|
-
$flexGrow:
|
|
20500
|
+
$flexGrow: 1,
|
|
19906
20501
|
children: [
|
|
19907
20502
|
props.addOns.showEntitlements && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
19908
20503
|
Flex,
|
|
@@ -19910,59 +20505,70 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19910
20505
|
$flexDirection: "column",
|
|
19911
20506
|
$position: "relative",
|
|
19912
20507
|
$gap: "1rem",
|
|
19913
|
-
$flexGrow:
|
|
19914
|
-
children: addOn.entitlements.map(
|
|
19915
|
-
|
|
19916
|
-
|
|
19917
|
-
|
|
19918
|
-
|
|
19919
|
-
|
|
19920
|
-
|
|
19921
|
-
|
|
19922
|
-
|
|
19923
|
-
|
|
19924
|
-
|
|
19925
|
-
|
|
19926
|
-
|
|
19927
|
-
|
|
19928
|
-
|
|
19929
|
-
|
|
19930
|
-
|
|
19931
|
-
|
|
19932
|
-
|
|
19933
|
-
|
|
19934
|
-
|
|
19935
|
-
|
|
19936
|
-
|
|
19937
|
-
|
|
19938
|
-
|
|
19939
|
-
|
|
19940
|
-
|
|
19941
|
-
|
|
19942
|
-
entitlement.valueType === "unlimited" ?
|
|
19943
|
-
|
|
19944
|
-
|
|
19945
|
-
|
|
19946
|
-
|
|
19947
|
-
|
|
19948
|
-
|
|
19949
|
-
|
|
19950
|
-
|
|
19951
|
-
|
|
19952
|
-
|
|
19953
|
-
|
|
19954
|
-
|
|
19955
|
-
|
|
19956
|
-
}
|
|
19957
|
-
|
|
19958
|
-
|
|
19959
|
-
|
|
19960
|
-
|
|
19961
|
-
|
|
19962
|
-
|
|
19963
|
-
|
|
19964
|
-
|
|
19965
|
-
|
|
20508
|
+
$flexGrow: 1,
|
|
20509
|
+
children: addOn.entitlements.map(
|
|
20510
|
+
(entitlement, entitlementIndex) => {
|
|
20511
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
20512
|
+
Flex,
|
|
20513
|
+
{
|
|
20514
|
+
$flexWrap: "wrap",
|
|
20515
|
+
$justifyContent: "space-between",
|
|
20516
|
+
$alignItems: "center",
|
|
20517
|
+
$gap: "1rem",
|
|
20518
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Flex, { $gap: "1rem", children: [
|
|
20519
|
+
props.addOns.showFeatureIcons && entitlement.feature?.icon && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
20520
|
+
IconRound,
|
|
20521
|
+
{
|
|
20522
|
+
name: entitlement.feature.icon,
|
|
20523
|
+
size: "sm",
|
|
20524
|
+
colors: [
|
|
20525
|
+
theme.primary,
|
|
20526
|
+
isLightBackground ? "hsla(0, 0%, 0%, 0.0625)" : "hsla(0, 0%, 100%, 0.25)"
|
|
20527
|
+
]
|
|
20528
|
+
}
|
|
20529
|
+
),
|
|
20530
|
+
entitlement.feature?.name && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Flex, { $alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
20531
|
+
Text,
|
|
20532
|
+
{
|
|
20533
|
+
$font: theme.typography.text.fontFamily,
|
|
20534
|
+
$size: theme.typography.text.fontSize,
|
|
20535
|
+
$weight: theme.typography.text.fontWeight,
|
|
20536
|
+
$color: theme.typography.text.color,
|
|
20537
|
+
children: entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
20538
|
+
entitlement.valueType === "unlimited" ? t2("Unlimited", {
|
|
20539
|
+
item: getFeatureName(
|
|
20540
|
+
entitlement.feature
|
|
20541
|
+
)
|
|
20542
|
+
}) : typeof entitlement.valueNumeric === "number" && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
20543
|
+
formatNumber(
|
|
20544
|
+
entitlement.valueNumeric
|
|
20545
|
+
),
|
|
20546
|
+
" ",
|
|
20547
|
+
getFeatureName(
|
|
20548
|
+
entitlement.feature,
|
|
20549
|
+
entitlement.valueNumeric
|
|
20550
|
+
)
|
|
20551
|
+
] }),
|
|
20552
|
+
entitlement.metricPeriod && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
20553
|
+
" ",
|
|
20554
|
+
t2("per"),
|
|
20555
|
+
" ",
|
|
20556
|
+
{
|
|
20557
|
+
billing: "billing period",
|
|
20558
|
+
current_day: "day",
|
|
20559
|
+
current_month: "month",
|
|
20560
|
+
current_year: "year"
|
|
20561
|
+
}[entitlement.metricPeriod]
|
|
20562
|
+
] })
|
|
20563
|
+
] }) : entitlement.feature.name
|
|
20564
|
+
}
|
|
20565
|
+
) })
|
|
20566
|
+
] })
|
|
20567
|
+
},
|
|
20568
|
+
entitlementIndex
|
|
20569
|
+
);
|
|
20570
|
+
}
|
|
20571
|
+
)
|
|
19966
20572
|
}
|
|
19967
20573
|
),
|
|
19968
20574
|
props.upgrade.isVisible && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
@@ -19989,7 +20595,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
|
|
|
19989
20595
|
)
|
|
19990
20596
|
]
|
|
19991
20597
|
},
|
|
19992
|
-
|
|
20598
|
+
addOnIndex
|
|
19993
20599
|
);
|
|
19994
20600
|
})
|
|
19995
20601
|
}
|
|
@@ -20340,14 +20946,28 @@ var ComponentTree = () => {
|
|
|
20340
20946
|
|
|
20341
20947
|
// src/components/embed/Embed.tsx
|
|
20342
20948
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
20343
|
-
var SchematicEmbed = ({
|
|
20949
|
+
var SchematicEmbed = ({
|
|
20950
|
+
id,
|
|
20951
|
+
accessToken,
|
|
20952
|
+
apiConfig,
|
|
20953
|
+
debug
|
|
20954
|
+
}) => {
|
|
20344
20955
|
if (accessToken?.length === 0) {
|
|
20345
20956
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { children: "Please provide an access token." });
|
|
20346
20957
|
}
|
|
20347
20958
|
if (!accessToken?.startsWith("token_")) {
|
|
20348
20959
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { children: 'Invalid access token; your temporary access token will start with "token_".' });
|
|
20349
20960
|
}
|
|
20350
|
-
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
20961
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
20962
|
+
EmbedProvider,
|
|
20963
|
+
{
|
|
20964
|
+
id,
|
|
20965
|
+
accessToken,
|
|
20966
|
+
apiConfig,
|
|
20967
|
+
debug,
|
|
20968
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ComponentTree, {})
|
|
20969
|
+
}
|
|
20970
|
+
);
|
|
20351
20971
|
};
|
|
20352
20972
|
/*! Bundled license information:
|
|
20353
20973
|
|