@splunk/themes 1.3.0 → 1.4.1

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/CHANGELOG.md CHANGED
@@ -1,15 +1,29 @@
1
1
  Change Log
2
2
  ============
3
+
4
+ 1.4.1 - December 3, 2025
5
+ ----------
6
+ Bug Fixes:
7
+ * `backgroundColorSection` in Enterprise dark theme updated to improve visual contrast between `neutralColor` and to reduce its overall brightness (SUI-7879).
8
+
9
+ 1.4.0 - November 4, 2025
10
+ ----------
11
+ New Features:
12
+ * New `contentColorLinkDisabled`, `contentColorLinkVisited`, and `contentColorLinkVisitedDisabled` tokens (SUI-8244).
13
+
3
14
  1.3.0 - October 7, 2025
4
15
  ----------
5
- New Features:
16
+ New Features:
6
17
  * New `actionColorContent*` tokens (SUI-8101).
18
+ * `@splunk/themes/storybook-addon-splunk-themes` now supports enabling the Splunk Magnetic theme family as an option by using the `enableSplunkMagneticOption` storybook param (SUI-8283).
7
19
 
8
- Bug Fixes:
20
+ Bug Fixes:
9
21
  * Fix incorrect action content colors in Magnetic theme customizer (SUI-8101).
10
22
 
11
- Deprecations:
23
+ Deprecations:
12
24
  * `contentColorInfo`, `contentColorNegativeStrong`, `contentColorPositive` and `contentColorWarning` have been deprecated (SUI-8251)
25
+ * `@splunk/themes/storybook-addon-splunk-themes`'s `disableDualTheme` storybook param is deprecated, use `disableMultiThemeOptions` instead (SUI-8283).
26
+ * `@splunk/themes/storybook-addon-splunk-themes`'s theme configuration options `both` value deprecated, use `all` instead (SUI-8283).
13
27
 
14
28
  1.2.1 - September 2, 2025
15
29
  ----------
@@ -385,6 +385,18 @@ var contentColors = {
385
385
  * Text color for links.
386
386
  */
387
387
  contentColorLink: '',
388
+ /**
389
+ * Text color for visited links.
390
+ */
391
+ contentColorLinkVisited: '',
392
+ /**
393
+ * Text color for disabled links.
394
+ */
395
+ contentColorLinkDisabled: '',
396
+ /**
397
+ * Text color for visited links in a disabled state.
398
+ */
399
+ contentColorLinkVisitedDisabled: '',
388
400
  /**
389
401
  * Brand accent text color.
390
402
  */
@@ -65,7 +65,10 @@ var contentColors = {
65
65
  contentColorAccentWeak: '#0b4613',
66
66
  contentColorNegative: '#e37267',
67
67
  contentColorNegativeWeak: '#562a25',
68
- contentColorLink: _light["default"].accentColorL10
68
+ contentColorLink: _light["default"].accentColorL10,
69
+ contentColorLinkDisabled: _light["default"].accentColorD30,
70
+ contentColorLinkVisited: '#a974f7',
71
+ contentColorLinkVisitedDisabled: '#6732b8'
69
72
  };
70
73
  var actionColors = {
71
74
  actionColorBackgroundPrimary: '#1a8929',
@@ -145,7 +148,7 @@ var backgroundColors = {
145
148
  backgroundColorPage: _light["default"].gray20,
146
149
  backgroundColorPopup: _light["default"].gray22,
147
150
  backgroundColorScrim: "rgba(0, 0, 0, 0.8)",
148
- backgroundColorSection: _light["default"].gray22,
151
+ backgroundColorSection: '#1E2427',
149
152
  backgroundColorSidebar: _light["default"].black
150
153
  };
151
154
  var backgrounds = {
@@ -32,6 +32,7 @@ var deprecatedEnterpriseColors = {
32
32
  errorColor: '#dc4e41',
33
33
  accentColorD10: '#006eaa',
34
34
  accentColor: '#007abd',
35
+ accentColorL30: '#7ed2ff',
35
36
  infoColor: '#006d9c',
36
37
  infoColorL10: '#338ab0',
37
38
  infoColorD10: '#00577c',
@@ -130,7 +131,10 @@ var contentColors = {
130
131
  contentColorAccentWeak: '#b5e3b5',
131
132
  contentColorNegative: '#c84535',
132
133
  contentColorNegativeWeak: '#f5aca3',
133
- contentColorLink: deprecatedEnterpriseColors.accentColorD10
134
+ contentColorLink: deprecatedEnterpriseColors.accentColorD10,
135
+ contentColorLinkDisabled: deprecatedEnterpriseColors.accentColorL30,
136
+ contentColorLinkVisited: '#864ae0',
137
+ contentColorLinkVisitedDisabled: '#e0ccff'
134
138
  };
135
139
  var actionColors = {
136
140
  actionColorBackgroundPrimary: '#1a8929',
@@ -270,7 +274,6 @@ var deprecated = {
270
274
  gray20: '#171d21',
271
275
  accentColorL50: '#ecf8ff',
272
276
  accentColorL40: '#bfe9ff',
273
- accentColorL30: '#7ed2ff',
274
277
  accentColorL20: '#3ebcff',
275
278
  accentColorL10: '#00a4fd',
276
279
  accentColorD20: '#006297',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@splunk/themes",
3
- "version": "1.3.0",
3
+ "version": "1.4.1",
4
4
  "description": "Theme variables and mixins for the Splunk design language",
5
5
  "main": "./index.js",
6
6
  "types": "./types/index.d.ts",
package/prisma/dark.js CHANGED
@@ -38,7 +38,10 @@ var contentColors = {
38
38
  contentColorMuted: '#909090',
39
39
  contentColorNegative: '#ff5252',
40
40
  contentColorNegativeWeak: '#561a1a',
41
- contentColorLink: '#3993ff'
41
+ contentColorLink: '#3993ff',
42
+ contentColorLinkDisabled: '#14437b',
43
+ contentColorLinkVisited: '#a974f7',
44
+ contentColorLinkVisitedDisabled: '#6732B8'
42
45
  };
43
46
  var actionColors = {
44
47
  actionColorBackgroundPrimary: '#3993ff',
package/prisma/light.js CHANGED
@@ -38,7 +38,10 @@ var contentColors = {
38
38
  contentColorMuted: '#6b6b6b',
39
39
  contentColorNegative: '#e00000',
40
40
  contentColorNegativeWeak: '#ff9999',
41
- contentColorLink: '#0264d7'
41
+ contentColorLink: '#0264d7',
42
+ contentColorLinkDisabled: '#b3d6fe',
43
+ contentColorLinkVisited: '#864ae0',
44
+ contentColorLinkVisitedDisabled: '#e0ccff'
42
45
  };
43
46
  var actionColors = {
44
47
  actionColorBackgroundPrimary: '#0264d7',
@@ -17,6 +17,8 @@ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArra
17
17
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
18
  function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
19
19
  function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
20
+ function ownKeys(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; }
21
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20
22
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
21
23
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
22
24
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -36,19 +38,14 @@ var SplunkThemesTool = /*#__PURE__*/(0, _react.memo)(function () {
36
38
  globals = _useGlobals2[0],
37
39
  updateGlobals = _useGlobals2[1];
38
40
  var params = (0, _managerApi.useParameter)(_constants.PARAM_KEY, {});
39
- var disableDualTheme = (0, _managerApi.useParameter)(_constants.DISABLE_DUAL_THEME_KEY, false);
41
+ var hasEnabledSplunkMagneticOption = (0, _managerApi.useParameter)(_constants.ENABLE_SPLUNK_MAGNETIC_KEY, false);
42
+ var hasDisabledMultiThemeOptions = (0, _managerApi.useParameter)(_constants.DISABLE_MULTI_THEME_OPTIONS_KEY, false);
40
43
  var globalsTheme = globals[_constants.PARAM_KEY] || undefined;
41
44
  var currentTheme = (0, _util.normalizeThemeOptions)(params, globalsTheme);
42
45
  var updateTheme = (0, _react.useCallback)(function (newTheme) {
43
46
  var mergedTheme = (0, _util.getMergedTheme)(globalsTheme, newTheme);
44
47
  updateGlobals(_defineProperty({}, _constants.PARAM_KEY, mergedTheme));
45
48
  }, [globalsTheme, updateGlobals]);
46
- (0, _react.useEffect)(function () {
47
- if (disableDualTheme) {
48
- // eslint-disable-next-line no-console
49
- console.warn("This story has 'disableDualTheme' set to 'true', so 'both' option will not show in theme dropdown.");
50
- }
51
- }, [disableDualTheme]);
52
49
  return /*#__PURE__*/_react["default"].createElement(_components.WithTooltip, {
53
50
  placement: "top",
54
51
  trigger: "click",
@@ -56,23 +53,26 @@ var SplunkThemesTool = /*#__PURE__*/(0, _react.memo)(function () {
56
53
  return Object.keys(_themeOptions.themeOptions).map(function (themeOptionKey) {
57
54
  var themeOptionValues = _themeOptions.themeOptions[themeOptionKey];
58
55
 
59
- // if story is passing disableDualTheme: true, don't display 'both' option in theme picker
60
- var dualThemeOptions = disableDualTheme ? [] : ['both'];
56
+ // Add splunk magnetic to family options if enabled
57
+ var effectiveValues = themeOptionKey === 'family' && hasEnabledSplunkMagneticOption ? _objectSpread(_objectSpread({}, themeOptionValues), {}, {
58
+ values: [].concat(_toConsumableArray(themeOptionValues.values), ['splunk-magnetic'])
59
+ }) : themeOptionValues;
60
+ var multiThemeOptions = hasDisabledMultiThemeOptions ? [] : ['all'];
61
61
  return /*#__PURE__*/_react["default"].createElement(_react.Fragment, {
62
62
  key: themeOptionKey
63
- }, /*#__PURE__*/_react["default"].createElement(_themes.TooltipSectionTitle, null, themeOptionValues.name), /*#__PURE__*/_react["default"].createElement(_components.TooltipLinkList, {
64
- links: [].concat(_toConsumableArray(themeOptionValues.values), dualThemeOptions).map(function (themeValue) {
63
+ }, /*#__PURE__*/_react["default"].createElement(_themes.TooltipSectionTitle, null, effectiveValues.name), /*#__PURE__*/_react["default"].createElement(_components.TooltipLinkList, {
64
+ links: [].concat(_toConsumableArray(effectiveValues.values), multiThemeOptions).map(function (themeValue) {
65
65
  var active = currentTheme[themeOptionKey] === themeValue;
66
66
  return {
67
67
  active: active,
68
68
  id: themeValue,
69
- onClick: function onClick(e, clickProps) {
70
- updateTheme(_defineProperty({}, themeOptionKey, clickProps.title));
69
+ onClick: function onClick() {
70
+ updateTheme(_defineProperty({}, themeOptionKey, themeValue));
71
71
  },
72
72
  right: active && /*#__PURE__*/_react["default"].createElement(_components.Icons, {
73
73
  icon: "check"
74
74
  }),
75
- title: themeValue
75
+ title: themeValue === 'splunk-magnetic' ? 'splunk magnetic' : themeValue
76
76
  };
77
77
  })
78
78
  }));
@@ -3,13 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.CHANGED = exports.SET = exports.CONFIGURE = exports.UPDATE = exports.DISABLE_DUAL_THEME_KEY = exports.PARAM_KEY = exports.ADDON_ID = void 0;
6
+ exports.CHANGED = exports.SET = exports.CONFIGURE = exports.UPDATE = exports.ENABLE_SPLUNK_MAGNETIC_KEY = exports.DISABLE_MULTI_THEME_OPTIONS_KEY = exports.DISABLE_DUAL_THEME_KEY = exports.PARAM_KEY = exports.ADDON_ID = void 0;
7
7
  var ADDON_ID = '@splunk/themes';
8
8
  exports.ADDON_ID = ADDON_ID;
9
9
  var PARAM_KEY = 'splunkThemes';
10
+ // TODO(SUI-8284): Remove deprecated `disableDualTheme` in next major version
10
11
  exports.PARAM_KEY = PARAM_KEY;
11
12
  var DISABLE_DUAL_THEME_KEY = 'disableDualTheme';
12
13
  exports.DISABLE_DUAL_THEME_KEY = DISABLE_DUAL_THEME_KEY;
14
+ var DISABLE_MULTI_THEME_OPTIONS_KEY = 'disableMultiThemeOptions';
15
+ exports.DISABLE_MULTI_THEME_OPTIONS_KEY = DISABLE_MULTI_THEME_OPTIONS_KEY;
16
+ var ENABLE_SPLUNK_MAGNETIC_KEY = 'enableSplunkMagneticOption';
17
+ exports.ENABLE_SPLUNK_MAGNETIC_KEY = ENABLE_SPLUNK_MAGNETIC_KEY;
13
18
  var UPDATE = "".concat(ADDON_ID, "/update");
14
19
  exports.UPDATE = UPDATE;
15
20
  var CONFIGURE = "".concat(ADDON_ID, "/configure");
@@ -18,6 +18,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
18
18
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
19
19
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
20
20
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
21
+ // TODO(SUI-8284): Remove deprecated `both` in types in next major version
22
+
21
23
  var normalizeThemeOptions = function normalizeThemeOptions() {
22
24
  var paramOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
23
25
  var globalOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -25,26 +27,30 @@ var normalizeThemeOptions = function normalizeThemeOptions() {
25
27
  };
26
28
 
27
29
  // merge the existing theme with the newly selected theme
28
- // this functon only allows the most recently-selectd "both" option to persist
29
- // because allowing more than one "both" leads to an unwieldy visualization
30
+ // this functon only allows the most recently-selected multi-option (both/all) to persist
31
+ // because allowing more than one leads to an unwieldy visualization
30
32
  exports.normalizeThemeOptions = normalizeThemeOptions;
31
33
  var getMergedTheme = function getMergedTheme(globalsTheme, newTheme) {
32
- var firstBothEntry = Object.entries(newTheme).find(function (_ref) {
34
+ var firstMultiOptionEntry = Object.entries(newTheme).find(
35
+ // TODO(SUI-8284): Remove deprecated `both` value support in next major version
36
+ function (_ref) {
33
37
  var _ref2 = _slicedToArray(_ref, 2),
34
38
  value = _ref2[1];
35
- return value === 'both';
39
+ return value === 'all' || value === 'both';
36
40
  });
37
- var _ref3 = firstBothEntry || [],
41
+ var _ref3 = firstMultiOptionEntry || [],
38
42
  _ref4 = _slicedToArray(_ref3, 1),
39
- firstBothOption = _ref4[0];
43
+ firstMultiOption = _ref4[0];
40
44
  var finalValue;
41
45
 
42
- // only allow "both" for a single theme setting; if a new one is passed, remove the old one
46
+ // only allow "multi" for a single theme setting; if a new one is passed, remove the old one
43
47
  var mergedTheme = Object.entries(_themeOptions.themeOptions).reduce(function (themeAccum, _ref5) {
44
48
  var _ref6 = _slicedToArray(_ref5, 1),
45
49
  key = _ref6[0];
46
50
  if ((0, _themeOptions.isThemeOptionKey)(key)) {
47
- if ((globalsTheme === null || globalsTheme === void 0 ? void 0 : globalsTheme[key]) === 'both' && firstBothOption != null && key !== firstBothOption) {
51
+ if (
52
+ // TODO(SUI-8284): Remove deprecated `both` value support in next major version
53
+ ((globalsTheme === null || globalsTheme === void 0 ? void 0 : globalsTheme[key]) === 'all' || (globalsTheme === null || globalsTheme === void 0 ? void 0 : globalsTheme[key]) === 'both') && firstMultiOption != null && key !== firstMultiOption) {
48
54
  var defaultThemeOptionValue = _themeOptions.themeOptions[key].values[0];
49
55
  finalValue = defaultThemeOptionValue;
50
56
  } else {
@@ -17,18 +17,57 @@ var _themes = require("./themes");
17
17
  var _util = require("./util");
18
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
19
19
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) { "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); } return f; })(e, t); }
20
- function ownKeys(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; }
21
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
20
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
23
21
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
24
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(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(r, a) : void 0; } }
25
- function _arrayLikeToArray(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; }
26
22
  function _iterableToArrayLimit(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; } }
27
23
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
28
24
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
25
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
26
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
27
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(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(r, a) : void 0; } }
28
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
29
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
30
+ function _arrayLikeToArray(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; }
31
+ function ownKeys(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; }
32
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
29
33
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
30
34
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
31
35
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
36
+ function _templateObject7() {
37
+ var data = _taggedTemplateLiteral(["\n grid-row: 1;\n grid-column: labelText / colEnd;\n"]);
38
+ _templateObject7 = function _templateObject7() {
39
+ return data;
40
+ };
41
+ return data;
42
+ }
43
+ function _templateObject6() {
44
+ var data = _taggedTemplateLiteral(["\n font-size: 68px;\n"]);
45
+ _templateObject6 = function _templateObject6() {
46
+ return data;
47
+ };
48
+ return data;
49
+ }
50
+ function _templateObject5() {
51
+ var data = _taggedTemplateLiteral(["\n stroke: ", ";\n fill: ", ";\n"]);
52
+ _templateObject5 = function _templateObject5() {
53
+ return data;
54
+ };
55
+ return data;
56
+ }
57
+ function _templateObject4() {
58
+ var data = _taggedTemplateLiteral(["\n grid-row: 1;\n grid-column: colStart / labelText;\n height: 20px;\n width: 20px;\n"]);
59
+ _templateObject4 = function _templateObject4() {
60
+ return data;
61
+ };
62
+ return data;
63
+ }
64
+ function _templateObject3() {
65
+ var data = _taggedTemplateLiteral(["\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: [colStart] min-content [labelText] auto [colEnd];\n gap: ", ";\n padding: ", ";\n background-color: ", ";\n border-radius: ", ";\n"]);
66
+ _templateObject3 = function _templateObject3() {
67
+ return data;
68
+ };
69
+ return data;
70
+ }
32
71
  function _templateObject2() {
33
72
  var data = _taggedTemplateLiteral(["\n display: flex;\n gap: ", ";\n flex-direction: column;\n"]);
34
73
  _templateObject2 = function _templateObject2() {
@@ -45,61 +84,165 @@ function _templateObject() {
45
84
  }
46
85
  function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
47
86
  var StoryWrapper = _styledComponents["default"].div(_templateObject(), _variables["default"].backgroundColorPage, _variables["default"].spacingLarge);
48
- var DualStoryContainer = _styledComponents["default"].div(_templateObject2(), _variables["default"].spacingLarge);
49
- // Renders a story twice side-by-side in two separate color schemes
50
- var DualStory = function DualStory(_ref) {
87
+ var MultiStoryContainer = _styledComponents["default"].div(_templateObject2(), _variables["default"].spacingLarge);
88
+ var StyledWarning = _styledComponents["default"].div(_templateObject3(), _variables["default"].spacingSmall, _variables["default"].spacingSmall, _variables["default"].neutral200, _variables["default"].borderRadius);
89
+ var WarningIcon = _styledComponents["default"].svg(_templateObject4());
90
+ var StyledTriangle = _styledComponents["default"].polygon(_templateObject5(), _variables["default"].accentColorWarning, _variables["default"].accentColorWarning);
91
+ var StyledText = _styledComponents["default"].text(_templateObject6());
92
+ var StyledContent = _styledComponents["default"].span(_templateObject7());
93
+ var warningIcon = /*#__PURE__*/_react["default"].createElement(WarningIcon, {
94
+ viewBox: "0 0 100 100",
95
+ "aria-label": "warning icon"
96
+ }, /*#__PURE__*/_react["default"].createElement(StyledTriangle, {
97
+ points: "50 15, 100 100, 0 100"
98
+ }), /*#__PURE__*/_react["default"].createElement(StyledText, {
99
+ x: "41",
100
+ y: "88"
101
+ }, "!"));
102
+ var handleSplunkMagneticFamily = function handleSplunkMagneticFamily(themeProps) {
103
+ if (themeProps.family === 'splunk-magnetic') {
104
+ return _objectSpread(_objectSpread({}, themeProps), {}, {
105
+ family: 'prisma',
106
+ customizeTheme: _splunkMagnetic["default"]
107
+ });
108
+ }
109
+ return themeProps;
110
+ };
111
+
112
+ // The Splunk Magnetic option reuses Prisma tokens under the hood. We translate the
113
+ // toolbar selection here so the underlying theme provider always receives a Prisma family.
114
+ // Multi-render selections ("all" / "both") are treated as undefined because each variant
115
+ // gets its own explicit family inside the MultiStory renderer below.
116
+ var normalizeFamilyForProvider = function normalizeFamilyForProvider(family) {
117
+ if (!family) {
118
+ return undefined;
119
+ }
120
+ if (family === 'splunk-magnetic') {
121
+ return 'prisma';
122
+ }
123
+ if (family === 'all' || family === 'both') {
124
+ return undefined;
125
+ }
126
+ return family;
127
+ };
128
+ var shouldRenderMultiThemes = function shouldRenderMultiThemes(_ref) {
129
+ var activeMultiThemeKey = _ref.activeMultiThemeKey,
130
+ currentTheme = _ref.currentTheme,
131
+ hasDisabledMultiThemeOptions = _ref.hasDisabledMultiThemeOptions;
132
+ if (hasDisabledMultiThemeOptions || !activeMultiThemeKey) {
133
+ return false;
134
+ }
135
+ var themeValue = currentTheme[activeMultiThemeKey];
136
+
137
+ // TODO(SUI-8284): Remove deprecated `both` value support in next major version
138
+ return themeValue === 'all' || themeValue === 'both';
139
+ };
140
+
141
+ // Renders a story multiple times side-by-side with different theme variants
142
+ var MultiStory = function MultiStory(_ref2) {
51
143
  var _children$props;
52
- var children = _ref.children,
53
- context = _ref.context,
54
- themeOption = _ref.themeOption,
55
- themeProviderProps = _ref.themeProviderProps;
144
+ var children = _ref2.children,
145
+ themeOption = _ref2.themeOption,
146
+ themeProviderProps = _ref2.themeProviderProps,
147
+ hasEnabledSplunkMagneticOption = _ref2.hasEnabledSplunkMagneticOption;
56
148
  if (/*#__PURE__*/(0, _react.isValidElement)(children) && (children === null || children === void 0 ? void 0 : (_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.componentId)) {
57
149
  var _themeOptions$themeOp;
58
150
  var themeOptionValues = ((_themeOptions$themeOp = _themeOptions.themeOptions[themeOption]) === null || _themeOptions$themeOp === void 0 ? void 0 : _themeOptions$themeOp.values) || [];
59
- return /*#__PURE__*/_react["default"].createElement(DualStoryContainer, null, themeOptionValues.map(function (themeOptionValue) {
151
+
152
+ // Add splunk magnetic option to family values if enabled
153
+ if (themeOption === 'family' && hasEnabledSplunkMagneticOption) {
154
+ themeOptionValues = [].concat(_toConsumableArray(themeOptionValues), ['splunk-magnetic']);
155
+ }
156
+ return /*#__PURE__*/_react["default"].createElement(MultiStoryContainer, null, themeOptionValues.map(function (themeOptionValue) {
157
+ var variantThemeProviderProps = handleSplunkMagneticFamily(_objectSpread(_objectSpread({}, themeProviderProps), {}, _defineProperty({}, themeOption, themeOptionValue)));
60
158
  return /*#__PURE__*/_react["default"].createElement(_SplunkThemeProvider["default"], _extends({
61
159
  key: themeOptionValue
62
- }, themeProviderProps, _defineProperty({}, themeOption, themeOptionValue)), /*#__PURE__*/_react["default"].createElement(StoryWrapper, null, children.props.undecoratedStoryFn(context)));
160
+ }, variantThemeProviderProps), /*#__PURE__*/_react["default"].createElement(_themes.GlobalStyles, null), /*#__PURE__*/_react["default"].createElement(StoryWrapper, null, children));
63
161
  }));
64
162
  }
65
163
 
66
- // Required to render correctly, otherwise DualStory isn't considered a valid component
164
+ // Required to render correctly, otherwise MultiStory isn't considered a valid component
67
165
  // eslint-disable-next-line react/jsx-no-useless-fragment
68
166
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children);
69
167
  };
70
168
  var WithSplunkTheme = function WithSplunkTheme(Story, context) {
169
+ var _parameters$themeSupp;
71
170
  var globals = context.globals,
72
- parameters = context.parameters,
73
- args = context.args;
171
+ parameters = context.parameters;
74
172
  var globalsTheme = globals[_constants.PARAM_KEY];
75
173
  var themesConfig = parameters[_constants.PARAM_KEY];
174
+ var disableDualThemeDeprecated = parameters.disableDualTheme || false;
175
+ var disableMultiThemeOptions = parameters.disableMultiThemeOptions || false;
176
+ var hasEnabledSplunkMagneticOption = parameters.enableSplunkMagneticOption || false;
177
+
178
+ // Determine the effective disable state (new param takes precedence)
179
+ var hasDisabledMultiThemeOptions = disableMultiThemeOptions || disableDualThemeDeprecated;
180
+
181
+ // Show deprecation warning if deprecated parameter is used
182
+ if ('disableDualTheme' in parameters) {
183
+ // eslint-disable-next-line no-console
184
+ console.warn('The `disableDualTheme` parameter is deprecated and will be removed in the next major version. Use `disableMultiThemeOptions` instead.');
185
+ }
186
+
187
+ // Check for contradictory settings between deprecated and new parameters
188
+ if ('disableDualTheme' in parameters && 'disableMultiThemeOptions' in parameters && Boolean(disableDualThemeDeprecated) !== Boolean(disableMultiThemeOptions)) {
189
+ // eslint-disable-next-line no-console
190
+ console.warn('Contradictory theme parameters detected. The new `disableMultiThemeOptions` parameter will take precedence over the deprecated `disableDualTheme` parameter. Please remove the deprecated parameter as it will be removed in the next major version.');
191
+ }
192
+ if (hasDisabledMultiThemeOptions) {
193
+ // eslint-disable-next-line no-console
194
+ console.warn('This story has multi-theme options disabled, so the `all` option will not show in the themes dropdown.');
195
+ }
76
196
  var currentTheme = (0, _util.normalizeThemeOptions)(themesConfig, globalsTheme);
77
- var dualThemeOption = null;
197
+ var supportedFamily = parameters === null || parameters === void 0 ? void 0 : (_parameters$themeSupp = parameters.themeSupport) === null || _parameters$themeSupp === void 0 ? void 0 : _parameters$themeSupp.family;
198
+ var activeMultiThemeKey = null;
78
199
 
79
200
  // ideally fromPairs would be fromEntries but our ES2015 target doesn't allow this
80
201
  var cleanedThemeProviderProps = (0, _lodash.fromPairs)(Object.entries(currentTheme).filter(function (_ref3) {
81
202
  var _ref4 = _slicedToArray(_ref3, 2),
82
203
  key = _ref4[0],
83
204
  value = _ref4[1];
84
- if ((0, _themeOptions.isThemeOptionKey)(key) && value === 'both') {
85
- dualThemeOption = key;
205
+ // TODO(SUI-8284): Remove deprecated `both` value support in next major version
206
+ var isMultiOptionValue = value === 'all' || value === 'both';
207
+ if ((0, _themeOptions.isThemeOptionKey)(key) && isMultiOptionValue) {
208
+ activeMultiThemeKey = key;
209
+
210
+ // TODO(SUI-8284): Remove deprecated `both` value support in next major version
211
+ if (currentTheme[activeMultiThemeKey] === 'both') {
212
+ // eslint-disable-next-line no-console
213
+ console.warn('Theme configuration option `both` is deprecated and will be removed in the next major version. Use `all` instead.');
214
+ }
86
215
  return false;
87
216
  }
88
217
  return true;
89
218
  }));
90
- var themeProviderProps = _objectSpread(_objectSpread({}, cleanedThemeProviderProps), {}, {
91
- customizeTheme: (args === null || args === void 0 ? void 0 : args.withSplunkMagneticThemeCustomizer) ? _splunkMagnetic["default"] : undefined
92
- });
93
- if (!parameters.disableDualTheme && dualThemeOption != null && currentTheme[dualThemeOption] === 'both') {
94
- return /*#__PURE__*/_react["default"].createElement(DualStory, {
95
- context: context,
96
- themeOption: dualThemeOption,
97
- themeProviderProps: themeProviderProps
98
- }, /*#__PURE__*/_react["default"].createElement(Story, context));
219
+ var rawFamily = currentTheme.family;
220
+ var normalizedFamily = normalizeFamilyForProvider(rawFamily);
221
+ var isSplunkMagneticSelection = rawFamily === 'splunk-magnetic';
222
+ var isMultiFamilySelection = rawFamily === 'all' || rawFamily === 'both';
223
+ var displayedFamily = isSplunkMagneticSelection ? 'splunk-magnetic' : normalizedFamily;
224
+
225
+ // Warn whenever the selected family isn't supported (including when Magnetic proxies Prisma).
226
+ var shouldShowFamilyWarning = Boolean(supportedFamily && !isMultiFamilySelection && (isSplunkMagneticSelection ? supportedFamily !== 'splunk-magnetic' : normalizedFamily && supportedFamily !== normalizedFamily));
227
+ var resolvedThemeProviderProps = handleSplunkMagneticFamily(cleanedThemeProviderProps);
228
+ var warningContent = shouldShowFamilyWarning ? /*#__PURE__*/_react["default"].createElement(_SplunkThemeProvider["default"], _extends({}, resolvedThemeProviderProps, {
229
+ // Adjust colorScheme so that it matches with the overall storybook background which is light in 'all'/'light' but dark in 'dark'.
230
+ colorScheme: resolvedThemeProviderProps.colorScheme === 'dark' ? 'dark' : 'light'
231
+ }), /*#__PURE__*/_react["default"].createElement(StyledWarning, null, warningIcon, /*#__PURE__*/_react["default"].createElement(StyledContent, null, "This story does not support the theme family ", /*#__PURE__*/_react["default"].createElement("em", null, displayedFamily), ". The supported theme family is ", /*#__PURE__*/_react["default"].createElement("em", null, supportedFamily), ". Select the supported theme family in the toolbar.")), /*#__PURE__*/_react["default"].createElement("hr", null)) : null;
232
+ if (shouldRenderMultiThemes({
233
+ activeMultiThemeKey: activeMultiThemeKey,
234
+ currentTheme: currentTheme,
235
+ hasDisabledMultiThemeOptions: hasDisabledMultiThemeOptions
236
+ })) {
237
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, warningContent, /*#__PURE__*/_react["default"].createElement(MultiStory, {
238
+ themeOption: activeMultiThemeKey,
239
+ themeProviderProps: cleanedThemeProviderProps,
240
+ hasEnabledSplunkMagneticOption: hasEnabledSplunkMagneticOption
241
+ }, /*#__PURE__*/_react["default"].createElement(Story, context)));
99
242
  }
100
- return /*#__PURE__*/_react["default"].createElement(_SplunkThemeProvider["default"], _extends({}, themeProviderProps, {
101
- colorScheme: themeProviderProps.colorScheme
102
- }), /*#__PURE__*/_react["default"].createElement(_themes.GlobalStyles, null), /*#__PURE__*/_react["default"].createElement(Story, context));
243
+ return /*#__PURE__*/_react["default"].createElement(_SplunkThemeProvider["default"], _extends({}, resolvedThemeProviderProps, {
244
+ colorScheme: resolvedThemeProviderProps.colorScheme
245
+ }), /*#__PURE__*/_react["default"].createElement(_themes.GlobalStyles, null), warningContent, /*#__PURE__*/_react["default"].createElement(Story, context));
103
246
  };
104
247
  var withSplunkTheme = WithSplunkTheme;
105
248
  exports.withSplunkTheme = withSplunkTheme;
@@ -369,6 +369,18 @@ declare const contentColors: {
369
369
  * Text color for links.
370
370
  */
371
371
  contentColorLink: string;
372
+ /**
373
+ * Text color for visited links.
374
+ */
375
+ contentColorLinkVisited: string;
376
+ /**
377
+ * Text color for disabled links.
378
+ */
379
+ contentColorLinkDisabled: string;
380
+ /**
381
+ * Text color for visited links in a disabled state.
382
+ */
383
+ contentColorLinkVisitedDisabled: string;
372
384
  /**
373
385
  * Brand accent text color.
374
386
  */
@@ -557,6 +569,18 @@ declare const colors: {
557
569
  * Text color for links.
558
570
  */
559
571
  contentColorLink: string;
572
+ /**
573
+ * Text color for visited links.
574
+ */
575
+ contentColorLinkVisited: string;
576
+ /**
577
+ * Text color for disabled links.
578
+ */
579
+ contentColorLinkDisabled: string;
580
+ /**
581
+ * Text color for visited links in a disabled state.
582
+ */
583
+ contentColorLinkVisitedDisabled: string;
560
584
  /**
561
585
  * Brand accent text color.
562
586
  */
@@ -496,6 +496,9 @@ declare const designTokens: {
496
496
  notificationColorNegativeStrong: string;
497
497
  focusColor: string;
498
498
  contentColorLink: string;
499
+ contentColorLinkVisited: string;
500
+ contentColorLinkDisabled: string;
501
+ contentColorLinkVisitedDisabled: string;
499
502
  contentColorAccent: string;
500
503
  contentColorAccentStrong: string;
501
504
  contentColorAccentWeak: string;
@@ -60,6 +60,9 @@ declare const theme: {
60
60
  focusShadow: string;
61
61
  focusShadowInset: string;
62
62
  contentColorLink: string;
63
+ contentColorLinkVisited: string;
64
+ contentColorLinkDisabled: string;
65
+ contentColorLinkVisitedDisabled: string;
63
66
  contentColorAccent: string;
64
67
  contentColorAccentStrong: string;
65
68
  contentColorAccentWeak: string;
@@ -177,7 +180,6 @@ declare const theme: {
177
180
  gray20: string;
178
181
  accentColorL50: string;
179
182
  accentColorL40: string;
180
- accentColorL30: string;
181
183
  accentColorL20: string;
182
184
  accentColorL10: string;
183
185
  accentColorD20: string;
@@ -541,6 +543,7 @@ declare const theme: {
541
543
  gray60: string;
542
544
  gray45: string;
543
545
  gray30: string;
546
+ accentColorL30: string;
544
547
  accentColor: string;
545
548
  accentColorD10: string;
546
549
  errorColorL10: string;
@@ -51,7 +51,6 @@ declare const theme: {
51
51
  gray20: string;
52
52
  accentColorL50: string;
53
53
  accentColorL40: string;
54
- accentColorL30: string;
55
54
  accentColorL20: string;
56
55
  accentColorL10: string;
57
56
  accentColorD20: string;
@@ -396,6 +395,9 @@ declare const theme: {
396
395
  interactiveColorAccentErrorStrong: string;
397
396
  interactiveColorAccentErrorWeak: string;
398
397
  contentColorLink: string;
398
+ contentColorLinkVisited: string;
399
+ contentColorLinkDisabled: string;
400
+ contentColorLinkVisitedDisabled: string;
399
401
  contentColorAccent: string;
400
402
  contentColorAccentStrong: string;
401
403
  contentColorAccentWeak: string;
@@ -539,6 +541,7 @@ declare const theme: {
539
541
  gray60: string;
540
542
  gray45: string;
541
543
  gray30: string;
544
+ accentColorL30: string;
542
545
  accentColor: string;
543
546
  accentColorD10: string;
544
547
  errorColorL10: string;
@@ -59,6 +59,9 @@ declare const theme: {
59
59
  white: string;
60
60
  transparent: string;
61
61
  contentColorLink: string;
62
+ contentColorLinkVisited: string;
63
+ contentColorLinkDisabled: string;
64
+ contentColorLinkVisitedDisabled: string;
62
65
  contentColorAccent: string;
63
66
  contentColorAccentStrong: string;
64
67
  contentColorAccentWeak: string;
@@ -59,6 +59,9 @@ declare const theme: {
59
59
  white: string;
60
60
  transparent: string;
61
61
  contentColorLink: string;
62
+ contentColorLinkVisited: string;
63
+ contentColorLinkDisabled: string;
64
+ contentColorLinkVisitedDisabled: string;
62
65
  contentColorAccent: string;
63
66
  contentColorAccentStrong: string;
64
67
  contentColorAccentWeak: string;
@@ -185,7 +185,6 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
185
185
  gray20: string;
186
186
  accentColorL50: string;
187
187
  accentColorL40: string;
188
- accentColorL30: string;
189
188
  accentColorL20: string;
190
189
  accentColorL10: string;
191
190
  accentColorD20: string;
@@ -493,6 +492,9 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
493
492
  interactiveColorOverlayActive: string;
494
493
  interactiveColorOverlayDrag: string;
495
494
  contentColorLink: string;
495
+ contentColorLinkVisited: string;
496
+ contentColorLinkDisabled: string;
497
+ contentColorLinkVisitedDisabled: string;
496
498
  contentColorAccent: string;
497
499
  contentColorAccentStrong: string;
498
500
  contentColorAccentWeak: string;
@@ -551,6 +553,7 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
551
553
  gray60: string;
552
554
  gray45: string;
553
555
  gray30: string;
556
+ accentColorL30: string;
554
557
  accentColorD10: string;
555
558
  errorColorL10: string;
556
559
  errorColor: string;
@@ -774,7 +777,6 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
774
777
  gray20: string;
775
778
  accentColorL50: string;
776
779
  accentColorL40: string;
777
- accentColorL30: string;
778
780
  accentColorL20: string;
779
781
  accentColorL10: string;
780
782
  accentColorD20: string;
@@ -1082,6 +1084,9 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
1082
1084
  interactiveColorOverlayActive: string;
1083
1085
  interactiveColorOverlayDrag: string;
1084
1086
  contentColorLink: string;
1087
+ contentColorLinkVisited: string;
1088
+ contentColorLinkDisabled: string;
1089
+ contentColorLinkVisitedDisabled: string;
1085
1090
  contentColorAccent: string;
1086
1091
  contentColorAccentStrong: string;
1087
1092
  contentColorAccentWeak: string;
@@ -1140,6 +1145,7 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
1140
1145
  gray60: string;
1141
1146
  gray45: string;
1142
1147
  gray30: string;
1148
+ accentColorL30: string;
1143
1149
  accentColorD10: string;
1144
1150
  errorColorL10: string;
1145
1151
  errorColor: string;
@@ -1359,6 +1365,9 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
1359
1365
  dragShadow: string;
1360
1366
  focusShadowInset: string;
1361
1367
  contentColorLink: string;
1368
+ contentColorLinkVisited: string;
1369
+ contentColorLinkDisabled: string;
1370
+ contentColorLinkVisitedDisabled: string;
1362
1371
  contentColorAccent: string;
1363
1372
  contentColorAccentStrong: string;
1364
1373
  contentColorAccentWeak: string;
@@ -1400,7 +1409,6 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
1400
1409
  gray20: string;
1401
1410
  accentColorL50: string;
1402
1411
  accentColorL40: string;
1403
- accentColorL30: string;
1404
1412
  accentColorL20: string;
1405
1413
  accentColorL10: string;
1406
1414
  accentColorD20: string;
@@ -1731,6 +1739,7 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
1731
1739
  gray60: string;
1732
1740
  gray45: string;
1733
1741
  gray30: string;
1742
+ accentColorL30: string;
1734
1743
  accentColorD10: string;
1735
1744
  errorColorL10: string;
1736
1745
  errorColor: string;
@@ -1950,6 +1959,9 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
1950
1959
  dragShadow: string;
1951
1960
  focusShadowInset: string;
1952
1961
  contentColorLink: string;
1962
+ contentColorLinkVisited: string;
1963
+ contentColorLinkDisabled: string;
1964
+ contentColorLinkVisitedDisabled: string;
1953
1965
  contentColorAccent: string;
1954
1966
  contentColorAccentStrong: string;
1955
1967
  contentColorAccentWeak: string;
@@ -1991,7 +2003,6 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
1991
2003
  gray20: string;
1992
2004
  accentColorL50: string;
1993
2005
  accentColorL40: string;
1994
- accentColorL30: string;
1995
2006
  accentColorL20: string;
1996
2007
  accentColorL10: string;
1997
2008
  accentColorD20: string;
@@ -2322,6 +2333,7 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
2322
2333
  gray60: string;
2323
2334
  gray45: string;
2324
2335
  gray30: string;
2336
+ accentColorL30: string;
2325
2337
  accentColorD10: string;
2326
2338
  errorColorL10: string;
2327
2339
  errorColor: string;
@@ -2736,6 +2748,9 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
2736
2748
  white: string;
2737
2749
  transparent: string;
2738
2750
  contentColorLink: string;
2751
+ contentColorLinkVisited: string;
2752
+ contentColorLinkDisabled: string;
2753
+ contentColorLinkVisitedDisabled: string;
2739
2754
  contentColorAccent: string;
2740
2755
  contentColorAccentStrong: string;
2741
2756
  contentColorAccentWeak: string;
@@ -3154,6 +3169,9 @@ declare const splunkMagneticThemeCustomizer: (currentTheme: AnyTheme) => {
3154
3169
  white: string;
3155
3170
  transparent: string;
3156
3171
  contentColorLink: string;
3172
+ contentColorLinkVisited: string;
3173
+ contentColorLinkDisabled: string;
3174
+ contentColorLinkVisitedDisabled: string;
3157
3175
  contentColorAccent: string;
3158
3176
  contentColorAccentStrong: string;
3159
3177
  contentColorAccentWeak: string;
@@ -1,6 +1,8 @@
1
1
  export declare const ADDON_ID = "@splunk/themes";
2
2
  export declare const PARAM_KEY = "splunkThemes";
3
3
  export declare const DISABLE_DUAL_THEME_KEY = "disableDualTheme";
4
+ export declare const DISABLE_MULTI_THEME_OPTIONS_KEY = "disableMultiThemeOptions";
5
+ export declare const ENABLE_SPLUNK_MAGNETIC_KEY = "enableSplunkMagneticOption";
4
6
  export declare const UPDATE = "@splunk/themes/update";
5
7
  export declare const CONFIGURE = "@splunk/themes/configure";
6
8
  export declare const SET = "@splunk/themes/default";
@@ -2,9 +2,9 @@ import { StoryContext } from '@storybook/types';
2
2
  import { ThemeSettings } from '../types';
3
3
  import { ThemeOptionKeys } from './themeOptions';
4
4
  export interface ExtendedThemeSettings extends Omit<Pick<ThemeSettings, ThemeOptionKeys>, ThemeOptionKeys> {
5
- colorScheme: ThemeSettings['colorScheme'] | 'both';
6
- density: ThemeSettings['density'] | 'both';
7
- family: ThemeSettings['family'] | 'both';
5
+ colorScheme: ThemeSettings['colorScheme'] | 'all' | 'both';
6
+ density: ThemeSettings['density'] | 'all' | 'both';
7
+ family: ThemeSettings['family'] | 'all' | 'both' | 'splunk-magnetic';
8
8
  }
9
9
  export declare const normalizeThemeOptions: (paramOptions?: {}, globalOptions?: {}) => Partial<ExtendedThemeSettings>;
10
10
  export declare const getMergedTheme: (globalsTheme: Partial<ExtendedThemeSettings> | undefined | null, newTheme: Partial<ExtendedThemeSettings>) => {};