altum 0.0.4 → 0.0.6

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 (295) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +47 -1
  3. package/dist/base/FieldPopup/FieldPopup.js +1 -1
  4. package/dist/base/PeriodHeader/PeriodHeader.js +1 -1
  5. package/dist/base/ToggleControlBase/ToggleControlBase.js +1 -1
  6. package/dist/base/ToggleControlBase/ToggleControlBase.module.css.js +1 -1
  7. package/dist/components/Accordion/Accordion.js +1 -1
  8. package/dist/components/Accordion/Accordion.module.css.js +1 -1
  9. package/dist/components/ActionList/ActionList.js +1 -1
  10. package/dist/components/ActionList/ActionList.module.css.js +1 -1
  11. package/dist/components/ActionSheetTrigger/ActionSheetTrigger.js +1 -1
  12. package/dist/components/ActionSheetTrigger/ActionSheetTrigger.module.css.js +1 -1
  13. package/dist/components/Alert/Alert.js +1 -1
  14. package/dist/components/Alert/Alert.module.css.js +1 -1
  15. package/dist/components/Avatar/Avatar.module.css.js +1 -1
  16. package/dist/components/Badge/Badge.js +1 -1
  17. package/dist/components/Badge/Badge.module.css.js +1 -1
  18. package/dist/components/Box/Box.js +1 -1
  19. package/dist/components/Box/Box.module.css.js +1 -1
  20. package/dist/components/Bubble/Bubble.js +1 -1
  21. package/dist/components/Bubble/Bubble.module.css.js +1 -1
  22. package/dist/components/Button/Button.js +1 -1
  23. package/dist/components/Button/Button.module.css.js +1 -0
  24. package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
  25. package/dist/components/ButtonGroup/ButtonGroup.module.css.js +1 -1
  26. package/dist/components/ButtonIcon/ButtonIcon.js +1 -1
  27. package/dist/components/ButtonIcon/ButtonIcon.module.css.js +1 -0
  28. package/dist/components/ButtonIcon/OverlayCloseButton.js +1 -0
  29. package/dist/components/Calendar/Calendar.context.js +1 -1
  30. package/dist/components/Calendar/Calendar.module.css.js +1 -1
  31. package/dist/components/Calendar/Calendar.slots.js +1 -1
  32. package/dist/components/Calendar/Calendar.utils.js +1 -1
  33. package/dist/components/Calendar/Calendar.views.js +1 -1
  34. package/dist/components/CalendarBoard/CalendarBoard.MonthView.js +1 -1
  35. package/dist/components/CalendarBoard/CalendarBoard.Schedule.js +1 -1
  36. package/dist/components/CalendarBoard/CalendarBoard.Schedule.module.css.js +1 -1
  37. package/dist/components/CalendarBoard/CalendarBoard.Schedule.utils.js +1 -1
  38. package/dist/components/CalendarBoard/CalendarBoard.YearView.js +2 -2
  39. package/dist/components/CalendarBoard/CalendarBoard.chrome.js +1 -1
  40. package/dist/components/CalendarBoard/CalendarBoard.context.js +1 -1
  41. package/dist/components/CalendarBoard/CalendarBoard.module.css.js +1 -1
  42. package/dist/components/CalendarBoard/CalendarBoard.utils.js +1 -1
  43. package/dist/components/CalendarBoard/calendar.schedule.js +1 -1
  44. package/dist/components/Card/Card.js +1 -1
  45. package/dist/components/Card/Card.module.css.js +1 -1
  46. package/dist/components/Chip/Chip.js +1 -1
  47. package/dist/components/Chip/Chip.module.css.js +1 -1
  48. package/dist/components/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  49. package/dist/components/ColorSwatchGroup/ColorSwatchGroup.module.css.js +1 -1
  50. package/dist/components/CommandPalette/CommandPalette.js +1 -1
  51. package/dist/components/CommandPalette/CommandPalette.module.css.js +1 -1
  52. package/dist/components/ConfirmDialog/ConfirmDialog.js +1 -1
  53. package/dist/components/DateField/DateField.js +1 -1
  54. package/dist/components/DateField/DateField.utils.js +1 -1
  55. package/dist/components/DateRangeField/DateRangeField.js +1 -1
  56. package/dist/components/DayStripCalendar/DayStripCalendar.js +1 -1
  57. package/dist/components/DialogLayout/DialogLayout.js +1 -0
  58. package/dist/components/DialogLayout/DialogLayout.module.css.js +1 -0
  59. package/dist/components/Dropdown/Dropdown.js +1 -1
  60. package/dist/components/Dropdown/Dropdown.module.css.js +1 -1
  61. package/dist/components/Dropdown/DropdownMobileSheet.js +1 -1
  62. package/dist/components/FileList/FileList.js +1 -1
  63. package/dist/components/Grid/Grid.js +1 -1
  64. package/dist/components/Grid/Grid.utils.js +1 -1
  65. package/dist/components/ImageCrop/ImageCrop.js +1 -1
  66. package/dist/components/ImageCrop/ImageCrop.module.css.js +1 -1
  67. package/dist/components/ImageGallery/ImageGallery.js +1 -1
  68. package/dist/components/ImageGallery/ImageGallery.module.css.js +1 -1
  69. package/dist/components/ImageLightbox/ImageLightbox.js +1 -1
  70. package/dist/components/ImageLightbox/ImageLightbox.module.css.js +1 -1
  71. package/dist/components/Layout/Layout.js +1 -1
  72. package/dist/components/Layout/Layout.module.css.js +1 -1
  73. package/dist/components/Link/Link.js +1 -1
  74. package/dist/components/Listbox/Listbox.js +1 -1
  75. package/dist/components/Listbox/Listbox.module.css.js +1 -1
  76. package/dist/components/LiveRegion/LiveRegion.js +1 -0
  77. package/dist/components/LocaleProvider/LocaleProvider.js +1 -1
  78. package/dist/components/MaskedField/MaskedField.js +1 -1
  79. package/dist/components/MaskedField/MaskedField.module.css.js +1 -1
  80. package/dist/components/Menu/Menu.js +1 -1
  81. package/dist/components/Menu/Menu.module.css.js +1 -1
  82. package/dist/components/Modal/Modal.js +1 -1
  83. package/dist/components/Modal/Modal.module.css.js +1 -1
  84. package/dist/components/Notification/Notification.js +1 -1
  85. package/dist/components/Notification/Notification.module.css.js +1 -1
  86. package/dist/components/Notification/toast.js +1 -1
  87. package/dist/components/NumberField/NumberField.js +1 -1
  88. package/dist/components/Overflow/Overflow.js +1 -1
  89. package/dist/components/Overflow/Overflow.module.css.js +1 -1
  90. package/dist/components/Overlay/Overlay.frame.js +1 -0
  91. package/dist/components/Overlay/Overlay.js +1 -1
  92. package/dist/components/Overlay/Overlay.module.css.js +1 -1
  93. package/dist/components/Pagination/Pagination.js +1 -1
  94. package/dist/components/PasswordField/PasswordField.js +1 -1
  95. package/dist/components/PasswordField/PasswordField.module.css.js +1 -1
  96. package/dist/components/PinInput/PinInput.js +1 -1
  97. package/dist/components/PinInput/PinInput.module.css.js +1 -1
  98. package/dist/components/Popover/Popover.js +1 -1
  99. package/dist/components/Popover/Popover.module.css.js +1 -1
  100. package/dist/components/PopupSwitch/PopupSwitch.js +1 -0
  101. package/dist/components/PopupSwitch/PopupSwitch.module.css.js +1 -0
  102. package/dist/components/PopupSwitch/PopupSwitch.utils.js +1 -0
  103. package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
  104. package/dist/components/Rating/Rating.js +1 -1
  105. package/dist/components/RelativeTime/RelativeTime.js +1 -1
  106. package/dist/components/SearchField/SearchField.js +1 -1
  107. package/dist/components/SegmentedControl/SegmentedControl.js +1 -1
  108. package/dist/components/Select/Select.js +1 -1
  109. package/dist/components/Select/Select.module.css.js +1 -1
  110. package/dist/components/SelectionGroup/SelectionGroup.js +1 -1
  111. package/dist/components/Sheet/Sheet.js +1 -1
  112. package/dist/components/Sheet/Sheet.module.css.js +1 -1
  113. package/dist/components/Sidebar/Sidebar.js +1 -1
  114. package/dist/components/Sidebar/Sidebar.module.css.js +1 -1
  115. package/dist/components/SkipLink/SkipLink.js +1 -1
  116. package/dist/components/Slider/Slider.js +1 -1
  117. package/dist/components/SortableList/SortableList.js +1 -1
  118. package/dist/components/SortableList/SortableList.module.css.js +1 -1
  119. package/dist/components/Spinner/Spinner.js +1 -1
  120. package/dist/components/Steps/Steps.js +1 -1
  121. package/dist/components/Steps/Steps.module.css.js +1 -1
  122. package/dist/components/SuggestField/SuggestField.js +1 -1
  123. package/dist/components/Table/Table.js +1 -1
  124. package/dist/components/Table/TableRowActions.js +1 -1
  125. package/dist/components/Table/TableView.js +1 -1
  126. package/dist/components/TextField/TextField.js +1 -1
  127. package/dist/components/TextField/TextField.module.css.js +1 -0
  128. package/dist/components/TextareaField/TextareaField.js +1 -1
  129. package/dist/components/TextareaField/TextareaField.module.css.js +1 -0
  130. package/dist/components/ThemeProvider/ThemeProvider.js +1 -1
  131. package/dist/components/ThemeProvider/ThemeProvider.module.css.js +1 -1
  132. package/dist/components/TimeField/TimeField.js +1 -1
  133. package/dist/components/Tooltip/Tooltip.js +1 -1
  134. package/dist/components/Tooltip/Tooltip.module.css.js +1 -1
  135. package/dist/components/UploadZone/UploadZone.js +1 -1
  136. package/dist/components/VirtualList/VirtualList.js +1 -1
  137. package/dist/components/VirtualList/VirtualList.module.css.js +1 -1
  138. package/dist/components/VirtualList/VirtualList.utils.js +1 -1
  139. package/dist/components/VisuallyHidden/VisuallyHidden.js +1 -1
  140. package/dist/components/WheelTimePicker/WheelTimePicker.js +1 -1
  141. package/dist/entries/hooks.js +1 -1
  142. package/dist/entries/icons.js +1 -1
  143. package/dist/entries/locales.js +1 -0
  144. package/dist/entries/utils.js +1 -1
  145. package/dist/hooks/useAutoResize.js +1 -1
  146. package/dist/hooks/useForm.js +1 -1
  147. package/dist/hooks/useFormProvider.js +1 -0
  148. package/dist/hooks/useOtpInputs.js +1 -1
  149. package/dist/hooks/useTrackThumb.js +1 -1
  150. package/dist/icons/icons/IconChevronUpDown.js +1 -0
  151. package/dist/index.js +1 -1
  152. package/dist/locales/en.js +1 -1
  153. package/dist/locales/localeContext.js +1 -1
  154. package/dist/locales/ru.js +1 -1
  155. package/dist/locales/slices/actionList.en.js +1 -0
  156. package/dist/locales/slices/actionList.ru.js +1 -0
  157. package/dist/locales/slices/bubble.en.js +1 -0
  158. package/dist/locales/slices/bubble.ru.js +1 -0
  159. package/dist/locales/slices/buttonGroup.en.js +1 -0
  160. package/dist/locales/slices/buttonGroup.ru.js +1 -0
  161. package/dist/locales/slices/calendar.en.js +1 -0
  162. package/dist/locales/slices/calendar.ru.js +1 -0
  163. package/dist/locales/slices/calendarBoard.en.js +1 -0
  164. package/dist/locales/slices/calendarBoard.ru.js +1 -0
  165. package/dist/locales/slices/chip.en.js +1 -0
  166. package/dist/locales/slices/chip.ru.js +1 -0
  167. package/dist/locales/slices/commandPalette.en.js +1 -0
  168. package/dist/locales/slices/commandPalette.ru.js +1 -0
  169. package/dist/locales/slices/common.en.js +1 -0
  170. package/dist/locales/slices/common.ru.js +1 -0
  171. package/dist/locales/slices/confirmDialog.en.js +1 -0
  172. package/dist/locales/slices/confirmDialog.ru.js +1 -0
  173. package/dist/locales/slices/customSelect.en.js +1 -0
  174. package/dist/locales/slices/customSelect.ru.js +1 -0
  175. package/dist/locales/slices/dateRangeField.en.js +1 -0
  176. package/dist/locales/slices/dateRangeField.ru.js +1 -0
  177. package/dist/locales/slices/dayStrip.en.js +1 -0
  178. package/dist/locales/slices/dayStrip.ru.js +1 -0
  179. package/dist/locales/slices/fileList.en.js +1 -0
  180. package/dist/locales/slices/fileList.ru.js +1 -0
  181. package/dist/locales/slices/imageCrop.en.js +1 -0
  182. package/dist/locales/slices/imageCrop.ru.js +1 -0
  183. package/dist/locales/slices/imageGallery.en.js +1 -0
  184. package/dist/locales/slices/imageGallery.ru.js +1 -0
  185. package/dist/locales/slices/imageLightbox.en.js +1 -0
  186. package/dist/locales/slices/imageLightbox.ru.js +1 -0
  187. package/dist/locales/slices/listbox.en.js +1 -0
  188. package/dist/locales/slices/listbox.ru.js +1 -0
  189. package/dist/locales/slices/menu.en.js +1 -0
  190. package/dist/locales/slices/menu.ru.js +1 -0
  191. package/dist/locales/slices/modal.en.js +1 -0
  192. package/dist/locales/slices/modal.ru.js +1 -0
  193. package/dist/locales/slices/numberField.en.js +1 -0
  194. package/dist/locales/slices/numberField.ru.js +1 -0
  195. package/dist/locales/slices/overflow.en.js +1 -0
  196. package/dist/locales/slices/overflow.ru.js +1 -0
  197. package/dist/locales/slices/pagination.en.js +1 -0
  198. package/dist/locales/slices/pagination.ru.js +1 -0
  199. package/dist/locales/slices/password.en.js +1 -0
  200. package/dist/locales/slices/password.ru.js +1 -0
  201. package/dist/locales/slices/pinInput.en.js +1 -0
  202. package/dist/locales/slices/pinInput.ru.js +1 -0
  203. package/dist/locales/slices/pullToRefresh.en.js +1 -0
  204. package/dist/locales/slices/pullToRefresh.ru.js +1 -0
  205. package/dist/locales/slices/rating.en.js +1 -0
  206. package/dist/locales/slices/rating.ru.js +1 -0
  207. package/dist/locales/slices/searchField.en.js +1 -0
  208. package/dist/locales/slices/searchField.ru.js +1 -0
  209. package/dist/locales/slices/select.en.js +1 -0
  210. package/dist/locales/slices/select.ru.js +1 -0
  211. package/dist/locales/slices/sheet.en.js +1 -0
  212. package/dist/locales/slices/sheet.ru.js +1 -0
  213. package/dist/locales/slices/sidebar.en.js +1 -0
  214. package/dist/locales/slices/sidebar.ru.js +1 -0
  215. package/dist/locales/slices/skipLink.en.js +1 -0
  216. package/dist/locales/slices/skipLink.ru.js +1 -0
  217. package/dist/locales/slices/slider.en.js +1 -0
  218. package/dist/locales/slices/slider.ru.js +1 -0
  219. package/dist/locales/slices/sortable.en.js +1 -0
  220. package/dist/locales/slices/sortable.ru.js +1 -0
  221. package/dist/locales/slices/spinner.en.js +1 -0
  222. package/dist/locales/slices/spinner.ru.js +1 -0
  223. package/dist/locales/slices/steps.en.js +1 -0
  224. package/dist/locales/slices/steps.ru.js +1 -0
  225. package/dist/locales/slices/suggestField.en.js +1 -0
  226. package/dist/locales/slices/suggestField.ru.js +1 -0
  227. package/dist/locales/slices/table.en.js +1 -0
  228. package/dist/locales/slices/table.ru.js +1 -0
  229. package/dist/locales/slices/timeField.en.js +1 -0
  230. package/dist/locales/slices/timeField.ru.js +1 -0
  231. package/dist/locales/slices/upload.en.js +1 -0
  232. package/dist/locales/slices/upload.ru.js +1 -0
  233. package/dist/locales/slices/virtualList.en.js +1 -0
  234. package/dist/locales/slices/virtualList.ru.js +1 -0
  235. package/dist/locales/translate.js +1 -1
  236. package/dist/shared/form/Form.utils.js +1 -0
  237. package/dist/shared/form/formRules.js +1 -0
  238. package/dist/shared/form/formValues.js +1 -0
  239. package/dist/styles/calendarChrome.module.css.js +1 -1
  240. package/dist/styles/status.module.css.js +1 -1
  241. package/dist/styles/toggleBox.module.css.js +1 -1
  242. package/dist/styles/visuallyHidden.module.css.js +1 -0
  243. package/dist/utils/autoHeight.js +1 -1
  244. package/dist/utils/date.js +1 -0
  245. package/dist/utils/duration.js +1 -0
  246. package/dist/utils/eventTarget.js +1 -0
  247. package/dist/utils/fieldMessage.js +1 -0
  248. package/dist/utils/injectCss.js +1 -1
  249. package/dist/utils/locale.js +1 -0
  250. package/dist/utils/plural.js +1 -0
  251. package/dist/utils/timezone.js +1 -0
  252. package/dist/utils/visitElementTree.js +1 -1
  253. package/docs/COMPONENTS.md +18 -16
  254. package/docs/LAYOUT.md +9 -9
  255. package/docs/THEMING.md +9 -16
  256. package/package.json +6 -1
  257. package/types/entries/hooks.d.ts +61 -13
  258. package/types/entries/icons.d.ts +3 -1
  259. package/types/entries/locales.d.ts +275 -0
  260. package/types/entries/utils.d.ts +71 -8
  261. package/types/index.d.ts +583 -661
  262. package/dist/base/ButtonBase/ButtonBase.js +0 -1
  263. package/dist/base/ButtonBase/ButtonBase.module.css.js +0 -1
  264. package/dist/base/ChevronButton/ChevronButton.js +0 -1
  265. package/dist/base/DialogBase/DialogBase.js +0 -1
  266. package/dist/base/DialogBase/DialogBase.module.css.js +0 -1
  267. package/dist/base/FieldBase/FieldBase.js +0 -1
  268. package/dist/base/FieldBase/FieldBase.module.css.js +0 -1
  269. package/dist/base/TextControl/TextControl.js +0 -1
  270. package/dist/components/CustomSelect/CustomSelect.Filter.js +0 -1
  271. package/dist/components/CustomSelect/CustomSelect.List.js +0 -1
  272. package/dist/components/CustomSelect/CustomSelect.Shell.js +0 -1
  273. package/dist/components/CustomSelect/CustomSelect.Shell.module.css.js +0 -1
  274. package/dist/components/CustomSelect/CustomSelect.context.js +0 -1
  275. package/dist/components/CustomSelect/CustomSelect.js +0 -1
  276. package/dist/components/CustomSelect/CustomSelect.module.css.js +0 -1
  277. package/dist/components/CustomSelect/useCustomSelectComboboxKeyboard.js +0 -1
  278. package/dist/components/FocusTrap/FocusTrap.js +0 -1
  279. package/dist/components/Overflow/OverflowActionsMode.js +0 -1
  280. package/dist/components/Overflow/OverflowMeasure.js +0 -1
  281. package/dist/components/Overflow/OverflowMore.js +0 -1
  282. package/dist/components/Overlay/Overlay.Dismiss.js +0 -1
  283. package/dist/components/Overlay/Overlay.Positioner.js +0 -1
  284. package/dist/components/Overlay/Overlay.types.js +0 -1
  285. package/dist/components/SortableList/SortableList.types.js +0 -1
  286. package/dist/components/SortableList/useSortableListDnD.js +0 -1
  287. package/dist/components/TimeField/TimeField.module.css.js +0 -1
  288. package/dist/hooks/useDigitMask.js +0 -1
  289. package/dist/hooks/useFieldControl.js +0 -1
  290. package/dist/hooks/useOverflowEdges.js +0 -1
  291. package/dist/hooks/useScrollFocusedChildIntoView.js +0 -1
  292. package/dist/styles/ControlTrack.module.css.js +0 -1
  293. package/dist/styles/srOnly.module.css.js +0 -1
  294. package/dist/utils/controlTrack.js +0 -1
  295. package/dist/utils/fieldPlaceholder.js +0 -1
@@ -1 +1 @@
1
- "use client";import{jsx as u}from"react/jsx-runtime";import{forwardRef as c}from"react";import f from"./Grid.module.css.js";import{cn as g}from"../../utils/cn.js";import{mergeStyles as v}from"../../utils/mergeStyles.js";import{setResponsive as m,setGridItemColumnVars as x,resolveAutoColumnsTemplate as C,resolveColumnsTemplate as R,resolveGapCss as w,resolveGridRowValue as S}from"./Grid.utils.js";import{GRID_BREAKPOINTS as K}from"./Grid.utils.js";import{As as G}from"../../base/As/As.js";const y=c(function({columns:t=1,gap:s="md",mode:e="fixed",minColumnWidth:o=240,className:a,style:l,as:i="div",...d},n){const r={},p="repeat(1, minmax(0, 1fr))";return e==="autoFit"||e==="autoFill"?m(r,"--altum-grid-cols",C(e,o),I=>I,p):m(r,"--altum-grid-cols",t,R,p),m(r,"--altum-grid-gap",s,w,"var(--altum-g-space-3)"),u(G,{ref:n,as:i,className:g(f.grid,a),style:v(r,l),...d})}),N=c(function({span:t,colStart:s,colEnd:e,rowSpan:o,className:a,style:l,as:i="div",...d},n){const r={};return x(r,t,s,e),o!==void 0&&m(r,"--altum-grid-item-row",o,S,"auto"),u(G,{ref:n,as:i,className:g(f.gridItem,a),style:v(r,l),...d})});y.displayName="Grid",N.displayName="GridItem";export{K as GRID_BREAKPOINTS,y as Grid,N as GridItem};
1
+ "use client";import{jsx as u}from"react/jsx-runtime";import{forwardRef as c}from"react";import f from"./Grid.module.css.js";import{cn as g}from"../../utils/cn.js";import{mergeStyles as v}from"../../utils/mergeStyles.js";import{resolveSpacingCss as x}from"../../utils/spacing.js";import{setResponsive as m,setGridItemColumnVars as C,resolveAutoColumnsTemplate as R,resolveColumnsTemplate as S,resolveGridRowValue as w}from"./Grid.utils.js";import{GRID_BREAKPOINTS as O}from"./Grid.utils.js";import{As as G}from"../../base/As/As.js";const y=c(function({columns:t=1,gap:s="md",mode:o="fixed",minColumnWidth:e=240,className:a,style:i,as:l="div",...d},n){const r={},p="repeat(1, minmax(0, 1fr))";return o==="autoFit"||o==="autoFill"?m(r,"--altum-grid-cols",R(o,e),I=>I,p):m(r,"--altum-grid-cols",t,S,p),m(r,"--altum-grid-gap",s,x,"var(--altum-g-space-3)"),u(G,{ref:n,as:l,className:g(f.grid,a),style:v(r,i),...d})}),N=c(function({span:t,colStart:s,colEnd:o,rowSpan:e,className:a,style:i,as:l="div",...d},n){const r={};return C(r,t,s,o),e!==void 0&&m(r,"--altum-grid-item-row",e,w,"auto"),u(G,{ref:n,as:l,className:g(f.gridItem,a),style:v(r,i),...d})});y.displayName="Grid",N.displayName="GridItem";export{O as GRID_BREAKPOINTS,y as Grid,N as GridItem};
@@ -1 +1 @@
1
- "use client";import{resolveSpacingCss as c}from"../../utils/spacing.js";import{toCssSize as v}from"../../utils/cssSize.js";const p={xs:0,sm:600,md:768,lg:1024,xl:1280},a=["xs","sm","md","lg","xl"];function f(o){return typeof o=="object"&&o!==null&&!Array.isArray(o)}function $(o,t,i,r,u){if(!f(i)){const n=r(i)??u;for(const s of a)o[`${t}-${s}`]=n;return}let e=u;for(const n of a){const s=i[n];if(s!==void 0){const l=r(s);l!==void 0&&(e=l)}o[`${t}-${n}`]=e}}function x(o){return typeof o=="number"?`repeat(${o}, minmax(0, 1fr))`:o}function C(o,t){return`repeat(${o==="autoFit"?"auto-fit":"auto-fill"}, minmax(${v(t)}, 1fr))`}function g(o){return c(o)}function d(o,t,i){if(t!==void 0&&i!==void 0)return`${t} / ${i}`;if(t!==void 0&&o!==void 0)return`${t} / span ${o}`;if(o!==void 0)return`span ${o}`;if(t!==void 0)return String(t)}function A(o){if(o!==void 0)return`span ${o}`}function G(o,t,i,r){if(t===void 0&&i===void 0&&r===void 0)return;let u="auto";for(const e of a){const n=f(t)?t[e]:t,s=f(i)?i[e]:i,l=f(r)?r[e]:r,m=d(n,s,l);m!==void 0&&(u=m),o[`--altum-grid-item-col-${e}`]=u}}export{p as GRID_BREAKPOINTS,f as isAdaptiveValue,C as resolveAutoColumnsTemplate,x as resolveColumnsTemplate,g as resolveGapCss,d as resolveGridColumnValue,A as resolveGridRowValue,G as setGridItemColumnVars,$ as setResponsive};
1
+ "use client";import{toCssSize as c}from"../../utils/cssSize.js";const v={xs:0,sm:600,md:768,lg:1024,xl:1280},a=["xs","sm","md","lg","xl"];function f(o){return typeof o=="object"&&o!==null&&!Array.isArray(o)}function $(o,i,t,r,s){if(!f(t)){const e=r(t)??s;for(const u of a)o[`${i}-${u}`]=e;return}let n=s;for(const e of a){const u=t[e];if(u!==void 0){const l=r(u);l!==void 0&&(n=l)}o[`${i}-${e}`]=n}}function p(o){return typeof o=="number"?`repeat(${o}, minmax(0, 1fr))`:o}function x(o,i){return`repeat(${o==="autoFit"?"auto-fit":"auto-fill"}, minmax(${c(i)}, 1fr))`}function d(o,i,t){if(i!==void 0&&t!==void 0)return`${i} / ${t}`;if(i!==void 0&&o!==void 0)return`${i} / span ${o}`;if(o!==void 0)return`span ${o}`;if(i!==void 0)return String(i)}function A(o){if(o!==void 0)return`span ${o}`}function C(o,i,t,r){if(i===void 0&&t===void 0&&r===void 0)return;let s="auto";for(const n of a){const e=f(i)?i[n]:i,u=f(t)?t[n]:t,l=f(r)?r[n]:r,m=d(e,u,l);m!==void 0&&(s=m),o[`--altum-grid-item-col-${n}`]=s}}export{v as GRID_BREAKPOINTS,f as isAdaptiveValue,x as resolveAutoColumnsTemplate,p as resolveColumnsTemplate,d as resolveGridColumnValue,A as resolveGridRowValue,C as setGridItemColumnVars,$ as setResponsive};
@@ -1 +1 @@
1
- "use client";import{jsx as t,jsxs as f}from"react/jsx-runtime";import{forwardRef as ve,useId as Ce,useRef as P,useState as c,useEffect as G}from"react";import{Button as J}from"../Button/Button.js";import{Overlay as we}from"../Overlay/Overlay.js";import{cn as Q}from"../../utils/cn.js";import{composeEventHandlers as xe}from"../../utils/composeEvents.js";import{loadImageFromSrc as be,getDisplaySize as X,exportCroppedImage as Ne,clampOffset as V,getMinCoverScale as ke}from"./ImageCrop.utils.js";import n from"./ImageCrop.module.css.js";import{useLocale as Le}from"../../locales/localeContext.js";import{DialogBase as g}from"../../base/DialogBase/DialogBase.js";const O=1,S=4,ee=.1,Re=["nw","ne","se","sw"],re=ve(function({open:u,onOpenChange:U,file:y=null,src:te=null,shape:j="circle",cropSize:h=280,outputSize:ae=512,title:oe,confirmLabel:ne,cancelLabel:ie,className:le,style:se,onCrop:H,onClick:ce,...me},pe){const{t:i}=Le(),$=Ce(),z=P(null),v=P(null),D=P(null),[de,A]=c(null),[a,B]=c(null),[m,C]=c(0),[p,w]=c(0),[l,x]=c(1),[I,F]=c(!1),[Y,b]=c(null),d=de??te??null,N=a?ke(a,h):1,k=a?X(a,N,l):{width:0,height:0},L=()=>U(!1);G(()=>{if(!u||!y){A(r=>(r&&URL.revokeObjectURL(r),null));return}const e=URL.createObjectURL(y);return A(e),()=>URL.revokeObjectURL(e)},[y,u]),G(()=>{if(!u||!d){B(null),x(1),C(0),w(0),b(null),v.current=null;return}let e=!1;return b(null),be(d,{errorMessage:i("imageCrop.loadError")}).then(r=>{e||(v.current=r,B({width:r.naturalWidth,height:r.naturalHeight}),x(1),C(0),w(0))}).catch(r=>{e||b(r instanceof Error?r.message:i("imageCrop.loadError"))}),()=>{e=!0}},[d,u,i]);const Z=(e,r,o)=>{const s=Math.min(S,Math.max(O,e));if(!a){x(s);return}const R=X(a,N,s),E=V(r,o,R.width,R.height,h);x(s),C(E.offsetX),w(E.offsetY)},ue=e=>{const r=D.current;if(!r||!a)return;if(r.type==="pan"){const T=X(a,N,l),_=V(r.ox+e.clientX-r.startX,r.oy+e.clientY-r.startY,T.width,T.height,h);C(_.offsetX),w(_.offsetY);return}const o=z.current?.getBoundingClientRect();if(!o)return;const s=e.clientX-(o.left+o.width/2+r.ox),R=e.clientY-(o.top+o.height/2+r.oy),E=Math.hypot(s,R)/(Math.hypot(r.vx,r.vy)||1);Z(r.originZoom*E,r.ox,r.oy)},K=()=>{D.current=null},W=(e,r)=>{e.button!==0||!a||(e.preventDefault(),e.currentTarget.setPointerCapture?.(e.pointerId),D.current=r)},he=e=>{W(e,{type:"pan",startX:e.clientX,startY:e.clientY,ox:m,oy:p})},fe=e=>{e.stopPropagation();const r=z.current?.getBoundingClientRect();if(!r)return;const o=r.left+r.width/2+m,s=r.top+r.height/2+p;W(e,{type:"scale",originZoom:l,ox:m,oy:p,vx:e.clientX-o,vy:e.clientY-s})},ge=e=>{let r=l;if(e.key==="ArrowUp"||e.key==="ArrowRight")r=l+ee;else if(e.key==="ArrowDown"||e.key==="ArrowLeft")r=l-ee;else if(e.key==="Home")r=O;else if(e.key==="End")r=S;else return;e.preventDefault(),Z(r,m,p)},ye=async()=>{if(!a||!v.current||!H){L();return}F(!0);try{const e=await Ne({image:v.current,natural:a,baseScale:N,zoom:l,offsetX:m,offsetY:p,cropSize:h,outputSize:ae,shape:j,exportErrorMessage:i("imageCrop.exportError"),fileName:(()=>{const r=y?.name?.replace(/\.\w+$/,"");return r?`${r}-cropped.png`:"cropped.png"})()});H(e),L()}catch(e){b(e instanceof Error?e.message:i("imageCrop.cropError"))}finally{F(!1)}},M=!!(d&&a),q=`translate(calc(-50% + ${m}px), calc(-50% + ${p}px))`;return t(we,{ref:pe,variant:"modal",purpose:"lightbox",open:u,onOpenChange:U,"aria-labelledby":$,children:(e,r)=>t("div",{...e,...me,ref:r,role:e.role,"aria-modal":e["aria-modal"],"aria-labelledby":e["aria-labelledby"],className:Q(n.panel,e.className,le),style:{...e.style,...se},onClick:xe(ce,e.onClick),children:f(g.Provider,{onClose:L,titleId:$,children:[f(g.Header,{children:[t(g.Title,{as:"h2",children:oe??i("imageCrop.title")}),t("p",{className:n.hint,children:i("imageCrop.hint")})]}),t(g.Body,{children:f("div",{ref:z,className:n.stage,style:{"--altum-image-crop-size":`${h}px`},onPointerMove:ue,onPointerUp:K,onPointerCancel:K,children:[Y&&t("div",{className:Q(n.status,n.error),role:"alert",children:Y}),f("div",{className:n.viewport,children:[M&&t("div",{className:n.imageLayer,style:{width:k.width,height:k.height,transform:q},onPointerDown:he,children:t("img",{src:d,alt:"",draggable:!1,className:n.image})}),M&&t("div",{className:n.cropFrame,"data-shape":j}),!d&&!Y&&t("div",{className:n.status,children:i("imageCrop.choose")})]}),M&&t("div",{className:n.handleLayer,style:{width:k.width,height:k.height,transform:q},children:Re.map(o=>t("div",{role:"slider",tabIndex:0,"data-corner":o,className:n.handle,"aria-label":i("imageCrop.scaleHandle",{corner:o}),"aria-valuemin":O,"aria-valuemax":S,"aria-valuenow":Number(l.toFixed(2)),onPointerDown:fe,onKeyDown:ge},o))})]})}),f(g.Footer,{children:[t(J,{variant:"secondary",size:"sm",onClick:L,disabled:I,children:ie??i("imageCrop.cancel")}),t(J,{variant:"primary",size:"sm",onClick:ye,disabled:I||!a,loading:I,children:ne??i("imageCrop.confirm")})]})]})})})});re.displayName="ImageCrop";export{re as ImageCrop};
1
+ "use client";import{jsx as t,jsxs as f}from"react/jsx-runtime";import{forwardRef as ve,useId as Ce,useRef as P,useState as c,useEffect as G}from"react";import{Button as J}from"../Button/Button.js";import{DialogLayout as we}from"../DialogLayout/DialogLayout.js";import{Layout as z}from"../Layout/Layout.js";import{Stack as xe}from"../Layout/Stack.js";import{Overlay as be}from"../Overlay/Overlay.js";import{Text as ke}from"../Text/Text.js";import{Title as Ne}from"../Title/Title.js";import{cn as Q}from"../../utils/cn.js";import{loadImageFromSrc as Le,getDisplaySize as X,exportCroppedImage as Re,clampOffset as V,getMinCoverScale as ze}from"./ImageCrop.utils.js";import n from"./ImageCrop.module.css.js";import{useLocale as Se}from"../../locales/localeContext.js";import{ruSlice as Ee}from"../../locales/slices/imageCrop.ru.js";const Me={imageCrop:Ee},O=1,I=4,ee=.1,Ye=["nw","ne","se","sw"],re=ve(function({open:d,onOpenChange:U,file:g=null,src:te=null,shape:j="circle",cropSize:h=280,outputSize:oe=512,title:ae,confirmLabel:ne,cancelLabel:ie,className:le,style:se,onCrop:$,onClick:ce,...me},pe){const{t:a}=Se(Me),A=Ce(),S=P(null),y=P(null),E=P(null),[ue,F]=c(null),[o,B]=c(null),[m,v]=c(0),[p,C]=c(0),[l,w]=c(1),[M,T]=c(!1),[Y,x]=c(null),u=ue??te??null,b=o?ze(o,h):1,k=o?X(o,b,l):{width:0,height:0},N=()=>U(!1);G(()=>{if(!d||!g){F(r=>(r&&URL.revokeObjectURL(r),null));return}const e=URL.createObjectURL(g);return F(e),()=>URL.revokeObjectURL(e)},[g,d]),G(()=>{if(!d||!u){B(null),w(1),v(0),C(0),x(null),y.current=null;return}let e=!1;return x(null),Le(u,{errorMessage:a("imageCrop.loadError")}).then(r=>{e||(y.current=r,B({width:r.naturalWidth,height:r.naturalHeight}),w(1),v(0),C(0))}).catch(r=>{e||x(r instanceof Error?r.message:a("imageCrop.loadError"))}),()=>{e=!0}},[u,d,a]);const H=(e,r,i)=>{const s=Math.min(I,Math.max(O,e));if(!o){w(s);return}const L=X(o,b,s),R=V(r,i,L.width,L.height,h);w(s),v(R.offsetX),C(R.offsetY)},de=e=>{const r=E.current;if(!r||!o)return;if(r.type==="pan"){const Z=X(o,b,l),_=V(r.ox+e.clientX-r.startX,r.oy+e.clientY-r.startY,Z.width,Z.height,h);v(_.offsetX),C(_.offsetY);return}const i=S.current?.getBoundingClientRect();if(!i)return;const s=e.clientX-(i.left+i.width/2+r.ox),L=e.clientY-(i.top+i.height/2+r.oy),R=Math.hypot(s,L)/(Math.hypot(r.vx,r.vy)||1);H(r.originZoom*R,r.ox,r.oy)},K=()=>{E.current=null},W=(e,r)=>{e.button!==0||!o||(e.preventDefault(),e.currentTarget.setPointerCapture?.(e.pointerId),E.current=r)},he=e=>{W(e,{type:"pan",startX:e.clientX,startY:e.clientY,ox:m,oy:p})},fe=e=>{e.stopPropagation();const r=S.current?.getBoundingClientRect();if(!r)return;const i=r.left+r.width/2+m,s=r.top+r.height/2+p;W(e,{type:"scale",originZoom:l,ox:m,oy:p,vx:e.clientX-i,vy:e.clientY-s})},ge=e=>{let r=l;if(e.key==="ArrowUp"||e.key==="ArrowRight")r=l+ee;else if(e.key==="ArrowDown"||e.key==="ArrowLeft")r=l-ee;else if(e.key==="Home")r=O;else if(e.key==="End")r=I;else return;e.preventDefault(),H(r,m,p)},ye=async()=>{if(!o||!y.current||!$){N();return}T(!0);try{const e=await Re({image:y.current,natural:o,baseScale:b,zoom:l,offsetX:m,offsetY:p,cropSize:h,outputSize:oe,shape:j,exportErrorMessage:a("imageCrop.exportError"),fileName:(()=>{const r=g?.name?.replace(/\.\w+$/,"");return r?`${r}-cropped.png`:"cropped.png"})()});$(e),N()}catch(e){x(e instanceof Error?e.message:a("imageCrop.cropError"))}finally{T(!1)}},D=!!(u&&o),q=`translate(calc(-50% + ${m}px), calc(-50% + ${p}px))`;return t(be,{ref:pe,variant:"modal",purpose:"lightbox",open:d,onOpenChange:U,"aria-labelledby":A,children:t(we,{variant:"floating",border:!1,shadow:"none",className:Q(n.panel,le),style:se,onClick:ce,...me,onClose:N,children:f(z,{padding:"md",gap:"md",children:[t(z.Header,{sticky:!0,children:f(xe,{gap:"xs",children:[t(Ne,{level:3,id:A,children:ae??a("imageCrop.title")}),t(ke,{as:"p",size:"sm",color:"muted",children:a("imageCrop.hint")})]})}),t(z.Content,{children:f("div",{ref:S,className:n.stage,style:{"--altum-image-crop-size":`${h}px`},onPointerMove:de,onPointerUp:K,onPointerCancel:K,children:[Y&&t("div",{className:Q(n.status,n.error),role:"alert",children:Y}),f("div",{className:n.viewport,children:[D&&t("div",{className:n.imageLayer,style:{width:k.width,height:k.height,transform:q},onPointerDown:he,children:t("img",{src:u,alt:"",draggable:!1,className:n.image})}),D&&t("div",{className:n.cropFrame,"data-shape":j}),!u&&!Y&&t("div",{className:n.status,children:a("imageCrop.choose")})]}),D&&t("div",{className:n.handleLayer,style:{width:k.width,height:k.height,transform:q},children:Ye.map(e=>t("div",{role:"slider",tabIndex:0,"data-corner":e,className:n.handle,"aria-label":a("imageCrop.scaleHandle",{corner:e}),"aria-valuemin":O,"aria-valuemax":I,"aria-valuenow":Number(l.toFixed(2)),onPointerDown:fe,onKeyDown:ge},e))})]})}),f(z.Footer,{sticky:!0,align:"end",children:[t(J,{variant:"secondary",size:"sm",onClick:N,disabled:M,children:ie??a("imageCrop.cancel")}),t(J,{variant:"primary",size:"sm",onClick:ye,disabled:M||!o,loading:M,children:ne??a("imageCrop.confirm")})]})]})})})});re.displayName="ImageCrop";export{re as ImageCrop};
@@ -1 +1 @@
1
- "use client";import{injectCss as r}from"../../utils/injectCss.js";var a=".VsqSJ{background-color:var(--altum-color-fill-floating-bg);border-radius:var(--altum-g-radius);box-sizing:border-box;color:var(--altum-color-fill-floating-fg);display:flex;flex-direction:column;pointer-events:auto;position:relative;width:min(100%,var(--altum-image-crop-panel-max));z-index:var(--altum-g-z-raised)}.VsqSJ .QNjqO{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-sm);line-height:1.4;margin:0}.VsqSJ .br-aR{aspect-ratio:1;max-height:min(70vh,var(--altum-image-crop-stage-max));position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.VsqSJ .FFs-o{background-color:var(--altum-overlay-content-bg);color:var(--altum-overlay-on-scrim);inset:0;overflow:hidden;position:absolute}.VsqSJ .eighF{cursor:grab;left:50%;position:absolute;top:50%;will-change:transform}:is(.VsqSJ .eighF):active{cursor:grabbing}.VsqSJ .LAjrZ{-webkit-user-drag:none;display:block;height:100%;pointer-events:none;width:100%}.VsqSJ .FO4mc{border:2px solid var(--altum-overlay-on-scrim);box-shadow:0 0 0 9999px var(--altum-overlay-scrim-strong);box-sizing:border-box;height:var(--altum-image-crop-size);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--altum-image-crop-size);z-index:var(--altum-g-z-raised)}[data-shape=circle]:is(.VsqSJ .FO4mc){border-radius:50%}[data-shape=square]:is(.VsqSJ .FO4mc){border-radius:var(--altum-g-radius-sm)}.VsqSJ .wTX2-{left:50%;pointer-events:none;position:absolute;top:50%;z-index:calc(var(--altum-g-z-raised) + 1)}.VsqSJ .mBMAL{appearance:none;background-color:var(--altum-color-brand);border:2px solid var(--altum-overlay-on-scrim);border-radius:var(--altum-g-radius-sm);box-shadow:var(--altum-shadow-brand);height:var(--altum-g-space-4);margin:0;padding:0;pointer-events:auto;position:absolute;transform:translate(-50%,-50%);transition:background-color .15s ease;width:var(--altum-g-space-4)}[data-corner=nw]:is(.VsqSJ .mBMAL){cursor:nwse-resize;left:0;top:0}[data-corner=ne]:is(.VsqSJ .mBMAL){cursor:nesw-resize;left:100%;top:0}[data-corner=se]:is(.VsqSJ .mBMAL){cursor:nwse-resize;left:100%;top:100%}[data-corner=sw]:is(.VsqSJ .mBMAL){cursor:nesw-resize;left:0;top:100%}:is(.VsqSJ .mBMAL):focus-visible,:is(.VsqSJ .mBMAL):hover{background-color:var(--altum-color-brand-hover);outline:none}@media (prefers-reduced-motion:reduce){.VsqSJ .mBMAL{transition:none}}.VsqSJ .BG4TM{align-items:center;color:var(--altum-color-muted);display:flex;font-size:var(--altum-g-font-size-base);inset:0;justify-content:center;padding:var(--altum-g-space-4);position:absolute;text-align:center;z-index:var(--altum-g-z-control)}.VsqSJ .wGZHl{background-color:color-mix(in srgb,var(--altum-color-dropdown-bg) 88%,#0000);color:var(--altum-color-status-error)}";const e={panel:"VsqSJ",hint:"QNjqO",stage:"br-aR",viewport:"FFs-o",imageLayer:"eighF",image:"LAjrZ",cropFrame:"FO4mc",handleLayer:"wTX2-",handle:"mBMAL",status:"BG4TM",error:"wGZHl"};r(a);export{e as default};
1
+ "use client";import{injectCss as r}from"../../utils/injectCss.js";var e=".VsqSJ{pointer-events:auto;width:min(100%,var(--altum-image-crop-panel-max));z-index:var(--altum-g-z-raised)}.VsqSJ .br-aR{aspect-ratio:1;max-height:min(70vh,var(--altum-image-crop-stage-max));position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.VsqSJ .FFs-o{background-color:var(--altum-overlay-content-bg);color:var(--altum-overlay-on-scrim);inset:0;overflow:hidden;position:absolute}.VsqSJ .eighF{cursor:grab;left:50%;position:absolute;top:50%;will-change:transform}:is(.VsqSJ .eighF):active{cursor:grabbing}.VsqSJ .LAjrZ{-webkit-user-drag:none;display:block;height:100%;pointer-events:none;width:100%}.VsqSJ .FO4mc{border:2px solid var(--altum-overlay-on-scrim);box-shadow:0 0 0 9999px var(--altum-overlay-scrim-strong);box-sizing:border-box;height:var(--altum-image-crop-size);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--altum-image-crop-size);z-index:var(--altum-g-z-raised)}[data-shape=circle]:is(.VsqSJ .FO4mc){border-radius:50%}[data-shape=square]:is(.VsqSJ .FO4mc){border-radius:var(--altum-g-radius-sm)}.VsqSJ .wTX2-{left:50%;pointer-events:none;position:absolute;top:50%;z-index:calc(var(--altum-g-z-raised) + 1)}.VsqSJ .mBMAL{appearance:none;background-color:var(--altum-color-brand);border:2px solid var(--altum-overlay-on-scrim);border-radius:var(--altum-g-radius-sm);box-shadow:var(--altum-shadow-brand);height:var(--altum-g-space-4);margin:0;padding:0;pointer-events:auto;position:absolute;transform:translate(-50%,-50%);transition:background-color .15s ease;width:var(--altum-g-space-4)}[data-corner=nw]:is(.VsqSJ .mBMAL){cursor:nwse-resize;left:0;top:0}[data-corner=ne]:is(.VsqSJ .mBMAL){cursor:nesw-resize;left:100%;top:0}[data-corner=se]:is(.VsqSJ .mBMAL){cursor:nwse-resize;left:100%;top:100%}[data-corner=sw]:is(.VsqSJ .mBMAL){cursor:nesw-resize;left:0;top:100%}:is(.VsqSJ .mBMAL):focus-visible,:is(.VsqSJ .mBMAL):hover{background-color:var(--altum-color-brand-hover);outline:none}@media (prefers-reduced-motion:reduce){.VsqSJ .mBMAL{transition:none}}.VsqSJ .BG4TM{align-items:center;color:var(--altum-color-muted);display:flex;font-size:var(--altum-g-font-size-base);inset:0;justify-content:center;padding:var(--altum-g-space-4);position:absolute;text-align:center;z-index:var(--altum-g-z-control)}.VsqSJ .wGZHl{background-color:color-mix(in srgb,var(--altum-color-dropdown-bg) 88%,#0000);color:var(--altum-color-status-error)}";const a={panel:"VsqSJ",stage:"br-aR",viewport:"FFs-o",imageLayer:"eighF",image:"LAjrZ",cropFrame:"FO4mc",handleLayer:"wTX2-",handle:"mBMAL",status:"BG4TM",error:"wGZHl"};r(e);export{a as default};
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as b,Fragment as R}from"react/jsx-runtime";import{forwardRef as E,useCallback as y}from"react";import{ButtonIcon as F}from"../ButtonIcon/ButtonIcon.js";import{IconChevronLeft as O}from"../../icons/icons/IconChevronLeft.js";import{IconChevronRight as S}from"../../icons/icons/IconChevronRight.js";import{useDocumentKeyDown as V}from"../../hooks/useDocumentKeyDown.js";import{useControlledStateWithCallback as W}from"../../hooks/useControlledState.js";import{handleArrowPairKeyDown as q}from"../../utils/keyboard.js";import l from"./ImageGallery.module.css.js";import{cn as v}from"../../utils/cn.js";import{useLocale as H}from"../../locales/localeContext.js";function J(c,d){return c.map((n,h)=>typeof n=="string"?{src:n,alt:d(h+1)}:n)}const C=E(function({images:c,index:d,defaultIndex:n=0,onIndexChange:h,chrome:I="default",showNav:G,showThumbnails:k,showCounter:z,enableKeyboard:A,className:B,...D},K){const{t:u}=H(),g=a=>u("imageGallery.imageN",{index:a}),t=J(c,g),m=t.length>1,o=I==="default",T=(G??o)&&m,j=(k??o)&&m,L=(z??o)&&m,P=(A??o)&&m,p=t.length-1,[e,N]=W(d,n,h),i=y(a=>{a<0||a>p||a===e||N(a)},[e,p,N]),x=y(()=>i(e-1),[e,i]),w=y(()=>i(e+1),[e,i]);V(a=>{q(a,x,w)},{enabled:P,target:"window"});const f=t[e];return r("div",{ref:K,className:v(l.gallery,!t.length&&l.empty,B),...D,children:f?b(R,{children:[b("div",{className:l.mainArea,children:[T?[0,1].map(a=>r(F,{className:v(l.navBtn,a?l.navNext:l.navPrev),variant:"ghost",shape:"circle",size:"md",icon:a?r(S,{size:22}):r(O,{size:22}),"aria-label":u(a?"imageGallery.next":"imageGallery.prev"),disabled:a?e>=p:e<=0,onClick:a?w:x},a)):null,r("img",{src:f.src,alt:f.alt??g(e+1),className:l.mainImage,draggable:!1},e)]}),j?r("div",{className:l.thumbnails,children:t.map((a,s)=>r("button",{type:"button",className:v(l.thumbnailBtn,s===e&&l.active),"aria-label":a.alt??g(s+1),"aria-current":s===e?"true":void 0,onClick:()=>i(s),children:r("img",{src:a.thumbnail??a.src,alt:"",className:l.thumbnailImage,draggable:!1})},a.src))}):null,L?b("div",{className:l.counter,"aria-live":"polite",children:[e+1," / ",t.length]}):null]}):r("span",{className:l.emptyText,children:u("imageGallery.empty")})})});C.displayName="ImageGallery";export{C as ImageGallery};
1
+ "use client";import{jsx as r,jsxs as p,Fragment as B}from"react/jsx-runtime";import{forwardRef as D,useRef as K}from"react";import{ButtonIcon as T}from"../ButtonIcon/ButtonIcon.js";import{IconChevronLeft as $}from"../../icons/icons/IconChevronLeft.js";import{IconChevronRight as j}from"../../icons/icons/IconChevronRight.js";import{useDocumentKeyDown as A}from"../../hooks/useDocumentKeyDown.js";import{useControlledStateWithCallback as E}from"../../hooks/useControlledState.js";import{handleArrowPairKeyDown as F}from"../../utils/keyboard.js";import a from"./ImageGallery.module.css.js";import{cn as h}from"../../utils/cn.js";import{composeRefs as L}from"../../utils/composeRefs.js";import{useLocale as P}from"../../locales/localeContext.js";import{ruSlice as S}from"../../locales/slices/imageGallery.ru.js";const W={imageGallery:S};function z(n){return n instanceof Element&&n.closest('input, textarea, select, [contenteditable="true"]')!=null}function O(n,s){if(z(s.target))return!1;const l=document.activeElement;if(!(l instanceof Node))return!1;if(n.contains(l))return!0;const i=n.closest('[role="dialog"], dialog');return i!=null&&i.contains(l)}function q(n,s){return n.map((l,i)=>{const c=s(i+1);return typeof l=="string"?{src:l,alt:c}:{...l,alt:l.alt??c}})}const y=D(function({images:n,index:s,defaultIndex:l=0,onIndexChange:i,chrome:c="default",showNav:N,showThumbnails:x,showCounter:I,enableKeyboard:C,className:G,...w},R){const{t:d}=P(W),v=K(null),m=q(n,e=>d("imageGallery.imageN",{index:e})),u=e=>(e??c==="default")&&m.length>1,b=m.length-1,[t,k]=E(s,l,i),f=e=>{e<0||e>b||e===t||k(e)};A(e=>{const o=v.current;!o||!O(o,e)||F(e,()=>f(t-1),()=>f(t+1))},{enabled:u(C)});const g=m[t];return r("div",{ref:L(R,v),className:h(a.gallery,!m.length&&a.empty,G),...w,children:g?p(B,{children:[p("div",{className:a.mainArea,children:[u(N)?[0,1].map(e=>r(T,{className:h(a.navBtn,e?a.navNext:a.navPrev),variant:"ghost",shape:"circle",size:"md",icon:e?r(j,{}):r($,{}),"aria-label":d(e?"imageGallery.next":"imageGallery.prev"),disabled:e?t>=b:t<=0,onClick:()=>f(e?t+1:t-1)},e)):null,r("img",{src:g.src,alt:g.alt,className:a.mainImage,draggable:!1},t)]}),u(x)?r("div",{className:a.thumbnails,children:m.map((e,o)=>r("button",{type:"button",className:h(a.thumbnailBtn,o===t&&a.active),"aria-label":e.alt,"aria-current":o===t?"true":void 0,onClick:()=>f(o),children:r("img",{src:e.thumbnail??e.src,alt:"",className:a.thumbnailImage,draggable:!1})},`${e.src}-${o}`))}):null,u(I)?p("div",{className:a.counter,"aria-live":"polite",children:[t+1," / ",m.length]}):null]}):r("span",{className:a.emptyText,children:d("imageGallery.empty")})})});y.displayName="ImageGallery";export{y as ImageGallery};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var r="._20B5K{--altum-image-gallery-chrome-in:opacity 0.32s cubic-bezier(0.4,0,0.2,1);--altum-image-gallery-chrome-out:opacity 0.5s cubic-bezier(0.4,0,0.2,1);display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-4);width:100%}._20B5K.viRPM{align-items:center;background-color:var(--altum-color-surface);border:1px dashed var(--altum-color-border);border-radius:var(--altum-g-radius);justify-content:center;min-height:var(--altum-image-gallery-viewport-min)}._20B5K ._9qVXv{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-base)}._20B5K .-FEGS{background-color:var(--altum-image-gallery-viewport-bg,var(--altum-color-surface));border:1px solid var(--altum-image-gallery-viewport-border,var(--altum-color-border));border-radius:var(--altum-g-radius);height:var(--altum-image-gallery-viewport-height,min(60vh,480px));min-width:0;overflow:var(--altum-image-gallery-viewport-overflow,hidden);position:relative;width:100%}._20B5K .kuumv{animation:_4V5g9 .32s ease;filter:var(--altum-image-gallery-image-filter,none);height:100%;inset:0;object-fit:contain;position:absolute;-webkit-user-select:none;user-select:none;width:100%;z-index:var(--altum-g-z-raised)}._20B5K .ro8Ub{background-color:var(--altum-image-gallery-nav-bg,var(--altum-color-surface))!important;border:1px solid var(--altum-image-gallery-nav-border,var(--altum-color-border))!important;box-shadow:var(--altum-shadow-surface);color:var(--altum-image-gallery-nav-color,inherit);position:absolute!important;top:50%;translate:0 -50%;z-index:var(--altum-g-z-raised-above)}:is(._20B5K .ro8Ub):disabled{opacity:.35;pointer-events:none}._20B5K .utab2{left:var(--altum-g-space-3)}._20B5K .QpEtC{right:var(--altum-g-space-3)}@media (hover:hover) and (pointer:fine){._20B5K .ro8Ub{opacity:0;pointer-events:none;transition:var(--altum-image-gallery-chrome-out)}:is(._20B5K .ro8Ub):disabled{opacity:0}._20B5K .-FEGS:focus-within .ro8Ub,._20B5K .-FEGS:hover .ro8Ub{opacity:1;pointer-events:auto;transition:var(--altum-image-gallery-chrome-in)}:is(._20B5K .-FEGS:hover .ro8Ub,._20B5K .-FEGS:focus-within .ro8Ub):disabled{opacity:.35;pointer-events:none}}._20B5K .nCrhJ{display:flex;gap:var(--altum-g-space-2);overflow-x:auto;padding:var(--altum-g-space-1) var(--altum-g-space-1) var(--altum-g-space-2);scroll-behavior:smooth;scrollbar-width:thin}._20B5K .jcfWL{background:none;border:2px solid #0000;border-radius:var(--altum-g-radius-sm);cursor:pointer;flex:0 0 auto;height:var(--altum-image-gallery-thumb-height);opacity:.65;overflow:hidden;padding:0;transition:var(--altum-transition-smooth);width:var(--altum-image-gallery-thumb-width)}:is(._20B5K .jcfWL):hover:not(:disabled){opacity:.9}.obGnC:is(._20B5K .jcfWL){border-color:var(--altum-color-brand);box-shadow:0 0 0 1px var(--altum-color-brand);opacity:1}:is(._20B5K .jcfWL) .DlhBH{display:block;height:100%;object-fit:cover;pointer-events:none;width:100%}._20B5K .MdBOx{align-self:center;color:var(--altum-image-gallery-counter-color,var(--altum-color-muted));font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium)}@keyframes _4V5g9{0%{opacity:0}}@media (prefers-reduced-motion:reduce){._20B5K .kuumv{animation:none}._20B5K .ro8Ub{transition:none}}";const e={gallery:"_20B5K",empty:"viRPM",emptyText:"_9qVXv",mainArea:"-FEGS",mainImage:"kuumv",navBtn:"ro8Ub",navPrev:"utab2",navNext:"QpEtC",thumbnails:"nCrhJ",thumbnailBtn:"jcfWL",active:"obGnC",thumbnailImage:"DlhBH",counter:"MdBOx"};a(r);export{e as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t="._20B5K{display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-4);width:100%}._20B5K.viRPM{align-items:center;background-color:var(--altum-color-surface);border:1px dashed var(--altum-color-border);border-radius:var(--altum-g-radius);justify-content:center;min-height:var(--altum-image-gallery-viewport-min)}._20B5K ._9qVXv{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-base)}._20B5K .-FEGS{background-color:var(--altum-image-gallery-viewport-bg,var(--altum-color-surface));border:1px solid var(--altum-image-gallery-viewport-border,var(--altum-color-border));border-radius:var(--altum-g-radius);height:var(--altum-image-gallery-viewport-height,min(60vh,480px));min-width:0;overflow:var(--altum-image-gallery-viewport-overflow,hidden);position:relative;width:100%}._20B5K .kuumv{animation:_4V5g9 .32s ease;filter:var(--altum-image-gallery-image-filter,none);height:100%;inset:0;object-fit:contain;position:absolute;-webkit-user-select:none;user-select:none;width:100%;z-index:var(--altum-g-z-raised)}._20B5K .-FEGS .ro8Ub{--altum-btn-bg:var(--altum-image-gallery-nav-bg,var(--altum-color-surface));--altum-btn-bg-hover:var(--altum-btn-bg);--altum-btn-bg-active:var(--altum-btn-bg);--altum-btn-border:var(--altum-image-gallery-nav-border,var(--altum-color-border));--altum-btn-text:var(--altum-image-gallery-nav-color,inherit);--altum-btn-text-hover:var(--altum-btn-text);--altum-btn-shadow:var(--altum-shadow-surface);--_o:1;opacity:var(--_o);position:absolute;top:50%;translate:0 -50%;z-index:var(--altum-g-z-raised-above)}:is(._20B5K .-FEGS .ro8Ub):disabled{--_o:0.35;pointer-events:none}._20B5K .utab2{left:var(--altum-g-space-3)}._20B5K .QpEtC{right:var(--altum-g-space-3)}@media (hover:hover) and (pointer:fine){._20B5K .-FEGS .ro8Ub,._20B5K .-FEGS .ro8Ub:disabled{--_o:0;pointer-events:none;transition:opacity .5s cubic-bezier(.4,0,.2,1)}._20B5K .-FEGS:is(:hover,:focus-within) .ro8Ub{--_o:1;pointer-events:auto;transition-duration:.32s}:is(._20B5K .-FEGS:is(:hover,:focus-within) .ro8Ub):disabled{--_o:0.35;pointer-events:none}}._20B5K .nCrhJ{display:flex;gap:var(--altum-g-space-2);overflow-x:auto;padding:var(--altum-g-space-1) var(--altum-g-space-1) var(--altum-g-space-2);scroll-behavior:smooth;scrollbar-width:thin}._20B5K .jcfWL{background:none;border:2px solid #0000;border-radius:var(--altum-g-radius-sm);cursor:pointer;flex:0 0 auto;height:var(--altum-image-gallery-thumb-height);opacity:.65;overflow:hidden;padding:0;transition:var(--altum-transition-smooth);width:var(--altum-image-gallery-thumb-width)}:is(._20B5K .jcfWL):hover:not(:disabled){opacity:.9}.obGnC:is(._20B5K .jcfWL){border-color:var(--altum-color-brand);box-shadow:0 0 0 1px var(--altum-color-brand);opacity:1}:is(._20B5K .jcfWL) .DlhBH{display:block;height:100%;object-fit:cover;pointer-events:none;width:100%}._20B5K .MdBOx{align-self:center;color:var(--altum-image-gallery-counter-color,var(--altum-color-muted));font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium)}@media (prefers-reduced-motion:reduce){._20B5K .kuumv{animation:none}._20B5K .-FEGS .ro8Ub,._20B5K .-FEGS:is(:hover,:focus-within) .ro8Ub{transition:none}}@keyframes _4V5g9{0%{opacity:0}}";const e={gallery:"_20B5K",empty:"viRPM",emptyText:"_9qVXv",mainArea:"-FEGS",mainImage:"kuumv",navBtn:"ro8Ub",navPrev:"utab2",navNext:"QpEtC",thumbnails:"nCrhJ",thumbnailBtn:"jcfWL",active:"obGnC",thumbnailImage:"DlhBH",counter:"MdBOx"};a(t);export{e as default};
@@ -1 +1 @@
1
- "use client";import{jsx as o,jsxs as x}from"react/jsx-runtime";import{forwardRef as b}from"react";import{Overlay as u}from"../Overlay/Overlay.js";import{ImageGallery as C}from"../ImageGallery/ImageGallery.js";import{ButtonIcon as I}from"../ButtonIcon/ButtonIcon.js";import{IconCross as y}from"../../icons/icons/IconCross.js";import N from"../../styles/overlayClose.module.css.js";import{cn as L}from"../../utils/cn.js";import{composeEventHandlers as k}from"../../utils/composeEvents.js";import a from"./ImageLightbox.module.css.js";import{useLocale as v}from"../../locales/localeContext.js";const n=b(function({open:m,onOpenChange:r,images:l,index:s,defaultIndex:t=0,onIndexChange:c,className:p,onClick:f,...d},g){const{t:i}=v();return o(u,{ref:g,variant:"modal",purpose:"lightbox",open:m,onOpenChange:r,"aria-label":i("imageLightbox.ariaLabel"),children:(e,h)=>x("div",{...e,...d,ref:h,className:L(a.stage,e.className,p),style:e.style,onClick:k(f,e.onClick),children:[o(I,{className:a.close,appearance:"diskClose","aria-label":i("imageLightbox.close"),icon:o(y,{className:N.icon,size:16,"aria-hidden":!0}),onClick:()=>r(!1)}),o(C,{images:l,index:s,defaultIndex:t,onIndexChange:c,enableKeyboard:!0,showThumbnails:!1,className:a.gallery})]})})});n.displayName="ImageLightbox";export{n as ImageLightbox};
1
+ "use client";import{jsx as e,jsxs as p}from"react/jsx-runtime";import{forwardRef as x}from"react";import{Overlay as d}from"../Overlay/Overlay.js";import{ImageGallery as h}from"../ImageGallery/ImageGallery.js";import{OverlayCloseButton as b}from"../ButtonIcon/OverlayCloseButton.js";import{cn as u}from"../../utils/cn.js";import a from"./ImageLightbox.module.css.js";import{useLocale as I}from"../../locales/localeContext.js";import{ruSlice as L}from"../../locales/slices/imageLightbox.ru.js";const C={imageLightbox:L},i=x(function({open:m,onOpenChange:o,images:l,index:n,defaultIndex:t,onIndexChange:s,className:g,...c},f){const{t:r}=I(C);return e(d,{variant:"modal",purpose:"lightbox",open:m,onOpenChange:o,"aria-label":r("imageLightbox.ariaLabel"),children:p("div",{ref:f,className:u(a.stage,g),...c,children:[e(b,{className:a.close,"aria-label":r("imageLightbox.close"),onClick:()=>o(!1)}),e(h,{images:l,index:n,defaultIndex:t,onIndexChange:s,showThumbnails:!1,className:a.gallery})]})})});i.displayName="ImageLightbox";export{i as ImageLightbox};
@@ -1 +1 @@
1
- "use client";import{injectCss as e}from"../../utils/injectCss.js";var a=".RGkCH{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;overflow:visible;padding:var(--altum-g-space-6);pointer-events:none;position:relative;width:100%}.gfE0G.gfE0G{--altum-image-gallery-counter-color:var(--altum-overlay-text-muted);--altum-image-gallery-viewport-height:min(72vh,640px);--altum-image-gallery-viewport-bg:#0000;--altum-image-gallery-viewport-border:#0000;--altum-image-gallery-viewport-overflow:visible;--altum-image-gallery-image-filter:drop-shadow(var(--altum-overlay-media-shadow));--altum-image-gallery-nav-bg:var(--altum-overlay-control-bg);--altum-image-gallery-nav-border:var(--altum-overlay-control-border);--altum-image-gallery-nav-color:var(--altum-overlay-on-scrim);max-height:calc(100vh - 48px);min-width:0;pointer-events:auto;width:min(100%,960px)}.NqdYT.NqdYT{pointer-events:auto;position:absolute;right:var(--altum-g-space-5);top:var(--altum-g-space-5);z-index:var(--altum-g-z-raised-above)}";const t={stage:"RGkCH",gallery:"gfE0G",close:"NqdYT"};e(a);export{t as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var e=".RGkCH{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;padding:var(--altum-g-space-6);pointer-events:none;width:100%}.RGkCH .gfE0G{--altum-image-gallery-counter-color:var(--altum-overlay-text-muted);--altum-image-gallery-viewport-height:min(72vh,640px);--altum-image-gallery-viewport-bg:#0000;--altum-image-gallery-viewport-border:#0000;--altum-image-gallery-viewport-overflow:visible;--altum-image-gallery-image-filter:drop-shadow(var(--altum-overlay-media-shadow));--altum-image-gallery-nav-bg:var(--altum-overlay-control-bg);--altum-image-gallery-nav-border:var(--altum-overlay-control-border);--altum-image-gallery-nav-color:var(--altum-overlay-on-scrim);max-height:calc(100dvh - var(--altum-g-space-6)*2);min-width:0;pointer-events:auto;width:min(100%,960px)}.RGkCH .NqdYT{pointer-events:auto;position:absolute;right:var(--altum-g-space-5);top:var(--altum-g-space-5);z-index:var(--altum-g-z-raised-above)}";const t={stage:"RGkCH",gallery:"gfE0G",close:"NqdYT"};a(e);export{t as default};
@@ -1 +1 @@
1
- "use client";import{jsx as s}from"react/jsx-runtime";import{forwardRef as n}from"react";import{cn as m}from"../../utils/cn.js";import{mergeStyles as x}from"../../utils/mergeStyles.js";import r from"./Layout.module.css.js";import{ControlRow as p}from"./ControlRow.js";import{Inline as d}from"./Inline.js";import{LayoutItem as N}from"./LayoutItem.js";import{Split as L}from"./Split.js";import{As as i}from"../../base/As/As.js";const k={start:"flex-start",center:"center",end:"flex-end","space-between":"space-between"},f=n(function({as:t="div",className:e,...o},a){return s(i,{ref:a,as:t,className:m(r.root,e),...o})}),l=n(function({as:t="header",className:e,sticky:o=!1,...a},c){return s(i,{ref:c,as:t,className:m(r.header,o&&r.sticky,e),...a})}),y=n(function({as:t="div",className:e,...o},a){return s(i,{ref:a,as:t,className:m(r.content,e),...o})}),u=n(function({as:t="footer",className:e,sticky:o=!1,align:a="start",style:c,...C},w){return s(i,{ref:w,as:t,className:m(r.footer,o&&r.sticky,e),style:x({justifyContent:k[a]},c),...C})});f.displayName="Layout",l.displayName="Layout.Header",y.displayName="Layout.Content",u.displayName="Layout.Footer";const I=Object.assign(f,{Header:l,Content:y,Footer:u,Inline:d,Split:L,ControlRow:p,Item:N});export{p as ControlRow,d as Inline,I as Layout,y as LayoutContent,u as LayoutFooter,l as LayoutHeader,N as LayoutItem,f as LayoutRoot,L as Split};
1
+ "use client";import{jsx as g}from"react/jsx-runtime";import{forwardRef as e}from"react";import{cn as N}from"../../utils/cn.js";import m from"./Layout.module.css.js";import{As as C}from"../../base/As/As.js";function n(t,{as:o="div",className:a,sticky:r,align:d,padding:c,gap:l,style:f,...p},L){return g(C,{ref:L,as:o,className:N(m[t],r&&m.sticky,a),...p,"data-padding":c,"data-gap":l,style:d==null?f:{justifyContent:d,...f}})}const s=e(function(t,o){return n("root",t,o)}),i=e(function({as:t="header",...o},a){return n("header",{as:t,...o},a)}),u=e(function(t,o){return n("content",t,o)}),y=e(function({as:t="footer",align:o="start",...a},r){return n("footer",{as:t,align:o,...a},r)});s.displayName="Layout",i.displayName="Layout.Header",u.displayName="Layout.Content",y.displayName="Layout.Footer";const j=Object.assign(s,{Header:i,Content:u,Footer:y});export{j as Layout,u as LayoutContent,y as LayoutFooter,i as LayoutHeader,s as LayoutRoot};
@@ -1 +1 @@
1
- "use client";import{injectCss as t}from"../../utils/injectCss.js";var e=".tyzJ8{box-sizing:border-box;display:flex;flex:1 1 auto;flex-direction:column;height:100%;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;width:100%}.j6ao5{flex-shrink:0}.Wa4rZ{flex:1 0 auto;min-width:0}._266Qh{align-items:center;display:flex;flex-shrink:0;gap:var(--altum-g-space-3)}.GdLP9{position:sticky;z-index:var(--altum-g-z-raised,1)}.j6ao5.GdLP9{top:0}._266Qh.GdLP9{bottom:0}";const o={root:"tyzJ8",header:"j6ao5",content:"Wa4rZ",footer:"_266Qh",sticky:"GdLP9"};t(e);export{o as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t='.tyzJ8{--altum-layout-pad:0;--altum-layout-gap:0;box-sizing:border-box;display:flex;flex:1 1 auto;flex-direction:column;height:100%;min-height:0;min-width:0;overflow:hidden auto;width:100%}.tyzJ8[data-padding=sm]{--altum-layout-pad:var(--altum-g-space-3)}.tyzJ8[data-padding=md]{--altum-layout-pad:var(--altum-g-space-4)}.tyzJ8[data-padding=lg]{--altum-layout-pad:var(--altum-g-space-6)}.tyzJ8[data-gap=sm]{--altum-layout-gap:var(--altum-g-space-3)}.tyzJ8[data-gap=md]{--altum-layout-gap:var(--altum-g-space-4)}.tyzJ8[data-gap=lg]{--altum-layout-gap:var(--altum-g-space-6)}.tyzJ8[data-gap]{gap:var(--altum-layout-gap)}.tyzJ8[data-padding]>:is(.j6ao5,.Wa4rZ,._266Qh){box-sizing:border-box;padding-inline:var(--altum-layout-pad)}.tyzJ8[data-padding]>:is(.j6ao5,._266Qh:first-child,.Wa4rZ:first-child){padding-block-start:var(--altum-layout-pad)}.tyzJ8[data-padding]>:is(._266Qh,.j6ao5:last-child,.Wa4rZ:last-child){padding-block-end:var(--altum-layout-pad)}._266Qh,.j6ao5{flex-shrink:0}.Wa4rZ{flex:1 0 auto;min-width:0}._266Qh{align-items:center;display:flex;gap:var(--altum-g-space-3)}.GdLP9{position:sticky;z-index:var(--altum-g-z-raised)}.GdLP9.j6ao5{top:0}.GdLP9._266Qh{bottom:0}.GdLP9._266Qh:before,.GdLP9.j6ao5:after{background-color:inherit;content:"";height:var(--altum-layout-gap);left:calc(var(--altum-layout-pad)*-1);pointer-events:none;position:absolute;right:calc(var(--altum-layout-pad)*-1)}.GdLP9.j6ao5:after{margin-top:1px;top:100%}.GdLP9._266Qh:before{bottom:100%;margin-bottom:1px}';const o={root:"tyzJ8",header:"j6ao5",content:"Wa4rZ",footer:"_266Qh",sticky:"GdLP9"};a(t);export{o as default};
@@ -1 +1 @@
1
- "use client";import{forwardRef as g,isValidElement as k,Children as h,createElement as L}from"react";import N from"../../styles/unstyledControl.module.css.js";import w from"../../styles/textLink.module.css.js";import m from"../../styles/type.module.css.js";import e from"./Link.module.css.js";import{cn as x}from"../../utils/cn.js";import{Slot as y}from"../../utils/slot.js";const a=g(function({variant:l="primary",status:f="default",size:o,weight:t,className:s,children:r,target:n,rel:i,...c},p){const d=k(r)&&h.count(r)===1,u=n==="_blank"?i??"noopener noreferrer":i;return L(d?y:"a",{ref:p,className:x(N.control,w.link,e.link,e[l],f==="danger"&&e.danger,o&&m[o],t&&m[t],s),target:n,rel:u,...c},r)});a.displayName="Link";export{a as Link};
1
+ "use client";import{forwardRef as g,isValidElement as k,Children as h,createElement as w}from"react";import L from"../../styles/unstyledControl.module.css.js";import N from"../../styles/textLink.module.css.js";import m from"../../styles/type.module.css.js";import e from"./Link.module.css.js";import{cn as x}from"../../utils/cn.js";import{Slot as y}from"../../utils/slot.js";const a=g(function({variant:l="primary",status:f="default",size:o,weight:t,className:s,children:r,target:n,rel:i,...c},p){const d=k(r)&&h.count(r)===1,u=n==="_blank"?i??"noopener noreferrer":i;return w(d?y:"a",{ref:p,className:x(L.control,N.link,e.link,e[l],f==="danger"&&e.danger,o&&m[o],t&&m[t],s),target:n,rel:u,...c},r)});a.displayName="Link";export{a as Link};
@@ -1 +1 @@
1
- "use client";import{jsx as u,jsxs as se}from"react/jsx-runtime";import{forwardRef as de,useRef as F,useMemo as z,useCallback as v,useEffect as K,useImperativeHandle as ue,createElement as ce}from"react";import{resolveListboxGroups as me,flattenResolvedListboxGroups as he,getListboxOptionDomId as L,moveListboxHighlight as ge,findEnabledListboxIndex as O,getListboxOptionText as pe}from"../../utils/listboxOptions.js";import{handleListHighlightKeyDown as be}from"../../utils/keyboard.js";import{IconCheckmark as fe}from"../../icons/icons/IconCheckmark.js";import{VirtualList as ve}from"../VirtualList/VirtualList.js";import{cn as H}from"../../utils/cn.js";import{composeEventHandlers as xe}from"../../utils/composeEvents.js";import{useControlledStateWithCallback as Ie}from"../../hooks/useControlledState.js";import{useFallbackId as ye}from"../../hooks/useFallbackId.js";import{useLocale as Le}from"../../locales/localeContext.js";import Ne from"../../styles/unstyledControl.module.css.js";import o from"./Listbox.module.css.js";const ke=100,we=40,R=de(function({options:x,groups:I,value:T=[],multiple:$=!1,onSelect:N,id:G,"aria-label":V,"aria-labelledby":j,noOptionsText:A,loading:W=!1,className:q,showCheck:D=!1,navigation:B="roving",highlightedIndex:Y,defaultHighlightedIndex:J=-1,onHighlightChange:Q,preventOptionMouseDown:U=!1,disabled:m=!1,multiline:X=!1,virtualized:Z,onKeyDown:_,...ee},te){const{t:le}=Le(),ie=A??le("listbox.noOptions"),s=ye(G),S=F(null),M=F(null),h=!!(I&&I.length>0),g=z(()=>h?me(x,I):null,[I,h,x]),i=z(()=>g?he(g):x,[x,g]),[l,n]=Ie(Y,J,Q),r=B==="roving",d=v((e,t)=>{e<0||(M.current?.scrollToIndex(e),requestAnimationFrame(()=>{const a=document.getElementById(L(s,e));if(t){a?.focus({preventScroll:!0});return}a?.scrollIntoView({block:"nearest"})}))},[s]);K(()=>{if(i.length===0){l!==-1&&n(-1);return}l>=i.length&&n(i.length-1)},[l,i.length,n]),K(()=>{l<0||d(l,!1)},[i.length,l,d]);const p=v(e=>!!i[e]?.disabled,[i]),b=v(e=>{const t=ge(l,i.length,e,{isDisabled:p});t<0||(n(t),d(t,r))},[i.length,l,p,r,d,n]),k=v(e=>{if(m)return;const t=i[e];if(!(!t||t.disabled))return N?.(t.value),t.value},[m,N,i]),f=v(e=>{const t=O(i.length,e,p);t<0||(n(t),d(t,r))},[i.length,p,r,d,n]);ue(te,()=>({highlightNext:()=>b(1),highlightPrev:()=>b(-1),highlightFirst:()=>f("start"),highlightLast:()=>f("end"),selectHighlighted:()=>k(l),getHighlightedIndex:()=>l,getActiveDescendantId:()=>!r&&l>=0?L(s,l):void 0,focusOption:e=>d(e,!0)}),[f,l,r,s,b,k,d]);const oe=new Set(T),ne=r?l>=0?l:O(i.length,"start",p):-1,w=(e,t)=>{const a=m||!!e.disabled,c=oe.has(e.value),y=t===l,C=pe(e);return ce("button",{...e.buttonProps,key:`${e.value}-${t}`,id:L(s,t),type:"button",role:"option","aria-selected":c,"aria-disabled":a||void 0,"aria-label":e.buttonProps?.["aria-label"]??(typeof e.label!="string"?C:void 0),tabIndex:r&&!a&&t===ne?0:-1,disabled:a,className:H(Ne.control,o.option,c&&o.selected,y&&o.highlighted,D&&o.optionWithCheck,e.buttonProps?.className),onMouseDown:E=>{U&&E.preventDefault()},onMouseEnter:()=>n(t),onMouseLeave:E=>{E.currentTarget.contains(document.activeElement)||n(-1)},onFocus:()=>n(t),onClick:()=>{a||N?.(e.value)}},D?u("span",{className:o.optionCheck,"aria-hidden":"true",children:c?u(fe,{size:14}):null}):null,u("span",{className:H(o.label,X&&o.labelMultiline),children:e.label}))},ae=()=>{if(!g)return null;let e=-1;return g.map(t=>{if(t.options.length===0)return null;const a=`${s}-group-${t.id}`,c=t.label!=null,y=typeof t.label=="string"?t.label:void 0;return se("div",{role:"group",className:o.group,"aria-label":y,"aria-labelledby":c&&!y?a:void 0,children:[c?u("div",{id:a,className:o.groupLabel,children:t.label}):null,t.options.map(C=>(e+=1,w(C,e)))]},t.id)})},re=i.length===0,P=!h&&(Z??i.length>ke);return u("div",{...ee,ref:S,id:s,className:H(o.listbox,h&&o.listboxGrouped,P&&o.listboxVirtualized,q),role:"listbox","aria-label":V,"aria-labelledby":j,"aria-multiselectable":$||void 0,"aria-busy":W||void 0,"aria-disabled":m||void 0,"aria-activedescendant":!r&&l>=0?L(s,l):void 0,tabIndex:-1,onKeyDown:xe(_,e=>{m||i.length===0||be(e,{onNext:()=>b(1),onPrev:()=>b(-1),onFirst:()=>f("start"),onLast:()=>f("end"),onSelect:l>=0?()=>k(l):void 0,includeSpace:!0})}),children:re?u("div",{className:o.emptyState,"aria-live":"polite",children:ie}):P?u(ve,{ref:M,scrollElement:S,items:i,estimateSize:we,gap:4,getItemKey:e=>e.value,className:o.virtualList,renderItem:({item:e,index:t})=>w(e,t)}):h?ae():i.map((e,t)=>w(e,t))})});R.displayName="Listbox";export{R as Listbox};
1
+ "use client";import{jsx as d,jsxs as ie}from"react/jsx-runtime";import{forwardRef as le,useRef as I,useEffect as ne,useImperativeHandle as oe,createElement as ae}from"react";import{resolveListboxGroups as se,flattenResolvedListboxGroups as ue,moveListboxHighlight as ce,findEnabledListboxIndex as D,getListboxOptionDomId as v,getListboxOptionText as de}from"../../utils/listboxOptions.js";import{handleListHighlightKeyDown as me}from"../../utils/keyboard.js";import{IconCheckmark as pe}from"../../icons/icons/IconCheckmark.js";import{VirtualList as ge}from"../VirtualList/VirtualList.js";import{cn as L}from"../../utils/cn.js";import{composeEventHandlers as ve}from"../../utils/composeEvents.js";import{useControlledStateWithCallback as be}from"../../hooks/useControlledState.js";import{useFallbackId as fe}from"../../hooks/useFallbackId.js";import{useLocale as he}from"../../locales/localeContext.js";import xe from"../../styles/unstyledControl.module.css.js";import l from"./Listbox.module.css.js";import{ruSlice as Ie}from"../../locales/slices/listbox.ru.js";const Le={listbox:Ie},ye=100,Fe=40,E=le(function({options:y,groups:F,value:C=[],multiple:H=!1,onSelect:N,id:M,"aria-label":O,"aria-labelledby":P,noOptionsText:T,loading:z=!1,className:K,showCheck:$=!1,navigation:j="roving",highlightedIndex:G,defaultHighlightedIndex:R=-1,onHighlightChange:V,preventOptionMouseDown:A=!1,disabled:g=!1,multiline:W=!1,virtualized:q,onKeyDown:B,...J},Q){const{t:Y}=he(Le),Z=T??Y("listbox.noOptions"),m=fe(M),w=I(null),S=I(null),t=I({pendingFocus:!1,move:e=>{},edge:e=>{},select:()=>{},reveal:(e,r)=>{},index:-1,activeId:()=>{}}),c=F?.length?se(y,F):null,p=c?ue(c):y,n=p.length,[i,s]=be(G,R,V),u=j==="roving",b=e=>!!p[e]?.disabled;t.current.reveal=(e,r)=>{if(e<0)return;S.current?.scrollToIndex(e);const a=v(m,e);requestAnimationFrame(()=>{const o=document.getElementById(a);o&&(r&&o.focus({preventScroll:!0}),o.scrollIntoView({block:"nearest"}))})},t.current.move=e=>{const r=ce(i,n,e,{isDisabled:b});if(!(r<0)){if(r===i){t.current.reveal(r,u);return}t.current.pendingFocus=u,s(r)}},t.current.edge=e=>{const r=D(n,e,b);if(!(r<0)){if(r===i){t.current.reveal(r,u);return}t.current.pendingFocus=u,s(r)}},t.current.select=()=>{if(g)return;const e=p[i];if(!(!e||e.disabled))return N?.(e.value),e.value},t.current.index=i,t.current.activeId=()=>!u&&i>=0?v(m,i):void 0,ne(()=>{if(n===0){i!==-1?s(-1):t.current.pendingFocus=!1;return}if(i>=n){s(n-1);return}if(i<0){t.current.pendingFocus=!1;return}const e=t.current.pendingFocus;t.current.pendingFocus=!1,t.current.reveal(i,e)},[t,n,i,s]),oe(Q,()=>({highlightNext:()=>t.current.move(1),highlightPrev:()=>t.current.move(-1),highlightFirst:()=>t.current.edge("start"),highlightLast:()=>t.current.edge("end"),selectHighlighted:()=>t.current.select(),getHighlightedIndex:()=>t.current.index,getActiveDescendantId:()=>t.current.activeId(),focusOption:e=>t.current.reveal(e,!0)}),[t]);const U=new Set(C),X=u?i>=0?i:D(n,"start",b):-1,f=(e,r)=>{const a=g||!!e.disabled,o=U.has(e.value),h=r===i,re=de(e);return ae("button",{...e.buttonProps,key:`${e.value}-${r}`,id:v(m,r),type:"button",role:"option","aria-selected":o,"aria-disabled":a||void 0,"aria-label":e.buttonProps?.["aria-label"]??(typeof e.label!="string"?re:void 0),tabIndex:u&&!a&&r===X?0:-1,disabled:a,className:L(xe.control,l.option,o&&l.selected,h&&l.highlighted,e.buttonProps?.className),onMouseDown:x=>{A&&x.preventDefault()},onMouseEnter:()=>s(r),onMouseLeave:x=>{x.currentTarget.contains(document.activeElement)||s(-1)},onFocus:()=>s(r),onClick:()=>{a||N?.(e.value)}},$?d("span",{className:l.optionCheck,"aria-hidden":"true",children:o?d(pe,{size:14}):null}):null,d("span",{className:L(l.label,W&&l.labelMultiline),children:e.label}))},_=()=>{if(!c)return null;let e=-1;return c.map(r=>{const a=`${m}-group-${r.id}`,o=r.label!=null;return ie("div",{role:"group",className:l.group,"aria-labelledby":o?a:void 0,children:[o?d("div",{id:a,className:l.groupLabel,children:r.label}):null,r.options.map(h=>(e+=1,f(h,e)))]},r.id)})},ee=n===0,k=!c&&(q??n>ye),te=!u&&i>=0?v(m,i):void 0;return d("div",{...J,ref:w,id:m,className:L(l.listbox,c&&l.listboxGrouped,k&&l.listboxVirtualized,K),role:"listbox","aria-label":O,"aria-labelledby":P,"aria-multiselectable":H||void 0,"aria-busy":z||void 0,"aria-disabled":g||void 0,"aria-activedescendant":te,tabIndex:-1,onKeyDown:ve(B,e=>{g||n===0||me(e,{onNext:()=>t.current.move(1),onPrev:()=>t.current.move(-1),onFirst:()=>t.current.edge("start"),onLast:()=>t.current.edge("end"),onSelect:i>=0?()=>t.current.select():void 0,includeSpace:!0})}),children:ee?d("div",{className:l.emptyState,"aria-live":"polite",children:Z}):k?d(ge,{ref:S,scrollElement:w,items:p,estimateSize:Fe,gap:4,getItemKey:e=>e.value,renderItem:({item:e,index:r})=>f(e,r)}):c?_():p.map((e,r)=>f(e,r))})});E.displayName="Listbox";export{E as Listbox};
@@ -1 +1 @@
1
- "use client";import{injectCss as l}from"../../utils/injectCss.js";var o=".lSHQo{display:flex;flex-direction:column;gap:var(--altum-g-space-1);margin:0;padding:var(--altum-g-space-1)}.lSHQo.wgWhM{gap:var(--altum-g-space-2)}.lSHQo._4FYkP{max-height:min(320px,50vh);overflow:auto}.lSHQo .aL5VO{display:flex;flex-direction:column;gap:var(--altum-g-space-1)}.lSHQo .Knz6J{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium);line-height:var(--altum-g-line-height-2xs);padding:var(--altum-g-space-1) var(--altum-g-space-2)}.lSHQo ._2QZ9E{color:var(--altum-field-label);font-size:var(--altum-g-font-size-base);padding:var(--altum-g-space-3) var(--altum-g-space-4);text-align:center}.lSHQo .COEgV{gap:var(--altum-g-space-2)}.lSHQo .CnY3o{align-items:center;display:inline-flex;flex-shrink:0;font-size:var(--altum-g-font-size-2xs);justify-content:center;line-height:1;width:1em}.lSHQo .d7ICC{width:100%}.sCJLx{align-items:center;border-radius:var(--altum-g-radius-sm);color:var(--altum-color-control-text-color);display:flex;min-width:100%;padding:var(--altum-option-padding-y) var(--altum-option-padding-x);text-align:left;transition:background-color .2s cubic-bezier(.16,1,.3,1),color .2s cubic-bezier(.16,1,.3,1);width:max-content}.sCJLx:disabled{opacity:var(--altum-opacity-disabled)}.sCJLx:focus-visible:not(:disabled),.sCJLx:hover:not(:disabled){background-color:var(--altum-color-option-hover)}.sCJLx:focus-visible:not(:disabled){outline-offset:calc(var(--altum-focus-ring-offset)*-1)}.ctvla{background-color:var(--altum-color-option-hover)}.zx1V4{background-color:var(--altum-color-selection-fill);color:var(--altum-color-selection-fill-fg)}.zx1V4.ctvla:not(:disabled),.zx1V4:focus-visible:not(:disabled),.zx1V4:hover:not(:disabled){background-color:var(--altum-color-selection-fill-emphasis);color:var(--altum-color-selection-fill-fg)}.MNwcg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.LUJ-R{align-items:center;display:flex;flex:1 1 auto;gap:var(--altum-g-space-2);overflow:visible;text-overflow:unset;white-space:normal}";const a={listbox:"lSHQo",listboxGrouped:"wgWhM",listboxVirtualized:"_4FYkP",group:"aL5VO",groupLabel:"Knz6J",emptyState:"_2QZ9E",optionWithCheck:"COEgV",optionCheck:"CnY3o",virtualList:"d7ICC",option:"sCJLx",highlighted:"ctvla",selected:"zx1V4",label:"MNwcg",labelMultiline:"LUJ-R"};l(o);export{a as default};
1
+ "use client";import{injectCss as l}from"../../utils/injectCss.js";var a=".lSHQo{display:flex;flex-direction:column;gap:var(--altum-g-space-1);margin:0;padding:var(--altum-g-space-1)}.lSHQo.wgWhM{gap:var(--altum-g-space-2)}.lSHQo._4FYkP{max-height:min(320px,50vh);overflow:auto}.lSHQo .aL5VO{display:flex;flex-direction:column;gap:var(--altum-g-space-1)}.lSHQo .Knz6J{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium);line-height:var(--altum-g-line-height-2xs);padding:var(--altum-g-space-1) var(--altum-g-space-2)}.lSHQo ._2QZ9E{color:var(--altum-field-label);font-size:var(--altum-g-font-size-base);padding:var(--altum-g-space-3) var(--altum-g-space-4);text-align:center}.lSHQo .CnY3o{align-items:center;display:inline-flex;flex-shrink:0;font-size:var(--altum-g-font-size-2xs);justify-content:center;line-height:1;width:1em}.lSHQo .sCJLx{align-items:center;border-radius:var(--altum-g-radius-sm);color:var(--altum-color-control-text-color);display:flex;gap:var(--altum-g-space-2);min-width:100%;padding:var(--altum-option-padding-y) var(--altum-option-padding-x);text-align:left;transition:var(--altum-transition-smooth);width:max-content}:is(.lSHQo .sCJLx):disabled{opacity:var(--altum-opacity-disabled)}.ctvla:is(.lSHQo .sCJLx):not(:disabled),:is(.lSHQo .sCJLx):focus-visible:not(:disabled),:is(.lSHQo .sCJLx):hover:not(:disabled){background-color:var(--altum-color-option-hover)}.zx1V4:is(.lSHQo .sCJLx){background-color:var(--altum-color-selection-fill);color:var(--altum-color-selection-fill-fg)}.zx1V4.ctvla:is(.lSHQo .sCJLx):not(:disabled),.zx1V4:is(.lSHQo .sCJLx):focus-visible:not(:disabled),.zx1V4:is(.lSHQo .sCJLx):hover:not(:disabled){background-color:var(--altum-color-selection-fill-emphasis);color:var(--altum-color-selection-fill-fg)}.lSHQo .MNwcg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lSHQo .LUJ-R{align-items:center;display:flex;flex:1 1 auto;gap:var(--altum-g-space-2);overflow:visible;text-overflow:unset;white-space:normal}";const o={listbox:"lSHQo",listboxGrouped:"wgWhM",listboxVirtualized:"_4FYkP",group:"aL5VO",groupLabel:"Knz6J",emptyState:"_2QZ9E",optionCheck:"CnY3o",option:"sCJLx",highlighted:"ctvla",selected:"zx1V4",label:"MNwcg",labelMultiline:"LUJ-R"};l(a);export{o as default};
@@ -0,0 +1 @@
1
+ "use client";import{jsx as a}from"react/jsx-runtime";import{forwardRef as s}from"react";import{VisuallyHidden as l}from"../VisuallyHidden/VisuallyHidden.js";const r=s(function({message:e,politeness:i="polite",...o},t){return e?a(l,{ref:t,as:"div",...o,role:i==="assertive"?"alert":"status","aria-live":i,"aria-atomic":!0,children:e}):null});r.displayName="LiveRegion";export{r as LiveRegion};
@@ -1 +1 @@
1
- "use client";import{jsx as i}from"react/jsx-runtime";import{useMemo as c}from"react";import{builtInMessages as n}from"../../locales/messages.js";import{deepMergeMessages as d,translate as p}from"../../locales/translate.js";import{LocaleContext as u,defaultLocaleContext as f}from"../../locales/localeContext.js";const s=({locale:e="ru",messages:r,children:t})=>{const a=c(()=>{const o=d(n[e]??f.messages,r);return{locale:e,messages:o,t:(l,m)=>p(o,l,m)}},[e,r]);return i(u.Provider,{value:a,children:t})};s.displayName="LocaleProvider";export{s as LocaleProvider};
1
+ "use client";import{jsx as c}from"react/jsx-runtime";import{useMemo as n}from"react";import{builtInMessages as s}from"../../locales/messages.js";import{deepMergeMessages as p,translate as u}from"../../locales/translate.js";import{LocaleContext as d}from"../../locales/localeContext.js";const t=({locale:e="ru",messages:r,children:a})=>{const l=n(()=>{const o=p(s[e]??s.ru,r);return{locale:e,messages:o,t:(m,i)=>u(o,m,i,e)}},[e,r]);return c(d.Provider,{value:l,children:a})};t.displayName="LocaleProvider";export{t as LocaleProvider};
@@ -1 +1 @@
1
- "use client";import{jsx as a,jsxs as C}from"react/jsx-runtime";import{forwardRef as v}from"react";import{TextField as x}from"../TextField/TextField.js";import d from"./MaskedField.module.css.js";import{composeEventHandlers as s}from"../../utils/composeEvents.js";import{composeRefs as O}from"../../utils/composeRefs.js";import{useDigitMask as b}from"../../hooks/useDigitMask.js";import{getRemainingGuides as t}from"./MaskedField.utils.js";import{getFormattedValue as A,getStaticDigitsPrefix as E}from"./MaskedField.utils.js";import{fieldOverlayClassName as D}from"../../base/FieldBase/FieldBase.js";const m=v(function({mask:l,value:c,onChange:r,onClear:i,clearLabel:p,onKeyDown:f,disabled:o,readOnly:n,maskAsPlaceholder:h=!1,placeholder:u,onClick:g,...y},k){const e=b({mask:l,value:c,disabled:o,readOnly:n,onChange:r});return a(x,{...y,ref:O(k,e.inputRef),type:"text",value:e.displayVal,disabled:o,readOnly:n,onChange:e.handleChange,onKeyDown:s(f,e.handleKeyDown),onClick:s(g,e.handleClick),placeholder:h?t("",l):u,onClear:i?()=>{r(""),i()}:void 0,clearLabel:p,controlOverlay:e.remainingGuides.length>0?C("div",{className:D(),"aria-hidden":"true","data-testid":"masked-overlay",children:[a("span",{className:d.maskOffset,children:e.displayVal}),a("span",{className:d.guideChar,children:e.remainingGuides})]}):null})});m.displayName="MaskedField";export{m as MaskedField,A as getFormattedValue,t as getRemainingGuides,E as getStaticDigitsPrefix};
1
+ "use client";import{jsx as m}from"react/jsx-runtime";import{forwardRef as A}from"react";import{flushSync as B}from"react-dom";import{TextField as G,fieldOverlayClassName as H}from"../TextField/TextField.js";import M from"./MaskedField.module.css.js";import{composeEventHandlers as b}from"../../utils/composeEvents.js";import{getFormattedValue as d,getRemainingGuides as u,getStaticDigitsPrefix as x}from"./MaskedField.utils.js";const F=A(function({mask:l,value:h,onChange:p,onClear:v,clearLabel:R,onKeyDown:N,disabled:y,readOnly:k,maskAsPlaceholder:O=!1,placeholder:w,onClick:E,...K},P){const D=!!y||!!k,g=h.replace(/\D/g,""),i=g?d(h,l):"",S=u(i,l),T=l.split("9").length-1,C=(t,e,r,s=d(e,l))=>{B(()=>p(e)),t.value=e?s:"",t.setSelectionRange(r,r)},L=t=>{if(D)return;const e=t.target,r=e.selectionStart||0,s=e.value;let a=s.replace(/\D/g,"");const n=x(l);n&&a.startsWith(n)&&(a=a.slice(n.length));const o=a.slice(0,T),c=d(o,l);C(e,o,r>=s.length-1?c.length:r,c)},V=t=>{if(D)return;const e=t.currentTarget,r=e.selectionStart,s=e.selectionEnd;if(r===null||r!==s)return;const a=t.key==="Backspace"?-1:t.key==="Delete"?1:0;if(!a||a<0&&r===0||a>0&&r>=l.length)return;let n=a<0?r-1:r;for(;n>=0&&n<l.length&&l[n]!=="9";)n+=a;if(a<0&&t.preventDefault(),n<0||n>=l.length)return;a>0&&t.preventDefault();let o=0;for(let f=0;f<n;f++)l[f]==="9"&&o++;const c=g.slice(0,o)+g.slice(o+1);C(e,c,d(c.slice(0,o),l).length)},j=t=>{const e=t.currentTarget;e.selectionStart!==null&&e.selectionStart>i.length&&e.setSelectionRange(i.length,i.length)};return m(G,{...K,ref:P,type:"text",value:i,disabled:y,readOnly:k,onChange:L,onKeyDown:b(N,V),onClick:b(E,j),placeholder:O?u("",l):w,onClear:v?()=>{p(""),v()}:void 0,clearLabel:R,controlOverlay:S.length>0?m("div",{className:H(),"aria-hidden":"true","data-testid":"masked-overlay",children:m("span",{className:M.guide,"data-fill":i,children:S})}):null})});F.displayName="MaskedField";export{F as MaskedField,d as getFormattedValue,u as getRemainingGuides,x as getStaticDigitsPrefix};
@@ -1 +1 @@
1
- "use client";import{injectCss as s}from"../../utils/injectCss.js";var e=".b-Y4s{color:#0000}.b-Y4s,.cdqMI{white-space:pre}.cdqMI{color:var(--altum-field-label);opacity:.6}";const c={maskOffset:"b-Y4s",guideChar:"cdqMI"};s(e);export{c as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var e=".BF2Sx{color:var(--altum-field-label);opacity:.6}.BF2Sx:before{color:#0000;content:attr(data-fill)}";const o={guide:"BF2Sx"};t(e);export{o as default};
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as X,Fragment as Y}from"react/jsx-runtime";import{forwardRef as q,useState as z,useCallback as G}from"react";import{Dropdown as T}from"../Dropdown/Dropdown.js";import{ActionList as J}from"../ActionList/ActionList.js";import l from"./Menu.module.css.js";import{cn as Q}from"../../utils/cn.js";import{composeEventHandlers as y}from"../../utils/composeEvents.js";import{useControlledStateWithCallback as U}from"../../hooks/useControlledState.js";import{useLocale as V}from"../../locales/localeContext.js";import{renderChildren as Z}from"../../utils/renderChildren.js";const M=q(function({trigger:i,children:w,items:N,groups:R,open:v,onOpenChange:D,align:L="right",widthMode:a="content",mobileTitle:k,filterable:A=!1,filterPlaceholder:B,emptyText:E,onAction:m,className:s,tabIndex:F,"aria-label":I,onContextMenu:K,onKeyDown:O,...c},p){const{t:f}=V(),d=i==="context",S=I??f(d?"menu.contextAriaLabel":"menu.ariaLabel"),u=k??f("menu.mobileTitle"),[g,o]=U(v,!1,D),[h,j]=z({top:0,left:0}),H=G(e=>{m?.(e),o(!1)},[m,o]),b=(e,t)=>{j({top:e,left:t}),o(!0)},P=y(K,e=>{e.preventDefault();let t=e.clientX,n=e.clientY;if(!t&&!n){const x=e.currentTarget.getBoundingClientRect();t=x.left,n=x.bottom}b(n,t)}),W=y(O,e=>{if(!(e.key==="ContextMenu"||e.shiftKey&&e.key==="F10"))return;e.preventDefault();const t=document.activeElement,n=(t instanceof HTMLElement&&e.currentTarget.contains(t)?t:e.currentTarget).getBoundingClientRect();b(n.bottom,n.left)}),C=r(J,{"aria-label":S,items:N,groups:R,filterable:A,filterPlaceholder:B,emptyText:E,onAction:H});return d?X(Y,{children:[r("div",{ref:p,className:Q(l.target,s),...c,tabIndex:F??0,onContextMenu:P,onKeyDown:W,children:w}),r(T,{className:l.host,open:g,onOpenChange:o,popupRole:"none",align:"left",widthMode:a,mobileTitle:u,panelClassName:l.menu,renderTrigger:(e,t)=>r("span",{...e,ref:t,tabIndex:-1,className:l.anchor,style:{top:h.top,left:h.left}}),children:C})]}):r(T,{ref:p,className:s,open:g,onOpenChange:o,popupRole:"none",align:L,widthMode:a,mobileTitle:u,renderTrigger:(e,t)=>Z({children:i,props:e,contentRef:t}),...c,children:C})});M.displayName="Menu";export{M as Menu};
1
+ "use client";import{jsx as r,jsxs as B,Fragment as F}from"react/jsx-runtime";import{forwardRef as H,useState as O}from"react";import{Dropdown as P}from"../Dropdown/Dropdown.js";import{ActionList as q}from"../ActionList/ActionList.js";import i from"./Menu.module.css.js";import{cn as W}from"../../utils/cn.js";import{composeEventHandlers as g}from"../../utils/composeEvents.js";import{useControlledStateWithCallback as X}from"../../hooks/useControlledState.js";import{useLocale as Y}from"../../locales/localeContext.js";import{renderChildren as z}from"../../utils/renderChildren.js";import{ruSlice as G}from"../../locales/slices/menu.ru.js";const J={menu:G},h=H(function({trigger:a,children:b,items:x,groups:C,open:T,onOpenChange:y,align:M="right",widthMode:v,mobileTitle:N,filterable:w,filterPlaceholder:A,emptyText:D,onAction:L,className:m,tabIndex:R,"aria-label":K,onContextMenu:k,onKeyDown:E,...c},s){const{t:f}=Y(J),n=a==="context",[I,l]=X(T,!1,y),[S,j]=O({top:0,left:0}),p=(e,t)=>{j({top:e,left:t}),l(!0)},d=r(P,{ref:n?void 0:s,className:n?i.host:m,open:I,onOpenChange:l,popupRole:"none",align:n?"left":M,widthMode:v,mobileTitle:N??f("menu.mobileTitle"),panelClassName:n?i.menu:void 0,renderTrigger:(e,t)=>n?r("span",{...e,ref:t,tabIndex:-1,className:i.anchor,style:S}):z({children:a,props:e,contentRef:t}),...n?{}:c,children:r(q,{"aria-label":K??f(n?"menu.contextAriaLabel":"menu.ariaLabel"),items:x,groups:C,filterable:w,filterPlaceholder:A,emptyText:D,onAction:e=>{L?.(e),l(!1)}})});return n?B(F,{children:[r("div",{ref:s,className:W(i.target,m),...c,tabIndex:R??0,onContextMenu:g(k,e=>{e.preventDefault();let t=e.clientX,o=e.clientY;if(!t&&!o){const u=e.currentTarget.getBoundingClientRect();t=u.left,o=u.bottom}p(o,t)}),onKeyDown:g(E,e=>{if(e.key!=="ContextMenu"&&!(e.shiftKey&&e.key==="F10"))return;e.preventDefault();const t=document.activeElement,o=(t instanceof HTMLElement&&e.currentTarget.contains(t)?t:e.currentTarget).getBoundingClientRect();p(o.bottom,o.left)}),children:b}),d]}):d});h.displayName="Menu";export{h as Menu};
@@ -1 +1 @@
1
- "use client";import{injectCss as t}from"../../utils/injectCss.js";var a="._8xAyJ{min-width:0}._8xAyJ:focus{outline:none}._8xAyJ:focus-visible{outline:var(--altum-focus-ring-width) solid var(--altum-focus-ring-color);outline-offset:var(--altum-focus-ring-offset)}.Xefa6.Xefa6{display:contents}._8Lv6-{height:0;pointer-events:none;position:fixed;width:0}.uj3BS{--altum-menu-min-width:180px;--altum-menu-max-width:320px;--altum-menu-max-height:360px;max-height:min(var(--altum-menu-max-height),calc(100vh - var(--altum-g-space-4)));max-width:min(var(--altum-menu-max-width),calc(100vw - var(--altum-g-space-4)));min-width:var(--altum-menu-min-width);overflow:auto}";const i={target:"_8xAyJ",host:"Xefa6",anchor:"_8Lv6-",menu:"uj3BS"};t(a);export{i as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var a="._8xAyJ{min-width:0}._8xAyJ:focus:not(:focus-visible){outline:none}._8xAyJ:focus-visible{outline:var(--altum-focus-ring-width) solid var(--altum-focus-ring-color);outline-offset:var(--altum-focus-ring-offset)}.Xefa6.Xefa6{display:contents}._8Lv6-{height:0;pointer-events:none;position:fixed;width:0}.uj3BS{--altum-menu-min-width:180px;--altum-menu-max-width:320px;--altum-menu-max-height:360px;max-height:min(var(--altum-menu-max-height),calc(100vh - var(--altum-g-space-4)));max-width:min(var(--altum-menu-max-width),calc(100vw - var(--altum-g-space-4)));min-width:var(--altum-menu-min-width)}";const i={target:"_8xAyJ",host:"Xefa6",anchor:"_8Lv6-",menu:"uj3BS"};t(a);export{i as default};
@@ -1 +1 @@
1
- "use client";import{jsx as l,jsxs as v}from"react/jsx-runtime";import{forwardRef as C,useId as O}from"react";import{Overlay as j}from"../Overlay/Overlay.js";import{useLocale as x}from"../../locales/localeContext.js";import i from"./Modal.module.css.js";import{cn as c}from"../../utils/cn.js";import{treeContainsDialogTitle as B}from"../../utils/visitElementTree.js";import{DialogBase as e}from"../../base/DialogBase/DialogBase.js";const f=C(function({open:s,onOpenChange:o,children:a,className:r,id:u,style:b,"aria-labelledby":t,"aria-label":n,"aria-describedby":g,...y},F){const{t:h}=x(),N=O(),d=t??N,m=t!=null||B(a);return l(j,{variant:"modal",purpose:"modal",open:s,onOpenChange:o,"aria-labelledby":n||!m?void 0:d,"aria-label":n??(m?void 0:h("modal.ariaLabel")),"aria-describedby":g,children:l(e.Surface,{ref:F,variant:"floating",radius:"lg",className:c(i.modalContent,r),id:u,style:b,onClose:()=>o(!1),titleId:d,...y,children:a})})}),p=({className:s="",message:o,align:a,children:r})=>v(e.Footer,{align:a??(o!=null?"space-between":"end"),className:c(i.formFooter,s),children:[o!=null&&l("div",{className:i.formFooterStatus,role:"status",children:o}),r!=null&&l("div",{className:i.formFooterActions,children:r})]});f.displayName="Modal",p.displayName="Modal.FormFooter";const M=Object.assign(f,{Header:e.Header,Title:e.Title,Close:e.Close,Body:e.Body,Footer:e.Footer,FormFooter:p});export{M as Modal};
1
+ "use client";import{jsx as o}from"react/jsx-runtime";import{forwardRef as i}from"react";import{cn as d}from"../../utils/cn.js";import{useLocale as h}from"../../locales/localeContext.js";import{ruSlice as M}from"../../locales/slices/modal.ru.js";import{DialogLayout as v}from"../DialogLayout/DialogLayout.js";import{Layout as l}from"../Layout/Layout.js";import{Overlay as C}from"../Overlay/Overlay.js";import m from"./Modal.module.css.js";const L={modal:M},s=i(function(e,a){return o(l.Header,{ref:a,sticky:!0,...e})}),c=i(function({className:e,...a},r){return o(l.Content,{ref:r,...a,className:d(m.body,e)})}),f=i(function({align:e="end",...a},r){return o(l.Footer,{ref:r,sticky:!0,align:e,...a})}),p=i(function({open:e,onOpenChange:a,children:r,className:y,"aria-labelledby":n,"aria-label":t,"aria-describedby":u,...b},g){const{t:N}=h(L);return o(C,{variant:"modal",open:e,onOpenChange:a,"aria-labelledby":t?void 0:n,"aria-label":t??(n?void 0:N("modal.ariaLabel")),"aria-describedby":u,children:o(v,{ref:g,...b,variant:"floating",radius:"lg",className:d(m.modalContent,y),onClose:()=>a(!1),children:o(l,{padding:"md",gap:"md",children:r})})})});p.displayName="Modal",s.displayName="Modal.Header",c.displayName="Modal.Body",f.displayName="Modal.Footer";const O=Object.assign(p,{Header:s,Body:c,Footer:f});export{O as Modal};
@@ -1 +1 @@
1
- "use client";import{injectCss as t}from"../../utils/injectCss.js";var a=".QNpBm{font-family:var(--altum-g-font-family-ui);max-height:var(--altum-dialog-max-height);max-width:var(--altum-dialog-max-width-md);position:relative;width:90%}._0Ksyn{width:100%}._0Ksyn .KZy2r{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-sm);line-height:1.4}._0Ksyn .X5ScN{align-items:center;display:flex;flex-shrink:0;gap:var(--altum-g-space-3)}";const o={modalContent:"QNpBm",formFooter:"_0Ksyn",formFooterStatus:"KZy2r",formFooterActions:"X5ScN"};t(a);export{o as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var a=".QNpBm{font-family:var(--altum-g-font-family-ui);width:min(90%,var(--altum-dialog-max-width-md))}.lVhql{font-size:var(--altum-dialog-body-size);line-height:1.5}";const i={modalContent:"QNpBm",body:"lVhql"};t(a);export{i as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as M,jsx as r}from"react/jsx-runtime";import D,{forwardRef as E,useContext as z,useState as C,useRef as L,useCallback as R,useEffect as y,useMemo as K,createContext as V}from"react";import{IconCross as A}from"../../icons/icons/IconCross.js";import{Button as F}from"../Button/Button.js";import{ButtonIcon as q}from"../ButtonIcon/ButtonIcon.js";import X from"../../styles/overlayClose.module.css.js";import o from"./Notification.module.css.js";import{cn as N}from"../../utils/cn.js";import{composeEventHandlers as S}from"../../utils/composeEvents.js";import{useLocale as G}from"../../locales/localeContext.js";import{createLibraryPortal as J}from"../../utils/portal.js";import{useDocumentKeyDown as Q}from"../../hooks/useDocumentKeyDown.js";import{formatKeyboardShortcut as U}from"../../utils/keyboardShortcut.js";import{matchesKeyboardShortcut as W}from"../../utils/keyboardShortcut.match.js";const T=V({position:"bottom-right"}),b=E(function({children:e,stacked:t=!0,stackDepth:s=3,position:i="bottom-right",className:n,...m},u){const d=K(()=>({position:i}),[i]);return J(r(T.Provider,{value:d,children:r("div",{ref:u,className:N(o.notificationsContainer,n),"data-position":i,...m,children:r(Y,{stacked:t,stackDepth:s,children:e})})}))}),Y=({children:e,stacked:t,stackDepth:s})=>{const[i,n]=C(!t),m=L(null),[u,d]=C(64),f=D.Children.toArray(e),h=Math.max(1,s);return y(()=>{n(!t)},[t]),y(()=>{const a=m.current;if(!a)return;const c=()=>d(a.getBoundingClientRect().height);c();const v=new ResizeObserver(c);return v.observe(a),()=>v.disconnect()},[f.length]),r("div",{className:N(o.stack,i?o.stackExpanded:o.stackCollapsed),style:{"--altum-stack-depth":String(h),"--altum-stack-front-h":`${u}px`},onMouseEnter:()=>{t&&n(!0)},onMouseLeave:()=>{t&&n(!1)},onFocusCapture:()=>{t&&n(!0)},onBlurCapture:a=>{t&&!a.currentTarget.contains(a.relatedTarget)&&n(!1)},children:f.map((a,c)=>r("div",{ref:c===0?m:void 0,className:N(o.stackItem,c>=h&&o.stackItemHidden),style:{"--altum-stack-i":String(c)},children:a},D.isValidElement(a)?a.key??c:c))})},w=E(function({variant:e="info",duration:t=3e3,progress:s=t>0,pauseOnHover:i=!0,onClose:n,title:m,description:u,actions:d,className:f,onMouseEnter:h,onMouseLeave:a,...c},v){const{position:H}=z(T),{t:O}=G(),[P,x]=C(!1),[k,$]=C(!1),p=L(null),g=R(()=>{k||($(!0),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{n?.()},200))},[k,n]);return y(()=>()=>{p.current&&clearTimeout(p.current)},[]),M("div",{ref:v,className:N(o.notification,o[e],k&&o.exit,f),"data-variant":e,"data-position":H,onMouseEnter:S(h,()=>{i&&x(!0)}),onMouseLeave:S(a,()=>{i&&x(!1)}),...c,role:e==="error"?"alert":"status","aria-live":e==="error"||e==="warning"?"assertive":"polite",children:[r("div",{className:o.title,children:m}),u!=null&&u!==""?r("div",{className:o.description,children:u}):null,r(q,{appearance:"diskClose",className:o.close,"aria-label":O("common.close"),icon:r(A,{className:X.icon,size:16,"aria-hidden":!0}),onClick:g}),d?.length?r("div",{className:o.actions,children:d.map((l,j)=>M(F,{size:"sm",variant:l.variant==="secondary"?"secondary":"primary",onClick:()=>{l.onClick(),g()},children:[l.label,(l.shortcutLabel??l.shortcut)&&r("span",{className:o.actionShortcut,children:l.shortcutLabel??U(l.shortcut)})]},`${l.label}-${j}`))}):null,s&&t>0&&!k&&r("div",{className:o.progressTrack,"aria-hidden":!0,children:r("div",{className:o.progressBar,style:{animationDuration:`${t}ms`,animationPlayState:P?"paused":"running"},onAnimationEnd:g})})]})});w.displayName="Notification",b.displayName="Notification.Viewport";const I=Object.assign(w,{Viewport:b}),B=({item:e,onClose:t})=>{const s=R(()=>t(e.id),[e.id,t]);return Q(i=>{if(!i.defaultPrevented){for(const n of e.actions??[])if(!(!n.shortcut||!W(i,n.shortcut))){i.preventDefault(),n.onClick(),s();return}}}),r(I,{variant:e.variant,duration:e.duration,progress:e.progress,pauseOnHover:e.pauseOnHover,onClose:s,title:e.title,description:e.description,actions:e.actions})},Z=({notifications:e,onClose:t,...s})=>r(b,{...s,children:e.slice().reverse().map(i=>r(B,{item:i,onClose:t},i.id))});export{I as Notification,Z as NotificationContainer,B as NotificationItemRenderer};
1
+ "use client";import{jsxs as h,jsx as o}from"react/jsx-runtime";import{forwardRef as v,Children as S,isValidElement as E}from"react";import{Button as H}from"../Button/Button.js";import{OverlayCloseButton as T}from"../ButtonIcon/OverlayCloseButton.js";import n from"./Notification.module.css.js";import{cn as u}from"../../utils/cn.js";import{createLibraryPortal as $}from"../../utils/portal.js";import{useDocumentKeyDown as A}from"../../hooks/useDocumentKeyDown.js";import{formatKeyboardShortcut as M}from"../../utils/keyboardShortcut.js";import{matchesKeyboardShortcut as O}from"../../utils/keyboardShortcut.match.js";function x(t){const e=t.closest(`.${n.notification}`);return e instanceof HTMLElement?e:null}function N(t,e){if(t.hasAttribute("data-closing"))return;if(t.setAttribute("data-closing",""),window.matchMedia("(prefers-reduced-motion: reduce)").matches){e?.();return}const c=a=>{a.target===t&&(t.removeEventListener("animationend",c),e?.())};t.addEventListener("animationend",c)}const f=v(function({children:t,stacked:e=!0,stackDepth:c=3,position:a="bottom-right",className:l,...s},i){return $(o("div",{ref:i,className:u(n.notificationsContainer,l),"data-position":a,...s,children:o(j,{stacked:e,stackDepth:c,children:t})}))}),j=({children:t,stacked:e,stackDepth:c})=>{const a=S.toArray(t),l=Math.max(1,c);return o("div",{className:u(n.stack,e&&n.stackCollapsed),children:a.map((s,i)=>o("div",{className:u(n.stackItem,i>=l&&n.stackItemHidden),style:{"--altum-stack-i":String(i)},children:s},E(s)?s.key??i:i))})},g=v(function({variant:t="info",duration:e=3e3,progress:c=e>0,pauseOnHover:a=!0,onClose:l,title:s,description:i,actions:d,className:C,style:b,...L},w){const p=r=>{const m=x(r);m&&N(m,l)};return h("div",{ref:w,className:u(n.notification,C),style:{borderLeftColor:`var(--altum-color-status-${t})`,...b},"data-variant":t,...L,"data-pause":a?"":void 0,role:t==="error"?"alert":"status","aria-live":t==="error"||t==="warning"?"assertive":"polite",children:[o("div",{className:n.title,children:s}),i!=null&&i!==""?o("div",{className:n.description,children:i}):null,o(T,{className:n.close,onClick:r=>p(r.currentTarget)}),d?.length?o("div",{className:n.actions,children:d.map((r,m)=>h(H,{size:"sm",variant:r.variant==="secondary"?"secondary":"primary",onClick:D=>{r.onClick(),p(D.currentTarget)},children:[r.label,(r.shortcutLabel??r.shortcut)&&o("span",{className:n.actionShortcut,children:r.shortcutLabel??M(r.shortcut)})]},`${r.label}-${m}`))}):null,c&&e>0&&o("div",{className:n.progressTrack,"aria-hidden":!0,children:o("div",{className:n.progressBar,style:{animationDuration:`${e}ms`},onAnimationEnd:r=>{r.stopPropagation(),p(r.currentTarget)}})})]})});g.displayName="Notification",f.displayName="Notification.Viewport";const y=Object.assign(g,{Viewport:f}),k=({item:t,onClose:e})=>o(y,{"data-toast-id":t.id,variant:t.variant,duration:t.duration,progress:t.progress,pauseOnHover:t.pauseOnHover,onClose:()=>e(t.id),title:t.title,description:t.description,actions:t.actions}),B=({notifications:t,onClose:e,...c})=>(A(a=>{if(!a.defaultPrevented)for(let l=t.length-1;l>=0;l-=1){const s=t[l];for(const i of s.actions??[]){if(!i.shortcut||!O(a,i.shortcut))continue;a.preventDefault(),i.onClick();const d=document.querySelector(`[data-toast-id="${CSS.escape(s.id)}"]`);d instanceof HTMLElement?N(d,()=>e(s.id)):e(s.id);return}}}),o(f,{...c,children:t.slice().reverse().map(a=>o(k,{item:a,onClose:e},a.id))}));export{y as Notification,B as NotificationContainer,k as NotificationItemRenderer};
@@ -1 +1 @@
1
- "use client";import{injectCss as t}from"../../utils/injectCss.js";var a=".dUTtK{--altum-notification-max-width:360px;--altum-notify-from-x:0;--altum-notify-from-y:0;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--altum-g-space-3);max-width:var(--altum-notification-max-width);pointer-events:none;position:fixed;width:min(var(--altum-notification-max-width),calc(100vw - var(--altum-g-space-8)));z-index:var(--altum-g-z-notification)}.dUTtK[data-position^=top]{--altum-notify-from-y:calc(var(--altum-g-space-5)*-1);bottom:auto;top:max(var(--altum-g-space-6),env(safe-area-inset-top,0px))}.dUTtK[data-position^=bottom]{--altum-notify-from-y:var(--altum-g-space-5);bottom:max(calc(var(--altum-g-space-6) + env(safe-area-inset-bottom, 0px)),calc(var(--altum-notification-anchor-inset) + env(safe-area-inset-bottom, 0px) + var(--altum-g-space-3)));top:auto}.dUTtK[data-position$=left]{--altum-notify-from-x:calc(var(--altum-g-space-6)*-1);--altum-notify-from-y:0;left:max(var(--altum-g-space-6),env(safe-area-inset-left,0px));right:auto}.dUTtK[data-position$=right]{--altum-notify-from-x:var(--altum-g-space-6);--altum-notify-from-y:0;left:auto;right:max(var(--altum-g-space-6),env(safe-area-inset-right,0px))}.dUTtK[data-position$=center]{left:50%;right:auto;transform:translateX(-50%)}.dUTtK[data-position^=top] .b9NXd .h-79S:not(:first-child):not(.gKRWG){transform-origin:center top}.dUTtK[data-position^=bottom] .b9NXd .h-79S:not(:first-child):not(.gKRWG){transform-origin:center bottom}.FMsLf{display:flex;flex-direction:column;gap:0;pointer-events:auto;position:relative;transition:gap .2s cubic-bezier(.16,1,.3,1);width:100%}._2rI42{gap:var(--altum-g-space-3)}._2rI42 .h-79S{left:auto;margin-top:0;position:relative;right:auto;top:auto;transform:none}._2rI42 .gKRWG,._2rI42 .h-79S{height:auto;opacity:1;overflow:visible;pointer-events:auto;visibility:visible}.h-79S{transform-origin:center top;transition:transform .2s cubic-bezier(.16,1,.3,1),margin-top .2s cubic-bezier(.16,1,.3,1),opacity .2s ease;width:100%;will-change:transform,margin-top}.b9NXd .h-79S:not(:first-child):not(.gKRWG){margin-top:calc(var(--altum-badge-overhang) - var(--altum-stack-front-h, var(--altum-notification-stack-front)));pointer-events:none;transform:scale(calc(1 - var(--altum-stack-i, 1)*.035))}.b9NXd .gKRWG{height:0;left:0;margin-top:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;transform:scale(.92);visibility:hidden}.JgJp1{align-items:start;animation:hvvqa .2s cubic-bezier(.16,1,.3,1);background-color:var(--altum-color-fill-floating-bg);border:1px solid var(--altum-box-border-color,var(--altum-color-border));border-left:4px solid var(--altum-color-brand);border-radius:var(--altum-g-radius);box-shadow:var(--altum-shadow-dropdown,var(--altum-shadow-surface));box-sizing:border-box;color:var(--altum-color-fill-floating-fg);display:grid;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-2) var(--altum-g-space-3);grid-template-columns:minmax(0,1fr) auto;overflow:hidden;padding:var(--altum-g-space-3) var(--altum-g-space-4);pointer-events:auto;position:relative;transition:var(--altum-transition-smooth);width:100%}.JgJp1.jdQ3k{animation:m-WRQ .2s cubic-bezier(.16,1,.3,1) forwards}.JgJp1 .t-yqI{font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);grid-column:1;grid-row:1;line-height:var(--altum-g-line-height-base)}.JgJp1 ._376uQ,.JgJp1 .t-yqI{margin:0;overflow:visible;text-overflow:unset;white-space:normal}.JgJp1 ._376uQ{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-sm);grid-column:1/-1;line-height:var(--altum-g-line-height-sm)}.JgJp1 .zS2CB{grid-column:2;grid-row:1}.JgJp1 .o7oIJ{display:flex;flex-wrap:wrap;gap:var(--altum-g-space-2);grid-column:1/-1}.JgJp1 .qTnaw{font-size:var(--altum-g-font-size-3xs);font-variant-numeric:tabular-nums;margin-left:var(--altum-g-space-1);opacity:.75}.JgJp1 ._2NUo9{background-color:var(--altum-color-surface);bottom:0;height:var(--altum-g-space-1);left:0;overflow:hidden;position:absolute;right:0}.JgJp1 .jHvMZ{animation:OOqmp linear forwards;background-color:color-mix(in srgb,var(--altum-color-input-text) 22%,#0000);height:100%;transform-origin:left center;width:100%}.JgJp1._2MPLO{border-left-color:var(--altum-color-status-info)}.JgJp1._3NQub{border-left-color:var(--altum-color-status-success)}.JgJp1._06Yjl{border-left-color:var(--altum-color-status-warning)}.JgJp1.fLVyG{border-left-color:var(--altum-color-status-error)}@keyframes hvvqa{0%{opacity:0;transform:translate(var(--altum-notify-from-x),var(--altum-notify-from-y)) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes m-WRQ{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(var(--altum-notify-from-x),var(--altum-notify-from-y)) scale(.96)}}@keyframes OOqmp{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.JgJp1,.JgJp1.jdQ3k,.jHvMZ{animation:none}.FMsLf,.h-79S{transition:none}}";const o={notificationsContainer:"dUTtK",stackCollapsed:"b9NXd",stackItem:"h-79S",stackItemHidden:"gKRWG",stack:"FMsLf",stackExpanded:"_2rI42",notification:"JgJp1",notificationSlideIn:"hvvqa",exit:"jdQ3k",notificationSlideOut:"m-WRQ",title:"t-yqI",description:"_376uQ",close:"zS2CB",actions:"o7oIJ",actionShortcut:"qTnaw",progressTrack:"_2NUo9",progressBar:"jHvMZ",notificationProgress:"OOqmp",info:"_2MPLO",success:"_3NQub",warning:"_06Yjl",error:"fLVyG"};t(a);export{o as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var a=".dUTtK{--altum-notification-max-width:360px;--altum-notify-from-x:0;--altum-notify-from-y:0;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--altum-g-space-3);max-width:var(--altum-notification-max-width);pointer-events:none;position:fixed;width:min(var(--altum-notification-max-width),calc(100vw - var(--altum-g-space-8)));z-index:var(--altum-g-z-notification)}.dUTtK[data-position^=top]{--altum-notify-from-y:calc(var(--altum-g-space-5)*-1);bottom:auto;top:max(var(--altum-g-space-6),env(safe-area-inset-top,0px))}.dUTtK[data-position^=bottom]{--altum-notify-from-y:var(--altum-g-space-5);bottom:max(calc(var(--altum-g-space-6) + env(safe-area-inset-bottom, 0px)),calc(var(--altum-notification-anchor-inset) + env(safe-area-inset-bottom, 0px) + var(--altum-g-space-3)));top:auto}.dUTtK[data-position$=left]{--altum-notify-from-x:calc(var(--altum-g-space-6)*-1);--altum-notify-from-y:0;left:max(var(--altum-g-space-6),env(safe-area-inset-left,0px));right:auto}.dUTtK[data-position$=right]{--altum-notify-from-x:var(--altum-g-space-6);--altum-notify-from-y:0;left:auto;right:max(var(--altum-g-space-6),env(safe-area-inset-right,0px))}.dUTtK[data-position$=center]{left:50%;right:auto;transform:translateX(-50%)}.dUTtK[data-position^=top] .b9NXd .h-79S:not(:first-child):not(.gKRWG){transform-origin:center top}.dUTtK[data-position^=bottom] .b9NXd .h-79S:not(:first-child):not(.gKRWG){transform-origin:center bottom}.FMsLf{display:flex;flex-direction:column;gap:var(--altum-g-space-3);pointer-events:auto;position:relative;width:100%}.h-79S{transform-origin:center top;transition:transform .2s cubic-bezier(.16,1,.3,1),opacity .2s ease;width:100%}.b9NXd:not(:hover):not(:focus-within){display:grid;gap:0}.b9NXd:not(:hover):not(:focus-within) .h-79S{align-self:start;grid-area:1/1;z-index:calc(100 - var(--altum-stack-i, 0))}.b9NXd:not(:hover):not(:focus-within) .h-79S:not(:first-child):not(.gKRWG){margin-top:calc(var(--altum-stack-i, 1)*var(--altum-badge-overhang));pointer-events:none;transform:scale(calc(1 - var(--altum-stack-i, 1)*.035))}.b9NXd:not(:hover):not(:focus-within) .gKRWG{height:0;margin-top:0;min-height:0;opacity:0;overflow:hidden;pointer-events:none;visibility:hidden}.JgJp1{align-items:start;animation:hvvqa .2s cubic-bezier(.16,1,.3,1);background-color:var(--altum-color-fill-floating-bg);border:1px solid var(--altum-color-border);border-left-width:4px;border-radius:var(--altum-g-radius);box-shadow:var(--altum-shadow-dropdown);box-sizing:border-box;color:var(--altum-color-fill-floating-fg);display:grid;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-2) var(--altum-g-space-3);grid-template-columns:minmax(0,1fr) auto;overflow:hidden;padding:var(--altum-g-space-3) var(--altum-g-space-4);pointer-events:auto;position:relative;transition:var(--altum-transition-smooth);width:100%}.JgJp1[data-closing]{animation:hvvqa .2s cubic-bezier(.16,1,.3,1) reverse forwards}.JgJp1[data-closing] ._2NUo9{display:none}.JgJp1[data-pause]:hover .jHvMZ{animation-play-state:paused}.JgJp1 .t-yqI{font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);grid-column:1;grid-row:1;line-height:var(--altum-g-line-height-base)}.JgJp1 ._376uQ{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-sm);grid-column:1/-1;line-height:var(--altum-g-line-height-sm)}.JgJp1 .zS2CB{grid-column:2;grid-row:1}.JgJp1 .o7oIJ{display:flex;flex-wrap:wrap;gap:var(--altum-g-space-2);grid-column:1/-1}.JgJp1 .qTnaw{font-size:var(--altum-g-font-size-3xs);font-variant-numeric:tabular-nums;margin-left:var(--altum-g-space-1);opacity:.75}.JgJp1 ._2NUo9{background-color:var(--altum-color-surface);bottom:0;height:var(--altum-g-space-1);left:0;overflow:hidden;position:absolute;right:0}.JgJp1 .jHvMZ{animation:OOqmp linear forwards;background-color:color-mix(in srgb,var(--altum-color-input-text) 22%,#0000);height:100%;transform-origin:left center;width:100%}@keyframes hvvqa{0%{opacity:0;transform:translate(var(--altum-notify-from-x),var(--altum-notify-from-y)) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes OOqmp{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.JgJp1,.JgJp1[data-closing]{animation:none}.jHvMZ{visibility:hidden}.FMsLf,.h-79S{transition:none}}";const o={notificationsContainer:"dUTtK",stackCollapsed:"b9NXd",stackItem:"h-79S",stackItemHidden:"gKRWG",stack:"FMsLf",notification:"JgJp1",progressTrack:"_2NUo9",progressBar:"jHvMZ",title:"t-yqI",description:"_376uQ",close:"zS2CB",actions:"o7oIJ",actionShortcut:"qTnaw"};t(a);export{o as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as D,jsx as g}from"react/jsx-runtime";import{useState as l,useEffect as m,useMemo as p,useCallback as x,useContext as A,createContext as C}from"react";import{NotificationContainer as P,Notification as k}from"./Notification.js";function B(){let i=0,s=[];const o=new Set,n=()=>{o.forEach(u=>u(s))};return{subscribe:u=>(o.add(u),u(s),()=>{o.delete(u)}),notify:u=>{const t=typeof u=="string"?{title:u}:u,e=t.id??`toast-${Date.now()}-${i+=1}`,c={duration:3e3,variant:"info",...t,id:e};return s=[...s,c],n(),e},dismiss:u=>{s=s.filter(t=>t.id!==u),n()},dismissAll:()=>{s=[],n()}}}const r=[];function j(i){return r.push(i),()=>{const s=r.indexOf(i);s>=0&&r.splice(s,1)}}function F(){return r.length>0?r[r.length-1]:null}const M="notify() \u0442\u0440\u0435\u0431\u0443\u0435\u0442 NotificationProvider \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u043E\u0432. \u041E\u0431\u0435\u0440\u043D\u0438\u0442\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432 <NotificationProvider>.";function v(i,s){const o=i;return o.info=(n,u,t)=>i({...t,title:n,description:u,variant:"info"}),o.success=(n,u,t)=>i({...t,title:n,description:u,variant:"success"}),o.warning=(n,u,t)=>i({...t,title:n,description:u,variant:"warning"}),o.error=(n,u,t)=>i({...t,title:n,description:u,variant:"error"}),o.dismiss=n=>s.dismiss(n),o.dismissAll=()=>s.dismissAll(),o}function O(i){return v(s=>i.notify(s),i)}function d(){const i=F();if(!i)throw new Error(M);return i}function h(i){d().dismiss(i)}function y(){d().dismissAll()}const S=v(i=>d().notify(i),{dismiss:h,dismissAll:y}),E=C(null),f=({children:i,maxVisible:s=5,stacked:o=!0,stackDepth:n=3,position:u="bottom-right"})=>{const[t]=l(()=>B()),[e,c]=l([]);m(()=>j(t),[t]),m(()=>t.subscribe(c),[t]);const N=p(()=>e.slice(-Math.max(1,s)),[s,e]),b=p(()=>({notify:O(t),dismiss:a=>t.dismiss(a),dismissAll:()=>t.dismissAll()}),[t]),w=x(a=>{t.dismiss(a)},[t]);return D(E.Provider,{value:b,children:[i,g(P,{notifications:N,onClose:w,stacked:o,stackDepth:n,position:u})]})};f.displayName="Notification.Provider",Object.assign(k,{Provider:f});function $(){const i=A(E);if(!i)throw new Error("useNotify \u0434\u043E\u043B\u0436\u0435\u043D \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 NotificationProvider");return i}export{f as NotificationProvider,h as dismiss,y as dismissAll,S as notify,$ as useNotify};
1
+ "use client";import{jsxs as g,jsx as x}from"react/jsx-runtime";import{useRequiredContext as A}from"../../hooks/useRequiredContext.js";import{useState as l,useEffect as m,useMemo as p,useCallback as C,createContext as P}from"react";import{NotificationContainer as w,Notification as k}from"./Notification.js";function B(){let t=0,s=[];const n=new Set,o=()=>{n.forEach(u=>u(s))};return{subscribe:u=>(n.add(u),u(s),()=>{n.delete(u)}),notify:u=>{const i=typeof u=="string"?{title:u}:u,r=i.id??`toast-${Date.now()}-${t+=1}`,c={duration:3e3,variant:"info",...i,id:r};return s=[...s,c],o(),r},dismiss:u=>{s=s.filter(i=>i.id!==u),o()},dismissAll:()=>{s=[],o()}}}const e=[];function j(t){return e.push(t),()=>{const s=e.indexOf(t);s>=0&&e.splice(s,1)}}function F(){return e.length>0?e[e.length-1]:null}const M="notify() \u0442\u0440\u0435\u0431\u0443\u0435\u0442 NotificationProvider \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u043E\u0432. \u041E\u0431\u0435\u0440\u043D\u0438\u0442\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432 <NotificationProvider>.";function v(t,s){const n=t;return n.info=(o,u,i)=>t({...i,title:o,description:u,variant:"info"}),n.success=(o,u,i)=>t({...i,title:o,description:u,variant:"success"}),n.warning=(o,u,i)=>t({...i,title:o,description:u,variant:"warning"}),n.error=(o,u,i)=>t({...i,title:o,description:u,variant:"error"}),n.dismiss=o=>s.dismiss(o),n.dismissAll=()=>s.dismissAll(),n}function O(t){return v(s=>t.notify(s),t)}function d(){const t=F();if(!t)throw new Error(M);return t}function h(t){d().dismiss(t)}function y(){d().dismissAll()}const R=v(t=>d().notify(t),{dismiss:h,dismissAll:y}),N=P(null),f=({children:t,maxVisible:s=5,stacked:n=!0,stackDepth:o=3,position:u="bottom-right"})=>{const[i]=l(()=>B()),[r,c]=l([]);m(()=>j(i),[i]),m(()=>i.subscribe(c),[i]);const b=p(()=>r.slice(-Math.max(1,s)),[s,r]),D=p(()=>({notify:O(i),dismiss:a=>i.dismiss(a),dismissAll:()=>i.dismissAll()}),[i]),E=C(a=>{i.dismiss(a)},[i]);return g(N.Provider,{value:D,children:[t,x(w,{notifications:b,onClose:E,stacked:n,stackDepth:o,position:u})]})};f.displayName="Notification.Provider",Object.assign(k,{Provider:f});function S(){return A(N,"useNotify \u0434\u043E\u043B\u0436\u0435\u043D \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 NotificationProvider")}export{f as NotificationProvider,h as dismiss,y as dismissAll,R as notify,S as useNotify};
@@ -1 +1 @@
1
- "use client";import{jsx as i,jsxs as E,Fragment as H}from"react/jsx-runtime";import{forwardRef as J,useState as P}from"react";import T from"./NumberField.module.css.js";import{TextField as V}from"../TextField/TextField.js";import{IconMinus as $}from"../../icons/icons/IconMinus.js";import{IconPlus as q}from"../../icons/icons/IconPlus.js";import{getFormControlState as z}from"../../utils/formControl.js";import{clamp as A}from"../../utils/clamp.js";import{cn as D}from"../../utils/cn.js";import{useLocale as G}from"../../locales/localeContext.js";import{FieldBaseButton as B}from"../../base/FieldBase/FieldBase.js";const K=/^(?:|-|\.|-\.)$/,I=J(function({value:a,min:r,max:n,step:l=1,onChange:t,onClear:c,onBlur:L,clearLabel:O,postfix:S,disabled:m,readOnly:f,className:R,...j},k){const{t:p}=G(),[b,v]=P(null),d=e=>A(e,r??-1/0,n??1/0),o=a!==void 0?d(a):void 0,M=b!==null?b:o!==void 0?String(o):"",F=o??r??0,{isReadOnly:W}=z({disabled:m,readOnly:f}),g=o!==void 0&&r!==void 0&&F<=r,N=o!==void 0&&n!==void 0&&F>=n,s=W||m,x=e=>{s||(e>0?N:g)||t?.(d(o===void 0?e>0?r??l:r??0:o+e*l))},y=(e,u=!1)=>{if(s)return;const w=e.trim();if(K.test(w)){u||t?.(void 0);return}if(!u&&(e.endsWith(".")||e.endsWith("-")))return;const C=parseFloat(e);if(Number.isNaN(C))return;const h=d(C);(!u||h!==a)&&t?.(h)};return i(V,{ref:k,...j,type:"number",className:D(T.numberInput,R),min:r,max:n,step:l,disabled:m,readOnly:f,value:M,onChange:e=>{v(e.target.value),y(e.target.value)},onBlur:e=>{v(null),y(e.target.value,!0),L?.(e)},onClear:c?()=>{t?.(void 0),c()}:void 0,clearLabel:O,postfix:S||(s?void 0:E(H,{children:[i(B,{"aria-label":p("numberField.decrement"),disabled:g,onClick:()=>x(-1),icon:i($,{})}),i(B,{"aria-label":p("numberField.increment"),disabled:N,onClick:()=>x(1),icon:i(q,{})})]}))})});I.displayName="NumberField";export{I as NumberField};
1
+ "use client";import{jsx as i,jsxs as E,Fragment as H}from"react/jsx-runtime";import{forwardRef as J,useState as K}from"react";import P from"./NumberField.module.css.js";import{TextField as T,FieldBaseButton as B}from"../TextField/TextField.js";import{IconMinus as V}from"../../icons/icons/IconMinus.js";import{IconPlus as $}from"../../icons/icons/IconPlus.js";import{getFormControlState as q}from"../../utils/formControl.js";import{clamp as z}from"../../utils/clamp.js";import{cn as A}from"../../utils/cn.js";import{useLocale as D}from"../../locales/localeContext.js";import{ruSlice as G}from"../../locales/slices/numberField.ru.js";const Q={numberField:G},U=/^(?:|-|\.|-\.)$/,I=J(function({value:l,min:r,max:n,step:a=1,onChange:t,onClear:c,onBlur:L,clearLabel:O,postfix:S,disabled:m,readOnly:p,className:R,...j},k){const{t:f}=D(Q),[b,v]=K(null),d=e=>z(e,r??-1/0,n??1/0),o=l!==void 0?d(l):void 0,M=b!==null?b:o!==void 0?String(o):"",F=o??r??0,{isReadOnly:W}=q({disabled:m,readOnly:p}),g=o!==void 0&&r!==void 0&&F<=r,N=o!==void 0&&n!==void 0&&F>=n,s=W||m,x=e=>{s||(e>0?N:g)||t?.(d(o===void 0?e>0?r??a:r??0:o+e*a))},C=(e,u=!1)=>{if(s)return;const w=e.trim();if(U.test(w)){u||t?.(void 0);return}if(!u&&(e.endsWith(".")||e.endsWith("-")))return;const y=parseFloat(e);if(Number.isNaN(y))return;const h=d(y);(!u||h!==l)&&t?.(h)};return i(T,{ref:k,...j,type:"number",className:A(P.numberInput,R),min:r,max:n,step:a,disabled:m,readOnly:p,value:M,onChange:e=>{v(e.target.value),C(e.target.value)},onBlur:e=>{v(null),C(e.target.value,!0),L?.(e)},onClear:c?()=>{t?.(void 0),c()}:void 0,clearLabel:O,postfix:S||(s?void 0:E(H,{children:[i(B,{"aria-label":f("numberField.decrement"),disabled:g,onClick:()=>x(-1),icon:i(V,{})}),i(B,{"aria-label":f("numberField.increment"),disabled:N,onClick:()=>x(1),icon:i($,{})})]}))})});I.displayName="NumberField";export{I as NumberField};
@@ -1 +1 @@
1
- "use client";import{jsx as c,jsxs as p}from"react/jsx-runtime";import h,{forwardRef as u}from"react";import{OverflowMode as T,OverflowItem as d}from"./OverflowActionsMode.js";import{OverflowMeasure as N}from"./OverflowMeasure.js";import{ActionSheetTrigger as x}from"../ActionSheetTrigger/ActionSheetTrigger.js";function M(s){const o=[],e=[];return h.Children.forEach(s,r=>{h.isValidElement(r)&&r.type===d?o.push(r):r!=null&&r!==!1&&e.push(r)}),{items:o,extra:e}}const g=Object.assign(u(function(s,o){const{longPress:e=!1,longPressMs:r,moveThreshold:v,showOverflowTrigger:w,children:t,className:l,...n}=s,{items:f,extra:O}=M(t),m=f.length>0,i=w??!e,a=m?c(T,{ref:e?void 0:o,...n,showOverflowTrigger:i,className:e?void 0:l,children:f}):c(N,{ref:e?void 0:o,...n,showOverflowTrigger:i,className:e?void 0:l,children:t});return e?p(x,{ref:o,className:l,showOverflowTrigger:i,longPressMs:r,moveThreshold:v,children:[m?O:null,a]}):a}),{Item:d});g.displayName="Overflow";export{g as Overflow};
1
+ "use client";import{jsx as m,jsxs as R}from"react/jsx-runtime";import{forwardRef as $,useRef as D,useState as U,useLayoutEffect as Y,Fragment as Z,Children as ee,isValidElement as te}from"react";import{ActionList as oe}from"../ActionList/ActionList.js";import{ActionSheetTrigger as le}from"../ActionSheetTrigger/ActionSheetTrigger.js";import{useActionSheetContext as re}from"../ActionSheetTrigger/actionSheetContext.js";import{Button as ie}from"../Button/Button.js";import{ButtonIcon as H}from"../ButtonIcon/ButtonIcon.js";import{Dropdown as ne}from"../Dropdown/Dropdown.js";import{IconDots3 as ae}from"../../icons/icons/IconDots3.js";import{useLocale as G}from"../../locales/localeContext.js";import{ruSlice as se}from"../../locales/slices/overflow.ru.js";import{cn as S}from"../../utils/cn.js";import{composeRefs as ce}from"../../utils/composeRefs.js";import{visitElementTree as me}from"../../utils/visitElementTree.js";import de from"../../styles/visuallyHidden.module.css.js";import u from"./Overflow.module.css.js";import{Flex as F}from"../../base/Flex/Flex.js";const J={overflow:se},fe={sm:"xs",md:"sm",lg:"md"},z=()=>null;z.displayName="Overflow.Item";function ue(e){return e.type===z}function pe(e){const t=[],l=[];return me(e,o=>{if(!ue(o)){l.push(o);return}const{id:i,icon:n,label:d,textValue:f,disabled:r,onSelect:s,className:p,...b}=o.props,N=i??`action-${t.length}`;t.push({id:N,key:String(o.key??N),icon:n,label:d,textValue:f,disabled:r,onSelect:s,className:p,dom:b})},()=>!1),{items:t,extra:l}}function K(e){return typeof e.textValue=="string"&&e.textValue.length>0?e.textValue:typeof e.label=="string"||typeof e.label=="number"?String(e.label):e.id}function he(e){return ee.toArray(e).filter(t=>te(t))}function P(e,t){return e.key!=null?String(e.key):`overflow-item-${t}`}function ge(e,t,l,o,i){const n=t.length;if(n===0||e<=0)return 0;const d=r=>{let s=0;for(let p=0;p<r;p+=1)s+=t[p]??0;return s+o*Math.max(0,r-1)},f=i===void 0?n:Math.min(n,Math.max(0,Math.floor(i)));if(f>=n&&d(n)<=e)return n;for(let r=f;r>=0;r-=1){const s=r<n;if(d(r)+(s?(r>0?o:0)+l:0)<=e)return r}return 0}function X({open:e,onOpenChange:t,size:l,align:o="right",mobileTitle:i,ariaLabel:n,hidden:d,panelClassName:f,popupRole:r="listbox",triggerClassName:s,className:p,children:b}){return m(ne,{open:e,onOpenChange:t,popupRole:r,align:o,widthMode:"content",mobileTitle:i,panelClassName:f,className:p,renderTrigger:(N,L)=>m(H,{...N,ref:L,size:l,icon:m(ae,{}),"aria-label":n,className:S(d&&de.root,d&&u.srFocus,s,N.className)}),children:b})}function be({item:e,display:t,size:l}){const o=K(e),i={...e.dom,type:"button",variant:"ghost",size:l,id:e.id,disabled:e.disabled,className:S(u.item,e.className),onClick:()=>e.onSelect?.()};return t==="icon"&&e.icon!=null?m(H,{...i,icon:e.icon,"aria-label":e.dom["aria-label"]??(e.dom["aria-labelledby"]?void 0:o)}):m(ie,{...i,prefix:e.icon,children:e.label})}const ve=$(function({items:e,visibleCount:t,display:l="icon-label",showOverflowTrigger:o,size:i="sm",mobileTitle:n,className:d,style:f,"aria-label":r,gap:s,fit:p,maxVisible:b,align:N,moreLabel:L,children:A,...M},C){const{t:y}=G(J),x=re(),O=t===void 0||!Number.isFinite(t)?e.length:Math.max(0,Math.floor(t)),g=e.slice(O),h=x!=null&&g.length>0?x:null,T=r??y("overflow.ariaLabel"),k=!(o??x?.shouldShowOverflowTrigger??!0);return R(F,{ref:C,gap:"xs",align:"center",className:S(u.root,u.actions,d),style:f,...M,role:"toolbar","aria-label":T,children:[e.slice(0,O).map(c=>m(be,{item:c,display:l,size:i},c.key)),g.length>0&&m(X,{open:h?h.overflowOpen:void 0,onOpenChange:h?h.setOverflowOpen:void 0,size:i,mobileTitle:n??y("overflow.title"),ariaLabel:y("overflow.more"),hidden:k,className:u.more,children:m(oe,{"aria-label":T,items:g.map(c=>({id:c.id,groupId:"overflow",label:c.label,textValue:K(c),icon:c.icon,disabled:c.disabled,onSelect:c.onSelect,buttonProps:c.dom})),groups:[{id:"overflow",label:y("overflow.title")}]})})]})}),we=$(function({children:e,gap:t="md",size:l="md",fit:o="content",maxVisible:i,align:n="right",moreLabel:d,mobileTitle:f,className:r,style:s,"aria-label":p,visibleCount:b,display:N,showOverflowTrigger:L,...A},M){const{t:C}=G(J),y=D(null),x=D([]),O=he(e),g=O.length,h=`${O.map((a,v)=>P(a,v)).join("\0")}|${t}|${l}|${o}|${i??""}`,[T,k]=U(()=>({key:h,shown:g}));T.key!==h&&k({key:h,shown:g});const c=T.key===h?T.shown:g;return Y(()=>{const a=y.current;if(!a)return;const v=()=>{const V=[];for(const w of a.children)w instanceof HTMLElement&&w.hasAttribute("data-ov")&&V.push(w);V.length===g&&(x.current=V.map(w=>w.offsetWidth));const I=o==="container"?a.clientWidth:a.parentElement?.clientWidth??a.clientWidth;if(I<=0||x.current.length===0)return;const j=getComputedStyle(a),W=Number.parseFloat(j.getPropertyValue(`--altum-control-height-${l}`)),q=Number.parseFloat(j.columnGap),B=ge(I,x.current,Number.isFinite(W)?W:0,Number.isFinite(q)?q:0,i);k(w=>w.shown===B?w:{key:h,shown:B})};if(v(),typeof ResizeObserver>"u")return;const Q=o==="container"?a:a.parentElement??a,E=new ResizeObserver(v);return E.observe(Q),()=>E.disconnect()},[g,o,h,i,l]),R(F,{ref:ce(M,y),gap:fe[t],align:o==="container"?"stretch":"center",wrap:!1,className:S(u.root,o==="container"?u.fitContainer:u.fitContent,r),style:s,...A,role:"group","aria-label":p??C("overflow.groupAriaLabel"),children:[O.slice(0,c).map((a,v)=>m("div",{"data-ov":"",className:u.item,children:a},P(a,v))),c<g&&m("div",{className:S(u.slot,o==="container"&&u.moreEnd),children:m(X,{size:l,align:n,mobileTitle:f??C("overflow.groupTitle"),ariaLabel:d??C("overflow.groupMore"),popupRole:"none",panelClassName:u.menuPanel,triggerClassName:o==="container"?u.bare:void 0,children:m(F,{direction:"column",gap:"sm",align:"stretch",className:u.menuStack,children:O.slice(c).map((a,v)=>m(Z,{children:a},P(a,c+v)))})})})]})}),_=Object.assign($(function(e,t){const{longPress:l=!1,longPressMs:o,moveThreshold:i,showOverflowTrigger:n,children:d,className:f,...r}=e,{items:s,extra:p}=pe(d),b=s.length>0?m(ve,{ref:l?void 0:t,...r,showOverflowTrigger:n,className:l?void 0:f,items:s}):m(we,{ref:l?void 0:t,...r,className:l?void 0:f,children:d});return l?R(le,{ref:t,className:f,showOverflowTrigger:n??!1,longPressMs:o,moveThreshold:i,children:[s.length>0?p:null,b]}):b}),{Item:z});_.displayName="Overflow";export{_ as Overflow,z as OverflowItem};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".Kkant{align-items:center;display:flex;flex-wrap:nowrap;min-width:0;position:relative}.Kkant.x97pZ{display:inline-flex;flex-wrap:wrap;gap:var(--altum-g-space-1)}.Kkant.LAkSp{max-width:100%;width:max-content}.Kkant.EfjIo{align-self:stretch;height:100%;width:100%}.Kkant.EfjIo .Ua-VV{align-items:stretch;height:100%}.Kkant.EfjIo .eKBSM{align-items:stretch;display:flex}.Kkant.EfjIo .yVeqT{align-items:stretch;margin-inline-start:auto}.Kkant.EfjIo .COxju{align-self:stretch;aspect-ratio:auto;background-color:initial;border:none;border-radius:calc(var(--altum-g-radius) - 2px);box-shadow:none;height:auto;min-height:0;opacity:.75}:is(.Kkant.EfjIo .COxju):hover:not(:disabled){background-color:color-mix(in srgb,var(--altum-field-label) 8%,#0000);opacity:1}:is(.Kkant.EfjIo .COxju):focus-visible{opacity:1}.Kkant .Ua-VV{align-items:center;display:flex;flex-wrap:nowrap;min-width:0;width:100%}.Kkant .bb2Tq,.Kkant .eKBSM{flex-shrink:0}.Kkant .Kfxom{pointer-events:none;position:absolute;visibility:hidden}.Kkant .yVeqT{align-items:center;display:flex;flex-shrink:0}.Kkant .TwrfM{gap:var(--altum-g-space-1)}.Kkant .WOShp{gap:var(--altum-g-space-2)}.Kkant .eKcBZ{gap:var(--altum-g-space-3)}.Kkant .Cq3Em{max-width:min(20rem,calc(100vw - var(--altum-g-space-8)));overflow-x:hidden;overflow-y:auto}.Kkant .GeIJ-{align-items:stretch;display:flex;flex-direction:column;gap:var(--altum-g-space-2);max-width:100%;overflow-x:hidden;padding:var(--altum-g-space-2);width:max-content}:is(.Kkant .GeIJ-)>*{height:auto;max-width:100%;min-height:var(--altum-control-height-sm);width:100%}:is(.Kkant .MCd7o):focus-visible{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}";const e={root:"Kkant",actions:"x97pZ",fitContent:"LAkSp",fitContainer:"EfjIo",row:"Ua-VV",item:"eKBSM",moreSlot:"yVeqT",bare:"COxju",more:"bb2Tq",moreMeasure:"Kfxom",gapSm:"TwrfM",gapMd:"WOShp",gapLg:"eKcBZ",menuPanel:"Cq3Em",menuStack:"GeIJ-",srFocus:"MCd7o"};a(t);export{e as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var a=".Kkant{min-width:0}.Kkant.x97pZ{display:inline-flex;width:auto}.Kkant.LAkSp{max-width:100%;width:max-content}.Kkant.EfjIo{align-self:stretch;height:100%;width:100%}.Kkant.EfjIo .eKBSM{align-items:stretch;display:flex}.Kkant.EfjIo ._5SLQL{align-items:stretch;align-self:stretch;margin-inline-start:auto}.Kkant.EfjIo .COxju{align-self:stretch;aspect-ratio:auto;background-color:initial;border:none;border-radius:calc(var(--altum-g-radius) - var(--altum-control-inset));box-shadow:none;height:auto;min-height:0;opacity:.75}:is(.Kkant.EfjIo .COxju):hover:not(:disabled){background-color:color-mix(in srgb,var(--altum-field-label) 8%,#0000);opacity:1}:is(.Kkant.EfjIo .COxju):focus-visible{opacity:1}.Kkant .bb2Tq,.Kkant .eKBSM{flex-shrink:0}.Kkant .bp6Sl{align-items:center;display:flex;flex-shrink:0}.Kkant .Cq3Em{max-width:min(20rem,calc(100vw - var(--altum-g-space-8)))}.Kkant .GeIJ-{max-width:100%;padding:var(--altum-g-space-2);width:max-content}:is(.Kkant .GeIJ-)>*{height:auto;max-width:100%;min-height:var(--altum-control-height-sm);width:100%}.Kkant .MCd7o:focus-visible{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}";const i={root:"Kkant",actions:"x97pZ",fitContent:"LAkSp",fitContainer:"EfjIo",item:"eKBSM",moreEnd:"_5SLQL",bare:"COxju",more:"bb2Tq",slot:"bp6Sl",menuPanel:"Cq3Em",menuStack:"GeIJ-",srFocus:"MCd7o"};t(a);export{i as default};
@@ -0,0 +1 @@
1
+ "use client";import{useCallback as m}from"react";import{usePresence as c}from"../../hooks/usePresence.js";import{useOverlayStackZIndex as f,elevateAboveOverlayStack as y}from"../../utils/overlayStack.js";import{resolveStackedOverlayZIndex as h}from"../../utils/overlayZIndex.js";import{resolveOverlayPurposeZIndex as x}from"../../utils/overlayPurpose.js";const O=200;function I({variant:l,open:s,onOpenChange:r,purpose:a,zIndex:d,anchor:p=!1}){const n=f(),e=a??(l==="sheet"?"sheet":"modal"),{shouldRender:u,presented:v}=c(s,e==="tooltip"?0:O),i=m(()=>{r(!1)},[r]),t=h(void 0,d??x(e),n),o=p?y(n)??t:t;return{purpose:e,shouldRender:u,presented:v,onClose:i,elevated:o,layerStyle:o!=null?{zIndex:o}:void 0}}export{I as useOverlayFrame};
@@ -1 +1 @@
1
- "use client";import{jsx as p,jsxs as U}from"react/jsx-runtime";import X,{useRef as x,useCallback as Y}from"react";import{Backdrop as G}from"../Backdrop/Backdrop.js";import{FocusTrap as J}from"../FocusTrap/FocusTrap.js";import{usePresence as K}from"../../hooks/usePresence.js";import{useOverlayStackZIndex as Q,OverlayStackProvider as W,elevateAboveOverlayStack as $}from"../../utils/overlayStack.js";import{OVERLAY_Z_INDEX_DEFAULT as ee,resolveStackedOverlayZIndex as oe}from"../../utils/overlayZIndex.js";import{resolveOverlayPurposeSideOffset as re,resolveOverlayPurposeZIndex as ae}from"../../utils/overlayPurpose.js";import{createLibraryPortal as le}from"../../utils/portal.js";import{composeRefs as j}from"../../utils/composeRefs.js";import{cn as te}from"../../utils/cn.js";import{renderChildren as se}from"../../utils/renderChildren.js";import{useAnchorTrigger as ie,useScrimLayerDismiss as de}from"./Overlay.Dismiss.js";import{AnchorLayer as ne}from"./Overlay.Positioner.js";import{PRESENCE_MS as ce,HOVER_CLOSE_DELAY as q,resolveOverlayDismiss as I,HOVER_OPEN_DELAY as pe}from"./Overlay.types.js";import P from"./Overlay.module.css.js";const me={modal:"modal",floating:"modal",sheet:"sheet",dropdown:"dropdown",popover:"popover"};function ue(e){e.stopPropagation()}function M({kind:e,side:R,open:o,presented:t,onClose:i,children:m,className:_,style:d,layerStyle:O,backdrop:r=!1,backdropVariant:A="default",backdropBlur:B="sm",closeOnOutsideClick:u,closeOnEscape:f=!0,lockScroll:l,trapFocus:n=!0,contentRef:b,"aria-label":S,"aria-labelledby":k,"aria-describedby":L,role:C="dialog"}){const y=x(null),E=x(null),w=j(b,E),{resolvedCloseOnOutside:F}=de({open:o,onClose:i,contentRef:E,rootRef:y,backdrop:e==="modal"||r,closeOnOutsideClick:e==="modal"?!0:u,closeOnEscape:e==="modal"?!0:f,lockScroll:e==="modal"?!0:e==="sheet"?r:l}),c=e==="modal"||r,N=e!=="floating"||c||n,g=e==="floating"?c?d:{...O,...d}:void 0,v={className:te(P.panel,_),style:g,role:C,"aria-modal":e==="modal"||c||e==="floating"&&(l??r)?!0:void 0,"aria-label":S,"aria-labelledby":k,"aria-describedby":L,"data-kind":e,"data-side":R,"data-presented":t?"":void 0,onClick:ue},a=se({children:m,props:v,contentRef:w});if(!N)return a;const s=e==="sheet"?o&&r:e==="modal"?o:o&&n;return U("div",{ref:y,className:P.scrim,style:c||e!=="floating"?O:void 0,role:"presentation","data-kind":e,"data-side":R,"data-open":o?"":void 0,"data-presented":t?"":void 0,children:[c&&p(G,{position:"absolute",variant:A,blur:B,onClick:o&&(e==="modal"||F)?i:void 0,className:P.fade}),e==="floating"&&!n?a:p(J,{active:!!s,restoreFocus:!1,className:P.trap,children:a})]})}const z=X.forwardRef(function(e,R){const{variant:o,open:t,onOpenChange:i,className:m,purpose:_,children:d}=e,O=Q(),r=_??me[o],A=r==="tooltip"?0:ce,{shouldRender:B,presented:u}=K(t,A),f=o==="popover"||o==="dropdown",l=f?e:null,n=l?.targetRef,b=l?.triggerMode??"manual",S=x(null),k=j(R,S),L=x(null),C=Y(V=>{i(V)},[i]),y=Y(()=>{i(!1)},[i]),{pointerRef:E,clearTimers:w,closeTimerRef:F,openHover:c}=ie({enabled:f,open:t,targetRef:n??L,contentRef:S,triggerMode:b,purpose:r,openDelay:l?.openDelay??pe,closeDelay:l?.closeDelay??q,requestOpen:C}),N=oe(void 0,e.zIndex??ae(r),O),g=f?$(O)??N:N,v=g!=null?{zIndex:g}:void 0;if(!B)return null;const a=e,s=e,T=I(a.dismiss,{outside:!!a.backdrop,escape:!0}),H=I(s.dismiss,{outside:!!s.backdrop,escape:!0}),Z=I(l?.dismiss,{outside:b==="click",escape:b!=="hover"}),D={"aria-label":e["aria-label"],"aria-labelledby":e["aria-labelledby"],"aria-describedby":e["aria-describedby"],role:e.role};let h=null;if(o==="modal"){const V=e;h=p(M,{kind:"modal",open:t,onClose:y,presented:u,className:m,layerStyle:v,backdropVariant:V.backdropVariant??(r==="lightbox"?"strong":void 0),backdropBlur:V.backdropBlur??(r==="lightbox"?"md":void 0),contentRef:k,...D,children:d})}else o==="floating"?h=p(M,{kind:"floating",open:t,onClose:y,presented:u,className:m,style:a.style,layerStyle:v,backdrop:a.backdrop,backdropVariant:a.backdropVariant,backdropBlur:a.backdropBlur,closeOnOutsideClick:T.outside,closeOnEscape:T.escape,lockScroll:a.lockScroll,trapFocus:a.trapFocus,contentRef:k,...D,children:d}):o==="sheet"?h=p(M,{kind:"sheet",side:s.side??"bottom",open:t,presented:u,onClose:y,className:m,layerStyle:v,backdrop:s.backdrop,backdropVariant:s.backdropVariant,backdropBlur:s.backdropBlur,closeOnOutsideClick:H.outside,closeOnEscape:H.escape,contentRef:k,...D,children:d}):f&&n&&(h=p(ne,{variant:o,purpose:r,open:t,targetRef:n,contentRef:k,triggerMode:b,side:l?.side??"bottom",align:l?.align??"start",sideOffset:re(r),widthMode:o==="dropdown"?e.widthMode??"trigger-fit":"content",presented:u,className:m,layerStyle:v,closeDelay:l?.closeDelay??q,closeOnOutsideClick:Z.outside,closeOnEscape:Z.escape,clearTimers:w,closeTimerRef:F,pointerRef:E,requestOpen:C,openHover:c,...D,children:d}));return le(p(W,{value:g??ee,children:h}))});z.displayName="Overlay";export{z as Overlay};
1
+ "use client";import{jsxs as w,jsx as g}from"react/jsx-runtime";import{forwardRef as H,useRef as h}from"react";import{useFocusTrap as M}from"../../hooks/useFocusTrap.js";import{useOutsideClick as U}from"../../hooks/useOutsideClick.js";import{useOverlay as X}from"../../hooks/useOverlay.js";import{composeRefs as Y}from"../../utils/composeRefs.js";import{cn as Z}from"../../utils/cn.js";import{OverlayStackProvider as q}from"../../utils/overlayStack.js";import{OVERLAY_Z_INDEX_DEFAULT as G}from"../../utils/overlayZIndex.js";import{renderChildren as J}from"../../utils/renderChildren.js";import{createLibraryPortal as K}from"../../utils/portal.js";import{Backdrop as Q}from"../Backdrop/Backdrop.js";import{useOverlayFrame as W}from"./Overlay.frame.js";import d from"./Overlay.module.css.js";const k=H(function(e,O){const{open:a,onOpenChange:R,className:C,purpose:x,children:N,zIndex:F,backdropVariant:E,backdropBlur:S,role:L="dialog","aria-label":A,"aria-labelledby":B,"aria-describedby":D}=e,{purpose:I,shouldRender:i,presented:n,onClose:s,elevated:P,layerStyle:p}=W({variant:e.variant,open:a,onOpenChange:R,purpose:x,zIndex:F}),m=h(null),l=h(null),T=Y(O,l),o=e.variant,r=o==="modal"||!!e.backdrop,t=o==="modal"||e.dismiss==null?{outside:o==="modal"||r,escape:!0}:{outside:e.dismiss==="all"||e.dismiss==="outside",escape:e.dismiss==="all"||e.dismiss==="escape"},c=o==="floating"?e.lockScroll??r:r,V=o==="floating"?e.trapFocus??!0:!0,u=o==="sheet"?e.side??"bottom":void 0,f=o==="floating"?e.style:void 0,_=o==="sheet"?a&&r:a&&V,v=o==="floating"&&!r;if(X(s,{open:a,closeOnEscape:t.escape,lockScroll:c,rootRef:r&&i?m:void 0}),U(l,s,{enabled:t.outside&&!r&&a}),M({active:_&&i,containerRef:l,restoreFocus:!1}),!i)return null;const b=o==="modal"&&I==="lightbox",y=J({children:N,contentRef:T,props:{className:Z(d.panel,C),style:o==="floating"?v?{...p,...f}:f:void 0,role:L,"aria-modal":r||c?!0:void 0,"aria-label":A,"aria-labelledby":B,"aria-describedby":D,"data-kind":o,"data-presented":n?"":void 0,"data-side":u,onClick:z=>{z.stopPropagation()}}}),j=v?y:w("div",{ref:m,className:d.scrim,style:p,role:"presentation","data-kind":o,"data-side":u,"data-presented":n?"":void 0,children:[r&&g(Q,{position:"absolute",variant:E??(b?"strong":void 0),blur:S??(b?"md":void 0),className:d.fade,onClick:a&&t.outside?s:void 0}),y]});return K(g(q,{value:P??G,children:j}))});k.displayName="Overlay";export{k as Overlay};
@@ -1 +1 @@
1
- "use client";import{injectCss as t}from"../../utils/injectCss.js";var e=".znJr4{inset:0;pointer-events:none;position:fixed}.znJr4[data-kind=floating],.znJr4[data-kind=modal]{z-index:var(--altum-g-z-modal)}.znJr4[data-kind=modal]{align-items:center;display:flex}.znJr4[data-kind=sheet]{z-index:var(--altum-g-z-overlay)}._5I5c8{transition:opacity var(--altum-motion-overlay) cubic-bezier(.16,1,.3,1)}.znJr4[data-presented] ._5I5c8{opacity:1;pointer-events:auto}.znJr4:not([data-presented]) ._5I5c8{opacity:0;pointer-events:none}.V1Ouq{pointer-events:none}.V1Ouq>*{pointer-events:auto}.znJr4[data-kind=modal] .V1Ouq{align-items:center;display:flex;height:100%;justify-content:center;position:relative;width:100%;z-index:var(--altum-g-z-raised)}.znJr4[data-kind=floating] .V1Ouq,.znJr4[data-kind=sheet] .V1Ouq{inset:0;position:absolute}.znJr4[data-kind=sheet] .V1Ouq{display:flex;height:100%;width:100%}.znJr4[data-kind=sheet][data-side=bottom] .V1Ouq{align-items:flex-end;justify-content:center}.znJr4[data-kind=sheet][data-side=top] .V1Ouq{align-items:flex-start;justify-content:center}.znJr4[data-kind=sheet][data-side=left] .V1Ouq{align-items:stretch;justify-content:flex-start}.znJr4[data-kind=sheet][data-side=right] .V1Ouq{align-items:stretch;justify-content:flex-end}.c5Gk2{pointer-events:auto}.c5Gk2[data-kind=modal]{max-height:100vh;max-height:100dvh;position:relative;transition:opacity var(--altum-motion-overlay) cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1)}.c5Gk2[data-kind=modal][data-presented]{opacity:1;transform:translateY(0)}.c5Gk2[data-kind=modal]:not([data-presented]){opacity:0;transform:translateY(8px)}.c5Gk2[data-kind=floating]{position:fixed;transition:opacity var(--altum-motion-overlay) cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1);z-index:var(--altum-g-z-modal)}.c5Gk2[data-kind=floating][data-presented]{opacity:1;transform:scale(1)}.c5Gk2[data-kind=floating]:not([data-presented]){opacity:0;transform:scale(.96)}.c5Gk2[data-kind=sheet]{box-sizing:border-box;position:relative;transition:transform var(--altum-motion-overlay) cubic-bezier(.16,1,.3,1);z-index:var(--altum-g-z-raised)}.c5Gk2[data-kind=sheet][data-presented]{transform:translate(0)}.c5Gk2[data-kind=sheet]:not([data-presented]){transform:translate(var(--altum-sheet-x,0),var(--altum-sheet-y,100%))}.c5Gk2[data-kind=sheet][data-side=bottom],.c5Gk2[data-kind=sheet][data-side=top]{max-height:95vh;max-height:95dvh;width:100%}.c5Gk2[data-kind=sheet][data-side=top]{--altum-sheet-x:0;--altum-sheet-y:-100%}.c5Gk2[data-kind=sheet][data-side=bottom]{--altum-sheet-x:0;--altum-sheet-y:100%}.c5Gk2[data-kind=sheet][data-side=left],.c5Gk2[data-kind=sheet][data-side=right]{height:100%;max-width:95vw;max-width:95dvw}.c5Gk2[data-kind=sheet][data-side=left]{--altum-sheet-x:-100%;--altum-sheet-y:0}.c5Gk2[data-kind=sheet][data-side=right]{--altum-sheet-x:100%;--altum-sheet-y:0}._0WeQx{max-height:calc(100vh - var(--altum-g-space-4));max-height:calc(100dvh - var(--altum-g-space-4));max-width:calc(100vw - var(--altum-g-space-4));overflow:auto;pointer-events:auto;position:fixed;transition:opacity var(--altum-motion-overlay) cubic-bezier(.16,1,.3,1);z-index:var(--altum-g-z-dropdown)}._0WeQx[data-presented]{opacity:1}._0WeQx:not([data-presented]){opacity:0}._0WeQx.DQJrx{max-height:none}._0WeQx.DQJrx,._0WeQx.RmLTZ{overflow:visible}.Evvei{transform-origin:top center}.kdPpn{transform-origin:bottom center}.rb6EM{transform-origin:center left}.nWq0M{transform-origin:center right}.ddYr-{box-sizing:border-box;transition:opacity var(--altum-motion-overlay) cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1)}.ddYr-[data-presented]{opacity:1;transform:scale(1)}.ddYr-.Evvei:not([data-presented]),.ddYr-.kdPpn:not([data-presented]){opacity:0;transform:scaleY(.85)}.ddYr-.nWq0M:not([data-presented]),.ddYr-.rb6EM:not([data-presented]){opacity:0;transform:scaleX(.85)}@media (prefers-reduced-motion:reduce){._0WeQx,._5I5c8,.c5Gk2,.ddYr-{transition:none}.c5Gk2[data-kind=floating]:not([data-presented]),.c5Gk2[data-kind=modal]:not([data-presented]),.c5Gk2[data-kind=sheet]:not([data-presented]),.ddYr-:not([data-presented]){transform:none}.c5Gk2[data-kind=sheet]:not([data-presented]){opacity:0}}";const a={scrim:"znJr4",fade:"_5I5c8",trap:"V1Ouq",panel:"c5Gk2",anchor:"_0WeQx",anchorTooltip:"DQJrx",anchorPopover:"RmLTZ",originTop:"Evvei",originBottom:"kdPpn",originLeft:"rb6EM",originRight:"nWq0M",dropdown:"ddYr-"};t(e);export{a as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var e=".c5Gk2,.znJr4{--altum-overlay-ease:cubic-bezier(0.16,1,0.3,1)}.znJr4{inset:0;pointer-events:none;position:fixed}.znJr4[data-kind=modal]{align-items:center;display:flex;justify-content:center}.znJr4[data-kind=sheet]{align-items:var(--altum-sheet-align,flex-end);display:flex;justify-content:var(--altum-sheet-justify,center)}.znJr4[data-side=top]{--altum-sheet-align:flex-start}.znJr4[data-side=left]{--altum-sheet-justify:flex-start;--altum-sheet-align:stretch}.znJr4[data-side=right]{--altum-sheet-justify:flex-end;--altum-sheet-align:stretch}._5I5c8{animation:none;transition:opacity var(--altum-motion-overlay) var(--altum-overlay-ease)}.znJr4[data-presented] ._5I5c8{opacity:1}.znJr4:not([data-presented]) ._5I5c8{opacity:0;pointer-events:none}.c5Gk2{pointer-events:auto;transition:opacity var(--altum-motion-overlay) var(--altum-overlay-ease),transform var(--altum-motion-overlay) var(--altum-overlay-ease)}.c5Gk2[data-presented]{opacity:1;transform:none}.c5Gk2:not([data-presented]){opacity:var(--altum-overlay-exit-opacity,0);transform:var(--altum-overlay-exit,none)}.c5Gk2[data-kind=modal]{--altum-overlay-exit:translateY(8px);max-height:100vh;max-height:100dvh;position:relative}.c5Gk2[data-kind=floating]{--altum-overlay-exit:scale(0.96);position:fixed}.c5Gk2[data-kind=sheet]{--altum-overlay-exit-opacity:1;--altum-overlay-exit:translate(var(--altum-sheet-x,0),var(--altum-sheet-y,100%));box-sizing:border-box;position:relative}.c5Gk2[data-kind=sheet][data-side=bottom],.c5Gk2[data-kind=sheet][data-side=top]{max-height:95vh;max-height:95dvh;width:100%}.c5Gk2[data-kind=sheet][data-side=top]{--altum-sheet-x:0;--altum-sheet-y:-100%}.c5Gk2[data-kind=sheet][data-side=left],.c5Gk2[data-kind=sheet][data-side=right]{height:100%;max-width:95vw;max-width:95dvw}.c5Gk2[data-kind=sheet][data-side=left]{--altum-sheet-x:-100%;--altum-sheet-y:0}.c5Gk2[data-kind=sheet][data-side=right]{--altum-sheet-x:100%;--altum-sheet-y:0}@media (prefers-reduced-motion:reduce){._5I5c8,.c5Gk2{transition:none}.c5Gk2:not([data-presented]){transform:none}.c5Gk2[data-kind=sheet]:not([data-presented]){opacity:0}}";const a={scrim:"znJr4",panel:"c5Gk2",fade:"_5I5c8"};t(e);export{a as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as b,Fragment as D,jsx as r}from"react/jsx-runtime";import{forwardRef as h,useMemo as E,createContext as A}from"react";import g from"./Pagination.module.css.js";import B from"../../styles/unstyledControl.module.css.js";import{useLocale as d}from"../../locales/localeContext.js";import{useRequiredContext as F}from"../../hooks/useRequiredContext.js";import{cn as m}from"../../utils/cn.js";import{Select as k}from"../Select/Select.js";const z=A(null);function v(){return F(z,"\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0439 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442 Pagination \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 Pagination")}const O=[10,25,50,100],y=h(function({currentPage:a,totalPages:e,onPageChange:n,className:t,children:o,totalItems:i,pageSize:l,onPageSizeChange:c,pageSizeOptions:u,"aria-label":s,...f},p){const{t:x}=d(),M=o??b(D,{children:[i!=null&&l!=null?r(P,{totalItems:i,pageSize:l}):null,r(C,{}),l!=null&&c!=null?r(N,{pageSize:l,onPageSizeChange:c,pageSizeOptions:u}):null]});return r(z.Provider,{value:{currentPage:a,totalPages:e,onPageChange:n},children:r("nav",{ref:p,className:m(g.pagination,t),"aria-label":s??x("pagination.ariaLabel"),...f,children:M})})});function j(a,e){if(e<=7)return Array.from({length:e},(i,l)=>l+1);const n=[1],t=Math.max(2,a-1),o=Math.min(e-1,a+1);t>2&&n.push("ellipsis");for(let i=t;i<=o;i+=1)n.push(i);return o<e-1&&n.push("ellipsis"),n.push(e),n}const P=h(function({totalItems:a,pageSize:e,className:n,...t},o){const{currentPage:i}=v(),{t:l}=d();if(a==null||e==null||a<=0)return null;const c=Math.min(a,(i-1)*e+1),u=Math.min(a,i*e);return r("span",{ref:o,className:m(g.summary,n),...t,children:l("pagination.summary",{start:c,end:u,total:a})})});function S({active:a,className:e,...n}){return r("button",{type:"button",className:m(B.control,g.pagBtn,a&&g.active,e),"aria-current":a?"page":void 0,...n})}const C=h(function({className:a,...e},n){const{currentPage:t,totalPages:o,onPageChange:i}=v(),{t:l}=d(),c=j(t,Math.max(1,o));return b("div",{ref:n,className:m(g.controls,a),...e,children:[r(S,{disabled:t<=1,"aria-label":l("pagination.prev"),onClick:()=>i(t-1),children:"<"}),c.map((u,s)=>u==="ellipsis"?r("span",{className:g.ellipsis,"aria-hidden":!0,children:"\u2026"},`e-${s}`):r(S,{active:u===t,"aria-label":l("pagination.page",{page:u}),onClick:()=>i(u),children:u},u)),r(S,{disabled:t>=o,"aria-label":l("pagination.next"),onClick:()=>i(t+1),children:">"})]})}),N=h(function({pageSize:a,onPageSizeChange:e,pageSizeOptions:n=O,className:t,...o},i){const{t:l}=d(),c=E(()=>n.map(s=>({value:String(s),label:String(s)})),[n]),u=l("pagination.pageSizeLabel");return r("div",{ref:i,className:m(g.pageSize,t),...o,children:r(k,{label:u,labelPlacement:"none",size:"sm",width:"full",options:c,value:String(a),onChange:s=>{const f=Array.isArray(s)?s[0]:s,p=Number(f);Number.isFinite(p)&&e(p)}})})});y.displayName="Pagination",P.displayName="Pagination.Summary",C.displayName="Pagination.Controls",N.displayName="Pagination.PageSize";const I=Object.assign(y,{Summary:P,Controls:C,PageSize:N});export{I as Pagination};
1
+ "use client";import{jsxs as z,Fragment as D,jsx as o}from"react/jsx-runtime";import{forwardRef as h,useMemo as E,createContext as A}from"react";import m from"./Pagination.module.css.js";import F from"../../styles/unstyledControl.module.css.js";import{useLocale as d}from"../../locales/localeContext.js";import{useRequiredContext as w}from"../../hooks/useRequiredContext.js";import{cn as g}from"../../utils/cn.js";import{ruSlice as L}from"../../locales/slices/pagination.ru.js";import{Select as O}from"../Select/Select.js";const f={pagination:L},v=A(null);function y(){return w(v,"\u0412\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0439 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442 Pagination \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 Pagination")}const j=[10,25,50,100],x=h(function({currentPage:a,totalPages:e,onPageChange:n,className:t,children:u,totalItems:i,pageSize:r,onPageSizeChange:c,pageSizeOptions:l,"aria-label":s,...P},p){const{t:M}=d(f),B=u??z(D,{children:[i!=null&&r!=null?o(S,{totalItems:i,pageSize:r}):null,o(N,{}),r!=null&&c!=null?o(b,{pageSize:r,onPageSizeChange:c,pageSizeOptions:l}):null]});return o(v.Provider,{value:{currentPage:a,totalPages:e,onPageChange:n},children:o("nav",{ref:p,className:g(m.pagination,t),"aria-label":s??M("pagination.ariaLabel"),...P,children:B})})});function k(a,e){if(e<=7)return Array.from({length:e},(i,r)=>r+1);const n=[1],t=Math.max(2,a-1),u=Math.min(e-1,a+1);t>2&&n.push("ellipsis");for(let i=t;i<=u;i+=1)n.push(i);return u<e-1&&n.push("ellipsis"),n.push(e),n}const S=h(function({totalItems:a,pageSize:e,className:n,...t},u){const{currentPage:i}=y(),{t:r}=d(f);if(a==null||e==null||a<=0)return null;const c=Math.min(a,(i-1)*e+1),l=Math.min(a,i*e);return o("span",{ref:u,className:g(m.summary,n),...t,children:r("pagination.summary",{start:c,end:l,total:a})})});function C({active:a,className:e,...n}){return o("button",{type:"button",className:g(F.control,m.pagBtn,a&&m.active,e),"aria-current":a?"page":void 0,...n})}const N=h(function({className:a,...e},n){const{currentPage:t,totalPages:u,onPageChange:i}=y(),{t:r}=d(f),c=k(t,Math.max(1,u));return z("div",{ref:n,className:g(m.controls,a),...e,children:[o(C,{disabled:t<=1,"aria-label":r("pagination.prev"),onClick:()=>i(t-1),children:"<"}),c.map((l,s)=>l==="ellipsis"?o("span",{className:m.ellipsis,"aria-hidden":!0,children:"\u2026"},`e-${s}`):o(C,{active:l===t,"aria-label":r("pagination.page",{page:l}),onClick:()=>i(l),children:l},l)),o(C,{disabled:t>=u,"aria-label":r("pagination.next"),onClick:()=>i(t+1),children:">"})]})}),b=h(function({pageSize:a,onPageSizeChange:e,pageSizeOptions:n=j,className:t,...u},i){const{t:r}=d(f),c=E(()=>n.map(s=>({value:String(s),label:String(s)})),[n]),l=r("pagination.pageSizeLabel");return o("div",{ref:i,className:g(m.pageSize,t),...u,children:o(O,{"aria-label":l,placeholder:l,size:"sm",width:"full",options:c,value:String(a),onChange:s=>{const P=Array.isArray(s)?s[0]:s,p=Number(P);Number.isFinite(p)&&e(p)}})})});x.displayName="Pagination",S.displayName="Pagination.Summary",N.displayName="Pagination.Controls",b.displayName="Pagination.PageSize";const I=Object.assign(x,{Summary:S,Controls:N,PageSize:b});export{I as Pagination};