@vkontakte/vkui 5.9.2 → 5.9.4

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 (178) hide show
  1. package/dist/cjs/components/ActionSheet/ActionSheet.js +1 -1
  2. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  3. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +1 -1
  4. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  5. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  6. package/dist/cjs/components/Header/Header.d.ts +3 -3
  7. package/dist/cjs/components/Header/Header.d.ts.map +1 -1
  8. package/dist/cjs/components/Header/Header.js +4 -5
  9. package/dist/cjs/components/Header/Header.js.map +1 -1
  10. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  11. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +4 -0
  12. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  13. package/dist/cjs/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  14. package/dist/cjs/components/ModalRoot/ModalRoot.js +7 -1
  15. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  16. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  17. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +35 -7
  18. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  19. package/dist/cjs/components/Tappable/Tappable.d.ts.map +1 -1
  20. package/dist/cjs/components/Tappable/Tappable.js +1 -3
  21. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  22. package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -0
  23. package/dist/cjs/components/Typography/Caption/Caption.d.ts.map +1 -1
  24. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  25. package/dist/cjs/components/Typography/Footnote/Footnote.d.ts +2 -0
  26. package/dist/cjs/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  27. package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
  28. package/dist/cjs/components/Typography/Headline/Headline.d.ts +2 -0
  29. package/dist/cjs/components/Typography/Headline/Headline.d.ts.map +1 -1
  30. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  31. package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts +2 -0
  32. package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  33. package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
  34. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -0
  35. package/dist/cjs/components/Typography/Subhead/Subhead.d.ts.map +1 -1
  36. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  37. package/dist/cjs/components/Typography/Text/Text.d.ts +2 -0
  38. package/dist/cjs/components/Typography/Text/Text.d.ts.map +1 -1
  39. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  40. package/dist/cjs/components/Typography/Title/Title.d.ts +2 -0
  41. package/dist/cjs/components/Typography/Title/Title.d.ts.map +1 -1
  42. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  43. package/dist/components/ActionSheet/ActionSheet.js +1 -1
  44. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  45. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  46. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  47. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  48. package/dist/components/Header/Header.d.ts +3 -3
  49. package/dist/components/Header/Header.d.ts.map +1 -1
  50. package/dist/components/Header/Header.js +4 -5
  51. package/dist/components/Header/Header.js.map +1 -1
  52. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  53. package/dist/components/HorizontalScroll/HorizontalScroll.js +4 -0
  54. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  55. package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  56. package/dist/components/ModalRoot/ModalRoot.js +7 -1
  57. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  58. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  59. package/dist/components/PullToRefresh/PullToRefresh.js +35 -7
  60. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  61. package/dist/components/Tappable/Tappable.d.ts.map +1 -1
  62. package/dist/components/Tappable/Tappable.js +1 -3
  63. package/dist/components/Tappable/Tappable.js.map +1 -1
  64. package/dist/components/Typography/Caption/Caption.d.ts +2 -0
  65. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  66. package/dist/components/Typography/Caption/Caption.js +2 -0
  67. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  68. package/dist/components/Typography/Footnote/Footnote.d.ts +2 -0
  69. package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  70. package/dist/components/Typography/Footnote/Footnote.js +2 -0
  71. package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
  72. package/dist/components/Typography/Headline/Headline.d.ts +2 -0
  73. package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
  74. package/dist/components/Typography/Headline/Headline.js +2 -0
  75. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  76. package/dist/components/Typography/Paragraph/Paragraph.d.ts +2 -0
  77. package/dist/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  78. package/dist/components/Typography/Paragraph/Paragraph.js +2 -0
  79. package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
  80. package/dist/components/Typography/Subhead/Subhead.d.ts +2 -0
  81. package/dist/components/Typography/Subhead/Subhead.d.ts.map +1 -1
  82. package/dist/components/Typography/Subhead/Subhead.js +2 -0
  83. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  84. package/dist/components/Typography/Text/Text.d.ts +2 -0
  85. package/dist/components/Typography/Text/Text.d.ts.map +1 -1
  86. package/dist/components/Typography/Text/Text.js +2 -0
  87. package/dist/components/Typography/Text/Text.js.map +1 -1
  88. package/dist/components/Typography/Title/Title.d.ts +2 -0
  89. package/dist/components/Typography/Title/Title.d.ts.map +1 -1
  90. package/dist/components/Typography/Title/Title.js +2 -0
  91. package/dist/components/Typography/Title/Title.js.map +1 -1
  92. package/dist/components.css +2 -2
  93. package/dist/components.css.map +1 -1
  94. package/dist/components.js.tmp +1557 -1538
  95. package/dist/cssm/components/ActionSheet/ActionSheet.js +1 -1
  96. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  97. package/dist/cssm/components/Alert/Alert.module.css +5 -0
  98. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  99. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  100. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  101. package/dist/cssm/components/Header/Header.d.ts +3 -3
  102. package/dist/cssm/components/Header/Header.d.ts.map +1 -1
  103. package/dist/cssm/components/Header/Header.js +2 -3
  104. package/dist/cssm/components/Header/Header.js.map +1 -1
  105. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  106. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +4 -0
  107. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  108. package/dist/cssm/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  109. package/dist/cssm/components/ModalRoot/ModalRoot.js +7 -1
  110. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  111. package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  112. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +35 -7
  113. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  114. package/dist/cssm/components/Tappable/Tappable.d.ts.map +1 -1
  115. package/dist/cssm/components/Tappable/Tappable.js +1 -3
  116. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  117. package/dist/cssm/components/Typography/Caption/Caption.d.ts +2 -0
  118. package/dist/cssm/components/Typography/Caption/Caption.d.ts.map +1 -1
  119. package/dist/cssm/components/Typography/Caption/Caption.js +2 -0
  120. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  121. package/dist/cssm/components/Typography/Footnote/Footnote.d.ts +2 -0
  122. package/dist/cssm/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  123. package/dist/cssm/components/Typography/Footnote/Footnote.js +2 -0
  124. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  125. package/dist/cssm/components/Typography/Headline/Headline.d.ts +2 -0
  126. package/dist/cssm/components/Typography/Headline/Headline.d.ts.map +1 -1
  127. package/dist/cssm/components/Typography/Headline/Headline.js +2 -0
  128. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  129. package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts +2 -0
  130. package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
  131. package/dist/cssm/components/Typography/Paragraph/Paragraph.js +2 -0
  132. package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
  133. package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +2 -0
  134. package/dist/cssm/components/Typography/Subhead/Subhead.d.ts.map +1 -1
  135. package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -0
  136. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  137. package/dist/cssm/components/Typography/Text/Text.d.ts +2 -0
  138. package/dist/cssm/components/Typography/Text/Text.d.ts.map +1 -1
  139. package/dist/cssm/components/Typography/Text/Text.js +2 -0
  140. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  141. package/dist/cssm/components/Typography/Title/Title.d.ts +2 -0
  142. package/dist/cssm/components/Typography/Title/Title.d.ts.map +1 -1
  143. package/dist/cssm/components/Typography/Title/Title.js +2 -0
  144. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  145. package/dist/cssm/styles/common.css +5 -0
  146. package/dist/vkui.css +2 -2
  147. package/dist/vkui.css.map +1 -1
  148. package/dist/vkui.js.tmp +1557 -1538
  149. package/package.json +1 -1
  150. package/src/components/ActionSheet/ActionSheet.tsx +2 -2
  151. package/src/components/Alert/Alert.module.css +5 -0
  152. package/src/components/CustomSelect/CustomSelect.tsx +1 -1
  153. package/src/components/Header/Header.tsx +3 -3
  154. package/src/components/HorizontalScroll/HorizontalScroll.tsx +4 -0
  155. package/src/components/ModalRoot/ModalRoot.tsx +9 -1
  156. package/src/components/PullToRefresh/PullToRefresh.tsx +43 -9
  157. package/src/components/Tappable/Tappable.tsx +1 -3
  158. package/src/components/Typography/Caption/Caption.tsx +2 -0
  159. package/src/components/Typography/Footnote/Footnote.tsx +2 -0
  160. package/src/components/Typography/Headline/Headline.tsx +2 -0
  161. package/src/components/Typography/Paragraph/Paragraph.tsx +2 -0
  162. package/src/components/Typography/Subhead/Subhead.tsx +2 -0
  163. package/src/components/Typography/Text/Text.tsx +2 -0
  164. package/src/components/Typography/Title/Title.tsx +2 -0
  165. package/src/styles/common.css +6 -0
  166. package/dist/cjs/hooks/useAdaptivityHasHover.d.ts +0 -9
  167. package/dist/cjs/hooks/useAdaptivityHasHover.d.ts.map +0 -1
  168. package/dist/cjs/hooks/useAdaptivityHasHover.js +0 -28
  169. package/dist/cjs/hooks/useAdaptivityHasHover.js.map +0 -1
  170. package/dist/cssm/hooks/useAdaptivityHasHover.d.ts +0 -9
  171. package/dist/cssm/hooks/useAdaptivityHasHover.d.ts.map +0 -1
  172. package/dist/cssm/hooks/useAdaptivityHasHover.js +0 -16
  173. package/dist/cssm/hooks/useAdaptivityHasHover.js.map +0 -1
  174. package/dist/hooks/useAdaptivityHasHover.d.ts +0 -9
  175. package/dist/hooks/useAdaptivityHasHover.d.ts.map +0 -1
  176. package/dist/hooks/useAdaptivityHasHover.js +0 -17
  177. package/dist/hooks/useAdaptivityHasHover.js.map +0 -1
  178. package/src/hooks/useAdaptivityHasHover.ts +0 -26
@@ -1 +1 @@
1
- {"version":3,"file":"Footnote.d.ts","sourceRoot":"","sources":["../../../../../src/components/Typography/Footnote/Footnote.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrE,MAAM,WAAW,aAAc,SAAQ,eAAe,EAAE,OAAO;CAAG;AAElE;;GAEG;AACH,eAAO,MAAM,QAAQ,4DAMlB,aAAa,sBAOf,CAAC"}
1
+ {"version":3,"file":"Footnote.d.ts","sourceRoot":"","sources":["../../../../../src/components/Typography/Footnote/Footnote.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrE,MAAM,WAAW,aAAc,SAAQ,eAAe,EAAE,OAAO;CAAG;AAElE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,4DAMlB,aAAa,sBAOf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Footnote/Footnote.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasCaps, Typography, TypographyProps } from '../Typography';\nimport styles from './Footnote.module.css';\n\nexport interface FootnoteProps extends TypographyProps, HasCaps {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Footnote\n */\nexport const Footnote = ({\n className,\n caps,\n Component = 'span',\n normalize = true,\n ...restProps\n}: FootnoteProps) => (\n <Typography\n Component={Component}\n normalize={normalize}\n className={classNames(className, styles['Footnote'], caps && styles['Footnote--caps'])}\n {...restProps}\n />\n);\n"],"names":["Footnote","className","caps","Component","normalize","restProps","Typography","classNames"],"mappings":";;;;+BAUaA;;;eAAAA;;;;;;+DAVU;oBACI;0BAC0B;AAQ9C,IAAMA,WAAW;QACtBC,mBAAAA,WACAC,cAAAA,gCACAC,WAAAA,0CAAY,qDACZC,WAAAA,0CAAY,yBACTC;QAJHJ;QACAC;QACAC;QACAC;;WAGA,qBAACE,sBAAU;QACTH,WAAWA;QACXC,WAAWA;QACXH,WAAWM,IAAAA,gBAAU,EAACN,2BAA+BC;OACjDG;AACL"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Footnote/Footnote.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasCaps, Typography, TypographyProps } from '../Typography';\nimport styles from './Footnote.module.css';\n\nexport interface FootnoteProps extends TypographyProps, HasCaps {}\n\n/**\n * Используется для основных подписей.\n *\n * @see https://vkcom.github.io/VKUI/#/Footnote\n */\nexport const Footnote = ({\n className,\n caps,\n Component = 'span',\n normalize = true,\n ...restProps\n}: FootnoteProps) => (\n <Typography\n Component={Component}\n normalize={normalize}\n className={classNames(className, styles['Footnote'], caps && styles['Footnote--caps'])}\n {...restProps}\n />\n);\n"],"names":["Footnote","className","caps","Component","normalize","restProps","Typography","classNames"],"mappings":";;;;+BAYaA;;;eAAAA;;;;;;+DAZU;oBACI;0BAC0B;AAU9C,IAAMA,WAAW;QACtBC,mBAAAA,WACAC,cAAAA,gCACAC,WAAAA,0CAAY,qDACZC,WAAAA,0CAAY,yBACTC;QAJHJ;QACAC;QACAC;QACAC;;WAGA,qBAACE,sBAAU;QACTH,WAAWA;QACXC,WAAWA;QACXH,WAAWM,IAAAA,gBAAU,EAACN,2BAA+BC;OACjDG;AACL"}
@@ -4,6 +4,8 @@ export interface HeadlineProps extends TypographyProps {
4
4
  level?: '1' | '2';
5
5
  }
6
6
  /**
7
+ * Используется для подзаголовков.
8
+ *
7
9
  * @see https://vkcom.github.io/VKUI/#/Headline
8
10
  */
9
11
  export declare const Headline: ({ className, weight, level, Component, normalize, ...restProps }: HeadlineProps) => React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Headline.d.ts","sourceRoot":"","sources":["../../../../../src/components/Typography/Headline/Headline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAa5D,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,qEAOlB,aAAa,sBAgBf,CAAC"}
1
+ {"version":3,"file":"Headline.d.ts","sourceRoot":"","sources":["../../../../../src/components/Typography/Headline/Headline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAa5D,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,qEAOlB,aAAa,sBAgBf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Headline/Headline.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { SizeType } from '../../../lib/adaptivity';\nimport { Typography, TypographyProps } from '../Typography';\nimport styles from './Headline.module.css';\n\nconst stylesLevel = {\n '1': styles['Headline--level-1'],\n '2': styles['Headline--level-2'],\n};\n\nconst sizeYClassNames = {\n none: styles['Headline--sizeY-none'],\n [SizeType.COMPACT]: styles['Headline--sizeY-compact'],\n};\n\nexport interface HeadlineProps extends TypographyProps {\n level?: '1' | '2';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Headline\n */\nexport const Headline = ({\n className,\n weight = '3',\n level = '1',\n Component = 'h4',\n normalize = true,\n ...restProps\n}: HeadlineProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n weight={weight}\n className={classNames(\n className,\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n stylesLevel[level],\n )}\n {...restProps}\n />\n );\n};\n"],"names":["Headline","stylesLevel","sizeYClassNames","none","SizeType","COMPACT","className","weight","level","Component","normalize","restProps","useAdaptivity","sizeY","Typography","classNames","REGULAR"],"mappings":";;;;+BAwBaA;;;eAAAA;;;;;;;+DAxBU;oBACI;6BACG;0BACL;0BACmB;AAG5C,IAAMC,cAAc;IAClB,GAAG;IACH,GAAG;AACL;AAEA,IAAMC;IACJC,IAAI;GACHC,oBAAQ,CAACC,OAAO;AAUZ,IAAML,WAAW;QACtBM,mBAAAA,kCACAC,QAAAA,oCAAS,2CACTC,OAAAA,kCAAQ,8CACRC,WAAAA,0CAAY,mDACZC,WAAAA,0CAAY,yBACTC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,IAA2BE,kBAAAA,IAAAA,4BAAa,4BAAbA,gBAAnBC,OAAAA,0CAAQ;IAEhB,qBACE,qBAACC,sBAAU;QACTL,WAAWA;QACXC,WAAWA;QACXH,QAAQA;QACRD,WAAWS,IAAAA,gBAAU,EACnBT,WACAO,UAAUT,oBAAQ,CAACY,OAAO,IAAId,eAAe,CAACW,MAAM,EACpDZ,WAAW,CAACO,MAAM;OAEhBG;AAGV"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Headline/Headline.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { SizeType } from '../../../lib/adaptivity';\nimport { Typography, TypographyProps } from '../Typography';\nimport styles from './Headline.module.css';\n\nconst stylesLevel = {\n '1': styles['Headline--level-1'],\n '2': styles['Headline--level-2'],\n};\n\nconst sizeYClassNames = {\n none: styles['Headline--sizeY-none'],\n [SizeType.COMPACT]: styles['Headline--sizeY-compact'],\n};\n\nexport interface HeadlineProps extends TypographyProps {\n level?: '1' | '2';\n}\n\n/**\n * Используется для подзаголовков.\n *\n * @see https://vkcom.github.io/VKUI/#/Headline\n */\nexport const Headline = ({\n className,\n weight = '3',\n level = '1',\n Component = 'h4',\n normalize = true,\n ...restProps\n}: HeadlineProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n weight={weight}\n className={classNames(\n className,\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n stylesLevel[level],\n )}\n {...restProps}\n />\n );\n};\n"],"names":["Headline","stylesLevel","sizeYClassNames","none","SizeType","COMPACT","className","weight","level","Component","normalize","restProps","useAdaptivity","sizeY","Typography","classNames","REGULAR"],"mappings":";;;;+BA0BaA;;;eAAAA;;;;;;;+DA1BU;oBACI;6BACG;0BACL;0BACmB;AAG5C,IAAMC,cAAc;IAClB,GAAG;IACH,GAAG;AACL;AAEA,IAAMC;IACJC,IAAI;GACHC,oBAAQ,CAACC,OAAO;AAYZ,IAAML,WAAW;QACtBM,mBAAAA,kCACAC,QAAAA,oCAAS,2CACTC,OAAAA,kCAAQ,8CACRC,WAAAA,0CAAY,mDACZC,WAAAA,0CAAY,yBACTC;QALHL;QACAC;QACAC;QACAC;QACAC;;IAGA,IAA2BE,kBAAAA,IAAAA,4BAAa,4BAAbA,gBAAnBC,OAAAA,0CAAQ;IAEhB,qBACE,qBAACC,sBAAU;QACTL,WAAWA;QACXC,WAAWA;QACXH,QAAQA;QACRD,WAAWS,IAAAA,gBAAU,EACnBT,WACAO,UAAUT,oBAAQ,CAACY,OAAO,IAAId,eAAe,CAACW,MAAM,EACpDZ,WAAW,CAACO,MAAM;OAEhBG;AAGV"}
@@ -2,6 +2,8 @@ import * as React from 'react';
2
2
  import { TypographyProps } from '../Typography';
3
3
  export type ParagraphProps = TypographyProps;
4
4
  /**
5
+ * Используется для основного текста.
6
+ *
5
7
  * @see https://vkcom.github.io/VKUI/#/Paragraph
6
8
  */
7
9
  export declare const Paragraph: ({ className, Component, normalize, ...restProps }: ParagraphProps) => React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Paragraph.d.ts","sourceRoot":"","sources":["../../../../../src/components/Typography/Paragraph/Paragraph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAG5D,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,SAAS,sDAKnB,cAAc,sBAShB,CAAC"}
1
+ {"version":3,"file":"Paragraph.d.ts","sourceRoot":"","sources":["../../../../../src/components/Typography/Paragraph/Paragraph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAG5D,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,SAAS,sDAKnB,cAAc,sBAShB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Paragraph/Paragraph.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Typography, TypographyProps } from '../Typography';\nimport styles from './Paragraph.module.css';\n\nexport type ParagraphProps = TypographyProps;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Paragraph\n */\nexport const Paragraph = ({\n className,\n Component = 'span',\n normalize = false,\n ...restProps\n}: ParagraphProps) => {\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n className={classNames(className, styles['Paragraph'])}\n {...restProps}\n />\n );\n};\n"],"names":["Paragraph","className","Component","normalize","restProps","Typography","classNames"],"mappings":";;;;+BAUaA;;;eAAAA;;;;;;+DAVU;oBACI;0BACiB;AAQrC,IAAMA,YAAY;QACvBC,mBAAAA,qCACAC,WAAAA,0CAAY,qDACZC,WAAAA,0CAAY,0BACTC;QAHHH;QACAC;QACAC;;IAGA,qBACE,qBAACE,sBAAU;QACTH,WAAWA;QACXC,WAAWA;QACXF,WAAWK,IAAAA,gBAAU,EAACL;OAClBG;AAGV"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Paragraph/Paragraph.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Typography, TypographyProps } from '../Typography';\nimport styles from './Paragraph.module.css';\n\nexport type ParagraphProps = TypographyProps;\n\n/**\n * Используется для основного текста.\n *\n * @see https://vkcom.github.io/VKUI/#/Paragraph\n */\nexport const Paragraph = ({\n className,\n Component = 'span',\n normalize = false,\n ...restProps\n}: ParagraphProps) => {\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n className={classNames(className, styles['Paragraph'])}\n {...restProps}\n />\n );\n};\n"],"names":["Paragraph","className","Component","normalize","restProps","Typography","classNames"],"mappings":";;;;+BAYaA;;;eAAAA;;;;;;+DAZU;oBACI;0BACiB;AAUrC,IAAMA,YAAY;QACvBC,mBAAAA,qCACAC,WAAAA,0CAAY,qDACZC,WAAAA,0CAAY,0BACTC;QAHHH;QACAC;QACAC;;IAGA,qBACE,qBAACE,sBAAU;QACTH,WAAWA;QACXC,WAAWA;QACXF,WAAWK,IAAAA,gBAAU,EAACL;OAClBG;AAGV"}
@@ -2,6 +2,8 @@ import * as React from 'react';
2
2
  import { TypographyProps } from '../Typography';
3
3
  export type SubheadProps = TypographyProps;
4
4
  /**
5
+ * Используется для подзаголовков 2 уровня.
6
+ *
5
7
  * @see https://vkcom.github.io/VKUI/#/Subhead
6
8
  */
7
9
  export declare const Subhead: ({ className, Component, normalize, ...restProps }: SubheadProps) => React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Subhead.d.ts","sourceRoot":"","sources":["../../../../../src/components/Typography/Subhead/Subhead.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAQ5D,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,OAAO,sDAKjB,YAAY,sBAed,CAAC"}
1
+ {"version":3,"file":"Subhead.d.ts","sourceRoot":"","sources":["../../../../../src/components/Typography/Subhead/Subhead.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAQ5D,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,OAAO,sDAKjB,YAAY,sBAed,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Subhead/Subhead.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { SizeType } from '../../../lib/adaptivity';\nimport { Typography, TypographyProps } from '../Typography';\nimport styles from './Subhead.module.css';\n\nconst sizeYClassNames = {\n none: styles['Subhead--sizeY-none'],\n [SizeType.COMPACT]: styles['Subhead--sizeY-compact'],\n};\n\nexport type SubheadProps = TypographyProps;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Subhead\n */\nexport const Subhead = ({\n className,\n Component = 'h5',\n normalize = true,\n ...restProps\n}: SubheadProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n className={classNames(\n className,\n styles['Subhead'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n )}\n {...restProps}\n />\n );\n};\n"],"names":["Subhead","sizeYClassNames","none","SizeType","COMPACT","className","Component","normalize","restProps","useAdaptivity","sizeY","Typography","classNames","REGULAR"],"mappings":";;;;+BAiBaA;;;eAAAA;;;;;;;+DAjBU;oBACI;6BACG;0BACL;0BACmB;AAG5C,IAAMC;IACJC,IAAI;GACHC,oBAAQ,CAACC,OAAO;AAQZ,IAAMJ,UAAU;QACrBK,mBAAAA,qCACAC,WAAAA,0CAAY,mDACZC,WAAAA,0CAAY,yBACTC;QAHHH;QACAC;QACAC;;IAGA,IAA2BE,kBAAAA,IAAAA,4BAAa,4BAAbA,gBAAnBC,OAAAA,0CAAQ;IAEhB,qBACE,qBAACC,sBAAU;QACTL,WAAWA;QACXC,WAAWA;QACXF,WAAWO,IAAAA,gBAAU,EACnBP,0BAEAK,UAAUP,oBAAQ,CAACU,OAAO,IAAIZ,eAAe,CAACS,MAAM;OAElDF;AAGV"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Subhead/Subhead.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { SizeType } from '../../../lib/adaptivity';\nimport { Typography, TypographyProps } from '../Typography';\nimport styles from './Subhead.module.css';\n\nconst sizeYClassNames = {\n none: styles['Subhead--sizeY-none'],\n [SizeType.COMPACT]: styles['Subhead--sizeY-compact'],\n};\n\nexport type SubheadProps = TypographyProps;\n\n/**\n * Используется для подзаголовков 2 уровня.\n *\n * @see https://vkcom.github.io/VKUI/#/Subhead\n */\nexport const Subhead = ({\n className,\n Component = 'h5',\n normalize = true,\n ...restProps\n}: SubheadProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n className={classNames(\n className,\n styles['Subhead'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n )}\n {...restProps}\n />\n );\n};\n"],"names":["Subhead","sizeYClassNames","none","SizeType","COMPACT","className","Component","normalize","restProps","useAdaptivity","sizeY","Typography","classNames","REGULAR"],"mappings":";;;;+BAmBaA;;;eAAAA;;;;;;;+DAnBU;oBACI;6BACG;0BACL;0BACmB;AAG5C,IAAMC;IACJC,IAAI;GACHC,oBAAQ,CAACC,OAAO;AAUZ,IAAMJ,UAAU;QACrBK,mBAAAA,qCACAC,WAAAA,0CAAY,mDACZC,WAAAA,0CAAY,yBACTC;QAHHH;QACAC;QACAC;;IAGA,IAA2BE,kBAAAA,IAAAA,4BAAa,4BAAbA,gBAAnBC,OAAAA,0CAAQ;IAEhB,qBACE,qBAACC,sBAAU;QACTL,WAAWA;QACXC,WAAWA;QACXF,WAAWO,IAAAA,gBAAU,EACnBP,0BAEAK,UAAUP,oBAAQ,CAACU,OAAO,IAAIZ,eAAe,CAACS,MAAM;OAElDF;AAGV"}
@@ -2,6 +2,8 @@ import * as React from 'react';
2
2
  import { TypographyProps } from '../Typography';
3
3
  export type TextProps = TypographyProps;
4
4
  /**
5
+ * Основной наборный текст.
6
+ *
5
7
  * @see https://vkcom.github.io/VKUI/#/Text
6
8
  */
7
9
  export declare const Text: ({ className, Component, normalize, ...restProps }: TextProps) => React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../../../src/components/Typography/Text/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAQ5D,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,IAAI,sDAKd,SAAS,sBAeX,CAAC"}
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../../../src/components/Typography/Text/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAQ5D,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,IAAI,sDAKd,SAAS,sBAeX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Text/Text.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { SizeType } from '../../../lib/adaptivity';\nimport { Typography, TypographyProps } from '../Typography';\nimport styles from './Text.module.css';\n\nconst sizeYClassNames = {\n none: styles['Text--sizeY-none'],\n [SizeType.COMPACT]: styles['Text--sizeY-compact'],\n};\n\nexport type TextProps = TypographyProps;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Text\n */\nexport const Text = ({\n className,\n Component = 'span',\n normalize = true,\n ...restProps\n}: TextProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n className={classNames(\n className,\n styles['Text'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n )}\n {...restProps}\n />\n );\n};\n"],"names":["Text","sizeYClassNames","none","SizeType","COMPACT","className","Component","normalize","restProps","useAdaptivity","sizeY","Typography","classNames","REGULAR"],"mappings":";;;;+BAiBaA;;;eAAAA;;;;;;;+DAjBU;oBACI;6BACG;0BACL;0BACmB;AAG5C,IAAMC;IACJC,IAAI;GACHC,oBAAQ,CAACC,OAAO;AAQZ,IAAMJ,OAAO;QAClBK,mBAAAA,qCACAC,WAAAA,0CAAY,qDACZC,WAAAA,0CAAY,yBACTC;QAHHH;QACAC;QACAC;;IAGA,IAA2BE,kBAAAA,IAAAA,4BAAa,4BAAbA,gBAAnBC,OAAAA,0CAAQ;IAEhB,qBACE,qBAACC,sBAAU;QACTL,WAAWA;QACXC,WAAWA;QACXF,WAAWO,IAAAA,gBAAU,EACnBP,uBAEAK,UAAUP,oBAAQ,CAACU,OAAO,IAAIZ,eAAe,CAACS,MAAM;OAElDF;AAGV"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Text/Text.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../../hooks/useAdaptivity';\nimport { SizeType } from '../../../lib/adaptivity';\nimport { Typography, TypographyProps } from '../Typography';\nimport styles from './Text.module.css';\n\nconst sizeYClassNames = {\n none: styles['Text--sizeY-none'],\n [SizeType.COMPACT]: styles['Text--sizeY-compact'],\n};\n\nexport type TextProps = TypographyProps;\n\n/**\n * Основной наборный текст.\n *\n * @see https://vkcom.github.io/VKUI/#/Text\n */\nexport const Text = ({\n className,\n Component = 'span',\n normalize = true,\n ...restProps\n}: TextProps) => {\n const { sizeY = 'none' } = useAdaptivity();\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n className={classNames(\n className,\n styles['Text'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n )}\n {...restProps}\n />\n );\n};\n"],"names":["Text","sizeYClassNames","none","SizeType","COMPACT","className","Component","normalize","restProps","useAdaptivity","sizeY","Typography","classNames","REGULAR"],"mappings":";;;;+BAmBaA;;;eAAAA;;;;;;;+DAnBU;oBACI;6BACG;0BACL;0BACmB;AAG5C,IAAMC;IACJC,IAAI;GACHC,oBAAQ,CAACC,OAAO;AAUZ,IAAMJ,OAAO;QAClBK,mBAAAA,qCACAC,WAAAA,0CAAY,qDACZC,WAAAA,0CAAY,yBACTC;QAHHH;QACAC;QACAC;;IAGA,IAA2BE,kBAAAA,IAAAA,4BAAa,4BAAbA,gBAAnBC,OAAAA,0CAAQ;IAEhB,qBACE,qBAACC,sBAAU;QACTL,WAAWA;QACXC,WAAWA;QACXF,WAAWO,IAAAA,gBAAU,EACnBP,uBAEAK,UAAUP,oBAAQ,CAACU,OAAO,IAAIZ,eAAe,CAACS,MAAM;OAElDF;AAGV"}
@@ -4,6 +4,8 @@ export interface TitleProps extends TypographyProps {
4
4
  level?: '1' | '2' | '3';
5
5
  }
6
6
  /**
7
+ * Используется для заголовков.
8
+ *
7
9
  * @see https://vkcom.github.io/VKUI/#/Title
8
10
  */
9
11
  export declare const Title: ({ className, level, Component, normalize, ...restProps }: TitleProps) => React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Title.d.ts","sourceRoot":"","sources":["../../../../../src/components/Typography/Title/Title.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAS5D,MAAM,WAAW,UAAW,SAAQ,eAAe;IACjD,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,6DAMf,UAAU,sBAaZ,CAAC"}
1
+ {"version":3,"file":"Title.d.ts","sourceRoot":"","sources":["../../../../../src/components/Typography/Title/Title.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAC;AAS5D,MAAM,WAAW,UAAW,SAAQ,eAAe;IACjD,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,KAAK,6DAMf,UAAU,sBAaZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Typography/Title/Title.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Typography, TypographyProps } from '../Typography';\nimport styles from './Title.module.css';\n\nconst stylesLevel = {\n '1': styles['Title--level-1'],\n '2': styles['Title--level-2'],\n '3': styles['Title--level-3'],\n};\n\nexport interface TitleProps extends TypographyProps {\n level?: '1' | '2' | '3';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Title\n */\nexport const Title = ({\n className,\n level = '1',\n Component,\n normalize = true,\n ...restProps\n}: TitleProps) => {\n if (!Component) {\n Component = ('h' + level) as React.ElementType;\n }\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n className={classNames(className, stylesLevel[level])}\n {...restProps}\n />\n );\n};\n"],"names":["Title","stylesLevel","className","level","Component","normalize","restProps","Typography","classNames"],"mappings":";;;;+BAkBaA;;;eAAAA;;;;;;+DAlBU;oBACI;0BACiB;AAG5C,IAAMC,cAAc;IAClB,GAAG;IACH,GAAG;IACH,GAAG;AACL;AASO,IAAMD,QAAQ;QACnBE,mBAAAA,iCACAC,OAAAA,kCAAQ,oBACRC,mBAAAA,qCACAC,WAAAA,0CAAY,yBACTC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAI,CAACD,WAAW;QACdA,YAAa,MAAMD;IACrB;IAEA,qBACE,qBAACI,sBAAU;QACTH,WAAWA;QACXC,WAAWA;QACXH,WAAWM,IAAAA,gBAAU,EAACN,WAAWD,WAAW,CAACE,MAAM;OAC/CG;AAGV"}
1
+ {"version":3,"sources":["../../../../../src/components/Typography/Title/Title.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Typography, TypographyProps } from '../Typography';\nimport styles from './Title.module.css';\n\nconst stylesLevel = {\n '1': styles['Title--level-1'],\n '2': styles['Title--level-2'],\n '3': styles['Title--level-3'],\n};\n\nexport interface TitleProps extends TypographyProps {\n level?: '1' | '2' | '3';\n}\n\n/**\n * Используется для заголовков.\n *\n * @see https://vkcom.github.io/VKUI/#/Title\n */\nexport const Title = ({\n className,\n level = '1',\n Component,\n normalize = true,\n ...restProps\n}: TitleProps) => {\n if (!Component) {\n Component = ('h' + level) as React.ElementType;\n }\n\n return (\n <Typography\n Component={Component}\n normalize={normalize}\n className={classNames(className, stylesLevel[level])}\n {...restProps}\n />\n );\n};\n"],"names":["Title","stylesLevel","className","level","Component","normalize","restProps","Typography","classNames"],"mappings":";;;;+BAoBaA;;;eAAAA;;;;;;+DApBU;oBACI;0BACiB;AAG5C,IAAMC,cAAc;IAClB,GAAG;IACH,GAAG;IACH,GAAG;AACL;AAWO,IAAMD,QAAQ;QACnBE,mBAAAA,iCACAC,OAAAA,kCAAQ,oBACRC,mBAAAA,qCACAC,WAAAA,0CAAY,yBACTC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAI,CAACD,WAAW;QACdA,YAAa,MAAMD;IACrB;IAEA,qBACE,qBAACI,sBAAU;QACTH,WAAWA;QACXC,WAAWA;QACXH,WAAWM,IAAAA,gBAAU,EAACN,WAAWD,WAAW,CAACE,MAAM;OAC/CG;AAGV"}
@@ -105,7 +105,7 @@ var warn = warnOnce("ActionSheet");
105
105
  style: mode === "menu" ? style : undefined
106
106
  }), /*#__PURE__*/ React.createElement("div", {
107
107
  className: "vkuiActionSheet__content-wrapper"
108
- }, (header || text) && /*#__PURE__*/ React.createElement("header", {
108
+ }, (header || text) && /*#__PURE__*/ React.createElement("div", {
109
109
  className: "vkuiActionSheet__header"
110
110
  }, header && /*#__PURE__*/ React.createElement(Footnote, {
111
111
  weight: "2",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheet.tsx"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport { ActionSheetDefaultIosCloseItem } from './ActionSheetDefaultIosCloseItem';\nimport { ActionSheetDropdownMenu } from './ActionSheetDropdownMenu';\nimport { ActionSheetDropdownSheet } from './ActionSheetDropdownSheet';\nimport { SharedDropdownProps } from './types';\nimport styles from './ActionSheet.module.css';\n\nconst warn = warnOnce('ActionSheet');\ntype CloseInitiators = 'action-item' | 'cancel-item' | 'other';\nexport interface ActionSheetOnCloseOptions {\n closedBy: CloseInitiators;\n}\n\nexport interface ActionSheetProps\n extends Pick<\n SharedDropdownProps,\n 'toggleRef' | 'popupDirection' | 'popupOffsetDistance' | 'placement'\n >,\n React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи.\n */\n onClose(options: ActionSheetOnCloseOptions): void;\n /**\n * Только мобильный iOS.\n */\n iosCloseItem?: React.ReactNode;\n mode?: 'sheet' | 'menu';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheet\n */\nexport const ActionSheet = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n popupDirection,\n popupOffsetDistance,\n placement,\n mode: modeProp,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closingBy, setClosingBy] = React.useState<undefined | CloseInitiators>(undefined);\n const onClose = () => setClosingBy('other');\n const _action = React.useRef(noop);\n\n const afterClose = () => {\n restProps.onClose({ closedBy: closingBy || 'other' });\n _action.current();\n _action.current = noop;\n };\n\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const mode = modeProp ?? (isDesktop ? 'menu' : 'sheet');\n\n useScrollLock(mode === 'sheet');\n\n let timeout = platform === Platform.IOS ? 300 : 200;\n\n if (mode === 'menu') {\n timeout = 0;\n }\n\n const fallbackTransitionFinish = useTimeout(afterClose, timeout);\n React.useEffect(() => {\n if (closingBy) {\n fallbackTransitionFinish.set();\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closingBy, fallbackTransitionFinish]);\n\n const onItemClick = React.useCallback<ItemClickHandler>(\n ({ action, immediateAction, autoClose, isCancelItem }) =>\n (event) => {\n event.persist();\n immediateAction && immediateAction(event);\n if (autoClose) {\n _action.current = () => action && action(event);\n setClosingBy(isCancelItem ? 'cancel-item' : 'action-item');\n } else {\n action && action(event);\n }\n },\n [],\n );\n const contextValue = useObjectMemo({ onItemClick, mode });\n\n const DropdownComponent = mode === 'menu' ? ActionSheetDropdownMenu : ActionSheetDropdownSheet;\n\n if (process.env.NODE_ENV === 'development' && popupDirection) {\n // TODO [>=6]: popupDirection\n warn('Свойство \"popupDirection\" будет удалено в v6. Используйте свойство \"placement\"');\n }\n\n popupDirection = popupDirection !== undefined ? popupDirection : 'bottom';\n\n const dropdownProps =\n mode === 'menu'\n ? Object.assign(restProps, { popupOffsetDistance, popupDirection, placement })\n : restProps;\n\n const actionSheet = (\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={Boolean(closingBy)}\n timeout={timeout}\n {...dropdownProps}\n onClose={onClose}\n className={mode === 'menu' ? className : undefined}\n style={mode === 'menu' ? style : undefined}\n >\n <div className={styles['ActionSheet__content-wrapper']}>\n {(header || text) && (\n <header className={styles['ActionSheet__header']}>\n {header && (\n <Footnote weight=\"2\" className={styles['ActionSheet__title']}>\n {header}\n </Footnote>\n )}\n {text && <Footnote className={styles['ActionSheet__text']}>{text}</Footnote>}\n </header>\n )}\n {children}\n </div>\n {platform === Platform.IOS && mode === 'sheet' && (\n <div className={styles['ActionSheet__close-item-wrapper--ios']}>\n {iosCloseItem ?? <ActionSheetDefaultIosCloseItem />}\n </div>\n )}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n );\n\n if (mode === 'menu') {\n return actionSheet;\n }\n\n return (\n <PopoutWrapper\n closing={Boolean(closingBy)}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={onClose}\n hasMask\n fixed\n >\n {actionSheet}\n </PopoutWrapper>\n );\n};\n"],"names":["React","noop","useAdaptivityWithJSMediaQueries","useObjectMemo","usePlatform","useTimeout","Platform","warnOnce","useScrollLock","PopoutWrapper","Footnote","ActionSheetContext","ActionSheetDefaultIosCloseItem","ActionSheetDropdownMenu","ActionSheetDropdownSheet","warn","ActionSheet","children","className","header","text","style","iosCloseItem","popupDirection","popupOffsetDistance","placement","mode","modeProp","restProps","platform","useState","undefined","closingBy","setClosingBy","onClose","_action","useRef","afterClose","closedBy","current","isDesktop","timeout","IOS","fallbackTransitionFinish","useEffect","set","clear","onItemClick","useCallback","action","immediateAction","autoClose","isCancelItem","event","persist","contextValue","DropdownComponent","process","env","NODE_ENV","dropdownProps","Object","assign","actionSheet","Provider","value","closing","Boolean","div","weight","alignY","onClick","hasMask","fixed"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheet.tsx"],"sourcesContent":["import * as React from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport { ActionSheetDefaultIosCloseItem } from './ActionSheetDefaultIosCloseItem';\nimport { ActionSheetDropdownMenu } from './ActionSheetDropdownMenu';\nimport { ActionSheetDropdownSheet } from './ActionSheetDropdownSheet';\nimport { SharedDropdownProps } from './types';\nimport styles from './ActionSheet.module.css';\n\nconst warn = warnOnce('ActionSheet');\ntype CloseInitiators = 'action-item' | 'cancel-item' | 'other';\nexport interface ActionSheetOnCloseOptions {\n closedBy: CloseInitiators;\n}\n\nexport interface ActionSheetProps\n extends Pick<\n SharedDropdownProps,\n 'toggleRef' | 'popupDirection' | 'popupOffsetDistance' | 'placement'\n >,\n React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи.\n */\n onClose(options: ActionSheetOnCloseOptions): void;\n /**\n * Только мобильный iOS.\n */\n iosCloseItem?: React.ReactNode;\n mode?: 'sheet' | 'menu';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ActionSheet\n */\nexport const ActionSheet = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n popupDirection,\n popupOffsetDistance,\n placement,\n mode: modeProp,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closingBy, setClosingBy] = React.useState<undefined | CloseInitiators>(undefined);\n const onClose = () => setClosingBy('other');\n const _action = React.useRef(noop);\n\n const afterClose = () => {\n restProps.onClose({ closedBy: closingBy || 'other' });\n _action.current();\n _action.current = noop;\n };\n\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const mode = modeProp ?? (isDesktop ? 'menu' : 'sheet');\n\n useScrollLock(mode === 'sheet');\n\n let timeout = platform === Platform.IOS ? 300 : 200;\n\n if (mode === 'menu') {\n timeout = 0;\n }\n\n const fallbackTransitionFinish = useTimeout(afterClose, timeout);\n React.useEffect(() => {\n if (closingBy) {\n fallbackTransitionFinish.set();\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closingBy, fallbackTransitionFinish]);\n\n const onItemClick = React.useCallback<ItemClickHandler>(\n ({ action, immediateAction, autoClose, isCancelItem }) =>\n (event) => {\n event.persist();\n immediateAction && immediateAction(event);\n if (autoClose) {\n _action.current = () => action && action(event);\n setClosingBy(isCancelItem ? 'cancel-item' : 'action-item');\n } else {\n action && action(event);\n }\n },\n [],\n );\n const contextValue = useObjectMemo({ onItemClick, mode });\n\n const DropdownComponent = mode === 'menu' ? ActionSheetDropdownMenu : ActionSheetDropdownSheet;\n\n if (process.env.NODE_ENV === 'development' && popupDirection) {\n // TODO [>=6]: popupDirection\n warn('Свойство \"popupDirection\" будет удалено в v6. Используйте свойство \"placement\"');\n }\n\n popupDirection = popupDirection !== undefined ? popupDirection : 'bottom';\n\n const dropdownProps =\n mode === 'menu'\n ? Object.assign(restProps, { popupOffsetDistance, popupDirection, placement })\n : restProps;\n\n const actionSheet = (\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={Boolean(closingBy)}\n timeout={timeout}\n {...dropdownProps}\n onClose={onClose}\n className={mode === 'menu' ? className : undefined}\n style={mode === 'menu' ? style : undefined}\n >\n <div className={styles['ActionSheet__content-wrapper']}>\n {(header || text) && (\n <div className={styles['ActionSheet__header']}>\n {header && (\n <Footnote weight=\"2\" className={styles['ActionSheet__title']}>\n {header}\n </Footnote>\n )}\n {text && <Footnote className={styles['ActionSheet__text']}>{text}</Footnote>}\n </div>\n )}\n {children}\n </div>\n {platform === Platform.IOS && mode === 'sheet' && (\n <div className={styles['ActionSheet__close-item-wrapper--ios']}>\n {iosCloseItem ?? <ActionSheetDefaultIosCloseItem />}\n </div>\n )}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n );\n\n if (mode === 'menu') {\n return actionSheet;\n }\n\n return (\n <PopoutWrapper\n closing={Boolean(closingBy)}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={onClose}\n hasMask\n fixed\n >\n {actionSheet}\n </PopoutWrapper>\n );\n};\n"],"names":["React","noop","useAdaptivityWithJSMediaQueries","useObjectMemo","usePlatform","useTimeout","Platform","warnOnce","useScrollLock","PopoutWrapper","Footnote","ActionSheetContext","ActionSheetDefaultIosCloseItem","ActionSheetDropdownMenu","ActionSheetDropdownSheet","warn","ActionSheet","children","className","header","text","style","iosCloseItem","popupDirection","popupOffsetDistance","placement","mode","modeProp","restProps","platform","useState","undefined","closingBy","setClosingBy","onClose","_action","useRef","afterClose","closedBy","current","isDesktop","timeout","IOS","fallbackTransitionFinish","useEffect","set","clear","onItemClick","useCallback","action","immediateAction","autoClose","isCancelItem","event","persist","contextValue","DropdownComponent","process","env","NODE_ENV","dropdownProps","Object","assign","actionSheet","Provider","value","closing","Boolean","div","weight","alignY","onClick","hasMask","fixed"],"mappings":"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"}
@@ -13,7 +13,7 @@ export interface CustomSelectOptionInterface {
13
13
  [index: string]: any;
14
14
  }
15
15
  interface CustomSelectRenderOption extends CustomSelectOptionProps {
16
- option?: CustomSelectOptionInterface;
16
+ option: CustomSelectOptionInterface;
17
17
  }
18
18
  export interface SelectProps extends NativeSelectProps, FormFieldProps, TrackerOptionsProps {
19
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"CustomSelect.d.ts","sourceRoot":"","sources":["../../../src/components/CustomSelect/CustomSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,EAEL,uBAAuB,EACxB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAA2B,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAiFlG,KAAK,WAAW,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;AAE1E,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,UAAU,wBAAyB,SAAQ,uBAAuB;IAChE,MAAM,CAAC,EAAE,2BAA2B,CAAC;CACtC;AAED,MAAM,WAAW,WAAY,SAAQ,iBAAiB,EAAE,cAAc,EAAE,mBAAmB;IACzF;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,CACd,CAAC,EAAE,KAAK,CAAC,WAAW,EACpB,OAAO,EAAE,2BAA2B,EAAE,KACnC,IAAI,GAAG,2BAA2B,EAAE,CAAC;IAC1C,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACvC;;OAEG;IACH,QAAQ,CAAC,EACL,KAAK,GACL,CAAC,CACC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,2BAA2B,EACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,2BAA2B,CAAC,KAAK,MAAM,KACtE,OAAO,CAAC,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAClC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,KAAK,CAAC,SAAS,CAAC;IACpE;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,EAChB,sBAAsB,GACvB,EAAE;QACD,sBAAsB,EAAE,KAAK,CAAC,SAAS,CAAC;KACzC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;IAChE;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,qBAsmB9C"}
1
+ {"version":3,"file":"CustomSelect.d.ts","sourceRoot":"","sources":["../../../src/components/CustomSelect/CustomSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,EAEL,uBAAuB,EACxB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAA2B,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAiFlG,KAAK,WAAW,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;AAE1E,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,UAAU,wBAAyB,SAAQ,uBAAuB;IAChE,MAAM,EAAE,2BAA2B,CAAC;CACrC;AAED,MAAM,WAAW,WAAY,SAAQ,iBAAiB,EAAE,cAAc,EAAE,mBAAmB;IACzF;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,CACd,CAAC,EAAE,KAAK,CAAC,WAAW,EACpB,OAAO,EAAE,2BAA2B,EAAE,KACnC,IAAI,GAAG,2BAA2B,EAAE,CAAC;IAC1C,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACvC;;OAEG;IACH,QAAQ,CAAC,EACL,KAAK,GACL,CAAC,CACC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,2BAA2B,EACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,2BAA2B,CAAC,KAAK,MAAM,KACtE,OAAO,CAAC,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAClC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,KAAK,CAAC,SAAS,CAAC;IACpE;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,EAChB,sBAAsB,GACvB,EAAE;QACD,sBAAsB,EAAE,KAAK,CAAC,SAAS,CAAC;KACzC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;IAChE;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,qBAsmB9C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/CustomSelect/CustomSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport type { PlacementWithAuto } from '../../lib/floating';\nimport { defaultFilterFn, getFormFieldModeFromSelectType } from '../../lib/select';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { debounce, getTitleFromChildren } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { TrackerOptionsProps } from '../CustomScrollView/useTrackerVisibility';\nimport { CustomSelectDropdown } from '../CustomSelectDropdown/CustomSelectDropdown';\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from '../CustomSelectOption/CustomSelectOption';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormFieldProps } from '../FormField/FormField';\nimport { Input } from '../Input/Input';\nimport { NativeSelectProps } from '../NativeSelect/NativeSelect';\nimport { SelectType } from '../Select/Select';\nimport { SelectMimicry } from '../SelectMimicry/SelectMimicry';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { CustomSelectClearButton, CustomSelectClearButtonProps } from './CustomSelectClearButton';\nimport styles from './CustomSelect.module.css';\n\nconst sizeYClassNames = {\n none: styles['CustomSelect--sizeY-none'],\n [SizeType.COMPACT]: styles['CustomSelect--sizeY-compact'],\n};\n\nconst findIndexAfter = (options: CustomSelectOptionInterface[] = [], startIndex = -1) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nconst findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length,\n) => {\n let result = -1;\n if (endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nconst warn = warnOnce('CustomSelect');\n\nconst checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {\n if (new Set(options.map((item) => typeof item.value)).size > 1) {\n warn(\n 'Некоторые значения ваших опций имеют разные типы. onChange всегда возвращает строковый тип.',\n 'error',\n );\n }\n};\n\nfunction defaultRenderOptionFn({ option, ...props }: CustomSelectOptionProps): React.ReactNode {\n return <CustomSelectOption {...props} />;\n}\n\nconst handleOptionDown: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n};\n\nfunction findSelectedIndex(\n options: CustomSelectOptionInterface[],\n value: SelectValue,\n withClear: boolean,\n) {\n if (withClear && value === '') {\n return -1;\n }\n return (\n options.findIndex((item) => {\n value = typeof item.value === 'number' ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n}\n\nconst filter = (\n options: SelectProps['options'],\n inputValue: string,\n filterFn: SelectProps['filterFn'],\n) => {\n return typeof filterFn === 'function'\n ? options.filter((option) => filterFn(inputValue, option))\n : options;\n};\n\nconst defaultOptions: CustomSelectOptionInterface[] = [];\n\ntype SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>['value'];\n\nexport interface CustomSelectOptionInterface {\n value: SelectValue;\n label: React.ReactElement | string;\n disabled?: boolean;\n [index: string]: any;\n}\n\ninterface CustomSelectRenderOption extends CustomSelectOptionProps {\n option?: CustomSelectOptionInterface;\n}\n\nexport interface SelectProps extends NativeSelectProps, FormFieldProps, TrackerOptionsProps {\n /**\n * Если `true`, то при клике на селект в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`.\n */\n emptyText?: string;\n /**\n * > ⚠️ В **v6** из возвращаемых типов будет удалён `CustomSelectOptionInterface[]`. Для кастомной фильтрации используйте\n * > `filterFn`.\n */\n onInputChange?: (\n e: React.ChangeEvent,\n options: CustomSelectOptionInterface[],\n ) => void | CustomSelectOptionInterface[];\n options: CustomSelectOptionInterface[];\n /**\n * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.\n */\n filterFn?:\n | false\n | ((\n value: string,\n option: CustomSelectOptionInterface,\n getOptionLabel?: (option: Partial<CustomSelectOptionInterface>) => string,\n ) => boolean);\n popupDirection?: 'top' | 'bottom';\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](https://vkcom.github.io/VKUI/#/CustomSelectOption?id=props)\n *\n * > ⚠️ Важно: cвойство опции `disabled` должно выставляться только через проп `options`.\n * > Запрещается выставлять `disabled` проп опциям в обход `options`, иначе селект не будет знать об актуальном состоянии\n * опции.\n */\n renderOption?: (props: CustomSelectRenderOption) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если `true`, то в дропдауне вместо списка опций рисуется спиннер. При переданных `renderDropdown` и `fetching: true`\n * \"победит\" `renderDropdown`.\n */\n fetching?: boolean;\n onClose?: VoidFunction;\n onOpen?: VoidFunction;\n /**\n * Иконка раскрывающегося списка\n */\n icon?: React.ReactNode;\n /**\n * Кастомная кнопка для очистки значения.\n * Должна принимать обязательное свойство `onClick`\n */\n ClearButton?: React.ComponentType<CustomSelectClearButtonProps>;\n /**\n * Если `true`, то справа будет отображаться кнопка для очистки значения\n */\n allowClearButton?: boolean;\n dropdownOffsetDistance?: number;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n selectType?: SelectType;\n}\n\ntype MouseEventHandler = (event: React.MouseEvent<HTMLElement>) => void;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelect\n */\nexport function CustomSelect(props: SelectProps) {\n const [opened, setOpened] = React.useState(false);\n const {\n before,\n name,\n className,\n getRef,\n getRootRef,\n popupDirection,\n style,\n onChange,\n children,\n onInputChange: onInputChangeProp,\n renderDropdown,\n onOpen,\n onClose,\n fetching,\n forceDropdownPortal,\n selectType = 'default',\n autoHideScrollbar,\n autoHideScrollbarDelay,\n searchable = false,\n renderOption: renderOptionProp = defaultRenderOptionFn,\n options: optionsProp = defaultOptions,\n emptyText = 'Ничего не найдено',\n filterFn = defaultFilterFn,\n icon: iconProp,\n ClearButton = CustomSelectClearButton,\n allowClearButton = false,\n dropdownOffsetDistance = 0,\n fixDropdownWidth = true,\n ...restProps\n } = props;\n\n if (process.env.NODE_ENV === 'development') {\n checkOptionsValueType(optionsProp);\n }\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const containerRef = React.useRef<HTMLLabelElement>(null);\n const handleRootRef = useExternRef(containerRef, getRootRef);\n const scrollBoxRef = React.useRef<HTMLDivElement | null>(null);\n const selectElRef = useExternRef(getRef);\n\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState<number | undefined>(-1);\n const [isControlledOutside, setIsControlledOutside] = React.useState(props.value !== undefined);\n const [inputValue, setInputValue] = React.useState('');\n const [nativeSelectValue, setNativeSelectValue] = React.useState(\n () => props.value ?? props.defaultValue ?? (allowClearButton ? '' : undefined),\n );\n const [keyboardInput, setKeyboardInput] = React.useState('');\n const [popperPlacement, setPopperPlacement] = React.useState<PlacementWithAuto | undefined>(\n undefined,\n );\n const [options, setOptions] = React.useState(optionsProp);\n const [selectedOptionIndex, setSelectedOptionIndex] = React.useState<number | undefined>(\n findSelectedIndex(optionsProp, props.value ?? props.defaultValue, allowClearButton),\n );\n\n React.useEffect(() => {\n setIsControlledOutside(props.value !== undefined);\n setNativeSelectValue((nativeSelectValue) => props.value ?? nativeSelectValue);\n }, [props.value]);\n\n useIsomorphicLayoutEffect(() => {\n if (\n options.some(({ value }) => nativeSelectValue === value) ||\n (allowClearButton && nativeSelectValue === '')\n ) {\n const event = new Event('change', { bubbles: true });\n\n selectElRef.current?.dispatchEvent(event);\n }\n }, [nativeSelectValue]);\n\n const selected = React.useMemo(() => {\n if (!options.length) {\n return null;\n }\n\n return selectedOptionIndex !== undefined ? options[selectedOptionIndex] : undefined;\n }, [options, selectedOptionIndex]);\n\n const openedClassNames = React.useMemo(\n () =>\n (opened &&\n dropdownOffsetDistance === 0 &&\n (popperPlacement?.includes('top')\n ? styles['CustomSelect--pop-up']\n : styles['CustomSelect--pop-down'])) ||\n undefined,\n [dropdownOffsetDistance, opened, popperPlacement],\n );\n\n const resetKeyboardInput = React.useCallback(() => {\n setKeyboardInput('');\n }, []);\n\n const scrollToElement = React.useCallback((index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = dropdown ? (dropdown.children[index] as HTMLElement) : null;\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n }, []);\n\n const isValidIndex = React.useCallback(\n (index: number) => {\n return index >= 0 && index < (options.length ?? 0);\n },\n [options.length],\n );\n\n const focusOptionByIndex = React.useCallback(\n (index: number | undefined, scrollTo = true) => {\n if (index === undefined || index < 0 || index > (options.length ?? 0) - 1) {\n return;\n }\n\n const option = options[index];\n\n if (option?.disabled) {\n return;\n }\n\n if (scrollTo) {\n scrollToElement(index);\n }\n\n // Это оптимизация, прежде всего, под `onMouseOver`\n setFocusedOptionIndex((focusedOptionIndex) =>\n focusedOptionIndex !== index ? index : focusedOptionIndex,\n );\n },\n [options, scrollToElement],\n );\n\n const areOptionsShown = React.useCallback(() => {\n return scrollBoxRef.current !== null;\n }, []);\n\n const setScrollBoxRef = React.useCallback(\n (ref: HTMLDivElement | null) => {\n scrollBoxRef.current = ref;\n\n if (ref && selectedOptionIndex !== undefined && isValidIndex(selectedOptionIndex)) {\n {\n scrollToElement(selectedOptionIndex, true);\n }\n }\n },\n [isValidIndex, scrollToElement, selectedOptionIndex],\n );\n\n const onKeyboardInput = React.useCallback(\n (key: string) => {\n const fullInput = keyboardInput + key;\n\n const optionIndex = options.findIndex((option) => {\n return getTitleFromChildren(option.label).toLowerCase().includes(fullInput);\n });\n\n if (optionIndex !== undefined && optionIndex > -1) {\n focusOptionByIndex(optionIndex);\n }\n\n setKeyboardInput(fullInput);\n },\n [focusOptionByIndex, keyboardInput, options],\n );\n\n /**\n * Note: сбрасывать `options` через `setOptions(optionsProp)` не нужно.\n * Сброс происходит в одном из эффекте `updateOptionsAndSelectedOptionIndex()`.\n */\n const close = React.useCallback(() => {\n resetKeyboardInput();\n\n setInputValue('');\n setOpened(false);\n setFocusedOptionIndex(-1);\n onClose?.();\n }, [onClose, resetKeyboardInput]);\n\n const selectOption = React.useCallback(\n (index: number) => {\n const item = options[index];\n\n setNativeSelectValue(item?.value);\n close();\n\n const shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync =\n isControlledOutside &&\n props.value !== nativeSelectValue &&\n nativeSelectValue === item?.value;\n\n if (shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync) {\n const event = new Event('change', { bubbles: true });\n selectElRef.current?.dispatchEvent(event);\n }\n },\n [close, options, selectElRef, isControlledOutside, props.value, nativeSelectValue],\n );\n\n const selectFocused = React.useCallback(() => {\n if (focusedOptionIndex === undefined || !isValidIndex(focusedOptionIndex)) {\n return;\n }\n\n selectOption(focusedOptionIndex);\n }, [focusedOptionIndex, isValidIndex, selectOption]);\n\n const open = React.useCallback(() => {\n setOpened(true);\n setFocusedOptionIndex(selectedOptionIndex);\n\n if (typeof onOpen === 'function') {\n onOpen();\n }\n }, [onOpen, selectedOptionIndex]);\n\n const onBlur = React.useCallback(() => {\n close();\n const event = new Event('blur');\n selectElRef.current?.dispatchEvent(event);\n }, [close, selectElRef]);\n\n const resetFocusedOption = React.useCallback(() => {\n setFocusedOptionIndex(-1);\n }, []);\n\n const onFocus = React.useCallback(() => {\n const event = new Event('focus');\n selectElRef.current?.dispatchEvent(event);\n }, [selectElRef]);\n\n const onClick = React.useCallback(() => {\n if (opened) {\n close();\n } else {\n open();\n }\n }, [close, open, opened]);\n\n const handleKeyUp = React.useMemo(() => debounce(resetKeyboardInput, 1000), [resetKeyboardInput]);\n\n const focusOption = React.useCallback(\n (type: 'next' | 'prev') => {\n let index = focusedOptionIndex;\n\n if (type === 'next') {\n const nextIndex = findIndexAfter(options, index);\n index = nextIndex === -1 ? findIndexAfter(options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === 'prev') {\n const beforeIndex = findIndexBefore(options, index);\n index = beforeIndex === -1 ? findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n focusOptionByIndex(index);\n },\n [focusOptionByIndex, focusedOptionIndex, options],\n );\n\n React.useEffect(\n function updateOptionsAndSelectedOptionIndex() {\n const value = props.value ?? nativeSelectValue ?? props.defaultValue;\n\n const options =\n searchable && inputValue !== undefined\n ? filter(optionsProp, inputValue, filterFn)\n : optionsProp;\n\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, value, allowClearButton));\n },\n [\n filterFn,\n inputValue,\n nativeSelectValue,\n optionsProp,\n props.defaultValue,\n props.value,\n searchable,\n allowClearButton,\n ],\n );\n\n /**\n * Нужен для правильного поведения обработчика onClick на select. Фильтрует клики, которые были сделаны по\n * выпадающему списку.\n */\n const onLabelClick = React.useCallback((e: React.MouseEvent<HTMLLabelElement>) => {\n if (scrollBoxRef.current?.contains(e.target as Node)) {\n e.preventDefault();\n }\n }, []);\n\n const onNativeSelectChange: React.ChangeEventHandler<HTMLSelectElement> = (e) => {\n const newSelectedOptionIndex = findSelectedIndex(\n options,\n e.currentTarget.value,\n allowClearButton,\n );\n\n if (selectedOptionIndex !== newSelectedOptionIndex) {\n if (!isControlledOutside) {\n setSelectedOptionIndex(newSelectedOptionIndex);\n }\n onChange?.(e);\n }\n };\n\n const onInputKeyDown: React.KeyboardEventHandler<HTMLInputElement> = React.useCallback(\n (event) => {\n ['ArrowUp', 'ArrowDown', 'Escape', 'Enter'].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case 'ArrowUp':\n areOptionsShown() && focusOption('prev');\n break;\n case 'ArrowDown':\n areOptionsShown() && focusOption('next');\n break;\n case 'Escape':\n close();\n break;\n case 'Enter':\n areOptionsShown() && selectFocused();\n break;\n }\n },\n [areOptionsShown, close, focusOption, selectFocused],\n );\n\n const onInputChange: React.ChangeEventHandler<HTMLInputElement> = React.useCallback(\n (e) => {\n // TODO [>=6]: удалить `onInputChangeProp`.\n if (onInputChangeProp) {\n const options = onInputChangeProp(e, optionsProp);\n if (options) {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Этот метод фильтрации устарел. Возвращаемое значение onInputChange будет ' +\n 'проигнорировано в v6.0.0. Для фильтрации обновляйте props.options самостоятельно или используйте свойство filterFn.',\n );\n }\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, nativeSelectValue, allowClearButton));\n }\n } else {\n const options = filter(optionsProp, e.target.value, filterFn);\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, nativeSelectValue, allowClearButton));\n }\n setInputValue(e.target.value);\n },\n [filterFn, nativeSelectValue, onInputChangeProp, optionsProp, allowClearButton],\n );\n\n const handleKeyDownSelect = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key.length === 1 && event.key !== ' ') {\n onKeyboardInput(event.key);\n return;\n }\n\n ['ArrowUp', 'ArrowDown', 'Escape', 'Enter'].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case 'ArrowUp':\n if (opened) {\n areOptionsShown() && focusOption('prev');\n } else {\n open();\n }\n break;\n case 'ArrowDown':\n if (opened) {\n areOptionsShown() && focusOption('next');\n } else {\n open();\n }\n break;\n case 'Escape':\n close();\n break;\n case 'Enter':\n case 'Spacebar':\n case ' ':\n if (opened) {\n areOptionsShown() && selectFocused();\n } else {\n open();\n }\n break;\n }\n },\n [areOptionsShown, close, focusOption, onKeyboardInput, open, opened, selectFocused],\n );\n\n const handleOptionClick = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget,\n );\n const option = options[index];\n\n if (option && !option.disabled) {\n selectOption(index);\n }\n },\n [options, selectOption],\n );\n\n const handleOptionHover = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n focusOptionByIndex(\n Array.prototype.indexOf.call(e.currentTarget.parentNode?.children, e.currentTarget),\n false,\n );\n },\n [focusOptionByIndex],\n );\n\n const renderOption = React.useCallback(\n (option: CustomSelectOptionInterface, index: number) => {\n const hovered = index === focusedOptionIndex;\n const selected = index === selectedOptionIndex;\n\n return (\n <React.Fragment key={`${option.value}`}>\n {renderOptionProp({\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: handleOptionClick,\n onMouseDown: handleOptionDown,\n // Используем `onMouseOver` вместо `onMouseEnter`.\n // При параметре `searchable`, обновляется \"ребёнок\", из-за чего `onMouseEnter` не срабатывает в следующих кейсах:\n // 1. До загрузки выпадающего списка, курсор мышки находится над произвольным элементом этого списка.\n // > Лечение: только увод курсора мыши и возвращении его обратно вызывает событие `onMouseEnter` на этот элемент.\n // 2. Если это тач-устройство.\n // > Лечение: нужно нажать на какой-нибудь произвольный элемент списка, после чего `onMouseEnter` будет работать на соседние элементы,\n // но не на тот, на который нажали в первый раз.\n // Более подробно по ссылке https://github.com/facebook/react/issues/13956#issuecomment-1082055744\n onMouseOver: handleOptionHover,\n })}\n </React.Fragment>\n );\n },\n [\n focusedOptionIndex,\n handleOptionClick,\n handleOptionHover,\n renderOptionProp,\n selectedOptionIndex,\n ],\n );\n\n const resolvedContent = React.useMemo(() => {\n const defaultDropdownContent =\n options?.length > 0 ? (\n options.map(renderOption)\n ) : (\n <Footnote className={styles['CustomSelect__empty']}>{emptyText}</Footnote>\n );\n\n if (typeof renderDropdown === 'function') {\n return renderDropdown({ defaultDropdownContent });\n } else {\n return defaultDropdownContent;\n }\n }, [emptyText, options, renderDropdown, renderOption]);\n\n const controlledValueSet = isControlledOutside && props.value !== '';\n const uncontrolledValueSet = !isControlledOutside && nativeSelectValue !== '';\n const clearButtonShown =\n allowClearButton && !opened && (controlledValueSet || uncontrolledValueSet);\n\n const clearButton = React.useMemo(() => {\n if (!clearButtonShown) {\n return null;\n }\n\n return (\n <ClearButton\n className={iconProp === undefined ? styles['CustomSelect--clear-icon'] : undefined}\n onClick={() => setNativeSelectValue('')}\n />\n );\n }, [clearButtonShown, ClearButton, iconProp]);\n\n const icon = React.useMemo(() => {\n if (iconProp !== undefined) {\n return iconProp;\n }\n\n return (\n <DropdownIcon\n className={clearButtonShown ? styles['CustomSelect__dropdown-icon'] : undefined}\n opened={opened}\n />\n );\n }, [clearButtonShown, iconProp, opened]);\n\n const afterIcons = (icon || clearButtonShown) && (\n <React.Fragment>\n {clearButton}\n {icon}\n </React.Fragment>\n );\n\n return (\n <label\n className={classNames(\n styles['CustomSelect'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n style={style}\n ref={handleRootRef}\n onClick={onLabelClick}\n >\n {opened && searchable ? (\n <Input\n {...restProps}\n autoFocus\n onBlur={onBlur}\n className={openedClassNames}\n value={inputValue}\n onKeyDown={onInputKeyDown}\n onChange={onInputChange}\n // TODO Ожидается, что клик поймает нативный select, но его перехватывает Input. К сожалению, это приводит к конфликтам типизации.\n // TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.\n // @ts-expect-error: TS2322 MouseEventHandler<HTMLSelectElement> !== MouseEventHandler<HTMLInputElement>\n onClick={props.onClick}\n before={before}\n after={afterIcons}\n mode={getFormFieldModeFromSelectType(selectType)}\n />\n ) : (\n <SelectMimicry\n {...restProps}\n aria-hidden\n onClick={onClick}\n onKeyDown={handleKeyDownSelect}\n onKeyUp={handleKeyUp}\n onFocus={onFocus}\n onBlur={onBlur}\n className={openedClassNames}\n before={before}\n after={afterIcons}\n selectType={selectType}\n >\n {selected?.label}\n </SelectMimicry>\n )}\n <select\n ref={selectElRef}\n name={name}\n onChange={onNativeSelectChange}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onClick={props.onClick}\n value={nativeSelectValue}\n aria-hidden\n className={styles['CustomSelect__control']}\n >\n {allowClearButton && <option key=\"\" value=\"\" />}\n {optionsProp.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </select>\n {opened && (\n <CustomSelectDropdown\n targetRef={containerRef}\n placement={popupDirection}\n scrollBoxRef={setScrollBoxRef}\n onPlacementChange={setPopperPlacement}\n onMouseLeave={resetFocusedOption}\n fetching={fetching}\n offsetDistance={dropdownOffsetDistance}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n autoHideScrollbar={autoHideScrollbar}\n autoHideScrollbarDelay={autoHideScrollbarDelay}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </label>\n );\n}\n"],"names":["React","classNames","useAdaptivity","useExternRef","SizeType","defaultFilterFn","getFormFieldModeFromSelectType","useIsomorphicLayoutEffect","debounce","getTitleFromChildren","warnOnce","CustomSelectDropdown","CustomSelectOption","DropdownIcon","Input","SelectMimicry","Footnote","CustomSelectClearButton","sizeYClassNames","none","COMPACT","findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","warn","checkOptionsValueType","Set","map","item","value","size","defaultRenderOptionFn","props","handleOptionDown","e","preventDefault","findSelectedIndex","withClear","Number","filter","inputValue","filterFn","defaultOptions","CustomSelect","useState","opened","setOpened","before","name","className","getRef","getRootRef","popupDirection","style","onChange","children","onInputChange","onInputChangeProp","renderDropdown","onOpen","onClose","fetching","forceDropdownPortal","selectType","autoHideScrollbar","autoHideScrollbarDelay","searchable","renderOptionProp","renderOption","optionsProp","emptyText","icon","iconProp","ClearButton","allowClearButton","dropdownOffsetDistance","fixDropdownWidth","restProps","process","env","NODE_ENV","sizeY","containerRef","useRef","handleRootRef","scrollBoxRef","selectElRef","focusedOptionIndex","setFocusedOptionIndex","undefined","isControlledOutside","setIsControlledOutside","setInputValue","defaultValue","nativeSelectValue","setNativeSelectValue","keyboardInput","setKeyboardInput","popperPlacement","setPopperPlacement","setOptions","selectedOptionIndex","setSelectedOptionIndex","useEffect","some","event","Event","bubbles","current","dispatchEvent","selected","useMemo","openedClassNames","includes","resetKeyboardInput","useCallback","scrollToElement","index","center","dropdown","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","isValidIndex","focusOptionByIndex","scrollTo","areOptionsShown","setScrollBoxRef","ref","onKeyboardInput","key","fullInput","optionIndex","label","toLowerCase","close","selectOption","shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync","selectFocused","open","onBlur","resetFocusedOption","onFocus","onClick","handleKeyUp","focusOption","type","nextIndex","beforeIndex","updateOptionsAndSelectedOptionIndex","onLabelClick","contains","target","onNativeSelectChange","newSelectedOptionIndex","currentTarget","onInputKeyDown","handleKeyDownSelect","handleOptionClick","Array","prototype","indexOf","call","parentNode","handleOptionHover","hovered","Fragment","onMouseDown","onMouseOver","resolvedContent","defaultDropdownContent","controlledValueSet","uncontrolledValueSet","clearButtonShown","clearButton","afterIcons","REGULAR","autoFocus","onKeyDown","after","mode","aria-hidden","onKeyUp","select","targetRef","placement","onPlacementChange","onMouseLeave","offsetDistance","sameWidth","forcePortal"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/CustomSelect/CustomSelect.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { SizeType } from '../../lib/adaptivity';\nimport type { PlacementWithAuto } from '../../lib/floating';\nimport { defaultFilterFn, getFormFieldModeFromSelectType } from '../../lib/select';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { debounce, getTitleFromChildren } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { TrackerOptionsProps } from '../CustomScrollView/useTrackerVisibility';\nimport { CustomSelectDropdown } from '../CustomSelectDropdown/CustomSelectDropdown';\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from '../CustomSelectOption/CustomSelectOption';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormFieldProps } from '../FormField/FormField';\nimport { Input } from '../Input/Input';\nimport { NativeSelectProps } from '../NativeSelect/NativeSelect';\nimport { SelectType } from '../Select/Select';\nimport { SelectMimicry } from '../SelectMimicry/SelectMimicry';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { CustomSelectClearButton, CustomSelectClearButtonProps } from './CustomSelectClearButton';\nimport styles from './CustomSelect.module.css';\n\nconst sizeYClassNames = {\n none: styles['CustomSelect--sizeY-none'],\n [SizeType.COMPACT]: styles['CustomSelect--sizeY-compact'],\n};\n\nconst findIndexAfter = (options: CustomSelectOptionInterface[] = [], startIndex = -1) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nconst findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length,\n) => {\n let result = -1;\n if (endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nconst warn = warnOnce('CustomSelect');\n\nconst checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {\n if (new Set(options.map((item) => typeof item.value)).size > 1) {\n warn(\n 'Некоторые значения ваших опций имеют разные типы. onChange всегда возвращает строковый тип.',\n 'error',\n );\n }\n};\n\nfunction defaultRenderOptionFn({ option, ...props }: CustomSelectOptionProps): React.ReactNode {\n return <CustomSelectOption {...props} />;\n}\n\nconst handleOptionDown: MouseEventHandler = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n};\n\nfunction findSelectedIndex(\n options: CustomSelectOptionInterface[],\n value: SelectValue,\n withClear: boolean,\n) {\n if (withClear && value === '') {\n return -1;\n }\n return (\n options.findIndex((item) => {\n value = typeof item.value === 'number' ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n}\n\nconst filter = (\n options: SelectProps['options'],\n inputValue: string,\n filterFn: SelectProps['filterFn'],\n) => {\n return typeof filterFn === 'function'\n ? options.filter((option) => filterFn(inputValue, option))\n : options;\n};\n\nconst defaultOptions: CustomSelectOptionInterface[] = [];\n\ntype SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>['value'];\n\nexport interface CustomSelectOptionInterface {\n value: SelectValue;\n label: React.ReactElement | string;\n disabled?: boolean;\n [index: string]: any;\n}\n\ninterface CustomSelectRenderOption extends CustomSelectOptionProps {\n option: CustomSelectOptionInterface;\n}\n\nexport interface SelectProps extends NativeSelectProps, FormFieldProps, TrackerOptionsProps {\n /**\n * Если `true`, то при клике на селект в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`.\n */\n emptyText?: string;\n /**\n * > ⚠️ В **v6** из возвращаемых типов будет удалён `CustomSelectOptionInterface[]`. Для кастомной фильтрации используйте\n * > `filterFn`.\n */\n onInputChange?: (\n e: React.ChangeEvent,\n options: CustomSelectOptionInterface[],\n ) => void | CustomSelectOptionInterface[];\n options: CustomSelectOptionInterface[];\n /**\n * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.\n */\n filterFn?:\n | false\n | ((\n value: string,\n option: CustomSelectOptionInterface,\n getOptionLabel?: (option: Partial<CustomSelectOptionInterface>) => string,\n ) => boolean);\n popupDirection?: 'top' | 'bottom';\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](https://vkcom.github.io/VKUI/#/CustomSelectOption?id=props)\n *\n * > ⚠️ Важно: cвойство опции `disabled` должно выставляться только через проп `options`.\n * > Запрещается выставлять `disabled` проп опциям в обход `options`, иначе селект не будет знать об актуальном состоянии\n * опции.\n */\n renderOption?: (props: CustomSelectRenderOption) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если `true`, то в дропдауне вместо списка опций рисуется спиннер. При переданных `renderDropdown` и `fetching: true`\n * \"победит\" `renderDropdown`.\n */\n fetching?: boolean;\n onClose?: VoidFunction;\n onOpen?: VoidFunction;\n /**\n * Иконка раскрывающегося списка\n */\n icon?: React.ReactNode;\n /**\n * Кастомная кнопка для очистки значения.\n * Должна принимать обязательное свойство `onClick`\n */\n ClearButton?: React.ComponentType<CustomSelectClearButtonProps>;\n /**\n * Если `true`, то справа будет отображаться кнопка для очистки значения\n */\n allowClearButton?: boolean;\n dropdownOffsetDistance?: number;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n selectType?: SelectType;\n}\n\ntype MouseEventHandler = (event: React.MouseEvent<HTMLElement>) => void;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelect\n */\nexport function CustomSelect(props: SelectProps) {\n const [opened, setOpened] = React.useState(false);\n const {\n before,\n name,\n className,\n getRef,\n getRootRef,\n popupDirection,\n style,\n onChange,\n children,\n onInputChange: onInputChangeProp,\n renderDropdown,\n onOpen,\n onClose,\n fetching,\n forceDropdownPortal,\n selectType = 'default',\n autoHideScrollbar,\n autoHideScrollbarDelay,\n searchable = false,\n renderOption: renderOptionProp = defaultRenderOptionFn,\n options: optionsProp = defaultOptions,\n emptyText = 'Ничего не найдено',\n filterFn = defaultFilterFn,\n icon: iconProp,\n ClearButton = CustomSelectClearButton,\n allowClearButton = false,\n dropdownOffsetDistance = 0,\n fixDropdownWidth = true,\n ...restProps\n } = props;\n\n if (process.env.NODE_ENV === 'development') {\n checkOptionsValueType(optionsProp);\n }\n\n const { sizeY = 'none' } = useAdaptivity();\n\n const containerRef = React.useRef<HTMLLabelElement>(null);\n const handleRootRef = useExternRef(containerRef, getRootRef);\n const scrollBoxRef = React.useRef<HTMLDivElement | null>(null);\n const selectElRef = useExternRef(getRef);\n\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState<number | undefined>(-1);\n const [isControlledOutside, setIsControlledOutside] = React.useState(props.value !== undefined);\n const [inputValue, setInputValue] = React.useState('');\n const [nativeSelectValue, setNativeSelectValue] = React.useState(\n () => props.value ?? props.defaultValue ?? (allowClearButton ? '' : undefined),\n );\n const [keyboardInput, setKeyboardInput] = React.useState('');\n const [popperPlacement, setPopperPlacement] = React.useState<PlacementWithAuto | undefined>(\n undefined,\n );\n const [options, setOptions] = React.useState(optionsProp);\n const [selectedOptionIndex, setSelectedOptionIndex] = React.useState<number | undefined>(\n findSelectedIndex(optionsProp, props.value ?? props.defaultValue, allowClearButton),\n );\n\n React.useEffect(() => {\n setIsControlledOutside(props.value !== undefined);\n setNativeSelectValue((nativeSelectValue) => props.value ?? nativeSelectValue);\n }, [props.value]);\n\n useIsomorphicLayoutEffect(() => {\n if (\n options.some(({ value }) => nativeSelectValue === value) ||\n (allowClearButton && nativeSelectValue === '')\n ) {\n const event = new Event('change', { bubbles: true });\n\n selectElRef.current?.dispatchEvent(event);\n }\n }, [nativeSelectValue]);\n\n const selected = React.useMemo(() => {\n if (!options.length) {\n return null;\n }\n\n return selectedOptionIndex !== undefined ? options[selectedOptionIndex] : undefined;\n }, [options, selectedOptionIndex]);\n\n const openedClassNames = React.useMemo(\n () =>\n (opened &&\n dropdownOffsetDistance === 0 &&\n (popperPlacement?.includes('top')\n ? styles['CustomSelect--pop-up']\n : styles['CustomSelect--pop-down'])) ||\n undefined,\n [dropdownOffsetDistance, opened, popperPlacement],\n );\n\n const resetKeyboardInput = React.useCallback(() => {\n setKeyboardInput('');\n }, []);\n\n const scrollToElement = React.useCallback((index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = dropdown ? (dropdown.children[index] as HTMLElement) : null;\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n }, []);\n\n const isValidIndex = React.useCallback(\n (index: number) => {\n return index >= 0 && index < (options.length ?? 0);\n },\n [options.length],\n );\n\n const focusOptionByIndex = React.useCallback(\n (index: number | undefined, scrollTo = true) => {\n if (index === undefined || index < 0 || index > (options.length ?? 0) - 1) {\n return;\n }\n\n const option = options[index];\n\n if (option?.disabled) {\n return;\n }\n\n if (scrollTo) {\n scrollToElement(index);\n }\n\n // Это оптимизация, прежде всего, под `onMouseOver`\n setFocusedOptionIndex((focusedOptionIndex) =>\n focusedOptionIndex !== index ? index : focusedOptionIndex,\n );\n },\n [options, scrollToElement],\n );\n\n const areOptionsShown = React.useCallback(() => {\n return scrollBoxRef.current !== null;\n }, []);\n\n const setScrollBoxRef = React.useCallback(\n (ref: HTMLDivElement | null) => {\n scrollBoxRef.current = ref;\n\n if (ref && selectedOptionIndex !== undefined && isValidIndex(selectedOptionIndex)) {\n {\n scrollToElement(selectedOptionIndex, true);\n }\n }\n },\n [isValidIndex, scrollToElement, selectedOptionIndex],\n );\n\n const onKeyboardInput = React.useCallback(\n (key: string) => {\n const fullInput = keyboardInput + key;\n\n const optionIndex = options.findIndex((option) => {\n return getTitleFromChildren(option.label).toLowerCase().includes(fullInput);\n });\n\n if (optionIndex !== undefined && optionIndex > -1) {\n focusOptionByIndex(optionIndex);\n }\n\n setKeyboardInput(fullInput);\n },\n [focusOptionByIndex, keyboardInput, options],\n );\n\n /**\n * Note: сбрасывать `options` через `setOptions(optionsProp)` не нужно.\n * Сброс происходит в одном из эффекте `updateOptionsAndSelectedOptionIndex()`.\n */\n const close = React.useCallback(() => {\n resetKeyboardInput();\n\n setInputValue('');\n setOpened(false);\n setFocusedOptionIndex(-1);\n onClose?.();\n }, [onClose, resetKeyboardInput]);\n\n const selectOption = React.useCallback(\n (index: number) => {\n const item = options[index];\n\n setNativeSelectValue(item?.value);\n close();\n\n const shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync =\n isControlledOutside &&\n props.value !== nativeSelectValue &&\n nativeSelectValue === item?.value;\n\n if (shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync) {\n const event = new Event('change', { bubbles: true });\n selectElRef.current?.dispatchEvent(event);\n }\n },\n [close, options, selectElRef, isControlledOutside, props.value, nativeSelectValue],\n );\n\n const selectFocused = React.useCallback(() => {\n if (focusedOptionIndex === undefined || !isValidIndex(focusedOptionIndex)) {\n return;\n }\n\n selectOption(focusedOptionIndex);\n }, [focusedOptionIndex, isValidIndex, selectOption]);\n\n const open = React.useCallback(() => {\n setOpened(true);\n setFocusedOptionIndex(selectedOptionIndex);\n\n if (typeof onOpen === 'function') {\n onOpen();\n }\n }, [onOpen, selectedOptionIndex]);\n\n const onBlur = React.useCallback(() => {\n close();\n const event = new Event('blur');\n selectElRef.current?.dispatchEvent(event);\n }, [close, selectElRef]);\n\n const resetFocusedOption = React.useCallback(() => {\n setFocusedOptionIndex(-1);\n }, []);\n\n const onFocus = React.useCallback(() => {\n const event = new Event('focus');\n selectElRef.current?.dispatchEvent(event);\n }, [selectElRef]);\n\n const onClick = React.useCallback(() => {\n if (opened) {\n close();\n } else {\n open();\n }\n }, [close, open, opened]);\n\n const handleKeyUp = React.useMemo(() => debounce(resetKeyboardInput, 1000), [resetKeyboardInput]);\n\n const focusOption = React.useCallback(\n (type: 'next' | 'prev') => {\n let index = focusedOptionIndex;\n\n if (type === 'next') {\n const nextIndex = findIndexAfter(options, index);\n index = nextIndex === -1 ? findIndexAfter(options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === 'prev') {\n const beforeIndex = findIndexBefore(options, index);\n index = beforeIndex === -1 ? findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n focusOptionByIndex(index);\n },\n [focusOptionByIndex, focusedOptionIndex, options],\n );\n\n React.useEffect(\n function updateOptionsAndSelectedOptionIndex() {\n const value = props.value ?? nativeSelectValue ?? props.defaultValue;\n\n const options =\n searchable && inputValue !== undefined\n ? filter(optionsProp, inputValue, filterFn)\n : optionsProp;\n\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, value, allowClearButton));\n },\n [\n filterFn,\n inputValue,\n nativeSelectValue,\n optionsProp,\n props.defaultValue,\n props.value,\n searchable,\n allowClearButton,\n ],\n );\n\n /**\n * Нужен для правильного поведения обработчика onClick на select. Фильтрует клики, которые были сделаны по\n * выпадающему списку.\n */\n const onLabelClick = React.useCallback((e: React.MouseEvent<HTMLLabelElement>) => {\n if (scrollBoxRef.current?.contains(e.target as Node)) {\n e.preventDefault();\n }\n }, []);\n\n const onNativeSelectChange: React.ChangeEventHandler<HTMLSelectElement> = (e) => {\n const newSelectedOptionIndex = findSelectedIndex(\n options,\n e.currentTarget.value,\n allowClearButton,\n );\n\n if (selectedOptionIndex !== newSelectedOptionIndex) {\n if (!isControlledOutside) {\n setSelectedOptionIndex(newSelectedOptionIndex);\n }\n onChange?.(e);\n }\n };\n\n const onInputKeyDown: React.KeyboardEventHandler<HTMLInputElement> = React.useCallback(\n (event) => {\n ['ArrowUp', 'ArrowDown', 'Escape', 'Enter'].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case 'ArrowUp':\n areOptionsShown() && focusOption('prev');\n break;\n case 'ArrowDown':\n areOptionsShown() && focusOption('next');\n break;\n case 'Escape':\n close();\n break;\n case 'Enter':\n areOptionsShown() && selectFocused();\n break;\n }\n },\n [areOptionsShown, close, focusOption, selectFocused],\n );\n\n const onInputChange: React.ChangeEventHandler<HTMLInputElement> = React.useCallback(\n (e) => {\n // TODO [>=6]: удалить `onInputChangeProp`.\n if (onInputChangeProp) {\n const options = onInputChangeProp(e, optionsProp);\n if (options) {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Этот метод фильтрации устарел. Возвращаемое значение onInputChange будет ' +\n 'проигнорировано в v6.0.0. Для фильтрации обновляйте props.options самостоятельно или используйте свойство filterFn.',\n );\n }\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, nativeSelectValue, allowClearButton));\n }\n } else {\n const options = filter(optionsProp, e.target.value, filterFn);\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, nativeSelectValue, allowClearButton));\n }\n setInputValue(e.target.value);\n },\n [filterFn, nativeSelectValue, onInputChangeProp, optionsProp, allowClearButton],\n );\n\n const handleKeyDownSelect = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key.length === 1 && event.key !== ' ') {\n onKeyboardInput(event.key);\n return;\n }\n\n ['ArrowUp', 'ArrowDown', 'Escape', 'Enter'].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case 'ArrowUp':\n if (opened) {\n areOptionsShown() && focusOption('prev');\n } else {\n open();\n }\n break;\n case 'ArrowDown':\n if (opened) {\n areOptionsShown() && focusOption('next');\n } else {\n open();\n }\n break;\n case 'Escape':\n close();\n break;\n case 'Enter':\n case 'Spacebar':\n case ' ':\n if (opened) {\n areOptionsShown() && selectFocused();\n } else {\n open();\n }\n break;\n }\n },\n [areOptionsShown, close, focusOption, onKeyboardInput, open, opened, selectFocused],\n );\n\n const handleOptionClick = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget,\n );\n const option = options[index];\n\n if (option && !option.disabled) {\n selectOption(index);\n }\n },\n [options, selectOption],\n );\n\n const handleOptionHover = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n focusOptionByIndex(\n Array.prototype.indexOf.call(e.currentTarget.parentNode?.children, e.currentTarget),\n false,\n );\n },\n [focusOptionByIndex],\n );\n\n const renderOption = React.useCallback(\n (option: CustomSelectOptionInterface, index: number) => {\n const hovered = index === focusedOptionIndex;\n const selected = index === selectedOptionIndex;\n\n return (\n <React.Fragment key={`${option.value}`}>\n {renderOptionProp({\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: handleOptionClick,\n onMouseDown: handleOptionDown,\n // Используем `onMouseOver` вместо `onMouseEnter`.\n // При параметре `searchable`, обновляется \"ребёнок\", из-за чего `onMouseEnter` не срабатывает в следующих кейсах:\n // 1. До загрузки выпадающего списка, курсор мышки находится над произвольным элементом этого списка.\n // > Лечение: только увод курсора мыши и возвращении его обратно вызывает событие `onMouseEnter` на этот элемент.\n // 2. Если это тач-устройство.\n // > Лечение: нужно нажать на какой-нибудь произвольный элемент списка, после чего `onMouseEnter` будет работать на соседние элементы,\n // но не на тот, на который нажали в первый раз.\n // Более подробно по ссылке https://github.com/facebook/react/issues/13956#issuecomment-1082055744\n onMouseOver: handleOptionHover,\n })}\n </React.Fragment>\n );\n },\n [\n focusedOptionIndex,\n handleOptionClick,\n handleOptionHover,\n renderOptionProp,\n selectedOptionIndex,\n ],\n );\n\n const resolvedContent = React.useMemo(() => {\n const defaultDropdownContent =\n options?.length > 0 ? (\n options.map(renderOption)\n ) : (\n <Footnote className={styles['CustomSelect__empty']}>{emptyText}</Footnote>\n );\n\n if (typeof renderDropdown === 'function') {\n return renderDropdown({ defaultDropdownContent });\n } else {\n return defaultDropdownContent;\n }\n }, [emptyText, options, renderDropdown, renderOption]);\n\n const controlledValueSet = isControlledOutside && props.value !== '';\n const uncontrolledValueSet = !isControlledOutside && nativeSelectValue !== '';\n const clearButtonShown =\n allowClearButton && !opened && (controlledValueSet || uncontrolledValueSet);\n\n const clearButton = React.useMemo(() => {\n if (!clearButtonShown) {\n return null;\n }\n\n return (\n <ClearButton\n className={iconProp === undefined ? styles['CustomSelect--clear-icon'] : undefined}\n onClick={() => setNativeSelectValue('')}\n />\n );\n }, [clearButtonShown, ClearButton, iconProp]);\n\n const icon = React.useMemo(() => {\n if (iconProp !== undefined) {\n return iconProp;\n }\n\n return (\n <DropdownIcon\n className={clearButtonShown ? styles['CustomSelect__dropdown-icon'] : undefined}\n opened={opened}\n />\n );\n }, [clearButtonShown, iconProp, opened]);\n\n const afterIcons = (icon || clearButtonShown) && (\n <React.Fragment>\n {clearButton}\n {icon}\n </React.Fragment>\n );\n\n return (\n <label\n className={classNames(\n styles['CustomSelect'],\n sizeY !== SizeType.REGULAR && sizeYClassNames[sizeY],\n className,\n )}\n style={style}\n ref={handleRootRef}\n onClick={onLabelClick}\n >\n {opened && searchable ? (\n <Input\n {...restProps}\n autoFocus\n onBlur={onBlur}\n className={openedClassNames}\n value={inputValue}\n onKeyDown={onInputKeyDown}\n onChange={onInputChange}\n // TODO Ожидается, что клик поймает нативный select, но его перехватывает Input. К сожалению, это приводит к конфликтам типизации.\n // TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.\n // @ts-expect-error: TS2322 MouseEventHandler<HTMLSelectElement> !== MouseEventHandler<HTMLInputElement>\n onClick={props.onClick}\n before={before}\n after={afterIcons}\n mode={getFormFieldModeFromSelectType(selectType)}\n />\n ) : (\n <SelectMimicry\n {...restProps}\n aria-hidden\n onClick={onClick}\n onKeyDown={handleKeyDownSelect}\n onKeyUp={handleKeyUp}\n onFocus={onFocus}\n onBlur={onBlur}\n className={openedClassNames}\n before={before}\n after={afterIcons}\n selectType={selectType}\n >\n {selected?.label}\n </SelectMimicry>\n )}\n <select\n ref={selectElRef}\n name={name}\n onChange={onNativeSelectChange}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onClick={props.onClick}\n value={nativeSelectValue}\n aria-hidden\n className={styles['CustomSelect__control']}\n >\n {allowClearButton && <option key=\"\" value=\"\" />}\n {optionsProp.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </select>\n {opened && (\n <CustomSelectDropdown\n targetRef={containerRef}\n placement={popupDirection}\n scrollBoxRef={setScrollBoxRef}\n onPlacementChange={setPopperPlacement}\n onMouseLeave={resetFocusedOption}\n fetching={fetching}\n offsetDistance={dropdownOffsetDistance}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n autoHideScrollbar={autoHideScrollbar}\n autoHideScrollbarDelay={autoHideScrollbarDelay}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </label>\n );\n}\n"],"names":["React","classNames","useAdaptivity","useExternRef","SizeType","defaultFilterFn","getFormFieldModeFromSelectType","useIsomorphicLayoutEffect","debounce","getTitleFromChildren","warnOnce","CustomSelectDropdown","CustomSelectOption","DropdownIcon","Input","SelectMimicry","Footnote","CustomSelectClearButton","sizeYClassNames","none","COMPACT","findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","warn","checkOptionsValueType","Set","map","item","value","size","defaultRenderOptionFn","props","handleOptionDown","e","preventDefault","findSelectedIndex","withClear","Number","filter","inputValue","filterFn","defaultOptions","CustomSelect","useState","opened","setOpened","before","name","className","getRef","getRootRef","popupDirection","style","onChange","children","onInputChange","onInputChangeProp","renderDropdown","onOpen","onClose","fetching","forceDropdownPortal","selectType","autoHideScrollbar","autoHideScrollbarDelay","searchable","renderOptionProp","renderOption","optionsProp","emptyText","icon","iconProp","ClearButton","allowClearButton","dropdownOffsetDistance","fixDropdownWidth","restProps","process","env","NODE_ENV","sizeY","containerRef","useRef","handleRootRef","scrollBoxRef","selectElRef","focusedOptionIndex","setFocusedOptionIndex","undefined","isControlledOutside","setIsControlledOutside","setInputValue","defaultValue","nativeSelectValue","setNativeSelectValue","keyboardInput","setKeyboardInput","popperPlacement","setPopperPlacement","setOptions","selectedOptionIndex","setSelectedOptionIndex","useEffect","some","event","Event","bubbles","current","dispatchEvent","selected","useMemo","openedClassNames","includes","resetKeyboardInput","useCallback","scrollToElement","index","center","dropdown","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","isValidIndex","focusOptionByIndex","scrollTo","areOptionsShown","setScrollBoxRef","ref","onKeyboardInput","key","fullInput","optionIndex","label","toLowerCase","close","selectOption","shouldTriggerOnChangeWhenControlledAndInnerValueIsOutOfSync","selectFocused","open","onBlur","resetFocusedOption","onFocus","onClick","handleKeyUp","focusOption","type","nextIndex","beforeIndex","updateOptionsAndSelectedOptionIndex","onLabelClick","contains","target","onNativeSelectChange","newSelectedOptionIndex","currentTarget","onInputKeyDown","handleKeyDownSelect","handleOptionClick","Array","prototype","indexOf","call","parentNode","handleOptionHover","hovered","Fragment","onMouseDown","onMouseOver","resolvedContent","defaultDropdownContent","controlledValueSet","uncontrolledValueSet","clearButtonShown","clearButton","afterIcons","REGULAR","autoFocus","onKeyDown","after","mode","aria-hidden","onKeyUp","select","targetRef","placement","onPlacementChange","onMouseLeave","offsetDistance","sameWidth","forcePortal"],"mappings":";;;;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,eAAe,EAAEC,8BAA8B,QAAQ,mBAAmB;AACnF,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,QAAQ,EAAEC,oBAAoB,QAAQ,kBAAkB;AACjE,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,oBAAoB,QAAQ,+CAA+C;AACpF,SACEC,kBAAkB,QAEb,2CAA2C;AAClD,SAASC,YAAY,QAAQ,+BAA+B;AAE5D,SAASC,KAAK,QAAQ,iBAAiB;AAGvC,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,uBAAuB,QAAsC,4BAA4B;AAGlG,IAAMC;IACJC,IAAI;GACHf,SAASgB,OAAO;AAGnB,IAAMC,iBAAiB;QAACC,2EAAyC,EAAE,EAAEC,8EAAa,CAAC;IACjF,IAAIA,cAAcD,QAAQE,MAAM,GAAG,GAAG;QACpC,OAAO,CAAC;IACV;IACA,OAAOF,QAAQG,SAAS,CAAC,SAACC,QAAQC;eAAMA,IAAIJ,cAAc,CAACG,OAAOE,QAAQ;;AAC5E;AAEA,IAAMC,kBAAkB;QACtBP,2EAAyC,EAAE,EAC3CQ,4EAAmBR,QAAQE,MAAM;IAEjC,IAAIO,SAAS,CAAC;IACd,IAAID,YAAY,GAAG;QACjB,OAAOC;IACT;IACA,IAAK,IAAIJ,IAAIG,WAAW,GAAGH,KAAK,GAAGA,IAAK;QACtC,IAAID,SAASJ,OAAO,CAACK,EAAE;QAEvB,IAAI,CAACD,OAAOE,QAAQ,EAAE;YACpBG,SAASJ;YACT;QACF;IACF;IACA,OAAOI;AACT;AAEA,IAAMC,OAAOtB,SAAS;AAEtB,IAAMuB,wBAAwB,SAACX;IAC7B,IAAI,IAAIY,IAAIZ,QAAQa,GAAG,CAAC,SAACC;eAAS,SAAOA,KAAKC,KAAK;QAAGC,IAAI,GAAG,GAAG;QAC9DN,KACE,+FACA;IAEJ;AACF;AAEA,SAASO,sBAAsB;QAAEb,SAAF,OAAEA,QAAWc,mCAAb;QAAEd;;IAC/B,qBAAO,oBAACd,oBAAuB4B;AACjC;AAEA,IAAMC,mBAAsC,SAACC;IAC3CA,EAAEC,cAAc;AAClB;AAEA,SAASC,kBACPtB,OAAsC,EACtCe,KAAkB,EAClBQ,SAAkB;IAElB,IAAIA,aAAaR,UAAU,IAAI;QAC7B,OAAO,CAAC;IACV;QAEEf;IADF,OACEA,CAAAA,qBAAAA,QAAQG,SAAS,CAAC,SAACW;QACjBC,QAAQ,OAAOD,KAAKC,KAAK,KAAK,WAAWS,OAAOT,SAASA;QACzD,OAAOD,KAAKC,KAAK,KAAKA;IACxB,gBAHAf,gCAAAA,qBAGM,CAAC;AAEX;AAEA,IAAMyB,SAAS,SACbzB,SACA0B,YACAC;IAEA,OAAO,OAAOA,aAAa,aACvB3B,QAAQyB,MAAM,CAAC,SAACrB;eAAWuB,SAASD,YAAYtB;SAChDJ;AACN;AAEA,IAAM4B,iBAAgD,EAAE;AA2FxD;;CAEC,GACD,OAAO,SAASC,aAAaX,KAAkB;IAC7C,IAA4BxC,mCAAAA,MAAMoD,QAAQ,CAAC,YAApCC,SAAqBrD,oBAAbsD,YAAatD;IAC5B,IACEuD,SA6BEf,MA7BFe,QACAC,OA4BEhB,MA5BFgB,MACAC,YA2BEjB,MA3BFiB,WACAC,SA0BElB,MA1BFkB,QACAC,aAyBEnB,MAzBFmB,YACAC,iBAwBEpB,MAxBFoB,gBACAC,QAuBErB,MAvBFqB,OACAC,WAsBEtB,MAtBFsB,UACAC,WAqBEvB,MArBFuB,UACAC,AAAeC,oBAoBbzB,MApBFwB,eACAE,iBAmBE1B,MAnBF0B,gBACAC,SAkBE3B,MAlBF2B,QACAC,UAiBE5B,MAjBF4B,SACAC,WAgBE7B,MAhBF6B,UACAC,sBAeE9B,MAfF8B,yCAeE9B,MAdF+B,YAAAA,4CAAa,+BACbC,oBAaEhC,MAbFgC,mBACAC,yBAYEjC,MAZFiC,4CAYEjC,MAXFkC,YAAAA,4CAAa,2BACCC,MAUZnC,MAVFoC,cAAcD,mBAAAA,iBAAmBpC,wBAAnBoC,KACLE,OASPrC,MATFlB,SAASuD,cAAAA,kBAAc3B,iBAAd2B,yBASPrC,MARFsC,WAAAA,0CAAY,0DAQVtC,MAPFS,UAAAA,wCAAW5C,mCACX0E,AAAMC,WAMJxC,MANFuC,2BAMEvC,MALFyC,aAAAA,8CAAchE,wEAKZuB,MAJF0C,kBAAAA,wDAAmB,iEAIjB1C,MAHF2C,wBAAAA,oEAAyB,6DAGvB3C,MAFF4C,kBAAAA,wDAAmB,gCAChBC,uCACD7C;QA7BFe;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAE;QACAtD;QACAwD;QACA7B;QACA8B;QACAE;QACAC;QACAC;QACAC;;IAIF,IAAIE,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1CvD,sBAAsB4C;IACxB;IAEA,IAA2B3E,iBAAAA,wCAAAA,eAAnBuF,OAAAA,0CAAQ;IAEhB,IAAMC,eAAe1F,MAAM2F,MAAM,CAAmB;IACpD,IAAMC,gBAAgBzF,aAAauF,cAAc/B;IACjD,IAAMkC,eAAe7F,MAAM2F,MAAM,CAAwB;IACzD,IAAMG,cAAc3F,aAAauD;IAEjC,IAAoD1D,oCAAAA,MAAMoD,QAAQ,CAAqB,CAAC,QAAjF2C,qBAA6C/F,qBAAzBgG,wBAAyBhG;IACpD,IAAsDA,oCAAAA,MAAMoD,QAAQ,CAACZ,MAAMH,KAAK,KAAK4D,gBAA9EC,sBAA+ClG,qBAA1BmG,yBAA0BnG;IACtD,IAAoCA,oCAAAA,MAAMoD,QAAQ,CAAC,SAA5CJ,aAA6BhD,qBAAjBoG,gBAAiBpG;IACpC,IAAkDA,oCAAAA,MAAMoD,QAAQ,CAC9D;YAAMZ,cAAAA;eAAAA,CAAAA,OAAAA,CAAAA,eAAAA,MAAMH,KAAK,cAAXG,0BAAAA,eAAeA,MAAM6D,YAAY,cAAjC7D,kBAAAA,OAAsC0C,mBAAmB,KAAKe;IAAS,QADxEK,oBAA2CtG,qBAAxBuG,uBAAwBvG;IAGlD,IAA0CA,oCAAAA,MAAMoD,QAAQ,CAAC,SAAlDoD,gBAAmCxG,qBAApByG,mBAAoBzG;IAC1C,IAA8CA,oCAAAA,MAAMoD,QAAQ,CAC1D6C,gBADKS,kBAAuC1G,qBAAtB2G,qBAAsB3G;IAG9C,IAA8BA,oCAAAA,MAAMoD,QAAQ,CAACyB,kBAAtCvD,UAAuBtB,qBAAd4G,aAAc5G;QAEGwC;IADjC,IAAsDxC,oCAAAA,MAAMoD,QAAQ,CAClER,kBAAkBiC,aAAarC,CAAAA,eAAAA,MAAMH,KAAK,cAAXG,0BAAAA,eAAeA,MAAM6D,YAAY,EAAEnB,wBAD7D2B,sBAA+C7G,qBAA1B8G,yBAA0B9G;IAItDA,MAAM+G,SAAS,CAAC;QACdZ,uBAAuB3D,MAAMH,KAAK,KAAK4D;QACvCM,qBAAqB,SAACD;gBAAsB9D;mBAAAA,CAAAA,eAAAA,MAAMH,KAAK,cAAXG,0BAAAA,eAAe8D;QAAgB;IAC7E,GAAG;QAAC9D,MAAMH,KAAK;KAAC;IAEhB9B,0BAA0B;QACxB,IACEe,QAAQ0F,IAAI,CAAC;gBAAG3E,cAAAA;mBAAYiE,sBAAsBjE;cACjD6C,oBAAoBoB,sBAAsB,IAC3C;gBAGAR;YAFA,IAAMmB,QAAQ,IAAIC,MAAM,UAAU;gBAAEC,SAAS;YAAK;aAElDrB,uBAAAA,YAAYsB,OAAO,cAAnBtB,2CAAAA,qBAAqBuB,aAAa,CAACJ;QACrC;IACF,GAAG;QAACX;KAAkB;IAEtB,IAAMgB,WAAWtH,MAAMuH,OAAO,CAAC;QAC7B,IAAI,CAACjG,QAAQE,MAAM,EAAE;YACnB,OAAO;QACT;QAEA,OAAOqF,wBAAwBZ,YAAY3E,OAAO,CAACuF,oBAAoB,GAAGZ;IAC5E,GAAG;QAAC3E;QAASuF;KAAoB;IAEjC,IAAMW,mBAAmBxH,MAAMuH,OAAO,CACpC;eACE,AAAClE,UACC8B,2BAA2B,KAC1BuB,CAAAA,CAAAA,4BAAAA,sCAAAA,gBAAiBe,QAAQ,CAAC,mEAEQ,KACrCxB;OACF;QAACd;QAAwB9B;QAAQqD;KAAgB;IAGnD,IAAMgB,qBAAqB1H,MAAM2H,WAAW,CAAC;QAC3ClB,iBAAiB;IACnB,GAAG,EAAE;IAEL,IAAMmB,kBAAkB5H,MAAM2H,WAAW,CAAC,SAACE;YAAeC,0EAAS;QACjE,IAAMC,WAAWlC,aAAauB,OAAO;QACrC,IAAMhF,OAAO2F,WAAYA,SAAShE,QAAQ,CAAC8D,MAAM,GAAmB;QAEpE,IAAI,CAACzF,QAAQ,CAAC2F,UAAU;YACtB;QACF;QAEA,IAAMC,iBAAiBD,SAASE,YAAY;QAC5C,IAAMC,YAAYH,SAASG,SAAS;QACpC,IAAMC,UAAU/F,KAAKgG,SAAS;QAC9B,IAAMC,aAAajG,KAAK6F,YAAY;QAEpC,IAAIH,QAAQ;YACVC,SAASG,SAAS,GAAGC,UAAUH,iBAAiB,IAAIK,aAAa;QACnE,OAAO,IAAIF,UAAUE,aAAaL,iBAAiBE,WAAW;YAC5DH,SAASG,SAAS,GAAGC,UAAUH,iBAAiBK;QAClD,OAAO,IAAIF,UAAUD,WAAW;YAC9BH,SAASG,SAAS,GAAGC;QACvB;IACF,GAAG,EAAE;IAEL,IAAMG,eAAetI,MAAM2H,WAAW,CACpC,SAACE;YAC+BvG;QAA9B,OAAOuG,SAAS,KAAKA,QAASvG,CAAAA,CAAAA,kBAAAA,QAAQE,MAAM,cAAdF,6BAAAA,kBAAkB,CAAA;IAClD,GACA;QAACA,QAAQE,MAAM;KAAC;IAGlB,IAAM+G,qBAAqBvI,MAAM2H,WAAW,CAC1C,SAACE;YAA2BW,4EAAW;YACYlH;QAAjD,IAAIuG,UAAU5B,aAAa4B,QAAQ,KAAKA,QAAQ,AAACvG,CAAAA,CAAAA,kBAAAA,QAAQE,MAAM,cAAdF,6BAAAA,kBAAkB,CAAA,IAAK,GAAG;YACzE;QACF;QAEA,IAAMI,SAASJ,OAAO,CAACuG,MAAM;QAE7B,IAAInG,mBAAAA,6BAAAA,OAAQE,QAAQ,EAAE;YACpB;QACF;QAEA,IAAI4G,UAAU;YACZZ,gBAAgBC;QAClB;QAEA,mDAAmD;QACnD7B,sBAAsB,SAACD;mBACrBA,uBAAuB8B,QAAQA,QAAQ9B;;IAE3C,GACA;QAACzE;QAASsG;KAAgB;IAG5B,IAAMa,kBAAkBzI,MAAM2H,WAAW,CAAC;QACxC,OAAO9B,aAAauB,OAAO,KAAK;IAClC,GAAG,EAAE;IAEL,IAAMsB,kBAAkB1I,MAAM2H,WAAW,CACvC,SAACgB;QACC9C,aAAauB,OAAO,GAAGuB;QAEvB,IAAIA,OAAO9B,wBAAwBZ,aAAaqC,aAAazB,sBAAsB;YACjF;gBACEe,gBAAgBf,qBAAqB;YACvC;QACF;IACF,GACA;QAACyB;QAAcV;QAAiBf;KAAoB;IAGtD,IAAM+B,kBAAkB5I,MAAM2H,WAAW,CACvC,SAACkB;QACC,IAAMC,YAAYtC,gBAAgBqC;QAElC,IAAME,cAAczH,QAAQG,SAAS,CAAC,SAACC;YACrC,OAAOjB,qBAAqBiB,OAAOsH,KAAK,EAAEC,WAAW,GAAGxB,QAAQ,CAACqB;QACnE;QAEA,IAAIC,gBAAgB9C,aAAa8C,cAAc,CAAC,GAAG;YACjDR,mBAAmBQ;QACrB;QAEAtC,iBAAiBqC;IACnB,GACA;QAACP;QAAoB/B;QAAelF;KAAQ;IAG9C;;;GAGC,GACD,IAAM4H,QAAQlJ,MAAM2H,WAAW,CAAC;QAC9BD;QAEAtB,cAAc;QACd9C,UAAU;QACV0C,sBAAsB,CAAC;QACvB5B,oBAAAA,8BAAAA;IACF,GAAG;QAACA;QAASsD;KAAmB;IAEhC,IAAMyB,eAAenJ,MAAM2H,WAAW,CACpC,SAACE;QACC,IAAMzF,OAAOd,OAAO,CAACuG,MAAM;QAE3BtB,qBAAqBnE,iBAAAA,2BAAAA,KAAMC,KAAK;QAChC6G;QAEA,IAAME,8DACJlD,uBACA1D,MAAMH,KAAK,KAAKiE,qBAChBA,uBAAsBlE,iBAAAA,2BAAAA,KAAMC,KAAK;QAEnC,IAAI+G,6DAA6D;gBAE/DtD;YADA,IAAMmB,QAAQ,IAAIC,MAAM,UAAU;gBAAEC,SAAS;YAAK;aAClDrB,uBAAAA,YAAYsB,OAAO,cAAnBtB,2CAAAA,qBAAqBuB,aAAa,CAACJ;QACrC;IACF,GACA;QAACiC;QAAO5H;QAASwE;QAAaI;QAAqB1D,MAAMH,KAAK;QAAEiE;KAAkB;IAGpF,IAAM+C,gBAAgBrJ,MAAM2H,WAAW,CAAC;QACtC,IAAI5B,uBAAuBE,aAAa,CAACqC,aAAavC,qBAAqB;YACzE;QACF;QAEAoD,aAAapD;IACf,GAAG;QAACA;QAAoBuC;QAAca;KAAa;IAEnD,IAAMG,OAAOtJ,MAAM2H,WAAW,CAAC;QAC7BrE,UAAU;QACV0C,sBAAsBa;QAEtB,IAAI,OAAO1C,WAAW,YAAY;YAChCA;QACF;IACF,GAAG;QAACA;QAAQ0C;KAAoB;IAEhC,IAAM0C,SAASvJ,MAAM2H,WAAW,CAAC;YAG/B7B;QAFAoD;QACA,IAAMjC,QAAQ,IAAIC,MAAM;SACxBpB,uBAAAA,YAAYsB,OAAO,cAAnBtB,2CAAAA,qBAAqBuB,aAAa,CAACJ;IACrC,GAAG;QAACiC;QAAOpD;KAAY;IAEvB,IAAM0D,qBAAqBxJ,MAAM2H,WAAW,CAAC;QAC3C3B,sBAAsB,CAAC;IACzB,GAAG,EAAE;IAEL,IAAMyD,UAAUzJ,MAAM2H,WAAW,CAAC;YAEhC7B;QADA,IAAMmB,QAAQ,IAAIC,MAAM;SACxBpB,uBAAAA,YAAYsB,OAAO,cAAnBtB,2CAAAA,qBAAqBuB,aAAa,CAACJ;IACrC,GAAG;QAACnB;KAAY;IAEhB,IAAM4D,UAAU1J,MAAM2H,WAAW,CAAC;QAChC,IAAItE,QAAQ;YACV6F;QACF,OAAO;YACLI;QACF;IACF,GAAG;QAACJ;QAAOI;QAAMjG;KAAO;IAExB,IAAMsG,cAAc3J,MAAMuH,OAAO,CAAC;eAAM/G,SAASkH,oBAAoB;OAAO;QAACA;KAAmB;IAEhG,IAAMkC,cAAc5J,MAAM2H,WAAW,CACnC,SAACkC;QACC,IAAIhC,QAAQ9B;QAEZ,IAAI8D,SAAS,QAAQ;YACnB,IAAMC,YAAYzI,eAAeC,SAASuG;YAC1CA,QAAQiC,cAAc,CAAC,IAAIzI,eAAeC,WAAWwI,WAAW,kDAAkD;QACpH,OAAO,IAAID,SAAS,QAAQ;YAC1B,IAAME,cAAclI,gBAAgBP,SAASuG;YAC7CA,QAAQkC,gBAAgB,CAAC,IAAIlI,gBAAgBP,WAAWyI,aAAa,0DAA0D;QACjI;QAEAxB,mBAAmBV;IACrB,GACA;QAACU;QAAoBxC;QAAoBzE;KAAQ;IAGnDtB,MAAM+G,SAAS,CACb,SAASiD;YACOxH,cAAAA;QAAd,IAAMH,QAAQG,CAAAA,OAAAA,CAAAA,eAAAA,MAAMH,KAAK,cAAXG,0BAAAA,eAAe8D,+BAAf9D,kBAAAA,OAAoCA,MAAM6D,YAAY;QAEpE,IAAM/E,UACJoD,cAAc1B,eAAeiD,YACzBlD,OAAO8B,aAAa7B,YAAYC,YAChC4B;QAEN+B,WAAWtF;QACXwF,uBAAuBlE,kBAAkBtB,SAASe,OAAO6C;IAC3D,GACA;QACEjC;QACAD;QACAsD;QACAzB;QACArC,MAAM6D,YAAY;QAClB7D,MAAMH,KAAK;QACXqC;QACAQ;KACD;IAGH;;;GAGC,GACD,IAAM+E,eAAejK,MAAM2H,WAAW,CAAC,SAACjF;YAClCmD;QAAJ,KAAIA,wBAAAA,aAAauB,OAAO,cAApBvB,4CAAAA,sBAAsBqE,QAAQ,CAACxH,EAAEyH,MAAM,GAAW;YACpDzH,EAAEC,cAAc;QAClB;IACF,GAAG,EAAE;IAEL,IAAMyH,uBAAoE,SAAC1H;QACzE,IAAM2H,yBAAyBzH,kBAC7BtB,SACAoB,EAAE4H,aAAa,CAACjI,KAAK,EACrB6C;QAGF,IAAI2B,wBAAwBwD,wBAAwB;YAClD,IAAI,CAACnE,qBAAqB;gBACxBY,uBAAuBuD;YACzB;YACAvG,qBAAAA,+BAAAA,SAAWpB;QACb;IACF;IAEA,IAAM6H,iBAA+DvK,MAAM2H,WAAW,CACpF,SAACV;QACC;YAAC;YAAW;YAAa;YAAU;SAAQ,CAACQ,QAAQ,CAACR,MAAM4B,GAAG,KAC5DJ,qBACAxB,MAAMtE,cAAc;QAEtB,OAAQsE,MAAM4B,GAAG;YACf,KAAK;gBACHJ,qBAAqBmB,YAAY;gBACjC;YACF,KAAK;gBACHnB,qBAAqBmB,YAAY;gBACjC;YACF,KAAK;gBACHV;gBACA;YACF,KAAK;gBACHT,qBAAqBY;gBACrB;QACJ;IACF,GACA;QAACZ;QAAiBS;QAAOU;QAAaP;KAAc;IAGtD,IAAMrF,gBAA4DhE,MAAM2H,WAAW,CACjF,SAACjF;QACC,2CAA2C;QAC3C,IAAIuB,mBAAmB;YACrB,IAAM3C,UAAU2C,kBAAkBvB,GAAGmC;YACrC,IAAIvD,SAAS;gBACX,IAAIgE,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;oBAC1CxD,KACE,8EACE;gBAEN;gBACA4E,WAAWtF;gBACXwF,uBAAuBlE,kBAAkBtB,SAASgF,mBAAmBpB;YACvE;QACF,OAAO;YACL,IAAM5D,WAAUyB,OAAO8B,aAAanC,EAAEyH,MAAM,CAAC9H,KAAK,EAAEY;YACpD2D,WAAWtF;YACXwF,uBAAuBlE,kBAAkBtB,UAASgF,mBAAmBpB;QACvE;QACAkB,cAAc1D,EAAEyH,MAAM,CAAC9H,KAAK;IAC9B,GACA;QAACY;QAAUqD;QAAmBrC;QAAmBY;QAAaK;KAAiB;IAGjF,IAAMsF,sBAAsBxK,MAAM2H,WAAW,CAC3C,SAACV;QACC,IAAIA,MAAM4B,GAAG,CAACrH,MAAM,KAAK,KAAKyF,MAAM4B,GAAG,KAAK,KAAK;YAC/CD,gBAAgB3B,MAAM4B,GAAG;YACzB;QACF;QAEA;YAAC;YAAW;YAAa;YAAU;SAAQ,CAACpB,QAAQ,CAACR,MAAM4B,GAAG,KAC5DJ,qBACAxB,MAAMtE,cAAc;QAEtB,OAAQsE,MAAM4B,GAAG;YACf,KAAK;gBACH,IAAIxF,QAAQ;oBACVoF,qBAAqBmB,YAAY;gBACnC,OAAO;oBACLN;gBACF;gBACA;YACF,KAAK;gBACH,IAAIjG,QAAQ;oBACVoF,qBAAqBmB,YAAY;gBACnC,OAAO;oBACLN;gBACF;gBACA;YACF,KAAK;gBACHJ;gBACA;YACF,KAAK;YACL,KAAK;YACL,KAAK;gBACH,IAAI7F,QAAQ;oBACVoF,qBAAqBY;gBACvB,OAAO;oBACLC;gBACF;gBACA;QACJ;IACF,GACA;QAACb;QAAiBS;QAAOU;QAAahB;QAAiBU;QAAMjG;QAAQgG;KAAc;IAGrF,IAAMoB,oBAAoBzK,MAAM2H,WAAW,CACzC,SAACjF;YAEGA;QADF,IAAMmF,QAAQ6C,MAAMC,SAAS,CAACC,OAAO,CAACC,IAAI,EACxCnI,8BAAAA,EAAE4H,aAAa,CAACQ,UAAU,cAA1BpI,kDAAAA,4BAA4BqB,QAAQ,EACpCrB,EAAE4H,aAAa;QAEjB,IAAM5I,SAASJ,OAAO,CAACuG,MAAM;QAE7B,IAAInG,UAAU,CAACA,OAAOE,QAAQ,EAAE;YAC9BuH,aAAatB;QACf;IACF,GACA;QAACvG;QAAS6H;KAAa;IAGzB,IAAM4B,oBAAoB/K,MAAM2H,WAAW,CACzC,SAACjF;YAEgCA;QAD/B6F,mBACEmC,MAAMC,SAAS,CAACC,OAAO,CAACC,IAAI,EAACnI,8BAAAA,EAAE4H,aAAa,CAACQ,UAAU,cAA1BpI,kDAAAA,4BAA4BqB,QAAQ,EAAErB,EAAE4H,aAAa,GAClF;IAEJ,GACA;QAAC/B;KAAmB;IAGtB,IAAM3D,eAAe5E,MAAM2H,WAAW,CACpC,SAACjG,QAAqCmG;QACpC,IAAMmD,UAAUnD,UAAU9B;QAC1B,IAAMuB,WAAWO,UAAUhB;QAE3B,qBACE,oBAAC7G,MAAMiL,QAAQ;YAACpC,KAAK,AAAC,GAAe,OAAbnH,OAAOW,KAAK;WACjCsC,iBAAiB;YAChBjD,QAAAA;YACAsJ,SAAAA;YACAjH,UAAUrC,OAAOsH,KAAK;YACtB1B,UAAAA;YACA1F,UAAUF,OAAOE,QAAQ;YACzB8H,SAASe;YACTS,aAAazI;YACb,kDAAkD;YAClD,kHAAkH;YAClH,sGAAsG;YACtG,qHAAqH;YACrH,+BAA+B;YAC/B,0IAA0I;YAC1I,oDAAoD;YACpD,kGAAkG;YAClG0I,aAAaJ;QACf;IAGN,GACA;QACEhF;QACA0E;QACAM;QACApG;QACAkC;KACD;IAGH,IAAMuE,kBAAkBpL,MAAMuH,OAAO,CAAC;QACpC,IAAM8D,yBACJ/J,CAAAA,oBAAAA,8BAAAA,QAASE,MAAM,IAAG,IAChBF,QAAQa,GAAG,CAACyC,8BAEZ,oBAAC5D;YAASyC,SAAS;WAAkCqB;QAGzD,IAAI,OAAOZ,mBAAmB,YAAY;YACxC,OAAOA,eAAe;gBAAEmH,wBAAAA;YAAuB;QACjD,OAAO;YACL,OAAOA;QACT;IACF,GAAG;QAACvG;QAAWxD;QAAS4C;QAAgBU;KAAa;IAErD,IAAM0G,qBAAqBpF,uBAAuB1D,MAAMH,KAAK,KAAK;IAClE,IAAMkJ,uBAAuB,CAACrF,uBAAuBI,sBAAsB;IAC3E,IAAMkF,mBACJtG,oBAAoB,CAAC7B,UAAWiI,CAAAA,sBAAsBC,oBAAmB;IAE3E,IAAME,cAAczL,MAAMuH,OAAO,CAAC;QAChC,IAAI,CAACiE,kBAAkB;YACrB,OAAO;QACT;QAEA,qBACE,oBAACvG;YACCxB,WAAWuB,aAAaiB,6CAAiDA;YACzEyD,SAAS;uBAAMnD,qBAAqB;;;IAG1C,GAAG;QAACiF;QAAkBvG;QAAaD;KAAS;IAE5C,IAAMD,OAAO/E,MAAMuH,OAAO,CAAC;QACzB,IAAIvC,aAAaiB,WAAW;YAC1B,OAAOjB;QACT;QAEA,qBACE,oBAACnE;YACC4C,WAAW+H,uDAA2DvF;YACtE5C,QAAQA;;IAGd,GAAG;QAACmI;QAAkBxG;QAAU3B;KAAO;IAEvC,IAAMqI,aAAa,AAAC3G,CAAAA,QAAQyG,gBAAe,mBACzC,oBAACxL,MAAMiL,QAAQ,QACZQ,aACA1G;IAIL,qBACE,oBAACiE;QACCvF,WAAWxD,+BAETwF,UAAUrF,SAASuL,OAAO,IAAIzK,eAAe,CAACuE,MAAM,EACpDhC;QAEFI,OAAOA;QACP8E,KAAK/C;QACL8D,SAASO;OAER5G,UAAUqB,2BACT,oBAAC5D,+CACKuE;QACJuG,WAAAA;QACArC,QAAQA;QACR9F,WAAW+D;QACXnF,OAAOW;QACP6I,WAAWtB;QACXzG,UAAUE;QACV,kIAAkI;QAClI,4FAA4F;QAC5F,wGAAwG;QACxG0F,SAASlH,MAAMkH,OAAO;QACtBnG,QAAQA;QACRuI,OAAOJ;QACPK,MAAMzL,+BAA+BiE;wBAGvC,oBAACxD,uDACKsE;QACJ2G,eAAAA;QACAtC,SAASA;QACTmC,WAAWrB;QACXyB,SAAStC;QACTF,SAASA;QACTF,QAAQA;QACR9F,WAAW+D;QACXjE,QAAQA;QACRuI,OAAOJ;QACPnH,YAAYA;QAEX+C,qBAAAA,+BAAAA,SAAU0B,KAAK,iBAGpB,oBAACkD;QACCvD,KAAK7C;QACLtC,MAAMA;QACNM,UAAUsG;QACVb,QAAQ/G,MAAM+G,MAAM;QACpBE,SAASjH,MAAMiH,OAAO;QACtBC,SAASlH,MAAMkH,OAAO;QACtBrH,OAAOiE;QACP0F,eAAAA;QACAvI,SAAS;OAERyB,kCAAoB,oBAACxD;QAAOmH,KAAI;QAAGxG,OAAM;QACzCwC,YAAY1C,GAAG,CAAC,SAACC;6BAChB,oBAACV;YAAOmH,KAAK,AAAC,GAAa,OAAXzG,KAAKC,KAAK;YAAIA,OAAOD,KAAKC,KAAK;;SAGlDgB,wBACC,oBAAC1C;QACCwL,WAAWzG;QACX0G,WAAWxI;QACXiC,cAAc6C;QACd2D,mBAAmB1F;QACnB2F,cAAc9C;QACdnF,UAAUA;QACVkI,gBAAgBpH;QAChBqH,WAAWpH;QACXqH,aAAanI;QACbE,mBAAmBA;QACnBC,wBAAwBA;OAEvB2G;AAKX"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { HTMLAttributesWithRootRef } from '../../types';
3
- export interface HeaderProps extends HTMLAttributesWithRootRef<HTMLElement> {
2
+ import { HasComponent, HTMLAttributesWithRootRef } from '../../types';
3
+ export interface HeaderProps extends HTMLAttributesWithRootRef<HTMLElement>, HasComponent {
4
4
  mode?: 'primary' | 'secondary' | 'tertiary';
5
5
  size?: 'regular' | 'large';
6
6
  subtitle?: React.ReactNode;
@@ -17,5 +17,5 @@ export interface HeaderProps extends HTMLAttributesWithRootRef<HTMLElement> {
17
17
  /**
18
18
  * @see https://vkcom.github.io/VKUI/#/Header
19
19
  */
20
- export declare const Header: ({ mode, size, children, subtitle, indicator, aside, multiline, ...restProps }: HeaderProps) => React.JSX.Element;
20
+ export declare const Header: ({ mode, size, Component, children, subtitle, indicator, aside, multiline, ...restProps }: HeaderProps) => React.JSX.Element;
21
21
  //# sourceMappingURL=Header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/components/Header/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAgB,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAStE,MAAM,WAAW,WAAY,SAAQ,yBAAyB,CAAC,WAAW,CAAC;IACzE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IAC5C,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6CD;;GAEG;AACH,eAAO,MAAM,MAAM,kFAShB,WAAW,sBAuDb,CAAC"}
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/components/Header/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAStE,MAAM,WAAW,WAAY,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAAE,YAAY;IACvF,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IAC5C,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6CD;;GAEG;AACH,eAAO,MAAM,MAAM,6FAUhB,WAAW,sBAsDb,CAAC"}
@@ -68,24 +68,23 @@ var stylesMode = {
68
68
  /**
69
69
  * @see https://vkcom.github.io/VKUI/#/Header
70
70
  */ export var Header = function(_param) {
71
- var _param_mode = _param.mode, mode = _param_mode === void 0 ? "primary" : _param_mode, _param_size = _param.size, size = _param_size === void 0 ? "regular" : _param_size, children = _param.children, subtitle = _param.subtitle, indicator = _param.indicator, aside = _param.aside, multiline = _param.multiline, restProps = _object_without_properties(_param, [
71
+ var _param_mode = _param.mode, mode = _param_mode === void 0 ? "primary" : _param_mode, _param_size = _param.size, size = _param_size === void 0 ? "regular" : _param_size, _param_Component = _param.Component, Component = _param_Component === void 0 ? "h2" : _param_Component, children = _param.children, subtitle = _param.subtitle, indicator = _param.indicator, aside = _param.aside, multiline = _param.multiline, restProps = _object_without_properties(_param, [
72
72
  "mode",
73
73
  "size",
74
+ "Component",
74
75
  "children",
75
76
  "subtitle",
76
77
  "indicator",
77
78
  "aside",
78
79
  "multiline"
79
80
  ]);
80
- return /*#__PURE__*/ React.createElement(RootComponent, _object_spread_props(_object_spread({
81
- Component: "header"
82
- }, restProps), {
81
+ return /*#__PURE__*/ React.createElement(RootComponent, _object_spread_props(_object_spread({}, restProps), {
83
82
  baseClassName: classNames("vkuiHeader", stylesMode[mode], size === "large" && "vkuiHeader--large", isPrimitiveReactNode(indicator) && "vkuiHeader--pi", hasReactNode(subtitle) && "vkuiHeader--with-subtitle")
84
83
  }), /*#__PURE__*/ React.createElement("div", {
85
84
  className: "vkuiHeader__main"
86
85
  }, /*#__PURE__*/ React.createElement(HeaderContent, {
87
86
  className: "vkuiHeader__content",
88
- Component: "span",
87
+ Component: Component,
89
88
  mode: mode,
90
89
  size: size
91
90
  }, /*#__PURE__*/ React.createElement("span", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Header/Header.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode, isPrimitiveReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Paragraph } from '../Typography/Paragraph/Paragraph';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './Header.module.css';\n\nexport interface HeaderProps extends HTMLAttributesWithRootRef<HTMLElement> {\n mode?: 'primary' | 'secondary' | 'tertiary';\n size?: 'regular' | 'large';\n subtitle?: React.ReactNode;\n /**\n * Допускаются иконки, текст, Link\n */\n aside?: React.ReactNode;\n /**\n * Допускаются текст, Indicator\n */\n indicator?: React.ReactNode;\n multiline?: boolean;\n}\n\ntype HeaderContentProps = Pick<HeaderProps, 'children' | 'mode' | 'size' | 'className'> &\n HasComponent;\n\nconst HeaderContent = ({ mode, size, ...restProps }: HeaderContentProps) => {\n const isLarge = size === 'large';\n\n const platform = usePlatform();\n if (platform === Platform.IOS) {\n switch (mode) {\n case 'primary':\n return isLarge ? (\n <Title level=\"2\" weight=\"2\" {...restProps} />\n ) : (\n <Title weight=\"1\" level=\"3\" {...restProps} />\n );\n case 'secondary':\n return <Footnote weight=\"1\" caps {...restProps} />;\n case 'tertiary':\n return <Title weight=\"1\" level=\"3\" {...restProps} />;\n }\n }\n\n switch (mode) {\n case 'primary':\n return isLarge ? (\n <Title level=\"2\" weight=\"2\" {...restProps} />\n ) : (\n <Headline weight=\"2\" {...restProps} />\n );\n case 'secondary':\n return <Footnote weight=\"1\" caps {...restProps} />;\n case 'tertiary':\n return <Headline weight=\"2\" {...restProps} />;\n }\n\n return null;\n};\n\nconst stylesMode = {\n primary: styles['Header--mode-primary'],\n secondary: styles['Header--mode-secondary'],\n tertiary: styles['Header--mode-tertiary'],\n};\n/**\n * @see https://vkcom.github.io/VKUI/#/Header\n */\nexport const Header = ({\n mode = 'primary',\n size = 'regular',\n children,\n subtitle,\n indicator,\n aside,\n multiline,\n ...restProps\n}: HeaderProps) => {\n return (\n <RootComponent\n Component=\"header\"\n {...restProps}\n baseClassName={classNames(\n styles['Header'],\n stylesMode[mode],\n size === 'large' && styles['Header--large'],\n isPrimitiveReactNode(indicator) && styles['Header--pi'],\n hasReactNode(subtitle) && styles['Header--with-subtitle'],\n )}\n >\n <div className={styles['Header__main']}>\n <HeaderContent\n className={styles['Header__content']}\n Component=\"span\"\n mode={mode}\n size={size}\n >\n <span\n className={classNames(\n styles['Header__content-in'],\n multiline && styles['Header__content--multiline'],\n )}\n >\n {children}\n </span>\n {hasReactNode(indicator) && (\n <Footnote className={styles['Header__indicator']} weight=\"2\">\n {indicator}\n </Footnote>\n )}\n </HeaderContent>\n\n {hasReactNode(subtitle) && (\n <Subhead\n className={classNames(\n styles['Header__subtitle'],\n multiline && styles['Header__content--multiline'],\n )}\n Component=\"span\"\n >\n {subtitle}\n </Subhead>\n )}\n </div>\n\n {hasReactNode(aside) && (\n <Paragraph className={styles['Header__aside']} Component=\"span\">\n {aside}\n </Paragraph>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","hasReactNode","isPrimitiveReactNode","usePlatform","Platform","RootComponent","Footnote","Headline","Paragraph","Subhead","Title","HeaderContent","mode","size","restProps","isLarge","platform","IOS","level","weight","caps","stylesMode","primary","secondary","tertiary","Header","children","subtitle","indicator","aside","multiline","Component","baseClassName","div","className","span"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,EAAEC,oBAAoB,QAAQ,kBAAkB;AACjF,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,SAAS,QAAQ,oCAAoC;AAC9D,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,KAAK,QAAQ,4BAA4B;AAqBlD,IAAMC,gBAAgB;QAAGC,cAAAA,MAAMC,cAAAA,MAASC;QAAfF;QAAMC;;IAC7B,IAAME,UAAUF,SAAS;IAEzB,IAAMG,WAAWb;IACjB,IAAIa,aAAaZ,SAASa,GAAG,EAAE;QAC7B,OAAQL;YACN,KAAK;gBACH,OAAOG,wBACL,oBAACL;oBAAMQ,OAAM;oBAAIC,QAAO;mBAAQL,4BAEhC,oBAACJ;oBAAMS,QAAO;oBAAID,OAAM;mBAAQJ;YAEpC,KAAK;gBACH,qBAAO,oBAACR;oBAASa,QAAO;oBAAIC,MAAAA;mBAASN;YACvC,KAAK;gBACH,qBAAO,oBAACJ;oBAAMS,QAAO;oBAAID,OAAM;mBAAQJ;QAC3C;IACF;IAEA,OAAQF;QACN,KAAK;YACH,OAAOG,wBACL,oBAACL;gBAAMQ,OAAM;gBAAIC,QAAO;eAAQL,4BAEhC,oBAACP;gBAASY,QAAO;eAAQL;QAE7B,KAAK;YACH,qBAAO,oBAACR;gBAASa,QAAO;gBAAIC,MAAAA;eAASN;QACvC,KAAK;YACH,qBAAO,oBAACP;gBAASY,QAAO;eAAQL;IACpC;IAEA,OAAO;AACT;AAEA,IAAMO,aAAa;IACjBC,OAAO;IACPC,SAAS;IACTC,QAAQ;AACV;AACA;;CAEC,GACD,OAAO,IAAMC,SAAS;6BACpBb,MAAAA,gCAAO,8CACPC,MAAAA,gCAAO,yBACPa,kBAAAA,UACAC,kBAAAA,UACAC,mBAAAA,WACAC,eAAAA,OACAC,mBAAAA,WACGhB;QAPHF;QACAC;QACAa;QACAC;QACAC;QACAC;QACAC;;IAGA,qBACE,oBAACzB;QACC0B,WAAU;OACNjB;QACJkB,eAAehC,yBAEbqB,UAAU,CAACT,KAAK,EAChBC,SAAS,gCACTX,qBAAqB0B,gCACrB3B,aAAa0B;sBAGf,oBAACM;QAAIC,SAAS;qBACZ,oBAACvB;QACCuB,SAAS;QACTH,WAAU;QACVnB,MAAMA;QACNC,MAAMA;qBAEN,oBAACsB;QACCD,WAAWlC,qCAET8B;OAGDJ,WAEFzB,aAAa2B,4BACZ,oBAACtB;QAAS4B,SAAS;QAA+Bf,QAAO;OACtDS,aAKN3B,aAAa0B,2BACZ,oBAAClB;QACCyB,WAAWlC,mCAET8B;QAEFC,WAAU;OAETJ,YAKN1B,aAAa4B,wBACZ,oBAACrB;QAAU0B,SAAS;QAA2BH,WAAU;OACtDF;AAKX,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/Header/Header.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode, isPrimitiveReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Paragraph } from '../Typography/Paragraph/Paragraph';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './Header.module.css';\n\nexport interface HeaderProps extends HTMLAttributesWithRootRef<HTMLElement>, HasComponent {\n mode?: 'primary' | 'secondary' | 'tertiary';\n size?: 'regular' | 'large';\n subtitle?: React.ReactNode;\n /**\n * Допускаются иконки, текст, Link\n */\n aside?: React.ReactNode;\n /**\n * Допускаются текст, Indicator\n */\n indicator?: React.ReactNode;\n multiline?: boolean;\n}\n\ntype HeaderContentProps = Pick<HeaderProps, 'children' | 'mode' | 'size' | 'className'> &\n HasComponent;\n\nconst HeaderContent = ({ mode, size, ...restProps }: HeaderContentProps) => {\n const isLarge = size === 'large';\n\n const platform = usePlatform();\n if (platform === Platform.IOS) {\n switch (mode) {\n case 'primary':\n return isLarge ? (\n <Title level=\"2\" weight=\"2\" {...restProps} />\n ) : (\n <Title weight=\"1\" level=\"3\" {...restProps} />\n );\n case 'secondary':\n return <Footnote weight=\"1\" caps {...restProps} />;\n case 'tertiary':\n return <Title weight=\"1\" level=\"3\" {...restProps} />;\n }\n }\n\n switch (mode) {\n case 'primary':\n return isLarge ? (\n <Title level=\"2\" weight=\"2\" {...restProps} />\n ) : (\n <Headline weight=\"2\" {...restProps} />\n );\n case 'secondary':\n return <Footnote weight=\"1\" caps {...restProps} />;\n case 'tertiary':\n return <Headline weight=\"2\" {...restProps} />;\n }\n\n return null;\n};\n\nconst stylesMode = {\n primary: styles['Header--mode-primary'],\n secondary: styles['Header--mode-secondary'],\n tertiary: styles['Header--mode-tertiary'],\n};\n/**\n * @see https://vkcom.github.io/VKUI/#/Header\n */\nexport const Header = ({\n mode = 'primary',\n size = 'regular',\n Component = 'h2',\n children,\n subtitle,\n indicator,\n aside,\n multiline,\n ...restProps\n}: HeaderProps) => {\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles['Header'],\n stylesMode[mode],\n size === 'large' && styles['Header--large'],\n isPrimitiveReactNode(indicator) && styles['Header--pi'],\n hasReactNode(subtitle) && styles['Header--with-subtitle'],\n )}\n >\n <div className={styles['Header__main']}>\n <HeaderContent\n className={styles['Header__content']}\n Component={Component}\n mode={mode}\n size={size}\n >\n <span\n className={classNames(\n styles['Header__content-in'],\n multiline && styles['Header__content--multiline'],\n )}\n >\n {children}\n </span>\n {hasReactNode(indicator) && (\n <Footnote className={styles['Header__indicator']} weight=\"2\">\n {indicator}\n </Footnote>\n )}\n </HeaderContent>\n\n {hasReactNode(subtitle) && (\n <Subhead\n className={classNames(\n styles['Header__subtitle'],\n multiline && styles['Header__content--multiline'],\n )}\n Component=\"span\"\n >\n {subtitle}\n </Subhead>\n )}\n </div>\n\n {hasReactNode(aside) && (\n <Paragraph className={styles['Header__aside']} Component=\"span\">\n {aside}\n </Paragraph>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","hasReactNode","isPrimitiveReactNode","usePlatform","Platform","RootComponent","Footnote","Headline","Paragraph","Subhead","Title","HeaderContent","mode","size","restProps","isLarge","platform","IOS","level","weight","caps","stylesMode","primary","secondary","tertiary","Header","Component","children","subtitle","indicator","aside","multiline","baseClassName","div","className","span"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,EAAEC,oBAAoB,QAAQ,kBAAkB;AACjF,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,SAAS,QAAQ,oCAAoC;AAC9D,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,KAAK,QAAQ,4BAA4B;AAqBlD,IAAMC,gBAAgB;QAAGC,cAAAA,MAAMC,cAAAA,MAASC;QAAfF;QAAMC;;IAC7B,IAAME,UAAUF,SAAS;IAEzB,IAAMG,WAAWb;IACjB,IAAIa,aAAaZ,SAASa,GAAG,EAAE;QAC7B,OAAQL;YACN,KAAK;gBACH,OAAOG,wBACL,oBAACL;oBAAMQ,OAAM;oBAAIC,QAAO;mBAAQL,4BAEhC,oBAACJ;oBAAMS,QAAO;oBAAID,OAAM;mBAAQJ;YAEpC,KAAK;gBACH,qBAAO,oBAACR;oBAASa,QAAO;oBAAIC,MAAAA;mBAASN;YACvC,KAAK;gBACH,qBAAO,oBAACJ;oBAAMS,QAAO;oBAAID,OAAM;mBAAQJ;QAC3C;IACF;IAEA,OAAQF;QACN,KAAK;YACH,OAAOG,wBACL,oBAACL;gBAAMQ,OAAM;gBAAIC,QAAO;eAAQL,4BAEhC,oBAACP;gBAASY,QAAO;eAAQL;QAE7B,KAAK;YACH,qBAAO,oBAACR;gBAASa,QAAO;gBAAIC,MAAAA;eAASN;QACvC,KAAK;YACH,qBAAO,oBAACP;gBAASY,QAAO;eAAQL;IACpC;IAEA,OAAO;AACT;AAEA,IAAMO,aAAa;IACjBC,OAAO;IACPC,SAAS;IACTC,QAAQ;AACV;AACA;;CAEC,GACD,OAAO,IAAMC,SAAS;6BACpBb,MAAAA,gCAAO,8CACPC,MAAAA,gCAAO,mDACPa,WAAAA,0CAAY,yBACZC,kBAAAA,UACAC,kBAAAA,UACAC,mBAAAA,WACAC,eAAAA,OACAC,mBAAAA,WACGjB;QARHF;QACAC;QACAa;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,qBACE,oBAAC1B,uDACKS;QACJkB,eAAehC,yBAEbqB,UAAU,CAACT,KAAK,EAChBC,SAAS,gCACTX,qBAAqB2B,gCACrB5B,aAAa2B;sBAGf,oBAACK;QAAIC,SAAS;qBACZ,oBAACvB;QACCuB,SAAS;QACTR,WAAWA;QACXd,MAAMA;QACNC,MAAMA;qBAEN,oBAACsB;QACCD,WAAWlC,qCAET+B;OAGDJ,WAEF1B,aAAa4B,4BACZ,oBAACvB;QAAS4B,SAAS;QAA+Bf,QAAO;OACtDU,aAKN5B,aAAa2B,2BACZ,oBAACnB;QACCyB,WAAWlC,mCAET+B;QAEFL,WAAU;OAETE,YAKN3B,aAAa6B,wBACZ,oBAACtB;QAAU0B,SAAS;QAA2BR,WAAU;OACtDI;AAKX,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"HorizontalScroll.d.ts","sourceRoot":"","sources":["../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAqBhE,MAAM,MAAM,qBAAqB,GAAG,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,CAAC;AAExE,MAAM,WAAW,qBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,MAAM,CAAC,cAAc,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC;;OAEG;IACH,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AA2GD;;GAEG;AACH,eAAO,MAAM,gBAAgB,0JAW1B,qBAAqB,sBA+IvB,CAAC"}
1
+ {"version":3,"file":"HorizontalScroll.d.ts","sourceRoot":"","sources":["../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAqBhE,MAAM,MAAM,qBAAqB,GAAG,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,CAAC;AAExE,MAAM,WAAW,qBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,MAAM,CAAC,cAAc,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC;;OAEG;IACH,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AA2GD;;GAEG;AACH,eAAO,MAAM,gBAAgB,0JAW1B,qBAAqB,sBAmJvB,CAAC"}