@vkontakte/vkui 4.27.1 → 4.27.2

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 (159) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +47 -27
  4. package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +0 -7
  5. package/.cache/ts/src/components/Typography/Subhead/Subhead.d.ts +4 -1
  6. package/.cache/ts/src/tokenized/index.d.ts +4 -0
  7. package/CSS_GUIDE.md +145 -0
  8. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +0 -1
  9. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  10. package/dist/cjs/components/Banner/Banner.js +1 -3
  11. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  12. package/dist/cjs/components/Button/Button.js +3 -3
  13. package/dist/cjs/components/Button/Button.js.map +1 -1
  14. package/dist/cjs/components/ConfigProvider/ConfigProvider.js +33 -20
  15. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  16. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +0 -7
  17. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js +3 -5
  18. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  19. package/dist/cjs/components/FormItem/FormItem.js +0 -1
  20. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  21. package/dist/cjs/components/Header/Header.js +2 -6
  22. package/dist/cjs/components/Header/Header.js.map +1 -1
  23. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +1 -3
  24. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  25. package/dist/cjs/components/InfoRow/InfoRow.js +1 -2
  26. package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
  27. package/dist/cjs/components/Removable/Removable.js +8 -4
  28. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  29. package/dist/cjs/components/RichCell/RichCell.js +0 -1
  30. package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
  31. package/dist/cjs/components/SimpleCell/SimpleCell.js +0 -1
  32. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  33. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +1 -3
  34. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  35. package/dist/cjs/components/TextTooltip/TextTooltip.js +1 -2
  36. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  37. package/dist/cjs/components/Tooltip/Tooltip.js +1 -2
  38. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  39. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +4 -1
  40. package/dist/cjs/components/Typography/Subhead/Subhead.js +15 -8
  41. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  42. package/dist/cjs/components/Typography/Title/Title.js +1 -1
  43. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  44. package/dist/cjs/components/UsersStack/UsersStack.js +0 -1
  45. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  46. package/dist/cjs/tokenized/index.d.ts +4 -0
  47. package/dist/cjs/tokenized/index.js +16 -0
  48. package/dist/cjs/tokenized/index.js.map +1 -1
  49. package/dist/components/ActionSheetItem/ActionSheetItem.js +0 -1
  50. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  51. package/dist/components/Banner/Banner.js +1 -3
  52. package/dist/components/Banner/Banner.js.map +1 -1
  53. package/dist/components/Button/Button.js +3 -3
  54. package/dist/components/Button/Button.js.map +1 -1
  55. package/dist/components/ConfigProvider/ConfigProvider.js +30 -19
  56. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  57. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +0 -7
  58. package/dist/components/ConfigProvider/ConfigProviderContext.js +2 -3
  59. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  60. package/dist/components/FormItem/FormItem.js +0 -1
  61. package/dist/components/FormItem/FormItem.js.map +1 -1
  62. package/dist/components/Header/Header.js +2 -6
  63. package/dist/components/Header/Header.js.map +1 -1
  64. package/dist/components/HorizontalCell/HorizontalCell.js +1 -3
  65. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  66. package/dist/components/InfoRow/InfoRow.js +1 -2
  67. package/dist/components/InfoRow/InfoRow.js.map +1 -1
  68. package/dist/components/Removable/Removable.js +8 -4
  69. package/dist/components/Removable/Removable.js.map +1 -1
  70. package/dist/components/RichCell/RichCell.js +0 -1
  71. package/dist/components/RichCell/RichCell.js.map +1 -1
  72. package/dist/components/SimpleCell/SimpleCell.js +0 -1
  73. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  74. package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -3
  75. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  76. package/dist/components/TextTooltip/TextTooltip.js +1 -2
  77. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  78. package/dist/components/Tooltip/Tooltip.js +1 -2
  79. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  80. package/dist/components/Typography/Subhead/Subhead.d.ts +4 -1
  81. package/dist/components/Typography/Subhead/Subhead.js +13 -7
  82. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  83. package/dist/components/Typography/Title/Title.js +1 -1
  84. package/dist/components/Typography/Title/Title.js.map +1 -1
  85. package/dist/components/UsersStack/UsersStack.js +0 -1
  86. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  87. package/dist/components.css +1 -1
  88. package/dist/components.css.map +1 -1
  89. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +0 -1
  90. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  91. package/dist/cssm/components/Banner/Banner.js +1 -3
  92. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  93. package/dist/cssm/components/Button/Button.js +3 -3
  94. package/dist/cssm/components/Button/Button.js.map +1 -1
  95. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +30 -19
  96. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  97. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.d.ts +0 -7
  98. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +2 -3
  99. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  100. package/dist/cssm/components/FormItem/FormItem.js +0 -1
  101. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  102. package/dist/cssm/components/Header/Header.js +2 -6
  103. package/dist/cssm/components/Header/Header.js.map +1 -1
  104. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +1 -3
  105. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  106. package/dist/cssm/components/InfoRow/InfoRow.js +1 -2
  107. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  108. package/dist/cssm/components/Removable/Removable.js +8 -4
  109. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  110. package/dist/cssm/components/RichCell/RichCell.js +0 -1
  111. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  112. package/dist/cssm/components/SimpleCell/SimpleCell.js +0 -1
  113. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  114. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -3
  115. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  116. package/dist/cssm/components/TextTooltip/TextTooltip.js +1 -2
  117. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  118. package/dist/cssm/components/Tooltip/Tooltip.js +1 -2
  119. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  120. package/dist/cssm/components/Typography/Subhead/Subhead.css +1 -1
  121. package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +4 -1
  122. package/dist/cssm/components/Typography/Subhead/Subhead.js +13 -7
  123. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  124. package/dist/cssm/components/Typography/Title/Title.js +1 -1
  125. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  126. package/dist/cssm/components/UsersStack/UsersStack.js +0 -1
  127. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  128. package/dist/cssm/styles/components.css +1 -1
  129. package/dist/cssm/tokenized/index.d.ts +4 -0
  130. package/dist/cssm/tokenized/index.js +2 -0
  131. package/dist/cssm/tokenized/index.js.map +1 -1
  132. package/dist/tokenized/index.d.ts +4 -0
  133. package/dist/tokenized/index.js +2 -0
  134. package/dist/tokenized/index.js.map +1 -1
  135. package/dist/vkui.css +1 -1
  136. package/dist/vkui.css.map +1 -1
  137. package/package.json +1 -1
  138. package/src/components/ActionSheetItem/ActionSheetItem.tsx +1 -3
  139. package/src/components/Banner/Banner.tsx +1 -1
  140. package/src/components/Button/Button.tsx +3 -6
  141. package/src/components/ConfigProvider/ConfigProvider.tsx +25 -15
  142. package/src/components/ConfigProvider/ConfigProviderContext.tsx +9 -13
  143. package/src/components/FormItem/FormItem.tsx +1 -5
  144. package/src/components/Header/Header.tsx +2 -2
  145. package/src/components/HorizontalCell/HorizontalCell.tsx +1 -3
  146. package/src/components/InfoRow/InfoRow.tsx +1 -1
  147. package/src/components/Removable/Removable.tsx +9 -7
  148. package/src/components/RichCell/RichCell.tsx +1 -5
  149. package/src/components/SimpleCell/SimpleCell.tsx +1 -5
  150. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -1
  151. package/src/components/TextTooltip/TextTooltip.tsx +2 -6
  152. package/src/components/Tooltip/Tooltip.tsx +2 -6
  153. package/src/components/Typography/Subhead/Readme.md +18 -24
  154. package/src/components/Typography/Subhead/Subhead.css +22 -7
  155. package/src/components/Typography/Subhead/Subhead.tsx +23 -7
  156. package/src/components/Typography/Title/Title.tsx +1 -1
  157. package/src/components/UsersStack/Readme.md +1 -1
  158. package/src/components/UsersStack/UsersStack.tsx +1 -1
  159. package/src/tokenized/index.ts +6 -0
@@ -18,7 +18,7 @@ import { useGlobalEventListener } from "../../hooks/useGlobalEventListener";
18
18
  import Tappable from "../Tappable/Tappable";
19
19
 
20
20
  var RemovableIos = function RemovableIos(_ref) {
21
- var onRemoveClick = _ref.onRemoveClick,
21
+ var onRemove = _ref.onRemove,
22
22
  removePlaceholder = _ref.removePlaceholder,
23
23
  removePlaceholderString = _ref.removePlaceholderString,
24
24
  children = _ref.children;
@@ -27,6 +27,7 @@ var RemovableIos = function RemovableIos(_ref) {
27
27
  window = _useDOM.window;
28
28
 
29
29
  var removeButtonRef = React.useRef(null);
30
+ var disabledRef = React.useRef(true);
30
31
 
31
32
  var _React$useState = React.useState(0),
32
33
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -46,6 +47,8 @@ var RemovableIos = function RemovableIos(_ref) {
46
47
  var _removeButtonRef$curr;
47
48
 
48
49
  removeButtonRef === null || removeButtonRef === void 0 ? void 0 : (_removeButtonRef$curr = removeButtonRef.current) === null || _removeButtonRef$curr === void 0 ? void 0 : _removeButtonRef$curr.focus();
50
+ } else {
51
+ disabledRef.current = true;
49
52
  }
50
53
  };
51
54
 
@@ -57,6 +60,7 @@ var RemovableIos = function RemovableIos(_ref) {
57
60
  }
58
61
 
59
62
  var offsetWidth = removeButtonRef.current.offsetWidth;
63
+ disabledRef.current = false;
60
64
  updateRemoveOffset(offsetWidth);
61
65
  };
62
66
 
@@ -83,10 +87,10 @@ var RemovableIos = function RemovableIos(_ref) {
83
87
  Component: "button",
84
88
  hasActive: false,
85
89
  hasHover: false,
86
- disabled: removeOffset === 0,
90
+ disabled: disabledRef.current,
87
91
  getRootRef: removeButtonRef,
88
92
  vkuiClass: "Removable__remove",
89
- onClick: onRemoveClick
93
+ onClick: onRemove
90
94
  }, createScopedElement("span", {
91
95
  vkuiClass: "Removable__remove-in"
92
96
  }, removePlaceholder)));
@@ -130,7 +134,7 @@ export var Removable = function Removable(_ref2) {
130
134
  }, createScopedElement(Icon24Cancel, {
131
135
  role: "presentation"
132
136
  }))), platform === IOS && createScopedElement(RemovableIos, {
133
- onRemoveClick: onRemoveClick,
137
+ onRemove: onRemoveClick,
134
138
  removePlaceholder: removePlaceholder,
135
139
  removePlaceholderString: removePlaceholderString
136
140
  }, children));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Removable/Removable.tsx"],"names":["React","classNames","getTitleFromChildren","noop","useExternRef","usePlatform","getClassName","useAdaptivity","useDOM","ANDROID","IOS","VKCOM","Icon24Cancel","IconButton","useGlobalEventListener","Tappable","RemovableIos","onRemoveClick","removePlaceholder","removePlaceholderString","children","window","removeButtonRef","useRef","useState","removeOffset","updateRemoveOffset","capture","onRemoveTransitionEnd","current","focus","onRemoveActivateClick","e","stopPropagation","offsetWidth","transform","Removable","getRootRef","onRemove","align","restProps","platform","sizeY","ref","preventDefault"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,SAASC,UAAT;AACA,SAASC,oBAAT,EAA+BC,IAA/B;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,aAAT;AACA,SAASC,MAAT;AACA,SAASC,OAAT,EAAkBC,GAAlB,EAAuBC,KAAvB;AACA,SAASC,YAAT,QAA6B,kBAA7B;AACA,OAAOC,UAAP;AACA,SAASC,sBAAT;AACA,OAAOC,QAAP;;AAoBA,IAAMC,YAA4C,GAAG,SAA/CA,YAA+C,OAK/C;AAAA,MAJJC,aAII,QAJJA,aAII;AAAA,MAHJC,iBAGI,QAHJA,iBAGI;AAAA,MAFJC,uBAEI,QAFJA,uBAEI;AAAA,MADJC,QACI,QADJA,QACI;;AACJ,gBAAmBZ,MAAM,EAAzB;AAAA,MAAQa,MAAR,WAAQA,MAAR;;AAEA,MAAMC,eAAe,GAAGtB,KAAK,CAACuB,MAAN,CAA0B,IAA1B,CAAxB;;AACA,wBAA2CvB,KAAK,CAACwB,QAAN,CAAe,CAAf,CAA3C;AAAA;AAAA,MAAOC,YAAP;AAAA,MAAqBC,kBAArB;;AAEAZ,EAAAA,sBAAsB,CACpBO,MADoB,EAEpB,OAFoB,EAGpB,YAAM;AACJ,QAAII,YAAY,GAAG,CAAnB,EAAsB;AACpBC,MAAAA,kBAAkB,CAAC,CAAD,CAAlB;AACD;AACF,GAPmB,EAQpB;AAAEC,IAAAA,OAAO,EAAE;AAAX,GARoB,CAAtB;;AAWA,MAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,GAAM;AAClC,QAAIH,YAAY,GAAG,CAAnB,EAAsB;AAAA;;AACpBH,MAAAA,eAAe,SAAf,IAAAA,eAAe,WAAf,qCAAAA,eAAe,CAAEO,OAAjB,gFAA0BC,KAA1B;AACD;AACF,GAJD;;AAMA,MAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,CAAD,EAAyB;AACrDA,IAAAA,CAAC,CAACC,eAAF;;AACA,QAAI,CAACX,eAAe,CAACO,OAArB,EAA8B;AAC5B;AACD;;AACD,QAAQK,WAAR,GAAwBZ,eAAe,CAACO,OAAxC,CAAQK,WAAR;AACAR,IAAAA,kBAAkB,CAACQ,WAAD,CAAlB;AACD,GAPD;;AASA,SACE;AACE,IAAA,SAAS,EAAC,oBADZ;AAEE,IAAA,KAAK,EAAE;AAAEC,MAAAA,SAAS,wBAAiBV,YAAjB,aAAiBA,YAAjB,cAAiBA,YAAjB,GAAiC,CAAjC;AAAX,KAFT;AAGE,IAAA,eAAe,EAAEG;AAHnB,KAKE,oBAAC,UAAD;AACE,IAAA,SAAS,EAAE,KADb;AAEE,IAAA,QAAQ,EAAE,KAFZ;AAGE,kBAAYT,uBAHd;AAIE,IAAA,SAAS,EAAC,qCAJZ;AAKE,IAAA,OAAO,EAAEY,qBALX;AAME,IAAA,QAAQ,EAAEN,YAAY,GAAG;AAN3B,KAQE;AAAG,IAAA,SAAS,EAAC,sBAAb;AAAoC,IAAA,IAAI,EAAC;AAAzC,IARF,CALF,EAeGL,QAfH,EAiBE;AAAM,IAAA,SAAS,EAAC,mBAAhB;AAAoC,mBAAY;AAAhD,IAjBF,EAmBE,oBAAC,QAAD;AACE,IAAA,SAAS,EAAC,QADZ;AAEE,IAAA,SAAS,EAAE,KAFb;AAGE,IAAA,QAAQ,EAAE,KAHZ;AAIE,IAAA,QAAQ,EAAEK,YAAY,KAAK,CAJ7B;AAKE,IAAA,UAAU,EAAEH,eALd;AAME,IAAA,SAAS,EAAC,mBANZ;AAOE,IAAA,OAAO,EAAEL;AAPX,KASE;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAwCC,iBAAxC,CATF,CAnBF,CADF;AAiCD,CAtED;;AAkFA,OAAO,IAAMkB,SAAsC,GAAG,SAAzCA,SAAyC,QAO7B;AAAA,MANvBC,UAMuB,SANvBA,UAMuB;AAAA,MALvBjB,QAKuB,SALvBA,QAKuB;AAAA,6BAJvBkB,QAIuB;AAAA,MAJvBA,QAIuB,+BAJZnC,IAIY;AAAA,oCAHvBe,iBAGuB;AAAA,MAHvBA,iBAGuB,sCAHH,SAGG;AAAA,0BAFvBqB,KAEuB;AAAA,MAFvBA,KAEuB,4BAFf,QAEe;AAAA,MADpBC,SACoB;;AACvB,MAAMC,QAAQ,GAAGpC,WAAW,EAA5B;;AACA,uBAAkBE,aAAa,EAA/B;AAAA,MAAQmC,KAAR,kBAAQA,KAAR;;AAEA,MAAMC,GAAG,GAAGvC,YAAY,CAACiC,UAAD,CAAxB;;AAEA,MAAMpB,aAAa,GAAG,SAAhBA,aAAgB,CAACe,CAAD,EAAyB;AAC7CA,IAAAA,CAAC,CAACY,cAAF;AACAN,IAAAA,QAAQ,CAACN,CAAD,CAAR;AACD,GAHD;;AAKA,MAAMb,uBAA+B,GACnCjB,oBAAoB,CAACgB,iBAAD,CADtB;AAGA,SACE,wCACMsB,SADN;AAEE,IAAA,GAAG,EAAEG,GAFP;AAGE,IAAA,SAAS,EAAE1C,UAAU,CACnBK,YAAY,CAAC,WAAD,EAAcmC,QAAd,CADO,uBAELF,KAFK,8BAGCG,KAHD;AAHvB,MASG,CAACD,QAAQ,KAAKhC,OAAb,IAAwBgC,QAAQ,KAAK9B,KAAtC,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGS,QADH,EAGE,oBAAC,UAAD;AACE,IAAA,UAAU,EAAC,SADb;AAEE,IAAA,SAAS,EAAC,SAFZ;AAGE,IAAA,SAAS,EAAC,mBAHZ;AAIE,IAAA,OAAO,EAAEH,aAJX;AAKE,kBAAYE;AALd,KAOE,oBAAC,YAAD;AAAc,IAAA,IAAI,EAAC;AAAnB,IAPF,CAHF,CAVJ,EAyBGsB,QAAQ,KAAK/B,GAAb,IACC,oBAAC,YAAD;AACE,IAAA,aAAa,EAAEO,aADjB;AAEE,IAAA,iBAAiB,EAAEC,iBAFrB;AAGE,IAAA,uBAAuB,EAAEC;AAH3B,KAKGC,QALH,CA1BJ,CADF;AAqCD,CA1DM","sourcesContent":["import * as React from \"react\";\nimport { HasRootRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getTitleFromChildren, noop } from \"../../lib/utils\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { useDOM } from \"../../lib/dom\";\nimport { ANDROID, IOS, VKCOM } from \"../../lib/platform\";\nimport { Icon24Cancel } from \"@vkontakte/icons\";\nimport IconButton from \"../IconButton/IconButton\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport Tappable from \"../Tappable/Tappable\";\nimport \"./Removable.css\";\n\nexport interface RemovableProps {\n /**\n * iOS only. Текст в выезжающей кнопке для удаления ячейки.\n */\n removePlaceholder?: React.ReactNode;\n /**\n * Коллбэк срабатывает при клике на контрол удаления.\n */\n onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement) => void;\n}\n\ninterface RemovableIosOwnProps\n extends Pick<RemovableProps, \"removePlaceholder\"> {\n onRemoveClick?: (e: React.MouseEvent, rootEl?: HTMLElement) => void;\n removePlaceholderString?: string;\n}\n\nconst RemovableIos: React.FC<RemovableIosOwnProps> = ({\n onRemoveClick,\n removePlaceholder,\n removePlaceholderString,\n children,\n}) => {\n const { window } = useDOM();\n\n const removeButtonRef = React.useRef<HTMLElement>(null);\n const [removeOffset, updateRemoveOffset] = React.useState(0);\n\n useGlobalEventListener(\n window,\n \"click\",\n () => {\n if (removeOffset > 0) {\n updateRemoveOffset(0);\n }\n },\n { capture: true }\n );\n\n const onRemoveTransitionEnd = () => {\n if (removeOffset > 0) {\n removeButtonRef?.current?.focus();\n }\n };\n\n const onRemoveActivateClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!removeButtonRef.current) {\n return;\n }\n const { offsetWidth } = removeButtonRef.current;\n updateRemoveOffset(offsetWidth);\n };\n\n return (\n <div\n vkuiClass=\"Removable__content\"\n style={{ transform: `translateX(-${removeOffset ?? 0}px)` }}\n onTransitionEnd={onRemoveTransitionEnd}\n >\n <IconButton\n hasActive={false}\n hasHover={false}\n aria-label={removePlaceholderString}\n vkuiClass=\"Removable__action Removable__toggle\"\n onClick={onRemoveActivateClick}\n disabled={removeOffset > 0}\n >\n <i vkuiClass=\"Removable__toggle-in\" role=\"presentation\" />\n </IconButton>\n {children}\n\n <span vkuiClass=\"Removable__offset\" aria-hidden=\"true\"></span>\n\n <Tappable\n Component=\"button\"\n hasActive={false}\n hasHover={false}\n disabled={removeOffset === 0}\n getRootRef={removeButtonRef}\n vkuiClass=\"Removable__remove\"\n onClick={onRemoveClick}\n >\n <span vkuiClass=\"Removable__remove-in\">{removePlaceholder}</span>\n </Tappable>\n </div>\n );\n};\n\ninterface RemovableOwnProps\n extends React.AllHTMLAttributes<HTMLElement>,\n RemovableProps,\n HasRootRef<HTMLDivElement> {\n /**\n * Расположение кнопки удаления.\n */\n align?: \"start\" | \"center\";\n}\n\nexport const Removable: React.FC<RemovableOwnProps> = ({\n getRootRef,\n children,\n onRemove = noop,\n removePlaceholder = \"Удалить\",\n align = \"center\",\n ...restProps\n}: RemovableOwnProps) => {\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n\n const ref = useExternRef(getRootRef);\n\n const onRemoveClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onRemove(e);\n };\n\n const removePlaceholderString: string =\n getTitleFromChildren(removePlaceholder);\n\n return (\n <div\n {...restProps}\n ref={ref}\n vkuiClass={classNames(\n getClassName(\"Removable\", platform),\n `Removable--${align}`,\n `Removable--sizeY-${sizeY}`\n )}\n >\n {(platform === ANDROID || platform === VKCOM) && (\n <div vkuiClass=\"Removable__content\">\n {children}\n\n <IconButton\n activeMode=\"opacity\"\n hoverMode=\"opacity\"\n vkuiClass=\"Removable__action\"\n onClick={onRemoveClick}\n aria-label={removePlaceholderString}\n >\n <Icon24Cancel role=\"presentation\" />\n </IconButton>\n </div>\n )}\n\n {platform === IOS && (\n <RemovableIos\n onRemoveClick={onRemoveClick}\n removePlaceholder={removePlaceholder}\n removePlaceholderString={removePlaceholderString}\n >\n {children}\n </RemovableIos>\n )}\n </div>\n );\n};\n"],"file":"Removable.js"}
1
+ {"version":3,"sources":["../../../src/components/Removable/Removable.tsx"],"names":["React","classNames","getTitleFromChildren","noop","useExternRef","usePlatform","getClassName","useAdaptivity","useDOM","ANDROID","IOS","VKCOM","Icon24Cancel","IconButton","useGlobalEventListener","Tappable","RemovableIos","onRemove","removePlaceholder","removePlaceholderString","children","window","removeButtonRef","useRef","disabledRef","useState","removeOffset","updateRemoveOffset","capture","onRemoveTransitionEnd","current","focus","onRemoveActivateClick","e","stopPropagation","offsetWidth","transform","Removable","getRootRef","align","restProps","platform","sizeY","ref","onRemoveClick","preventDefault"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { HasRootRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getTitleFromChildren, noop } from \"../../lib/utils\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { useDOM } from \"../../lib/dom\";\nimport { ANDROID, IOS, VKCOM } from \"../../lib/platform\";\nimport { Icon24Cancel } from \"@vkontakte/icons\";\nimport IconButton from \"../IconButton/IconButton\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport Tappable from \"../Tappable/Tappable\";\nimport \"./Removable.css\";\n\nexport interface RemovableProps {\n /**\n * iOS only. Текст в выезжающей кнопке для удаления ячейки.\n */\n removePlaceholder?: React.ReactNode;\n /**\n * Коллбэк срабатывает при клике на контрол удаления.\n */\n onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement) => void;\n}\n\ninterface RemovableIosOwnProps extends RemovableProps {\n removePlaceholderString?: string;\n}\n\nconst RemovableIos: React.FC<RemovableIosOwnProps> = ({\n onRemove,\n removePlaceholder,\n removePlaceholderString,\n children,\n}) => {\n const { window } = useDOM();\n\n const removeButtonRef = React.useRef<HTMLElement>(null);\n const disabledRef = React.useRef(true);\n const [removeOffset, updateRemoveOffset] = React.useState(0);\n\n useGlobalEventListener(\n window,\n \"click\",\n () => {\n if (removeOffset > 0) {\n updateRemoveOffset(0);\n }\n },\n { capture: true }\n );\n\n const onRemoveTransitionEnd = () => {\n if (removeOffset > 0) {\n removeButtonRef?.current?.focus();\n } else {\n disabledRef.current = true;\n }\n };\n\n const onRemoveActivateClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!removeButtonRef.current) {\n return;\n }\n const { offsetWidth } = removeButtonRef.current;\n disabledRef.current = false;\n updateRemoveOffset(offsetWidth);\n };\n\n return (\n <div\n vkuiClass=\"Removable__content\"\n style={{ transform: `translateX(-${removeOffset ?? 0}px)` }}\n onTransitionEnd={onRemoveTransitionEnd}\n >\n <IconButton\n hasActive={false}\n hasHover={false}\n aria-label={removePlaceholderString}\n vkuiClass=\"Removable__action Removable__toggle\"\n onClick={onRemoveActivateClick}\n disabled={removeOffset > 0}\n >\n <i vkuiClass=\"Removable__toggle-in\" role=\"presentation\" />\n </IconButton>\n {children}\n\n <span vkuiClass=\"Removable__offset\" aria-hidden=\"true\"></span>\n\n <Tappable\n Component=\"button\"\n hasActive={false}\n hasHover={false}\n disabled={disabledRef.current}\n getRootRef={removeButtonRef}\n vkuiClass=\"Removable__remove\"\n onClick={onRemove}\n >\n <span vkuiClass=\"Removable__remove-in\">{removePlaceholder}</span>\n </Tappable>\n </div>\n );\n};\n\ninterface RemovableOwnProps\n extends React.AllHTMLAttributes<HTMLElement>,\n RemovableProps,\n HasRootRef<HTMLDivElement> {\n /**\n * Расположение кнопки удаления.\n */\n align?: \"start\" | \"center\";\n}\n\nexport const Removable: React.FC<RemovableOwnProps> = ({\n getRootRef,\n children,\n onRemove = noop,\n removePlaceholder = \"Удалить\",\n align = \"center\",\n ...restProps\n}: RemovableOwnProps) => {\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n\n const ref = useExternRef(getRootRef);\n\n const onRemoveClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onRemove(e);\n };\n\n const removePlaceholderString: string =\n getTitleFromChildren(removePlaceholder);\n\n return (\n <div\n {...restProps}\n ref={ref}\n vkuiClass={classNames(\n getClassName(\"Removable\", platform),\n `Removable--${align}`,\n `Removable--sizeY-${sizeY}`\n )}\n >\n {(platform === ANDROID || platform === VKCOM) && (\n <div vkuiClass=\"Removable__content\">\n {children}\n\n <IconButton\n activeMode=\"opacity\"\n hoverMode=\"opacity\"\n vkuiClass=\"Removable__action\"\n onClick={onRemoveClick}\n aria-label={removePlaceholderString}\n >\n <Icon24Cancel role=\"presentation\" />\n </IconButton>\n </div>\n )}\n\n {platform === IOS && (\n <RemovableIos\n onRemove={onRemoveClick}\n removePlaceholder={removePlaceholder}\n removePlaceholderString={removePlaceholderString}\n >\n {children}\n </RemovableIos>\n )}\n </div>\n );\n};\n"],"file":"Removable.js"}
@@ -42,7 +42,6 @@ var RichCell = function RichCell(_ref) {
42
42
  vkuiClass: "RichCell__text"
43
43
  }, text), hasReactNode(caption) && createScopedElement(Subhead, {
44
44
  Component: "span",
45
- weight: "regular",
46
45
  vkuiClass: "RichCell__caption"
47
46
  }, caption), (hasReactNode(bottom) || hasReactNode(actions)) && createScopedElement("div", {
48
47
  vkuiClass: "RichCell__bottom"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/RichCell/RichCell.tsx"],"names":["classNames","usePlatform","getClassName","Tappable","hasReactNode","Text","Subhead","withAdaptivity","RichCell","children","text","caption","before","after","bottom","actions","multiline","sizeY","restProps","platform"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,OAAOC,QAAP;AACA,SAASC,YAAT;AACA,OAAOC,IAAP;AACA,OAAOC,OAAP;AACA,SAASC,cAAT;;AAmCA,IAAMC,QAAiC,GAAG,SAApCA,QAAoC,OAWpC;AAAA,MAVJC,QAUI,QAVJA,QAUI;AAAA,MATJC,IASI,QATJA,IASI;AAAA,MARJC,OAQI,QARJA,OAQI;AAAA,MAPJC,MAOI,QAPJA,MAOI;AAAA,MANJC,KAMI,QANJA,KAMI;AAAA,MALJC,MAKI,QALJA,MAKI;AAAA,MAJJC,OAII,QAJJA,OAII;AAAA,MAHJC,SAGI,QAHJA,SAGI;AAAA,MAFJC,KAEI,QAFJA,KAEI;AAAA,MADDC,SACC;;AACJ,MAAMC,QAAQ,GAAGlB,WAAW,EAA5B;AAEA,SACE,oBAAC,QAAD,eACMiB,SADN;AAEE,IAAA,SAAS,EAAElB,UAAU,CACnBE,YAAY,CAAC,UAAD,EAAaiB,QAAb,CADO,EAEnB;AACE,wBAAkBH;AADpB,KAFmB,4BAKAC,KALA;AAFvB,MAUGL,MAVH,EAWE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEGC,KAFH,EAGE,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC,QAAb;AAAsB,IAAA,SAAS,EAAC;AAAhC,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAAqCJ,QAArC,CADF,EAEGL,YAAY,CAACS,KAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCA,KAAlC,CAHJ,CAHF,EASGT,YAAY,CAACM,IAAD,CAAZ,IACC,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC,SAAb;AAAuB,IAAA,SAAS,EAAC;AAAjC,KACGA,IADH,CAVJ,EAcGN,YAAY,CAACO,OAAD,CAAZ,IACC,oBAAC,OAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,MAAM,EAAC,SAFT;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGA,OALH,CAfJ,EAuBG,CAACP,YAAY,CAACU,MAAD,CAAZ,IAAwBV,YAAY,CAACW,OAAD,CAArC,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGD,MADH,EAEGV,YAAY,CAACW,OAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAoCA,OAApC,CAHJ,CAxBJ,CAXF,CADF;AA8CD,CA5DD,C,CA8DA;;;AACA,eAAeR,cAAc,CAACC,QAAD,EAAW;AAAES,EAAAA,KAAK,EAAE;AAAT,CAAX,CAA7B","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport \"./RichCell.css\";\n\nexport interface RichCellProps extends TappableProps {\n /**\n * Контейнер для текста под `children`.\n */\n text?: React.ReactNode;\n /**\n * Контейнер для текста под `text`.\n */\n caption?: React.ReactNode;\n /**\n * Контейнер для контента под `caption`. Например `<UsersStack size=\"s\" />`\n */\n bottom?: React.ReactNode;\n /**\n * Кнопка или набор кнопок `<Button size=\"s\" />`. Располагается под `bottom`.\n */\n actions?: React.ReactNode;\n /**\n * `<Avatar size={48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 28 или текст\n */\n after?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n multiline?: boolean;\n}\n\nconst RichCell: React.FC<RichCellProps> = ({\n children,\n text,\n caption,\n before,\n after,\n bottom,\n actions,\n multiline,\n sizeY,\n ...restProps\n}) => {\n const platform = usePlatform();\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"RichCell\", platform),\n {\n \"RichCell--mult\": multiline,\n },\n `RichCell--sizeY-${sizeY}`\n )}\n >\n {before}\n <div vkuiClass=\"RichCell__in\">\n {/* Этот after будет скрыт из верстки. Он нужен для CSS */}\n {after}\n <Text weight=\"medium\" vkuiClass=\"RichCell__content\">\n <div vkuiClass=\"RichCell__children\">{children}</div>\n {hasReactNode(after) && (\n <div vkuiClass=\"RichCell__after\">{after}</div>\n )}\n </Text>\n {hasReactNode(text) && (\n <Text weight=\"regular\" vkuiClass=\"RichCell__text\">\n {text}\n </Text>\n )}\n {hasReactNode(caption) && (\n <Subhead\n Component=\"span\"\n weight=\"regular\"\n vkuiClass=\"RichCell__caption\"\n >\n {caption}\n </Subhead>\n )}\n {(hasReactNode(bottom) || hasReactNode(actions)) && (\n <div vkuiClass=\"RichCell__bottom\">\n {bottom}\n {hasReactNode(actions) && (\n <div vkuiClass=\"RichCell__actions\">{actions}</div>\n )}\n </div>\n )}\n </div>\n </Tappable>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(RichCell, { sizeY: true });\n"],"file":"RichCell.js"}
1
+ {"version":3,"sources":["../../../src/components/RichCell/RichCell.tsx"],"names":["classNames","usePlatform","getClassName","Tappable","hasReactNode","Text","Subhead","withAdaptivity","RichCell","children","text","caption","before","after","bottom","actions","multiline","sizeY","restProps","platform"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,OAAOC,QAAP;AACA,SAASC,YAAT;AACA,OAAOC,IAAP;AACA,OAAOC,OAAP;AACA,SAASC,cAAT;;AAmCA,IAAMC,QAAiC,GAAG,SAApCA,QAAoC,OAWpC;AAAA,MAVJC,QAUI,QAVJA,QAUI;AAAA,MATJC,IASI,QATJA,IASI;AAAA,MARJC,OAQI,QARJA,OAQI;AAAA,MAPJC,MAOI,QAPJA,MAOI;AAAA,MANJC,KAMI,QANJA,KAMI;AAAA,MALJC,MAKI,QALJA,MAKI;AAAA,MAJJC,OAII,QAJJA,OAII;AAAA,MAHJC,SAGI,QAHJA,SAGI;AAAA,MAFJC,KAEI,QAFJA,KAEI;AAAA,MADDC,SACC;;AACJ,MAAMC,QAAQ,GAAGlB,WAAW,EAA5B;AAEA,SACE,oBAAC,QAAD,eACMiB,SADN;AAEE,IAAA,SAAS,EAAElB,UAAU,CACnBE,YAAY,CAAC,UAAD,EAAaiB,QAAb,CADO,EAEnB;AACE,wBAAkBH;AADpB,KAFmB,4BAKAC,KALA;AAFvB,MAUGL,MAVH,EAWE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEGC,KAFH,EAGE,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC,QAAb;AAAsB,IAAA,SAAS,EAAC;AAAhC,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAAqCJ,QAArC,CADF,EAEGL,YAAY,CAACS,KAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCA,KAAlC,CAHJ,CAHF,EASGT,YAAY,CAACM,IAAD,CAAZ,IACC,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC,SAAb;AAAuB,IAAA,SAAS,EAAC;AAAjC,KACGA,IADH,CAVJ,EAcGN,YAAY,CAACO,OAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC,MAAnB;AAA0B,IAAA,SAAS,EAAC;AAApC,KACGA,OADH,CAfJ,EAmBG,CAACP,YAAY,CAACU,MAAD,CAAZ,IAAwBV,YAAY,CAACW,OAAD,CAArC,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGD,MADH,EAEGV,YAAY,CAACW,OAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAoCA,OAApC,CAHJ,CApBJ,CAXF,CADF;AA0CD,CAxDD,C,CA0DA;;;AACA,eAAeR,cAAc,CAACC,QAAD,EAAW;AAAES,EAAAA,KAAK,EAAE;AAAT,CAAX,CAA7B","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport \"./RichCell.css\";\n\nexport interface RichCellProps extends TappableProps {\n /**\n * Контейнер для текста под `children`.\n */\n text?: React.ReactNode;\n /**\n * Контейнер для текста под `text`.\n */\n caption?: React.ReactNode;\n /**\n * Контейнер для контента под `caption`. Например `<UsersStack size=\"s\" />`\n */\n bottom?: React.ReactNode;\n /**\n * Кнопка или набор кнопок `<Button size=\"s\" />`. Располагается под `bottom`.\n */\n actions?: React.ReactNode;\n /**\n * `<Avatar size={48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 28 или текст\n */\n after?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n multiline?: boolean;\n}\n\nconst RichCell: React.FC<RichCellProps> = ({\n children,\n text,\n caption,\n before,\n after,\n bottom,\n actions,\n multiline,\n sizeY,\n ...restProps\n}) => {\n const platform = usePlatform();\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"RichCell\", platform),\n {\n \"RichCell--mult\": multiline,\n },\n `RichCell--sizeY-${sizeY}`\n )}\n >\n {before}\n <div vkuiClass=\"RichCell__in\">\n {/* Этот after будет скрыт из верстки. Он нужен для CSS */}\n {after}\n <Text weight=\"medium\" vkuiClass=\"RichCell__content\">\n <div vkuiClass=\"RichCell__children\">{children}</div>\n {hasReactNode(after) && (\n <div vkuiClass=\"RichCell__after\">{after}</div>\n )}\n </Text>\n {hasReactNode(text) && (\n <Text weight=\"regular\" vkuiClass=\"RichCell__text\">\n {text}\n </Text>\n )}\n {hasReactNode(caption) && (\n <Subhead Component=\"span\" vkuiClass=\"RichCell__caption\">\n {caption}\n </Subhead>\n )}\n {(hasReactNode(bottom) || hasReactNode(actions)) && (\n <div vkuiClass=\"RichCell__bottom\">\n {bottom}\n {hasReactNode(actions) && (\n <div vkuiClass=\"RichCell__actions\">{actions}</div>\n )}\n </div>\n )}\n </div>\n </Tappable>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(RichCell, { sizeY: true });\n"],"file":"RichCell.js"}
@@ -70,7 +70,6 @@ var SimpleCell = function SimpleCell(_ref) {
70
70
  vkuiClass: "SimpleCell__badge"
71
71
  }, badge)), description && createScopedElement(Subhead, {
72
72
  Component: "span",
73
- weight: "regular",
74
73
  vkuiClass: "SimpleCell__description"
75
74
  }, description)), hasReactNode(indicator) && createScopedElement(SimpleCellTypography, {
76
75
  Component: "span",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SimpleCell/SimpleCell.tsx"],"names":["classNames","getClassName","Tappable","Icon24Chevron","ANDROID","IOS","usePlatform","hasReactNode","useAdaptivity","withAdaptivity","SizeType","Title","Text","Subhead","Headline","SimpleCellTypography","props","sizeY","platform","COMPACT","SimpleCell","badge","before","indicator","children","after","description","expandable","multiline","restProps","hasAfter"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { Icon24Chevron } from \"@vkontakte/icons\";\nimport { ANDROID, IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { withAdaptivity, SizeType } from \"../../hoc/withAdaptivity\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport \"./SimpleCell.css\";\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badge?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Контейнер для текста под `children`.\n */\n description?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n /**\n * В iOS добавляет chevron справа. Передавать `true`, если предполагается переход при клике по ячейке.\n */\n expandable?: boolean;\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {}\n\ntype SimpleCellTypographyProps = React.HTMLAttributes<HTMLDivElement> &\n HasComponent;\n\nconst SimpleCellTypography: React.FC<SimpleCellTypographyProps> = (\n props: SimpleCellTypographyProps\n) => {\n const { sizeY } = useAdaptivity();\n const platform = usePlatform();\n\n if (sizeY === SizeType.COMPACT) {\n return <Text Component=\"span\" weight=\"regular\" {...props} />;\n } else if (platform === ANDROID) {\n return <Headline Component=\"span\" weight=\"regular\" {...props} />;\n } else {\n return <Title Component=\"span\" level=\"3\" weight=\"3\" {...props} />;\n }\n};\n\nconst SimpleCell: React.FC<SimpleCellProps> = ({\n badge,\n before,\n indicator,\n children,\n after,\n description,\n expandable,\n multiline,\n sizeY,\n ...restProps\n}: SimpleCellProps) => {\n const platform = usePlatform();\n const hasAfter = hasReactNode(after) || (expandable && platform === IOS);\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"SimpleCell\", platform),\n {\n \"SimpleCell--exp\": expandable,\n \"SimpleCell--mult\": multiline,\n },\n `SimpleCell--sizeY-${sizeY}`\n )}\n >\n {before}\n <div vkuiClass=\"SimpleCell__main\">\n <div vkuiClass=\"SimpleCell__content\">\n <SimpleCellTypography vkuiClass=\"SimpleCell__children\">\n {children}\n </SimpleCellTypography>\n {hasReactNode(badge) && (\n <span vkuiClass=\"SimpleCell__badge\">{badge}</span>\n )}\n </div>\n {description && (\n <Subhead\n Component=\"span\"\n weight=\"regular\"\n vkuiClass=\"SimpleCell__description\"\n >\n {description}\n </Subhead>\n )}\n </div>\n {hasReactNode(indicator) && (\n <SimpleCellTypography\n Component=\"span\"\n vkuiClass=\"SimpleCell__indicator\"\n >\n {indicator}\n </SimpleCellTypography>\n )}\n {hasAfter && (\n <div vkuiClass=\"SimpleCell__after\">\n {after}\n {expandable && platform === IOS && <Icon24Chevron />}\n </div>\n )}\n </Tappable>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(SimpleCell, { sizeY: true });\n"],"file":"SimpleCell.js"}
1
+ {"version":3,"sources":["../../../src/components/SimpleCell/SimpleCell.tsx"],"names":["classNames","getClassName","Tappable","Icon24Chevron","ANDROID","IOS","usePlatform","hasReactNode","useAdaptivity","withAdaptivity","SizeType","Title","Text","Subhead","Headline","SimpleCellTypography","props","sizeY","platform","COMPACT","SimpleCell","badge","before","indicator","children","after","description","expandable","multiline","restProps","hasAfter"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { Icon24Chevron } from \"@vkontakte/icons\";\nimport { ANDROID, IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { withAdaptivity, SizeType } from \"../../hoc/withAdaptivity\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport \"./SimpleCell.css\";\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badge?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Контейнер для текста под `children`.\n */\n description?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n /**\n * В iOS добавляет chevron справа. Передавать `true`, если предполагается переход при клике по ячейке.\n */\n expandable?: boolean;\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {}\n\ntype SimpleCellTypographyProps = React.HTMLAttributes<HTMLDivElement> &\n HasComponent;\n\nconst SimpleCellTypography: React.FC<SimpleCellTypographyProps> = (\n props: SimpleCellTypographyProps\n) => {\n const { sizeY } = useAdaptivity();\n const platform = usePlatform();\n\n if (sizeY === SizeType.COMPACT) {\n return <Text Component=\"span\" weight=\"regular\" {...props} />;\n } else if (platform === ANDROID) {\n return <Headline Component=\"span\" weight=\"regular\" {...props} />;\n } else {\n return <Title Component=\"span\" level=\"3\" weight=\"3\" {...props} />;\n }\n};\n\nconst SimpleCell: React.FC<SimpleCellProps> = ({\n badge,\n before,\n indicator,\n children,\n after,\n description,\n expandable,\n multiline,\n sizeY,\n ...restProps\n}: SimpleCellProps) => {\n const platform = usePlatform();\n const hasAfter = hasReactNode(after) || (expandable && platform === IOS);\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"SimpleCell\", platform),\n {\n \"SimpleCell--exp\": expandable,\n \"SimpleCell--mult\": multiline,\n },\n `SimpleCell--sizeY-${sizeY}`\n )}\n >\n {before}\n <div vkuiClass=\"SimpleCell__main\">\n <div vkuiClass=\"SimpleCell__content\">\n <SimpleCellTypography vkuiClass=\"SimpleCell__children\">\n {children}\n </SimpleCellTypography>\n {hasReactNode(badge) && (\n <span vkuiClass=\"SimpleCell__badge\">{badge}</span>\n )}\n </div>\n {description && (\n <Subhead Component=\"span\" vkuiClass=\"SimpleCell__description\">\n {description}\n </Subhead>\n )}\n </div>\n {hasReactNode(indicator) && (\n <SimpleCellTypography\n Component=\"span\"\n vkuiClass=\"SimpleCell__indicator\"\n >\n {indicator}\n </SimpleCellTypography>\n )}\n {hasAfter && (\n <div vkuiClass=\"SimpleCell__after\">\n {after}\n {expandable && platform === IOS && <Icon24Chevron />}\n </div>\n )}\n </Tappable>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(SimpleCell, { sizeY: true });\n"],"file":"SimpleCell.js"}
@@ -17,9 +17,7 @@ var SubnavigationButtonTypography = function SubnavigationButtonTypography(_ref)
17
17
  restProps = _objectWithoutProperties(_ref, _excluded);
18
18
 
19
19
  if (textLevel === 1) {
20
- return createScopedElement(Subhead, _extends({
21
- weight: "regular"
22
- }, restProps));
20
+ return createScopedElement(Subhead, restProps);
23
21
  }
24
22
 
25
23
  return createScopedElement(Caption, _extends({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"names":["classNames","getClassName","getTitleFromChildren","hasReactNode","Tappable","Icon16Dropdown","usePlatform","Caption","Subhead","SubnavigationButtonTypography","textLevel","restProps","SubnavigationButton","props","platform","size","selected","before","after","expandable","children","defaultProps"],"mappings":";;;;;AAEA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAASC,oBAAT,EAA+BC,YAA/B;AACA,OAAOC,QAAP;AACA,SAASC,cAAT,QAA+B,kBAA/B;AACA,SAASC,WAAT;AACA,OAAOC,OAAP;AACA,OAAOC,OAAP;;AAwBA,IAAMC,6BAAoE,GAAG,SAAvEA,6BAAuE,OAG1C;AAAA,MAFjCC,SAEiC,QAFjCA,SAEiC;AAAA,MAD9BC,SAC8B;;AACjC,MAAID,SAAS,KAAK,CAAlB,EAAqB;AACnB,WAAO,oBAAC,OAAD;AAAS,MAAA,MAAM,EAAC;AAAhB,OAA8BC,SAA9B,EAAP;AACD;;AAED,SACE,oBAAC,OAAD;AACE,IAAA,KAAK,EAAED,SAAS,KAAK,CAAd,GAAkB,GAAlB,GAAwB,GADjC;AAEE,IAAA,MAAM,EAAC;AAFT,KAGMC,SAHN,EADF;AAOD,CAfD;;AAiBA,OAAO,IAAMC,mBAAuD,GAAG,SAA1DA,mBAA0D,CACrEC,KADqE,EAElE;AACH,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;;AACA,MACES,IADF,GASIF,KATJ,CACEE,IADF;AAAA,MAEEC,QAFF,GASIH,KATJ,CAEEG,QAFF;AAAA,MAGEN,SAHF,GASIG,KATJ,CAGEH,SAHF;AAAA,MAIEO,MAJF,GASIJ,KATJ,CAIEI,MAJF;AAAA,MAKEC,KALF,GASIL,KATJ,CAKEK,KALF;AAAA,MAMEC,UANF,GASIN,KATJ,CAMEM,UANF;AAAA,MAOEC,QAPF,GASIP,KATJ,CAOEO,QAPF;AAAA,MAQKT,SARL,4BASIE,KATJ;;AAWA,SACE,oBAAC,QAAD,eACMF,SADN;AAEE,IAAA,SAAS,EAAE,KAFb;AAGE,IAAA,gBAAgB,EAAC,SAHnB;AAIE,IAAA,SAAS,EAAEX,UAAU,CACnBC,YAAY,CAAC,qBAAD,EAAwBa,QAAxB,CADO,iCAEKC,IAFL,GAGnB;AACE,uCAAiCC;AADnC,KAHmB,CAJvB;AAWE,kBAAYd,oBAAoB,CAACkB,QAAD;AAXlC,MAaE;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGjB,YAAY,CAACc,MAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA+CA,MAA/C,CAFJ,EAIE,oBAAC,6BAAD;AACE,IAAA,SAAS,EAAEP,SADb;AAEE,IAAA,SAAS,EAAC,4BAFZ;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGU,QALH,CAJF,EAWGjB,YAAY,CAACe,KAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA8CA,KAA9C,CAZJ,EAcGC,UAAU,IACT,oBAAC,cAAD;AAAgB,IAAA,SAAS,EAAC;AAA1B,IAfJ,CAbF,CADF;AAkCD,CAjDM;AAmDPP,mBAAmB,CAACS,YAApB,GAAmC;AACjCN,EAAAA,IAAI,EAAE,GAD2B;AAEjCL,EAAAA,SAAS,EAAE;AAFsB,CAAnC","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { getTitleFromChildren, hasReactNode } from \"../../lib/utils\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { Icon16Dropdown } from \"@vkontakte/icons\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport \"./SubnavigationButton.css\";\n\nexport interface SubnavigationButtonProps extends Omit<TappableProps, \"size\"> {\n size?: \"m\" | \"l\";\n selected?: boolean;\n /**\n * Размер шрифта. Этим свойством рекомендуется пользоваться, чтобы отрегулировать размер шрифта у кнопок в `<SubnavigationBar mode=\"fixed\" />`\n */\n textLevel?: 1 | 2 | 3;\n /**\n * Рекомендуется использовать только иконки с размером 24\n */\n before?: React.ReactNode;\n /**\n * Рекомендуется использовать только `<Counter size=\"s\" />` или `<Badge />`\n */\n after?: React.ReactNode;\n expandable?: boolean;\n}\n\ntype SubnavButtonTypographyProps = Pick<SubnavigationButtonProps, \"textLevel\"> &\n HasComponent;\n\nconst SubnavigationButtonTypography: React.FC<SubnavButtonTypographyProps> = ({\n textLevel,\n ...restProps\n}: SubnavButtonTypographyProps) => {\n if (textLevel === 1) {\n return <Subhead weight=\"regular\" {...restProps} />;\n }\n\n return (\n <Caption\n level={textLevel === 2 ? \"1\" : \"2\"}\n weight=\"regular\"\n {...restProps}\n />\n );\n};\n\nexport const SubnavigationButton: React.FC<SubnavigationButtonProps> = (\n props: SubnavigationButtonProps\n) => {\n const platform = usePlatform();\n const {\n size,\n selected,\n textLevel,\n before,\n after,\n expandable,\n children,\n ...restProps\n } = props;\n\n return (\n <Tappable\n {...restProps}\n hasActive={false}\n focusVisibleMode=\"outside\"\n vkuiClass={classNames(\n getClassName(\"SubnavigationButton\", platform),\n `SubnavigationButton--${size}`,\n {\n \"SubnavigationButton--selected\": selected,\n }\n )}\n aria-label={getTitleFromChildren(children)}\n >\n <span vkuiClass=\"SubnavigationButton__in\">\n {hasReactNode(before) && (\n <span vkuiClass=\"SubnavigationButton__before\">{before}</span>\n )}\n <SubnavigationButtonTypography\n textLevel={textLevel}\n vkuiClass=\"SubnavigationButton__label\"\n Component=\"span\"\n >\n {children}\n </SubnavigationButtonTypography>\n {hasReactNode(after) && (\n <span vkuiClass=\"SubnavigationButton__after\">{after}</span>\n )}\n {expandable && (\n <Icon16Dropdown vkuiClass=\"SubnavigationButton__expandableIcon\" />\n )}\n </span>\n </Tappable>\n );\n};\n\nSubnavigationButton.defaultProps = {\n size: \"m\",\n textLevel: 1,\n};\n"],"file":"SubnavigationButton.js"}
1
+ {"version":3,"sources":["../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"names":["classNames","getClassName","getTitleFromChildren","hasReactNode","Tappable","Icon16Dropdown","usePlatform","Caption","Subhead","SubnavigationButtonTypography","textLevel","restProps","SubnavigationButton","props","platform","size","selected","before","after","expandable","children","defaultProps"],"mappings":";;;;;AAEA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAASC,oBAAT,EAA+BC,YAA/B;AACA,OAAOC,QAAP;AACA,SAASC,cAAT,QAA+B,kBAA/B;AACA,SAASC,WAAT;AACA,OAAOC,OAAP;AACA,OAAOC,OAAP;;AAwBA,IAAMC,6BAAoE,GAAG,SAAvEA,6BAAuE,OAG1C;AAAA,MAFjCC,SAEiC,QAFjCA,SAEiC;AAAA,MAD9BC,SAC8B;;AACjC,MAAID,SAAS,KAAK,CAAlB,EAAqB;AACnB,WAAO,oBAAC,OAAD,EAAaC,SAAb,CAAP;AACD;;AAED,SACE,oBAAC,OAAD;AACE,IAAA,KAAK,EAAED,SAAS,KAAK,CAAd,GAAkB,GAAlB,GAAwB,GADjC;AAEE,IAAA,MAAM,EAAC;AAFT,KAGMC,SAHN,EADF;AAOD,CAfD;;AAiBA,OAAO,IAAMC,mBAAuD,GAAG,SAA1DA,mBAA0D,CACrEC,KADqE,EAElE;AACH,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;;AACA,MACES,IADF,GASIF,KATJ,CACEE,IADF;AAAA,MAEEC,QAFF,GASIH,KATJ,CAEEG,QAFF;AAAA,MAGEN,SAHF,GASIG,KATJ,CAGEH,SAHF;AAAA,MAIEO,MAJF,GASIJ,KATJ,CAIEI,MAJF;AAAA,MAKEC,KALF,GASIL,KATJ,CAKEK,KALF;AAAA,MAMEC,UANF,GASIN,KATJ,CAMEM,UANF;AAAA,MAOEC,QAPF,GASIP,KATJ,CAOEO,QAPF;AAAA,MAQKT,SARL,4BASIE,KATJ;;AAWA,SACE,oBAAC,QAAD,eACMF,SADN;AAEE,IAAA,SAAS,EAAE,KAFb;AAGE,IAAA,gBAAgB,EAAC,SAHnB;AAIE,IAAA,SAAS,EAAEX,UAAU,CACnBC,YAAY,CAAC,qBAAD,EAAwBa,QAAxB,CADO,iCAEKC,IAFL,GAGnB;AACE,uCAAiCC;AADnC,KAHmB,CAJvB;AAWE,kBAAYd,oBAAoB,CAACkB,QAAD;AAXlC,MAaE;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGjB,YAAY,CAACc,MAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA+CA,MAA/C,CAFJ,EAIE,oBAAC,6BAAD;AACE,IAAA,SAAS,EAAEP,SADb;AAEE,IAAA,SAAS,EAAC,4BAFZ;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGU,QALH,CAJF,EAWGjB,YAAY,CAACe,KAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA8CA,KAA9C,CAZJ,EAcGC,UAAU,IACT,oBAAC,cAAD;AAAgB,IAAA,SAAS,EAAC;AAA1B,IAfJ,CAbF,CADF;AAkCD,CAjDM;AAmDPP,mBAAmB,CAACS,YAApB,GAAmC;AACjCN,EAAAA,IAAI,EAAE,GAD2B;AAEjCL,EAAAA,SAAS,EAAE;AAFsB,CAAnC","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { getTitleFromChildren, hasReactNode } from \"../../lib/utils\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { Icon16Dropdown } from \"@vkontakte/icons\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport \"./SubnavigationButton.css\";\n\nexport interface SubnavigationButtonProps extends Omit<TappableProps, \"size\"> {\n size?: \"m\" | \"l\";\n selected?: boolean;\n /**\n * Размер шрифта. Этим свойством рекомендуется пользоваться, чтобы отрегулировать размер шрифта у кнопок в `<SubnavigationBar mode=\"fixed\" />`\n */\n textLevel?: 1 | 2 | 3;\n /**\n * Рекомендуется использовать только иконки с размером 24\n */\n before?: React.ReactNode;\n /**\n * Рекомендуется использовать только `<Counter size=\"s\" />` или `<Badge />`\n */\n after?: React.ReactNode;\n expandable?: boolean;\n}\n\ntype SubnavButtonTypographyProps = Pick<SubnavigationButtonProps, \"textLevel\"> &\n HasComponent;\n\nconst SubnavigationButtonTypography: React.FC<SubnavButtonTypographyProps> = ({\n textLevel,\n ...restProps\n}: SubnavButtonTypographyProps) => {\n if (textLevel === 1) {\n return <Subhead {...restProps} />;\n }\n\n return (\n <Caption\n level={textLevel === 2 ? \"1\" : \"2\"}\n weight=\"regular\"\n {...restProps}\n />\n );\n};\n\nexport const SubnavigationButton: React.FC<SubnavigationButtonProps> = (\n props: SubnavigationButtonProps\n) => {\n const platform = usePlatform();\n const {\n size,\n selected,\n textLevel,\n before,\n after,\n expandable,\n children,\n ...restProps\n } = props;\n\n return (\n <Tappable\n {...restProps}\n hasActive={false}\n focusVisibleMode=\"outside\"\n vkuiClass={classNames(\n getClassName(\"SubnavigationButton\", platform),\n `SubnavigationButton--${size}`,\n {\n \"SubnavigationButton--selected\": selected,\n }\n )}\n aria-label={getTitleFromChildren(children)}\n >\n <span vkuiClass=\"SubnavigationButton__in\">\n {hasReactNode(before) && (\n <span vkuiClass=\"SubnavigationButton__before\">{before}</span>\n )}\n <SubnavigationButtonTypography\n textLevel={textLevel}\n vkuiClass=\"SubnavigationButton__label\"\n Component=\"span\"\n >\n {children}\n </SubnavigationButtonTypography>\n {hasReactNode(after) && (\n <span vkuiClass=\"SubnavigationButton__after\">{after}</span>\n )}\n {expandable && (\n <Icon16Dropdown vkuiClass=\"SubnavigationButton__expandableIcon\" />\n )}\n </span>\n </Tappable>\n );\n};\n\nSubnavigationButton.defaultProps = {\n size: \"m\",\n textLevel: 1,\n};\n"],"file":"SubnavigationButton.js"}
@@ -22,11 +22,10 @@ export var TextTooltip = function TextTooltip(_ref) {
22
22
  arrowClassName: prefixClass("TextTooltip__arrow"),
23
23
  content: createScopedElement(React.Fragment, null, hasReactNode(header) && createScopedElement(Subhead, {
24
24
  Component: "span",
25
- weight: "medium",
25
+ weight: "2",
26
26
  vkuiClass: "TextTooltip__header"
27
27
  }, header), hasReactNode(text) && createScopedElement(Subhead, {
28
28
  Component: "span",
29
- weight: "regular",
30
29
  vkuiClass: "TextTooltip__text"
31
30
  }, text))
32
31
  }, popperProps), children);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/TextTooltip/TextTooltip.tsx"],"names":["React","HoverPopper","getClassName","usePlatform","hasReactNode","Subhead","prefixClass","TextTooltip","children","text","header","popperProps","platform"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,OAAOC,OAAP;AACA,SAASC,WAAT;AAeA,OAAO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,OAK/B;AAAA,MAJtBC,QAIsB,QAJtBA,QAIsB;AAAA,MAHtBC,IAGsB,QAHtBA,IAGsB;AAAA,MAFtBC,MAEsB,QAFtBA,MAEsB;AAAA,MADnBC,WACmB;;AACtB,MAAMC,QAAQ,GAAGT,WAAW,EAA5B;AAEA,SACE,oBAAC,WAAD;AACE,IAAA,SAAS,EAAED,YAAY,CAAC,aAAD,EAAgBU,QAAhB,CADzB;AAEE,IAAA,KAAK,MAFP;AAGE,IAAA,cAAc,EAAEN,WAAW,CAAC,oBAAD,CAH7B;AAIE,IAAA,OAAO,EACL,oBAAC,KAAD,CAAO,QAAP,QACGF,YAAY,CAACM,MAAD,CAAZ,IACC,oBAAC,OAAD;AACE,MAAA,SAAS,EAAC,MADZ;AAEE,MAAA,MAAM,EAAC,QAFT;AAGE,MAAA,SAAS,EAAC;AAHZ,OAKGA,MALH,CAFJ,EAUGN,YAAY,CAACK,IAAD,CAAZ,IACC,oBAAC,OAAD;AACE,MAAA,SAAS,EAAC,MADZ;AAEE,MAAA,MAAM,EAAC,SAFT;AAGE,MAAA,SAAS,EAAC;AAHZ,OAKGA,IALH,CAXJ;AALJ,KA0BME,WA1BN,GA4BGH,QA5BH,CADF;AAgCD,CAxCM","sourcesContent":["import * as React from \"react\";\nimport { HoverPopper, HoverPopperProps } from \"../HoverPopper/HoverPopper\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport \"./TextTooltip.css\";\n\nexport interface TextTooltipProps\n extends Omit<HoverPopperProps, \"arrow\" | \"arrowClassName\" | \"content\"> {\n /**\n * Текст тултипа\n */\n text?: React.ReactNode;\n /**\n * Заголовок тултипа\n */\n header?: React.ReactNode;\n}\n\nexport const TextTooltip: React.FC<TextTooltipProps> = ({\n children,\n text,\n header,\n ...popperProps\n}: TextTooltipProps) => {\n const platform = usePlatform();\n\n return (\n <HoverPopper\n vkuiClass={getClassName(\"TextTooltip\", platform)}\n arrow\n arrowClassName={prefixClass(\"TextTooltip__arrow\")}\n content={\n <React.Fragment>\n {hasReactNode(header) && (\n <Subhead\n Component=\"span\"\n weight=\"medium\"\n vkuiClass=\"TextTooltip__header\"\n >\n {header}\n </Subhead>\n )}\n {hasReactNode(text) && (\n <Subhead\n Component=\"span\"\n weight=\"regular\"\n vkuiClass=\"TextTooltip__text\"\n >\n {text}\n </Subhead>\n )}\n </React.Fragment>\n }\n {...popperProps}\n >\n {children}\n </HoverPopper>\n );\n};\n"],"file":"TextTooltip.js"}
1
+ {"version":3,"sources":["../../../src/components/TextTooltip/TextTooltip.tsx"],"names":["React","HoverPopper","getClassName","usePlatform","hasReactNode","Subhead","prefixClass","TextTooltip","children","text","header","popperProps","platform"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,OAAOC,OAAP;AACA,SAASC,WAAT;AAeA,OAAO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,OAK/B;AAAA,MAJtBC,QAIsB,QAJtBA,QAIsB;AAAA,MAHtBC,IAGsB,QAHtBA,IAGsB;AAAA,MAFtBC,MAEsB,QAFtBA,MAEsB;AAAA,MADnBC,WACmB;;AACtB,MAAMC,QAAQ,GAAGT,WAAW,EAA5B;AAEA,SACE,oBAAC,WAAD;AACE,IAAA,SAAS,EAAED,YAAY,CAAC,aAAD,EAAgBU,QAAhB,CADzB;AAEE,IAAA,KAAK,MAFP;AAGE,IAAA,cAAc,EAAEN,WAAW,CAAC,oBAAD,CAH7B;AAIE,IAAA,OAAO,EACL,oBAAC,KAAD,CAAO,QAAP,QACGF,YAAY,CAACM,MAAD,CAAZ,IACC,oBAAC,OAAD;AACE,MAAA,SAAS,EAAC,MADZ;AAEE,MAAA,MAAM,EAAC,GAFT;AAGE,MAAA,SAAS,EAAC;AAHZ,OAKGA,MALH,CAFJ,EAUGN,YAAY,CAACK,IAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,MAAA,SAAS,EAAC,MAAnB;AAA0B,MAAA,SAAS,EAAC;AAApC,OACGA,IADH,CAXJ;AALJ,KAsBME,WAtBN,GAwBGH,QAxBH,CADF;AA4BD,CApCM","sourcesContent":["import * as React from \"react\";\nimport { HoverPopper, HoverPopperProps } from \"../HoverPopper/HoverPopper\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport \"./TextTooltip.css\";\n\nexport interface TextTooltipProps\n extends Omit<HoverPopperProps, \"arrow\" | \"arrowClassName\" | \"content\"> {\n /**\n * Текст тултипа\n */\n text?: React.ReactNode;\n /**\n * Заголовок тултипа\n */\n header?: React.ReactNode;\n}\n\nexport const TextTooltip: React.FC<TextTooltipProps> = ({\n children,\n text,\n header,\n ...popperProps\n}: TextTooltipProps) => {\n const platform = usePlatform();\n\n return (\n <HoverPopper\n vkuiClass={getClassName(\"TextTooltip\", platform)}\n arrow\n arrowClassName={prefixClass(\"TextTooltip__arrow\")}\n content={\n <React.Fragment>\n {hasReactNode(header) && (\n <Subhead\n Component=\"span\"\n weight=\"2\"\n vkuiClass=\"TextTooltip__header\"\n >\n {header}\n </Subhead>\n )}\n {hasReactNode(text) && (\n <Subhead Component=\"span\" vkuiClass=\"TextTooltip__text\">\n {text}\n </Subhead>\n )}\n </React.Fragment>\n }\n {...popperProps}\n >\n {children}\n </HoverPopper>\n );\n};\n"],"file":"TextTooltip.js"}
@@ -49,10 +49,9 @@ var SimpleTooltip = /*#__PURE__*/React.forwardRef(function SimpleTooltip(_ref, r
49
49
  })), createScopedElement("div", {
50
50
  vkuiClass: "Tooltip__content"
51
51
  }, header && createScopedElement(Subhead, {
52
- weight: "semibold",
52
+ weight: "1",
53
53
  vkuiClass: "Tooltip__title"
54
54
  }, header), text && createScopedElement(Subhead, {
55
- weight: "regular",
56
55
  vkuiClass: "Tooltip__text"
57
56
  }, text))));
58
57
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Tooltip/Tooltip.tsx"],"names":["React","ReactDOM","classNames","getClassName","Subhead","useNavTransition","usePopper","tooltipContainerAttr","useExternRef","useDOM","warnOnce","hasReactNode","useGlobalEventListener","isDOMTypeElement","element","isValidElement","type","baseClassName","warn","IS_DEV","process","env","NODE_ENV","SimpleTooltip","forwardRef","ref","mode","header","text","arrowRef","style","attributes","container","arrow","mapAlignX","x","getPlacement","alignX","alignY","filter","p","join","isVerticalPlacement","placement","startsWith","Tooltip","children","_isShown","isShown","offsetX","offsetY","onClose","cornerOffset","cornerAbsoluteOffset","restProps","entering","useState","tooltipRef","setTooltipRef","tooltipArrowRef","setTooltipArrowRef","target","setTarget","multiChildren","Children","count","primitiveChild","JSON","stringify","Boolean","tooltipContainer","useMemo","closest","strategy","position","Error","arrowOffsetModiifer","name","enabled","phase","fn","state","modifiersData","undefined","y","modifiers","options","offset","padding","styles","document","passive","childRef","props","getRootRef","patchedRef","child","cloneElement","createPortal","el","popper","defaultProps"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport { useNavTransition } from \"../NavTransitionContext/NavTransitionContext\";\nimport { Modifier, usePopper } from \"react-popper\";\nimport { Placement } from \"@popperjs/core\";\nimport { tooltipContainerAttr } from \"./TooltipContainer\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useDOM } from \"../../lib/dom\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport \"./Tooltip.css\";\n\ninterface SimpleTooltipProps extends Partial<TooltipProps> {\n target?: HTMLDivElement;\n arrowRef?: React.Ref<HTMLDivElement>;\n style?: {\n arrow: React.CSSProperties;\n container: React.CSSProperties;\n };\n attributes?: {\n arrow: React.HTMLAttributes<HTMLDivElement> | null;\n container: React.HTMLAttributes<HTMLDivElement> | null;\n };\n}\n\nconst isDOMTypeElement = (\n element: React.ReactElement\n): element is React.DOMElement<any, any> => {\n return React.isValidElement(element) && typeof element.type === \"string\";\n};\n\nconst baseClassName = getClassName(\"Tooltip\");\nconst warn = warnOnce(\"Tooltip\");\nconst IS_DEV = process.env.NODE_ENV === \"development\";\n\nconst SimpleTooltip = React.forwardRef<HTMLDivElement, SimpleTooltipProps>(\n function SimpleTooltip(\n { mode = \"accent\", header, text, arrowRef, style = {}, attributes },\n ref\n ) {\n return (\n <div vkuiClass={classNames(baseClassName, `Tooltip--${mode}`)}>\n <div\n vkuiClass=\"Tooltip__container\"\n ref={ref}\n style={style.container}\n {...attributes?.container}\n >\n <div\n vkuiClass=\"Tooltip__corner\"\n style={style.arrow}\n {...attributes?.arrow}\n ref={arrowRef}\n />\n <div vkuiClass=\"Tooltip__content\">\n {header && (\n <Subhead weight=\"semibold\" vkuiClass=\"Tooltip__title\">\n {header}\n </Subhead>\n )}\n {text && (\n <Subhead weight=\"regular\" vkuiClass=\"Tooltip__text\">\n {text}\n </Subhead>\n )}\n </div>\n </div>\n </div>\n );\n }\n);\n\nexport interface TooltipProps {\n /**\n * **Важно**: если в `children` передан React-компонент, то необходимо убедиться в том, что он поддерживает\n * свойство `getRootRef`, которое должно возвращаться ссылку на корневой DOM-элемент компонента,\n * иначе тултип показан не будет. Если передан React-element, то такой проблемы нет.\n */\n children: React.ReactElement;\n mode?: \"accent\" | \"light\";\n /**\n * Если передан `false`, то рисуется просто `children`.\n */\n isShown?: boolean;\n /**\n * Текст тултипа.\n */\n text?: React.ReactNode;\n /**\n * Заголовок тултипа.\n */\n header?: React.ReactNode;\n /**\n * Положение по горизонтали (прижатие к левому или правому краю `children`).\n * Если не задано, позиция по горизонтали определятся автоматически\n */\n alignX?: \"center\" | \"left\" | \"right\";\n /**\n * Положение по вертикали (расположение над или под `children`).\n * Если не задано, позиция по вертикали определятся автоматически\n */\n alignY?: \"top\" | \"bottom\";\n /**\n * Сдвиг по горизонтали (относительно портала, в котором рисуется тултип).\n */\n offsetX?: number;\n /**\n * Сдвиг по вертикали (относительно портала, в котором рисуется тултип).\n */\n offsetY?: number;\n /**\n * Сдвиг стрелочки относительно центра дочернего элемента.\n */\n cornerOffset?: number;\n /**\n * Сдвиг стрелочки относительно ширины тултипа\n */\n cornerAbsoluteOffset?: number;\n /**\n * Callback, который вызывается при клике по любому месту в пределах экрана.\n */\n onClose?: () => void;\n}\n\ndeclare type ArrowOffsetModifierOptions = {\n offset: number;\n};\ndeclare type ArrowOffsetModifier = Modifier<\n \"arrowOffset\",\n ArrowOffsetModifierOptions\n>;\n\nfunction mapAlignX(x: TooltipProps[\"alignX\"]) {\n switch (x) {\n case \"left\":\n return \"start\";\n case \"right\":\n return \"end\";\n default:\n return \"\";\n }\n}\nfunction getPlacement(\n alignX: TooltipProps[\"alignX\"],\n alignY: TooltipProps[\"alignY\"]\n): Placement {\n return [alignY || \"bottom\", mapAlignX(alignX || \"left\")]\n .filter((p) => !!p)\n .join(\"-\") as Placement;\n}\nfunction isVerticalPlacement(placement: Placement) {\n return placement.startsWith(\"top\") || placement.startsWith(\"bottom\");\n}\n\nconst Tooltip: React.FC<TooltipProps> = ({\n children,\n isShown: _isShown,\n offsetX = 0,\n offsetY = 15,\n alignX,\n alignY,\n onClose,\n cornerOffset = 0,\n cornerAbsoluteOffset,\n ...restProps\n}) => {\n const { entering } = useNavTransition();\n const isShown = _isShown && !entering;\n const [tooltipRef, setTooltipRef] = React.useState<HTMLElement | null>(null);\n const [tooltipArrowRef, setTooltipArrowRef] =\n React.useState<HTMLElement | null>(null);\n const [target, setTarget] = React.useState<HTMLElement>();\n\n if (IS_DEV) {\n const multiChildren = React.Children.count(children) > 1;\n // Empty children is a noop\n const primitiveChild =\n hasReactNode(children) && typeof children !== \"object\";\n (multiChildren || primitiveChild) &&\n warn(\n [\n \"children must be a single React element, got\",\n multiChildren && \"multiple\",\n primitiveChild && JSON.stringify(children),\n ]\n .filter(Boolean)\n .join(\" \")\n );\n }\n\n /* eslint-disable no-restricted-properties */\n /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion*/\n const tooltipContainer = React.useMemo(\n () => target?.closest(`[${tooltipContainerAttr}]`) as HTMLDivElement,\n [target]\n );\n const strategy = React.useMemo(\n () => (target?.style.position === \"fixed\" ? \"fixed\" : \"absolute\"),\n [target]\n );\n /* eslint-enable @typescript-eslint/no-unnecessary-type-assertion*/\n /* eslint-enable no-restricted-properties */\n\n if (IS_DEV && target && !tooltipContainer) {\n throw new Error(\n \"Use TooltipContainer for Tooltip outside Panel (see docs)\"\n );\n }\n\n const arrowOffsetModiifer = React.useMemo<ArrowOffsetModifier>(() => {\n return {\n name: \"arrowOffset\",\n enabled: true,\n phase: \"main\",\n fn({ state }) {\n if (!state.modifiersData.arrow) {\n return;\n }\n if (isVerticalPlacement(state.placement)) {\n if (cornerAbsoluteOffset !== undefined) {\n state.modifiersData.arrow.x = cornerAbsoluteOffset;\n } else {\n if (state.modifiersData.arrow?.x !== undefined) {\n state.modifiersData.arrow.x += cornerOffset;\n }\n }\n } else {\n if (cornerAbsoluteOffset !== undefined) {\n state.modifiersData.arrow.y = cornerAbsoluteOffset;\n } else {\n if (state.modifiersData.arrow?.y !== undefined) {\n state.modifiersData.arrow.y += cornerOffset;\n }\n }\n }\n },\n };\n }, [cornerOffset, cornerAbsoluteOffset]);\n\n const placement = getPlacement(alignX, alignY);\n const { styles, attributes } = usePopper(target, tooltipRef, {\n strategy,\n placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [offsetX, offsetY],\n },\n },\n {\n name: \"arrow\",\n options: {\n element: tooltipArrowRef,\n padding: 14,\n },\n },\n {\n name: \"preventOverflow\",\n },\n {\n name: \"flip\",\n },\n arrowOffsetModiifer,\n ],\n });\n\n const { document } = useDOM();\n useGlobalEventListener(document, \"click\", isShown && onClose, {\n passive: true,\n });\n // NOTE: setting isShown to true used to trigger usePopper().forceUpdate()\n\n const childRef =\n React.isValidElement(children) &&\n (isDOMTypeElement(children) ? children.ref : children.props.getRootRef);\n const patchedRef = useExternRef(setTarget, childRef);\n const child = React.isValidElement(children)\n ? React.cloneElement(children, {\n [isDOMTypeElement(children) ? \"ref\" : \"getRootRef\"]: patchedRef,\n })\n : children;\n\n return (\n <React.Fragment>\n {child}\n {isShown &&\n target != null &&\n ReactDOM.createPortal(\n <SimpleTooltip\n {...restProps}\n ref={(el) => setTooltipRef(el)}\n arrowRef={(el) => setTooltipArrowRef(el)}\n style={{ arrow: styles.arrow, container: styles.popper }}\n attributes={{\n arrow: attributes.arrow ?? null,\n container: attributes.popper ?? null,\n }}\n />,\n tooltipContainer\n )}\n </React.Fragment>\n );\n};\n\nTooltip.defaultProps = {\n offsetX: 0,\n offsetY: 15,\n cornerOffset: 0,\n isShown: true,\n mode: \"accent\",\n};\n// eslint-disable-next-line import/no-default-export\nexport default Tooltip;\n"],"file":"Tooltip.js"}
1
+ {"version":3,"sources":["../../../src/components/Tooltip/Tooltip.tsx"],"names":["React","ReactDOM","classNames","getClassName","Subhead","useNavTransition","usePopper","tooltipContainerAttr","useExternRef","useDOM","warnOnce","hasReactNode","useGlobalEventListener","isDOMTypeElement","element","isValidElement","type","baseClassName","warn","IS_DEV","process","env","NODE_ENV","SimpleTooltip","forwardRef","ref","mode","header","text","arrowRef","style","attributes","container","arrow","mapAlignX","x","getPlacement","alignX","alignY","filter","p","join","isVerticalPlacement","placement","startsWith","Tooltip","children","_isShown","isShown","offsetX","offsetY","onClose","cornerOffset","cornerAbsoluteOffset","restProps","entering","useState","tooltipRef","setTooltipRef","tooltipArrowRef","setTooltipArrowRef","target","setTarget","multiChildren","Children","count","primitiveChild","JSON","stringify","Boolean","tooltipContainer","useMemo","closest","strategy","position","Error","arrowOffsetModiifer","name","enabled","phase","fn","state","modifiersData","undefined","y","modifiers","options","offset","padding","styles","document","passive","childRef","props","getRootRef","patchedRef","child","cloneElement","createPortal","el","popper","defaultProps"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport { useNavTransition } from \"../NavTransitionContext/NavTransitionContext\";\nimport { Modifier, usePopper } from \"react-popper\";\nimport { Placement } from \"@popperjs/core\";\nimport { tooltipContainerAttr } from \"./TooltipContainer\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useDOM } from \"../../lib/dom\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport \"./Tooltip.css\";\n\ninterface SimpleTooltipProps extends Partial<TooltipProps> {\n target?: HTMLDivElement;\n arrowRef?: React.Ref<HTMLDivElement>;\n style?: {\n arrow: React.CSSProperties;\n container: React.CSSProperties;\n };\n attributes?: {\n arrow: React.HTMLAttributes<HTMLDivElement> | null;\n container: React.HTMLAttributes<HTMLDivElement> | null;\n };\n}\n\nconst isDOMTypeElement = (\n element: React.ReactElement\n): element is React.DOMElement<any, any> => {\n return React.isValidElement(element) && typeof element.type === \"string\";\n};\n\nconst baseClassName = getClassName(\"Tooltip\");\nconst warn = warnOnce(\"Tooltip\");\nconst IS_DEV = process.env.NODE_ENV === \"development\";\n\nconst SimpleTooltip = React.forwardRef<HTMLDivElement, SimpleTooltipProps>(\n function SimpleTooltip(\n { mode = \"accent\", header, text, arrowRef, style = {}, attributes },\n ref\n ) {\n return (\n <div vkuiClass={classNames(baseClassName, `Tooltip--${mode}`)}>\n <div\n vkuiClass=\"Tooltip__container\"\n ref={ref}\n style={style.container}\n {...attributes?.container}\n >\n <div\n vkuiClass=\"Tooltip__corner\"\n style={style.arrow}\n {...attributes?.arrow}\n ref={arrowRef}\n />\n <div vkuiClass=\"Tooltip__content\">\n {header && (\n <Subhead weight=\"1\" vkuiClass=\"Tooltip__title\">\n {header}\n </Subhead>\n )}\n {text && <Subhead vkuiClass=\"Tooltip__text\">{text}</Subhead>}\n </div>\n </div>\n </div>\n );\n }\n);\n\nexport interface TooltipProps {\n /**\n * **Важно**: если в `children` передан React-компонент, то необходимо убедиться в том, что он поддерживает\n * свойство `getRootRef`, которое должно возвращаться ссылку на корневой DOM-элемент компонента,\n * иначе тултип показан не будет. Если передан React-element, то такой проблемы нет.\n */\n children: React.ReactElement;\n mode?: \"accent\" | \"light\";\n /**\n * Если передан `false`, то рисуется просто `children`.\n */\n isShown?: boolean;\n /**\n * Текст тултипа.\n */\n text?: React.ReactNode;\n /**\n * Заголовок тултипа.\n */\n header?: React.ReactNode;\n /**\n * Положение по горизонтали (прижатие к левому или правому краю `children`).\n * Если не задано, позиция по горизонтали определятся автоматически\n */\n alignX?: \"center\" | \"left\" | \"right\";\n /**\n * Положение по вертикали (расположение над или под `children`).\n * Если не задано, позиция по вертикали определятся автоматически\n */\n alignY?: \"top\" | \"bottom\";\n /**\n * Сдвиг по горизонтали (относительно портала, в котором рисуется тултип).\n */\n offsetX?: number;\n /**\n * Сдвиг по вертикали (относительно портала, в котором рисуется тултип).\n */\n offsetY?: number;\n /**\n * Сдвиг стрелочки относительно центра дочернего элемента.\n */\n cornerOffset?: number;\n /**\n * Сдвиг стрелочки относительно ширины тултипа\n */\n cornerAbsoluteOffset?: number;\n /**\n * Callback, который вызывается при клике по любому месту в пределах экрана.\n */\n onClose?: () => void;\n}\n\ndeclare type ArrowOffsetModifierOptions = {\n offset: number;\n};\ndeclare type ArrowOffsetModifier = Modifier<\n \"arrowOffset\",\n ArrowOffsetModifierOptions\n>;\n\nfunction mapAlignX(x: TooltipProps[\"alignX\"]) {\n switch (x) {\n case \"left\":\n return \"start\";\n case \"right\":\n return \"end\";\n default:\n return \"\";\n }\n}\nfunction getPlacement(\n alignX: TooltipProps[\"alignX\"],\n alignY: TooltipProps[\"alignY\"]\n): Placement {\n return [alignY || \"bottom\", mapAlignX(alignX || \"left\")]\n .filter((p) => !!p)\n .join(\"-\") as Placement;\n}\nfunction isVerticalPlacement(placement: Placement) {\n return placement.startsWith(\"top\") || placement.startsWith(\"bottom\");\n}\n\nconst Tooltip: React.FC<TooltipProps> = ({\n children,\n isShown: _isShown,\n offsetX = 0,\n offsetY = 15,\n alignX,\n alignY,\n onClose,\n cornerOffset = 0,\n cornerAbsoluteOffset,\n ...restProps\n}) => {\n const { entering } = useNavTransition();\n const isShown = _isShown && !entering;\n const [tooltipRef, setTooltipRef] = React.useState<HTMLElement | null>(null);\n const [tooltipArrowRef, setTooltipArrowRef] =\n React.useState<HTMLElement | null>(null);\n const [target, setTarget] = React.useState<HTMLElement>();\n\n if (IS_DEV) {\n const multiChildren = React.Children.count(children) > 1;\n // Empty children is a noop\n const primitiveChild =\n hasReactNode(children) && typeof children !== \"object\";\n (multiChildren || primitiveChild) &&\n warn(\n [\n \"children must be a single React element, got\",\n multiChildren && \"multiple\",\n primitiveChild && JSON.stringify(children),\n ]\n .filter(Boolean)\n .join(\" \")\n );\n }\n\n /* eslint-disable no-restricted-properties */\n /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion*/\n const tooltipContainer = React.useMemo(\n () => target?.closest(`[${tooltipContainerAttr}]`) as HTMLDivElement,\n [target]\n );\n const strategy = React.useMemo(\n () => (target?.style.position === \"fixed\" ? \"fixed\" : \"absolute\"),\n [target]\n );\n /* eslint-enable @typescript-eslint/no-unnecessary-type-assertion*/\n /* eslint-enable no-restricted-properties */\n\n if (IS_DEV && target && !tooltipContainer) {\n throw new Error(\n \"Use TooltipContainer for Tooltip outside Panel (see docs)\"\n );\n }\n\n const arrowOffsetModiifer = React.useMemo<ArrowOffsetModifier>(() => {\n return {\n name: \"arrowOffset\",\n enabled: true,\n phase: \"main\",\n fn({ state }) {\n if (!state.modifiersData.arrow) {\n return;\n }\n if (isVerticalPlacement(state.placement)) {\n if (cornerAbsoluteOffset !== undefined) {\n state.modifiersData.arrow.x = cornerAbsoluteOffset;\n } else {\n if (state.modifiersData.arrow?.x !== undefined) {\n state.modifiersData.arrow.x += cornerOffset;\n }\n }\n } else {\n if (cornerAbsoluteOffset !== undefined) {\n state.modifiersData.arrow.y = cornerAbsoluteOffset;\n } else {\n if (state.modifiersData.arrow?.y !== undefined) {\n state.modifiersData.arrow.y += cornerOffset;\n }\n }\n }\n },\n };\n }, [cornerOffset, cornerAbsoluteOffset]);\n\n const placement = getPlacement(alignX, alignY);\n const { styles, attributes } = usePopper(target, tooltipRef, {\n strategy,\n placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [offsetX, offsetY],\n },\n },\n {\n name: \"arrow\",\n options: {\n element: tooltipArrowRef,\n padding: 14,\n },\n },\n {\n name: \"preventOverflow\",\n },\n {\n name: \"flip\",\n },\n arrowOffsetModiifer,\n ],\n });\n\n const { document } = useDOM();\n useGlobalEventListener(document, \"click\", isShown && onClose, {\n passive: true,\n });\n // NOTE: setting isShown to true used to trigger usePopper().forceUpdate()\n\n const childRef =\n React.isValidElement(children) &&\n (isDOMTypeElement(children) ? children.ref : children.props.getRootRef);\n const patchedRef = useExternRef(setTarget, childRef);\n const child = React.isValidElement(children)\n ? React.cloneElement(children, {\n [isDOMTypeElement(children) ? \"ref\" : \"getRootRef\"]: patchedRef,\n })\n : children;\n\n return (\n <React.Fragment>\n {child}\n {isShown &&\n target != null &&\n ReactDOM.createPortal(\n <SimpleTooltip\n {...restProps}\n ref={(el) => setTooltipRef(el)}\n arrowRef={(el) => setTooltipArrowRef(el)}\n style={{ arrow: styles.arrow, container: styles.popper }}\n attributes={{\n arrow: attributes.arrow ?? null,\n container: attributes.popper ?? null,\n }}\n />,\n tooltipContainer\n )}\n </React.Fragment>\n );\n};\n\nTooltip.defaultProps = {\n offsetX: 0,\n offsetY: 15,\n cornerOffset: 0,\n isShown: true,\n mode: \"accent\",\n};\n// eslint-disable-next-line import/no-default-export\nexport default Tooltip;\n"],"file":"Tooltip.js"}
@@ -2,7 +2,10 @@ import * as React from "react";
2
2
  import { HasComponent } from "../../../types";
3
3
  import "./Subhead.css";
4
4
  export interface SubheadProps extends React.AllHTMLAttributes<HTMLElement>, HasComponent {
5
- weight: "regular" | "medium" | "semibold" | "bold";
5
+ /**
6
+ * Начертания "regular", "medium", "semibold" и "bold" устарели и будут удалены в 5.0.0.
7
+ */
8
+ weight?: "regular" | "medium" | "semibold" | "bold" | "1" | "2" | "3";
6
9
  }
7
10
  declare const Subhead: React.FC<SubheadProps>;
8
11
  export default Subhead;
@@ -2,21 +2,27 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  var _excluded = ["children", "weight", "Component"];
4
4
  import { createScopedElement } from "../../../lib/jsxRuntime";
5
- import { usePlatform } from "../../../hooks/usePlatform";
6
5
  import { classNames } from "../../../lib/classNames";
7
- import { getClassName } from "../../../helpers/getClassName";
6
+ import { warnOnce } from "../../../lib/warnOnce";
7
+ import { useAdaptivity } from "../../../hooks/useAdaptivity";
8
+ var warn = warnOnce("Subhead");
8
9
 
9
10
  var Subhead = function Subhead(_ref) {
10
11
  var children = _ref.children,
11
- _ref$weight = _ref.weight,
12
- weight = _ref$weight === void 0 ? "regular" : _ref$weight,
12
+ weight = _ref.weight,
13
13
  _ref$Component = _ref.Component,
14
- Component = _ref$Component === void 0 ? "h4" : _ref$Component,
14
+ Component = _ref$Component === void 0 ? "h5" : _ref$Component,
15
15
  restProps = _objectWithoutProperties(_ref, _excluded);
16
16
 
17
- var platform = usePlatform();
17
+ var _useAdaptivity = useAdaptivity(),
18
+ sizeY = _useAdaptivity.sizeY;
19
+
20
+ if (process.env.NODE_ENV === "development") {
21
+ if (weight && ["heavy", "bold", "semibold", "medium", "regular"].includes(weight)) warn("\u041D\u0430\u0447\u0435\u0440\u0442\u0430\u043D\u0438\u0435 weight=\"".concat(weight, "\" \u0443\u0441\u0442\u0430\u0440\u0435\u043B\u043E \u0438 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u043E \u0432 5.0.0. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \"1\", \"2\" \u0438 \"3\""));
22
+ }
23
+
18
24
  return createScopedElement(Component, _extends({}, restProps, {
19
- vkuiClass: classNames(getClassName("Subhead", platform), "Subhead--w-".concat(weight))
25
+ vkuiClass: classNames("Subhead", "Subhead--sizeY-".concat(sizeY), "Subhead--w-".concat(weight))
20
26
  }), children);
21
27
  }; // eslint-disable-next-line import/no-default-export
22
28
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Typography/Subhead/Subhead.tsx"],"names":["usePlatform","classNames","getClassName","Subhead","children","weight","Component","restProps","platform"],"mappings":";;;;AAEA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;;AASA,IAAMC,OAA+B,GAAG,SAAlCA,OAAkC,OAKpB;AAAA,MAJlBC,QAIkB,QAJlBA,QAIkB;AAAA,yBAHlBC,MAGkB;AAAA,MAHlBA,MAGkB,4BAHT,SAGS;AAAA,4BAFlBC,SAEkB;AAAA,MAFlBA,SAEkB,+BAFN,IAEM;AAAA,MADfC,SACe;;AAClB,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;AAEA,SACE,oBAAC,SAAD,eACMO,SADN;AAEE,IAAA,SAAS,EAAEN,UAAU,CACnBC,YAAY,CAAC,SAAD,EAAYM,QAAZ,CADO,uBAELH,MAFK;AAFvB,MAOGD,QAPH,CADF;AAWD,CAnBD,C,CAqBA;;;AACA,eAAeD,OAAf","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../../types\";\nimport { usePlatform } from \"../../../hooks/usePlatform\";\nimport { classNames } from \"../../../lib/classNames\";\nimport { getClassName } from \"../../../helpers/getClassName\";\nimport \"./Subhead.css\";\n\nexport interface SubheadProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasComponent {\n weight: \"regular\" | \"medium\" | \"semibold\" | \"bold\";\n}\n\nconst Subhead: React.FC<SubheadProps> = ({\n children,\n weight = \"regular\",\n Component = \"h4\",\n ...restProps\n}: SubheadProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"Subhead\", platform),\n `Subhead--w-${weight}`\n )}\n >\n {children}\n </Component>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Subhead;\n"],"file":"Subhead.js"}
1
+ {"version":3,"sources":["../../../../src/components/Typography/Subhead/Subhead.tsx"],"names":["classNames","warnOnce","useAdaptivity","warn","Subhead","children","weight","Component","restProps","sizeY","process","env","NODE_ENV","includes"],"mappings":";;;;AAEA,SAASA,UAAT;AACA,SAASC,QAAT;AACA,SAASC,aAAT;AAYA,IAAMC,IAAI,GAAGF,QAAQ,CAAC,SAAD,CAArB;;AAEA,IAAMG,OAA+B,GAAG,SAAlCA,OAAkC,OAKpB;AAAA,MAJlBC,QAIkB,QAJlBA,QAIkB;AAAA,MAHlBC,MAGkB,QAHlBA,MAGkB;AAAA,4BAFlBC,SAEkB;AAAA,MAFlBA,SAEkB,+BAFN,IAEM;AAAA,MADfC,SACe;;AAClB,uBAAkBN,aAAa,EAA/B;AAAA,MAAQO,KAAR,kBAAQA,KAAR;;AAEA,MAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1C,QACEN,MAAM,IACN,CAAC,OAAD,EAAU,MAAV,EAAkB,UAAlB,EAA8B,QAA9B,EAAwC,SAAxC,EAAmDO,QAAnD,CAA4DP,MAA5D,CAFF,EAIEH,IAAI,iFACoBG,MADpB,sSAAJ;AAGH;;AAED,SACE,oBAAC,SAAD,eACME,SADN;AAEE,IAAA,SAAS,EAAER,UAAU,CACnB,SADmB,2BAEDS,KAFC,wBAGLH,MAHK;AAFvB,MAQGD,QARH,CADF;AAYD,CA9BD,C,CAgCA;;;AACA,eAAeD,OAAf","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../../types\";\nimport { classNames } from \"../../../lib/classNames\";\nimport { warnOnce } from \"../../../lib/warnOnce\";\nimport { useAdaptivity } from \"../../../hooks/useAdaptivity\";\nimport \"./Subhead.css\";\n\nexport interface SubheadProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasComponent {\n /**\n * Начертания \"regular\", \"medium\", \"semibold\" и \"bold\" устарели и будут удалены в 5.0.0.\n */\n weight?: \"regular\" | \"medium\" | \"semibold\" | \"bold\" | \"1\" | \"2\" | \"3\";\n}\n\nconst warn = warnOnce(\"Subhead\");\n\nconst Subhead: React.FC<SubheadProps> = ({\n children,\n weight,\n Component = \"h5\",\n ...restProps\n}: SubheadProps) => {\n const { sizeY } = useAdaptivity();\n\n if (process.env.NODE_ENV === \"development\") {\n if (\n weight &&\n [\"heavy\", \"bold\", \"semibold\", \"medium\", \"regular\"].includes(weight)\n )\n warn(\n `Начертание weight=\"${weight}\" устарело и будет удалено в 5.0.0. Используйте значения \"1\", \"2\" и \"3\"`\n );\n }\n\n return (\n <Component\n {...restProps}\n vkuiClass={classNames(\n \"Subhead\",\n `Subhead--sizeY-${sizeY}`,\n `Subhead--w-${weight}`\n )}\n >\n {children}\n </Component>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Subhead;\n"],"file":"Subhead.js"}
@@ -20,7 +20,7 @@ var Title = function Title(_ref) {
20
20
  }
21
21
 
22
22
  if (process.env.NODE_ENV === "development") {
23
- if (weight && ["heavy", "bold", "semibold", "medium", "regular"].includes(weight)) warn("\u041D\u0430\u0447\u0435\u0440\u0442\u0430\u043D\u0438\u0435 \"".concat(weight, "\" \u0443\u0441\u0442\u0430\u0440\u0435\u043B\u043E \u0438 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u043E \u0432 5.0.0. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \"1\", \"2\" \u0438 \"3\""));
23
+ if (weight && ["heavy", "bold", "semibold", "medium", "regular"].includes(weight)) warn("\u041D\u0430\u0447\u0435\u0440\u0442\u0430\u043D\u0438\u0435 weight=\"".concat(weight, "\" \u0443\u0441\u0442\u0430\u0440\u0435\u043B\u043E \u0438 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u043E \u0432 5.0.0. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \"1\", \"2\" \u0438 \"3\""));
24
24
  }
25
25
 
26
26
  return createScopedElement(Component, _extends({}, restProps, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Typography/Title/Title.tsx"],"names":["classNames","warnOnce","warn","Title","children","weight","level","Component","restProps","process","env","NODE_ENV","includes"],"mappings":";;;;;AAEA,SAASA,UAAT;AACA,SAASC,QAAT;AAqBA,IAAMC,IAAI,GAAGD,QAAQ,CAAC,OAAD,CAArB;;AAEA,IAAME,KAA2B,GAAG,SAA9BA,KAA8B,OAMlB;AAAA,MALhBC,QAKgB,QALhBA,QAKgB;AAAA,MAJhBC,MAIgB,QAJhBA,MAIgB;AAAA,wBAHhBC,KAGgB;AAAA,MAHhBA,KAGgB,2BAHR,GAGQ;AAAA,MAFhBC,SAEgB,QAFhBA,SAEgB;AAAA,MADbC,SACa;;AAChB,MAAI,CAACD,SAAL,EAAgB;AACdA,IAAAA,SAAS,GAAI,MAAMD,KAAnB;AACD;;AAED,MAAIG,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1C,QACEN,MAAM,IACN,CAAC,OAAD,EAAU,MAAV,EAAkB,UAAlB,EAA8B,QAA9B,EAAwC,SAAxC,EAAmDO,QAAnD,CAA4DP,MAA5D,CAFF,EAIEH,IAAI,0EACaG,MADb,sSAAJ;AAGH;;AAED,SACE,oBAAC,SAAD,eACMG,SADN;AAEE,IAAA,SAAS,EAAER,UAAU,CAAC,OAAD,qBAAsBM,KAAtB,0CACND,MADM,GACK,CAAC,CAACA,MADP;AAFvB,MAMGD,QANH,CADF;AAUD,CA/BD,C,CAiCA;;;AACA,eAAeD,KAAf","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../../types\";\nimport { classNames } from \"../../../lib/classNames\";\nimport { warnOnce } from \"../../../lib/warnOnce\";\nimport \"./Title.css\";\n\nexport interface TitleProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasComponent {\n /**\n * Начертания \"heavy\", \"bold\", \"semibold\", \"medium\" и \"regular\" устарели и будут удалены в 5.0.0.\n */\n weight?:\n | \"heavy\"\n | \"bold\"\n | \"semibold\"\n | \"medium\"\n | \"regular\"\n | \"1\"\n | \"2\"\n | \"3\";\n level: \"1\" | \"2\" | \"3\";\n}\n\nconst warn = warnOnce(\"Title\");\n\nconst Title: React.FC<TitleProps> = ({\n children,\n weight,\n level = \"1\",\n Component,\n ...restProps\n}: TitleProps) => {\n if (!Component) {\n Component = (\"h\" + level) as React.ElementType;\n }\n\n if (process.env.NODE_ENV === \"development\") {\n if (\n weight &&\n [\"heavy\", \"bold\", \"semibold\", \"medium\", \"regular\"].includes(weight)\n )\n warn(\n `Начертание \"${weight}\" устарело и будет удалено в 5.0.0. Используйте значения \"1\", \"2\" и \"3\"`\n );\n }\n\n return (\n <Component\n {...restProps}\n vkuiClass={classNames(\"Title\", `Title--l-${level}`, {\n [`Title--w-${weight}`]: !!weight,\n })}\n >\n {children}\n </Component>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Title;\n"],"file":"Title.js"}
1
+ {"version":3,"sources":["../../../../src/components/Typography/Title/Title.tsx"],"names":["classNames","warnOnce","warn","Title","children","weight","level","Component","restProps","process","env","NODE_ENV","includes"],"mappings":";;;;;AAEA,SAASA,UAAT;AACA,SAASC,QAAT;AAqBA,IAAMC,IAAI,GAAGD,QAAQ,CAAC,OAAD,CAArB;;AAEA,IAAME,KAA2B,GAAG,SAA9BA,KAA8B,OAMlB;AAAA,MALhBC,QAKgB,QALhBA,QAKgB;AAAA,MAJhBC,MAIgB,QAJhBA,MAIgB;AAAA,wBAHhBC,KAGgB;AAAA,MAHhBA,KAGgB,2BAHR,GAGQ;AAAA,MAFhBC,SAEgB,QAFhBA,SAEgB;AAAA,MADbC,SACa;;AAChB,MAAI,CAACD,SAAL,EAAgB;AACdA,IAAAA,SAAS,GAAI,MAAMD,KAAnB;AACD;;AAED,MAAIG,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1C,QACEN,MAAM,IACN,CAAC,OAAD,EAAU,MAAV,EAAkB,UAAlB,EAA8B,QAA9B,EAAwC,SAAxC,EAAmDO,QAAnD,CAA4DP,MAA5D,CAFF,EAIEH,IAAI,iFACoBG,MADpB,sSAAJ;AAGH;;AAED,SACE,oBAAC,SAAD,eACMG,SADN;AAEE,IAAA,SAAS,EAAER,UAAU,CAAC,OAAD,qBAAsBM,KAAtB,0CACND,MADM,GACK,CAAC,CAACA,MADP;AAFvB,MAMGD,QANH,CADF;AAUD,CA/BD,C,CAiCA;;;AACA,eAAeD,KAAf","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../../types\";\nimport { classNames } from \"../../../lib/classNames\";\nimport { warnOnce } from \"../../../lib/warnOnce\";\nimport \"./Title.css\";\n\nexport interface TitleProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasComponent {\n /**\n * Начертания \"heavy\", \"bold\", \"semibold\", \"medium\" и \"regular\" устарели и будут удалены в 5.0.0.\n */\n weight?:\n | \"heavy\"\n | \"bold\"\n | \"semibold\"\n | \"medium\"\n | \"regular\"\n | \"1\"\n | \"2\"\n | \"3\";\n level: \"1\" | \"2\" | \"3\";\n}\n\nconst warn = warnOnce(\"Title\");\n\nconst Title: React.FC<TitleProps> = ({\n children,\n weight,\n level = \"1\",\n Component,\n ...restProps\n}: TitleProps) => {\n if (!Component) {\n Component = (\"h\" + level) as React.ElementType;\n }\n\n if (process.env.NODE_ENV === \"development\") {\n if (\n weight &&\n [\"heavy\", \"bold\", \"semibold\", \"medium\", \"regular\"].includes(weight)\n )\n warn(\n `Начертание weight=\"${weight}\" устарело и будет удалено в 5.0.0. Используйте значения \"1\", \"2\" и \"3\"`\n );\n }\n\n return (\n <Component\n {...restProps}\n vkuiClass={classNames(\"Title\", `Title--l-${level}`, {\n [`Title--w-${weight}`]: !!weight,\n })}\n >\n {children}\n </Component>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Title;\n"],"file":"Title.js"}
@@ -56,7 +56,6 @@ var UsersStack = function UsersStack(props) {
56
56
  "aria-hidden": "true"
57
57
  }, createScopedElement("span", null, "+", othersCount))), hasReactNode(children) && createScopedElement(Subhead, {
58
58
  Component: "span",
59
- weight: "regular",
60
59
  vkuiClass: "UsersStack__text"
61
60
  }, children));
62
61
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/UsersStack/UsersStack.tsx"],"names":["React","getClassName","usePlatform","hasReactNode","classNames","useIsomorphicLayoutEffect","Caption","Subhead","createMasks","useDOM","UsersStack","props","platform","photos","visibleCount","size","layout","children","restProps","document","othersCount","Math","max","length","canShowOthers","photosShown","slice","map","photo","i","backgroundImage","defaultProps","memo"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AACA,SAASC,yBAAT;AACA,OAAOC,OAAP;AACA,OAAOC,OAAP;AACA,SAASC,WAAT;AACA,SAASC,MAAT;;AAuBA,IAAMC,UAAqC,GAAG,SAAxCA,UAAwC,CAACC,KAAD,EAA4B;AACxE,MAAMC,QAAQ,GAAGV,WAAW,EAA5B;;AACA,sBAOIS,KAPJ,CACEE,MADF;AAAA,MACEA,MADF,8BACW,EADX;AAAA,4BAOIF,KAPJ,CAEEG,YAFF;AAAA,MAEEA,YAFF,oCAEiB,CAFjB;AAAA,MAGEC,IAHF,GAOIJ,KAPJ,CAGEI,IAHF;AAAA,MAIEC,MAJF,GAOIL,KAPJ,CAIEK,MAJF;AAAA,MAKEC,QALF,GAOIN,KAPJ,CAKEM,QALF;AAAA,MAMKC,SANL,4BAOIP,KAPJ;;AAQA,gBAAqBF,MAAM,EAA3B;AAAA,MAAQU,QAAR,WAAQA,QAAR;;AAEAd,EAAAA,yBAAyB,CAAC,YAAM;AAC9BG,IAAAA,WAAW,CAACW,QAAD,CAAX;AACD,GAFwB,EAEtB,CAACA,QAAD,CAFsB,CAAzB;AAIA,MAAMC,WAAW,GAAGC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYT,MAAM,CAACU,MAAP,GAAgBT,YAA5B,CAApB;AACA,MAAMU,aAAa,GAAGJ,WAAW,GAAG,CAAd,IAAmBL,IAAI,KAAK,GAAlD;AAEA,MAAMU,WAAW,GAAGZ,MAAM,CAACa,KAAP,CAAa,CAAb,EAAgBZ,YAAhB,CAApB;AAEA,SACE,wCACMI,SADN;AAEE,IAAA,SAAS,EAAEd,UAAU,CACnBH,YAAY,CAAC,YAAD,EAAeW,QAAf,CADO,6BAECG,IAFD,2BAGFC,MAHE,GAInB;AACE,4BAAsBQ;AADxB,KAJmB;AAFvB,MAWE;AAAK,IAAA,SAAS,EAAC,oBAAf;AAAoC,IAAA,IAAI,EAAC;AAAzC,KACGC,WAAW,CAACE,GAAZ,CAAgB,UAACC,KAAD,EAAQC,CAAR;AAAA,WACf;AACE,MAAA,GAAG,EAAEA,CADP;AAEE,MAAA,SAAS,EAAC,mBAFZ;AAGE,MAAA,KAAK,EAAE;AAAEC,QAAAA,eAAe,gBAASF,KAAT;AAAjB;AAHT,MADe;AAAA,GAAhB,CADH,EASGJ,aAAa,IACZ,oBAAC,OAAD;AACE,IAAA,MAAM,EAAC,QADT;AAEE,IAAA,KAAK,EAAC,GAFR;AAGE,IAAA,SAAS,EAAC,6CAHZ;AAIE,mBAAY;AAJd,KAME,uCAAQJ,WAAR,CANF,CAVJ,CAXF,EA+BGjB,YAAY,CAACc,QAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC,MAAnB;AAA0B,IAAA,MAAM,EAAC,SAAjC;AAA2C,IAAA,SAAS,EAAC;AAArD,KACGA,QADH,CAhCJ,CADF;AAuCD,CA5DD;;AA8DAP,UAAU,CAACqB,YAAX,GAA0B;AACxBlB,EAAAA,MAAM,EAAE,EADgB;AAExBE,EAAAA,IAAI,EAAE,GAFkB;AAGxBD,EAAAA,YAAY,EAAE,CAHU;AAIxBE,EAAAA,MAAM,EAAE;AAJgB,CAA1B,C,CAOA;;AACA,4BAAehB,KAAK,CAACgC,IAAN,CAAWtB,UAAX,CAAf","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport { createMasks } from \"./masks\";\nimport { useDOM } from \"../../lib/dom\";\nimport \"./UsersStack.css\";\n\nexport interface UsersStackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Массив ссылок на фотографии\n */\n photos?: string[];\n /**\n * Размер аватарок\n */\n size?: \"xs\" | \"s\" | \"m\";\n /**\n * Вертикальный режим рекомендуется использовать с размером `m`\n */\n layout?: \"vertical\" | \"horizontal\";\n /**\n * Количество аватарок, которые будут показаны.\n * Если в массиве `photos` больше элементов и используется размер `m`, то будет показано количество остальных элементов\n */\n visibleCount?: number;\n}\n\nconst UsersStack: React.FC<UsersStackProps> = (props: UsersStackProps) => {\n const platform = usePlatform();\n const {\n photos = [],\n visibleCount = 0,\n size,\n layout,\n children,\n ...restProps\n } = props;\n const { document } = useDOM();\n\n useIsomorphicLayoutEffect(() => {\n createMasks(document);\n }, [document]);\n\n const othersCount = Math.max(0, photos.length - visibleCount);\n const canShowOthers = othersCount > 0 && size === \"m\";\n\n const photosShown = photos.slice(0, visibleCount);\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"UsersStack\", platform),\n `UsersStack--size-${size}`,\n `UsersStack--l-${layout}`,\n {\n \"UsersStack--others\": canShowOthers,\n }\n )}\n >\n <div vkuiClass=\"UsersStack__photos\" role=\"presentation\">\n {photosShown.map((photo, i) => (\n <div\n key={i}\n vkuiClass=\"UsersStack__photo\"\n style={{ backgroundImage: `url(${photo})` }}\n />\n ))}\n\n {canShowOthers && (\n <Caption\n weight=\"medium\"\n level=\"1\"\n vkuiClass=\"UsersStack__photo UsersStack__photo--others\"\n aria-hidden=\"true\"\n >\n <span>+{othersCount}</span>\n </Caption>\n )}\n </div>\n {hasReactNode(children) && (\n <Subhead Component=\"span\" weight=\"regular\" vkuiClass=\"UsersStack__text\">\n {children}\n </Subhead>\n )}\n </div>\n );\n};\n\nUsersStack.defaultProps = {\n photos: [],\n size: \"s\",\n visibleCount: 3,\n layout: \"horizontal\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default React.memo(UsersStack);\n"],"file":"UsersStack.js"}
1
+ {"version":3,"sources":["../../../src/components/UsersStack/UsersStack.tsx"],"names":["React","getClassName","usePlatform","hasReactNode","classNames","useIsomorphicLayoutEffect","Caption","Subhead","createMasks","useDOM","UsersStack","props","platform","photos","visibleCount","size","layout","children","restProps","document","othersCount","Math","max","length","canShowOthers","photosShown","slice","map","photo","i","backgroundImage","defaultProps","memo"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AACA,SAASC,yBAAT;AACA,OAAOC,OAAP;AACA,OAAOC,OAAP;AACA,SAASC,WAAT;AACA,SAASC,MAAT;;AAuBA,IAAMC,UAAqC,GAAG,SAAxCA,UAAwC,CAACC,KAAD,EAA4B;AACxE,MAAMC,QAAQ,GAAGV,WAAW,EAA5B;;AACA,sBAOIS,KAPJ,CACEE,MADF;AAAA,MACEA,MADF,8BACW,EADX;AAAA,4BAOIF,KAPJ,CAEEG,YAFF;AAAA,MAEEA,YAFF,oCAEiB,CAFjB;AAAA,MAGEC,IAHF,GAOIJ,KAPJ,CAGEI,IAHF;AAAA,MAIEC,MAJF,GAOIL,KAPJ,CAIEK,MAJF;AAAA,MAKEC,QALF,GAOIN,KAPJ,CAKEM,QALF;AAAA,MAMKC,SANL,4BAOIP,KAPJ;;AAQA,gBAAqBF,MAAM,EAA3B;AAAA,MAAQU,QAAR,WAAQA,QAAR;;AAEAd,EAAAA,yBAAyB,CAAC,YAAM;AAC9BG,IAAAA,WAAW,CAACW,QAAD,CAAX;AACD,GAFwB,EAEtB,CAACA,QAAD,CAFsB,CAAzB;AAIA,MAAMC,WAAW,GAAGC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYT,MAAM,CAACU,MAAP,GAAgBT,YAA5B,CAApB;AACA,MAAMU,aAAa,GAAGJ,WAAW,GAAG,CAAd,IAAmBL,IAAI,KAAK,GAAlD;AAEA,MAAMU,WAAW,GAAGZ,MAAM,CAACa,KAAP,CAAa,CAAb,EAAgBZ,YAAhB,CAApB;AAEA,SACE,wCACMI,SADN;AAEE,IAAA,SAAS,EAAEd,UAAU,CACnBH,YAAY,CAAC,YAAD,EAAeW,QAAf,CADO,6BAECG,IAFD,2BAGFC,MAHE,GAInB;AACE,4BAAsBQ;AADxB,KAJmB;AAFvB,MAWE;AAAK,IAAA,SAAS,EAAC,oBAAf;AAAoC,IAAA,IAAI,EAAC;AAAzC,KACGC,WAAW,CAACE,GAAZ,CAAgB,UAACC,KAAD,EAAQC,CAAR;AAAA,WACf;AACE,MAAA,GAAG,EAAEA,CADP;AAEE,MAAA,SAAS,EAAC,mBAFZ;AAGE,MAAA,KAAK,EAAE;AAAEC,QAAAA,eAAe,gBAASF,KAAT;AAAjB;AAHT,MADe;AAAA,GAAhB,CADH,EASGJ,aAAa,IACZ,oBAAC,OAAD;AACE,IAAA,MAAM,EAAC,QADT;AAEE,IAAA,KAAK,EAAC,GAFR;AAGE,IAAA,SAAS,EAAC,6CAHZ;AAIE,mBAAY;AAJd,KAME,uCAAQJ,WAAR,CANF,CAVJ,CAXF,EA+BGjB,YAAY,CAACc,QAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC,MAAnB;AAA0B,IAAA,SAAS,EAAC;AAApC,KACGA,QADH,CAhCJ,CADF;AAuCD,CA5DD;;AA8DAP,UAAU,CAACqB,YAAX,GAA0B;AACxBlB,EAAAA,MAAM,EAAE,EADgB;AAExBE,EAAAA,IAAI,EAAE,GAFkB;AAGxBD,EAAAA,YAAY,EAAE,CAHU;AAIxBE,EAAAA,MAAM,EAAE;AAJgB,CAA1B,C,CAOA;;AACA,4BAAehB,KAAK,CAACgC,IAAN,CAAWtB,UAAX,CAAf","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport { createMasks } from \"./masks\";\nimport { useDOM } from \"../../lib/dom\";\nimport \"./UsersStack.css\";\n\nexport interface UsersStackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Массив ссылок на фотографии\n */\n photos?: string[];\n /**\n * Размер аватарок\n */\n size?: \"xs\" | \"s\" | \"m\";\n /**\n * Вертикальный режим рекомендуется использовать с размером `m`\n */\n layout?: \"vertical\" | \"horizontal\";\n /**\n * Количество аватарок, которые будут показаны.\n * Если в массиве `photos` больше элементов и используется размер `m`, то будет показано количество остальных элементов\n */\n visibleCount?: number;\n}\n\nconst UsersStack: React.FC<UsersStackProps> = (props: UsersStackProps) => {\n const platform = usePlatform();\n const {\n photos = [],\n visibleCount = 0,\n size,\n layout,\n children,\n ...restProps\n } = props;\n const { document } = useDOM();\n\n useIsomorphicLayoutEffect(() => {\n createMasks(document);\n }, [document]);\n\n const othersCount = Math.max(0, photos.length - visibleCount);\n const canShowOthers = othersCount > 0 && size === \"m\";\n\n const photosShown = photos.slice(0, visibleCount);\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"UsersStack\", platform),\n `UsersStack--size-${size}`,\n `UsersStack--l-${layout}`,\n {\n \"UsersStack--others\": canShowOthers,\n }\n )}\n >\n <div vkuiClass=\"UsersStack__photos\" role=\"presentation\">\n {photosShown.map((photo, i) => (\n <div\n key={i}\n vkuiClass=\"UsersStack__photo\"\n style={{ backgroundImage: `url(${photo})` }}\n />\n ))}\n\n {canShowOthers && (\n <Caption\n weight=\"medium\"\n level=\"1\"\n vkuiClass=\"UsersStack__photo UsersStack__photo--others\"\n aria-hidden=\"true\"\n >\n <span>+{othersCount}</span>\n </Caption>\n )}\n </div>\n {hasReactNode(children) && (\n <Subhead Component=\"span\" vkuiClass=\"UsersStack__text\">\n {children}\n </Subhead>\n )}\n </div>\n );\n};\n\nUsersStack.defaultProps = {\n photos: [],\n size: \"s\",\n visibleCount: 3,\n layout: \"horizontal\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default React.memo(UsersStack);\n"],"file":"UsersStack.js"}
@@ -1,6 +1,6 @@
1
1
  .vkui__root,.vkui__portal-root{--font-common:-apple-system, system-ui, Helvetica Neue, Roboto, sans-serif;--font-tt:"TT Commons", -apple-system, system-ui, Helvetica Neue, Roboto,
2
2
  sans-serif;--font-display:"VK Sans Display", -apple-system, system-ui, Helvetica Neue,
3
- Roboto, sans-serif;--ios-easing:cubic-bezier(0.36, 0.66, 0.04, 1);--android-easing:cubic-bezier(0.4, 0, 0.2, 1);--tabbar_height:48px;--panelheader_height_ios:52px;--panelheader_height_android:56px;--panelheader_height_vkcom:48px;--modalheader_height_ios:52px;--modalheader_height_android:56px;--search_default_height:36px;--thin-border:1px;--formitem_padding:16px;--white:#fff;--blue_200:#5c9ce6;--safe-area-inset-top:20px;--safe-area-inset-right:0px;--safe-area-inset-bottom:0px;--safe-area-inset-left:0px;--duration:0.7s}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){.vkui__root,.vkui__portal-root{--thin-border:0.5px}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:3dppx){.vkui__root,.vkui__portal-root{--thin-border:0.33px}}@supports (padding-top:constant(safe-area-inset-top)){.vkui__root,.vkui__portal-root{--safe-area-inset-top:constant(safe-area-inset-top);--safe-area-inset-right:constant(safe-area-inset-right);--safe-area-inset-bottom:constant(safe-area-inset-bottom);--safe-area-inset-left:constant(safe-area-inset-left)}}@supports (padding-top:env(safe-area-inset-top)){.vkui__root,.vkui__portal-root{--safe-area-inset-top:env(safe-area-inset-top);--safe-area-inset-right:env(safe-area-inset-right);--safe-area-inset-bottom:env(safe-area-inset-bottom);--safe-area-inset-left:env(safe-area-inset-left)}}@-webkit-keyframes vkui-rotator{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes vkui-rotator{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes vkui-popper-fadein{0%{opacity:0}to{opacity:1}}@keyframes vkui-popper-fadein{0%{opacity:0}to{opacity:1}}.vkui__root--embedded{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);overflow-x:hidden}.vkuiAppRoot{height:100%}.vkui__root--embedded .vkuiAppRoot{overflow:auto}.vkui--sizeX-regular{background:#ebedf0;background:var(--background_page)}.vkuiAppRoot--no-mouse{-webkit-user-select:none;user-select:none}.vkuiTitle{display:block;margin:0}.vkuiTitle--l-1{font-size:24px;font-size:var(--vkui--font_title1--font_size--regular);line-height:28px;line-height:var(--vkui--font_title1--line_height--regular);font-weight:600;font-weight:var(--vkui--font_title1--font_weight--regular)}.vkuiTitle--l-2{font-size:20px;font-size:var(--vkui--font_title2--font_size--regular);line-height:24px;line-height:var(--vkui--font_title2--line_height--regular);font-weight:600;font-weight:var(--vkui--font_title2--font_weight--regular)}.vkuiTitle--l-3{font-size:17px;font-size:var(--vkui--font_title3--font_size--regular);line-height:22px;line-height:var(--vkui--font_title3--line_height--regular);font-weight:600;font-weight:var(--vkui--font_title3--font_weight--regular)}.vkuiTitle--w-regular{font-weight:400}.vkuiTitle--w-medium{font-weight:500}.vkuiTitle--w-semibold{font-weight:600}.vkuiTitle--w-bold{font-weight:700}.vkuiTitle--w-heavy{font-weight:800}.vkuiTitle--w-1{font-weight:600;font-weight:var(--vkui--font_weight_accent1)}.vkuiTitle--w-2{font-weight:500;font-weight:var(--vkui--font_weight_accent2)}.vkuiTitle--w-3{font-weight:400;font-weight:var(--vkui--font_weight_accent3)}.vkuiHeadline{display:block;margin:0;font-size:16px;line-height:20px}.vkuiHeadline--w-regular{font-weight:400}.vkuiHeadline--w-medium{font-weight:500}.vkuiHeadline--w-semibold{font-weight:600}.vkuiHeadline--android.vkuiHeadline--w-semibold{font-weight:500}.vkuiSubhead{margin:0;font-size:14px;line-height:18px}.vkuiSubhead--w-regular{font-weight:400}.vkuiSubhead--w-medium{font-weight:500}.vkuiSubhead--w-semibold{font-weight:600}.vkuiSubhead--w-bold{font-weight:700}.vkuiSubhead--android.vkuiSubhead--w-semibold{font-weight:500}.vkuiCaption{display:block;margin:0}.vkuiCaption--caps{text-transform:uppercase}.vkuiCaption--l-1{font-size:13px;line-height:16px}.vkuiCaption--l-2{font-size:12px;line-height:14px}.vkuiCaption--l-3{font-size:11px;line-height:14px}.vkuiCaption--l-4{font-size:9px;line-height:12px}.vkuiCaption--w-regular{font-weight:400}.vkuiCaption--w-medium{font-weight:500}.vkuiCaption--w-semibold{font-weight:600}.vkuiCaption--w-bold{font-weight:700}.vkuiCaption--w-heavy{font-weight:800}.vkuiCaption--android.vkuiCaption--w-semibold{font-weight:500}.vkuiText{display:block;margin:0;font-size:15px;line-height:20px}.vkuiText--w-regular{font-weight:400}.vkuiText--w-medium{font-weight:500}.vkuiText--w-semibold{font-weight:600}.vkuiText--android.vkuiText--w-semibold{font-weight:500}.vkuiTappable{position:relative;cursor:pointer}.vkuiTappable[disabled],.vkuiTappable[aria-disabled=true]{cursor:default}.vkuiTappable--focus-visible{outline:0}.vkuiTappable--active-background.vkuiTappable--active-background.vkuiTappable--active-background{background:rgba(0,0,0,.08);background:var(--background_highlighted)}.vkuiTappable--active-opacity.vkuiTappable--active-opacity.vkuiTappable--active-opacity{opacity:.7}.vkuiTappable__hoverShadow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;border-radius:inherit}.vkuiTappable--hover-background>.vkuiTappable__hoverShadow{background:rgba(0,0,0,.04);background:var(--background_hover)}.vkuiTappable--hover-opacity{opacity:.8}.vkuiTappable--mouse{transition:opacity .15s ease-out}.vkuiTappable--mouse .vkuiTappable__hoverShadow{transition:background-color .15s ease-out}.vkuiTappable--ios{position:relative;border-radius:10px;transition:background-color .15s ease-out}.vkuiTappable--ios.vkuiTappable--active-background{transition:none}.vkuiTappable--android{position:relative;transition:background-color .15s ease-out;border-radius:8px}.vkuiTappable--android .vkuiTappable__waves{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;border-radius:inherit;will-change:transform}.vkuiTappable--android .vkuiTappable__wave{position:absolute;top:0;left:0;width:24px;height:24px;margin:-12px 0 0-12px;opacity:0;content:"";border-radius:50%;background:rgba(127,127,127,.1);-webkit-animation:vkui-animation-wave .3s cubic-bezier(.4,0,.2,1);animation:vkui-animation-wave .3s cubic-bezier(.4,0,.2,1);-webkit-animation:vkui-animation-wave .3s var(--android-easing);animation:vkui-animation-wave .3s var(--android-easing)}.vkuiTappable--vkcom{transition:background-color .15s ease-out;border-radius:8px}.vkuiTappable--sizeX-compact{border-radius:0}@-webkit-keyframes vkui-animation-wave{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}30%{opacity:1}to{-webkit-transform:scale(8);transform:scale(8);opacity:0}}@keyframes vkui-animation-wave{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}30%{opacity:1}to{-webkit-transform:scale(8);transform:scale(8);opacity:0}}.vkuiFixedLayout{position:fixed;box-sizing:border-box;left:auto;z-index:3;padding-left:0;padding-left:var(--safe-area-inset-left);padding-right:0;padding-right:var(--safe-area-inset-right)}.vkuiFixedLayout--filled{background:#fff;background:var(--background_content)}.vkuiFixedLayout--top{width:100%;top:0}.vkuiFixedLayout--bottom{width:100%;bottom:0;padding-bottom:0;padding-bottom:var(--safe-area-inset-bottom)}.vkuiEpic .vkuiFixedLayout--bottom{padding-bottom:calc(48px + 0px);padding-bottom:calc(var(--tabbar_height) + var(--safe-area-inset-bottom))}.vkuiButton{position:relative;display:inline-block;box-sizing:border-box;text-decoration:none;border:0;min-height:28px;min-height:var(--vkui--size_button_small_height--compact);margin:0;padding:0;-webkit-user-select:none;user-select:none;border-radius:8px;border-radius:var(--vkui--size_border_radius--regular);max-width:100%}.vkuiButton--stretched{display:block;width:100%;flex-grow:1;flex-basis:0}.vkuiButton__in{display:flex;align-items:center;justify-content:center;width:100%;min-height:inherit;padding:1px 16px;text-align:center;box-sizing:border-box}.vkuiButton--aln-left .vkuiButton__in{justify-content:flex-start;text-align:left}.vkuiButton--aln-right .vkuiButton__in{justify-content:flex-end;text-align:right}.vkuiButton[disabled]{opacity:.4;opacity:var(--vkui--opacity_disable)}.vkuiButton--lvl-primary[disabled]:not(.vkuiButton--clr-overlay):not(.vkuiButton--clr-negative):not(.vkuiButton--clr-positive),.vkuiButton--lvl-secondary[disabled]:not(.vkuiButton--clr-overlay),.vkuiButton--lvl-tertiary[disabled]:not(.vkuiButton--clr-overlay),.vkuiButton--lvl-outline[disabled]:not(.vkuiButton--clr-overlay){opacity:.64}.vkuiButton--singleIcon.vkuiButton--sz-s .vkuiButton__in{padding:0 9px}.vkuiButton--singleIcon.vkuiButton--sz-m .vkuiButton__in{padding:0 10px}.vkuiButton--singleIcon.vkuiButton--sz-l .vkuiButton__in{padding:0 6px}.vkuiButton--singleIcon.vkuiButton--sizeY-regular.vkuiButton--sz-s .vkuiButton__in{padding:0 9px}.vkuiButton--singleIcon.vkuiButton--sizeY-regular.vkuiButton--sz-l .vkuiButton__in{padding:0 10px}.vkuiButton--singleIcon .vkuiButton__before:only-child,.vkuiButton--singleIcon .vkuiButton__after:only-child{margin:0}.vkuiButton__content{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vkuiButton__content--caps{-webkit-transform:translateY(0);transform:translateY(0)}.vkuiButton__spinner{position:absolute;left:0;top:0;right:0;bottom:0}.vkuiButton__spinner+.vkuiButton__in{visibility:hidden}.vkuiButton--lvl-primary.vkuiButton--clr-accent{background-color:#2d81e0;background-color:var(--button_primary_background,
3
+ Roboto, sans-serif;--ios-easing:cubic-bezier(0.36, 0.66, 0.04, 1);--android-easing:cubic-bezier(0.4, 0, 0.2, 1);--tabbar_height:48px;--panelheader_height_ios:52px;--panelheader_height_android:56px;--panelheader_height_vkcom:48px;--modalheader_height_ios:52px;--modalheader_height_android:56px;--search_default_height:36px;--thin-border:1px;--formitem_padding:16px;--white:#fff;--blue_200:#5c9ce6;--safe-area-inset-top:20px;--safe-area-inset-right:0px;--safe-area-inset-bottom:0px;--safe-area-inset-left:0px;--duration:0.7s}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){.vkui__root,.vkui__portal-root{--thin-border:0.5px}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:3dppx){.vkui__root,.vkui__portal-root{--thin-border:0.33px}}@supports (padding-top:constant(safe-area-inset-top)){.vkui__root,.vkui__portal-root{--safe-area-inset-top:constant(safe-area-inset-top);--safe-area-inset-right:constant(safe-area-inset-right);--safe-area-inset-bottom:constant(safe-area-inset-bottom);--safe-area-inset-left:constant(safe-area-inset-left)}}@supports (padding-top:env(safe-area-inset-top)){.vkui__root,.vkui__portal-root{--safe-area-inset-top:env(safe-area-inset-top);--safe-area-inset-right:env(safe-area-inset-right);--safe-area-inset-bottom:env(safe-area-inset-bottom);--safe-area-inset-left:env(safe-area-inset-left)}}@-webkit-keyframes vkui-rotator{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes vkui-rotator{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes vkui-popper-fadein{0%{opacity:0}to{opacity:1}}@keyframes vkui-popper-fadein{0%{opacity:0}to{opacity:1}}.vkui__root--embedded{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);overflow-x:hidden}.vkuiAppRoot{height:100%}.vkui__root--embedded .vkuiAppRoot{overflow:auto}.vkui--sizeX-regular{background:#ebedf0;background:var(--background_page)}.vkuiAppRoot--no-mouse{-webkit-user-select:none;user-select:none}.vkuiTitle{display:block;margin:0}.vkuiTitle--l-1{font-size:24px;font-size:var(--vkui--font_title1--font_size--regular);line-height:28px;line-height:var(--vkui--font_title1--line_height--regular);font-weight:600;font-weight:var(--vkui--font_title1--font_weight--regular)}.vkuiTitle--l-2{font-size:20px;font-size:var(--vkui--font_title2--font_size--regular);line-height:24px;line-height:var(--vkui--font_title2--line_height--regular);font-weight:600;font-weight:var(--vkui--font_title2--font_weight--regular)}.vkuiTitle--l-3{font-size:17px;font-size:var(--vkui--font_title3--font_size--regular);line-height:22px;line-height:var(--vkui--font_title3--line_height--regular);font-weight:600;font-weight:var(--vkui--font_title3--font_weight--regular)}.vkuiTitle--w-regular{font-weight:400}.vkuiTitle--w-medium{font-weight:500}.vkuiTitle--w-semibold{font-weight:600}.vkuiTitle--w-bold{font-weight:700}.vkuiTitle--w-heavy{font-weight:800}.vkuiTitle--w-1{font-weight:600;font-weight:var(--vkui--font_weight_accent1)}.vkuiTitle--w-2{font-weight:500;font-weight:var(--vkui--font_weight_accent2)}.vkuiTitle--w-3{font-weight:400;font-weight:var(--vkui--font_weight_accent3)}.vkuiHeadline{display:block;margin:0;font-size:16px;line-height:20px}.vkuiHeadline--w-regular{font-weight:400}.vkuiHeadline--w-medium{font-weight:500}.vkuiHeadline--w-semibold{font-weight:600}.vkuiHeadline--android.vkuiHeadline--w-semibold{font-weight:500}.vkuiSubhead{margin:0;font-size:14px;font-size:var(--vkui--font_subhead--font_size--regular);line-height:18px;line-height:var(--vkui--font_subhead--line_height--regular);font-weight:400;font-weight:var(--vkui--font_subhead--font_weight--regular)}.vkuiSubhead--sizeY-compact{font-size:13px;font-size:var(--vkui--font_subhead--font_size--compact);line-height:16px;line-height:var(--vkui--font_subhead--line_height--compact)}.vkuiSubhead--w-regular{font-weight:400}.vkuiSubhead--w-medium{font-weight:500}.vkuiSubhead--w-semibold{font-weight:600}.vkuiSubhead--w-bold{font-weight:700}.vkuiSubhead--w-1{font-weight:600;font-weight:var(--vkui--font_weight_accent1)}.vkuiSubhead--w-2{font-weight:500;font-weight:var(--vkui--font_weight_accent2)}.vkuiSubhead--w-3{font-weight:400;font-weight:var(--vkui--font_weight_accent3)}.vkuiCaption{display:block;margin:0}.vkuiCaption--caps{text-transform:uppercase}.vkuiCaption--l-1{font-size:13px;line-height:16px}.vkuiCaption--l-2{font-size:12px;line-height:14px}.vkuiCaption--l-3{font-size:11px;line-height:14px}.vkuiCaption--l-4{font-size:9px;line-height:12px}.vkuiCaption--w-regular{font-weight:400}.vkuiCaption--w-medium{font-weight:500}.vkuiCaption--w-semibold{font-weight:600}.vkuiCaption--w-bold{font-weight:700}.vkuiCaption--w-heavy{font-weight:800}.vkuiCaption--android.vkuiCaption--w-semibold{font-weight:500}.vkuiText{display:block;margin:0;font-size:15px;line-height:20px}.vkuiText--w-regular{font-weight:400}.vkuiText--w-medium{font-weight:500}.vkuiText--w-semibold{font-weight:600}.vkuiText--android.vkuiText--w-semibold{font-weight:500}.vkuiTappable{position:relative;cursor:pointer}.vkuiTappable[disabled],.vkuiTappable[aria-disabled=true]{cursor:default}.vkuiTappable--focus-visible{outline:0}.vkuiTappable--active-background.vkuiTappable--active-background.vkuiTappable--active-background{background:rgba(0,0,0,.08);background:var(--background_highlighted)}.vkuiTappable--active-opacity.vkuiTappable--active-opacity.vkuiTappable--active-opacity{opacity:.7}.vkuiTappable__hoverShadow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;border-radius:inherit}.vkuiTappable--hover-background>.vkuiTappable__hoverShadow{background:rgba(0,0,0,.04);background:var(--background_hover)}.vkuiTappable--hover-opacity{opacity:.8}.vkuiTappable--mouse{transition:opacity .15s ease-out}.vkuiTappable--mouse .vkuiTappable__hoverShadow{transition:background-color .15s ease-out}.vkuiTappable--ios{position:relative;border-radius:10px;transition:background-color .15s ease-out}.vkuiTappable--ios.vkuiTappable--active-background{transition:none}.vkuiTappable--android{position:relative;transition:background-color .15s ease-out;border-radius:8px}.vkuiTappable--android .vkuiTappable__waves{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;border-radius:inherit;will-change:transform}.vkuiTappable--android .vkuiTappable__wave{position:absolute;top:0;left:0;width:24px;height:24px;margin:-12px 0 0-12px;opacity:0;content:"";border-radius:50%;background:rgba(127,127,127,.1);-webkit-animation:vkui-animation-wave .3s cubic-bezier(.4,0,.2,1);animation:vkui-animation-wave .3s cubic-bezier(.4,0,.2,1);-webkit-animation:vkui-animation-wave .3s var(--android-easing);animation:vkui-animation-wave .3s var(--android-easing)}.vkuiTappable--vkcom{transition:background-color .15s ease-out;border-radius:8px}.vkuiTappable--sizeX-compact{border-radius:0}@-webkit-keyframes vkui-animation-wave{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}30%{opacity:1}to{-webkit-transform:scale(8);transform:scale(8);opacity:0}}@keyframes vkui-animation-wave{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}30%{opacity:1}to{-webkit-transform:scale(8);transform:scale(8);opacity:0}}.vkuiFixedLayout{position:fixed;box-sizing:border-box;left:auto;z-index:3;padding-left:0;padding-left:var(--safe-area-inset-left);padding-right:0;padding-right:var(--safe-area-inset-right)}.vkuiFixedLayout--filled{background:#fff;background:var(--background_content)}.vkuiFixedLayout--top{width:100%;top:0}.vkuiFixedLayout--bottom{width:100%;bottom:0;padding-bottom:0;padding-bottom:var(--safe-area-inset-bottom)}.vkuiEpic .vkuiFixedLayout--bottom{padding-bottom:calc(48px + 0px);padding-bottom:calc(var(--tabbar_height) + var(--safe-area-inset-bottom))}.vkuiButton{position:relative;display:inline-block;box-sizing:border-box;text-decoration:none;border:0;min-height:28px;min-height:var(--vkui--size_button_small_height--compact);margin:0;padding:0;-webkit-user-select:none;user-select:none;border-radius:8px;border-radius:var(--vkui--size_border_radius--regular);max-width:100%}.vkuiButton--stretched{display:block;width:100%;flex-grow:1;flex-basis:0}.vkuiButton__in{display:flex;align-items:center;justify-content:center;width:100%;min-height:inherit;padding:1px 16px;text-align:center;box-sizing:border-box}.vkuiButton--aln-left .vkuiButton__in{justify-content:flex-start;text-align:left}.vkuiButton--aln-right .vkuiButton__in{justify-content:flex-end;text-align:right}.vkuiButton[disabled]{opacity:.4;opacity:var(--vkui--opacity_disable)}.vkuiButton--lvl-primary[disabled]:not(.vkuiButton--clr-overlay):not(.vkuiButton--clr-negative):not(.vkuiButton--clr-positive),.vkuiButton--lvl-secondary[disabled]:not(.vkuiButton--clr-overlay),.vkuiButton--lvl-tertiary[disabled]:not(.vkuiButton--clr-overlay),.vkuiButton--lvl-outline[disabled]:not(.vkuiButton--clr-overlay){opacity:.64}.vkuiButton--singleIcon.vkuiButton--sz-s .vkuiButton__in{padding:0 9px}.vkuiButton--singleIcon.vkuiButton--sz-m .vkuiButton__in{padding:0 10px}.vkuiButton--singleIcon.vkuiButton--sz-l .vkuiButton__in{padding:0 6px}.vkuiButton--singleIcon.vkuiButton--sizeY-regular.vkuiButton--sz-s .vkuiButton__in{padding:0 9px}.vkuiButton--singleIcon.vkuiButton--sizeY-regular.vkuiButton--sz-l .vkuiButton__in{padding:0 10px}.vkuiButton--singleIcon .vkuiButton__before:only-child,.vkuiButton--singleIcon .vkuiButton__after:only-child{margin:0}.vkuiButton__content{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vkuiButton__content--caps{-webkit-transform:translateY(0);transform:translateY(0)}.vkuiButton__spinner{position:absolute;left:0;top:0;right:0;bottom:0}.vkuiButton__spinner+.vkuiButton__in{visibility:hidden}.vkuiButton--lvl-primary.vkuiButton--clr-accent{background-color:#2d81e0;background-color:var(--button_primary_background,
4
4
  var(--vkui--color_background_accent)
5
5
  )}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--hover{background-color:#2483e4;background-color:var(--vkui--color_background_accent--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--active{background-color:#237edd;background-color:var(--vkui--color_background_accent--active)}.vkuiButton--lvl-primary.vkuiButton--clr-positive{background-color:#4bb34b;background-color:var(--button_commerce_background,
6
6
  var(--vkui--color_background_positive)