@cakemail-org/ui-components-v2 2.2.24 → 2.2.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -4286,12 +4286,10 @@ class Interpolator {
4286
4286
  clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;
4287
4287
  clonedOptions.applyPostProcessor = false;
4288
4288
  delete clonedOptions.defaultValue;
4289
- let doReduce = false;
4290
- if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {
4291
- const r = match[1].split(this.formatSeparator).map(elem => elem.trim());
4292
- match[1] = r.shift();
4293
- formatters = r;
4294
- doReduce = true;
4289
+ const keyEndIndex = /{.*}/.test(match[1]) ? match[1].lastIndexOf('}') + 1 : match[1].indexOf(this.formatSeparator);
4290
+ if (keyEndIndex !== -1) {
4291
+ formatters = match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem => elem.trim()).filter(Boolean);
4292
+ match[1] = match[1].slice(0, keyEndIndex);
4295
4293
  }
4296
4294
  value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);
4297
4295
  if (value && match[0] === str && !isString(value)) return value;
@@ -4300,7 +4298,7 @@ class Interpolator {
4300
4298
  this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);
4301
4299
  value = '';
4302
4300
  }
4303
- if (doReduce) {
4301
+ if (formatters.length) {
4304
4302
  value = formatters.reduce((v, f) => this.format(v, f, options.lng, {
4305
4303
  ...options,
4306
4304
  interpolationkey: match[1].trim()
@@ -4822,9 +4820,13 @@ class I18n extends EventEmitter {
4822
4820
  prepend: this.options.pluralSeparator,
4823
4821
  simplifyPluralSuffix: this.options.simplifyPluralSuffix
4824
4822
  });
4823
+ const usingLegacyFormatFunction = this.options.interpolation.format && this.options.interpolation.format !== defOpts.interpolation.format;
4824
+ if (usingLegacyFormatFunction) {
4825
+ this.logger.warn(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`);
4826
+ }
4825
4827
  if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {
4826
4828
  s.formatter = createClassOnDemand(formatter);
4827
- s.formatter.init(s, this.options);
4829
+ if (s.formatter.init) s.formatter.init(s, this.options);
4828
4830
  this.options.interpolation.format = s.formatter.format.bind(s.formatter);
4829
4831
  }
4830
4832
  s.interpolator = new Interpolator(this.options);
@@ -5139,8 +5141,16 @@ class I18n extends EventEmitter {
5139
5141
  dir(lng) {
5140
5142
  if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);
5141
5143
  if (!lng) return 'rtl';
5144
+ if (Intl.Locale) {
5145
+ const l = new Intl.Locale(lng);
5146
+ if (l && l.getTextInfo) {
5147
+ const ti = l.getTextInfo();
5148
+ if (ti && ti.direction) return ti.direction;
5149
+ }
5150
+ }
5142
5151
  const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];
5143
5152
  const languageUtils = this.services?.languageUtils || new LanguageUtil(get());
5153
+ if (lng.toLowerCase().indexOf('-latn') > 1) return 'ltr';
5144
5154
  return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';
5145
5155
  }
5146
5156
  static createInstance(options = {}, callback) {
@@ -14349,7 +14359,7 @@ var propTypesExports = propTypes.exports;
14349
14359
  var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
14350
14360
 
14351
14361
  /**
14352
- * @mui/styled-engine v7.1.1
14362
+ * @mui/styled-engine v7.2.0
14353
14363
  *
14354
14364
  * @license MIT
14355
14365
  * This source code is licensed under the MIT license found in the
@@ -15891,7 +15901,8 @@ function unstable_createStyleFunctionSx() {
15891
15901
  function styleFunctionSx(props) {
15892
15902
  const {
15893
15903
  sx,
15894
- theme = {}
15904
+ theme = {},
15905
+ nested
15895
15906
  } = props || {};
15896
15907
  if (!sx) {
15897
15908
  return null; // Emotion & styled-components will neglect null
@@ -15932,7 +15943,8 @@ function unstable_createStyleFunctionSx() {
15932
15943
  if (objectsHaveSameKeys(breakpointsValues, value)) {
15933
15944
  css[styleKey] = styleFunctionSx({
15934
15945
  sx: value,
15935
- theme
15946
+ theme,
15947
+ nested: true
15936
15948
  });
15937
15949
  } else {
15938
15950
  css = merge(css, breakpointsValues);
@@ -15943,6 +15955,11 @@ function unstable_createStyleFunctionSx() {
15943
15955
  }
15944
15956
  }
15945
15957
  });
15958
+ if (!nested && theme.modularCssLayers) {
15959
+ return {
15960
+ '@layer sx': sortContainerQueries(theme, removeUnusedBreakpoints(breakpointsKeys, css))
15961
+ };
15962
+ }
15946
15963
  return sortContainerQueries(theme, removeUnusedBreakpoints(breakpointsKeys, css));
15947
15964
  }
15948
15965
  return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);
@@ -16255,6 +16272,13 @@ const systemDefaultTheme = createTheme();
16255
16272
  function shouldForwardProp(prop) {
16256
16273
  return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';
16257
16274
  }
16275
+ function shallowLayer(serialized, layerName) {
16276
+ if (layerName && serialized && typeof serialized === 'object' && serialized.styles && !serialized.styles.startsWith('@layer') // only add the layer if it is not already there.
16277
+ ) {
16278
+ serialized.styles = `@layer ${layerName}{${String(serialized.styles)}}`;
16279
+ }
16280
+ return serialized;
16281
+ }
16258
16282
  function defaultOverridesResolver(slot) {
16259
16283
  if (!slot) {
16260
16284
  return null;
@@ -16264,7 +16288,7 @@ function defaultOverridesResolver(slot) {
16264
16288
  function attachTheme(props, themeId, defaultTheme) {
16265
16289
  props.theme = isObjectEmpty(props.theme) ? defaultTheme : props.theme[themeId] || props.theme;
16266
16290
  }
16267
- function processStyle(props, style) {
16291
+ function processStyle(props, style, layerName) {
16268
16292
  /*
16269
16293
  * Style types:
16270
16294
  * - null/undefined
@@ -16276,27 +16300,27 @@ function processStyle(props, style) {
16276
16300
 
16277
16301
  const resolvedStyle = typeof style === 'function' ? style(props) : style;
16278
16302
  if (Array.isArray(resolvedStyle)) {
16279
- return resolvedStyle.flatMap(subStyle => processStyle(props, subStyle));
16303
+ return resolvedStyle.flatMap(subStyle => processStyle(props, subStyle, layerName));
16280
16304
  }
16281
16305
  if (Array.isArray(resolvedStyle?.variants)) {
16282
16306
  let rootStyle;
16283
16307
  if (resolvedStyle.isProcessed) {
16284
- rootStyle = resolvedStyle.style;
16308
+ rootStyle = layerName ? shallowLayer(resolvedStyle.style, layerName) : resolvedStyle.style;
16285
16309
  } else {
16286
16310
  const {
16287
16311
  variants,
16288
16312
  ...otherStyles
16289
16313
  } = resolvedStyle;
16290
- rootStyle = otherStyles;
16314
+ rootStyle = layerName ? shallowLayer(internal_serializeStyles(otherStyles), layerName) : otherStyles;
16291
16315
  }
16292
- return processStyleVariants(props, resolvedStyle.variants, [rootStyle]);
16316
+ return processStyleVariants(props, resolvedStyle.variants, [rootStyle], layerName);
16293
16317
  }
16294
16318
  if (resolvedStyle?.isProcessed) {
16295
- return resolvedStyle.style;
16319
+ return layerName ? shallowLayer(internal_serializeStyles(resolvedStyle.style), layerName) : resolvedStyle.style;
16296
16320
  }
16297
- return resolvedStyle;
16321
+ return layerName ? shallowLayer(internal_serializeStyles(resolvedStyle), layerName) : resolvedStyle;
16298
16322
  }
16299
- function processStyleVariants(props, variants, results = []) {
16323
+ function processStyleVariants(props, variants, results = [], layerName = undefined) {
16300
16324
  let mergedState; // We might not need it, initialized lazily
16301
16325
 
16302
16326
  variantLoop: for (let i = 0; i < variants.length; i += 1) {
@@ -16323,9 +16347,9 @@ function processStyleVariants(props, variants, results = []) {
16323
16347
  ...props.ownerState,
16324
16348
  ownerState: props.ownerState
16325
16349
  };
16326
- results.push(variant.style(mergedState));
16350
+ results.push(layerName ? shallowLayer(internal_serializeStyles(variant.style(mergedState)), layerName) : variant.style(mergedState));
16327
16351
  } else {
16328
- results.push(variant.style);
16352
+ results.push(layerName ? shallowLayer(internal_serializeStyles(variant.style), layerName) : variant.style);
16329
16353
  }
16330
16354
  }
16331
16355
  return results;
@@ -16354,6 +16378,7 @@ function createStyled(input = {}) {
16354
16378
  overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot)),
16355
16379
  ...options
16356
16380
  } = inputOptions;
16381
+ const layerName = componentName && componentName.startsWith('Mui') || !!componentSlot ? 'components' : 'custom';
16357
16382
 
16358
16383
  // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.
16359
16384
  const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :
@@ -16390,16 +16415,16 @@ function createStyled(input = {}) {
16390
16415
  }
16391
16416
  if (typeof style === 'function') {
16392
16417
  return function styleFunctionProcessor(props) {
16393
- return processStyle(props, style);
16418
+ return processStyle(props, style, props.theme.modularCssLayers ? layerName : undefined);
16394
16419
  };
16395
16420
  }
16396
16421
  if (isPlainObject(style)) {
16397
16422
  const serialized = preprocessStyles(style);
16398
- if (!serialized.variants) {
16399
- return serialized.style;
16400
- }
16401
16423
  return function styleObjectProcessor(props) {
16402
- return processStyle(props, serialized);
16424
+ if (!serialized.variants) {
16425
+ return props.theme.modularCssLayers ? shallowLayer(serialized.style, layerName) : serialized.style;
16426
+ }
16427
+ return processStyle(props, serialized, props.theme.modularCssLayers ? layerName : undefined);
16403
16428
  };
16404
16429
  }
16405
16430
  return style;
@@ -16424,7 +16449,7 @@ function createStyled(input = {}) {
16424
16449
  // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly
16425
16450
  // eslint-disable-next-line guard-for-in
16426
16451
  for (const slotKey in styleOverrides) {
16427
- resolvedStyleOverrides[slotKey] = processStyle(props, styleOverrides[slotKey]);
16452
+ resolvedStyleOverrides[slotKey] = processStyle(props, styleOverrides[slotKey], props.theme.modularCssLayers ? 'theme' : undefined);
16428
16453
  }
16429
16454
  return overridesResolver(props, resolvedStyleOverrides);
16430
16455
  });
@@ -16436,7 +16461,7 @@ function createStyled(input = {}) {
16436
16461
  if (!themeVariants) {
16437
16462
  return null;
16438
16463
  }
16439
- return processStyleVariants(props, themeVariants);
16464
+ return processStyleVariants(props, themeVariants, [], props.theme.modularCssLayers ? 'theme' : undefined);
16440
16465
  });
16441
16466
  }
16442
16467
  if (!skipSx) {
@@ -16525,9 +16550,12 @@ const styled = createStyled();
16525
16550
  * Add keys, values of `defaultProps` that does not exist in `props`
16526
16551
  * @param defaultProps
16527
16552
  * @param props
16553
+ * @param mergeClassNameAndStyle If `true`, merges `className` and `style` props instead of overriding them.
16554
+ * When `false` (default), props override defaultProps. When `true`, `className` values are concatenated
16555
+ * and `style` objects are merged with props taking precedence.
16528
16556
  * @returns resolved props
16529
16557
  */
16530
- function resolveProps(defaultProps, props) {
16558
+ function resolveProps(defaultProps, props, mergeClassNameAndStyle = false) {
16531
16559
  const output = {
16532
16560
  ...props
16533
16561
  };
@@ -16553,10 +16581,17 @@ function resolveProps(defaultProps, props) {
16553
16581
  for (const slotKey in defaultSlotProps) {
16554
16582
  if (Object.prototype.hasOwnProperty.call(defaultSlotProps, slotKey)) {
16555
16583
  const slotPropName = slotKey;
16556
- output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);
16584
+ output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName], mergeClassNameAndStyle);
16557
16585
  }
16558
16586
  }
16559
16587
  }
16588
+ } else if (propName === 'className' && mergeClassNameAndStyle && props.className) {
16589
+ output.className = clsx(defaultProps?.className, props?.className);
16590
+ } else if (propName === 'style' && mergeClassNameAndStyle && props.style) {
16591
+ output.style = {
16592
+ ...defaultProps?.style,
16593
+ ...props?.style
16594
+ };
16560
16595
  } else if (output[propName] === undefined) {
16561
16596
  output[propName] = defaultProps[propName];
16562
16597
  }
@@ -16943,8 +16978,8 @@ function ResourceEdit(_a) {
16943
16978
  editable && React.createElement(material.Box, null,
16944
16979
  React.createElement(Button, { color: "body1", variant: 'text', iconOnly: true, onClick: handleToggleOpen },
16945
16980
  React.createElement(Icon, { name: "Chevron18", sx: { transform: open ? "rotate(-180deg)" : "rotate(0deg)" } })))),
16946
- !!editableContent && React.createElement(material.Box, { className: "resource-content ".concat(open ? "open" : "hidden") }, editableContent),
16947
- !!support && React.createElement(material.Box, { className: "resource-support ".concat(!open ? "open" : "hidden") }, support));
16981
+ React.createElement(material.Box, { className: "resource-content ".concat(open ? "open" : "hidden") }, !!editableContent && editableContent),
16982
+ React.createElement(material.Box, { className: "resource-support ".concat(!open ? "open" : "hidden") }, !!support && support));
16948
16983
  }
16949
16984
 
16950
16985
  var css_248z$2 = ".sideMenu-component-v2 {\n z-index: 8000;\n width: -moz-fit-content;\n width: fit-content;\n}\n.sideMenu-component-v2 .sideMenu-spacer {\n display: none;\n}\n.sideMenu-component-v2.minified:hover .sideMenu-spacer {\n display: block;\n}\n.sideMenu-component-v2 .sideMenu-wrapper {\n z-index: 8000;\n display: flex;\n height: 100%;\n flex-direction: column;\n width: 20rem;\n min-width: 20rem;\n max-width: 20rem;\n padding: 1rem;\n background: var(--shade100, #F3F2F2);\n position: relative;\n box-sizing: border-box;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar {\n display: block;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar-track:horizontal {\n position: absolute;\n bottom: -20px;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar-track:vertical {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 8px !important;\n border-top-right-radius: 8px !important;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar-track {\n height: 2.5rem;\n width: 2.5rem;\n padding: 2rem;\n background-clip: content-box;\n border-bottom-left-radius: 8px;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar-thumb {\n background: var(--body-font-color-2, var(--silver, #9B9B9B));\n border-radius: 24px;\n border-top: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-bottom: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-right: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-left: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:hover {\n box-shadow: 0px 0px 32px 0px rgba(0, 0, 0, 0.15);\n position: absolute !important;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) {\n gap: 1rem;\n max-width: 73px;\n min-width: 73px;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuHeader {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .subNav-component-v2 button {\n padding: 0.75rem;\n margin-right: 0;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .subNav-component-v2 button:not(.selected) {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuContainer-component-v2 .menuItemRow .sideMenuItem-component-v2.subItem,\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuContainer-component-v2 .menuItemRow .sideMenuItem-component-v2 .chevron {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuContainer-component-v2 .menuItemRow .sideMenuItem-component-v2 a {\n justify-content: center;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuContainer-component-v2 .menuItemRow .sideMenuItem-component-v2 a .MuiStack-root {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .footer > .avatar-component-v2 {\n display: block;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .footer button {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .sideMenuHeader {\n margin-bottom: 1.5rem;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .sideMenuHeader .minifyIcon {\n cursor: pointer;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .search-component-v2 {\n margin-top: 1.5rem;\n position: relative;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .search-component-v2 .inputContainer {\n padding: 0.75rem 1rem;\n box-shadow: unset;\n border-radius: 8px;\n border: 1px solid var(--shade200, #DBDADA);\n}\n.sideMenu-component-v2 .sideMenu-wrapper .search-component-v2:after {\n position: absolute;\n left: 0;\n bottom: -1.5rem;\n content: \"\";\n display: block;\n width: 100%;\n height: 1.5rem;\n background: linear-gradient(var(--shade100, #F3F2F2) 0%, transparent 100%);\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 {\n width: 100%;\n position: relative;\n justify-content: space-between;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2:after {\n position: absolute;\n left: 0;\n bottom: -1.5rem;\n content: \"\";\n display: block;\n width: 100%;\n height: 1.5rem;\n background: linear-gradient(var(--shade100, #F3F2F2) 0%, transparent 100%);\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button {\n flex: 1;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) {\n background: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) svg path:not(.noFill),\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) svg rect:not(.noFill) {\n fill: var(--secondary-brand-color, var(--teal, #0ABDAE));\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) svg path.noFill,\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) svg rect.noFill {\n stroke: var(--secondary-brand-color, var(--teal, #0ABDAE));\n}\n.sideMenu-component-v2 .sideMenu-wrapper .sideMenuContainer-component-v2 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .footer {\n position: relative;\n justify-self: flex-end;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .footer:before {\n position: absolute;\n left: 0;\n top: -1.5rem;\n content: \"\";\n display: block;\n width: 100%;\n height: 1.5rem;\n background: linear-gradient(transparent 0, var(--shade100, #F3F2F2) 100%);\n}\n.sideMenu-component-v2 .sideMenu-wrapper .footer > .avatar-component-v2 {\n display: none;\n}\n\n.sideMenuContainer-component-v2 {\n flex: 1;\n overflow-y: auto;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow.withSubItems.openedSubMenu .sideMenuItem-component-v2:nth-child(2) {\n margin-top: calc(0.5rem - 1px);\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow.withSubItems.openedSubMenu .sideMenuItem-component-v2:last-child {\n margin-bottom: calc(0.5rem - 1px);\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow.subSection {\n margin-top: 1rem;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow:first-child {\n margin-top: 0;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.subItem {\n margin-left: 2.75rem;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.subItem a,\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.subItem span {\n font-size: 0.875rem;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.rotate .chevron {\n rotate: 180deg;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.hasLocationSelected:hover a {\n cursor: default;\n background: unset !important;\n}\n\n.sideMenuItem-component-v2 {\n box-sizing: border-box;\n}\n.sideMenuItem-component-v2:hover a, .sideMenuItem-component-v2.selected a {\n background: var(--shade200, #DBDADA);\n}\n.sideMenuItem-component-v2.hasSubItemSelected > .MuiTypography-root .chevron {\n rotate: -90deg;\n}\n.sideMenuItem-component-v2 .avatar-component-v2 .MuiAvatar-root {\n border-color: var(--shade200, #DBDADA);\n background: var(--white, #FFFFFF);\n}\n.sideMenuItem-component-v2 .chevron {\n margin-left: 1rem;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.sideMenuItem-component-v2 a {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.75rem;\n border-radius: 8px;\n text-decoration: none !important;\n gap: 1rem;\n}\n.sideMenuItem-component-v2 a > .MuiStack-root {\n flex: 1;\n}\n.sideMenuItem-component-v2 a img {\n max-width: 80px;\n}\n.sideMenuItem-component-v2.soloItem a {\n border-radius: 16px;\n padding: 1.5rem;\n border: 1px solid var(--shade200, #DBDADA);\n}\n.sideMenuItem-component-v2.soloItem a:hover {\n border-color: var(--wild-sand, #dddddd);\n}\n.sideMenuItem-component-v2.soloItem .chevron {\n rotate: -90deg;\n}\n.sideMenuItem-component-v2.subSection {\n padding: 0.5rem 0.75rem 0.5rem 0.75rem;\n}";
@@ -18484,6 +18519,7 @@ var ListPopupModel = /** @class */ (function () {
18484
18519
  this.thumbnail_url = params.thumbnail_url;
18485
18520
  this.overlay = params.overlay;
18486
18521
  this.closeButton = params.closeButton;
18522
+ this.published_url = params.published_url;
18487
18523
  }
18488
18524
  ListPopupModel.prototype.toJson = function () {
18489
18525
  return modelToJson(this);
@@ -21,6 +21,7 @@ export declare class ListPopupModel {
21
21
  thumbnail_url: string;
22
22
  overlay: TPopupOverlay;
23
23
  closeButton: TPopupButton;
24
+ published_url: string | null;
24
25
  constructor(params: TPopupModel);
25
26
  toJson(): any;
26
27
  set<T extends keyof this>(property: T, value: this[T]): void;
@@ -19,6 +19,7 @@ export type TPopupModel = {
19
19
  thumbnail_url: string;
20
20
  overlay: TPopupOverlay;
21
21
  closeButton: TPopupButton;
22
+ published_url: string | null;
22
23
  };
23
24
  export type TPopupUser = {
24
25
  id: string;
package/dist/esm/index.js CHANGED
@@ -4266,12 +4266,10 @@ class Interpolator {
4266
4266
  clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;
4267
4267
  clonedOptions.applyPostProcessor = false;
4268
4268
  delete clonedOptions.defaultValue;
4269
- let doReduce = false;
4270
- if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {
4271
- const r = match[1].split(this.formatSeparator).map(elem => elem.trim());
4272
- match[1] = r.shift();
4273
- formatters = r;
4274
- doReduce = true;
4269
+ const keyEndIndex = /{.*}/.test(match[1]) ? match[1].lastIndexOf('}') + 1 : match[1].indexOf(this.formatSeparator);
4270
+ if (keyEndIndex !== -1) {
4271
+ formatters = match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem => elem.trim()).filter(Boolean);
4272
+ match[1] = match[1].slice(0, keyEndIndex);
4275
4273
  }
4276
4274
  value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);
4277
4275
  if (value && match[0] === str && !isString(value)) return value;
@@ -4280,7 +4278,7 @@ class Interpolator {
4280
4278
  this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);
4281
4279
  value = '';
4282
4280
  }
4283
- if (doReduce) {
4281
+ if (formatters.length) {
4284
4282
  value = formatters.reduce((v, f) => this.format(v, f, options.lng, {
4285
4283
  ...options,
4286
4284
  interpolationkey: match[1].trim()
@@ -4802,9 +4800,13 @@ class I18n extends EventEmitter {
4802
4800
  prepend: this.options.pluralSeparator,
4803
4801
  simplifyPluralSuffix: this.options.simplifyPluralSuffix
4804
4802
  });
4803
+ const usingLegacyFormatFunction = this.options.interpolation.format && this.options.interpolation.format !== defOpts.interpolation.format;
4804
+ if (usingLegacyFormatFunction) {
4805
+ this.logger.warn(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`);
4806
+ }
4805
4807
  if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {
4806
4808
  s.formatter = createClassOnDemand(formatter);
4807
- s.formatter.init(s, this.options);
4809
+ if (s.formatter.init) s.formatter.init(s, this.options);
4808
4810
  this.options.interpolation.format = s.formatter.format.bind(s.formatter);
4809
4811
  }
4810
4812
  s.interpolator = new Interpolator(this.options);
@@ -5119,8 +5121,16 @@ class I18n extends EventEmitter {
5119
5121
  dir(lng) {
5120
5122
  if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);
5121
5123
  if (!lng) return 'rtl';
5124
+ if (Intl.Locale) {
5125
+ const l = new Intl.Locale(lng);
5126
+ if (l && l.getTextInfo) {
5127
+ const ti = l.getTextInfo();
5128
+ if (ti && ti.direction) return ti.direction;
5129
+ }
5130
+ }
5122
5131
  const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];
5123
5132
  const languageUtils = this.services?.languageUtils || new LanguageUtil(get());
5133
+ if (lng.toLowerCase().indexOf('-latn') > 1) return 'ltr';
5124
5134
  return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';
5125
5135
  }
5126
5136
  static createInstance(options = {}, callback) {
@@ -14329,7 +14339,7 @@ var propTypesExports = propTypes.exports;
14329
14339
  var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
14330
14340
 
14331
14341
  /**
14332
- * @mui/styled-engine v7.1.1
14342
+ * @mui/styled-engine v7.2.0
14333
14343
  *
14334
14344
  * @license MIT
14335
14345
  * This source code is licensed under the MIT license found in the
@@ -15871,7 +15881,8 @@ function unstable_createStyleFunctionSx() {
15871
15881
  function styleFunctionSx(props) {
15872
15882
  const {
15873
15883
  sx,
15874
- theme = {}
15884
+ theme = {},
15885
+ nested
15875
15886
  } = props || {};
15876
15887
  if (!sx) {
15877
15888
  return null; // Emotion & styled-components will neglect null
@@ -15912,7 +15923,8 @@ function unstable_createStyleFunctionSx() {
15912
15923
  if (objectsHaveSameKeys(breakpointsValues, value)) {
15913
15924
  css[styleKey] = styleFunctionSx({
15914
15925
  sx: value,
15915
- theme
15926
+ theme,
15927
+ nested: true
15916
15928
  });
15917
15929
  } else {
15918
15930
  css = merge(css, breakpointsValues);
@@ -15923,6 +15935,11 @@ function unstable_createStyleFunctionSx() {
15923
15935
  }
15924
15936
  }
15925
15937
  });
15938
+ if (!nested && theme.modularCssLayers) {
15939
+ return {
15940
+ '@layer sx': sortContainerQueries(theme, removeUnusedBreakpoints(breakpointsKeys, css))
15941
+ };
15942
+ }
15926
15943
  return sortContainerQueries(theme, removeUnusedBreakpoints(breakpointsKeys, css));
15927
15944
  }
15928
15945
  return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);
@@ -16235,6 +16252,13 @@ const systemDefaultTheme = createTheme();
16235
16252
  function shouldForwardProp(prop) {
16236
16253
  return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';
16237
16254
  }
16255
+ function shallowLayer(serialized, layerName) {
16256
+ if (layerName && serialized && typeof serialized === 'object' && serialized.styles && !serialized.styles.startsWith('@layer') // only add the layer if it is not already there.
16257
+ ) {
16258
+ serialized.styles = `@layer ${layerName}{${String(serialized.styles)}}`;
16259
+ }
16260
+ return serialized;
16261
+ }
16238
16262
  function defaultOverridesResolver(slot) {
16239
16263
  if (!slot) {
16240
16264
  return null;
@@ -16244,7 +16268,7 @@ function defaultOverridesResolver(slot) {
16244
16268
  function attachTheme(props, themeId, defaultTheme) {
16245
16269
  props.theme = isObjectEmpty(props.theme) ? defaultTheme : props.theme[themeId] || props.theme;
16246
16270
  }
16247
- function processStyle(props, style) {
16271
+ function processStyle(props, style, layerName) {
16248
16272
  /*
16249
16273
  * Style types:
16250
16274
  * - null/undefined
@@ -16256,27 +16280,27 @@ function processStyle(props, style) {
16256
16280
 
16257
16281
  const resolvedStyle = typeof style === 'function' ? style(props) : style;
16258
16282
  if (Array.isArray(resolvedStyle)) {
16259
- return resolvedStyle.flatMap(subStyle => processStyle(props, subStyle));
16283
+ return resolvedStyle.flatMap(subStyle => processStyle(props, subStyle, layerName));
16260
16284
  }
16261
16285
  if (Array.isArray(resolvedStyle?.variants)) {
16262
16286
  let rootStyle;
16263
16287
  if (resolvedStyle.isProcessed) {
16264
- rootStyle = resolvedStyle.style;
16288
+ rootStyle = layerName ? shallowLayer(resolvedStyle.style, layerName) : resolvedStyle.style;
16265
16289
  } else {
16266
16290
  const {
16267
16291
  variants,
16268
16292
  ...otherStyles
16269
16293
  } = resolvedStyle;
16270
- rootStyle = otherStyles;
16294
+ rootStyle = layerName ? shallowLayer(internal_serializeStyles(otherStyles), layerName) : otherStyles;
16271
16295
  }
16272
- return processStyleVariants(props, resolvedStyle.variants, [rootStyle]);
16296
+ return processStyleVariants(props, resolvedStyle.variants, [rootStyle], layerName);
16273
16297
  }
16274
16298
  if (resolvedStyle?.isProcessed) {
16275
- return resolvedStyle.style;
16299
+ return layerName ? shallowLayer(internal_serializeStyles(resolvedStyle.style), layerName) : resolvedStyle.style;
16276
16300
  }
16277
- return resolvedStyle;
16301
+ return layerName ? shallowLayer(internal_serializeStyles(resolvedStyle), layerName) : resolvedStyle;
16278
16302
  }
16279
- function processStyleVariants(props, variants, results = []) {
16303
+ function processStyleVariants(props, variants, results = [], layerName = undefined) {
16280
16304
  let mergedState; // We might not need it, initialized lazily
16281
16305
 
16282
16306
  variantLoop: for (let i = 0; i < variants.length; i += 1) {
@@ -16303,9 +16327,9 @@ function processStyleVariants(props, variants, results = []) {
16303
16327
  ...props.ownerState,
16304
16328
  ownerState: props.ownerState
16305
16329
  };
16306
- results.push(variant.style(mergedState));
16330
+ results.push(layerName ? shallowLayer(internal_serializeStyles(variant.style(mergedState)), layerName) : variant.style(mergedState));
16307
16331
  } else {
16308
- results.push(variant.style);
16332
+ results.push(layerName ? shallowLayer(internal_serializeStyles(variant.style), layerName) : variant.style);
16309
16333
  }
16310
16334
  }
16311
16335
  return results;
@@ -16334,6 +16358,7 @@ function createStyled(input = {}) {
16334
16358
  overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot)),
16335
16359
  ...options
16336
16360
  } = inputOptions;
16361
+ const layerName = componentName && componentName.startsWith('Mui') || !!componentSlot ? 'components' : 'custom';
16337
16362
 
16338
16363
  // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.
16339
16364
  const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :
@@ -16370,16 +16395,16 @@ function createStyled(input = {}) {
16370
16395
  }
16371
16396
  if (typeof style === 'function') {
16372
16397
  return function styleFunctionProcessor(props) {
16373
- return processStyle(props, style);
16398
+ return processStyle(props, style, props.theme.modularCssLayers ? layerName : undefined);
16374
16399
  };
16375
16400
  }
16376
16401
  if (isPlainObject(style)) {
16377
16402
  const serialized = preprocessStyles(style);
16378
- if (!serialized.variants) {
16379
- return serialized.style;
16380
- }
16381
16403
  return function styleObjectProcessor(props) {
16382
- return processStyle(props, serialized);
16404
+ if (!serialized.variants) {
16405
+ return props.theme.modularCssLayers ? shallowLayer(serialized.style, layerName) : serialized.style;
16406
+ }
16407
+ return processStyle(props, serialized, props.theme.modularCssLayers ? layerName : undefined);
16383
16408
  };
16384
16409
  }
16385
16410
  return style;
@@ -16404,7 +16429,7 @@ function createStyled(input = {}) {
16404
16429
  // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly
16405
16430
  // eslint-disable-next-line guard-for-in
16406
16431
  for (const slotKey in styleOverrides) {
16407
- resolvedStyleOverrides[slotKey] = processStyle(props, styleOverrides[slotKey]);
16432
+ resolvedStyleOverrides[slotKey] = processStyle(props, styleOverrides[slotKey], props.theme.modularCssLayers ? 'theme' : undefined);
16408
16433
  }
16409
16434
  return overridesResolver(props, resolvedStyleOverrides);
16410
16435
  });
@@ -16416,7 +16441,7 @@ function createStyled(input = {}) {
16416
16441
  if (!themeVariants) {
16417
16442
  return null;
16418
16443
  }
16419
- return processStyleVariants(props, themeVariants);
16444
+ return processStyleVariants(props, themeVariants, [], props.theme.modularCssLayers ? 'theme' : undefined);
16420
16445
  });
16421
16446
  }
16422
16447
  if (!skipSx) {
@@ -16505,9 +16530,12 @@ const styled = createStyled();
16505
16530
  * Add keys, values of `defaultProps` that does not exist in `props`
16506
16531
  * @param defaultProps
16507
16532
  * @param props
16533
+ * @param mergeClassNameAndStyle If `true`, merges `className` and `style` props instead of overriding them.
16534
+ * When `false` (default), props override defaultProps. When `true`, `className` values are concatenated
16535
+ * and `style` objects are merged with props taking precedence.
16508
16536
  * @returns resolved props
16509
16537
  */
16510
- function resolveProps(defaultProps, props) {
16538
+ function resolveProps(defaultProps, props, mergeClassNameAndStyle = false) {
16511
16539
  const output = {
16512
16540
  ...props
16513
16541
  };
@@ -16533,10 +16561,17 @@ function resolveProps(defaultProps, props) {
16533
16561
  for (const slotKey in defaultSlotProps) {
16534
16562
  if (Object.prototype.hasOwnProperty.call(defaultSlotProps, slotKey)) {
16535
16563
  const slotPropName = slotKey;
16536
- output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);
16564
+ output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName], mergeClassNameAndStyle);
16537
16565
  }
16538
16566
  }
16539
16567
  }
16568
+ } else if (propName === 'className' && mergeClassNameAndStyle && props.className) {
16569
+ output.className = clsx(defaultProps?.className, props?.className);
16570
+ } else if (propName === 'style' && mergeClassNameAndStyle && props.style) {
16571
+ output.style = {
16572
+ ...defaultProps?.style,
16573
+ ...props?.style
16574
+ };
16540
16575
  } else if (output[propName] === undefined) {
16541
16576
  output[propName] = defaultProps[propName];
16542
16577
  }
@@ -16923,8 +16958,8 @@ function ResourceEdit(_a) {
16923
16958
  editable && React__default.createElement(Box, null,
16924
16959
  React__default.createElement(Button, { color: "body1", variant: 'text', iconOnly: true, onClick: handleToggleOpen },
16925
16960
  React__default.createElement(Icon, { name: "Chevron18", sx: { transform: open ? "rotate(-180deg)" : "rotate(0deg)" } })))),
16926
- !!editableContent && React__default.createElement(Box, { className: "resource-content ".concat(open ? "open" : "hidden") }, editableContent),
16927
- !!support && React__default.createElement(Box, { className: "resource-support ".concat(!open ? "open" : "hidden") }, support));
16961
+ React__default.createElement(Box, { className: "resource-content ".concat(open ? "open" : "hidden") }, !!editableContent && editableContent),
16962
+ React__default.createElement(Box, { className: "resource-support ".concat(!open ? "open" : "hidden") }, !!support && support));
16928
16963
  }
16929
16964
 
16930
16965
  var css_248z$2 = ".sideMenu-component-v2 {\n z-index: 8000;\n width: -moz-fit-content;\n width: fit-content;\n}\n.sideMenu-component-v2 .sideMenu-spacer {\n display: none;\n}\n.sideMenu-component-v2.minified:hover .sideMenu-spacer {\n display: block;\n}\n.sideMenu-component-v2 .sideMenu-wrapper {\n z-index: 8000;\n display: flex;\n height: 100%;\n flex-direction: column;\n width: 20rem;\n min-width: 20rem;\n max-width: 20rem;\n padding: 1rem;\n background: var(--shade100, #F3F2F2);\n position: relative;\n box-sizing: border-box;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar {\n display: block;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar-track:horizontal {\n position: absolute;\n bottom: -20px;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar-track:vertical {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 8px !important;\n border-top-right-radius: 8px !important;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar-track {\n height: 2.5rem;\n width: 2.5rem;\n padding: 2rem;\n background-clip: content-box;\n border-bottom-left-radius: 8px;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar-thumb {\n background: var(--body-font-color-2, var(--silver, #9B9B9B));\n border-radius: 24px;\n border-top: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-bottom: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-right: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-left: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:hover {\n box-shadow: 0px 0px 32px 0px rgba(0, 0, 0, 0.15);\n position: absolute !important;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) {\n gap: 1rem;\n max-width: 73px;\n min-width: 73px;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuHeader {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .subNav-component-v2 button {\n padding: 0.75rem;\n margin-right: 0;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .subNav-component-v2 button:not(.selected) {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuContainer-component-v2 .menuItemRow .sideMenuItem-component-v2.subItem,\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuContainer-component-v2 .menuItemRow .sideMenuItem-component-v2 .chevron {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuContainer-component-v2 .menuItemRow .sideMenuItem-component-v2 a {\n justify-content: center;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuContainer-component-v2 .menuItemRow .sideMenuItem-component-v2 a .MuiStack-root {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .footer > .avatar-component-v2 {\n display: block;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .footer button {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .sideMenuHeader {\n margin-bottom: 1.5rem;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .sideMenuHeader .minifyIcon {\n cursor: pointer;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .search-component-v2 {\n margin-top: 1.5rem;\n position: relative;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .search-component-v2 .inputContainer {\n padding: 0.75rem 1rem;\n box-shadow: unset;\n border-radius: 8px;\n border: 1px solid var(--shade200, #DBDADA);\n}\n.sideMenu-component-v2 .sideMenu-wrapper .search-component-v2:after {\n position: absolute;\n left: 0;\n bottom: -1.5rem;\n content: \"\";\n display: block;\n width: 100%;\n height: 1.5rem;\n background: linear-gradient(var(--shade100, #F3F2F2) 0%, transparent 100%);\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 {\n width: 100%;\n position: relative;\n justify-content: space-between;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2:after {\n position: absolute;\n left: 0;\n bottom: -1.5rem;\n content: \"\";\n display: block;\n width: 100%;\n height: 1.5rem;\n background: linear-gradient(var(--shade100, #F3F2F2) 0%, transparent 100%);\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button {\n flex: 1;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) {\n background: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) svg path:not(.noFill),\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) svg rect:not(.noFill) {\n fill: var(--secondary-brand-color, var(--teal, #0ABDAE));\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) svg path.noFill,\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) svg rect.noFill {\n stroke: var(--secondary-brand-color, var(--teal, #0ABDAE));\n}\n.sideMenu-component-v2 .sideMenu-wrapper .sideMenuContainer-component-v2 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .footer {\n position: relative;\n justify-self: flex-end;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .footer:before {\n position: absolute;\n left: 0;\n top: -1.5rem;\n content: \"\";\n display: block;\n width: 100%;\n height: 1.5rem;\n background: linear-gradient(transparent 0, var(--shade100, #F3F2F2) 100%);\n}\n.sideMenu-component-v2 .sideMenu-wrapper .footer > .avatar-component-v2 {\n display: none;\n}\n\n.sideMenuContainer-component-v2 {\n flex: 1;\n overflow-y: auto;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow.withSubItems.openedSubMenu .sideMenuItem-component-v2:nth-child(2) {\n margin-top: calc(0.5rem - 1px);\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow.withSubItems.openedSubMenu .sideMenuItem-component-v2:last-child {\n margin-bottom: calc(0.5rem - 1px);\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow.subSection {\n margin-top: 1rem;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow:first-child {\n margin-top: 0;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.subItem {\n margin-left: 2.75rem;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.subItem a,\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.subItem span {\n font-size: 0.875rem;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.rotate .chevron {\n rotate: 180deg;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.hasLocationSelected:hover a {\n cursor: default;\n background: unset !important;\n}\n\n.sideMenuItem-component-v2 {\n box-sizing: border-box;\n}\n.sideMenuItem-component-v2:hover a, .sideMenuItem-component-v2.selected a {\n background: var(--shade200, #DBDADA);\n}\n.sideMenuItem-component-v2.hasSubItemSelected > .MuiTypography-root .chevron {\n rotate: -90deg;\n}\n.sideMenuItem-component-v2 .avatar-component-v2 .MuiAvatar-root {\n border-color: var(--shade200, #DBDADA);\n background: var(--white, #FFFFFF);\n}\n.sideMenuItem-component-v2 .chevron {\n margin-left: 1rem;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.sideMenuItem-component-v2 a {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.75rem;\n border-radius: 8px;\n text-decoration: none !important;\n gap: 1rem;\n}\n.sideMenuItem-component-v2 a > .MuiStack-root {\n flex: 1;\n}\n.sideMenuItem-component-v2 a img {\n max-width: 80px;\n}\n.sideMenuItem-component-v2.soloItem a {\n border-radius: 16px;\n padding: 1.5rem;\n border: 1px solid var(--shade200, #DBDADA);\n}\n.sideMenuItem-component-v2.soloItem a:hover {\n border-color: var(--wild-sand, #dddddd);\n}\n.sideMenuItem-component-v2.soloItem .chevron {\n rotate: -90deg;\n}\n.sideMenuItem-component-v2.subSection {\n padding: 0.5rem 0.75rem 0.5rem 0.75rem;\n}";
@@ -18464,6 +18499,7 @@ var ListPopupModel = /** @class */ (function () {
18464
18499
  this.thumbnail_url = params.thumbnail_url;
18465
18500
  this.overlay = params.overlay;
18466
18501
  this.closeButton = params.closeButton;
18502
+ this.published_url = params.published_url;
18467
18503
  }
18468
18504
  ListPopupModel.prototype.toJson = function () {
18469
18505
  return modelToJson(this);
@@ -21,6 +21,7 @@ export declare class ListPopupModel {
21
21
  thumbnail_url: string;
22
22
  overlay: TPopupOverlay;
23
23
  closeButton: TPopupButton;
24
+ published_url: string | null;
24
25
  constructor(params: TPopupModel);
25
26
  toJson(): any;
26
27
  set<T extends keyof this>(property: T, value: this[T]): void;
@@ -19,6 +19,7 @@ export type TPopupModel = {
19
19
  thumbnail_url: string;
20
20
  overlay: TPopupOverlay;
21
21
  closeButton: TPopupButton;
22
+ published_url: string | null;
22
23
  };
23
24
  export type TPopupUser = {
24
25
  id: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cakemail-org/ui-components-v2",
3
- "version": "2.2.24",
3
+ "version": "2.2.26",
4
4
  "description": "ui library kit made with material UI",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",