@skbkontur/react-ui 3.10.0 → 3.11.0-select-right

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 (214) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/LICENSE +21 -21
  3. package/cjs/components/Autocomplete/Autocomplete.md +7 -7
  4. package/cjs/components/Button/Button.d.ts +1 -1
  5. package/cjs/components/Button/Button.js +4 -3
  6. package/cjs/components/Button/Button.js.map +1 -1
  7. package/cjs/components/Button/Button.styles.d.ts +1 -0
  8. package/cjs/components/Button/Button.styles.js +38 -28
  9. package/cjs/components/Button/Button.styles.js.map +1 -1
  10. package/cjs/components/CurrencyInput/CurrencyInput.md +24 -24
  11. package/cjs/components/CurrencyLabel/CurrencyLabel.md +23 -23
  12. package/cjs/components/DateInput/DateInput.md +106 -106
  13. package/cjs/components/DatePicker/DatePicker.md +307 -307
  14. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +2 -2
  15. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  16. package/cjs/components/FxInput/FxInput.md +16 -16
  17. package/cjs/components/Gapped/Gapped.md +43 -43
  18. package/cjs/components/Group/Group.md +18 -18
  19. package/cjs/components/Hint/Hint.d.ts +2 -1
  20. package/cjs/components/Hint/Hint.js +0 -16
  21. package/cjs/components/Hint/Hint.js.map +1 -1
  22. package/cjs/components/Input/Input.md +13 -13
  23. package/cjs/components/Kebab/Kebab.d.ts +2 -2
  24. package/cjs/components/Kebab/Kebab.js.map +1 -1
  25. package/cjs/components/MenuItem/MenuItem.d.ts +1 -1
  26. package/cjs/components/MenuItem/MenuItem.js +1 -4
  27. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  28. package/cjs/components/Paging/Paging.md +43 -43
  29. package/cjs/components/PasswordInput/PasswordInput.md +9 -9
  30. package/cjs/components/RadioGroup/RadioGroup.md +43 -43
  31. package/cjs/components/ScrollContainer/ScrollBar.js +4 -2
  32. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  33. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
  34. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  35. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  36. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +12 -8
  37. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  38. package/cjs/components/Select/Select.js +2 -1
  39. package/cjs/components/Select/Select.js.map +1 -1
  40. package/cjs/components/SidePage/SidePage.d.ts +1 -0
  41. package/cjs/components/SidePage/SidePage.js +14 -1
  42. package/cjs/components/SidePage/SidePage.js.map +1 -1
  43. package/cjs/components/Spinner/Spinner.d.ts +8 -0
  44. package/cjs/components/Spinner/Spinner.js +21 -3
  45. package/cjs/components/Spinner/Spinner.js.map +1 -1
  46. package/cjs/components/Spinner/Spinner.md +1 -0
  47. package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
  48. package/cjs/components/Spinner/Spinner.styles.js +13 -10
  49. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  50. package/cjs/components/Switcher/Switcher.styles.js +4 -2
  51. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  52. package/cjs/components/Tabs/Tabs.md +36 -36
  53. package/cjs/components/Textarea/Textarea.md +25 -25
  54. package/cjs/components/Token/Token.md +112 -112
  55. package/cjs/components/TokenInput/TokenInput.md +79 -79
  56. package/cjs/components/Tooltip/Tooltip.d.ts +8 -21
  57. package/cjs/components/Tooltip/Tooltip.js +14 -27
  58. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  59. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +2 -2
  60. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  61. package/cjs/index.d.ts +1 -0
  62. package/cjs/index.js +2 -1
  63. package/cjs/index.js.map +1 -1
  64. package/cjs/internal/DropdownContainer/DropdownContainer.js +10 -2
  65. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  66. package/cjs/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
  67. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js +9 -0
  68. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js.map +1 -0
  69. package/cjs/internal/Menu/Menu.d.ts +2 -0
  70. package/cjs/internal/Menu/Menu.js +26 -2
  71. package/cjs/internal/Menu/Menu.js.map +1 -1
  72. package/cjs/internal/Menu/Menu.styles.d.ts +3 -0
  73. package/cjs/internal/Menu/Menu.styles.js +22 -3
  74. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  75. package/cjs/internal/Popup/Popup.d.ts +5 -4
  76. package/cjs/internal/Popup/Popup.js +13 -24
  77. package/cjs/internal/Popup/Popup.js.map +1 -1
  78. package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
  79. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  80. package/cjs/internal/Popup/types.d.ts +1 -0
  81. package/cjs/internal/Popup/types.js +1 -0
  82. package/cjs/internal/Popup/types.js.map +1 -0
  83. package/cjs/internal/PopupMenu/PopupMenu.d.ts +3 -3
  84. package/cjs/internal/PopupMenu/PopupMenu.js +17 -3
  85. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  86. package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
  87. package/cjs/internal/PopupMenu/validatePositions.js +2 -4
  88. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  89. package/cjs/internal/ThemeShowcase/ThemeShowcase.md +13 -13
  90. package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
  91. package/cjs/internal/icons/SpinnerIcon.js +5 -2
  92. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  93. package/cjs/lib/ModalStack.js +16 -17
  94. package/cjs/lib/ModalStack.js.map +1 -1
  95. package/cjs/lib/theming/AnimationKeyframes.js +1 -1
  96. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  97. package/cjs/lib/theming/useTheme.d.ts +1 -0
  98. package/cjs/lib/theming/useTheme.js +7 -0
  99. package/cjs/lib/theming/useTheme.js.map +1 -0
  100. package/cjs/lib/utils.d.ts +32 -0
  101. package/cjs/lib/utils.js +62 -2
  102. package/cjs/lib/utils.js.map +1 -1
  103. package/cjs/typings/html-props.d.ts +123 -0
  104. package/components/Autocomplete/Autocomplete.md +7 -7
  105. package/components/Button/Button/Button.js +3 -7
  106. package/components/Button/Button/Button.js.map +1 -1
  107. package/components/Button/Button.d.ts +1 -1
  108. package/components/Button/Button.styles/Button.styles.js +31 -28
  109. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  110. package/components/Button/Button.styles.d.ts +1 -0
  111. package/components/CurrencyInput/CurrencyInput.md +24 -24
  112. package/components/CurrencyLabel/CurrencyLabel.md +23 -23
  113. package/components/DateInput/DateInput.md +106 -106
  114. package/components/DatePicker/DatePicker.md +307 -307
  115. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  116. package/components/DropdownMenu/DropdownMenu.d.ts +2 -2
  117. package/components/FxInput/FxInput.md +16 -16
  118. package/components/Gapped/Gapped.md +43 -43
  119. package/components/Group/Group.md +18 -18
  120. package/components/Hint/Hint/Hint.js.map +1 -1
  121. package/components/Hint/Hint.d.ts +2 -1
  122. package/components/Input/Input.md +13 -13
  123. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  124. package/components/Kebab/Kebab.d.ts +2 -2
  125. package/components/MenuItem/MenuItem/MenuItem.js +2 -7
  126. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  127. package/components/MenuItem/MenuItem.d.ts +1 -1
  128. package/components/Paging/Paging.md +43 -43
  129. package/components/PasswordInput/PasswordInput.md +9 -9
  130. package/components/RadioGroup/RadioGroup.md +43 -43
  131. package/components/ScrollContainer/ScrollBar/ScrollBar.js +6 -2
  132. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  133. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +2 -1
  134. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  135. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +11 -8
  136. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  137. package/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  138. package/components/Select/Select/Select.js +2 -1
  139. package/components/Select/Select/Select.js.map +1 -1
  140. package/components/SidePage/SidePage/SidePage.js +19 -0
  141. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  142. package/components/SidePage/SidePage.d.ts +1 -0
  143. package/components/Spinner/Spinner/Spinner.js +6 -3
  144. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  145. package/components/Spinner/Spinner.d.ts +8 -0
  146. package/components/Spinner/Spinner.md +1 -0
  147. package/components/Spinner/Spinner.styles/Spinner.styles.js +12 -9
  148. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  149. package/components/Spinner/Spinner.styles.d.ts +2 -1
  150. package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
  151. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  152. package/components/Tabs/Tabs.md +36 -36
  153. package/components/Textarea/Textarea.md +25 -25
  154. package/components/Token/Token.md +112 -112
  155. package/components/TokenInput/TokenInput.md +79 -79
  156. package/components/Tooltip/Tooltip/Tooltip.js +2 -2
  157. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  158. package/components/Tooltip/Tooltip.d.ts +8 -21
  159. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  160. package/components/TooltipMenu/TooltipMenu.d.ts +2 -2
  161. package/index.d.ts +1 -0
  162. package/index.js +2 -1
  163. package/index.js.map +1 -1
  164. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +6 -1
  165. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  166. package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js +10 -0
  167. package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js.map +1 -0
  168. package/internal/DropdownContainer/DropdownContainer.styles/package.json +6 -0
  169. package/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
  170. package/internal/Menu/Menu/Menu.js +14 -5
  171. package/internal/Menu/Menu/Menu.js.map +1 -1
  172. package/internal/Menu/Menu.d.ts +2 -0
  173. package/internal/Menu/Menu.styles/Menu.styles.js +12 -3
  174. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  175. package/internal/Menu/Menu.styles.d.ts +3 -0
  176. package/internal/Popup/Popup/Popup.js +3 -2
  177. package/internal/Popup/Popup/Popup.js.map +1 -1
  178. package/internal/Popup/Popup.d.ts +5 -4
  179. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  180. package/internal/Popup/PopupHelper.d.ts +2 -2
  181. package/internal/Popup/types/package.json +6 -0
  182. package/internal/Popup/types/types.js +0 -0
  183. package/internal/Popup/types/types.js.map +1 -0
  184. package/internal/Popup/types.d.ts +1 -0
  185. package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
  186. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  187. package/internal/PopupMenu/PopupMenu.d.ts +3 -3
  188. package/internal/PopupMenu/validatePositions/validatePositions.js +2 -2
  189. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  190. package/internal/PopupMenu/validatePositions.d.ts +2 -2
  191. package/internal/ThemeShowcase/ThemeShowcase.md +13 -13
  192. package/internal/icons/SpinnerIcon/SpinnerIcon.js +5 -2
  193. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  194. package/internal/icons/SpinnerIcon.d.ts +4 -1
  195. package/lib/ModalStack/ModalStack.js +9 -13
  196. package/lib/ModalStack/ModalStack.js.map +1 -1
  197. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
  198. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  199. package/lib/theming/useTheme/package.json +6 -0
  200. package/lib/theming/useTheme/useTheme.js +5 -0
  201. package/lib/theming/useTheme/useTheme.js.map +1 -0
  202. package/lib/theming/useTheme.d.ts +1 -0
  203. package/lib/utils/utils.js +66 -0
  204. package/lib/utils/utils.js.map +1 -1
  205. package/lib/utils.d.ts +32 -0
  206. package/package.json +5 -5
  207. package/typings/html-props.d.ts +123 -0
  208. package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  209. package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
  210. package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
  211. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
  212. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
  213. package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
  214. package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
@@ -20,6 +20,8 @@ var _SpinnerIcon = require("./SpinnerIcon.styles");
20
20
 
21
21
 
22
22
 
23
+
24
+
23
25
  var sizes = {
24
26
  big: {
25
27
  size: 96,
@@ -38,7 +40,7 @@ var sizes = {
38
40
 
39
41
 
40
42
 
41
- var SpinnerIcon = function SpinnerIcon(_ref) {var size = _ref.size,className = _ref.className,dimmed = _ref.dimmed;
43
+ var SpinnerIcon = function SpinnerIcon(_ref) {var size = _ref.size,className = _ref.className,dimmed = _ref.dimmed,width = _ref.width,color = _ref.color;
42
44
  var currentSize = sizes[size];
43
45
  var svgRef = _react.default.useRef(null);
44
46
 
@@ -91,9 +93,10 @@ var SpinnerIcon = function SpinnerIcon(_ref) {var size = _ref.size,className = _
91
93
  width: currentSize.size,
92
94
  height: currentSize.size,
93
95
  fill: "none",
96
+ stroke: color,
94
97
  strokeDasharray: 10 * currentSize.radius / 6 + ", " + 27 * currentSize.radius / 6,
95
98
  strokeDashoffset: "0",
96
- strokeWidth: currentSize.width,
99
+ strokeWidth: width || currentSize.width,
97
100
  ref: svgRef }, /*#__PURE__*/
98
101
 
99
102
  _react.default.createElement("circle", { cx: currentSize.size / 2, cy: currentSize.size / 2, r: currentSize.radius }))));
@@ -1 +1 @@
1
- {"version":3,"sources":["SpinnerIcon.tsx"],"names":["sizes","big","size","width","radius","normal","mini","SpinnerIcon","className","dimmed","currentSize","svgRef","React","useRef","isIE11","isTestEnv","fallbackAnimationRef","useContext","ThemeContext","red","yellow","green","brand","useEffect","setStyleProperty","svg","current","style","setProperty","SpinnerFallbackAnimationRunner","fallbackAnimation","stop","removeAttribute","styles","root","icon"],"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}\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 }: SpinnerIconProps) => {\n const currentSize = 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={styles.root()}>\n <svg\n viewBox={`0 0 ${currentSize.size} ${currentSize.size}`}\n className={cx(styles.icon(), className)}\n width={currentSize.size}\n height={currentSize.size}\n fill=\"none\"\n strokeDasharray={`${(10 * currentSize.radius) / 6}, ${(27 * currentSize.radius) / 6}`}\n strokeDashoffset=\"0\"\n strokeWidth={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":["sizes","big","size","width","radius","normal","mini","SpinnerIcon","className","dimmed","color","currentSize","svgRef","React","useRef","isIE11","isTestEnv","fallbackAnimationRef","useContext","ThemeContext","red","yellow","green","brand","useEffect","setStyleProperty","svg","current","style","setProperty","SpinnerFallbackAnimationRunner","fallbackAnimation","stop","removeAttribute","styles","root","icon"],"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 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, width, color }: SpinnerIconProps) => {\n const currentSize = 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={styles.root()}>\n <svg\n viewBox={`0 0 ${currentSize.size} ${currentSize.size}`}\n className={cx(styles.icon(), className)}\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"]}
@@ -88,25 +88,24 @@ ModalStack = /*#__PURE__*/function () {function ModalStack() {}ModalStack.
88
88
  }
89
89
 
90
90
  return false;
91
- };return ModalStack;}();exports.ModalStack = ModalStack;
91
+ };return ModalStack;}();
92
92
 
93
93
 
94
- var isSidePage = function isSidePage(component) {
95
- return isReactUIInstance('SidePage', component);
96
- };
94
+ /**
95
+ * Specific check for component type by its instance
96
+ */exports.ModalStack = ModalStack;
97
+ var isReactUIInstance = function isReactUIInstance(componentName) {
98
+ return function (instance) {var
99
+ constructor = instance.constructor;
100
+
101
+ return (
102
+ Object.prototype.hasOwnProperty.call(constructor, '__KONTUR_REACT_UI__') &&
103
+ // @ts-ignore
104
+ constructor.__KONTUR_REACT_UI__ === componentName);
97
105
 
98
- var isModal = function isModal(component) {
99
- return isReactUIInstance('Modal', component);
106
+ };
100
107
  };
101
108
 
102
- /**
103
- * Specific check for component type by its instance
104
- */
105
- var isReactUIInstance = function isReactUIInstance(componentName, instance) {var
106
- constructor = instance.constructor;
107
- return (
108
- Object.prototype.hasOwnProperty.call(constructor, '__KONTUR_REACT_UI__') &&
109
- // @ts-ignore
110
- constructor.__KONTUR_REACT_UI__ === componentName);
111
-
112
- };
109
+ var isSidePage = isReactUIInstance('SidePage');
110
+
111
+ var isModal = isReactUIInstance('Modal');
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalStack.ts"],"names":["ModalStack","add","component","onChange","getStackInfo","emitter","mounted","unshift","changeHandler","_token","addListener","emit","remove","removeListener","index","indexOf","splice","isBlocking","length","wantsToBlock","globalWithStack","global","__ReactUIStackInfo","EventEmitter","isModal","isSidePage","deepestSidePages","filter","i","pop","props","blockBackground","isReactUIInstance","componentName","instance","constructor","Object","prototype","hasOwnProperty","call","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport { SidePageProps } from '../components/SidePage';\nimport { ModalProps } from '../components/Modal';\n\ninterface StackInfo {\n emitter: EventEmitter;\n mounted: React.Component[];\n}\n\ninterface GlobalWithStackInfo {\n __ReactUIStackInfo?: StackInfo;\n}\n\nexport interface ModalStackSubscription {\n remove: () => void;\n}\n\nexport class ModalStack {\n public static add(\n component: React.Component,\n onChange: (stack: ReadonlyArray<React.Component>) => void,\n ): ModalStackSubscription {\n const { emitter, mounted } = ModalStack.getStackInfo();\n mounted.unshift(component);\n const changeHandler = () => onChange([...mounted]);\n const _token = emitter.addListener('change', changeHandler);\n emitter.emit('change');\n return {\n remove: () => {\n // Backwards compatible with versions 0.x and 1.w which using the fbemitter package\n if ('remove' in _token) {\n // @ts-ignore\n _token.remove();\n return;\n }\n\n emitter.removeListener('change', changeHandler);\n },\n };\n }\n\n public static remove(component: React.Component) {\n const { emitter, mounted } = ModalStack.getStackInfo();\n const index = mounted.indexOf(component);\n if (index !== -1) {\n mounted.splice(index, 1);\n }\n emitter.emit('change');\n }\n\n /**\n * Determines if stack component is allowed to block background\n */\n public static isBlocking(component: React.Component): boolean {\n const { mounted } = ModalStack.getStackInfo();\n for (let index = 0; index < mounted.length; index++) {\n if (ModalStack.wantsToBlock(mounted[index])) {\n // only the highest component in stack\n // that wants to block is allowed to do it\n return component === mounted[index];\n }\n }\n return false;\n }\n\n private static getStackInfo(): StackInfo {\n const globalWithStack = global as GlobalWithStackInfo;\n return (\n globalWithStack.__ReactUIStackInfo ||\n (globalWithStack.__ReactUIStackInfo = {\n emitter: new EventEmitter(),\n mounted: [],\n })\n );\n }\n\n private static wantsToBlock(component: React.Component): boolean {\n if (isModal(component)) {\n return true;\n }\n\n if (isSidePage(component)) {\n const { mounted } = ModalStack.getStackInfo();\n const deepestSidePages = mounted.filter((i) => isSidePage(i)).pop();\n return !!component.props.blockBackground && component === deepestSidePages;\n }\n\n return false;\n }\n}\n\nconst isSidePage = (component: React.Component): component is React.Component<SidePageProps> => {\n return isReactUIInstance('SidePage', component);\n};\n\nconst isModal = (component: React.Component): component is React.Component<ModalProps> => {\n return isReactUIInstance('Modal', component);\n};\n\n/**\n * Specific check for component type by its instance\n */\nconst isReactUIInstance = (componentName: string, instance: React.Component) => {\n const { constructor } = instance;\n return (\n Object.prototype.hasOwnProperty.call(constructor, '__KONTUR_REACT_UI__') &&\n // @ts-ignore\n constructor.__KONTUR_REACT_UI__ === componentName\n );\n};\n"]}
1
+ {"version":3,"sources":["ModalStack.ts"],"names":["ModalStack","add","component","onChange","getStackInfo","emitter","mounted","unshift","changeHandler","_token","addListener","emit","remove","removeListener","index","indexOf","splice","isBlocking","length","wantsToBlock","globalWithStack","global","__ReactUIStackInfo","EventEmitter","isModal","isSidePage","deepestSidePages","filter","i","pop","props","blockBackground","isReactUIInstance","componentName","instance","constructor","Object","prototype","hasOwnProperty","call","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport { SidePageProps } from '../components/SidePage';\nimport { ModalProps } from '../components/Modal';\n\ninterface StackInfo {\n emitter: EventEmitter;\n mounted: React.Component[];\n}\n\ninterface GlobalWithStackInfo {\n __ReactUIStackInfo?: StackInfo;\n}\n\nexport interface ModalStackSubscription {\n remove: () => void;\n}\n\nexport class ModalStack {\n public static add(\n component: React.Component,\n onChange: (stack: ReadonlyArray<React.Component>) => void,\n ): ModalStackSubscription {\n const { emitter, mounted } = ModalStack.getStackInfo();\n mounted.unshift(component);\n const changeHandler = () => onChange([...mounted]);\n const _token = emitter.addListener('change', changeHandler);\n emitter.emit('change');\n return {\n remove: () => {\n // Backwards compatible with versions 0.x and 1.w which using the fbemitter package\n if ('remove' in _token) {\n // @ts-ignore\n _token.remove();\n return;\n }\n\n emitter.removeListener('change', changeHandler);\n },\n };\n }\n\n public static remove(component: React.Component) {\n const { emitter, mounted } = ModalStack.getStackInfo();\n const index = mounted.indexOf(component);\n if (index !== -1) {\n mounted.splice(index, 1);\n }\n emitter.emit('change');\n }\n\n /**\n * Determines if stack component is allowed to block background\n */\n public static isBlocking(component: React.Component): boolean {\n const { mounted } = ModalStack.getStackInfo();\n for (let index = 0; index < mounted.length; index++) {\n if (ModalStack.wantsToBlock(mounted[index])) {\n // only the highest component in stack\n // that wants to block is allowed to do it\n return component === mounted[index];\n }\n }\n return false;\n }\n\n private static getStackInfo(): StackInfo {\n const globalWithStack = global as GlobalWithStackInfo;\n return (\n globalWithStack.__ReactUIStackInfo ||\n (globalWithStack.__ReactUIStackInfo = {\n emitter: new EventEmitter(),\n mounted: [],\n })\n );\n }\n\n private static wantsToBlock(component: React.Component): boolean {\n if (isModal(component)) {\n return true;\n }\n\n if (isSidePage(component)) {\n const { mounted } = ModalStack.getStackInfo();\n const deepestSidePages = mounted.filter((i) => isSidePage(i)).pop();\n return !!component.props.blockBackground && component === deepestSidePages;\n }\n\n return false;\n }\n}\n\n/**\n * Specific check for component type by its instance\n */\nconst isReactUIInstance = <T>(componentName: string) => {\n return (instance: React.Component): instance is React.Component<T> => {\n const { constructor } = instance;\n\n return (\n Object.prototype.hasOwnProperty.call(constructor, '__KONTUR_REACT_UI__') &&\n // @ts-ignore\n constructor.__KONTUR_REACT_UI__ === componentName\n );\n };\n};\n\nconst isSidePage = isReactUIInstance<SidePageProps>('SidePage');\n\nconst isModal = isReactUIInstance<ModalProps>('Modal');\n"]}
@@ -17,7 +17,7 @@ var AnimationKeyframes = {
17
17
 
18
18
  },
19
19
  spinnerCircleOffset: function spinnerCircleOffset(t) {
20
- return (0, _Emotion.keyframes)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["\n 0% { stroke-dashoffset: 0; }\n 100% { stroke-dashoffset: -231.25%; }\n "])));
20
+ return (0, _Emotion.keyframes)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["\n 0% { stroke-dashoffset: 231.25%; }\n 100% { stroke-dashoffset: 0%; }\n "])));
21
21
 
22
22
 
23
23
 
@@ -1 +1 @@
1
- {"version":3,"sources":["AnimationKeyframes.ts"],"names":["AnimationKeyframes","spinnerCloudOffset","t","keyframes","spinnerCloudLength","spinnerCircleOffset","spinnerCircleLength","spinnerCircleRotate","spinnerColor","red","yellow","green","brand"],"mappings":"wRAAA,oC;;;AAGO,IAAMA,kBAAkB,GAAG;AAChCC,EAAAA,kBADgC,8BACbC,CADa,EACH;AAC3B,eAAOC,kBAAP;;;;AAID,GAN+B;;AAQhCC,EAAAA,kBARgC,8BAQbF,CARa,EAQH;AAC3B,eAAOC,kBAAP;;;;;AAKD,GAd+B;AAehCE,EAAAA,mBAfgC,+BAeZH,CAfY,EAeF;AAC5B,eAAOC,kBAAP;;;;AAID,GApB+B;AAqBhCG,EAAAA,mBArBgC,+BAqBZJ,CArBY,EAqBF;AAC5B,eAAOC,kBAAP;;;;;AAKD,GA3B+B;AA4BhCI,EAAAA,mBA5BgC,+BA4BZL,CA5BY,EA4BF;AAC5B,eAAOC,kBAAP;;;AAGD,GAhC+B;AAiChCK,EAAAA,YAjCgC,wBAiCnBN,CAjCmB,EAiCT;AACrB,eAAOC,kBAAP;AACyBD,IAAAA,CAAC,CAACO,GAD3B;AAEoBP,IAAAA,CAAC,CAACQ,MAFtB;AAGoBR,IAAAA,CAAC,CAACS,KAHtB;AAIyBT,IAAAA,CAAC,CAACU,KAJ3B;;AAMD,GAxC+B,EAA3B,C","sourcesContent":["import { keyframes } from './Emotion';\nimport { Theme } from './Theme';\n\nexport const AnimationKeyframes = {\n spinnerCloudOffset(t: Theme) {\n return keyframes`\n 0% { stroke-dashoffset: 10; }\n 100% { stroke-dashoffset: 116; }\n `;\n },\n\n spinnerCloudLength(t: Theme) {\n return keyframes`\n 0% { stroke-dasharray: 10, 96; }\n 50% { stroke-dasharray: 50, 56; }\n 100% { stroke-dasharray: 10, 96;}\n `;\n },\n spinnerCircleOffset(t: Theme) {\n return keyframes`\n 0% { stroke-dashoffset: 0; }\n 100% { stroke-dashoffset: -231.25%; }\n `;\n },\n spinnerCircleLength(t: Theme) {\n return keyframes`\n 0% { stroke-dasharray: 62.5%, 168.75%; }\n 50% { stroke-dasharray: 187.5%, 43.75%; }\n 100% { stroke-dasharray: 62.5%, 168.75%; }\n `;\n },\n spinnerCircleRotate(t: Theme) {\n return keyframes`\n 100% { transform: rotate(360deg); }\n `;\n },\n spinnerColor(t: Theme) {\n return keyframes`\n 100%, 0% { stroke: ${t.red}; }\n 40% { stroke: ${t.yellow}; }\n 66% { stroke: ${t.green}; }\n 80%, 90% { stroke: ${t.brand}; }\n `;\n },\n};\n"]}
1
+ {"version":3,"sources":["AnimationKeyframes.ts"],"names":["AnimationKeyframes","spinnerCloudOffset","t","keyframes","spinnerCloudLength","spinnerCircleOffset","spinnerCircleLength","spinnerCircleRotate","spinnerColor","red","yellow","green","brand"],"mappings":"wRAAA,oC;;;AAGO,IAAMA,kBAAkB,GAAG;AAChCC,EAAAA,kBADgC,8BACbC,CADa,EACH;AAC3B,eAAOC,kBAAP;;;;AAID,GAN+B;;AAQhCC,EAAAA,kBARgC,8BAQbF,CARa,EAQH;AAC3B,eAAOC,kBAAP;;;;;AAKD,GAd+B;AAehCE,EAAAA,mBAfgC,+BAeZH,CAfY,EAeF;AAC5B,eAAOC,kBAAP;;;;AAID,GApB+B;AAqBhCG,EAAAA,mBArBgC,+BAqBZJ,CArBY,EAqBF;AAC5B,eAAOC,kBAAP;;;;;AAKD,GA3B+B;AA4BhCI,EAAAA,mBA5BgC,+BA4BZL,CA5BY,EA4BF;AAC5B,eAAOC,kBAAP;;;AAGD,GAhC+B;AAiChCK,EAAAA,YAjCgC,wBAiCnBN,CAjCmB,EAiCT;AACrB,eAAOC,kBAAP;AACyBD,IAAAA,CAAC,CAACO,GAD3B;AAEoBP,IAAAA,CAAC,CAACQ,MAFtB;AAGoBR,IAAAA,CAAC,CAACS,KAHtB;AAIyBT,IAAAA,CAAC,CAACU,KAJ3B;;AAMD,GAxC+B,EAA3B,C","sourcesContent":["import { keyframes } from './Emotion';\nimport { Theme } from './Theme';\n\nexport const AnimationKeyframes = {\n spinnerCloudOffset(t: Theme) {\n return keyframes`\n 0% { stroke-dashoffset: 10; }\n 100% { stroke-dashoffset: 116; }\n `;\n },\n\n spinnerCloudLength(t: Theme) {\n return keyframes`\n 0% { stroke-dasharray: 10, 96; }\n 50% { stroke-dasharray: 50, 56; }\n 100% { stroke-dasharray: 10, 96;}\n `;\n },\n spinnerCircleOffset(t: Theme) {\n return keyframes`\n 0% { stroke-dashoffset: 231.25%; }\n 100% { stroke-dashoffset: 0%; }\n `;\n },\n spinnerCircleLength(t: Theme) {\n return keyframes`\n 0% { stroke-dasharray: 62.5%, 168.75%; }\n 50% { stroke-dasharray: 187.5%, 43.75%; }\n 100% { stroke-dasharray: 62.5%, 168.75%; }\n `;\n },\n spinnerCircleRotate(t: Theme) {\n return keyframes`\n 100% { transform: rotate(360deg); }\n `;\n },\n spinnerColor(t: Theme) {\n return keyframes`\n 100%, 0% { stroke: ${t.red}; }\n 40% { stroke: ${t.yellow}; }\n 66% { stroke: ${t.green}; }\n 80%, 90% { stroke: ${t.brand}; }\n `;\n },\n};\n"]}
@@ -0,0 +1 @@
1
+ export declare const useTheme: () => Readonly<Readonly<typeof import("../../internal/themes/DefaultTheme").DefaultTheme>>;
@@ -0,0 +1,7 @@
1
+ "use strict";exports.__esModule = true;exports.useTheme = void 0;var _react = require("react");
2
+
3
+ var _ThemeContext = require("./ThemeContext");
4
+
5
+ var useTheme = function useTheme() {
6
+ return (0, _react.useContext)(_ThemeContext.ThemeContext);
7
+ };exports.useTheme = useTheme;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useTheme.ts"],"names":["useTheme","ThemeContext"],"mappings":"iEAAA;;AAEA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,GAAM;AAC5B,SAAO,uBAAWC,0BAAX,CAAP;AACD,CAFM,C","sourcesContent":["import { useContext } from 'react';\n\nimport { ThemeContext } from './ThemeContext';\n\nexport const useTheme = () => {\n return useContext(ThemeContext);\n};\n"]}
@@ -29,3 +29,35 @@ export declare const isReactUINode: (componentName: string, node: React.ReactNod
29
29
  * @returns Возвращает true, если переданный аргумент не является null или undefined иначе false
30
30
  */
31
31
  export declare const isNonNullable: <T>(value: T) => value is NonNullable<T>;
32
+ /**
33
+ * Creates a function that checks if the given `child`
34
+ * is an instance of some component specified by `name`.
35
+ *
36
+ * @param name Component name for which function will be created.
37
+ * @returns A function that checks if the given `child` is an instance of the component specified by `name`.
38
+ */
39
+ export declare const isReactUIComponent: <P = any>(name: string) => (child: React.ReactNode) => child is React.ReactElement<P, string | React.JSXElementConstructor<any>>;
40
+ /**
41
+ * Merges two or more refs into one.
42
+ *
43
+ * @param refs Array of refs.
44
+ * @returns A single ref composing all the refs passed.
45
+ *
46
+ * @example
47
+ * const SomeComponent = forwardRef((props, ref) => {
48
+ * const localRef = useRef();
49
+ *
50
+ * return <div ref={mergeRefs([localRef, ref])} />;
51
+ * });
52
+ */
53
+ export declare function mergeRefs<T = any>(refs: Array<React.MutableRefObject<T> | React.LegacyRef<T>>): React.RefCallback<T>;
54
+ /**
55
+ * Extracts all data attributes from props and returns them as well as props.
56
+ *
57
+ * @param props Props object to extract data attributes from.
58
+ * @returns Separated data attributes and all other props.
59
+ */
60
+ export declare const extractDataProps: <T>(props: T) => {
61
+ dataProps: Record<string, any>;
62
+ restWithoutDataProps: Record<string, any>;
63
+ };
package/cjs/lib/utils.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.taskWithDelay = taskWithDelay;exports.isFunction = isFunction;exports.isFunctionalComponent = isFunctionalComponent;exports.isClassComponent = isClassComponent;exports.isIntrinsicElement = isIntrinsicElement;exports.isRefableElement = isRefableElement;exports.escapeRegExpSpecChars = escapeRegExpSpecChars;exports.isNonNullable = exports.isReactUINode = exports.isExternalLink = exports.getRandomID = exports.CancelationError = exports.emptyHandler = exports.delay = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.taskWithDelay = taskWithDelay;exports.isFunction = isFunction;exports.isFunctionalComponent = isFunctionalComponent;exports.isClassComponent = isClassComponent;exports.isIntrinsicElement = isIntrinsicElement;exports.isRefableElement = isRefableElement;exports.escapeRegExpSpecChars = escapeRegExpSpecChars;exports.mergeRefs = mergeRefs;exports.extractDataProps = exports.isReactUIComponent = exports.isNonNullable = exports.isReactUINode = exports.isExternalLink = exports.getRandomID = exports.CancelationError = exports.emptyHandler = exports.delay = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
2
2
  var _react = _interopRequireDefault(require("react"));
3
3
  var _reactIs = require("react-is");
4
4
 
@@ -91,4 +91,64 @@ var isReactUINode = function isReactUINode(componentName, node) {
91
91
  */exports.isReactUINode = isReactUINode;
92
92
  var isNonNullable = function isNonNullable(value) {
93
93
  return value !== null && value !== undefined;
94
- };exports.isNonNullable = isNonNullable;
94
+ };
95
+
96
+ /**
97
+ * Creates a function that checks if the given `child`
98
+ * is an instance of some component specified by `name`.
99
+ *
100
+ * @param name Component name for which function will be created.
101
+ * @returns A function that checks if the given `child` is an instance of the component specified by `name`.
102
+ */exports.isNonNullable = isNonNullable;
103
+ var isReactUIComponent = function isReactUIComponent(name) {
104
+ return function (child) {var _child$type;
105
+ // @ts-ignore
106
+ return (child == null ? void 0 : (_child$type = child.type) == null ? void 0 : _child$type.__KONTUR_REACT_UI__) === name;
107
+ };
108
+ };
109
+
110
+ /**
111
+ * Merges two or more refs into one.
112
+ *
113
+ * @param refs Array of refs.
114
+ * @returns A single ref composing all the refs passed.
115
+ *
116
+ * @example
117
+ * const SomeComponent = forwardRef((props, ref) => {
118
+ * const localRef = useRef();
119
+ *
120
+ * return <div ref={mergeRefs([localRef, ref])} />;
121
+ * });
122
+ */exports.isReactUIComponent = isReactUIComponent;
123
+ function mergeRefs(refs) {
124
+ return function (value) {
125
+ refs.forEach(function (ref) {
126
+ if (typeof ref === 'function') {
127
+ return ref(value);
128
+ } else if (isNonNullable(ref)) {
129
+ return ref.current = value;
130
+ }
131
+ });
132
+ };
133
+ }
134
+
135
+ /**
136
+ * Extracts all data attributes from props and returns them as well as props.
137
+ *
138
+ * @param props Props object to extract data attributes from.
139
+ * @returns Separated data attributes and all other props.
140
+ */
141
+ var extractDataProps = function extractDataProps(props) {
142
+ var dataProps = {};
143
+ var restWithoutDataProps = {};
144
+
145
+ Object.entries(props).map(function (_ref) {var name = _ref[0],value = _ref[1];
146
+ if (name.startsWith('data-')) {
147
+ dataProps[name] = value;
148
+ } else {
149
+ restWithoutDataProps[name] = value;
150
+ }
151
+ });
152
+
153
+ return { dataProps: dataProps, restWithoutDataProps: restWithoutDataProps };
154
+ };exports.extractDataProps = extractDataProps;
@@ -1 +1 @@
1
- {"version":3,"sources":["utils.ts"],"names":["delay","ms","Promise","resolve","setTimeout","emptyHandler","CancelationError","code","Error","taskWithDelay","task","cancelationToken","reject","then","catch","isFunction","x","isFunctionalComponent","Component","Boolean","prototype","isReactComponent","isClassComponent","isIntrinsicElement","element","type","isRefableElement","escapeRegExpSpecChars","s","replace","getRandomID","Math","random","toString","slice","isExternalLink","link","RegExp","isBrowser","window","location","host","test","isReactUINode","componentName","node","React","isValidElement","Object","hasOwnProperty","call","__KONTUR_REACT_UI__","isNonNullable","value","undefined"],"mappings":"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","sourcesContent":["import { ReactComponentLike } from 'prop-types';\nimport React from 'react';\nimport { isForwardRef } from 'react-is';\n\nimport { isBrowser } from './client';\n\n// NOTE: Copy-paste from @types/react\nexport type Defaultize<P, D> = P extends any\n ? string extends keyof P\n ? P\n : Pick<P, Exclude<keyof P, keyof D>> &\n Partial<Pick<P, Extract<keyof P, keyof D>>> &\n Partial<Pick<D, Exclude<keyof D, keyof P>>>\n : never;\n\nexport type DefaultizeProps<C, P> = C extends { defaultProps: infer D } ? Defaultize<P, D> : P;\n\nexport const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nexport const emptyHandler = () => {\n /* noop */\n};\n\nexport class CancelationError extends Error {\n public code = 'CancelationError';\n}\n\nexport function taskWithDelay(task: () => void, ms: number) {\n let cancelationToken: () => void = () => null;\n\n new Promise((resolve, reject) => {\n cancelationToken = reject;\n setTimeout(resolve, ms);\n })\n .then(task)\n .catch(() => null);\n\n return cancelationToken;\n}\n\nexport function isFunction<T>(x: T | Function): x is Function {\n return typeof x === 'function';\n}\n\nexport function isFunctionalComponent(Component: ReactComponentLike): boolean {\n return Boolean(typeof Component === 'function' && !(Component.prototype && Component.prototype.isReactComponent));\n}\n\nexport function isClassComponent(Component: ReactComponentLike): boolean {\n return Boolean(typeof Component === 'function' && Component.prototype && Component.prototype.isReactComponent);\n}\n\nexport function isIntrinsicElement(element: React.ReactElement): boolean {\n return typeof element.type === 'string';\n}\n\nexport function isRefableElement(element: React.ReactElement): boolean {\n return Boolean(isIntrinsicElement(element) || isClassComponent(element.type) || isForwardRef(element));\n}\n\nexport function escapeRegExpSpecChars(s: string): string {\n return s.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nexport const getRandomID = (): string => Math.random().toString(16).slice(2);\n\nexport const isExternalLink = (link: string): boolean => {\n return new RegExp(`^(https?:)?//${isBrowser ? `(?!${window.location.host})` : ``}\\\\S+`, 'gi').test(link);\n};\n\n/**\n * Check if the given ReactNode is an element of the specified ReactUI component\n */\nexport const isReactUINode = (componentName: string, node: React.ReactNode): boolean => {\n if (React.isValidElement(node)) {\n return (\n Object.prototype.hasOwnProperty.call(node.type, '__KONTUR_REACT_UI__') &&\n // @ts-ignore\n node.type.__KONTUR_REACT_UI__ === componentName\n );\n }\n\n return false;\n};\n\n/**\n * Проверяет, не является ли переданный аргумент null или undefined и исключает типы null и undefined из типа аргумента\n *\n * @param value Значение, которое нужно проверить и исключить из него типы\n * @returns Возвращает true, если переданный аргумент не является null или undefined иначе false\n */\nexport const isNonNullable = <T>(value: T): value is NonNullable<T> => {\n return value !== null && value !== undefined;\n};\n"]}
1
+ {"version":3,"sources":["utils.ts"],"names":["delay","ms","Promise","resolve","setTimeout","emptyHandler","CancelationError","code","Error","taskWithDelay","task","cancelationToken","reject","then","catch","isFunction","x","isFunctionalComponent","Component","Boolean","prototype","isReactComponent","isClassComponent","isIntrinsicElement","element","type","isRefableElement","escapeRegExpSpecChars","s","replace","getRandomID","Math","random","toString","slice","isExternalLink","link","RegExp","isBrowser","window","location","host","test","isReactUINode","componentName","node","React","isValidElement","Object","hasOwnProperty","call","__KONTUR_REACT_UI__","isNonNullable","value","undefined","isReactUIComponent","name","child","mergeRefs","refs","forEach","ref","current","extractDataProps","props","dataProps","restWithoutDataProps","entries","map","startsWith"],"mappings":"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","sourcesContent":["import { ReactComponentLike } from 'prop-types';\nimport React from 'react';\nimport { isForwardRef } from 'react-is';\n\nimport { isBrowser } from './client';\n\n// NOTE: Copy-paste from @types/react\nexport type Defaultize<P, D> = P extends any\n ? string extends keyof P\n ? P\n : Pick<P, Exclude<keyof P, keyof D>> &\n Partial<Pick<P, Extract<keyof P, keyof D>>> &\n Partial<Pick<D, Exclude<keyof D, keyof P>>>\n : never;\n\nexport type DefaultizeProps<C, P> = C extends { defaultProps: infer D } ? Defaultize<P, D> : P;\n\nexport const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nexport const emptyHandler = () => {\n /* noop */\n};\n\nexport class CancelationError extends Error {\n public code = 'CancelationError';\n}\n\nexport function taskWithDelay(task: () => void, ms: number) {\n let cancelationToken: () => void = () => null;\n\n new Promise((resolve, reject) => {\n cancelationToken = reject;\n setTimeout(resolve, ms);\n })\n .then(task)\n .catch(() => null);\n\n return cancelationToken;\n}\n\nexport function isFunction<T>(x: T | Function): x is Function {\n return typeof x === 'function';\n}\n\nexport function isFunctionalComponent(Component: ReactComponentLike): boolean {\n return Boolean(typeof Component === 'function' && !(Component.prototype && Component.prototype.isReactComponent));\n}\n\nexport function isClassComponent(Component: ReactComponentLike): boolean {\n return Boolean(typeof Component === 'function' && Component.prototype && Component.prototype.isReactComponent);\n}\n\nexport function isIntrinsicElement(element: React.ReactElement): boolean {\n return typeof element.type === 'string';\n}\n\nexport function isRefableElement(element: React.ReactElement): boolean {\n return Boolean(isIntrinsicElement(element) || isClassComponent(element.type) || isForwardRef(element));\n}\n\nexport function escapeRegExpSpecChars(s: string): string {\n return s.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nexport const getRandomID = (): string => Math.random().toString(16).slice(2);\n\nexport const isExternalLink = (link: string): boolean => {\n return new RegExp(`^(https?:)?//${isBrowser ? `(?!${window.location.host})` : ``}\\\\S+`, 'gi').test(link);\n};\n\n/**\n * Check if the given ReactNode is an element of the specified ReactUI component\n */\nexport const isReactUINode = (componentName: string, node: React.ReactNode): boolean => {\n if (React.isValidElement(node)) {\n return (\n Object.prototype.hasOwnProperty.call(node.type, '__KONTUR_REACT_UI__') &&\n // @ts-ignore\n node.type.__KONTUR_REACT_UI__ === componentName\n );\n }\n\n return false;\n};\n\n/**\n * Проверяет, не является ли переданный аргумент null или undefined и исключает типы null и undefined из типа аргумента\n *\n * @param value Значение, которое нужно проверить и исключить из него типы\n * @returns Возвращает true, если переданный аргумент не является null или undefined иначе false\n */\nexport const isNonNullable = <T>(value: T): value is NonNullable<T> => {\n return value !== null && value !== undefined;\n};\n\n/**\n * Creates a function that checks if the given `child`\n * is an instance of some component specified by `name`.\n *\n * @param name Component name for which function will be created.\n * @returns A function that checks if the given `child` is an instance of the component specified by `name`.\n */\nexport const isReactUIComponent = <P = any>(name: string) => {\n return (child: React.ReactNode): child is React.ReactElement<P> => {\n // @ts-ignore\n return child?.type?.__KONTUR_REACT_UI__ === name;\n };\n};\n\n/**\n * Merges two or more refs into one.\n *\n * @param refs Array of refs.\n * @returns A single ref composing all the refs passed.\n *\n * @example\n * const SomeComponent = forwardRef((props, ref) => {\n * const localRef = useRef();\n *\n * return <div ref={mergeRefs([localRef, ref])} />;\n * });\n */\nexport function mergeRefs<T = any>(refs: Array<React.MutableRefObject<T> | React.LegacyRef<T>>): React.RefCallback<T> {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n return ref(value);\n } else if (isNonNullable(ref)) {\n return ((ref as React.MutableRefObject<T | null>).current = value);\n }\n });\n };\n}\n\n/**\n * Extracts all data attributes from props and returns them as well as props.\n *\n * @param props Props object to extract data attributes from.\n * @returns Separated data attributes and all other props.\n */\nexport const extractDataProps = <T>(props: T) => {\n const dataProps: Record<string, any> = {};\n const restWithoutDataProps: Record<string, any> = {};\n\n Object.entries(props).map(([name, value]) => {\n if (name.startsWith('data-')) {\n dataProps[name] = value;\n } else {\n restWithoutDataProps[name] = value;\n }\n });\n\n return { dataProps, restWithoutDataProps };\n};\n"]}
@@ -0,0 +1,123 @@
1
+ import React from 'react';
2
+
3
+ export type HTMLProps = {
4
+ a: React.AnchorHTMLAttributes<HTMLAnchorElement>;
5
+ abbr: React.HTMLAttributes<HTMLElement>;
6
+ div: React.HTMLAttributes<HTMLDivElement>;
7
+ address: React.HTMLAttributes<HTMLElement>;
8
+ area: React.AreaHTMLAttributes<HTMLAreaElement>;
9
+ article: React.HTMLAttributes<HTMLElement>;
10
+ aside: React.HTMLAttributes<HTMLElement>;
11
+ audio: React.AudioHTMLAttributes<HTMLAudioElement>;
12
+ b: React.HTMLAttributes<HTMLElement>;
13
+ base: React.BaseHTMLAttributes<HTMLBaseElement>;
14
+ bdi: React.HTMLAttributes<HTMLElement>;
15
+ bdo: React.HTMLAttributes<HTMLElement>;
16
+ big: React.HTMLAttributes<HTMLElement>;
17
+ blockquote: React.BlockquoteHTMLAttributes<HTMLElement>;
18
+ body: React.HTMLAttributes<HTMLBodyElement>;
19
+ br: React.HTMLAttributes<HTMLBRElement>;
20
+ button: React.ButtonHTMLAttributes<HTMLButtonElement>;
21
+ canvas: React.CanvasHTMLAttributes<HTMLCanvasElement>;
22
+ caption: React.HTMLAttributes<HTMLElement>;
23
+ cite: React.HTMLAttributes<HTMLElement>;
24
+ code: React.HTMLAttributes<HTMLElement>;
25
+ col: React.ColHTMLAttributes<HTMLTableColElement>;
26
+ colgroup: React.ColgroupHTMLAttributes<HTMLTableColElement>;
27
+ data: React.DataHTMLAttributes<HTMLDataElement>;
28
+ datalist: React.HTMLAttributes<HTMLDataListElement>;
29
+ dd: React.HTMLAttributes<HTMLElement>;
30
+ del: React.DelHTMLAttributes<HTMLElement>;
31
+ details: React.DetailsHTMLAttributes<HTMLElement>;
32
+ dfn: React.HTMLAttributes<HTMLElement>;
33
+ dialog: React.DialogHTMLAttributes<HTMLDialogElement>;
34
+ div: React.HTMLAttributes<HTMLDivElement>;
35
+ dl: React.HTMLAttributes<HTMLDListElement>;
36
+ dt: React.HTMLAttributes<HTMLElement>;
37
+ em: React.HTMLAttributes<HTMLElement>;
38
+ embed: React.EmbedHTMLAttributes<HTMLEmbedElement>;
39
+ fieldset: React.FieldsetHTMLAttributes<HTMLFieldSetElement>;
40
+ figcaption: React.HTMLAttributes<HTMLElement>;
41
+ figure: React.HTMLAttributes<HTMLElement>;
42
+ footer: React.HTMLAttributes<HTMLElement>;
43
+ form: React.FormHTMLAttributes<HTMLFormElement>;
44
+ h1: React.HTMLAttributes<HTMLHeadingElement>;
45
+ h2: React.HTMLAttributes<HTMLHeadingElement>;
46
+ h3: React.HTMLAttributes<HTMLHeadingElement>;
47
+ h4: React.HTMLAttributes<HTMLHeadingElement>;
48
+ h5: React.HTMLAttributes<HTMLHeadingElement>;
49
+ h6: React.HTMLAttributes<HTMLHeadingElement>;
50
+ head: React.HTMLAttributes<HTMLHeadElement>;
51
+ header: React.HTMLAttributes<HTMLElement>;
52
+ hgroup: React.HTMLAttributes<HTMLElement>;
53
+ hr: React.HTMLAttributes<HTMLHRElement>;
54
+ html: React.HtmlHTMLAttributes<HTMLHtmlElement>;
55
+ i: React.HTMLAttributes<HTMLElement>;
56
+ iframe: React.IframeHTMLAttributes<HTMLIFrameElement>;
57
+ img: React.ImgHTMLAttributes<HTMLImageElement>;
58
+ input: React.InputHTMLAttributes<HTMLInputElement>;
59
+ ins: React.InsHTMLAttributes<HTMLModElement>;
60
+ kbd: React.HTMLAttributes<HTMLElement>;
61
+ keygen: React.KeygenHTMLAttributes<HTMLElement>;
62
+ label: React.LabelHTMLAttributes<HTMLLabelElement>;
63
+ legend: React.HTMLAttributes<HTMLLegendElement>;
64
+ li: React.LiHTMLAttributes<HTMLLIElement>;
65
+ link: React.LinkHTMLAttributes<HTMLLinkElement>;
66
+ main: React.HTMLAttributes<HTMLElement>;
67
+ map: React.MapHTMLAttributes<HTMLMapElement>;
68
+ mark: React.HTMLAttributes<HTMLElement>;
69
+ menu: React.MenuHTMLAttributes<HTMLElement>;
70
+ menuitem: React.HTMLAttributes<HTMLElement>;
71
+ meta: React.MetaHTMLAttributes<HTMLMetaElement>;
72
+ meter: React.MeterHTMLAttributes<HTMLElement>;
73
+ nav: React.HTMLAttributes<HTMLElement>;
74
+ noindex: React.HTMLAttributes<HTMLElement>;
75
+ noscript: React.HTMLAttributes<HTMLElement>;
76
+ object: React.ObjectHTMLAttributes<HTMLObjectElement>;
77
+ ol: React.OlHTMLAttributes<HTMLOListElement>;
78
+ optgroup: React.OptgroupHTMLAttributes<HTMLOptGroupElement>;
79
+ option: React.OptionHTMLAttributes<HTMLOptionElement>;
80
+ output: React.OutputHTMLAttributes<HTMLElement>;
81
+ p: React.HTMLAttributes<HTMLParagraphElement>;
82
+ param: React.ParamHTMLAttributes<HTMLParamElement>;
83
+ picture: React.HTMLAttributes<HTMLElement>;
84
+ pre: React.HTMLAttributes<HTMLPreElement>;
85
+ progress: React.ProgressHTMLAttributes<HTMLProgressElement>;
86
+ q: React.QuoteHTMLAttributes<HTMLQuoteElement>;
87
+ rp: React.HTMLAttributes<HTMLElement>;
88
+ rt: React.HTMLAttributes<HTMLElement>;
89
+ ruby: React.HTMLAttributes<HTMLElement>;
90
+ s: React.HTMLAttributes<HTMLElement>;
91
+ samp: React.HTMLAttributes<HTMLElement>;
92
+ slot: React.SlotHTMLAttributes<HTMLSlotElement>;
93
+ script: React.ScriptHTMLAttributes<HTMLScriptElement>;
94
+ section: React.HTMLAttributes<HTMLElement>;
95
+ select: React.SelectHTMLAttributes<HTMLSelectElement>;
96
+ small: React.HTMLAttributes<HTMLElement>;
97
+ source: React.SourceHTMLAttributes<HTMLSourceElement>;
98
+ span: React.HTMLAttributes<HTMLSpanElement>;
99
+ strong: React.HTMLAttributes<HTMLElement>;
100
+ style: React.StyleHTMLAttributes<HTMLStyleElement>;
101
+ sub: React.HTMLAttributes<HTMLElement>;
102
+ summary: React.HTMLAttributes<HTMLElement>;
103
+ sup: React.HTMLAttributes<HTMLElement>;
104
+ table: React.TableHTMLAttributes<HTMLTableElement>;
105
+ template: React.HTMLAttributes<HTMLTemplateElement>;
106
+ tbody: React.HTMLAttributes<HTMLTableSectionElement>;
107
+ td: React.TdHTMLAttributes<HTMLTableDataCellElement>;
108
+ textarea: React.TextareaHTMLAttributes<HTMLTextAreaElement>;
109
+ tfoot: React.HTMLAttributes<HTMLTableSectionElement>;
110
+ th: React.ThHTMLAttributes<HTMLTableHeaderCellElement>;
111
+ thead: React.HTMLAttributes<HTMLTableSectionElement>;
112
+ time: React.TimeHTMLAttributes<HTMLElement>;
113
+ title: React.HTMLAttributes<HTMLTitleElement>;
114
+ tr: React.HTMLAttributes<HTMLTableRowElement>;
115
+ track: React.TrackHTMLAttributes<HTMLTrackElement>;
116
+ u: React.HTMLAttributes<HTMLElement>;
117
+ ul: React.HTMLAttributes<HTMLUListElement>;
118
+ var: React.HTMLAttributes<HTMLElement>;
119
+ video: React.VideoHTMLAttributes<HTMLVideoElement>;
120
+ wbr: React.HTMLAttributes<HTMLElement>;
121
+ webview: React.WebViewHTMLAttributes<HTMLWebViewElement>;
122
+ svg: React.SVGProps<SVGSVGElement>;
123
+ };
@@ -1,7 +1,7 @@
1
- ```jsx harmony
2
- let items = ['Grey Face', 'Grey Space', 'Kappa', 'Keepo', 'Resident Sleeper'];
3
-
4
- const [value, setValue] = React.useState('Kappa');
5
-
6
- <Autocomplete source={items} value={value} onValueChange={setValue} />;
7
- ```
1
+ ```jsx harmony
2
+ let items = ['Grey Face', 'Grey Space', 'Kappa', 'Keepo', 'Resident Sleeper'];
3
+
4
+ const [value, setValue] = React.useState('Kappa');
5
+
6
+ <Autocomplete source={items} value={value} onValueChange={setValue} />;
7
+ ```
@@ -4,6 +4,7 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
4
4
  var _class, _class2, _temp;
5
5
 
6
6
  import React from 'react';
7
+ import { isReactUIComponent } from "../../../lib/utils";
7
8
  import { isIE11, isEdge } from "../../../lib/client";
8
9
  import { keyListener } from "../../../lib/events/keyListener";
9
10
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
@@ -149,7 +150,7 @@ export var Button = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
149
150
  // on this button if somewhere on the page user presses Enter while some
150
151
  // input is focused. So we set type to 'button' by default.
151
152
  type: this.props.type,
152
- className: cx((_cx = {}, _cx[styles.root(this.theme)] = true, _cx[styles[use](this.theme)] = true, _cx[activeStyles[use](this.theme)] = active, _cx[sizeClass] = true, _cx[styles.focus(this.theme)] = isFocused && !checked, _cx[styles.checked(this.theme)] = checked, _cx[styles.disabled(this.theme)] = disabled || loading, _cx[styles.checkedDisabled(this.theme)] = checked && disabled, _cx[styles.borderless()] = borderless && !disabled && !loading && !checked && !isFocused && !active, _cx[styles.narrow()] = narrow, _cx[styles.noPadding()] = _noPadding, _cx[styles.noRightPadding()] = _noRightPadding, _cx)),
153
+ className: cx((_cx = {}, _cx[styles.root(this.theme)] = true, _cx[styles[use](this.theme)] = true, _cx[activeStyles[use](this.theme)] = active, _cx[sizeClass] = true, _cx[styles.focus(this.theme)] = isFocused, _cx[styles.checked(this.theme)] = checked, _cx[styles.checkedFocused(this.theme)] = checked && isFocused, _cx[styles.disabled(this.theme)] = disabled || loading, _cx[styles.checkedDisabled(this.theme)] = checked && disabled, _cx[styles.borderless()] = borderless && !disabled && !loading && !checked && !isFocused && !active, _cx[styles.narrow()] = narrow, _cx[styles.noPadding()] = _noPadding, _cx[styles.noRightPadding()] = _noRightPadding, _cx)),
153
154
  style: {
154
155
  borderTopLeftRadius: corners & Corners.TOP_LEFT ? 0 : undefined,
155
156
  borderTopRightRadius: corners & Corners.TOP_RIGHT ? 0 : undefined,
@@ -286,9 +287,4 @@ export var Button = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
286
287
  size: 'small',
287
288
  type: 'button'
288
289
  }, _temp)) || _class;
289
- export var isButton = function isButton(child) {
290
- var _child$type; // @ts-ignore
291
-
292
-
293
- return (child == null ? void 0 : (_child$type = child.type) == null ? void 0 : _child$type.__KONTUR_REACT_UI__) === 'Button';
294
- };
290
+ export var isButton = isReactUIComponent('Button');