altum 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +47 -1
  3. package/dist/base/FieldPopup/FieldPopup.js +1 -1
  4. package/dist/base/PeriodHeader/PeriodHeader.js +1 -1
  5. package/dist/base/ToggleControlBase/ToggleControlBase.js +1 -1
  6. package/dist/base/ToggleControlBase/ToggleControlBase.module.css.js +1 -1
  7. package/dist/components/Accordion/Accordion.js +1 -1
  8. package/dist/components/Accordion/Accordion.module.css.js +1 -1
  9. package/dist/components/ActionList/ActionList.js +1 -1
  10. package/dist/components/ActionList/ActionList.module.css.js +1 -1
  11. package/dist/components/ActionSheetTrigger/ActionSheetTrigger.js +1 -1
  12. package/dist/components/ActionSheetTrigger/ActionSheetTrigger.module.css.js +1 -1
  13. package/dist/components/Alert/Alert.js +1 -1
  14. package/dist/components/Alert/Alert.module.css.js +1 -1
  15. package/dist/components/Avatar/Avatar.module.css.js +1 -1
  16. package/dist/components/Badge/Badge.js +1 -1
  17. package/dist/components/Badge/Badge.module.css.js +1 -1
  18. package/dist/components/Box/Box.js +1 -1
  19. package/dist/components/Box/Box.module.css.js +1 -1
  20. package/dist/components/Bubble/Bubble.js +1 -1
  21. package/dist/components/Bubble/Bubble.module.css.js +1 -1
  22. package/dist/components/Button/Button.js +1 -1
  23. package/dist/components/Button/Button.module.css.js +1 -0
  24. package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
  25. package/dist/components/ButtonGroup/ButtonGroup.module.css.js +1 -1
  26. package/dist/components/ButtonIcon/ButtonIcon.js +1 -1
  27. package/dist/components/ButtonIcon/ButtonIcon.module.css.js +1 -0
  28. package/dist/components/ButtonIcon/OverlayCloseButton.js +1 -0
  29. package/dist/components/Calendar/Calendar.context.js +1 -1
  30. package/dist/components/Calendar/Calendar.module.css.js +1 -1
  31. package/dist/components/Calendar/Calendar.slots.js +1 -1
  32. package/dist/components/Calendar/Calendar.utils.js +1 -1
  33. package/dist/components/Calendar/Calendar.views.js +1 -1
  34. package/dist/components/CalendarBoard/CalendarBoard.MonthView.js +1 -1
  35. package/dist/components/CalendarBoard/CalendarBoard.Schedule.js +1 -1
  36. package/dist/components/CalendarBoard/CalendarBoard.Schedule.module.css.js +1 -1
  37. package/dist/components/CalendarBoard/CalendarBoard.Schedule.utils.js +1 -1
  38. package/dist/components/CalendarBoard/CalendarBoard.YearView.js +2 -2
  39. package/dist/components/CalendarBoard/CalendarBoard.chrome.js +1 -1
  40. package/dist/components/CalendarBoard/CalendarBoard.context.js +1 -1
  41. package/dist/components/CalendarBoard/CalendarBoard.module.css.js +1 -1
  42. package/dist/components/CalendarBoard/CalendarBoard.utils.js +1 -1
  43. package/dist/components/CalendarBoard/calendar.schedule.js +1 -1
  44. package/dist/components/Card/Card.js +1 -1
  45. package/dist/components/Card/Card.module.css.js +1 -1
  46. package/dist/components/Chip/Chip.js +1 -1
  47. package/dist/components/Chip/Chip.module.css.js +1 -1
  48. package/dist/components/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  49. package/dist/components/ColorSwatchGroup/ColorSwatchGroup.module.css.js +1 -1
  50. package/dist/components/CommandPalette/CommandPalette.js +1 -1
  51. package/dist/components/CommandPalette/CommandPalette.module.css.js +1 -1
  52. package/dist/components/ConfirmDialog/ConfirmDialog.js +1 -1
  53. package/dist/components/DateField/DateField.js +1 -1
  54. package/dist/components/DateField/DateField.utils.js +1 -1
  55. package/dist/components/DateRangeField/DateRangeField.js +1 -1
  56. package/dist/components/DayStripCalendar/DayStripCalendar.js +1 -1
  57. package/dist/components/DialogLayout/DialogLayout.js +1 -0
  58. package/dist/components/DialogLayout/DialogLayout.module.css.js +1 -0
  59. package/dist/components/Dropdown/Dropdown.js +1 -1
  60. package/dist/components/Dropdown/Dropdown.module.css.js +1 -1
  61. package/dist/components/Dropdown/DropdownMobileSheet.js +1 -1
  62. package/dist/components/FileList/FileList.js +1 -1
  63. package/dist/components/Grid/Grid.js +1 -1
  64. package/dist/components/Grid/Grid.utils.js +1 -1
  65. package/dist/components/ImageCrop/ImageCrop.js +1 -1
  66. package/dist/components/ImageCrop/ImageCrop.module.css.js +1 -1
  67. package/dist/components/ImageGallery/ImageGallery.js +1 -1
  68. package/dist/components/ImageGallery/ImageGallery.module.css.js +1 -1
  69. package/dist/components/ImageLightbox/ImageLightbox.js +1 -1
  70. package/dist/components/ImageLightbox/ImageLightbox.module.css.js +1 -1
  71. package/dist/components/Layout/Layout.js +1 -1
  72. package/dist/components/Layout/Layout.module.css.js +1 -1
  73. package/dist/components/Link/Link.js +1 -1
  74. package/dist/components/Listbox/Listbox.js +1 -1
  75. package/dist/components/Listbox/Listbox.module.css.js +1 -1
  76. package/dist/components/LiveRegion/LiveRegion.js +1 -0
  77. package/dist/components/LocaleProvider/LocaleProvider.js +1 -1
  78. package/dist/components/MaskedField/MaskedField.js +1 -1
  79. package/dist/components/MaskedField/MaskedField.module.css.js +1 -1
  80. package/dist/components/Menu/Menu.js +1 -1
  81. package/dist/components/Menu/Menu.module.css.js +1 -1
  82. package/dist/components/Modal/Modal.js +1 -1
  83. package/dist/components/Modal/Modal.module.css.js +1 -1
  84. package/dist/components/Notification/Notification.js +1 -1
  85. package/dist/components/Notification/Notification.module.css.js +1 -1
  86. package/dist/components/Notification/toast.js +1 -1
  87. package/dist/components/NumberField/NumberField.js +1 -1
  88. package/dist/components/Overflow/Overflow.js +1 -1
  89. package/dist/components/Overflow/Overflow.module.css.js +1 -1
  90. package/dist/components/Overlay/Overlay.frame.js +1 -0
  91. package/dist/components/Overlay/Overlay.js +1 -1
  92. package/dist/components/Overlay/Overlay.module.css.js +1 -1
  93. package/dist/components/Pagination/Pagination.js +1 -1
  94. package/dist/components/PasswordField/PasswordField.js +1 -1
  95. package/dist/components/PasswordField/PasswordField.module.css.js +1 -1
  96. package/dist/components/PinInput/PinInput.js +1 -1
  97. package/dist/components/PinInput/PinInput.module.css.js +1 -1
  98. package/dist/components/Popover/Popover.js +1 -1
  99. package/dist/components/Popover/Popover.module.css.js +1 -1
  100. package/dist/components/PopupSwitch/PopupSwitch.js +1 -0
  101. package/dist/components/PopupSwitch/PopupSwitch.module.css.js +1 -0
  102. package/dist/components/PopupSwitch/PopupSwitch.utils.js +1 -0
  103. package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
  104. package/dist/components/Rating/Rating.js +1 -1
  105. package/dist/components/RelativeTime/RelativeTime.js +1 -1
  106. package/dist/components/SearchField/SearchField.js +1 -1
  107. package/dist/components/SegmentedControl/SegmentedControl.js +1 -1
  108. package/dist/components/Select/Select.js +1 -1
  109. package/dist/components/Select/Select.module.css.js +1 -1
  110. package/dist/components/SelectionGroup/SelectionGroup.js +1 -1
  111. package/dist/components/Sheet/Sheet.js +1 -1
  112. package/dist/components/Sheet/Sheet.module.css.js +1 -1
  113. package/dist/components/Sidebar/Sidebar.js +1 -1
  114. package/dist/components/Sidebar/Sidebar.module.css.js +1 -1
  115. package/dist/components/SkipLink/SkipLink.js +1 -1
  116. package/dist/components/Slider/Slider.js +1 -1
  117. package/dist/components/SortableList/SortableList.js +1 -1
  118. package/dist/components/SortableList/SortableList.module.css.js +1 -1
  119. package/dist/components/Spinner/Spinner.js +1 -1
  120. package/dist/components/Steps/Steps.js +1 -1
  121. package/dist/components/Steps/Steps.module.css.js +1 -1
  122. package/dist/components/SuggestField/SuggestField.js +1 -1
  123. package/dist/components/Table/Table.js +1 -1
  124. package/dist/components/Table/TableRowActions.js +1 -1
  125. package/dist/components/Table/TableView.js +1 -1
  126. package/dist/components/TextField/TextField.js +1 -1
  127. package/dist/components/TextField/TextField.module.css.js +1 -0
  128. package/dist/components/TextareaField/TextareaField.js +1 -1
  129. package/dist/components/TextareaField/TextareaField.module.css.js +1 -0
  130. package/dist/components/ThemeProvider/ThemeProvider.js +1 -1
  131. package/dist/components/ThemeProvider/ThemeProvider.module.css.js +1 -1
  132. package/dist/components/TimeField/TimeField.js +1 -1
  133. package/dist/components/Tooltip/Tooltip.js +1 -1
  134. package/dist/components/Tooltip/Tooltip.module.css.js +1 -1
  135. package/dist/components/UploadZone/UploadZone.js +1 -1
  136. package/dist/components/VirtualList/VirtualList.js +1 -1
  137. package/dist/components/VirtualList/VirtualList.module.css.js +1 -1
  138. package/dist/components/VirtualList/VirtualList.utils.js +1 -1
  139. package/dist/components/VisuallyHidden/VisuallyHidden.js +1 -1
  140. package/dist/components/WheelTimePicker/WheelTimePicker.js +1 -1
  141. package/dist/entries/hooks.js +1 -1
  142. package/dist/entries/icons.js +1 -1
  143. package/dist/entries/locales.js +1 -0
  144. package/dist/entries/utils.js +1 -1
  145. package/dist/hooks/useAutoResize.js +1 -1
  146. package/dist/hooks/useForm.js +1 -1
  147. package/dist/hooks/useFormProvider.js +1 -0
  148. package/dist/hooks/useOtpInputs.js +1 -1
  149. package/dist/hooks/useTrackThumb.js +1 -1
  150. package/dist/icons/icons/IconChevronUpDown.js +1 -0
  151. package/dist/index.js +1 -1
  152. package/dist/locales/en.js +1 -1
  153. package/dist/locales/localeContext.js +1 -1
  154. package/dist/locales/ru.js +1 -1
  155. package/dist/locales/slices/actionList.en.js +1 -0
  156. package/dist/locales/slices/actionList.ru.js +1 -0
  157. package/dist/locales/slices/bubble.en.js +1 -0
  158. package/dist/locales/slices/bubble.ru.js +1 -0
  159. package/dist/locales/slices/buttonGroup.en.js +1 -0
  160. package/dist/locales/slices/buttonGroup.ru.js +1 -0
  161. package/dist/locales/slices/calendar.en.js +1 -0
  162. package/dist/locales/slices/calendar.ru.js +1 -0
  163. package/dist/locales/slices/calendarBoard.en.js +1 -0
  164. package/dist/locales/slices/calendarBoard.ru.js +1 -0
  165. package/dist/locales/slices/chip.en.js +1 -0
  166. package/dist/locales/slices/chip.ru.js +1 -0
  167. package/dist/locales/slices/commandPalette.en.js +1 -0
  168. package/dist/locales/slices/commandPalette.ru.js +1 -0
  169. package/dist/locales/slices/common.en.js +1 -0
  170. package/dist/locales/slices/common.ru.js +1 -0
  171. package/dist/locales/slices/confirmDialog.en.js +1 -0
  172. package/dist/locales/slices/confirmDialog.ru.js +1 -0
  173. package/dist/locales/slices/customSelect.en.js +1 -0
  174. package/dist/locales/slices/customSelect.ru.js +1 -0
  175. package/dist/locales/slices/dateRangeField.en.js +1 -0
  176. package/dist/locales/slices/dateRangeField.ru.js +1 -0
  177. package/dist/locales/slices/dayStrip.en.js +1 -0
  178. package/dist/locales/slices/dayStrip.ru.js +1 -0
  179. package/dist/locales/slices/fileList.en.js +1 -0
  180. package/dist/locales/slices/fileList.ru.js +1 -0
  181. package/dist/locales/slices/imageCrop.en.js +1 -0
  182. package/dist/locales/slices/imageCrop.ru.js +1 -0
  183. package/dist/locales/slices/imageGallery.en.js +1 -0
  184. package/dist/locales/slices/imageGallery.ru.js +1 -0
  185. package/dist/locales/slices/imageLightbox.en.js +1 -0
  186. package/dist/locales/slices/imageLightbox.ru.js +1 -0
  187. package/dist/locales/slices/listbox.en.js +1 -0
  188. package/dist/locales/slices/listbox.ru.js +1 -0
  189. package/dist/locales/slices/menu.en.js +1 -0
  190. package/dist/locales/slices/menu.ru.js +1 -0
  191. package/dist/locales/slices/modal.en.js +1 -0
  192. package/dist/locales/slices/modal.ru.js +1 -0
  193. package/dist/locales/slices/numberField.en.js +1 -0
  194. package/dist/locales/slices/numberField.ru.js +1 -0
  195. package/dist/locales/slices/overflow.en.js +1 -0
  196. package/dist/locales/slices/overflow.ru.js +1 -0
  197. package/dist/locales/slices/pagination.en.js +1 -0
  198. package/dist/locales/slices/pagination.ru.js +1 -0
  199. package/dist/locales/slices/password.en.js +1 -0
  200. package/dist/locales/slices/password.ru.js +1 -0
  201. package/dist/locales/slices/pinInput.en.js +1 -0
  202. package/dist/locales/slices/pinInput.ru.js +1 -0
  203. package/dist/locales/slices/pullToRefresh.en.js +1 -0
  204. package/dist/locales/slices/pullToRefresh.ru.js +1 -0
  205. package/dist/locales/slices/rating.en.js +1 -0
  206. package/dist/locales/slices/rating.ru.js +1 -0
  207. package/dist/locales/slices/searchField.en.js +1 -0
  208. package/dist/locales/slices/searchField.ru.js +1 -0
  209. package/dist/locales/slices/select.en.js +1 -0
  210. package/dist/locales/slices/select.ru.js +1 -0
  211. package/dist/locales/slices/sheet.en.js +1 -0
  212. package/dist/locales/slices/sheet.ru.js +1 -0
  213. package/dist/locales/slices/sidebar.en.js +1 -0
  214. package/dist/locales/slices/sidebar.ru.js +1 -0
  215. package/dist/locales/slices/skipLink.en.js +1 -0
  216. package/dist/locales/slices/skipLink.ru.js +1 -0
  217. package/dist/locales/slices/slider.en.js +1 -0
  218. package/dist/locales/slices/slider.ru.js +1 -0
  219. package/dist/locales/slices/sortable.en.js +1 -0
  220. package/dist/locales/slices/sortable.ru.js +1 -0
  221. package/dist/locales/slices/spinner.en.js +1 -0
  222. package/dist/locales/slices/spinner.ru.js +1 -0
  223. package/dist/locales/slices/steps.en.js +1 -0
  224. package/dist/locales/slices/steps.ru.js +1 -0
  225. package/dist/locales/slices/suggestField.en.js +1 -0
  226. package/dist/locales/slices/suggestField.ru.js +1 -0
  227. package/dist/locales/slices/table.en.js +1 -0
  228. package/dist/locales/slices/table.ru.js +1 -0
  229. package/dist/locales/slices/timeField.en.js +1 -0
  230. package/dist/locales/slices/timeField.ru.js +1 -0
  231. package/dist/locales/slices/upload.en.js +1 -0
  232. package/dist/locales/slices/upload.ru.js +1 -0
  233. package/dist/locales/slices/virtualList.en.js +1 -0
  234. package/dist/locales/slices/virtualList.ru.js +1 -0
  235. package/dist/locales/translate.js +1 -1
  236. package/dist/shared/form/Form.utils.js +1 -0
  237. package/dist/shared/form/formRules.js +1 -0
  238. package/dist/shared/form/formValues.js +1 -0
  239. package/dist/styles/calendarChrome.module.css.js +1 -1
  240. package/dist/styles/status.module.css.js +1 -1
  241. package/dist/styles/toggleBox.module.css.js +1 -1
  242. package/dist/styles/visuallyHidden.module.css.js +1 -0
  243. package/dist/utils/autoHeight.js +1 -1
  244. package/dist/utils/date.js +1 -0
  245. package/dist/utils/duration.js +1 -0
  246. package/dist/utils/eventTarget.js +1 -0
  247. package/dist/utils/fieldMessage.js +1 -0
  248. package/dist/utils/injectCss.js +1 -1
  249. package/dist/utils/locale.js +1 -0
  250. package/dist/utils/plural.js +1 -0
  251. package/dist/utils/timezone.js +1 -0
  252. package/dist/utils/visitElementTree.js +1 -1
  253. package/docs/COMPONENTS.md +18 -16
  254. package/docs/LAYOUT.md +9 -9
  255. package/docs/THEMING.md +9 -16
  256. package/package.json +6 -1
  257. package/types/entries/hooks.d.ts +61 -13
  258. package/types/entries/icons.d.ts +3 -1
  259. package/types/entries/locales.d.ts +275 -0
  260. package/types/entries/utils.d.ts +71 -8
  261. package/types/index.d.ts +583 -661
  262. package/dist/base/ButtonBase/ButtonBase.js +0 -1
  263. package/dist/base/ButtonBase/ButtonBase.module.css.js +0 -1
  264. package/dist/base/ChevronButton/ChevronButton.js +0 -1
  265. package/dist/base/DialogBase/DialogBase.js +0 -1
  266. package/dist/base/DialogBase/DialogBase.module.css.js +0 -1
  267. package/dist/base/FieldBase/FieldBase.js +0 -1
  268. package/dist/base/FieldBase/FieldBase.module.css.js +0 -1
  269. package/dist/base/TextControl/TextControl.js +0 -1
  270. package/dist/components/CustomSelect/CustomSelect.Filter.js +0 -1
  271. package/dist/components/CustomSelect/CustomSelect.List.js +0 -1
  272. package/dist/components/CustomSelect/CustomSelect.Shell.js +0 -1
  273. package/dist/components/CustomSelect/CustomSelect.Shell.module.css.js +0 -1
  274. package/dist/components/CustomSelect/CustomSelect.context.js +0 -1
  275. package/dist/components/CustomSelect/CustomSelect.js +0 -1
  276. package/dist/components/CustomSelect/CustomSelect.module.css.js +0 -1
  277. package/dist/components/CustomSelect/useCustomSelectComboboxKeyboard.js +0 -1
  278. package/dist/components/FocusTrap/FocusTrap.js +0 -1
  279. package/dist/components/Overflow/OverflowActionsMode.js +0 -1
  280. package/dist/components/Overflow/OverflowMeasure.js +0 -1
  281. package/dist/components/Overflow/OverflowMore.js +0 -1
  282. package/dist/components/Overlay/Overlay.Dismiss.js +0 -1
  283. package/dist/components/Overlay/Overlay.Positioner.js +0 -1
  284. package/dist/components/Overlay/Overlay.types.js +0 -1
  285. package/dist/components/SortableList/SortableList.types.js +0 -1
  286. package/dist/components/SortableList/useSortableListDnD.js +0 -1
  287. package/dist/components/TimeField/TimeField.module.css.js +0 -1
  288. package/dist/hooks/useDigitMask.js +0 -1
  289. package/dist/hooks/useFieldControl.js +0 -1
  290. package/dist/hooks/useOverflowEdges.js +0 -1
  291. package/dist/hooks/useScrollFocusedChildIntoView.js +0 -1
  292. package/dist/styles/ControlTrack.module.css.js +0 -1
  293. package/dist/styles/srOnly.module.css.js +0 -1
  294. package/dist/utils/controlTrack.js +0 -1
  295. package/dist/utils/fieldPlaceholder.js +0 -1
@@ -1 +1 @@
1
- "use client";import{jsx as d,jsxs as T}from"react/jsx-runtime";import{forwardRef as S,useRef as j}from"react";import{isSameDay as w,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 x}from"../../locales/localeContext.js";import{useCalendarContext as B}from"./Calendar.context.js";import{YEARS_PER_PAGE as A}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";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}=x(),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}=B("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&&w(r.start,e.date)),E=!!(p&&r.end&&w(r.end,e.date)),Y=!!(p&&O(e.date,r.start,r.end)),R=p?b||E:l?w(l,e.date):!1,P=U(e.date),G=R||!L&&v.findIndex(M=>!M.isEmpty&&M.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}=x(),i=s.calendar.months,a=s.calendar.monthsShort,{value:m,year:l,month:N,selectMonth:r}=B("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}=x(),{value:c,year:i,yearPageStart:a,selectYear:m}=B("Calendar.Body"),l=new Date().getFullYear();return d(I,{ref:f,className:y,label:s("calendar.yearsRange",{start:a,end:a+A-1}),columnsClass:t.calendarYears,items:Array.from({length:A},(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,startOfDay as J,isSameDay as Q,isToday as U}from"../Calendar/Calendar.utils.js";import{resolveAllDay as b,segmentSpanByWeeks as X,packSpanSegments as Z}from"./calendar.schedule.js";import{useCalendarBoard as ee}from"./CalendarBoard.context.js";import{CalendarBoardTaskChip as T}from"./CalendarBoard.TaskChip.js";import{buildMonthWeeks as ae,isMultiDayTask as I,calendarDateKey as O}from"./CalendarBoard.utils.js";import e from"./CalendarBoard.module.css.js";import te from"../../styles/unstyledControl.module.css.js";import{cn as g}from"../../utils/cn.js";import{useLocale as re}from"../../locales/localeContext.js";const $=_(function({className:A,maxChipsPerDay:W=3,...L},R){const{messages:V,t:N}=re(),{months:j,weekdaysShort:K}=V.calendar,{viewDate:u,selectedDate:C,setSelectedDate:S,setViewDate:w,setView:q,tasks:c,weekStartsOn:y,renderDayCell:D}=ee("CalendarBoard.Month"),f=p(()=>ae(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,l)=>{const d=v.map(r=>{const m=X(r.start,r.end,[t])[0];return m?{item:r,segment:m.segment}:null}).filter(r=>r!==null);return{weekIndex:l,...Z(d)}}),[v,f]),H=p(()=>{const t=new Map;for(const l of c){if(b(l)&&I(l.start,l.end))continue;const d=O(J(l.start)),r=t.get(d)??[];r.push(l),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,l)=>{const d=F[l],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?Q(a,C):!1,o=U(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:o,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:"",o&&!n?e.dayToday:""),"aria-current":o?"date":void 0,"aria-selected":n,children:[s("button",{type:"button",className:g(te.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:o})=>s("div",{className:e.spanSlot,style:{gridColumn:`${o.startIndex+1} / ${o.endIndex+2}`},"data-task-id":n.id,children:s(T,{task:n,layout:"bar",continuesBefore:o.continuesBefore,continuesAfter:o.continuesAfter})},`${n.id}-${l}-${o.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 y}from"react";import{startOfDay as f,buildDayStrip as ge,formatMonthYear as z,weekdayLabelFor as I,isSameDay as ye,isToday as V,addDays as J}from"../Calendar/Calendar.utils.js";import{buildHourMarks as fe,resolveAllDay as K,segmentSpanInColumns as Se,packSpanSegments as Ne,clipEventToDay as $e,packTimedEventsInDay as xe,formatHourLabel as De}from"./calendar.schedule.js";import{CalendarBoardEvent as Q}from"./CalendarBoard.Event.js";import Ce from"../../styles/unstyledControl.module.css.js";import H 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 L}from"./CalendarBoard.Schedule.types.js";import{resolveWindowStart as we,formatTimeRange as Ie}from"./CalendarBoard.Schedule.utils.js";import{PeriodHeader as He}from"../../base/PeriodHeader/PeriodHeader.js";const U=ue(function({viewDate:h,onViewDateChange:T,daysCount:o=7,weekStartsOn:p=1,events:S=[],dayStartHour:v=8,dayEndHour:g=20,hourHeight:N=48,selectedDate:C,onSelectDate:B,onEventClick:$,showHeader:E=!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(()=>f(h??C??new Date)),x=h?f(h):le,R=ve(e=>{const a=f(e);h===void 0&&oe(a),T?.(a)},[h,T]),k=y(()=>we(x,o,p),[x,o,p]),i=y(()=>ge(k,o),[o,k]),G=y(()=>fe(v,g),[g,v]),ne=Math.max(0,g-v)*N,w=C?f(C):void 0,W=e=>{if(o===1){R(J(x,e));return}R(J(k,e*(o===5?7:o)))},Y=y(()=>{const e=S.filter(K).map(a=>{const r=Se(a.start,a.end,i);return r?{item:a,segment:r}:null}).filter(a=>a!==null);return Ne(e)},[i,S]),ie=y(()=>i.map(e=>{const a=S.filter(r=>!K(r)).map(r=>{const s=$e(r.start,r.end,e);return s?{item:r,start:s.start,end:s.end}:null}).filter(r=>r!==null);return xe(a,v,g)}),[i,g,v,S]),se=(()=>{if(o!==1)return z(w??i[0]??x,A);const e=i[0];return`${I(e,p,b)}, ${e.getDate()} ${z(e,A)}`})(),_=Math.max(Y.laneCount,1)*L+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":E?M:void 0,style:de,...ae,children:[l(He,{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(${o}, minmax(0, 1fr))`},children:i.map(e=>{const a=w?ye(e,w):!1,r=V(e),s=I(e,p,b);return c("button",{type:"button",className:u(Ce.control,H.cell,t.dayHeader,a?H.selected:"",a?t.dayHeaderSelected:"",r?H.today:""),onClick:()=>B?.(f(e)),"aria-pressed":B?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*L,height:L-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":`${I(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=Ie(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 +1 @@
1
- "use client";import{injectCss as t}from"../../utils/injectCss.js";var o=".d9FLy{box-sizing:border-box;color:var(--altum-color-input-text);display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-2);max-width:960px;width:100%}.d9FLy .e1cT5{display:grid;gap:0;grid-template-columns:calc(var(--altum-g-space-7)*2) minmax(0,1fr);min-width:0}.d9FLy .dT6mU{min-height:var(--altum-g-space-8,32px)}.d9FLy .MGcE2{align-items:flex-start;color:var(--altum-color-ink-muted);display:flex;font-size:var(--altum-g-font-size-3xs);font-weight:var(--altum-g-font-weight-semibold);justify-content:flex-end;letter-spacing:.04em;line-height:1.2;padding:var(--altum-g-space-1) var(--altum-g-space-2) 0 0;text-transform:uppercase}.d9FLy .JhQrX{display:grid;min-width:0}.d9FLy .SXTaX{align-items:center;display:flex;flex-direction:column;gap:var(--altum-control-inset);justify-content:center;min-height:var(--altum-g-space-9,36px);padding:var(--altum-g-space-1)}.d9FLy .gJ0HI{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-xs);letter-spacing:.04em;text-transform:uppercase}.d9FLy .g6pAH,.d9FLy .gJ0HI{font-weight:var(--altum-g-font-weight-semibold);line-height:1.2}.d9FLy .g6pAH{font-size:var(--altum-g-font-size-base);font-variant-numeric:tabular-nums}.d9FLy .TjFoX .gJ0HI{color:inherit;opacity:.85}.d9FLy .dYeu-{border-bottom:1px solid var(--altum-color-dropdown-border);border-top:1px solid var(--altum-color-dropdown-border);position:relative}.d9FLy .zokJX{border-left:1px solid var(--altum-color-dropdown-border);min-height:inherit}:is(.d9FLy .zokJX):first-child{border-left:none}.d9FLy .LmyPu{box-sizing:border-box;padding:0;pointer-events:auto;position:absolute;z-index:1}.d9FLy .COA-J{max-height:min(70vh,640px);overflow:auto;padding-top:var(--altum-g-space-3);scrollbar-gutter:stable}.d9FLy .COA-J,.d9FLy .Zj5tV,.d9FLy .ufuk-{position:relative}.d9FLy .ufuk-{box-sizing:border-box}.d9FLy .h95ab{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-xs);font-variant-numeric:tabular-nums;font-weight:var(--altum-g-font-weight-medium);line-height:1;position:absolute;right:var(--altum-g-space-2);top:-.55em;z-index:1}.d9FLy .BRfA1,.d9FLy .deD--{border-left:1px solid var(--altum-color-dropdown-border);position:relative}.d9FLy .deD--{min-width:0}:is(.d9FLy .deD--):first-child{border-left:none}.d9FLy ._1-g0L{background-color:color-mix(in srgb,var(--altum-color-brand) 6%,#0000)}.d9FLy .ESPDc{border-top:1px solid var(--altum-color-dropdown-border);box-sizing:border-box}:is(.d9FLy .ESPDc):first-child{border-top-color:#0000}.d9FLy .tghig{inset:0;pointer-events:none;position:absolute}.d9FLy .-G8YX{box-sizing:border-box;min-height:var(--altum-g-space-8);pointer-events:auto;position:absolute;z-index:1}";const e={root:"d9FLy",gutterRow:"e1cT5",gutterCorner:"dT6mU",gutterLabel:"MGcE2",cols:"JhQrX",dayHeader:"SXTaX",dayWeekday:"gJ0HI",dayNumber:"g6pAH",dayHeaderSelected:"TjFoX",allDayTrack:"dYeu-",allDayCell:"zokJX",spanSlot:"LmyPu",timeGrid:"COA-J",gutter:"Zj5tV",hourMark:"ufuk-",hourLabel:"h95ab",columns:"BRfA1",column:"deD--",columnToday:"_1-g0L",hourLine:"ESPDc",eventsLayer:"tghig",timedSlot:"-G8YX"};t(o);export{e as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var e=".d9FLy{box-sizing:border-box;color:var(--altum-color-input-text);display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-2);max-width:var(--altum-container-max-lg,960px);width:100%}.d9FLy .e1cT5{display:grid;gap:0;grid-template-columns:calc(var(--altum-g-space-7)*2) minmax(0,1fr);min-width:0}.d9FLy .dT6mU{min-height:var(--altum-g-space-8,32px)}.d9FLy .MGcE2{align-items:flex-start;color:var(--altum-color-ink-muted);display:flex;font-size:var(--altum-g-font-size-3xs);font-weight:var(--altum-g-font-weight-semibold);justify-content:flex-end;letter-spacing:.04em;line-height:1.2;padding:var(--altum-g-space-1) var(--altum-g-space-2) 0 0;text-transform:uppercase}.d9FLy .JhQrX{display:grid;min-width:0}.d9FLy .SXTaX{align-items:center;display:flex;flex-direction:column;gap:var(--altum-control-inset);justify-content:center;min-height:var(--altum-g-space-9,36px);padding:var(--altum-g-space-1)}.d9FLy .gJ0HI{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-xs);letter-spacing:.04em;text-transform:uppercase}.d9FLy .g6pAH,.d9FLy .gJ0HI{font-weight:var(--altum-g-font-weight-semibold);line-height:1.2}.d9FLy .g6pAH{font-size:var(--altum-g-font-size-base);font-variant-numeric:tabular-nums}.d9FLy .TjFoX .gJ0HI{color:inherit;opacity:.85}.d9FLy .dYeu-{border-bottom:1px solid var(--altum-color-dropdown-border);border-top:1px solid var(--altum-color-dropdown-border);position:relative}.d9FLy .zokJX{border-left:1px solid var(--altum-color-dropdown-border);min-height:inherit}:is(.d9FLy .zokJX):first-child{border-left:none}.d9FLy .LmyPu{box-sizing:border-box;padding:0;pointer-events:auto;position:absolute;z-index:var(--altum-g-z-raised,1)}.d9FLy .COA-J{max-height:min(70vh,640px);overflow:auto;padding-top:var(--altum-g-space-3);scrollbar-gutter:stable}.d9FLy .COA-J,.d9FLy .Zj5tV,.d9FLy .ufuk-{position:relative}.d9FLy .ufuk-{box-sizing:border-box}.d9FLy .h95ab{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-xs);font-variant-numeric:tabular-nums;font-weight:var(--altum-g-font-weight-medium);line-height:1;position:absolute;right:var(--altum-g-space-2);top:-.55em;z-index:var(--altum-g-z-raised,1)}.d9FLy .BRfA1,.d9FLy .deD--{border-left:1px solid var(--altum-color-dropdown-border);position:relative}.d9FLy .deD--{min-width:0}:is(.d9FLy .deD--):first-child{border-left:none}.d9FLy ._1-g0L{background-color:color-mix(in srgb,var(--altum-color-brand) 6%,#0000)}.d9FLy .ESPDc{border-top:1px solid var(--altum-color-dropdown-border);box-sizing:border-box}:is(.d9FLy .ESPDc):first-child{border-top-color:#0000}.d9FLy .tghig{inset:0;pointer-events:none;position:absolute}.d9FLy .-G8YX{box-sizing:border-box;min-height:var(--altum-g-space-8);pointer-events:auto;position:absolute;z-index:var(--altum-g-z-raised,1)}";const o={root:"d9FLy",gutterRow:"e1cT5",gutterCorner:"dT6mU",gutterLabel:"MGcE2",cols:"JhQrX",dayHeader:"SXTaX",dayWeekday:"gJ0HI",dayNumber:"g6pAH",dayHeaderSelected:"TjFoX",allDayTrack:"dYeu-",allDayCell:"zokJX",spanSlot:"LmyPu",timeGrid:"COA-J",gutter:"Zj5tV",hourMark:"ufuk-",hourLabel:"h95ab",columns:"BRfA1",column:"deD--",columnToday:"_1-g0L",hourLine:"ESPDc",eventsLayer:"tghig",timedSlot:"-G8YX"};t(e);export{o as default};
@@ -1 +1 @@
1
- "use client";import{startOfDay as s,startOfWeek as a}from"../Calendar/Calendar.utils.js";function u(e,r){const n=t=>{const o=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0");return`${o}:${i}`};return`${n(e)} \u2013 ${n(r)}`}function c(e,r,n){const t=s(e);if(r===1)return t;const o=a(t,n);return r===5?a(t,1):o}export{u as formatTimeRange,c as resolveWindowStart};
1
+ "use client";import{startOfDay as u,getWeekStart as a}from"../../utils/date.js";function s(n,r){const e=t=>{const o=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0");return`${o}:${i}`};return`${e(n)} \u2013 ${e(r)}`}function c(n,r,e){const t=u(n);if(r===1)return t;const o=a(t,e);return r===5?a(t,1):o}export{s as formatTimeRange,c as resolveWindowStart};
@@ -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{startOfDay as N,addDays as A,weekdayLabels as H,isToday as K}from"../Calendar/Calendar.utils.js";import{useCalendarBoard as P}from"./CalendarBoard.context.js";import{calendarDateKey as b,buildMonthWeeks as R}from"./CalendarBoard.utils.js";import a from"./CalendarBoard.module.css.js";import v from"../../styles/unstyledControl.module.css.js";import{cn as y}from"../../utils/cn.js";import{useLocale as q}from"../../locales/localeContext.js";const B=$(function({className:S,...Y},O){const{messages:W,t:f}=q(),{months:i,weekdaysShort:T}=W.calendar,{viewDate:x,setViewDate:g,setView:D,tasks:k,weekStartsOn:M,renderYearMonth:w}=P("CalendarBoard.Year"),m=x.getFullYear(),C=V(()=>{const n=new Map;for(const e of k){let r=N(e.start);const h=N(e.end);for(;r<h;){if(r.getFullYear()===m){const d=b(r),c=n.get(d)??[];c.push(e),n.set(d,c)}r=A(r,1)}}return n},[k,m]),L=H(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=R(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(v.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(b(t))??[],p=u.length>0,j=K(t);return o("button",{type:"button",disabled:!s,className:y(v.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,startOfWeek as L,addDays as B}from"../Calendar/Calendar.utils.js";import{SegmentedControl as P}from"../SegmentedControl/SegmentedControl.js";import{useCalendarBoard as g}from"./CalendarBoard.context.js";import s from"./CalendarBoard.module.css.js";import{cn as c}from"../../utils/cn.js";import p from"../../styles/unstyledControl.module.css.js";import{useLocale as h}from"../../locales/localeContext.js";import{ChevronButton as C}from"../../base/ChevronButton/ChevronButton.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}=g("CalendarBoard.Title"),{messages:m}=h(),{months:r,monthsShort:o,weekdaysShort:N}=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,N)}, ${e.getDate()} ${w(e,r)}`;const u=L(e,t),v=B(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,N,t]);return d("div",{ref:i,className:c(s.title,n),...l,children:k})});b.displayName="CalendarBoard.Title";const $=f(function({className:n,...l},i){const{view:a,viewDate:e,setViewDate:t}=g("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(B(e,o*7));return}t(B(e,o))};return x("div",{ref:i,className:c(s.nav,n),...l,children:[d(C,{direction:"prev",className:c(p.control,s.navBtn),"aria-label":m.calendarBoard.prevPeriod,onClick:()=>r(-1)}),d(C,{direction:"next",className:c(p.control,s.navBtn),"aria-label":m.calendarBoard.nextPeriod,onClick:()=>r(1)})]})});$.displayName="CalendarBoard.Nav";const S=f(function({className:n,variant:l="tinted",size:i="sm",...a},e){const{view:t,setView:m}=g("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(P,{"aria-label":r.calendarBoard.viewSwitchAria,options:o,value:t,onChange:m,variant:l,size:i})})});S.displayName="CalendarBoard.ViewSwitch";export{D as CalendarBoardHeader,$ as CalendarBoardNav,y as CalendarBoardRoot,b as CalendarBoardTitle,S 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};
@@ -1 +1 @@
1
- "use client";import{jsx as y}from"react/jsx-runtime";import{useSyncExternalStore as j,useState as A,useCallback as p,useMemo as L,createContext as V}from"react";import{useRequiredContext as x}from"../../hooks/useRequiredContext.js";import{useControlledStateWithCallback as o}from"../../hooks/useControlledState.js";import{startOfDay as a}from"../Calendar/Calendar.utils.js";import{createCalendarBoardHoverStore as N}from"./calendarBoardHoverStore.js";const M=V(null),T=V(null);function b(e){return x(M,`${e} \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 CalendarBoard.Provider`)}function W(e){return x(T,`${e} \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 CalendarBoard.Provider`)}function z(e){const r=W("useCalendarBoardTaskHover");return{highlighted:j(r.subscribe,()=>r.getSnapshot()===e,()=>!1),onMouseEnter:()=>r.setHovered(e),onMouseLeave:()=>r.setHovered(null)}}function G(){return b("useCalendarBoardContext")}const F=({children:e,view:r,defaultView:P="month",onViewChange:O,viewDate:n,defaultViewDate:q,onViewDateChange:R,selectedDate:u,onSelectedDateChange:d,tasks:i=[],weekStartsOn:l=1,dayStartHour:s=0,dayEndHour:C=24,hourHeight:c=48,onTaskClick:v,renderTask:h,renderDayCell:D,renderYearMonth:m})=>{const[Y]=A(()=>N()),[k,w]=o(r,P,O),[f,B]=o(n!==void 0?a(n):void 0,a(q??u??new Date),R),[H,S]=o(u!==void 0&&u?a(u):void 0,u?a(u):void 0,d?t=>{t&&d(t)}:void 0),E=p(t=>B(a(t)),[B]),g=p(t=>S(a(t)),[S]),$=L(()=>({view:k,setView:w,viewDate:f,setViewDate:E,selectedDate:H,setSelectedDate:g,tasks:i,weekStartsOn:l,dayStartHour:s,dayEndHour:C,hourHeight:c,onTaskClick:v,renderTask:h,renderDayCell:D,renderYearMonth:m}),[C,s,c,v,D,h,m,H,g,w,E,i,k,f,l]);return y(T.Provider,{value:Y,children:y(M.Provider,{value:$,children:e})})};F.displayName="CalendarBoard";export{F as CalendarBoardProvider,b as useCalendarBoard,G as useCalendarBoardContext,z as useCalendarBoardTaskHover};
1
+ "use client";import{jsx as y}from"react/jsx-runtime";import{useSyncExternalStore as j,useState as A,useCallback as p,useMemo as L,createContext as V}from"react";import{useRequiredContext as x}from"../../hooks/useRequiredContext.js";import{useControlledStateWithCallback as o}from"../../hooks/useControlledState.js";import{startOfDay as a}from"../../utils/date.js";import{createCalendarBoardHoverStore as N}from"./calendarBoardHoverStore.js";const M=V(null),T=V(null);function b(e){return x(M,`${e} \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 CalendarBoard.Provider`)}function W(e){return x(T,`${e} \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 CalendarBoard.Provider`)}function z(e){const r=W("useCalendarBoardTaskHover");return{highlighted:j(r.subscribe,()=>r.getSnapshot()===e,()=>!1),onMouseEnter:()=>r.setHovered(e),onMouseLeave:()=>r.setHovered(null)}}function G(){return b("useCalendarBoardContext")}const F=({children:e,view:r,defaultView:P="month",onViewChange:O,viewDate:n,defaultViewDate:q,onViewDateChange:R,selectedDate:u,onSelectedDateChange:d,tasks:i=[],weekStartsOn:l=1,dayStartHour:s=0,dayEndHour:C=24,hourHeight:c=48,onTaskClick:v,renderTask:h,renderDayCell:D,renderYearMonth:m})=>{const[Y]=A(()=>N()),[k,w]=o(r,P,O),[f,B]=o(n!==void 0?a(n):void 0,a(q??u??new Date),R),[H,S]=o(u!==void 0&&u?a(u):void 0,u?a(u):void 0,d?t=>{t&&d(t)}:void 0),E=p(t=>B(a(t)),[B]),g=p(t=>S(a(t)),[S]),$=L(()=>({view:k,setView:w,viewDate:f,setViewDate:E,selectedDate:H,setSelectedDate:g,tasks:i,weekStartsOn:l,dayStartHour:s,dayEndHour:C,hourHeight:c,onTaskClick:v,renderTask:h,renderDayCell:D,renderYearMonth:m}),[C,s,c,v,D,h,m,H,g,w,E,i,k,f,l]);return y(T.Provider,{value:Y,children:y(M.Provider,{value:$,children:e})})};F.displayName="CalendarBoard";export{F as CalendarBoardProvider,b as useCalendarBoard,G as useCalendarBoardContext,z as useCalendarBoardTaskHover};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".piMYQ{box-sizing:border-box;color:var(--altum-color-input-text);display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-4);min-width:0;width:100%}.piMYQ .PIhAv{align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-3);min-height:var(--altum-control-height-sm)}.piMYQ .ieFyD{color:var(--altum-color-ink-default);flex:1 1 auto;font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);line-height:1.3;min-width:0}.piMYQ .EWooT{gap:var(--altum-g-space-1)}.piMYQ .EWooT,.piMYQ ._6i0TI{align-items:center;display:inline-flex}.piMYQ ._6i0TI{background:var(--altum-color-surface);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius-sm);color:var(--altum-color-text-secondary);height:var(--altum-control-height-sm);justify-content:center;transition:var(--altum-transition-smooth);width:var(--altum-control-height-sm)}:is(.piMYQ ._6i0TI):hover:not(:disabled){background:var(--altum-color-surface-hover);color:var(--altum-color-input-text)}.piMYQ ._8goA5{flex:0 0 auto}.piMYQ ._7RpjV{min-width:0}.piMYQ .Fgaml{display:flex;flex-direction:column;gap:var(--altum-g-space-2);min-width:0}.piMYQ .pJ9nq{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,minmax(0,1fr));padding:0 var(--altum-g-space-1)}.piMYQ .ZOxGs{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium);line-height:var(--altum-g-line-height-2xs);text-align:center}.piMYQ .ap-38{gap:var(--altum-g-space-1)}.piMYQ .SdYwd,.piMYQ .ap-38{display:flex;flex-direction:column}.piMYQ .SdYwd{gap:0;min-width:0;position:relative}.piMYQ ._0kfE4{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,minmax(0,1fr))}.piMYQ ._0kfE4,.piMYQ ._1Ww5-{min-height:calc(var(--altum-g-space-9)*2 + var(--altum-g-space-4))}.piMYQ ._1Ww5-{box-sizing:border-box;min-width:0}.piMYQ .VhRCF{align-items:stretch;background:var(--altum-color-bg);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius-sm);display:flex;flex-direction:column;gap:var(--altum-g-space-1);padding:var(--altum-g-space-1);padding-bottom:calc(var(--altum-g-space-1) + var(--altum-calendar-board-span-height, 0px));transition:var(--altum-transition-smooth)}.piMYQ .r4I7X{align-items:center;display:inline-flex;justify-content:flex-start;width:fit-content}:is(.piMYQ .r4I7X):hover .rLdLT{color:var(--altum-color-brand-tint-text)}.piMYQ .keApy{opacity:var(--altum-opacity-disabled)}.piMYQ .IXXDA{border-color:var(--altum-color-brand)}.piMYQ .yeXWt{background:color-mix(in srgb,var(--altum-color-brand) 8%,var(--altum-color-bg));border-color:var(--altum-color-input-border-focus);box-shadow:inset 0 0 0 1px var(--altum-color-input-border-focus)}.piMYQ .rLdLT{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-semibold);line-height:1.2}.piMYQ .dUxNu{display:flex;flex-direction:column;gap:var(--altum-control-inset);min-width:0}.piMYQ ._7UYkH{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-xs);line-height:var(--altum-g-line-height-xs);padding-left:var(--altum-g-space-1)}.piMYQ .NXhuu{bottom:var(--altum-g-space-1);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--altum-control-inset);height:var(--altum-calendar-board-span-height,0);left:0;pointer-events:none;position:absolute;right:0;z-index:var(--altum-g-z-raised-above)}.piMYQ .olUCM{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,minmax(0,1fr));height:var(--altum-g-space-5);min-height:var(--altum-g-space-5);pointer-events:none}.piMYQ .Kn1-T{box-sizing:border-box;display:flex;height:100%;min-width:0;padding:0 var(--altum-calendar-span-pad,1px);pointer-events:auto}:is(.piMYQ .Kn1-T)>*{flex:1 1 auto;min-width:0}.piMYQ ._0thuL{align-items:center;background-color:color-mix(in srgb,var(--altum-calendar-board-task-color,var(--altum-color-brand)) 14%,var(--altum-color-dropdown-bg));border:none;border-radius:var(--altum-g-radius-sm);box-sizing:border-box;color:var(--altum-color-input-text);display:flex;font-family:inherit;font-size:var(--altum-g-font-size-xs);font-weight:var(--altum-g-font-weight-medium);gap:var(--altum-g-space-1);line-height:var(--altum-g-line-height-xs);max-width:100%;overflow:hidden;padding:var(--altum-control-inset) calc(var(--altum-g-space-1) + var(--altum-control-inset));text-align:left;transition:var(--altum-transition-smooth)}.piMYQ ._9ratn{cursor:pointer}.piMYQ ._9OokW{background-color:var(--altum-calendar-board-dot-color,var(--altum-color-brand));border-radius:50%;flex-shrink:0;height:var(--altum-calendar-dot-size,6px);width:var(--altum-calendar-dot-size,6px)}.piMYQ .lrBTx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.piMYQ .YQrGM{opacity:var(--altum-opacity-disabled)}:is(.piMYQ .YQrGM) .lrBTx{text-decoration:line-through}.piMYQ ._4Md0S{display:grid;gap:var(--altum-g-space-4);grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.piMYQ .PWn5Q{min-width:0}.piMYQ .lqOaF{background:var(--altum-color-bg);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--altum-g-space-2);margin:0;padding:var(--altum-g-space-3);width:100%}.piMYQ .QmrLz{border-color:var(--altum-color-brand)}.piMYQ .LhY4U{align-self:flex-start;color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-sm);font-weight:var(--altum-g-font-weight-semibold);line-height:var(--altum-g-line-height-sm)}:is(.piMYQ .LhY4U):hover{color:var(--altum-color-brand-tint-text)}.piMYQ .lSrMn{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.piMYQ .UQweF,.piMYQ .lSrMn{gap:var(--altum-control-inset)}.piMYQ .UQweF{display:flex;flex-direction:column}.piMYQ .zgp79{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-3xs);line-height:var(--altum-g-line-height-xs);text-align:center}.piMYQ ._1-m2q{align-items:center;display:flex;font-size:var(--altum-g-font-size-xs);justify-content:center;line-height:1.2;min-height:calc(var(--altum-g-space-5) + var(--altum-control-inset));text-align:center;width:100%}.piMYQ .JN3mE{color:#0000;pointer-events:none}.piMYQ ._6P5Gz{box-shadow:inset 0 0 0 1px var(--altum-color-brand);font-weight:var(--altum-g-font-weight-bold)}.piMYQ .GMPdz{background-color:var(--altum-color-brand-tint);font-weight:var(--altum-g-font-weight-semibold)}.piMYQ .GMPdz,:is(.piMYQ .GMPdz):hover{color:var(--altum-color-brand-tint-text)}:is(.piMYQ .GMPdz):hover{background-color:var(--altum-color-brand-tint-hover)}._9ratn:hover,.dE7XX{background-color:color-mix(in srgb,var(--altum-calendar-board-task-color,var(--altum-color-brand)) 28%,var(--altum-color-dropdown-bg));filter:brightness(.97)}";const r={root:"piMYQ",header:"PIhAv",title:"ieFyD",nav:"EWooT",navBtn:"_6i0TI",viewSwitch:"_8goA5",body:"_7RpjV",month:"Fgaml",weekdayRow:"pJ9nq",weekdayLabel:"ZOxGs",monthWeeks:"ap-38",weekRow:"SdYwd",weekDays:"_0kfE4",dayCell:"_1Ww5-",dayCellSurface:"VhRCF",dayNumberBtn:"r4I7X",dayNumber:"rLdLT",dayOutside:"keApy",dayToday:"IXXDA",daySelected:"yeXWt",dayChips:"dUxNu",dayMore:"_7UYkH",spanTrack:"NXhuu",spanLane:"olUCM",spanSlot:"Kn1-T",chip:"_0thuL",chipClickable:"_9ratn",chipDot:"_9OokW",chipTitle:"lrBTx",chipCompleted:"YQrGM",year:"_4Md0S",yearMonth:"PWn5Q",yearMonthCard:"lqOaF",yearMonthCurrent:"QmrLz",yearMonthLabelBtn:"LhY4U",yearCols:"lSrMn",yearWeeks:"UQweF",yearWeekday:"zgp79",yearDay:"_1-m2q",yearDayOutside:"JN3mE",yearDayToday:"_6P5Gz",yearDayHasTask:"GMPdz",chipHighlighted:"dE7XX"};a(t);export{r as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".piMYQ{box-sizing:border-box;color:var(--altum-color-input-text);display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-4);min-width:0;width:100%}.piMYQ .PIhAv{align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-3);min-height:var(--altum-control-height-sm)}.piMYQ .ieFyD{color:var(--altum-color-ink-default);flex:1 1 auto;font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);line-height:1.3;min-width:0}.piMYQ .EWooT{align-items:center;display:inline-flex;gap:var(--altum-g-space-1)}.piMYQ ._8goA5{flex:0 0 auto}.piMYQ ._7RpjV{min-width:0}.piMYQ .Fgaml{display:flex;flex-direction:column;gap:var(--altum-g-space-2);min-width:0}.piMYQ .pJ9nq{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,minmax(0,1fr));padding:0 var(--altum-g-space-1)}.piMYQ .ZOxGs{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium);line-height:var(--altum-g-line-height-2xs);text-align:center}.piMYQ .ap-38{gap:var(--altum-g-space-1)}.piMYQ .SdYwd,.piMYQ .ap-38{display:flex;flex-direction:column}.piMYQ .SdYwd{gap:0;min-width:0;position:relative}.piMYQ ._0kfE4{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,minmax(0,1fr))}.piMYQ ._0kfE4,.piMYQ ._1Ww5-{min-height:calc(var(--altum-g-space-9)*2 + var(--altum-g-space-4))}.piMYQ ._1Ww5-{box-sizing:border-box;min-width:0}.piMYQ .VhRCF{align-items:stretch;background:var(--altum-color-bg);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius-sm);display:flex;flex-direction:column;gap:var(--altum-g-space-1);padding:var(--altum-g-space-1);padding-bottom:calc(var(--altum-g-space-1) + var(--altum-calendar-board-span-height, 0px));transition:var(--altum-transition-smooth)}.piMYQ .r4I7X{align-items:center;display:inline-flex;justify-content:flex-start;width:fit-content}:is(.piMYQ .r4I7X):hover .rLdLT{color:var(--altum-color-brand-tint-text)}.piMYQ .keApy{opacity:var(--altum-opacity-disabled)}.piMYQ .IXXDA{border-color:var(--altum-color-brand)}.piMYQ .yeXWt{background:color-mix(in srgb,var(--altum-color-brand) 8%,var(--altum-color-bg));border-color:var(--altum-color-input-border-focus);box-shadow:inset 0 0 0 1px var(--altum-color-input-border-focus)}.piMYQ .rLdLT{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-semibold);line-height:var(--altum-g-line-height-2xs)}.piMYQ .dUxNu{display:flex;flex-direction:column;gap:var(--altum-control-inset);min-width:0}.piMYQ ._7UYkH{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-xs);line-height:var(--altum-g-line-height-xs);padding-left:var(--altum-g-space-1)}.piMYQ .NXhuu{bottom:var(--altum-g-space-1);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--altum-control-inset);height:var(--altum-calendar-board-span-height,0);left:0;pointer-events:none;position:absolute;right:0;z-index:var(--altum-g-z-raised-above)}.piMYQ .olUCM{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,minmax(0,1fr));height:var(--altum-g-space-5);min-height:var(--altum-g-space-5);pointer-events:none}.piMYQ .Kn1-T{box-sizing:border-box;display:flex;height:100%;min-width:0;padding:0 var(--altum-calendar-span-pad,1px);pointer-events:auto}:is(.piMYQ .Kn1-T)>*{flex:1 1 auto;min-width:0}.piMYQ ._0thuL{align-items:center;background-color:color-mix(in srgb,var(--altum-calendar-board-task-color,var(--altum-color-brand)) 14%,var(--altum-color-dropdown-bg));border:none;border-radius:var(--altum-g-radius-sm);box-sizing:border-box;color:var(--altum-color-input-text);display:flex;font-family:inherit;font-size:var(--altum-g-font-size-xs);font-weight:var(--altum-g-font-weight-medium);gap:var(--altum-g-space-1);line-height:var(--altum-g-line-height-xs);max-width:100%;overflow:hidden;padding:var(--altum-control-inset) calc(var(--altum-g-space-1) + var(--altum-control-inset));text-align:left;transition:var(--altum-transition-smooth)}.piMYQ ._9ratn{cursor:pointer}.piMYQ ._9OokW{background-color:var(--altum-calendar-board-dot-color,var(--altum-color-brand));border-radius:50%;flex-shrink:0;height:var(--altum-calendar-dot-size,6px);width:var(--altum-calendar-dot-size,6px)}.piMYQ .lrBTx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.piMYQ .YQrGM{opacity:var(--altum-opacity-disabled)}:is(.piMYQ .YQrGM) .lrBTx{text-decoration:line-through}.piMYQ ._4Md0S{display:grid;gap:var(--altum-g-space-4);grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.piMYQ .PWn5Q{min-width:0}.piMYQ .lqOaF{background:var(--altum-color-bg);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--altum-g-space-2);margin:0;padding:var(--altum-g-space-3);width:100%}.piMYQ .QmrLz{border-color:var(--altum-color-brand)}.piMYQ .LhY4U{align-self:flex-start;color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-sm);font-weight:var(--altum-g-font-weight-semibold);line-height:var(--altum-g-line-height-sm)}:is(.piMYQ .LhY4U):hover{color:var(--altum-color-brand-tint-text)}.piMYQ .lSrMn{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.piMYQ .UQweF,.piMYQ .lSrMn{gap:var(--altum-control-inset)}.piMYQ .UQweF{display:flex;flex-direction:column}.piMYQ .zgp79{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-3xs);line-height:var(--altum-g-line-height-xs);text-align:center}.piMYQ ._1-m2q{align-items:center;display:flex;font-size:var(--altum-g-font-size-xs);justify-content:center;line-height:1.2;min-height:calc(var(--altum-g-space-5) + var(--altum-control-inset));text-align:center;width:100%}.piMYQ .JN3mE{color:#0000;pointer-events:none}.piMYQ ._6P5Gz{box-shadow:inset 0 0 0 1px var(--altum-color-brand);font-weight:var(--altum-g-font-weight-bold)}.piMYQ .GMPdz{background-color:var(--altum-color-brand-tint);font-weight:var(--altum-g-font-weight-semibold)}.piMYQ .GMPdz,:is(.piMYQ .GMPdz):hover{color:var(--altum-color-brand-tint-text)}:is(.piMYQ .GMPdz):hover{background-color:var(--altum-color-brand-tint-hover)}._9ratn:hover,.dE7XX{background-color:color-mix(in srgb,var(--altum-calendar-board-task-color,var(--altum-color-brand)) 28%,var(--altum-color-dropdown-bg));filter:brightness(.97)}";const i={root:"piMYQ",header:"PIhAv",title:"ieFyD",nav:"EWooT",viewSwitch:"_8goA5",body:"_7RpjV",month:"Fgaml",weekdayRow:"pJ9nq",weekdayLabel:"ZOxGs",monthWeeks:"ap-38",weekRow:"SdYwd",weekDays:"_0kfE4",dayCell:"_1Ww5-",dayCellSurface:"VhRCF",dayNumberBtn:"r4I7X",dayNumber:"rLdLT",dayOutside:"keApy",dayToday:"IXXDA",daySelected:"yeXWt",dayChips:"dUxNu",dayMore:"_7UYkH",spanTrack:"NXhuu",spanLane:"olUCM",spanSlot:"Kn1-T",chip:"_0thuL",chipClickable:"_9ratn",chipDot:"_9OokW",chipTitle:"lrBTx",chipCompleted:"YQrGM",year:"_4Md0S",yearMonth:"PWn5Q",yearMonthCard:"lqOaF",yearMonthCurrent:"QmrLz",yearMonthLabelBtn:"LhY4U",yearCols:"lSrMn",yearWeeks:"UQweF",yearWeekday:"zgp79",yearDay:"_1-m2q",yearDayOutside:"JN3mE",yearDayToday:"_6P5Gz",yearDayHasTask:"GMPdz",chipHighlighted:"dE7XX"};a(t);export{i as default};
@@ -1 +1 @@
1
- "use client";import{startOfDay as i,startOfWeek as o,buildDayStrip as g,addDays as D}from"../Calendar/Calendar.utils.js";function f(t,e=1){const n=t.getFullYear(),a=t.getMonth(),s=i(new Date(n,a,1)),c=i(new Date(n,a+1,0));let r=o(s,e);const l=o(c,e),u=[];for(;r.getTime()<=l.getTime();)u.push(g(r,7)),r=D(r,7);return u}function m(t,e){const n=i(t).getTime(),a=i(e).getTime();return Math.max(0,Math.round((a-n)/(1440*60*1e3)))}function d(t,e){return m(t,e)>1}function h(t){return`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`}export{f as buildMonthWeeks,h as calendarDateKey,d as isMultiDayTask};
1
+ "use client";import{buildDayStrip as l}from"../Calendar/Calendar.utils.js";import{startOfDay as i,getWeekStart as u,addDays as m}from"../../utils/date.js";function D(t,e=1){const n=t.getFullYear(),r=t.getMonth(),s=i(new Date(n,r,1)),c=i(new Date(n,r+1,0));let a=u(s,e);const g=u(c,e),o=[];for(;a.getTime()<=g.getTime();)o.push(l(a,7)),a=m(a,7);return o}function f(t,e){const n=i(t).getTime(),r=i(e).getTime();return Math.max(0,Math.round((r-n)/(1440*60*1e3)))}function d(t,e){return f(t,e)>1}function h(t){return`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`}export{D as buildMonthWeeks,h as calendarDateKey,d as isMultiDayTask};
@@ -1 +1 @@
1
- "use client";import{startOfDay as f,addDays as y}from"../Calendar/Calendar.utils.js";function h(t){return y(f(t),1)}function g(t){return t.getHours()*60+t.getMinutes()+t.getSeconds()/60}function p(t,u,r){return Math.min(r,Math.max(u,t))}function I(t,u){const r=Math.floor(t),a=Math.ceil(u);return a<=r?[]:Array.from({length:a-r},(e,n)=>r+n)}function M(t){const u=(t%24+24)%24;return`${String(u).padStart(2,"0")}:00`}function S(t,u,r){const a=f(r),e=h(r),n=t>a?t:a,o=u<e?u:e;return o<=n?null:{start:n,end:o}}function T(t,u,r,a){const e=r*60,n=a*60;if(n<=e)return null;const o=p(g(t),e,n),s=p(g(u),e,n);if(s<=o)return null;const l=n-e,m=(s-o)/l*100,c=32/l*100;return{topPercent:(o-e)/l*100,heightPercent:Math.max(m,c)}}function x(t,u,r){if(r.length===0)return null;const a=f(t),e=f(u);if(e<=a)return null;const n=r[0],o=r[r.length-1],s=h(o);if(e<=n||a>=s)return null;const l=r.map((m,c)=>({column:m,index:c})).filter(({column:m})=>m>=a&&m<e).map(({index:m})=>m);return l.length===0?null:{startIndex:l[0],endIndex:l[l.length-1],continuesBefore:a<n,continuesAfter:e>s}}function D(t,u,r){const a=[];return r.forEach((e,n)=>{const o=e.filter(Boolean),s=x(t,u,o);s&&a.push({weekIndex:n,segment:s})}),a}function k(t){const u=[...t].sort((e,n)=>{if(e.segment.startIndex!==n.segment.startIndex)return e.segment.startIndex-n.segment.startIndex;const o=e.segment.endIndex-e.segment.startIndex;return n.segment.endIndex-n.segment.startIndex-o}),r=[],a=[];for(const e of u){let n=r.findIndex(o=>o<e.segment.startIndex);n===-1?(n=r.length,r.push(e.segment.endIndex)):r[n]=e.segment.endIndex,a.push({item:e.item,segment:e.segment,lane:n})}return{packed:a,laneCount:r.length}}function v(t,u,r){const a=t.map(s=>{const l=T(s.start,s.end,u,r);return l?{item:s.item,layout:{...l,start:s.start,end:s.end}}:null}).filter(s=>s!==null).sort((s,l)=>s.layout.start.getTime()-l.layout.start.getTime()),e=[],n=[];let o=0;for(const s of a){const l=s.layout.start.getTime(),m=s.layout.end.getTime();for(let i=e.length-1;i>=0;i-=1)e[i].end<=l&&e.splice(i,1);const c=new Set(e.map(i=>i.lane));let d=0;for(;c.has(d);)d+=1;e.push({end:m,lane:d}),o=Math.max(o,d+1),n.push({item:s.item,layout:s.layout,lane:d})}return n.map(s=>({...s,laneCount:Math.max(o,1)}))}function A(t){return t.allDay===!0?!0:t.allDay===!1?!1:t.end.getTime()-t.start.getTime()>=1440*60*1e3&&g(t.start)===0&&g(t.end)===0}export{I as buildHourMarks,S as clipEventToDay,M as formatHourLabel,k as packSpanSegments,v as packTimedEventsInDay,A as resolveAllDay,D as segmentSpanByWeeks,x as segmentSpanInColumns};
1
+ "use client";import{startOfDay as f,addDays as p}from"../../utils/date.js";import{clamp as h}from"../../utils/clamp.js";function g(n){return n.getHours()*60+n.getMinutes()+n.getSeconds()/60}function I(n,u){const o=Math.floor(n),r=Math.ceil(u);return r<=o?[]:Array.from({length:r-o},(e,t)=>o+t)}function y(n,u,o){const r=f(o),e=p(r,1),t=n>r?n:r,l=u<e?u:e;return l<=t?null:{start:t,end:l}}function T(n,u,o,r){const e=o*60,t=r*60;if(t<=e)return null;const l=h(g(n),e,t),s=h(g(u),e,t);if(s<=l)return null;const a=t-e,m=(s-l)/a*100,c=32/a*100;return{topPercent:(l-e)/a*100,heightPercent:Math.max(m,c)}}function x(n,u,o){if(o.length===0)return null;const r=f(n),e=f(u);if(e<=r)return null;const t=o[0],l=o[o.length-1],s=p(f(l),1);if(e<=t||r>=s)return null;const a=o.map((m,c)=>({column:m,index:c})).filter(({column:m})=>m>=r&&m<e).map(({index:m})=>m);return a.length===0?null:{startIndex:a[0],endIndex:a[a.length-1],continuesBefore:r<t,continuesAfter:e>s}}function D(n,u,o){const r=[];return o.forEach((e,t)=>{const l=e.filter(Boolean),s=x(n,u,l);s&&r.push({weekIndex:t,segment:s})}),r}function M(n){const u=[...n].sort((e,t)=>{if(e.segment.startIndex!==t.segment.startIndex)return e.segment.startIndex-t.segment.startIndex;const l=e.segment.endIndex-e.segment.startIndex;return t.segment.endIndex-t.segment.startIndex-l}),o=[],r=[];for(const e of u){let t=o.findIndex(l=>l<e.segment.startIndex);t===-1?(t=o.length,o.push(e.segment.endIndex)):o[t]=e.segment.endIndex,r.push({item:e.item,segment:e.segment,lane:t})}return{packed:r,laneCount:o.length}}function k(n,u,o){const r=n.map(s=>{const a=T(s.start,s.end,u,o);return a?{item:s.item,layout:{...a,start:s.start,end:s.end}}:null}).filter(s=>s!==null).sort((s,a)=>s.layout.start.getTime()-a.layout.start.getTime()),e=[],t=[];let l=0;for(const s of r){const a=s.layout.start.getTime(),m=s.layout.end.getTime();for(let i=e.length-1;i>=0;i-=1)e[i].end<=a&&e.splice(i,1);const c=new Set(e.map(i=>i.lane));let d=0;for(;c.has(d);)d+=1;e.push({end:m,lane:d}),l=Math.max(l,d+1),t.push({item:s.item,layout:s.layout,lane:d})}return t.map(s=>({...s,laneCount:Math.max(l,1)}))}function S(n){return n.allDay===!0?!0:n.allDay===!1?!1:n.end.getTime()-n.start.getTime()>=1440*60*1e3&&g(n.start)===0&&g(n.end)===0}export{I as buildHourMarks,y as clipEventToDay,M as packSpanSegments,k as packTimedEventsInDay,S as resolveAllDay,D as segmentSpanByWeeks,x as segmentSpanInColumns};
@@ -1 +1 @@
1
- "use client";import{jsxs as g,jsx as r}from"react/jsx-runtime";import{forwardRef as C}from"react";import{Box as b}from"../Box/Box.js";import a from"./Card.module.css.js";import{cn as x}from"../../utils/cn.js";import{implicitAs as y}from"../../utils/implicitAs.js";const m=C(function({children:e,header:l,media:o,actions:s,hoverable:t=!1,variant:d="outlined",loading:i=!1,className:f,as:h,onClick:n,role:c,radius:u="lg",...v},p){const N=y(h,n,c);return g(b,{ref:p,as:N,variant:d,radius:u,className:x(a.card,d==="ghost"&&a.ghost,t&&a.hoverable,i&&a.loading,f),"aria-busy":i||void 0,...v,onClick:n,role:c,children:[l!=null&&r("div",{className:a.header,children:l}),o!=null&&r("div",{className:a.media,children:o}),e!=null&&r("div",{className:a.body,children:e}),s!=null&&r("div",{className:a.footer,children:s}),i&&r("div",{className:a.loadingOverlay,"aria-hidden":!0})]})});m.displayName="Card";export{m as Card};
1
+ "use client";import{jsx as s}from"react/jsx-runtime";import{forwardRef as N}from"react";import{Box as x}from"../Box/Box.js";import r from"./Card.module.css.js";import{cn as y}from"../../utils/cn.js";import{implicitAs as k}from"../../utils/implicitAs.js";const m=N(function({children:d,header:t,media:n,actions:c,hoverable:f=!1,variant:o,loading:p=!1,className:h,as:u,onClick:a,role:i,radius:v="lg",...b},g){const C=k(u,a,i);return s(x,{ref:g,as:C,variant:o,radius:v,className:y(r.card,o==="ghost"&&r.ghost,f&&r.hoverable,h),...b,onClick:a,role:i,"aria-busy":p||void 0,children:[[r.header,t],[r.media,n],[r.body,d],[r.footer,c]].map(([e,l])=>l!=null&&s("div",{className:e,children:l},e))})});m.displayName="Card";export{m as Card};
@@ -1 +1 @@
1
- "use client";import{injectCss as o}from"../../utils/injectCss.js";var a='.Cb1o4{--altum-card-px:var(--altum-g-space-5);display:flex;flex-direction:column;overflow:hidden;position:relative;transition:var(--altum-transition-smooth)}.Cb1o4.aGYcW:is(:hover,:focus-visible):not(:disabled){box-shadow:var(--altum-shadow-surface)}.Cb1o4.aGYcW:hover:not(:disabled){transform:translateY(-2px)}.Cb1o4.aGYcW:focus-visible{outline:var(--altum-focus-ring-width) solid var(--altum-focus-ring-color);outline-offset:var(--altum-focus-ring-offset)}.Cb1o4.H9oA-.aGYcW:is(:hover,:focus-visible){box-shadow:none}@media (prefers-reduced-motion:reduce){.Cb1o4.aGYcW:hover:not(:disabled){transform:none}}.Cb1o4 .PTXf2{padding:var(--altum-g-space-4) var(--altum-card-px)}.Cb1o4 .E4EQe{background-color:var(--altum-color-option-hover);overflow:hidden;width:100%}:is(.Cb1o4 .E4EQe)>*{display:block;width:100%}.Cb1o4 .W441Z{flex:1;padding:var(--altum-g-space-5) var(--altum-card-px)}.Cb1o4 .Mu-JC{align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-2);padding:var(--altum-g-space-4) var(--altum-card-px)}.Cb1o4.H9oA-{--altum-card-px:0}.pF1ro{pointer-events:none}.D0ZLN{align-items:center;background-color:color-mix(in srgb,var(--altum-color-surface) 72%,#0000);display:flex;inset:0;justify-content:center;position:absolute;z-index:1}.D0ZLN:after{animation:qAIl1 .75s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid #0000;content:"";height:24px;width:24px}@keyframes qAIl1{to{transform:rotate(1turn)}}';const e={card:"Cb1o4",hoverable:"aGYcW",ghost:"H9oA-",header:"PTXf2",media:"E4EQe",body:"W441Z",footer:"Mu-JC",loading:"pF1ro",loadingOverlay:"D0ZLN"};o(a);export{e as default};
1
+ "use client";import{injectCss as o}from"../../utils/injectCss.js";var a='.Cb1o4{--altum-card-px:var(--altum-g-space-5);--altum-card-hover-shadow:var(--altum-shadow-surface);display:flex;flex-direction:column;overflow:hidden;position:relative}.Cb1o4.H9oA-{--altum-card-px:0;--altum-card-hover-shadow:none}.Cb1o4.aGYcW{transition:var(--altum-transition-smooth)}.Cb1o4.aGYcW:is(:hover,:focus-visible):not(:disabled){box-shadow:var(--altum-card-hover-shadow)}.Cb1o4.aGYcW:focus-visible{outline:var(--altum-focus-ring-width) solid var(--altum-focus-ring-color);outline-offset:var(--altum-focus-ring-offset)}@media (prefers-reduced-motion:no-preference){.Cb1o4.aGYcW:hover:not(:disabled){transform:translateY(-2px)}}.Cb1o4 .Mu-JC,.Cb1o4 .PTXf2{padding:var(--altum-g-space-4) var(--altum-card-px)}.Cb1o4 .Mu-JC{align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-2)}.Cb1o4 .E4EQe{background-color:var(--altum-color-option-hover);overflow:hidden}:is(.Cb1o4 .E4EQe)>*{display:block;width:100%}.Cb1o4 .W441Z{flex:1;padding:var(--altum-g-space-5) var(--altum-card-px)}.Cb1o4[aria-busy=true]{pointer-events:none}.Cb1o4[aria-busy=true]:before{background-color:color-mix(in srgb,var(--altum-color-surface) 72%,#0000);content:"";inset:0;position:absolute;z-index:1}.Cb1o4[aria-busy=true]:after{animation:iMQ71 .75s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid #0000;content:"";height:24px;inset:0;margin:auto;position:absolute;width:24px;z-index:1}@keyframes iMQ71{to{transform:rotate(1turn)}}';const r={card:"Cb1o4",ghost:"H9oA-",hoverable:"aGYcW",header:"PTXf2",footer:"Mu-JC",media:"E4EQe",body:"W441Z"};o(a);export{r as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as F,Fragment as I,jsx as l}from"react/jsx-runtime";import{forwardRef as G}from"react";import{IconCross as T}from"../../icons/icons/IconCross.js";import o from"./Chip.module.css.js";import h from"../../styles/status.module.css.js";import L from"../../styles/unstyledControl.module.css.js";import{cn as b}from"../../utils/cn.js";import{composeRefs as z}from"../../utils/composeRefs.js";import{useOverflowEdges as A}from"../../hooks/useOverflowEdges.js";import{useScrollFocusedChildIntoView as B}from"../../hooks/useScrollFocusedChildIntoView.js";import{useLocale as R}from"../../locales/localeContext.js";const M={success:1,info:1,warning:1,error:1},x=G(function({variant:s="primary",size:g="md",mode:d,as:c="chip",children:v,onRemove:r,onClick:t,disabled:e=!1,icon:m,className:C,removeLabel:y,...N},k){const{t:a}=R(),n=d??c,f=n==="tag",p=n==="toggle",i=!!t&&!e,w=i&&!!r,S=i&&!r?"button":"span",u=s in M,X=F(I,{children:[m&&l("span",{className:o.icon,"aria-hidden":f||void 0,children:m}),l("span",{className:o.label,children:v})]});return F(S,{ref:k,className:b(o.chip,f?o.modeTag:o.modeChip,u?h[s]:o[s],u?h.surface:"",u&&i?h.clickable:"",o[g],p?u?h.active:o.active:"",i?o.clickable:"",r?o.chipRemovable:"",e?o.disabled:"",C),type:S==="button"?"button":void 0,...N,"aria-pressed":i&&p&&!w?!0:void 0,"aria-disabled":e||void 0,disabled:S==="button"?e:void 0,onClick:i&&!w?t:void 0,children:[w?l("button",{type:"button",className:b(L.control,o.action),onClick:t,"aria-pressed":p||void 0,disabled:e,children:X}):X,r&&!e&&l("button",{type:"button",className:b(L.control,o.removeBtn),onClick:j=>{j.stopPropagation(),r()},"aria-label":y??a("chip.remove"),children:l(T,{})})]})});x.displayName="Chip";const E=G(function({children:s,"aria-label":g,gap:d="md",layout:c="wrap",overflowAffordance:v,mode:r,as:t="chip",className:e,style:m,...C},y){const{t:N}=R(),k=r??t,a=c==="scrollX"&&(v??"fade")==="fade",{ref:n,start:f,end:p}=A(a);return B(n,c==="scrollX"),l("div",{ref:z(y,n),className:b(o.chipGroup,d==="sm"?o.gapSm:d==="lg"?o.gapLg:"",c==="scrollX"?o.layoutScrollX:"",a?o.layoutScrollXFade:"",a&&f?o.fadeStart:"",a&&p?o.fadeEnd:"",e),style:m,...C,role:"group","aria-label":g??N(k==="tag"?"chip.groupTags":"chip.groupChips"),children:s})});E.displayName="ChipGroup";export{x as Chip,E as ChipGroup};
1
+ "use client";import{jsxs as N,Fragment as z,jsx as r}from"react/jsx-runtime";import{forwardRef as y}from"react";import{IconCross as B}from"../../icons/icons/IconCross.js";import i from"./Chip.module.css.js";import p from"../../styles/status.module.css.js";import k from"../../styles/unstyledControl.module.css.js";import{cn as m}from"../../utils/cn.js";import{useLocale as w}from"../../locales/localeContext.js";import{ruSlice as F}from"../../locales/slices/chip.ru.js";const x={chip:F},H={success:1,info:1,warning:1,error:1},G=y(function({variant:t="primary",size:d="md",mode:c="chip",children:h,onRemove:o,onClick:l,disabled:e=!1,icon:s,className:u,removeLabel:R,...j},S){const{t:T}=w(x),v=c==="tag",b=c==="toggle",a=!!l&&!e,f=a&&!!o,g=a&&!o?"button":"span",n=t in H,C=N(z,{children:[s&&r("span",{className:i.icon,"aria-hidden":v||void 0,children:s}),r("span",{className:i.label,children:h})]});return N(g,{ref:S,className:m(i.chip,v?i.modeTag:i.modeChip,n?p[t]:i[t],n?p.surface:"",n&&a?p.clickable:"",i[d],b?n?p.active:i.active:"",a?i.clickable:"",o&&!e?i.chipRemovable:"",e?i.disabled:"",u),type:g==="button"?"button":void 0,...j,"aria-pressed":a&&b&&!f?!0:void 0,"aria-disabled":e||void 0,disabled:g==="button"?e:void 0,onClick:a&&!f?l:void 0,children:[f?r("button",{type:"button",className:m(k.control,i.action),onClick:l,"aria-pressed":b||void 0,disabled:e,children:C}):C,o&&!e&&r("button",{type:"button",className:m(k.control,i.removeBtn),onClick:$=>{$.stopPropagation(),o()},"aria-label":R??T("chip.remove"),children:r(B,{})})]})});G.displayName="Chip";const L=y(function({children:t,"aria-label":d,gap:c="md",mode:h="chip",className:o,style:l,...e},s){const{t:u}=w(x);return r("div",{ref:s,className:m(i.chipGroup,c==="sm"?i.gapSm:c==="lg"?i.gapLg:"",o),style:l,...e,role:"group","aria-label":d??u(h==="tag"?"chip.groupTags":"chip.groupChips"),children:t})});L.displayName="ChipGroup";export{G as Chip,L as ChipGroup};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var r="._0nys-{--altum-chip-border:#0000;--altum-chip-fg:inherit;--altum-chip-bg:#0000;--altum-chip-border-hover:var(--altum-chip-border);--altum-chip-bg-hover:var(--altum-chip-bg);--altum-chip-border-active:var(--altum-chip-border);--altum-chip-fg-active:var(--altum-chip-fg);--altum-chip-bg-active:var(--altum-chip-bg);--altum-chip-remove-icon:10px;align-items:center;background-color:var(--altum-chip-bg);border:1px solid var(--altum-chip-border);box-sizing:border-box;color:var(--altum-chip-fg);display:inline-flex;font-family:var(--altum-g-font-family-ui);font-weight:var(--altum-g-font-weight-medium,500);gap:var(--altum-g-space-1);max-width:100%;transition:var(--altum-transition-smooth);-webkit-user-select:none;user-select:none}._0nys-._0lmtZ{border-radius:var(--altum-g-radius-sm)}._0nys-.uzyWi{border-radius:var(--altum-g-radius-pill)}._0nys-.dsdYB{--altum-chip-remove-size:var(--altum-g-space-4);--altum-chip-remove-icon:8px;font-size:var(--altum-g-font-size-xs);line-height:1.2;min-height:var(--altum-g-space-5);padding:0 var(--altum-g-space-2)}._0nys-.dsdYB .zcpqW{padding:1px}._0nys-.TEBUR{--altum-chip-remove-size:var(--altum-g-space-5);font-size:var(--altum-g-font-size-2xs);line-height:1.25;min-height:calc(var(--altum-g-space-6) + var(--altum-control-inset));padding:var(--altum-control-inset) var(--altum-g-space-2)}._0nys-.elR6T{--altum-chip-remove-size:var(--altum-g-space-6);--altum-chip-remove-icon:12px;font-size:var(--altum-g-font-size-sm);gap:var(--altum-g-space-2);line-height:1.3;min-height:var(--altum-g-space-7);padding:0 var(--altum-g-space-3)}._0nys-.elR6T .zcpqW{padding:2px}._0nys-.YebDo.dsdYB{padding-right:2px}._0nys-.YebDo.TEBUR,._0nys-.YebDo.elR6T{padding-right:var(--altum-g-space-1)}._0nys-.u11-9{--altum-chip-border:color-mix(in srgb,var(--altum-color-brand-text) 28%,var(--altum-color-brand));--altum-chip-fg:var(--altum-color-fill-primary-fg);--altum-chip-bg:var(--altum-color-fill-primary-bg);--altum-chip-border-hover:color-mix(in srgb,var(--altum-color-brand-text) 40%,var(--altum-color-brand-hover));--altum-chip-bg-hover:var(--altum-color-brand-hover);--altum-chip-border-active:color-mix(in srgb,var(--altum-color-brand-text) 55%,var(--altum-color-brand));--altum-chip-fg-active:var(--altum-color-selection-fill-fg,var(--altum-color-brand-text));--altum-chip-bg-active:var(--altum-color-selection-fill-emphasis,var(--altum-color-brand-hover,var(--altum-color-brand)))}._0nys-._5OzVt{--altum-chip-border:var(--altum-color-chip-tinted-border);--altum-chip-fg:var(--altum-color-chip-tinted-text);--altum-chip-bg:var(--altum-color-chip-tinted-bg);--altum-chip-border-hover:var(--altum-color-chip-tinted-border-hover);--altum-chip-bg-hover:var(--altum-color-chip-tinted-bg-hover);--altum-chip-border-active:color-mix(in srgb,var(--altum-color-brand-tint-text) 45%,#0000);--altum-chip-fg-active:var(--altum-color-selection-fill-fg,var(--altum-color-brand-text));--altum-chip-bg-active:var(--altum-color-selection-fill,var(--altum-color-brand-tint-active))}._0nys-.Pblts{--altum-chip-border:var(--altum-color-chip-secondary-border);--altum-chip-fg:var(--altum-color-chip-secondary-text);--altum-chip-bg:var(--altum-color-chip-secondary-bg);--altum-chip-border-hover:var(--altum-color-chip-secondary-border-hover);--altum-chip-bg-hover:var(--altum-color-chip-secondary-bg-hover);--altum-chip-border-active:var(--altum-color-selection-neutral-border,color-mix(in srgb,var(--altum-color-text-secondary) 45%,var(--altum-color-border)));--altum-chip-fg-active:var(--altum-color-field-text,var(--altum-color-text-secondary));--altum-chip-bg-active:var(--altum-color-selection-neutral-fill,color-mix(in srgb,var(--altum-color-text-secondary) 22%,#0000))}._0nys-.AkRz4:is(.u11-9,._5OzVt,.Pblts):hover:not(:disabled){background-color:var(--altum-chip-bg-hover);border-color:var(--altum-chip-border-hover)}._0nys-.Nql1K{background-color:var(--altum-chip-bg-active);border-color:var(--altum-chip-border-active);box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 35%,#0000);color:var(--altum-chip-fg-active)}._0nys-.AkRz4{cursor:pointer}._0nys-.AkRz4:focus-visible{outline:var(--altum-focus-ring-width) solid var(--altum-focus-ring-color);outline-offset:var(--altum-focus-ring-offset)}._0nys- .-EHB0{gap:inherit;min-width:0}._0nys- .-EHB0,._0nys- .dtR-K{align-items:center;display:inline-flex}._0nys- .dtR-K{flex-shrink:0;justify-content:center;line-height:0}._0nys- .Ov9pg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._0nys- .zcpqW{align-items:center;border-radius:50%;box-sizing:border-box;display:inline-flex;flex-shrink:0;height:var(--altum-chip-remove-size,var(--altum-g-space-5));justify-content:center;opacity:.7;transition:var(--altum-transition-smooth);width:var(--altum-chip-remove-size,var(--altum-g-space-5))}:is(._0nys- .zcpqW) svg{height:var(--altum-chip-remove-icon);width:var(--altum-chip-remove-icon)}:is(._0nys- .zcpqW):hover:not(:disabled){background-color:color-mix(in srgb,currentColor 12%,#0000);opacity:1}:is(._0nys- .zcpqW):focus-visible{opacity:1}._0nys-._5Z-a8{cursor:not-allowed;opacity:var(--altum-opacity-disabled);pointer-events:none}.BDyZD{align-content:flex-start;align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-2);justify-content:flex-start}.BDyZD.pPuGm{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}.BDyZD.pPuGm>*{flex-shrink:0}.BDyZD.wBJnf{-webkit-mask-image:linear-gradient(to right,#0000 0,var(--altum-chip-mask) var(--altum-g-space-4),var(--altum-chip-mask) calc(100% - var(--altum-g-space-4)),#0000 100%);mask-image:linear-gradient(to right,#0000 0,var(--altum-chip-mask) var(--altum-g-space-4),var(--altum-chip-mask) calc(100% - var(--altum-g-space-4)),#0000 100%)}.BDyZD.wBJnf.x8XR-:not(.Z-fFZ){-webkit-mask-image:linear-gradient(to right,#0000 0,var(--altum-chip-mask) var(--altum-g-space-4),var(--altum-chip-mask) 100%);mask-image:linear-gradient(to right,#0000 0,var(--altum-chip-mask) var(--altum-g-space-4),var(--altum-chip-mask) 100%)}.BDyZD.wBJnf.Z-fFZ:not(.x8XR-){-webkit-mask-image:linear-gradient(to right,var(--altum-chip-mask) 0,var(--altum-chip-mask) calc(100% - var(--altum-g-space-4)),#0000 100%);mask-image:linear-gradient(to right,var(--altum-chip-mask) 0,var(--altum-chip-mask) calc(100% - var(--altum-g-space-4)),#0000 100%)}.BDyZD.wBJnf:not(.x8XR-):not(.Z-fFZ){-webkit-mask-image:none;mask-image:none}.BDyZD.SJea-{gap:var(--altum-g-space-1)}.BDyZD.ipm2Q{gap:var(--altum-g-space-3)}";const t={chip:"_0nys-",modeChip:"_0lmtZ",modeTag:"uzyWi",sm:"dsdYB",removeBtn:"zcpqW",md:"TEBUR",lg:"elR6T",chipRemovable:"YebDo",primary:"u11-9",tinted:"_5OzVt",secondary:"Pblts",clickable:"AkRz4",active:"Nql1K",action:"-EHB0",icon:"dtR-K",label:"Ov9pg",disabled:"_5Z-a8",chipGroup:"BDyZD",layoutScrollX:"pPuGm",layoutScrollXFade:"wBJnf",fadeStart:"x8XR-",fadeEnd:"Z-fFZ",gapSm:"SJea-",gapLg:"ipm2Q"};a(r);export{t as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var r="._0nys-{--altum-chip-border:#0000;--altum-chip-fg:inherit;--altum-chip-bg:#0000;--altum-chip-border-hover:var(--altum-chip-border);--altum-chip-bg-hover:var(--altum-chip-bg);--altum-chip-border-active:var(--altum-chip-border);--altum-chip-fg-active:var(--altum-chip-fg);--altum-chip-bg-active:var(--altum-chip-bg);--altum-chip-remove-icon:10px;align-items:center;background-color:var(--altum-chip-bg);border:1px solid var(--altum-chip-border);box-sizing:border-box;color:var(--altum-chip-fg);display:inline-flex;font-family:var(--altum-g-font-family-ui);font-weight:var(--altum-g-font-weight-medium);gap:var(--altum-g-space-1);max-width:100%;transition:var(--altum-transition-smooth);-webkit-user-select:none;user-select:none}._0nys-._0lmtZ{border-radius:var(--altum-g-radius-sm)}._0nys-.uzyWi{border-radius:var(--altum-g-radius-pill)}._0nys-.dsdYB{--altum-chip-remove-size:var(--altum-g-space-4);--altum-chip-remove-icon:var(--altum-g-space-2);font-size:var(--altum-g-font-size-xs);line-height:1.2;min-height:var(--altum-g-space-5);padding:0 var(--altum-g-space-2)}._0nys-.dsdYB .zcpqW{padding:1px}._0nys-.TEBUR{--altum-chip-remove-size:var(--altum-g-space-5);font-size:var(--altum-g-font-size-2xs);line-height:1.25;min-height:calc(var(--altum-g-space-6) + var(--altum-control-inset));padding:var(--altum-control-inset) var(--altum-g-space-2)}._0nys-.elR6T{--altum-chip-remove-size:var(--altum-g-space-6);--altum-chip-remove-icon:var(--altum-g-space-3);font-size:var(--altum-g-font-size-sm);gap:var(--altum-g-space-2);line-height:1.3;min-height:var(--altum-g-space-7);padding:0 var(--altum-g-space-3)}._0nys-.elR6T .zcpqW{padding:var(--altum-control-inset)}._0nys-.YebDo.dsdYB{padding-right:var(--altum-control-inset)}._0nys-.YebDo.TEBUR,._0nys-.YebDo.elR6T{padding-right:var(--altum-g-space-1)}._0nys-.u11-9{--altum-chip-border:color-mix(in srgb,var(--altum-color-brand-text) 28%,var(--altum-color-brand));--altum-chip-fg:var(--altum-color-fill-primary-fg);--altum-chip-bg:var(--altum-color-fill-primary-bg);--altum-chip-border-hover:color-mix(in srgb,var(--altum-color-brand-text) 40%,var(--altum-color-brand-hover));--altum-chip-bg-hover:var(--altum-color-brand-hover);--altum-chip-border-active:color-mix(in srgb,var(--altum-color-brand-text) 55%,var(--altum-color-brand));--altum-chip-fg-active:var(--altum-color-selection-fill-fg);--altum-chip-bg-active:var(--altum-color-selection-fill-emphasis)}._0nys-._5OzVt{--altum-chip-border:var(--altum-color-chip-tinted-border);--altum-chip-fg:var(--altum-color-chip-tinted-text);--altum-chip-bg:var(--altum-color-chip-tinted-bg);--altum-chip-border-hover:var(--altum-color-chip-tinted-border-hover);--altum-chip-bg-hover:var(--altum-color-chip-tinted-bg-hover);--altum-chip-border-active:color-mix(in srgb,var(--altum-color-brand-tint-text) 45%,#0000);--altum-chip-fg-active:var(--altum-color-selection-fill-fg);--altum-chip-bg-active:var(--altum-color-selection-fill)}._0nys-.Pblts{--altum-chip-border:var(--altum-color-chip-secondary-border);--altum-chip-fg:var(--altum-color-chip-secondary-text);--altum-chip-bg:var(--altum-color-chip-secondary-bg);--altum-chip-border-hover:var(--altum-color-chip-secondary-border-hover);--altum-chip-bg-hover:var(--altum-color-chip-secondary-bg-hover);--altum-chip-border-active:var(--altum-color-selection-neutral-border);--altum-chip-fg-active:var(--altum-color-field-text);--altum-chip-bg-active:var(--altum-color-selection-neutral-fill)}._0nys-.AkRz4:is(.u11-9,._5OzVt,.Pblts):hover:not(:disabled){background-color:var(--altum-chip-bg-hover);border-color:var(--altum-chip-border-hover)}._0nys-.Nql1K{background-color:var(--altum-chip-bg-active);border-color:var(--altum-chip-border-active);box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 35%,#0000);color:var(--altum-chip-fg-active)}._0nys-.AkRz4{cursor:pointer}._0nys-.AkRz4:focus-visible{outline:var(--altum-focus-ring-width) solid var(--altum-focus-ring-color);outline-offset:var(--altum-focus-ring-offset)}._0nys- .-EHB0{gap:inherit;min-width:0}._0nys- .-EHB0,._0nys- .dtR-K{align-items:center;display:inline-flex}._0nys- .dtR-K{flex-shrink:0;justify-content:center;line-height:0}._0nys- .Ov9pg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._0nys- .zcpqW{align-items:center;border-radius:50%;box-sizing:border-box;display:inline-flex;flex-shrink:0;height:var(--altum-chip-remove-size,var(--altum-g-space-5));justify-content:center;opacity:.7;transition:var(--altum-transition-smooth);width:var(--altum-chip-remove-size,var(--altum-g-space-5))}:is(._0nys- .zcpqW) svg{height:var(--altum-chip-remove-icon);width:var(--altum-chip-remove-icon)}:is(._0nys- .zcpqW):hover:not(:disabled){background-color:color-mix(in srgb,currentColor 12%,#0000);opacity:1}:is(._0nys- .zcpqW):focus-visible{opacity:1}._0nys-._5Z-a8{cursor:not-allowed;opacity:var(--altum-opacity-disabled);pointer-events:none}.BDyZD{align-content:flex-start;align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-2);justify-content:flex-start}.BDyZD.SJea-{gap:var(--altum-g-space-1)}.BDyZD.ipm2Q{gap:var(--altum-g-space-3)}";const t={chip:"_0nys-",modeChip:"_0lmtZ",modeTag:"uzyWi",sm:"dsdYB",removeBtn:"zcpqW",md:"TEBUR",lg:"elR6T",chipRemovable:"YebDo",primary:"u11-9",tinted:"_5OzVt",secondary:"Pblts",clickable:"AkRz4",active:"Nql1K",action:"-EHB0",icon:"dtR-K",label:"Ov9pg",disabled:"_5Z-a8",chipGroup:"BDyZD",gapSm:"SJea-",gapLg:"ipm2Q"};a(r);export{t as default};
@@ -1 +1 @@
1
- "use client";import{jsx as n}from"react/jsx-runtime";import{forwardRef as C}from"react";import r from"./ColorSwatchGroup.module.css.js";import{cn as d}from"../../utils/cn.js";import{composeEventHandlers as N}from"../../utils/composeEvents.js";import{useRovingList as E}from"../../hooks/useRovingList.js";import{SelectionGroup as m,SELECTION_VALUE_ATTR as O}from"../SelectionGroup/SelectionGroup.js";const c=C(function({colors:p,value:t,onChange:i,size:u="md",label:f,className:y,style:h,readOnly:s=!1,disabled:a=!1,onKeyDown:b,...v},w){const l=s&&!a,g=E("horizontal",o=>{const e=o.getAttribute(O);e&&i(e)});return n(m.Root,{ref:w,value:t??"",onChange:i,disabled:a,readOnly:s,className:d(r.group,r[u],l&&r.readOnly,a&&r.disabled,y),style:h,...v,role:"radiogroup","aria-label":f,"aria-readonly":l||void 0,"aria-disabled":a||void 0,onKeyDown:N(b,a||l?void 0:g),children:p.map(o=>{const e=t===o;return n(m.Item,{value:o,role:"radio","aria-checked":e,"aria-label":o,className:d(r.swatch,e&&r.selected),style:{"--altum-swatch-color":o}},o)})})});c.displayName="ColorSwatchGroup";export{c as ColorSwatchGroup};
1
+ "use client";import{jsx as r}from"react/jsx-runtime";import{forwardRef as v}from"react";import o from"./ColorSwatchGroup.module.css.js";import{cn as d}from"../../utils/cn.js";import{getFormControlState as C}from"../../utils/formControl.js";import{SelectionGroup as l}from"../SelectionGroup/SelectionGroup.js";const c=v(function({colors:m,value:t,onChange:p,size:u="md",label:f,className:y,style:h,readOnly:i=!1,disabled:e=!1,onKeyDown:b,...w},g){const{isReadOnly:n}=C({disabled:e,readOnly:i});return r(l.Root,{value:t??"",onChange:p,disabled:e,readOnly:i,orientation:"horizontal",children:r(l.List,{...w,ref:g,className:d(o.group,o[u],n&&o.readOnly,e&&o.disabled,y),style:h,role:"radiogroup","aria-label":f,"aria-readonly":n||void 0,"aria-disabled":e||void 0,onKeyDown:b,children:m.map(a=>{const s=t===a;return r(l.Item,{value:a,role:"radio","aria-checked":s,"aria-label":a,className:d(o.swatch,s&&o.selected),style:{"--altum-swatch-color":a}},a)})})})});c.displayName="ColorSwatchGroup";export{c as ColorSwatchGroup};
@@ -1 +1 @@
1
- "use client";import{injectCss as r}from"../../utils/injectCss.js";var a=".bWMc8{--altum-swatch-size:var(--altum-g-space-7);align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-2)}.bWMc8._0Y80K{--altum-swatch-size:var(--altum-g-space-5)}.bWMc8.nDsdT{background-color:var(--altum-field-bg-readonly);border:1px dashed var(--altum-field-border-readonly);border-radius:var(--altum-g-radius);padding:var(--altum-g-space-2)}.bWMc8.PmFOm .Dgzsz{cursor:not-allowed;opacity:.5}.Dgzsz{background-color:var(--altum-swatch-color);border:2px solid #0000;border-radius:50%;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--altum-color-input-text) 8%,#0000);height:var(--altum-swatch-size);transition:var(--altum-transition-smooth);width:var(--altum-swatch-size)}.Dgzsz:hover:not(:disabled){transform:scale(1.1)}.Dgzsz.ntGAr{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--altum-color-input-text) 14%,#0000),0 0 0 2px color-mix(in srgb,var(--altum-color-bg) 88%,#0000),0 0 0 3.5px color-mix(in srgb,var(--altum-color-text-secondary) 42%,#0000)}.Dgzsz.ntGAr:hover:not(:disabled){transform:scale(1.06)}.PmFOm .Dgzsz,.nDsdT .Dgzsz,:is(.nDsdT .Dgzsz,.PmFOm .Dgzsz):hover{transform:none}@media (prefers-reduced-motion:reduce){.Dgzsz:hover:not(:disabled){transform:none}}";const s={group:"bWMc8",sm:"_0Y80K",readOnly:"nDsdT",disabled:"PmFOm",swatch:"Dgzsz",selected:"ntGAr"};r(a);export{s as default};
1
+ "use client";import{injectCss as r}from"../../utils/injectCss.js";var a=".bWMc8{--altum-swatch-size:var(--altum-g-space-7);align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-2)}.bWMc8._0Y80K{--altum-swatch-size:var(--altum-g-space-5)}.bWMc8.nDsdT{background-color:var(--altum-field-bg-readonly);border:1px dashed var(--altum-field-border-readonly);border-radius:var(--altum-g-radius);padding:var(--altum-g-space-2)}.bWMc8.PmFOm .Dgzsz{cursor:not-allowed;opacity:.5}.bWMc8 .Dgzsz{background-color:var(--altum-swatch-color);border:2px solid #0000;border-radius:50%;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--altum-color-input-text) 8%,#0000);height:var(--altum-swatch-size);transition:var(--altum-transition-smooth);width:var(--altum-swatch-size)}:is(.bWMc8 .Dgzsz):hover:not(:disabled){transform:scale(1.1)}.ntGAr:is(.bWMc8 .Dgzsz){box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--altum-color-input-text) 14%,#0000),0 0 0 2px color-mix(in srgb,var(--altum-color-bg) 88%,#0000),0 0 0 3.5px color-mix(in srgb,var(--altum-color-text-secondary) 42%,#0000)}.ntGAr:is(.bWMc8 .Dgzsz):hover:not(:disabled){transform:scale(1.06)}.bWMc8.PmFOm .Dgzsz,.bWMc8.nDsdT .Dgzsz,:is(.bWMc8.nDsdT .Dgzsz,.bWMc8.PmFOm .Dgzsz):hover{transform:none}@media (prefers-reduced-motion:reduce){.bWMc8 .Dgzsz:hover:not(:disabled){transform:none}}";const s={group:"bWMc8",sm:"_0Y80K",readOnly:"nDsdT",disabled:"PmFOm",swatch:"Dgzsz",selected:"ntGAr"};r(a);export{s as default};
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as P}from"react/jsx-runtime";import{forwardRef as b,useId as v}from"react";import{ActionList as A}from"../ActionList/ActionList.js";import{Overlay as O}from"../Overlay/Overlay.js";import{cn as T}from"../../utils/cn.js";import{useLocale as j}from"../../locales/localeContext.js";import o from"./CommandPalette.module.css.js";import{DialogBase as l}from"../../base/DialogBase/DialogBase.js";const s=b(function({open:a,onOpenChange:t,items:m,groups:c,title:d,placeholder:p,emptyText:f,footer:r,onAction:u,className:h,id:g,style:y,...N},x){const{t:n}=j(),i=v();return e(O,{ref:x,variant:"modal",open:a,onOpenChange:t,"aria-labelledby":i,children:P(l.Surface,{variant:"floating",padding:"none",radius:"lg",onClose:()=>t(!1),titleId:i,id:g,className:T(o.panel,h),style:y,...N,children:[e(l.Title,{as:"h2",className:o.title,children:d??n("commandPalette.title")}),e(A,{className:o.list,items:m,groups:c,filterable:!0,filterPlaceholder:p??n("commandPalette.placeholder"),emptyText:f,onAction:C=>{u?.(C),t(!1)}},a?"open":"closed"),r!=null?e(l.Footer,{className:o.footer,children:r}):null]})})});s.displayName="CommandPalette";export{s as CommandPalette};
1
+ "use client";import{jsx as e,jsxs as A}from"react/jsx-runtime";import{forwardRef as C,useId as b}from"react";import{ActionList as v}from"../ActionList/ActionList.js";import{Box as O}from"../Box/Box.js";import{Overlay as T}from"../Overlay/Overlay.js";import{Text as j}from"../Text/Text.js";import{cn as w}from"../../utils/cn.js";import{useLocale as L}from"../../locales/localeContext.js";import t from"./CommandPalette.module.css.js";import{ruSlice as S}from"../../locales/slices/commandPalette.ru.js";const B={commandPalette:S},m=C(function({open:o,onOpenChange:r,items:n,groups:s,title:c,placeholder:p,emptyText:d,footer:l,onAction:f,className:u,id:g,style:h,...x},y){const{t:a}=L(B),i=b(),N=c??a("commandPalette.title");return e(T,{ref:y,variant:"modal",open:o,onOpenChange:r,"aria-labelledby":i,children:A(O,{variant:"floating",padding:"none",radius:"lg",id:g,className:w(t.panel,u),style:h,...x,children:[e(j,{as:"p",id:i,weight:"medium",className:t.title,children:N}),e(v,{className:t.list,items:n,groups:s,filterable:!0,filterPlaceholder:p??a("commandPalette.placeholder"),emptyText:d,onAction:P=>{f?.(P),r(!1)}},String(o)),l!=null?e("footer",{className:t.footer,children:l}):null]})})});m.displayName="CommandPalette";export{m as CommandPalette};
@@ -1 +1 @@
1
- "use client";import{injectCss as t}from"../../utils/injectCss.js";var a=".-tr8s{align-self:flex-start;box-sizing:border-box;display:flex;flex:0 1 auto;flex-direction:column;margin-top:var(--altum-g-space-8);max-height:min(72vh,var(--altum-command-palette-max-height));max-width:var(--altum-command-palette-max-width);overflow:hidden;pointer-events:auto;position:relative;width:100%;z-index:var(--altum-g-z-raised)}.-tr8s ._6FJ4A{border-bottom:1px solid var(--altum-color-dropdown-border);color:var(--altum-color-muted);flex-shrink:0;font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium);line-height:var(--altum-g-line-height-2xs);margin:0;padding:var(--altum-g-space-3) var(--altum-g-space-3) var(--altum-g-space-2)}.-tr8s .cYTlj{background:#0000;flex:1 1 auto;min-height:0}.-tr8s .QSkKY{padding:var(--altum-g-space-2) var(--altum-g-space-3)}";const e={panel:"-tr8s",title:"_6FJ4A",list:"cYTlj",footer:"QSkKY"};t(a);export{e as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".-tr8s{align-self:flex-start;display:flex;flex-direction:column;margin-top:var(--altum-g-space-8);max-height:min(72vh,var(--altum-command-palette-max-height));max-width:var(--altum-command-palette-max-width);overflow:hidden;width:100%}.-tr8s ._6FJ4A{border-bottom:1px solid var(--altum-color-dropdown-border);color:var(--altum-color-muted);flex-shrink:0;font-size:var(--altum-g-font-size-2xs);line-height:var(--altum-g-line-height-2xs);padding:var(--altum-g-space-3) var(--altum-g-space-3) var(--altum-g-space-2)}.-tr8s .cYTlj{flex:1 1 auto}.-tr8s .QSkKY{padding:var(--altum-g-space-2) var(--altum-g-space-3)}";const e={panel:"-tr8s",title:"_6FJ4A",list:"cYTlj",footer:"QSkKY"};a(t);export{e as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as s,jsx as n}from"react/jsx-runtime";import{forwardRef as w,useId as x}from"react";import{Button as r}from"../Button/Button.js";import{Modal as a}from"../Modal/Modal.js";import{useLocale as z}from"../../locales/localeContext.js";const c=w(function({open:t,title:m,message:f,confirmLabel:p,cancelLabel:g,status:h="default",secondaryAction:e,onConfirm:u,onOpenChange:o,loading:i=!1,className:C,...b},y){const{t:l}=z(),k=p??l("confirmDialog.confirm"),v=g??l("confirmDialog.cancel"),d=x(),D=()=>{i||o(!1)};return s(a,{ref:y,open:t,onOpenChange:o,"aria-describedby":d,className:C,...b,children:[n(a.Header,{showClose:!1,children:n(a.Title,{children:m})}),n(a.Body,{id:d,children:f}),s(a.Footer,{align:e?"space-between":"end",children:[e&&n(r,{variant:e.variant??"secondary",size:"md",onClick:e.onClick,disabled:i||e.disabled,children:e.label}),n(r,{variant:"secondary",size:"md",onClick:D,disabled:i,children:v}),n(r,{variant:"primary",status:h==="danger"?"danger":"default",size:"md",onClick:u,loading:i,children:k})]})]})});c.displayName="ConfirmDialog";export{c as ConfirmDialog};
1
+ "use client";import{jsxs as s,jsx as i}from"react/jsx-runtime";import{forwardRef as x,useId as m}from"react";import{Button as r}from"../Button/Button.js";import{Modal as a}from"../Modal/Modal.js";import{Title as z}from"../Title/Title.js";import{useLocale as N}from"../../locales/localeContext.js";import{ruSlice as j}from"../../locales/slices/confirmDialog.ru.js";const B={confirmDialog:j},t=x(function({open:f,title:p,message:g,confirmLabel:b,cancelLabel:h,status:C="default",secondaryAction:e,onConfirm:u,onOpenChange:o,loading:n=!1,className:y,...k},v){const{t:l}=N(B),D=b??l("confirmDialog.confirm"),L=h??l("confirmDialog.cancel"),d=m(),c=m(),w=()=>{n||o(!1)};return s(a,{ref:v,open:f,onOpenChange:o,"aria-labelledby":d,"aria-describedby":c,className:y,...k,showClose:!1,children:[i(a.Header,{children:i(z,{level:3,id:d,children:p})}),i(a.Body,{id:c,children:g}),s(a.Footer,{align:e?"space-between":"end",children:[e&&i(r,{variant:e.variant??"secondary",size:"md",onClick:e.onClick,disabled:n||e.disabled,children:e.label}),i(r,{variant:"secondary",size:"md",onClick:w,disabled:n,children:L}),i(r,{variant:C==="danger"?"danger":"primary",size:"md",onClick:u,loading:n,children:D})]})]})});t.displayName="ConfirmDialog";export{t as ConfirmDialog};
@@ -1 +1 @@
1
- "use client";import{jsx as i}from"react/jsx-runtime";import{forwardRef as x,useState as O,useEffect as M}from"react";import{MaskedField as P}from"../MaskedField/MaskedField.js";import{Calendar as k}from"../Calendar/Calendar.js";import{IconCalendar as E}from"../../icons/icons/IconCalendar.js";import{useCalendarPopupField as I,formatDateToDigits as T,CalendarFieldDropdown as V,parseDigitsToDate as j}from"./DateField.utils.js";import{commitMaskedValue as B}from"../../utils/commitMaskedValue.js";import{composeEventHandlers as H}from"../../utils/composeEvents.js";import{FieldBaseIcon as N}from"../../base/FieldBase/FieldBase.js";const p=x(function({value:e,onChange:r,label:f,width:c="md",disabled:n=!1,readOnly:t=!1,prefix:u,onClear:l,onFocus:C,...D},g){const{open:d,setOpen:b,close:h,openPopup:s,digits:v,setDigits:a,isMobile:w,mobileChrome:F}=I({disabled:n,readOnly:t}),[y,m]=O(e??new Date);return M(()=>{a(T(e)),e&&m(e)},[a,e]),i(k.Provider,{value:e,viewDate:y,onViewDateChange:m,onChange:o=>{o instanceof Date&&(r(o),b(!1))},children:i(V,{open:d,onClose:h,onOpen:s,isMobile:w,mobileChrome:F,trigger:i(P,{...D,ref:g,label:f,width:c,mask:"99.99.9999",value:v,onChange:o=>{t||(a(o),B(o,j,r))},active:d,disabled:n,type:"text",readOnly:t,prefix:u??i(N,{children:i(E,{})}),onClear:l?()=>{a(""),r(void 0),l()}:void 0,onFocus:H(C,s)})})})});p.displayName="DateField";export{p as DateField};
1
+ "use client";import{jsx as i}from"react/jsx-runtime";import{forwardRef as x,useState as O,useEffect as M}from"react";import{Calendar as P}from"../Calendar/Calendar.js";import{FieldBaseIcon as k}from"../TextField/TextField.js";import{IconCalendar as E}from"../../icons/icons/IconCalendar.js";import{MaskedField as I}from"../MaskedField/MaskedField.js";import{commitMaskedValue as T}from"../../utils/commitMaskedValue.js";import{composeEventHandlers as V}from"../../utils/composeEvents.js";import{useCalendarPopupField as j,formatDateToDigits as B,CalendarFieldDropdown as H,parseDigitsToDate as N}from"./DateField.utils.js";const p=x(function({value:e,onChange:r,label:f,width:c="md",disabled:n=!1,readOnly:t=!1,prefix:u,onClear:l,onFocus:C,...D},g){const{open:d,setOpen:b,close:h,openPopup:s,digits:v,setDigits:a,isMobile:w,mobileChrome:F}=j({disabled:n,readOnly:t}),[y,m]=O(e??new Date);return M(()=>{a(B(e)),e&&m(e)},[a,e]),i(P.Provider,{value:e,viewDate:y,onViewDateChange:m,onChange:o=>{o instanceof Date&&(r(o),b(!1))},children:i(H,{open:d,onClose:h,onOpen:s,isMobile:w,mobileChrome:F,trigger:i(I,{...D,ref:g,label:f,width:c,mask:"99.99.9999",value:v,onChange:o=>{t||(a(o),T(o,N,r))},active:d,disabled:n,type:"text",readOnly:t,prefix:u??i(k,{children:i(E,{})}),onClear:l?()=>{a(""),r(void 0),l()}:void 0,onFocus:V(C,s)})})})});p.displayName="DateField";export{p as DateField};
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as s,Fragment as u}from"react/jsx-runtime";import{ButtonIcon as b}from"../ButtonIcon/ButtonIcon.js";import{Calendar as n}from"../Calendar/Calendar.js";import{useMediaQuery as p,MOBILE_MEDIA_QUERY as N}from"../../hooks/useMediaQuery.js";import{useLocale as g}from"../../locales/localeContext.js";import{useMaskedPopupField as a,FieldPopupDropdown as d}from"../../base/FieldPopup/FieldPopup.js";const f=e=>{if(!e)return"";const o=e.getDate(),i=e.getMonth()+1,t=e.getFullYear();return`${o<10?`0${o}`:o}${i<10?`0${i}`:i}${t}`},h=e=>{if(e.length!==8)return;const o=Number.parseInt(e.slice(0,2),10),i=Number.parseInt(e.slice(2,4),10)-1,t=Number.parseInt(e.slice(4,8),10);if(Number.isNaN(o)||Number.isNaN(i)||Number.isNaN(t)||t<=1e3)return;const l=new Date(t,i,o);return l.getDate()===o&&l.getMonth()===i&&l.getFullYear()===t?l:void 0},c=({isMobile:e,closeLabel:o,onClose:i})=>({mobileTitle:e?r(n.Title,{}):void 0,mobileLeftControls:e?r(n.Nav,{direction:"prev"}):void 0,mobileRightControls:e?s(u,{children:[r(n.Nav,{direction:"next"}),r(b,{variant:"ghost",size:"sm","aria-label":o,onClick:i,children:"\u2715"})]}):void 0});function M({disabled:e,readOnly:o}){const{t:i}=g(),t=p(N),l=a({disabled:e,readOnly:o}),m=c({isMobile:t,closeLabel:i("common.close"),onClose:l.close});return{...l,isMobile:t,mobileChrome:m}}const v=({isMobile:e})=>s(n.Root,{style:e?{width:"100%"}:void 0,children:[!e&&s(n.Header,{children:[r(n.Nav,{direction:"prev"}),r(n.Title,{}),r(n.Nav,{direction:"next"})]}),r(n.Body,{})]}),C=({isMobile:e,contentPadding:o="md",...i})=>r(d,{...i,contentPadding:o,children:r(v,{isMobile:e})});export{C as CalendarFieldDropdown,d as FieldPopupDropdown,f as formatDateToDigits,c as getCalendarMobileChrome,h as parseDigitsToDate,M as useCalendarPopupField,a as useMaskedPopupField};
1
+ "use client";import{jsx as t,jsxs as d,Fragment as u}from"react/jsx-runtime";import{ButtonIcon as g}from"../ButtonIcon/ButtonIcon.js";import{Calendar as n}from"../Calendar/Calendar.js";import{Dropdown as f}from"../Dropdown/Dropdown.js";import{useMediaQuery as C,MOBILE_MEDIA_QUERY as h}from"../../hooks/useMediaQuery.js";import{useLocale as N}from"../../locales/localeContext.js";import{renderChildren as v}from"../../utils/renderChildren.js";import{isExistingLocalDate as M}from"../../utils/date.js";import{ruSlice as D}from"../../locales/slices/common.ru.js";import{useMaskedPopupField as x,fieldPopupClassName as L,bindFieldChromeRef as R}from"../../base/FieldPopup/FieldPopup.js";const T={common:D},F=e=>{if(!e)return"";const o=e.getDate(),i=e.getMonth()+1,r=e.getFullYear();return`${o<10?`0${o}`:o}${i<10?`0${i}`:i}${r}`},I=e=>{if(e.length!==8)return;const o=Number.parseInt(e.slice(0,2),10),i=Number.parseInt(e.slice(2,4),10)-1,r=Number.parseInt(e.slice(4,8),10);if(!(Number.isNaN(o)||Number.isNaN(i)||Number.isNaN(r)||r<=1e3))return M(r,i,o)?new Date(r,i,o):void 0},c=({isMobile:e,closeLabel:o,onClose:i})=>({mobileTitle:e?t(n.Title,{}):void 0,mobileLeftControls:e?t(n.Nav,{direction:"prev"}):void 0,mobileRightControls:e?d(u,{children:[t(n.Nav,{direction:"next"}),t(g,{variant:"ghost",size:"sm","aria-label":o,onClick:i,children:"\u2715"})]}):void 0});function w({disabled:e,readOnly:o}){const{t:i}=N(T),r=C(h),l=x({disabled:e,readOnly:o}),s=c({isMobile:r,closeLabel:i("common.close"),onClose:l.close});return{...l,isMobile:r,mobileChrome:s}}const y=({isMobile:e})=>d(n.Root,{style:e?{width:"100%"}:void 0,children:[!e&&d(n.Header,{children:[t(n.Nav,{direction:"prev"}),t(n.Title,{}),t(n.Nav,{direction:"next"})]}),t(n.Body,{})]}),O=({open:e,onOpen:o,onClose:i,trigger:r,mobileChrome:l,isMobile:s,contentPadding:m="md",align:p})=>t(f,{open:e,onOpenChange:a=>{a?o():i()},triggerMode:"combobox",popupRole:"dialog",boxProps:m?{padding:m}:void 0,widthMode:"content",align:p,panelScroll:"content",className:L,mobileTitle:l?.mobileTitle,mobileLeftControls:l?.mobileLeftControls,mobileRightControls:l?.mobileRightControls,renderTrigger:(a,b)=>v({children:r,props:a,contentRef:R(b)}),children:t(y,{isMobile:s})});export{O as CalendarFieldDropdown,F as formatDateToDigits,c as getCalendarMobileChrome,I as parseDigitsToDate,w as useCalendarPopupField};
@@ -1 +1 @@
1
- "use client";import{jsxs as H,jsx as t}from"react/jsx-runtime";import{forwardRef as ee,useState as h,useId as ae,useEffect as te}from"react";import{MaskedField as D}from"../MaskedField/MaskedField.js";import{Calendar as re}from"../Calendar/Calendar.js";import r from"./DateRangeField.module.css.js";import{cn as le}from"../../utils/cn.js";import{useLocale as se}from"../../locales/localeContext.js";import{useCalendarPopupField as ne,formatDateToDigits as l,CalendarFieldDropdown as de,parseDigitsToDate as x}from"../DateField/DateField.utils.js";const L=e=>!e.start&&!e.end?"":e.start&&!e.end?l(e.start):e.start&&e.end?`${l(e.start)}${l(e.end)}`:"",M=ee(function({value:e,onChange:i,label:R,startLabel:T,endLabel:j,layout:w="single",size:c="md",width:P="md",labelPlacement:b="inline",className:S="",disabled:m=!1,readOnly:o=!1,error:E,helperText:V,prefix:$,postfix:I,onClear:J,clearLabel:K,...Q},O){const{messages:g}=se(),{open:p,setOpen:U,close:W,openPopup:u,isMobile:X,mobileChrome:Y}=ne({disabled:m,readOnly:o}),[Z,v]=h(e.end??e.start??new Date),[_,N]=h(L(e)),[q,k]=h(l(e.start)),[A,z]=h(l(e.end)),B=ae();te(()=>{N(L(e)),k(l(e.start)),z(l(e.end)),e.end?v(e.end):e.start&&v(e.start)},[e]);const C=(a,f)=>{if(o)return;if(f==="range"){if(N(a),!a){i({start:void 0,end:void 0});return}const F=a.slice(0,8),y=a.slice(8,16);let n=F.length===8?x(F):F.length===0?void 0:e.start,d=y.length===8?x(y):y.length===0?void 0:e.end;n&&d&&d<n&&([n,d]=[d,n]),(n!==e.start||d!==e.end)&&i({start:n,end:d});return}f==="start"?k(a):z(a);const s=x(a);if(s){i(f==="start"?{start:s,end:e.end&&s>e.end?void 0:e.end}:e.start&&s<e.start?{start:s,end:e.start}:{start:e.start,end:s});return}a||i(f==="start"?{start:void 0,end:e.end}:{start:e.start,end:void 0})},G=w==="split"?H("div",{className:r.splitFields,"data-size":c,children:[t("div",{className:r.fieldSlot,children:t(D,{ref:O,label:T??g.dateRangeField.start,size:c,labelPlacement:b,mask:"99.99.9999",type:"text",value:q,onChange:a=>C(a,"start"),onFocus:u,active:p,disabled:m,readOnly:o})}),t("span",{className:r.dash,"aria-hidden":!0,children:"\u2014"}),t("div",{className:r.fieldSlot,children:t(D,{label:j??g.dateRangeField.end,size:c,labelPlacement:b,mask:"99.99.9999",type:"text",value:A,onChange:a=>C(a,"end"),onFocus:u,active:p,disabled:m,readOnly:o})})]}):t(D,{ref:O,label:R??g.dateRangeField.label,size:c,width:P,labelPlacement:b,mask:"99.99.9999 \u2014 99.99.9999",type:"text",value:_,error:E,helperText:V,prefix:$,postfix:I,onClear:J,clearLabel:K,onChange:a=>C(a,"range"),onFocus:u,active:p,disabled:m,readOnly:o,id:B});return t("div",{className:le(r.root,w==="split"?r.layoutSplit:"",P==="full"?r.widthFull:"",S),...Q,children:t(re.Provider,{selectionMode:"range",value:e,onChange:a=>{a instanceof Date||(i(a),a.start&&a.end&&U(!1))},viewDate:Z,onViewDateChange:v,children:t(de,{open:p,onClose:W,onOpen:u,isMobile:X,mobileChrome:Y,trigger:G})})})});M.displayName="DateRangeField";export{M as DateRangeField};
1
+ "use client";import{jsxs as H,jsx as t}from"react/jsx-runtime";import{forwardRef as _,useState as g,useId as ee,useEffect as ae}from"react";import{MaskedField as y}from"../MaskedField/MaskedField.js";import{Calendar as te}from"../Calendar/Calendar.js";import r from"./DateRangeField.module.css.js";import{cn as re}from"../../utils/cn.js";import{useLocale as ne}from"../../locales/localeContext.js";import{useCalendarPopupField as de,formatDateToDigits as n,CalendarFieldDropdown as ie,parseDigitsToDate as x}from"../DateField/DateField.utils.js";import{ruSlice as se}from"../../locales/slices/dateRangeField.ru.js";const le={dateRangeField:se},z=e=>!e.start&&!e.end?"":e.start&&!e.end?n(e.start):e.start&&e.end?`${n(e.start)}${n(e.end)}`:"",L=_(function({value:e,onChange:l,label:M,startLabel:S,endLabel:P,layout:w="single",size:c="md",width:D="md",className:j="",disabled:m=!1,readOnly:o=!1,error:T,description:V,prefix:$,postfix:B,onClear:E,clearLabel:G,...I},R){const{messages:h}=ne(le),{open:p,setOpen:J,close:K,openPopup:u,isMobile:Q,mobileChrome:U}=de({disabled:m,readOnly:o}),[W,v]=g(e.end??e.start??new Date),[X,O]=g(z(e)),[Y,N]=g(n(e.start)),[Z,k]=g(n(e.end)),q=ee();ae(()=>{O(z(e)),N(n(e.start)),k(n(e.end)),e.end?v(e.end):e.start&&v(e.start)},[e]);const b=(a,f)=>{if(o)return;if(f==="range"){if(O(a),!a){l({start:void 0,end:void 0});return}const C=a.slice(0,8),F=a.slice(8,16);let i=C.length===8?x(C):C.length===0?void 0:e.start,s=F.length===8?x(F):F.length===0?void 0:e.end;i&&s&&s<i&&([i,s]=[s,i]),(i!==e.start||s!==e.end)&&l({start:i,end:s});return}f==="start"?N(a):k(a);const d=x(a);if(d){l(f==="start"?{start:d,end:e.end&&d>e.end?void 0:e.end}:e.start&&d<e.start?{start:d,end:e.start}:{start:e.start,end:d});return}a||l(f==="start"?{start:void 0,end:e.end}:{start:e.start,end:void 0})},A=w==="split"?H("div",{className:r.splitFields,"data-size":c,children:[t("div",{className:r.fieldSlot,children:t(y,{ref:R,label:S??h.dateRangeField.start,size:c,mask:"99.99.9999",type:"text",value:Y,onChange:a=>b(a,"start"),onFocus:u,active:p,disabled:m,readOnly:o})}),t("span",{className:r.dash,"aria-hidden":!0,children:"\u2014"}),t("div",{className:r.fieldSlot,children:t(y,{label:P??h.dateRangeField.end,size:c,mask:"99.99.9999",type:"text",value:Z,onChange:a=>b(a,"end"),onFocus:u,active:p,disabled:m,readOnly:o})})]}):t(y,{ref:R,label:M??h.dateRangeField.label,size:c,width:D,mask:"99.99.9999 \u2014 99.99.9999",type:"text",value:X,error:T,description:V,prefix:$,postfix:B,onClear:E,clearLabel:G,onChange:a=>b(a,"range"),onFocus:u,active:p,disabled:m,readOnly:o,id:q});return t("div",{className:re(r.root,w==="split"?r.layoutSplit:"",D==="full"?r.widthFull:"",j),...I,children:t(te.Provider,{selectionMode:"range",value:e,onChange:a=>{a instanceof Date||(l(a),a.start&&a.end&&J(!1))},viewDate:W,onViewDateChange:v,children:t(ie,{open:p,onClose:K,onOpen:u,isMobile:Q,mobileChrome:U,trigger:A})})})});L.displayName="DateRangeField";export{L as DateRangeField};
@@ -1 +1 @@
1
- "use client";import{jsxs as M,jsx as m,Fragment as B}from"react/jsx-runtime";import{forwardRef as R,useId as q,useCallback as G,useEffect as J,useMemo as Q}from"react";import{startOfDay as c,startOfWeek as $,addDays as h,buildDayStrip as U,formatMonthYear as O,isSameDay as X,isToday as Z,weekdayLabelFor as _}from"../Calendar/Calendar.utils.js";import{handleArrowPairKeyDown as ee,isKey as T}from"../../utils/keyboard.js";import ae from"../../styles/unstyledControl.module.css.js";import v from"../../styles/calendarChrome.module.css.js";import n from"./DayStripCalendar.module.css.js";import{cn as F}from"../../utils/cn.js";import{useControlledStateWithCallback as te}from"../../hooks/useControlledState.js";import{useLocale as re}from"../../locales/localeContext.js";import{PeriodHeader as oe}from"../../base/PeriodHeader/PeriodHeader.js";const H=R(function({value:S,onChange:I,viewDate:k,onViewDateChange:K,daysCount:r=7,weekStartsOn:y=1,showHeader:N=!0,showNav:P=!0,className:Y,"aria-label":j,renderDay:g,...z},A){const{messages:l}=re(),{months:C,weekdaysShort:E}=l.calendar,b=q(),i=S?c(S):void 0,w=i?.getTime(),V=i??c(new Date),[t,x]=te(k!==void 0?c(k):void 0,$(V,y),K),D=G(e=>{x(c(e))},[x]);J(()=>{if(w===void 0)return;const e=new Date(w),a=h(t,r-1);(e<t||e>a)&&D(r===7?$(e,y):e)},[r,w,D,y]);const d=Q(()=>U(t,r),[r,t]),W=Math.max(1,Math.round(r/2)),p=e=>{I(c(e))},f=e=>{const a=i??d[0];if(!a)return;const o=h(a,e);p(o);const s=h(t,r-1);(o<t||o>s)&&D(h(t,e*W))};return M("div",{ref:A,className:F(n.root,Y),role:"group","aria-label":j??l.dayStrip.ariaLabel,"aria-labelledby":N?b:void 0,...z,children:[m(oe,{title:O(i??t,C),titleId:b,showTitle:N,showNav:P,onPrev:()=>f(-1),onNext:()=>f(1),prevLabel:l.dayStrip.prev,nextLabel:l.dayStrip.next}),m("div",{className:n.strip,role:"listbox","aria-label":l.dayStrip.days,"aria-orientation":"horizontal",tabIndex:0,onKeyDown:e=>{if(!ee(e,()=>f(-1),()=>f(1))){if(T(e,"Home")){e.preventDefault(),p(d[0]);return}T(e,"End")&&(e.preventDefault(),p(d[d.length-1]))}},children:d.map(e=>{const a=i?X(e,i):!1,o=Z(e),s=_(e,y,E),u=e.getDate(),L=`${b}-day-${e.getFullYear()}-${e.getMonth()}-${u}`;return m("button",{id:L,type:"button",role:"option","aria-selected":a,"aria-current":o?"date":void 0,"aria-label":`${s}, ${u} ${O(e,C)}`,className:F(ae.control,v.cell,n.day,a?v.selected:"",a?n.daySelected:"",o?v.today:""),onClick:()=>p(e),children:g?g({date:e,dayOfMonth:u,weekdayLabel:s,isSelected:a,isToday:o}):M(B,{children:[m("span",{className:n.weekday,children:s}),m("span",{className:n.dayNumber,children:u})]})},L)})})]})});H.displayName="DayStripCalendar";export{H as DayStripCalendar};
1
+ "use client";import{jsxs as L,jsx as m,Fragment as V}from"react/jsx-runtime";import{forwardRef as _,useId as q,useCallback as B,useEffect as G,useMemo as J}from"react";import{buildDayStrip as Q,formatMonthYear as M,isToday as U,weekdayLabelFor as X}from"../Calendar/Calendar.utils.js";import{handleArrowPairKeyDown as Z,isKey as T}from"../../utils/keyboard.js";import ee from"../../styles/unstyledControl.module.css.js";import v from"../../styles/calendarChrome.module.css.js";import l from"./DayStripCalendar.module.css.js";import{cn as F}from"../../utils/cn.js";import{useControlledStateWithCallback as ae}from"../../hooks/useControlledState.js";import{useLocale as te}from"../../locales/localeContext.js";import{ruSlice as re}from"../../locales/slices/calendar.ru.js";import{ruSlice as oe}from"../../locales/slices/dayStrip.ru.js";import{startOfDay as c,getWeekStart as H,addDays as h,isSameDay as ie}from"../../utils/date.js";import{PeriodHeader as le}from"../../base/PeriodHeader/PeriodHeader.js";const ne={calendar:re,dayStrip:oe},I=_(function({value:D,onChange:K,viewDate:g,onViewDateChange:O,daysCount:r=7,weekStartsOn:p=1,showHeader:x=!0,showNav:P=!0,className:j,"aria-label":z,renderDay:N,...A},E){const{messages:n}=te(ne),{months:C,weekdaysShort:W}=n.calendar,b=q(),i=D?c(D):void 0,S=i?.getTime(),Y=i??c(new Date),[t,$]=ae(g!==void 0?c(g):void 0,H(Y,p),O),w=B(e=>{$(c(e))},[$]);G(()=>{if(S===void 0)return;const e=new Date(S),a=h(t,r-1);(e<t||e>a)&&w(r===7?H(e,p):e)},[r,S,w,p]);const d=J(()=>Q(t,r),[r,t]),R=Math.max(1,Math.round(r/2)),y=e=>{K(c(e))},f=e=>{const a=i??d[0];if(!a)return;const o=h(a,e);y(o);const s=h(t,r-1);(o<t||o>s)&&w(h(t,e*R))};return L("div",{ref:E,className:F(l.root,j),role:"group","aria-label":z??n.dayStrip.ariaLabel,"aria-labelledby":x?b:void 0,...A,children:[m(le,{title:M(i??t,C),titleId:b,showTitle:x,showNav:P,onPrev:()=>f(-1),onNext:()=>f(1),prevLabel:n.dayStrip.prev,nextLabel:n.dayStrip.next}),m("div",{className:l.strip,role:"listbox","aria-label":n.dayStrip.days,"aria-orientation":"horizontal",tabIndex:0,onKeyDown:e=>{if(!Z(e,()=>f(-1),()=>f(1))){if(T(e,"Home")){e.preventDefault(),y(d[0]);return}T(e,"End")&&(e.preventDefault(),y(d[d.length-1]))}},children:d.map(e=>{const a=i?ie(e,i):!1,o=U(e),s=X(e,p,W),u=e.getDate(),k=`${b}-day-${e.getFullYear()}-${e.getMonth()}-${u}`;return m("button",{id:k,type:"button",role:"option","aria-selected":a,"aria-current":o?"date":void 0,"aria-label":`${s}, ${u} ${M(e,C)}`,className:F(ee.control,v.cell,l.day,a?v.selected:"",a?l.daySelected:"",o?v.today:""),onClick:()=>y(e),children:N?N({date:e,dayOfMonth:u,weekdayLabel:s,isSelected:a,isToday:o}):L(V,{children:[m("span",{className:l.weekday,children:s}),m("span",{className:l.dayNumber,children:u})]})},k)})})]})});I.displayName="DayStripCalendar";export{I as DayStripCalendar};
@@ -0,0 +1 @@
1
+ "use client";import{jsxs as c,jsx as n}from"react/jsx-runtime";import{forwardRef as f}from"react";import{Box as p}from"../Box/Box.js";import{OverlayCloseButton as u}from"../ButtonIcon/OverlayCloseButton.js";import{cn as d}from"../../utils/cn.js";import r from"./DialogLayout.module.css.js";const e=f(function({children:l,className:a,onClose:o,showClose:s=!0,closeLabel:t,...m},i){return c(p,{ref:i,className:d(r.root,a),...m,children:[l,s&&o!=null&&n(u,{className:r.close,"aria-label":t,onClick:o})]})});e.displayName="DialogLayout";export{e as DialogLayout};
@@ -0,0 +1 @@
1
+ "use client";import{injectCss as e}from"../../utils/injectCss.js";var t=".Fdz45{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden;position:relative}._7yOCk{position:absolute;right:var(--altum-g-space-2);top:var(--altum-g-space-2);z-index:var(--altum-g-z-raised-above)}";const i={root:"Fdz45",close:"_7yOCk"};e(t);export{i as default};
@@ -1 +1 @@
1
- "use client";import{jsx as s,jsxs as Z}from"react/jsx-runtime";import{forwardRef as X,useRef as y,useId as $,useCallback as m,useEffect as N,useMemo as ee,Suspense as oe,lazy as ne}from"react";import{ButtonIcon as te}from"../ButtonIcon/ButtonIcon.js";import{IconCross as re}from"../../icons/icons/IconCross.js";import ae from"../../styles/overlayClose.module.css.js";import g from"./Dropdown.module.css.js";import{focusElement as O}from"../../utils/a11y.js";import{useMediaQuery as ie,MOBILE_MEDIA_QUERY as le}from"../../hooks/useMediaQuery.js";import{useDocumentKeyDown as ce}from"../../hooks/useDocumentKeyDown.js";import{useControlledState as se}from"../../hooks/useControlledState.js";import{queryFocusableElements as ue,handleTabCycle as me,handleFocusableListNavigation as de,FOCUSABLE_WITH_ROLES_SELECTOR as fe}from"../../utils/focus.js";import{cn as I}from"../../utils/cn.js";import{useOverlayStackZIndex as pe,elevateAboveOverlayStack as be}from"../../utils/overlayStack.js";import{Box as ve}from"../Box/Box.js";import{useLocale as ye}from"../../locales/localeContext.js";import{Overlay as ge}from"../Overlay/Overlay.js";const he=ne(async()=>({default:(await import("./DropdownMobileSheet.js")).DropdownMobileSheet}));function we(a){return a==="left"||a==="start"||a==="auto"?"start":a==="right"||a==="end"?"end":"center"}const A=X(function({children:a,renderTrigger:T,open:q,onOpenChange:d,popupRole:u="none",triggerMode:F="toggle",className:_,boxProps:B,align:U="auto",widthMode:z="content",panelScroll:j="overlay",mobileTitle:E,mobileLeftControls:K,mobileRightControls:P,panelClassName:Q,...Y},G){const{t:H}=ye(),J=pe(),V=be(J),n=F==="combobox",[o,f]=se(q,!1),p=ie(le),i=y(null),r=y(null),h=y(null),C=y(null),b=$(),D=u==="menu",S=m(()=>i.current?i.current.querySelector('[role="combobox"]')??i.current.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')??i.current:null,[]),l=m(()=>{if(d?.(!1),f(!1),n){const t=document.activeElement;if(t instanceof Node&&i.current?.contains(t)||!(t instanceof Node&&(r.current?.contains(t)||h.current?.contains(t))))return}const e=C.current??S();O(e)},[S,n,d,f]),c=m(()=>{C.current=document.activeElement,d?.(!0),f(!0)},[d,f]),v=m(()=>{o?l():c()},[l,o,c]),M=m(e=>{if(n){if(o&&(e.key==="Enter"||e.key===" "))return;!o&&(e.key==="Enter"||e.key===" "||e.key==="ArrowDown"||e.key==="ArrowUp")&&(e.preventDefault(),c());return}if(e.key==="Enter"||e.key===" "){e.preventDefault(),v();return}!o&&(e.key==="ArrowDown"||e.key==="ArrowUp")&&(e.preventDefault(),c())},[n,o,c,v]);ce(e=>{if(!o||!r.current)return;const t=ue(r.current,fe);t.length!==0&&(me(e,t,{wrap:D||p,onTabForwardFromLast:D||p?void 0:l})||n&&!r.current.contains(document.activeElement)||de(e,t))},{enabled:o}),N(()=>{!o||n||!r.current||O(r.current.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"]), [role="option"]'))},[n,o]),N(()=>{if(!o||!n)return;const e=t=>{const x=t.target;i.current?.contains(x)||r.current?.contains(x)||h.current?.contains(x)||l()};return document.addEventListener("focusin",e),()=>document.removeEventListener("focusin",e)},[l,n,o]);const W=ee(()=>({type:"button","aria-haspopup":u==="menu"?"menu":u==="dialog"?"dialog":"listbox","aria-expanded":o,"aria-controls":o?b:void 0,...n?{}:{tabIndex:0},onKeyDown:M,onClick:e=>{if(n){o||c();return}e.preventDefault(),v()}}),[b,M,n,o,c,u,v]),w=u==="none"?void 0:u,R=I(g.panel,p&&g.mobile,j==="content"&&g.contentScroll,Q),L={onClick:e=>e.stopPropagation(),onMouseDown:e=>{n&&e.preventDefault()}};let k=null;return p?k=s(oe,{fallback:null,children:s(he,{sheetRef:h,open:o,onOpenChange:e=>{e||l()},zIndex:V,mobileTitle:E,mobileLeftControls:K,mobileRightControls:P??(E?s(te,{appearance:"diskClose","aria-label":H("common.close"),icon:s(re,{className:ae.icon,size:16,"aria-hidden":!0}),onClick:l}):void 0),children:s("div",{id:b,ref:r,role:w,className:R,...L,children:a})})}):k=s(ge,{ref:r,variant:"dropdown",purpose:"dropdown",open:o,onOpenChange:e=>{e||l()},targetRef:i,triggerMode:"manual",side:"bottom",align:we(U),widthMode:z,dismiss:"all",role:w??"presentation",children:s(ve,{as:"div",variant:"floating",id:b,role:w,className:R,...B,...L,children:a})}),Z("div",{ref:G,className:I(g.root,_),...Y,children:[T(W,e=>{i.current=e}),k]})});A.displayName="Dropdown";export{A as Dropdown};
1
+ "use client";import{jsx as f,jsxs as H}from"react/jsx-runtime";import{forwardRef as G,useRef as p,useId as J,useEffect as V,Suspense as X,lazy as Z}from"react";import g from"./Dropdown.module.css.js";import{focusElement as k}from"../../utils/a11y.js";import{useMediaQuery as $,MOBILE_MEDIA_QUERY as ee}from"../../hooks/useMediaQuery.js";import{useDocumentKeyDown as ne}from"../../hooks/useDocumentKeyDown.js";import{useControlledStateWithCallback as oe}from"../../hooks/useControlledState.js";import{queryFocusableElements as v,handleTabCycle as re,handleFocusableListNavigation as te,FOCUSABLE_WITH_ROLES_SELECTOR as S}from"../../utils/focus.js";import{cn as T}from"../../utils/cn.js";import{Box as le}from"../Box/Box.js";import{Popover as ie}from"../Popover/Popover.js";const ae=Z(()=>import("./DropdownMobileSheet.js")),ce='[role="option"], [role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]';function c(t,s){return s instanceof Node&&!!t?.contains(s)}function se(t){return t?t.querySelector('[role="combobox"]')??v(t)[0]??t:null}const M=G(function({children:t,renderTrigger:s,open:N,onOpenChange:O,popupRole:u="none",triggerMode:F="toggle",className:I,boxProps:_,align:b="auto",widthMode:A="content",panelScroll:B="overlay",mobileTitle:P,mobileLeftControls:Q,mobileRightControls:U,panelClassName:j,...q},z){const l=F==="combobox",[r,K]=oe(N,!1,O),m=$(ee),d=p(null),a=p(null),h=p(null),y=p(null),C=p(()=>{}),E=J(),i=e=>{if(e&&(y.current=document.activeElement),K(e),e)return;const n=document.activeElement,o=c(a.current,n)||c(h.current,n);l&&(c(d.current,n)||!o)||k(y.current??se(d.current))};C.current=i;const W=e=>{const n=e.key==="Enter"||e.key===" ",o=e.key==="ArrowDown"||e.key==="ArrowUp";if(l){!r&&(n||o)&&(e.preventDefault(),i(!0));return}(n||!r&&o)&&(e.preventDefault(),i(n?!r:!0))};ne(e=>{const n=a.current;if(!n)return;const o=v(n,S);o.length!==0&&(re(e,o,{wrap:m,onTabForwardFromLast:m?void 0:()=>i(!1)})||l&&!n.contains(document.activeElement)||te(e,o))},{enabled:r}),V(()=>{if(!r)return;if(!l){const n=a.current;n&&k(v(n,S)[0]);return}const e=n=>{const o=n.target;c(d.current,o)||c(a.current,o)||c(h.current,o)||C.current(!1)};return document.addEventListener("focusin",e),()=>document.removeEventListener("focusin",e)},[l,r]);const D={type:"button","aria-haspopup":u==="menu"||u==="dialog"?u:"listbox","aria-expanded":r,"aria-controls":r?E:void 0,...l?{}:{tabIndex:0},onKeyDown:W,onClick:e=>{if(l){r||i(!0);return}e.preventDefault(),i(!r)}},w=u==="none"?void 0:u,x=T(g.panel,m&&g.mobile,B==="content"&&g.contentScroll,j),L={onClick:e=>{e.stopPropagation(),e.target instanceof Element&&e.target.closest(ce)&&i(!1)},onMouseDown:e=>{l&&e.preventDefault()}},R=e=>{e||i(!1)},Y=m?f(X,{fallback:null,children:f(ae,{sheetRef:h,open:r,onOpenChange:R,mobileTitle:P,mobileLeftControls:Q,mobileRightControls:U,children:f("div",{id:E,ref:a,role:w,className:x,...L,children:t})})}):f(ie,{trigger:"manual",variant:"plain",open:r,onOpenChange:R,side:"bottom",align:b==="right"||b==="end"?"end":b==="center"?"center":"start",widthMode:A,dismiss:"all",role:w??"presentation",className:x,renderTrigger:(e,n)=>s({...D,"aria-controls":e["aria-controls"]},o=>{d.current=o,n(o)}),children:f(le,{as:"div",variant:"floating",ref:a,..._,...L,children:t})});return H("div",{ref:z,className:T(g.root,I),...q,children:[m?s(D,e=>{d.current=e}):null,Y]})});M.displayName="Dropdown";export{M as Dropdown};
@@ -1 +1 @@
1
- "use client";import{injectCss as o}from"../../utils/injectCss.js";var e=".uVyL0{display:inline-block}.TV-Oz{box-sizing:border-box;color:var(--altum-color-text);overflow-x:hidden;overflow-y:auto}.TV-Oz.GXRXz{width:100%}.o8uuM{overflow:hidden;padding-block:var(--altum-g-space-1)}";const l={root:"uVyL0",panel:"TV-Oz",mobile:"GXRXz",contentScroll:"o8uuM"};o(e);export{l as default};
1
+ "use client";import{injectCss as o}from"../../utils/injectCss.js";var l=".uVyL0{display:inline-block}.TV-Oz{color:var(--altum-color-text);overflow-x:hidden;overflow-y:auto}.TV-Oz.GXRXz{width:100%}.o8uuM{overflow:hidden;padding-block:var(--altum-g-space-1)}";const e={root:"uVyL0",panel:"TV-Oz",mobile:"GXRXz",contentScroll:"o8uuM"};o(l);export{e as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as m,jsx as o}from"react/jsx-runtime";import{Sheet as l}from"../Sheet/Sheet.js";const t=({sheetRef:r,open:d,onOpenChange:s,zIndex:h,mobileTitle:e,mobileLeftControls:n,mobileRightControls:i,children:p})=>m(l,{ref:r,open:d,onOpenChange:s,mode:"sheet",direction:"end",backdrop:!1,dismiss:"all",zIndex:h,children:[(e!=null||n!=null||i!=null)&&o(l.Header,{leftControls:n,rightControls:i,children:e==null?null:typeof e=="string"||typeof e=="number"?o(l.Title,{children:e}):e}),o(l.Body,{padding:!1,children:p})]});t.displayName="Dropdown.MobileSheet";export{t as DropdownMobileSheet};
1
+ "use client";import{jsxs as c,jsx as o}from"react/jsx-runtime";import{useId as b}from"react";import{Sheet as n}from"../Sheet/Sheet.js";import{Title as y}from"../Title/Title.js";import{useOverlayStackZIndex as C,elevateAboveOverlayStack as g}from"../../utils/overlayStack.js";function r({sheetRef:s,open:a,onOpenChange:p,zIndex:m,mobileTitle:e,mobileLeftControls:t,mobileRightControls:l,children:h}){const i=b(),f=C(),d=typeof e=="string"||typeof e=="number",u=e!=null||t!=null||l!=null;return c(n,{ref:s,open:a,onOpenChange:p,mode:"sheet",direction:"end",backdrop:!1,dismiss:"all",zIndex:m??g(f),"aria-labelledby":d?i:void 0,children:[u?o(n.Header,{leftControls:t,rightControls:l,showClose:!!e&&l==null,children:e==null?null:d?o(y,{level:3,id:i,children:e}):e}):null,o(n.Body,{padding:!1,children:h})]})}r.displayName="Dropdown.MobileSheet";export{r as DropdownMobileSheet,r as default};
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as v,Fragment as k}from"react/jsx-runtime";import{forwardRef as z}from"react";import{Item as w}from"../Item/Item.js";import{ButtonIcon as I}from"../ButtonIcon/ButtonIcon.js";import{Progress as C}from"../Progress/Progress.js";import{Stack as M}from"../Layout/Stack.js";import{IconDocument as S}from"../../icons/icons/IconDocument.js";import{IconCross as T}from"../../icons/icons/IconCross.js";import{IconTimeReverse as D}from"../../icons/icons/IconTimeReverse.js";import l from"./FileList.module.css.js";import{cn as L}from"../../utils/cn.js";import{formatBytes as O}from"../../utils/formatBytes.js";import{useLocale as P}from"../../locales/localeContext.js";const n=z(function({id:t,name:s,size:o,progress:r,status:x,error:y,previewUrl:d,onRemove:a,onRetry:p,removeLabel:N,retryLabel:R,attachmentSize:m="sm",className:b,...F},B){const{t:u}=P(),i=x??(r!=null&&r<100?"uploading":"idle"),f=[typeof o=="string"?o:o!=null?O(o):void 0,i==="uploading"&&r!=null?`${Math.round(r)}%`:void 0,i==="error"?y:void 0].filter(Boolean),g=i==="error"&&p;return v("li",{ref:B,className:L(l.item,b),"data-status":i,...F,children:[e(w,{size:m==="xs"?"sm":m,variant:"ghost",media:d?e("img",{src:d,alt:""}):e(S,{size:m==="xs"?14:18,"aria-hidden":!0}),title:s,description:f.length>0?f.flatMap((h,j)=>j>0?[" \xB7 ",h]:[h]):void 0,actions:a||g?v(k,{children:[g?e(I,{size:"sm","aria-label":R??u("fileList.retry"),icon:e(D,{size:14,"aria-hidden":!0}),onClick:()=>p(t)}):null,a?e(I,{size:"sm","aria-label":N??u("fileList.remove"),icon:e(T,{size:14,"aria-hidden":!0}),onClick:()=>a(t)}):null]}):void 0}),i==="uploading"&&e(C,{percentage:r??0,indeterminate:r==null,showValueText:!1,className:l.progress})]})});n.displayName="FileList.Item";const c=z(function({children:t,className:s,...o},r){return e(M,{ref:r,as:"ul",gap:"sm",className:L(l.list,s),...o,children:t})});c.displayName="FileList.Root";const U=Object.assign(c,{Root:c,Item:n});export{U as FileList,n as FileListItem};
1
+ "use client";import{jsx as e,jsxs as h,Fragment as k}from"react/jsx-runtime";import{forwardRef as z}from"react";import{Item as w}from"../Item/Item.js";import{ButtonIcon as L}from"../ButtonIcon/ButtonIcon.js";import{Progress as C}from"../Progress/Progress.js";import{Stack as S}from"../Layout/Stack.js";import{IconDocument as D}from"../../icons/icons/IconDocument.js";import{IconCross as M}from"../../icons/icons/IconCross.js";import{IconTimeReverse as T}from"../../icons/icons/IconTimeReverse.js";import l from"./FileList.module.css.js";import{cn as I}from"../../utils/cn.js";import{formatBytes as O}from"../../utils/formatBytes.js";import{useLocale as P}from"../../locales/localeContext.js";import{ruSlice as U}from"../../locales/slices/fileList.ru.js";const V={fileList:U},n=z(function({id:t,name:s,size:r,progress:o,status:x,error:y,previewUrl:u,onRemove:a,onRetry:d,removeLabel:N,retryLabel:R,attachmentSize:m="sm",className:b,...F},B){const{t:p}=P(V),i=x??(o!=null&&o<100?"uploading":"idle"),f=[typeof r=="string"?r:r!=null?O(r):void 0,i==="uploading"&&o!=null?`${Math.round(o)}%`:void 0,i==="error"?y:void 0].filter(Boolean),v=i==="error"&&d;return h("li",{ref:B,className:I(l.item,b),"data-status":i,...F,children:[e(w,{size:m==="xs"?"sm":m,variant:"ghost",media:u?e("img",{src:u,alt:""}):e(D,{size:m==="xs"?"var(--altum-control-icon-size-sm)":"var(--altum-control-icon-size-md)","aria-hidden":!0}),title:s,description:f.length>0?f.flatMap((g,j)=>j>0?[" \xB7 ",g]:[g]):void 0,actions:a||v?h(k,{children:[v?e(L,{size:"sm","aria-label":R??p("fileList.retry"),icon:e(T,{size:"var(--altum-control-icon-size-sm)","aria-hidden":!0}),onClick:()=>d(t)}):null,a?e(L,{size:"sm","aria-label":N??p("fileList.remove"),icon:e(M,{size:"var(--altum-control-icon-size-sm)","aria-hidden":!0}),onClick:()=>a(t)}):null]}):void 0}),i==="uploading"&&e(C,{percentage:o??0,indeterminate:o==null,showValueText:!1,className:l.progress})]})});n.displayName="FileList.Item";const c=z(function({children:t,className:s,...r},o){return e(S,{ref:o,as:"ul",gap:"sm",className:I(l.list,s),...r,children:t})});c.displayName="FileList.Root";const $=Object.assign(c,{Root:c,Item:n});export{$ as FileList,n as FileListItem};