urfu-ui-kit-react 2.1.3 → 2.1.5

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 (412) hide show
  1. package/README.md +4 -25
  2. package/dist/components/Accordion/Accordion.js +18 -0
  3. package/dist/components/BreadCrumbs/BreadCrumbs.d.ts +1 -1
  4. package/dist/components/BreadCrumbs/BreadCrumbs.d.ts.map +1 -1
  5. package/dist/components/BreadCrumbs/BreadCrumbs.js +32 -0
  6. package/dist/components/Button/Button.d.ts +1 -0
  7. package/dist/components/Button/Button.d.ts.map +1 -1
  8. package/dist/components/Button/Button.js +88 -0
  9. package/dist/components/Button/Button.types.d.ts +9 -3
  10. package/dist/components/Button/Button.types.d.ts.map +1 -1
  11. package/dist/components/Button/ButtonRefreshIcon.js +35 -0
  12. package/dist/components/Calendar/Calendar.d.ts +1 -5
  13. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  14. package/dist/components/Calendar/Calendar.js +355 -0
  15. package/dist/components/Calendar/CalendarSelect.js +149 -0
  16. package/dist/components/Calendar/MaskedDateInput.d.ts.map +1 -1
  17. package/dist/components/Calendar/MaskedDateInput.js +191 -0
  18. package/dist/components/Calendar/dateMask.d.ts +0 -1
  19. package/dist/components/Calendar/dateMask.d.ts.map +1 -1
  20. package/dist/components/Card/Card.d.ts +1 -1
  21. package/dist/components/Card/Card.d.ts.map +1 -1
  22. package/dist/components/Card/Card.js +75 -0
  23. package/dist/components/Checkbox/Checkbox.js +30 -0
  24. package/dist/components/ColumnSettings/ColumnSettings.js +216 -0
  25. package/dist/components/ConfirmModal/ConfirmModal.d.ts +1 -0
  26. package/dist/components/ConfirmModal/ConfirmModal.d.ts.map +1 -1
  27. package/dist/components/ConfirmModal/ConfirmModal.js +40 -0
  28. package/dist/components/ErrorScreen/ErrorScreen.d.ts +1 -1
  29. package/dist/components/ErrorScreen/ErrorScreen.d.ts.map +1 -1
  30. package/dist/components/ErrorScreen/ErrorScreen.js +221 -0
  31. package/dist/components/ErrorScreen/ErrorScreenIllustration.js +57 -0
  32. package/dist/components/FormField/FormField.d.ts +1 -1
  33. package/dist/components/FormField/FormField.d.ts.map +1 -1
  34. package/dist/components/FormField/FormField.js +40 -0
  35. package/dist/components/Icon/Icon.d.ts +1 -1
  36. package/dist/components/Icon/Icon.d.ts.map +1 -1
  37. package/dist/components/Icon/Icon.js +32 -0
  38. package/dist/components/Icon/Icon.types.d.ts +3 -1
  39. package/dist/components/Icon/Icon.types.d.ts.map +1 -1
  40. package/dist/components/InputExpandTextarea/InputExpandTextarea.d.ts +1 -1
  41. package/dist/components/InputExpandTextarea/InputExpandTextarea.d.ts.map +1 -1
  42. package/dist/components/InputExpandTextarea/InputExpandTextarea.js +144 -0
  43. package/dist/components/InputFile/InputFile.d.ts +1 -1
  44. package/dist/components/InputFile/InputFile.d.ts.map +1 -1
  45. package/dist/components/InputFile/InputFile.js +203 -0
  46. package/dist/components/InputFile/InputFile.types.d.ts +0 -6
  47. package/dist/components/InputFile/InputFile.types.d.ts.map +1 -1
  48. package/dist/components/InputNumber/InputNumber.d.ts +1 -1
  49. package/dist/components/InputNumber/InputNumber.d.ts.map +1 -1
  50. package/dist/components/InputNumber/InputNumber.js +220 -0
  51. package/dist/components/InputText/InputAffix.d.ts +1 -1
  52. package/dist/components/InputText/InputAffix.js +109 -0
  53. package/dist/components/InputText/InputText.d.ts +2 -1
  54. package/dist/components/InputText/InputText.d.ts.map +1 -1
  55. package/dist/components/InputText/InputText.js +137 -0
  56. package/dist/components/InputTime/InputTime.d.ts +1 -1
  57. package/dist/components/InputTime/InputTime.d.ts.map +1 -1
  58. package/dist/components/InputTime/InputTime.js +335 -0
  59. package/dist/components/InputTime/InputTimeDropdown.js +31 -0
  60. package/dist/components/InputTime/inputTimeKeyDown.js +63 -0
  61. package/dist/components/InputTime/useInputTimeWheel.js +45 -0
  62. package/dist/components/Menu/Menu.d.ts +1 -1
  63. package/dist/components/Menu/Menu.d.ts.map +1 -1
  64. package/dist/components/Menu/Menu.js +113 -0
  65. package/dist/components/Message/Message.js +29 -0
  66. package/dist/components/Modal/Modal.d.ts +1 -0
  67. package/dist/components/Modal/Modal.d.ts.map +1 -1
  68. package/dist/components/Modal/Modal.js +102 -0
  69. package/dist/components/Modal/editorFocus.js +15 -0
  70. package/dist/components/Modal/useModalFocus.js +112 -0
  71. package/dist/components/Modal/useModalTitleClearance.js +48 -0
  72. package/dist/components/Multiselect/Multiselect.d.ts +1 -0
  73. package/dist/components/Multiselect/Multiselect.d.ts.map +1 -1
  74. package/dist/components/Multiselect/Multiselect.js +408 -0
  75. package/dist/components/Notification/Notification.d.ts +1 -1
  76. package/dist/components/Notification/Notification.d.ts.map +1 -1
  77. package/dist/components/Notification/Notification.js +156 -0
  78. package/dist/components/OfflineBanner/OfflineBanner.d.ts +1 -1
  79. package/dist/components/OfflineBanner/OfflineBanner.d.ts.map +1 -1
  80. package/dist/components/OfflineBanner/OfflineBanner.js +40 -0
  81. package/dist/components/Pagination/Pagination.d.ts +1 -1
  82. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  83. package/dist/components/Pagination/Pagination.js +126 -0
  84. package/dist/components/Preloader/Preloader.d.ts.map +1 -1
  85. package/dist/components/Preloader/Preloader.js +60 -0
  86. package/dist/components/Radio/Radio.js +34 -0
  87. package/dist/components/Search/Search.d.ts +1 -1
  88. package/dist/components/Search/Search.d.ts.map +1 -1
  89. package/dist/components/Search/Search.js +47 -0
  90. package/dist/components/SearchSelect/SearchSelect.js +295 -0
  91. package/dist/components/SearchSelect/SearchSelectOption.js +41 -0
  92. package/dist/components/SearchSelect/useFlippedPlacement.js +25 -0
  93. package/dist/components/Select/MobileOptionSheet.d.ts +1 -1
  94. package/dist/components/Select/MobileOptionSheet.d.ts.map +1 -1
  95. package/dist/components/Select/MobileOptionSheet.js +116 -0
  96. package/dist/components/Select/Select.js +319 -0
  97. package/dist/components/Skeleton/Skeleton.js +38 -0
  98. package/dist/components/Skeleton/Skeleton.types.d.ts +4 -2
  99. package/dist/components/Skeleton/Skeleton.types.d.ts.map +1 -1
  100. package/dist/components/Status/Status.js +43 -0
  101. package/dist/components/StickyActionBar/StickyActionBar.d.ts +1 -1
  102. package/dist/components/StickyActionBar/StickyActionBar.d.ts.map +1 -1
  103. package/dist/components/StickyActionBar/StickyActionBar.js +73 -0
  104. package/dist/components/Switch/Switch.d.ts +1 -1
  105. package/dist/components/Switch/Switch.d.ts.map +1 -1
  106. package/dist/components/Switch/Switch.js +29 -0
  107. package/dist/components/Table/Filter/DefaultInput.d.ts.map +1 -1
  108. package/dist/components/Table/Filter/DefaultInput.js +22 -0
  109. package/dist/components/Table/Filter/Filter.js +233 -0
  110. package/dist/components/Table/Filter/Filter.types.d.ts +17 -13
  111. package/dist/components/Table/Filter/Filter.types.d.ts.map +1 -1
  112. package/dist/components/Table/Filter/FilterBooleanBox.d.ts +1 -0
  113. package/dist/components/Table/Filter/FilterBooleanBox.d.ts.map +1 -1
  114. package/dist/components/Table/Filter/FilterBooleanBox.js +40 -0
  115. package/dist/components/Table/Filter/FilterBoxShell.js +89 -0
  116. package/dist/components/Table/Filter/FilterConditionSelect.js +14 -0
  117. package/dist/components/Table/Filter/FilterDateBox.d.ts +1 -0
  118. package/dist/components/Table/Filter/FilterDateBox.d.ts.map +1 -1
  119. package/dist/components/Table/Filter/FilterDateBox.js +173 -0
  120. package/dist/components/Table/Filter/FilterPanel.js +25 -0
  121. package/dist/components/Table/Filter/FilterSortIndicator.js +24 -0
  122. package/dist/components/Table/Filter/FilterStringBox.js +115 -0
  123. package/dist/components/Table/Filter/Functions.d.ts +0 -6
  124. package/dist/components/Table/Filter/Functions.d.ts.map +1 -1
  125. package/dist/components/Table/Filter/Functions.js +76 -0
  126. package/dist/components/Table/Filter/SelectFilter.js +114 -0
  127. package/dist/components/Table/Filter/SelectOptions.js +21 -0
  128. package/dist/components/Table/Filter/TableFilterOptions.d.ts +1 -0
  129. package/dist/components/Table/Filter/TableFilterOptions.d.ts.map +1 -1
  130. package/dist/components/Table/Filter/TableFilterOptions.js +268 -0
  131. package/dist/components/Table/Filter/TableFilterSortButton.js +17 -0
  132. package/dist/components/Table/Filter/filterBoxHelpers.js +2 -0
  133. package/dist/components/Table/Filter/filterExpression.js +48 -0
  134. package/dist/components/Table/Filter/filterLoading.js +2 -0
  135. package/dist/components/Table/Filter/useFilterDates.js +33 -0
  136. package/dist/components/Table/Filter/useFilterOptionsPreload.js +22 -0
  137. package/dist/components/Table/Filter/useLocalFilterSearch.js +32 -0
  138. package/dist/components/Table/Filter/usePagedFilterOptions.js +71 -0
  139. package/dist/components/Table/Filter/useServerFilterOptions.js +35 -0
  140. package/dist/components/Table/Filter/useVirtualOptionWindow.js +80 -0
  141. package/dist/components/Table/Functions.js +54 -0
  142. package/dist/components/Table/Skeleton/TableSkeleton.js +28 -0
  143. package/dist/components/Table/Skeleton/createSkeletonColumns.js +9 -0
  144. package/dist/components/Table/Table.d.ts +1 -0
  145. package/dist/components/Table/Table.d.ts.map +1 -1
  146. package/dist/components/Table/Table.dataPipeline.d.ts.map +1 -1
  147. package/dist/components/Table/Table.dataPipeline.js +75 -0
  148. package/dist/components/Table/Table.helpers.d.ts +2 -2
  149. package/dist/components/Table/Table.helpers.d.ts.map +1 -1
  150. package/dist/components/Table/Table.helpers.js +72 -0
  151. package/dist/components/Table/Table.js +419 -0
  152. package/dist/components/Table/Table.types.d.ts +6 -2
  153. package/dist/components/Table/Table.types.d.ts.map +1 -1
  154. package/dist/components/Table/TableHead.d.ts.map +1 -1
  155. package/dist/components/Table/TableHead.js +189 -0
  156. package/dist/components/Table/TableMobileCard.js +215 -0
  157. package/dist/components/Table/TableMobileFilters.js +56 -0
  158. package/dist/components/Table/TableMobileView.js +316 -0
  159. package/dist/components/Table/TableRow.js +136 -0
  160. package/dist/components/Table/useColumnResize.d.ts +3 -2
  161. package/dist/components/Table/useColumnResize.d.ts.map +1 -1
  162. package/dist/components/Table/useColumnResize.js +44 -0
  163. package/dist/components/Table/useDelayedSkeleton.d.ts +0 -2
  164. package/dist/components/Table/useDelayedSkeleton.d.ts.map +1 -1
  165. package/dist/components/Table/useDelayedSkeleton.js +32 -0
  166. package/dist/components/Table/useMobileFilterColumns.d.ts +1 -1
  167. package/dist/components/Table/useMobileFilterColumns.d.ts.map +1 -1
  168. package/dist/components/Table/useMobileFilterColumns.js +52 -0
  169. package/dist/components/Table/useStableColumnWidths.js +22 -0
  170. package/dist/components/Table/useTableColumnPinning.d.ts +2 -57
  171. package/dist/components/Table/useTableColumnPinning.d.ts.map +1 -1
  172. package/dist/components/Table/useTableColumnPinning.js +52 -0
  173. package/dist/components/Table/useTableFilters.js +39 -0
  174. package/dist/components/Table/useTableSortState.js +38 -0
  175. package/dist/components/Table/useTableVirtualization.js +145 -0
  176. package/dist/components/Tabs/Tabs.d.ts +1 -0
  177. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  178. package/dist/components/Tabs/Tabs.js +141 -0
  179. package/dist/components/Tabs/tabsIndicator.d.ts +14 -0
  180. package/dist/components/Tabs/tabsIndicator.d.ts.map +1 -0
  181. package/dist/components/Tabs/useTabsIndicator.d.ts +6 -0
  182. package/dist/components/Tabs/useTabsIndicator.d.ts.map +1 -0
  183. package/dist/components/Tabs/useTabsIndicator.js +14 -0
  184. package/dist/components/Tabs/useTabsOverflow.js +49 -0
  185. package/dist/components/Textarea/Textarea.js +102 -0
  186. package/dist/components/Tooltip/Tooltip.d.ts +1 -0
  187. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  188. package/dist/components/Tooltip/Tooltip.js +218 -0
  189. package/dist/components/TreeView/TreeView.d.ts +1 -0
  190. package/dist/components/TreeView/TreeView.d.ts.map +1 -1
  191. package/dist/components/TreeView/TreeView.js +323 -0
  192. package/dist/components/TreeView/TreeView.types.d.ts +0 -4
  193. package/dist/components/TreeView/TreeView.types.d.ts.map +1 -1
  194. package/dist/dev/index.js +2 -2
  195. package/dist/dev/types/vanilla/src/dev/shown.d.ts +0 -2
  196. package/dist/dev/types/vanilla/src/dev/store.d.ts +0 -4
  197. package/dist/fonts/icons/urfu-ui-icon-font.eot +0 -0
  198. package/dist/fonts/icons/urfu-ui-icon-font.svg +4 -1
  199. package/dist/fonts/icons/urfu-ui-icon-font.ttf +0 -0
  200. package/dist/fonts/icons/urfu-ui-icon-font.woff +0 -0
  201. package/dist/fonts/icons/urfu-ui-icon-font.woff2 +0 -0
  202. package/dist/hooks/useActiveOptionScroll.js +20 -0
  203. package/dist/hooks/useAnchoredPosition.js +37 -0
  204. package/dist/hooks/useAutoId.d.ts +0 -1
  205. package/dist/hooks/useAutoId.d.ts.map +1 -1
  206. package/dist/hooks/useAutoId.js +7 -0
  207. package/dist/hooks/useAutoPortal.js +11 -0
  208. package/dist/hooks/useDebounce.js +11 -0
  209. package/dist/hooks/useDismiss.d.ts +1 -1
  210. package/dist/hooks/useDismiss.d.ts.map +1 -1
  211. package/dist/hooks/useDismiss.js +20 -0
  212. package/dist/hooks/useInputOverflow.d.ts +9 -0
  213. package/dist/hooks/useInputOverflow.d.ts.map +1 -0
  214. package/dist/hooks/useInputOverflow.js +16 -0
  215. package/dist/hooks/useMediaQuery.js +21 -0
  216. package/dist/hooks/useMobilePicker.js +7 -0
  217. package/dist/hooks/useMountTransition.d.ts +1 -1
  218. package/dist/hooks/useMountTransition.d.ts.map +1 -1
  219. package/dist/hooks/useMountTransition.js +21 -0
  220. package/dist/hooks/useOnlineStatus.js +11 -0
  221. package/dist/hooks/useOptionKeyboardNavigation.js +63 -0
  222. package/dist/hooks/usePagination.js +31 -0
  223. package/dist/hooks/useSelectEngine.d.ts +3 -3
  224. package/dist/hooks/useSelectEngine.d.ts.map +1 -1
  225. package/dist/hooks/useSelectEngine.js +96 -0
  226. package/dist/hooks/useTableSort.js +13 -0
  227. package/dist/index.d.ts +16 -0
  228. package/dist/index.d.ts.map +1 -1
  229. package/dist/responsive/uiKitResponsive.js +44 -0
  230. package/dist/shared/fieldAccessibility.js +8 -0
  231. package/dist/shared/iconNames.d.ts +5 -0
  232. package/dist/shared/iconNames.d.ts.map +1 -0
  233. package/dist/shared/inputOverflow.d.ts +10 -0
  234. package/dist/shared/inputOverflow.d.ts.map +1 -0
  235. package/dist/shared/kitCopy.js +9 -0
  236. package/dist/shared/optionStateColors.js +5 -0
  237. package/dist/shared/optionValue.d.ts +1 -1
  238. package/dist/shared/optionValue.d.ts.map +1 -1
  239. package/dist/shared/optionValue.js +11 -0
  240. package/dist/shared/popupTransition.js +11 -0
  241. package/dist/shared/size.d.ts +0 -1
  242. package/dist/shared/size.d.ts.map +1 -1
  243. package/dist/shared/size.js +4 -0
  244. package/dist/shared/sortRows.js +24 -0
  245. package/dist/shared/uiKitDefaults.js +25 -0
  246. package/dist/style-no-fonts.css +1 -1
  247. package/dist/style.css +1 -1
  248. package/dist/style.layer.css +8 -8
  249. package/dist/style.shell.css +15 -11
  250. package/dist/urfu-ui-kit-react.js +57 -17543
  251. package/dist/vanilla/core/BoundedOptionPageCache.js +41 -0
  252. package/dist/vanilla/core/dateMask.js +28 -0
  253. package/dist/vanilla/core/describeError.js +243 -0
  254. package/dist/vanilla/core/devLauncherOffset.js +20 -0
  255. package/dist/vanilla/core/distributeTabs.js +25 -0
  256. package/dist/vanilla/core/hasPreviousPage.js +6 -0
  257. package/dist/vanilla/core/inputMode.js +17 -0
  258. package/dist/vanilla/core/inputOverflow.js +34 -0
  259. package/dist/vanilla/core/kitRegistry.js +160 -0
  260. package/dist/vanilla/core/reconcileColumnOrder.js +5 -0
  261. package/dist/vanilla/core/sheetTitle.js +11 -0
  262. package/dist/vanilla/core/tabsIndicator.js +38 -0
  263. package/dist/vanilla/core/validation.js +21 -0
  264. package/dist/vendor/@floating-ui/core/dist/floating-ui.core.js +323 -0
  265. package/dist/vendor/@floating-ui/dom/dist/floating-ui.dom.js +383 -0
  266. package/dist/vendor/@floating-ui/react/dist/floating-ui.react.js +255 -0
  267. package/dist/vendor/@floating-ui/react-dom/dist/floating-ui.react-dom.js +183 -0
  268. package/dist/vendor/@floating-ui/utils/dist/floating-ui.utils.dom.js +110 -0
  269. package/dist/vendor/@floating-ui/utils/dist/floating-ui.utils.js +106 -0
  270. package/dist/vendor/clsx/dist/clsx.js +14 -0
  271. package/dist/vendor/date-fns/_lib/addLeadingZeros.js +5 -0
  272. package/dist/vendor/date-fns/_lib/defaultOptions.js +5 -0
  273. package/dist/vendor/date-fns/_lib/format/formatters.js +547 -0
  274. package/dist/vendor/date-fns/_lib/format/lightFormatters.js +56 -0
  275. package/dist/vendor/date-fns/_lib/format/longFormatters.js +47 -0
  276. package/dist/vendor/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +16 -0
  277. package/dist/vendor/date-fns/_lib/protectedTokens.js +16 -0
  278. package/dist/vendor/date-fns/addDays.js +7 -0
  279. package/dist/vendor/date-fns/addHours.js +6 -0
  280. package/dist/vendor/date-fns/addMilliseconds.js +7 -0
  281. package/dist/vendor/date-fns/addMinutes.js +6 -0
  282. package/dist/vendor/date-fns/addMonths.js +17 -0
  283. package/dist/vendor/date-fns/addQuarters.js +6 -0
  284. package/dist/vendor/date-fns/addSeconds.js +5 -0
  285. package/dist/vendor/date-fns/addWeeks.js +6 -0
  286. package/dist/vendor/date-fns/addYears.js +5 -0
  287. package/dist/vendor/date-fns/constants.js +2 -0
  288. package/dist/vendor/date-fns/constructFrom.js +4 -0
  289. package/dist/vendor/date-fns/differenceInCalendarDays.js +8 -0
  290. package/dist/vendor/date-fns/differenceInCalendarMonths.js +6 -0
  291. package/dist/vendor/date-fns/differenceInCalendarQuarters.js +7 -0
  292. package/dist/vendor/date-fns/differenceInCalendarYears.js +6 -0
  293. package/dist/vendor/date-fns/differenceInDays.js +13 -0
  294. package/dist/vendor/date-fns/endOfDay.js +6 -0
  295. package/dist/vendor/date-fns/endOfMonth.js +6 -0
  296. package/dist/vendor/date-fns/endOfWeek.js +8 -0
  297. package/dist/vendor/date-fns/endOfYear.js +6 -0
  298. package/dist/vendor/date-fns/format.js +53 -0
  299. package/dist/vendor/date-fns/getDate.js +5 -0
  300. package/dist/vendor/date-fns/getDay.js +5 -0
  301. package/dist/vendor/date-fns/getDayOfYear.js +8 -0
  302. package/dist/vendor/date-fns/getDaysInMonth.js +7 -0
  303. package/dist/vendor/date-fns/getDefaultOptions.js +5 -0
  304. package/dist/vendor/date-fns/getHours.js +5 -0
  305. package/dist/vendor/date-fns/getISODay.js +6 -0
  306. package/dist/vendor/date-fns/getISOWeek.js +9 -0
  307. package/dist/vendor/date-fns/getISOWeekYear.js +12 -0
  308. package/dist/vendor/date-fns/getMinutes.js +5 -0
  309. package/dist/vendor/date-fns/getMonth.js +5 -0
  310. package/dist/vendor/date-fns/getQuarter.js +6 -0
  311. package/dist/vendor/date-fns/getSeconds.js +5 -0
  312. package/dist/vendor/date-fns/getTime.js +5 -0
  313. package/dist/vendor/date-fns/getWeek.js +9 -0
  314. package/dist/vendor/date-fns/getWeekYear.js +14 -0
  315. package/dist/vendor/date-fns/getYear.js +5 -0
  316. package/dist/vendor/date-fns/isAfter.js +6 -0
  317. package/dist/vendor/date-fns/isBefore.js +6 -0
  318. package/dist/vendor/date-fns/isDate.js +4 -0
  319. package/dist/vendor/date-fns/isEqual.js +6 -0
  320. package/dist/vendor/date-fns/isSameDay.js +6 -0
  321. package/dist/vendor/date-fns/isSameMonth.js +6 -0
  322. package/dist/vendor/date-fns/isSameQuarter.js +6 -0
  323. package/dist/vendor/date-fns/isSameWeek.js +6 -0
  324. package/dist/vendor/date-fns/isSameYear.js +6 -0
  325. package/dist/vendor/date-fns/isValid.js +9 -0
  326. package/dist/vendor/date-fns/isWithinInterval.js +9 -0
  327. package/dist/vendor/date-fns/locale/_lib/buildFormatLongFn.js +7 -0
  328. package/dist/vendor/date-fns/locale/_lib/buildLocalizeFn.js +16 -0
  329. package/dist/vendor/date-fns/locale/_lib/buildMatchFn.js +29 -0
  330. package/dist/vendor/date-fns/locale/_lib/buildMatchPatternFn.js +13 -0
  331. package/dist/vendor/date-fns/locale/en-US/_lib/formatDistance.js +68 -0
  332. package/dist/vendor/date-fns/locale/en-US/_lib/formatLong.js +31 -0
  333. package/dist/vendor/date-fns/locale/en-US/_lib/formatRelative.js +9 -0
  334. package/dist/vendor/date-fns/locale/en-US/_lib/localize.js +153 -0
  335. package/dist/vendor/date-fns/locale/en-US/_lib/match.js +108 -0
  336. package/dist/vendor/date-fns/locale/en-US.js +18 -0
  337. package/dist/vendor/date-fns/locale/ru/_lib/formatDistance.js +182 -0
  338. package/dist/vendor/date-fns/locale/ru/_lib/formatLong.js +28 -0
  339. package/dist/vendor/date-fns/locale/ru/_lib/formatRelative.js +62 -0
  340. package/dist/vendor/date-fns/locale/ru/_lib/localize.js +177 -0
  341. package/dist/vendor/date-fns/locale/ru/_lib/match.js +109 -0
  342. package/dist/vendor/date-fns/locale/ru.js +18 -0
  343. package/dist/vendor/date-fns/max.js +9 -0
  344. package/dist/vendor/date-fns/min.js +9 -0
  345. package/dist/vendor/date-fns/parse/_lib/Parser.js +20 -0
  346. package/dist/vendor/date-fns/parse/_lib/Setter.js +36 -0
  347. package/dist/vendor/date-fns/parse/_lib/constants.js +46 -0
  348. package/dist/vendor/date-fns/parse/_lib/parsers/AMPMMidnightParser.js +46 -0
  349. package/dist/vendor/date-fns/parse/_lib/parsers/AMPMParser.js +46 -0
  350. package/dist/vendor/date-fns/parse/_lib/parsers/DateParser.js +59 -0
  351. package/dist/vendor/date-fns/parse/_lib/parsers/DayOfYearParser.js +49 -0
  352. package/dist/vendor/date-fns/parse/_lib/parsers/DayParser.js +45 -0
  353. package/dist/vendor/date-fns/parse/_lib/parsers/DayPeriodParser.js +46 -0
  354. package/dist/vendor/date-fns/parse/_lib/parsers/EraParser.js +29 -0
  355. package/dist/vendor/date-fns/parse/_lib/parsers/ExtendedYearParser.js +19 -0
  356. package/dist/vendor/date-fns/parse/_lib/parsers/FractionOfSecondParser.js +20 -0
  357. package/dist/vendor/date-fns/parse/_lib/parsers/Hour0To11Parser.js +30 -0
  358. package/dist/vendor/date-fns/parse/_lib/parsers/Hour0to23Parser.js +30 -0
  359. package/dist/vendor/date-fns/parse/_lib/parsers/Hour1To24Parser.js +31 -0
  360. package/dist/vendor/date-fns/parse/_lib/parsers/Hour1to12Parser.js +31 -0
  361. package/dist/vendor/date-fns/parse/_lib/parsers/ISODayParser.js +101 -0
  362. package/dist/vendor/date-fns/parse/_lib/parsers/ISOTimezoneParser.js +45 -0
  363. package/dist/vendor/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js +45 -0
  364. package/dist/vendor/date-fns/parse/_lib/parsers/ISOWeekParser.js +47 -0
  365. package/dist/vendor/date-fns/parse/_lib/parsers/ISOWeekYearParser.js +38 -0
  366. package/dist/vendor/date-fns/parse/_lib/parsers/LocalDayParser.js +76 -0
  367. package/dist/vendor/date-fns/parse/_lib/parsers/LocalWeekParser.js +46 -0
  368. package/dist/vendor/date-fns/parse/_lib/parsers/LocalWeekYearParser.js +67 -0
  369. package/dist/vendor/date-fns/parse/_lib/parsers/MinuteParser.js +30 -0
  370. package/dist/vendor/date-fns/parse/_lib/parsers/MonthParser.js +73 -0
  371. package/dist/vendor/date-fns/parse/_lib/parsers/QuarterParser.js +71 -0
  372. package/dist/vendor/date-fns/parse/_lib/parsers/SecondParser.js +30 -0
  373. package/dist/vendor/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js +76 -0
  374. package/dist/vendor/date-fns/parse/_lib/parsers/StandAloneMonthParser.js +73 -0
  375. package/dist/vendor/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js +71 -0
  376. package/dist/vendor/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js +20 -0
  377. package/dist/vendor/date-fns/parse/_lib/parsers/TimestampSecondsParser.js +20 -0
  378. package/dist/vendor/date-fns/parse/_lib/parsers/YearParser.js +47 -0
  379. package/dist/vendor/date-fns/parse/_lib/parsers.js +65 -0
  380. package/dist/vendor/date-fns/parse/_lib/utils.js +90 -0
  381. package/dist/vendor/date-fns/parse.js +85 -0
  382. package/dist/vendor/date-fns/parseISO.js +119 -0
  383. package/dist/vendor/date-fns/set.js +8 -0
  384. package/dist/vendor/date-fns/setDay.js +9 -0
  385. package/dist/vendor/date-fns/setHours.js +6 -0
  386. package/dist/vendor/date-fns/setISODay.js +8 -0
  387. package/dist/vendor/date-fns/setISOWeek.js +7 -0
  388. package/dist/vendor/date-fns/setMinutes.js +6 -0
  389. package/dist/vendor/date-fns/setMonth.js +10 -0
  390. package/dist/vendor/date-fns/setQuarter.js +7 -0
  391. package/dist/vendor/date-fns/setSeconds.js +6 -0
  392. package/dist/vendor/date-fns/setWeek.js +7 -0
  393. package/dist/vendor/date-fns/setYear.js +7 -0
  394. package/dist/vendor/date-fns/startOfDay.js +6 -0
  395. package/dist/vendor/date-fns/startOfISOWeek.js +5 -0
  396. package/dist/vendor/date-fns/startOfISOWeekYear.js +8 -0
  397. package/dist/vendor/date-fns/startOfMonth.js +6 -0
  398. package/dist/vendor/date-fns/startOfQuarter.js +6 -0
  399. package/dist/vendor/date-fns/startOfWeek.js +8 -0
  400. package/dist/vendor/date-fns/startOfWeekYear.js +10 -0
  401. package/dist/vendor/date-fns/startOfYear.js +7 -0
  402. package/dist/vendor/date-fns/subDays.js +5 -0
  403. package/dist/vendor/date-fns/subMonths.js +5 -0
  404. package/dist/vendor/date-fns/subQuarters.js +5 -0
  405. package/dist/vendor/date-fns/subWeeks.js +5 -0
  406. package/dist/vendor/date-fns/subYears.js +5 -0
  407. package/dist/vendor/date-fns/toDate.js +5 -0
  408. package/dist/vendor/date-fns/transpose.js +15 -0
  409. package/dist/vendor/react-datepicker/dist/es/index.js +2696 -0
  410. package/package.json +37 -35
  411. package/dist/hooks/useOutsideAlerter.d.ts +0 -3
  412. package/dist/hooks/useOutsideAlerter.d.ts.map +0 -1
package/README.md CHANGED
@@ -54,10 +54,9 @@ export function App() {
54
54
 
55
55
  ### Первичная настройка
56
56
 
57
- ```bash
58
- # Установить зависимости
59
- npm install
57
+ Пакет живёт в монорепозитории [ui/urfu-ui-kit](https://gitlab.urfu.ru/ui/urfu-ui-kit), папка `packages/react`. Зависимости — `npm ci` в корне репозитория, остальные команды — в папке `packages/react`.
60
58
 
59
+ ```bash
61
60
  # Запустить Storybook (примеры компонентов)
62
61
  npm run sb
63
62
 
@@ -124,33 +123,13 @@ Button, Modal, ConfirmModal, Tooltip, NotificationProvider / useNotification, Sw
124
123
  - React ^18.0.0 или ^19.0.0
125
124
  - React DOM ^18.0.0 или ^19.0.0
126
125
  - TypeScript ^5.2
127
- - Браузеры: Chrome, Edge и Яндекс Браузер 109+, Firefox 121+, Safari 16+. `style.layer.css` старше Chrome 99 / Firefox 97 / Safari 15.4 не применяется совсем — [поддерживаемые браузеры](./docs/browsers.md)
126
+ - Браузеры: Chrome, Edge и Яндекс Браузер 109+, Firefox 121+, Safari 16+. `style.layer.css` старше Chrome 99 / Firefox 97 / Safari 15.4 не применяется совсем — [поддерживаемые браузеры](https://cdn.my1.urfu.ru/react-components/browsers.html)
128
127
 
129
128
  ---
130
129
 
131
130
  ## 📝 История версий
132
131
 
133
- **2.1.2 — 22.10.2026:** шрифты Montserrat — все начертания файлами, `font-display: swap`: `style.css` в gzip 454 → 63 КБ.
134
-
135
- **2.1.1 — 22.10.2026:** `style.shell.css` без текстовых шрифтов (gzip 462 → 70 КБ), сбросы кита в `style.layer.css` — в подслое `u-kit.reset`, в `style.shell.css` — в слое `u-kit-shell-reset`, заголовок `Modal` в строке крестика без лишнего зазора до подзаголовка, стрелка `Multiselect` не поверх прилипших панелей, панель `ColumnSettings` не уезжает за экран при смене ширины окна, кнопка dev-панели — компактный круг с логотипом кита, `Tooltip` по фокусу открывается только с клавиатуры, шапка и подписи `ColumnSettings` на телефоне, одно кольцо фокуса у `Select` и `Multiselect`.
136
-
137
- **2.1.0 — 21.10.2026:** стили для оболочки ЛК (`style.layer.css`, `style.shell.css`), dev-панель `urfu-ui-kit-react/dev`, `describeError` и `describeFieldErrors`, `ErrorScreen` по макетам, `OfflineBanner`, поля `size="dense"`, префикс и суффикс `InputText`, иконки и `disabled` у вкладок, уведомления под шапкой. Vanilla внутри пакета. Что заметят сервисы — в [истории версий](./docs/versioning.md).
138
-
139
- **2.0.5 — 13.10.2026:** мобильные шторки для `Modal`, `ConfirmModal`, `Select` и `Multiselect` (`configureUiKit({ mobileSheets: true })`).
140
-
141
- **2.0.4 — 12.10.2026:** исправление смены колонок Table, текстовый фильтр с дебаунсом, точные счётчики выбора, адаптивная высота и кеш поиска фильтров, компактная мобильная панель фильтров, иконки в Select и выравнивание крестика Modal. API сохранены, новые режимы подключаются явно. Требуется vanilla `^2.9.1`.
142
-
143
- **2.0.3 — 08.10.2026:** встроенные серверные и постраничные фильтры Table, мобильные фильтры и закреплённые колонки, загрузка Button, ErrorScreen и Skeleton, исправления уведомлений, селектов, подсказок и вкладок. Включена правка Search от Дианы: длинный запрос не перекрывается крестиком очистки. Существующие API сохранены; новые режимы подключаются явно. Требуется vanilla `^2.9.1`.
144
-
145
- **2.0.0 — опубликована 03.10.2026:** общие фильтры и мобильные карточки Table, порядок колонок, модальные окна с управлением фокусом, единая мобильная панель действий и доступность полей. Изменения Дианы, подготовленные для 1.13.2, входят в этот выпуск. Требуется vanilla 2.9.0; обе версии доступны в npm.
146
-
147
- Переход на 2.0.0 — в [руководстве подключения](./docs/getting-started.md).
148
-
149
- **v1.13.1** (2026-09-25) — адаптивные карточки таблиц, читаемые статусы и исправления контролов.
150
-
151
- **v1.13.0** (2026-09-23) — подключаемый адаптивный режим УрФУ.
152
-
153
- Подробности и предыдущие версии — в [истории версий](./docs/versioning.md).
132
+ [История версий](https://cdn.my1.urfu.ru/react-components/versioning.html) — что изменилось в каждом выпуске и что заметят сервисы. Переход на 2.0.0 — в [руководстве подключения](https://cdn.my1.urfu.ru/react-components/getting-started.html).
154
133
 
155
134
  ---
156
135
 
@@ -0,0 +1,18 @@
1
+ import { jsxs as r, jsx as o } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import { useAutoId$u as t } from "../../hooks/useAutoId.js";
4
+ const m = ({
5
+ title: i = "",
6
+ id: a = "",
7
+ children: d = /* @__PURE__ */ o("div", {}),
8
+ className: n = ""
9
+ }) => {
10
+ const c = `u-accordion${t(a, "auto")}`;
11
+ return /* @__PURE__ */ r("div", { className: `u-accordion ${n}`, children: [
12
+ /* @__PURE__ */ o("div", { className: "u-accordion-title", children: i }),
13
+ /* @__PURE__ */ o("input", { className: "u-accordion-input", type: "checkbox", id: c }),
14
+ /* @__PURE__ */ o("label", { className: "u-accordion-toggle", htmlFor: c }),
15
+ /* @__PURE__ */ o("div", { className: "u-accordion-content", children: d })
16
+ ] });
17
+ };
18
+ export { m as Accordion$u };
@@ -1,5 +1,5 @@
1
1
 
2
- import './BreadCrumbs.less';
2
+
3
3
  import type { BreadCrumbsProperties } from './BreadCrumbs.types';
4
4
  export declare const BreadCrumbs: ({ items, className, onNavigate, }: BreadCrumbsProperties) => import("react/jsx-runtime").JSX.Element;
5
5
  //# sourceMappingURL=BreadCrumbs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BreadCrumbs.d.ts","sourceRoot":"","sources":["../../../src/components/BreadCrumbs/BreadCrumbs.tsx"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjF,eAAO,MAAM,WAAW,GAAI,mCAIzB,qBAAqB,4CAqCvB,CAAC"}
1
+ {"version":3,"file":"BreadCrumbs.d.ts","sourceRoot":"","sources":["../../../src/components/BreadCrumbs/BreadCrumbs.tsx"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,0DAA0D,CAAC;AAGlE,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjF,eAAO,MAAM,WAAW,GAAI,mCAIzB,qBAAqB,4CAqCvB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { jsx as s, jsxs as u } from "react/jsx-runtime";
2
+ /* empty css */
3
+ /* empty css */
4
+ import { Icon$u as p } from "../Icon/Icon.js";
5
+ const h = (e) => !!e.to, v = ({
6
+ items: e = [],
7
+ className: m = "",
8
+ onNavigate: o
9
+ }) => {
10
+ const a = e.filter((r) => r == null ? void 0 : r.label);
11
+ return a.length ? /* @__PURE__ */ s("div", { className: `u-breadcrumbs ${m}`.trim(), children: a.map((r, l) => {
12
+ const n = h(r) && !!r.to, t = n ? "th clr-blue-main" : "tt clr-gray-60", c = `u-breadcrumbs__item ${n ? `ucp ${t}` : t}`.trim(), i = l < a.length - 1;
13
+ return /* @__PURE__ */ u("div", { className: "u-breadcrumbs__entry", children: [
14
+ n && r.to ? /* @__PURE__ */ u(
15
+ "a",
16
+ {
17
+ className: c,
18
+ href: r.to,
19
+ onClick: o ? (b) => {
20
+ b.preventDefault(), r.to && o(r.to);
21
+ } : void 0,
22
+ children: [
23
+ l === 0 ? /* @__PURE__ */ s(p, { name: "left-arrow", className: "clr-blue-main", size: "16px" }) : null,
24
+ r.label
25
+ ]
26
+ }
27
+ ) : /* @__PURE__ */ s("span", { className: c, "aria-current": l === a.length - 1 ? "page" : void 0, children: r.label }),
28
+ i ? /* @__PURE__ */ s("span", { className: t, children: "/" }) : null
29
+ ] }, `${l}-${String(r.label)}`);
30
+ }) }) : null;
31
+ };
32
+ export { v as BreadCrumbs$u };
@@ -1,4 +1,5 @@
1
1
 
2
+
2
3
  import './Button.less';
3
4
  import { ButtonProperties } from './Button.types';
4
5
  export declare const Button: ({ onClick, variant, size, type, icon, iconLeft, iconOnly, iconSize, disabled, loading, children, className, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, "aria-expanded": ariaExpanded, "aria-busy": ariaBusy, title, }: ButtonProperties) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,eAAO,MAAM,MAAM,GAAI,0OAkBpB,gBAAgB,4CAoFlB,CAAA"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,qDAAqD,CAAC;AAC7D,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,eAAO,MAAM,MAAM,GAAI,0OAkBpB,gBAAgB,4CAoFlB,CAAA"}
@@ -0,0 +1,88 @@
1
+ import { jsxs as m, Fragment as P, jsx as o } from "react/jsx-runtime";
2
+ /* empty css */
3
+ /* empty css */
4
+ /* empty css */
5
+ import { ButtonRefreshIcon$u as R } from "./ButtonRefreshIcon.js";
6
+ const D = ({
7
+ onClick: x,
8
+ variant: e = "primary",
9
+ size: p = "medium",
10
+ type: h = "button",
11
+ icon: a = "",
12
+ iconLeft: f = !1,
13
+ iconOnly: u = !1,
14
+ iconSize: s,
15
+ disabled: g = !1,
16
+ loading: n,
17
+ children: i,
18
+ className: $ = "",
19
+ "aria-label": y,
20
+ "aria-describedby": w,
21
+ "aria-expanded": S,
22
+ "aria-busy": c,
23
+ title: N
24
+ }) => {
25
+ const j = (t) => {
26
+ switch (t) {
27
+ case "primary":
28
+ return "u-button";
29
+ case "danger":
30
+ return "u-button u-button-danger";
31
+ case "outline":
32
+ return "u-button u-button-outline";
33
+ case "refresh":
34
+ return "u-button u-button-outline u-button-refresh";
35
+ case "danger-outline":
36
+ return "u-button u-button-danger-outline";
37
+ case "simple":
38
+ return "u-button u-button-simple";
39
+ case "icon":
40
+ return "u-button u-button-icon";
41
+ case "text":
42
+ return "u-button-text";
43
+ case "text-danger":
44
+ return "u-button-text u-button-text-danger";
45
+ case "text-table":
46
+ return "u-button-text u-button-text-table";
47
+ case "text-danger-table":
48
+ return "u-button-text u-button-text-danger-table";
49
+ }
50
+ }, z = (t) => {
51
+ switch (t) {
52
+ case "medium":
53
+ return "";
54
+ case "small":
55
+ return " u-button-small";
56
+ default:
57
+ return "";
58
+ }
59
+ }, B = (t, r) => t && ["text", "text-danger"].includes(r) ? " u-button-text-icon-left" : t ? " u-button-icon-left" : "", F = ["primary", "danger", "outline", "danger-outline", "simple", "refresh"], I = (t) => t ? " icon-only" : "", M = (t) => {
60
+ if (typeof t == "number")
61
+ return `calc(${t} * var(--u-unit, 1px))`;
62
+ const r = String(t).trim(), d = r.match(/^(-?\d+(?:\.\d+)?)px$/);
63
+ return d ? `calc(${d[1]} * var(--u-unit, 1px))` : r;
64
+ }, l = e === "refresh" || n !== void 0, b = /* @__PURE__ */ m(P, { children: [
65
+ !u && e !== "icon" && (i === void 0 ? e === "refresh" ? "Обновить" : "ОК" : i),
66
+ " ",
67
+ a && /* @__PURE__ */ o("i", { style: s && { fontSize: M(s) }, className: `u-icon${I(u)} icon-${a}` })
68
+ ] });
69
+ return /* @__PURE__ */ m(
70
+ "button",
71
+ {
72
+ className: `${j(e)}${z(p)}${B(f, e)}${u && ["text", "text-danger"].includes(e) ? " u-button-text-icon-only" : ""}${u && F.includes(e) ? " u-button-icon-only" : ""}${l ? " u-button-with-loading" : ""}${n ? " u-button-loading" : ""} ${$}`,
73
+ type: h,
74
+ onClick: x,
75
+ disabled: g || n,
76
+ "aria-label": y,
77
+ "aria-describedby": w,
78
+ "aria-expanded": S,
79
+ "aria-busy": n === void 0 ? c : n || c,
80
+ title: N,
81
+ children: [
82
+ l ? /* @__PURE__ */ o("span", { className: "u-button-loading-content", children: b }) : b,
83
+ n ? /* @__PURE__ */ o("span", { className: "u-button-loading-indicator", "aria-hidden": "true", children: /* @__PURE__ */ o(R, { spinning: !0 }) }) : null
84
+ ]
85
+ }
86
+ );
87
+ };
88
+ export { D as Button$u };
@@ -1,10 +1,16 @@
1
1
  import type { ReactNode } from 'react';
2
+ /** Вид кнопки. В React это строка: допустимые значения разбирает сама кнопка, неизвестное даёт основной вид. */
3
+ export type ButtonVariant = string;
4
+ /** Размер кнопки. В React это строка (`medium` по умолчанию, `small`). */
5
+ export type ButtonSize = string;
6
+ /** Нативный тип кнопки: `button`, `submit` или `reset`. */
7
+ export type ButtonType = NonNullable<React.ButtonHTMLAttributes<HTMLButtonElement>['type']>;
2
8
  export type ButtonProperties = Partial<{
3
9
  onClick: React.MouseEventHandler<HTMLButtonElement>;
4
10
  /** refresh — контурная кнопка обновления с подписью по умолчанию «Обновить». */
5
- variant: string;
6
- size: string;
7
- type: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
11
+ variant: ButtonVariant;
12
+ size: ButtonSize;
13
+ type: ButtonType;
8
14
  icon: string;
9
15
  iconLeft: boolean;
10
16
  iconOnly: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.types.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;IACnC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACpD,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,uGAAuG;IACvG,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,eAAe,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,6EAA6E;IAC7E,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACxC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"Button.types.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,gHAAgH;AAChH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC,0EAA0E;AAC1E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,2DAA2D;AAC3D,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5F,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;IACnC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACpD,gFAAgF;IAChF,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,uGAAuG;IACvG,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,eAAe,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,6EAA6E;IAC7E,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACxC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
+ function i({ size: r = 16, spinning: n = !1, className: o = "" }) {
3
+ return /* @__PURE__ */ t(
4
+ "svg",
5
+ {
6
+ viewBox: "0 0 22 22",
7
+ fill: "none",
8
+ "aria-hidden": "true",
9
+ focusable: "false",
10
+ className: `u-button-refresh-icon${n ? " u-button-refresh-icon--spinning" : ""} ${o}`.trim(),
11
+ style: { "--u-button-refresh-icon-size": `calc(${r} * var(--u-unit, 1px))` },
12
+ children: [
13
+ /* @__PURE__ */ e(
14
+ "path",
15
+ {
16
+ d: "M1 11c0 5.523 4.477 10 10 10s10-4.477 10-10a9.956 9.956 0 0 0-2-6 10.058 10.058 0 0 0-1.999-2A9.97 9.97 0 0 0 11 1c-2.252 0-4.33.744-6.001 2",
17
+ stroke: "currentColor",
18
+ strokeWidth: "2",
19
+ strokeLinecap: "round"
20
+ }
21
+ ),
22
+ /* @__PURE__ */ e(
23
+ "path",
24
+ {
25
+ fillRule: "evenodd",
26
+ clipRule: "evenodd",
27
+ fill: "currentColor",
28
+ d: "M4.895 7.105a1 1 0 1 0 .064-1.998l-1.896-.062.064-1.981a1 1 0 0 0-1.999-.065l-.096 2.982A1 1 0 0 0 2 7.013l2.896.092Z"
29
+ }
30
+ )
31
+ ]
32
+ }
33
+ );
34
+ }
35
+ export { i as ButtonRefreshIcon$u };
@@ -1,10 +1,6 @@
1
1
  import React from "react";
2
- import "react-datepicker/dist/react-datepicker.css";
2
+
3
3
  import type { CalendarProperties } from "./Calendar.types";
4
4
  import "./Calendar.less";
5
- export declare function range(from: number, to: number, step?: number): {
6
- [Symbol.iterator](): Generator<number, void, unknown>;
7
- };
8
- export declare const years: number[];
9
5
  export declare const Calendar: React.FC<CalendarProperties>;
10
6
  //# sourceMappingURL=Calendar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/Calendar.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8F,MAAM,OAAO,CAAC;AAInH,OAAO,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAwB,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AASjF,OAAO,iBAAiB,CAAC;AAkBzB,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,SAAI;;EAQvD;AAiBD,eAAO,MAAM,KAAK,UAEjB,CAAC;AAkBF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA8YjD,CAAC"}
1
+ {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/Calendar.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8F,MAAM,OAAO,CAAC;AAInH,OAAO,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAwB,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AASjF,OAAO,iBAAiB,CAAC;AA+DzB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAsZjD,CAAC"}
@@ -0,0 +1,355 @@
1
+ import { jsx as o, jsxs as b, Fragment as De } from "react/jsx-runtime";
2
+ import { getFieldAccessibility$u as Ie } from "../../shared/fieldAccessibility.js";
3
+ import { useRef as Ae, useState as m, useInsertionEffect as Me, useEffect as I, useMemo as Oe, useContext as Ne, createContext as ze } from "react";
4
+ import { createPortal as Ee } from "react-dom";
5
+ import Pe, { registerLocale$u as $e } from "../../vendor/react-datepicker/dist/es/index.js";
6
+ /* empty css */
7
+ import { MaskedDateInput$u as je } from "./MaskedDateInput.js";
8
+ import { Tooltip$u as Le } from "../Tooltip/Tooltip.js";
9
+ import { ru$u as Fe } from "../../vendor/date-fns/locale/ru.js";
10
+ /* empty css */
11
+ import { useMountTransition$u as Re } from "../../hooks/useMountTransition.js";
12
+ import { useAutoId$u as Te } from "../../hooks/useAutoId.js";
13
+ import { isCompact$u as _e, sizeClassName$u as qe } from "../../shared/size.js";
14
+ import { getPortalScopeProps$u as Be } from "../../shared/uiKitDefaults.js";
15
+ import { CalendarSelect$u as G } from "./CalendarSelect.js";
16
+ import { resolveValidation$u as We } from "../../vanilla/core/validation.js";
17
+ import { getYear$u as A } from "../../vendor/date-fns/getYear.js";
18
+ import { getMonth$u as Ge } from "../../vendor/date-fns/getMonth.js";
19
+ $e(
20
+ "ru",
21
+ Fe
22
+ );
23
+ const H = (i) => {
24
+ if (!i) return null;
25
+ const l = new Date(i);
26
+ return l.setHours(12, 0, 0, 0), l;
27
+ };
28
+ function He(i, l, g = 1) {
29
+ return {
30
+ *[Symbol.iterator]() {
31
+ for (let s = i; s < l; s += g)
32
+ yield s;
33
+ }
34
+ };
35
+ }
36
+ const v = [
37
+ "Январь",
38
+ "Февраль",
39
+ "Март",
40
+ "Апрель",
41
+ "Май",
42
+ "Июнь",
43
+ "Июль",
44
+ "Август",
45
+ "Сентябрь",
46
+ "Октябрь",
47
+ "Ноябрь",
48
+ "Декабрь"
49
+ ], Ve = [
50
+ ...He(A(/* @__PURE__ */ new Date()) - 100, A(/* @__PURE__ */ new Date()) + 15, 1)
51
+ ], V = ze(null), Ye = ({ children: i }) => {
52
+ const l = Ne(V);
53
+ return l ? Ee(/* @__PURE__ */ o("div", { children: i }), l) : /* @__PURE__ */ o(De, { children: i });
54
+ }, pt = ({
55
+ "aria-label": i,
56
+ "aria-labelledby": l,
57
+ "aria-describedby": g,
58
+ title: s = "",
59
+ selected: x,
60
+ onChange: M,
61
+ isFilter: Y,
62
+ placeholder: J = "Выберите дату",
63
+ inline: C,
64
+ portalOn: O = !1,
65
+ open: N,
66
+ greyIcon: K,
67
+ isClearable: f,
68
+ setOptionState: z,
69
+ tableView: E,
70
+ size: P,
71
+ id: Q,
72
+ required: $ = !1,
73
+ validationText: X = "Заполните поле",
74
+ validationOn: Z,
75
+ error: U,
76
+ validationOnWithoutText: ee,
77
+ absoluteValidationText: te,
78
+ lineUp: w = !1,
79
+ rowGap: oe = 4,
80
+ columnGap: re = 20,
81
+ styleInputContainer: ne,
82
+ styleTitle: ae,
83
+ disabled: j,
84
+ wheelEdit: ie = !1,
85
+ showHint: le = !1,
86
+ hintText: ce = "Используйте колесо мыши или стрелки ↑↓ для изменения значения",
87
+ tooltipMaxWidth: se = 300
88
+ }) => {
89
+ const ue = _e(P, E), de = qe(P, E), y = We({ error: U, validationOn: Z, validationOnWithoutText: ee, validationText: X }), u = Te(Q, "u-calendar"), L = `u-calendar-portal-${u}`, k = Ae(null), [pe] = m(
90
+ () => typeof document > "u" ? null : document.createElement("div")
91
+ ), n = O && !C ? pe : null, h = Ie(u, s, $, y, {
92
+ "aria-label": i,
93
+ "aria-labelledby": l,
94
+ "aria-describedby": g
95
+ }), [p, S] = m(!1), me = 160, {
96
+ shouldRender: D,
97
+ status: fe,
98
+ isAnimated: ye
99
+ } = Re({
100
+ isOpen: !!(N || p),
101
+ duration: me
102
+ }), he = ye && fe === "exiting";
103
+ Me(() => {
104
+ if (!n || !D) return;
105
+ n.id = L;
106
+ const e = Be()["data-u-kit"];
107
+ return e ? n.setAttribute("data-u-kit", e) : n.removeAttribute("data-u-kit"), document.body.appendChild(n), () => n.remove();
108
+ }, [n, D, L]);
109
+ const [F, d] = m(null), [be, ve] = m(!1), [ge, xe] = m(!1);
110
+ I(() => {
111
+ const e = () => {
112
+ xe(window.innerWidth <= 900);
113
+ };
114
+ return e(), window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
115
+ }, []);
116
+ const R = Oe(() => H(x), [x]), T = (e, t) => {
117
+ const a = (t == null ? void 0 : t.type) === "click" || (t == null ? void 0 : t.type) === "keydown" ? "calendar" : "input";
118
+ if (!e) {
119
+ M("", { source: a });
120
+ return;
121
+ }
122
+ const c = H(e);
123
+ M(c, { source: a });
124
+ };
125
+ I(() => {
126
+ const e = (t) => {
127
+ const a = k.current, c = a == null ? void 0 : a.querySelector(":scope > div > div > input");
128
+ p && (c && c.focus(), a && !a.contains(t.target) && !(n != null && n.contains(t.target)) && (S(!1), c && c.blur()));
129
+ };
130
+ return document.addEventListener("click", e), () => {
131
+ document.removeEventListener("click", e);
132
+ };
133
+ }, [p, n]), I(() => {
134
+ var e;
135
+ if (f) {
136
+ const t = ((e = k.current) == null ? void 0 : e.querySelectorAll(".react-datepicker__close-icon")) ?? [];
137
+ for (const a of t)
138
+ a.innerHTML = '<i class="u-selectbox-select-icon-cross u-calendar-clear-icon"></i>';
139
+ }
140
+ }, [x]);
141
+ const _ = (e) => typeof e == "number" ? `calc(${e} * var(--u-preset-unit, 1px))` : String(e), Ce = (e) => typeof e == "number" ? `calc(${e} * var(--u-unit, 1px))` : String(e), q = (e) => {
142
+ const t = e.target;
143
+ t.closest(".react-datepicker") && !t.closest(".react-datepicker__day") || S(!p);
144
+ }, B = /* @__PURE__ */ o(
145
+ Pe,
146
+ {
147
+ ariaLabelledBy: h["aria-labelledby"],
148
+ ariaDescribedBy: h["aria-describedby"],
149
+ ariaInvalid: h["aria-invalid"] ? "true" : void 0,
150
+ ariaRequired: h["aria-required"] ? "true" : void 0,
151
+ open: C ? N || p : D,
152
+ inline: C,
153
+ popperContainer: n ? Ye : void 0,
154
+ popperPlacement: "bottom-end",
155
+ popperClassName: [he ? "u-calendar-popper--closing" : "", O ? "u-calendar-popper--portal" : ""].filter(Boolean).join(" ") || void 0,
156
+ isClearable: f,
157
+ ariaLabelClose: "Очистить",
158
+ disabled: j,
159
+ renderCustomHeader: ({
160
+ date: e,
161
+ changeYear: t,
162
+ changeMonth: a,
163
+ decreaseMonth: c,
164
+ increaseMonth: we,
165
+ prevMonthButtonDisabled: ke,
166
+ nextMonthButtonDisabled: Se
167
+ }) => /* @__PURE__ */ b(
168
+ "div",
169
+ {
170
+ style: {
171
+ display: "flex",
172
+ // Сверху отступ даёт паддинг карточки — свой margin здесь добавлял
173
+ // лишние 8px и делал верхнее поле попапа больше нижнего.
174
+ // Снизу 10px — тот же зазор, что между рядами сетки (по макету).
175
+ margin: "0 0 calc(10 * var(--u-unit, 1px))",
176
+ justifyContent: "space-between",
177
+ alignItems: "center"
178
+ },
179
+ children: [
180
+ /* @__PURE__ */ o(
181
+ "button",
182
+ {
183
+ style: {
184
+ width: "calc(25 * var(--u-unit, 1px))",
185
+ color: "#1E4391",
186
+ display: "flex",
187
+ // Без внутреннего отступа: стрелка прижата к краю карточки,
188
+ // а не поджата к году и месяцу.
189
+ padding: 0,
190
+ cursor: "pointer"
191
+ },
192
+ onClick: (r) => {
193
+ r.preventDefault(), r.stopPropagation(), d(null), c();
194
+ },
195
+ disabled: ke,
196
+ children: /* @__PURE__ */ o("i", { className: "u-icon icon-left", style: { fontSize: "calc(20 * var(--u-unit, 1px))" } })
197
+ }
198
+ ),
199
+ /* @__PURE__ */ b(
200
+ "div",
201
+ {
202
+ style: {
203
+ display: "flex",
204
+ flex: 1,
205
+ justifyContent: "center",
206
+ alignItems: "center",
207
+ gap: "calc(8 * var(--u-unit, 1px))"
208
+ },
209
+ children: [
210
+ /* @__PURE__ */ o(
211
+ G,
212
+ {
213
+ value: A(e),
214
+ options: Ve.map((r) => ({ value: r, label: r })),
215
+ onChange: (r) => t(Number(r)),
216
+ fallbackValue: (/* @__PURE__ */ new Date()).getFullYear(),
217
+ width: 45,
218
+ isOpen: F === "year",
219
+ onOpen: () => d("year"),
220
+ onClose: () => d(null)
221
+ }
222
+ ),
223
+ /* @__PURE__ */ o(
224
+ G,
225
+ {
226
+ value: v[Ge(e)],
227
+ options: v.map((r) => ({ value: r, label: r })),
228
+ onChange: (r) => {
229
+ const W = String(r);
230
+ a(v.indexOf(W)), z && z(W);
231
+ },
232
+ fallbackValue: v[(/* @__PURE__ */ new Date()).getMonth()],
233
+ width: 85,
234
+ isOpen: F === "month",
235
+ onOpen: () => d("month"),
236
+ onClose: () => d(null)
237
+ }
238
+ )
239
+ ]
240
+ }
241
+ ),
242
+ /* @__PURE__ */ o(
243
+ "button",
244
+ {
245
+ style: {
246
+ width: "calc(25 * var(--u-unit, 1px))",
247
+ color: "#1E4391",
248
+ display: "flex",
249
+ justifyContent: "flex-end",
250
+ padding: 0,
251
+ cursor: "pointer"
252
+ },
253
+ onClick: (r) => {
254
+ r.preventDefault(), r.stopPropagation(), d(null), we();
255
+ },
256
+ disabled: Se,
257
+ children: /* @__PURE__ */ o("i", { className: "u-icon icon-right", style: { fontSize: "calc(20 * var(--u-unit, 1px))" } })
258
+ }
259
+ )
260
+ ]
261
+ }
262
+ ),
263
+ placeholderText: J,
264
+ customInput: /* @__PURE__ */ o(
265
+ je,
266
+ {
267
+ "aria-label": i,
268
+ id: `custom-input-mask-${u}`,
269
+ isClearable: f,
270
+ wheelEdit: ie,
271
+ onWheelDate: (e) => T(e),
272
+ onOpenCalendar: () => S(!0),
273
+ onFocusChange: ve
274
+ }
275
+ ),
276
+ selected: R,
277
+ onChange: (e, t) => T(e, t),
278
+ strictParsing: !0,
279
+ locale: "ru",
280
+ className: (Y ? "custom-input dpc-filter custom-input-filter" : ue ? "custom-input dpc-table custom-input-table" : `${K ? "dpc-grey" : "dpc"} custom-input`) + (y.hasError ? " u-input-required" : "") + // react-datepicker рисует крестик и у disabled-поля — отступ под него тоже есть, как во Vue.
281
+ (f && R ? " dpc--clearable" : ""),
282
+ dateFormat: "dd.MM.yyyy"
283
+ }
284
+ );
285
+ return /* @__PURE__ */ o(V.Provider, { value: n, children: /* @__PURE__ */ b(
286
+ "div",
287
+ {
288
+ ref: k,
289
+ id: `u-datepicker${u}`,
290
+ className: de || void 0,
291
+ style: { display: "flex", flexDirection: "column", rowGap: "calc(4 * var(--u-preset-unit, 1px))" },
292
+ children: [
293
+ /* @__PURE__ */ b(
294
+ "div",
295
+ {
296
+ style: Object.assign(
297
+ {
298
+ display: "flex",
299
+ flexDirection: w ? "row" : "column",
300
+ rowGap: w ? null : _(oe),
301
+ columnGap: w ? _(re) : null
302
+ },
303
+ ne
304
+ ),
305
+ children: [
306
+ s && /* @__PURE__ */ o(
307
+ "div",
308
+ {
309
+ id: `${u}-label`,
310
+ className: `${$ ? "u-required" : ""} u-react-input-title`,
311
+ style: Object.assign(
312
+ {
313
+ color: "var(--u-field-title-color, #545454)",
314
+ fontSize: "var(--u-field-label-size-main, calc(14 * var(--u-unit, 1px)))"
315
+ },
316
+ ae
317
+ ),
318
+ children: s
319
+ }
320
+ ),
321
+ le ? /* @__PURE__ */ o(
322
+ Le,
323
+ {
324
+ portalOn: !0,
325
+ id: `calendar-hint-${u || "default"}`,
326
+ position: "top",
327
+ isActive: be && !j && !ge,
328
+ showWhenActive: !0,
329
+ tooltipStyle: {
330
+ maxWidth: Ce(se),
331
+ width: "auto",
332
+ whiteSpace: "normal",
333
+ overflowWrap: "break-word"
334
+ },
335
+ tooltipText: ce,
336
+ children: /* @__PURE__ */ o("div", { style: { width: "100%" }, onClick: q, children: B })
337
+ }
338
+ ) : /* @__PURE__ */ o("div", { style: { width: "100%" }, onClick: q, children: B })
339
+ ]
340
+ }
341
+ ),
342
+ y.showText && /* @__PURE__ */ o(
343
+ "h5",
344
+ {
345
+ id: `${u}-error`,
346
+ className: "h5 clr-red-main",
347
+ style: te ? { position: "absolute", bottom: "calc(-20 * var(--u-unit, 1px))" } : { position: "relative" },
348
+ children: y.text
349
+ }
350
+ )
351
+ ]
352
+ }
353
+ ) });
354
+ };
355
+ export { pt as Calendar$u };