@vkontakte/vkui 7.5.3 → 7.6.0

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 (487) hide show
  1. package/dist/components/Calendar/Calendar.js +6 -6
  2. package/dist/components/Calendar/Calendar.js.map +1 -1
  3. package/dist/components/CalendarDays/CalendarDays.js +3 -3
  4. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  5. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  6. package/dist/components/CalendarRange/CalendarRange.js +16 -14
  7. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  8. package/dist/components/CalendarRange/utils.d.ts.map +1 -1
  9. package/dist/components/CalendarRange/utils.js +6 -5
  10. package/dist/components/CalendarRange/utils.js.map +1 -1
  11. package/dist/components/Cell/Cell.d.ts.map +1 -1
  12. package/dist/components/Cell/Cell.js +6 -3
  13. package/dist/components/Cell/Cell.js.map +1 -1
  14. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +5 -3
  15. package/dist/components/CellButtonGroup/CellButtonGroup.d.ts.map +1 -1
  16. package/dist/components/Checkbox/Checkbox.d.ts +4 -0
  17. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  18. package/dist/components/Checkbox/Checkbox.js +4 -2
  19. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  20. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +1 -1
  21. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -1
  22. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js +6 -3
  23. package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -1
  24. package/dist/components/ChipsInputBase/Chip/Chip.d.ts +41 -2
  25. package/dist/components/ChipsInputBase/Chip/Chip.d.ts.map +1 -1
  26. package/dist/components/ChipsInputBase/Chip/Chip.js +7 -2
  27. package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  28. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts.map +1 -1
  29. package/dist/components/ChipsInputBase/ChipsInputBase.js +21 -1
  30. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  31. package/dist/components/ChipsInputBase/types.d.ts +2 -35
  32. package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
  33. package/dist/components/ChipsInputBase/types.js.map +1 -1
  34. package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
  35. package/dist/components/ChipsSelect/ChipsSelect.js +2 -4
  36. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  37. package/dist/components/ContentBadge/ContentBadge.d.ts +1 -1
  38. package/dist/components/ContentBadge/ContentBadge.d.ts.map +1 -1
  39. package/dist/components/ContentBadge/ContentBadge.js +15 -9
  40. package/dist/components/ContentBadge/ContentBadge.js.map +1 -1
  41. package/dist/components/ContentCard/ContentCard.d.ts +1 -1
  42. package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
  43. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  44. package/dist/components/CustomSelect/CustomSelect.d.ts +16 -27
  45. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  46. package/dist/components/CustomSelect/CustomSelect.js +161 -428
  47. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  48. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts +3 -1
  49. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts.map +1 -1
  50. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.js +25 -5
  51. package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
  52. package/dist/components/CustomSelect/helpers.d.ts +12 -0
  53. package/dist/components/CustomSelect/helpers.d.ts.map +1 -0
  54. package/dist/components/CustomSelect/helpers.js +63 -0
  55. package/dist/components/CustomSelect/helpers.js.map +1 -0
  56. package/dist/components/CustomSelect/hooks/useAfterItems.d.ts +11 -0
  57. package/dist/components/CustomSelect/hooks/useAfterItems.d.ts.map +1 -0
  58. package/dist/components/CustomSelect/hooks/useAfterItems.js +57 -0
  59. package/dist/components/CustomSelect/hooks/useAfterItems.js.map +1 -0
  60. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts +13 -0
  61. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts.map +1 -0
  62. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.js +60 -0
  63. package/dist/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -0
  64. package/dist/components/CustomSelect/hooks/useFocusedOptionController.d.ts +20 -0
  65. package/dist/components/CustomSelect/hooks/useFocusedOptionController.d.ts.map +1 -0
  66. package/dist/components/CustomSelect/hooks/useFocusedOptionController.js +52 -0
  67. package/dist/components/CustomSelect/hooks/useFocusedOptionController.js.map +1 -0
  68. package/dist/components/CustomSelect/hooks/useInputKeyboardController.d.ts +13 -0
  69. package/dist/components/CustomSelect/hooks/useInputKeyboardController.d.ts.map +1 -0
  70. package/dist/components/CustomSelect/hooks/useInputKeyboardController.js +78 -0
  71. package/dist/components/CustomSelect/hooks/useInputKeyboardController.js.map +1 -0
  72. package/dist/components/CustomSelect/hooks/useInputValueController.d.ts +15 -0
  73. package/dist/components/CustomSelect/hooks/useInputValueController.d.ts.map +1 -0
  74. package/dist/components/CustomSelect/hooks/useInputValueController.js +43 -0
  75. package/dist/components/CustomSelect/hooks/useInputValueController.js.map +1 -0
  76. package/dist/components/CustomSelect/hooks/useScrollListController.d.ts +9 -0
  77. package/dist/components/CustomSelect/hooks/useScrollListController.d.ts.map +1 -0
  78. package/dist/components/CustomSelect/hooks/useScrollListController.js +37 -0
  79. package/dist/components/CustomSelect/hooks/useScrollListController.js.map +1 -0
  80. package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts +18 -0
  81. package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts.map +1 -0
  82. package/dist/components/CustomSelect/hooks/useSelectedOptionController.js +81 -0
  83. package/dist/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -0
  84. package/dist/components/CustomSelect/types.d.ts +33 -0
  85. package/dist/components/CustomSelect/types.d.ts.map +1 -0
  86. package/dist/components/CustomSelect/types.js +3 -0
  87. package/dist/components/CustomSelect/types.js.map +1 -0
  88. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  89. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -0
  90. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  91. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  92. package/dist/components/DateInput/DateInput.js +3 -2
  93. package/dist/components/DateInput/DateInput.js.map +1 -1
  94. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  95. package/dist/components/DateRangeInput/DateRangeInput.js +4 -4
  96. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  97. package/dist/components/ModalCard/ModalCard.d.ts +1 -1
  98. package/dist/components/ModalCard/ModalCard.d.ts.map +1 -1
  99. package/dist/components/ModalCard/ModalCard.js +4 -2
  100. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  101. package/dist/components/ModalCard/ModalCardInternal.d.ts +1 -1
  102. package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -1
  103. package/dist/components/ModalCard/ModalCardInternal.js +5 -3
  104. package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
  105. package/dist/components/ModalCard/types.d.ts +6 -0
  106. package/dist/components/ModalCard/types.d.ts.map +1 -1
  107. package/dist/components/ModalCard/types.js.map +1 -1
  108. package/dist/components/ModalOutlet/ModalOutlet.d.ts +2 -1
  109. package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
  110. package/dist/components/ModalOutlet/ModalOutlet.js +4 -3
  111. package/dist/components/ModalOutlet/ModalOutlet.js.map +1 -1
  112. package/dist/components/ModalPage/ModalPage.d.ts +1 -1
  113. package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
  114. package/dist/components/ModalPage/ModalPage.js +3 -1
  115. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  116. package/dist/components/ModalPage/ModalPageInternal.d.ts +1 -1
  117. package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
  118. package/dist/components/ModalPage/ModalPageInternal.js +5 -3
  119. package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
  120. package/dist/components/ModalPage/types.d.ts +6 -0
  121. package/dist/components/ModalPage/types.d.ts.map +1 -1
  122. package/dist/components/ModalPage/types.js.map +1 -1
  123. package/dist/components/ModalRoot/ModalRoot.d.ts +1 -1
  124. package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  125. package/dist/components/ModalRoot/ModalRoot.js +4 -2
  126. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  127. package/dist/components/ModalRoot/types.d.ts +4 -0
  128. package/dist/components/ModalRoot/types.d.ts.map +1 -1
  129. package/dist/components/ModalRoot/types.js.map +1 -1
  130. package/dist/components/ModalRoot/useModalManager.d.ts +3 -1
  131. package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
  132. package/dist/components/ModalRoot/useModalManager.js +2 -1
  133. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  134. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +2 -2
  135. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  136. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +4 -2
  137. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  138. package/dist/components/Popover/Popover.d.ts +1 -1
  139. package/dist/components/Popover/Popover.d.ts.map +1 -1
  140. package/dist/components/Popover/Popover.js.map +1 -1
  141. package/dist/components/Popover/usePopover.d.ts +1 -1
  142. package/dist/components/Popover/usePopover.d.ts.map +1 -1
  143. package/dist/components/Popover/usePopover.js +3 -1
  144. package/dist/components/Popover/usePopover.js.map +1 -1
  145. package/dist/components/Popper/Popper.d.ts +2 -2
  146. package/dist/components/Popper/Popper.d.ts.map +1 -1
  147. package/dist/components/Popper/Popper.js +3 -1
  148. package/dist/components/Popper/Popper.js.map +1 -1
  149. package/dist/components/Select/Select.d.ts +2 -1
  150. package/dist/components/Select/Select.d.ts.map +1 -1
  151. package/dist/components/Select/Select.js +5 -2
  152. package/dist/components/Select/Select.js.map +1 -1
  153. package/dist/components/SelectionControl/SelectionControl.d.ts +5 -1
  154. package/dist/components/SelectionControl/SelectionControl.d.ts.map +1 -1
  155. package/dist/components/SelectionControl/SelectionControl.js +22 -6
  156. package/dist/components/SelectionControl/SelectionControl.js.map +1 -1
  157. package/dist/components/SelectionControl/SelectionControlContext.d.ts +7 -0
  158. package/dist/components/SelectionControl/SelectionControlContext.d.ts.map +1 -0
  159. package/dist/components/SelectionControl/SelectionControlContext.js +7 -0
  160. package/dist/components/SelectionControl/SelectionControlContext.js.map +1 -0
  161. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -1
  162. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +3 -1
  163. package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
  164. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  165. package/dist/components/SimpleCell/SimpleCell.js +29 -8
  166. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  167. package/dist/components/Skeleton/Skeleton.js +1 -1
  168. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  169. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  170. package/dist/components/Tabs/Tabs.js +19 -9
  171. package/dist/components/Tabs/Tabs.js.map +1 -1
  172. package/dist/components/Tabs/TabsController.d.ts +2 -2
  173. package/dist/components/Tabs/TabsController.d.ts.map +1 -1
  174. package/dist/components/Tabs/TabsController.js.map +1 -1
  175. package/dist/components/Tabs/TabsControllerContext.d.ts +5 -0
  176. package/dist/components/Tabs/TabsControllerContext.d.ts.map +1 -0
  177. package/dist/components/Tabs/TabsControllerContext.js +4 -0
  178. package/dist/components/Tabs/TabsControllerContext.js.map +1 -0
  179. package/dist/components/Tabs/TabsModeContext.d.ts +0 -2
  180. package/dist/components/Tabs/TabsModeContext.d.ts.map +1 -1
  181. package/dist/components/Tabs/TabsModeContext.js +1 -2
  182. package/dist/components/Tabs/TabsModeContext.js.map +1 -1
  183. package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
  184. package/dist/components/TabsItem/TabsItem.js +3 -1
  185. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  186. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  187. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  188. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  189. package/dist/components/Tooltip/useTooltip.d.ts +1 -1
  190. package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
  191. package/dist/components/Tooltip/useTooltip.js +3 -1
  192. package/dist/components/Tooltip/useTooltip.js.map +1 -1
  193. package/dist/components/Typography/Caption/Caption.d.ts +2 -0
  194. package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
  195. package/dist/components/Typography/Caption/Caption.js +4 -1
  196. package/dist/components/Typography/Caption/Caption.js.map +1 -1
  197. package/dist/components/Typography/Footnote/Footnote.d.ts +2 -0
  198. package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
  199. package/dist/components/Typography/Footnote/Footnote.js +4 -1
  200. package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
  201. package/dist/components/Typography/Typography.d.ts +1 -0
  202. package/dist/components/Typography/Typography.d.ts.map +1 -1
  203. package/dist/components/Typography/Typography.js +7 -1
  204. package/dist/components/Typography/Typography.js.map +1 -1
  205. package/dist/components/View/View.d.ts.map +1 -1
  206. package/dist/components/View/View.js +2 -1
  207. package/dist/components/View/View.js.map +1 -1
  208. package/dist/components/View/ViewInfinite.d.ts.map +1 -1
  209. package/dist/components/View/ViewInfinite.js +2 -1
  210. package/dist/components/View/ViewInfinite.js.map +1 -1
  211. package/dist/components.css +1 -1
  212. package/dist/components.css.map +1 -1
  213. package/dist/cssm/components/Banner/Banner.module.css +1 -6
  214. package/dist/cssm/components/Calendar/Calendar.js +6 -6
  215. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  216. package/dist/cssm/components/CalendarDays/CalendarDays.js +3 -3
  217. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  218. package/dist/cssm/components/CalendarRange/CalendarRange.js +16 -14
  219. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  220. package/dist/cssm/components/CalendarRange/utils.js +6 -5
  221. package/dist/cssm/components/CalendarRange/utils.js.map +1 -1
  222. package/dist/cssm/components/Cell/Cell.js +3 -1
  223. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  224. package/dist/cssm/components/Checkbox/Checkbox.js +2 -1
  225. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  226. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js +4 -2
  227. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -1
  228. package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +11 -2
  229. package/dist/cssm/components/ChipsInputBase/Chip/Chip.js +6 -2
  230. package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
  231. package/dist/cssm/components/ChipsInputBase/Chip/Chip.module.css +8 -1
  232. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +21 -1
  233. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  234. package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
  235. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -4
  236. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  237. package/dist/cssm/components/ContentBadge/ContentBadge.js +14 -8
  238. package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
  239. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  240. package/dist/cssm/components/CustomSelect/CustomSelect.js +154 -421
  241. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  242. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js +22 -4
  243. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
  244. package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -0
  245. package/dist/cssm/components/CustomSelect/helpers.js +62 -0
  246. package/dist/cssm/components/CustomSelect/helpers.js.map +1 -0
  247. package/dist/cssm/components/CustomSelect/hooks/useAfterItems.js +58 -0
  248. package/dist/cssm/components/CustomSelect/hooks/useAfterItems.js.map +1 -0
  249. package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js +60 -0
  250. package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -0
  251. package/dist/cssm/components/CustomSelect/hooks/useFocusedOptionController.js +52 -0
  252. package/dist/cssm/components/CustomSelect/hooks/useFocusedOptionController.js.map +1 -0
  253. package/dist/cssm/components/CustomSelect/hooks/useInputKeyboardController.js +78 -0
  254. package/dist/cssm/components/CustomSelect/hooks/useInputKeyboardController.js.map +1 -0
  255. package/dist/cssm/components/CustomSelect/hooks/useInputValueController.js +43 -0
  256. package/dist/cssm/components/CustomSelect/hooks/useInputValueController.js.map +1 -0
  257. package/dist/cssm/components/CustomSelect/hooks/useScrollListController.js +37 -0
  258. package/dist/cssm/components/CustomSelect/hooks/useScrollListController.js.map +1 -0
  259. package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js +81 -0
  260. package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -0
  261. package/dist/cssm/components/CustomSelect/types.js +3 -0
  262. package/dist/cssm/components/CustomSelect/types.js.map +1 -0
  263. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -0
  264. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  265. package/dist/cssm/components/DateInput/DateInput.js +3 -2
  266. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  267. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -4
  268. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  269. package/dist/cssm/components/ModalCard/ModalCard.js +2 -1
  270. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  271. package/dist/cssm/components/ModalCard/ModalCardInternal.js +3 -2
  272. package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
  273. package/dist/cssm/components/ModalCard/types.js.map +1 -1
  274. package/dist/cssm/components/ModalOutlet/ModalOutlet.js +2 -2
  275. package/dist/cssm/components/ModalOutlet/ModalOutlet.js.map +1 -1
  276. package/dist/cssm/components/ModalOutlet/ModalOutlet.module.css +4 -0
  277. package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +1 -1
  278. package/dist/cssm/components/ModalPage/ModalPage.js +2 -1
  279. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  280. package/dist/cssm/components/ModalPage/ModalPage.module.css +1 -0
  281. package/dist/cssm/components/ModalPage/ModalPageInternal.js +3 -2
  282. package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
  283. package/dist/cssm/components/ModalPage/types.js.map +1 -1
  284. package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -2
  285. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  286. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  287. package/dist/cssm/components/ModalRoot/useModalManager.js +2 -1
  288. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  289. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +3 -2
  290. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  291. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  292. package/dist/cssm/components/Popover/usePopover.js +2 -1
  293. package/dist/cssm/components/Popover/usePopover.js.map +1 -1
  294. package/dist/cssm/components/Popper/Popper.js +2 -1
  295. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  296. package/dist/cssm/components/Select/Select.js +1 -1
  297. package/dist/cssm/components/Select/Select.js.map +1 -1
  298. package/dist/cssm/components/SelectionControl/SelectionControl.js +16 -6
  299. package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -1
  300. package/dist/cssm/components/SelectionControl/SelectionControl.module.css +6 -3
  301. package/dist/cssm/components/SelectionControl/SelectionControlContext.js +7 -0
  302. package/dist/cssm/components/SelectionControl/SelectionControlContext.js.map +1 -0
  303. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +3 -1
  304. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
  305. package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +6 -3
  306. package/dist/cssm/components/SimpleCell/SimpleCell.js +29 -8
  307. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  308. package/dist/cssm/components/Skeleton/Skeleton.js +1 -1
  309. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  310. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.module.css +2 -1
  311. package/dist/cssm/components/Tabs/Tabs.js +19 -9
  312. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  313. package/dist/cssm/components/Tabs/TabsController.js.map +1 -1
  314. package/dist/cssm/components/Tabs/TabsControllerContext.js +4 -0
  315. package/dist/cssm/components/Tabs/TabsControllerContext.js.map +1 -0
  316. package/dist/cssm/components/Tabs/TabsModeContext.js +1 -2
  317. package/dist/cssm/components/Tabs/TabsModeContext.js.map +1 -1
  318. package/dist/cssm/components/TabsItem/TabsItem.js +3 -1
  319. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  320. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  321. package/dist/cssm/components/Tooltip/useTooltip.js +2 -1
  322. package/dist/cssm/components/Tooltip/useTooltip.js.map +1 -1
  323. package/dist/cssm/components/Typography/Caption/Caption.js +4 -1
  324. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  325. package/dist/cssm/components/Typography/Footnote/Footnote.js +4 -1
  326. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  327. package/dist/cssm/components/Typography/Typography.js +7 -1
  328. package/dist/cssm/components/Typography/Typography.js.map +1 -1
  329. package/dist/cssm/components/View/View.js +2 -1
  330. package/dist/cssm/components/View/View.js.map +1 -1
  331. package/dist/cssm/components/View/View.module.css +1 -1
  332. package/dist/cssm/components/View/ViewInfinite.js +2 -1
  333. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  334. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +0 -2
  335. package/dist/cssm/hooks/useCalendar.js +6 -4
  336. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  337. package/dist/cssm/hooks/useFloatingElement.js +3 -2
  338. package/dist/cssm/hooks/useFloatingElement.js.map +1 -1
  339. package/dist/cssm/hooks/useTodayDate.js +3 -2
  340. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  341. package/dist/cssm/index.js.map +1 -1
  342. package/dist/cssm/lib/accessibility.js +8 -0
  343. package/dist/cssm/lib/accessibility.js.map +1 -1
  344. package/dist/cssm/lib/calendar.js +9 -7
  345. package/dist/cssm/lib/calendar.js.map +1 -1
  346. package/dist/cssm/lib/date.js +66 -3
  347. package/dist/cssm/lib/date.js.map +1 -1
  348. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +18 -8
  349. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  350. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  351. package/dist/cssm/lib/touch/UIPanGestureRecognizer.js +2 -2
  352. package/dist/cssm/lib/touch/UIPanGestureRecognizer.js.map +1 -1
  353. package/dist/cssm/lib/utils.js +1 -0
  354. package/dist/cssm/lib/utils.js.map +1 -1
  355. package/dist/cssm/styles/themes.css +1 -1
  356. package/dist/hooks/useCalendar.d.ts.map +1 -1
  357. package/dist/hooks/useCalendar.js +6 -4
  358. package/dist/hooks/useCalendar.js.map +1 -1
  359. package/dist/hooks/useFloatingElement.d.ts +1 -1
  360. package/dist/hooks/useFloatingElement.d.ts.map +1 -1
  361. package/dist/hooks/useFloatingElement.js +3 -2
  362. package/dist/hooks/useFloatingElement.js.map +1 -1
  363. package/dist/hooks/useTodayDate.d.ts.map +1 -1
  364. package/dist/hooks/useTodayDate.js +3 -2
  365. package/dist/hooks/useTodayDate.js.map +1 -1
  366. package/dist/index.d.ts +4 -2
  367. package/dist/index.d.ts.map +1 -1
  368. package/dist/index.js.map +1 -1
  369. package/dist/lib/accessibility.d.ts +1 -1
  370. package/dist/lib/accessibility.d.ts.map +1 -1
  371. package/dist/lib/accessibility.js +8 -0
  372. package/dist/lib/accessibility.js.map +1 -1
  373. package/dist/lib/calendar.d.ts.map +1 -1
  374. package/dist/lib/calendar.js +9 -7
  375. package/dist/lib/calendar.js.map +1 -1
  376. package/dist/lib/date.d.ts +31 -1
  377. package/dist/lib/date.d.ts.map +1 -1
  378. package/dist/lib/date.js +67 -3
  379. package/dist/lib/date.js.map +1 -1
  380. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +6 -1
  381. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
  382. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +18 -8
  383. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  384. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +2 -0
  385. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  386. package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  387. package/dist/lib/touch/UIPanGestureRecognizer.d.ts.map +1 -1
  388. package/dist/lib/touch/UIPanGestureRecognizer.js +2 -2
  389. package/dist/lib/touch/UIPanGestureRecognizer.js.map +1 -1
  390. package/dist/lib/utils.d.ts +1 -0
  391. package/dist/lib/utils.d.ts.map +1 -1
  392. package/dist/lib/utils.js +1 -0
  393. package/dist/lib/utils.js.map +1 -1
  394. package/dist/vkui.css +1 -1
  395. package/dist/vkui.css.map +1 -1
  396. package/package.json +6 -7
  397. package/src/components/Banner/Banner.module.css +1 -6
  398. package/src/components/Banner/Banner.module.css.d.ts.map +1 -1
  399. package/src/components/Calendar/Calendar.tsx +6 -6
  400. package/src/components/CalendarDays/CalendarDays.tsx +3 -3
  401. package/src/components/CalendarRange/CalendarRange.tsx +15 -20
  402. package/src/components/CalendarRange/utils.ts +7 -6
  403. package/src/components/Cell/Cell.tsx +3 -0
  404. package/src/components/Checkbox/Checkbox.tsx +6 -0
  405. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +7 -2
  406. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css.d.ts.map +1 -1
  407. package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.tsx +12 -3
  408. package/src/components/ChipsInputBase/Chip/Chip.module.css +8 -1
  409. package/src/components/ChipsInputBase/Chip/Chip.module.css.d.ts.map +1 -1
  410. package/src/components/ChipsInputBase/Chip/Chip.tsx +55 -1
  411. package/src/components/ChipsInputBase/ChipsInputBase.tsx +26 -4
  412. package/src/components/ChipsInputBase/types.ts +2 -45
  413. package/src/components/ChipsSelect/ChipsSelect.tsx +2 -4
  414. package/src/components/ContentBadge/ContentBadge.tsx +18 -12
  415. package/src/components/ContentCard/ContentCard.tsx +1 -1
  416. package/src/components/CustomSelect/CustomSelect.tsx +216 -562
  417. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -0
  418. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css.d.ts.map +1 -1
  419. package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.tsx +25 -2
  420. package/src/components/CustomSelect/helpers.ts +103 -0
  421. package/src/components/CustomSelect/hooks/useAfterItems.tsx +89 -0
  422. package/src/components/CustomSelect/hooks/useDropdownOpenedController.ts +61 -0
  423. package/src/components/CustomSelect/hooks/useFocusedOptionController.ts +86 -0
  424. package/src/components/CustomSelect/hooks/useInputKeyboardController.ts +96 -0
  425. package/src/components/CustomSelect/hooks/useInputValueController.ts +58 -0
  426. package/src/components/CustomSelect/hooks/useScrollListController.ts +46 -0
  427. package/src/components/CustomSelect/hooks/useSelectedOptionController.ts +132 -0
  428. package/src/components/CustomSelect/types.ts +38 -0
  429. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -0
  430. package/src/components/DateInput/DateInput.tsx +9 -3
  431. package/src/components/DateRangeInput/DateRangeInput.tsx +9 -6
  432. package/src/components/ModalCard/ModalCard.tsx +2 -0
  433. package/src/components/ModalCard/ModalCardInternal.tsx +8 -2
  434. package/src/components/ModalCard/types.ts +6 -0
  435. package/src/components/ModalOutlet/ModalOutlet.module.css +4 -0
  436. package/src/components/ModalOutlet/ModalOutlet.module.css.d.ts.map +1 -1
  437. package/src/components/ModalOutlet/ModalOutlet.tsx +8 -1
  438. package/src/components/ModalOverlay/ModalOverlay.module.css +1 -1
  439. package/src/components/ModalPage/ModalPage.module.css +1 -0
  440. package/src/components/ModalPage/ModalPage.module.css.d.ts.map +1 -1
  441. package/src/components/ModalPage/ModalPage.tsx +2 -0
  442. package/src/components/ModalPage/ModalPageInternal.tsx +8 -2
  443. package/src/components/ModalPage/types.ts +6 -0
  444. package/src/components/ModalRoot/ModalRoot.tsx +19 -6
  445. package/src/components/ModalRoot/types.ts +5 -0
  446. package/src/components/ModalRoot/useModalManager.tsx +4 -0
  447. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +3 -0
  448. package/src/components/Popover/Popover.tsx +1 -0
  449. package/src/components/Popover/usePopover.tsx +2 -0
  450. package/src/components/Popper/Popper.tsx +3 -0
  451. package/src/components/Select/Select.tsx +5 -5
  452. package/src/components/SelectionControl/SelectionControl.module.css +6 -3
  453. package/src/components/SelectionControl/SelectionControl.module.css.d.ts.map +1 -1
  454. package/src/components/SelectionControl/SelectionControl.tsx +30 -8
  455. package/src/components/SelectionControl/SelectionControlContext.ts +7 -0
  456. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +6 -3
  457. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css.d.ts.map +1 -1
  458. package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.tsx +7 -1
  459. package/src/components/SimpleCell/SimpleCell.tsx +5 -0
  460. package/src/components/Skeleton/Skeleton.tsx +1 -1
  461. package/src/components/Slider/SliderThumb/SliderThumb.module.css +1 -1
  462. package/src/components/Tabs/Tabs.tsx +16 -12
  463. package/src/components/Tabs/TabsController.ts +2 -2
  464. package/src/components/Tabs/TabsControllerContext.ts +7 -0
  465. package/src/components/Tabs/TabsModeContext.ts +0 -3
  466. package/src/components/TabsItem/TabsItem.tsx +5 -9
  467. package/src/components/Tooltip/Tooltip.tsx +1 -0
  468. package/src/components/Tooltip/useTooltip.tsx +2 -0
  469. package/src/components/Typography/Caption/Caption.tsx +14 -6
  470. package/src/components/Typography/Footnote/Footnote.tsx +10 -6
  471. package/src/components/Typography/Typography.tsx +9 -2
  472. package/src/components/View/View.module.css +1 -1
  473. package/src/components/View/View.tsx +2 -1
  474. package/src/components/View/ViewInfinite.tsx +2 -1
  475. package/src/components/VisuallyHidden/VisuallyHidden.module.css +0 -2
  476. package/src/components/VisuallyHidden/VisuallyHidden.module.css.d.ts.map +1 -1
  477. package/src/hooks/useCalendar.ts +6 -4
  478. package/src/hooks/useFloatingElement.tsx +2 -0
  479. package/src/hooks/useTodayDate.ts +3 -2
  480. package/src/index.ts +5 -3
  481. package/src/lib/accessibility.ts +4 -0
  482. package/src/lib/calendar.ts +8 -12
  483. package/src/lib/date.ts +82 -3
  484. package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +23 -10
  485. package/src/lib/floating/useFloatingWithInteractions/types.ts +2 -0
  486. package/src/lib/touch/UIPanGestureRecognizer.ts +2 -2
  487. package/src/lib/utils.ts +3 -0
@@ -5,7 +5,7 @@ import { useReferenceHiddenChangeCallback } from "../lib/floating/useReferenceHi
5
5
  import { useExternRef } from "./useExternRef.js";
6
6
  import { useGlobalEscKeyDown } from "./useGlobalEscKeyDown.js";
7
7
  export const useFloatingElement = ({ // useFloatingMiddlewaresBootstrap
8
- placement = 'bottom-start', arrow, arrowHeight, arrowPadding, sameWidth, offsetByMainAxis = 0, offsetByCrossAxis = 0, customMiddlewares, hideWhenReferenceHidden, disableFlipMiddleware = false, // useFloatingWithInteractions
8
+ placement = 'bottom-start', arrow, arrowHeight, arrowPadding, sameWidth, offsetByMainAxis = 0, offsetByCrossAxis = 0, customMiddlewares, hideWhenReferenceHidden, disableFlipMiddleware = false, disableShiftMiddleware = false, // useFloatingWithInteractions
9
9
  trigger, hoverDelay, closeAfterClick, disabled, disableInteractive, disableCloseOnClickOutside, disableCloseOnEscKey, defaultShown, shown: shownProp, onShownChange, onShownChanged, strategy, onReferenceHiddenChange, onPlacementChange, renderFloatingComponent, externalFloatingElementRef, remapReferenceProps })=>{
10
10
  const [arrowRef, setArrowRef] = React.useState(null);
11
11
  const { middlewares, strictPlacement } = useFloatingMiddlewaresBootstrap({
@@ -19,7 +19,8 @@ trigger, hoverDelay, closeAfterClick, disabled, disableInteractive, disableClose
19
19
  arrowRef,
20
20
  arrowPadding,
21
21
  arrowHeight,
22
- disableFlipMiddleware
22
+ disableFlipMiddleware,
23
+ disableShiftMiddleware
23
24
  });
24
25
  const { placement: resolvedPlacement, shown, willBeHide, refs, referenceProps, floatingProps, middlewareData, onClose, onRestoreFocus, onEscapeKeyDown } = useFloatingWithInteractions({
25
26
  middlewares,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useFloatingElement.tsx"],"sourcesContent":["import * as React from 'react';\nimport { type Ref, useMemo } from 'react';\nimport {\n type OnPlacementChange,\n useFloatingMiddlewaresBootstrap,\n type UseFloatingMiddlewaresBootstrapOptions,\n useFloatingWithInteractions,\n type UseFloatingWithInteractionsProps,\n type UseFloatingWithInteractionsReturn,\n usePlacementChangeCallback,\n} from '../lib/floating';\nimport { type ReferenceProps } from '../lib/floating/useFloatingWithInteractions/types';\nimport { useReferenceHiddenChangeCallback } from '../lib/floating/useReferenceHiddenChangeCallback';\nimport { useExternRef } from './useExternRef';\nimport { useGlobalEscKeyDown } from './useGlobalEscKeyDown';\n\nexport type FloatingComponentProps<FloatingElement extends HTMLElement = HTMLElement> = Pick<\n UseFloatingWithInteractionsReturn,\n | 'shown'\n | 'willBeHide'\n | 'floatingProps'\n | 'middlewareData'\n | 'onClose'\n | 'onRestoreFocus'\n | 'placement'\n> & {\n floatingRef: React.Ref<FloatingElement>;\n setArrowRef: React.Dispatch<React.SetStateAction<HTMLDivElement | null>>;\n};\n\nexport type RenderFloatingComponentFn<FloatingElement extends HTMLElement = HTMLElement> = (\n props: FloatingComponentProps<FloatingElement>,\n) => React.ReactNode | null;\n\nexport type RemapReferencePropsFn<ReferenceElement extends HTMLElement = HTMLElement> = (\n props: ReferenceProps<ReferenceElement> & { shown: boolean },\n) => ReferenceProps<ReferenceElement>;\n\nexport type UseFloatingElementProps<\n FloatingElement extends HTMLElement = HTMLElement,\n ReferenceElement extends HTMLElement = HTMLElement,\n> = Omit<UseFloatingMiddlewaresBootstrapOptions, 'arrowRef'> &\n Omit<UseFloatingWithInteractionsProps, 'placement'> & {\n onPlacementChange?: OnPlacementChange;\n onReferenceHiddenChange?: (hidden: boolean) => void;\n renderFloatingComponent: RenderFloatingComponentFn<FloatingElement>;\n remapReferenceProps?: RemapReferencePropsFn<ReferenceElement>;\n externalFloatingElementRef?: React.Ref<FloatingElement>;\n };\n\nexport type UseFloatingResult<ReferenceElement extends HTMLElement = HTMLElement> = {\n anchorRef: Ref<ReferenceElement>;\n anchorProps: ReferenceProps<ReferenceElement>;\n component: React.ReactNode | null;\n};\n\nexport const useFloatingElement = <\n ReferenceElement extends HTMLElement = HTMLElement,\n FloatingElement extends HTMLElement = HTMLElement,\n>({\n // useFloatingMiddlewaresBootstrap\n placement = 'bottom-start',\n arrow,\n arrowHeight,\n arrowPadding,\n sameWidth,\n offsetByMainAxis = 0,\n offsetByCrossAxis = 0,\n customMiddlewares,\n hideWhenReferenceHidden,\n disableFlipMiddleware = false,\n\n // useFloatingWithInteractions\n trigger,\n hoverDelay,\n closeAfterClick,\n disabled,\n disableInteractive,\n disableCloseOnClickOutside,\n disableCloseOnEscKey,\n defaultShown,\n shown: shownProp,\n onShownChange,\n onShownChanged,\n strategy,\n onReferenceHiddenChange,\n\n onPlacementChange,\n\n renderFloatingComponent,\n externalFloatingElementRef,\n remapReferenceProps,\n}: UseFloatingElementProps<\n FloatingElement,\n ReferenceElement\n>): UseFloatingResult<ReferenceElement> => {\n const [arrowRef, setArrowRef] = React.useState<HTMLDivElement | null>(null);\n\n const { middlewares, strictPlacement } = useFloatingMiddlewaresBootstrap({\n placement,\n offsetByMainAxis,\n offsetByCrossAxis,\n customMiddlewares,\n hideWhenReferenceHidden,\n sameWidth,\n arrow,\n arrowRef,\n arrowPadding,\n arrowHeight,\n disableFlipMiddleware,\n });\n\n const {\n placement: resolvedPlacement,\n shown,\n willBeHide,\n refs,\n referenceProps,\n floatingProps,\n middlewareData,\n onClose,\n onRestoreFocus,\n onEscapeKeyDown,\n } = useFloatingWithInteractions({\n middlewares,\n strategy,\n placement: strictPlacement,\n trigger,\n hoverDelay,\n closeAfterClick,\n disabled,\n disableInteractive,\n disableCloseOnClickOutside,\n disableCloseOnEscKey,\n defaultShown,\n shown: shownProp,\n onShownChange,\n onShownChanged,\n });\n\n const resultRef = useExternRef<FloatingElement>(externalFloatingElementRef, refs.setFloating);\n\n usePlacementChangeCallback(placement, resolvedPlacement, onPlacementChange);\n\n useReferenceHiddenChangeCallback(middlewareData.hide, onReferenceHiddenChange);\n\n const component = renderFloatingComponent({\n shown,\n willBeHide,\n floatingProps,\n floatingRef: resultRef,\n middlewareData,\n placement: resolvedPlacement,\n onClose,\n onRestoreFocus,\n setArrowRef,\n });\n\n useGlobalEscKeyDown(shown, onEscapeKeyDown);\n\n const remappedReferenceProps = useMemo(\n () =>\n remapReferenceProps ? remapReferenceProps({ ...referenceProps, shown }) : referenceProps,\n [remapReferenceProps, shown, referenceProps],\n );\n\n return {\n anchorRef: refs.setReference,\n anchorProps: remappedReferenceProps,\n component,\n };\n};\n"],"names":["React","useMemo","useFloatingMiddlewaresBootstrap","useFloatingWithInteractions","usePlacementChangeCallback","useReferenceHiddenChangeCallback","useExternRef","useGlobalEscKeyDown","useFloatingElement","placement","arrow","arrowHeight","arrowPadding","sameWidth","offsetByMainAxis","offsetByCrossAxis","customMiddlewares","hideWhenReferenceHidden","disableFlipMiddleware","trigger","hoverDelay","closeAfterClick","disabled","disableInteractive","disableCloseOnClickOutside","disableCloseOnEscKey","defaultShown","shown","shownProp","onShownChange","onShownChanged","strategy","onReferenceHiddenChange","onPlacementChange","renderFloatingComponent","externalFloatingElementRef","remapReferenceProps","arrowRef","setArrowRef","useState","middlewares","strictPlacement","resolvedPlacement","willBeHide","refs","referenceProps","floatingProps","middlewareData","onClose","onRestoreFocus","onEscapeKeyDown","resultRef","setFloating","hide","component","floatingRef","remappedReferenceProps","anchorRef","setReference","anchorProps"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAAmBC,OAAO,QAAQ,QAAQ;AAC1C,SAEEC,+BAA+B,EAE/BC,2BAA2B,EAG3BC,0BAA0B,QACrB,2BAAkB;AAEzB,SAASC,gCAAgC,QAAQ,sDAAmD;AACpG,SAASC,YAAY,QAAQ,oBAAiB;AAC9C,SAASC,mBAAmB,QAAQ,2BAAwB;AA0C5D,OAAO,MAAMC,qBAAqB,CAGhC,EACA,kCAAkC;AAClCC,YAAY,cAAc,EAC1BC,KAAK,EACLC,WAAW,EACXC,YAAY,EACZC,SAAS,EACTC,mBAAmB,CAAC,EACpBC,oBAAoB,CAAC,EACrBC,iBAAiB,EACjBC,uBAAuB,EACvBC,wBAAwB,KAAK,EAE7B,8BAA8B;AAC9BC,OAAO,EACPC,UAAU,EACVC,eAAe,EACfC,QAAQ,EACRC,kBAAkB,EAClBC,0BAA0B,EAC1BC,oBAAoB,EACpBC,YAAY,EACZC,OAAOC,SAAS,EAChBC,aAAa,EACbC,cAAc,EACdC,QAAQ,EACRC,uBAAuB,EAEvBC,iBAAiB,EAEjBC,uBAAuB,EACvBC,0BAA0B,EAC1BC,mBAAmB,EAIpB;IACC,MAAM,CAACC,UAAUC,YAAY,GAAGtC,MAAMuC,QAAQ,CAAwB;IAEtE,MAAM,EAAEC,WAAW,EAAEC,eAAe,EAAE,GAAGvC,gCAAgC;QACvEO;QACAK;QACAC;QACAC;QACAC;QACAJ;QACAH;QACA2B;QACAzB;QACAD;QACAO;IACF;IAEA,MAAM,EACJT,WAAWiC,iBAAiB,EAC5Bf,KAAK,EACLgB,UAAU,EACVC,IAAI,EACJC,cAAc,EACdC,aAAa,EACbC,cAAc,EACdC,OAAO,EACPC,cAAc,EACdC,eAAe,EAChB,GAAG/C,4BAA4B;QAC9BqC;QACAT;QACAtB,WAAWgC;QACXtB;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC,OAAOC;QACPC;QACAC;IACF;IAEA,MAAMqB,YAAY7C,aAA8B6B,4BAA4BS,KAAKQ,WAAW;IAE5FhD,2BAA2BK,WAAWiC,mBAAmBT;IAEzD5B,iCAAiC0C,eAAeM,IAAI,EAAErB;IAEtD,MAAMsB,YAAYpB,wBAAwB;QACxCP;QACAgB;QACAG;QACAS,aAAaJ;QACbJ;QACAtC,WAAWiC;QACXM;QACAC;QACAX;IACF;IAEA/B,oBAAoBoB,OAAOuB;IAE3B,MAAMM,yBAAyBvD,QAC7B,IACEmC,sBAAsBA,oBAAoB;YAAE,GAAGS,cAAc;YAAElB;QAAM,KAAKkB,gBAC5E;QAACT;QAAqBT;QAAOkB;KAAe;IAG9C,OAAO;QACLY,WAAWb,KAAKc,YAAY;QAC5BC,aAAaH;QACbF;IACF;AACF,EAAE"}
1
+ {"version":3,"sources":["../../../src/hooks/useFloatingElement.tsx"],"sourcesContent":["import * as React from 'react';\nimport { type Ref, useMemo } from 'react';\nimport {\n type OnPlacementChange,\n useFloatingMiddlewaresBootstrap,\n type UseFloatingMiddlewaresBootstrapOptions,\n useFloatingWithInteractions,\n type UseFloatingWithInteractionsProps,\n type UseFloatingWithInteractionsReturn,\n usePlacementChangeCallback,\n} from '../lib/floating';\nimport { type ReferenceProps } from '../lib/floating/useFloatingWithInteractions/types';\nimport { useReferenceHiddenChangeCallback } from '../lib/floating/useReferenceHiddenChangeCallback';\nimport { useExternRef } from './useExternRef';\nimport { useGlobalEscKeyDown } from './useGlobalEscKeyDown';\n\nexport type FloatingComponentProps<FloatingElement extends HTMLElement = HTMLElement> = Pick<\n UseFloatingWithInteractionsReturn,\n | 'shown'\n | 'willBeHide'\n | 'floatingProps'\n | 'middlewareData'\n | 'onClose'\n | 'onRestoreFocus'\n | 'placement'\n> & {\n floatingRef: React.Ref<FloatingElement>;\n setArrowRef: React.Dispatch<React.SetStateAction<HTMLDivElement | null>>;\n};\n\nexport type RenderFloatingComponentFn<FloatingElement extends HTMLElement = HTMLElement> = (\n props: FloatingComponentProps<FloatingElement>,\n) => React.ReactNode | null;\n\nexport type RemapReferencePropsFn<ReferenceElement extends HTMLElement = HTMLElement> = (\n props: ReferenceProps<ReferenceElement> & { shown: boolean },\n) => ReferenceProps<ReferenceElement>;\n\nexport type UseFloatingElementProps<\n FloatingElement extends HTMLElement = HTMLElement,\n ReferenceElement extends HTMLElement = HTMLElement,\n> = Omit<UseFloatingMiddlewaresBootstrapOptions, 'arrowRef'> &\n Omit<UseFloatingWithInteractionsProps, 'placement'> & {\n onPlacementChange?: OnPlacementChange;\n onReferenceHiddenChange?: (hidden: boolean) => void;\n renderFloatingComponent: RenderFloatingComponentFn<FloatingElement>;\n remapReferenceProps?: RemapReferencePropsFn<ReferenceElement>;\n externalFloatingElementRef?: React.Ref<FloatingElement>;\n };\n\nexport type UseFloatingResult<ReferenceElement extends HTMLElement = HTMLElement> = {\n anchorRef: Ref<ReferenceElement>;\n anchorProps: ReferenceProps<ReferenceElement>;\n component: React.ReactNode | null;\n};\n\nexport const useFloatingElement = <\n ReferenceElement extends HTMLElement = HTMLElement,\n FloatingElement extends HTMLElement = HTMLElement,\n>({\n // useFloatingMiddlewaresBootstrap\n placement = 'bottom-start',\n arrow,\n arrowHeight,\n arrowPadding,\n sameWidth,\n offsetByMainAxis = 0,\n offsetByCrossAxis = 0,\n customMiddlewares,\n hideWhenReferenceHidden,\n disableFlipMiddleware = false,\n disableShiftMiddleware = false,\n\n // useFloatingWithInteractions\n trigger,\n hoverDelay,\n closeAfterClick,\n disabled,\n disableInteractive,\n disableCloseOnClickOutside,\n disableCloseOnEscKey,\n defaultShown,\n shown: shownProp,\n onShownChange,\n onShownChanged,\n strategy,\n onReferenceHiddenChange,\n\n onPlacementChange,\n\n renderFloatingComponent,\n externalFloatingElementRef,\n remapReferenceProps,\n}: UseFloatingElementProps<\n FloatingElement,\n ReferenceElement\n>): UseFloatingResult<ReferenceElement> => {\n const [arrowRef, setArrowRef] = React.useState<HTMLDivElement | null>(null);\n\n const { middlewares, strictPlacement } = useFloatingMiddlewaresBootstrap({\n placement,\n offsetByMainAxis,\n offsetByCrossAxis,\n customMiddlewares,\n hideWhenReferenceHidden,\n sameWidth,\n arrow,\n arrowRef,\n arrowPadding,\n arrowHeight,\n disableFlipMiddleware,\n disableShiftMiddleware,\n });\n\n const {\n placement: resolvedPlacement,\n shown,\n willBeHide,\n refs,\n referenceProps,\n floatingProps,\n middlewareData,\n onClose,\n onRestoreFocus,\n onEscapeKeyDown,\n } = useFloatingWithInteractions({\n middlewares,\n strategy,\n placement: strictPlacement,\n trigger,\n hoverDelay,\n closeAfterClick,\n disabled,\n disableInteractive,\n disableCloseOnClickOutside,\n disableCloseOnEscKey,\n defaultShown,\n shown: shownProp,\n onShownChange,\n onShownChanged,\n });\n\n const resultRef = useExternRef<FloatingElement>(externalFloatingElementRef, refs.setFloating);\n\n usePlacementChangeCallback(placement, resolvedPlacement, onPlacementChange);\n\n useReferenceHiddenChangeCallback(middlewareData.hide, onReferenceHiddenChange);\n\n const component = renderFloatingComponent({\n shown,\n willBeHide,\n floatingProps,\n floatingRef: resultRef,\n middlewareData,\n placement: resolvedPlacement,\n onClose,\n onRestoreFocus,\n setArrowRef,\n });\n\n useGlobalEscKeyDown(shown, onEscapeKeyDown);\n\n const remappedReferenceProps = useMemo(\n () =>\n remapReferenceProps ? remapReferenceProps({ ...referenceProps, shown }) : referenceProps,\n [remapReferenceProps, shown, referenceProps],\n );\n\n return {\n anchorRef: refs.setReference,\n anchorProps: remappedReferenceProps,\n component,\n };\n};\n"],"names":["React","useMemo","useFloatingMiddlewaresBootstrap","useFloatingWithInteractions","usePlacementChangeCallback","useReferenceHiddenChangeCallback","useExternRef","useGlobalEscKeyDown","useFloatingElement","placement","arrow","arrowHeight","arrowPadding","sameWidth","offsetByMainAxis","offsetByCrossAxis","customMiddlewares","hideWhenReferenceHidden","disableFlipMiddleware","disableShiftMiddleware","trigger","hoverDelay","closeAfterClick","disabled","disableInteractive","disableCloseOnClickOutside","disableCloseOnEscKey","defaultShown","shown","shownProp","onShownChange","onShownChanged","strategy","onReferenceHiddenChange","onPlacementChange","renderFloatingComponent","externalFloatingElementRef","remapReferenceProps","arrowRef","setArrowRef","useState","middlewares","strictPlacement","resolvedPlacement","willBeHide","refs","referenceProps","floatingProps","middlewareData","onClose","onRestoreFocus","onEscapeKeyDown","resultRef","setFloating","hide","component","floatingRef","remappedReferenceProps","anchorRef","setReference","anchorProps"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAAmBC,OAAO,QAAQ,QAAQ;AAC1C,SAEEC,+BAA+B,EAE/BC,2BAA2B,EAG3BC,0BAA0B,QACrB,2BAAkB;AAEzB,SAASC,gCAAgC,QAAQ,sDAAmD;AACpG,SAASC,YAAY,QAAQ,oBAAiB;AAC9C,SAASC,mBAAmB,QAAQ,2BAAwB;AA0C5D,OAAO,MAAMC,qBAAqB,CAGhC,EACA,kCAAkC;AAClCC,YAAY,cAAc,EAC1BC,KAAK,EACLC,WAAW,EACXC,YAAY,EACZC,SAAS,EACTC,mBAAmB,CAAC,EACpBC,oBAAoB,CAAC,EACrBC,iBAAiB,EACjBC,uBAAuB,EACvBC,wBAAwB,KAAK,EAC7BC,yBAAyB,KAAK,EAE9B,8BAA8B;AAC9BC,OAAO,EACPC,UAAU,EACVC,eAAe,EACfC,QAAQ,EACRC,kBAAkB,EAClBC,0BAA0B,EAC1BC,oBAAoB,EACpBC,YAAY,EACZC,OAAOC,SAAS,EAChBC,aAAa,EACbC,cAAc,EACdC,QAAQ,EACRC,uBAAuB,EAEvBC,iBAAiB,EAEjBC,uBAAuB,EACvBC,0BAA0B,EAC1BC,mBAAmB,EAIpB;IACC,MAAM,CAACC,UAAUC,YAAY,GAAGvC,MAAMwC,QAAQ,CAAwB;IAEtE,MAAM,EAAEC,WAAW,EAAEC,eAAe,EAAE,GAAGxC,gCAAgC;QACvEO;QACAK;QACAC;QACAC;QACAC;QACAJ;QACAH;QACA4B;QACA1B;QACAD;QACAO;QACAC;IACF;IAEA,MAAM,EACJV,WAAWkC,iBAAiB,EAC5Bf,KAAK,EACLgB,UAAU,EACVC,IAAI,EACJC,cAAc,EACdC,aAAa,EACbC,cAAc,EACdC,OAAO,EACPC,cAAc,EACdC,eAAe,EAChB,GAAGhD,4BAA4B;QAC9BsC;QACAT;QACAvB,WAAWiC;QACXtB;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC,OAAOC;QACPC;QACAC;IACF;IAEA,MAAMqB,YAAY9C,aAA8B8B,4BAA4BS,KAAKQ,WAAW;IAE5FjD,2BAA2BK,WAAWkC,mBAAmBT;IAEzD7B,iCAAiC2C,eAAeM,IAAI,EAAErB;IAEtD,MAAMsB,YAAYpB,wBAAwB;QACxCP;QACAgB;QACAG;QACAS,aAAaJ;QACbJ;QACAvC,WAAWkC;QACXM;QACAC;QACAX;IACF;IAEAhC,oBAAoBqB,OAAOuB;IAE3B,MAAMM,yBAAyBxD,QAC7B,IACEoC,sBAAsBA,oBAAoB;YAAE,GAAGS,cAAc;YAAElB;QAAM,KAAKkB,gBAC5E;QAACT;QAAqBT;QAAOkB;KAAe;IAG9C,OAAO;QACLY,WAAWb,KAAKc,YAAY;QAC5BC,aAAaH;QACbF;IACF;AACF,EAAE"}
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
- import { differenceInMilliseconds, isSameDay, startOfTomorrow } from "date-fns";
2
+ import { isSameDate } from "@vkontakte/vkjs";
3
+ import { differenceInMilliseconds, startOfTomorrow } from "date-fns";
3
4
  import { useDOM } from "../lib/dom.js";
4
5
  /**
5
6
  * Опционально обновляемая дата сегодняшнего дня
@@ -28,7 +29,7 @@ import { useDOM } from "../lib/dom.js";
28
29
  setTodayDate(new Date());
29
30
  }, timeToDayChange);
30
31
  // Если todayDate не обновился в таймаут - обновить при заходе на вкладку
31
- if (!isSameDay(todayDate, now)) {
32
+ if (!isSameDate(todayDate, now)) {
32
33
  setTodayDate(now);
33
34
  }
34
35
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useTodayDate.ts"],"sourcesContent":["import * as React from 'react';\nimport { differenceInMilliseconds, isSameDay, startOfTomorrow } from 'date-fns';\nimport { useDOM } from '../lib/dom';\n\n/**\n * Опционально обновляемая дата сегодняшнего дня\n *\n * Дата - сегодня (в соответствии с системным временем)\n *\n * Часы, минуты, секунды, миллисекунды - произвольные\n *\n * @param listenDayChangesForUpdate - флаг по которому определяется, будет ли создаваться подписка на смену календарного дня\n */\nexport function useTodayDate(listenDayChangesForUpdate = false): Date {\n const { document, window } = useDOM();\n const [todayDate, setTodayDate] = React.useState(() => new Date());\n\n React.useEffect(\n function setupTodaysDateRecalculationListener() {\n if (!listenDayChangesForUpdate || !document || !window) {\n return;\n }\n\n let timeout: number | undefined = undefined;\n\n const recalcTimeout = () => {\n if (document.visibilityState === 'visible') {\n const now = new Date();\n\n const timeToDayChange = differenceInMilliseconds(startOfTomorrow(), now);\n\n // Удаляем старый таймаут\n window.clearTimeout(timeout);\n\n // Создаем новый таймаут\n timeout = window.setTimeout(() => {\n setTodayDate(new Date());\n }, timeToDayChange);\n\n // Если todayDate не обновился в таймаут - обновить при заходе на вкладку\n if (!isSameDay(todayDate, now)) {\n setTodayDate(now);\n }\n }\n };\n\n recalcTimeout();\n\n // Создаем слушатель visibilitychange, чтобы предотвратить пропуск обновления стейта после заморозки вкладки\n // Если человек ее долго не трогал или закрывал крышку ноута и тп\n // https://developer.chrome.com/blog/page-lifecycle-api/\n document.addEventListener('visibilitychange', recalcTimeout);\n\n return () => {\n window.clearTimeout(timeout);\n document.removeEventListener('visibilitychange', recalcTimeout);\n };\n },\n [document, listenDayChangesForUpdate, todayDate, window],\n );\n\n return todayDate;\n}\n"],"names":["React","differenceInMilliseconds","isSameDay","startOfTomorrow","useDOM","useTodayDate","listenDayChangesForUpdate","document","window","todayDate","setTodayDate","useState","Date","useEffect","setupTodaysDateRecalculationListener","timeout","undefined","recalcTimeout","visibilityState","now","timeToDayChange","clearTimeout","setTimeout","addEventListener","removeEventListener"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,wBAAwB,EAAEC,SAAS,EAAEC,eAAe,QAAQ,WAAW;AAChF,SAASC,MAAM,QAAQ,gBAAa;AAEpC;;;;;;;;CAQC,GACD,OAAO,SAASC,aAAaC,4BAA4B,KAAK;IAC5D,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAGJ;IAC7B,MAAM,CAACK,WAAWC,aAAa,GAAGV,MAAMW,QAAQ,CAAC,IAAM,IAAIC;IAE3DZ,MAAMa,SAAS,CACb,SAASC;QACP,IAAI,CAACR,6BAA6B,CAACC,YAAY,CAACC,QAAQ;YACtD;QACF;QAEA,IAAIO,UAA8BC;QAElC,MAAMC,gBAAgB;YACpB,IAAIV,SAASW,eAAe,KAAK,WAAW;gBAC1C,MAAMC,MAAM,IAAIP;gBAEhB,MAAMQ,kBAAkBnB,yBAAyBE,mBAAmBgB;gBAEpE,yBAAyB;gBACzBX,OAAOa,YAAY,CAACN;gBAEpB,wBAAwB;gBACxBA,UAAUP,OAAOc,UAAU,CAAC;oBAC1BZ,aAAa,IAAIE;gBACnB,GAAGQ;gBAEH,yEAAyE;gBACzE,IAAI,CAAClB,UAAUO,WAAWU,MAAM;oBAC9BT,aAAaS;gBACf;YACF;QACF;QAEAF;QAEA,4GAA4G;QAC5G,iEAAiE;QACjE,wDAAwD;QACxDV,SAASgB,gBAAgB,CAAC,oBAAoBN;QAE9C,OAAO;YACLT,OAAOa,YAAY,CAACN;YACpBR,SAASiB,mBAAmB,CAAC,oBAAoBP;QACnD;IACF,GACA;QAACV;QAAUD;QAA2BG;QAAWD;KAAO;IAG1D,OAAOC;AACT"}
1
+ {"version":3,"sources":["../../../src/hooks/useTodayDate.ts"],"sourcesContent":["import * as React from 'react';\nimport { isSameDate } from '@vkontakte/vkjs';\nimport { differenceInMilliseconds, startOfTomorrow } from 'date-fns';\nimport { useDOM } from '../lib/dom';\n\n/**\n * Опционально обновляемая дата сегодняшнего дня\n *\n * Дата - сегодня (в соответствии с системным временем)\n *\n * Часы, минуты, секунды, миллисекунды - произвольные\n *\n * @param listenDayChangesForUpdate - флаг по которому определяется, будет ли создаваться подписка на смену календарного дня\n */\nexport function useTodayDate(listenDayChangesForUpdate = false): Date {\n const { document, window } = useDOM();\n const [todayDate, setTodayDate] = React.useState(() => new Date());\n\n React.useEffect(\n function setupTodaysDateRecalculationListener() {\n if (!listenDayChangesForUpdate || !document || !window) {\n return;\n }\n\n let timeout: number | undefined = undefined;\n\n const recalcTimeout = () => {\n if (document.visibilityState === 'visible') {\n const now = new Date();\n\n const timeToDayChange = differenceInMilliseconds(startOfTomorrow(), now);\n\n // Удаляем старый таймаут\n window.clearTimeout(timeout);\n\n // Создаем новый таймаут\n timeout = window.setTimeout(() => {\n setTodayDate(new Date());\n }, timeToDayChange);\n\n // Если todayDate не обновился в таймаут - обновить при заходе на вкладку\n if (!isSameDate(todayDate, now)) {\n setTodayDate(now);\n }\n }\n };\n\n recalcTimeout();\n\n // Создаем слушатель visibilitychange, чтобы предотвратить пропуск обновления стейта после заморозки вкладки\n // Если человек ее долго не трогал или закрывал крышку ноута и тп\n // https://developer.chrome.com/blog/page-lifecycle-api/\n document.addEventListener('visibilitychange', recalcTimeout);\n\n return () => {\n window.clearTimeout(timeout);\n document.removeEventListener('visibilitychange', recalcTimeout);\n };\n },\n [document, listenDayChangesForUpdate, todayDate, window],\n );\n\n return todayDate;\n}\n"],"names":["React","isSameDate","differenceInMilliseconds","startOfTomorrow","useDOM","useTodayDate","listenDayChangesForUpdate","document","window","todayDate","setTodayDate","useState","Date","useEffect","setupTodaysDateRecalculationListener","timeout","undefined","recalcTimeout","visibilityState","now","timeToDayChange","clearTimeout","setTimeout","addEventListener","removeEventListener"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,wBAAwB,EAAEC,eAAe,QAAQ,WAAW;AACrE,SAASC,MAAM,QAAQ,gBAAa;AAEpC;;;;;;;;CAQC,GACD,OAAO,SAASC,aAAaC,4BAA4B,KAAK;IAC5D,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAGJ;IAC7B,MAAM,CAACK,WAAWC,aAAa,GAAGV,MAAMW,QAAQ,CAAC,IAAM,IAAIC;IAE3DZ,MAAMa,SAAS,CACb,SAASC;QACP,IAAI,CAACR,6BAA6B,CAACC,YAAY,CAACC,QAAQ;YACtD;QACF;QAEA,IAAIO,UAA8BC;QAElC,MAAMC,gBAAgB;YACpB,IAAIV,SAASW,eAAe,KAAK,WAAW;gBAC1C,MAAMC,MAAM,IAAIP;gBAEhB,MAAMQ,kBAAkBlB,yBAAyBC,mBAAmBgB;gBAEpE,yBAAyB;gBACzBX,OAAOa,YAAY,CAACN;gBAEpB,wBAAwB;gBACxBA,UAAUP,OAAOc,UAAU,CAAC;oBAC1BZ,aAAa,IAAIE;gBACnB,GAAGQ;gBAEH,yEAAyE;gBACzE,IAAI,CAACnB,WAAWQ,WAAWU,MAAM;oBAC/BT,aAAaS;gBACf;YACF;QACF;QAEAF;QAEA,4GAA4G;QAC5G,iEAAiE;QACjE,wDAAwD;QACxDV,SAASgB,gBAAgB,CAAC,oBAAoBN;QAE9C,OAAO;YACLT,OAAOa,YAAY,CAACN;YACpBR,SAASiB,mBAAmB,CAAC,oBAAoBP;QACnD;IACF,GACA;QAACV;QAAUD;QAA2BG;QAAWD;KAAO;IAG1D,OAAOC;AACT"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import './styles/constants.css';\nimport './styles/adaptivity.module.css';\nimport './styles/dynamicTokens.css';\nimport './styles/focusVisible.module.css';\nimport './styles/animationFades.module.css';\nimport './styles/transformOriginByPlacement.module.css';\nimport './styles/gaps.module.css';\n\nexport { AppRoot } from './components/AppRoot/AppRoot';\nexport { AppRootPortal } from './components/AppRoot/AppRootPortal';\nexport type { AppRootProps } from './components/AppRoot/AppRoot';\nexport type { SafeAreaInsets } from './components/AppRoot/types';\n\n/**\n * Typography\n */\nexport type { TypographyProps } from './components/Typography/Typography';\nexport { DisplayTitle } from './components/Typography/DisplayTitle/DisplayTitle';\nexport type { DisplayTitleProps } from './components/Typography/DisplayTitle/DisplayTitle';\nexport { Title } from './components/Typography/Title/Title';\nexport type { TitleProps } from './components/Typography/Title/Title';\nexport { Headline } from './components/Typography/Headline/Headline';\nexport type { HeadlineProps } from './components/Typography/Headline/Headline';\nexport { Text } from './components/Typography/Text/Text';\nexport type { TextProps } from './components/Typography/Text/Text';\nexport { Paragraph } from './components/Typography/Paragraph/Paragraph';\nexport type { ParagraphProps } from './components/Typography/Paragraph/Paragraph';\nexport { Subhead } from './components/Typography/Subhead/Subhead';\nexport type { SubheadProps } from './components/Typography/Subhead/Subhead';\nexport { Footnote } from './components/Typography/Footnote/Footnote';\nexport type { FootnoteProps } from './components/Typography/Footnote/Footnote';\nexport { Caption } from './components/Typography/Caption/Caption';\nexport type { CaptionProps } from './components/Typography/Caption/Caption';\nexport { EllipsisText } from './components/Typography/EllipsisText/EllipsisText';\nexport type { EllipsisTextProps } from './components/Typography/EllipsisText/EllipsisText';\n/**\n * Service\n */\nexport { UnstyledTextField } from './components/UnstyledTextField/UnstyledTextField';\nexport type {\n UnstyledTextFieldAsInputProps,\n UnstyledTextFieldAsTextareaProps,\n UnstyledTextFieldBaseProps,\n UnstyledTextFieldProps,\n} from './components/UnstyledTextField/UnstyledTextField';\nexport { Tappable } from './components/Tappable/Tappable';\nexport type { TappableProps } from './components/Tappable/Tappable';\nexport { FixedLayout } from './components/FixedLayout/FixedLayout';\nexport type { FixedLayoutProps } from './components/FixedLayout/FixedLayout';\nexport {\n ImageBaseContext,\n ImageBase,\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './components/ImageBase/ImageBase';\nexport type {\n ImageBaseProps,\n ImageBaseSize,\n ImageBaseExpectedIconProps,\n ImageBaseBadgeProps,\n ImageBaseOverlayProps,\n ImageBaseFloatElementProps,\n FloatElementPlacement,\n FloatElementIndentation,\n} from './components/ImageBase/ImageBase';\n\n/**\n * Primitives\n */\nexport { Button } from './components/Button/Button';\nexport type { ButtonProps } from './components/Button/Button';\nexport { IconButton } from './components/IconButton/IconButton';\nexport type { IconButtonProps } from './components/IconButton/IconButton';\nexport { ToolButton } from './components/ToolButton/ToolButton';\nexport type { ToolButtonProps } from './components/ToolButton/ToolButton';\n\n/**\n * Layout\n */\nexport { Root } from './components/Root/Root';\nexport type { RootProps } from './components/Root/Root';\nexport { View } from './components/View/View';\nexport type { ViewProps } from './components/View/View';\nexport { Panel } from './components/Panel/Panel';\nexport type { PanelProps } from './components/Panel/Panel';\nexport { PanelHeaderButton } from './components/PanelHeaderButton/PanelHeaderButton';\nexport type { PanelHeaderButtonProps } from './components/PanelHeaderButton/PanelHeaderButton';\nexport { PanelHeader } from './components/PanelHeader/PanelHeader';\nexport type { PanelHeaderProps } from './components/PanelHeader/PanelHeader';\nexport { PanelHeaderContent } from './components/PanelHeaderContent/PanelHeaderContent';\nexport type { PanelHeaderContentProps } from './components/PanelHeaderContent/PanelHeaderContent';\nexport { PanelHeaderContext } from './components/PanelHeaderContext/PanelHeaderContext';\nexport type { PanelHeaderContextProps } from './components/PanelHeaderContext/PanelHeaderContext';\nexport { SplitLayout } from './components/SplitLayout/SplitLayout';\nexport type { SplitLayoutProps } from './components/SplitLayout/SplitLayout';\nexport { SplitCol } from './components/SplitCol/SplitCol';\nexport type { SplitColProps } from './components/SplitCol/SplitCol';\nexport { Epic } from './components/Epic/Epic';\nexport type { EpicProps } from './components/Epic/Epic';\nexport { Tabbar } from './components/Tabbar/Tabbar';\nexport type { TabbarProps } from './components/Tabbar/Tabbar';\nexport { TabbarItem } from './components/TabbarItem/TabbarItem';\nexport type { TabbarItemProps } from './components/TabbarItem/TabbarItem';\nexport { ScrollArrow } from './components/ScrollArrow/ScrollArrow';\nexport type { ScrollArrowProps } from './components/ScrollArrow/ScrollArrow';\nexport { HorizontalScroll } from './components/HorizontalScroll/HorizontalScroll';\nexport type { HorizontalScrollProps } from './components/HorizontalScroll/HorizontalScroll';\nexport { AspectRatio } from './components/AspectRatio/AspectRatio';\nexport type { AspectRatioProps } from './components/AspectRatio/AspectRatio';\nexport { Flex } from './components/Flex/Flex';\nexport type { FlexProps } from './components/Flex/Flex';\nexport type { FlexItemProps } from './components/Flex/FlexItem/FlexItem';\nexport { SimpleGrid } from './components/SimpleGrid/SimpleGrid';\nexport type { SimpleGridProps } from './components/SimpleGrid/SimpleGrid';\n\n/**\n * Popouts\n */\nexport { PopoutWrapper } from './components/PopoutWrapper/PopoutWrapper';\nexport type { PopoutWrapperProps } from './components/PopoutWrapper/PopoutWrapper';\nexport { Alert } from './components/Alert/Alert';\nexport type { AlertProps, AlertActionProps, AlertActionInterface } from './components/Alert/Alert';\nexport { ActionSheet } from './components/ActionSheet/ActionSheet';\nexport type {\n ActionSheetProps,\n ActionSheetOnCloseOptions,\n} from './components/ActionSheet/ActionSheet';\nexport { ActionSheetItem } from './components/ActionSheetItem/ActionSheetItem';\nexport type { ActionSheetItemProps } from './components/ActionSheetItem/ActionSheetItem';\nexport { ActionSheetDefaultIosCloseItem } from './components/ActionSheet/ActionSheetDefaultIosCloseItem';\nexport { ScreenSpinner } from './components/ScreenSpinner/ScreenSpinner';\nexport { ScreenSpinnerContext } from './components/ScreenSpinner/context';\nexport type { ScreenSpinnerProps } from './components/ScreenSpinner/ScreenSpinner';\nexport type { ScreenSpinnerContextProps } from './components/ScreenSpinner/context';\nexport { Snackbar } from './components/Snackbar/Snackbar';\nexport type { SnackbarProps } from './components/Snackbar/Snackbar';\nexport { Tooltip } from './components/Tooltip/Tooltip';\nexport { useTooltip } from './components/Tooltip/useTooltip';\nexport type {\n TooltipProps,\n TooltipOnShownChange,\n TooltipArrowProps,\n} from './components/Tooltip/Tooltip';\n\n/**\n * Modals\n */\nexport { ModalRoot } from './components/ModalRoot/ModalRoot';\nexport type {\n ModalRootProps,\n ModalRootContextInterface,\n UseModalRootContext,\n} from './components/ModalRoot/types';\nexport { withModalRootContext } from './components/ModalRoot/withModalRootContext';\nexport { ModalRootContext } from './components/ModalRoot/ModalRootContext';\nexport { useModalRootContext } from './components/ModalRoot/useModalRootContext';\nexport { ModalPageContent } from './components/ModalPageContent/ModalPageContent';\nexport { ModalPage } from './components/ModalPage/ModalPage';\nexport type { ModalPageProps, ModalPageCloseReason } from './components/ModalPage/types';\nexport { ModalPageHeader } from './components/ModalPageHeader/ModalPageHeader';\nexport type { ModalPageHeaderProps } from './components/ModalPageHeader/ModalPageHeader';\nexport { ModalCard } from './components/ModalCard/ModalCard';\nexport type { ModalCardProps, ModalCardCloseReason } from './components/ModalCard/types';\nexport { ModalDismissButton } from './components/ModalDismissButton/ModalDismissButton';\nexport type { ModalDismissButtonProps } from './components/ModalDismissButton/ModalDismissButton';\nexport { ModalOutsideButton } from './components/ModalOutsideButton/ModalOutsideButton';\nexport type { ModalOutsideButtonProps } from './components/ModalOutsideButton/ModalOutsideButton';\n\n/**\n * Blocks\n */\nexport { Badge } from './components/Badge/Badge';\nexport type { BadgeProps } from './components/Badge/Badge';\nexport { ContentBadge } from './components/ContentBadge/ContentBadge';\nexport type { ContentBadgeProps } from './components/ContentBadge/ContentBadge';\nexport { ButtonGroup } from './components/ButtonGroup/ButtonGroup';\nexport type { ButtonGroupProps } from './components/ButtonGroup/ButtonGroup';\nexport { Card } from './components/Card/Card';\nexport type { CardProps } from './components/Card/Card';\nexport { CardGrid } from './components/CardGrid/CardGrid';\nexport type { CardGridProps } from './components/CardGrid/CardGrid';\nexport { CardScroll } from './components/CardScroll/CardScroll';\nexport type { CardScrollProps } from './components/CardScroll/CardScroll';\nexport { ContentCard } from './components/ContentCard/ContentCard';\nexport type { ContentCardProps } from './components/ContentCard/ContentCard';\nexport { Header } from './components/Header/Header';\nexport type { HeaderProps } from './components/Header/Header';\nexport { Group } from './components/Group/Group';\nexport type { GroupProps } from './components/Group/Group';\nexport { Gradient } from './components/Gradient/Gradient';\nexport type { GradientProps } from './components/Gradient/Gradient';\nexport { List } from './components/List/List';\nexport type { ListProps } from './components/List/List';\nexport { Cell } from './components/Cell/Cell';\nexport type { CellProps } from './components/Cell/Cell';\nexport type { CellCheckboxProps } from './components/Cell/CellCheckbox/CellCheckbox';\nexport { RichCell } from './components/RichCell/RichCell';\nexport type { RichCellProps } from './components/RichCell/RichCell';\nexport { SimpleCell } from './components/SimpleCell/SimpleCell';\nexport type { SimpleCellProps } from './components/SimpleCell/SimpleCell';\nexport { CellButton } from './components/CellButton/CellButton';\nexport type { CellButtonProps } from './components/CellButton/CellButton';\nexport { CellButtonGroup } from './components/CellButtonGroup/CellButtonGroup';\nexport type { CellButtonGroupProps } from './components/CellButtonGroup/CellButtonGroup';\nexport { HorizontalCell } from './components/HorizontalCell/HorizontalCell';\nexport type { HorizontalCellProps } from './components/HorizontalCell/HorizontalCell';\nexport { HorizontalCellShowMore } from './components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore';\nexport type { HorizontalCellShowMoreProps } from './components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore';\nexport { Footer } from './components/Footer/Footer';\nexport type { FooterProps } from './components/Footer/Footer';\nexport { InfoRow } from './components/InfoRow/InfoRow';\nexport type { InfoRowProps } from './components/InfoRow/InfoRow';\nexport { Gallery } from './components/Gallery/Gallery';\nexport type { GalleryProps } from './components/Gallery/Gallery';\nexport { Avatar } from './components/Avatar/Avatar';\nexport type { GetInitialsFontSizeType } from './components/Avatar/helpers';\nexport type {\n AvatarProps,\n AvatarBadgeProps,\n AvatarBadgeWithPresetProps,\n AvatarOverlayProps,\n} from './components/Avatar/Avatar';\nexport { GridAvatar } from './components/GridAvatar/GridAvatar';\nexport type { GridAvatarProps, GridAvatarBadgeProps } from './components/GridAvatar/GridAvatar';\nexport { Image } from './components/Image/Image';\nexport type { ImageProps, ImageBadgeProps, ImageOverlayProps } from './components/Image/Image';\nexport { Progress } from './components/Progress/Progress';\nexport type { ProgressProps } from './components/Progress/Progress';\nexport { Search } from './components/Search/Search';\nexport type { SearchProps, RenderIconButtonFn } from './components/Search/Search';\nexport { Tabs } from './components/Tabs/Tabs';\nexport type { TabsProps } from './components/Tabs/Tabs';\nexport { TabsItem } from './components/TabsItem/TabsItem';\nexport type { TabsItemProps } from './components/TabsItem/TabsItem';\nexport { Spinner } from './components/Spinner/Spinner';\nexport type { SpinnerProps } from './components/Spinner/Spinner';\nexport { PullToRefresh } from './components/PullToRefresh/PullToRefresh';\nexport type { PullToRefreshProps } from './components/PullToRefresh/PullToRefresh';\nexport { Link } from './components/Link/Link';\nexport type { LinkProps } from './components/Link/Link';\nexport { Mark } from './components/Mark/Mark';\nexport type { MarkProps } from './components/Mark/Mark';\nexport { OnboardingTooltip } from './components/OnboardingTooltip/OnboardingTooltip';\nexport type { OnboardingTooltipProps } from './components/OnboardingTooltip/OnboardingTooltip';\nexport { OnboardingTooltipContainer } from './components/OnboardingTooltip/OnboardingTooltipContainer';\nexport { Counter } from './components/Counter/Counter';\nexport type { CounterProps } from './components/Counter/Counter';\nexport { UsersStack } from './components/UsersStack/UsersStack';\nexport type {\n UsersStackProps,\n UsersStackPhoto,\n UsersStackRenderWrapperProps,\n} from './components/UsersStack/UsersStack';\nexport { Separator } from './components/Separator/Separator';\nexport type { SeparatorProps } from './components/Separator/Separator';\nexport { Spacing } from './components/Spacing/Spacing';\nexport type { SpacingProps } from './components/Spacing/Spacing';\nexport { Placeholder } from './components/Placeholder/Placeholder';\nexport type {\n PlaceholderProps,\n PlaceholderContainerProps,\n PlaceholderIconProps,\n PlaceholderTitleProps,\n PlaceholderDescriptionProps,\n PlaceholderActionsProps,\n} from './components/Placeholder/Placeholder';\nexport { Banner } from './components/Banner/Banner';\nexport type { BannerProps } from './components/Banner/Banner';\nexport { MiniInfoCell } from './components/MiniInfoCell/MiniInfoCell';\nexport type { MiniInfoCellProps } from './components/MiniInfoCell/MiniInfoCell';\nexport { WriteBar } from './components/WriteBar/WriteBar';\nexport type { WriteBarProps } from './components/WriteBar/WriteBar';\nexport { WriteBarIcon } from './components/WriteBarIcon/WriteBarIcon';\nexport type { WriteBarIconProps } from './components/WriteBarIcon/WriteBarIcon';\nexport { SubnavigationBar } from './components/SubnavigationBar/SubnavigationBar';\nexport type { SubnavigationBarProps } from './components/SubnavigationBar/SubnavigationBar';\nexport { SubnavigationButton } from './components/SubnavigationButton/SubnavigationButton';\nexport type { SubnavigationButtonProps } from './components/SubnavigationButton/SubnavigationButton';\nexport { Pagination } from './components/Pagination/Pagination';\nexport type { PaginationProps } from './components/Pagination/Pagination';\nexport type { CustomPaginationPageButtonProps } from './components/Pagination/PaginationPage/PaginationPageButton';\nexport type { CustomPaginationNavigationButton } from './components/Pagination/PaginationNavigationButton/PaginationNavigationButton';\nexport { Accordion } from './components/Accordion/Accordion';\nexport type { AccordionProps } from './components/Accordion/Accordion';\nexport { AccordionContext, useAccordionContext } from './components/Accordion/AccordionContext';\nexport type { AccordionSummaryProps } from './components/Accordion/AccordionSummary';\nexport type { AccordionContentProps } from './components/Accordion/AccordionContent';\n\n/**\n * Forms\n */\nexport { FormItem } from './components/FormItem/FormItem';\nexport type { FormItemTopProps } from './components/FormItem/FormItemTop/FormItemTop';\nexport type { FormItemTopLabelProps } from './components/FormItem/FormItemTop/FormItemTopLabel';\nexport type { FormItemTopAsideProps } from './components/FormItem/FormItemTop/FormItemTopAside';\nexport type { FormItemProps } from './components/FormItem/FormItem';\nexport { FormField } from './components/FormField/FormField';\nexport type { FormFieldProps, FieldIconsAlign } from './components/FormField/FormField';\nexport { FormLayoutGroup } from './components/FormLayoutGroup/FormLayoutGroup';\nexport type { FormLayoutGroupProps } from './components/FormLayoutGroup/FormLayoutGroup';\nexport { FormStatus } from './components/FormStatus/FormStatus';\nexport type { FormStatusProps } from './components/FormStatus/FormStatus';\nexport { Switch } from './components/Switch/Switch';\nexport type { SwitchProps } from './components/Switch/Switch';\nexport { File } from './components/File/File';\nexport type { FileProps } from './components/File/File';\nexport { DropZone } from './components/DropZone/DropZone';\nexport type { DropZoneProps } from './components/DropZone/DropZone';\nexport { Input } from './components/Input/Input';\nexport type { InputProps } from './components/Input/Input';\nexport { Chip } from './components/ChipsInputBase/Chip/Chip';\nexport type {\n ChipProps,\n ChipOption,\n RenderChipProps,\n ChipOptionValue,\n ChipOptionLabel,\n} from './components/ChipsInputBase/types';\nexport { ChipsInput } from './components/ChipsInput/ChipsInput';\nexport type { ChipsInputProps } from './components/ChipsInput/ChipsInput';\nexport { ChipsSelect } from './components/ChipsSelect/ChipsSelect';\nexport type { ChipsSelectProps } from './components/ChipsSelect/ChipsSelect';\nexport type { FormFieldClearButtonProps } from './components/FormFieldClearButton/FormFieldClearButton';\nexport { Slider } from './components/Slider/Slider';\nexport type { SliderBaseProps, SliderProps, SliderMultipleProps } from './components/Slider/Slider';\nexport { Textarea } from './components/Textarea/Textarea';\nexport type { TextareaProps } from './components/Textarea/Textarea';\nexport { SelectionControl } from './components/SelectionControl/SelectionControl';\nexport type { SelectionControlProps } from './components/SelectionControl/SelectionControl';\nexport { Radio } from './components/Radio/Radio';\nexport type { RadioProps } from './components/Radio/Radio';\nexport { RadioGroup } from './components/RadioGroup/RadioGroup';\nexport type { RadioGroupProps } from './components/RadioGroup/RadioGroup';\nexport { Checkbox } from './components/Checkbox/Checkbox';\nexport type { CheckboxProps } from './components/Checkbox/Checkbox';\nexport type { CheckboxInputIconType } from './components/Checkbox/CheckboxInput/CheckboxInput';\nexport { Select } from './components/Select/Select';\nexport { SelectMimicry } from './components/SelectMimicry/SelectMimicry';\nexport type { SelectMimicryProps } from './components/SelectMimicry/SelectMimicry';\nexport { NativeSelect } from './components/NativeSelect/NativeSelect';\nexport type { NativeSelectProps } from './components/NativeSelect/NativeSelect';\nexport { CustomSelect } from './components/CustomSelect/CustomSelect';\nexport type {\n SelectProps,\n CustomSelectOptionInterface,\n CustomSelectRenderOption,\n CustomSelectClearButtonProps,\n} from './components/CustomSelect/CustomSelect';\nexport { CustomSelectOption } from './components/CustomSelectOption/CustomSelectOption';\nexport type { CustomSelectOptionProps } from './components/CustomSelectOption/CustomSelectOption';\nexport { SegmentedControl } from './components/SegmentedControl/SegmentedControl';\nexport type {\n SegmentedControlProps,\n SegmentedControlOptionInterface,\n SegmentedControlValue,\n} from './components/SegmentedControl/SegmentedControl';\nexport { Calendar } from './components/Calendar/Calendar';\nexport type { CalendarProps } from './components/Calendar/Calendar';\nexport { CalendarRange } from './components/CalendarRange/CalendarRange';\nexport type { CalendarRangeProps } from './components/CalendarRange/CalendarRange';\nexport { DateInput } from './components/DateInput/DateInput';\nexport type { DateInputProps } from './components/DateInput/DateInput';\nexport { DateRangeInput } from './components/DateRangeInput/DateRangeInput';\nexport type { DateRangeInputProps } from './components/DateRangeInput/DateRangeInput';\nexport { Skeleton } from './components/Skeleton/Skeleton';\nexport type { SkeletonProps } from './components/Skeleton/Skeleton';\n\n/**\n * Helpers\n */\nexport { Div } from './components/Div/Div';\nexport type { DivProps } from './components/Div/Div';\nexport {\n DEFAULT_ARROW_HEIGHT as DEFAULT_ICON_ARROW_HEIGHT,\n DEFAULT_ARROW_WIDTH as DEFAULT_ICON_ARROW_WIDTH,\n DEFAULT_ARROW_PADDING as DEFAULT_ICON_ARROW_PADDING,\n DefaultIcon,\n} from './components/FloatingArrow/DefaultIcon';\nexport { FloatingArrow } from './components/FloatingArrow/FloatingArrow';\nexport type { FloatingArrowProps } from './components/FloatingArrow/FloatingArrow';\nexport { Touch } from './components/Touch/Touch';\nexport type { TouchProps, CustomTouchEvent } from './components/Touch/Touch';\nexport { PanelSpinner } from './components/PanelSpinner/PanelSpinner';\nexport type { PanelSpinnerProps } from './components/PanelSpinner/PanelSpinner';\nexport { PanelHeaderClose } from './components/PanelHeaderClose/PanelHeaderClose';\nexport type { PanelHeaderCloseProps } from './components/PanelHeaderClose/PanelHeaderClose';\nexport { PanelHeaderBack } from './components/PanelHeaderBack/PanelHeaderBack';\nexport type { PanelHeaderBackProps } from './components/PanelHeaderBack/PanelHeaderBack';\nexport { PanelHeaderSubmit } from './components/PanelHeaderSubmit/PanelHeaderSubmit';\nexport type { PanelHeaderSubmitProps } from './components/PanelHeaderSubmit/PanelHeaderSubmit';\nexport { PanelHeaderEdit } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport type { PanelHeaderEditProps } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport { ModalCardBase } from './components/ModalCardBase/ModalCardBase';\nexport type { ModalCardBaseProps } from './components/ModalCardBase/ModalCardBase';\nexport { VisuallyHidden } from './components/VisuallyHidden/VisuallyHidden';\nexport type { VisuallyHiddenProps } from './components/VisuallyHidden/VisuallyHidden';\nexport { AdaptiveIconRenderer } from './components/AdaptiveIconRenderer/AdaptiveIconRenderer';\nexport type { AdaptiveIconRendererProps } from './components/AdaptiveIconRenderer/AdaptiveIconRenderer';\n\n/**\n * Wrappers\n */\nexport { AdaptivityProvider } from './components/AdaptivityProvider/AdaptivityProvider';\nexport type { AdaptivityProviderProps } from './components/AdaptivityProvider/AdaptivityProvider';\nexport { ConfigProvider } from './components/ConfigProvider/ConfigProvider';\nexport type { ConfigProviderProps } from './components/ConfigProvider/ConfigProvider';\nexport {\n useConfigProvider,\n ConfigProviderContext,\n} from './components/ConfigProvider/ConfigProviderContext';\nexport { ColorSchemeProvider } from './components/ColorSchemeProvider/ColorSchemeProvider';\nexport type { ColorSchemeProviderProps } from './components/ColorSchemeProvider/ColorSchemeProvider';\nexport { ColorScheme } from './lib/colorScheme';\nexport type { ColorSchemeType } from './lib/colorScheme';\nexport { DOMContext } from './lib/dom';\nexport { LocaleProvider } from './components/LocaleProvider/LocaleProvider';\nexport { DirectionProvider } from './components/DirectionProvider/DirectionProvider';\nexport type { LocaleProviderProps } from './components/LocaleProvider/LocaleProvider';\nexport type { DirectionProviderProps } from './components/DirectionProvider/DirectionProvider';\nexport { PlatformProvider } from './components/PlatformProvider/PlatformProvider';\nexport type { PlatformProviderProps } from './components/PlatformProvider/PlatformProvider';\nexport { Popover } from './components/Popover/Popover';\nexport type {\n PopoverProps,\n PopoverOnShownChange,\n PopoverArrowProps,\n PopoverContentRenderProp,\n} from './components/Popover/Popover';\nexport { usePopover } from './components/Popover/usePopover';\n\n/**\n * HOCs\n */\nexport { withPlatform } from './hoc/withPlatform';\n\n/**\n * Hooks\n */\nexport { usePlatform } from './hooks/usePlatform';\nexport { useConfigDirection as useDirection } from './hooks/useConfigDirection';\nexport { useLocale } from './hooks/useLocale';\nexport { useAdaptivity } from './hooks/useAdaptivity';\nexport {\n type UseAdaptivityConditionalRender,\n useAdaptivityConditionalRender,\n} from './hooks/useAdaptivityConditionalRender';\nexport {\n type UseAdaptivityWithJSMediaQueries,\n useAdaptivityWithJSMediaQueries,\n} from './hooks/useAdaptivityWithJSMediaQueries';\nexport { useColorScheme } from './hooks/useColorScheme';\nexport { usePagination } from './hooks/usePagination';\nexport { type Orientation, useOrientationChange } from './hooks/useOrientationChange';\nexport { usePatchChildren } from './hooks/usePatchChildren';\nexport { useTodayDate } from './hooks/useTodayDate';\nexport { useScrollLock, useManualScroll as useScroll } from './components/AppRoot/ScrollContext';\nexport { useNavTransition } from './components/NavTransitionContext/NavTransitionContext';\nexport { useNavDirection } from './components/NavTransitionDirectionContext/NavTransitionDirectionContext';\nexport { useNavId } from './components/NavIdContext/useNavId';\nexport type { TransitionDirection } from './components/NavTransitionDirectionContext/NavTransitionDirectionContext';\nexport { useCSSKeyframesAnimationController as unstable_useCSSKeyframesAnimationController } from './lib/animation';\nexport { useFocusVisible } from './hooks/useFocusVisible';\n\n/**\n * Utils\n */\nexport { classNames } from '@vkontakte/vkjs';\nexport { animate } from './lib/animate';\nexport { defaultFilterFn as filterFnForSelect } from './lib/select';\nexport { removeObjectKeys } from './lib/removeObjectKeys';\nexport { SSRWrapper } from './lib/SSR';\nexport type { SSRWrapperProps } from './lib/SSR';\nexport { platform, Platform } from './lib/platform';\nexport {\n ViewWidth,\n ViewHeight,\n SizeType,\n getViewWidthByViewportWidth,\n getViewHeightByViewportHeight,\n} from './lib/adaptivity';\nexport {\n type Placement as FloatingPlacement,\n type PlacementWithAuto as FloatingPlacementWithAuto,\n} from './lib/floating';\nexport type { AdaptivityProps } from './components/AdaptivityProvider/AdaptivityContext';\nexport { calcInitialsAvatarColor } from './helpers/avatar';\nexport { CustomScrollView } from './components/CustomScrollView/CustomScrollView';\nexport type { CustomScrollViewProps } from './components/CustomScrollView/CustomScrollView';\nexport { Popper } from './components/Popper/Popper';\nexport type { PopperProps } from './components/Popper/Popper';\n\n/**\n * Types\n */\nexport type { AlignType, HasPlatform, HasRef, HasRootRef } from './types';\nexport type { NavIdProps } from './lib/getNavId';\nexport type { PlatformType } from './lib/platform';\nexport type { TransitionContextProps } from './components/NavTransitionContext/NavTransitionContext';\n\n/**\n * Unstable\n */\nexport { ViewInfinite as unstable_ViewInfinite } from './components/View/ViewInfinite';\nexport type { ViewInfiniteProps as unstable_ViewInfiniteProps } from './components/View/ViewInfinite';\nexport { ModalPageFooter as unstable_ModalPageFooter } from './components/ModalPageFooter/ModalPageFooter';\nexport type { ModalPageFooterProps as unstable_ModalPageFooterProps } from './components/ModalPageFooter/ModalPageFooter';\n\nimport './styles/common.css';\n"],"names":["AppRoot","AppRootPortal","DisplayTitle","Title","Headline","Text","Paragraph","Subhead","Footnote","Caption","EllipsisText","UnstyledTextField","Tappable","FixedLayout","ImageBaseContext","ImageBase","getBadgeIconSizeByImageBaseSize","getFallbackIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize","Button","IconButton","ToolButton","Root","View","Panel","PanelHeaderButton","PanelHeader","PanelHeaderContent","PanelHeaderContext","SplitLayout","SplitCol","Epic","Tabbar","TabbarItem","ScrollArrow","HorizontalScroll","AspectRatio","Flex","SimpleGrid","PopoutWrapper","Alert","ActionSheet","ActionSheetItem","ActionSheetDefaultIosCloseItem","ScreenSpinner","ScreenSpinnerContext","Snackbar","Tooltip","useTooltip","ModalRoot","withModalRootContext","ModalRootContext","useModalRootContext","ModalPageContent","ModalPage","ModalPageHeader","ModalCard","ModalDismissButton","ModalOutsideButton","Badge","ContentBadge","ButtonGroup","Card","CardGrid","CardScroll","ContentCard","Header","Group","Gradient","List","Cell","RichCell","SimpleCell","CellButton","CellButtonGroup","HorizontalCell","HorizontalCellShowMore","Footer","InfoRow","Gallery","Avatar","GridAvatar","Image","Progress","Search","Tabs","TabsItem","Spinner","PullToRefresh","Link","Mark","OnboardingTooltip","OnboardingTooltipContainer","Counter","UsersStack","Separator","Spacing","Placeholder","Banner","MiniInfoCell","WriteBar","WriteBarIcon","SubnavigationBar","SubnavigationButton","Pagination","Accordion","AccordionContext","useAccordionContext","FormItem","FormField","FormLayoutGroup","FormStatus","Switch","File","DropZone","Input","Chip","ChipsInput","ChipsSelect","Slider","Textarea","SelectionControl","Radio","RadioGroup","Checkbox","Select","SelectMimicry","NativeSelect","CustomSelect","CustomSelectOption","SegmentedControl","Calendar","CalendarRange","DateInput","DateRangeInput","Skeleton","Div","DEFAULT_ARROW_HEIGHT","DEFAULT_ICON_ARROW_HEIGHT","DEFAULT_ARROW_WIDTH","DEFAULT_ICON_ARROW_WIDTH","DEFAULT_ARROW_PADDING","DEFAULT_ICON_ARROW_PADDING","DefaultIcon","FloatingArrow","Touch","PanelSpinner","PanelHeaderClose","PanelHeaderBack","PanelHeaderSubmit","PanelHeaderEdit","ModalCardBase","VisuallyHidden","AdaptiveIconRenderer","AdaptivityProvider","ConfigProvider","useConfigProvider","ConfigProviderContext","ColorSchemeProvider","ColorScheme","DOMContext","LocaleProvider","DirectionProvider","PlatformProvider","Popover","usePopover","withPlatform","usePlatform","useConfigDirection","useDirection","useLocale","useAdaptivity","useAdaptivityConditionalRender","useAdaptivityWithJSMediaQueries","useColorScheme","usePagination","useOrientationChange","usePatchChildren","useTodayDate","useScrollLock","useManualScroll","useScroll","useNavTransition","useNavDirection","useNavId","useCSSKeyframesAnimationController","unstable_useCSSKeyframesAnimationController","useFocusVisible","classNames","animate","defaultFilterFn","filterFnForSelect","removeObjectKeys","SSRWrapper","platform","Platform","ViewWidth","ViewHeight","SizeType","getViewWidthByViewportWidth","getViewHeightByViewportHeight","calcInitialsAvatarColor","CustomScrollView","Popper","ViewInfinite","unstable_ViewInfinite","ModalPageFooter","unstable_ModalPageFooter"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import './styles/constants.css';\nimport './styles/adaptivity.module.css';\nimport './styles/dynamicTokens.css';\nimport './styles/focusVisible.module.css';\nimport './styles/animationFades.module.css';\nimport './styles/transformOriginByPlacement.module.css';\nimport './styles/gaps.module.css';\n\nexport { AppRoot } from './components/AppRoot/AppRoot';\nexport { AppRootPortal } from './components/AppRoot/AppRootPortal';\nexport type { AppRootProps } from './components/AppRoot/AppRoot';\nexport type { SafeAreaInsets } from './components/AppRoot/types';\n\n/**\n * Typography\n */\nexport type { TypographyProps } from './components/Typography/Typography';\nexport { DisplayTitle } from './components/Typography/DisplayTitle/DisplayTitle';\nexport type { DisplayTitleProps } from './components/Typography/DisplayTitle/DisplayTitle';\nexport { Title } from './components/Typography/Title/Title';\nexport type { TitleProps } from './components/Typography/Title/Title';\nexport { Headline } from './components/Typography/Headline/Headline';\nexport type { HeadlineProps } from './components/Typography/Headline/Headline';\nexport { Text } from './components/Typography/Text/Text';\nexport type { TextProps } from './components/Typography/Text/Text';\nexport { Paragraph } from './components/Typography/Paragraph/Paragraph';\nexport type { ParagraphProps } from './components/Typography/Paragraph/Paragraph';\nexport { Subhead } from './components/Typography/Subhead/Subhead';\nexport type { SubheadProps } from './components/Typography/Subhead/Subhead';\nexport { Footnote } from './components/Typography/Footnote/Footnote';\nexport type { FootnoteProps } from './components/Typography/Footnote/Footnote';\nexport { Caption } from './components/Typography/Caption/Caption';\nexport type { CaptionProps } from './components/Typography/Caption/Caption';\nexport { EllipsisText } from './components/Typography/EllipsisText/EllipsisText';\nexport type { EllipsisTextProps } from './components/Typography/EllipsisText/EllipsisText';\n/**\n * Service\n */\nexport { UnstyledTextField } from './components/UnstyledTextField/UnstyledTextField';\nexport type {\n UnstyledTextFieldAsInputProps,\n UnstyledTextFieldAsTextareaProps,\n UnstyledTextFieldBaseProps,\n UnstyledTextFieldProps,\n} from './components/UnstyledTextField/UnstyledTextField';\nexport { Tappable } from './components/Tappable/Tappable';\nexport type { TappableProps } from './components/Tappable/Tappable';\nexport { FixedLayout } from './components/FixedLayout/FixedLayout';\nexport type { FixedLayoutProps } from './components/FixedLayout/FixedLayout';\nexport {\n ImageBaseContext,\n ImageBase,\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './components/ImageBase/ImageBase';\nexport type {\n ImageBaseProps,\n ImageBaseSize,\n ImageBaseExpectedIconProps,\n ImageBaseBadgeProps,\n ImageBaseOverlayProps,\n ImageBaseFloatElementProps,\n FloatElementPlacement,\n FloatElementIndentation,\n} from './components/ImageBase/ImageBase';\n\n/**\n * Primitives\n */\nexport { Button } from './components/Button/Button';\nexport type { ButtonProps } from './components/Button/Button';\nexport { IconButton } from './components/IconButton/IconButton';\nexport type { IconButtonProps } from './components/IconButton/IconButton';\nexport { ToolButton } from './components/ToolButton/ToolButton';\nexport type { ToolButtonProps } from './components/ToolButton/ToolButton';\n\n/**\n * Layout\n */\nexport { Root } from './components/Root/Root';\nexport type { RootProps } from './components/Root/Root';\nexport { View } from './components/View/View';\nexport type { ViewProps } from './components/View/View';\nexport { Panel } from './components/Panel/Panel';\nexport type { PanelProps } from './components/Panel/Panel';\nexport { PanelHeaderButton } from './components/PanelHeaderButton/PanelHeaderButton';\nexport type { PanelHeaderButtonProps } from './components/PanelHeaderButton/PanelHeaderButton';\nexport { PanelHeader } from './components/PanelHeader/PanelHeader';\nexport type { PanelHeaderProps } from './components/PanelHeader/PanelHeader';\nexport { PanelHeaderContent } from './components/PanelHeaderContent/PanelHeaderContent';\nexport type { PanelHeaderContentProps } from './components/PanelHeaderContent/PanelHeaderContent';\nexport { PanelHeaderContext } from './components/PanelHeaderContext/PanelHeaderContext';\nexport type { PanelHeaderContextProps } from './components/PanelHeaderContext/PanelHeaderContext';\nexport { SplitLayout } from './components/SplitLayout/SplitLayout';\nexport type { SplitLayoutProps } from './components/SplitLayout/SplitLayout';\nexport { SplitCol } from './components/SplitCol/SplitCol';\nexport type { SplitColProps } from './components/SplitCol/SplitCol';\nexport { Epic } from './components/Epic/Epic';\nexport type { EpicProps } from './components/Epic/Epic';\nexport { Tabbar } from './components/Tabbar/Tabbar';\nexport type { TabbarProps } from './components/Tabbar/Tabbar';\nexport { TabbarItem } from './components/TabbarItem/TabbarItem';\nexport type { TabbarItemProps } from './components/TabbarItem/TabbarItem';\nexport { ScrollArrow } from './components/ScrollArrow/ScrollArrow';\nexport type { ScrollArrowProps } from './components/ScrollArrow/ScrollArrow';\nexport { HorizontalScroll } from './components/HorizontalScroll/HorizontalScroll';\nexport type { HorizontalScrollProps } from './components/HorizontalScroll/HorizontalScroll';\nexport { AspectRatio } from './components/AspectRatio/AspectRatio';\nexport type { AspectRatioProps } from './components/AspectRatio/AspectRatio';\nexport { Flex } from './components/Flex/Flex';\nexport type { FlexProps } from './components/Flex/Flex';\nexport type { FlexItemProps } from './components/Flex/FlexItem/FlexItem';\nexport { SimpleGrid } from './components/SimpleGrid/SimpleGrid';\nexport type { SimpleGridProps } from './components/SimpleGrid/SimpleGrid';\n\n/**\n * Popouts\n */\nexport { PopoutWrapper } from './components/PopoutWrapper/PopoutWrapper';\nexport type { PopoutWrapperProps } from './components/PopoutWrapper/PopoutWrapper';\nexport { Alert } from './components/Alert/Alert';\nexport type { AlertProps, AlertActionProps, AlertActionInterface } from './components/Alert/Alert';\nexport { ActionSheet } from './components/ActionSheet/ActionSheet';\nexport type {\n ActionSheetProps,\n ActionSheetOnCloseOptions,\n} from './components/ActionSheet/ActionSheet';\nexport { ActionSheetItem } from './components/ActionSheetItem/ActionSheetItem';\nexport type { ActionSheetItemProps } from './components/ActionSheetItem/ActionSheetItem';\nexport { ActionSheetDefaultIosCloseItem } from './components/ActionSheet/ActionSheetDefaultIosCloseItem';\nexport { ScreenSpinner } from './components/ScreenSpinner/ScreenSpinner';\nexport { ScreenSpinnerContext } from './components/ScreenSpinner/context';\nexport type { ScreenSpinnerProps } from './components/ScreenSpinner/ScreenSpinner';\nexport type { ScreenSpinnerContextProps } from './components/ScreenSpinner/context';\nexport { Snackbar } from './components/Snackbar/Snackbar';\nexport type { SnackbarProps } from './components/Snackbar/Snackbar';\nexport { Tooltip } from './components/Tooltip/Tooltip';\nexport { useTooltip } from './components/Tooltip/useTooltip';\nexport type {\n TooltipProps,\n TooltipOnShownChange,\n TooltipArrowProps,\n} from './components/Tooltip/Tooltip';\n\n/**\n * Modals\n */\nexport { ModalRoot } from './components/ModalRoot/ModalRoot';\nexport type {\n ModalRootProps,\n ModalRootContextInterface,\n UseModalRootContext,\n} from './components/ModalRoot/types';\nexport { withModalRootContext } from './components/ModalRoot/withModalRootContext';\nexport { ModalRootContext } from './components/ModalRoot/ModalRootContext';\nexport { useModalRootContext } from './components/ModalRoot/useModalRootContext';\nexport { ModalPageContent } from './components/ModalPageContent/ModalPageContent';\nexport { ModalPage } from './components/ModalPage/ModalPage';\nexport type { ModalPageProps, ModalPageCloseReason } from './components/ModalPage/types';\nexport { ModalPageHeader } from './components/ModalPageHeader/ModalPageHeader';\nexport type { ModalPageHeaderProps } from './components/ModalPageHeader/ModalPageHeader';\nexport { ModalCard } from './components/ModalCard/ModalCard';\nexport type { ModalCardProps, ModalCardCloseReason } from './components/ModalCard/types';\nexport { ModalDismissButton } from './components/ModalDismissButton/ModalDismissButton';\nexport type { ModalDismissButtonProps } from './components/ModalDismissButton/ModalDismissButton';\nexport { ModalOutsideButton } from './components/ModalOutsideButton/ModalOutsideButton';\nexport type { ModalOutsideButtonProps } from './components/ModalOutsideButton/ModalOutsideButton';\n\n/**\n * Blocks\n */\nexport { Badge } from './components/Badge/Badge';\nexport type { BadgeProps } from './components/Badge/Badge';\nexport { ContentBadge } from './components/ContentBadge/ContentBadge';\nexport type { ContentBadgeProps } from './components/ContentBadge/ContentBadge';\nexport { ButtonGroup } from './components/ButtonGroup/ButtonGroup';\nexport type { ButtonGroupProps } from './components/ButtonGroup/ButtonGroup';\nexport { Card } from './components/Card/Card';\nexport type { CardProps } from './components/Card/Card';\nexport { CardGrid } from './components/CardGrid/CardGrid';\nexport type { CardGridProps } from './components/CardGrid/CardGrid';\nexport { CardScroll } from './components/CardScroll/CardScroll';\nexport type { CardScrollProps } from './components/CardScroll/CardScroll';\nexport { ContentCard } from './components/ContentCard/ContentCard';\nexport type { ContentCardProps } from './components/ContentCard/ContentCard';\nexport { Header } from './components/Header/Header';\nexport type { HeaderProps } from './components/Header/Header';\nexport { Group } from './components/Group/Group';\nexport type { GroupProps } from './components/Group/Group';\nexport { Gradient } from './components/Gradient/Gradient';\nexport type { GradientProps } from './components/Gradient/Gradient';\nexport { List } from './components/List/List';\nexport type { ListProps } from './components/List/List';\nexport { Cell } from './components/Cell/Cell';\nexport type { CellProps } from './components/Cell/Cell';\nexport type { CellCheckboxProps } from './components/Cell/CellCheckbox/CellCheckbox';\nexport { RichCell } from './components/RichCell/RichCell';\nexport type { RichCellProps } from './components/RichCell/RichCell';\nexport { SimpleCell } from './components/SimpleCell/SimpleCell';\nexport type { SimpleCellProps } from './components/SimpleCell/SimpleCell';\nexport { CellButton } from './components/CellButton/CellButton';\nexport type { CellButtonProps } from './components/CellButton/CellButton';\nexport { CellButtonGroup } from './components/CellButtonGroup/CellButtonGroup';\nexport type { CellButtonGroupProps } from './components/CellButtonGroup/CellButtonGroup';\nexport { HorizontalCell } from './components/HorizontalCell/HorizontalCell';\nexport type { HorizontalCellProps } from './components/HorizontalCell/HorizontalCell';\nexport { HorizontalCellShowMore } from './components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore';\nexport type { HorizontalCellShowMoreProps } from './components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore';\nexport { Footer } from './components/Footer/Footer';\nexport type { FooterProps } from './components/Footer/Footer';\nexport { InfoRow } from './components/InfoRow/InfoRow';\nexport type { InfoRowProps } from './components/InfoRow/InfoRow';\nexport { Gallery } from './components/Gallery/Gallery';\nexport type { GalleryProps } from './components/Gallery/Gallery';\nexport { Avatar } from './components/Avatar/Avatar';\nexport type { GetInitialsFontSizeType } from './components/Avatar/helpers';\nexport type {\n AvatarProps,\n AvatarBadgeProps,\n AvatarBadgeWithPresetProps,\n AvatarOverlayProps,\n} from './components/Avatar/Avatar';\nexport { GridAvatar } from './components/GridAvatar/GridAvatar';\nexport type { GridAvatarProps, GridAvatarBadgeProps } from './components/GridAvatar/GridAvatar';\nexport { Image } from './components/Image/Image';\nexport type { ImageProps, ImageBadgeProps, ImageOverlayProps } from './components/Image/Image';\nexport { Progress } from './components/Progress/Progress';\nexport type { ProgressProps } from './components/Progress/Progress';\nexport { Search } from './components/Search/Search';\nexport type { SearchProps, RenderIconButtonFn } from './components/Search/Search';\nexport { Tabs } from './components/Tabs/Tabs';\nexport type { TabsProps } from './components/Tabs/Tabs';\nexport { TabsItem } from './components/TabsItem/TabsItem';\nexport type { TabsItemProps } from './components/TabsItem/TabsItem';\nexport { Spinner } from './components/Spinner/Spinner';\nexport type { SpinnerProps } from './components/Spinner/Spinner';\nexport { PullToRefresh } from './components/PullToRefresh/PullToRefresh';\nexport type { PullToRefreshProps } from './components/PullToRefresh/PullToRefresh';\nexport { Link } from './components/Link/Link';\nexport type { LinkProps } from './components/Link/Link';\nexport { Mark } from './components/Mark/Mark';\nexport type { MarkProps } from './components/Mark/Mark';\nexport { OnboardingTooltip } from './components/OnboardingTooltip/OnboardingTooltip';\nexport type { OnboardingTooltipProps } from './components/OnboardingTooltip/OnboardingTooltip';\nexport { OnboardingTooltipContainer } from './components/OnboardingTooltip/OnboardingTooltipContainer';\nexport { Counter } from './components/Counter/Counter';\nexport type { CounterProps } from './components/Counter/Counter';\nexport { UsersStack } from './components/UsersStack/UsersStack';\nexport type {\n UsersStackProps,\n UsersStackPhoto,\n UsersStackRenderWrapperProps,\n} from './components/UsersStack/UsersStack';\nexport { Separator } from './components/Separator/Separator';\nexport type { SeparatorProps } from './components/Separator/Separator';\nexport { Spacing } from './components/Spacing/Spacing';\nexport type { SpacingProps } from './components/Spacing/Spacing';\nexport { Placeholder } from './components/Placeholder/Placeholder';\nexport type {\n PlaceholderProps,\n PlaceholderContainerProps,\n PlaceholderIconProps,\n PlaceholderTitleProps,\n PlaceholderDescriptionProps,\n PlaceholderActionsProps,\n} from './components/Placeholder/Placeholder';\nexport { Banner } from './components/Banner/Banner';\nexport type { BannerProps } from './components/Banner/Banner';\nexport { MiniInfoCell } from './components/MiniInfoCell/MiniInfoCell';\nexport type { MiniInfoCellProps } from './components/MiniInfoCell/MiniInfoCell';\nexport { WriteBar } from './components/WriteBar/WriteBar';\nexport type { WriteBarProps } from './components/WriteBar/WriteBar';\nexport { WriteBarIcon } from './components/WriteBarIcon/WriteBarIcon';\nexport type { WriteBarIconProps } from './components/WriteBarIcon/WriteBarIcon';\nexport { SubnavigationBar } from './components/SubnavigationBar/SubnavigationBar';\nexport type { SubnavigationBarProps } from './components/SubnavigationBar/SubnavigationBar';\nexport { SubnavigationButton } from './components/SubnavigationButton/SubnavigationButton';\nexport type { SubnavigationButtonProps } from './components/SubnavigationButton/SubnavigationButton';\nexport { Pagination } from './components/Pagination/Pagination';\nexport type { PaginationProps } from './components/Pagination/Pagination';\nexport type { CustomPaginationPageButtonProps } from './components/Pagination/PaginationPage/PaginationPageButton';\nexport type { CustomPaginationNavigationButton } from './components/Pagination/PaginationNavigationButton/PaginationNavigationButton';\nexport { Accordion } from './components/Accordion/Accordion';\nexport type { AccordionProps } from './components/Accordion/Accordion';\nexport { AccordionContext, useAccordionContext } from './components/Accordion/AccordionContext';\nexport type { AccordionSummaryProps } from './components/Accordion/AccordionSummary';\nexport type { AccordionContentProps } from './components/Accordion/AccordionContent';\n\n/**\n * Forms\n */\nexport { FormItem } from './components/FormItem/FormItem';\nexport type { FormItemTopProps } from './components/FormItem/FormItemTop/FormItemTop';\nexport type { FormItemTopLabelProps } from './components/FormItem/FormItemTop/FormItemTopLabel';\nexport type { FormItemTopAsideProps } from './components/FormItem/FormItemTop/FormItemTopAside';\nexport type { FormItemProps } from './components/FormItem/FormItem';\nexport { FormField } from './components/FormField/FormField';\nexport type { FormFieldProps, FieldIconsAlign } from './components/FormField/FormField';\nexport { FormLayoutGroup } from './components/FormLayoutGroup/FormLayoutGroup';\nexport type { FormLayoutGroupProps } from './components/FormLayoutGroup/FormLayoutGroup';\nexport { FormStatus } from './components/FormStatus/FormStatus';\nexport type { FormStatusProps } from './components/FormStatus/FormStatus';\nexport { Switch } from './components/Switch/Switch';\nexport type { SwitchProps } from './components/Switch/Switch';\nexport { File } from './components/File/File';\nexport type { FileProps } from './components/File/File';\nexport { DropZone } from './components/DropZone/DropZone';\nexport type { DropZoneProps } from './components/DropZone/DropZone';\nexport { Input } from './components/Input/Input';\nexport type { InputProps } from './components/Input/Input';\nexport type { ChipProps } from './components/ChipsInputBase/Chip/Chip';\nexport { Chip } from './components/ChipsInputBase/Chip/Chip';\nexport type {\n ChipOption,\n RenderChipProps,\n ChipOptionValue,\n ChipOptionLabel,\n} from './components/ChipsInputBase/types';\nexport { ChipsInput } from './components/ChipsInput/ChipsInput';\nexport type { ChipsInputProps } from './components/ChipsInput/ChipsInput';\nexport { ChipsSelect } from './components/ChipsSelect/ChipsSelect';\nexport type { ChipsSelectProps } from './components/ChipsSelect/ChipsSelect';\nexport type { FormFieldClearButtonProps } from './components/FormFieldClearButton/FormFieldClearButton';\nexport { Slider } from './components/Slider/Slider';\nexport type { SliderBaseProps, SliderProps, SliderMultipleProps } from './components/Slider/Slider';\nexport { Textarea } from './components/Textarea/Textarea';\nexport type { TextareaProps } from './components/Textarea/Textarea';\nexport { SelectionControl } from './components/SelectionControl/SelectionControl';\nexport type { SelectionControlProps } from './components/SelectionControl/SelectionControl';\nexport { Radio } from './components/Radio/Radio';\nexport type { RadioProps } from './components/Radio/Radio';\nexport { RadioGroup } from './components/RadioGroup/RadioGroup';\nexport type { RadioGroupProps } from './components/RadioGroup/RadioGroup';\nexport { Checkbox } from './components/Checkbox/Checkbox';\nexport type { CheckboxProps } from './components/Checkbox/Checkbox';\nexport type { CheckboxInputIconType } from './components/Checkbox/CheckboxInput/CheckboxInput';\nexport { Select } from './components/Select/Select';\nexport { SelectMimicry } from './components/SelectMimicry/SelectMimicry';\nexport type { SelectMimicryProps } from './components/SelectMimicry/SelectMimicry';\nexport { NativeSelect } from './components/NativeSelect/NativeSelect';\nexport type { NativeSelectProps } from './components/NativeSelect/NativeSelect';\nexport { CustomSelect } from './components/CustomSelect/CustomSelect';\nexport type {\n SelectProps,\n CustomSelectClearButtonProps,\n} from './components/CustomSelect/CustomSelect';\nexport type {\n CustomSelectOptionInterface,\n CustomSelectRenderOption,\n} from './components/CustomSelect/types';\nexport { CustomSelectOption } from './components/CustomSelectOption/CustomSelectOption';\nexport type { CustomSelectOptionProps } from './components/CustomSelectOption/CustomSelectOption';\nexport { SegmentedControl } from './components/SegmentedControl/SegmentedControl';\nexport type {\n SegmentedControlProps,\n SegmentedControlOptionInterface,\n SegmentedControlValue,\n} from './components/SegmentedControl/SegmentedControl';\nexport { Calendar } from './components/Calendar/Calendar';\nexport type { CalendarProps } from './components/Calendar/Calendar';\nexport { CalendarRange } from './components/CalendarRange/CalendarRange';\nexport type { CalendarRangeProps } from './components/CalendarRange/CalendarRange';\nexport { DateInput } from './components/DateInput/DateInput';\nexport type { DateInputProps } from './components/DateInput/DateInput';\nexport { DateRangeInput } from './components/DateRangeInput/DateRangeInput';\nexport type { DateRangeInputProps } from './components/DateRangeInput/DateRangeInput';\nexport { Skeleton } from './components/Skeleton/Skeleton';\nexport type { SkeletonProps } from './components/Skeleton/Skeleton';\n\n/**\n * Helpers\n */\nexport { Div } from './components/Div/Div';\nexport type { DivProps } from './components/Div/Div';\nexport {\n DEFAULT_ARROW_HEIGHT as DEFAULT_ICON_ARROW_HEIGHT,\n DEFAULT_ARROW_WIDTH as DEFAULT_ICON_ARROW_WIDTH,\n DEFAULT_ARROW_PADDING as DEFAULT_ICON_ARROW_PADDING,\n DefaultIcon,\n} from './components/FloatingArrow/DefaultIcon';\nexport { FloatingArrow } from './components/FloatingArrow/FloatingArrow';\nexport type { FloatingArrowProps } from './components/FloatingArrow/FloatingArrow';\nexport { Touch } from './components/Touch/Touch';\nexport type { TouchProps, CustomTouchEvent } from './components/Touch/Touch';\nexport { PanelSpinner } from './components/PanelSpinner/PanelSpinner';\nexport type { PanelSpinnerProps } from './components/PanelSpinner/PanelSpinner';\nexport { PanelHeaderClose } from './components/PanelHeaderClose/PanelHeaderClose';\nexport type { PanelHeaderCloseProps } from './components/PanelHeaderClose/PanelHeaderClose';\nexport { PanelHeaderBack } from './components/PanelHeaderBack/PanelHeaderBack';\nexport type { PanelHeaderBackProps } from './components/PanelHeaderBack/PanelHeaderBack';\nexport { PanelHeaderSubmit } from './components/PanelHeaderSubmit/PanelHeaderSubmit';\nexport type { PanelHeaderSubmitProps } from './components/PanelHeaderSubmit/PanelHeaderSubmit';\nexport { PanelHeaderEdit } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport type { PanelHeaderEditProps } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport { ModalCardBase } from './components/ModalCardBase/ModalCardBase';\nexport type { ModalCardBaseProps } from './components/ModalCardBase/ModalCardBase';\nexport { VisuallyHidden } from './components/VisuallyHidden/VisuallyHidden';\nexport type { VisuallyHiddenProps } from './components/VisuallyHidden/VisuallyHidden';\nexport { AdaptiveIconRenderer } from './components/AdaptiveIconRenderer/AdaptiveIconRenderer';\nexport type { AdaptiveIconRendererProps } from './components/AdaptiveIconRenderer/AdaptiveIconRenderer';\n\n/**\n * Wrappers\n */\nexport { AdaptivityProvider } from './components/AdaptivityProvider/AdaptivityProvider';\nexport type { AdaptivityProviderProps } from './components/AdaptivityProvider/AdaptivityProvider';\nexport { ConfigProvider } from './components/ConfigProvider/ConfigProvider';\nexport type { ConfigProviderProps } from './components/ConfigProvider/ConfigProvider';\nexport {\n useConfigProvider,\n ConfigProviderContext,\n} from './components/ConfigProvider/ConfigProviderContext';\nexport { ColorSchemeProvider } from './components/ColorSchemeProvider/ColorSchemeProvider';\nexport type { ColorSchemeProviderProps } from './components/ColorSchemeProvider/ColorSchemeProvider';\nexport { ColorScheme } from './lib/colorScheme';\nexport type { ColorSchemeType } from './lib/colorScheme';\nexport { DOMContext } from './lib/dom';\nexport { LocaleProvider } from './components/LocaleProvider/LocaleProvider';\nexport { DirectionProvider } from './components/DirectionProvider/DirectionProvider';\nexport type { LocaleProviderProps } from './components/LocaleProvider/LocaleProvider';\nexport type { DirectionProviderProps } from './components/DirectionProvider/DirectionProvider';\nexport { PlatformProvider } from './components/PlatformProvider/PlatformProvider';\nexport type { PlatformProviderProps } from './components/PlatformProvider/PlatformProvider';\nexport { Popover } from './components/Popover/Popover';\nexport type {\n PopoverProps,\n PopoverOnShownChange,\n PopoverArrowProps,\n PopoverContentRenderProp,\n} from './components/Popover/Popover';\nexport { usePopover } from './components/Popover/usePopover';\n\n/**\n * HOCs\n */\nexport { withPlatform } from './hoc/withPlatform';\n\n/**\n * Hooks\n */\nexport { usePlatform } from './hooks/usePlatform';\nexport { useConfigDirection as useDirection } from './hooks/useConfigDirection';\nexport { useLocale } from './hooks/useLocale';\nexport { useAdaptivity } from './hooks/useAdaptivity';\nexport {\n type UseAdaptivityConditionalRender,\n useAdaptivityConditionalRender,\n} from './hooks/useAdaptivityConditionalRender';\nexport {\n type UseAdaptivityWithJSMediaQueries,\n useAdaptivityWithJSMediaQueries,\n} from './hooks/useAdaptivityWithJSMediaQueries';\nexport { useColorScheme } from './hooks/useColorScheme';\nexport { usePagination } from './hooks/usePagination';\nexport { type Orientation, useOrientationChange } from './hooks/useOrientationChange';\nexport { usePatchChildren } from './hooks/usePatchChildren';\nexport { useTodayDate } from './hooks/useTodayDate';\nexport { useScrollLock, useManualScroll as useScroll } from './components/AppRoot/ScrollContext';\nexport { useNavTransition } from './components/NavTransitionContext/NavTransitionContext';\nexport { useNavDirection } from './components/NavTransitionDirectionContext/NavTransitionDirectionContext';\nexport { useNavId } from './components/NavIdContext/useNavId';\nexport type { TransitionDirection } from './components/NavTransitionDirectionContext/NavTransitionDirectionContext';\nexport { useCSSKeyframesAnimationController as unstable_useCSSKeyframesAnimationController } from './lib/animation';\nexport { useFocusVisible } from './hooks/useFocusVisible';\n\n/**\n * Utils\n */\nexport { classNames } from '@vkontakte/vkjs';\nexport { animate } from './lib/animate';\nexport { defaultFilterFn as filterFnForSelect } from './lib/select';\nexport { removeObjectKeys } from './lib/removeObjectKeys';\nexport { SSRWrapper } from './lib/SSR';\nexport type { SSRWrapperProps } from './lib/SSR';\nexport { platform, Platform } from './lib/platform';\nexport {\n ViewWidth,\n ViewHeight,\n SizeType,\n getViewWidthByViewportWidth,\n getViewHeightByViewportHeight,\n} from './lib/adaptivity';\nexport {\n type Placement as FloatingPlacement,\n type PlacementWithAuto as FloatingPlacementWithAuto,\n} from './lib/floating';\nexport type { AdaptivityProps } from './components/AdaptivityProvider/AdaptivityContext';\nexport { calcInitialsAvatarColor } from './helpers/avatar';\nexport { CustomScrollView } from './components/CustomScrollView/CustomScrollView';\nexport type { CustomScrollViewProps } from './components/CustomScrollView/CustomScrollView';\nexport { Popper } from './components/Popper/Popper';\nexport type { PopperProps } from './components/Popper/Popper';\n\n/**\n * Types\n */\nexport type { AlignType, HasPlatform, HasRef, HasRootRef } from './types';\nexport type { NavIdProps } from './lib/getNavId';\nexport type { PlatformType } from './lib/platform';\nexport type { TransitionContextProps } from './components/NavTransitionContext/NavTransitionContext';\n\n/**\n * Unstable\n */\nexport { ViewInfinite as unstable_ViewInfinite } from './components/View/ViewInfinite';\nexport type { ViewInfiniteProps as unstable_ViewInfiniteProps } from './components/View/ViewInfinite';\nexport { ModalPageFooter as unstable_ModalPageFooter } from './components/ModalPageFooter/ModalPageFooter';\nexport type { ModalPageFooterProps as unstable_ModalPageFooterProps } from './components/ModalPageFooter/ModalPageFooter';\n\nimport './styles/common.css';\n"],"names":["AppRoot","AppRootPortal","DisplayTitle","Title","Headline","Text","Paragraph","Subhead","Footnote","Caption","EllipsisText","UnstyledTextField","Tappable","FixedLayout","ImageBaseContext","ImageBase","getBadgeIconSizeByImageBaseSize","getFallbackIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize","Button","IconButton","ToolButton","Root","View","Panel","PanelHeaderButton","PanelHeader","PanelHeaderContent","PanelHeaderContext","SplitLayout","SplitCol","Epic","Tabbar","TabbarItem","ScrollArrow","HorizontalScroll","AspectRatio","Flex","SimpleGrid","PopoutWrapper","Alert","ActionSheet","ActionSheetItem","ActionSheetDefaultIosCloseItem","ScreenSpinner","ScreenSpinnerContext","Snackbar","Tooltip","useTooltip","ModalRoot","withModalRootContext","ModalRootContext","useModalRootContext","ModalPageContent","ModalPage","ModalPageHeader","ModalCard","ModalDismissButton","ModalOutsideButton","Badge","ContentBadge","ButtonGroup","Card","CardGrid","CardScroll","ContentCard","Header","Group","Gradient","List","Cell","RichCell","SimpleCell","CellButton","CellButtonGroup","HorizontalCell","HorizontalCellShowMore","Footer","InfoRow","Gallery","Avatar","GridAvatar","Image","Progress","Search","Tabs","TabsItem","Spinner","PullToRefresh","Link","Mark","OnboardingTooltip","OnboardingTooltipContainer","Counter","UsersStack","Separator","Spacing","Placeholder","Banner","MiniInfoCell","WriteBar","WriteBarIcon","SubnavigationBar","SubnavigationButton","Pagination","Accordion","AccordionContext","useAccordionContext","FormItem","FormField","FormLayoutGroup","FormStatus","Switch","File","DropZone","Input","Chip","ChipsInput","ChipsSelect","Slider","Textarea","SelectionControl","Radio","RadioGroup","Checkbox","Select","SelectMimicry","NativeSelect","CustomSelect","CustomSelectOption","SegmentedControl","Calendar","CalendarRange","DateInput","DateRangeInput","Skeleton","Div","DEFAULT_ARROW_HEIGHT","DEFAULT_ICON_ARROW_HEIGHT","DEFAULT_ARROW_WIDTH","DEFAULT_ICON_ARROW_WIDTH","DEFAULT_ARROW_PADDING","DEFAULT_ICON_ARROW_PADDING","DefaultIcon","FloatingArrow","Touch","PanelSpinner","PanelHeaderClose","PanelHeaderBack","PanelHeaderSubmit","PanelHeaderEdit","ModalCardBase","VisuallyHidden","AdaptiveIconRenderer","AdaptivityProvider","ConfigProvider","useConfigProvider","ConfigProviderContext","ColorSchemeProvider","ColorScheme","DOMContext","LocaleProvider","DirectionProvider","PlatformProvider","Popover","usePopover","withPlatform","usePlatform","useConfigDirection","useDirection","useLocale","useAdaptivity","useAdaptivityConditionalRender","useAdaptivityWithJSMediaQueries","useColorScheme","usePagination","useOrientationChange","usePatchChildren","useTodayDate","useScrollLock","useManualScroll","useScroll","useNavTransition","useNavDirection","useNavId","useCSSKeyframesAnimationController","unstable_useCSSKeyframesAnimationController","useFocusVisible","classNames","animate","defaultFilterFn","filterFnForSelect","removeObjectKeys","SSRWrapper","platform","Platform","ViewWidth","ViewHeight","SizeType","getViewWidthByViewportWidth","getViewHeightByViewportHeight","calcInitialsAvatarColor","CustomScrollView","Popper","ViewInfinite","unstable_ViewInfinite","ModalPageFooter","unstable_ModalPageFooter"],"mappings":"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"}
@@ -53,6 +53,14 @@ const EVENT_KEY_TO_COMMON_KEY_MAP = new Map([
53
53
  'Escape',
54
54
  Keys.ESCAPE
55
55
  ],
56
+ [
57
+ 'Delete',
58
+ Keys.DELETE
59
+ ],
60
+ [
61
+ 'Backspace',
62
+ Keys.BACKSPACE
63
+ ],
56
64
  [
57
65
  'Home',
58
66
  Keys.HOME
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/accessibility.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { HasChildren, ValuesOfObject } from '../types';\nimport { getTextFromChildren } from './children';\n\nexport const FOCUSABLE_ELEMENTS_LIST: string[] = [\n 'a[href]',\n 'area[href]',\n 'input:not([disabled]):not([hidden]):not([type=\"hidden\"]):not([aria-hidden])',\n 'select:not([disabled]):not([hidden]):not([aria-hidden])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'iframe',\n 'audio',\n 'video',\n '[contenteditable]',\n '[tabindex]:not([tabindex=\"-1\"])',\n];\n\nexport const Keys = {\n ENTER: 'Enter',\n SPACE: 'Space',\n TAB: 'Tab',\n ESCAPE: 'Escape',\n HOME: 'Home',\n END: 'End',\n DELETE: 'Delete',\n BACKSPACE: 'Backspace',\n ARROW_LEFT: 'ArrowLeft',\n ARROW_RIGHT: 'ArrowRight',\n ARROW_UP: 'ArrowUp',\n ARROW_DOWN: 'ArrowDown',\n PAGE_UP: 'PageUp',\n PAGE_DOWN: 'PageDown',\n} as const;\n\nexport type KeysValues = ValuesOfObject<typeof Keys>;\n\nconst EVENT_KEY_TO_COMMON_KEY_MAP = new Map([\n ['Enter', Keys.ENTER],\n ['Space', Keys.SPACE],\n ['Spacebar', Keys.SPACE],\n [' ', Keys.SPACE],\n ['Tab', Keys.TAB],\n ['Escape', Keys.ESCAPE],\n ['Home', Keys.HOME],\n ['End', Keys.END],\n ['ArrowLeft', Keys.ARROW_LEFT],\n ['ArrowRight', Keys.ARROW_RIGHT],\n ['ArrowUp', Keys.ARROW_UP],\n ['ArrowDown', Keys.ARROW_DOWN],\n ['PageUp', Keys.PAGE_UP],\n ['PageDown', Keys.PAGE_DOWN],\n]);\n\nexport function pressedKey<T extends KeyboardEvent | React.KeyboardEvent>(\n event: T,\n):\n | 'Enter'\n | 'Space'\n | 'Tab'\n | 'Escape'\n | 'Home'\n | 'End'\n | 'ArrowLeft'\n | 'ArrowRight'\n | 'ArrowUp'\n | 'ArrowDown'\n | 'PageUp'\n | 'PageDown'\n | null {\n const foundKey = EVENT_KEY_TO_COMMON_KEY_MAP.get(event.key);\n return foundKey ? foundKey : null;\n}\n\nexport const FOCUS_ALLOW_LIST_KEYS: Set<string> = new Set<string>([\n Keys.TAB,\n Keys.ARROW_LEFT,\n Keys.ARROW_RIGHT,\n Keys.ARROW_UP,\n Keys.ARROW_DOWN,\n Keys.BACKSPACE,\n Keys.DELETE,\n]);\n\nexport function isKeyboardFocusingStarted<T extends KeyboardEvent | React.KeyboardEvent>(\n event: T,\n): boolean {\n return FOCUS_ALLOW_LIST_KEYS.has(event.key);\n}\n\nexport function shouldTriggerClickOnEnterOrSpace(\n e: KeyboardEvent | React.KeyboardEvent<HTMLElement>,\n): boolean {\n const el = e.target as HTMLElement;\n const { tagName } = el;\n\n const role = el.getAttribute('role');\n\n const isValidKeyboardEventTarget: boolean =\n el.isContentEditable !== true &&\n tagName !== 'INPUT' &&\n tagName !== 'TEXTAREA' &&\n (role === 'button' || role === 'link' || role === 'menuitem');\n\n const isNativeAnchorEl = tagName === 'A' && el.hasAttribute('href');\n const keyPressed = pressedKey(e);\n\n return (\n isValidKeyboardEventTarget &&\n // trigger buttons on Space\n ((keyPressed === Keys.SPACE && role === 'button') ||\n // trigger non-native links and buttons on Enter\n (keyPressed === Keys.ENTER && !isNativeAnchorEl))\n );\n}\n\n/**\n * @see https://doka.guide/a11y/aria-expanded/\n */\nexport const injectAriaExpandedPropByRole = (\n props: React.ComponentProps<any>,\n state: boolean,\n role?: React.AriaRole,\n): React.ComponentProps<any> => {\n switch (role) {\n case 'dialog':\n case 'menu':\n case 'application':\n case 'tab':\n case 'menuitem':\n case 'treeitem':\n case 'gridcell':\n props['aria-expanded'] = state;\n return props;\n default:\n return props;\n }\n};\n\ninterface HasAccessibleNameProps\n extends Pick<React.AriaAttributes, 'aria-label' | 'aria-labelledby'>,\n HasChildren {\n title?: string;\n}\n\nexport function hasAccessibleName({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n title,\n children,\n}: HasAccessibleNameProps): boolean {\n if (ariaLabel || ariaLabelledBy || title) {\n return true;\n }\n\n const accessibleLabel = getTextFromChildren(children);\n\n if (accessibleLabel.trim() !== '') {\n return true;\n }\n\n return false;\n}\n\n/**\n * @private\n */\nexport const getHorizontalFocusGoTo = (\n keys: Extract<KeysValues, 'ArrowUp' | 'ArrowLeft' | 'ArrowDown' | 'ArrowRight' | 'Home' | 'End'>,\n): 'prev' | 'next' | 'first' | 'last' => {\n switch (keys) {\n case Keys.ARROW_UP:\n case Keys.ARROW_LEFT:\n return 'prev';\n case Keys.ARROW_DOWN:\n case Keys.ARROW_RIGHT:\n return 'next';\n case Keys.HOME:\n return 'first';\n case Keys.END:\n return 'last';\n }\n};\n"],"names":["getTextFromChildren","FOCUSABLE_ELEMENTS_LIST","Keys","ENTER","SPACE","TAB","ESCAPE","HOME","END","DELETE","BACKSPACE","ARROW_LEFT","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","PAGE_UP","PAGE_DOWN","EVENT_KEY_TO_COMMON_KEY_MAP","Map","pressedKey","event","foundKey","get","key","FOCUS_ALLOW_LIST_KEYS","Set","isKeyboardFocusingStarted","has","shouldTriggerClickOnEnterOrSpace","e","el","target","tagName","role","getAttribute","isValidKeyboardEventTarget","isContentEditable","isNativeAnchorEl","hasAttribute","keyPressed","injectAriaExpandedPropByRole","props","state","hasAccessibleName","ariaLabel","ariaLabelledBy","title","children","accessibleLabel","trim","getHorizontalFocusGoTo","keys"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,gBAAa;AAEjD,OAAO,MAAMC,0BAAoC;IAC/C;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD,CAAC;AAEF,OAAO,MAAMC,OAAO;IAClBC,OAAO;IACPC,OAAO;IACPC,KAAK;IACLC,QAAQ;IACRC,MAAM;IACNC,KAAK;IACLC,QAAQ;IACRC,WAAW;IACXC,YAAY;IACZC,aAAa;IACbC,UAAU;IACVC,YAAY;IACZC,SAAS;IACTC,WAAW;AACb,EAAW;AAIX,MAAMC,8BAA8B,IAAIC,IAAI;IAC1C;QAAC;QAAShB,KAAKC,KAAK;KAAC;IACrB;QAAC;QAASD,KAAKE,KAAK;KAAC;IACrB;QAAC;QAAYF,KAAKE,KAAK;KAAC;IACxB;QAAC;QAAKF,KAAKE,KAAK;KAAC;IACjB;QAAC;QAAOF,KAAKG,GAAG;KAAC;IACjB;QAAC;QAAUH,KAAKI,MAAM;KAAC;IACvB;QAAC;QAAQJ,KAAKK,IAAI;KAAC;IACnB;QAAC;QAAOL,KAAKM,GAAG;KAAC;IACjB;QAAC;QAAaN,KAAKS,UAAU;KAAC;IAC9B;QAAC;QAAcT,KAAKU,WAAW;KAAC;IAChC;QAAC;QAAWV,KAAKW,QAAQ;KAAC;IAC1B;QAAC;QAAaX,KAAKY,UAAU;KAAC;IAC9B;QAAC;QAAUZ,KAAKa,OAAO;KAAC;IACxB;QAAC;QAAYb,KAAKc,SAAS;KAAC;CAC7B;AAED,OAAO,SAASG,WACdC,KAAQ;IAeR,MAAMC,WAAWJ,4BAA4BK,GAAG,CAACF,MAAMG,GAAG;IAC1D,OAAOF,WAAWA,WAAW;AAC/B;AAEA,OAAO,MAAMG,wBAAqC,IAAIC,IAAY;IAChEvB,KAAKG,GAAG;IACRH,KAAKS,UAAU;IACfT,KAAKU,WAAW;IAChBV,KAAKW,QAAQ;IACbX,KAAKY,UAAU;IACfZ,KAAKQ,SAAS;IACdR,KAAKO,MAAM;CACZ,EAAE;AAEH,OAAO,SAASiB,0BACdN,KAAQ;IAER,OAAOI,sBAAsBG,GAAG,CAACP,MAAMG,GAAG;AAC5C;AAEA,OAAO,SAASK,iCACdC,CAAmD;IAEnD,MAAMC,KAAKD,EAAEE,MAAM;IACnB,MAAM,EAAEC,OAAO,EAAE,GAAGF;IAEpB,MAAMG,OAAOH,GAAGI,YAAY,CAAC;IAE7B,MAAMC,6BACJL,GAAGM,iBAAiB,KAAK,QACzBJ,YAAY,WACZA,YAAY,cACXC,CAAAA,SAAS,YAAYA,SAAS,UAAUA,SAAS,UAAS;IAE7D,MAAMI,mBAAmBL,YAAY,OAAOF,GAAGQ,YAAY,CAAC;IAC5D,MAAMC,aAAapB,WAAWU;IAE9B,OACEM,8BACA,2BAA2B;IAC1B,CAAA,AAACI,eAAerC,KAAKE,KAAK,IAAI6B,SAAS,YACtC,gDAAgD;IAC/CM,eAAerC,KAAKC,KAAK,IAAI,CAACkC,gBAAgB;AAErD;AAEA;;CAEC,GACD,OAAO,MAAMG,+BAA+B,CAC1CC,OACAC,OACAT;IAEA,OAAQA;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;YACHQ,KAAK,CAAC,gBAAgB,GAAGC;YACzB,OAAOD;QACT;YACE,OAAOA;IACX;AACF,EAAE;AAQF,OAAO,SAASE,kBAAkB,EAChC,cAAcC,SAAS,EACvB,mBAAmBC,cAAc,EACjCC,KAAK,EACLC,QAAQ,EACe;IACvB,IAAIH,aAAaC,kBAAkBC,OAAO;QACxC,OAAO;IACT;IAEA,MAAME,kBAAkBhD,oBAAoB+C;IAE5C,IAAIC,gBAAgBC,IAAI,OAAO,IAAI;QACjC,OAAO;IACT;IAEA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,MAAMC,yBAAyB,CACpCC;IAEA,OAAQA;QACN,KAAKjD,KAAKW,QAAQ;QAClB,KAAKX,KAAKS,UAAU;YAClB,OAAO;QACT,KAAKT,KAAKY,UAAU;QACpB,KAAKZ,KAAKU,WAAW;YACnB,OAAO;QACT,KAAKV,KAAKK,IAAI;YACZ,OAAO;QACT,KAAKL,KAAKM,GAAG;YACX,OAAO;IACX;AACF,EAAE"}
1
+ {"version":3,"sources":["../../../src/lib/accessibility.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { HasChildren, ValuesOfObject } from '../types';\nimport { getTextFromChildren } from './children';\n\nexport const FOCUSABLE_ELEMENTS_LIST: string[] = [\n 'a[href]',\n 'area[href]',\n 'input:not([disabled]):not([hidden]):not([type=\"hidden\"]):not([aria-hidden])',\n 'select:not([disabled]):not([hidden]):not([aria-hidden])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'iframe',\n 'audio',\n 'video',\n '[contenteditable]',\n '[tabindex]:not([tabindex=\"-1\"])',\n];\n\nexport const Keys = {\n ENTER: 'Enter',\n SPACE: 'Space',\n TAB: 'Tab',\n ESCAPE: 'Escape',\n HOME: 'Home',\n END: 'End',\n DELETE: 'Delete',\n BACKSPACE: 'Backspace',\n ARROW_LEFT: 'ArrowLeft',\n ARROW_RIGHT: 'ArrowRight',\n ARROW_UP: 'ArrowUp',\n ARROW_DOWN: 'ArrowDown',\n PAGE_UP: 'PageUp',\n PAGE_DOWN: 'PageDown',\n} as const;\n\nexport type KeysValues = ValuesOfObject<typeof Keys>;\n\nconst EVENT_KEY_TO_COMMON_KEY_MAP = new Map([\n ['Enter', Keys.ENTER],\n ['Space', Keys.SPACE],\n ['Spacebar', Keys.SPACE],\n [' ', Keys.SPACE],\n ['Tab', Keys.TAB],\n ['Escape', Keys.ESCAPE],\n ['Delete', Keys.DELETE],\n ['Backspace', Keys.BACKSPACE],\n ['Home', Keys.HOME],\n ['End', Keys.END],\n ['ArrowLeft', Keys.ARROW_LEFT],\n ['ArrowRight', Keys.ARROW_RIGHT],\n ['ArrowUp', Keys.ARROW_UP],\n ['ArrowDown', Keys.ARROW_DOWN],\n ['PageUp', Keys.PAGE_UP],\n ['PageDown', Keys.PAGE_DOWN],\n]);\n\nexport function pressedKey<T extends KeyboardEvent | React.KeyboardEvent>(\n event: T,\n):\n | 'Enter'\n | 'Space'\n | 'Tab'\n | 'Escape'\n | 'Home'\n | 'End'\n | 'ArrowLeft'\n | 'ArrowRight'\n | 'ArrowUp'\n | 'ArrowDown'\n | 'PageUp'\n | 'PageDown'\n | 'Backspace'\n | 'Delete'\n | null {\n const foundKey = EVENT_KEY_TO_COMMON_KEY_MAP.get(event.key);\n return foundKey ? foundKey : null;\n}\n\nexport const FOCUS_ALLOW_LIST_KEYS: Set<string> = new Set<string>([\n Keys.TAB,\n Keys.ARROW_LEFT,\n Keys.ARROW_RIGHT,\n Keys.ARROW_UP,\n Keys.ARROW_DOWN,\n Keys.BACKSPACE,\n Keys.DELETE,\n]);\n\nexport function isKeyboardFocusingStarted<T extends KeyboardEvent | React.KeyboardEvent>(\n event: T,\n): boolean {\n return FOCUS_ALLOW_LIST_KEYS.has(event.key);\n}\n\nexport function shouldTriggerClickOnEnterOrSpace(\n e: KeyboardEvent | React.KeyboardEvent<HTMLElement>,\n): boolean {\n const el = e.target as HTMLElement;\n const { tagName } = el;\n\n const role = el.getAttribute('role');\n\n const isValidKeyboardEventTarget: boolean =\n el.isContentEditable !== true &&\n tagName !== 'INPUT' &&\n tagName !== 'TEXTAREA' &&\n (role === 'button' || role === 'link' || role === 'menuitem');\n\n const isNativeAnchorEl = tagName === 'A' && el.hasAttribute('href');\n const keyPressed = pressedKey(e);\n\n return (\n isValidKeyboardEventTarget &&\n // trigger buttons on Space\n ((keyPressed === Keys.SPACE && role === 'button') ||\n // trigger non-native links and buttons on Enter\n (keyPressed === Keys.ENTER && !isNativeAnchorEl))\n );\n}\n\n/**\n * @see https://doka.guide/a11y/aria-expanded/\n */\nexport const injectAriaExpandedPropByRole = (\n props: React.ComponentProps<any>,\n state: boolean,\n role?: React.AriaRole,\n): React.ComponentProps<any> => {\n switch (role) {\n case 'dialog':\n case 'menu':\n case 'application':\n case 'tab':\n case 'menuitem':\n case 'treeitem':\n case 'gridcell':\n props['aria-expanded'] = state;\n return props;\n default:\n return props;\n }\n};\n\ninterface HasAccessibleNameProps\n extends Pick<React.AriaAttributes, 'aria-label' | 'aria-labelledby'>,\n HasChildren {\n title?: string;\n}\n\nexport function hasAccessibleName({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n title,\n children,\n}: HasAccessibleNameProps): boolean {\n if (ariaLabel || ariaLabelledBy || title) {\n return true;\n }\n\n const accessibleLabel = getTextFromChildren(children);\n\n if (accessibleLabel.trim() !== '') {\n return true;\n }\n\n return false;\n}\n\n/**\n * @private\n */\nexport const getHorizontalFocusGoTo = (\n keys: Extract<KeysValues, 'ArrowUp' | 'ArrowLeft' | 'ArrowDown' | 'ArrowRight' | 'Home' | 'End'>,\n): 'prev' | 'next' | 'first' | 'last' => {\n switch (keys) {\n case Keys.ARROW_UP:\n case Keys.ARROW_LEFT:\n return 'prev';\n case Keys.ARROW_DOWN:\n case Keys.ARROW_RIGHT:\n return 'next';\n case Keys.HOME:\n return 'first';\n case Keys.END:\n return 'last';\n }\n};\n"],"names":["getTextFromChildren","FOCUSABLE_ELEMENTS_LIST","Keys","ENTER","SPACE","TAB","ESCAPE","HOME","END","DELETE","BACKSPACE","ARROW_LEFT","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","PAGE_UP","PAGE_DOWN","EVENT_KEY_TO_COMMON_KEY_MAP","Map","pressedKey","event","foundKey","get","key","FOCUS_ALLOW_LIST_KEYS","Set","isKeyboardFocusingStarted","has","shouldTriggerClickOnEnterOrSpace","e","el","target","tagName","role","getAttribute","isValidKeyboardEventTarget","isContentEditable","isNativeAnchorEl","hasAttribute","keyPressed","injectAriaExpandedPropByRole","props","state","hasAccessibleName","ariaLabel","ariaLabelledBy","title","children","accessibleLabel","trim","getHorizontalFocusGoTo","keys"],"mappings":"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"}
@@ -1,6 +1,8 @@
1
- import { addDays, addMonths, addWeeks, eachDayOfInterval, endOfMonth, endOfWeek, isAfter, isBefore, isFirstDayOfMonth, isLastDayOfMonth, isSameDay, startOfMonth, startOfWeek, subDays, subMonths, subWeeks } from "date-fns";
1
+ import { isSameDate } from "@vkontakte/vkjs";
2
+ import { addDays, addMonths, addWeeks, eachDayOfInterval, endOfWeek, startOfMonth, startOfWeek, subDays, subMonths, subWeeks } from "date-fns";
2
3
  import { clamp as clampNumber } from "../helpers/math.js";
3
4
  import { Keys } from "./accessibility.js";
5
+ import { endOfMonth, isLastDayOfMonth } from "./date.js";
4
6
  export const DEFAULT_MAX_YEAR = 9999;
5
7
  // 100 - из-за ограничений dayjs https://github.com/iamkun/dayjs/issues/2591
6
8
  export const DEFAULT_MIN_YEAR = 100;
@@ -103,7 +105,7 @@ export const getWeeks = (viewDate, weekStartsOn)=>{
103
105
  let current = start;
104
106
  const nestedWeeks = [];
105
107
  let lastDay = null;
106
- while(isBefore(current, end)){
108
+ while(current < end){
107
109
  const weekNumber = Math.floor(count / 7);
108
110
  nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
109
111
  const day = current.getDay();
@@ -125,16 +127,16 @@ export const setTimeEqual = (to, from)=>{
125
127
  }
126
128
  return to;
127
129
  };
128
- export const isFirstDay = (day, dayOfWeek)=>dayOfWeek === 0 || isFirstDayOfMonth(day);
130
+ export const isFirstDay = (day, dayOfWeek)=>dayOfWeek === 0 || day.getDate() === 1;
129
131
  export const isLastDay = (day, dayOfWeek)=>dayOfWeek === 6 || isLastDayOfMonth(day);
130
132
  /**
131
133
  * Возвращает дату, ограниченную `min` и/или `max` значениями
132
134
  */ export function clamp(day, options = {}) {
133
135
  const { min, max } = options;
134
- if (min && isBefore(day, min)) {
136
+ if (min && day < min) {
135
137
  return min;
136
138
  }
137
- if (max && isAfter(day, max)) {
139
+ if (max && day > max) {
138
140
  return max;
139
141
  }
140
142
  return day;
@@ -143,10 +145,10 @@ export const isLastDay = (day, dayOfWeek)=>dayOfWeek === 6 || isLastDayOfMonth(d
143
145
  * Позволяет определить удовлетворяет ли исходная дата заданным ограничения `min` и/или `max`
144
146
  */ export function isDayMinMaxRestricted(day, options = {}) {
145
147
  const { min, max, withTime = false } = options;
146
- if (!withTime && (min && isSameDay(day, min) || max && isSameDay(day, max))) {
148
+ if (!withTime && (min && isSameDate(day, min) || max && isSameDate(day, max))) {
147
149
  return false;
148
150
  }
149
- return Boolean(min && isBefore(day, min) || max && isAfter(day, max));
151
+ return Boolean(min && day < min || max && day > max);
150
152
  }
151
153
 
152
154
  //# sourceMappingURL=calendar.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/calendar.ts"],"sourcesContent":["import {\n addDays,\n addMonths,\n addWeeks,\n eachDayOfInterval,\n endOfMonth,\n endOfWeek,\n isAfter,\n isBefore,\n isFirstDayOfMonth,\n isLastDayOfMonth,\n isSameDay,\n startOfMonth,\n startOfWeek,\n subDays,\n subMonths,\n subWeeks,\n} from 'date-fns';\nimport { clamp as clampNumber } from '../helpers/math';\nimport { Keys, type KeysValues } from './accessibility';\n\nexport const DEFAULT_MAX_YEAR = 9999;\n// 100 - из-за ограничений dayjs https://github.com/iamkun/dayjs/issues/2591\nexport const DEFAULT_MIN_YEAR = 100;\n\nexport const getYears = (\n currentYear: number,\n range: number,\n): Array<{\n value: number;\n label: string;\n}> => {\n const years: Array<{\n value: number;\n label: string;\n }> = [];\n\n const minYear = clampNumber(currentYear - range, DEFAULT_MIN_YEAR, DEFAULT_MAX_YEAR);\n const maxYear = clampNumber(currentYear + range, DEFAULT_MIN_YEAR, DEFAULT_MAX_YEAR);\n\n for (let i = minYear; i <= maxYear; i++) {\n years.push({ label: String(i).padStart(4, '0'), value: i });\n }\n\n return years;\n};\n\nexport const getMonths = (\n locale?: string,\n): Array<{\n value: number;\n label: string;\n}> => {\n const months: Array<{\n value: number;\n label: string;\n }> = [];\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long',\n });\n\n for (let i = 0; i < 12; i++) {\n months.push({\n label: formatter.format(new Date(2023, i, 15)),\n value: i,\n });\n }\n\n return months;\n};\n\nexport const getDaysNames = (\n now: Date,\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n locale?: string,\n): Array<{ short: string; long: string }> => {\n const shortFormatter = new Intl.DateTimeFormat(locale, {\n weekday: 'short',\n });\n const longFormatter = new Intl.DateTimeFormat(locale, {\n weekday: 'long',\n });\n return eachDayOfInterval({\n start: startOfWeek(now, { weekStartsOn }),\n end: endOfWeek(now, { weekStartsOn }),\n }).map((day) => ({ short: shortFormatter.format(day), long: longFormatter.format(day) }));\n};\n\nexport const NAVIGATION_KEYS: KeysValues[] = [\n Keys.ARROW_UP,\n Keys.ARROW_DOWN,\n Keys.ARROW_LEFT,\n Keys.ARROW_RIGHT,\n Keys.HOME,\n Keys.END,\n Keys.PAGE_UP,\n Keys.PAGE_DOWN,\n];\n\nexport const navigateDate = (date?: Date | null, key?: (typeof NAVIGATION_KEYS)[number]): Date => {\n let newDate = date ?? new Date();\n\n switch (key) {\n case Keys.ARROW_RIGHT:\n newDate = addDays(newDate, 1);\n break;\n case Keys.ARROW_LEFT:\n newDate = subDays(newDate, 1);\n break;\n case Keys.ARROW_UP:\n newDate = subWeeks(newDate, 1);\n break;\n case Keys.ARROW_DOWN:\n newDate = addWeeks(newDate, 1);\n break;\n case Keys.HOME:\n newDate = startOfWeek(newDate, { weekStartsOn: 1 });\n break;\n case Keys.END:\n newDate = endOfWeek(newDate, { weekStartsOn: 1 });\n break;\n case Keys.PAGE_UP:\n newDate = subMonths(newDate, 1);\n break;\n case Keys.PAGE_DOWN:\n newDate = addMonths(newDate, 1);\n break;\n }\n\n return newDate;\n};\n\nexport const getWeeks = (viewDate: Date, weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6): Date[][] => {\n const start = startOfWeek(startOfMonth(viewDate), { weekStartsOn });\n const end = endOfWeek(endOfMonth(viewDate), { weekStartsOn });\n\n let count = 0;\n let current = start;\n const nestedWeeks: Date[][] = [];\n let lastDay = null;\n while (isBefore(current, end)) {\n const weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n const day = current.getDay();\n if (lastDay !== day) {\n lastDay = day;\n nestedWeeks[weekNumber].push(current);\n count += 1;\n }\n current = addDays(current, 1);\n }\n return nestedWeeks;\n};\n\nexport const setTimeEqual = (to: Date, from?: Date | null): Date => {\n if (from) {\n to.setHours(from.getHours());\n to.setMinutes(from.getMinutes());\n to.setSeconds(from.getSeconds());\n to.setMilliseconds(from.getMilliseconds());\n }\n\n return to;\n};\n\nexport const isFirstDay = (day: Date, dayOfWeek: number): boolean =>\n dayOfWeek === 0 || isFirstDayOfMonth(day);\n\nexport const isLastDay = (day: Date, dayOfWeek: number): boolean =>\n dayOfWeek === 6 || isLastDayOfMonth(day);\n\n/**\n * Возвращает дату, ограниченную `min` и/или `max` значениями\n */\nexport function clamp(day: Date, options: { min?: Date; max?: Date } = {}): Date {\n const { min, max } = options;\n if (min && isBefore(day, min)) {\n return min;\n }\n if (max && isAfter(day, max)) {\n return max;\n }\n return day;\n}\n\n/**\n * Позволяет определить удовлетворяет ли исходная дата заданным ограничения `min` и/или `max`\n */\nexport function isDayMinMaxRestricted(\n day: Date,\n options: { min?: Date; max?: Date; withTime?: boolean } = {},\n): boolean {\n const { min, max, withTime = false } = options;\n if (!withTime && ((min && isSameDay(day, min)) || (max && isSameDay(day, max)))) {\n return false;\n }\n return Boolean((min && isBefore(day, min)) || (max && isAfter(day, max)));\n}\n"],"names":["addDays","addMonths","addWeeks","eachDayOfInterval","endOfMonth","endOfWeek","isAfter","isBefore","isFirstDayOfMonth","isLastDayOfMonth","isSameDay","startOfMonth","startOfWeek","subDays","subMonths","subWeeks","clamp","clampNumber","Keys","DEFAULT_MAX_YEAR","DEFAULT_MIN_YEAR","getYears","currentYear","range","years","minYear","maxYear","i","push","label","String","padStart","value","getMonths","locale","months","formatter","Intl","DateTimeFormat","month","format","Date","getDaysNames","now","weekStartsOn","shortFormatter","weekday","longFormatter","start","end","map","day","short","long","NAVIGATION_KEYS","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","HOME","END","PAGE_UP","PAGE_DOWN","navigateDate","date","key","newDate","getWeeks","viewDate","count","current","nestedWeeks","lastDay","weekNumber","Math","floor","getDay","setTimeEqual","to","from","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds","isFirstDay","dayOfWeek","isLastDay","options","min","max","isDayMinMaxRestricted","withTime","Boolean"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/lib/calendar.ts"],"sourcesContent":["import { isSameDate } from '@vkontakte/vkjs';\nimport {\n addDays,\n addMonths,\n addWeeks,\n eachDayOfInterval,\n endOfWeek,\n startOfMonth,\n startOfWeek,\n subDays,\n subMonths,\n subWeeks,\n} from 'date-fns';\nimport { clamp as clampNumber } from '../helpers/math';\nimport { Keys, type KeysValues } from './accessibility';\nimport { endOfMonth, isLastDayOfMonth } from './date';\n\nexport const DEFAULT_MAX_YEAR = 9999;\n// 100 - из-за ограничений dayjs https://github.com/iamkun/dayjs/issues/2591\nexport const DEFAULT_MIN_YEAR = 100;\n\nexport const getYears = (\n currentYear: number,\n range: number,\n): Array<{\n value: number;\n label: string;\n}> => {\n const years: Array<{\n value: number;\n label: string;\n }> = [];\n\n const minYear = clampNumber(currentYear - range, DEFAULT_MIN_YEAR, DEFAULT_MAX_YEAR);\n const maxYear = clampNumber(currentYear + range, DEFAULT_MIN_YEAR, DEFAULT_MAX_YEAR);\n\n for (let i = minYear; i <= maxYear; i++) {\n years.push({ label: String(i).padStart(4, '0'), value: i });\n }\n\n return years;\n};\n\nexport const getMonths = (\n locale?: string,\n): Array<{\n value: number;\n label: string;\n}> => {\n const months: Array<{\n value: number;\n label: string;\n }> = [];\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long',\n });\n\n for (let i = 0; i < 12; i++) {\n months.push({\n label: formatter.format(new Date(2023, i, 15)),\n value: i,\n });\n }\n\n return months;\n};\n\nexport const getDaysNames = (\n now: Date,\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n locale?: string,\n): Array<{ short: string; long: string }> => {\n const shortFormatter = new Intl.DateTimeFormat(locale, {\n weekday: 'short',\n });\n const longFormatter = new Intl.DateTimeFormat(locale, {\n weekday: 'long',\n });\n return eachDayOfInterval({\n start: startOfWeek(now, { weekStartsOn }),\n end: endOfWeek(now, { weekStartsOn }),\n }).map((day) => ({ short: shortFormatter.format(day), long: longFormatter.format(day) }));\n};\n\nexport const NAVIGATION_KEYS: KeysValues[] = [\n Keys.ARROW_UP,\n Keys.ARROW_DOWN,\n Keys.ARROW_LEFT,\n Keys.ARROW_RIGHT,\n Keys.HOME,\n Keys.END,\n Keys.PAGE_UP,\n Keys.PAGE_DOWN,\n];\n\nexport const navigateDate = (date?: Date | null, key?: (typeof NAVIGATION_KEYS)[number]): Date => {\n let newDate = date ?? new Date();\n\n switch (key) {\n case Keys.ARROW_RIGHT:\n newDate = addDays(newDate, 1);\n break;\n case Keys.ARROW_LEFT:\n newDate = subDays(newDate, 1);\n break;\n case Keys.ARROW_UP:\n newDate = subWeeks(newDate, 1);\n break;\n case Keys.ARROW_DOWN:\n newDate = addWeeks(newDate, 1);\n break;\n case Keys.HOME:\n newDate = startOfWeek(newDate, { weekStartsOn: 1 });\n break;\n case Keys.END:\n newDate = endOfWeek(newDate, { weekStartsOn: 1 });\n break;\n case Keys.PAGE_UP:\n newDate = subMonths(newDate, 1);\n break;\n case Keys.PAGE_DOWN:\n newDate = addMonths(newDate, 1);\n break;\n }\n\n return newDate;\n};\n\nexport const getWeeks = (viewDate: Date, weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6): Date[][] => {\n const start = startOfWeek(startOfMonth(viewDate), { weekStartsOn });\n const end = endOfWeek(endOfMonth(viewDate), { weekStartsOn });\n\n let count = 0;\n let current = start;\n const nestedWeeks: Date[][] = [];\n let lastDay = null;\n while (current < end) {\n const weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n const day = current.getDay();\n if (lastDay !== day) {\n lastDay = day;\n nestedWeeks[weekNumber].push(current);\n count += 1;\n }\n current = addDays(current, 1);\n }\n return nestedWeeks;\n};\n\nexport const setTimeEqual = (to: Date, from?: Date | null): Date => {\n if (from) {\n to.setHours(from.getHours());\n to.setMinutes(from.getMinutes());\n to.setSeconds(from.getSeconds());\n to.setMilliseconds(from.getMilliseconds());\n }\n\n return to;\n};\n\nexport const isFirstDay = (day: Date, dayOfWeek: number): boolean =>\n dayOfWeek === 0 || day.getDate() === 1;\n\nexport const isLastDay = (day: Date, dayOfWeek: number): boolean =>\n dayOfWeek === 6 || isLastDayOfMonth(day);\n\n/**\n * Возвращает дату, ограниченную `min` и/или `max` значениями\n */\nexport function clamp(day: Date, options: { min?: Date; max?: Date } = {}): Date {\n const { min, max } = options;\n if (min && day < min) {\n return min;\n }\n if (max && day > max) {\n return max;\n }\n return day;\n}\n\n/**\n * Позволяет определить удовлетворяет ли исходная дата заданным ограничения `min` и/или `max`\n */\nexport function isDayMinMaxRestricted(\n day: Date,\n options: { min?: Date; max?: Date; withTime?: boolean } = {},\n): boolean {\n const { min, max, withTime = false } = options;\n if (!withTime && ((min && isSameDate(day, min)) || (max && isSameDate(day, max)))) {\n return false;\n }\n return Boolean((min && day < min) || (max && day > max));\n}\n"],"names":["isSameDate","addDays","addMonths","addWeeks","eachDayOfInterval","endOfWeek","startOfMonth","startOfWeek","subDays","subMonths","subWeeks","clamp","clampNumber","Keys","endOfMonth","isLastDayOfMonth","DEFAULT_MAX_YEAR","DEFAULT_MIN_YEAR","getYears","currentYear","range","years","minYear","maxYear","i","push","label","String","padStart","value","getMonths","locale","months","formatter","Intl","DateTimeFormat","month","format","Date","getDaysNames","now","weekStartsOn","shortFormatter","weekday","longFormatter","start","end","map","day","short","long","NAVIGATION_KEYS","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","HOME","END","PAGE_UP","PAGE_DOWN","navigateDate","date","key","newDate","getWeeks","viewDate","count","current","nestedWeeks","lastDay","weekNumber","Math","floor","getDay","setTimeEqual","to","from","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds","isFirstDay","dayOfWeek","getDate","isLastDay","options","min","max","isDayMinMaxRestricted","withTime","Boolean"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
+ import { isSameDate } from "@vkontakte/vkjs";
1
2
  import { TZDateMini } from "@vkontakte/vkui-date-fns-tz";
2
- import { lightFormat } from "date-fns";
3
3
  export function parse(input, format, referenceDate = new Date()) {
4
4
  const match2 = /^\d\d/; // 00 - 99
5
5
  const match4 = /^\d{4}/; // 0000 - 9999
@@ -132,11 +132,74 @@ export const convertDateFromTimeZone = (date, timezone)=>{
132
132
  const systemTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
133
133
  return date ? TZDateMini.tz(systemTimezone, date) : undefined;
134
134
  };
135
- export function format(date, format) {
136
- return lightFormat(date, format);
135
+ const dateOptions = {
136
+ day: '2-digit',
137
+ month: '2-digit',
138
+ year: 'numeric'
139
+ };
140
+ // dd.MM.yyyy
141
+ export const dateFormatter = /*#__PURE__*/ new Intl.DateTimeFormat('ru-RU', dateOptions);
142
+ class DateTimeFormat extends Intl.DateTimeFormat {
143
+ constructor(){
144
+ super('ru-RU', {
145
+ ...dateOptions,
146
+ hour: '2-digit',
147
+ minute: '2-digit'
148
+ });
149
+ }
150
+ format(date) {
151
+ return super.format(date).replace(',', '');
152
+ }
153
+ }
154
+ // dd.MM.yyyy HH:mm
155
+ export const dateTimeFormatter = /*#__PURE__*/ new DateTimeFormat();
156
+ /**
157
+ * Возвращает дату конца месяца
158
+ */ export function endOfMonth(date) {
159
+ const result = new Date(date);
160
+ const month = result.getMonth();
161
+ result.setFullYear(result.getFullYear(), month + 1, 0);
162
+ result.setHours(23, 59, 59, 999);
163
+ return result;
164
+ }
165
+ export function endOfDay(date) {
166
+ const result = new Date(date);
167
+ result.setHours(23, 59, 59, 999);
168
+ return result;
169
+ }
170
+ /**
171
+ * Проверяет, что переданные даты относятся к одному и тому же месяцу
172
+ *
173
+ * @example
174
+ * ```ts
175
+ * import assert from 'node:assert';
176
+ * import { isSameMonth } from './date.ts';
177
+ *
178
+ * const d1 = new Date();
179
+ * const d2 = new Date();
180
+ * assert.ok(isSameMonth(d1, d2));
181
+ * ```
182
+ */ export function isSameMonth(d1, d2) {
183
+ return d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear();
184
+ }
185
+ export function isLastDayOfMonth(date) {
186
+ return +endOfDay(date) === +endOfMonth(date);
187
+ }
188
+ export function isWithinInterval(date, interval) {
189
+ const [startTime, endTime] = interval.sort((a, b)=>+a - +b);
190
+ return date >= startTime && date <= endTime;
191
+ }
192
+ export function isToday(date) {
193
+ return isSameDate(date, new Date());
194
+ }
195
+ export function isYesterday(date) {
196
+ const yesterday = new Date();
197
+ yesterday.setDate(yesterday.getDate() - 1);
198
+ return isSameDate(date, yesterday);
137
199
  }
138
200
  export function isMatch(input, format) {
139
201
  return !isNaN(+parse(input, format));
140
202
  }
203
+ export const millisecondsInSecond = 1000;
141
204
 
142
205
  //# sourceMappingURL=date.js.map