@trops/dash-react 1.0.51 → 1.0.53
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/index.js +654 -14
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import * as SolidIcons from '@fortawesome/free-solid-svg-icons';
|
|
|
3
3
|
import { faCheck } from '@fortawesome/free-solid-svg-icons';
|
|
4
4
|
export * from '@fortawesome/free-solid-svg-icons';
|
|
5
5
|
import * as BrandIcons from '@fortawesome/free-brands-svg-icons';
|
|
6
|
-
import React, { createContext, useContext, useState, useCallback, useMemo,
|
|
6
|
+
import React, { createContext, useContext, useState, useCallback, useMemo, useRef, useEffect, createElement, Fragment, Children } from 'react';
|
|
7
7
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
8
8
|
import { Dialog, Transition } from '@headlessui/react';
|
|
9
9
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
@@ -30,27 +30,28 @@ var ThemeContext = /*#__PURE__*/createContext({
|
|
|
30
30
|
rawThemes: null
|
|
31
31
|
});
|
|
32
32
|
|
|
33
|
+
function _createForOfIteratorHelper$2(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$k(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
33
34
|
function _typeof$K(o) { "@babel/helpers - typeof"; return _typeof$K = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof$K(o); }
|
|
34
35
|
function ownKeys$E(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
35
36
|
function _objectSpread$E(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$E(Object(t), !0).forEach(function (r) { _defineProperty$F(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$E(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
36
37
|
function _defineProperty$F(e, r, t) { return (r = _toPropertyKey$J(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
37
38
|
function _toPropertyKey$J(t) { var i = _toPrimitive$J(t, "string"); return "symbol" == _typeof$K(i) ? i : i + ""; }
|
|
38
39
|
function _toPrimitive$J(t, r) { if ("object" != _typeof$K(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof$K(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
39
|
-
function _slicedToArray$
|
|
40
|
-
function _nonIterableRest$
|
|
41
|
-
function _unsupportedIterableToArray$
|
|
42
|
-
function _arrayLikeToArray$
|
|
43
|
-
function _iterableToArrayLimit$
|
|
44
|
-
function _arrayWithHoles$
|
|
40
|
+
function _slicedToArray$g(r, e) { return _arrayWithHoles$g(r) || _iterableToArrayLimit$g(r, e) || _unsupportedIterableToArray$k(r, e) || _nonIterableRest$g(); }
|
|
41
|
+
function _nonIterableRest$g() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
42
|
+
function _unsupportedIterableToArray$k(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$k(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$k(r, a) : void 0; } }
|
|
43
|
+
function _arrayLikeToArray$k(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
44
|
+
function _iterableToArrayLimit$g(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
45
|
+
function _arrayWithHoles$g(r) { if (Array.isArray(r)) return r; }
|
|
45
46
|
var ThemePreviewProvider = function ThemePreviewProvider(_ref) {
|
|
46
47
|
var children = _ref.children;
|
|
47
48
|
var parentCtx = useContext(ThemeContext);
|
|
48
49
|
var _useState = useState(null),
|
|
49
|
-
_useState2 = _slicedToArray$
|
|
50
|
+
_useState2 = _slicedToArray$g(_useState, 2),
|
|
50
51
|
previewTheme = _useState2[0],
|
|
51
52
|
setPreviewThemeState = _useState2[1];
|
|
52
53
|
var _useState3 = useState(true),
|
|
53
|
-
_useState4 = _slicedToArray$
|
|
54
|
+
_useState4 = _slicedToArray$g(_useState3, 2),
|
|
54
55
|
showPreview = _useState4[0],
|
|
55
56
|
setShowPreview = _useState4[1];
|
|
56
57
|
var isPreview = previewTheme !== null && showPreview;
|
|
@@ -76,6 +77,70 @@ var ThemePreviewProvider = function ThemePreviewProvider(_ref) {
|
|
|
76
77
|
});
|
|
77
78
|
}, [parentCtx, isPreview, previewTheme]);
|
|
78
79
|
|
|
80
|
+
// Inject CSS custom properties when the active theme has a
|
|
81
|
+
// `cssVars` map. ThemeModel emits this for themes with
|
|
82
|
+
// arbitrary-color (hex) channels — see PRD
|
|
83
|
+
// `arbitrary-color-themes.md`, FR-003. Tracks which variables we
|
|
84
|
+
// wrote so a transition theme-with-cssVars → theme-without
|
|
85
|
+
// cleanly removes them (no flash: we set the new set before
|
|
86
|
+
// removing the stale ones).
|
|
87
|
+
var writtenVarsRef = useRef(new Set());
|
|
88
|
+
useEffect(function () {
|
|
89
|
+
var _ctxValue$currentThem;
|
|
90
|
+
var cssVars = ctxValue === null || ctxValue === void 0 || (_ctxValue$currentThem = ctxValue.currentTheme) === null || _ctxValue$currentThem === void 0 ? void 0 : _ctxValue$currentThem.cssVars;
|
|
91
|
+
var root = typeof document !== "undefined" ? document.documentElement : null;
|
|
92
|
+
if (!root) return undefined;
|
|
93
|
+
var newSet = new Set();
|
|
94
|
+
if (cssVars && _typeof$K(cssVars) === "object") {
|
|
95
|
+
for (var _i = 0, _Object$entries = Object.entries(cssVars); _i < _Object$entries.length; _i++) {
|
|
96
|
+
var _Object$entries$_i = _slicedToArray$g(_Object$entries[_i], 2),
|
|
97
|
+
varName = _Object$entries$_i[0],
|
|
98
|
+
value = _Object$entries$_i[1];
|
|
99
|
+
root.style.setProperty(varName, value);
|
|
100
|
+
newSet.add(varName);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Remove any vars from a prior theme that aren't in the new set.
|
|
104
|
+
var _iterator = _createForOfIteratorHelper$2(writtenVarsRef.current),
|
|
105
|
+
_step;
|
|
106
|
+
try {
|
|
107
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
108
|
+
var _varName = _step.value;
|
|
109
|
+
if (!newSet.has(_varName)) {
|
|
110
|
+
root.style.removeProperty(_varName);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
} catch (err) {
|
|
114
|
+
_iterator.e(err);
|
|
115
|
+
} finally {
|
|
116
|
+
_iterator.f();
|
|
117
|
+
}
|
|
118
|
+
writtenVarsRef.current = newSet;
|
|
119
|
+
return undefined;
|
|
120
|
+
}, [ctxValue]);
|
|
121
|
+
|
|
122
|
+
// Final cleanup on unmount — remove any vars still attached to
|
|
123
|
+
// :root so the theme system leaves no stylesheet residue.
|
|
124
|
+
useEffect(function () {
|
|
125
|
+
return function () {
|
|
126
|
+
var root = typeof document !== "undefined" ? document.documentElement : null;
|
|
127
|
+
if (!root) return;
|
|
128
|
+
var _iterator2 = _createForOfIteratorHelper$2(writtenVarsRef.current),
|
|
129
|
+
_step2;
|
|
130
|
+
try {
|
|
131
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
132
|
+
var varName = _step2.value;
|
|
133
|
+
root.style.removeProperty(varName);
|
|
134
|
+
}
|
|
135
|
+
} catch (err) {
|
|
136
|
+
_iterator2.e(err);
|
|
137
|
+
} finally {
|
|
138
|
+
_iterator2.f();
|
|
139
|
+
}
|
|
140
|
+
writtenVarsRef.current = new Set();
|
|
141
|
+
};
|
|
142
|
+
}, []);
|
|
143
|
+
|
|
79
144
|
// Preview control bag — passed to render-prop children and available via useThemePreview
|
|
80
145
|
var previewControls = useMemo(function () {
|
|
81
146
|
return {
|
|
@@ -508,12 +573,12 @@ var styleClassNames = {
|
|
|
508
573
|
|
|
509
574
|
var _themeObjects$BUTTON, _themeObjects$BUTTON_, _themeObjects$BUTTON_2, _themeObjects$BUTTON_3, _themeObjects$BUTTON_4, _themeObjects$BUTTON_5, _themeObjects$MENU_IT, _themeObjects$TABS_TR, _colorMap;
|
|
510
575
|
function _typeof$J(o) { "@babel/helpers - typeof"; return _typeof$J = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof$J(o); }
|
|
511
|
-
function _toConsumableArray$5(r) { return _arrayWithoutHoles$5(r) || _iterableToArray$5(r) || _unsupportedIterableToArray$
|
|
576
|
+
function _toConsumableArray$5(r) { return _arrayWithoutHoles$5(r) || _iterableToArray$5(r) || _unsupportedIterableToArray$j(r) || _nonIterableSpread$5(); }
|
|
512
577
|
function _nonIterableSpread$5() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
513
|
-
function _unsupportedIterableToArray$
|
|
578
|
+
function _unsupportedIterableToArray$j(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$j(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$j(r, a) : void 0; } }
|
|
514
579
|
function _iterableToArray$5(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
515
|
-
function _arrayWithoutHoles$5(r) { if (Array.isArray(r)) return _arrayLikeToArray$
|
|
516
|
-
function _arrayLikeToArray$
|
|
580
|
+
function _arrayWithoutHoles$5(r) { if (Array.isArray(r)) return _arrayLikeToArray$j(r); }
|
|
581
|
+
function _arrayLikeToArray$j(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
517
582
|
function ownKeys$D(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
518
583
|
function _objectSpread$D(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$D(Object(t), !0).forEach(function (r) { _defineProperty$E(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$D(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
519
584
|
function _defineProperty$E(e, r, t) { return (r = _toPropertyKey$I(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -919,6 +984,581 @@ var getDefaultStylesForItem = function getDefaultStylesForItem(itemName) {
|
|
|
919
984
|
return itemName in colorMap ? _objectSpread$D({}, colorMap[itemName]) : {};
|
|
920
985
|
};
|
|
921
986
|
|
|
987
|
+
function _slicedToArray$f(r, e) { return _arrayWithHoles$f(r) || _iterableToArrayLimit$f(r, e) || _unsupportedIterableToArray$i(r, e) || _nonIterableRest$f(); }
|
|
988
|
+
function _nonIterableRest$f() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
989
|
+
function _unsupportedIterableToArray$i(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$i(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$i(r, a) : void 0; } }
|
|
990
|
+
function _arrayLikeToArray$i(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
991
|
+
function _iterableToArrayLimit$f(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
992
|
+
function _arrayWithHoles$f(r) { if (Array.isArray(r)) return r; }
|
|
993
|
+
/**
|
|
994
|
+
* colorMath — pure-function helpers for working with hex colors.
|
|
995
|
+
*
|
|
996
|
+
* Used by the theme system to support arbitrary-color themes (PRD:
|
|
997
|
+
* `dash-electron/docs/requirements/prd/arbitrary-color-themes.md`).
|
|
998
|
+
* Standalone — no React, no dependencies beyond JavaScript primitives.
|
|
999
|
+
*
|
|
1000
|
+
* Exports:
|
|
1001
|
+
* - isHexColor(value) → boolean
|
|
1002
|
+
* - normalizeHex(input) → "#rrggbb" or null
|
|
1003
|
+
* - hexToRgb(hex) → { r, g, b } or null
|
|
1004
|
+
* - rgbToHex({r,g,b}) → "#rrggbb"
|
|
1005
|
+
* - rgbToHsl({r,g,b}) → { h, s, l } (h 0..360, s/l 0..1)
|
|
1006
|
+
* - hslToRgb({h,s,l}) → { r, g, b } (0..255)
|
|
1007
|
+
* - deriveShades(hex) → { 50, 100, 200, ..., 950 } hex map
|
|
1008
|
+
* - contrastRatio(hexA, hexB) → 1..21
|
|
1009
|
+
*/
|
|
1010
|
+
|
|
1011
|
+
var HEX_REGEX = /^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;
|
|
1012
|
+
function isHexColor(value) {
|
|
1013
|
+
return typeof value === "string" && HEX_REGEX.test(value.trim());
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
/**
|
|
1017
|
+
* Normalize a user-supplied hex string. Accepts `4A154B`, `#4A154B`,
|
|
1018
|
+
* `#abc`, `#abcd`, `#aabbccdd`. Returns lowercase `#rrggbb` (alpha
|
|
1019
|
+
* dropped) or null if invalid.
|
|
1020
|
+
*/
|
|
1021
|
+
function normalizeHex(input) {
|
|
1022
|
+
if (typeof input !== "string") return null;
|
|
1023
|
+
var s = input.trim().toLowerCase();
|
|
1024
|
+
if (!s.startsWith("#")) s = "#".concat(s);
|
|
1025
|
+
if (!HEX_REGEX.test(s)) return null;
|
|
1026
|
+
if (s.length === 4) {
|
|
1027
|
+
// #rgb → #rrggbb
|
|
1028
|
+
s = "#".concat(s[1]).concat(s[1]).concat(s[2]).concat(s[2]).concat(s[3]).concat(s[3]);
|
|
1029
|
+
} else if (s.length === 5) {
|
|
1030
|
+
// #rgba → #rrggbb (drop alpha)
|
|
1031
|
+
s = "#".concat(s[1]).concat(s[1]).concat(s[2]).concat(s[2]).concat(s[3]).concat(s[3]);
|
|
1032
|
+
} else if (s.length === 9) {
|
|
1033
|
+
// #rrggbbaa → #rrggbb
|
|
1034
|
+
s = s.slice(0, 7);
|
|
1035
|
+
}
|
|
1036
|
+
return s;
|
|
1037
|
+
}
|
|
1038
|
+
function hexToRgb(hex) {
|
|
1039
|
+
var normalized = normalizeHex(hex);
|
|
1040
|
+
if (!normalized) return null;
|
|
1041
|
+
var n = parseInt(normalized.slice(1), 16);
|
|
1042
|
+
return {
|
|
1043
|
+
r: n >> 16 & 0xff,
|
|
1044
|
+
g: n >> 8 & 0xff,
|
|
1045
|
+
b: n & 0xff
|
|
1046
|
+
};
|
|
1047
|
+
}
|
|
1048
|
+
function rgbToHex(_ref) {
|
|
1049
|
+
var r = _ref.r,
|
|
1050
|
+
g = _ref.g,
|
|
1051
|
+
b = _ref.b;
|
|
1052
|
+
var clamp = function clamp(v) {
|
|
1053
|
+
return Math.max(0, Math.min(255, Math.round(v)));
|
|
1054
|
+
};
|
|
1055
|
+
var toHex = function toHex(v) {
|
|
1056
|
+
return clamp(v).toString(16).padStart(2, "0");
|
|
1057
|
+
};
|
|
1058
|
+
return "#".concat(toHex(r)).concat(toHex(g)).concat(toHex(b));
|
|
1059
|
+
}
|
|
1060
|
+
function rgbToHsl(_ref2) {
|
|
1061
|
+
var r = _ref2.r,
|
|
1062
|
+
g = _ref2.g,
|
|
1063
|
+
b = _ref2.b;
|
|
1064
|
+
var R = r / 255;
|
|
1065
|
+
var G = g / 255;
|
|
1066
|
+
var B = b / 255;
|
|
1067
|
+
var max = Math.max(R, G, B);
|
|
1068
|
+
var min = Math.min(R, G, B);
|
|
1069
|
+
var l = (max + min) / 2;
|
|
1070
|
+
var h = 0;
|
|
1071
|
+
var s = 0;
|
|
1072
|
+
if (max !== min) {
|
|
1073
|
+
var d = max - min;
|
|
1074
|
+
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
1075
|
+
switch (max) {
|
|
1076
|
+
case R:
|
|
1077
|
+
h = (G - B) / d + (G < B ? 6 : 0);
|
|
1078
|
+
break;
|
|
1079
|
+
case G:
|
|
1080
|
+
h = (B - R) / d + 2;
|
|
1081
|
+
break;
|
|
1082
|
+
default:
|
|
1083
|
+
h = (R - G) / d + 4;
|
|
1084
|
+
break;
|
|
1085
|
+
}
|
|
1086
|
+
h *= 60;
|
|
1087
|
+
}
|
|
1088
|
+
return {
|
|
1089
|
+
h: h,
|
|
1090
|
+
s: s,
|
|
1091
|
+
l: l
|
|
1092
|
+
};
|
|
1093
|
+
}
|
|
1094
|
+
function hslToRgb(_ref3) {
|
|
1095
|
+
var h = _ref3.h,
|
|
1096
|
+
s = _ref3.s,
|
|
1097
|
+
l = _ref3.l;
|
|
1098
|
+
if (s === 0) {
|
|
1099
|
+
var v = l * 255;
|
|
1100
|
+
return {
|
|
1101
|
+
r: v,
|
|
1102
|
+
g: v,
|
|
1103
|
+
b: v
|
|
1104
|
+
};
|
|
1105
|
+
}
|
|
1106
|
+
var c = (1 - Math.abs(2 * l - 1)) * s;
|
|
1107
|
+
var x = c * (1 - Math.abs(h / 60 % 2 - 1));
|
|
1108
|
+
var m = l - c / 2;
|
|
1109
|
+
var rp;
|
|
1110
|
+
var gp;
|
|
1111
|
+
var bp;
|
|
1112
|
+
if (h < 60) {
|
|
1113
|
+
rp = c;
|
|
1114
|
+
gp = x;
|
|
1115
|
+
bp = 0;
|
|
1116
|
+
} else if (h < 120) {
|
|
1117
|
+
rp = x;
|
|
1118
|
+
gp = c;
|
|
1119
|
+
bp = 0;
|
|
1120
|
+
} else if (h < 180) {
|
|
1121
|
+
rp = 0;
|
|
1122
|
+
gp = c;
|
|
1123
|
+
bp = x;
|
|
1124
|
+
} else if (h < 240) {
|
|
1125
|
+
rp = 0;
|
|
1126
|
+
gp = x;
|
|
1127
|
+
bp = c;
|
|
1128
|
+
} else if (h < 300) {
|
|
1129
|
+
rp = x;
|
|
1130
|
+
gp = 0;
|
|
1131
|
+
bp = c;
|
|
1132
|
+
} else {
|
|
1133
|
+
rp = c;
|
|
1134
|
+
gp = 0;
|
|
1135
|
+
bp = x;
|
|
1136
|
+
}
|
|
1137
|
+
return {
|
|
1138
|
+
r: (rp + m) * 255,
|
|
1139
|
+
g: (gp + m) * 255,
|
|
1140
|
+
b: (bp + m) * 255
|
|
1141
|
+
};
|
|
1142
|
+
}
|
|
1143
|
+
|
|
1144
|
+
/**
|
|
1145
|
+
* Derive an 11-shade Tailwind-like palette from a base hex.
|
|
1146
|
+
*
|
|
1147
|
+
* Returns `{ "50": "#…", "100": "#…", …, "900": "#…", "950": "#…" }`.
|
|
1148
|
+
*
|
|
1149
|
+
* Strategy: keep the input's hue + saturation; vary lightness across
|
|
1150
|
+
* fixed targets that approximate Tailwind's stock palette structure.
|
|
1151
|
+
* Shade `500` preserves the user's lightness (so picking a known
|
|
1152
|
+
* Tailwind hex like `#3b82f6` produces a `500` close to Tailwind
|
|
1153
|
+
* `blue-500`). Lighter shades approach white; darker approach black.
|
|
1154
|
+
*
|
|
1155
|
+
* For very dark (`l < 0.20`) or very light (`l > 0.80`) inputs we
|
|
1156
|
+
* snap shade `500` to `0.50` so the ramp stays balanced — otherwise
|
|
1157
|
+
* the input might land at e.g. shade `900` and produce no visible
|
|
1158
|
+
* darker steps.
|
|
1159
|
+
*/
|
|
1160
|
+
function deriveShades(hex) {
|
|
1161
|
+
var rgb = hexToRgb(hex);
|
|
1162
|
+
if (!rgb) return null;
|
|
1163
|
+
var _rgbToHsl = rgbToHsl(rgb),
|
|
1164
|
+
h = _rgbToHsl.h,
|
|
1165
|
+
s = _rgbToHsl.s,
|
|
1166
|
+
l = _rgbToHsl.l;
|
|
1167
|
+
var baseL = l < 0.2 || l > 0.8 ? 0.5 : l;
|
|
1168
|
+
var targets = {
|
|
1169
|
+
50: 0.96,
|
|
1170
|
+
100: 0.9,
|
|
1171
|
+
200: 0.8,
|
|
1172
|
+
300: 0.68,
|
|
1173
|
+
400: 0.55,
|
|
1174
|
+
500: baseL,
|
|
1175
|
+
600: 0.42,
|
|
1176
|
+
700: 0.32,
|
|
1177
|
+
800: 0.22,
|
|
1178
|
+
900: 0.13,
|
|
1179
|
+
950: 0.08
|
|
1180
|
+
};
|
|
1181
|
+
// Slight saturation curve: lighter shades fade saturation toward
|
|
1182
|
+
// white-ish; darker shades fade toward black-ish. Mirrors how
|
|
1183
|
+
// Tailwind's stock palette feels.
|
|
1184
|
+
var satFor = function satFor(targetL) {
|
|
1185
|
+
if (targetL > 0.85) return s * 0.4;
|
|
1186
|
+
if (targetL < 0.15) return s * 0.7;
|
|
1187
|
+
return s;
|
|
1188
|
+
};
|
|
1189
|
+
var out = {};
|
|
1190
|
+
for (var _i = 0, _Object$entries = Object.entries(targets); _i < _Object$entries.length; _i++) {
|
|
1191
|
+
var _Object$entries$_i = _slicedToArray$f(_Object$entries[_i], 2),
|
|
1192
|
+
shade = _Object$entries$_i[0],
|
|
1193
|
+
targetL = _Object$entries$_i[1];
|
|
1194
|
+
var rgbOut = hslToRgb({
|
|
1195
|
+
h: h,
|
|
1196
|
+
s: satFor(targetL),
|
|
1197
|
+
l: targetL
|
|
1198
|
+
});
|
|
1199
|
+
out[shade] = rgbToHex(rgbOut);
|
|
1200
|
+
}
|
|
1201
|
+
return out;
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
/**
|
|
1205
|
+
* WCAG-relative luminance (0..1). Used by `contrastRatio`.
|
|
1206
|
+
*/
|
|
1207
|
+
function relativeLuminance(_ref4) {
|
|
1208
|
+
var r = _ref4.r,
|
|
1209
|
+
g = _ref4.g,
|
|
1210
|
+
b = _ref4.b;
|
|
1211
|
+
var channel = function channel(v) {
|
|
1212
|
+
var sRGB = v / 255;
|
|
1213
|
+
return sRGB <= 0.03928 ? sRGB / 12.92 : Math.pow((sRGB + 0.055) / 1.055, 2.4);
|
|
1214
|
+
};
|
|
1215
|
+
return 0.2126 * channel(r) + 0.7152 * channel(g) + 0.0722 * channel(b);
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1218
|
+
/**
|
|
1219
|
+
* WCAG contrast ratio between two hex colors. Returns a value in
|
|
1220
|
+
* [1, 21]. WCAG AA target is 4.5 for normal text; AAA is 7.
|
|
1221
|
+
*/
|
|
1222
|
+
function contrastRatio(hexA, hexB) {
|
|
1223
|
+
var rgbA = hexToRgb(hexA);
|
|
1224
|
+
var rgbB = hexToRgb(hexB);
|
|
1225
|
+
if (!rgbA || !rgbB) return null;
|
|
1226
|
+
var lA = relativeLuminance(rgbA);
|
|
1227
|
+
var lB = relativeLuminance(rgbB);
|
|
1228
|
+
var lighter = Math.max(lA, lB);
|
|
1229
|
+
var darker = Math.min(lA, lB);
|
|
1230
|
+
return (lighter + 0.05) / (darker + 0.05);
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1233
|
+
function _slicedToArray$e(r, e) { return _arrayWithHoles$e(r) || _iterableToArrayLimit$e(r, e) || _unsupportedIterableToArray$h(r, e) || _nonIterableRest$e(); }
|
|
1234
|
+
function _nonIterableRest$e() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
1235
|
+
function _unsupportedIterableToArray$h(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$h(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$h(r, a) : void 0; } }
|
|
1236
|
+
function _arrayLikeToArray$h(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
1237
|
+
function _iterableToArrayLimit$e(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
1238
|
+
function _arrayWithHoles$e(r) { if (Array.isArray(r)) return r; }
|
|
1239
|
+
/**
|
|
1240
|
+
* tailwindPalette — frozen snapshot of Tailwind v3's color palette.
|
|
1241
|
+
*
|
|
1242
|
+
* Extracted from `tailwindcss/lib/public/colors.js` at the time this
|
|
1243
|
+
* file was written. Used by the theme system to resolve named-color
|
|
1244
|
+
* tokens (`bg-blue-700`) back to their hex CSS values so inline-style
|
|
1245
|
+
* consumers can pull the same color as className consumers — see the
|
|
1246
|
+
* `cssValue` accessor on themes (PRD: arbitrary-color-themes.md US-007).
|
|
1247
|
+
*
|
|
1248
|
+
* Includes the 22 color families the theme picker exposes × 11 shades
|
|
1249
|
+
* (50..950). If Tailwind ever ships a different family or shade we'll
|
|
1250
|
+
* either inline it here or accept that custom-color themes are the
|
|
1251
|
+
* only path to those values.
|
|
1252
|
+
*/
|
|
1253
|
+
var TAILWIND_PALETTE = {
|
|
1254
|
+
gray: {
|
|
1255
|
+
50: "#f9fafb",
|
|
1256
|
+
100: "#f3f4f6",
|
|
1257
|
+
200: "#e5e7eb",
|
|
1258
|
+
300: "#d1d5db",
|
|
1259
|
+
400: "#9ca3af",
|
|
1260
|
+
500: "#6b7280",
|
|
1261
|
+
600: "#4b5563",
|
|
1262
|
+
700: "#374151",
|
|
1263
|
+
800: "#1f2937",
|
|
1264
|
+
900: "#111827",
|
|
1265
|
+
950: "#030712"
|
|
1266
|
+
},
|
|
1267
|
+
slate: {
|
|
1268
|
+
50: "#f8fafc",
|
|
1269
|
+
100: "#f1f5f9",
|
|
1270
|
+
200: "#e2e8f0",
|
|
1271
|
+
300: "#cbd5e1",
|
|
1272
|
+
400: "#94a3b8",
|
|
1273
|
+
500: "#64748b",
|
|
1274
|
+
600: "#475569",
|
|
1275
|
+
700: "#334155",
|
|
1276
|
+
800: "#1e293b",
|
|
1277
|
+
900: "#0f172a",
|
|
1278
|
+
950: "#020617"
|
|
1279
|
+
},
|
|
1280
|
+
zinc: {
|
|
1281
|
+
50: "#fafafa",
|
|
1282
|
+
100: "#f4f4f5",
|
|
1283
|
+
200: "#e4e4e7",
|
|
1284
|
+
300: "#d4d4d8",
|
|
1285
|
+
400: "#a1a1aa",
|
|
1286
|
+
500: "#71717a",
|
|
1287
|
+
600: "#52525b",
|
|
1288
|
+
700: "#3f3f46",
|
|
1289
|
+
800: "#27272a",
|
|
1290
|
+
900: "#18181b",
|
|
1291
|
+
950: "#09090b"
|
|
1292
|
+
},
|
|
1293
|
+
neutral: {
|
|
1294
|
+
50: "#fafafa",
|
|
1295
|
+
100: "#f5f5f5",
|
|
1296
|
+
200: "#e5e5e5",
|
|
1297
|
+
300: "#d4d4d4",
|
|
1298
|
+
400: "#a3a3a3",
|
|
1299
|
+
500: "#737373",
|
|
1300
|
+
600: "#525252",
|
|
1301
|
+
700: "#404040",
|
|
1302
|
+
800: "#262626",
|
|
1303
|
+
900: "#171717",
|
|
1304
|
+
950: "#0a0a0a"
|
|
1305
|
+
},
|
|
1306
|
+
stone: {
|
|
1307
|
+
50: "#fafaf9",
|
|
1308
|
+
100: "#f5f5f4",
|
|
1309
|
+
200: "#e7e5e4",
|
|
1310
|
+
300: "#d6d3d1",
|
|
1311
|
+
400: "#a8a29e",
|
|
1312
|
+
500: "#78716c",
|
|
1313
|
+
600: "#57534e",
|
|
1314
|
+
700: "#44403c",
|
|
1315
|
+
800: "#292524",
|
|
1316
|
+
900: "#1c1917",
|
|
1317
|
+
950: "#0c0a09"
|
|
1318
|
+
},
|
|
1319
|
+
red: {
|
|
1320
|
+
50: "#fef2f2",
|
|
1321
|
+
100: "#fee2e2",
|
|
1322
|
+
200: "#fecaca",
|
|
1323
|
+
300: "#fca5a5",
|
|
1324
|
+
400: "#f87171",
|
|
1325
|
+
500: "#ef4444",
|
|
1326
|
+
600: "#dc2626",
|
|
1327
|
+
700: "#b91c1c",
|
|
1328
|
+
800: "#991b1b",
|
|
1329
|
+
900: "#7f1d1d",
|
|
1330
|
+
950: "#450a0a"
|
|
1331
|
+
},
|
|
1332
|
+
orange: {
|
|
1333
|
+
50: "#fff7ed",
|
|
1334
|
+
100: "#ffedd5",
|
|
1335
|
+
200: "#fed7aa",
|
|
1336
|
+
300: "#fdba74",
|
|
1337
|
+
400: "#fb923c",
|
|
1338
|
+
500: "#f97316",
|
|
1339
|
+
600: "#ea580c",
|
|
1340
|
+
700: "#c2410c",
|
|
1341
|
+
800: "#9a3412",
|
|
1342
|
+
900: "#7c2d12",
|
|
1343
|
+
950: "#431407"
|
|
1344
|
+
},
|
|
1345
|
+
amber: {
|
|
1346
|
+
50: "#fffbeb",
|
|
1347
|
+
100: "#fef3c7",
|
|
1348
|
+
200: "#fde68a",
|
|
1349
|
+
300: "#fcd34d",
|
|
1350
|
+
400: "#fbbf24",
|
|
1351
|
+
500: "#f59e0b",
|
|
1352
|
+
600: "#d97706",
|
|
1353
|
+
700: "#b45309",
|
|
1354
|
+
800: "#92400e",
|
|
1355
|
+
900: "#78350f",
|
|
1356
|
+
950: "#451a03"
|
|
1357
|
+
},
|
|
1358
|
+
yellow: {
|
|
1359
|
+
50: "#fefce8",
|
|
1360
|
+
100: "#fef9c3",
|
|
1361
|
+
200: "#fef08a",
|
|
1362
|
+
300: "#fde047",
|
|
1363
|
+
400: "#facc15",
|
|
1364
|
+
500: "#eab308",
|
|
1365
|
+
600: "#ca8a04",
|
|
1366
|
+
700: "#a16207",
|
|
1367
|
+
800: "#854d0e",
|
|
1368
|
+
900: "#713f12",
|
|
1369
|
+
950: "#422006"
|
|
1370
|
+
},
|
|
1371
|
+
lime: {
|
|
1372
|
+
50: "#f7fee7",
|
|
1373
|
+
100: "#ecfccb",
|
|
1374
|
+
200: "#d9f99d",
|
|
1375
|
+
300: "#bef264",
|
|
1376
|
+
400: "#a3e635",
|
|
1377
|
+
500: "#84cc16",
|
|
1378
|
+
600: "#65a30d",
|
|
1379
|
+
700: "#4d7c0f",
|
|
1380
|
+
800: "#3f6212",
|
|
1381
|
+
900: "#365314",
|
|
1382
|
+
950: "#1a2e05"
|
|
1383
|
+
},
|
|
1384
|
+
green: {
|
|
1385
|
+
50: "#f0fdf4",
|
|
1386
|
+
100: "#dcfce7",
|
|
1387
|
+
200: "#bbf7d0",
|
|
1388
|
+
300: "#86efac",
|
|
1389
|
+
400: "#4ade80",
|
|
1390
|
+
500: "#22c55e",
|
|
1391
|
+
600: "#16a34a",
|
|
1392
|
+
700: "#15803d",
|
|
1393
|
+
800: "#166534",
|
|
1394
|
+
900: "#14532d",
|
|
1395
|
+
950: "#052e16"
|
|
1396
|
+
},
|
|
1397
|
+
emerald: {
|
|
1398
|
+
50: "#ecfdf5",
|
|
1399
|
+
100: "#d1fae5",
|
|
1400
|
+
200: "#a7f3d0",
|
|
1401
|
+
300: "#6ee7b7",
|
|
1402
|
+
400: "#34d399",
|
|
1403
|
+
500: "#10b981",
|
|
1404
|
+
600: "#059669",
|
|
1405
|
+
700: "#047857",
|
|
1406
|
+
800: "#065f46",
|
|
1407
|
+
900: "#064e3b",
|
|
1408
|
+
950: "#022c22"
|
|
1409
|
+
},
|
|
1410
|
+
teal: {
|
|
1411
|
+
50: "#f0fdfa",
|
|
1412
|
+
100: "#ccfbf1",
|
|
1413
|
+
200: "#99f6e4",
|
|
1414
|
+
300: "#5eead4",
|
|
1415
|
+
400: "#2dd4bf",
|
|
1416
|
+
500: "#14b8a6",
|
|
1417
|
+
600: "#0d9488",
|
|
1418
|
+
700: "#0f766e",
|
|
1419
|
+
800: "#115e59",
|
|
1420
|
+
900: "#134e4a",
|
|
1421
|
+
950: "#042f2e"
|
|
1422
|
+
},
|
|
1423
|
+
cyan: {
|
|
1424
|
+
50: "#ecfeff",
|
|
1425
|
+
100: "#cffafe",
|
|
1426
|
+
200: "#a5f3fc",
|
|
1427
|
+
300: "#67e8f9",
|
|
1428
|
+
400: "#22d3ee",
|
|
1429
|
+
500: "#06b6d4",
|
|
1430
|
+
600: "#0891b2",
|
|
1431
|
+
700: "#0e7490",
|
|
1432
|
+
800: "#155e75",
|
|
1433
|
+
900: "#164e63",
|
|
1434
|
+
950: "#083344"
|
|
1435
|
+
},
|
|
1436
|
+
sky: {
|
|
1437
|
+
50: "#f0f9ff",
|
|
1438
|
+
100: "#e0f2fe",
|
|
1439
|
+
200: "#bae6fd",
|
|
1440
|
+
300: "#7dd3fc",
|
|
1441
|
+
400: "#38bdf8",
|
|
1442
|
+
500: "#0ea5e9",
|
|
1443
|
+
600: "#0284c7",
|
|
1444
|
+
700: "#0369a1",
|
|
1445
|
+
800: "#075985",
|
|
1446
|
+
900: "#0c4a6e",
|
|
1447
|
+
950: "#082f49"
|
|
1448
|
+
},
|
|
1449
|
+
blue: {
|
|
1450
|
+
50: "#eff6ff",
|
|
1451
|
+
100: "#dbeafe",
|
|
1452
|
+
200: "#bfdbfe",
|
|
1453
|
+
300: "#93c5fd",
|
|
1454
|
+
400: "#60a5fa",
|
|
1455
|
+
500: "#3b82f6",
|
|
1456
|
+
600: "#2563eb",
|
|
1457
|
+
700: "#1d4ed8",
|
|
1458
|
+
800: "#1e40af",
|
|
1459
|
+
900: "#1e3a8a",
|
|
1460
|
+
950: "#172554"
|
|
1461
|
+
},
|
|
1462
|
+
indigo: {
|
|
1463
|
+
50: "#eef2ff",
|
|
1464
|
+
100: "#e0e7ff",
|
|
1465
|
+
200: "#c7d2fe",
|
|
1466
|
+
300: "#a5b4fc",
|
|
1467
|
+
400: "#818cf8",
|
|
1468
|
+
500: "#6366f1",
|
|
1469
|
+
600: "#4f46e5",
|
|
1470
|
+
700: "#4338ca",
|
|
1471
|
+
800: "#3730a3",
|
|
1472
|
+
900: "#312e81",
|
|
1473
|
+
950: "#1e1b4b"
|
|
1474
|
+
},
|
|
1475
|
+
violet: {
|
|
1476
|
+
50: "#f5f3ff",
|
|
1477
|
+
100: "#ede9fe",
|
|
1478
|
+
200: "#ddd6fe",
|
|
1479
|
+
300: "#c4b5fd",
|
|
1480
|
+
400: "#a78bfa",
|
|
1481
|
+
500: "#8b5cf6",
|
|
1482
|
+
600: "#7c3aed",
|
|
1483
|
+
700: "#6d28d9",
|
|
1484
|
+
800: "#5b21b6",
|
|
1485
|
+
900: "#4c1d95",
|
|
1486
|
+
950: "#2e1065"
|
|
1487
|
+
},
|
|
1488
|
+
purple: {
|
|
1489
|
+
50: "#faf5ff",
|
|
1490
|
+
100: "#f3e8ff",
|
|
1491
|
+
200: "#e9d5ff",
|
|
1492
|
+
300: "#d8b4fe",
|
|
1493
|
+
400: "#c084fc",
|
|
1494
|
+
500: "#a855f7",
|
|
1495
|
+
600: "#9333ea",
|
|
1496
|
+
700: "#7e22ce",
|
|
1497
|
+
800: "#6b21a8",
|
|
1498
|
+
900: "#581c87",
|
|
1499
|
+
950: "#3b0764"
|
|
1500
|
+
},
|
|
1501
|
+
fuchsia: {
|
|
1502
|
+
50: "#fdf4ff",
|
|
1503
|
+
100: "#fae8ff",
|
|
1504
|
+
200: "#f5d0fe",
|
|
1505
|
+
300: "#f0abfc",
|
|
1506
|
+
400: "#e879f9",
|
|
1507
|
+
500: "#d946ef",
|
|
1508
|
+
600: "#c026d3",
|
|
1509
|
+
700: "#a21caf",
|
|
1510
|
+
800: "#86198f",
|
|
1511
|
+
900: "#701a75",
|
|
1512
|
+
950: "#4a044e"
|
|
1513
|
+
},
|
|
1514
|
+
pink: {
|
|
1515
|
+
50: "#fdf2f8",
|
|
1516
|
+
100: "#fce7f3",
|
|
1517
|
+
200: "#fbcfe8",
|
|
1518
|
+
300: "#f9a8d4",
|
|
1519
|
+
400: "#f472b6",
|
|
1520
|
+
500: "#ec4899",
|
|
1521
|
+
600: "#db2777",
|
|
1522
|
+
700: "#be185d",
|
|
1523
|
+
800: "#9d174d",
|
|
1524
|
+
900: "#831843",
|
|
1525
|
+
950: "#500724"
|
|
1526
|
+
},
|
|
1527
|
+
rose: {
|
|
1528
|
+
50: "#fff1f2",
|
|
1529
|
+
100: "#ffe4e6",
|
|
1530
|
+
200: "#fecdd3",
|
|
1531
|
+
300: "#fda4af",
|
|
1532
|
+
400: "#fb7185",
|
|
1533
|
+
500: "#f43f5e",
|
|
1534
|
+
600: "#e11d48",
|
|
1535
|
+
700: "#be123c",
|
|
1536
|
+
800: "#9f1239",
|
|
1537
|
+
900: "#881337",
|
|
1538
|
+
950: "#4c0519"
|
|
1539
|
+
}
|
|
1540
|
+
};
|
|
1541
|
+
var TOKEN_REGEX = /^(?:hover:)?(?:bg|text|border|from|via|to)-([a-z]+)-(\d+)$/;
|
|
1542
|
+
|
|
1543
|
+
/**
|
|
1544
|
+
* Given a Tailwind class string like `bg-blue-700` or
|
|
1545
|
+
* `hover:text-rose-200` extract `{ name, shade }` (`name=blue`,
|
|
1546
|
+
* `shade=700`) and return the matching hex from TAILWIND_PALETTE.
|
|
1547
|
+
*
|
|
1548
|
+
* Returns null if the class is not a Tailwind named-color utility
|
|
1549
|
+
* (e.g. arbitrary-value classes like `bg-[var(--primary-700)]` are
|
|
1550
|
+
* NOT handled here — they're resolved via the CSS variable instead).
|
|
1551
|
+
*/
|
|
1552
|
+
function hexForTailwindClass(className) {
|
|
1553
|
+
if (typeof className !== "string") return null;
|
|
1554
|
+
var m = className.match(TOKEN_REGEX);
|
|
1555
|
+
if (!m) return null;
|
|
1556
|
+
var _m = _slicedToArray$e(m, 3),
|
|
1557
|
+
name = _m[1],
|
|
1558
|
+
shade = _m[2];
|
|
1559
|
+
return TAILWIND_PALETTE[name] && TAILWIND_PALETTE[name][shade] || null;
|
|
1560
|
+
}
|
|
1561
|
+
|
|
922
1562
|
function _typeof$I(o) { "@babel/helpers - typeof"; return _typeof$I = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof$I(o); }
|
|
923
1563
|
/**
|
|
924
1564
|
* deepCopy
|
|
@@ -10380,5 +11020,5 @@ if (process.env.NODE_ENV !== "development") {
|
|
|
10380
11020
|
console.log = function () {};
|
|
10381
11021
|
}
|
|
10382
11022
|
|
|
10383
|
-
export { Accordion, Accordion2, Accordion3, Alert, Alert2, Alert3, AlertBanner, AlgoliaRefinementList, AlgoliaSearchBox, Breadcrumbs, Breadcrumbs2, Breadcrumbs3, Button, Button2, Button3, ButtonIcon, ButtonIcon2, ButtonIcon3, Caption, Caption2, Caption3, Card, Card2, Card3, Checkbox, Code, Code2, Code3, CodeEditorInline, CodeEditorVS, CodeRenderer, CommandPalette, ConfirmationModal, Container, DashPanel, DashPanel2, DashPanel3, DataList, Divider, Divider2, Divider3, DragComponent, Drawer, DropComponent, DropdownPanel, DropdownPanel2, DropdownPanel3, EmptyState, ErrorMessage, FormField, FormLabel, Heading, Heading2, Heading3, Icon, Icon2, Icon3, InputText, LayoutContainer, MainSection, Menu, Menu2, Menu3, MenuItem, MenuItem2, MenuItem3, MockAlgolia, MockLayout, MockWrapper, Modal, Navbar, PalettePreviewPane, Panel, Panel2, Panel3, Paragraph, Paragraph2, Paragraph3, ProgressBar, ProgressBar2, ProgressBar3, RadioGroup, RichText, SLACK_QUICK_REACTION_SHORTCODES, SearchInput, SelectInput, SelectMenu, SelectableCard, SettingsModal, Sidebar, Skeleton, Slider, StatCard, StatusBadge, Stepper, SubHeading, SubHeading2, SubHeading3, Switch, TabbedNavbar, Table, Table2, Table3, Tabs, Tabs2, Tabs3, Tag, Tag2, Tag3, TextArea, ThemeContext, ThemeFromUrlPane, ThemePreviewBanner, ThemePreviewContext, ThemePreviewProvider, Toast, Toast2, Toast3, Toggle, Toggle2, Toggle3, Tooltip, WS_STATES, WebSocketStatus, WidgetChrome, WidgetContext, capitalizeFirstLetter, colorNames, colorTypes, deepCopy, getCSSStyleForClassname, getClassForObjectType, getDefaultStylesForItem, getRandomInt, getStyleName, getStylesForItem, getUUID$1 as getUUID, isObject, mock, mockText, objectTypes, shades, slackEmojiForName, styleClassNames, tailwindHeightFractions, themeObjects, themeVariants, useLazyEnrichment, useSidebar, useThemePreview, withRouter };
|
|
11023
|
+
export { Accordion, Accordion2, Accordion3, Alert, Alert2, Alert3, AlertBanner, AlgoliaRefinementList, AlgoliaSearchBox, Breadcrumbs, Breadcrumbs2, Breadcrumbs3, Button, Button2, Button3, ButtonIcon, ButtonIcon2, ButtonIcon3, Caption, Caption2, Caption3, Card, Card2, Card3, Checkbox, Code, Code2, Code3, CodeEditorInline, CodeEditorVS, CodeRenderer, CommandPalette, ConfirmationModal, Container, DashPanel, DashPanel2, DashPanel3, DataList, Divider, Divider2, Divider3, DragComponent, Drawer, DropComponent, DropdownPanel, DropdownPanel2, DropdownPanel3, EmptyState, ErrorMessage, FormField, FormLabel, Heading, Heading2, Heading3, Icon, Icon2, Icon3, InputText, LayoutContainer, MainSection, Menu, Menu2, Menu3, MenuItem, MenuItem2, MenuItem3, MockAlgolia, MockLayout, MockWrapper, Modal, Navbar, PalettePreviewPane, Panel, Panel2, Panel3, Paragraph, Paragraph2, Paragraph3, ProgressBar, ProgressBar2, ProgressBar3, RadioGroup, RichText, SLACK_QUICK_REACTION_SHORTCODES, SearchInput, SelectInput, SelectMenu, SelectableCard, SettingsModal, Sidebar, Skeleton, Slider, StatCard, StatusBadge, Stepper, SubHeading, SubHeading2, SubHeading3, Switch, TAILWIND_PALETTE, TabbedNavbar, Table, Table2, Table3, Tabs, Tabs2, Tabs3, Tag, Tag2, Tag3, TextArea, ThemeContext, ThemeFromUrlPane, ThemePreviewBanner, ThemePreviewContext, ThemePreviewProvider, Toast, Toast2, Toast3, Toggle, Toggle2, Toggle3, Tooltip, WS_STATES, WebSocketStatus, WidgetChrome, WidgetContext, capitalizeFirstLetter, colorNames, colorTypes, contrastRatio, deepCopy, deriveShades, getCSSStyleForClassname, getClassForObjectType, getDefaultStylesForItem, getRandomInt, getStyleName, getStylesForItem, getUUID$1 as getUUID, hexForTailwindClass, hexToRgb, hslToRgb, isHexColor, isObject, mock, mockText, normalizeHex, objectTypes, rgbToHex, rgbToHsl, shades, slackEmojiForName, styleClassNames, tailwindHeightFractions, themeObjects, themeVariants, useLazyEnrichment, useSidebar, useThemePreview, withRouter };
|
|
10384
11024
|
//# sourceMappingURL=index.js.map
|