@nebula.js/stardust 5.0.0-alpha4 → 5.0.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.
@@ -1,5 +1,5 @@
1
1
  /*
2
- * @nebula.js/stardust v5.0.0-alpha4
2
+ * @nebula.js/stardust v5.0.1
3
3
  * Copyright (c) 2024 QlikTech International AB
4
4
  * Released under the MIT license.
5
5
  */
@@ -756,7 +756,7 @@
756
756
  }
757
757
  function _toPropertyKey(t) {
758
758
  var i = _toPrimitive(t, "string");
759
- return "symbol" == typeof i ? i : String(i);
759
+ return "symbol" == typeof i ? i : i + "";
760
760
  }
761
761
  function _defineProperty(obj, key, value) {
762
762
  key = _toPropertyKey(key);
@@ -1009,6 +1009,26 @@
1009
1009
  "zh-TW": "{0}/ {1}"
1010
1010
  }
1011
1011
  };
1012
+ var Listbox_Cyclic = {
1013
+ id: "Listbox.Cyclic",
1014
+ locale: {
1015
+ "de-DE": "Zyklische Dimension",
1016
+ "en-US": "Cyclic dimension",
1017
+ "es-ES": "Dimensión cíclica",
1018
+ "fr-FR": "Dimension cyclique",
1019
+ "it-IT": "Dimensione ciclica",
1020
+ "ja-JP": "サイクリック軸",
1021
+ "ko-KR": "순환 차원",
1022
+ "nl-NL": "Cyclische dimensie",
1023
+ "pl-PL": "Wymiar cykliczny",
1024
+ "pt-BR": "Dimensão cíclica",
1025
+ "ru-RU": "Циклическое измерение",
1026
+ "sv-SE": "Cyklisk dimension",
1027
+ "tr-TR": "Döngüsel boyut",
1028
+ "zh-CN": "循环维度",
1029
+ "zh-TW": "循環維度"
1030
+ }
1031
+ };
1012
1032
  var Listbox_Dismiss = {
1013
1033
  id: "Listbox.Dismiss",
1014
1034
  locale: {
@@ -2013,6 +2033,7 @@
2013
2033
  Cancel: Cancel$1,
2014
2034
  CurrentSelections_All: CurrentSelections_All,
2015
2035
  CurrentSelections_Of: CurrentSelections_Of,
2036
+ Listbox_Cyclic: Listbox_Cyclic,
2016
2037
  Listbox_Dismiss: Listbox_Dismiss,
2017
2038
  Listbox_DrillDown: Listbox_DrillDown,
2018
2039
  Listbox_ItemsOverflow: Listbox_ItemsOverflow,
@@ -3308,9 +3329,15 @@
3308
3329
  };
3309
3330
  },
3310
3331
  uiColor(c, shift) {
3332
+ const indexIsValid = typeof (c === null || c === void 0 ? void 0 : c.index) === 'number' && !Number.isNaN(c === null || c === void 0 ? void 0 : c.index);
3333
+ const colorIsValid = typeof (c === null || c === void 0 ? void 0 : c.color) === 'string';
3334
+ const somethingIsValid = indexIsValid || colorIsValid;
3335
+ if (!somethingIsValid) {
3336
+ return undefined;
3337
+ }
3311
3338
  // eslint-disable-next-line no-param-reassign
3312
3339
  shift = !!shift;
3313
- if (c.index < 0 || typeof c.index === 'undefined') {
3340
+ if ((c === null || c === void 0 ? void 0 : c.index) < 0 || typeof (c === null || c === void 0 ? void 0 : c.index) === 'undefined') {
3314
3341
  return c.color;
3315
3342
  }
3316
3343
  if (typeof uiPalette === 'undefined') {
@@ -4402,7 +4429,7 @@
4402
4429
  };
4403
4430
  }
4404
4431
 
4405
- var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23
4432
+ var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23
4406
4433
 
4407
4434
  var isPropValid = /* #__PURE__ */memoize$1(function (prop) {
4408
4435
  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111
@@ -6706,7 +6733,7 @@
6706
6733
  }
6707
6734
 
6708
6735
  /**
6709
- * @mui/styled-engine v5.15.11
6736
+ * @mui/styled-engine v5.15.14
6710
6737
  *
6711
6738
  * @license MIT
6712
6739
  * This source code is licensed under the MIT license found in the
@@ -6827,7 +6854,7 @@
6827
6854
  isPlainObject: isPlainObject
6828
6855
  });
6829
6856
 
6830
- const _excluded$S = ["values", "unit", "step"];
6857
+ const _excluded$T = ["values", "unit", "step"];
6831
6858
  const sortBreakpointsValues = values => {
6832
6859
  const breakpointsAsArray = Object.keys(values).map(key => ({
6833
6860
  key,
@@ -6861,7 +6888,7 @@
6861
6888
  unit = 'px',
6862
6889
  step = 5
6863
6890
  } = breakpoints,
6864
- other = _objectWithoutPropertiesLoose$2(breakpoints, _excluded$S);
6891
+ other = _objectWithoutPropertiesLoose$2(breakpoints, _excluded$T);
6865
6892
  const sortedValues = sortBreakpointsValues(values);
6866
6893
  const keys = Object.keys(sortedValues);
6867
6894
  function up(key) {
@@ -7981,7 +8008,7 @@
7981
8008
  return {};
7982
8009
  }
7983
8010
 
7984
- const _excluded$R = ["breakpoints", "palette", "spacing", "shape"];
8011
+ const _excluded$S = ["breakpoints", "palette", "spacing", "shape"];
7985
8012
  function createTheme$2(options = {}, ...args) {
7986
8013
  const {
7987
8014
  breakpoints: breakpointsInput = {},
@@ -7989,7 +8016,7 @@
7989
8016
  spacing: spacingInput,
7990
8017
  shape: shapeInput = {}
7991
8018
  } = options,
7992
- other = _objectWithoutPropertiesLoose$2(options, _excluded$R);
8019
+ other = _objectWithoutPropertiesLoose$2(options, _excluded$S);
7993
8020
  const breakpoints = createBreakpoints(breakpointsInput);
7994
8021
  const spacing = createSpacing(spacingInput);
7995
8022
  let muiTheme = deepmerge$1({
@@ -8047,7 +8074,7 @@
8047
8074
  });
8048
8075
  }
8049
8076
 
8050
- const _excluded$Q = ["sx"];
8077
+ const _excluded$R = ["sx"];
8051
8078
  const splitProps = props => {
8052
8079
  var _props$theme$unstable, _props$theme;
8053
8080
  const result = {
@@ -8068,7 +8095,7 @@
8068
8095
  const {
8069
8096
  sx: inSx
8070
8097
  } = props,
8071
- other = _objectWithoutPropertiesLoose$2(props, _excluded$Q);
8098
+ other = _objectWithoutPropertiesLoose$2(props, _excluded$R);
8072
8099
  const {
8073
8100
  systemProps,
8074
8101
  otherProps
@@ -8119,7 +8146,7 @@
8119
8146
 
8120
8147
  function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
8121
8148
 
8122
- const _excluded$P = ["className", "component"];
8149
+ const _excluded$Q = ["className", "component"];
8123
8150
  function createBox(options = {}) {
8124
8151
  const {
8125
8152
  themeId,
@@ -8137,7 +8164,7 @@
8137
8164
  className,
8138
8165
  component = 'div'
8139
8166
  } = _extendSxProp,
8140
- other = _objectWithoutPropertiesLoose$2(_extendSxProp, _excluded$P);
8167
+ other = _objectWithoutPropertiesLoose$2(_extendSxProp, _excluded$Q);
8141
8168
  return /*#__PURE__*/jsxRuntimeExports.jsx(BoxRoot, _extends$5({
8142
8169
  as: component,
8143
8170
  ref: ref,
@@ -8227,7 +8254,7 @@
8227
8254
  getFunctionName: getFunctionName
8228
8255
  });
8229
8256
 
8230
- const _excluded$O = ["ownerState"],
8257
+ const _excluded$P = ["ownerState"],
8231
8258
  _excluded2$6 = ["variants"],
8232
8259
  _excluded3$2 = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"];
8233
8260
  function isEmpty$3(obj) {
@@ -8271,7 +8298,7 @@
8271
8298
  let {
8272
8299
  ownerState
8273
8300
  } = _ref,
8274
- props = _objectWithoutPropertiesLoose$2(_ref, _excluded$O);
8301
+ props = _objectWithoutPropertiesLoose$2(_ref, _excluded$P);
8275
8302
  const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle(_extends$5({
8276
8303
  ownerState
8277
8304
  }, props)) : callableStyle;
@@ -8751,11 +8778,11 @@
8751
8778
 
8752
8779
  class Timeout {
8753
8780
  constructor() {
8754
- this.currentId = 0;
8781
+ this.currentId = null;
8755
8782
  this.clear = () => {
8756
- if (this.currentId !== 0) {
8783
+ if (this.currentId !== null) {
8757
8784
  clearTimeout(this.currentId);
8758
- this.currentId = 0;
8785
+ this.currentId = null;
8759
8786
  }
8760
8787
  };
8761
8788
  this.disposeEffect = () => {
@@ -8771,7 +8798,7 @@
8771
8798
  start(delay, fn) {
8772
8799
  this.clear();
8773
8800
  this.currentId = setTimeout(() => {
8774
- this.currentId = 0;
8801
+ this.currentId = null;
8775
8802
  fn();
8776
8803
  }, delay);
8777
8804
  }
@@ -9015,6 +9042,22 @@
9015
9042
  });
9016
9043
  }
9017
9044
 
9045
+ const _excluded$O = ["value"];
9046
+ const RtlContext = /*#__PURE__*/reactExports.createContext();
9047
+ function RtlProvider(_ref) {
9048
+ let {
9049
+ value
9050
+ } = _ref,
9051
+ props = _objectWithoutPropertiesLoose$2(_ref, _excluded$O);
9052
+ return /*#__PURE__*/jsxRuntimeExports.jsx(RtlContext.Provider, _extends$5({
9053
+ value: value != null ? value : true
9054
+ }, props));
9055
+ }
9056
+ const useRtl = () => {
9057
+ const value = reactExports.useContext(RtlContext);
9058
+ return value != null ? value : false;
9059
+ };
9060
+
9018
9061
  const EMPTY_THEME = {};
9019
9062
  function useThemeScoping(themeId, upperTheme, localTheme, isPrivate = false) {
9020
9063
  return reactExports.useMemo(() => {
@@ -9054,11 +9097,15 @@
9054
9097
  const upperPrivateTheme = useTheme$3() || EMPTY_THEME;
9055
9098
  const engineTheme = useThemeScoping(themeId, upperTheme, localTheme);
9056
9099
  const privateTheme = useThemeScoping(themeId, upperPrivateTheme, localTheme, true);
9100
+ const rtlValue = engineTheme.direction === 'rtl';
9057
9101
  return /*#__PURE__*/jsxRuntimeExports.jsx(ThemeProvider$2, {
9058
9102
  theme: privateTheme,
9059
9103
  children: /*#__PURE__*/jsxRuntimeExports.jsx(ThemeContext$2.Provider, {
9060
9104
  value: engineTheme,
9061
- children: children
9105
+ children: /*#__PURE__*/jsxRuntimeExports.jsx(RtlProvider, {
9106
+ value: rtlValue,
9107
+ children: children
9108
+ })
9062
9109
  })
9063
9110
  });
9064
9111
  }
@@ -9662,7 +9709,7 @@
9662
9709
  }
9663
9710
  function private_safeEmphasize(color, coefficient, warning) {
9664
9711
  try {
9665
- return private_safeEmphasize(color, coefficient);
9712
+ return emphasize(color, coefficient);
9666
9713
  } catch (error) {
9667
9714
  if (warning && "production" !== 'production') {
9668
9715
  console.warn(warning);
@@ -10383,7 +10430,7 @@
10383
10430
  value: true
10384
10431
  });
10385
10432
  var _default = createStyled$1.default = createStyled;
10386
- var shouldForwardProp_1 = createStyled$1.shouldForwardProp = shouldForwardProp;
10433
+ createStyled$1.shouldForwardProp = shouldForwardProp;
10387
10434
  createStyled$1.systemDefaultTheme = void 0;
10388
10435
  var _extends2 = _interopRequireDefault$1(require_extends());
10389
10436
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault$1(requireObjectWithoutPropertiesLoose());
@@ -10611,11 +10658,18 @@
10611
10658
  };
10612
10659
  }
10613
10660
 
10614
- const rootShouldForwardProp = prop => shouldForwardProp_1(prop) && prop !== 'classes';
10661
+ // copied from @mui/system/createStyled
10662
+ function slotShouldForwardProp(prop) {
10663
+ return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';
10664
+ }
10665
+
10666
+ const rootShouldForwardProp = prop => slotShouldForwardProp(prop) && prop !== 'classes';
10667
+ var rootShouldForwardProp$1 = rootShouldForwardProp;
10668
+
10615
10669
  const styled = _default({
10616
10670
  themeId: THEME_ID,
10617
10671
  defaultTheme: defaultTheme$2,
10618
- rootShouldForwardProp
10672
+ rootShouldForwardProp: rootShouldForwardProp$1
10619
10673
  });
10620
10674
 
10621
10675
  const _excluded$G = ["theme"];
@@ -12051,7 +12105,7 @@
12051
12105
  function getButtonUtilityClass(slot) {
12052
12106
  return generateUtilityClass$1('MuiButton', slot);
12053
12107
  }
12054
- const buttonClasses = generateUtilityClasses$1('MuiButton', ['root', 'text', 'textInherit', 'textPrimary', 'textSecondary', 'textSuccess', 'textError', 'textInfo', 'textWarning', 'outlined', 'outlinedInherit', 'outlinedPrimary', 'outlinedSecondary', 'outlinedSuccess', 'outlinedError', 'outlinedInfo', 'outlinedWarning', 'contained', 'containedInherit', 'containedPrimary', 'containedSecondary', 'containedSuccess', 'containedError', 'containedInfo', 'containedWarning', 'disableElevation', 'focusVisible', 'disabled', 'colorInherit', 'textSizeSmall', 'textSizeMedium', 'textSizeLarge', 'outlinedSizeSmall', 'outlinedSizeMedium', 'outlinedSizeLarge', 'containedSizeSmall', 'containedSizeMedium', 'containedSizeLarge', 'sizeMedium', 'sizeSmall', 'sizeLarge', 'fullWidth', 'startIcon', 'endIcon', 'iconSizeSmall', 'iconSizeMedium', 'iconSizeLarge']);
12108
+ const buttonClasses = generateUtilityClasses$1('MuiButton', ['root', 'text', 'textInherit', 'textPrimary', 'textSecondary', 'textSuccess', 'textError', 'textInfo', 'textWarning', 'outlined', 'outlinedInherit', 'outlinedPrimary', 'outlinedSecondary', 'outlinedSuccess', 'outlinedError', 'outlinedInfo', 'outlinedWarning', 'contained', 'containedInherit', 'containedPrimary', 'containedSecondary', 'containedSuccess', 'containedError', 'containedInfo', 'containedWarning', 'disableElevation', 'focusVisible', 'disabled', 'colorInherit', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorError', 'colorInfo', 'colorWarning', 'textSizeSmall', 'textSizeMedium', 'textSizeLarge', 'outlinedSizeSmall', 'outlinedSizeMedium', 'outlinedSizeLarge', 'containedSizeSmall', 'containedSizeMedium', 'containedSizeLarge', 'sizeMedium', 'sizeSmall', 'sizeLarge', 'fullWidth', 'startIcon', 'endIcon', 'icon', 'iconSizeSmall', 'iconSizeMedium', 'iconSizeLarge']);
12055
12109
  var buttonClasses$1 = buttonClasses;
12056
12110
 
12057
12111
  /**
@@ -12077,10 +12131,10 @@
12077
12131
  classes
12078
12132
  } = ownerState;
12079
12133
  const slots = {
12080
- root: ['root', variant, `${variant}${capitalize$1(color)}`, `size${capitalize$1(size)}`, `${variant}Size${capitalize$1(size)}`, color === 'inherit' && 'colorInherit', disableElevation && 'disableElevation', fullWidth && 'fullWidth'],
12134
+ root: ['root', variant, `${variant}${capitalize$1(color)}`, `size${capitalize$1(size)}`, `${variant}Size${capitalize$1(size)}`, `color${capitalize$1(color)}`, disableElevation && 'disableElevation', fullWidth && 'fullWidth'],
12081
12135
  label: ['label'],
12082
- startIcon: ['startIcon', `iconSize${capitalize$1(size)}`],
12083
- endIcon: ['endIcon', `iconSize${capitalize$1(size)}`]
12136
+ startIcon: ['icon', 'startIcon', `iconSize${capitalize$1(size)}`],
12137
+ endIcon: ['icon', 'endIcon', `iconSize${capitalize$1(size)}`]
12084
12138
  };
12085
12139
  const composedClasses = composeClasses(slots, getButtonUtilityClass, classes);
12086
12140
  return _extends$7({}, classes, composedClasses);
@@ -12099,7 +12153,7 @@
12099
12153
  }
12100
12154
  });
12101
12155
  const ButtonRoot = styled(ButtonBase$1, {
12102
- shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',
12156
+ shouldForwardProp: prop => rootShouldForwardProp$1(prop) || prop === 'classes',
12103
12157
  name: 'MuiButton',
12104
12158
  slot: 'Root',
12105
12159
  overridesResolver: (props, styles) => {
@@ -12670,7 +12724,7 @@
12670
12724
  return cache[key];
12671
12725
  }
12672
12726
 
12673
- const NEBULA_VERSION_HASH = "41f6" ;
12727
+ const NEBULA_VERSION_HASH = "19bb" ;
12674
12728
  ClassNameGenerator.configure(componentName => {
12675
12729
  return "njs-".concat(NEBULA_VERSION_HASH, "-").concat(componentName.replace('Mui', ''));
12676
12730
  });
@@ -12902,7 +12956,7 @@
12902
12956
  const appRef = React$1.createRef();
12903
12957
  const element = document.createElement('div');
12904
12958
  element.style.display = 'none';
12905
- element.setAttribute('data-nebulajs-version', "5.0.0-alpha4" );
12959
+ element.setAttribute('data-nebulajs-version', "5.0.1" );
12906
12960
  element.setAttribute('data-app-id', app.id);
12907
12961
  document.body.appendChild(element);
12908
12962
  if (context) {
@@ -13006,7 +13060,7 @@
13006
13060
  height: '1em',
13007
13061
  display: 'inline-block',
13008
13062
  // the <svg> will define the property that has `currentColor`
13009
- // e.g. heroicons uses fill="none" and stroke="currentColor"
13063
+ // for example heroicons uses fill="none" and stroke="currentColor"
13010
13064
  fill: ownerState.hasSvgAsChild ? undefined : 'currentColor',
13011
13065
  flexShrink: 0,
13012
13066
  transition: (_theme$transitions = theme.transitions) == null || (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {
@@ -13118,6 +13172,11 @@
13118
13172
  useIsFocusVisible: useIsFocusVisible
13119
13173
  });
13120
13174
 
13175
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
13176
+ function createUseThemeProps(name) {
13177
+ return useThemeProps$1;
13178
+ }
13179
+
13121
13180
  const reflow = node => node.scrollTop;
13122
13181
  function getTransitionProps(props, options) {
13123
13182
  var _style$transitionDura, _style$transitionTimi;
@@ -13436,6 +13495,249 @@
13436
13495
  return props;
13437
13496
  }
13438
13497
 
13498
+ function getIconButtonUtilityClass(slot) {
13499
+ return generateUtilityClass$1('MuiIconButton', slot);
13500
+ }
13501
+ const iconButtonClasses = generateUtilityClasses$1('MuiIconButton', ['root', 'disabled', 'colorInherit', 'colorPrimary', 'colorSecondary', 'colorError', 'colorInfo', 'colorSuccess', 'colorWarning', 'edgeStart', 'edgeEnd', 'sizeSmall', 'sizeMedium', 'sizeLarge']);
13502
+
13503
+ const _excluded$z = ["edge", "children", "className", "color", "disabled", "disableFocusRipple", "size"];
13504
+ const useUtilityClasses$n = ownerState => {
13505
+ const {
13506
+ classes,
13507
+ disabled,
13508
+ color,
13509
+ edge,
13510
+ size
13511
+ } = ownerState;
13512
+ const slots = {
13513
+ root: ['root', disabled && 'disabled', color !== 'default' && `color${capitalize$1(color)}`, edge && `edge${capitalize$1(edge)}`, `size${capitalize$1(size)}`]
13514
+ };
13515
+ return composeClasses(slots, getIconButtonUtilityClass, classes);
13516
+ };
13517
+ const IconButtonRoot = styled(ButtonBase$1, {
13518
+ name: 'MuiIconButton',
13519
+ slot: 'Root',
13520
+ overridesResolver: (props, styles) => {
13521
+ const {
13522
+ ownerState
13523
+ } = props;
13524
+ return [styles.root, ownerState.color !== 'default' && styles[`color${capitalize$1(ownerState.color)}`], ownerState.edge && styles[`edge${capitalize$1(ownerState.edge)}`], styles[`size${capitalize$1(ownerState.size)}`]];
13525
+ }
13526
+ })(({
13527
+ theme,
13528
+ ownerState
13529
+ }) => _extends$7({
13530
+ textAlign: 'center',
13531
+ flex: '0 0 auto',
13532
+ fontSize: theme.typography.pxToRem(24),
13533
+ padding: 8,
13534
+ borderRadius: '50%',
13535
+ overflow: 'visible',
13536
+ // Explicitly set the default value to solve a bug on IE11.
13537
+ color: (theme.vars || theme).palette.action.active,
13538
+ transition: theme.transitions.create('background-color', {
13539
+ duration: theme.transitions.duration.shortest
13540
+ })
13541
+ }, !ownerState.disableRipple && {
13542
+ '&:hover': {
13543
+ backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha_1(theme.palette.action.active, theme.palette.action.hoverOpacity),
13544
+ // Reset on touch devices, it doesn't add specificity
13545
+ '@media (hover: none)': {
13546
+ backgroundColor: 'transparent'
13547
+ }
13548
+ }
13549
+ }, ownerState.edge === 'start' && {
13550
+ marginLeft: ownerState.size === 'small' ? -3 : -12
13551
+ }, ownerState.edge === 'end' && {
13552
+ marginRight: ownerState.size === 'small' ? -3 : -12
13553
+ }), ({
13554
+ theme,
13555
+ ownerState
13556
+ }) => {
13557
+ var _palette;
13558
+ const palette = (_palette = (theme.vars || theme).palette) == null ? void 0 : _palette[ownerState.color];
13559
+ return _extends$7({}, ownerState.color === 'inherit' && {
13560
+ color: 'inherit'
13561
+ }, ownerState.color !== 'inherit' && ownerState.color !== 'default' && _extends$7({
13562
+ color: palette == null ? void 0 : palette.main
13563
+ }, !ownerState.disableRipple && {
13564
+ '&:hover': _extends$7({}, palette && {
13565
+ backgroundColor: theme.vars ? `rgba(${palette.mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha_1(palette.main, theme.palette.action.hoverOpacity)
13566
+ }, {
13567
+ // Reset on touch devices, it doesn't add specificity
13568
+ '@media (hover: none)': {
13569
+ backgroundColor: 'transparent'
13570
+ }
13571
+ })
13572
+ }), ownerState.size === 'small' && {
13573
+ padding: 5,
13574
+ fontSize: theme.typography.pxToRem(18)
13575
+ }, ownerState.size === 'large' && {
13576
+ padding: 12,
13577
+ fontSize: theme.typography.pxToRem(28)
13578
+ }, {
13579
+ [`&.${iconButtonClasses.disabled}`]: {
13580
+ backgroundColor: 'transparent',
13581
+ color: (theme.vars || theme).palette.action.disabled
13582
+ }
13583
+ });
13584
+ });
13585
+
13586
+ /**
13587
+ * Refer to the [Icons](/material-ui/icons/) section of the documentation
13588
+ * regarding the available icon options.
13589
+ */
13590
+ const IconButton = /*#__PURE__*/reactExports.forwardRef(function IconButton(inProps, ref) {
13591
+ const props = useThemeProps$1({
13592
+ props: inProps,
13593
+ name: 'MuiIconButton'
13594
+ });
13595
+ const {
13596
+ edge = false,
13597
+ children,
13598
+ className,
13599
+ color = 'default',
13600
+ disabled = false,
13601
+ disableFocusRipple = false,
13602
+ size = 'medium'
13603
+ } = props,
13604
+ other = _objectWithoutPropertiesLoose$3(props, _excluded$z);
13605
+ const ownerState = _extends$7({}, props, {
13606
+ edge,
13607
+ color,
13608
+ disabled,
13609
+ disableFocusRipple,
13610
+ size
13611
+ });
13612
+ const classes = useUtilityClasses$n(ownerState);
13613
+ return /*#__PURE__*/jsxRuntimeExports.jsx(IconButtonRoot, _extends$7({
13614
+ className: clsx(classes.root, className),
13615
+ centerRipple: true,
13616
+ focusRipple: !disableFocusRipple,
13617
+ disabled: disabled,
13618
+ ref: ref
13619
+ }, other, {
13620
+ ownerState: ownerState,
13621
+ children: children
13622
+ }));
13623
+ });
13624
+ var IconButton$1 = IconButton;
13625
+
13626
+ function getTypographyUtilityClass(slot) {
13627
+ return generateUtilityClass$1('MuiTypography', slot);
13628
+ }
13629
+ generateUtilityClasses$1('MuiTypography', ['root', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'inherit', 'button', 'caption', 'overline', 'alignLeft', 'alignRight', 'alignCenter', 'alignJustify', 'noWrap', 'gutterBottom', 'paragraph']);
13630
+
13631
+ const _excluded$y = ["align", "className", "component", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"];
13632
+ const useUtilityClasses$m = ownerState => {
13633
+ const {
13634
+ align,
13635
+ gutterBottom,
13636
+ noWrap,
13637
+ paragraph,
13638
+ variant,
13639
+ classes
13640
+ } = ownerState;
13641
+ const slots = {
13642
+ root: ['root', variant, ownerState.align !== 'inherit' && `align${capitalize$1(align)}`, gutterBottom && 'gutterBottom', noWrap && 'noWrap', paragraph && 'paragraph']
13643
+ };
13644
+ return composeClasses(slots, getTypographyUtilityClass, classes);
13645
+ };
13646
+ const TypographyRoot = styled('span', {
13647
+ name: 'MuiTypography',
13648
+ slot: 'Root',
13649
+ overridesResolver: (props, styles) => {
13650
+ const {
13651
+ ownerState
13652
+ } = props;
13653
+ return [styles.root, ownerState.variant && styles[ownerState.variant], ownerState.align !== 'inherit' && styles[`align${capitalize$1(ownerState.align)}`], ownerState.noWrap && styles.noWrap, ownerState.gutterBottom && styles.gutterBottom, ownerState.paragraph && styles.paragraph];
13654
+ }
13655
+ })(({
13656
+ theme,
13657
+ ownerState
13658
+ }) => _extends$7({
13659
+ margin: 0
13660
+ }, ownerState.variant === 'inherit' && {
13661
+ // Some elements, like <button> on Chrome have default font that doesn't inherit, reset this.
13662
+ font: 'inherit'
13663
+ }, ownerState.variant !== 'inherit' && theme.typography[ownerState.variant], ownerState.align !== 'inherit' && {
13664
+ textAlign: ownerState.align
13665
+ }, ownerState.noWrap && {
13666
+ overflow: 'hidden',
13667
+ textOverflow: 'ellipsis',
13668
+ whiteSpace: 'nowrap'
13669
+ }, ownerState.gutterBottom && {
13670
+ marginBottom: '0.35em'
13671
+ }, ownerState.paragraph && {
13672
+ marginBottom: 16
13673
+ }));
13674
+ const defaultVariantMapping = {
13675
+ h1: 'h1',
13676
+ h2: 'h2',
13677
+ h3: 'h3',
13678
+ h4: 'h4',
13679
+ h5: 'h5',
13680
+ h6: 'h6',
13681
+ subtitle1: 'h6',
13682
+ subtitle2: 'h6',
13683
+ body1: 'p',
13684
+ body2: 'p',
13685
+ inherit: 'p'
13686
+ };
13687
+
13688
+ // TODO v6: deprecate these color values in v5.x and remove the transformation in v6
13689
+ const colorTransformations = {
13690
+ primary: 'primary.main',
13691
+ textPrimary: 'text.primary',
13692
+ secondary: 'secondary.main',
13693
+ textSecondary: 'text.secondary',
13694
+ error: 'error.main'
13695
+ };
13696
+ const transformDeprecatedColors = color => {
13697
+ return colorTransformations[color] || color;
13698
+ };
13699
+ const Typography = /*#__PURE__*/reactExports.forwardRef(function Typography(inProps, ref) {
13700
+ const themeProps = useThemeProps$1({
13701
+ props: inProps,
13702
+ name: 'MuiTypography'
13703
+ });
13704
+ const color = transformDeprecatedColors(themeProps.color);
13705
+ const props = extendSxProp(_extends$7({}, themeProps, {
13706
+ color
13707
+ }));
13708
+ const {
13709
+ align = 'inherit',
13710
+ className,
13711
+ component,
13712
+ gutterBottom = false,
13713
+ noWrap = false,
13714
+ paragraph = false,
13715
+ variant = 'body1',
13716
+ variantMapping = defaultVariantMapping
13717
+ } = props,
13718
+ other = _objectWithoutPropertiesLoose$3(props, _excluded$y);
13719
+ const ownerState = _extends$7({}, props, {
13720
+ align,
13721
+ color,
13722
+ className,
13723
+ component,
13724
+ gutterBottom,
13725
+ noWrap,
13726
+ paragraph,
13727
+ variant,
13728
+ variantMapping
13729
+ });
13730
+ const Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';
13731
+ const classes = useUtilityClasses$m(ownerState);
13732
+ return /*#__PURE__*/jsxRuntimeExports.jsx(TypographyRoot, _extends$7({
13733
+ as: Component,
13734
+ ref: ref,
13735
+ ownerState: ownerState,
13736
+ className: clsx(classes.root, className)
13737
+ }, other));
13738
+ });
13739
+ var Typography$1 = Typography;
13740
+
13439
13741
  /**
13440
13742
  *
13441
13743
  * Demos:
@@ -13714,7 +14016,7 @@
13714
14016
  doc.addEventListener('keydown', loopFocus, true);
13715
14017
 
13716
14018
  // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area.
13717
- // e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=559561.
14019
+ // for example https://bugzilla.mozilla.org/show_bug.cgi?id=559561.
13718
14020
  // Instead, we can look if the active element was restored on the BODY element.
13719
14021
  //
13720
14022
  // The whatwg spec defines how the browser should behave but does not explicitly mention any events:
@@ -16018,7 +16320,7 @@
16018
16320
  }
16019
16321
  generateUtilityClasses(COMPONENT_NAME, ['root']);
16020
16322
 
16021
- const _excluded$z = ["anchorEl", "children", "direction", "disablePortal", "modifiers", "open", "placement", "popperOptions", "popperRef", "slotProps", "slots", "TransitionProps", "ownerState"],
16323
+ const _excluded$x = ["anchorEl", "children", "direction", "disablePortal", "modifiers", "open", "placement", "popperOptions", "popperRef", "slotProps", "slots", "TransitionProps", "ownerState"],
16022
16324
  _excluded2$3 = ["anchorEl", "children", "container", "direction", "disablePortal", "keepMounted", "modifiers", "open", "placement", "popperOptions", "popperRef", "style", "transition", "slotProps", "slots"];
16023
16325
  function flipPlacement(placement, direction) {
16024
16326
  if (direction === 'ltr') {
@@ -16043,7 +16345,7 @@
16043
16345
  function isHTMLElement(element) {
16044
16346
  return element.nodeType !== undefined;
16045
16347
  }
16046
- const useUtilityClasses$n = () => {
16348
+ const useUtilityClasses$l = () => {
16047
16349
  const slots = {
16048
16350
  root: ['root']
16049
16351
  };
@@ -16068,7 +16370,7 @@
16068
16370
  // @ts-ignore internal logic
16069
16371
  // prevent from spreading to DOM, it can come from the parent component e.g. Select.
16070
16372
  } = props,
16071
- other = _objectWithoutPropertiesLoose(props, _excluded$z);
16373
+ other = _objectWithoutPropertiesLoose(props, _excluded$x);
16072
16374
  const tooltipRef = reactExports.useRef(null);
16073
16375
  const ownRef = useForkRef(tooltipRef, forwardedRef);
16074
16376
  const popperRef = reactExports.useRef(null);
@@ -16145,7 +16447,7 @@
16145
16447
  if (TransitionProps !== null) {
16146
16448
  childProps.TransitionProps = TransitionProps;
16147
16449
  }
16148
- const classes = useUtilityClasses$n();
16450
+ const classes = useUtilityClasses$l();
16149
16451
  const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';
16150
16452
  const rootProps = useSlotProps({
16151
16453
  elementType: Root,
@@ -16250,7 +16552,7 @@
16250
16552
  });
16251
16553
  });
16252
16554
 
16253
- const _excluded$y = ["onChange", "maxRows", "minRows", "style", "value"];
16555
+ const _excluded$w = ["onChange", "maxRows", "minRows", "style", "value"];
16254
16556
  function getStyleValue(value) {
16255
16557
  return parseInt(value, 10) || 0;
16256
16558
  }
@@ -16292,7 +16594,7 @@
16292
16594
  style,
16293
16595
  value
16294
16596
  } = props,
16295
- other = _objectWithoutPropertiesLoose(props, _excluded$y);
16597
+ other = _objectWithoutPropertiesLoose(props, _excluded$w);
16296
16598
  const {
16297
16599
  current: isControlled
16298
16600
  } = reactExports.useRef(value != null);
@@ -16403,7 +16705,8 @@
16403
16705
  ref: handleRef
16404
16706
  // Apply the rows prop to get a "correct" first SSR paint
16405
16707
  ,
16406
- rows: minRows
16708
+ rows: minRows,
16709
+ style: style
16407
16710
  }, other)), /*#__PURE__*/jsxRuntimeExports.jsx("textarea", {
16408
16711
  "aria-hidden": true,
16409
16712
  className: props.className,
@@ -16418,249 +16721,6 @@
16418
16721
  });
16419
16722
  });
16420
16723
 
16421
- function getIconButtonUtilityClass(slot) {
16422
- return generateUtilityClass$1('MuiIconButton', slot);
16423
- }
16424
- const iconButtonClasses = generateUtilityClasses$1('MuiIconButton', ['root', 'disabled', 'colorInherit', 'colorPrimary', 'colorSecondary', 'colorError', 'colorInfo', 'colorSuccess', 'colorWarning', 'edgeStart', 'edgeEnd', 'sizeSmall', 'sizeMedium', 'sizeLarge']);
16425
-
16426
- const _excluded$x = ["edge", "children", "className", "color", "disabled", "disableFocusRipple", "size"];
16427
- const useUtilityClasses$m = ownerState => {
16428
- const {
16429
- classes,
16430
- disabled,
16431
- color,
16432
- edge,
16433
- size
16434
- } = ownerState;
16435
- const slots = {
16436
- root: ['root', disabled && 'disabled', color !== 'default' && `color${capitalize$1(color)}`, edge && `edge${capitalize$1(edge)}`, `size${capitalize$1(size)}`]
16437
- };
16438
- return composeClasses(slots, getIconButtonUtilityClass, classes);
16439
- };
16440
- const IconButtonRoot = styled(ButtonBase$1, {
16441
- name: 'MuiIconButton',
16442
- slot: 'Root',
16443
- overridesResolver: (props, styles) => {
16444
- const {
16445
- ownerState
16446
- } = props;
16447
- return [styles.root, ownerState.color !== 'default' && styles[`color${capitalize$1(ownerState.color)}`], ownerState.edge && styles[`edge${capitalize$1(ownerState.edge)}`], styles[`size${capitalize$1(ownerState.size)}`]];
16448
- }
16449
- })(({
16450
- theme,
16451
- ownerState
16452
- }) => _extends$7({
16453
- textAlign: 'center',
16454
- flex: '0 0 auto',
16455
- fontSize: theme.typography.pxToRem(24),
16456
- padding: 8,
16457
- borderRadius: '50%',
16458
- overflow: 'visible',
16459
- // Explicitly set the default value to solve a bug on IE11.
16460
- color: (theme.vars || theme).palette.action.active,
16461
- transition: theme.transitions.create('background-color', {
16462
- duration: theme.transitions.duration.shortest
16463
- })
16464
- }, !ownerState.disableRipple && {
16465
- '&:hover': {
16466
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha_1(theme.palette.action.active, theme.palette.action.hoverOpacity),
16467
- // Reset on touch devices, it doesn't add specificity
16468
- '@media (hover: none)': {
16469
- backgroundColor: 'transparent'
16470
- }
16471
- }
16472
- }, ownerState.edge === 'start' && {
16473
- marginLeft: ownerState.size === 'small' ? -3 : -12
16474
- }, ownerState.edge === 'end' && {
16475
- marginRight: ownerState.size === 'small' ? -3 : -12
16476
- }), ({
16477
- theme,
16478
- ownerState
16479
- }) => {
16480
- var _palette;
16481
- const palette = (_palette = (theme.vars || theme).palette) == null ? void 0 : _palette[ownerState.color];
16482
- return _extends$7({}, ownerState.color === 'inherit' && {
16483
- color: 'inherit'
16484
- }, ownerState.color !== 'inherit' && ownerState.color !== 'default' && _extends$7({
16485
- color: palette == null ? void 0 : palette.main
16486
- }, !ownerState.disableRipple && {
16487
- '&:hover': _extends$7({}, palette && {
16488
- backgroundColor: theme.vars ? `rgba(${palette.mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha_1(palette.main, theme.palette.action.hoverOpacity)
16489
- }, {
16490
- // Reset on touch devices, it doesn't add specificity
16491
- '@media (hover: none)': {
16492
- backgroundColor: 'transparent'
16493
- }
16494
- })
16495
- }), ownerState.size === 'small' && {
16496
- padding: 5,
16497
- fontSize: theme.typography.pxToRem(18)
16498
- }, ownerState.size === 'large' && {
16499
- padding: 12,
16500
- fontSize: theme.typography.pxToRem(28)
16501
- }, {
16502
- [`&.${iconButtonClasses.disabled}`]: {
16503
- backgroundColor: 'transparent',
16504
- color: (theme.vars || theme).palette.action.disabled
16505
- }
16506
- });
16507
- });
16508
-
16509
- /**
16510
- * Refer to the [Icons](/material-ui/icons/) section of the documentation
16511
- * regarding the available icon options.
16512
- */
16513
- const IconButton = /*#__PURE__*/reactExports.forwardRef(function IconButton(inProps, ref) {
16514
- const props = useThemeProps$1({
16515
- props: inProps,
16516
- name: 'MuiIconButton'
16517
- });
16518
- const {
16519
- edge = false,
16520
- children,
16521
- className,
16522
- color = 'default',
16523
- disabled = false,
16524
- disableFocusRipple = false,
16525
- size = 'medium'
16526
- } = props,
16527
- other = _objectWithoutPropertiesLoose$3(props, _excluded$x);
16528
- const ownerState = _extends$7({}, props, {
16529
- edge,
16530
- color,
16531
- disabled,
16532
- disableFocusRipple,
16533
- size
16534
- });
16535
- const classes = useUtilityClasses$m(ownerState);
16536
- return /*#__PURE__*/jsxRuntimeExports.jsx(IconButtonRoot, _extends$7({
16537
- className: clsx(classes.root, className),
16538
- centerRipple: true,
16539
- focusRipple: !disableFocusRipple,
16540
- disabled: disabled,
16541
- ref: ref
16542
- }, other, {
16543
- ownerState: ownerState,
16544
- children: children
16545
- }));
16546
- });
16547
- var IconButton$1 = IconButton;
16548
-
16549
- function getTypographyUtilityClass(slot) {
16550
- return generateUtilityClass$1('MuiTypography', slot);
16551
- }
16552
- generateUtilityClasses$1('MuiTypography', ['root', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'inherit', 'button', 'caption', 'overline', 'alignLeft', 'alignRight', 'alignCenter', 'alignJustify', 'noWrap', 'gutterBottom', 'paragraph']);
16553
-
16554
- const _excluded$w = ["align", "className", "component", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"];
16555
- const useUtilityClasses$l = ownerState => {
16556
- const {
16557
- align,
16558
- gutterBottom,
16559
- noWrap,
16560
- paragraph,
16561
- variant,
16562
- classes
16563
- } = ownerState;
16564
- const slots = {
16565
- root: ['root', variant, ownerState.align !== 'inherit' && `align${capitalize$1(align)}`, gutterBottom && 'gutterBottom', noWrap && 'noWrap', paragraph && 'paragraph']
16566
- };
16567
- return composeClasses(slots, getTypographyUtilityClass, classes);
16568
- };
16569
- const TypographyRoot = styled('span', {
16570
- name: 'MuiTypography',
16571
- slot: 'Root',
16572
- overridesResolver: (props, styles) => {
16573
- const {
16574
- ownerState
16575
- } = props;
16576
- return [styles.root, ownerState.variant && styles[ownerState.variant], ownerState.align !== 'inherit' && styles[`align${capitalize$1(ownerState.align)}`], ownerState.noWrap && styles.noWrap, ownerState.gutterBottom && styles.gutterBottom, ownerState.paragraph && styles.paragraph];
16577
- }
16578
- })(({
16579
- theme,
16580
- ownerState
16581
- }) => _extends$7({
16582
- margin: 0
16583
- }, ownerState.variant === 'inherit' && {
16584
- // Some elements, like <button> on Chrome have default font that doesn't inherit, reset this.
16585
- font: 'inherit'
16586
- }, ownerState.variant !== 'inherit' && theme.typography[ownerState.variant], ownerState.align !== 'inherit' && {
16587
- textAlign: ownerState.align
16588
- }, ownerState.noWrap && {
16589
- overflow: 'hidden',
16590
- textOverflow: 'ellipsis',
16591
- whiteSpace: 'nowrap'
16592
- }, ownerState.gutterBottom && {
16593
- marginBottom: '0.35em'
16594
- }, ownerState.paragraph && {
16595
- marginBottom: 16
16596
- }));
16597
- const defaultVariantMapping = {
16598
- h1: 'h1',
16599
- h2: 'h2',
16600
- h3: 'h3',
16601
- h4: 'h4',
16602
- h5: 'h5',
16603
- h6: 'h6',
16604
- subtitle1: 'h6',
16605
- subtitle2: 'h6',
16606
- body1: 'p',
16607
- body2: 'p',
16608
- inherit: 'p'
16609
- };
16610
-
16611
- // TODO v6: deprecate these color values in v5.x and remove the transformation in v6
16612
- const colorTransformations = {
16613
- primary: 'primary.main',
16614
- textPrimary: 'text.primary',
16615
- secondary: 'secondary.main',
16616
- textSecondary: 'text.secondary',
16617
- error: 'error.main'
16618
- };
16619
- const transformDeprecatedColors = color => {
16620
- return colorTransformations[color] || color;
16621
- };
16622
- const Typography = /*#__PURE__*/reactExports.forwardRef(function Typography(inProps, ref) {
16623
- const themeProps = useThemeProps$1({
16624
- props: inProps,
16625
- name: 'MuiTypography'
16626
- });
16627
- const color = transformDeprecatedColors(themeProps.color);
16628
- const props = extendSxProp(_extends$7({}, themeProps, {
16629
- color
16630
- }));
16631
- const {
16632
- align = 'inherit',
16633
- className,
16634
- component,
16635
- gutterBottom = false,
16636
- noWrap = false,
16637
- paragraph = false,
16638
- variant = 'body1',
16639
- variantMapping = defaultVariantMapping
16640
- } = props,
16641
- other = _objectWithoutPropertiesLoose$3(props, _excluded$w);
16642
- const ownerState = _extends$7({}, props, {
16643
- align,
16644
- color,
16645
- className,
16646
- component,
16647
- gutterBottom,
16648
- noWrap,
16649
- paragraph,
16650
- variant,
16651
- variantMapping
16652
- });
16653
- const Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';
16654
- const classes = useUtilityClasses$l(ownerState);
16655
- return /*#__PURE__*/jsxRuntimeExports.jsx(TypographyRoot, _extends$7({
16656
- as: Component,
16657
- ref: ref,
16658
- ownerState: ownerState,
16659
- className: clsx(classes.root, className)
16660
- }, other));
16661
- });
16662
- var Typography$1 = Typography;
16663
-
16664
16724
  var useThemeWithoutDefault = {};
16665
16725
 
16666
16726
  Object.defineProperty(useThemeWithoutDefault, "__esModule", {
@@ -17455,11 +17515,6 @@
17455
17515
  });
17456
17516
  var Backdrop$1 = Backdrop;
17457
17517
 
17458
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
17459
- function createUseThemeProps(name) {
17460
- return useThemeProps$1;
17461
- }
17462
-
17463
17518
  function getBadgeUtilityClass(slot) {
17464
17519
  return generateUtilityClass$1('MuiBadge', slot);
17465
17520
  }
@@ -17810,7 +17865,7 @@
17810
17865
  marginRight: ownerState.size === 'small' ? -3 : -12
17811
17866
  }));
17812
17867
  const SwitchBaseInput = styled('input', {
17813
- shouldForwardProp: rootShouldForwardProp
17868
+ shouldForwardProp: rootShouldForwardProp$1
17814
17869
  })({
17815
17870
  cursor: 'inherit',
17816
17871
  position: 'absolute',
@@ -17969,7 +18024,7 @@
17969
18024
  return _extends$7({}, classes, composedClasses);
17970
18025
  };
17971
18026
  const CheckboxRoot = styled(SwitchBase$1, {
17972
- shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',
18027
+ shouldForwardProp: prop => rootShouldForwardProp$1(prop) || prop === 'classes',
17973
18028
  name: 'MuiCheckbox',
17974
18029
  slot: 'Root',
17975
18030
  overridesResolver: (props, styles) => {
@@ -20110,13 +20165,15 @@
20110
20165
  }
20111
20166
  }, [autoFocus]);
20112
20167
  reactExports.useImperativeHandle(actions, () => ({
20113
- adjustStyleForScrollbar: (containerElement, theme) => {
20168
+ adjustStyleForScrollbar: (containerElement, {
20169
+ direction
20170
+ }) => {
20114
20171
  // Let's ignore that piece of logic if users are already overriding the width
20115
20172
  // of the menu.
20116
20173
  const noExplicitWidth = !listRef.current.style.width;
20117
20174
  if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {
20118
20175
  const scrollbarSize = `${getScrollbarSize$1(ownerDocument(containerElement))}px`;
20119
- listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;
20176
+ listRef.current.style[direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;
20120
20177
  listRef.current.style.width = `calc(100% + ${scrollbarSize})`;
20121
20178
  }
20122
20179
  return listRef.current;
@@ -20587,7 +20644,7 @@
20587
20644
  return _extends$7({}, classes, composedClasses);
20588
20645
  };
20589
20646
  const MenuItemRoot = styled(ButtonBase$1, {
20590
- shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',
20647
+ shouldForwardProp: prop => rootShouldForwardProp$1(prop) || prop === 'classes',
20591
20648
  name: 'MuiMenuItem',
20592
20649
  slot: 'Root',
20593
20650
  overridesResolver
@@ -20731,7 +20788,7 @@
20731
20788
  var _span;
20732
20789
  const _excluded$9 = ["children", "classes", "className", "label", "notched"];
20733
20790
  const NotchedOutlineRoot$1 = styled('fieldset', {
20734
- shouldForwardProp: rootShouldForwardProp
20791
+ shouldForwardProp: rootShouldForwardProp$1
20735
20792
  })({
20736
20793
  textAlign: 'left',
20737
20794
  position: 'absolute',
@@ -20749,7 +20806,7 @@
20749
20806
  minWidth: '0%'
20750
20807
  });
20751
20808
  const NotchedOutlineLegend = styled('legend', {
20752
- shouldForwardProp: rootShouldForwardProp
20809
+ shouldForwardProp: rootShouldForwardProp$1
20753
20810
  })(({
20754
20811
  ownerState,
20755
20812
  theme
@@ -20844,7 +20901,7 @@
20844
20901
  return _extends$7({}, classes, composedClasses);
20845
20902
  };
20846
20903
  const OutlinedInputRoot = styled(InputBaseRoot, {
20847
- shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',
20904
+ shouldForwardProp: prop => rootShouldForwardProp$1(prop) || prop === 'classes',
20848
20905
  name: 'MuiOutlinedInput',
20849
20906
  slot: 'Root',
20850
20907
  overridesResolver: rootOverridesResolver
@@ -21007,7 +21064,7 @@
21007
21064
  }), 'RadioButtonChecked');
21008
21065
 
21009
21066
  const RadioButtonIconRoot = styled('span', {
21010
- shouldForwardProp: rootShouldForwardProp
21067
+ shouldForwardProp: rootShouldForwardProp$1
21011
21068
  })({
21012
21069
  position: 'relative',
21013
21070
  display: 'flex'
@@ -21090,7 +21147,7 @@
21090
21147
  return _extends$7({}, classes, composeClasses(slots, getRadioUtilityClass, classes));
21091
21148
  };
21092
21149
  const RadioRoot = styled(SwitchBase$1, {
21093
- shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',
21150
+ shouldForwardProp: prop => rootShouldForwardProp$1(prop) || prop === 'classes',
21094
21151
  name: 'MuiRadio',
21095
21152
  slot: 'Root',
21096
21153
  overridesResolver: (props, styles) => {
@@ -21370,11 +21427,11 @@
21370
21427
  y: 0
21371
21428
  };
21372
21429
  function composeEventHandler(handler, eventHandler) {
21373
- return event => {
21430
+ return (event, ...params) => {
21374
21431
  if (eventHandler) {
21375
- eventHandler(event);
21432
+ eventHandler(event, ...params);
21376
21433
  }
21377
- handler(event);
21434
+ handler(event, ...params);
21378
21435
  };
21379
21436
  }
21380
21437
 
@@ -21421,7 +21478,7 @@
21421
21478
  children: childrenProp
21422
21479
  });
21423
21480
  const theme = useTheme$2();
21424
- const isRtl = theme.direction === 'rtl';
21481
+ const isRtl = useRtl();
21425
21482
  const [childNode, setChildNode] = reactExports.useState();
21426
21483
  const [arrowRef, setArrowRef] = reactExports.useState(null);
21427
21484
  const ignoreNonTouchEvents = reactExports.useRef(false);
@@ -22790,31 +22847,52 @@
22790
22847
  } = _ref;
22791
22848
  return (isAlternative(cell) || isExcluded(cell)) && checkboxes;
22792
22849
  };
22793
- const getValueStateClasses = _ref2 => {
22850
+ function getSelectionStateClass(_ref2) {
22851
+ let {
22852
+ cell,
22853
+ showGray
22854
+ } = _ref2;
22855
+ let selectionStateClass;
22856
+ switch (cell.qState) {
22857
+ case 'XS':
22858
+ selectionStateClass = showGray ? rowColClasses.XS : rowColClasses.S;
22859
+ break;
22860
+ case 'S':
22861
+ case 'L':
22862
+ selectionStateClass = rowColClasses.S;
22863
+ break;
22864
+ case 'A':
22865
+ selectionStateClass = showGray ? rowColClasses.A : false;
22866
+ break;
22867
+ case 'X':
22868
+ case 'XL':
22869
+ selectionStateClass = showGray ? rowColClasses.X : false;
22870
+ break;
22871
+ default:
22872
+ selectionStateClass = false;
22873
+ }
22874
+ return selectionStateClass;
22875
+ }
22876
+ const getValueStateClasses = _ref3 => {
22794
22877
  let {
22795
22878
  column,
22796
22879
  histogram,
22797
- checkboxes,
22798
22880
  cell,
22799
22881
  showGray
22800
- } = _ref2;
22882
+ } = _ref3;
22883
+ if (!cell) {
22884
+ return [];
22885
+ }
22801
22886
  const clazzArr = [column ? rowColClasses.column : rowColClasses.row];
22802
22887
  if (!histogram) {
22803
22888
  clazzArr.push(rowColClasses.rowBorderBottom);
22804
22889
  }
22805
- if (!cell) {
22806
- return [];
22807
- }
22808
- if (!checkboxes) {
22809
- if (cell.qState === 'XS') {
22810
- clazzArr.push(showGray ? rowColClasses.XS : rowColClasses.S);
22811
- } else if (cell.qState === 'S' || cell.qState === 'L') {
22812
- clazzArr.push(rowColClasses.S);
22813
- } else if (showGray && isAlternative(cell)) {
22814
- clazzArr.push(rowColClasses.A);
22815
- } else if (showGray && isExcluded(cell)) {
22816
- clazzArr.push(rowColClasses.X);
22817
- }
22890
+ const selectionStateClass = getSelectionStateClass({
22891
+ cell,
22892
+ showGray
22893
+ });
22894
+ if (selectionStateClass) {
22895
+ clazzArr.push(selectionStateClass);
22818
22896
  }
22819
22897
  return clazzArr;
22820
22898
  };
@@ -22881,15 +22959,27 @@
22881
22959
  }
22882
22960
  return sizes.freqMaxWidth;
22883
22961
  };
22884
- const getSelectedStyle = _ref3 => {
22962
+ const getRowSelectionStyle = _ref3 => {
22885
22963
  let {
22886
22964
  theme,
22965
+ checkboxes,
22887
22966
  styles,
22888
- selectedState
22967
+ selectionState
22889
22968
  } = _ref3;
22969
+ if (checkboxes) {
22970
+ if (selectionState === 'selected') {
22971
+ return {
22972
+ ["& .".concat(rowColClasses.labelText)]: {
22973
+ // Override labels (value and frequency count) color when selected.
22974
+ color: styles.selections.selected
22975
+ }
22976
+ };
22977
+ }
22978
+ return {};
22979
+ }
22890
22980
  const selectionStyles = styles.selections;
22891
- const backgroundColor = selectionStyles[selectedState];
22892
- const contrastTextColor = selectionStyles["".concat(selectedState, "Contrast")];
22981
+ const backgroundColor = selectionStyles[selectionState];
22982
+ const contrastTextColor = selectionStyles["".concat(selectionState, "Contrast")];
22893
22983
  return {
22894
22984
  background: backgroundColor,
22895
22985
  color: contrastTextColor,
@@ -22935,16 +23025,29 @@
22935
23025
  } = _ref4;
22936
23026
  const _styles$content = styles.content,
22937
23027
  contentFontStyles = _objectWithoutProperties(_styles$content, _excluded$5);
22938
- const selectStyle = getSelectedStyle({
23028
+ const rowSelectionStyle = getRowSelectionStyle({
22939
23029
  theme,
22940
23030
  styles,
22941
- selectedState: 'selected'
23031
+ checkboxes,
23032
+ selectionState: 'selected'
22942
23033
  });
22943
- const excludedSelectStyle = getSelectedStyle({
23034
+ const rowExcludedStyle = getRowSelectionStyle({
22944
23035
  theme,
22945
23036
  styles,
22946
- selectedState: 'excluded'
23037
+ checkboxes,
23038
+ selectionState: 'excluded'
22947
23039
  });
23040
+ const barDefaultFilledStyle = {
23041
+ height: '100%',
23042
+ transition: 'width 0.2s',
23043
+ border: "".concat(barBorderWidthPx, "px solid"),
23044
+ borderColor: '#D9D9D9',
23045
+ // overridden by selected color (classes.S),
23046
+ backgroundColor: '#FAFAFA'
23047
+ };
23048
+ const barSelectedFilledStyle = {
23049
+ opacity: '30%'
23050
+ };
22948
23051
  return {
22949
23052
  '&:focus': {
22950
23053
  boxShadow: "inset 0 0 0 2px ".concat(theme.palette.custom.focusBorder, " !important")
@@ -23026,26 +23129,33 @@
23026
23129
  color: contentFontStyles.color
23027
23130
  },
23028
23131
  // Selection styles (S=Selected, XS=ExcludedSelected, A=Alternative, X=Excluded).
23029
- ["& .".concat(rowColClasses.S)]: _objectSpread2(_objectSpread2({}, selectStyle), {}, {
23132
+ ["& .".concat(rowColClasses.S)]: _objectSpread2(_objectSpread2({}, rowSelectionStyle), {}, {
23030
23133
  border: isGridMode ? 'none' : undefined
23031
23134
  }),
23032
- ["& .".concat(rowColClasses.XS)]: _objectSpread2(_objectSpread2({}, getSelectedStyle({
23135
+ ["& .".concat(rowColClasses.XS)]: _objectSpread2(_objectSpread2({}, getRowSelectionStyle({
23033
23136
  theme,
23034
23137
  styles,
23035
- selectedState: 'selectedExcluded'
23138
+ checkboxes,
23139
+ selectionState: 'selectedExcluded'
23036
23140
  })), {}, {
23037
23141
  border: isGridMode ? 'none' : undefined
23038
23142
  }),
23039
- ["& .".concat(rowColClasses.A)]: _objectSpread2(_objectSpread2({}, getSelectedStyle({
23143
+ ["& .".concat(rowColClasses.A)]: _objectSpread2(_objectSpread2({}, getRowSelectionStyle({
23040
23144
  theme,
23041
23145
  styles,
23042
- selectedState: 'alternative'
23146
+ checkboxes,
23147
+ selectionState: 'alternative'
23043
23148
  })), {}, {
23044
23149
  border: isGridMode ? 'none' : undefined
23045
23150
  }),
23046
- ["& .".concat(rowColClasses.X)]: _objectSpread2(_objectSpread2({}, excludedSelectStyle), {}, {
23151
+ ["& .".concat(rowColClasses.X)]: _objectSpread2(_objectSpread2({}, rowExcludedStyle), {}, {
23047
23152
  border: isGridMode ? 'none' : undefined
23048
23153
  }),
23154
+ ["& .".concat(rowColClasses.X, ", & .").concat(rowColClasses.XS)]: {
23155
+ // Override the selected color for bar-filled, when the value is selected and excluded.
23156
+ border: isGridMode ? 'none' : undefined,
23157
+ ["& .".concat(rowColClasses.barSelected, " .bar-filled")]: _objectSpread2({}, barDefaultFilledStyle)
23158
+ },
23049
23159
  ["& .".concat(rowColClasses.frequencyCount)]: _objectSpread2(_objectSpread2({
23050
23160
  zIndex: 3,
23051
23161
  justifyContent: 'flex-end'
@@ -23081,33 +23191,23 @@
23081
23191
  width: "calc(100% - ".concat(barPadPx * 2, "px)"),
23082
23192
  display: 'flex',
23083
23193
  alignItems: 'center',
23084
- '& .bar-filled': {
23085
- border: "".concat(barBorderWidthPx, "px solid"),
23086
- borderColor: '#D9D9D9',
23087
- transition: 'width 0.2s',
23088
- backgroundColor: '#FAFAFA',
23089
- height: '100%'
23090
- }
23194
+ '& .bar-filled': _objectSpread2({}, barDefaultFilledStyle)
23091
23195
  },
23092
23196
  ["& .".concat(rowColClasses.barSelected)]: {
23093
- '& .bar-filled': {
23094
- opacity: '30%',
23095
- background: theme.palette.background.lighter
23096
- }
23197
+ '& .bar-filled': _objectSpread2({}, barSelectedFilledStyle)
23097
23198
  },
23098
23199
  ["& .".concat(rowColClasses.barWithCheckbox)]: {
23099
23200
  left: direction === 'rtl' ? barPadPx : barWithCheckboxLeftPadPx,
23100
23201
  width: "calc(100% - ".concat(barWithCheckboxLeftPadPx + barPadPx, "px)")
23101
23202
  },
23102
23203
  ["& .".concat(rowColClasses.barSelectedWithCheckbox)]: {
23103
- '& .bar-filled': {
23104
- opacity: '30%',
23105
- background: selectStyle.background || '#BFE5D0',
23106
- borderColor: selectStyle.background || '#BFE5D0'
23107
- }
23204
+ '& .bar-filled': _objectSpread2(_objectSpread2({}, barSelectedFilledStyle), {}, {
23205
+ backgroundColor: styles.selections.selected || '#BFE5D0',
23206
+ borderColor: styles.selections.selected
23207
+ })
23108
23208
  },
23109
23209
  ["& .".concat(rowColClasses.excludedTextWithCheckbox)]: {
23110
- color: '#828282',
23210
+ color: styles.content.color,
23111
23211
  fontStyle: 'italic'
23112
23212
  }
23113
23213
  };
@@ -23582,94 +23682,6 @@
23582
23682
  return c;
23583
23683
  }
23584
23684
 
23585
- /* eslint-disable import/prefer-default-export */
23586
- const LOC_STATES = {
23587
- S: 'Object.Listbox.Selected',
23588
- A: 'Object.Listbox.Alternative',
23589
- O: 'Object.Listbox.Optional',
23590
- XS: 'Object.Listbox.SelectedExcluded',
23591
- L: 'Object.Listbox.Locked',
23592
- X: 'Object.Listbox.Excluded',
23593
- XL: 'Object.Listbox.ExcludedLock'
23594
- };
23595
- function getValueLabel(_ref) {
23596
- let {
23597
- translator: translatorDynamic,
23598
- label,
23599
- qState,
23600
- isSelected,
23601
- currentIndex,
23602
- maxIndex,
23603
- showSearch
23604
- } = _ref;
23605
- const stateTranslation = LOC_STATES[qState];
23606
- const state = translatorDynamic.get(stateTranslation);
23607
- const srStringArr = [];
23608
- if (isSelected) {
23609
- const navTranslation = showSearch ? 'Listbox.ScreenReader.SearchThenSelectionsMenu.WithAccSelMenu' : 'Listbox.ScreenReader.SelectionMenu.WithAccSelMenu';
23610
- const nav = translatorDynamic.get(navTranslation);
23611
- srStringArr.push(nav);
23612
- }
23613
- const valueString = "".concat(label, " ").concat(state);
23614
- const indexString = translatorDynamic.get('CurrentSelections.Of', [currentIndex + 1, maxIndex + 1]); // E.g. 3 of 20
23615
- srStringArr.unshift(valueString, indexString);
23616
- const srString = srStringArr.join('. ').trim();
23617
- return srString;
23618
- }
23619
-
23620
- /**
23621
- * Announces the selection state.
23622
- *
23623
- * @ignore
23624
- * @param {Layout} object
23625
- * @returns {Element} An (invisible) component.
23626
- */
23627
- function ScreenReaderForSelections(_ref2) {
23628
- var _layout$qListObject;
23629
- let {
23630
- layout
23631
- } = _ref2;
23632
- const {
23633
- translator: translatorDynamic
23634
- } = reactExports.useContext(InstanceContext);
23635
- const {
23636
- qStateCounts: s = {}
23637
- } = (layout === null || layout === void 0 || (_layout$qListObject = layout.qListObject) === null || _layout$qListObject === void 0 ? void 0 : _layout$qListObject.qDimensionInfo) || {};
23638
- const count = s.qSelected + s.qSelectedExcluded + s.qLocked + s.qLockedExcluded;
23639
- let t;
23640
- switch (count) {
23641
- case 0:
23642
- t = 'ScreenReader.ZeroSelected';
23643
- break;
23644
- case 1:
23645
- t = 'ScreenReader.OneSelected';
23646
- break;
23647
- default:
23648
- t = 'ScreenReader.ManySelected';
23649
- break;
23650
- }
23651
- const text = translatorDynamic.get(t, [count]);
23652
- return /*#__PURE__*/React$1.createElement("div", {
23653
- className: "screenReaderOnly",
23654
- "aria-live": "assertive"
23655
- }, text);
23656
- }
23657
- function getScreenReaderSearchText(listCount) {
23658
- let t;
23659
- switch (listCount) {
23660
- case 0:
23661
- t = 'Listbox.NoMatchesForYourTerms';
23662
- break;
23663
- case 1:
23664
- t = 'ScreenReader.OneSearchResult';
23665
- break;
23666
- default:
23667
- t = 'ScreenReader.ManySearchResults';
23668
- break;
23669
- }
23670
- return t;
23671
- }
23672
-
23673
23685
  const KEYS = Object.freeze({
23674
23686
  ENTER: 13,
23675
23687
  ESCAPE: 27,
@@ -23955,6 +23967,40 @@
23955
23967
  return ALLOWED_OPTIONS.includes(valueTextAlign) ? valueTextAlign : 'left';
23956
23968
  }
23957
23969
 
23970
+ const LOC_STATES = {
23971
+ S: 'Object.Listbox.Selected',
23972
+ A: 'Object.Listbox.Alternative',
23973
+ O: 'Object.Listbox.Optional',
23974
+ XS: 'Object.Listbox.SelectedExcluded',
23975
+ L: 'Object.Listbox.Locked',
23976
+ X: 'Object.Listbox.Excluded',
23977
+ XL: 'Object.Listbox.ExcludedLock'
23978
+ };
23979
+ function getValueLabel(_ref) {
23980
+ let {
23981
+ translator: translatorDynamic,
23982
+ label,
23983
+ qState,
23984
+ isSelected,
23985
+ currentIndex,
23986
+ maxIndex,
23987
+ showSearch
23988
+ } = _ref;
23989
+ const stateTranslation = LOC_STATES[qState];
23990
+ const state = translatorDynamic.get(stateTranslation);
23991
+ const srStringArr = [];
23992
+ if (isSelected) {
23993
+ const navTranslation = showSearch ? 'Listbox.ScreenReader.SearchThenSelectionsMenu.WithAccSelMenu' : 'Listbox.ScreenReader.SelectionMenu.WithAccSelMenu';
23994
+ const nav = translatorDynamic.get(navTranslation);
23995
+ srStringArr.push(nav);
23996
+ }
23997
+ const valueString = "".concat(label, " ").concat(state);
23998
+ const indexString = translatorDynamic.get('CurrentSelections.Of', [currentIndex + 1, maxIndex + 1]); // E.g. 3 of 20
23999
+ srStringArr.unshift(valueString, indexString);
24000
+ const srString = srStringArr.join('. ').trim();
24001
+ return srString;
24002
+ }
24003
+
23958
24004
  function RowColumn(_ref) {
23959
24005
  var _cell$qText, _cell$qHighlightRange;
23960
24006
  let {
@@ -24070,10 +24116,9 @@
24070
24116
  const classArr = reactExports.useMemo(() => getValueStateClasses({
24071
24117
  column,
24072
24118
  histogram,
24073
- checkboxes,
24074
24119
  cell,
24075
24120
  showGray
24076
- }), [cell === null || cell === void 0 ? void 0 : cell.qState, histogram, dense, checkboxes]);
24121
+ }), [cell === null || cell === void 0 ? void 0 : cell.qState, histogram, dense]);
24077
24122
  const preventContextMenu = reactExports.useCallback(event => {
24078
24123
  event.preventDefault();
24079
24124
  }, [checkboxes]);
@@ -26561,6 +26606,82 @@
26561
26606
  };
26562
26607
  };
26563
26608
 
26609
+ /**
26610
+ * Announces the selection state.
26611
+ *
26612
+ * @ignore
26613
+ * @param {Layout} object
26614
+ * @returns {string}
26615
+ */
26616
+ function getSRForSelectedState(_ref) {
26617
+ var _layout$qListObject;
26618
+ let {
26619
+ layout,
26620
+ translatorDynamic
26621
+ } = _ref;
26622
+ const {
26623
+ qStateCounts: s = {}
26624
+ } = (layout === null || layout === void 0 || (_layout$qListObject = layout.qListObject) === null || _layout$qListObject === void 0 ? void 0 : _layout$qListObject.qDimensionInfo) || {};
26625
+ const count = s.qSelected + s.qSelectedExcluded + s.qLocked + s.qLockedExcluded;
26626
+ let t;
26627
+ switch (count) {
26628
+ case 0:
26629
+ t = 'ScreenReader.ZeroSelected';
26630
+ break;
26631
+ case 1:
26632
+ t = 'ScreenReader.OneSelected';
26633
+ break;
26634
+ default:
26635
+ t = 'ScreenReader.ManySelected';
26636
+ break;
26637
+ }
26638
+ const text = translatorDynamic.get(t, [count]);
26639
+ return text;
26640
+ }
26641
+ function getSearchTranslationString(listCount) {
26642
+ let t;
26643
+ switch (listCount) {
26644
+ case 0:
26645
+ t = 'Listbox.NoMatchesForYourTerms';
26646
+ break;
26647
+ case 1:
26648
+ t = 'ScreenReader.OneSearchResult';
26649
+ break;
26650
+ default:
26651
+ t = 'ScreenReader.ManySearchResults';
26652
+ break;
26653
+ }
26654
+ return t;
26655
+ }
26656
+ function getScreenReaderAssertiveText(_ref2) {
26657
+ let {
26658
+ layout,
26659
+ searchInputText,
26660
+ listCount
26661
+ } = _ref2;
26662
+ const {
26663
+ translator: translatorDynamic
26664
+ } = reactExports.useContext(InstanceContext);
26665
+ const finalStringArr = [];
26666
+ if (searchInputText !== null && searchInputText !== void 0 && searchInputText.length) {
26667
+ // Add search result text.
26668
+ const srSearchTranslationString = getSearchTranslationString(listCount);
26669
+ const srSearchString = translatorDynamic.get(srSearchTranslationString, [listCount]);
26670
+ finalStringArr.push(srSearchString);
26671
+ }
26672
+
26673
+ // Add selection value text.
26674
+ const srSelectionValueText = getSRForSelectedState({
26675
+ layout,
26676
+ translatorDynamic
26677
+ });
26678
+ finalStringArr.push(srSelectionValueText);
26679
+
26680
+ // Merge texts into one text string, targeting the assertive screen reader.
26681
+ const finalString = finalStringArr.filter(v => !!(v !== null && v !== void 0 && v.length)).join('. ');
26682
+ return finalString;
26683
+ }
26684
+
26564
26685
  function deduceFrequencyMode(pages) {
26565
26686
  const hasPercentSign = pages.some(_ref => {
26566
26687
  let {
@@ -26629,7 +26750,6 @@
26629
26750
  checkboxes = checkboxOption,
26630
26751
  histogram
26631
26752
  } = layout !== null && layout !== void 0 ? layout : {};
26632
- const [screenReaderText, setScreenReaderText] = reactExports.useState('');
26633
26753
  const loaderRef = reactExports.useRef(null);
26634
26754
  const local = reactExports.useRef({
26635
26755
  queue: [],
@@ -26787,14 +26907,12 @@
26787
26907
  listCount
26788
26908
  } = sizes;
26789
26909
  setStoreValue('listCount', listCount);
26790
- const inputText = getStoreValue('inputText');
26791
- reactExports.useEffect(() => {
26792
- if (inputText) {
26793
- const srText = getScreenReaderSearchText(listCount);
26794
- const srFinalText = translatorDynamic.get(srText, [listCount]);
26795
- setScreenReaderText(srFinalText);
26796
- }
26797
- }, [inputText, listCount]);
26910
+ const searchInputText = getStoreValue('inputText');
26911
+ const screenReaderText = getScreenReaderAssertiveText({
26912
+ layout,
26913
+ searchInputText,
26914
+ listCount
26915
+ });
26798
26916
  const setScrollPosition = position => {
26799
26917
  const {
26800
26918
  scrollIndex,
@@ -26903,10 +27021,7 @@
26903
27021
  itemHeight
26904
27022
  });
26905
27023
  }
26906
- return /*#__PURE__*/React$1.createElement(StyledWrapper, null, /*#__PURE__*/React$1.createElement(ScreenReaderForSelections, {
26907
- className: "screenReaderOnly",
26908
- layout: layout
26909
- }), /*#__PURE__*/React$1.createElement("div", {
27024
+ return /*#__PURE__*/React$1.createElement(StyledWrapper, null, /*#__PURE__*/React$1.createElement("div", {
26910
27025
  className: "screenReaderOnly",
26911
27026
  "aria-live": "assertive"
26912
27027
  }, screenReaderText), !listCount && cardinal > 0 && /*#__PURE__*/React$1.createElement(ListBoxDisclaimer, {
@@ -27568,6 +27683,9 @@
27568
27683
  transformOrigin: popoverTransformOrigin,
27569
27684
  hideBackdrop: true,
27570
27685
  style: popoverStyle,
27686
+ onMouseDown: e => {
27687
+ e.stopPropagation(); // prevent click through, closing when it should not
27688
+ },
27571
27689
  slotProps: {
27572
27690
  paper: {
27573
27691
  id: 'njs-action-toolbar-popover',
@@ -27592,8 +27710,10 @@
27592
27710
  });
27593
27711
  var SearchIcon = (props => SvgIcon(search(props)));
27594
27712
 
27713
+ const MAX_SEARCH_LENGTH = 64000;
27595
27714
  const TREE_PATH = '/qListObjectDef';
27596
27715
  const WILDCARD = '**';
27716
+ const limitSearchLength = val => val === null || val === void 0 ? void 0 : val.substring(0, MAX_SEARCH_LENGTH);
27597
27717
  const StyledOutlinedInput = styled(OutlinedInput$1, {
27598
27718
  shouldForwardProp: p => !['styles', 'dense', 'isRtl'].includes(p)
27599
27719
  })(_ref => {
@@ -27702,20 +27822,18 @@
27702
27822
  setStoreValue('inputText', value);
27703
27823
  }, [value]);
27704
27824
  const onChange = async e => {
27705
- setValue(e.target.value);
27706
- if (!e.target.value.length) {
27825
+ const searchValue = limitSearchLength(e.target.value);
27826
+ setValue(searchValue);
27827
+ if (!searchValue.length) {
27707
27828
  return abortSearch();
27708
27829
  }
27709
- return model.searchListObjectFor(TREE_PATH, e.target.value);
27830
+ return model.searchListObjectFor(TREE_PATH, searchValue);
27710
27831
  };
27711
27832
  const handleFocus = () => {
27712
27833
  if (wildCardSearch) {
27713
27834
  setValue(WILDCARD);
27714
27835
  setWildcardOn(true);
27715
27836
  }
27716
- if (!selectionState.selectDisabled() && !selections.isModal()) {
27717
- selections.begin(['/qListObjectDef']);
27718
- }
27719
27837
  };
27720
27838
  const hasHits = () => {
27721
27839
  const listCount = getStoreValue("listCount");
@@ -27723,11 +27841,12 @@
27723
27841
  };
27724
27842
  const performSearch = async () => {
27725
27843
  let response;
27726
- const success = await model.searchListObjectFor(TREE_PATH, value);
27844
+ const searchValue = limitSearchLength(value);
27845
+ const success = await model.searchListObjectFor(TREE_PATH, searchValue);
27727
27846
  if (selectionState.selectDisabled()) {
27728
27847
  return success;
27729
27848
  }
27730
- if (success && value.length && hasHits()) {
27849
+ if (success && searchValue.length && hasHits()) {
27731
27850
  response = model.acceptListObjectSearch(TREE_PATH, true);
27732
27851
  // eslint-disable-next-line no-param-reassign
27733
27852
  selections.selectionsMade = true;
@@ -31636,6 +31755,7 @@
31636
31755
  defaultWidth,
31637
31756
  disableHeight = false,
31638
31757
  disableWidth = false,
31758
+ doNotBailOutOnEmptyChildren = false,
31639
31759
  nonce,
31640
31760
  onResize,
31641
31761
  style = {},
@@ -31676,6 +31796,9 @@
31676
31796
  childParams.width = width;
31677
31797
  childParams.scaledWidth = scaledWidth;
31678
31798
  }
31799
+ if (doNotBailOutOnEmptyChildren) {
31800
+ bailoutOnChildren = false;
31801
+ }
31679
31802
  return reactExports.createElement(tagName, {
31680
31803
  ref: this._setRef,
31681
31804
  style: {
@@ -31957,16 +32080,6 @@
31957
32080
  return containerPadding;
31958
32081
  }
31959
32082
 
31960
- const drillDown = props => _objectSpread2(_objectSpread2({}, props), {}, {
31961
- shapes: [{
31962
- type: 'path',
31963
- attrs: {
31964
- d: 'M15.9993744,3 L15.9993744,5 L4.99937445,5 L4.99937445,3 L15.9993744,3 Z M8.99937445,7 L15.9993744,7 L15.9993744,9 L8.99937445,9 L8.99937445,7 Z M11.9993744,11 L15.9993744,11 L15.9993744,13 L11.9993744,13 L11.9993744,11 Z M2.2,11 L7,11 L7,9.00369263 C7,8.89323568 7.08954305,8.80369263 7.2,8.80369263 C7.2549016,8.80369263 7.30738916,8.82626165 7.34515712,8.86610844 L10.1852182,11.8624926 C10.2583124,11.93961 10.258346,12.0604218 10.1852948,12.13758 L7.34523376,15.1373102 C7.2692928,15.2175206 7.14270711,15.2209817 7.06249671,15.1450407 C7.02260076,15.1072683 7,15.0547472 7,14.9998069 L7,12.9043747 C4.79351111,12.9043747 2.8018683,12.9266213 1.02507156,12.9711145 L1.02507252,12.9711526 C0.472939773,12.9849787 0.014139487,12.5485949 0.000313396522,11.9964622 C0.000104473692,11.988119 -1.32268838e-12,11.9797736 -1.3231638e-12,11.9714278 L-1.83320026e-12,3 L2,3 L2,10.8 C2,10.9104569 2.08954305,11 2.2,11 Z'
31965
- }
31966
- }]
31967
- });
31968
- var DrillDownIcon = (props => SvgIcon(drillDown(props)));
31969
-
31970
32083
  function showToolbarDetached(_ref) {
31971
32084
  var _titleRef$current$cli, _titleRef$current, _titleRef$current2, _titleRef$current3;
31972
32085
  let {
@@ -32122,6 +32235,127 @@
32122
32235
  return component;
32123
32236
  }
32124
32237
 
32238
+ const cyclic = props => _objectSpread2(_objectSpread2({}, props), {}, {
32239
+ shapes: [{
32240
+ type: 'path',
32241
+ attrs: {
32242
+ d: 'M 6 2 h 10 V 1 H 6 Z m 5 5 h 5 V 6 h -5 Z m 5 5 h -5 v -1 h 5 Z M 5 10 h 1 v 2.663 a 3.5 3.5 0 1 0 -2.922 0.036 l -0.406 0.914 A 4.501 4.501 0 1 1 7.329 13 H 9 v 1 H 5 Z'
32243
+ }
32244
+ }]
32245
+ });
32246
+ var CyclicIcon = (props => SvgIcon(cyclic(props)));
32247
+
32248
+ const drillDown = props => _objectSpread2(_objectSpread2({}, props), {}, {
32249
+ shapes: [{
32250
+ type: 'path',
32251
+ attrs: {
32252
+ d: 'M7 4h9v1H7zm2 4h7v1H9zm2 4h5v1h-5zM1 4v3.526a3.5 3.5 0 0 0 3.5 3.5h2.31L5.22 9.402l.715-.7L8.7 11.527 5.935 14.35l-.714-.7 1.59-1.624H4.5a4.5 4.5 0 0 1-4.5-4.5V4z'
32253
+ }
32254
+ }]
32255
+ });
32256
+ var DrillDownIcon = (props => SvgIcon(drillDown(props)));
32257
+
32258
+ const reload = props => _objectSpread2(_objectSpread2({}, props), {}, {
32259
+ shapes: [{
32260
+ type: 'path',
32261
+ attrs: {
32262
+ d: 'M1 8a7 7 0 1 1 10 6.326V11h-1v5h5v-1h-3.124A8 8 0 1 0 8 16v-1a7 7 0 0 1-7-7Z'
32263
+ }
32264
+ }]
32265
+ });
32266
+ var ReloadIcon = (props => SvgIcon(reload(props)));
32267
+
32268
+ const dimensionTypes = {
32269
+ single: 'N',
32270
+ drillDown: 'H',
32271
+ cyclic: 'C'
32272
+ };
32273
+ const createDimensionIconData = _ref => {
32274
+ let {
32275
+ dimInfo,
32276
+ app,
32277
+ selections,
32278
+ isPopover,
32279
+ active
32280
+ } = _ref;
32281
+ switch (dimInfo.qGrouping) {
32282
+ case dimensionTypes.drillDown:
32283
+ return {
32284
+ icon: DrillDownIcon,
32285
+ tooltip: 'Listbox.DrillDown',
32286
+ onClick: undefined
32287
+ };
32288
+ case dimensionTypes.cyclic:
32289
+ {
32290
+ const clickable = app && active;
32291
+ return {
32292
+ icon: clickable ? ReloadIcon : CyclicIcon,
32293
+ tooltip: 'Listbox.Cyclic',
32294
+ onClick: clickable ? () => {
32295
+ if (!isPopover) {
32296
+ selections.confirm();
32297
+ }
32298
+ app.getDimension(dimInfo.qLibraryId).then(dimensionModel => {
32299
+ if (!dimensionModel.stepCycle) {
32300
+ // eslint-disable-next-line no-console
32301
+ console.log("engine api spec version doesn't have support for function stepCycle");
32302
+ return;
32303
+ }
32304
+ dimensionModel.stepCycle(1);
32305
+ }).catch(() => null);
32306
+ } : undefined
32307
+ };
32308
+ }
32309
+ default:
32310
+ return undefined;
32311
+ }
32312
+ };
32313
+ var iconUtils = {
32314
+ createDimensionIconData
32315
+ };
32316
+
32317
+ const StyledButton = styled(Button$1)(() => ({
32318
+ borderRadius: 4,
32319
+ width: 24,
32320
+ height: 24,
32321
+ minWidth: 22,
32322
+ padding: 0
32323
+ }));
32324
+ function DimensionIcon(_ref) {
32325
+ let {
32326
+ iconData,
32327
+ translator,
32328
+ iconStyle,
32329
+ disabled
32330
+ } = _ref;
32331
+ if (!iconData) return undefined;
32332
+ const {
32333
+ icon,
32334
+ tooltip,
32335
+ onClick
32336
+ } = iconData;
32337
+ const Icon = icon;
32338
+ const title = translator.get(tooltip);
32339
+ const isButton = onClick;
32340
+ return isButton ? /*#__PURE__*/React$1.createElement(StyledButton, {
32341
+ variant: "outlined",
32342
+ onClick: onClick,
32343
+ tabIndex: -1,
32344
+ title: title,
32345
+ size: "large",
32346
+ disableRipple: true,
32347
+ disabled: disabled
32348
+ }, /*#__PURE__*/React$1.createElement(Icon, {
32349
+ style: iconStyle
32350
+ })) : /*#__PURE__*/React$1.createElement(Icon, {
32351
+ title: title,
32352
+ size: "large",
32353
+ style: _objectSpread2(_objectSpread2({}, iconStyle), {}, {
32354
+ padding: "".concat(ICON_PADDING, "px")
32355
+ })
32356
+ });
32357
+ }
32358
+
32125
32359
  // ms that needs to pass before the lock button can be toggled again
32126
32360
  const lockTimeFrameMs = 500;
32127
32361
  let lastTime = 0;
@@ -32156,7 +32390,7 @@
32156
32390
  };
32157
32391
  }
32158
32392
  function ListBoxHeader(_ref2) {
32159
- var _layout$qListObject, _layout$qListObject3;
32393
+ var _layout$qListObject, _layout$qListObject3, _layout$qListObject4;
32160
32394
  let {
32161
32395
  layout,
32162
32396
  translator,
@@ -32164,7 +32398,6 @@
32164
32398
  isRtl,
32165
32399
  showLock,
32166
32400
  showSearchIcon,
32167
- isDrillDown,
32168
32401
  constraints,
32169
32402
  onShowSearch,
32170
32403
  classes,
@@ -32178,7 +32411,9 @@
32178
32411
  isDirectQuery,
32179
32412
  selections,
32180
32413
  keyboard,
32181
- autoConfirm
32414
+ autoConfirm,
32415
+ app,
32416
+ isInSelection
32182
32417
  } = _ref2;
32183
32418
  const [isToolbarDetached, setIsToolbarDetached] = reactExports.useState(showDetachedToolbarOnly);
32184
32419
  const [isLocked, setLocked] = reactExports.useState(layout === null || layout === void 0 || (_layout$qListObject = layout.qListObject) === null || _layout$qListObject === void 0 || (_layout$qListObject = _layout$qListObject.qDimensionInfo) === null || _layout$qListObject === void 0 ? void 0 : _layout$qListObject.qLocked);
@@ -32188,15 +32423,22 @@
32188
32423
  setLocked(layout === null || layout === void 0 || (_layout$qListObject2 = layout.qListObject) === null || _layout$qListObject2 === void 0 || (_layout$qListObject2 = _layout$qListObject2.qDimensionInfo) === null || _layout$qListObject2 === void 0 ? void 0 : _layout$qListObject2.qLocked);
32189
32424
  }, [layout === null || layout === void 0 || (_layout$qListObject3 = layout.qListObject) === null || _layout$qListObject3 === void 0 || (_layout$qListObject3 = _layout$qListObject3.qDimensionInfo) === null || _layout$qListObject3 === void 0 ? void 0 : _layout$qListObject3.qLocked]);
32190
32425
  const titleRef = reactExports.useRef(null);
32426
+ const iconData = iconUtils.createDimensionIconData({
32427
+ dimInfo: layout === null || layout === void 0 || (_layout$qListObject4 = layout.qListObject) === null || _layout$qListObject4 === void 0 ? void 0 : _layout$qListObject4.qDimensionInfo,
32428
+ app,
32429
+ selections,
32430
+ isPopover,
32431
+ active: !(constraints !== null && constraints !== void 0 && constraints.active)
32432
+ });
32191
32433
  const showUnlock = showLock && isLocked;
32192
32434
  const showLockIcon = !showLock && isLocked; // shows instead of the cover button when field/dim is locked.
32193
- const showLeftIcon = showSearchIcon || showLockIcon || isDrillDown; // the left-most icon outside of the actions/selections toolbar.
32435
+ const showLeftIcon = showSearchIcon || showLockIcon || iconData; // the left-most icon outside of the actions/selections toolbar.
32194
32436
 
32195
32437
  const paddingLeft = CELL_PADDING_LEFT - (showLeftIcon ? ICON_PADDING : 0);
32196
32438
  const paddingRight = isRtl ? CELL_PADDING_LEFT - (showLeftIcon ? ICON_PADDING : 0) : HEADER_PADDING_RIGHT;
32197
32439
 
32198
32440
  // Calculate explicit width for icons container. Search and lock cannot exist combined.
32199
- const iconsWidth = (showSearchIcon ? BUTTON_ICON_WIDTH : 0) + (showLockIcon ? BUTTON_ICON_WIDTH : 0) + (isDrillDown ? BUTTON_ICON_WIDTH : 0);
32441
+ const iconsWidth = (showSearchIcon ? BUTTON_ICON_WIDTH : 0) + (showLockIcon ? BUTTON_ICON_WIDTH : 0) + (iconData ? BUTTON_ICON_WIDTH : 0);
32200
32442
  const toggleLock = getToggleLock({
32201
32443
  isLocked,
32202
32444
  setLocked,
@@ -32295,12 +32537,11 @@
32295
32537
  alignItems: "center",
32296
32538
  width: iconsWidth,
32297
32539
  className: "header-action-container"
32298
- }, lockedIconComp || showSearchIcon && searchIconComp, isDrillDown && /*#__PURE__*/React$1.createElement(DrillDownIcon, {
32299
- tabIndex: -1,
32300
- title: translator.get('Listbox.DrillDown'),
32301
- style: _objectSpread2(_objectSpread2({}, iconStyle), {}, {
32302
- padding: "".concat(ICON_PADDING, "px")
32303
- })
32540
+ }, lockedIconComp || showSearchIcon && searchIconComp, /*#__PURE__*/React$1.createElement(DimensionIcon, {
32541
+ iconData: iconData,
32542
+ iconStyle: iconStyle,
32543
+ disabled: isInSelection && isPopover,
32544
+ translator: translator
32304
32545
  })), /*#__PURE__*/React$1.createElement(Grid$1, {
32305
32546
  item: true,
32306
32547
  xs: true,
@@ -32370,7 +32611,7 @@
32370
32611
  return (_app$isInModalSelecti = (_app$isInModalSelecti2 = app.isInModalSelection) === null || _app$isInModalSelecti2 === void 0 ? void 0 : _app$isInModalSelecti2.call(app)) !== null && _app$isInModalSelecti !== void 0 ? _app$isInModalSelecti : appSelections.isInModal();
32371
32612
  };
32372
32613
  function ListBoxInline(_ref3) {
32373
- var _layout$qListObject, _layout$qListObject2, _layout$title, _layoutOptions$dense, _containerRef$current;
32614
+ var _layout$qListObject, _layout$title, _layoutOptions$dense, _containerRef$current;
32374
32615
  let {
32375
32616
  options,
32376
32617
  layout
@@ -32460,6 +32701,7 @@
32460
32701
  }), [app, appSelections]);
32461
32702
  const isInvalid = layout === null || layout === void 0 ? void 0 : layout.qListObject.qDimensionInfo.qError;
32462
32703
  const errorText = isInvalid && constraints.active ? 'Visualization.Invalid.Dimension' : 'Visualization.Incomplete';
32704
+ const [isInSelection, setIsInSelection] = reactExports.useState(false);
32463
32705
  const {
32464
32706
  handleKeyDown,
32465
32707
  handleOnMouseEnter,
@@ -32488,9 +32730,11 @@
32488
32730
  }
32489
32731
  const show = () => {
32490
32732
  setShowToolbar(true);
32733
+ setIsInSelection(true);
32491
32734
  };
32492
32735
  const hide = () => {
32493
32736
  setShowToolbar(false);
32737
+ setIsInSelection(false);
32494
32738
  if (search === 'toggle') {
32495
32739
  setShowSearch(false);
32496
32740
  }
@@ -32498,7 +32742,6 @@
32498
32742
  if (isPopover) {
32499
32743
  // When isPopover, toolbar == false will be ignored.
32500
32744
  if (!selections.isActive()) {
32501
- selections.begin('/qListObjectDef');
32502
32745
  selections.on('activated', show);
32503
32746
  selections.on('deactivated', hide);
32504
32747
  }
@@ -32536,7 +32779,6 @@
32536
32779
  } = layout !== null && layout !== void 0 ? layout : {};
32537
32780
  const isLocked = layout === null || layout === void 0 || (_layout$qListObject = layout.qListObject) === null || _layout$qListObject === void 0 || (_layout$qListObject = _layout$qListObject.qDimensionInfo) === null || _layout$qListObject === void 0 ? void 0 : _layout$qListObject.qLocked;
32538
32781
  const showSearchIcon = searchEnabled !== false && search === 'toggle' && !isLocked;
32539
- const isDrillDown = (layout === null || layout === void 0 || (_layout$qListObject2 = layout.qListObject) === null || _layout$qListObject2 === void 0 || (_layout$qListObject2 = _layout$qListObject2.qDimensionInfo) === null || _layout$qListObject2 === void 0 ? void 0 : _layout$qListObject2.qGrouping) === 'H';
32540
32782
  const canShowTitle = (layout === null || layout === void 0 || (_layout$title = layout.title) === null || _layout$title === void 0 ? void 0 : _layout$title.length) && (layout === null || layout === void 0 ? void 0 : layout.showTitle) !== false;
32541
32783
  const showDetachedToolbarOnly = toolbar && !canShowTitle && !isPopover;
32542
32784
  const showAttachedToolbar = toolbar && canShowTitle || isPopover;
@@ -32574,8 +32816,8 @@
32574
32816
  }
32575
32817
  const listBoxMinHeight = showAttachedToolbar ? DENSE_ROW_HEIGHT + SCROLL_BAR_WIDTH : 0;
32576
32818
  const listBoxHeader = /*#__PURE__*/React$1.createElement(ListBoxHeader, {
32819
+ app: app,
32577
32820
  showSearchIcon: showSearchIcon,
32578
- isDrillDown: isDrillDown,
32579
32821
  onShowSearch: handleShowSearch,
32580
32822
  isPopover: isPopover,
32581
32823
  showToolbar: showToolbar,
@@ -32594,7 +32836,8 @@
32594
32836
  model: model,
32595
32837
  selectionState: selectionState$1,
32596
32838
  selections: selections,
32597
- keyboard: keyboard
32839
+ keyboard: keyboard,
32840
+ isInSelection: isInSelection
32598
32841
  });
32599
32842
  return /*#__PURE__*/React$1.createElement(React$1.Fragment, null, showDetachedToolbarOnly && listBoxHeader, /*#__PURE__*/React$1.createElement(StyledGrid$3, {
32600
32843
  className: "listbox-container",
@@ -32759,7 +33002,7 @@
32759
33002
  /**
32760
33003
  * Extends `ListObjectDef`, see Engine API: `ListObjectDef`.
32761
33004
  * @interface ListObjectDef
32762
- * @extends EngineAPI.IListObjectDef
33005
+ * @extends qix.ListObjectDef
32763
33006
  * @property {boolean} [frequencyEnabled=false] Show frequency count. also requires qListObjectDef.qFrequencyMode to be set
32764
33007
  */
32765
33008
 
@@ -33598,10 +33841,10 @@
33598
33841
  /**
33599
33842
  * @since 1.1.0
33600
33843
  * @interface ExportDataDef
33601
- * @property {EngineAPI.INxDimension[]} dimensions
33602
- * @property {EngineAPI.INxMeasure[]} measures
33603
- * @property {EngineAPI.INxDimension[]} excludedDimensions
33604
- * @property {EngineAPI.INxMeasure[]} excludedMeasures
33844
+ * @property {qix.NxDimension[]} dimensions
33845
+ * @property {qix.NxMeasure[]} measures
33846
+ * @property {qix.NxDimension[]} excludedDimensions
33847
+ * @property {qix.NxMeasure[]} excludedMeasures
33605
33848
  * @property {number[]} interColumnSortOrder
33606
33849
  */
33607
33850
 
@@ -36818,7 +37061,7 @@
36818
37061
  /**
36819
37062
  * Gets the layout of the generic object associated with this visualization.
36820
37063
  * @entry
36821
- * @returns {EngineAPI.IGenericObjectLayout}
37064
+ * @returns {qix.GenericObjectLayout}
36822
37065
  * @example
36823
37066
  * import { useLayout } from '@nebula.js/stardust';
36824
37067
  * // ...
@@ -36838,7 +37081,7 @@
36838
37081
  * The returned value from `useStaleLayout()` and `useLayout()` are identical when the object
36839
37082
  * is not in a modal state.
36840
37083
  * @entry
36841
- * @returns {EngineAPI.IGenericObjectLayout}
37084
+ * @returns {qix.GenericObjectLayout}
36842
37085
  * @example
36843
37086
  * import { useStaleLayout } from '@nebula.js/stardust';
36844
37087
  * // ...
@@ -36859,7 +37102,7 @@
36859
37102
  /**
36860
37103
  * Gets the layout of the app associated with this visualization.
36861
37104
  * @entry
36862
- * @returns {EngineAPI.INxAppLayout} The app layout
37105
+ * @returns {qix.NxAppLayout} The app layout
36863
37106
  * @example
36864
37107
  * import { useAppLayout } from '@nebula.js/stardust';
36865
37108
  * // ...
@@ -36873,7 +37116,7 @@
36873
37116
  /**
36874
37117
  * Gets the generic object API of the generic object connected to this visualization.
36875
37118
  * @entry
36876
- * @returns {EngineAPI.IGenericObject|undefined}
37119
+ * @returns {qix.GenericObject|undefined}
36877
37120
  * @example
36878
37121
  * import { useModel } from '@nebula.js/stardust';
36879
37122
  * // ...
@@ -36892,7 +37135,7 @@
36892
37135
  /**
36893
37136
  * Gets the doc API.
36894
37137
  * @entry
36895
- * @returns {EngineAPI.IApp|undefined} The doc API.
37138
+ * @returns {qix.Doc|undefined} The doc API.
36896
37139
  * @example
36897
37140
  * import { useApp } from '@nebula.js/stardust';
36898
37141
  * // ...
@@ -36911,7 +37154,7 @@
36911
37154
  /**
36912
37155
  * Gets the global API.
36913
37156
  * @entry
36914
- * @returns {EngineAPI.IGlobal|undefined} The global API.
37157
+ * @returns {qix.Global|undefined} The global API.
36915
37158
  * @example
36916
37159
  * import { useGlobal } from '@nebula.js/stardust';
36917
37160
  *
@@ -36961,7 +37204,7 @@
36961
37204
  * import { useTheme } from '@nebula.js/stardust';
36962
37205
  *
36963
37206
  * const theme = useTheme();
36964
- * console.log(theme.getContrastinColorTo('#ff0000'));
37207
+ * console.log(theme.getContrastingColorTo('#ff0000'));
36965
37208
  */
36966
37209
  function useTheme() {
36967
37210
  return useInternalContext('theme');
@@ -37154,7 +37397,7 @@
37154
37397
  * @interface Interactions
37155
37398
  * @property {boolean=} passive=true Whether or not passive interactions are on. Allows passive interaction by users, ie: tooltips
37156
37399
  * @property {boolean=} active=true Whether or not active interactions are on. Allows active interaction by users, ie: scroll, click
37157
- * @property {boolean=} select=true Whether or not select interactions are on. Alows selection actions. Implied when active is false.
37400
+ * @property {boolean=} select=true Whether or not select interactions are on. Allows selection actions. Implied when active is false.
37158
37401
  * @property {boolean=} edit=false Whether or not edit actions are on. Allows edit actions.
37159
37402
  */
37160
37403
  /**
@@ -37282,7 +37525,7 @@
37282
37525
  /**
37283
37526
  * Registers a callback that is called when a snapshot is taken.
37284
37527
  * @entry
37285
- * @param {function(EngineAPI.IGenericObjectLayout): Promise<EngineAPI.IGenericObjectLayout>} snapshotCallback
37528
+ * @param {function(qix.GenericObjectLayout): Promise<qix.GenericObjectLayout>} snapshotCallback
37286
37529
  * @example
37287
37530
  * import { onTakeSnapshot } from '@nebula.js/stardust';
37288
37531
  * import { useState } from '@nebula.js/stardust';
@@ -37343,7 +37586,7 @@
37343
37586
  *
37344
37587
  * const renderState = useRenderState();
37345
37588
  * useState(() => {
37346
- * if(needProperteisUpdate(...)) {
37589
+ * if(needPropertiesUpdate(...)) {
37347
37590
  * useRenderState.pending();
37348
37591
  * updateProperties(...);
37349
37592
  * } else {
@@ -37885,7 +38128,7 @@
37885
38128
 
37886
38129
  /**
37887
38130
  * @interface QAEDefinition
37888
- * @property {EngineAPI.IGenericObjectProperties=} properties
38131
+ * @property {qix.GenericObjectProperties=} properties
37889
38132
  * @property {object=} data
37890
38133
  * @property {DataTarget[]} data.targets
37891
38134
  * @property {importProperties=} importProperties
@@ -37895,22 +38138,22 @@
37895
38138
  /**
37896
38139
  * @interface DataTarget
37897
38140
  * @property {string} path
37898
- * @property {FieldTarget<EngineAPI.INxDimension>=} dimensions
37899
- * @property {FieldTarget<EngineAPI.INxMeasure>=} measures
38141
+ * @property {FieldTarget<qix.NxDimension>=} dimensions
38142
+ * @property {FieldTarget<qix.NxMeasure>=} measures
37900
38143
  */
37901
38144
 
37902
38145
  /**
37903
38146
  * @callback fieldTargetAddedCallback
37904
38147
  * @template T
37905
38148
  * @param {T} field
37906
- * @param {EngineAPI.IGenericObjectProperties} properties
38149
+ * @param {qix.GenericObjectProperties} properties
37907
38150
  */
37908
38151
 
37909
38152
  /**
37910
38153
  * @callback fieldTargetRemovedCallback
37911
38154
  * @template T
37912
38155
  * @param {T} field
37913
- * @param {EngineAPI.IGenericObjectProperties} properties
38156
+ * @param {qix.GenericObjectProperties} properties
37914
38157
  * @param {number} index
37915
38158
  */
37916
38159
 
@@ -38174,7 +38417,7 @@
38174
38417
  id: model.id,
38175
38418
  /**
38176
38419
  * This visualizations Enigma model, a representation of the generic object.
38177
- * @type {EngineAPI.IGenericObject}
38420
+ * @type {qix.GenericObject}
38178
38421
  */
38179
38422
  model,
38180
38423
  /**
@@ -38295,7 +38538,6 @@
38295
38538
  },
38296
38539
  /**
38297
38540
  * Listens to custom events from inside the visualization. See useEmitter
38298
- * @experimental
38299
38541
  * @param {string} eventName Event name to listen to
38300
38542
  * @param {Function} listener Callback function to invoke
38301
38543
  */
@@ -38304,7 +38546,6 @@
38304
38546
  },
38305
38547
  /**
38306
38548
  * Removes a listener
38307
- * @experimental
38308
38549
  * @param {string} eventName Event name to remove from
38309
38550
  * @param {Function} listener Callback function to remove
38310
38551
  */
@@ -38319,6 +38560,16 @@
38319
38560
  await rendered;
38320
38561
  return cellRef.current.getImperativeHandle();
38321
38562
  },
38563
+ /**
38564
+ * Takes a snapshot of the Viz layout and state
38565
+ * @experimental
38566
+ * @private
38567
+ * @returns {Promise<object>} viz layout object with snapshot settings
38568
+ */
38569
+ async takeSnapshot() {
38570
+ await rendered;
38571
+ return cellRef.current.takeSnapshot();
38572
+ },
38322
38573
  // ===== unexposed experimental API - use at own risk ======
38323
38574
  __DO_NOT_USE__: {
38324
38575
  mount(element) {
@@ -38453,7 +38704,7 @@
38453
38704
  }
38454
38705
 
38455
38706
  /**
38456
- * @typedef {string | EngineAPI.INxDimension | EngineAPI.INxMeasure | LibraryField} Field
38707
+ * @typedef {string | qix.NxDimension | qix.NxMeasure | LibraryField} Field
38457
38708
  */
38458
38709
 
38459
38710
  /**
@@ -38467,7 +38718,7 @@
38467
38718
  * @property {string=} version For creating objects: Version of visualization to render
38468
38719
  * @property {(Field[])=} fields For creating objects: Data fields to use
38469
38720
  * @property {boolean=} [extendProperties=false] For creating objects: Whether to deeply extend properties or not. If false then subtrees will be overwritten.
38470
- * @property {EngineAPI.IGenericObjectProperties=} properties For creating objects: Explicit properties to set
38721
+ * @property {qix.GenericObjectProperties=} properties For creating objects: Explicit properties to set
38471
38722
  * @example
38472
38723
  * // A config for Creating objects:
38473
38724
  * const createConfig = {
@@ -38558,7 +38809,7 @@
38558
38809
  }
38559
38810
 
38560
38811
  /**
38561
- * @typedef {string | EngineAPI.INxDimension | EngineAPI.INxMeasure | LibraryField} Field
38812
+ * @typedef {string | qix.NxDimension | qix.NxMeasure | LibraryField} Field
38562
38813
  */
38563
38814
 
38564
38815
  /**
@@ -38567,7 +38818,7 @@
38567
38818
  * @property {string} type
38568
38819
  * @property {string=} version
38569
38820
  * @property {(Field[])=} fields
38570
- * @property {EngineAPI.IGenericObjectProperties=} properties
38821
+ * @property {qix.GenericObjectProperties=} properties
38571
38822
  */
38572
38823
 
38573
38824
  async function createObject(_ref, halo, generateOnly, store) {
@@ -41288,7 +41539,10 @@
41288
41539
  themes: [],
41289
41540
  anything: {},
41290
41541
  flags: {
41291
- KPI_REACTCOLORPICKER: true
41542
+ KPI_REACTCOLORPICKER: true,
41543
+ IM_1869_HIDE_DIM_MEA_LINE: true,
41544
+ IM_1579_HIDE_DIM_MEA: true,
41545
+ CLIENT_IM_3365: true
41292
41546
  },
41293
41547
  snapshot: DEFAULT_SNAPSHOT_CONFIG
41294
41548
  };
@@ -41369,7 +41623,7 @@
41369
41623
  * Initiates a new `Embed` instance using the specified enigma `app`.
41370
41624
  * @entry
41371
41625
  * @function embed
41372
- * @param {EngineAPI.IApp} app
41626
+ * @param {qix.Doc} app
41373
41627
  * @param {Configuration=} instanceConfig
41374
41628
  * @returns {Embed}
41375
41629
  * @example
@@ -41484,8 +41738,7 @@
41484
41738
  /**
41485
41739
  * Creates a visualization model
41486
41740
  * @param {CreateConfig} cfg The create configuration.
41487
- * @experimental
41488
- * @returns {Promise<EngineAPI.IGenericObject>} An engima model
41741
+ * @returns {Promise<qix.GenericObject>} An engima model
41489
41742
  * @example
41490
41743
  * // create a barchart in the app and return the model
41491
41744
  * const model = await n.create({
@@ -41499,7 +41752,6 @@
41499
41752
  /**
41500
41753
  * Generates properties for a visualization object
41501
41754
  * @param {CreateConfig} cfg The create configuration.
41502
- * @experimental
41503
41755
  * @returns {Promise<object>} The objects properties
41504
41756
  * @example
41505
41757
  * // generate properties for a barchart
@@ -42119,7 +42371,7 @@
42119
42371
  */
42120
42372
  const mocker = /** @lends EnigmaMocker# */{
42121
42373
  /**
42122
- * Mocks Engima app functionality. It accepts one / many generic objects as input argument and returns the mocked Enigma app. Each generic object represents one visulization and specifies how it behaves. For example, what layout to use the data to present.
42374
+ * Mocks Engima app functionality. It accepts one / many generic objects as input argument and returns the mocked Enigma app. Each generic object represents one visualisation and specifies how it behaves. For example, what layout to use the data to present.
42123
42375
  *
42124
42376
  * The generic object is represented with a Javascript object with a number of properties. The name of the property correlates to the name in the Enigma model for `app.getObject(id)`. For example, the property `getLayout` in the generic object is used to define `app.getObject(id).getLayout()`. Any property can be added to the fixture (just make sure it exists and behaves as in the Enigma model!).
42125
42377
  *
@@ -42127,9 +42379,9 @@
42127
42379
  * @type function
42128
42380
  * @experimental
42129
42381
  * @since 3.0.0
42130
- * @param {Array<object>} genericObjects Generic objects controling behaviour of visualizations.
42382
+ * @param {Array<object>} genericObjects Generic objects controlling behaviour of visualizations.
42131
42383
  * @param {EnigmaMockerOptions=} options Options
42132
- * @returns {Promise<EngineAPI.IApp>}
42384
+ * @returns {Promise<qix.Doc>}
42133
42385
  * @example
42134
42386
  * const genericObject = {
42135
42387
  * getLayout() {