@nebula.js/stardust 4.0.3 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/core/esm/dev.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- * @nebula.js/stardust v4.0.3
2
+ * @nebula.js/stardust v4.2.0
3
3
  * Copyright (c) 2023 QlikTech International AB
4
4
  * Released under the MIT license.
5
5
  */
@@ -750,8 +750,8 @@ function _defineProperty(obj, key, value) {
750
750
  }
751
751
  return obj;
752
752
  }
753
- function _extends$5() {
754
- _extends$5 = Object.assign ? Object.assign.bind() : function (target) {
753
+ function _extends$3() {
754
+ _extends$3 = Object.assign ? Object.assign.bind() : function (target) {
755
755
  for (var i = 1; i < arguments.length; i++) {
756
756
  var source = arguments[i];
757
757
  for (var key in source) {
@@ -762,7 +762,7 @@ function _extends$5() {
762
762
  }
763
763
  return target;
764
764
  };
765
- return _extends$5.apply(this, arguments);
765
+ return _extends$3.apply(this, arguments);
766
766
  }
767
767
  function _objectWithoutPropertiesLoose$2(source, excluded) {
768
768
  if (source == null) return {};
@@ -3790,21 +3790,6 @@ var m$1 = ReactDOM;
3790
3790
  client.hydrateRoot = m$1.hydrateRoot;
3791
3791
  }
3792
3792
 
3793
- function _extends$4() {
3794
- _extends$4 = Object.assign ? Object.assign.bind() : function (target) {
3795
- for (var i = 1; i < arguments.length; i++) {
3796
- var source = arguments[i];
3797
- for (var key in source) {
3798
- if (Object.prototype.hasOwnProperty.call(source, key)) {
3799
- target[key] = source[key];
3800
- }
3801
- }
3802
- }
3803
- return target;
3804
- };
3805
- return _extends$4.apply(this, arguments);
3806
- }
3807
-
3808
3793
  function isPlainObject(item) {
3809
3794
  return item !== null && typeof item === 'object' && item.constructor === Object;
3810
3795
  }
@@ -3821,7 +3806,9 @@ function deepClone(source) {
3821
3806
  function deepmerge(target, source, options = {
3822
3807
  clone: true
3823
3808
  }) {
3824
- const output = options.clone ? _extends$4({}, target) : target;
3809
+ const output = options.clone ? {
3810
+ ...target
3811
+ } : target;
3825
3812
  if (isPlainObject(target) && isPlainObject(source)) {
3826
3813
  Object.keys(source).forEach(key => {
3827
3814
  // Avoid prototype pollution
@@ -3973,8 +3960,8 @@ function useGlobalId(idOverride) {
3973
3960
  return id;
3974
3961
  }
3975
3962
 
3976
- // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814
3977
- const maybeReactUseId = React['useId' + ''];
3963
+ // downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814
3964
+ const maybeReactUseId = React['useId'.toString()];
3978
3965
  /**
3979
3966
  *
3980
3967
  * @example <div id={useId()} />
@@ -4211,10 +4198,15 @@ function useIsFocusVisible() {
4211
4198
  * @returns {object} resolved props
4212
4199
  */
4213
4200
  function resolveProps(defaultProps, props) {
4214
- const output = _extends$4({}, props);
4201
+ const output = {
4202
+ ...props
4203
+ };
4215
4204
  Object.keys(defaultProps).forEach(propName => {
4216
4205
  if (propName.toString().match(/^(components|slots)$/)) {
4217
- output[propName] = _extends$4({}, defaultProps[propName], output[propName]);
4206
+ output[propName] = {
4207
+ ...defaultProps[propName],
4208
+ ...output[propName]
4209
+ };
4218
4210
  } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {
4219
4211
  const defaultSlotProps = defaultProps[propName] || {};
4220
4212
  const slotProps = props[propName];
@@ -4226,7 +4218,9 @@ function resolveProps(defaultProps, props) {
4226
4218
  // Reduce the iteration if the default slot props is empty
4227
4219
  output[propName] = slotProps;
4228
4220
  } else {
4229
- output[propName] = _extends$4({}, slotProps);
4221
+ output[propName] = {
4222
+ ...slotProps
4223
+ };
4230
4224
  Object.keys(defaultSlotProps).forEach(slotPropName => {
4231
4225
  output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);
4232
4226
  });
@@ -4306,8 +4300,8 @@ function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui')
4306
4300
 
4307
4301
  var THEME_ID = '$$material';
4308
4302
 
4309
- function _extends$3() {
4310
- _extends$3 = Object.assign ? Object.assign.bind() : function (target) {
4303
+ function _extends$2() {
4304
+ _extends$2 = Object.assign ? Object.assign.bind() : function (target) {
4311
4305
  for (var i = 1; i < arguments.length; i++) {
4312
4306
  var source = arguments[i];
4313
4307
  for (var key in source) {
@@ -4318,7 +4312,7 @@ function _extends$3() {
4318
4312
  }
4319
4313
  return target;
4320
4314
  };
4321
- return _extends$3.apply(this, arguments);
4315
+ return _extends$2.apply(this, arguments);
4322
4316
  }
4323
4317
 
4324
4318
  function _objectWithoutPropertiesLoose$1(source, excluded) {
@@ -4477,6 +4471,7 @@ var RULESET = 'rule';
4477
4471
  var DECLARATION = 'decl';
4478
4472
  var IMPORT = '@import';
4479
4473
  var KEYFRAMES = '@keyframes';
4474
+ var LAYER = '@layer';
4480
4475
 
4481
4476
  /**
4482
4477
  * @param {number}
@@ -4906,8 +4901,8 @@ function parse (value, root, parent, rule, rules, rulesets, pseudo, points, decl
4906
4901
  parse(characters, root, reference, reference, props, rulesets, length, points, children);
4907
4902
  else
4908
4903
  switch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {
4909
- // d m s
4910
- case 100: case 109: case 115:
4904
+ // d l m s
4905
+ case 100: case 108: case 109: case 115:
4911
4906
  parse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children);
4912
4907
  break
4913
4908
  default:
@@ -5026,6 +5021,7 @@ function serialize (children, callback) {
5026
5021
  */
5027
5022
  function stringify (element, index, children, callback) {
5028
5023
  switch (element.type) {
5024
+ case LAYER: if (element.children.length) break
5029
5025
  case IMPORT: case DECLARATION: return element.return = element.return || element.value
5030
5026
  case COMMENT: return ''
5031
5027
  case KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'
@@ -5618,7 +5614,7 @@ function StyledEngineProvider(props) {
5618
5614
  }
5619
5615
 
5620
5616
  /**
5621
- * @mui/styled-engine v5.12.3
5617
+ * @mui/styled-engine v5.13.2
5622
5618
  *
5623
5619
  * @license MIT
5624
5620
  * This source code is licensed under the MIT license found in the
@@ -5639,8 +5635,8 @@ const internal_processStyles = (tag, processor) => {
5639
5635
  }
5640
5636
  };
5641
5637
 
5642
- function _extends$2() {
5643
- _extends$2 = Object.assign ? Object.assign.bind() : function (target) {
5638
+ function _extends$1() {
5639
+ _extends$1 = Object.assign ? Object.assign.bind() : function (target) {
5644
5640
  for (var i = 1; i < arguments.length; i++) {
5645
5641
  var source = arguments[i];
5646
5642
  for (var key in source) {
@@ -5651,7 +5647,7 @@ function _extends$2() {
5651
5647
  }
5652
5648
  return target;
5653
5649
  };
5654
- return _extends$2.apply(this, arguments);
5650
+ return _extends$1.apply(this, arguments);
5655
5651
  }
5656
5652
 
5657
5653
  function _objectWithoutPropertiesLoose(source, excluded) {
@@ -5676,7 +5672,7 @@ const sortBreakpointsValues = values => {
5676
5672
  // Sort in ascending order
5677
5673
  breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);
5678
5674
  return breakpointsAsArray.reduce((acc, obj) => {
5679
- return _extends$2({}, acc, {
5675
+ return _extends$1({}, acc, {
5680
5676
  [obj.key]: obj.val
5681
5677
  });
5682
5678
  }, {});
@@ -5734,7 +5730,7 @@ function createBreakpoints(breakpoints) {
5734
5730
  }
5735
5731
  return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');
5736
5732
  }
5737
- return _extends$2({
5733
+ return _extends$1({
5738
5734
  keys,
5739
5735
  values: sortedValues,
5740
5736
  up,
@@ -6704,14 +6700,14 @@ function createTheme$1(options = {}, ...args) {
6704
6700
  direction: 'ltr',
6705
6701
  components: {},
6706
6702
  // Inject component definitions.
6707
- palette: _extends$2({
6703
+ palette: _extends$1({
6708
6704
  mode: 'light'
6709
6705
  }, paletteInput),
6710
6706
  spacing,
6711
- shape: _extends$2({}, shape$1, shapeInput)
6707
+ shape: _extends$1({}, shape$1, shapeInput)
6712
6708
  }, other);
6713
6709
  muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);
6714
- muiTheme.unstable_sxConfig = _extends$2({}, defaultSxConfig$1, other == null ? void 0 : other.unstable_sxConfig);
6710
+ muiTheme.unstable_sxConfig = _extends$1({}, defaultSxConfig$1, other == null ? void 0 : other.unstable_sxConfig);
6715
6711
  muiTheme.unstable_sx = function sx(props) {
6716
6712
  return styleFunctionSx$1({
6717
6713
  sx: props,
@@ -6734,6 +6730,8 @@ function useTheme$3(defaultTheme = systemDefaultTheme$1) {
6734
6730
  return useTheme$4(defaultTheme);
6735
6731
  }
6736
6732
 
6733
+ 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))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
6734
+
6737
6735
  const _excluded$d = ["variant"];
6738
6736
  function isEmpty$2(string) {
6739
6737
  return string.length === 0;
@@ -6834,8 +6832,8 @@ function createStyled(input = {}) {
6834
6832
  slotShouldForwardProp = shouldForwardProp
6835
6833
  } = input;
6836
6834
  const systemSx = props => {
6837
- return styleFunctionSx$1(_extends$2({}, props, {
6838
- theme: resolveTheme(_extends$2({}, props, {
6835
+ return styleFunctionSx$1(_extends$1({}, props, {
6836
+ theme: resolveTheme(_extends$1({}, props, {
6839
6837
  defaultTheme,
6840
6838
  themeId
6841
6839
  }))
@@ -6868,7 +6866,7 @@ function createStyled(input = {}) {
6868
6866
  // for string (html) tag, preserve the behavior in emotion & styled-components.
6869
6867
  shouldForwardPropOption = undefined;
6870
6868
  }
6871
- const defaultStyledResolver = styled$2(tag, _extends$2({
6869
+ const defaultStyledResolver = styled$2(tag, _extends$1({
6872
6870
  shouldForwardProp: shouldForwardPropOption,
6873
6871
  label
6874
6872
  }, options));
@@ -6878,8 +6876,8 @@ function createStyled(input = {}) {
6878
6876
  // component stays as a function. This condition makes sure that we do not interpolate functions
6879
6877
  // which are basically components used as a selectors.
6880
6878
  return typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg ? props => {
6881
- return stylesArg(_extends$2({}, props, {
6882
- theme: resolveTheme(_extends$2({}, props, {
6879
+ return stylesArg(_extends$1({}, props, {
6880
+ theme: resolveTheme(_extends$1({}, props, {
6883
6881
  defaultTheme,
6884
6882
  themeId
6885
6883
  }))
@@ -6889,7 +6887,7 @@ function createStyled(input = {}) {
6889
6887
  let transformedStyleArg = styleArg;
6890
6888
  if (componentName && overridesResolver) {
6891
6889
  expressionsWithDefaultTheme.push(props => {
6892
- const theme = resolveTheme(_extends$2({}, props, {
6890
+ const theme = resolveTheme(_extends$1({}, props, {
6893
6891
  defaultTheme,
6894
6892
  themeId
6895
6893
  }));
@@ -6897,7 +6895,7 @@ function createStyled(input = {}) {
6897
6895
  if (styleOverrides) {
6898
6896
  const resolvedStyleOverrides = {};
6899
6897
  Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {
6900
- resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends$2({}, props, {
6898
+ resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends$1({}, props, {
6901
6899
  theme
6902
6900
  })) : slotStyle;
6903
6901
  });
@@ -6908,7 +6906,7 @@ function createStyled(input = {}) {
6908
6906
  }
6909
6907
  if (componentName && !skipVariantsResolver) {
6910
6908
  expressionsWithDefaultTheme.push(props => {
6911
- const theme = resolveTheme(_extends$2({}, props, {
6909
+ const theme = resolveTheme(_extends$1({}, props, {
6912
6910
  defaultTheme,
6913
6911
  themeId
6914
6912
  }));
@@ -6930,8 +6928,8 @@ function createStyled(input = {}) {
6930
6928
  // which are basically components used as a selectors.
6931
6929
  styleArg.__emotion_real !== styleArg) {
6932
6930
  // If the type is function, we need to define the default theme.
6933
- transformedStyleArg = props => styleArg(_extends$2({}, props, {
6934
- theme: resolveTheme(_extends$2({}, props, {
6931
+ transformedStyleArg = props => styleArg(_extends$1({}, props, {
6932
+ theme: resolveTheme(_extends$1({}, props, {
6935
6933
  defaultTheme,
6936
6934
  themeId
6937
6935
  }))
@@ -7186,21 +7184,6 @@ function lighten(color, coefficient) {
7186
7184
  return recomposeColor(color);
7187
7185
  }
7188
7186
 
7189
- function _extends$1() {
7190
- _extends$1 = Object.assign ? Object.assign.bind() : function (target) {
7191
- for (var i = 1; i < arguments.length; i++) {
7192
- var source = arguments[i];
7193
- for (var key in source) {
7194
- if (Object.prototype.hasOwnProperty.call(source, key)) {
7195
- target[key] = source[key];
7196
- }
7197
- }
7198
- }
7199
- return target;
7200
- };
7201
- return _extends$1.apply(this, arguments);
7202
- }
7203
-
7204
7187
  const ThemeContext = /*#__PURE__*/React.createContext(null);
7205
7188
  var ThemeContext$1 = ThemeContext;
7206
7189
 
@@ -7217,7 +7200,10 @@ function mergeOuterLocalTheme(outerTheme, localTheme) {
7217
7200
  const mergedTheme = localTheme(outerTheme);
7218
7201
  return mergedTheme;
7219
7202
  }
7220
- return _extends$1({}, outerTheme, localTheme);
7203
+ return {
7204
+ ...outerTheme,
7205
+ ...localTheme
7206
+ };
7221
7207
  }
7222
7208
 
7223
7209
  /**
@@ -7250,7 +7236,7 @@ function useThemeScoping(themeId, upperTheme, localTheme, isPrivate = false) {
7250
7236
  const resolvedTheme = themeId ? upperTheme[themeId] || upperTheme : upperTheme;
7251
7237
  if (typeof localTheme === 'function') {
7252
7238
  const mergedTheme = localTheme(resolvedTheme);
7253
- const result = themeId ? _extends$2({}, upperTheme, {
7239
+ const result = themeId ? _extends$1({}, upperTheme, {
7254
7240
  [themeId]: mergedTheme
7255
7241
  }) : mergedTheme;
7256
7242
  // must return a function for the private theme to NOT merge with the upper theme.
@@ -7260,9 +7246,9 @@ function useThemeScoping(themeId, upperTheme, localTheme, isPrivate = false) {
7260
7246
  }
7261
7247
  return result;
7262
7248
  }
7263
- return themeId ? _extends$2({}, upperTheme, {
7249
+ return themeId ? _extends$1({}, upperTheme, {
7264
7250
  [themeId]: localTheme
7265
- }) : _extends$2({}, upperTheme, localTheme);
7251
+ }) : _extends$1({}, upperTheme, localTheme);
7266
7252
  }, [themeId, upperTheme, localTheme, isPrivate]);
7267
7253
  }
7268
7254
 
@@ -7304,7 +7290,7 @@ function adaptV4Theme(inputTheme) {
7304
7290
  styleOverrides = {}
7305
7291
  } = inputTheme,
7306
7292
  other = _objectWithoutPropertiesLoose$1(inputTheme, _excluded$b);
7307
- const theme = _extends$3({}, other, {
7293
+ const theme = _extends$2({}, other, {
7308
7294
  components: {}
7309
7295
  });
7310
7296
 
@@ -7338,13 +7324,13 @@ function adaptV4Theme(inputTheme) {
7338
7324
  // theme.mixins.gutters
7339
7325
  const breakpoints = createBreakpoints(inputTheme.breakpoints || {});
7340
7326
  const spacing = theme.spacing;
7341
- theme.mixins = _extends$3({
7327
+ theme.mixins = _extends$2({
7342
7328
  gutters: (styles = {}) => {
7343
- return _extends$3({
7329
+ return _extends$2({
7344
7330
  paddingLeft: spacing(2),
7345
7331
  paddingRight: spacing(2)
7346
7332
  }, styles, {
7347
- [breakpoints.up('sm')]: _extends$3({
7333
+ [breakpoints.up('sm')]: _extends$2({
7348
7334
  paddingLeft: spacing(3),
7349
7335
  paddingRight: spacing(3)
7350
7336
  }, styles[breakpoints.up('sm')])
@@ -7357,7 +7343,7 @@ function adaptV4Theme(inputTheme) {
7357
7343
  } = palette,
7358
7344
  paletteRest = _objectWithoutPropertiesLoose$1(palette, _excluded2$1);
7359
7345
  const finalMode = modeInput || typeInput || 'light';
7360
- theme.palette = _extends$3({
7346
+ theme.palette = _extends$2({
7361
7347
  // theme.palette.text.hint
7362
7348
  text: {
7363
7349
  hint: finalMode === 'dark' ? 'rgba(255, 255, 255, 0.5)' : 'rgba(0, 0, 0, 0.38)'
@@ -7369,7 +7355,7 @@ function adaptV4Theme(inputTheme) {
7369
7355
  }
7370
7356
 
7371
7357
  function createMixins(breakpoints, mixins) {
7372
- return _extends$3({
7358
+ return _extends$2({
7373
7359
  toolbar: {
7374
7360
  minHeight: 56,
7375
7361
  [breakpoints.up('xs')]: {
@@ -7707,7 +7693,7 @@ function createPalette(palette) {
7707
7693
  lightShade = 300,
7708
7694
  darkShade = 700
7709
7695
  }) => {
7710
- color = _extends$3({}, color);
7696
+ color = _extends$2({}, color);
7711
7697
  if (!color.main && color[mainShade]) {
7712
7698
  color.main = color[mainShade];
7713
7699
  }
@@ -7728,9 +7714,9 @@ function createPalette(palette) {
7728
7714
  dark: dark$1,
7729
7715
  light: light$1
7730
7716
  };
7731
- const paletteOutput = deepmerge(_extends$3({
7717
+ const paletteOutput = deepmerge(_extends$2({
7732
7718
  // A collection of common colors.
7733
- common: _extends$3({}, common$1),
7719
+ common: _extends$2({}, common$1),
7734
7720
  // prevent mutable object.
7735
7721
  // The palette mode, can be light or dark.
7736
7722
  mode,
@@ -7818,7 +7804,7 @@ function createTypography(palette, typography) {
7818
7804
  other = _objectWithoutPropertiesLoose$1(_ref, _excluded$9);
7819
7805
  const coef = fontSize / 14;
7820
7806
  const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);
7821
- const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends$3({
7807
+ const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends$2({
7822
7808
  fontFamily,
7823
7809
  fontWeight,
7824
7810
  fontSize: pxToRem(size),
@@ -7849,7 +7835,7 @@ function createTypography(palette, typography) {
7849
7835
  letterSpacing: 'inherit'
7850
7836
  }
7851
7837
  };
7852
- return deepmerge(_extends$3({
7838
+ return deepmerge(_extends$2({
7853
7839
  htmlFontSize,
7854
7840
  pxToRem,
7855
7841
  fontFamily,
@@ -7917,8 +7903,8 @@ function getAutoHeightDuration(height) {
7917
7903
  return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);
7918
7904
  }
7919
7905
  function createTransitions(inputTransitions) {
7920
- const mergedEasing = _extends$3({}, easing, inputTransitions.easing);
7921
- const mergedDuration = _extends$3({}, duration, inputTransitions.duration);
7906
+ const mergedEasing = _extends$2({}, easing, inputTransitions.easing);
7907
+ const mergedDuration = _extends$2({}, duration, inputTransitions.duration);
7922
7908
  const create = (props = ['all'], options = {}) => {
7923
7909
  const {
7924
7910
  duration: durationOption = mergedDuration.standard,
@@ -7928,7 +7914,7 @@ function createTransitions(inputTransitions) {
7928
7914
  _objectWithoutPropertiesLoose$1(options, _excluded$8);
7929
7915
  return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');
7930
7916
  };
7931
- return _extends$3({
7917
+ return _extends$2({
7932
7918
  getAutoHeightDuration,
7933
7919
  create
7934
7920
  }, inputTransitions, {
@@ -7972,11 +7958,11 @@ function createTheme(options = {}, ...args) {
7972
7958
  shadows: shadows$1.slice(),
7973
7959
  typography: createTypography(palette, typographyInput),
7974
7960
  transitions: createTransitions(transitionsInput),
7975
- zIndex: _extends$3({}, zIndex$1)
7961
+ zIndex: _extends$2({}, zIndex$1)
7976
7962
  });
7977
7963
  muiTheme = deepmerge(muiTheme, other);
7978
7964
  muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);
7979
- muiTheme.unstable_sxConfig = _extends$3({}, defaultSxConfig$1, other == null ? void 0 : other.unstable_sxConfig);
7965
+ muiTheme.unstable_sxConfig = _extends$2({}, defaultSxConfig$1, other == null ? void 0 : other.unstable_sxConfig);
7980
7966
  muiTheme.unstable_sx = function sx(props) {
7981
7967
  return styleFunctionSx$1({
7982
7968
  sx: props,
@@ -8021,14 +8007,12 @@ function ThemeProvider(_ref) {
8021
8007
  } = _ref,
8022
8008
  props = _objectWithoutPropertiesLoose$1(_ref, _excluded$6);
8023
8009
  const scopedTheme = themeInput[THEME_ID];
8024
- return /*#__PURE__*/jsxRuntimeExports.jsx(ThemeProvider$1, _extends$3({}, props, {
8010
+ return /*#__PURE__*/jsxRuntimeExports.jsx(ThemeProvider$1, _extends$2({}, props, {
8025
8011
  themeId: scopedTheme ? THEME_ID : undefined,
8026
8012
  theme: scopedTheme || themeInput
8027
8013
  }));
8028
8014
  }
8029
8015
 
8030
- 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))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
8031
-
8032
8016
  function _extends() {
8033
8017
  _extends = Object.assign ? Object.assign.bind() : function (target) {
8034
8018
  for (var i = 1; i < arguments.length; i++) {
@@ -8389,7 +8373,7 @@ function create$3(definition) {
8389
8373
  return cache[key];
8390
8374
  }
8391
8375
 
8392
- const NEBULA_VERSION_HASH = "f855" ;
8376
+ const NEBULA_VERSION_HASH = "28e4" ;
8393
8377
  ClassNameGenerator$1.configure(componentName => {
8394
8378
  return "njs-".concat(NEBULA_VERSION_HASH, "-").concat(componentName.replace('Mui', ''));
8395
8379
  });
@@ -8636,7 +8620,7 @@ function boot(_ref2) {
8636
8620
  const appRef = React__default.createRef();
8637
8621
  const element = document.createElement('div');
8638
8622
  element.style.display = 'none';
8639
- element.setAttribute('data-nebulajs-version', "4.0.3" );
8623
+ element.setAttribute('data-nebulajs-version', "4.2.0" );
8640
8624
  element.setAttribute('data-app-id', app.id);
8641
8625
  document.body.appendChild(element);
8642
8626
  if (context) {
@@ -9041,7 +9025,7 @@ function SvgIcon$2(_ref) {
9041
9025
  return (
9042
9026
  /*#__PURE__*/
9043
9027
  // eslint-disable-next-line react/no-array-index-key
9044
- React__default.createElement(Type, _extends$5({
9028
+ React__default.createElement(Type, _extends$3({
9045
9029
  key: ix
9046
9030
  }, attrs))
9047
9031
  );
@@ -9822,6 +9806,7 @@ const getValueStateClasses = _ref2 => {
9822
9806
  };
9823
9807
 
9824
9808
  const CELL_PADDING_LEFT = 9;
9809
+ const HEADER_PADDING_RIGHT = 4;
9825
9810
  const ICON_WIDTH = 12;
9826
9811
  const ICON_PADDING = 7;
9827
9812
  const BUTTON_ICON_WIDTH = ICON_WIDTH + (ICON_PADDING + 1) * 2; // 1 is border width
@@ -10425,7 +10410,8 @@ function Frequency(_ref) {
10425
10410
  alignItems: 'center'
10426
10411
  },
10427
10412
  className: rowColClasses.frequencyCount,
10428
- "aria-label": frequencyText
10413
+ "aria-label": frequencyText,
10414
+ title: frequencyText
10429
10415
  }, /*#__PURE__*/React__default.createElement(Typography, {
10430
10416
  noWrap: true,
10431
10417
  color: "inherit",
@@ -12737,7 +12723,7 @@ function getListBoxComponents(_ref) {
12737
12723
  local.current.listRef = ref;
12738
12724
  return /*#__PURE__*/React__default.createElement(StyledFixedSizeList
12739
12725
  // eslint-disable-next-line react/jsx-props-no-spreading
12740
- , _extends$5({}, commonComponentOptions, {
12726
+ , _extends$3({}, commonComponentOptions, {
12741
12727
  dataTestid: "fixed-size-list",
12742
12728
  scrollDisabled: constraints === null || constraints === void 0 ? void 0 : constraints.active,
12743
12729
  height: listHeight,
@@ -12814,7 +12800,7 @@ function getListBoxComponents(_ref) {
12814
12800
  };
12815
12801
  return /*#__PURE__*/React__default.createElement(StyledFixedSizeGrid
12816
12802
  // eslint-disable-next-line react/jsx-props-no-spreading
12817
- , _extends$5({}, commonComponentOptions, {
12803
+ , _extends$3({}, commonComponentOptions, {
12818
12804
  dataTestid: "fixed-size-grid",
12819
12805
  scrollDisabled: constraints === null || constraints === void 0 ? void 0 : constraints.active,
12820
12806
  height: gridHeight,
@@ -13296,7 +13282,7 @@ const SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {
13296
13282
  viewBox = '0 0 24 24'
13297
13283
  } = props,
13298
13284
  other = _objectWithoutPropertiesLoose$1(props, _excluded$5);
13299
- const ownerState = _extends$3({}, props, {
13285
+ const ownerState = _extends$2({}, props, {
13300
13286
  color,
13301
13287
  component,
13302
13288
  fontSize,
@@ -13309,7 +13295,7 @@ const SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {
13309
13295
  more.viewBox = viewBox;
13310
13296
  }
13311
13297
  const classes = useUtilityClasses(ownerState);
13312
- return /*#__PURE__*/jsxRuntimeExports.jsxs(SvgIconRoot, _extends$3({
13298
+ return /*#__PURE__*/jsxRuntimeExports.jsxs(SvgIconRoot, _extends$2({
13313
13299
  as: component,
13314
13300
  className: clsx(classes.root, className),
13315
13301
  focusable: "false",
@@ -13329,7 +13315,7 @@ var SvgIcon$1 = SvgIcon;
13329
13315
 
13330
13316
  function createSvgIcon(path, displayName) {
13331
13317
  function Component(props, ref) {
13332
- return /*#__PURE__*/jsxRuntimeExports.jsx(SvgIcon$1, _extends$3({
13318
+ return /*#__PURE__*/jsxRuntimeExports.jsx(SvgIcon$1, _extends$2({
13333
13319
  "data-testid": `${displayName}Icon`,
13334
13320
  ref: ref
13335
13321
  }, props, {
@@ -14211,7 +14197,7 @@ const More$1 = React__default.forwardRef((_ref3, ref) => {
14211
14197
  const autoFocusIndex = actions.findIndex(action => !action.disabled);
14212
14198
  return showActions && /*#__PURE__*/React__default.createElement(StyledPopover$1
14213
14199
  // eslint-disable-next-line react/jsx-props-no-spreading
14214
- , _extends$5({}, popoverProps, {
14200
+ , _extends$3({}, popoverProps, {
14215
14201
  onClose: onCloseOrActionClick,
14216
14202
  ref: ref,
14217
14203
  open: show,
@@ -14329,9 +14315,7 @@ function getActionsKeyDownHandler(_ref) {
14329
14315
  const PREFIX$7 = 'ActionsToolbar';
14330
14316
  const classes$7 = {
14331
14317
  item: "".concat(PREFIX$7, "-item"),
14332
- itemSpacing: "".concat(PREFIX$7, "-itemSpacing"),
14333
- firstItemSpacing: "".concat(PREFIX$7, "-firstItemSpacing"),
14334
- lastItemSpacing: "".concat(PREFIX$7, "-lastItemSpacing")
14318
+ itemSpacing: "".concat(PREFIX$7, "-itemSpacing")
14335
14319
  };
14336
14320
  const StyledPopover = styled$1(Popover)(_ref => {
14337
14321
  let {
@@ -14339,13 +14323,7 @@ const StyledPopover = styled$1(Popover)(_ref => {
14339
14323
  } = _ref;
14340
14324
  return {
14341
14325
  ["& .".concat(classes$7.itemSpacing)]: {
14342
- padding: theme.spacing(0, 0.5)
14343
- },
14344
- ["& .".concat(classes$7.firstItemSpacing)]: {
14345
- padding: theme.spacing(0, 0.5, 0, 0)
14346
- },
14347
- ["& .".concat(classes$7.lastItemSpacing)]: {
14348
- padding: theme.spacing(0, 0, 0, 0.5)
14326
+ padding: theme.spacing(0, 0.25)
14349
14327
  }
14350
14328
  };
14351
14329
  });
@@ -14364,8 +14342,6 @@ const ActionsGroup = React__default.forwardRef((_ref2, ref) => {
14364
14342
  className,
14365
14343
  ariaExpanded = false,
14366
14344
  actions = [],
14367
- first = false,
14368
- last = false,
14369
14345
  addAnchor = false,
14370
14346
  isRtl = false
14371
14347
  } = _ref2;
@@ -14376,31 +14352,17 @@ const ActionsGroup = React__default.forwardRef((_ref2, ref) => {
14376
14352
  flexDirection: isRtl ? 'row-reverse' : 'row',
14377
14353
  wrap: "nowrap",
14378
14354
  className: className
14379
- }, actions.map((e, ix) => {
14380
- let cls = [];
14381
- const isFirstItem = first && ix === 0;
14382
- const isLastItem = last && actions.length - 1 === ix;
14383
- if (isFirstItem && !isLastItem) {
14384
- cls = [classes$7.firstItemSpacing, classes$7.item];
14385
- }
14386
- if (isLastItem && !isFirstItem) {
14387
- cls = [...cls, classes$7.lastItemSpacing, classes$7.item];
14388
- }
14389
- if (!isFirstItem && !isLastItem && cls.length === 0) {
14390
- cls = [classes$7.itemSpacing, classes$7.item];
14391
- }
14392
- return /*#__PURE__*/React__default.createElement(Grid, {
14393
- item: true,
14394
- key: e.key,
14395
- className: cls.join(' ').trim()
14396
- }, /*#__PURE__*/React__default.createElement(Item, {
14397
- ariaExpanded: ariaExpanded,
14398
- key: e.key,
14399
- item: e,
14400
- ref: ix === 0 ? ref : null,
14401
- addAnchor: addAnchor
14402
- }));
14403
- })) : null;
14355
+ }, actions.map((e, ix) => /*#__PURE__*/React__default.createElement(Grid, {
14356
+ item: true,
14357
+ key: e.key,
14358
+ className: "".concat(classes$7.itemSpacing, " ").concat(classes$7.item)
14359
+ }, /*#__PURE__*/React__default.createElement(Item, {
14360
+ ariaExpanded: ariaExpanded,
14361
+ key: e.key,
14362
+ item: e,
14363
+ ref: ix === 0 ? ref : null,
14364
+ addAnchor: addAnchor
14365
+ })))) : null;
14404
14366
  });
14405
14367
  const popoverStyle = {
14406
14368
  pointerEvents: 'none'
@@ -14444,7 +14406,7 @@ function ActionsToolbar(_ref3) {
14444
14406
  } = useContext(InstanceContext);
14445
14407
  const [showMoreItems, setShowMoreItems] = useState$1(false);
14446
14408
  const popoverAnchorOrigin = {
14447
- vertical: 7,
14409
+ vertical: 12,
14448
14410
  horizontal: ((_popover$anchorEl$cli = (_popover$anchorEl = popover.anchorEl) === null || _popover$anchorEl === void 0 ? void 0 : _popover$anchorEl.clientWidth) !== null && _popover$anchorEl$cli !== void 0 ? _popover$anchorEl$cli : 0) - 7
14449
14411
  };
14450
14412
  const actionsRef = useRef();
@@ -14520,17 +14482,13 @@ function ActionsToolbar(_ref3) {
14520
14482
  flexDirection: isRtl ? 'row-reverse' : 'row'
14521
14483
  }
14522
14484
  }, showActions && /*#__PURE__*/React__default.createElement(ActionsGroup, {
14523
- actions: newActions,
14524
- first: true,
14525
- last: !showMore && !selections.show
14485
+ actions: newActions
14526
14486
  }), showMore && /*#__PURE__*/React__default.createElement(ActionsGroup, {
14527
14487
  id: "actions-toolbar-show-more",
14528
14488
  "data-testid": "actions-toolbar-show-more",
14529
14489
  ref: moreRef,
14530
14490
  ariaExpanded: showMoreItems,
14531
14491
  actions: [moreItem],
14532
- first: !showActions,
14533
- last: !selections.show,
14534
14492
  addAnchor: true
14535
14493
  }), showDivider && /*#__PURE__*/React__default.createElement(Grid, {
14536
14494
  item: true,
@@ -14541,8 +14499,6 @@ function ActionsToolbar(_ref3) {
14541
14499
  })), selections.show && /*#__PURE__*/React__default.createElement(ActionsGroup, {
14542
14500
  className: "actions-toolbar-default-actions",
14543
14501
  actions: defaultSelectionActions,
14544
- first: !showActions && !showMore,
14545
- last: true,
14546
14502
  isRtl: isRtl
14547
14503
  }), showMoreItems && /*#__PURE__*/React__default.createElement(More$1, {
14548
14504
  show: showMoreItems,
@@ -14568,7 +14524,7 @@ function ActionsToolbar(_ref3) {
14568
14524
  className: ActionToolbarElement.className,
14569
14525
  style: {
14570
14526
  pointerEvents: 'auto',
14571
- padding: theme.spacing(0.8)
14527
+ padding: theme.spacing(0.5, 0.25)
14572
14528
  }
14573
14529
  }
14574
14530
  }, Actions) : show && Actions;
@@ -16167,6 +16123,9 @@ typeof globalThis !== 'undefined'
16167
16123
  : typeof global !== 'undefined'
16168
16124
  ? global
16169
16125
  : {};
16126
+ function $parcel$export(e, n, v, s) {
16127
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
16128
+ }
16170
16129
 
16171
16130
  var $3e40d2fd7fdb47d2$exports = {};
16172
16131
  /**
@@ -16400,10 +16359,10 @@ class $6e2bb92d9db3b0c8$export$9d94f4ee1d930ff extends (Component) {
16400
16359
  // This can result in invalid style values which can result in NaN values if we don't handle them.
16401
16360
  // See issue #150 for more context.
16402
16361
  const style = window.getComputedStyle(this._parentNode) || {};
16403
- const paddingLeft = parseInt((_style$paddingLeft = style.paddingLeft) !== null && _style$paddingLeft !== void 0 ? _style$paddingLeft : "0", 10);
16404
- const paddingRight = parseInt((_style$paddingRight = style.paddingRight) !== null && _style$paddingRight !== void 0 ? _style$paddingRight : "0", 10);
16405
- const paddingTop = parseInt((_style$paddingTop = style.paddingTop) !== null && _style$paddingTop !== void 0 ? _style$paddingTop : "0", 10);
16406
- const paddingBottom = parseInt((_style$paddingBottom = style.paddingBottom) !== null && _style$paddingBottom !== void 0 ? _style$paddingBottom : "0", 10);
16362
+ const paddingLeft = parseFloat((_style$paddingLeft = style.paddingLeft) !== null && _style$paddingLeft !== void 0 ? _style$paddingLeft : "0");
16363
+ const paddingRight = parseFloat((_style$paddingRight = style.paddingRight) !== null && _style$paddingRight !== void 0 ? _style$paddingRight : "0");
16364
+ const paddingTop = parseFloat((_style$paddingTop = style.paddingTop) !== null && _style$paddingTop !== void 0 ? _style$paddingTop : "0");
16365
+ const paddingBottom = parseFloat((_style$paddingBottom = style.paddingBottom) !== null && _style$paddingBottom !== void 0 ? _style$paddingBottom : "0");
16407
16366
  const rect = this._parentNode.getBoundingClientRect();
16408
16367
  const scaledHeight = rect.height - paddingTop - paddingBottom;
16409
16368
  const scaledWidth = rect.width - paddingLeft - paddingRight;
@@ -16465,7 +16424,7 @@ class $6e2bb92d9db3b0c8$export$9d94f4ee1d930ff extends (Component) {
16465
16424
  }
16466
16425
  }
16467
16426
  render() {
16468
- const { children: children , defaultHeight: defaultHeight , defaultWidth: defaultWidth , disableHeight: disableHeight , disableWidth: disableWidth , nonce: nonce , onResize: onResize , style: style , tagName: tagName = "div" , ...rest } = this.props;
16427
+ const { children: children , defaultHeight: defaultHeight , defaultWidth: defaultWidth , disableHeight: disableHeight = false , disableWidth: disableWidth = false , nonce: nonce , onResize: onResize , style: style = {} , tagName: tagName = "div" , ...rest } = this.props;
16469
16428
  const { height: height , scaledHeight: scaledHeight , scaledWidth: scaledWidth , width: width } = this.state;
16470
16429
  // Outer div should not force width/height since that may prevent containers from shrinking.
16471
16430
  // Inner component should overflow and use calculated width/height.
@@ -16499,12 +16458,22 @@ class $6e2bb92d9db3b0c8$export$9d94f4ee1d930ff extends (Component) {
16499
16458
  }, !bailoutOnChildren && children(childParams));
16500
16459
  }
16501
16460
  }
16502
- $6e2bb92d9db3b0c8$var$_defineProperty($6e2bb92d9db3b0c8$export$9d94f4ee1d930ff, "defaultProps", {
16503
- onResize: ()=>{},
16504
- disableHeight: false,
16505
- disableWidth: false,
16506
- style: {}
16507
- });
16461
+
16462
+
16463
+ var $81c1b644006d48ec$exports = {};
16464
+
16465
+ $parcel$export($81c1b644006d48ec$exports, "isHeightAndWidthProps", () => $81c1b644006d48ec$export$6a9e233b3261c1f);
16466
+ $parcel$export($81c1b644006d48ec$exports, "isHeightOnlyProps", () => $81c1b644006d48ec$export$232069b3e05ce32a);
16467
+ $parcel$export($81c1b644006d48ec$exports, "isWidthOnlyProps", () => $81c1b644006d48ec$export$10ec32941a097f36);
16468
+ function $81c1b644006d48ec$export$6a9e233b3261c1f(props) {
16469
+ return props && props.disableHeight !== true && props.disableWidth !== true;
16470
+ }
16471
+ function $81c1b644006d48ec$export$232069b3e05ce32a(props) {
16472
+ return props && props.disableHeight !== true && props.disableWidth === true;
16473
+ }
16474
+ function $81c1b644006d48ec$export$10ec32941a097f36(props) {
16475
+ return props && props.disableHeight === true && props.disableWidth !== true;
16476
+ }
16508
16477
 
16509
16478
 
16510
16479
  var $149c1bd638913645$export$2e2bcd8739ae039 = ($6e2bb92d9db3b0c8$export$9d94f4ee1d930ff);
@@ -16761,11 +16730,14 @@ function showToolbarDetached(_ref) {
16761
16730
  let {
16762
16731
  containerRect,
16763
16732
  titleRef,
16764
- iconsWidth
16733
+ iconsWidth,
16734
+ headerPaddingLeft,
16735
+ headerPaddingRight
16765
16736
  } = _ref;
16766
16737
  const containerWidth = containerRect.width;
16767
- const padding = 16;
16768
- const contentWidth = ((_titleRef$current$cli = titleRef === null || titleRef === void 0 ? void 0 : (_titleRef$current = titleRef.current) === null || _titleRef$current === void 0 ? void 0 : _titleRef$current.clientWidth) !== null && _titleRef$current$cli !== void 0 ? _titleRef$current$cli : 0) + iconsWidth + padding;
16738
+ const preventTruncation = 2;
16739
+ const padding = headerPaddingLeft + headerPaddingRight;
16740
+ const contentWidth = ((_titleRef$current$cli = titleRef === null || titleRef === void 0 ? void 0 : (_titleRef$current = titleRef.current) === null || _titleRef$current === void 0 ? void 0 : _titleRef$current.clientWidth) !== null && _titleRef$current$cli !== void 0 ? _titleRef$current$cli : 0) + iconsWidth + padding + preventTruncation;
16769
16741
  const actionToolbarWidth = 128;
16770
16742
  const notSufficientSpace = containerWidth < contentWidth + actionToolbarWidth;
16771
16743
  const isTruncated = (titleRef === null || titleRef === void 0 ? void 0 : (_titleRef$current2 = titleRef.current) === null || _titleRef$current2 === void 0 ? void 0 : _titleRef$current2.scrollWidth) > (titleRef === null || titleRef === void 0 ? void 0 : (_titleRef$current3 = titleRef.current) === null || _titleRef$current3 === void 0 ? void 0 : _titleRef$current3.offsetWidth);
@@ -17059,7 +17031,9 @@ function ListBoxInline(_ref4) {
17059
17031
  const isDrillDown = (layout === null || layout === void 0 ? void 0 : (_layout$qListObject2 = layout.qListObject) === null || _layout$qListObject2 === void 0 ? void 0 : (_layout$qListObject2$ = _layout$qListObject2.qDimensionInfo) === null || _layout$qListObject2$ === void 0 ? void 0 : _layout$qListObject2$.qGrouping) === 'H';
17060
17032
  const showIcons = showSearchOrLockIcon || isDrillDown;
17061
17033
  const iconsWidth = (showSearchOrLockIcon ? BUTTON_ICON_WIDTH : 0) + (isDrillDown ? ICON_WIDTH + ICON_PADDING : 0); // Drill-down icon needs padding right so there is space between the icon and the title
17062
-
17034
+ const isRtl = direction === 'rtl';
17035
+ const headerPaddingLeft = CELL_PADDING_LEFT - (showSearchOrLockIcon ? ICON_PADDING : 0);
17036
+ const headerPaddingRight = isRtl ? CELL_PADDING_LEFT - (showIcons ? ICON_PADDING : 0) : HEADER_PADDING_RIGHT;
17063
17037
  useEffect$1(() => {
17064
17038
  if (!titleRef.current || !containerRect) {
17065
17039
  return;
@@ -17067,14 +17041,15 @@ function ListBoxInline(_ref4) {
17067
17041
  const isDetached = showToolbarDetached({
17068
17042
  containerRect,
17069
17043
  titleRef,
17070
- iconsWidth
17044
+ iconsWidth,
17045
+ headerPaddingLeft,
17046
+ headerPaddingRight
17071
17047
  });
17072
17048
  setIsToolbarDetached(isDetached);
17073
17049
  }, [titleRef.current, containerRect]);
17074
17050
  if (!model || !layout || !translator) {
17075
17051
  return null;
17076
17052
  }
17077
- const isRtl = direction === 'rtl';
17078
17053
  const listboxSelectionToolbarItems = createListboxSelectionToolbar({
17079
17054
  layout,
17080
17055
  model,
@@ -17112,8 +17087,6 @@ function ListBoxInline(_ref4) {
17112
17087
  keyboard
17113
17088
  });
17114
17089
  const shouldAutoFocus = searchVisible && search === 'toggle';
17115
- const headerPaddingLeft = CELL_PADDING_LEFT - (showSearchOrLockIcon ? ICON_PADDING : 0);
17116
- const headerPaddingRight = isRtl ? CELL_PADDING_LEFT - (showIcons ? ICON_PADDING : 0) : 0;
17117
17090
 
17118
17091
  // Add a container padding for grid mode to harmonize with the grid item margins (should sum to 8px).
17119
17092
  const isGridMode = (layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.dataLayout) === 'grid';
@@ -17160,7 +17133,7 @@ function ListBoxInline(_ref4) {
17160
17133
  if (isInvalid) {
17161
17134
  renderedCallback === null || renderedCallback === void 0 ? void 0 : renderedCallback();
17162
17135
  }
17163
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, showDetachedToolbarOnly && /*#__PURE__*/React__default.createElement(ActionsToolbar, _extends$5({
17136
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, showDetachedToolbarOnly && /*#__PURE__*/React__default.createElement(ActionsToolbar, _extends$3({
17164
17137
  direction: direction
17165
17138
  }, getActionToolbarProps(true))), /*#__PURE__*/React__default.createElement(StyledGrid$3, {
17166
17139
  className: "listbox-container",
@@ -17217,7 +17190,7 @@ function ListBoxInline(_ref4) {
17217
17190
  title: layout.title
17218
17191
  }, layout.title)), /*#__PURE__*/React__default.createElement(Grid, {
17219
17192
  item: true
17220
- }, /*#__PURE__*/React__default.createElement(ActionsToolbar, _extends$5({
17193
+ }, /*#__PURE__*/React__default.createElement(ActionsToolbar, _extends$3({
17221
17194
  direction: direction
17222
17195
  }, getActionToolbarProps(isToolbarDetached))))), /*#__PURE__*/React__default.createElement(Grid, {
17223
17196
  item: true,
@@ -19210,13 +19183,13 @@ function Progress(_ref2) {
19210
19183
  const s = SIZES[size];
19211
19184
  return /*#__PURE__*/React__default.createElement(Root, {
19212
19185
  className: classes$3.root
19213
- }, /*#__PURE__*/React__default.createElement(CircularProgress, _extends$5({
19186
+ }, /*#__PURE__*/React__default.createElement(CircularProgress, _extends$3({
19214
19187
  variant: "determinate",
19215
19188
  value: 100,
19216
19189
  className: classes$3.back,
19217
19190
  size: s,
19218
19191
  thickness: 3
19219
- }, props)), /*#__PURE__*/React__default.createElement(CircularProgress, _extends$5({
19192
+ }, props)), /*#__PURE__*/React__default.createElement(CircularProgress, _extends$3({
19220
19193
  variant: "indeterminate",
19221
19194
  disableShrink: true,
19222
19195
  className: classes$3.front,
@@ -19266,7 +19239,7 @@ function Cancel(_ref) {
19266
19239
  variant: "h6",
19267
19240
  align: "center",
19268
19241
  "data-tid": "update-active"
19269
- }, translator.get('Object.Update.Active')))), /*#__PURE__*/React__default.createElement(Grid, _extends$5({
19242
+ }, translator.get('Object.Update.Active')))), /*#__PURE__*/React__default.createElement(Grid, _extends$3({
19270
19243
  item: true
19271
19244
  }, props), /*#__PURE__*/React__default.createElement(Button, {
19272
19245
  variant: "contained",
@@ -19293,7 +19266,7 @@ function Retry(_ref2) {
19293
19266
  "data-tid": "update-cancelled"
19294
19267
  }, translator.get('Object.Update.Cancelled'))), /*#__PURE__*/React__default.createElement(Grid, {
19295
19268
  item: true
19296
- }, /*#__PURE__*/React__default.createElement(Button, _extends$5({
19269
+ }, /*#__PURE__*/React__default.createElement(Button, _extends$3({
19297
19270
  variant: "contained",
19298
19271
  onClick: retry
19299
19272
  }, props), translator.get('Retry'))));
@@ -20271,6 +20244,13 @@ const Cell = forwardRef((_ref6, ref) => {
20271
20244
  },
20272
20245
  setSnOptions,
20273
20246
  setSnPlugins,
20247
+ getImperativeHandle() {
20248
+ var _state$sn;
20249
+ if ((_state$sn = state.sn) !== null && _state$sn !== void 0 && _state$sn.component && typeof state.sn.component.getImperativeHandle === 'function') {
20250
+ return state.sn.component.getImperativeHandle();
20251
+ }
20252
+ return {};
20253
+ },
20274
20254
  async takeSnapshot() {
20275
20255
  const {
20276
20256
  width,
@@ -20502,21 +20482,34 @@ function viz() {
20502
20482
  let cellRef = null;
20503
20483
  let mountedReference = null;
20504
20484
  let onMount = null;
20485
+ let onRender = null;
20505
20486
  const mounted = new Promise(resolve => {
20506
20487
  onMount = resolve;
20507
20488
  });
20489
+ const rendered = new Promise(resolve => {
20490
+ onRender = resolve;
20491
+ });
20492
+ const createOnInitialRender = override => () => {
20493
+ override && override();
20494
+ onRender();
20495
+ };
20508
20496
  let initialSnOptions = {};
20509
20497
  let initialSnPlugins = [];
20510
20498
  const emitter = new EventEmitter$1();
20511
20499
  const setSnOptions = async opts => {
20500
+ const override = opts.onInitialRender;
20512
20501
  if (mountedReference) {
20513
20502
  (async () => {
20514
20503
  await mounted;
20515
- cellRef.current.setSnOptions(_objectSpread2(_objectSpread2({}, initialSnOptions), opts));
20504
+ cellRef.current.setSnOptions(_objectSpread2(_objectSpread2(_objectSpread2({}, initialSnOptions), opts), {
20505
+ onInitialRender: createOnInitialRender(override)
20506
+ }));
20516
20507
  })();
20517
20508
  } else {
20518
20509
  // Handle setting options before mount
20519
- initialSnOptions = _objectSpread2(_objectSpread2({}, initialSnOptions), opts);
20510
+ initialSnOptions = _objectSpread2(_objectSpread2(_objectSpread2({}, initialSnOptions), opts), {
20511
+ onInitialRender: createOnInitialRender(override)
20512
+ });
20520
20513
  }
20521
20514
  };
20522
20515
  const setSnPlugins = async plugins => {
@@ -20616,6 +20609,14 @@ function viz() {
20616
20609
  removeListener(eventName, listener) {
20617
20610
  emitter.removeListener(eventName, listener);
20618
20611
  },
20612
+ /**
20613
+ * Gets the specific api that a Viz exposes.
20614
+ * @returns {Promise<object>} object that contains the internal Viz api.
20615
+ */
20616
+ async getImperativeHandle() {
20617
+ await rendered;
20618
+ return cellRef.current.getImperativeHandle();
20619
+ },
20619
20620
  // ===== unexposed experimental API - use at own risk ======
20620
20621
  __DO_NOT_USE__: {
20621
20622
  mount(element) {
@@ -22625,15 +22626,11 @@ function useOptions() {
22625
22626
  }
22626
22627
 
22627
22628
  /**
22628
- * TODO before making public - expose getImperativeHandle on Viz
22629
- * Exposes an API to the external environment.
22630
- *
22631
22629
  * This is an empty object by default, but enables you to provide a custom API of your visualization to
22632
22630
  * make it possible to control after it has been rendered.
22633
22631
  *
22634
22632
  * You can only use this hook once, calling it more than once is considered an error.
22635
22633
  * @entry
22636
- * @private
22637
22634
  * @template T
22638
22635
  * @param {function():T} factory
22639
22636
  * @param {Array<any>=} deps