@skbkontur/react-ui 4.9.0 → 4.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +14 -11
  3. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  4. package/cjs/components/ScrollContainer/ScrollBar.d.ts +4 -0
  5. package/cjs/components/ScrollContainer/ScrollBar.js +24 -6
  6. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  7. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +10 -0
  8. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +4 -0
  9. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
  10. package/cjs/components/ScrollContainer/ScrollContainer.js +16 -1
  11. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  12. package/cjs/components/ScrollContainer/ScrollContainer.md +29 -0
  13. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +4 -0
  14. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +23 -25
  15. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  16. package/cjs/components/Switcher/Switcher.d.ts +2 -1
  17. package/cjs/components/Switcher/Switcher.js +35 -26
  18. package/cjs/components/Switcher/Switcher.js.map +1 -1
  19. package/cjs/components/Switcher/helpers.d.ts +1 -0
  20. package/cjs/components/Switcher/helpers.js +1 -0
  21. package/cjs/components/Switcher/helpers.js.map +1 -0
  22. package/cjs/internal/icons/16px/index.js +2 -1
  23. package/cjs/internal/icons/16px/index.js.map +1 -1
  24. package/cjs/internal/icons/20px/svg.js +2 -1
  25. package/cjs/internal/icons/20px/svg.js.map +1 -1
  26. package/cjs/internal/icons/CloudIcon.js +1 -1
  27. package/cjs/internal/icons/CloudIcon.js.map +1 -1
  28. package/cjs/internal/icons/CrossIcon.js +2 -1
  29. package/cjs/internal/icons/CrossIcon.js.map +1 -1
  30. package/cjs/internal/icons/SpinnerIcon.js +3 -1
  31. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  32. package/cjs/lib/SSRSafe.d.ts +1 -0
  33. package/cjs/lib/SSRSafe.js +7 -1
  34. package/cjs/lib/SSRSafe.js.map +1 -1
  35. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +18 -12
  36. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  37. package/components/ScrollContainer/ScrollBar/ScrollBar.js +22 -4
  38. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  39. package/components/ScrollContainer/ScrollBar.d.ts +4 -0
  40. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +8 -1
  41. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  42. package/components/ScrollContainer/ScrollContainer.d.ts +10 -0
  43. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +4 -1
  44. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -1
  45. package/components/ScrollContainer/ScrollContainer.md +29 -0
  46. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +15 -7
  47. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  48. package/components/ScrollContainer/ScrollContainer.styles.d.ts +4 -0
  49. package/components/Switcher/Switcher/Switcher.js +52 -33
  50. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  51. package/components/Switcher/Switcher.d.ts +2 -1
  52. package/components/Switcher/helpers/helpers.js +3 -0
  53. package/components/Switcher/helpers/helpers.js.map +1 -0
  54. package/components/Switcher/helpers/package.json +6 -0
  55. package/components/Switcher/helpers.d.ts +1 -0
  56. package/internal/icons/16px/index/index.js +2 -1
  57. package/internal/icons/16px/index/index.js.map +1 -1
  58. package/internal/icons/20px/svg/svg.js +2 -1
  59. package/internal/icons/20px/svg/svg.js.map +1 -1
  60. package/internal/icons/CloudIcon/CloudIcon.js +3 -1
  61. package/internal/icons/CloudIcon/CloudIcon.js.map +1 -1
  62. package/internal/icons/CrossIcon/CrossIcon.js +2 -1
  63. package/internal/icons/CrossIcon/CrossIcon.js.map +1 -1
  64. package/internal/icons/SpinnerIcon/SpinnerIcon.js +3 -1
  65. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  66. package/lib/SSRSafe/SSRSafe.js +5 -0
  67. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  68. package/lib/SSRSafe.d.ts +1 -0
  69. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["CrossIcon.tsx"],"names":["React","CrossIcon"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,OAAO,IAAMC,SAAS,GAAG,SAAZA,SAAY;AACvB;AACE,MAAA,QAAQ,EAAC,SADX;AAEE,MAAA,IAAI,EAAC,cAFP;AAGE,MAAA,QAAQ,EAAC,SAHX;AAIE,MAAA,SAAS,EAAC,OAJZ;AAKE,MAAA,cAAc,EAAC,OALjB;AAME,MAAA,OAAO,EAAC,WANV;;AAQE,qCAAS,EAAE,EAAC,MAAZ,EAAmB,MAAM,EAAC,qDAA1B,GARF,CADuB,GAAlB","sourcesContent":["import React from 'react';\n\nexport const CrossIcon = () => (\n <svg\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n focusable=\"false\"\n strokeLinejoin=\"round\"\n viewBox=\"0 0 10 10\"\n >\n <polygon id=\"Path\" points=\"6 5 10 9 9 10 5 6 1 10 0 9 4 5 0 1 1 0 5 4 9 0 10 1\" />\n </svg>\n);\n"]}
1
+ {"version":3,"sources":["CrossIcon.tsx"],"names":["React","CrossIcon"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,OAAO,IAAMC,SAAS,GAAG,SAAZA,SAAY;AACvB;AACE,MAAA,QAAQ,EAAC,SADX;AAEE,MAAA,IAAI,EAAC,cAFP;AAGE,MAAA,QAAQ,EAAC,SAHX;AAIE,MAAA,SAAS,EAAC,OAJZ;AAKE,MAAA,cAAc,EAAC,OALjB;AAME,MAAA,OAAO,EAAC,WANV;AAOE,qBAAY,MAPd;;AASE,qCAAS,EAAE,EAAC,MAAZ,EAAmB,MAAM,EAAC,qDAA1B,GATF,CADuB,GAAlB","sourcesContent":["import React from 'react';\n\nexport const CrossIcon = () => (\n <svg\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n focusable=\"false\"\n strokeLinejoin=\"round\"\n viewBox=\"0 0 10 10\"\n aria-hidden=\"true\"\n >\n <polygon id=\"Path\" points=\"6 5 10 9 9 10 5 6 1 10 0 9 4 5 0 1 1 0 5 4 9 0 10 1\" />\n </svg>\n);\n"]}
@@ -86,7 +86,9 @@ export var SpinnerIcon = function SpinnerIcon(_ref) {
86
86
  strokeDasharray: 10 * currentSize.radius / 6 + ", " + 27 * currentSize.radius / 6,
87
87
  strokeDashoffset: "0",
88
88
  strokeWidth: width || currentSize.width,
89
- ref: svgRef
89
+ ref: svgRef,
90
+ focusable: "false",
91
+ "aria-hidden": "true"
90
92
  }, /*#__PURE__*/React.createElement("circle", {
91
93
  cx: currentSize.size / 2,
92
94
  cy: currentSize.size / 2,
@@ -1 +1 @@
1
- {"version":3,"sources":["SpinnerIcon.tsx"],"names":["React","isIE11","SpinnerFallbackAnimationRunner","createOffsetAnimation","createLengthAnimation","createColorAnimation","createRotationAnimation","isTestEnv","ThemeContext","cx","styles","sizes","big","size","width","radius","normal","mini","SpinnerIcon","className","dimmed","inline","color","currentSize","svgRef","useRef","fallbackAnimationRef","useContext","red","yellow","green","brand","useEffect","svg","current","setStyleProperty","style","setProperty","fallbackAnimation","stop","removeAttribute","root","rootInline","icon","iconInline"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isIE11 } from '../../lib/client';\nimport {\n SpinnerFallbackAnimationRunner,\n createOffsetAnimation,\n createLengthAnimation,\n createColorAnimation,\n createRotationAnimation,\n} from '../../components/Spinner/SpinnerFallbackAnimation';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './SpinnerIcon.styles';\n\nexport interface SpinnerIconProps {\n className: string;\n size: 'mini' | 'normal' | 'big';\n dimmed?: boolean;\n inline?: boolean;\n width?: number;\n color?: React.CSSProperties['color'];\n}\n\nexport const sizes = {\n big: {\n size: 96,\n width: 4,\n radius: 32,\n },\n normal: {\n size: 48,\n width: 2,\n radius: 16,\n },\n mini: {\n size: 16,\n width: 1.5,\n radius: 6,\n },\n};\n\nexport const SpinnerIcon = ({ size, className, dimmed, inline, width, color }: SpinnerIconProps) => {\n const currentSize = inline ? sizes.mini : sizes[size];\n const svgRef = React.useRef<SVGSVGElement>(null);\n\n if (isIE11 && !isTestEnv) {\n // This condition will not change during app's life time\n // So its OK to use hooks here\n // https://reactjs.org/docs/hooks-rules.html#only-call-hooks-at-the-top-level\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const fallbackAnimationRef = React.useRef<SpinnerFallbackAnimationRunner | null>(null);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { red, yellow, green, brand } = React.useContext(ThemeContext);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n const svg = svgRef.current;\n\n const setStyleProperty: CSSStyleDeclaration['setProperty'] = (...args) => {\n if (svg) {\n svg.style.setProperty(...args);\n }\n };\n\n fallbackAnimationRef.current = new SpinnerFallbackAnimationRunner(\n [\n createOffsetAnimation(0, -230, 1000, setStyleProperty, '%'),\n createLengthAnimation([62, 168], [187, 43], 2000, setStyleProperty, '%'),\n createRotationAnimation(0, 360, 2000, setStyleProperty),\n ...(dimmed ? [] : [createColorAnimation([red, yellow, green, brand], 1500, setStyleProperty)]),\n ],\n 1000 / 60,\n );\n\n return () => {\n const fallbackAnimation = fallbackAnimationRef.current;\n if (fallbackAnimation) {\n fallbackAnimation.stop();\n }\n if (svg) {\n svg.removeAttribute('style');\n }\n };\n }, [dimmed, red, yellow, green, brand]);\n }\n\n return (\n <span className={cx(styles.root(), { [styles.rootInline()]: inline })}>\n <svg\n viewBox={`0 0 ${currentSize.size} ${currentSize.size}`}\n className={cx(styles.icon(), className, {\n [styles.iconInline()]: inline,\n })}\n width={currentSize.size}\n height={currentSize.size}\n fill=\"none\"\n stroke={color}\n strokeDasharray={`${(10 * currentSize.radius) / 6}, ${(27 * currentSize.radius) / 6}`}\n strokeDashoffset=\"0\"\n strokeWidth={width || currentSize.width}\n ref={svgRef}\n >\n <circle cx={currentSize.size / 2} cy={currentSize.size / 2} r={currentSize.radius} />\n </svg>\n </span>\n );\n};\n"]}
1
+ {"version":3,"sources":["SpinnerIcon.tsx"],"names":["React","isIE11","SpinnerFallbackAnimationRunner","createOffsetAnimation","createLengthAnimation","createColorAnimation","createRotationAnimation","isTestEnv","ThemeContext","cx","styles","sizes","big","size","width","radius","normal","mini","SpinnerIcon","className","dimmed","inline","color","currentSize","svgRef","useRef","fallbackAnimationRef","useContext","red","yellow","green","brand","useEffect","svg","current","setStyleProperty","style","setProperty","fallbackAnimation","stop","removeAttribute","root","rootInline","icon","iconInline"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isIE11 } from '../../lib/client';\nimport {\n SpinnerFallbackAnimationRunner,\n createOffsetAnimation,\n createLengthAnimation,\n createColorAnimation,\n createRotationAnimation,\n} from '../../components/Spinner/SpinnerFallbackAnimation';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './SpinnerIcon.styles';\n\nexport interface SpinnerIconProps {\n className: string;\n size: 'mini' | 'normal' | 'big';\n dimmed?: boolean;\n inline?: boolean;\n width?: number;\n color?: React.CSSProperties['color'];\n}\n\nexport const sizes = {\n big: {\n size: 96,\n width: 4,\n radius: 32,\n },\n normal: {\n size: 48,\n width: 2,\n radius: 16,\n },\n mini: {\n size: 16,\n width: 1.5,\n radius: 6,\n },\n};\n\nexport const SpinnerIcon = ({ size, className, dimmed, inline, width, color }: SpinnerIconProps) => {\n const currentSize = inline ? sizes.mini : sizes[size];\n const svgRef = React.useRef<SVGSVGElement>(null);\n\n if (isIE11 && !isTestEnv) {\n // This condition will not change during app's life time\n // So its OK to use hooks here\n // https://reactjs.org/docs/hooks-rules.html#only-call-hooks-at-the-top-level\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const fallbackAnimationRef = React.useRef<SpinnerFallbackAnimationRunner | null>(null);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { red, yellow, green, brand } = React.useContext(ThemeContext);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n const svg = svgRef.current;\n\n const setStyleProperty: CSSStyleDeclaration['setProperty'] = (...args) => {\n if (svg) {\n svg.style.setProperty(...args);\n }\n };\n\n fallbackAnimationRef.current = new SpinnerFallbackAnimationRunner(\n [\n createOffsetAnimation(0, -230, 1000, setStyleProperty, '%'),\n createLengthAnimation([62, 168], [187, 43], 2000, setStyleProperty, '%'),\n createRotationAnimation(0, 360, 2000, setStyleProperty),\n ...(dimmed ? [] : [createColorAnimation([red, yellow, green, brand], 1500, setStyleProperty)]),\n ],\n 1000 / 60,\n );\n\n return () => {\n const fallbackAnimation = fallbackAnimationRef.current;\n if (fallbackAnimation) {\n fallbackAnimation.stop();\n }\n if (svg) {\n svg.removeAttribute('style');\n }\n };\n }, [dimmed, red, yellow, green, brand]);\n }\n\n return (\n <span className={cx(styles.root(), { [styles.rootInline()]: inline })}>\n <svg\n viewBox={`0 0 ${currentSize.size} ${currentSize.size}`}\n className={cx(styles.icon(), className, {\n [styles.iconInline()]: inline,\n })}\n width={currentSize.size}\n height={currentSize.size}\n fill=\"none\"\n stroke={color}\n strokeDasharray={`${(10 * currentSize.radius) / 6}, ${(27 * currentSize.radius) / 6}`}\n strokeDashoffset=\"0\"\n strokeWidth={width || currentSize.width}\n ref={svgRef}\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <circle cx={currentSize.size / 2} cy={currentSize.size / 2} r={currentSize.radius} />\n </svg>\n </span>\n );\n};\n"]}
@@ -28,4 +28,9 @@ export function isNode(node) {
28
28
 
29
29
  return false;
30
30
  }
31
+ export function matchMediaSSRSafe(mediaQuery) {
32
+ if (isBrowser) {
33
+ return window.matchMedia(mediaQuery);
34
+ }
35
+ }
31
36
  export var globalThat = typeof globalThis === 'object' && globalThis || typeof global === 'object' && global || typeof window === 'object' && window || Function('return this')();
@@ -1 +1 @@
1
- {"version":3,"sources":["SSRSafe.ts"],"names":["PropTypes","isBrowser","safePropTypesInstanceOf","getExpectedClass","instanceOf","any","isElement","el","Element","isHTMLElement","HTMLElement","isNode","node","Node","globalThat","globalThis","global","window","Function"],"mappings":"AAAA,OAAO,KAAKA,SAAZ,MAA2B,YAA3B;;AAEA,SAASC,SAAT,QAA0B,UAA1B;;AAEA,OAAO,SAASC,uBAAT;AACLC,gBADK;AAEqB;AAC1B,MAAIF,SAAJ,EAAe;AACb,WAAOD,SAAS,CAACI,UAAV,CAAqBD,gBAAgB,EAArC,CAAP;AACD;;AAED,SAAOH,SAAS,CAACK,GAAjB;AACD;;AAED,OAAO,SAASC,SAAT,CAAmBC,EAAnB,EAA+C;AACpD,MAAIN,SAAJ,EAAe;AACb,WAAOM,EAAE,YAAYC,OAArB;AACD;;AAED,SAAO,KAAP;AACD;;AAED,OAAO,SAASC,aAAT,CAAuBF,EAAvB,EAAuD;AAC5D,MAAIN,SAAJ,EAAe;AACb,WAAOM,EAAE,YAAYG,WAArB;AACD;;AAED,SAAO,KAAP;AACD;;AAED,OAAO,SAASC,MAAT,CAAgBC,IAAhB,EAA6C;AAClD,MAAIX,SAAJ,EAAe;AACb,WAAOW,IAAI,YAAYC,IAAvB;AACD;;AAED,SAAO,KAAP;AACD;;AAED,OAAO,IAAMC,UAA6B;AACvC,OAAOC,UAAP,KAAsB,QAAtB,IAAkCA,UAAnC;AACC,OAAOC,MAAP,KAAkB,QAAlB,IAA8BA,MAD/B;AAEC,OAAOC,MAAP,KAAkB,QAAlB,IAA8BA,MAF/B;AAGAC,QAAQ,CAAC,aAAD,CAAR,EAJK","sourcesContent":["import * as PropTypes from 'prop-types';\n\nimport { isBrowser } from './client';\n\nexport function safePropTypesInstanceOf<T>(\n getExpectedClass: () => new (...args: any[]) => T,\n): PropTypes.Requireable<T> {\n if (isBrowser) {\n return PropTypes.instanceOf(getExpectedClass());\n }\n\n return PropTypes.any;\n}\n\nexport function isElement(el: unknown): el is Element {\n if (isBrowser) {\n return el instanceof Element;\n }\n\n return false;\n}\n\nexport function isHTMLElement(el: unknown): el is HTMLElement {\n if (isBrowser) {\n return el instanceof HTMLElement;\n }\n\n return false;\n}\n\nexport function isNode(node: unknown): node is Node {\n if (isBrowser) {\n return node instanceof Node;\n }\n\n return false;\n}\n\nexport const globalThat: typeof globalThis =\n (typeof globalThis === 'object' && globalThis) ||\n (typeof global === 'object' && global) ||\n (typeof window === 'object' && window) ||\n Function('return this')();\n"]}
1
+ {"version":3,"sources":["SSRSafe.ts"],"names":["PropTypes","isBrowser","safePropTypesInstanceOf","getExpectedClass","instanceOf","any","isElement","el","Element","isHTMLElement","HTMLElement","isNode","node","Node","matchMediaSSRSafe","mediaQuery","window","matchMedia","globalThat","globalThis","global","Function"],"mappings":"AAAA,OAAO,KAAKA,SAAZ,MAA2B,YAA3B;;AAEA,SAASC,SAAT,QAA0B,UAA1B;;AAEA,OAAO,SAASC,uBAAT;AACLC,gBADK;AAEqB;AAC1B,MAAIF,SAAJ,EAAe;AACb,WAAOD,SAAS,CAACI,UAAV,CAAqBD,gBAAgB,EAArC,CAAP;AACD;;AAED,SAAOH,SAAS,CAACK,GAAjB;AACD;;AAED,OAAO,SAASC,SAAT,CAAmBC,EAAnB,EAA+C;AACpD,MAAIN,SAAJ,EAAe;AACb,WAAOM,EAAE,YAAYC,OAArB;AACD;;AAED,SAAO,KAAP;AACD;;AAED,OAAO,SAASC,aAAT,CAAuBF,EAAvB,EAAuD;AAC5D,MAAIN,SAAJ,EAAe;AACb,WAAOM,EAAE,YAAYG,WAArB;AACD;;AAED,SAAO,KAAP;AACD;;AAED,OAAO,SAASC,MAAT,CAAgBC,IAAhB,EAA6C;AAClD,MAAIX,SAAJ,EAAe;AACb,WAAOW,IAAI,YAAYC,IAAvB;AACD;;AAED,SAAO,KAAP;AACD;;AAED,OAAO,SAASC,iBAAT,CAA2BC,UAA3B,EAA+C;AACpD,MAAId,SAAJ,EAAe;AACb,WAAOe,MAAM,CAACC,UAAP,CAAkBF,UAAlB,CAAP;AACD;AACF;;AAED,OAAO,IAAMG,UAA6B;AACvC,OAAOC,UAAP,KAAsB,QAAtB,IAAkCA,UAAnC;AACC,OAAOC,MAAP,KAAkB,QAAlB,IAA8BA,MAD/B;AAEC,OAAOJ,MAAP,KAAkB,QAAlB,IAA8BA,MAF/B;AAGAK,QAAQ,CAAC,aAAD,CAAR,EAJK","sourcesContent":["import * as PropTypes from 'prop-types';\n\nimport { isBrowser } from './client';\n\nexport function safePropTypesInstanceOf<T>(\n getExpectedClass: () => new (...args: any[]) => T,\n): PropTypes.Requireable<T> {\n if (isBrowser) {\n return PropTypes.instanceOf(getExpectedClass());\n }\n\n return PropTypes.any;\n}\n\nexport function isElement(el: unknown): el is Element {\n if (isBrowser) {\n return el instanceof Element;\n }\n\n return false;\n}\n\nexport function isHTMLElement(el: unknown): el is HTMLElement {\n if (isBrowser) {\n return el instanceof HTMLElement;\n }\n\n return false;\n}\n\nexport function isNode(node: unknown): node is Node {\n if (isBrowser) {\n return node instanceof Node;\n }\n\n return false;\n}\n\nexport function matchMediaSSRSafe(mediaQuery: string) {\n if (isBrowser) {\n return window.matchMedia(mediaQuery);\n }\n}\n\nexport const globalThat: typeof globalThis =\n (typeof globalThis === 'object' && globalThis) ||\n (typeof global === 'object' && global) ||\n (typeof window === 'object' && window) ||\n Function('return this')();\n"]}
package/lib/SSRSafe.d.ts CHANGED
@@ -3,4 +3,5 @@ export declare function safePropTypesInstanceOf<T>(getExpectedClass: () => new (
3
3
  export declare function isElement(el: unknown): el is Element;
4
4
  export declare function isHTMLElement(el: unknown): el is HTMLElement;
5
5
  export declare function isNode(node: unknown): node is Node;
6
+ export declare function matchMediaSSRSafe(mediaQuery: string): MediaQueryList | undefined;
6
7
  export declare const globalThat: typeof globalThis;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@skbkontur/react-ui",
3
- "version": "4.9.0",
3
+ "version": "4.9.1",
4
4
  "description": "UI Components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "index.js",
7
7
  "sideEffects": false,
8
- "homepage": "https://tech.skbkontur.ru/react-ui/4.9.0/",
8
+ "homepage": "https://tech.skbkontur.ru/react-ui/4.9.1/",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git@github.com:skbkontur/retail-ui.git"