@skbkontur/react-ui 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/cjs/components/DatePicker/DatePicker.d.ts +0 -3
  3. package/cjs/components/DatePicker/DatePicker.js +14 -9
  4. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  5. package/cjs/components/Modal/Modal.js +2 -2
  6. package/cjs/components/Modal/Modal.js.map +1 -1
  7. package/cjs/components/Modal/ModalFooter.js +1 -0
  8. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  9. package/cjs/components/Modal/ModalHeader.js +1 -0
  10. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  11. package/cjs/components/Textarea/TextareaCounter.js +3 -4
  12. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  13. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +1 -1
  14. package/cjs/internal/DropdownContainer/DropdownContainer.js +15 -13
  15. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  16. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +29 -29
  17. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  18. package/cjs/internal/ThemeShowcase/VariablesCollector.js +14 -9
  19. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  20. package/cjs/internal/icons/SpinnerIcon.js +2 -2
  21. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  22. package/components/DatePicker/DatePicker/DatePicker.js +19 -15
  23. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  24. package/components/DatePicker/DatePicker.d.ts +0 -3
  25. package/components/Modal/Modal/Modal.js +1 -1
  26. package/components/Modal/Modal/Modal.js.map +1 -1
  27. package/components/Modal/ModalFooter/ModalFooter.js +1 -1
  28. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  29. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  30. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  31. package/components/Textarea/TextareaCounter/TextareaCounter.js +4 -6
  32. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  33. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +18 -21
  34. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  35. package/internal/DropdownContainer/DropdownContainer.d.ts +1 -1
  36. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +2 -2
  37. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  38. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +18 -10
  39. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  40. package/internal/icons/SpinnerIcon/SpinnerIcon.js +2 -3
  41. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  42. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["VariablesCollector.ts"],"names":["DEFAULT_THEME","DARK_THEME","IS_PROXY_SUPPORTED","callsCount","executionTime","ALL_USED_VARIABLES_SET","Set","COMPONENT_DESCRIPTIONS","COMPONENT_DESCRIPTIONS_BY_VARIABLE","baseThemes","push","componentsContext","require","context","keys","forEach","fileName","fileNameStart","lastIndexOf","componentName","substring","replace","componentDescription","Object","exportName","styles","elementName","jsStyle","variablesAccumulator","dependencies","elementProxyHandler","getProxyHandler","themes","map","t","Proxy","variables","Array","from","length","variableName","variableNode","componentNode","includes","dependenciesList","dependencyName","dependencyNode","accumulator","accessLevel","rootProp","get","target","prop","receiver","propName","add","start","performance","now","result","Reflect","ALL_USED_VARIABLES","CALLS_COUNT","EXECUTION_TIME"],"mappings":"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","sourcesContent":["import { Theme } from '../../lib/theming/Theme';\nimport { DEFAULT_THEME } from '../../lib/theming/themes/DefaultTheme';\nimport { DARK_THEME } from '../../lib/theming/themes/DarkTheme';\nimport { IS_PROXY_SUPPORTED } from '../../lib/Supports';\n\nexport interface DescriptionsType {\n [componentName: string]: ComponentDescriptionType;\n}\n\nexport interface ComponentDescriptionType {\n [elementName: string]: ComponentRowDescriptionType;\n}\n\nexport interface ComponentRowDescriptionType {\n variables: Array<keyof Theme>;\n dependencies: VariableDependencies;\n}\n\nexport interface VariableNameToComponentsMap {\n [variableName: string]: DescriptionsType;\n}\n\nexport interface VariableDependencies {\n [variableName: string]: Array<keyof Theme>;\n}\n\nlet callsCount = 0;\nlet executionTime = 0;\nconst ALL_USED_VARIABLES_SET = new Set<keyof Theme>();\n\nexport const COMPONENT_DESCRIPTIONS: DescriptionsType = {};\nexport const COMPONENT_DESCRIPTIONS_BY_VARIABLE: VariableNameToComponentsMap = {};\n\nif (IS_PROXY_SUPPORTED) {\n const baseThemes: Theme[] = [];\n baseThemes.push(DEFAULT_THEME);\n baseThemes.push(DARK_THEME);\n\n const componentsContext = require.context('../../../', true, /\\.styles.ts$/);\n componentsContext.keys().forEach((fileName) => {\n const fileNameStart = fileName.lastIndexOf('/') + 1;\n const componentName = fileName.substring(fileNameStart).replace('.styles.ts', '');\n const componentDescription: ComponentDescriptionType = {};\n Object.keys(componentsContext(fileName)).forEach((exportName) => {\n const styles = componentsContext(fileName)[exportName];\n\n Object.keys(styles).forEach((elementName) => {\n const jsStyle = styles[elementName];\n if (typeof jsStyle !== 'function') {\n return;\n }\n const variablesAccumulator = new Set<keyof Theme>();\n const dependencies: VariableDependencies = {};\n const elementProxyHandler = getProxyHandler(variablesAccumulator, dependencies);\n const themes = baseThemes.map((t) => new Proxy(t, elementProxyHandler));\n themes.forEach((t) => jsStyle(t));\n\n const variables = Array.from(variablesAccumulator);\n\n if (variables.length > 0) {\n componentDescription[elementName] = { variables, dependencies };\n\n variables.forEach((variableName) => {\n if (!COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName]) {\n COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName] = {};\n }\n\n const variableNode = COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName];\n if (!variableNode[componentName]) {\n variableNode[componentName] = {};\n }\n\n const componentNode = variableNode[componentName];\n if (!componentNode[elementName]) {\n componentNode[elementName] = {\n dependencies,\n variables: [variableName],\n };\n } else if (!componentNode[elementName].variables.includes(variableName)) {\n componentNode[elementName].dependencies = dependencies;\n componentNode[elementName].variables.push(variableName);\n }\n\n const dependenciesList = dependencies[variableName];\n if (dependenciesList) {\n dependenciesList.forEach((dependencyName) => {\n if (!COMPONENT_DESCRIPTIONS_BY_VARIABLE[dependencyName]) {\n COMPONENT_DESCRIPTIONS_BY_VARIABLE[dependencyName] = {};\n }\n\n const dependencyNode = COMPONENT_DESCRIPTIONS_BY_VARIABLE[dependencyName];\n if (!dependencyNode[componentName]) {\n dependencyNode[componentName] = COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName][componentName];\n }\n });\n }\n });\n }\n });\n });\n\n COMPONENT_DESCRIPTIONS[componentName] = componentDescription;\n });\n}\n\nfunction getProxyHandler(accumulator: Set<keyof Theme>, dependencies: VariableDependencies): ProxyHandler<Theme> {\n let accessLevel = 0;\n let rootProp = '';\n return {\n get(target, prop, receiver) {\n const propName = prop as keyof Theme;\n ALL_USED_VARIABLES_SET.add(propName);\n if (accessLevel === 0) {\n rootProp = propName;\n accumulator.add(propName);\n } else {\n if (!dependencies[rootProp]) {\n dependencies[rootProp] = [propName];\n } else if (!dependencies[rootProp].includes(propName)) {\n dependencies[rootProp].push(propName);\n }\n }\n accessLevel++;\n const start = performance.now();\n const result = Reflect.get(target, prop, receiver);\n executionTime += performance.now() - start;\n callsCount++;\n accessLevel--;\n return result;\n },\n };\n}\n\nexport const ALL_USED_VARIABLES = Array.from(ALL_USED_VARIABLES_SET);\nexport const CALLS_COUNT = callsCount;\nexport const EXECUTION_TIME = executionTime;\n"]}
1
+ {"version":3,"sources":["VariablesCollector.ts"],"names":["DEFAULT_THEME","DARK_THEME","IS_PROXY_SUPPORTED","callsCount","executionTime","ALL_USED_VARIABLES_SET","Set","COMPONENT_DESCRIPTIONS","COMPONENT_DESCRIPTIONS_BY_VARIABLE","baseThemes","push","componentsContext","require","context","keys","forEach","fileName","fileNameStart","lastIndexOf","componentName","substring","replace","componentDescription","Object","exportName","styles","elementName","jsStyle","variablesAccumulator","dependencies","elementProxyHandler","getProxyHandler","themes","map","t","Proxy","variables","Array","from","length","variableName","variableNode","componentNode","includes","dependenciesList","dependencyName","dependencyNode","accumulator","accessLevel","rootProp","isThemeVariable","theme","name","get","target","prop","receiver","propName","add","start","performance","now","result","Reflect","ALL_USED_VARIABLES","CALLS_COUNT","EXECUTION_TIME"],"mappings":"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","sourcesContent":["import { Theme } from '../../lib/theming/Theme';\nimport { DEFAULT_THEME } from '../../lib/theming/themes/DefaultTheme';\nimport { DARK_THEME } from '../../lib/theming/themes/DarkTheme';\nimport { IS_PROXY_SUPPORTED } from '../../lib/Supports';\n\nexport interface DescriptionsType {\n [componentName: string]: ComponentDescriptionType;\n}\n\nexport interface ComponentDescriptionType {\n [elementName: string]: ComponentRowDescriptionType;\n}\n\nexport interface ComponentRowDescriptionType {\n variables: Array<keyof Theme>;\n dependencies: VariableDependencies;\n}\n\nexport interface VariableNameToComponentsMap {\n [variableName: string]: DescriptionsType;\n}\n\nexport interface VariableDependencies {\n [variableName: string]: Array<keyof Theme>;\n}\n\nlet callsCount = 0;\nlet executionTime = 0;\nconst ALL_USED_VARIABLES_SET = new Set<keyof Theme>();\n\nexport const COMPONENT_DESCRIPTIONS: DescriptionsType = {};\nexport const COMPONENT_DESCRIPTIONS_BY_VARIABLE: VariableNameToComponentsMap = {};\n\nif (IS_PROXY_SUPPORTED) {\n const baseThemes: Theme[] = [];\n baseThemes.push(DEFAULT_THEME);\n baseThemes.push(DARK_THEME);\n\n const componentsContext = require.context('../../../', true, /\\.styles.ts$/);\n componentsContext.keys().forEach((fileName) => {\n const fileNameStart = fileName.lastIndexOf('/') + 1;\n const componentName = fileName.substring(fileNameStart).replace('.styles.ts', '');\n const componentDescription: ComponentDescriptionType = {};\n Object.keys(componentsContext(fileName)).forEach((exportName) => {\n const styles = componentsContext(fileName)[exportName];\n\n Object.keys(styles).forEach((elementName) => {\n const jsStyle = styles[elementName];\n if (typeof jsStyle !== 'function') {\n return;\n }\n const variablesAccumulator = new Set<keyof Theme>();\n const dependencies: VariableDependencies = {};\n const elementProxyHandler = getProxyHandler(variablesAccumulator, dependencies);\n const themes = baseThemes.map((t) => new Proxy(t, elementProxyHandler));\n themes.forEach((t) => jsStyle(t));\n\n const variables = Array.from(variablesAccumulator);\n\n if (variables.length > 0) {\n componentDescription[elementName] = { variables, dependencies };\n\n variables.forEach((variableName) => {\n if (!COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName]) {\n COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName] = {};\n }\n\n const variableNode = COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName];\n if (!variableNode[componentName]) {\n variableNode[componentName] = {};\n }\n\n const componentNode = variableNode[componentName];\n if (!componentNode[elementName]) {\n componentNode[elementName] = {\n dependencies,\n variables: [variableName],\n };\n } else if (!componentNode[elementName].variables.includes(variableName)) {\n componentNode[elementName].dependencies = dependencies;\n componentNode[elementName].variables.push(variableName);\n }\n\n const dependenciesList = dependencies[variableName];\n if (dependenciesList) {\n dependenciesList.forEach((dependencyName) => {\n if (!COMPONENT_DESCRIPTIONS_BY_VARIABLE[dependencyName]) {\n COMPONENT_DESCRIPTIONS_BY_VARIABLE[dependencyName] = {};\n }\n\n const dependencyNode = COMPONENT_DESCRIPTIONS_BY_VARIABLE[dependencyName];\n if (!dependencyNode[componentName]) {\n dependencyNode[componentName] = COMPONENT_DESCRIPTIONS_BY_VARIABLE[variableName][componentName];\n }\n });\n }\n });\n }\n });\n });\n\n COMPONENT_DESCRIPTIONS[componentName] = componentDescription;\n });\n}\n\nfunction getProxyHandler(accumulator: Set<keyof Theme>, dependencies: VariableDependencies): ProxyHandler<Theme> {\n let accessLevel = 0;\n let rootProp = '';\n function isThemeVariable<T extends Theme>(theme: T, name: keyof T) {\n return typeof theme[name] === 'string';\n }\n return {\n get(target, prop, receiver) {\n const propName = prop as keyof Theme;\n if (isThemeVariable(target, propName)) {\n ALL_USED_VARIABLES_SET.add(propName);\n if (accessLevel === 0) {\n rootProp = propName;\n accumulator.add(propName);\n } else {\n if (!dependencies[rootProp]) {\n dependencies[rootProp] = [propName];\n } else if (!dependencies[rootProp].includes(propName)) {\n dependencies[rootProp].push(propName);\n }\n }\n }\n accessLevel++;\n const start = performance.now();\n const result = Reflect.get(target, prop, receiver);\n executionTime += performance.now() - start;\n callsCount++;\n accessLevel--;\n return result;\n },\n };\n}\n\nexport const ALL_USED_VARIABLES = Array.from(ALL_USED_VARIABLES_SET);\nexport const CALLS_COUNT = callsCount;\nexport const EXECUTION_TIME = executionTime;\n"]}
@@ -49,9 +49,9 @@ export var SpinnerIcon = function SpinnerIcon(_ref) {
49
49
 
50
50
 
51
51
  React.useEffect(function () {
52
- var setStyleProperty = function setStyleProperty() {
53
- var svg = svgRef.current;
52
+ var svg = svgRef.current;
54
53
 
54
+ var setStyleProperty = function setStyleProperty() {
55
55
  if (svg) {
56
56
  var _svg$style;
57
57
 
@@ -62,7 +62,6 @@ export var SpinnerIcon = function SpinnerIcon(_ref) {
62
62
  fallbackAnimationRef.current = new SpinnerFallbackAnimationRunner([createOffsetAnimation(0, -230, 1000, setStyleProperty, '%'), createLengthAnimation([62, 168], [187, 43], 2000, setStyleProperty, '%'), createRotationAnimation(0, 360, 2000, setStyleProperty)].concat(dimmed ? [] : [createColorAnimation([red, yellow, green, brand], 1500, setStyleProperty)]), 1000 / 60);
63
63
  return function () {
64
64
  var fallbackAnimation = fallbackAnimationRef.current;
65
- var svg = svgRef.current;
66
65
 
67
66
  if (fallbackAnimation) {
68
67
  fallbackAnimation.stop();
@@ -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","setStyleProperty","svg","current","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 setStyleProperty: CSSStyleDeclaration['setProperty'] = (...args) => {\n const svg = svgRef.current;\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 const svg = svgRef.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 >\n <circle cx={currentSize.size / 2} cy={currentSize.size / 2} r={currentSize.radius} />\n </svg>\n </span>\n );\n};\n"]}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@skbkontur/react-ui",
3
- "version": "4.0.0",
3
+ "version": "4.0.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.0.0/",
8
+ "homepage": "https://tech.skbkontur.ru/react-ui/4.0.1/",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git@github.com:skbkontur/retail-ui.git"
@@ -114,6 +114,7 @@
114
114
  "dotenv": "^10.0.0",
115
115
  "dts-css-modules-loader": "1.2.4",
116
116
  "enzyme": "^3.11.0",
117
+ "eslint-plugin-react-hooks": "^4.3.0",
117
118
  "eslint-plugin-storybook": "^0.5.6",
118
119
  "file-loader": "^6.2.0",
119
120
  "fork-ts-checker-webpack-plugin": "^6.5.0",