altum 0.0.5 → 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 (250) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/base/FieldPopup/FieldPopup.js +1 -1
  3. package/dist/base/PeriodHeader/PeriodHeader.js +1 -1
  4. package/dist/base/ToggleControlBase/ToggleControlBase.js +1 -1
  5. package/dist/base/ToggleControlBase/ToggleControlBase.module.css.js +1 -1
  6. package/dist/components/Accordion/Accordion.js +1 -1
  7. package/dist/components/ActionList/ActionList.js +1 -1
  8. package/dist/components/ActionList/ActionList.module.css.js +1 -1
  9. package/dist/components/ActionSheetTrigger/ActionSheetTrigger.js +1 -1
  10. package/dist/components/ActionSheetTrigger/ActionSheetTrigger.module.css.js +1 -1
  11. package/dist/components/Alert/Alert.js +1 -1
  12. package/dist/components/Alert/Alert.module.css.js +1 -1
  13. package/dist/components/Badge/Badge.js +1 -1
  14. package/dist/components/Badge/Badge.module.css.js +1 -1
  15. package/dist/components/Box/Box.js +1 -1
  16. package/dist/components/Box/Box.module.css.js +1 -1
  17. package/dist/components/Bubble/Bubble.js +1 -1
  18. package/dist/components/Button/Button.js +1 -1
  19. package/dist/components/Button/Button.module.css.js +1 -1
  20. package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/ButtonIcon/OverlayCloseButton.js +1 -0
  22. package/dist/components/Calendar/Calendar.context.js +1 -1
  23. package/dist/components/Calendar/Calendar.module.css.js +1 -1
  24. package/dist/components/Calendar/Calendar.slots.js +1 -1
  25. package/dist/components/Calendar/Calendar.utils.js +1 -1
  26. package/dist/components/Calendar/Calendar.views.js +1 -1
  27. package/dist/components/CalendarBoard/CalendarBoard.MonthView.js +1 -1
  28. package/dist/components/CalendarBoard/CalendarBoard.Schedule.js +1 -1
  29. package/dist/components/CalendarBoard/CalendarBoard.YearView.js +2 -2
  30. package/dist/components/CalendarBoard/CalendarBoard.chrome.js +1 -1
  31. package/dist/components/CalendarBoard/CalendarBoard.module.css.js +1 -1
  32. package/dist/components/CalendarBoard/calendar.schedule.js +1 -1
  33. package/dist/components/Card/Card.js +1 -1
  34. package/dist/components/Card/Card.module.css.js +1 -1
  35. package/dist/components/Chip/Chip.js +1 -1
  36. package/dist/components/Chip/Chip.module.css.js +1 -1
  37. package/dist/components/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  38. package/dist/components/CommandPalette/CommandPalette.js +1 -1
  39. package/dist/components/CommandPalette/CommandPalette.module.css.js +1 -1
  40. package/dist/components/ConfirmDialog/ConfirmDialog.js +1 -1
  41. package/dist/components/DateField/DateField.js +1 -1
  42. package/dist/components/DateField/DateField.utils.js +1 -1
  43. package/dist/components/DateRangeField/DateRangeField.js +1 -1
  44. package/dist/components/DayStripCalendar/DayStripCalendar.js +1 -1
  45. package/dist/components/DialogLayout/DialogLayout.js +1 -0
  46. package/dist/components/DialogLayout/DialogLayout.module.css.js +1 -0
  47. package/dist/components/Dropdown/Dropdown.js +1 -1
  48. package/dist/components/Dropdown/Dropdown.module.css.js +1 -1
  49. package/dist/components/Dropdown/DropdownMobileSheet.js +1 -1
  50. package/dist/components/FileList/FileList.js +1 -1
  51. package/dist/components/ImageCrop/ImageCrop.js +1 -1
  52. package/dist/components/ImageCrop/ImageCrop.module.css.js +1 -1
  53. package/dist/components/ImageGallery/ImageGallery.js +1 -1
  54. package/dist/components/ImageGallery/ImageGallery.module.css.js +1 -1
  55. package/dist/components/ImageLightbox/ImageLightbox.js +1 -1
  56. package/dist/components/ImageLightbox/ImageLightbox.module.css.js +1 -1
  57. package/dist/components/Layout/Layout.js +1 -1
  58. package/dist/components/Layout/Layout.module.css.js +1 -1
  59. package/dist/components/Link/Link.js +1 -1
  60. package/dist/components/Listbox/Listbox.js +1 -1
  61. package/dist/components/Listbox/Listbox.module.css.js +1 -1
  62. package/dist/components/LiveRegion/LiveRegion.js +1 -0
  63. package/dist/components/LocaleProvider/LocaleProvider.js +1 -1
  64. package/dist/components/MaskedField/MaskedField.js +1 -1
  65. package/dist/components/MaskedField/MaskedField.module.css.js +1 -1
  66. package/dist/components/Menu/Menu.js +1 -1
  67. package/dist/components/Menu/Menu.module.css.js +1 -1
  68. package/dist/components/Modal/Modal.js +1 -1
  69. package/dist/components/Modal/Modal.module.css.js +1 -1
  70. package/dist/components/Notification/Notification.js +1 -1
  71. package/dist/components/Notification/Notification.module.css.js +1 -1
  72. package/dist/components/Notification/toast.js +1 -1
  73. package/dist/components/NumberField/NumberField.js +1 -1
  74. package/dist/components/Overflow/Overflow.js +1 -1
  75. package/dist/components/Overflow/Overflow.module.css.js +1 -1
  76. package/dist/components/Overlay/Overlay.frame.js +1 -0
  77. package/dist/components/Overlay/Overlay.js +1 -1
  78. package/dist/components/Overlay/Overlay.module.css.js +1 -1
  79. package/dist/components/Pagination/Pagination.js +1 -1
  80. package/dist/components/PasswordField/PasswordField.js +1 -1
  81. package/dist/components/PinInput/PinInput.js +1 -1
  82. package/dist/components/PinInput/PinInput.module.css.js +1 -1
  83. package/dist/components/Popover/Popover.js +1 -1
  84. package/dist/components/Popover/Popover.module.css.js +1 -1
  85. package/dist/components/PopupSwitch/PopupSwitch.js +1 -0
  86. package/dist/components/PopupSwitch/PopupSwitch.module.css.js +1 -0
  87. package/dist/components/PopupSwitch/PopupSwitch.utils.js +1 -0
  88. package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
  89. package/dist/components/Rating/Rating.js +1 -1
  90. package/dist/components/SearchField/SearchField.js +1 -1
  91. package/dist/components/SegmentedControl/SegmentedControl.js +1 -1
  92. package/dist/components/Select/Select.js +1 -1
  93. package/dist/components/Select/Select.module.css.js +1 -1
  94. package/dist/components/SelectionGroup/SelectionGroup.js +1 -1
  95. package/dist/components/Sheet/Sheet.js +1 -1
  96. package/dist/components/Sheet/Sheet.module.css.js +1 -1
  97. package/dist/components/Sidebar/Sidebar.js +1 -1
  98. package/dist/components/Sidebar/Sidebar.module.css.js +1 -1
  99. package/dist/components/SkipLink/SkipLink.js +1 -1
  100. package/dist/components/Slider/Slider.js +1 -1
  101. package/dist/components/SortableList/SortableList.js +1 -1
  102. package/dist/components/SortableList/SortableList.module.css.js +1 -1
  103. package/dist/components/Spinner/Spinner.js +1 -1
  104. package/dist/components/Steps/Steps.js +1 -1
  105. package/dist/components/SuggestField/SuggestField.js +1 -1
  106. package/dist/components/Table/Table.js +1 -1
  107. package/dist/components/Table/TableRowActions.js +1 -1
  108. package/dist/components/Table/TableView.js +1 -1
  109. package/dist/components/TextField/TextField.js +1 -1
  110. package/dist/components/TextField/TextField.module.css.js +1 -1
  111. package/dist/components/TextareaField/TextareaField.js +1 -1
  112. package/dist/components/TextareaField/TextareaField.module.css.js +1 -1
  113. package/dist/components/ThemeProvider/ThemeProvider.js +1 -1
  114. package/dist/components/ThemeProvider/ThemeProvider.module.css.js +1 -1
  115. package/dist/components/TimeField/TimeField.js +1 -1
  116. package/dist/components/Tooltip/Tooltip.js +1 -1
  117. package/dist/components/Tooltip/Tooltip.module.css.js +1 -1
  118. package/dist/components/UploadZone/UploadZone.js +1 -1
  119. package/dist/components/VirtualList/VirtualList.js +1 -1
  120. package/dist/components/VirtualList/VirtualList.module.css.js +1 -1
  121. package/dist/components/VirtualList/VirtualList.utils.js +1 -1
  122. package/dist/components/VisuallyHidden/VisuallyHidden.js +1 -1
  123. package/dist/components/WheelTimePicker/WheelTimePicker.js +1 -1
  124. package/dist/entries/icons.js +1 -1
  125. package/dist/entries/utils.js +1 -1
  126. package/dist/hooks/useAutoResize.js +1 -1
  127. package/dist/hooks/useOtpInputs.js +1 -1
  128. package/dist/hooks/useTrackThumb.js +1 -1
  129. package/dist/icons/icons/IconChevronUpDown.js +1 -0
  130. package/dist/index.js +1 -1
  131. package/dist/locales/en.js +1 -1
  132. package/dist/locales/localeContext.js +1 -1
  133. package/dist/locales/ru.js +1 -1
  134. package/dist/locales/slices/actionList.en.js +1 -0
  135. package/dist/locales/slices/actionList.ru.js +1 -0
  136. package/dist/locales/slices/bubble.en.js +1 -0
  137. package/dist/locales/slices/bubble.ru.js +1 -0
  138. package/dist/locales/slices/buttonGroup.en.js +1 -0
  139. package/dist/locales/slices/buttonGroup.ru.js +1 -0
  140. package/dist/locales/slices/calendar.en.js +1 -0
  141. package/dist/locales/slices/calendar.ru.js +1 -0
  142. package/dist/locales/slices/calendarBoard.en.js +1 -0
  143. package/dist/locales/slices/calendarBoard.ru.js +1 -0
  144. package/dist/locales/slices/chip.en.js +1 -0
  145. package/dist/locales/slices/chip.ru.js +1 -0
  146. package/dist/locales/slices/commandPalette.en.js +1 -0
  147. package/dist/locales/slices/commandPalette.ru.js +1 -0
  148. package/dist/locales/slices/common.en.js +1 -0
  149. package/dist/locales/slices/common.ru.js +1 -0
  150. package/dist/locales/slices/confirmDialog.en.js +1 -0
  151. package/dist/locales/slices/confirmDialog.ru.js +1 -0
  152. package/dist/locales/slices/customSelect.en.js +1 -0
  153. package/dist/locales/slices/customSelect.ru.js +1 -0
  154. package/dist/locales/slices/dateRangeField.en.js +1 -0
  155. package/dist/locales/slices/dateRangeField.ru.js +1 -0
  156. package/dist/locales/slices/dayStrip.en.js +1 -0
  157. package/dist/locales/slices/dayStrip.ru.js +1 -0
  158. package/dist/locales/slices/fileList.en.js +1 -0
  159. package/dist/locales/slices/fileList.ru.js +1 -0
  160. package/dist/locales/slices/imageCrop.en.js +1 -0
  161. package/dist/locales/slices/imageCrop.ru.js +1 -0
  162. package/dist/locales/slices/imageGallery.en.js +1 -0
  163. package/dist/locales/slices/imageGallery.ru.js +1 -0
  164. package/dist/locales/slices/imageLightbox.en.js +1 -0
  165. package/dist/locales/slices/imageLightbox.ru.js +1 -0
  166. package/dist/locales/slices/listbox.en.js +1 -0
  167. package/dist/locales/slices/listbox.ru.js +1 -0
  168. package/dist/locales/slices/menu.en.js +1 -0
  169. package/dist/locales/slices/menu.ru.js +1 -0
  170. package/dist/locales/slices/modal.en.js +1 -0
  171. package/dist/locales/slices/modal.ru.js +1 -0
  172. package/dist/locales/slices/numberField.en.js +1 -0
  173. package/dist/locales/slices/numberField.ru.js +1 -0
  174. package/dist/locales/slices/overflow.en.js +1 -0
  175. package/dist/locales/slices/overflow.ru.js +1 -0
  176. package/dist/locales/slices/pagination.en.js +1 -0
  177. package/dist/locales/slices/pagination.ru.js +1 -0
  178. package/dist/locales/slices/password.en.js +1 -0
  179. package/dist/locales/slices/password.ru.js +1 -0
  180. package/dist/locales/slices/pinInput.en.js +1 -0
  181. package/dist/locales/slices/pinInput.ru.js +1 -0
  182. package/dist/locales/slices/pullToRefresh.en.js +1 -0
  183. package/dist/locales/slices/pullToRefresh.ru.js +1 -0
  184. package/dist/locales/slices/rating.en.js +1 -0
  185. package/dist/locales/slices/rating.ru.js +1 -0
  186. package/dist/locales/slices/searchField.en.js +1 -0
  187. package/dist/locales/slices/searchField.ru.js +1 -0
  188. package/dist/locales/slices/select.en.js +1 -0
  189. package/dist/locales/slices/select.ru.js +1 -0
  190. package/dist/locales/slices/sheet.en.js +1 -0
  191. package/dist/locales/slices/sheet.ru.js +1 -0
  192. package/dist/locales/slices/sidebar.en.js +1 -0
  193. package/dist/locales/slices/sidebar.ru.js +1 -0
  194. package/dist/locales/slices/skipLink.en.js +1 -0
  195. package/dist/locales/slices/skipLink.ru.js +1 -0
  196. package/dist/locales/slices/slider.en.js +1 -0
  197. package/dist/locales/slices/slider.ru.js +1 -0
  198. package/dist/locales/slices/sortable.en.js +1 -0
  199. package/dist/locales/slices/sortable.ru.js +1 -0
  200. package/dist/locales/slices/spinner.en.js +1 -0
  201. package/dist/locales/slices/spinner.ru.js +1 -0
  202. package/dist/locales/slices/steps.en.js +1 -0
  203. package/dist/locales/slices/steps.ru.js +1 -0
  204. package/dist/locales/slices/suggestField.en.js +1 -0
  205. package/dist/locales/slices/suggestField.ru.js +1 -0
  206. package/dist/locales/slices/table.en.js +1 -0
  207. package/dist/locales/slices/table.ru.js +1 -0
  208. package/dist/locales/slices/timeField.en.js +1 -0
  209. package/dist/locales/slices/timeField.ru.js +1 -0
  210. package/dist/locales/slices/upload.en.js +1 -0
  211. package/dist/locales/slices/upload.ru.js +1 -0
  212. package/dist/locales/slices/virtualList.en.js +1 -0
  213. package/dist/locales/slices/virtualList.ru.js +1 -0
  214. package/dist/styles/calendarChrome.module.css.js +1 -1
  215. package/dist/styles/status.module.css.js +1 -1
  216. package/dist/styles/visuallyHidden.module.css.js +1 -0
  217. package/dist/utils/date.js +1 -1
  218. package/dist/utils/fieldMessage.js +1 -0
  219. package/dist/utils/visitElementTree.js +1 -1
  220. package/docs/COMPONENTS.md +12 -10
  221. package/docs/LAYOUT.md +6 -6
  222. package/docs/THEMING.md +5 -12
  223. package/package.json +1 -1
  224. package/types/entries/icons.d.ts +3 -1
  225. package/types/entries/locales.d.ts +1 -6
  226. package/types/entries/utils.d.ts +2 -1
  227. package/types/index.d.ts +527 -620
  228. package/dist/base/ChevronButton/ChevronButton.js +0 -1
  229. package/dist/base/DialogBase/DialogBase.js +0 -1
  230. package/dist/base/DialogBase/DialogBase.module.css.js +0 -1
  231. package/dist/components/CustomSelect/CustomSelect.Filter.js +0 -1
  232. package/dist/components/CustomSelect/CustomSelect.List.js +0 -1
  233. package/dist/components/CustomSelect/CustomSelect.Shell.js +0 -1
  234. package/dist/components/CustomSelect/CustomSelect.Shell.module.css.js +0 -1
  235. package/dist/components/CustomSelect/CustomSelect.context.js +0 -1
  236. package/dist/components/CustomSelect/CustomSelect.js +0 -1
  237. package/dist/components/CustomSelect/CustomSelect.module.css.js +0 -1
  238. package/dist/components/CustomSelect/useCustomSelectComboboxKeyboard.js +0 -1
  239. package/dist/components/FocusTrap/FocusTrap.js +0 -1
  240. package/dist/components/Overflow/OverflowActionsMode.js +0 -1
  241. package/dist/components/Overflow/OverflowMeasure.js +0 -1
  242. package/dist/components/Overflow/OverflowMore.js +0 -1
  243. package/dist/components/Overlay/Overlay.Dismiss.js +0 -1
  244. package/dist/components/Overlay/Overlay.Positioner.js +0 -1
  245. package/dist/components/Overlay/Overlay.types.js +0 -1
  246. package/dist/components/SortableList/SortableList.types.js +0 -1
  247. package/dist/components/SortableList/useSortableListDnD.js +0 -1
  248. package/dist/components/TimeField/TimeField.module.css.js +0 -1
  249. package/dist/hooks/useDigitMask.js +0 -1
  250. package/dist/styles/srOnly.module.css.js +0 -1
package/CHANGELOG.md CHANGED
@@ -8,6 +8,22 @@
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ### Добавлено
12
+ - **`IconChevronUpDown`** — шеврон вверх и шеврон вниз в одной иконке.
13
+ - Storybook **About** — страница **Компоненты**: список с иконкой, кратким описанием и размером собственного кода, плюс сумма по всем компонентам.
14
+
15
+ ### Изменено
16
+ - **`PopupSwitch`** — на кнопке и на выбранном пункте **`IconChevronUpDown`**.
17
+ - Storybook **About** — страница бренда: цветовые токены, шкала шрифта, отступы, радиусы и размеры контролов. Светлая и тёмная тема — из тулбара.
18
+
19
+ ## [0.0.6] — 2026-09-27
20
+
21
+ **`DialogLayout`**, **`PopupSwitch`**, **`LiveRegion`**. **`isExistingLocalDate`** в `altum/utils`. Диалоги (**`Modal`**, **`Sheet`**, **`ImageCrop`**, **`CommandPalette`**) собраны из **`DialogLayout`**, **`Box`** и **`Layout`**. **`Select`** сам держит список, **`SuggestField`** — комбобокс на нём. **`Dropdown`** на **`Popover`**. У **`Layout`** отступы `padding` и `gap` (`sm` / `md` / `lg`): padding на секциях, промежуток у липких шапки и футера остаётся при прокрутке.
22
+
23
+ **Несовместимо.** Снят **`CustomSelect`**: выбор — **`Select`**, подсказки — **`SuggestField`**. У **`Overlay`** нет `popover` / `dropdown`. У **`Popover`** нет `wrap`, корня и стрелки; класс панели — `className`, ширина — `widthMode`. У **`Tooltip`** сторона — `side`, стрелки нет. У **`Chip`** роль — `mode`. **`Layout`** больше не отдаёт `Inline`, `Split`, `ControlRow` и `Item`. У **`Modal`** крестик и имя на корне (`showClose`, `aria-label`); заголовок — **`Title`**, кнопки — **`ControlRow`** в футере. У **`Sheet`** заголовок — **`Title`**, крестик — `showClose` на **`Sheet.Header`**. **`Sidebar.Collapse`** снят. Удалены **`DialogBase`** и неиспользуемые токены темы. `useLocale()` без провайдера возвращает ключ.
24
+
25
+ **Исправлено.** Стрелки **`ImageGallery`** листают кадр только при фокусе в галерее. Бегунок **`SegmentedControl`** при `itemFit="content"` не рвёт анимацию. Ховер кнопок внутри **`TextField`** читается на фоне поля. **`Overflow`** вызывает `onSelect` один раз. Автозакрытие **`Notification`** срабатывает и при `prefers-reduced-motion`.
26
+
11
27
  ## [0.0.5] — 2026-09-25
12
28
 
13
29
  **`useForm`**: проверка через `validate` (`fieldRules`, `compose`, `required`, `pattern`, `checkedValue`), плюс `setValue`, `reset`, `handleSubmit`, `isDirty` и **`FormProvider`**. Публичные **`altum/locales`** со склонением и утилиты дат, поясов, длительности и plural.
@@ -32,6 +48,8 @@
32
48
  - Storybook: состояния и play по полям, чартам, календарям и оверлеям.
33
49
 
34
50
  ### Исправлено
51
+ - **`ActionList`** — Enter выбирает подсвеченный пункт в порядке групп, а не в сыром порядке `items`.
52
+ - **`VirtualList`** — видимые строки снова следуют за `renderItem` при рендере родителя (подсветка в виртуализированном **`Listbox`**).
35
53
  - **DatePicker** / **TimePicker** / **DateRangePicker** — панель от края поля; **TextField** — кликабельная зона на всю высоту.
36
54
  - **DonutChart** — без нативного tooltip; **Container** не вылезает за колонку; clear/affix в **FieldBase** по центру.
37
55
 
@@ -1 +1 @@
1
- "use client";import{jsx as f}from"react/jsx-runtime";import{useState as a,useCallback as m,useEffect as u}from"react";import{Dropdown as g}from"../../components/Dropdown/Dropdown.js";import{renderChildren as b}from"../../utils/renderChildren.js";import{getFormControlState as C}from"../../utils/formControl.js";import c from"./FieldPopup.module.css.js";const h=c.field;function P({disabled:t=!1,readOnly:o=!1,digitsFromValue:e}){const[i,n]=a(!1),[s,d]=a(e??""),{isInteractive:r}=C({disabled:t,readOnly:o}),l=m(()=>n(!1),[]),p=m(()=>{r&&n(!0)},[r]);return u(()=>{e!==void 0&&d(e)},[e]),{open:i,setOpen:n,close:l,openPopup:p,isInteractive:r,digits:s,setDigits:d}}function O(t){return o=>{if(!o){t(null);return}const e=o.closest("[data-field-chrome]");t(e instanceof HTMLElement?e:o)}}const v=({open:t,onOpen:o,onClose:e,mobileChrome:i,trigger:n,contentPadding:s,align:d,children:r})=>f(g,{open:t,onOpenChange:l=>{l?o():e()},triggerMode:"combobox",popupRole:"dialog",boxProps:s?{padding:s}:void 0,widthMode:"content",align:d,panelScroll:"content",className:c.field,mobileTitle:i?.mobileTitle,mobileLeftControls:i?.mobileLeftControls,mobileRightControls:i?.mobileRightControls,renderTrigger:(l,p)=>b({children:n,props:l,contentRef:O(p)}),children:r});export{v as FieldPopupDropdown,h as fieldPopupClassName,P as useMaskedPopupField};
1
+ "use client";import{useState as n,useCallback as r,useEffect as c}from"react";import{getFormControlState as p}from"../../utils/formControl.js";import m from"./FieldPopup.module.css.js";const b=m.field;function g({disabled:s=!1,readOnly:t=!1,digitsFromValue:e}){const[a,i]=n(!1),[d,l]=n(e??""),{isInteractive:o}=p({disabled:s,readOnly:t}),f=r(()=>i(!1),[]),u=r(()=>{o&&i(!0)},[o]);return c(()=>{e!==void 0&&l(e)},[e]),{open:a,setOpen:i,close:f,openPopup:u,isInteractive:o,digits:d,setDigits:l}}function C(s){return t=>{if(!t){s(null);return}const e=t.closest("[data-field-chrome]");s(e instanceof HTMLElement?e:t)}}export{C as bindFieldChromeRef,b as fieldPopupClassName,g as useMaskedPopupField};
@@ -1 +1 @@
1
- "use client";import{jsxs as p,jsx as e}from"react/jsx-runtime";import{cn as u}from"../../utils/cn.js";import v from"../../styles/unstyledControl.module.css.js";import r from"../../styles/calendarChrome.module.css.js";import{ChevronButton as l}from"../ChevronButton/ChevronButton.js";function f({title:n,titleId:o,showTitle:i=!0,showNav:t=!0,onPrev:s,onNext:c,prevLabel:m,nextLabel:d}){if(!i&&!t)return null;const a=u(v.control,r.navBtn);return p("div",{className:r.header,children:[t&&e(l,{direction:"prev",className:a,"aria-label":m,onClick:s}),i?e("div",{id:o,className:r.title,children:n}):e("span",{className:r.titleSpacer}),t&&e(l,{direction:"next",className:a,"aria-label":d,onClick:c})]})}export{f as PeriodHeader};
1
+ "use client";import{jsxs as d,jsx as e}from"react/jsx-runtime";import{ButtonIcon as o}from"../../components/ButtonIcon/ButtonIcon.js";import{IconChevronLeft as h}from"../../icons/icons/IconChevronLeft.js";import{IconChevronRight as p}from"../../icons/icons/IconChevronRight.js";import t from"../../styles/calendarChrome.module.css.js";function u({title:a,titleId:n,showTitle:r=!0,showNav:i=!0,onPrev:l,onNext:s,prevLabel:c,nextLabel:m}){return!r&&!i?null:d("div",{className:t.header,children:[i&&e(o,{variant:"ghost",size:"sm",icon:e(h,{size:16,"aria-hidden":!0}),"aria-label":c,onClick:l}),r?e("div",{id:n,className:t.title,children:a}):e("span",{className:t.titleSpacer}),i&&e(o,{variant:"ghost",size:"sm",icon:e(p,{size:16,"aria-hidden":!0}),"aria-label":m,onClick:s})]})}export{u as PeriodHeader};
@@ -1 +1 @@
1
- "use client";import{jsxs as B,jsx as n}from"react/jsx-runtime";import{forwardRef as I,useId as w}from"react";import{cn as a}from"../../utils/cn.js";import{preventWhen as t}from"../../utils/preventWhen.js";import l from"./ToggleControlBase.module.css.js";const r=I(function({id:d,size:m="md",align:c="center",boxClassName:p,labelClassName:b,inputClassName:f,labelSide:C="end",readOnly:u=!1,disabled:o,label:e,labelHidden:N=!1,boxContent:g,className:h,style:x,onChange:y,onClick:T,...j},k){const v=w(),i=d||v,s=!!u&&!o,z=!N&&e!=null&&e!==!1&&e!=="";return B("label",{className:a(l.root,h),style:x,htmlFor:i,"data-size":m,"data-align":c,"data-label-side":C,children:[n("input",{ref:k,id:i,className:a(l.input,f),disabled:o,"aria-readonly":s||void 0,...j,onChange:t(s,y),onClick:t(s,T)}),n("span",{className:a(l.box,p),children:g}),z?n("span",{className:a(l.labelText,b),children:e}):null]})});r.displayName="ToggleControlBase";export{r as ToggleControlBase};
1
+ "use client";import{jsxs as z,jsx as n}from"react/jsx-runtime";import{forwardRef as B,useId as F}from"react";import{cn as l}from"../../utils/cn.js";import{preventWhen as r}from"../../utils/preventWhen.js";import{getFormControlState as I}from"../../utils/formControl.js";import a from"./ToggleControlBase.module.css.js";const i=B(function({id:d,size:m="md",align:c="center",boxClassName:p,labelClassName:b,inputClassName:f,labelSide:C="end",readOnly:g=!1,disabled:o,label:e,labelHidden:u=!1,boxContent:N,className:h,style:x,onChange:y,onClick:O,...T},j){const k=F(),t=d||k,{isReadOnly:s}=I({disabled:o,readOnly:g}),v=!u&&e!=null&&e!==!1&&e!=="";return z("label",{className:l(a.root,h),style:x,htmlFor:t,"data-size":m,"data-align":c,"data-label-side":C,children:[n("input",{ref:j,id:t,className:l(a.input,f),disabled:o,"aria-readonly":s||void 0,...T,onChange:r(s,y),onClick:r(s,O)}),n("span",{className:l(a.box,p),children:N}),v?n("span",{className:l(a.labelText,b),children:e}):null]})});i.displayName="ToggleControlBase";export{i as ToggleControlBase};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".ULs8K{align-items:center;color:var(--altum-color-control-text-color);cursor:pointer;display:inline-flex;font-family:var(--altum-g-font-family-ui);font-size:var(--altum-g-font-size-base);gap:var(--altum-toggle-label-gap);position:relative;-webkit-user-select:none;user-select:none}.ULs8K[data-align=start]{align-items:flex-start}.ULs8K[data-label-side=start]{flex-direction:row-reverse}.ULs8K[data-size=sm]{--altum-toggle-box-size:var(--altum-toggle-box-size-sm);font-size:var(--altum-g-font-size-sm);gap:var(--altum-g-space-2)}.ULs8K[data-size=lg]{--altum-toggle-box-size:var(--altum-toggle-box-size-lg);font-size:var(--altum-g-font-size-lg);gap:var(--altum-g-space-3)}.ULs8K:has(._0JKPE[aria-readonly=true]){cursor:default}.ULs8K:has(._0JKPE[aria-readonly=true]) ._0JKPE{pointer-events:none}.ULs8K:has(._0JKPE:disabled){cursor:not-allowed;opacity:var(--altum-opacity-disabled)}.ULs8K .dl3-U{flex-shrink:0}.ULs8K .YQos0{min-width:0}.ULs8K ._0JKPE{height:0;opacity:0;position:absolute;width:0}";const e={root:"ULs8K",input:"_0JKPE",box:"dl3-U",labelText:"YQos0"};a(t);export{e as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var a=".ULs8K{align-items:center;color:var(--altum-color-control-text-color);cursor:pointer;display:inline-flex;font-family:var(--altum-g-font-family-ui);font-size:var(--altum-g-font-size-base);gap:var(--altum-toggle-label-gap);position:relative;-webkit-user-select:none;user-select:none}.ULs8K[data-align=start]{align-items:flex-start}.ULs8K[data-label-side=start]{flex-direction:row-reverse}.ULs8K[data-size=sm]{--altum-toggle-box-size:var(--altum-toggle-box-size-sm);font-size:var(--altum-g-font-size-sm);gap:var(--altum-g-space-2)}.ULs8K[data-size=lg]{--altum-toggle-box-size:var(--altum-toggle-box-size-lg);font-size:var(--altum-g-font-size-lg);gap:var(--altum-g-space-3)}.ULs8K:has(._0JKPE[aria-readonly=true]){cursor:default}.ULs8K:has(._0JKPE[aria-readonly=true]) ._0JKPE{pointer-events:none}.ULs8K:has(._0JKPE:disabled){cursor:not-allowed;opacity:var(--altum-opacity-disabled)}.ULs8K .dl3-U{flex-shrink:0}.ULs8K .YQos0{min-width:0}.ULs8K ._0JKPE{height:0;opacity:0;position:absolute;width:0}";const e={root:"ULs8K",input:"_0JKPE",box:"dl3-U",labelText:"YQos0"};t(a);export{e as default};
@@ -1 +1 @@
1
- "use client";import{jsx as t,jsxs as N}from"react/jsx-runtime";import{forwardRef as C,useId as $,createContext as D}from"react";import w from"../../styles/unstyledControl.module.css.js";import e from"./Accordion.module.css.js";import{handleVerticalTriggerKeyDown as O}from"../../utils/keyboard.js";import{useControlledStateWithCallback as j}from"../../hooks/useControlledState.js";import{useRequiredContext as E}from"../../hooks/useRequiredContext.js";import{cn as b}from"../../utils/cn.js";import{IconChevronDown as T}from"../../icons/icons/IconChevronDown.js";import{Collapse as k}from"../Collapse/Collapse.js";const v=D(null),y=C(function({children:o,multiple:r=!1,variant:s="flush",defaultOpenIds:u,openIds:m,onOpenChange:p,className:f,...g},h){const l=$(),[n,c]=j(m,u??[],p);return t(v.Provider,{value:{openIds:n,baseId:l,toggle:i=>{const d=n.includes(i);c(d?n.filter(a=>a!==i):r?[...n,i]:[i])}},children:t("div",{ref:h,className:b(e.accordion,e[s],f),...g,children:o})})}),x=C(function({value:o,disabled:r=!1,className:s,title:u,headingLevel:m="h3",children:p,...f},g){const{openIds:h,baseId:l,toggle:n}=E(v,"Accordion.Item \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 Accordion"),c=h.includes(o)&&!r,i=`${l}-trigger-${o}`,d=`${l}-panel-${o}`;return N("div",{ref:g,className:b(e.item,r?e.disabled:"",s),...f,children:[t(m,{className:e.heading,children:N("button",{type:"button",id:i,className:b(w.control,e.trigger),disabled:r,"aria-expanded":c,"aria-controls":d,onClick:()=>{r||n(o)},onKeyDown:a=>{const A=a.currentTarget.closest(`.${e.accordion}`),I=Array.from(A?.querySelectorAll(`:scope > .${e.item} .${e.trigger}:not(:disabled)`)??[]);O(a,I,I.indexOf(a.currentTarget),()=>{r||n(o)})},children:[u,t(T,{className:e.icon,size:"1em","aria-hidden":!0})]})}),t(k,{open:c,children:t("div",{className:e.panelInner,id:d,role:"region","aria-labelledby":i,children:p})})]})});y.displayName="Accordion",x.displayName="Accordion.Item";const q=Object.assign(y,{Item:x});export{q as Accordion};
1
+ "use client";import{jsx as t,jsxs as N}from"react/jsx-runtime";import{forwardRef as C,useId as $,createContext as w}from"react";import D from"../../styles/unstyledControl.module.css.js";import e from"./Accordion.module.css.js";import{handleVerticalTriggerKeyDown as O}from"../../utils/keyboard.js";import{useControlledStateWithCallback as j}from"../../hooks/useControlledState.js";import{useRequiredContext as E}from"../../hooks/useRequiredContext.js";import{cn as b}from"../../utils/cn.js";import{IconChevronDown as T}from"../../icons/icons/IconChevronDown.js";import{Collapse as k}from"../Collapse/Collapse.js";const v=w(null),y=C(function({children:o,multiple:r=!1,variant:s="flush",defaultOpenIds:u,openIds:m,onOpenChange:p,className:f,...g},h){const l=$(),[n,c]=j(m,u??[],p);return t(v.Provider,{value:{openIds:n,baseId:l,toggle:i=>{const d=n.includes(i);c(d?n.filter(a=>a!==i):r?[...n,i]:[i])}},children:t("div",{ref:h,className:b(e.accordion,e[s],f),...g,children:o})})}),x=C(function({value:o,disabled:r=!1,className:s,title:u,headingLevel:m="h3",children:p,...f},g){const{openIds:h,baseId:l,toggle:n}=E(v,"Accordion.Item \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 Accordion"),c=h.includes(o)&&!r,i=`${l}-trigger-${o}`,d=`${l}-panel-${o}`;return N("div",{ref:g,className:b(e.item,r?e.disabled:"",s),...f,children:[t(m,{className:e.heading,children:N("button",{type:"button",id:i,className:b(D.control,e.trigger),disabled:r,"aria-expanded":c,"aria-controls":d,onClick:()=>{r||n(o)},onKeyDown:a=>{const A=a.currentTarget.closest(`.${e.accordion}`),I=Array.from(A?.querySelectorAll(`:scope > .${e.item} .${e.trigger}:not(:disabled)`)??[]);O(a,I,I.indexOf(a.currentTarget),()=>{r||n(o)})},children:[u,t(T,{className:e.icon,size:"1em","aria-hidden":!0})]})}),t(k,{open:c,children:t("div",{className:e.panelInner,id:d,role:"region","aria-labelledby":i,children:p})})]})});y.displayName="Accordion",x.displayName="Accordion.Item";const q=Object.assign(y,{Item:x});export{q as Accordion};
@@ -1 +1 @@
1
- "use client";import{jsxs as u,jsx as r,Fragment as T}from"react/jsx-runtime";import{forwardRef as q,useId as K,useRef as M,useState as V,useMemo as p,useImperativeHandle as z}from"react";import{Listbox as G}from"../Listbox/Listbox.js";import{handleListHighlightKeyDown as Q}from"../../utils/keyboard.js";import{filterListboxOptions as W,getListboxOptionDomId as _}from"../../utils/listboxOptions.js";import{cn as $}from"../../utils/cn.js";import{useControlledStateWithCallback as E}from"../../hooks/useControlledState.js";import{useLocale as J}from"../../locales/localeContext.js";import{TextField as U,FieldBaseIcon as X}from"../TextField/TextField.js";import{IconSearch as Y}from"../../icons/icons/IconSearch.js";import o from"./ActionList.module.css.js";function Z(t){return[t.textValue??(typeof t.label=="string"||typeof t.label=="number"?String(t.label):t.id),...t.keywords??[],typeof t.description=="string"?t.description:""].join(" ")}function ee(t){return u(T,{children:[t.icon&&r("span",{className:o.icon,"aria-hidden":!0,children:t.icon}),u("span",{className:o.itemBody,children:[r("span",{className:o.itemLabel,children:t.label}),t.description!=null&&r("span",{className:o.itemDescription,children:t.description})]}),t.shortcut!=null&&r("span",{className:o.shortcut,children:t.shortcut})]})}const L=q(function({items:t,groups:h,className:I="",id:y,"aria-label":N,onAction:P,onHighlightChange:C,filterable:m=!1,filterPlaceholder:D,query:f,onQueryChange:F,emptyText:H,...S},w){const{t:c}=J(),A=K(),l=y??A,n=M(null),[d,k]=E(f,"",F),[a,O]=V(-1),b=p(()=>t.map(e=>({value:e.id,label:ee(e),textValue:Z(e),disabled:e.disabled,groupId:e.groupId,buttonProps:e.buttonProps})),[t]),s=p(()=>W({query:d,options:b}),[b,d]),j=p(()=>{if(!h?.length)return;const e=new Set(s.map(i=>i.groupId).filter(i=>!!i));return h.filter(i=>e.has(i.id))},[s,h]),x=e=>{const i=t.find(g=>g.id===e);if(!(!i||i.disabled))return i.onSelect?.(),P?.(i),i},B=e=>{O(e),C?.(e)};z(w,()=>{const e=()=>n.current;return{highlightNext:()=>e()?.highlightNext(),highlightPrev:()=>e()?.highlightPrev(),highlightFirst:()=>e()?.highlightFirst(),highlightLast:()=>e()?.highlightLast(),selectHighlighted:()=>{const i=e()?.selectHighlighted();return i?t.find(g=>g.id===i):void 0},getHighlightedIndex:()=>e()?.getHighlightedIndex()??-1,getActiveDescendantId:()=>e()?.getActiveDescendantId(),getListId:()=>l}},[t,l]);const v=D??c("actionList.filterPlaceholder"),R={onNext:()=>n.current?.highlightNext(),onPrev:()=>n.current?.highlightPrev(),onFirst:()=>n.current?.highlightFirst(),onLast:()=>n.current?.highlightLast(),onSelect:()=>{const e=s[a]?.value;e&&x(e)}};return u("div",{className:$(o.root,I),...S,children:[m&&r("div",{className:o.filter,children:r(U,{type:"search",size:"sm",width:"full",keepPlaceholder:!0,"aria-label":v,placeholder:v,value:d,autoComplete:"off",prefix:r(X,{children:r(Y,{})}),role:"combobox","aria-expanded":!0,"aria-controls":l,"aria-autocomplete":"list","aria-activedescendant":a>=0?_(l,a):void 0,autoFocus:!0,onChange:e=>k(e.target.value),onKeyDown:e=>Q(e,R)})}),r(G,{ref:n,id:l,className:o.list,options:s,groups:j,navigation:"highlight",highlightedIndex:a,onHighlightChange:B,preventOptionMouseDown:m||f!==void 0,multiline:!0,noOptionsText:H??c("actionList.empty"),"aria-label":N??c("actionList.ariaLabel"),onSelect:x})]})});L.displayName="ActionList";export{L as ActionList};
1
+ "use client";import{jsxs as d,jsx as r,Fragment as A}from"react/jsx-runtime";import{forwardRef as j,useRef as k,useState as O,useMemo as q,useImperativeHandle as K}from"react";import{Listbox as M}from"../Listbox/Listbox.js";import{handleListHighlightKeyDown as R}from"../../utils/keyboard.js";import{filterListboxOptions as T,getListboxOptionDomId as V}from"../../utils/listboxOptions.js";import{cn as z}from"../../utils/cn.js";import{useControlledStateWithCallback as B}from"../../hooks/useControlledState.js";import{useFallbackId as E}from"../../hooks/useFallbackId.js";import{useLocale as J}from"../../locales/localeContext.js";import{SearchField as Q}from"../SearchField/SearchField.js";import o from"./ActionList.module.css.js";import{ruSlice as W}from"../../locales/slices/actionList.ru.js";const G={actionList:W};function U(t){return[t.textValue??(typeof t.label=="string"||typeof t.label=="number"?String(t.label):t.id),...t.keywords??[],typeof t.description=="string"?t.description:""].join(" ")}function X(t){return d(A,{children:[t.icon&&r("span",{className:o.icon,"aria-hidden":!0,children:t.icon}),d("span",{className:o.itemBody,children:[r("span",{className:o.itemLabel,children:t.label}),t.description!=null&&r("span",{className:o.itemDescription,children:t.description})]}),t.shortcut!=null&&r("span",{className:o.shortcut,children:t.shortcut})]})}const u=j(function({items:t,groups:f,className:b,id:x,"aria-label":L,onAction:v,onHighlightChange:N,filterable:g=!1,filterPlaceholder:y,query:m,onQueryChange:I,emptyText:F,...H},P){const{t:a}=J(G),l=E(x),n=k(null),[s,S]=B(m,"",I),[h,C]=O(-1),D=q(()=>T({query:s,options:t.map(e=>({value:e.id,label:X(e),textValue:U(e),disabled:e.disabled,groupId:e.groupId,buttonProps:e.buttonProps}))}),[t,s]),w=e=>{const i=t.find(c=>c.id===e);i&&(i.onSelect?.(),v?.(i))};K(P,()=>{const e=()=>n.current;return{highlightNext:()=>e()?.highlightNext(),highlightPrev:()=>e()?.highlightPrev(),highlightFirst:()=>e()?.highlightFirst(),highlightLast:()=>e()?.highlightLast(),selectHighlighted:()=>{const i=e()?.selectHighlighted();return i?t.find(c=>c.id===i):void 0},getHighlightedIndex:()=>e()?.getHighlightedIndex()??-1,getActiveDescendantId:()=>e()?.getActiveDescendantId(),getListId:()=>l}},[t,l]);const p=y??a("actionList.filterPlaceholder");return d("div",{className:z(o.root,b),...H,children:[g&&r(Q,{wrapperClassName:o.filter,size:"sm",keepPlaceholder:!0,"aria-label":p,placeholder:p,value:s,autoComplete:"off",role:"combobox","aria-expanded":!0,"aria-controls":l,"aria-autocomplete":"list","aria-activedescendant":h>=0?V(l,h):void 0,autoFocus:!0,onChange:e=>S(e.target.value),onKeyDown:e=>{const i=n.current;R(e,{onNext:()=>i?.highlightNext(),onPrev:()=>i?.highlightPrev(),onFirst:()=>i?.highlightFirst(),onLast:()=>i?.highlightLast(),onSelect:()=>i?.selectHighlighted()})}}),r(M,{ref:n,id:l,className:o.list,options:D,groups:f,navigation:"highlight",highlightedIndex:h,onHighlightChange:e=>{C(e),N?.(e)},preventOptionMouseDown:g||m!==void 0,multiline:!0,noOptionsText:F??a("actionList.empty"),"aria-label":L??a("actionList.ariaLabel"),onSelect:w})]})});u.displayName="ActionList";export{u as ActionList};
@@ -1 +1 @@
1
- "use client";import{injectCss as t}from"../../utils/injectCss.js";var o=".TM61E{background-color:var(--altum-color-dropdown-bg);color:var(--altum-color-input-text);display:flex;flex-direction:column;max-height:100%;min-height:0}.TM61E ._2qgo-{border-bottom:1px solid var(--altum-color-dropdown-border);flex-shrink:0;padding:var(--altum-g-space-2) var(--altum-g-space-3)}.TM61E ._2MsDw{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--altum-g-space-2)}.TM61E .-sQQx{align-items:center;color:var(--altum-color-muted);display:inline-flex;flex-shrink:0;height:var(--altum-toggle-box-size);justify-content:center;width:var(--altum-toggle-box-size)}.TM61E ._5z1Uj{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--altum-g-space-1);min-width:0}.TM61E ._6Z9Na{font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-medium);line-height:1.3}.TM61E ._0UGgw{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-2xs);line-height:var(--altum-g-line-height-2xs)}.TM61E .HT3A4{color:var(--altum-color-muted);flex-shrink:0;font-size:var(--altum-g-font-size-xs);font-variant-numeric:tabular-nums;margin-left:auto}";const e={root:"TM61E",filter:"_2qgo-",list:"_2MsDw",icon:"-sQQx",itemBody:"_5z1Uj",itemLabel:"_6Z9Na",itemDescription:"_0UGgw",shortcut:"HT3A4"};t(o);export{e as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var e=".TM61E{background-color:var(--altum-color-dropdown-bg);display:flex;flex-direction:column;max-height:100%;min-height:0}.TM61E ._2qgo-{border-bottom:1px solid var(--altum-color-dropdown-border);flex-shrink:0;padding:var(--altum-g-space-2) var(--altum-g-space-3)}.TM61E ._2MsDw{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--altum-g-space-2)}.TM61E .-sQQx{align-items:center;color:var(--altum-color-muted);display:inline-flex;flex-shrink:0;height:var(--altum-toggle-box-size);justify-content:center;width:var(--altum-toggle-box-size)}.TM61E ._5z1Uj{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--altum-g-space-1);min-width:0}.TM61E ._6Z9Na{font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-medium);line-height:1.3}.TM61E ._0UGgw{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-2xs);line-height:var(--altum-g-line-height-2xs)}.TM61E .HT3A4{color:var(--altum-color-muted);flex-shrink:0;font-size:var(--altum-g-font-size-xs);font-variant-numeric:tabular-nums}";const o={root:"TM61E",filter:"_2qgo-",list:"_2MsDw",icon:"-sQQx",itemBody:"_5z1Uj",itemLabel:"_6Z9Na",itemDescription:"_0UGgw",shortcut:"HT3A4"};t(e);export{o as default};
@@ -1 +1 @@
1
- "use client";import{jsx as l}from"react/jsx-runtime";import{forwardRef as D,useState as c,useCallback as U,useMemo as b}from"react";import{useMediaQuery as y,MOBILE_MEDIA_QUERY as L}from"../../hooks/useMediaQuery.js";import{useLongPress as N}from"../../hooks/useLongPress.js";import{cn as I}from"../../utils/cn.js";import{composeEventHandlers as o}from"../../utils/composeEvents.js";import{ActionSheetProvider as Q}from"./actionSheetContext.js";import m from"./ActionSheetTrigger.module.css.js";const d=D(function({children:f,showOverflowTrigger:g=!1,longPressMs:h=500,moveThreshold:u=8,disabled:n=!1,className:p,onPointerDown:P,onPointerUp:v,onPointerCancel:w,onContextMenu:C,onClick:M,onAnimationEnd:T,...E},x){const A=y(`(hover: none) and ${L}`),[r,t]=c(!1),[O,i]=c(!1),s=g||!A,S=U(()=>{n||(i(!0),t(!0))},[n]),e=N(S,{delay:h,disabled:n,moveThreshold:u}),k=b(()=>({overflowOpen:r,setOverflowOpen:t,shouldShowOverflowTrigger:s,cancelLongPress:e.cancel}),[r,s,e.cancel]);return l(Q,{value:k,children:l("div",{ref:x,...E,className:I(m.host,O&&m.hostTriggered,p),onPointerDown:o(P,e.onPointerDown),onPointerUp:o(v,e.onPointerUp),onPointerCancel:o(w,e.onPointerCancel),onContextMenu:o(C,e.onContextMenu),onClick:o(M,e.onClick),onAnimationEnd:o(T,a=>{a.target===a.currentTarget&&i(!1)}),"data-action-sheet-trigger":"",children:f})})});d.displayName="ActionSheetTrigger";export{d as ActionSheetTrigger};
1
+ "use client";import{jsx as E}from"react/jsx-runtime";import{forwardRef as D,useState as M,useEffect as b,useMemo as k}from"react";import{useMediaQuery as x,MOBILE_MEDIA_QUERY as A}from"../../hooks/useMediaQuery.js";import{cn as O}from"../../utils/cn.js";import{composeEventHandlers as w}from"../../utils/composeEvents.js";import{ActionSheetProvider as U}from"./actionSheetContext.js";import P from"./ActionSheetTrigger.module.css.js";const S=`(hover: none) and ${A}`,I=400;function Y(){const r={disabled:!1,delay:500,move:8,fire:()=>{}};let d=0,h=0,g=0,m=!1,u=!1,p=!1,a=null,v=null;const s=()=>{window.clearTimeout(d),d=0,m=!1,a?.(),a=null},f=()=>{v?.(),v=null},T=()=>{f(),p=!0;const o=n=>{n.preventDefault(),n.stopPropagation(),n.stopImmediatePropagation(),p=!1,f()};window.addEventListener("click",o,!0);const i=window.setTimeout(()=>{p=!1,f()},I);v=()=>{window.removeEventListener("click",o,!0),window.clearTimeout(i)}},c=(o,i,n)=>{window.addEventListener(o,i,n);const l=a;a=()=>{l?.(),window.removeEventListener(o,i,n)}};return{opts:r,stop:s,onPointerDown:o=>{if(r.disabled||o.button>0)return;s(),u=!1,h=o.clientX,g=o.clientY,m=!0;const i=o.currentTarget;d=window.setTimeout(()=>{u=!0,d=0,m=!1,a?.(),a=null,T(),!r.disabled&&(i.classList.remove(P.pulse),i.classList.add(P.pulse),r.fire(!0))},r.delay);const n=(e,t)=>{!m||d===0||Math.hypot(e-h,t-g)>r.move&&s()},l=()=>s();c("pointermove",e=>{const t=e;n(t.clientX,t.clientY)}),c("pointerup",l),c("pointercancel",l),c("touchmove",e=>{const t=e.touches[0];t&&n(t.clientX,t.clientY)},{passive:!0}),c("touchend",l),c("touchcancel",l)},onPointerUp:s,onPointerCancel:s,onContextMenu:o=>{(u||r.disabled)&&o.preventDefault()},onClick:o=>{!p&&!u||(o.preventDefault(),o.stopPropagation(),p=!1,u=!1,f())},destroy:()=>{s(),f()}}}const L=D(function({children:r,showOverflowTrigger:d=!1,longPressMs:h=500,moveThreshold:g=8,disabled:m=!1,className:u,onPointerDown:p,onPointerUp:a,onPointerCancel:v,onContextMenu:s,onClick:f,onAnimationEnd:T,...c},o){const i=x(S),[n,l]=M(!1),[e]=M(Y);e.opts.disabled=m,e.opts.delay=h,e.opts.move=g,e.opts.fire=l;const t=d||!i;b(()=>()=>e.destroy(),[e]);const y=k(()=>({overflowOpen:n,setOverflowOpen:l,shouldShowOverflowTrigger:t,cancelLongPress:e.stop}),[n,t,e.stop]);return E(U,{value:y,children:E("div",{ref:o,...c,className:O(P.host,u),onPointerDown:w(p,e.onPointerDown),onPointerUp:w(a,e.onPointerUp),onPointerCancel:w(v,e.onPointerCancel),onContextMenu:w(s,e.onContextMenu),onClick:w(f,e.onClick),onAnimationEnd:w(T,C=>{C.target===C.currentTarget&&C.currentTarget.classList.remove(P.pulse)}),"data-action-sheet-trigger":"",children:r})})});L.displayName="ActionSheetTrigger";export{L as ActionSheetTrigger};
@@ -1 +1 @@
1
- "use client";import{injectCss as e}from"../../utils/injectCss.js";var t=".B707S{-webkit-touch-callout:none;display:block;min-width:0;transform-origin:center center;-webkit-user-select:none;user-select:none;width:100%}.n3bW3{animation:qUA-M .32s cubic-bezier(.22,1,.36,1)}@keyframes qUA-M{0%{transform:scale(1)}35%{transform:scale(.97)}70%{transform:scale(1.015)}to{transform:scale(1)}}@media (hover:hover) and (pointer:fine){.B707S{-webkit-user-select:auto;user-select:auto}}@media (prefers-reduced-motion:reduce){.n3bW3{animation:none}}";const r={host:"B707S",hostTriggered:"n3bW3"};e(t);export{r as default};
1
+ "use client";import{injectCss as e}from"../../utils/injectCss.js";var n=".B707S{-webkit-touch-callout:none;min-width:0;width:100%}@media (hover:none),(pointer:coarse){.B707S{-webkit-user-select:none;user-select:none}}.NJ4Ii{animation:ATj1M .32s cubic-bezier(.22,1,.36,1)}@keyframes ATj1M{35%{transform:scale(.97)}70%{transform:scale(1.015)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.NJ4Ii{animation:none}}";const o={host:"B707S",pulse:"NJ4Ii"};e(n);export{o as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as d,jsx as o}from"react/jsx-runtime";import{forwardRef as b}from"react";import{IconCheckmark as w}from"../../icons/icons/IconCheckmark.js";import{IconCross as y}from"../../icons/icons/IconCross.js";import{IconInformation as g}from"../../icons/icons/IconInformation.js";import{IconWarning as x}from"../../icons/icons/IconWarning.js";import{IconWrong as L}from"../../icons/icons/IconWrong.js";import{ButtonIcon as j}from"../ButtonIcon/ButtonIcon.js";import e from"../../styles/MediaItem.module.css.js";import A from"../../styles/overlayClose.module.css.js";import r from"./Alert.module.css.js";import f from"../../styles/status.module.css.js";import{cn as i}from"../../utils/cn.js";import{useLocale as W}from"../../locales/localeContext.js";const q={info:o(g,{size:16}),success:o(w,{size:16}),warning:o(x,{size:16}),error:o(L,{size:16})},p=b(function({variant:n="info",size:c="md",layout:u="block",className:h,role:v,title:l,icon:s,actions:a,onClose:m,closeLabel:N,children:t,...I},z){const{t:k}=W(),C=N??k("common.close");return d("div",{ref:z,className:i(e.row,e.wrap,r.alert,r[n],f[n],f.surface,c!=="md"&&r[c],u==="inline"&&r.inline,h),role:v??(n==="error"?"alert":"status"),...I,children:[s!==null&&o("div",{className:i(e.media,r.icon),"aria-hidden":!0,children:s??q[n]}),d("div",{className:i(e.content,r.body),children:[l!=null&&l!==""&&o("div",{className:i(e.title,r.title),children:l}),t!=null&&t!==""&&o("div",{className:i(e.description,r.content),children:t}),a!=null&&o("div",{className:i(e.actions,r.actions),children:a})]}),m!=null&&o(j,{appearance:"diskClose","aria-label":C,icon:o(y,{className:A.icon,size:"var(--altum-overlay-close-icon-size)","aria-hidden":!0}),onClick:m})]})});p.displayName="Alert";export{p as Alert};
1
+ "use client";import{jsxs as d,jsx as o}from"react/jsx-runtime";import{forwardRef as w}from"react";import{IconCheckmark as y}from"../../icons/icons/IconCheckmark.js";import{IconInformation as C}from"../../icons/icons/IconInformation.js";import{IconWarning as g}from"../../icons/icons/IconWarning.js";import{IconWrong as x}from"../../icons/icons/IconWrong.js";import{OverlayCloseButton as j}from"../ButtonIcon/OverlayCloseButton.js";import e from"../../styles/MediaItem.module.css.js";import r from"./Alert.module.css.js";import f from"../../styles/status.module.css.js";import{cn as i}from"../../utils/cn.js";import{useLocale as A}from"../../locales/localeContext.js";import{ruSlice as L}from"../../locales/slices/common.ru.js";const W={common:L},B={info:o(C,{size:16}),success:o(y,{size:16}),warning:o(g,{size:16}),error:o(x,{size:16})},p=w(function({variant:n="info",size:c="md",layout:u="block",className:h,role:v,title:l,icon:m,actions:s,onClose:a,closeLabel:N,children:t,...I},b){const{t:z}=A(W),k=N??z("common.close");return d("div",{ref:b,className:i(e.row,e.wrap,r.alert,r[n],f[n],f.surface,c!=="md"&&r[c],u==="inline"&&r.inline,h),role:v??(n==="error"?"alert":"status"),...I,children:[m!==null&&o("div",{className:i(e.media,r.icon),"aria-hidden":!0,children:m??B[n]}),d("div",{className:i(e.content,r.body),children:[l!=null&&l!==""&&o("div",{className:i(e.title,r.title),children:l}),t!=null&&t!==""&&o("div",{className:i(e.description,r.content),children:t}),s!=null&&o("div",{className:i(e.actions,r.actions),children:s})]}),a!=null&&o(j,{"aria-label":k,onClick:a})]})});p.displayName="Alert";export{p as Alert};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t="._7cYyI{align-items:flex-start;background-color:var(--altum-status-bg);border:1px solid var(--altum-status-border);border-radius:var(--altum-g-radius);color:var(--altum-status-fg);padding:var(--altum-g-space-3) var(--altum-g-space-4)}._7cYyI .Zg6SB{color:inherit;margin-top:var(--altum-g-space-1)}._7cYyI .abGgF{color:inherit;font-weight:var(--altum-g-font-weight-semibold);line-height:var(--altum-g-line-height-xs)}._7cYyI .UXnmZ,._7cYyI .abGgF{font-size:var(--altum-g-font-size-sm)}._7cYyI .UXnmZ{color:var(--altum-color-muted);line-height:var(--altum-g-line-height-base)}._7cYyI .RW9lv{align-items:flex-start;flex-wrap:wrap;gap:var(--altum-g-space-2);margin-top:var(--altum-g-space-2)}._7cYyI._8W0SD{gap:var(--altum-g-space-2);padding:var(--altum-g-space-2) var(--altum-g-space-3)}._7cYyI._8W0SD .UXnmZ,._7cYyI._8W0SD .abGgF{font-size:var(--altum-g-font-size-xs)}._7cYyI.-rVFO{padding:var(--altum-g-space-4) var(--altum-g-space-5)}._7cYyI.-rVFO .abGgF{font-size:var(--altum-g-font-size-base)}._7cYyI.OCIzv{display:inline-flex;max-width:100%;vertical-align:middle;width:auto}._7cYyI.OCIzv .RW9lv{margin-left:var(--altum-g-space-2);margin-top:0}._7cYyI.OCIzv .B60Rk{align-items:center;flex-direction:row;flex-wrap:wrap;gap:var(--altum-g-space-2)}";const r={alert:"_7cYyI",icon:"Zg6SB",title:"abGgF",content:"UXnmZ",actions:"RW9lv",sm:"_8W0SD",lg:"-rVFO",inline:"OCIzv",body:"B60Rk"};a(t);export{r as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t="._7cYyI{align-items:flex-start;background-color:var(--altum-status-bg);border:1px solid var(--altum-status-border);border-radius:var(--altum-g-radius);color:var(--altum-status-fg);padding:var(--altum-g-space-3) var(--altum-g-space-4)}._7cYyI .Zg6SB{color:inherit;margin-top:var(--altum-g-space-1)}._7cYyI .abGgF{color:inherit;font-weight:var(--altum-g-font-weight-semibold);line-height:var(--altum-g-line-height-xs)}._7cYyI .UXnmZ,._7cYyI .abGgF{font-size:var(--altum-g-font-size-sm)}._7cYyI .UXnmZ{color:var(--altum-color-muted);line-height:var(--altum-g-line-height-base)}._7cYyI .RW9lv{align-items:flex-start;flex-wrap:wrap;gap:var(--altum-g-space-2);margin-top:var(--altum-g-space-2)}._7cYyI._8W0SD{gap:var(--altum-g-space-2);padding:var(--altum-g-space-2) var(--altum-g-space-3)}._7cYyI._8W0SD .UXnmZ,._7cYyI._8W0SD .abGgF{font-size:var(--altum-g-font-size-xs)}._7cYyI.-rVFO{padding:var(--altum-g-space-4) var(--altum-g-space-5)}._7cYyI.-rVFO .abGgF{font-size:var(--altum-g-font-size-base)}._7cYyI.OCIzv{display:inline-flex;max-width:100%;vertical-align:middle;width:auto}._7cYyI.OCIzv .RW9lv{margin-left:var(--altum-g-space-2);margin-top:0}._7cYyI.OCIzv .B60Rk{align-items:center;flex-direction:row;flex-wrap:wrap;gap:var(--altum-g-space-2)}";const e={alert:"_7cYyI",icon:"Zg6SB",title:"abGgF",content:"UXnmZ",actions:"RW9lv",sm:"_8W0SD",lg:"-rVFO",inline:"OCIzv",body:"B60Rk"};a(t);export{e as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as x,jsx as g}from"react/jsx-runtime";import{forwardRef as y}from"react";import n from"./Badge.module.css.js";import s from"../../styles/status.module.css.js";import{cn as N}from"../../utils/cn.js";function j(e,l){if(typeof e!="number"||!Number.isFinite(e))return e;const r=l===!1?null:l??9;return r==null||e<=r?e:`${r}+`}const v=y(function({label:e,dot:l=!1,variant:r="error",size:b="md",position:h,max:w,children:i,className:o,...t},m){const c=r==="error"||r==="success"||r==="info"||r==="warning",a=i!=null&&(h??"overlay")!=="standalone",u=j(e,w),d=e!==void 0||l,f=N(n.badge,c?s[r]:n[r],c?r==="warning"&&!l?s.surface:s.fill:"",n[b],l?n.dot:"",a?n.overlay:n.standalone,a?"":o),p=!l&&u!=null?u:null;return a?x("div",{ref:m,className:N(n.wrap,o),...t,children:[i,d?g("span",{className:f,children:p}):null]}):d?g("span",{ref:m,className:f,...t,children:p}):null});v.displayName="Badge";export{v as Badge};
1
+ "use client";import{jsxs as w,jsx as b}from"react/jsx-runtime";import{forwardRef as j}from"react";import l from"./Badge.module.css.js";import o from"../../styles/status.module.css.js";import{cn as g}from"../../utils/cn.js";const h=j(function({label:r,dot:a=!1,variant:n="error",size:v="md",position:x,max:s,children:m,className:t,...d},c){const f=n==="primary"||n==="secondary",e=m!=null&&x!=="standalone",i=s===!1||typeof r!="number"||!Number.isFinite(r)?null:s??9,u=typeof r=="number"&&i!=null&&r>i?`${i}+`:r,p=r!==void 0||a,y=g(l.badge,f?l[n]:o[n],!f&&(n==="warning"&&!a?o.surface:o.fill),v==="sm"&&l.sm,a&&l.dot,e&&l.overlay,!e&&t),N=a||u==null?null:u;return e?w("div",{ref:c,className:g(l.wrap,t),...d,children:[m,p?b("span",{className:y,children:N}):null]}):p?b("span",{ref:c,className:y,...d,children:N}):null});h.displayName="Badge";export{h as Badge};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".yp-V3{margin-right:calc(var(--altum-badge-overhang)*-1);margin-top:calc(var(--altum-badge-overhang)*-1);overflow:visible;padding-right:var(--altum-badge-overhang);padding-top:var(--altum-badge-overhang);position:relative}.RsuMz,.yp-V3{display:inline-flex}.RsuMz{align-items:center;border:2px solid var(--altum-color-surface);border-radius:var(--altum-g-radius-pill);box-sizing:border-box;font-family:inherit;font-size:var(--altum-badge-font-size);font-weight:var(--altum-g-font-weight-bold);justify-content:center;line-height:1;translate:0 var(--altum-badge-digit-nudge);z-index:var(--altum-g-z-local)}.RsuMz.cGsYh{position:absolute;right:var(--altum-badge-overhang);top:var(--altum-badge-overhang);transform:translate(40%,-40%)}.RsuMz.cGsYh.LYsCn{max-width:calc(var(--altum-badge-size-sm) + var(--altum-g-space-2));padding-inline:var(--altum-control-inset);transform:translate(25%,-25%)}.RsuMz.etUpX{position:static;transform:none;vertical-align:middle}.RsuMz._4Or8q{height:var(--altum-badge-size-md);min-width:var(--altum-badge-size-md);padding:0 var(--altum-g-space-1)}.RsuMz.LYsCn{border-width:1px;font-size:var(--altum-badge-font-size-sm,var(--altum-badge-font-size));height:var(--altum-badge-size-sm);min-width:var(--altum-badge-size-sm);padding:0 var(--altum-control-inset)}.RsuMz.S0WCS{background-color:var(--altum-color-brand);color:var(--altum-color-brand-text)}.RsuMz.AhhB9{background-color:var(--altum-color-text-secondary);color:var(--altum-color-surface)}.RsuMz.i0c-G{height:var(--altum-g-space-2);min-width:var(--altum-g-space-2);padding:0;translate:none;width:var(--altum-g-space-2)}.RsuMz.i0c-G.LYsCn{height:calc(var(--altum-g-space-1) + var(--altum-control-inset));min-width:calc(var(--altum-g-space-1) + var(--altum-control-inset));width:calc(var(--altum-g-space-1) + var(--altum-control-inset))}";const r={wrap:"yp-V3",badge:"RsuMz",overlay:"cGsYh",sm:"LYsCn",standalone:"etUpX",md:"_4Or8q",primary:"S0WCS",secondary:"AhhB9",dot:"i0c-G"};a(t);export{r as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".yp-V3{--altum-badge-outset:var(--altum-badge-overhang);display:inline-flex;margin:calc(var(--altum-badge-outset)*-1) calc(var(--altum-badge-outset)*-1) 0 0;padding:var(--altum-badge-outset) var(--altum-badge-outset) 0 0;position:relative}.RsuMz{--altum-badge-box:var(--altum-badge-size-md);--altum-badge-pad:var(--altum-g-space-1);border:2px solid var(--altum-color-surface);border-radius:var(--altum-g-radius-pill);box-sizing:border-box;display:inline-grid;font-size:var(--altum-badge-font-size);font-weight:var(--altum-g-font-weight-bold);height:var(--altum-badge-box);line-height:1;min-width:var(--altum-badge-box);padding:0 var(--altum-badge-pad);place-items:center;translate:0 var(--altum-badge-digit-nudge);vertical-align:middle}.RsuMz.cGsYh{position:absolute;right:var(--altum-badge-outset);top:var(--altum-badge-outset);transform:translate(40%,-40%);z-index:var(--altum-g-z-local)}.RsuMz.LYsCn{--altum-badge-box:var(--altum-badge-size-sm);--altum-badge-pad:var(--altum-control-inset);border-width:1px;font-size:var(--altum-badge-font-size-sm,var(--altum-badge-font-size))}.RsuMz.cGsYh.LYsCn{max-width:calc(var(--altum-badge-size-sm) + var(--altum-g-space-2));transform:translate(25%,-25%)}.RsuMz.S0WCS{background-color:var(--altum-color-brand);color:var(--altum-color-brand-text)}.RsuMz.AhhB9{background-color:var(--altum-color-text-secondary);color:var(--altum-color-surface)}.RsuMz.i0c-G{--altum-badge-box:var(--altum-g-space-2);padding:0;translate:none;width:var(--altum-badge-box)}.RsuMz.i0c-G.LYsCn{--altum-badge-box:calc(var(--altum-g-space-1) + var(--altum-control-inset))}";const e={wrap:"yp-V3",badge:"RsuMz",overlay:"cGsYh",sm:"LYsCn",primary:"S0WCS",secondary:"AhhB9",dot:"i0c-G"};a(t);export{e as default};
@@ -1 +1 @@
1
- "use client";import{jsx as p}from"react/jsx-runtime";import{forwardRef as h}from"react";import e from"./Box.module.css.js";import{cn as b}from"../../utils/cn.js";const s=h(function({variant:i="outlined",border:d,borderStyle:m="solid",shadow:o,as:r="div",padding:n="none",radius:a="md",className:l,children:f,...t},u){const c=r==="button"?{type:t.type??"button"}:void 0;return p(r,{ref:u,className:b(e.root,e[i],d===!0&&e.bordered,d===!1&&e.unbordered,d!==!1&&m==="dashed"&&e.dashed,o==="none"&&e.noShadow,o&&o!=="none"&&e[`shadow_${o}`],n!=="none"&&e[`pad_${n}`],a!=="md"&&e[`radius_${a}`],l),...t,...c,children:f})});s.displayName="Box";export{s as Box};
1
+ "use client";import{jsx as u}from"react/jsx-runtime";import{forwardRef as p}from"react";import o from"./Box.module.css.js";import{cn as b}from"../../utils/cn.js";const t=p(function({variant:i="outlined",border:r,borderStyle:m="solid",shadow:d,as:e="div",padding:a="none",radius:n="md",className:l,...s},f){return u(e,{ref:f,className:b(o.root,o[i],r&&o.bordered,r===!1&&o.unbordered,r!==!1&&m==="dashed"&&o.dashed,d==="none"&&o.noShadow,d&&d!=="none"&&o[`shadow_${d}`],a!=="none"&&o[`pad_${a}`],n!=="md"&&o[`radius_${n}`],l),...s,...e==="button"?{type:s.type??"button"}:null})});t.displayName="Box";export{t as Box};
@@ -1 +1 @@
1
- "use client";import{injectCss as r}from"../../utils/injectCss.js";var o=".qArCi{border:1px solid #0000;border-radius:var(--altum-g-radius);box-sizing:border-box;color:var(--altum-color-input-text)}.qArCi,.qArCi.w5IF6{--altum-box-border-color:var(--altum-color-border)}.qArCi.w5IF6{background-color:var(--altum-color-surface);border-color:var(--altum-box-border-color)}.qArCi.m4sbd{--altum-box-border-color:var(--altum-color-border);background-color:var(--altum-color-surface-elevated);box-shadow:var(--altum-shadow-surface)}.qArCi.BP-0Q{--altum-box-border-color:var(--altum-color-dropdown-border);background-color:var(--altum-color-fill-floating-bg);box-shadow:var(--altum-shadow-dropdown);color:var(--altum-color-fill-floating-fg)}.qArCi.BP-0Q,.qArCi.nY-ng{border-color:var(--altum-box-border-color)}.qArCi.nY-ng{--altum-box-border-color:var(--altum-color-brand-tint-border);background-color:var(--altum-color-brand-tint);color:var(--altum-color-brand-tint-text)}.qArCi.-vlP5{background-color:color-mix(in srgb,var(--altum-color-text-secondary) 10%,var(--altum-color-surface));border-color:var(--altum-box-border-color);color:var(--altum-color-text-secondary)}.qArCi.-vlP5,.qArCi.fZLvl{--altum-box-border-color:var(--altum-color-border)}.qArCi.fZLvl{background-color:var(--altum-color-surface-active)}.qArCi.fZLvl,.qArCi.pzfbU{color:var(--altum-color-input-text)}.qArCi.pzfbU{--altum-box-border-color:color-mix(in srgb,var(--altum-color-border) 55%,#0000);-webkit-backdrop-filter:blur(var(--altum-backdrop-blur,12px));backdrop-filter:blur(var(--altum-backdrop-blur,12px));background-color:color-mix(in srgb,var(--altum-color-surface) 62%,#0000);box-shadow:var(--altum-shadow-surface)}.qArCi._0SOwa,.qArCi.pzfbU{border-color:var(--altum-box-border-color)}.qArCi._0SOwa{--altum-box-border-color:var(--altum-overlay-content-border);background-color:var(--altum-overlay-content-bg);color:var(--altum-overlay-on-scrim)}.qArCi.nLsOn{--altum-box-border-color:var(--altum-color-border);background-color:initial}.qArCi.ihDGT{--altum-box-border-color:#0000;background-color:initial;border:none;border-radius:0}.qArCi._6Vf0j{border-color:var(--altum-box-border-color);border-width:1px}.qArCi.A3tye{border-color:#0000}.qArCi.uLa77{border-style:dashed}.qArCi.Q4six{box-shadow:none}.qArCi._0wr3M{box-shadow:var(--altum-shadow-surface)}.qArCi.Yx1LC{box-shadow:var(--altum-shadow-dropdown)}.qArCi.g3it5{box-shadow:var(--altum-shadow-lg)}.qArCi.MQcDi{border-radius:0}.qArCi._9oy-Z{border-radius:var(--altum-g-radius-sm)}.qArCi.eCoHt{border-radius:var(--altum-g-radius-lg,12px)}.qArCi.xpq30{padding:var(--altum-g-space-1)}.qArCi.khFW-{padding:var(--altum-g-space-2)}.qArCi.Ch4pq{padding:var(--altum-g-space-3)}.qArCi.jJ8ob{padding:var(--altum-g-space-4)}.qArCi._3AlQG{padding:var(--altum-g-space-6)}";const a={root:"qArCi",outlined:"w5IF6",elevated:"m4sbd",floating:"BP-0Q",tinted:"nY-ng",secondary:"-vlP5",muted:"fZLvl",glass:"pzfbU",overlay:"_0SOwa",ghost:"nLsOn",plain:"ihDGT",bordered:"_6Vf0j",unbordered:"A3tye",dashed:"uLa77",noShadow:"Q4six",shadow_sm:"_0wr3M",shadow_md:"Yx1LC",shadow_lg:"g3it5",radius_none:"MQcDi",radius_sm:"_9oy-Z",radius_lg:"eCoHt",pad_xs:"xpq30",pad_sm:"khFW-",pad_md:"Ch4pq",pad_lg:"jJ8ob",pad_xl:"_3AlQG"};r(o);export{a as default};
1
+ "use client";import{injectCss as r}from"../../utils/injectCss.js";var o=".qArCi{--altum-box-border-color:var(--altum-color-border);border:1px solid #0000;border-radius:var(--altum-g-radius);box-sizing:border-box;color:var(--altum-color-input-text)}.qArCi:is(.w5IF6,.BP-0Q,.nY-ng,.-vlP5,.pzfbU,._0SOwa){border-color:var(--altum-box-border-color)}.qArCi:is(.m4sbd,.pzfbU){box-shadow:var(--altum-shadow-surface)}.qArCi.w5IF6{background-color:var(--altum-color-surface)}.qArCi.m4sbd{background-color:var(--altum-color-surface-elevated)}.qArCi.BP-0Q{--altum-box-border-color:var(--altum-color-dropdown-border);background-color:var(--altum-color-fill-floating-bg);box-shadow:var(--altum-shadow-dropdown);color:var(--altum-color-fill-floating-fg)}.qArCi.nY-ng{--altum-box-border-color:var(--altum-color-brand-tint-border);background-color:var(--altum-color-brand-tint);color:var(--altum-color-brand-tint-text)}.qArCi.-vlP5{background-color:color-mix(in srgb,var(--altum-color-text-secondary) 10%,var(--altum-color-surface));color:var(--altum-color-text-secondary)}.qArCi.fZLvl{background-color:var(--altum-color-surface-active)}.qArCi.pzfbU{--altum-box-border-color:color-mix(in srgb,var(--altum-color-border) 55%,#0000);-webkit-backdrop-filter:blur(var(--altum-backdrop-blur,12px));backdrop-filter:blur(var(--altum-backdrop-blur,12px));background-color:color-mix(in srgb,var(--altum-color-surface) 62%,#0000)}.qArCi._0SOwa{--altum-box-border-color:var(--altum-overlay-content-border);background-color:var(--altum-overlay-content-bg);color:var(--altum-overlay-on-scrim)}.qArCi.ihDGT{--altum-box-border-color:#0000;border:none;border-radius:0}.qArCi._6Vf0j{border-color:var(--altum-box-border-color);border-width:1px}.qArCi.A3tye{border-color:#0000}.qArCi.uLa77{border-style:dashed}.qArCi.Q4six{box-shadow:none}.qArCi._0wr3M{box-shadow:var(--altum-shadow-surface)}.qArCi.Yx1LC{box-shadow:var(--altum-shadow-dropdown)}.qArCi.g3it5{box-shadow:var(--altum-shadow-lg)}.qArCi.MQcDi{border-radius:0}.qArCi._9oy-Z{border-radius:var(--altum-g-radius-sm)}.qArCi.eCoHt{border-radius:var(--altum-g-radius-lg,12px)}.qArCi.xpq30{padding:var(--altum-g-space-1)}.qArCi.khFW-{padding:var(--altum-g-space-2)}.qArCi.Ch4pq{padding:var(--altum-g-space-3)}.qArCi.jJ8ob{padding:var(--altum-g-space-4)}.qArCi._3AlQG{padding:var(--altum-g-space-6)}";const a={root:"qArCi",outlined:"w5IF6",floating:"BP-0Q",tinted:"nY-ng",secondary:"-vlP5",glass:"pzfbU",overlay:"_0SOwa",elevated:"m4sbd",muted:"fZLvl",plain:"ihDGT",bordered:"_6Vf0j",unbordered:"A3tye",dashed:"uLa77",noShadow:"Q4six",shadow_sm:"_0wr3M",shadow_md:"Yx1LC",shadow_lg:"g3it5",radius_none:"MQcDi",radius_sm:"_9oy-Z",radius_lg:"eCoHt",pad_xs:"xpq30",pad_sm:"khFW-",pad_md:"Ch4pq",pad_lg:"jJ8ob",pad_xl:"_3AlQG"};r(o);export{a as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as r,jsx as a}from"react/jsx-runtime";import{forwardRef as $,useState as w,useId as B}from"react";import m from"../../styles/unstyledControl.module.css.js";import l from"./Bubble.module.css.js";import{cn as o}from"../../utils/cn.js";import{useLocale as S}from"../../locales/localeContext.js";const p=$(function({children:f,variant:c="default",align:h,group:g="single",meta:s,reactions:n,collapsible:t=!1,collapsedLines:N=4,expandLabel:v,collapseLabel:j,className:x,style:d,...y},C){const{t:i}=S(),[u,L]=w(!1),b=B(),k=h??(c==="outgoing"?"end":"start");return r("div",{ref:C,className:o(l.wrap,k==="end"?l.alignEnd:"",t?l.collapsible:"",x),style:t?{"--altum-bubble-lines":N,...d}:d,...y,children:[s&&a("div",{className:l.meta,children:s}),r("div",{className:o(l.bubble,l[c],l[`group_${g}`]),children:[a("div",{id:b,className:l.body,children:f}),t&&a("button",{type:"button",className:o(m.control,l.toggle),"aria-expanded":u,"aria-controls":b,onClick:()=>L(e=>!e),children:u?j??i("bubble.collapse"):v??i("bubble.expand")})]}),n&&n.length>0&&a("div",{className:l.reactions,role:"group","aria-label":i("bubble.reactions"),children:n.map(e=>r("button",{type:"button",className:o(m.control,l.reaction,e.active?l.reactionActive:""),onClick:e.onClick,"aria-pressed":e.active,"aria-label":e.count!=null&&e.count>0?`${e.emoji} ${e.count}`:e.emoji,children:[a("span",{"aria-hidden":!0,children:e.emoji}),e.count!=null&&e.count>0&&a("span",{className:l.reactionCount,children:e.count})]},e.emoji))})]})});p.displayName="Bubble";export{p as Bubble};
1
+ "use client";import{jsxs as r,jsx as a}from"react/jsx-runtime";import{forwardRef as w,useState as $,useId as B}from"react";import b from"../../styles/unstyledControl.module.css.js";import l from"./Bubble.module.css.js";import{cn as o}from"../../utils/cn.js";import{useLocale as S}from"../../locales/localeContext.js";import{ruSlice as A}from"../../locales/slices/bubble.ru.js";const E={bubble:A},p=w(function({children:f,variant:c="default",align:h,group:g="single",meta:s,reactions:n,collapsible:t=!1,collapsedLines:N=4,expandLabel:v,collapseLabel:x,className:j,style:u,...y},k){const{t:i}=S(E),[d,C]=$(!1),m=B(),L=h??(c==="outgoing"?"end":"start");return r("div",{ref:k,className:o(l.wrap,L==="end"?l.alignEnd:"",t?l.collapsible:"",j),style:t?{"--altum-bubble-lines":N,...u}:u,...y,children:[s&&a("div",{className:l.meta,children:s}),r("div",{className:o(l.bubble,l[c],l[`group_${g}`]),children:[a("div",{id:m,className:l.body,children:f}),t&&a("button",{type:"button",className:o(b.control,l.toggle),"aria-expanded":d,"aria-controls":m,onClick:()=>C(e=>!e),children:d?x??i("bubble.collapse"):v??i("bubble.expand")})]}),n&&n.length>0&&a("div",{className:l.reactions,role:"group","aria-label":i("bubble.reactions"),children:n.map(e=>r("button",{type:"button",className:o(b.control,l.reaction,e.active?l.reactionActive:""),onClick:e.onClick,"aria-pressed":e.active,"aria-label":e.count!=null&&e.count>0?`${e.emoji} ${e.count}`:e.emoji,children:[a("span",{"aria-hidden":!0,children:e.emoji}),e.count!=null&&e.count>0&&a("span",{className:l.reactionCount,children:e.count})]},e.emoji))})]})});p.displayName="Bubble";export{p as Bubble};
@@ -1 +1 @@
1
- "use client";import{jsxs as y,Fragment as g,jsx as N}from"react/jsx-runtime";import{forwardRef as k,createElement as j}from"react";import i from"./Button.module.css.js";import B from"../../styles/textLink.module.css.js";import{cn as W}from"../../utils/cn.js";const n=k(function({variant:t="primary",size:o="md",active:s,className:l,children:m,type:p="button",disabled:f,as:c,prefix:u,postfix:v,loading:a=!1,fullWidth:b,...x},h){const e=c==="a",d=s!==void 0,r=!!(f||a);return j(e?"a":"button",{ref:h,className:W(i.btn,i[t],o!=="md"&&t!=="link"&&i[o],t==="link"&&B.link,d&&i.isToggle,b&&i.fullWidth,l),type:e?void 0:p,disabled:e?void 0:r,"aria-disabled":e&&r?!0:void 0,tabIndex:e&&r?-1:void 0,...x,"aria-pressed":d?s:void 0,"aria-busy":a||void 0},y(g,{children:[a?N("span",{className:i.spin,"aria-hidden":!0}):u,m,v]}))});n.displayName="Button";export{n as Button};
1
+ "use client";import{forwardRef as y,createElement as h}from"react";import t from"./Button.module.css.js";import k from"../../styles/textLink.module.css.js";import{cn as N}from"../../utils/cn.js";const l=y(function({variant:a="primary",size:o="md",active:n,className:s,children:f,type:m="button",disabled:d,as:p,prefix:c,postfix:u,loading:e=!1,fullWidth:b,...v},x){const i=p==="a",r=!!(d||e);return h(i?"a":"button",{ref:x,className:N(t.btn,t[a],o!=="md"&&a!=="link"&&t[o],a==="link"&&k.link,d&&!e&&t.off,b&&t.fullWidth,s),type:i?void 0:m,disabled:i?void 0:r,"aria-disabled":i&&r?!0:void 0,tabIndex:i&&r?-1:void 0,...v,"aria-pressed":n,"aria-busy":e||void 0},!e&&c,f,u)});l.displayName="Button";export{l as Button};
@@ -1 +1 @@
1
- "use client";import{injectCss as t}from"../../utils/injectCss.js";var a=".Fx11X{--altum-btn-border:#0000;--altum-btn-text:inherit;--altum-btn-text-hover:var(--altum-btn-text);--altum-btn-bg:#0000;--altum-btn-bg-hover:var(--altum-btn-bg);--altum-btn-bg-active:var(--altum-btn-bg-hover);--altum-btn-shadow:0 0 0 0 #0000;--altum-btn-focus-ring:var(--altum-focus-ring-color);--altum-btn-height:var(--altum-control-height-md);--altum-btn-pad-x:var(--altum-g-space-5);--altum-btn-font-size:var(--altum-g-font-size-base);--altum-btn-icon-size:var(--altum-control-icon-size-md);align-items:center;appearance:none;background:var(--altum-btn-bg);border:1px solid var(--altum-btn-border);border-radius:var(--altum-g-radius);box-shadow:var(--altum-btn-shadow);box-sizing:border-box;color:var(--altum-btn-text);cursor:pointer;display:inline-flex;font-family:var(--altum-g-font-family-ui);font-size:var(--altum-btn-font-size);font-weight:var(--altum-g-font-weight-medium);gap:var(--altum-g-space-2);height:var(--altum-btn-height);justify-content:center;outline:none;padding:0 var(--altum-btn-pad-x);transition:var(--altum-transition-smooth);-webkit-user-select:none;user-select:none}.Fx11X svg{height:var(--altum-btn-icon-size);width:var(--altum-btn-icon-size)}.Fx11X:is(:disabled,[aria-disabled=true]):not([aria-busy=true]){color:color-mix(in srgb,var(--altum-btn-text) 48%,var(--altum-color-bg));cursor:not-allowed}.Fx11X[aria-disabled=true]{pointer-events:none}.Fx11X:not(._1KINV,.Zt5hw):is(:disabled,[aria-disabled=true]):not([aria-busy=true]){background:color-mix(in srgb,var(--altum-btn-bg) 36%,var(--altum-color-surface));border-color:#0000;box-shadow:none}.Fx11X[aria-busy=true]{cursor:progress}.Fx11X:not(:disabled,[aria-disabled=true]):hover{background-color:var(--altum-btn-bg-hover);color:var(--altum-btn-text-hover)}.Fx11X:not(:disabled,[aria-disabled=true]):active{background-color:var(--altum-btn-bg-active)}.Fx11X:focus-visible{box-shadow:var(--altum-btn-shadow),0 0 0 var(--altum-button-focus-inner) var(--altum-color-bg),0 0 0 var(--altum-button-focus-outer) var(--altum-btn-focus-ring)}.Fx11X:where(.NhG0g){--altum-btn-height:var(--altum-control-height-sm);--altum-btn-pad-x:var(--altum-g-space-3);--altum-btn-font-size:var(--altum-g-font-size-2xs);--altum-btn-icon-size:var(--altum-control-icon-size-sm)}.Fx11X:where(._2plQf){--altum-btn-height:var(--altum-control-height-lg);--altum-btn-pad-x:var(--altum-g-space-7);--altum-btn-font-size:var(--altum-g-font-size-lg);--altum-btn-icon-size:var(--altum-control-icon-size-lg)}.Fx11X.s1sM6{--altum-btn-border:var(--altum-color-button-border-primary);--altum-btn-text:var(--altum-color-brand-text);--altum-btn-bg:var(--altum-color-brand);--altum-btn-bg-hover:var(--altum-color-brand-hover);--altum-btn-bg-active:var(--altum-color-brand-active);--altum-btn-shadow:var(--altum-shadow-brand)}.Fx11X.fahpj{--altum-btn-border:var(--altum-color-button-tinted-border);--altum-btn-text:var(--altum-color-button-tinted-text);--altum-btn-bg:var(--altum-color-button-tinted-bg);--altum-btn-bg-hover:var(--altum-color-button-tinted-bg-hover);--altum-btn-bg-active:var(--altum-color-button-tinted-bg-active)}.Fx11X.R0waJ{--altum-btn-border:var(--altum-color-button-secondary-border);--altum-btn-text:var(--altum-color-button-secondary-text);--altum-btn-bg:var(--altum-color-button-secondary-bg);--altum-btn-bg-hover:var(--altum-color-button-secondary-bg-hover);--altum-btn-bg-active:var(--altum-color-button-secondary-bg-active);--altum-btn-shadow:var(--altum-color-button-secondary-shadow)}.Fx11X.V4fX8{--altum-btn-border:var(--altum-color-button-border-danger);--altum-btn-text:var(--altum-color-danger-text);--altum-btn-bg:var(--altum-color-danger-bg-solid);--altum-btn-bg-hover:var(--altum-color-danger-bg-hover);--altum-btn-bg-active:var(--altum-color-danger-bg-active);--altum-btn-shadow:var(--altum-color-danger-shadow);--altum-btn-focus-ring:var(--altum-color-danger-bg-solid)}.Fx11X.U-Isv{--altum-btn-border:var(--altum-color-button-border-danger-tinted);--altum-btn-text:var(--altum-color-danger-tint-text);--altum-btn-text-hover:var(--altum-color-danger-text-secondary-hover);--altum-btn-bg:var(--altum-color-danger-tint-bg);--altum-btn-bg-hover:var(--altum-color-danger-tint-bg-hover);--altum-btn-bg-active:var(--altum-color-danger-tint-bg-active);--altum-btn-focus-ring:var(--altum-color-danger-bg-solid)}.Fx11X._1KINV{--altum-btn-text:var(--altum-color-button-ghost-text);--altum-btn-text-hover:var(--altum-color-button-ghost-text-hover);--altum-btn-bg-hover:var(--altum-color-button-ghost-hover-bg);--altum-btn-bg-active:var(--altum-color-button-ghost-active-bg)}.Fx11X.Zt5hw{--altum-btn-text:var(--altum-color-link-color);--altum-btn-text-hover:var(--altum-color-link-color-hover,var(--altum-color-link-color));--altum-btn-bg-hover:#0000;--altum-btn-bg-active:#0000;align-self:center;border:none;border-radius:var(--altum-g-radius-sm);font-weight:var(--altum-g-font-weight-normal);height:auto;padding:0}.Fx11X.Zt5hw:not(:disabled,[aria-disabled=true]):active{color:var(--altum-color-link-color-hover,var(--altum-color-link-color))}.Fx11X.mK-Gk:not([aria-pressed=true]){background-color:initial;border-color:#0000;box-shadow:none;opacity:.75}.Fx11X.mK-Gk:not([aria-pressed=true]):not(:disabled,[aria-disabled=true]):hover{opacity:1}.Fx11X._36oJT{display:flex;width:100%}.JvkZu{animation:JvkZu .75s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid #0000;box-sizing:border-box;display:inline-block;height:var(--altum-btn-icon-size);width:var(--altum-btn-icon-size)}@keyframes JvkZu{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.JvkZu{animation:none;border-right-color:initial;opacity:.55}}";const r={btn:"Fx11X",ghost:"_1KINV",link:"Zt5hw",sm:"NhG0g",lg:"_2plQf",primary:"s1sM6",tinted:"fahpj",secondary:"R0waJ",danger:"V4fX8",danger_tinted:"U-Isv",isToggle:"mK-Gk",fullWidth:"_36oJT",spin:"JvkZu"};t(a);export{r as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var a='.Fx11X{--altum-btn-border:#0000;--altum-btn-text:inherit;--altum-btn-text-hover:var(--altum-btn-text);--altum-btn-bg:#0000;--altum-btn-bg-hover:var(--altum-btn-bg);--altum-btn-bg-active:var(--altum-btn-bg-hover);--altum-btn-shadow:0 0 0 0 #0000;--altum-btn-focus-ring:var(--altum-focus-ring-color);--altum-btn-height:var(--altum-control-height-md);--altum-btn-pad-x:var(--altum-g-space-5);--altum-btn-font-size:var(--altum-g-font-size-base);--altum-btn-icon-size:var(--altum-control-icon-size-md);align-items:center;appearance:none;background:var(--altum-btn-bg);border:1px solid var(--altum-btn-border);border-radius:var(--altum-g-radius);box-shadow:var(--altum-btn-shadow);box-sizing:border-box;color:var(--altum-btn-text);cursor:pointer;display:inline-flex;font-family:var(--altum-g-font-family-ui);font-size:var(--altum-btn-font-size);font-weight:var(--altum-g-font-weight-medium);gap:var(--altum-g-space-2);height:var(--altum-btn-height);justify-content:center;outline:none;padding:0 var(--altum-btn-pad-x);transition:var(--altum-transition-smooth);-webkit-user-select:none;user-select:none}.Fx11X svg{height:var(--altum-btn-icon-size);width:var(--altum-btn-icon-size)}.Fx11X._69HBo{color:color-mix(in srgb,var(--altum-btn-text) 48%,var(--altum-color-bg));cursor:not-allowed}.Fx11X._69HBo:not(._1KINV,.Zt5hw){background:color-mix(in srgb,var(--altum-btn-bg) 36%,var(--altum-color-surface));border-color:#0000;box-shadow:none}.Fx11X[aria-disabled=true]{pointer-events:none}.Fx11X[aria-busy=true]{cursor:progress}.Fx11X[aria-busy=true]:before{animation:JvkZu .75s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid #0000;box-sizing:border-box;content:"";display:inline-block;height:var(--altum-btn-icon-size);width:var(--altum-btn-icon-size)}.Fx11X:not(:disabled,[aria-disabled=true]):hover{background-color:var(--altum-btn-bg-hover);color:var(--altum-btn-text-hover)}.Fx11X:not(:disabled,[aria-disabled=true]):active{background-color:var(--altum-btn-bg-active)}.Fx11X:focus-visible{box-shadow:var(--altum-btn-shadow),0 0 0 var(--altum-button-focus-inner) var(--altum-color-bg),0 0 0 var(--altum-button-focus-outer) var(--altum-btn-focus-ring)}.Fx11X:where(.NhG0g){--altum-btn-height:var(--altum-control-height-sm);--altum-btn-pad-x:var(--altum-g-space-3);--altum-btn-font-size:var(--altum-g-font-size-2xs);--altum-btn-icon-size:var(--altum-control-icon-size-sm)}.Fx11X:where(._2plQf){--altum-btn-height:var(--altum-control-height-lg);--altum-btn-pad-x:var(--altum-g-space-7);--altum-btn-font-size:var(--altum-g-font-size-lg);--altum-btn-icon-size:var(--altum-control-icon-size-lg)}.Fx11X.s1sM6{--altum-btn-border:var(--altum-color-button-border-primary);--altum-btn-text:var(--altum-color-brand-text);--altum-btn-bg:var(--altum-color-brand);--altum-btn-bg-hover:var(--altum-color-brand-hover);--altum-btn-bg-active:var(--altum-color-brand-active);--altum-btn-shadow:var(--altum-shadow-brand)}.Fx11X.fahpj{--altum-btn-border:var(--altum-color-button-tinted-border);--altum-btn-text:var(--altum-color-button-tinted-text);--altum-btn-bg:var(--altum-color-button-tinted-bg);--altum-btn-bg-hover:var(--altum-color-button-tinted-bg-hover);--altum-btn-bg-active:var(--altum-color-button-tinted-bg-active)}.Fx11X.R0waJ{--altum-btn-border:var(--altum-color-button-secondary-border);--altum-btn-text:var(--altum-color-button-secondary-text);--altum-btn-bg:var(--altum-color-button-secondary-bg);--altum-btn-bg-hover:var(--altum-color-button-secondary-bg-hover);--altum-btn-bg-active:var(--altum-color-button-secondary-bg-active);--altum-btn-shadow:var(--altum-color-button-secondary-shadow)}.Fx11X.V4fX8{--altum-btn-border:var(--altum-color-button-border-danger);--altum-btn-text:var(--altum-color-danger-text);--altum-btn-bg:var(--altum-color-danger-bg-solid);--altum-btn-bg-hover:var(--altum-color-danger-bg-hover);--altum-btn-bg-active:var(--altum-color-danger-bg-active);--altum-btn-shadow:var(--altum-color-danger-shadow)}.Fx11X.U-Isv{--altum-btn-border:var(--altum-color-button-border-danger-tinted);--altum-btn-text:var(--altum-color-danger-tint-text);--altum-btn-text-hover:var(--altum-color-danger-text-secondary-hover);--altum-btn-bg:var(--altum-color-danger-tint-bg);--altum-btn-bg-hover:var(--altum-color-danger-tint-bg-hover);--altum-btn-bg-active:var(--altum-color-danger-tint-bg-active)}.Fx11X.U-Isv,.Fx11X.V4fX8{--altum-btn-focus-ring:var(--altum-color-danger-bg-solid)}.Fx11X._1KINV{--altum-btn-text:var(--altum-color-button-ghost-text);--altum-btn-text-hover:var(--altum-color-button-ghost-text-hover);--altum-btn-bg-hover:var(--altum-color-button-ghost-hover-bg);--altum-btn-bg-active:var(--altum-color-button-ghost-active-bg)}.Fx11X.Zt5hw{--altum-btn-text:var(--altum-color-link-color);--altum-btn-text-hover:var(--altum-color-link-color-hover);align-self:center;border:none;border-radius:var(--altum-g-radius-sm);font-weight:var(--altum-g-font-weight-normal);height:auto;padding:0}.Fx11X.Zt5hw:not(:disabled,[aria-disabled=true]):active{color:var(--altum-color-link-color-hover)}.Fx11X[aria-pressed=false]{background-color:initial;border-color:#0000;box-shadow:none;opacity:.75}.Fx11X[aria-pressed=false]:not(:disabled,[aria-disabled=true]):hover{opacity:1}.Fx11X._36oJT{display:flex;width:100%}@media (prefers-reduced-motion:reduce){.Fx11X[aria-busy=true]:before{animation:none;border-right-color:initial;opacity:.55}}@keyframes JvkZu{to{transform:rotate(1turn)}}';const r={btn:"Fx11X",off:"_69HBo",ghost:"_1KINV",link:"Zt5hw",spin:"JvkZu",sm:"NhG0g",lg:"_2plQf",primary:"s1sM6",tinted:"fahpj",secondary:"R0waJ",danger:"V4fX8",danger_tinted:"U-Isv",fullWidth:"_36oJT"};t(a);export{r as default};
@@ -1 +1 @@
1
- "use client";import{jsx as _,jsxs as j}from"react/jsx-runtime";import H,{forwardRef as U,useRef as Y,useState as J,useCallback as Q,useMemo as X,useLayoutEffect as Z,useId as ee,createContext as te}from"react";import oe from"../../styles/unstyledControl.module.css.js";import e from"./ButtonGroup.module.css.js";import{cn as G}from"../../utils/cn.js";import{composeEventHandlers as T}from"../../utils/composeEvents.js";import{composeRefs as re}from"../../utils/composeRefs.js";import{useControlledStateWithCallback as ae}from"../../hooks/useControlledState.js";import{useLocale as ue}from"../../locales/localeContext.js";import{useRequiredContext as le}from"../../hooks/useRequiredContext.js";import{useRovingList as ie,ROVING_ITEM_ATTR as M}from"../../hooks/useRovingList.js";import{useTrackThumb as se}from"../../hooks/useTrackThumb.js";const S="data-button-group-value",V=te(null);function de(r,t,s,d){return r==="button"||s==null?!!d:r==="toggle"?t===s:Array.isArray(t)&&t.includes(s)}const L=U(function({children:r,mode:t="button",variant:s="secondary",status:d="default",size:y="md",disabled:o=!1,readOnly:C=!1,borderless:A=!1,focusable:n=!0,width:F="auto",itemFit:N="equal",value:m,defaultValue:g,onChange:O,activateOnFocus:c=!0,"aria-label":v,className:I,onKeyDown:k,...h},w){const{t:f}=ue(),i=Y(null),[R,E]=J(null),l=C&&!o,K=t==="multi_toggle"?[]:"",[b,x]=ae(m,g??K,O),B=Q(a=>{if(o||l||t==="button")return;if(t==="toggle"){x(a);return}const u=Array.isArray(b)?b:[];x(u.includes(a)?u.filter(p=>p!==a):[...u,a])},[o,l,t,b,x]),P=X(()=>({mode:t,disabled:o,readOnly:l,focusable:n,selected:b,selectItem:B,focusedId:R,setFocusedId:E}),[o,n,R,l,t,B,b]),D=t==="toggle",q=se(i,D?`.${e.itemActive}`:"",b),W=ie("horizontal",a=>{if(E(a.dataset.itemId??""),t==="toggle"&&c){const u=a.getAttribute(S);u&&B(u)}});return Z(()=>{if(!n||o||l)return;const a=i.current;if(!a)return;const u=Array.from(a.querySelectorAll(`[${M}]:not([disabled])`));u.length!==0&&E(p=>p&&u.some($=>$.dataset.itemId===p)?p:u[0].dataset.itemId??p)},[r,o,n,l]),_(V.Provider,{value:P,children:j("div",{ref:re(w,i),className:G(e.group,e[s]??"",y!=="md"&&e[y],D&&e.modeToggle,d==="danger"&&e.statusDanger,A&&e.borderless,o&&e.disabled,l&&e.readOnly,F==="full"&&e.widthFull,N==="content"&&e.fitContent,I),...h,role:t==="toggle"?"radiogroup":"group","aria-label":v??f("buttonGroup.ariaLabel"),"aria-readonly":l||void 0,"aria-disabled":o||void 0,onKeyDown:T(k,n&&!o&&!l?W:void 0),children:[D&&_("div",{className:G(e.slider,q.ready&&e.sliderReady),style:q.style,"aria-hidden":"true"}),r]})})}),z=H.forwardRef(function({value:r,active:t,icon:s,children:d,disabled:y=!1,className:o,onClick:C,onFocus:A,"aria-label":n,...F},N){const m=ee(),{mode:g,disabled:O,readOnly:c,focusable:v,selected:I,selectItem:k,focusedId:h,setFocusedId:w}=le(V,"ButtonGroup.Item \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 ButtonGroup"),f=O||y,i=de(g,I,r,t),R=!v||f||c?!1:g==="toggle"?i||I===""&&h===m:h===m;return j("button",{ref:N,type:"button",...F,[M]:"",...r!=null?{[S]:r}:{},"data-item-id":m,className:G(oe.control,e.item,i&&e.itemActive,c&&e.itemReadOnly,o),"aria-label":n??(typeof d=="string"?d:void 0),disabled:f,"aria-disabled":c||void 0,tabIndex:R?0:-1,...g==="toggle"?{role:"radio","aria-checked":i}:{"aria-pressed":i||void 0},onFocus:T(A,()=>{v&&!f&&!c&&w(m)}),onClick:T(C,()=>{f||c||r==null||k(r)}),children:[s,d]})});L.displayName="ButtonGroup",z.displayName="ButtonGroup.Item";const ne=Object.assign(L,{Root:L,Item:z});export{ne as ButtonGroup};
1
+ "use client";import{jsx as q,jsxs as _}from"react/jsx-runtime";import{getFormControlState as H}from"../../utils/formControl.js";import J,{forwardRef as U,useRef as Q,useState as X,useCallback as Y,useMemo as Z,useLayoutEffect as ee,useId as te,createContext as oe}from"react";import re from"../../styles/unstyledControl.module.css.js";import e from"./ButtonGroup.module.css.js";import{cn as D}from"../../utils/cn.js";import{composeEventHandlers as S}from"../../utils/composeEvents.js";import{composeRefs as ae}from"../../utils/composeRefs.js";import{useControlledStateWithCallback as ue}from"../../hooks/useControlledState.js";import{useLocale as le}from"../../locales/localeContext.js";import{useRequiredContext as se}from"../../hooks/useRequiredContext.js";import{useRovingList as ie,ROVING_ITEM_ATTR as j}from"../../hooks/useRovingList.js";import{useTrackThumb as de}from"../../hooks/useTrackThumb.js";import{ruSlice as ne}from"../../locales/slices/buttonGroup.ru.js";const ce={buttonGroup:ne},M="data-button-group-value",V=oe(null);function me(r,t,i,d){return r==="button"||i==null?!!d:r==="toggle"?t===i:Array.isArray(t)&&t.includes(i)}const T=U(function({children:r,mode:t="button",variant:i="secondary",status:d="default",size:y="md",disabled:o=!1,readOnly:C=!1,borderless:F=!1,focusable:n=!0,width:A="auto",itemFit:O="equal",value:m,defaultValue:g,onChange:G,activateOnFocus:c=!0,"aria-label":v,className:I,onKeyDown:N,...h},k){const{t:f}=le(ce),s=Q(null),[R,w]=X(null),{isReadOnly:l}=H({disabled:o,readOnly:C}),K=t==="multi_toggle"?[]:"",[b,E]=ue(m,g??K,G),x=Y(a=>{if(o||l||t==="button")return;if(t==="toggle"){E(a);return}const u=Array.isArray(b)?b:[];E(u.includes(a)?u.filter(p=>p!==a):[...u,a])},[o,l,t,b,E]),P=Z(()=>({mode:t,disabled:o,readOnly:l,focusable:n,selected:b,selectItem:x,focusedId:R,setFocusedId:w}),[o,n,R,l,t,x,b]),B=t==="toggle",L=de(s,B?`.${e.itemActive}`:"",b),W=ie("horizontal",a=>{if(w(a.dataset.itemId??""),t==="toggle"&&c){const u=a.getAttribute(M);u&&x(u)}});return ee(()=>{if(!n||o||l)return;const a=s.current;if(!a)return;const u=Array.from(a.querySelectorAll(`[${j}]:not([disabled])`));u.length!==0&&w(p=>p&&u.some($=>$.dataset.itemId===p)?p:u[0].dataset.itemId??p)},[r,o,n,l]),q(V.Provider,{value:P,children:_("div",{ref:ae(k,s),className:D(e.group,e[i]??"",y!=="md"&&e[y],B&&e.modeToggle,d==="danger"&&e.statusDanger,F&&e.borderless,o&&e.disabled,l&&e.readOnly,A==="full"&&e.widthFull,O==="content"&&e.fitContent,I),...h,role:t==="toggle"?"radiogroup":"group","aria-label":v??f("buttonGroup.ariaLabel"),"aria-readonly":l||void 0,"aria-disabled":o||void 0,onKeyDown:S(N,n&&!o&&!l?W:void 0),children:[B&&q("div",{className:D(e.slider,L.ready&&e.sliderReady),style:L.style,"data-track-thumb":"","aria-hidden":"true"}),r]})})}),z=J.forwardRef(function({value:r,active:t,icon:i,children:d,disabled:y=!1,className:o,onClick:C,onFocus:F,"aria-label":n,...A},O){const m=te(),{mode:g,disabled:G,readOnly:c,focusable:v,selected:I,selectItem:N,focusedId:h,setFocusedId:k}=se(V,"ButtonGroup.Item \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 ButtonGroup"),f=G||y,s=me(g,I,r,t),R=!v||f||c?!1:g==="toggle"?s||I===""&&h===m:h===m;return _("button",{ref:O,type:"button",...A,[j]:"",...r!=null?{[M]:r}:{},"data-item-id":m,className:D(re.control,e.item,s&&e.itemActive,c&&e.itemReadOnly,o),"aria-label":n??(typeof d=="string"?d:void 0),disabled:f,"aria-disabled":c||void 0,tabIndex:R?0:-1,...g==="toggle"?{role:"radio","aria-checked":s}:{"aria-pressed":s||void 0},onFocus:S(F,()=>{v&&!f&&!c&&k(m)}),onClick:S(C,()=>{f||c||r==null||N(r)}),children:[i,d]})});T.displayName="ButtonGroup",z.displayName="ButtonGroup.Item";const fe=Object.assign(T,{Root:T,Item:z});export{fe as ButtonGroup};
@@ -0,0 +1 @@
1
+ "use client";import{jsx as o}from"react/jsx-runtime";import{forwardRef as n}from"react";import{IconCross as m}from"../../icons/icons/IconCross.js";import{useLocale as l}from"../../locales/localeContext.js";import{ButtonIcon as s}from"./ButtonIcon.js";import{ruSlice as c}from"../../locales/slices/common.ru.js";const f={common:c},r=n(function({"aria-label":e,...t},a){const{t:i}=l(f);return o(s,{ref:a,appearance:"diskClose","aria-label":e??i("common.close"),icon:o(m,{size:"var(--altum-overlay-close-icon-size)","aria-hidden":!0}),...t})});r.displayName="OverlayCloseButton";export{r as OverlayCloseButton};
@@ -1 +1 @@
1
- "use client";import{jsx as R}from"react/jsx-runtime";import{useState as g,createContext as V}from"react";import{useRequiredContext as S}from"../../hooks/useRequiredContext.js";import{buildMonthDays as b}from"./Calendar.utils.js";import{YEARS_PER_PAGE as h}from"./Calendar.types.js";const w=V(null);function A(n){return S(w,`${n} \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 Calendar.Provider`)}function l(n){return Math.floor(n/h)*h}const B={};function _(n){return n!=null&&!(n instanceof Date)}const y=({selectionMode:n="single",value:u,onChange:f,viewDate:s,onViewDateChange:p,renderDayCell:M,children:P})=>{const d=n==="range"&&_(u)?u:B,m=n==="single"&&u instanceof Date?u:void 0,v=s??m??d.end??d.start??new Date,[x,E]=g(v),[c,C]=g("days"),[F,o]=g(()=>l(v.getFullYear())),D=s??x,t=D.getFullYear(),r=D.getMonth(),a=e=>{s===void 0&&E(e),p?.(e)},Y=e=>{if(c==="days"){a(new Date(t,r+e,1));return}if(c==="months"){const i=new Date(t+e,r,1);a(i),o(l(i.getFullYear()));return}o(i=>i+e*h)};return R(w.Provider,{value:{selectionMode:n,value:m,onChange:e=>f?.(e),rangeValue:d,onRangeChange:e=>f?.(e),viewDate:D,year:t,month:r,days:b(t,r),view:c,setView:e=>{e==="years"&&o(l(t)),C(e)},yearPageStart:F,setViewDate:a,shiftView:Y,selectMonth:e=>{a(new Date(t,e,1)),C("days")},selectYear:e=>{a(new Date(e,r,1)),o(l(e)),C("months")},renderDayCell:M},children:P})};y.displayName="Calendar.Provider";export{y as CalendarProvider,A as useCalendarContext};
1
+ "use client";import{jsx as R}from"react/jsx-runtime";import{useState as C,createContext as A}from"react";import{useRequiredContext as B}from"../../hooks/useRequiredContext.js";import{useLocale as G}from"../../locales/localeContext.js";import{ruSlice as _}from"../../locales/slices/calendar.ru.js";import{YEARS_PER_PAGE as D}from"./Calendar.types.js";const j={calendar:_},w=A(null);function q(t){return B(w,`${t} \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 Calendar.Provider`)}function i(t){return Math.floor(t/D)*D}const L={};function N(t){return t!=null&&!(t instanceof Date)}const y=({selectionMode:t="single",value:a,onChange:f,viewDate:s,onViewDateChange:p,renderDayCell:P,children:x})=>{const{messages:E,t:F}=G(j),c=t==="range"&&N(a)?a:L,h=t==="single"&&a instanceof Date?a:void 0,v=s??h??c.end??c.start??new Date,[M,V]=C(v),[d,g]=C("days"),[S,u]=C(()=>i(v.getFullYear())),m=s??M,n=m.getFullYear(),o=m.getMonth(),r=e=>{s===void 0&&V(e),p?.(e)},Y=e=>{if(d==="days"){r(new Date(n,o+e,1));return}if(d==="months"){const l=new Date(n+e,o,1);r(l),u(i(l.getFullYear()));return}u(l=>l+e*D)};return R(w.Provider,{value:{selectionMode:t,value:h,onChange:e=>f?.(e),rangeValue:c,onRangeChange:e=>f?.(e),viewDate:m,year:n,month:o,view:d,setView:e=>{e==="years"&&u(i(n)),g(e)},yearPageStart:S,setViewDate:r,shiftView:Y,selectMonth:e=>{r(new Date(n,e,1)),g("days")},selectYear:e=>{r(new Date(e,o,1)),u(i(e)),g("months")},renderDayCell:P,calendar:E.calendar,t:F},children:x})};y.displayName="Calendar.Provider";export{y as CalendarProvider,q as useCalendarContext};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".oplxF{--altum-calendar-width:280px;box-sizing:border-box;color:var(--altum-color-input-text);font-family:var(--altum-g-font-family-ui);max-width:100%;-webkit-user-select:none;user-select:none;width:var(--altum-calendar-width)}.oplxF .OimmF{color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-sm);font-weight:var(--altum-g-font-weight-semibold);margin-bottom:var(--altum-g-space-3)}.oplxF .jixIO{align-items:center;display:inline-flex;gap:var(--altum-g-space-1)}.oplxF ._95lLK{color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);padding:var(--altum-control-inset) var(--altum-g-space-1)}.oplxF .bYde3{display:flex;flex-direction:column}.oplxF .Afnz6{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-xs);margin-bottom:var(--altum-g-space-2)}.oplxF .J-3Vr{align-content:stretch;display:grid;gap:var(--altum-g-space-1);min-height:calc(var(--altum-control-height-sm)*6);text-align:center}.oplxF .VrPnd{grid-template-columns:repeat(3,1fr)}.oplxF .vo94R{grid-template-columns:repeat(4,1fr)}.oplxF .tNYuD{font-weight:var(--altum-g-font-weight-medium);padding:var(--altum-g-space-2) var(--altum-g-space-1)}.oplxF .dF8j7,.oplxF .tNYuD{font-size:var(--altum-g-font-size-2xs);width:100%}.oplxF .dF8j7{align-items:center;aspect-ratio:1;display:inline-flex;justify-content:center}.oplxF .dF8j7.eoULr{background-color:color-mix(in srgb,var(--altum-color-brand) 16%,#0000);border-radius:0}.oplxF .dF8j7.Jusrw{border-radius:var(--altum-g-radius-sm) 0 0 var(--altum-g-radius-sm)}.H5X-t:is(.oplxF .dF8j7.Jusrw){border-radius:var(--altum-g-radius-sm)}.oplxF .dF8j7.H5X-t{border-radius:0 var(--altum-g-radius-sm) var(--altum-g-radius-sm) 0}.oplxF .zOR5-{cursor:default;pointer-events:none}@media (max-width:768px){.oplxF{width:100%}}";const e={calendar:"oplxF",calendarHeader:"OimmF",calendarTitleSplit:"jixIO",calendarTitleButton:"_95lLK",calendarBody:"bYde3",calendarWeekdays:"Afnz6",calendarPeriodGrid:"J-3Vr",calendarMonths:"VrPnd",calendarYears:"vo94R",periodCell:"tNYuD",dayCell:"dF8j7",dayInRange:"eoULr",dayRangeStart:"Jusrw",dayRangeEnd:"H5X-t",dayEmpty:"zOR5-"};a(t);export{e as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".oplxF{--altum-calendar-width:280px;color:var(--altum-color-input-text);font-family:var(--altum-g-font-family-ui);max-width:100%;-webkit-user-select:none;user-select:none;width:var(--altum-calendar-width)}.oplxF .OimmF{color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-sm);font-weight:var(--altum-g-font-weight-semibold);margin-bottom:var(--altum-g-space-3)}.oplxF .jixIO{align-items:center;display:inline-flex;gap:var(--altum-g-space-1)}.oplxF ._95lLK{color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);padding:var(--altum-control-inset) var(--altum-g-space-1)}.oplxF .Afnz6{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-xs);margin-bottom:var(--altum-g-space-2)}.oplxF .J-3Vr{align-content:stretch;display:grid;gap:var(--altum-g-space-1);min-height:calc(var(--altum-control-height-sm)*6);text-align:center}.oplxF .VrPnd{grid-template-columns:repeat(3,1fr)}.oplxF .vo94R{grid-template-columns:repeat(4,1fr)}.oplxF .tNYuD{font-weight:var(--altum-g-font-weight-medium);padding:var(--altum-g-space-2) var(--altum-g-space-1)}.oplxF .dF8j7,.oplxF .tNYuD{font-size:var(--altum-g-font-size-2xs);width:100%}.oplxF .dF8j7{align-items:center;aspect-ratio:1;display:inline-flex;justify-content:center}.oplxF .dF8j7.eoULr{background-color:color-mix(in srgb,var(--altum-color-brand) 16%,#0000);border-radius:0}.oplxF .dF8j7.Jusrw{border-radius:var(--altum-g-radius-sm) 0 0 var(--altum-g-radius-sm)}.H5X-t:is(.oplxF .dF8j7.Jusrw){border-radius:var(--altum-g-radius-sm)}.oplxF .dF8j7.H5X-t{border-radius:0 var(--altum-g-radius-sm) var(--altum-g-radius-sm) 0}.oplxF .zOR5-{cursor:default;pointer-events:none}@media (max-width:768px){.oplxF{width:100%}}";const r={calendar:"oplxF",calendarHeader:"OimmF",calendarTitleSplit:"jixIO",calendarTitleButton:"_95lLK",calendarWeekdays:"Afnz6",calendarPeriodGrid:"J-3Vr",calendarMonths:"VrPnd",calendarYears:"vo94R",periodCell:"tNYuD",dayCell:"dF8j7",dayInRange:"eoULr",dayRangeStart:"Jusrw",dayRangeEnd:"H5X-t",dayEmpty:"zOR5-"};a(t);export{r as default};
@@ -1 +1 @@
1
- "use client";import{jsx as o,jsxs as v,Fragment as g}from"react/jsx-runtime";import{forwardRef as m}from"react";import{cn as p}from"../../utils/cn.js";import{composeEventHandlers as b}from"../../utils/composeEvents.js";import{useLocale as Y}from"../../locales/localeContext.js";import{useCalendarContext as h}from"./Calendar.context.js";import{CalendarMonthsPanel as R,CalendarYearsPanel as D,CalendarDaysPanel as E}from"./Calendar.views.js";import{YEARS_PER_PAGE as H}from"./Calendar.types.js";import P from"../../styles/unstyledControl.module.css.js";import u from"../../styles/calendarChrome.module.css.js";import C from"./Calendar.module.css.js";import{ChevronButton as M}from"../../base/ChevronButton/ChevronButton.js";const k=m(function({className:e,children:t,onClick:r,...n},l){return o("div",{ref:l,className:p(C.calendar,e),onClick:b(r,s=>{s.stopPropagation()}),...n,children:t})});k.displayName="Calendar.Root";const x=m(function({className:e,children:t,...r},n){return o("div",{ref:n,className:p(u.header,C.calendarHeader,e),...r,children:t})});x.displayName="Calendar.Header";const T=m(function({className:e,...t},r){const{messages:n,t:l}=Y(),s=n.calendar.months,{year:a,month:f,view:d,yearPageStart:c,setView:i}=h("Calendar.Title"),N=s[f]??"",y=p(P.control,u.cell,C.calendarTitleButton);return v("span",{ref:r,className:p(C.calendarTitle,d==="days"?C.calendarTitleSplit:"",e),...t,children:[d==="years"&&`${c} \u2013 ${c+H-1}`,d==="months"&&o("button",{type:"button",className:y,onClick:()=>i("years"),"aria-label":l("calendar.selectYear",{year:a}),children:a}),d==="days"&&v(g,{children:[o("button",{type:"button",className:y,onClick:()=>i("months"),"aria-label":l("calendar.selectMonth",{month:N}),children:N}),o("button",{type:"button",className:y,onClick:()=>i("years"),"aria-label":l("calendar.selectYear",{year:a}),children:a})]})]})});T.displayName="Calendar.Title";const w=m(function({direction:e,className:t,"aria-label":r,onClick:n,...l},s){const{messages:a}=Y(),{view:f,shiftView:d}=h("Calendar.Nav"),c=e==="prev",i=f==="days"?c?a.calendar.prevMonth:a.calendar.nextMonth:f==="months"?c?a.calendar.prevYear:a.calendar.nextYear:c?a.calendar.prevYears:a.calendar.nextYears;return o(M,{ref:s,direction:e,className:p(P.control,u.navBtn,t),onClick:b(n,()=>d(c?-1:1)),"aria-label":r??i,...l})});w.displayName="Calendar.Nav";const B=m(function({className:e,renderDayCell:t,...r},n){const{view:l,renderDayCell:s}=h("Calendar.Body");return l==="months"?o(R,{ref:n,className:e,...r}):l==="years"?o(D,{ref:n,className:e,...r}):o(E,{ref:n,className:e,renderDayCell:t??s,...r})});B.displayName="Calendar.Body";export{B as CalendarBody,x as CalendarHeader,w as CalendarNav,k as CalendarRoot,T as CalendarTitle};
1
+ "use client";import{jsx as s,jsxs as N,Fragment as B}from"react/jsx-runtime";import{forwardRef as d}from"react";import{ButtonIcon as D}from"../ButtonIcon/ButtonIcon.js";import{IconChevronLeft as E}from"../../icons/icons/IconChevronLeft.js";import{IconChevronRight as H}from"../../icons/icons/IconChevronRight.js";import{cn as p}from"../../utils/cn.js";import{composeEventHandlers as u}from"../../utils/composeEvents.js";import{useCalendarContext as y}from"./Calendar.context.js";import{CalendarDaysPanel as z,CalendarPeriodPanel as I}from"./Calendar.views.js";import{YEARS_PER_PAGE as M}from"./Calendar.types.js";import S from"../../styles/unstyledControl.module.css.js";import v from"../../styles/calendarChrome.module.css.js";import C from"./Calendar.module.css.js";const w=d(function({className:e,children:t,onClick:a,...r},l){return s("div",{ref:l,className:p(C.calendar,e),onClick:u(a,n=>{n.stopPropagation()}),...r,children:t})});w.displayName="Calendar.Root";const x=d(function({className:e,children:t,...a},r){return s("div",{ref:r,className:p(v.header,C.calendarHeader,e),...a,children:t})});x.displayName="Calendar.Header";const P=d(function({className:e,...t},a){const{calendar:r,t:l,year:n,month:o,view:i,yearPageStart:m,setView:c}=y("Calendar.Title"),f=r.months[o]??"",T=p(S.control,v.cell,C.calendarTitleButton),h=(b,g,k)=>s("button",{type:"button",className:T,onClick:()=>c(g),"aria-label":k,children:b});return N("span",{ref:a,className:p(i==="days"&&C.calendarTitleSplit,e),...t,children:[i==="years"&&`${m} \u2013 ${m+M-1}`,i==="months"&&h(n,"years",l("calendar.selectYear",{year:n})),i==="days"&&N(B,{children:[h(f,"months",l("calendar.selectMonth",{month:f})),h(n,"years",l("calendar.selectYear",{year:n}))]})]})});P.displayName="Calendar.Title";const Y=d(function({direction:e,className:t,"aria-label":a,onClick:r,...l},n){const{calendar:o,view:i,shiftView:m}=y("Calendar.Nav"),c=e==="prev",f=i==="days"?c?o.prevMonth:o.nextMonth:i==="months"?c?o.prevYear:o.nextYear:c?o.prevYears:o.nextYears;return s(D,{ref:n,variant:"ghost",size:"sm",className:t,onClick:u(r,()=>m(c?-1:1)),"aria-label":a??f,...l,icon:c?s(E,{size:16,"aria-hidden":!0}):s(H,{size:16,"aria-hidden":!0})})});Y.displayName="Calendar.Nav";const R=d(function({className:e,renderDayCell:t,...a},r){const{view:l,renderDayCell:n}=y("Calendar.Body");return l==="days"?s(z,{ref:r,className:e,renderDayCell:t??n,...a}):s(I,{ref:r,className:e,...a})});R.displayName="Calendar.Body";export{R as CalendarBody,x as CalendarHeader,Y as CalendarNav,w as CalendarRoot,P as CalendarTitle};
@@ -1 +1 @@
1
- "use client";import{startOfDay as s,addDays as i,isSameDay as y,compareDay as u}from"../../utils/date.js";import{getWeekStart as x}from"../../utils/date.js";function f(t,a){const e=new Date(t,a+1,0).getDate();let o=new Date(t,a,1).getDay()-1;o<0&&(o=6);const n=[];for(let r=0;r<o;r++)n.push({day:0,isEmpty:!0,date:null});for(let r=1;r<=e;r++)n.push({day:r,isEmpty:!1,date:new Date(t,a,r)});return n}function l(t,a,e){return!a||!e?!1:u(t,a)>0&&u(t,e)<0}function d(t,a){const e=s(a);return!t.start||t.start&&t.end?{start:e,end:void 0}:u(e,t.start)<0?{start:e,end:s(t.start)}:{start:s(t.start),end:e}}function D(t){return y(t,new Date)}function g(t,a){const e=s(t);return Array.from({length:Math.max(1,a)},(o,n)=>i(e,n))}function m(t,a){return`${a[t.getMonth()]??""} ${t.getFullYear()}`}function c(t,a=1){return a===1?[...t]:[t[6]??"",...t.slice(0,6)]}function p(t,a=1,e){const o=c(e,a),n=a===1?t.getDay()===0?6:t.getDay()-1:t.getDay();return o[n]??""}export{i as addDays,g as buildDayStrip,f as buildMonthDays,u as compareDay,m as formatMonthYear,x as getWeekStart,l as isDateInRange,y as isSameDay,D as isToday,d as selectNextRange,s as startOfDay,p as weekdayLabelFor,c as weekdayLabels};
1
+ "use client";import{startOfDay as r,addDays as u,isSameDay as i,compareDay as n}from"../../utils/date.js";import{getWeekStart as x}from"../../utils/date.js";function f(t,e,a){return!e||!a?!1:n(t,e)>0&&n(t,a)<0}function y(t,e){const a=r(e);return!t.start||t.start&&t.end?{start:a,end:void 0}:n(a,t.start)<0?{start:a,end:r(t.start)}:{start:r(t.start),end:a}}function d(t){return i(t,new Date)}function l(t,e){const a=r(t);return Array.from({length:Math.max(1,e)},(s,o)=>u(a,o))}function D(t,e){return`${e[t.getMonth()]??""} ${t.getFullYear()}`}function c(t,e=1){return e===1?[...t]:[t[6]??"",...t.slice(0,6)]}function g(t,e=1,a){const s=c(a,e),o=e===1?t.getDay()===0?6:t.getDay()-1:t.getDay();return s[o]??""}export{u as addDays,l as buildDayStrip,n as compareDay,D as formatMonthYear,x as getWeekStart,f as isDateInRange,i as isSameDay,d as isToday,y as selectNextRange,r as startOfDay,g as weekdayLabelFor,c as weekdayLabels};
@@ -1 +1 @@
1
- "use client";import{jsx as d,jsxs as T}from"react/jsx-runtime";import{forwardRef as S,useRef as j}from"react";import{isDateInRange as O,isToday as U,selectNextRange as V}from"./Calendar.utils.js";import{getGridIndex as W,focusElement as _}from"../../utils/a11y.js";import{cn as k}from"../../utils/cn.js";import{useLocale as w}from"../../locales/localeContext.js";import{useCalendarContext as x}from"./Calendar.context.js";import{YEARS_PER_PAGE as B}from"./Calendar.types.js";import F from"../../styles/unstyledControl.module.css.js";import u from"../../styles/calendarChrome.module.css.js";import t from"./Calendar.module.css.js";import{isSameDay as M}from"../../utils/date.js";const I=S(function({className:y,label:o,columnsClass:f,items:s,...c},i){return d("div",{ref:i,className:k(t.calendarPeriodGrid,f,y),role:"grid","aria-label":o,...c,children:s.map(a=>d("button",{type:"button",role:"gridcell",className:k(F.control,u.cell,t.periodCell,a.selected?u.selected:"",a.current&&!a.selected?u.today:""),"aria-selected":a.selected,"aria-label":a.ariaLabel,onClick:a.onSelect,children:a.label},a.key))})}),q=S(function({className:y,renderDayCell:o,...f},s){const{messages:c}=w(),i=c.calendar.months,a=c.calendar.weekdaysShort,{selectionMode:m,value:l,onChange:N,rangeValue:r,onRangeChange:n,year:g,month:$,days:v,shiftView:h}=x("Calendar.Body"),D=j(null),p=m==="range",L=p?r.end??r.start:l;return T("div",{ref:s,className:k(t.calendarBody,y),...f,children:[d("div",{className:k(u.weekGrid,t.calendarWeekdays),"aria-hidden":"true",children:a.map(e=>d("div",{children:e},e))}),d("div",{ref:D,className:u.weekGrid,role:"grid","aria-label":`${i[$]??""} ${g}`,onKeyDown:e=>{if(e.key==="PageUp"||e.key==="PageDown"){e.preventDefault(),h(e.key==="PageUp"?-1:1);return}const C=Array.from(D.current?.querySelectorAll("button")??[]),b=W(C.indexOf(document.activeElement),C.length,e.key,7);b!==null&&(e.preventDefault(),_(C[b]))},children:v.map((e,C)=>{if(e.isEmpty||!e.date)return d("div",{className:t.dayEmpty,role:"presentation"},`empty-${C}`);const b=!!(p&&r.start&&M(r.start,e.date)),E=!!(p&&r.end&&M(r.end,e.date)),Y=!!(p&&O(e.date,r.start,r.end)),R=p?b||E:l?M(l,e.date):!1,P=U(e.date),G=R||!L&&v.findIndex(A=>!A.isEmpty&&A.date)===C;return d("button",{type:"button",role:"gridcell",tabIndex:G?0:-1,className:k(F.control,u.cell,t.dayCell,R?u.selected:"",Y?t.dayInRange:"",b?t.dayRangeStart:"",E?t.dayRangeEnd:"",P?u.today:""),"aria-selected":R||Y,"aria-current":P?"date":void 0,"aria-label":`${e.day} ${i[$]??""} ${g}`,onClick:()=>{p?n?.(V(r,e.date)):N(e.date)},children:o?o({date:e.date,day:e.day,isSelected:R,isToday:P,rangeStart:b,rangeEnd:E,inRange:Y}):e.day},`day-${e.day}-${e.date.getTime()}`)})})]})}),K=S(function({className:y,...o},f){const{messages:s,t:c}=w(),i=s.calendar.months,a=s.calendar.monthsShort,{value:m,year:l,month:N,selectMonth:r}=x("Calendar.Body"),n=m&&m.getFullYear()===l?m.getMonth():null,g=new Date,$=g.getFullYear()===l;return d(I,{ref:f,className:y,label:c("calendar.monthsOfYear",{year:l}),columnsClass:t.calendarMonths,items:a.map((v,h)=>{const D=n===h||!m&&N===h;return{key:v,label:v,ariaLabel:`${i[h]??""} ${l}`,selected:D,current:$&&g.getMonth()===h,onSelect:()=>r(h)}}),...o})}),z=S(function({className:y,...o},f){const{t:s}=w(),{value:c,year:i,yearPageStart:a,selectYear:m}=x("Calendar.Body"),l=new Date().getFullYear();return d(I,{ref:f,className:y,label:s("calendar.yearsRange",{start:a,end:a+B-1}),columnsClass:t.calendarYears,items:Array.from({length:B},(N,r)=>{const n=a+r,g=(c?.getFullYear()??i)===n;return{key:n,label:n,ariaLabel:`${n}`,selected:g,current:l===n,onSelect:()=>m(n)}}),...o})});export{q as CalendarDaysPanel,K as CalendarMonthsPanel,z as CalendarYearsPanel};
1
+ "use client";import{jsxs as M,jsx as g}from"react/jsx-runtime";import{forwardRef as A}from"react";import{isDateInRange as j,selectNextRange as B}from"./Calendar.utils.js";import{getGridIndex as O,focusElement as T}from"../../utils/a11y.js";import{cn as S}from"../../utils/cn.js";import{useCalendarContext as F}from"./Calendar.context.js";import{YEARS_PER_PAGE as I}from"./Calendar.types.js";import L from"../../styles/unstyledControl.module.css.js";import i from"../../styles/calendarChrome.module.css.js";import n from"./Calendar.module.css.js";import{isSameDay as k}from"../../utils/date.js";const V=A(function({className:b,label:f,columnsClass:D,items:h,...m},l){return g("div",{ref:l,className:S(n.calendarPeriodGrid,D,b),role:"grid","aria-label":f,...m,children:h.map(e=>g("button",{type:"button",role:"gridcell",className:S(L.control,i.cell,n.periodCell,e.selected&&i.selected,e.current&&!e.selected&&i.today),"aria-selected":e.selected,"aria-label":e.ariaLabel,onClick:e.onSelect,children:e.label},e.key))})}),W=A(function({className:b,renderDayCell:f,...D},h){const{calendar:m,selectionMode:l,value:e,onChange:v,rangeValue:a,onRangeChange:$,year:y,month:p,shiftView:w}=F("Calendar.Body"),t=l==="range",P=t?a.end??a.start:e,C=(new Date(y,p,1).getDay()+6)%7,o=new Date(y,p+1,0).getDate(),s=new Date,G=m.months[p]??"",U=!P;return M("div",{ref:h,className:b,...D,children:[g("div",{className:S(i.weekGrid,n.calendarWeekdays),"aria-hidden":"true",children:m.weekdaysShort.map(r=>g("div",{children:r},r))}),M("div",{className:i.weekGrid,role:"grid","aria-label":`${G} ${y}`,onKeyDown:r=>{if(r.key==="PageUp"||r.key==="PageDown"){r.preventDefault(),w(r.key==="PageUp"?-1:1);return}const u=Array.from(r.currentTarget.querySelectorAll("button")),d=O(u.indexOf(document.activeElement),u.length,r.key,7);d!==null&&(r.preventDefault(),T(u[d]))},children:[Array.from({length:C},(r,u)=>g("div",{className:n.dayEmpty,role:"presentation"},`empty-${u}`)),Array.from({length:o},(r,u)=>{const d=u+1,c=new Date(y,p,d),R=!!(t&&a.start&&k(a.start,c)),E=!!(t&&a.end&&k(a.end,c)),Y=!!(t&&j(c,a.start,a.end)),N=t?R||E:e?k(e,c):!1,x=k(c,s);return g("button",{type:"button",role:"gridcell",tabIndex:N||U&&d===1?0:-1,className:S(L.control,i.cell,n.dayCell,N&&i.selected,Y&&n.dayInRange,R&&n.dayRangeStart,E&&n.dayRangeEnd,x&&i.today),"aria-selected":N||Y,"aria-current":x?"date":void 0,"aria-label":`${d} ${G} ${y}`,onClick:()=>{t?$?.(B(a,c)):v(c)},children:f?f({date:c,day:d,isSelected:N,isToday:x,rangeStart:R,rangeEnd:E,inRange:Y}):d},`day-${d}`)})]})]})}),_=A(function({className:b,...f},D){const{calendar:h,t:m,value:l,year:e,month:v,yearPageStart:a,view:$,selectMonth:y,selectYear:p}=F("Calendar.Body"),w=new Date,t=$==="years",P=l&&l.getFullYear()===e?l.getMonth():null;return g(V,{ref:D,className:b,label:t?m("calendar.yearsRange",{start:a,end:a+I-1}):m("calendar.monthsOfYear",{year:e}),columnsClass:t?n.calendarYears:n.calendarMonths,items:t?Array.from({length:I},(C,o)=>{const s=a+o;return{key:s,label:s,ariaLabel:`${s}`,selected:(l?.getFullYear()??e)===s,current:w.getFullYear()===s,onSelect:()=>p(s)}}):h.monthsShort.map((C,o)=>({key:C,label:C,ariaLabel:`${h.months[o]??""} ${e}`,selected:P===o||!l&&v===o,current:w.getFullYear()===e&&w.getMonth()===o,onSelect:()=>y(o)})),...f})});export{W as CalendarDaysPanel,_ as CalendarPeriodPanel};
@@ -1 +1 @@
1
- "use client";import{jsxs as h,jsx as s}from"react/jsx-runtime";import{forwardRef as _,useMemo as p}from"react";import{weekdayLabels as G,isToday as J}from"../Calendar/Calendar.utils.js";import{resolveAllDay as b,segmentSpanByWeeks as Q,packSpanSegments as U}from"./calendar.schedule.js";import{useCalendarBoard as X}from"./CalendarBoard.context.js";import{CalendarBoardTaskChip as T}from"./CalendarBoard.TaskChip.js";import{buildMonthWeeks as Z,isMultiDayTask as I,calendarDateKey as O}from"./CalendarBoard.utils.js";import e from"./CalendarBoard.module.css.js";import ee from"../../styles/unstyledControl.module.css.js";import{cn as g}from"../../utils/cn.js";import{useLocale as ae}from"../../locales/localeContext.js";import{startOfDay as te,isSameDay as re}from"../../utils/date.js";const $=_(function({className:A,maxChipsPerDay:W=3,...L},R){const{messages:V,t:N}=ae(),{months:j,weekdaysShort:K}=V.calendar,{viewDate:u,selectedDate:C,setSelectedDate:S,setViewDate:w,setView:q,tasks:c,weekStartsOn:y,renderDayCell:D}=X("CalendarBoard.Month"),f=p(()=>Z(u,y),[u,y]),z=u.getMonth(),E=G(K,y),v=p(()=>c.filter(t=>b(t)&&I(t.start,t.end)),[c]),F=p(()=>f.map((t,o)=>{const d=v.map(r=>{const m=Q(r.start,r.end,[t])[0];return m?{item:r,segment:m.segment}:null}).filter(r=>r!==null);return{weekIndex:o,...U(d)}}),[v,f]),H=p(()=>{const t=new Map;for(const o of c){if(b(o)&&I(o.start,o.end))continue;const d=O(te(o.start)),r=t.get(d)??[];r.push(o),t.set(d,r)}return t},[c]),P=22;return h("div",{ref:R,className:g(e.month,A),...L,children:[s("div",{className:e.weekdayRow,role:"row",children:E.map(t=>s("div",{className:e.weekdayLabel,role:"columnheader",children:t},t))}),s("div",{className:e.monthWeeks,children:f.map((t,o)=>{const d=F[o],r=Math.max(d?.laneCount??0,0),m=r>0?r*P+Math.max(0,r-1)*2:0;return h("div",{className:e.weekRow,style:{"--altum-calendar-board-span-height":`${m}px`},children:[s("div",{className:e.weekDays,children:t.map(a=>{const i=a.getMonth()===z,n=C?re(a,C):!1,l=J(a),k=H.get(O(a))??[],M=k.slice(0,W),B=k.length-M.length,Y={date:a,dayOfMonth:a.getDate(),isCurrentMonth:i,isToday:l,isSelected:n,tasks:k};return D?s("div",{className:e.dayCell,children:D(Y)},a.toISOString()):h("div",{role:"gridcell",className:g(e.dayCell,e.dayCellSurface,i?"":e.dayOutside,n?e.daySelected:"",l&&!n?e.dayToday:""),"aria-current":l?"date":void 0,"aria-selected":n,children:[s("button",{type:"button",className:g(ee.control,e.dayNumberBtn),onClick:()=>{S(a),w(a)},onDoubleClick:()=>{S(a),w(a),q("day")},"aria-label":N("calendarBoard.dayWithoutTasks",{day:a.getDate(),month:j[a.getMonth()]??""}),"aria-pressed":n,children:s("span",{className:e.dayNumber,children:a.getDate()})}),h("div",{className:e.dayChips,children:[M.map(x=>s(T,{task:x,layout:"chip"},x.id)),B>0&&s("span",{className:e.dayMore,children:N("calendarBoard.moreTasks",{count:B})})]})]},a.toISOString())})}),r>0&&s("div",{className:e.spanTrack,children:Array.from({length:r},(a,i)=>s("div",{className:e.spanLane,children:d?.packed.filter(n=>n.lane===i).map(({item:n,segment:l})=>s("div",{className:e.spanSlot,style:{gridColumn:`${l.startIndex+1} / ${l.endIndex+2}`},"data-task-id":n.id,children:s(T,{task:n,layout:"bar",continuesBefore:l.continuesBefore,continuesAfter:l.continuesAfter})},`${n.id}-${o}-${l.startIndex}-${i}`))},i))})]},t[0].toISOString())})})]})});$.displayName="CalendarBoard.Month";export{$ as CalendarBoardMonth};
1
+ "use client";import{jsxs as h,jsx as s}from"react/jsx-runtime";import{forwardRef as G,useMemo as p}from"react";import{weekdayLabels as J,isToday as Q}from"../Calendar/Calendar.utils.js";import{resolveAllDay as b,segmentSpanByWeeks as U,packSpanSegments as X}from"./calendar.schedule.js";import{useCalendarBoard as Y}from"./CalendarBoard.context.js";import{CalendarBoardTaskChip as T}from"./CalendarBoard.TaskChip.js";import{buildMonthWeeks as Z,isMultiDayTask as $,calendarDateKey as I}from"./CalendarBoard.utils.js";import e from"./CalendarBoard.module.css.js";import ee from"../../styles/unstyledControl.module.css.js";import{cn as g}from"../../utils/cn.js";import{useLocale as ae}from"../../locales/localeContext.js";import{ruSlice as te}from"../../locales/slices/calendar.ru.js";import{ruSlice as re}from"../../locales/slices/calendarBoard.ru.js";import{startOfDay as se,isSameDay as ne}from"../../utils/date.js";const oe={calendar:te,calendarBoard:re},O=G(function({className:A,maxChipsPerDay:W=3,...L},R){const{messages:V,t:S}=ae(oe),{months:j,weekdaysShort:K}=V.calendar,{viewDate:u,selectedDate:N,setSelectedDate:w,setViewDate:C,setView:q,tasks:c,weekStartsOn:y,renderDayCell:D}=Y("CalendarBoard.Month"),f=p(()=>Z(u,y),[u,y]),z=u.getMonth(),E=J(K,y),v=p(()=>c.filter(t=>b(t)&&$(t.start,t.end)),[c]),F=p(()=>f.map((t,o)=>{const l=v.map(r=>{const m=U(r.start,r.end,[t])[0];return m?{item:r,segment:m.segment}:null}).filter(r=>r!==null);return{weekIndex:o,...X(l)}}),[v,f]),H=p(()=>{const t=new Map;for(const o of c){if(b(o)&&$(o.start,o.end))continue;const l=I(se(o.start)),r=t.get(l)??[];r.push(o),t.set(l,r)}return t},[c]),P=22;return h("div",{ref:R,className:g(e.month,A),...L,children:[s("div",{className:e.weekdayRow,role:"row",children:E.map(t=>s("div",{className:e.weekdayLabel,role:"columnheader",children:t},t))}),s("div",{className:e.monthWeeks,children:f.map((t,o)=>{const l=F[o],r=Math.max(l?.laneCount??0,0),m=r>0?r*P+Math.max(0,r-1)*2:0;return h("div",{className:e.weekRow,style:{"--altum-calendar-board-span-height":`${m}px`},children:[s("div",{className:e.weekDays,children:t.map(a=>{const i=a.getMonth()===z,n=N?ne(a,N):!1,d=Q(a),k=H.get(I(a))??[],M=k.slice(0,W),B=k.length-M.length,_={date:a,dayOfMonth:a.getDate(),isCurrentMonth:i,isToday:d,isSelected:n,tasks:k};return D?s("div",{className:e.dayCell,children:D(_)},a.toISOString()):h("div",{role:"gridcell",className:g(e.dayCell,e.dayCellSurface,i?"":e.dayOutside,n?e.daySelected:"",d&&!n?e.dayToday:""),"aria-current":d?"date":void 0,"aria-selected":n,children:[s("button",{type:"button",className:g(ee.control,e.dayNumberBtn),onClick:()=>{w(a),C(a)},onDoubleClick:()=>{w(a),C(a),q("day")},"aria-label":S("calendarBoard.dayWithoutTasks",{day:a.getDate(),month:j[a.getMonth()]??""}),"aria-pressed":n,children:s("span",{className:e.dayNumber,children:a.getDate()})}),h("div",{className:e.dayChips,children:[M.map(x=>s(T,{task:x,layout:"chip"},x.id)),B>0&&s("span",{className:e.dayMore,children:S("calendarBoard.moreTasks",{count:B})})]})]},a.toISOString())})}),r>0&&s("div",{className:e.spanTrack,children:Array.from({length:r},(a,i)=>s("div",{className:e.spanLane,children:l?.packed.filter(n=>n.lane===i).map(({item:n,segment:d})=>s("div",{className:e.spanSlot,style:{gridColumn:`${d.startIndex+1} / ${d.endIndex+2}`},"data-task-id":n.id,children:s(T,{task:n,layout:"bar",continuesBefore:d.continuesBefore,continuesAfter:d.continuesAfter})},`${n.id}-${o}-${d.startIndex}-${i}`))},i))})]},t[0].toISOString())})})]})});O.displayName="CalendarBoard.Month";export{O as CalendarBoardMonth};
@@ -1 +1 @@
1
- "use client";import{jsxs as c,jsx as l}from"react/jsx-runtime";import{forwardRef as ue,useId as he,useState as pe,useCallback as ve,useMemo as f}from"react";import{buildDayStrip as ge,formatMonthYear as z,weekdayLabelFor as T,isToday as V}from"../Calendar/Calendar.utils.js";import{buildHourMarks as fe,resolveAllDay as J,segmentSpanInColumns as ye,packSpanSegments as Se,clipEventToDay as Ne,packTimedEventsInDay as $e}from"./calendar.schedule.js";import{startOfDay as y,isSameDay as xe,formatHourTime as De,addDays as K}from"../../utils/date.js";import{CalendarBoardEvent as Q}from"./CalendarBoard.Event.js";import Ce from"../../styles/unstyledControl.module.css.js";import I from"../../styles/calendarChrome.module.css.js";import t from"./CalendarBoard.Schedule.module.css.js";import{cn as u}from"../../utils/cn.js";import{mergeStyles as be}from"../../utils/mergeStyles.js";import{useLocale as ke}from"../../locales/localeContext.js";import{SCHEDULE_LANE_HEIGHT as H}from"./CalendarBoard.Schedule.types.js";import{resolveWindowStart as we,formatTimeRange as Te}from"./CalendarBoard.Schedule.utils.js";import{PeriodHeader as Ie}from"../../base/PeriodHeader/PeriodHeader.js";const U=ue(function({viewDate:h,onViewDateChange:E,daysCount:o=7,weekStartsOn:p=1,events:S=[],dayStartHour:v=8,dayEndHour:g=20,hourHeight:N=48,selectedDate:C,onSelectDate:L,onEventClick:$,showHeader:B=!0,showNav:X=!0,className:Z,"aria-label":ee,renderSpanEvent:P,renderTimedEvent:O,style:te,...ae},re){const{messages:m}=ke(),{months:A,weekdaysShort:b}=m.calendar,M=he(),[le,oe]=pe(()=>y(h??C??new Date)),x=h?y(h):le,R=ve(e=>{const a=y(e);h===void 0&&oe(a),E?.(a)},[h,E]),k=f(()=>we(x,o,p),[x,o,p]),i=f(()=>ge(k,o),[o,k]),G=f(()=>fe(v,g),[g,v]),ne=Math.max(0,g-v)*N,w=C?y(C):void 0,W=e=>{if(o===1){R(K(x,e));return}R(K(k,e*(o===5?7:o)))},Y=f(()=>{const e=S.filter(J).map(a=>{const r=ye(a.start,a.end,i);return r?{item:a,segment:r}:null}).filter(a=>a!==null);return Se(e)},[i,S]),ie=f(()=>i.map(e=>{const a=S.filter(r=>!J(r)).map(r=>{const s=Ne(r.start,r.end,e);return s?{item:r,start:s.start,end:s.end}:null}).filter(r=>r!==null);return $e(a,v,g)}),[i,g,v,S]),se=(()=>{if(o!==1)return z(w??i[0]??x,A);const e=i[0];return`${T(e,p,b)}, ${e.getDate()} ${z(e,A)}`})(),_=Math.max(Y.laneCount,1)*H+8,de=be({"--altum-schedule-columns":String(o),"--altum-schedule-hour-height":`${N}px`,"--altum-schedule-all-day-height":`${_}px`},te);return c("div",{ref:re,className:u(t.root,Z),role:"region","aria-label":ee??m.calendarBoard.scheduleAria,"aria-labelledby":B?M:void 0,style:de,...ae,children:[l(Ie,{title:se,titleId:M,showTitle:B,showNav:X,onPrev:()=>W(-1),onNext:()=>W(1),prevLabel:m.calendarBoard.prevPeriod,nextLabel:m.calendarBoard.nextPeriod}),c("div",{className:t.gutterRow,children:[l("div",{className:t.gutterCorner,"aria-hidden":"true"}),l("div",{className:t.cols,style:{gridTemplateColumns:`repeat(${o}, minmax(0, 1fr))`},children:i.map(e=>{const a=w?xe(e,w):!1,r=V(e),s=T(e,p,b);return c("button",{type:"button",className:u(Ce.control,I.cell,t.dayHeader,a?I.selected:"",a?t.dayHeaderSelected:"",r?I.today:""),onClick:()=>L?.(y(e)),"aria-pressed":L?a:void 0,"aria-current":r?"date":void 0,children:[l("span",{className:t.dayWeekday,children:s}),l("span",{className:t.dayNumber,children:e.getDate()})]},e.toISOString())})})]}),c("div",{className:t.gutterRow,"aria-label":m.calendarBoard.allDay,children:[l("div",{className:t.gutterLabel,children:m.calendarBoard.allDayShort}),c("div",{className:u(t.cols,t.allDayTrack),style:{gridTemplateColumns:`repeat(${o}, minmax(0, 1fr))`,minHeight:_},children:[i.map(e=>l("div",{className:t.allDayCell},`allday-cell-${e.toISOString()}`)),Y.packed.map(({item:e,segment:a,lane:r})=>{const s=a.endIndex-a.startIndex+1,d=a.startIndex/o*100,n=s/o*100,D=P?P({event:e,continuesBefore:a.continuesBefore,continuesAfter:a.continuesAfter,lane:r}):l(Q,{title:e.title,color:e.color,continuesBefore:a.continuesBefore,continuesAfter:a.continuesAfter,onClick:$?()=>$(e):void 0});return l("div",{className:t.spanSlot,style:{left:`calc(${d}% + 2px)`,width:`calc(${n}% - 4px)`,top:4+r*H,height:H-2},children:D},`span-${e.id}-${a.startIndex}`)})]})]}),c("div",{className:u(t.gutterRow,t.timeGrid),style:{height:ne},children:[l("div",{className:t.gutter,children:G.map(e=>l("div",{className:t.hourMark,style:{height:N},children:l("span",{className:t.hourLabel,children:De(e)})},e))}),l("div",{className:u(t.cols,t.columns),style:{gridTemplateColumns:`repeat(${o}, minmax(0, 1fr))`},role:"grid","aria-colcount":o,children:i.map((e,a)=>{const r=V(e),s=ie[a]??[];return c("div",{className:u(t.column,r?t.columnToday:""),role:"gridcell","aria-label":`${T(e,p,b)} ${e.getDate()}`,children:[G.map(d=>l("div",{className:t.hourLine,style:{height:N}},`${e.toISOString()}-${d}`)),l("div",{className:t.eventsLayer,children:s.map(({item:d,layout:n,lane:D,laneCount:j})=>{const F=100/j,ce=D*F,q=Te(n.start,n.end),me=O?O({event:d,start:n.start,end:n.end,topPercent:n.topPercent,heightPercent:n.heightPercent,lane:D,laneCount:j,timeLabel:q}):l(Q,{layout:"timed",title:d.title,timeLabel:q,color:d.color,onClick:$?()=>$(d):void 0});return l("div",{className:t.timedSlot,style:{top:`${n.topPercent}%`,height:`${n.heightPercent}%`,left:`calc(${ce}% + 2px)`,width:`calc(${F}% - 4px)`},children:me},`timed-${d.id}-${n.start.getTime()}`)})})]},e.toISOString())})})]})]})});U.displayName="CalendarBoard.Schedule";export{U as CalendarSchedule};
1
+ "use client";import{jsxs as c,jsx as l}from"react/jsx-runtime";import{forwardRef as ue,useId as pe,useState as he,useCallback as ve,useMemo as y}from"react";import{buildDayStrip as fe,formatMonthYear as z,weekdayLabelFor as T,isToday as V}from"../Calendar/Calendar.utils.js";import{buildHourMarks as ye,resolveAllDay as J,segmentSpanInColumns as ge,packSpanSegments as Se,clipEventToDay as Ne,packTimedEventsInDay as $e}from"./calendar.schedule.js";import{startOfDay as g,isSameDay as xe,formatHourTime as De,addDays as K}from"../../utils/date.js";import{CalendarBoardEvent as Q}from"./CalendarBoard.Event.js";import Ce from"../../styles/unstyledControl.module.css.js";import B from"../../styles/calendarChrome.module.css.js";import t from"./CalendarBoard.Schedule.module.css.js";import{cn as u}from"../../utils/cn.js";import{mergeStyles as we}from"../../utils/mergeStyles.js";import{useLocale as be}from"../../locales/localeContext.js";import{SCHEDULE_LANE_HEIGHT as H}from"./CalendarBoard.Schedule.types.js";import{resolveWindowStart as ke,formatTimeRange as Te}from"./CalendarBoard.Schedule.utils.js";import{ruSlice as Be}from"../../locales/slices/calendar.ru.js";import{ruSlice as He}from"../../locales/slices/calendarBoard.ru.js";import{PeriodHeader as Ie}from"../../base/PeriodHeader/PeriodHeader.js";const Le={calendar:Be,calendarBoard:He},U=ue(function({viewDate:p,onViewDateChange:I,daysCount:i=7,weekStartsOn:h=1,events:S=[],dayStartHour:v=8,dayEndHour:f=20,hourHeight:N=48,selectedDate:C,onSelectDate:L,onEventClick:$,showHeader:E=!0,showNav:X=!0,className:Z,"aria-label":ee,renderSpanEvent:P,renderTimedEvent:O,style:te,...ae},re){const{messages:m}=be(Le),{months:A,weekdaysShort:w}=m.calendar,M=pe(),[le,ie]=he(()=>g(p??C??new Date)),x=p?g(p):le,R=ve(e=>{const a=g(e);p===void 0&&ie(a),I?.(a)},[p,I]),b=y(()=>ke(x,i,h),[x,i,h]),o=y(()=>fe(b,i),[i,b]),G=y(()=>ye(v,f),[f,v]),ne=Math.max(0,f-v)*N,k=C?g(C):void 0,W=e=>{if(i===1){R(K(x,e));return}R(K(b,e*(i===5?7:i)))},_=y(()=>{const e=S.filter(J).map(a=>{const r=ge(a.start,a.end,o);return r?{item:a,segment:r}:null}).filter(a=>a!==null);return Se(e)},[o,S]),oe=y(()=>o.map(e=>{const a=S.filter(r=>!J(r)).map(r=>{const s=Ne(r.start,r.end,e);return s?{item:r,start:s.start,end:s.end}:null}).filter(r=>r!==null);return $e(a,v,f)}),[o,f,v,S]),se=(()=>{if(i!==1)return z(k??o[0]??x,A);const e=o[0];return`${T(e,h,w)}, ${e.getDate()} ${z(e,A)}`})(),j=Math.max(_.laneCount,1)*H+8,de=we({"--altum-schedule-columns":String(i),"--altum-schedule-hour-height":`${N}px`,"--altum-schedule-all-day-height":`${j}px`},te);return c("div",{ref:re,className:u(t.root,Z),role:"region","aria-label":ee??m.calendarBoard.scheduleAria,"aria-labelledby":E?M:void 0,style:de,...ae,children:[l(Ie,{title:se,titleId:M,showTitle:E,showNav:X,onPrev:()=>W(-1),onNext:()=>W(1),prevLabel:m.calendarBoard.prevPeriod,nextLabel:m.calendarBoard.nextPeriod}),c("div",{className:t.gutterRow,children:[l("div",{className:t.gutterCorner,"aria-hidden":"true"}),l("div",{className:t.cols,style:{gridTemplateColumns:`repeat(${i}, minmax(0, 1fr))`},children:o.map(e=>{const a=k?xe(e,k):!1,r=V(e),s=T(e,h,w);return c("button",{type:"button",className:u(Ce.control,B.cell,t.dayHeader,a?B.selected:"",a?t.dayHeaderSelected:"",r?B.today:""),onClick:()=>L?.(g(e)),"aria-pressed":L?a:void 0,"aria-current":r?"date":void 0,children:[l("span",{className:t.dayWeekday,children:s}),l("span",{className:t.dayNumber,children:e.getDate()})]},e.toISOString())})})]}),c("div",{className:t.gutterRow,"aria-label":m.calendarBoard.allDay,children:[l("div",{className:t.gutterLabel,children:m.calendarBoard.allDayShort}),c("div",{className:u(t.cols,t.allDayTrack),style:{gridTemplateColumns:`repeat(${i}, minmax(0, 1fr))`,minHeight:j},children:[o.map(e=>l("div",{className:t.allDayCell},`allday-cell-${e.toISOString()}`)),_.packed.map(({item:e,segment:a,lane:r})=>{const s=a.endIndex-a.startIndex+1,d=a.startIndex/i*100,n=s/i*100,D=P?P({event:e,continuesBefore:a.continuesBefore,continuesAfter:a.continuesAfter,lane:r}):l(Q,{title:e.title,color:e.color,continuesBefore:a.continuesBefore,continuesAfter:a.continuesAfter,onClick:$?()=>$(e):void 0});return l("div",{className:t.spanSlot,style:{left:`calc(${d}% + 2px)`,width:`calc(${n}% - 4px)`,top:4+r*H,height:H-2},children:D},`span-${e.id}-${a.startIndex}`)})]})]}),c("div",{className:u(t.gutterRow,t.timeGrid),style:{height:ne},children:[l("div",{className:t.gutter,children:G.map(e=>l("div",{className:t.hourMark,style:{height:N},children:l("span",{className:t.hourLabel,children:De(e)})},e))}),l("div",{className:u(t.cols,t.columns),style:{gridTemplateColumns:`repeat(${i}, minmax(0, 1fr))`},role:"grid","aria-colcount":i,children:o.map((e,a)=>{const r=V(e),s=oe[a]??[];return c("div",{className:u(t.column,r?t.columnToday:""),role:"gridcell","aria-label":`${T(e,h,w)} ${e.getDate()}`,children:[G.map(d=>l("div",{className:t.hourLine,style:{height:N}},`${e.toISOString()}-${d}`)),l("div",{className:t.eventsLayer,children:s.map(({item:d,layout:n,lane:D,laneCount:F})=>{const Y=100/F,ce=D*Y,q=Te(n.start,n.end),me=O?O({event:d,start:n.start,end:n.end,topPercent:n.topPercent,heightPercent:n.heightPercent,lane:D,laneCount:F,timeLabel:q}):l(Q,{layout:"timed",title:d.title,timeLabel:q,color:d.color,onClick:$?()=>$(d):void 0});return l("div",{className:t.timedSlot,style:{top:`${n.topPercent}%`,height:`${n.heightPercent}%`,left:`calc(${ce}% + 2px)`,width:`calc(${Y}% - 4px)`},children:me},`timed-${d.id}-${n.start.getTime()}`)})})]},e.toISOString())})})]})]})});U.displayName="CalendarBoard.Schedule";export{U as CalendarSchedule};
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as o,jsxs as I}from"react/jsx-runtime";import{forwardRef as $,useMemo as V}from"react";import{weekdayLabels as A,isToday as H}from"../Calendar/Calendar.utils.js";import{useCalendarBoard as K}from"./CalendarBoard.context.js";import{calendarDateKey as N,buildMonthWeeks as P}from"./CalendarBoard.utils.js";import a from"./CalendarBoard.module.css.js";import b from"../../styles/unstyledControl.module.css.js";import{cn as y}from"../../utils/cn.js";import{useLocale as R}from"../../locales/localeContext.js";import{startOfDay as v,addDays as q}from"../../utils/date.js";const B=$(function({className:S,...Y},O){const{messages:W,t:f}=R(),{months:i,weekdaysShort:T}=W.calendar,{viewDate:x,setViewDate:g,setView:D,tasks:k,weekStartsOn:M,renderYearMonth:w}=K("CalendarBoard.Year"),m=x.getFullYear(),C=V(()=>{const n=new Map;for(const e of k){let r=v(e.start);const h=v(e.end);for(;r<h;){if(r.getFullYear()===m){const d=N(r),c=n.get(d)??[];c.push(e),n.set(d,c)}r=q(r,1)}}return n},[k,m]),L=A(T,M).map(n=>n[0]??"");return o("div",{ref:O,className:y(a.year,S),...Y,children:Array.from({length:12},(n,e)=>{const r=new Date(m,e,1),h=P(r,M),d=new Date().getFullYear()===m&&new Date().getMonth()===e,c={date:r,monthIndex:e,label:i[e]??"",isCurrentMonth:d,taskDates:new Set(C.keys())};return w?o("div",{className:a.yearMonth,children:w(c)},e):I("div",{className:y(a.yearMonth,a.yearMonthCard,d?a.yearMonthCurrent:""),children:[o("button",{type:"button",className:y(b.control,a.yearMonthLabelBtn),onClick:()=>{g(r),D("month")},children:i[e]}),o("div",{className:a.yearCols,children:L.map((l,t)=>o("span",{className:a.yearWeekday,children:l},`${l}-${t}`))}),o("div",{className:a.yearWeeks,children:h.map(l=>o("div",{className:a.yearCols,children:l.map(t=>{const s=t.getMonth()===e,u=C.get(N(t))??[],p=u.length>0,j=H(t);return o("button",{type:"button",disabled:!s,className:y(b.control,a.yearDay,s?"":a.yearDayOutside,j?a.yearDayToday:"",p?a.yearDayHasTask:""),title:s&&p?u.map(F=>F.title).join(`
2
- `):void 0,onClick:()=>{s&&(g(t),D("day"))},"aria-label":s?p?f("calendarBoard.dayWithTasks",{day:t.getDate(),month:i[e]??"",count:u.length}):f("calendarBoard.dayWithoutTasks",{day:t.getDate(),month:i[e]??""}):void 0,children:s?t.getDate():""},t.toISOString())})},l[0].toISOString()))})]},e)})})});B.displayName="CalendarBoard.Year";export{B as CalendarBoardYear};
1
+ "use client";import{jsx as o,jsxs as I}from"react/jsx-runtime";import{forwardRef as L,useMemo as V}from"react";import{weekdayLabels as z,isToday as A}from"../Calendar/Calendar.utils.js";import{useCalendarBoard as H}from"./CalendarBoard.context.js";import{calendarDateKey as N,buildMonthWeeks as K}from"./CalendarBoard.utils.js";import a from"./CalendarBoard.module.css.js";import S from"../../styles/unstyledControl.module.css.js";import{cn as y}from"../../utils/cn.js";import{useLocale as P}from"../../locales/localeContext.js";import{ruSlice as R}from"../../locales/slices/calendar.ru.js";import{ruSlice as q}from"../../locales/slices/calendarBoard.ru.js";import{startOfDay as b,addDays as E}from"../../utils/date.js";const G={calendar:R,calendarBoard:q},v=L(function({className:B,...Y},O){const{messages:W,t:f}=P(G),{months:d,weekdaysShort:T}=W.calendar,{viewDate:x,setViewDate:g,setView:D,tasks:k,weekStartsOn:w,renderYearMonth:M}=H("CalendarBoard.Year"),m=x.getFullYear(),C=V(()=>{const n=new Map;for(const e of k){let r=b(e.start);const h=b(e.end);for(;r<h;){if(r.getFullYear()===m){const l=N(r),c=n.get(l)??[];c.push(e),n.set(l,c)}r=E(r,1)}}return n},[k,m]),F=z(T,w).map(n=>n[0]??"");return o("div",{ref:O,className:y(a.year,B),...Y,children:Array.from({length:12},(n,e)=>{const r=new Date(m,e,1),h=K(r,w),l=new Date().getFullYear()===m&&new Date().getMonth()===e,c={date:r,monthIndex:e,label:d[e]??"",isCurrentMonth:l,taskDates:new Set(C.keys())};return M?o("div",{className:a.yearMonth,children:M(c)},e):I("div",{className:y(a.yearMonth,a.yearMonthCard,l?a.yearMonthCurrent:""),children:[o("button",{type:"button",className:y(S.control,a.yearMonthLabelBtn),onClick:()=>{g(r),D("month")},children:d[e]}),o("div",{className:a.yearCols,children:F.map((i,t)=>o("span",{className:a.yearWeekday,children:i},`${i}-${t}`))}),o("div",{className:a.yearWeeks,children:h.map(i=>o("div",{className:a.yearCols,children:i.map(t=>{const s=t.getMonth()===e,u=C.get(N(t))??[],p=u.length>0,$=A(t);return o("button",{type:"button",disabled:!s,className:y(S.control,a.yearDay,s?"":a.yearDayOutside,$?a.yearDayToday:"",p?a.yearDayHasTask:""),title:s&&p?u.map(j=>j.title).join(`
2
+ `):void 0,onClick:()=>{s&&(g(t),D("day"))},"aria-label":s?p?f("calendarBoard.dayWithTasks",{day:t.getDate(),month:d[e]??"",count:u.length}):f("calendarBoard.dayWithoutTasks",{day:t.getDate(),month:d[e]??""}):void 0,children:s?t.getDate():""},t.toISOString())})},i[0].toISOString()))})]},e)})})});v.displayName="CalendarBoard.Year";export{v as CalendarBoardYear};
@@ -1 +1 @@
1
- "use client";import{jsx as d,jsxs as x}from"react/jsx-runtime";import{forwardRef as f,useMemo as F}from"react";import{formatMonthYear as w,weekdayLabelFor as V}from"../Calendar/Calendar.utils.js";import{SegmentedControl as L}from"../SegmentedControl/SegmentedControl.js";import{useCalendarBoard as B}from"./CalendarBoard.context.js";import s from"./CalendarBoard.module.css.js";import{cn as c}from"../../utils/cn.js";import N from"../../styles/unstyledControl.module.css.js";import{useLocale as h}from"../../locales/localeContext.js";import{ChevronButton as C}from"../../base/ChevronButton/ChevronButton.js";import{getWeekStart as P,addDays as g}from"../../utils/date.js";const y=f(function({children:n,className:l,"aria-label":i,...a},e){const{messages:t}=h();return d("div",{ref:e,className:c(s.root,l),role:"region","aria-label":i??t.calendarBoard.ariaLabel,...a,children:n})});y.displayName="CalendarBoard.Root";const D=f(function({children:n,className:l,...i},a){return d("div",{ref:a,className:c(s.header,l),...i,children:n})});D.displayName="CalendarBoard.Header";const b=f(function({className:n,...l},i){const{view:a,viewDate:e,weekStartsOn:t}=B("CalendarBoard.Title"),{messages:m}=h(),{months:r,monthsShort:o,weekdaysShort:p}=m.calendar,k=F(()=>{if(a==="year")return String(e.getFullYear());if(a==="month")return w(e,r);if(a==="day")return`${V(e,t,p)}, ${e.getDate()} ${w(e,r)}`;const u=P(e,t),v=g(u,6);if(u.getMonth()===v.getMonth())return`${u.getDate()}\u2013${v.getDate()} ${w(u,r)}`;const M=o[u.getMonth()],Y=o[v.getMonth()];return`${u.getDate()} ${M} \u2013 ${v.getDate()} ${Y} ${v.getFullYear()}`},[r,o,a,e,p,t]);return d("div",{ref:i,className:c(s.title,n),...l,children:k})});b.displayName="CalendarBoard.Title";const S=f(function({className:n,...l},i){const{view:a,viewDate:e,setViewDate:t}=B("CalendarBoard.Nav"),{messages:m}=h(),r=o=>{if(a==="year"){t(new Date(e.getFullYear()+o,e.getMonth(),1));return}if(a==="month"){t(new Date(e.getFullYear(),e.getMonth()+o,1));return}if(a==="week"){t(g(e,o*7));return}t(g(e,o))};return x("div",{ref:i,className:c(s.nav,n),...l,children:[d(C,{direction:"prev",className:c(N.control,s.navBtn),"aria-label":m.calendarBoard.prevPeriod,onClick:()=>r(-1)}),d(C,{direction:"next",className:c(N.control,s.navBtn),"aria-label":m.calendarBoard.nextPeriod,onClick:()=>r(1)})]})});S.displayName="CalendarBoard.Nav";const $=f(function({className:n,variant:l="tinted",size:i="sm",...a},e){const{view:t,setView:m}=B("CalendarBoard.ViewSwitch"),{messages:r}=h(),o=[{label:r.calendarBoard.views.month,value:"month"},{label:r.calendarBoard.views.week,value:"week"},{label:r.calendarBoard.views.day,value:"day"},{label:r.calendarBoard.views.year,value:"year"}];return d("div",{ref:e,className:c(s.viewSwitch,n),...a,children:d(L,{"aria-label":r.calendarBoard.viewSwitchAria,options:o,value:t,onChange:m,variant:l,size:i})})});$.displayName="CalendarBoard.ViewSwitch";export{D as CalendarBoardHeader,S as CalendarBoardNav,y as CalendarBoardRoot,b as CalendarBoardTitle,$ as CalendarBoardViewSwitch};
1
+ "use client";import{jsx as d,jsxs as F}from"react/jsx-runtime";import{forwardRef as u,useMemo as V}from"react";import{formatMonthYear as g,weekdayLabelFor as Y}from"../Calendar/Calendar.utils.js";import{ButtonIcon as y}from"../ButtonIcon/ButtonIcon.js";import{IconChevronLeft as x}from"../../icons/icons/IconChevronLeft.js";import{IconChevronRight as L}from"../../icons/icons/IconChevronRight.js";import{SegmentedControl as R}from"../SegmentedControl/SegmentedControl.js";import{useCalendarBoard as B}from"./CalendarBoard.context.js";import f from"./CalendarBoard.module.css.js";import{cn as h}from"../../utils/cn.js";import{useLocale as v}from"../../locales/localeContext.js";import{ruSlice as I}from"../../locales/slices/calendar.ru.js";import{ruSlice as P}from"../../locales/slices/calendarBoard.ru.js";import{getWeekStart as T,addDays as p}from"../../utils/date.js";const w={calendar:I,calendarBoard:P},N=u(function({children:n,className:i,"aria-label":l,...a},e){const{messages:t}=v(w);return d("div",{ref:e,className:h(f.root,i),role:"region","aria-label":l??t.calendarBoard.ariaLabel,...a,children:n})});N.displayName="CalendarBoard.Root";const S=u(function({children:n,className:i,...l},a){return d("div",{ref:a,className:h(f.header,i),...l,children:n})});S.displayName="CalendarBoard.Header";const D=u(function({className:n,...i},l){const{view:a,viewDate:e,weekStartsOn:t}=B("CalendarBoard.Title"),{messages:s}=v(w),{months:r,monthsShort:o,weekdaysShort:C}=s.calendar,k=V(()=>{if(a==="year")return String(e.getFullYear());if(a==="month")return g(e,r);if(a==="day")return`${Y(e,t,C)}, ${e.getDate()} ${g(e,r)}`;const c=T(e,t),m=p(c,6);if(c.getMonth()===m.getMonth())return`${c.getDate()}\u2013${m.getDate()} ${g(c,r)}`;const M=o[c.getMonth()],z=o[m.getMonth()];return`${c.getDate()} ${M} \u2013 ${m.getDate()} ${z} ${m.getFullYear()}`},[r,o,a,e,C,t]);return d("div",{ref:l,className:h(f.title,n),...i,children:k})});D.displayName="CalendarBoard.Title";const $=u(function({className:n,...i},l){const{view:a,viewDate:e,setViewDate:t}=B("CalendarBoard.Nav"),{messages:s}=v(w),r=o=>{if(a==="year"){t(new Date(e.getFullYear()+o,e.getMonth(),1));return}if(a==="month"){t(new Date(e.getFullYear(),e.getMonth()+o,1));return}if(a==="week"){t(p(e,o*7));return}t(p(e,o))};return F("div",{ref:l,className:h(f.nav,n),...i,children:[d(y,{variant:"secondary",size:"sm",icon:d(x,{size:16,"aria-hidden":!0}),"aria-label":s.calendarBoard.prevPeriod,onClick:()=>r(-1)}),d(y,{variant:"secondary",size:"sm",icon:d(L,{size:16,"aria-hidden":!0}),"aria-label":s.calendarBoard.nextPeriod,onClick:()=>r(1)})]})});$.displayName="CalendarBoard.Nav";const b=u(function({className:n,variant:i="tinted",size:l="sm",...a},e){const{view:t,setView:s}=B("CalendarBoard.ViewSwitch"),{messages:r}=v(w),o=[{label:r.calendarBoard.views.month,value:"month"},{label:r.calendarBoard.views.week,value:"week"},{label:r.calendarBoard.views.day,value:"day"},{label:r.calendarBoard.views.year,value:"year"}];return d("div",{ref:e,className:h(f.viewSwitch,n),...a,children:d(R,{"aria-label":r.calendarBoard.viewSwitchAria,options:o,value:t,onChange:s,variant:i,size:l})})});b.displayName="CalendarBoard.ViewSwitch";export{S as CalendarBoardHeader,$ as CalendarBoardNav,N as CalendarBoardRoot,D as CalendarBoardTitle,b as CalendarBoardViewSwitch};