altum 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/base/FieldPopup/FieldPopup.js +1 -1
  3. package/dist/base/PeriodHeader/PeriodHeader.js +1 -1
  4. package/dist/base/ToggleControlBase/ToggleControlBase.js +1 -1
  5. package/dist/base/ToggleControlBase/ToggleControlBase.module.css.js +1 -1
  6. package/dist/components/Accordion/Accordion.js +1 -1
  7. package/dist/components/ActionList/ActionList.js +1 -1
  8. package/dist/components/ActionList/ActionList.module.css.js +1 -1
  9. package/dist/components/ActionSheetTrigger/ActionSheetTrigger.js +1 -1
  10. package/dist/components/ActionSheetTrigger/ActionSheetTrigger.module.css.js +1 -1
  11. package/dist/components/Alert/Alert.js +1 -1
  12. package/dist/components/Alert/Alert.module.css.js +1 -1
  13. package/dist/components/Badge/Badge.js +1 -1
  14. package/dist/components/Badge/Badge.module.css.js +1 -1
  15. package/dist/components/Box/Box.js +1 -1
  16. package/dist/components/Box/Box.module.css.js +1 -1
  17. package/dist/components/Bubble/Bubble.js +1 -1
  18. package/dist/components/Button/Button.js +1 -1
  19. package/dist/components/Button/Button.module.css.js +1 -1
  20. package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/ButtonIcon/OverlayCloseButton.js +1 -0
  22. package/dist/components/Calendar/Calendar.context.js +1 -1
  23. package/dist/components/Calendar/Calendar.module.css.js +1 -1
  24. package/dist/components/Calendar/Calendar.slots.js +1 -1
  25. package/dist/components/Calendar/Calendar.utils.js +1 -1
  26. package/dist/components/Calendar/Calendar.views.js +1 -1
  27. package/dist/components/CalendarBoard/CalendarBoard.MonthView.js +1 -1
  28. package/dist/components/CalendarBoard/CalendarBoard.Schedule.js +1 -1
  29. package/dist/components/CalendarBoard/CalendarBoard.YearView.js +2 -2
  30. package/dist/components/CalendarBoard/CalendarBoard.chrome.js +1 -1
  31. package/dist/components/CalendarBoard/CalendarBoard.module.css.js +1 -1
  32. package/dist/components/CalendarBoard/calendar.schedule.js +1 -1
  33. package/dist/components/Card/Card.js +1 -1
  34. package/dist/components/Card/Card.module.css.js +1 -1
  35. package/dist/components/Chip/Chip.js +1 -1
  36. package/dist/components/Chip/Chip.module.css.js +1 -1
  37. package/dist/components/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  38. package/dist/components/CommandPalette/CommandPalette.js +1 -1
  39. package/dist/components/CommandPalette/CommandPalette.module.css.js +1 -1
  40. package/dist/components/ConfirmDialog/ConfirmDialog.js +1 -1
  41. package/dist/components/DateField/DateField.js +1 -1
  42. package/dist/components/DateField/DateField.utils.js +1 -1
  43. package/dist/components/DateRangeField/DateRangeField.js +1 -1
  44. package/dist/components/DayStripCalendar/DayStripCalendar.js +1 -1
  45. package/dist/components/DialogLayout/DialogLayout.js +1 -0
  46. package/dist/components/DialogLayout/DialogLayout.module.css.js +1 -0
  47. package/dist/components/Dropdown/Dropdown.js +1 -1
  48. package/dist/components/Dropdown/Dropdown.module.css.js +1 -1
  49. package/dist/components/Dropdown/DropdownMobileSheet.js +1 -1
  50. package/dist/components/FileList/FileList.js +1 -1
  51. package/dist/components/ImageCrop/ImageCrop.js +1 -1
  52. package/dist/components/ImageCrop/ImageCrop.module.css.js +1 -1
  53. package/dist/components/ImageGallery/ImageGallery.js +1 -1
  54. package/dist/components/ImageGallery/ImageGallery.module.css.js +1 -1
  55. package/dist/components/ImageLightbox/ImageLightbox.js +1 -1
  56. package/dist/components/ImageLightbox/ImageLightbox.module.css.js +1 -1
  57. package/dist/components/Layout/Layout.js +1 -1
  58. package/dist/components/Layout/Layout.module.css.js +1 -1
  59. package/dist/components/Link/Link.js +1 -1
  60. package/dist/components/Listbox/Listbox.js +1 -1
  61. package/dist/components/Listbox/Listbox.module.css.js +1 -1
  62. package/dist/components/LiveRegion/LiveRegion.js +1 -0
  63. package/dist/components/LocaleProvider/LocaleProvider.js +1 -1
  64. package/dist/components/MaskedField/MaskedField.js +1 -1
  65. package/dist/components/MaskedField/MaskedField.module.css.js +1 -1
  66. package/dist/components/Menu/Menu.js +1 -1
  67. package/dist/components/Menu/Menu.module.css.js +1 -1
  68. package/dist/components/Modal/Modal.js +1 -1
  69. package/dist/components/Modal/Modal.module.css.js +1 -1
  70. package/dist/components/Notification/Notification.js +1 -1
  71. package/dist/components/Notification/Notification.module.css.js +1 -1
  72. package/dist/components/Notification/toast.js +1 -1
  73. package/dist/components/NumberField/NumberField.js +1 -1
  74. package/dist/components/Overflow/Overflow.js +1 -1
  75. package/dist/components/Overflow/Overflow.module.css.js +1 -1
  76. package/dist/components/Overlay/Overlay.frame.js +1 -0
  77. package/dist/components/Overlay/Overlay.js +1 -1
  78. package/dist/components/Overlay/Overlay.module.css.js +1 -1
  79. package/dist/components/Pagination/Pagination.js +1 -1
  80. package/dist/components/PasswordField/PasswordField.js +1 -1
  81. package/dist/components/PinInput/PinInput.js +1 -1
  82. package/dist/components/PinInput/PinInput.module.css.js +1 -1
  83. package/dist/components/Popover/Popover.js +1 -1
  84. package/dist/components/Popover/Popover.module.css.js +1 -1
  85. package/dist/components/PopupSwitch/PopupSwitch.js +1 -0
  86. package/dist/components/PopupSwitch/PopupSwitch.module.css.js +1 -0
  87. package/dist/components/PopupSwitch/PopupSwitch.utils.js +1 -0
  88. package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
  89. package/dist/components/Rating/Rating.js +1 -1
  90. package/dist/components/SearchField/SearchField.js +1 -1
  91. package/dist/components/SegmentedControl/SegmentedControl.js +1 -1
  92. package/dist/components/Select/Select.js +1 -1
  93. package/dist/components/Select/Select.module.css.js +1 -1
  94. package/dist/components/SelectionGroup/SelectionGroup.js +1 -1
  95. package/dist/components/Sheet/Sheet.js +1 -1
  96. package/dist/components/Sheet/Sheet.module.css.js +1 -1
  97. package/dist/components/Sidebar/Sidebar.js +1 -1
  98. package/dist/components/Sidebar/Sidebar.module.css.js +1 -1
  99. package/dist/components/SkipLink/SkipLink.js +1 -1
  100. package/dist/components/Slider/Slider.js +1 -1
  101. package/dist/components/SortableList/SortableList.js +1 -1
  102. package/dist/components/SortableList/SortableList.module.css.js +1 -1
  103. package/dist/components/Spinner/Spinner.js +1 -1
  104. package/dist/components/Steps/Steps.js +1 -1
  105. package/dist/components/SuggestField/SuggestField.js +1 -1
  106. package/dist/components/Table/Table.js +1 -1
  107. package/dist/components/Table/TableRowActions.js +1 -1
  108. package/dist/components/Table/TableView.js +1 -1
  109. package/dist/components/TextField/TextField.js +1 -1
  110. package/dist/components/TextField/TextField.module.css.js +1 -1
  111. package/dist/components/TextareaField/TextareaField.js +1 -1
  112. package/dist/components/TextareaField/TextareaField.module.css.js +1 -1
  113. package/dist/components/ThemeProvider/ThemeProvider.js +1 -1
  114. package/dist/components/ThemeProvider/ThemeProvider.module.css.js +1 -1
  115. package/dist/components/TimeField/TimeField.js +1 -1
  116. package/dist/components/Tooltip/Tooltip.js +1 -1
  117. package/dist/components/Tooltip/Tooltip.module.css.js +1 -1
  118. package/dist/components/UploadZone/UploadZone.js +1 -1
  119. package/dist/components/VirtualList/VirtualList.js +1 -1
  120. package/dist/components/VirtualList/VirtualList.module.css.js +1 -1
  121. package/dist/components/VirtualList/VirtualList.utils.js +1 -1
  122. package/dist/components/VisuallyHidden/VisuallyHidden.js +1 -1
  123. package/dist/components/WheelTimePicker/WheelTimePicker.js +1 -1
  124. package/dist/entries/icons.js +1 -1
  125. package/dist/entries/utils.js +1 -1
  126. package/dist/hooks/useAutoResize.js +1 -1
  127. package/dist/hooks/useOtpInputs.js +1 -1
  128. package/dist/hooks/useTrackThumb.js +1 -1
  129. package/dist/icons/icons/IconChevronUpDown.js +1 -0
  130. package/dist/index.js +1 -1
  131. package/dist/locales/en.js +1 -1
  132. package/dist/locales/localeContext.js +1 -1
  133. package/dist/locales/ru.js +1 -1
  134. package/dist/locales/slices/actionList.en.js +1 -0
  135. package/dist/locales/slices/actionList.ru.js +1 -0
  136. package/dist/locales/slices/bubble.en.js +1 -0
  137. package/dist/locales/slices/bubble.ru.js +1 -0
  138. package/dist/locales/slices/buttonGroup.en.js +1 -0
  139. package/dist/locales/slices/buttonGroup.ru.js +1 -0
  140. package/dist/locales/slices/calendar.en.js +1 -0
  141. package/dist/locales/slices/calendar.ru.js +1 -0
  142. package/dist/locales/slices/calendarBoard.en.js +1 -0
  143. package/dist/locales/slices/calendarBoard.ru.js +1 -0
  144. package/dist/locales/slices/chip.en.js +1 -0
  145. package/dist/locales/slices/chip.ru.js +1 -0
  146. package/dist/locales/slices/commandPalette.en.js +1 -0
  147. package/dist/locales/slices/commandPalette.ru.js +1 -0
  148. package/dist/locales/slices/common.en.js +1 -0
  149. package/dist/locales/slices/common.ru.js +1 -0
  150. package/dist/locales/slices/confirmDialog.en.js +1 -0
  151. package/dist/locales/slices/confirmDialog.ru.js +1 -0
  152. package/dist/locales/slices/customSelect.en.js +1 -0
  153. package/dist/locales/slices/customSelect.ru.js +1 -0
  154. package/dist/locales/slices/dateRangeField.en.js +1 -0
  155. package/dist/locales/slices/dateRangeField.ru.js +1 -0
  156. package/dist/locales/slices/dayStrip.en.js +1 -0
  157. package/dist/locales/slices/dayStrip.ru.js +1 -0
  158. package/dist/locales/slices/fileList.en.js +1 -0
  159. package/dist/locales/slices/fileList.ru.js +1 -0
  160. package/dist/locales/slices/imageCrop.en.js +1 -0
  161. package/dist/locales/slices/imageCrop.ru.js +1 -0
  162. package/dist/locales/slices/imageGallery.en.js +1 -0
  163. package/dist/locales/slices/imageGallery.ru.js +1 -0
  164. package/dist/locales/slices/imageLightbox.en.js +1 -0
  165. package/dist/locales/slices/imageLightbox.ru.js +1 -0
  166. package/dist/locales/slices/listbox.en.js +1 -0
  167. package/dist/locales/slices/listbox.ru.js +1 -0
  168. package/dist/locales/slices/menu.en.js +1 -0
  169. package/dist/locales/slices/menu.ru.js +1 -0
  170. package/dist/locales/slices/modal.en.js +1 -0
  171. package/dist/locales/slices/modal.ru.js +1 -0
  172. package/dist/locales/slices/numberField.en.js +1 -0
  173. package/dist/locales/slices/numberField.ru.js +1 -0
  174. package/dist/locales/slices/overflow.en.js +1 -0
  175. package/dist/locales/slices/overflow.ru.js +1 -0
  176. package/dist/locales/slices/pagination.en.js +1 -0
  177. package/dist/locales/slices/pagination.ru.js +1 -0
  178. package/dist/locales/slices/password.en.js +1 -0
  179. package/dist/locales/slices/password.ru.js +1 -0
  180. package/dist/locales/slices/pinInput.en.js +1 -0
  181. package/dist/locales/slices/pinInput.ru.js +1 -0
  182. package/dist/locales/slices/pullToRefresh.en.js +1 -0
  183. package/dist/locales/slices/pullToRefresh.ru.js +1 -0
  184. package/dist/locales/slices/rating.en.js +1 -0
  185. package/dist/locales/slices/rating.ru.js +1 -0
  186. package/dist/locales/slices/searchField.en.js +1 -0
  187. package/dist/locales/slices/searchField.ru.js +1 -0
  188. package/dist/locales/slices/select.en.js +1 -0
  189. package/dist/locales/slices/select.ru.js +1 -0
  190. package/dist/locales/slices/sheet.en.js +1 -0
  191. package/dist/locales/slices/sheet.ru.js +1 -0
  192. package/dist/locales/slices/sidebar.en.js +1 -0
  193. package/dist/locales/slices/sidebar.ru.js +1 -0
  194. package/dist/locales/slices/skipLink.en.js +1 -0
  195. package/dist/locales/slices/skipLink.ru.js +1 -0
  196. package/dist/locales/slices/slider.en.js +1 -0
  197. package/dist/locales/slices/slider.ru.js +1 -0
  198. package/dist/locales/slices/sortable.en.js +1 -0
  199. package/dist/locales/slices/sortable.ru.js +1 -0
  200. package/dist/locales/slices/spinner.en.js +1 -0
  201. package/dist/locales/slices/spinner.ru.js +1 -0
  202. package/dist/locales/slices/steps.en.js +1 -0
  203. package/dist/locales/slices/steps.ru.js +1 -0
  204. package/dist/locales/slices/suggestField.en.js +1 -0
  205. package/dist/locales/slices/suggestField.ru.js +1 -0
  206. package/dist/locales/slices/table.en.js +1 -0
  207. package/dist/locales/slices/table.ru.js +1 -0
  208. package/dist/locales/slices/timeField.en.js +1 -0
  209. package/dist/locales/slices/timeField.ru.js +1 -0
  210. package/dist/locales/slices/upload.en.js +1 -0
  211. package/dist/locales/slices/upload.ru.js +1 -0
  212. package/dist/locales/slices/virtualList.en.js +1 -0
  213. package/dist/locales/slices/virtualList.ru.js +1 -0
  214. package/dist/styles/calendarChrome.module.css.js +1 -1
  215. package/dist/styles/status.module.css.js +1 -1
  216. package/dist/styles/visuallyHidden.module.css.js +1 -0
  217. package/dist/utils/date.js +1 -1
  218. package/dist/utils/fieldMessage.js +1 -0
  219. package/dist/utils/visitElementTree.js +1 -1
  220. package/docs/COMPONENTS.md +12 -10
  221. package/docs/LAYOUT.md +6 -6
  222. package/docs/THEMING.md +5 -12
  223. package/package.json +1 -1
  224. package/types/entries/icons.d.ts +3 -1
  225. package/types/entries/locales.d.ts +1 -6
  226. package/types/entries/utils.d.ts +2 -1
  227. package/types/index.d.ts +527 -620
  228. package/dist/base/ChevronButton/ChevronButton.js +0 -1
  229. package/dist/base/DialogBase/DialogBase.js +0 -1
  230. package/dist/base/DialogBase/DialogBase.module.css.js +0 -1
  231. package/dist/components/CustomSelect/CustomSelect.Filter.js +0 -1
  232. package/dist/components/CustomSelect/CustomSelect.List.js +0 -1
  233. package/dist/components/CustomSelect/CustomSelect.Shell.js +0 -1
  234. package/dist/components/CustomSelect/CustomSelect.Shell.module.css.js +0 -1
  235. package/dist/components/CustomSelect/CustomSelect.context.js +0 -1
  236. package/dist/components/CustomSelect/CustomSelect.js +0 -1
  237. package/dist/components/CustomSelect/CustomSelect.module.css.js +0 -1
  238. package/dist/components/CustomSelect/useCustomSelectComboboxKeyboard.js +0 -1
  239. package/dist/components/FocusTrap/FocusTrap.js +0 -1
  240. package/dist/components/Overflow/OverflowActionsMode.js +0 -1
  241. package/dist/components/Overflow/OverflowMeasure.js +0 -1
  242. package/dist/components/Overflow/OverflowMore.js +0 -1
  243. package/dist/components/Overlay/Overlay.Dismiss.js +0 -1
  244. package/dist/components/Overlay/Overlay.Positioner.js +0 -1
  245. package/dist/components/Overlay/Overlay.types.js +0 -1
  246. package/dist/components/SortableList/SortableList.types.js +0 -1
  247. package/dist/components/SortableList/useSortableListDnD.js +0 -1
  248. package/dist/components/TimeField/TimeField.module.css.js +0 -1
  249. package/dist/hooks/useDigitMask.js +0 -1
  250. package/dist/styles/srOnly.module.css.js +0 -1
@@ -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: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 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 f,addDays as y}from"../../utils/date.js";function h(n){return y(f(n),1)}function g(n){return n.getHours()*60+n.getMinutes()+n.getSeconds()/60}function x(n,l,s){return Math.min(s,Math.max(l,n))}function I(n,l){const s=Math.floor(n),o=Math.ceil(l);return o<=s?[]:Array.from({length:o-s},(e,t)=>s+t)}function M(n,l,s){const o=f(s),e=h(s),t=n>o?n:o,a=l<e?l:e;return a<=t?null:{start:t,end:a}}function T(n,l,s,o){const e=s*60,t=o*60;if(t<=e)return null;const a=x(g(n),e,t),r=x(g(l),e,t);if(r<=a)return null;const u=t-e,m=(r-a)/u*100,c=32/u*100;return{topPercent:(a-e)/u*100,heightPercent:Math.max(m,c)}}function p(n,l,s){if(s.length===0)return null;const o=f(n),e=f(l);if(e<=o)return null;const t=s[0],a=s[s.length-1],r=h(a);if(e<=t||o>=r)return null;const u=s.map((m,c)=>({column:m,index:c})).filter(({column:m})=>m>=o&&m<e).map(({index:m})=>m);return u.length===0?null:{startIndex:u[0],endIndex:u[u.length-1],continuesBefore:o<t,continuesAfter:e>r}}function D(n,l,s){const o=[];return s.forEach((e,t)=>{const a=e.filter(Boolean),r=p(n,l,a);r&&o.push({weekIndex:t,segment:r})}),o}function k(n){const l=[...n].sort((e,t)=>{if(e.segment.startIndex!==t.segment.startIndex)return e.segment.startIndex-t.segment.startIndex;const a=e.segment.endIndex-e.segment.startIndex;return t.segment.endIndex-t.segment.startIndex-a}),s=[],o=[];for(const e of l){let t=s.findIndex(a=>a<e.segment.startIndex);t===-1?(t=s.length,s.push(e.segment.endIndex)):s[t]=e.segment.endIndex,o.push({item:e.item,segment:e.segment,lane:t})}return{packed:o,laneCount:s.length}}function S(n,l,s){const o=n.map(r=>{const u=T(r.start,r.end,l,s);return u?{item:r.item,layout:{...u,start:r.start,end:r.end}}:null}).filter(r=>r!==null).sort((r,u)=>r.layout.start.getTime()-u.layout.start.getTime()),e=[],t=[];let a=0;for(const r of o){const u=r.layout.start.getTime(),m=r.layout.end.getTime();for(let i=e.length-1;i>=0;i-=1)e[i].end<=u&&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}),a=Math.max(a,d+1),t.push({item:r.item,layout:r.layout,lane:d})}return t.map(r=>({...r,laneCount:Math.max(a,1)}))}function v(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,M as clipEventToDay,k as packSpanSegments,S as packTimedEventsInDay,v as resolveAllDay,D as segmentSpanByWeeks,p 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 G,Fragment as F,jsx as r}from"react/jsx-runtime";import{forwardRef as x}from"react";import{IconCross as M}from"../../icons/icons/IconCross.js";import i from"./Chip.module.css.js";import p from"../../styles/status.module.css.js";import L from"../../styles/unstyledControl.module.css.js";import{cn as m}from"../../utils/cn.js";import{useLocale as R}from"../../locales/localeContext.js";const P={success:1,info:1,warning:1,error:1},T=x(function({variant:t="primary",size:d="md",mode:s,as:h="chip",children:u,onRemove:e,onClick:c,disabled:a=!1,icon:l,className:b,removeLabel:g,...w},I){const{t:z}=R(),N=s??h,y=N==="tag",f=N==="toggle",o=!!c&&!a,v=o&&!!e,C=o&&!e?"button":"span",n=t in P,k=G(F,{children:[l&&r("span",{className:i.icon,"aria-hidden":y||void 0,children:l}),r("span",{className:i.label,children:u})]});return G(C,{ref:I,className:m(i.chip,y?i.modeTag:i.modeChip,n?p[t]:i[t],n?p.surface:"",n&&o?p.clickable:"",i[d],f?n?p.active:i.active:"",o?i.clickable:"",e&&!a?i.chipRemovable:"",a?i.disabled:"",b),type:C==="button"?"button":void 0,...w,"aria-pressed":o&&f&&!v?!0:void 0,"aria-disabled":a||void 0,disabled:C==="button"?a:void 0,onClick:o&&!v?c:void 0,children:[v?r("button",{type:"button",className:m(L.control,i.action),onClick:c,"aria-pressed":f||void 0,disabled:a,children:k}):k,e&&!a&&r("button",{type:"button",className:m(L.control,i.removeBtn),onClick:B=>{B.stopPropagation(),e()},"aria-label":g??z("chip.remove"),children:r(M,{})})]})});T.displayName="Chip";const j=x(function({children:t,"aria-label":d,gap:s="md",mode:h,as:u="chip",className:e,style:c,...a},l){const{t:b}=R(),g=h??u;return r("div",{ref:l,className:m(i.chipGroup,s==="sm"?i.gapSm:s==="lg"?i.gapLg:"",e),style:c,...a,role:"group","aria-label":d??b(g==="tag"?"chip.groupTags":"chip.groupChips"),children:t})});j.displayName="ChipGroup";export{T as Chip,j 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);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,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.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
+ "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{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 c,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 s=w(function({open:t,title:m,message:f,confirmLabel:p,cancelLabel:g,status:h="default",secondaryAction:e,onConfirm:C,onOpenChange:o,loading:i=!1,className:b,...u},y){const{t:l}=z(),k=p??l("confirmDialog.confirm"),v=g??l("confirmDialog.cancel"),d=x(),D=()=>{i||o(!1)};return c(a,{ref:y,open:t,onOpenChange:o,"aria-describedby":d,className:b,...u,children:[n(a.Header,{showClose:!1,children:n(a.Title,{children:m})}),n(a.Body,{id:d,children:f}),c(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:h==="danger"?"danger":"primary",size:"md",onClick:C,loading:i,children:k})]})]})});s.displayName="ConfirmDialog";export{s 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{FieldBaseIcon as E}from"../TextField/TextField.js";import{IconCalendar as I}from"../../icons/icons/IconCalendar.js";import{useCalendarPopupField as T,formatDateToDigits as V,CalendarFieldDropdown as j,parseDigitsToDate as B}from"./DateField.utils.js";import{commitMaskedValue as H}from"../../utils/commitMaskedValue.js";import{composeEventHandlers as N}from"../../utils/composeEvents.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}=T({disabled:n,readOnly:t}),[y,m]=O(e??new Date);return M(()=>{a(V(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(j,{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),H(o,B,r))},active:d,disabled:n,type:"text",readOnly:t,prefix:u??i(E,{children:i(I,{})}),onClear:l?()=>{a(""),r(void 0),l()}:void 0,onFocus:N(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 B,jsx as a}from"react/jsx-runtime";import{forwardRef as H,useState as h,useId as ee,useEffect as te}from"react";import{MaskedField as y}from"../MaskedField/MaskedField.js";import{Calendar as ae}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 se,formatDateToDigits as n,CalendarFieldDropdown as de,parseDigitsToDate as D}from"../DateField/DateField.utils.js";const z=e=>!e.start&&!e.end?"":e.start&&!e.end?n(e.start):e.start&&e.end?`${n(e.start)}${n(e.end)}`:"",L=H(function({value:e,onChange:l,label:M,startLabel:P,endLabel:S,layout:x="single",size:c="md",width:w="md",className:j="",disabled:p=!1,readOnly:o=!1,error:T,description:V,prefix:$,postfix:E,onClear:G,clearLabel:I,...J},O){const{messages:g}=ne(),{open:m,setOpen:K,close:Q,openPopup:u,isMobile:U,mobileChrome:W}=se({disabled:p,readOnly:o}),[X,v]=h(e.end??e.start??new Date),[Y,R]=h(z(e)),[Z,N]=h(n(e.start)),[_,k]=h(n(e.end)),q=ee();te(()=>{R(z(e)),N(n(e.start)),k(n(e.end)),e.end?v(e.end):e.start&&v(e.start)},[e]);const b=(t,f)=>{if(o)return;if(f==="range"){if(R(t),!t){l({start:void 0,end:void 0});return}const C=t.slice(0,8),F=t.slice(8,16);let d=C.length===8?D(C):C.length===0?void 0:e.start,i=F.length===8?D(F):F.length===0?void 0:e.end;d&&i&&i<d&&([d,i]=[i,d]),(d!==e.start||i!==e.end)&&l({start:d,end:i});return}f==="start"?N(t):k(t);const s=D(t);if(s){l(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}t||l(f==="start"?{start:void 0,end:e.end}:{start:e.start,end:void 0})},A=x==="split"?B("div",{className:r.splitFields,"data-size":c,children:[a("div",{className:r.fieldSlot,children:a(y,{ref:O,label:P??g.dateRangeField.start,size:c,mask:"99.99.9999",type:"text",value:Z,onChange:t=>b(t,"start"),onFocus:u,active:m,disabled:p,readOnly:o})}),a("span",{className:r.dash,"aria-hidden":!0,children:"\u2014"}),a("div",{className:r.fieldSlot,children:a(y,{label:S??g.dateRangeField.end,size:c,mask:"99.99.9999",type:"text",value:_,onChange:t=>b(t,"end"),onFocus:u,active:m,disabled:p,readOnly:o})})]}):a(y,{ref:O,label:M??g.dateRangeField.label,size:c,width:w,mask:"99.99.9999 \u2014 99.99.9999",type:"text",value:Y,error:T,description:V,prefix:$,postfix:E,onClear:G,clearLabel:I,onChange:t=>b(t,"range"),onFocus:u,active:m,disabled:p,readOnly:o,id:q});return a("div",{className:re(r.root,x==="split"?r.layoutSplit:"",w==="full"?r.widthFull:"",j),...J,children:a(ae.Provider,{selectionMode:"range",value:e,onChange:t=>{t instanceof Date||(l(t),t.start&&t.end&&K(!1))},viewDate:X,onViewDateChange:v,children:a(de,{open:m,onClose:Q,onOpen:u,isMobile:U,mobileChrome:W,trigger:A})})})});L.displayName="DateRangeField";export{L 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 R}from"react/jsx-runtime";import{forwardRef as q,useId as B,useCallback as G,useEffect as J,useMemo as Q}from"react";import{buildDayStrip as U,formatMonthYear as $,isToday as X,weekdayLabelFor as Z}from"../Calendar/Calendar.utils.js";import{handleArrowPairKeyDown as _,isKey as T}from"../../utils/keyboard.js";import ee 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 ae}from"../../hooks/useControlledState.js";import{useLocale as te}from"../../locales/localeContext.js";import{startOfDay as c,getWeekStart as H,addDays as h,isSameDay as re}from"../../utils/date.js";import{PeriodHeader as oe}from"../../base/PeriodHeader/PeriodHeader.js";const I=q(function({value:S,onChange:K,viewDate:g,onViewDateChange:O,daysCount:r=7,weekStartsOn:p=1,showHeader:k=!0,showNav:P=!0,className:Y,"aria-label":j,renderDay:N,...z},A){const{messages:l}=te(),{months:C,weekdaysShort:E}=l.calendar,b=B(),i=S?c(S):void 0,w=i?.getTime(),V=i??c(new Date),[t,x]=ae(g!==void 0?c(g):void 0,H(V,p),O),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?H(e,p):e)},[r,w,D,p]);const d=Q(()=>U(t,r),[r,t]),W=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)&&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":k?b:void 0,...z,children:[m(oe,{title:$(i??t,C),titleId:b,showTitle:k,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(!_(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?re(e,i):!1,o=X(e),s=Z(e,p,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} ${$(e,C)}`,className:F(ee.control,v.cell,n.day,a?v.selected:"",a?n.daySelected:"",o?v.today:""),onClick:()=>y(e),children:N?N({date:e,dayOfMonth:u,weekdayLabel:s,isSelected:a,isToday:o}):M(R,{children:[m("span",{className:n.weekday,children:s}),m("span",{className:n.dayNumber,children:u})]})},L)})})]})});I.displayName="DayStripCalendar";export{I 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 re}from"../ButtonIcon/ButtonIcon.js";import{IconCross as te}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:z,align:B="auto",widthMode:U="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),t=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 r=document.activeElement;if(r instanceof Node&&i.current?.contains(r)||!(r instanceof Node&&(t.current?.contains(r)||h.current?.contains(r))))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||!t.current)return;const r=ue(t.current,fe);r.length!==0&&(me(e,r,{wrap:D||p,onTabForwardFromLast:D||p?void 0:l})||n&&!t.current.contains(document.activeElement)||de(e,r))},{enabled:o}),N(()=>{!o||n||!t.current||O(t.current.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"]), [role="option"]'))},[n,o]),N(()=>{if(!o||!n)return;const e=r=>{const x=r.target;i.current?.contains(x)||t.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(re,{appearance:"diskClose","aria-label":H("common.close"),icon:s(te,{className:ae.icon,size:"var(--altum-overlay-close-icon-size)","aria-hidden":!0}),onClick:l}):void 0),children:s("div",{id:b,ref:t,role:w,className:R,...L,children:a})})}):k=s(ge,{ref:t,variant:"dropdown",purpose:"dropdown",open:o,onOpenChange:e=>{e||l()},targetRef:i,triggerMode:"manual",side:"bottom",align:we(B),widthMode:U,dismiss:"all",role:w??"presentation",children:s(ve,{as:"div",variant:"floating",id:b,role:w,className:R,...z,...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 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 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:r,progress:o,status:x,error:y,previewUrl:d,onRemove:a,onRetry:u,removeLabel:N,retryLabel:R,attachmentSize:m="sm",className:b,...F},B){const{t:f}=P(),i=x??(o!=null&&o<100?"uploading":"idle"),p=[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"&&u;return h("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"?"var(--altum-control-icon-size-sm)":"var(--altum-control-icon-size-md)","aria-hidden":!0}),title:s,description:p.length>0?p.flatMap((g,j)=>j>0?[" \xB7 ",g]:[g]):void 0,actions:a||v?h(k,{children:[v?e(I,{size:"sm","aria-label":R??f("fileList.retry"),icon:e(D,{size:"var(--altum-control-icon-size-sm)","aria-hidden":!0}),onClick:()=>u(t)}):null,a?e(I,{size:"sm","aria-label":N??f("fileList.remove"),icon:e(T,{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(M,{ref:o,as:"ul",gap:"sm",className:L(l.list,s),...r,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};
@@ -1 +1 @@
1
- "use client";import{jsx as t,jsxs as f}from"react/jsx-runtime";import{forwardRef as ve,useId as Ce,useRef as P,useState as c,useEffect as G}from"react";import{Button as J}from"../Button/Button.js";import{Overlay as we}from"../Overlay/Overlay.js";import{cn as Q}from"../../utils/cn.js";import{composeEventHandlers as xe}from"../../utils/composeEvents.js";import{loadImageFromSrc as be,getDisplaySize as X,exportCroppedImage as Ne,clampOffset as V,getMinCoverScale as ke}from"./ImageCrop.utils.js";import n from"./ImageCrop.module.css.js";import{useLocale as Le}from"../../locales/localeContext.js";import{DialogBase as g}from"../../base/DialogBase/DialogBase.js";const O=1,S=4,ee=.1,Re=["nw","ne","se","sw"],re=ve(function({open:u,onOpenChange:U,file:y=null,src:te=null,shape:j="circle",cropSize:h=280,outputSize:ae=512,title:oe,confirmLabel:ne,cancelLabel:ie,className:le,style:se,onCrop:H,onClick:ce,...me},pe){const{t:i}=Le(),$=Ce(),z=P(null),v=P(null),D=P(null),[de,A]=c(null),[a,B]=c(null),[m,C]=c(0),[p,w]=c(0),[l,x]=c(1),[I,F]=c(!1),[Y,b]=c(null),d=de??te??null,N=a?ke(a,h):1,k=a?X(a,N,l):{width:0,height:0},L=()=>U(!1);G(()=>{if(!u||!y){A(r=>(r&&URL.revokeObjectURL(r),null));return}const e=URL.createObjectURL(y);return A(e),()=>URL.revokeObjectURL(e)},[y,u]),G(()=>{if(!u||!d){B(null),x(1),C(0),w(0),b(null),v.current=null;return}let e=!1;return b(null),be(d,{errorMessage:i("imageCrop.loadError")}).then(r=>{e||(v.current=r,B({width:r.naturalWidth,height:r.naturalHeight}),x(1),C(0),w(0))}).catch(r=>{e||b(r instanceof Error?r.message:i("imageCrop.loadError"))}),()=>{e=!0}},[d,u,i]);const Z=(e,r,o)=>{const s=Math.min(S,Math.max(O,e));if(!a){x(s);return}const R=X(a,N,s),E=V(r,o,R.width,R.height,h);x(s),C(E.offsetX),w(E.offsetY)},ue=e=>{const r=D.current;if(!r||!a)return;if(r.type==="pan"){const T=X(a,N,l),_=V(r.ox+e.clientX-r.startX,r.oy+e.clientY-r.startY,T.width,T.height,h);C(_.offsetX),w(_.offsetY);return}const o=z.current?.getBoundingClientRect();if(!o)return;const s=e.clientX-(o.left+o.width/2+r.ox),R=e.clientY-(o.top+o.height/2+r.oy),E=Math.hypot(s,R)/(Math.hypot(r.vx,r.vy)||1);Z(r.originZoom*E,r.ox,r.oy)},K=()=>{D.current=null},W=(e,r)=>{e.button!==0||!a||(e.preventDefault(),e.currentTarget.setPointerCapture?.(e.pointerId),D.current=r)},he=e=>{W(e,{type:"pan",startX:e.clientX,startY:e.clientY,ox:m,oy:p})},fe=e=>{e.stopPropagation();const r=z.current?.getBoundingClientRect();if(!r)return;const o=r.left+r.width/2+m,s=r.top+r.height/2+p;W(e,{type:"scale",originZoom:l,ox:m,oy:p,vx:e.clientX-o,vy:e.clientY-s})},ge=e=>{let r=l;if(e.key==="ArrowUp"||e.key==="ArrowRight")r=l+ee;else if(e.key==="ArrowDown"||e.key==="ArrowLeft")r=l-ee;else if(e.key==="Home")r=O;else if(e.key==="End")r=S;else return;e.preventDefault(),Z(r,m,p)},ye=async()=>{if(!a||!v.current||!H){L();return}F(!0);try{const e=await Ne({image:v.current,natural:a,baseScale:N,zoom:l,offsetX:m,offsetY:p,cropSize:h,outputSize:ae,shape:j,exportErrorMessage:i("imageCrop.exportError"),fileName:(()=>{const r=y?.name?.replace(/\.\w+$/,"");return r?`${r}-cropped.png`:"cropped.png"})()});H(e),L()}catch(e){b(e instanceof Error?e.message:i("imageCrop.cropError"))}finally{F(!1)}},M=!!(d&&a),q=`translate(calc(-50% + ${m}px), calc(-50% + ${p}px))`;return t(we,{ref:pe,variant:"modal",purpose:"lightbox",open:u,onOpenChange:U,"aria-labelledby":$,children:(e,r)=>t("div",{...e,...me,ref:r,role:e.role,"aria-modal":e["aria-modal"],"aria-labelledby":e["aria-labelledby"],className:Q(n.panel,e.className,le),style:{...e.style,...se},onClick:xe(ce,e.onClick),children:f(g.Provider,{onClose:L,titleId:$,children:[f(g.Header,{children:[t(g.Title,{as:"h2",children:oe??i("imageCrop.title")}),t("p",{className:n.hint,children:i("imageCrop.hint")})]}),t(g.Body,{children:f("div",{ref:z,className:n.stage,style:{"--altum-image-crop-size":`${h}px`},onPointerMove:ue,onPointerUp:K,onPointerCancel:K,children:[Y&&t("div",{className:Q(n.status,n.error),role:"alert",children:Y}),f("div",{className:n.viewport,children:[M&&t("div",{className:n.imageLayer,style:{width:k.width,height:k.height,transform:q},onPointerDown:he,children:t("img",{src:d,alt:"",draggable:!1,className:n.image})}),M&&t("div",{className:n.cropFrame,"data-shape":j}),!d&&!Y&&t("div",{className:n.status,children:i("imageCrop.choose")})]}),M&&t("div",{className:n.handleLayer,style:{width:k.width,height:k.height,transform:q},children:Re.map(o=>t("div",{role:"slider",tabIndex:0,"data-corner":o,className:n.handle,"aria-label":i("imageCrop.scaleHandle",{corner:o}),"aria-valuemin":O,"aria-valuemax":S,"aria-valuenow":Number(l.toFixed(2)),onPointerDown:fe,onKeyDown:ge},o))})]})}),f(g.Footer,{children:[t(J,{variant:"secondary",size:"sm",onClick:L,disabled:I,children:ie??i("imageCrop.cancel")}),t(J,{variant:"primary",size:"sm",onClick:ye,disabled:I||!a,loading:I,children:ne??i("imageCrop.confirm")})]})]})})})});re.displayName="ImageCrop";export{re as ImageCrop};
1
+ "use client";import{jsx as t,jsxs as f}from"react/jsx-runtime";import{forwardRef as ve,useId as Ce,useRef as P,useState as c,useEffect as G}from"react";import{Button as J}from"../Button/Button.js";import{DialogLayout as we}from"../DialogLayout/DialogLayout.js";import{Layout as z}from"../Layout/Layout.js";import{Stack as xe}from"../Layout/Stack.js";import{Overlay as be}from"../Overlay/Overlay.js";import{Text as ke}from"../Text/Text.js";import{Title as Ne}from"../Title/Title.js";import{cn as Q}from"../../utils/cn.js";import{loadImageFromSrc as Le,getDisplaySize as X,exportCroppedImage as Re,clampOffset as V,getMinCoverScale as ze}from"./ImageCrop.utils.js";import n from"./ImageCrop.module.css.js";import{useLocale as Se}from"../../locales/localeContext.js";import{ruSlice as Ee}from"../../locales/slices/imageCrop.ru.js";const Me={imageCrop:Ee},O=1,I=4,ee=.1,Ye=["nw","ne","se","sw"],re=ve(function({open:d,onOpenChange:U,file:g=null,src:te=null,shape:j="circle",cropSize:h=280,outputSize:oe=512,title:ae,confirmLabel:ne,cancelLabel:ie,className:le,style:se,onCrop:$,onClick:ce,...me},pe){const{t:a}=Se(Me),A=Ce(),S=P(null),y=P(null),E=P(null),[ue,F]=c(null),[o,B]=c(null),[m,v]=c(0),[p,C]=c(0),[l,w]=c(1),[M,T]=c(!1),[Y,x]=c(null),u=ue??te??null,b=o?ze(o,h):1,k=o?X(o,b,l):{width:0,height:0},N=()=>U(!1);G(()=>{if(!d||!g){F(r=>(r&&URL.revokeObjectURL(r),null));return}const e=URL.createObjectURL(g);return F(e),()=>URL.revokeObjectURL(e)},[g,d]),G(()=>{if(!d||!u){B(null),w(1),v(0),C(0),x(null),y.current=null;return}let e=!1;return x(null),Le(u,{errorMessage:a("imageCrop.loadError")}).then(r=>{e||(y.current=r,B({width:r.naturalWidth,height:r.naturalHeight}),w(1),v(0),C(0))}).catch(r=>{e||x(r instanceof Error?r.message:a("imageCrop.loadError"))}),()=>{e=!0}},[u,d,a]);const H=(e,r,i)=>{const s=Math.min(I,Math.max(O,e));if(!o){w(s);return}const L=X(o,b,s),R=V(r,i,L.width,L.height,h);w(s),v(R.offsetX),C(R.offsetY)},de=e=>{const r=E.current;if(!r||!o)return;if(r.type==="pan"){const Z=X(o,b,l),_=V(r.ox+e.clientX-r.startX,r.oy+e.clientY-r.startY,Z.width,Z.height,h);v(_.offsetX),C(_.offsetY);return}const i=S.current?.getBoundingClientRect();if(!i)return;const s=e.clientX-(i.left+i.width/2+r.ox),L=e.clientY-(i.top+i.height/2+r.oy),R=Math.hypot(s,L)/(Math.hypot(r.vx,r.vy)||1);H(r.originZoom*R,r.ox,r.oy)},K=()=>{E.current=null},W=(e,r)=>{e.button!==0||!o||(e.preventDefault(),e.currentTarget.setPointerCapture?.(e.pointerId),E.current=r)},he=e=>{W(e,{type:"pan",startX:e.clientX,startY:e.clientY,ox:m,oy:p})},fe=e=>{e.stopPropagation();const r=S.current?.getBoundingClientRect();if(!r)return;const i=r.left+r.width/2+m,s=r.top+r.height/2+p;W(e,{type:"scale",originZoom:l,ox:m,oy:p,vx:e.clientX-i,vy:e.clientY-s})},ge=e=>{let r=l;if(e.key==="ArrowUp"||e.key==="ArrowRight")r=l+ee;else if(e.key==="ArrowDown"||e.key==="ArrowLeft")r=l-ee;else if(e.key==="Home")r=O;else if(e.key==="End")r=I;else return;e.preventDefault(),H(r,m,p)},ye=async()=>{if(!o||!y.current||!$){N();return}T(!0);try{const e=await Re({image:y.current,natural:o,baseScale:b,zoom:l,offsetX:m,offsetY:p,cropSize:h,outputSize:oe,shape:j,exportErrorMessage:a("imageCrop.exportError"),fileName:(()=>{const r=g?.name?.replace(/\.\w+$/,"");return r?`${r}-cropped.png`:"cropped.png"})()});$(e),N()}catch(e){x(e instanceof Error?e.message:a("imageCrop.cropError"))}finally{T(!1)}},D=!!(u&&o),q=`translate(calc(-50% + ${m}px), calc(-50% + ${p}px))`;return t(be,{ref:pe,variant:"modal",purpose:"lightbox",open:d,onOpenChange:U,"aria-labelledby":A,children:t(we,{variant:"floating",border:!1,shadow:"none",className:Q(n.panel,le),style:se,onClick:ce,...me,onClose:N,children:f(z,{padding:"md",gap:"md",children:[t(z.Header,{sticky:!0,children:f(xe,{gap:"xs",children:[t(Ne,{level:3,id:A,children:ae??a("imageCrop.title")}),t(ke,{as:"p",size:"sm",color:"muted",children:a("imageCrop.hint")})]})}),t(z.Content,{children:f("div",{ref:S,className:n.stage,style:{"--altum-image-crop-size":`${h}px`},onPointerMove:de,onPointerUp:K,onPointerCancel:K,children:[Y&&t("div",{className:Q(n.status,n.error),role:"alert",children:Y}),f("div",{className:n.viewport,children:[D&&t("div",{className:n.imageLayer,style:{width:k.width,height:k.height,transform:q},onPointerDown:he,children:t("img",{src:u,alt:"",draggable:!1,className:n.image})}),D&&t("div",{className:n.cropFrame,"data-shape":j}),!u&&!Y&&t("div",{className:n.status,children:a("imageCrop.choose")})]}),D&&t("div",{className:n.handleLayer,style:{width:k.width,height:k.height,transform:q},children:Ye.map(e=>t("div",{role:"slider",tabIndex:0,"data-corner":e,className:n.handle,"aria-label":a("imageCrop.scaleHandle",{corner:e}),"aria-valuemin":O,"aria-valuemax":I,"aria-valuenow":Number(l.toFixed(2)),onPointerDown:fe,onKeyDown:ge},e))})]})}),f(z.Footer,{sticky:!0,align:"end",children:[t(J,{variant:"secondary",size:"sm",onClick:N,disabled:M,children:ie??a("imageCrop.cancel")}),t(J,{variant:"primary",size:"sm",onClick:ye,disabled:M||!o,loading:M,children:ne??a("imageCrop.confirm")})]})]})})})});re.displayName="ImageCrop";export{re as ImageCrop};
@@ -1 +1 @@
1
- "use client";import{injectCss as r}from"../../utils/injectCss.js";var a=".VsqSJ{background-color:var(--altum-color-fill-floating-bg);border-radius:var(--altum-g-radius);box-sizing:border-box;color:var(--altum-color-fill-floating-fg);display:flex;flex-direction:column;pointer-events:auto;position:relative;width:min(100%,var(--altum-image-crop-panel-max));z-index:var(--altum-g-z-raised)}.VsqSJ .QNjqO{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-sm);line-height:1.4;margin:0}.VsqSJ .br-aR{aspect-ratio:1;max-height:min(70vh,var(--altum-image-crop-stage-max));position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.VsqSJ .FFs-o{background-color:var(--altum-overlay-content-bg);color:var(--altum-overlay-on-scrim);inset:0;overflow:hidden;position:absolute}.VsqSJ .eighF{cursor:grab;left:50%;position:absolute;top:50%;will-change:transform}:is(.VsqSJ .eighF):active{cursor:grabbing}.VsqSJ .LAjrZ{-webkit-user-drag:none;display:block;height:100%;pointer-events:none;width:100%}.VsqSJ .FO4mc{border:2px solid var(--altum-overlay-on-scrim);box-shadow:0 0 0 9999px var(--altum-overlay-scrim-strong);box-sizing:border-box;height:var(--altum-image-crop-size);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--altum-image-crop-size);z-index:var(--altum-g-z-raised)}[data-shape=circle]:is(.VsqSJ .FO4mc){border-radius:50%}[data-shape=square]:is(.VsqSJ .FO4mc){border-radius:var(--altum-g-radius-sm)}.VsqSJ .wTX2-{left:50%;pointer-events:none;position:absolute;top:50%;z-index:calc(var(--altum-g-z-raised) + 1)}.VsqSJ .mBMAL{appearance:none;background-color:var(--altum-color-brand);border:2px solid var(--altum-overlay-on-scrim);border-radius:var(--altum-g-radius-sm);box-shadow:var(--altum-shadow-brand);height:var(--altum-g-space-4);margin:0;padding:0;pointer-events:auto;position:absolute;transform:translate(-50%,-50%);transition:background-color .15s ease;width:var(--altum-g-space-4)}[data-corner=nw]:is(.VsqSJ .mBMAL){cursor:nwse-resize;left:0;top:0}[data-corner=ne]:is(.VsqSJ .mBMAL){cursor:nesw-resize;left:100%;top:0}[data-corner=se]:is(.VsqSJ .mBMAL){cursor:nwse-resize;left:100%;top:100%}[data-corner=sw]:is(.VsqSJ .mBMAL){cursor:nesw-resize;left:0;top:100%}:is(.VsqSJ .mBMAL):focus-visible,:is(.VsqSJ .mBMAL):hover{background-color:var(--altum-color-brand-hover);outline:none}@media (prefers-reduced-motion:reduce){.VsqSJ .mBMAL{transition:none}}.VsqSJ .BG4TM{align-items:center;color:var(--altum-color-muted);display:flex;font-size:var(--altum-g-font-size-base);inset:0;justify-content:center;padding:var(--altum-g-space-4);position:absolute;text-align:center;z-index:var(--altum-g-z-control)}.VsqSJ .wGZHl{background-color:color-mix(in srgb,var(--altum-color-dropdown-bg) 88%,#0000);color:var(--altum-color-status-error)}";const e={panel:"VsqSJ",hint:"QNjqO",stage:"br-aR",viewport:"FFs-o",imageLayer:"eighF",image:"LAjrZ",cropFrame:"FO4mc",handleLayer:"wTX2-",handle:"mBMAL",status:"BG4TM",error:"wGZHl"};r(a);export{e as default};
1
+ "use client";import{injectCss as r}from"../../utils/injectCss.js";var e=".VsqSJ{pointer-events:auto;width:min(100%,var(--altum-image-crop-panel-max));z-index:var(--altum-g-z-raised)}.VsqSJ .br-aR{aspect-ratio:1;max-height:min(70vh,var(--altum-image-crop-stage-max));position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.VsqSJ .FFs-o{background-color:var(--altum-overlay-content-bg);color:var(--altum-overlay-on-scrim);inset:0;overflow:hidden;position:absolute}.VsqSJ .eighF{cursor:grab;left:50%;position:absolute;top:50%;will-change:transform}:is(.VsqSJ .eighF):active{cursor:grabbing}.VsqSJ .LAjrZ{-webkit-user-drag:none;display:block;height:100%;pointer-events:none;width:100%}.VsqSJ .FO4mc{border:2px solid var(--altum-overlay-on-scrim);box-shadow:0 0 0 9999px var(--altum-overlay-scrim-strong);box-sizing:border-box;height:var(--altum-image-crop-size);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--altum-image-crop-size);z-index:var(--altum-g-z-raised)}[data-shape=circle]:is(.VsqSJ .FO4mc){border-radius:50%}[data-shape=square]:is(.VsqSJ .FO4mc){border-radius:var(--altum-g-radius-sm)}.VsqSJ .wTX2-{left:50%;pointer-events:none;position:absolute;top:50%;z-index:calc(var(--altum-g-z-raised) + 1)}.VsqSJ .mBMAL{appearance:none;background-color:var(--altum-color-brand);border:2px solid var(--altum-overlay-on-scrim);border-radius:var(--altum-g-radius-sm);box-shadow:var(--altum-shadow-brand);height:var(--altum-g-space-4);margin:0;padding:0;pointer-events:auto;position:absolute;transform:translate(-50%,-50%);transition:background-color .15s ease;width:var(--altum-g-space-4)}[data-corner=nw]:is(.VsqSJ .mBMAL){cursor:nwse-resize;left:0;top:0}[data-corner=ne]:is(.VsqSJ .mBMAL){cursor:nesw-resize;left:100%;top:0}[data-corner=se]:is(.VsqSJ .mBMAL){cursor:nwse-resize;left:100%;top:100%}[data-corner=sw]:is(.VsqSJ .mBMAL){cursor:nesw-resize;left:0;top:100%}:is(.VsqSJ .mBMAL):focus-visible,:is(.VsqSJ .mBMAL):hover{background-color:var(--altum-color-brand-hover);outline:none}@media (prefers-reduced-motion:reduce){.VsqSJ .mBMAL{transition:none}}.VsqSJ .BG4TM{align-items:center;color:var(--altum-color-muted);display:flex;font-size:var(--altum-g-font-size-base);inset:0;justify-content:center;padding:var(--altum-g-space-4);position:absolute;text-align:center;z-index:var(--altum-g-z-control)}.VsqSJ .wGZHl{background-color:color-mix(in srgb,var(--altum-color-dropdown-bg) 88%,#0000);color:var(--altum-color-status-error)}";const a={panel:"VsqSJ",stage:"br-aR",viewport:"FFs-o",imageLayer:"eighF",image:"LAjrZ",cropFrame:"FO4mc",handleLayer:"wTX2-",handle:"mBMAL",status:"BG4TM",error:"wGZHl"};r(e);export{a as default};
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as b,Fragment as R}from"react/jsx-runtime";import{forwardRef as E,useCallback as y}from"react";import{ButtonIcon as F}from"../ButtonIcon/ButtonIcon.js";import{IconChevronLeft as O}from"../../icons/icons/IconChevronLeft.js";import{IconChevronRight as S}from"../../icons/icons/IconChevronRight.js";import{useDocumentKeyDown as V}from"../../hooks/useDocumentKeyDown.js";import{useControlledStateWithCallback as W}from"../../hooks/useControlledState.js";import{handleArrowPairKeyDown as q}from"../../utils/keyboard.js";import l from"./ImageGallery.module.css.js";import{cn as v}from"../../utils/cn.js";import{useLocale as H}from"../../locales/localeContext.js";function J(c,d){return c.map((n,h)=>typeof n=="string"?{src:n,alt:d(h+1)}:n)}const C=E(function({images:c,index:d,defaultIndex:n=0,onIndexChange:h,chrome:I="default",showNav:G,showThumbnails:k,showCounter:z,enableKeyboard:A,className:B,...D},K){const{t:u}=H(),g=a=>u("imageGallery.imageN",{index:a}),t=J(c,g),m=t.length>1,o=I==="default",T=(G??o)&&m,j=(k??o)&&m,L=(z??o)&&m,P=(A??o)&&m,p=t.length-1,[e,N]=W(d,n,h),i=y(a=>{a<0||a>p||a===e||N(a)},[e,p,N]),x=y(()=>i(e-1),[e,i]),w=y(()=>i(e+1),[e,i]);V(a=>{q(a,x,w)},{enabled:P,target:"window"});const f=t[e];return r("div",{ref:K,className:v(l.gallery,!t.length&&l.empty,B),...D,children:f?b(R,{children:[b("div",{className:l.mainArea,children:[T?[0,1].map(a=>r(F,{className:v(l.navBtn,a?l.navNext:l.navPrev),variant:"ghost",shape:"circle",size:"md",icon:a?r(S,{size:22}):r(O,{size:22}),"aria-label":u(a?"imageGallery.next":"imageGallery.prev"),disabled:a?e>=p:e<=0,onClick:a?w:x},a)):null,r("img",{src:f.src,alt:f.alt??g(e+1),className:l.mainImage,draggable:!1},e)]}),j?r("div",{className:l.thumbnails,children:t.map((a,s)=>r("button",{type:"button",className:v(l.thumbnailBtn,s===e&&l.active),"aria-label":a.alt??g(s+1),"aria-current":s===e?"true":void 0,onClick:()=>i(s),children:r("img",{src:a.thumbnail??a.src,alt:"",className:l.thumbnailImage,draggable:!1})},a.src))}):null,L?b("div",{className:l.counter,"aria-live":"polite",children:[e+1," / ",t.length]}):null]}):r("span",{className:l.emptyText,children:u("imageGallery.empty")})})});C.displayName="ImageGallery";export{C as ImageGallery};
1
+ "use client";import{jsx as r,jsxs as p,Fragment as B}from"react/jsx-runtime";import{forwardRef as D,useRef as K}from"react";import{ButtonIcon as T}from"../ButtonIcon/ButtonIcon.js";import{IconChevronLeft as $}from"../../icons/icons/IconChevronLeft.js";import{IconChevronRight as j}from"../../icons/icons/IconChevronRight.js";import{useDocumentKeyDown as A}from"../../hooks/useDocumentKeyDown.js";import{useControlledStateWithCallback as E}from"../../hooks/useControlledState.js";import{handleArrowPairKeyDown as F}from"../../utils/keyboard.js";import a from"./ImageGallery.module.css.js";import{cn as h}from"../../utils/cn.js";import{composeRefs as L}from"../../utils/composeRefs.js";import{useLocale as P}from"../../locales/localeContext.js";import{ruSlice as S}from"../../locales/slices/imageGallery.ru.js";const W={imageGallery:S};function z(n){return n instanceof Element&&n.closest('input, textarea, select, [contenteditable="true"]')!=null}function O(n,s){if(z(s.target))return!1;const l=document.activeElement;if(!(l instanceof Node))return!1;if(n.contains(l))return!0;const i=n.closest('[role="dialog"], dialog');return i!=null&&i.contains(l)}function q(n,s){return n.map((l,i)=>{const c=s(i+1);return typeof l=="string"?{src:l,alt:c}:{...l,alt:l.alt??c}})}const y=D(function({images:n,index:s,defaultIndex:l=0,onIndexChange:i,chrome:c="default",showNav:N,showThumbnails:x,showCounter:I,enableKeyboard:C,className:G,...w},R){const{t:d}=P(W),v=K(null),m=q(n,e=>d("imageGallery.imageN",{index:e})),u=e=>(e??c==="default")&&m.length>1,b=m.length-1,[t,k]=E(s,l,i),f=e=>{e<0||e>b||e===t||k(e)};A(e=>{const o=v.current;!o||!O(o,e)||F(e,()=>f(t-1),()=>f(t+1))},{enabled:u(C)});const g=m[t];return r("div",{ref:L(R,v),className:h(a.gallery,!m.length&&a.empty,G),...w,children:g?p(B,{children:[p("div",{className:a.mainArea,children:[u(N)?[0,1].map(e=>r(T,{className:h(a.navBtn,e?a.navNext:a.navPrev),variant:"ghost",shape:"circle",size:"md",icon:e?r(j,{}):r($,{}),"aria-label":d(e?"imageGallery.next":"imageGallery.prev"),disabled:e?t>=b:t<=0,onClick:()=>f(e?t+1:t-1)},e)):null,r("img",{src:g.src,alt:g.alt,className:a.mainImage,draggable:!1},t)]}),u(x)?r("div",{className:a.thumbnails,children:m.map((e,o)=>r("button",{type:"button",className:h(a.thumbnailBtn,o===t&&a.active),"aria-label":e.alt,"aria-current":o===t?"true":void 0,onClick:()=>f(o),children:r("img",{src:e.thumbnail??e.src,alt:"",className:a.thumbnailImage,draggable:!1})},`${e.src}-${o}`))}):null,u(I)?p("div",{className:a.counter,"aria-live":"polite",children:[t+1," / ",m.length]}):null]}):r("span",{className:a.emptyText,children:d("imageGallery.empty")})})});y.displayName="ImageGallery";export{y as ImageGallery};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var r="._20B5K{--altum-image-gallery-chrome-in:opacity 0.32s cubic-bezier(0.4,0,0.2,1);--altum-image-gallery-chrome-out:opacity 0.5s cubic-bezier(0.4,0,0.2,1);display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-4);width:100%}._20B5K.viRPM{align-items:center;background-color:var(--altum-color-surface);border:1px dashed var(--altum-color-border);border-radius:var(--altum-g-radius);justify-content:center;min-height:var(--altum-image-gallery-viewport-min)}._20B5K ._9qVXv{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-base)}._20B5K .-FEGS{background-color:var(--altum-image-gallery-viewport-bg,var(--altum-color-surface));border:1px solid var(--altum-image-gallery-viewport-border,var(--altum-color-border));border-radius:var(--altum-g-radius);height:var(--altum-image-gallery-viewport-height,min(60vh,480px));min-width:0;overflow:var(--altum-image-gallery-viewport-overflow,hidden);position:relative;width:100%}._20B5K .kuumv{animation:_4V5g9 .32s ease;filter:var(--altum-image-gallery-image-filter,none);height:100%;inset:0;object-fit:contain;position:absolute;-webkit-user-select:none;user-select:none;width:100%;z-index:var(--altum-g-z-raised)}._20B5K .ro8Ub{background-color:var(--altum-image-gallery-nav-bg,var(--altum-color-surface))!important;border:1px solid var(--altum-image-gallery-nav-border,var(--altum-color-border))!important;box-shadow:var(--altum-shadow-surface);color:var(--altum-image-gallery-nav-color,inherit);position:absolute!important;top:50%;translate:0 -50%;z-index:var(--altum-g-z-raised-above)}:is(._20B5K .ro8Ub):disabled{opacity:.35;pointer-events:none}._20B5K .utab2{left:var(--altum-g-space-3)}._20B5K .QpEtC{right:var(--altum-g-space-3)}@media (hover:hover) and (pointer:fine){._20B5K .ro8Ub{opacity:0;pointer-events:none;transition:var(--altum-image-gallery-chrome-out)}:is(._20B5K .ro8Ub):disabled{opacity:0}._20B5K .-FEGS:focus-within .ro8Ub,._20B5K .-FEGS:hover .ro8Ub{opacity:1;pointer-events:auto;transition:var(--altum-image-gallery-chrome-in)}:is(._20B5K .-FEGS:hover .ro8Ub,._20B5K .-FEGS:focus-within .ro8Ub):disabled{opacity:.35;pointer-events:none}}._20B5K .nCrhJ{display:flex;gap:var(--altum-g-space-2);overflow-x:auto;padding:var(--altum-g-space-1) var(--altum-g-space-1) var(--altum-g-space-2);scroll-behavior:smooth;scrollbar-width:thin}._20B5K .jcfWL{background:none;border:2px solid #0000;border-radius:var(--altum-g-radius-sm);cursor:pointer;flex:0 0 auto;height:var(--altum-image-gallery-thumb-height);opacity:.65;overflow:hidden;padding:0;transition:var(--altum-transition-smooth);width:var(--altum-image-gallery-thumb-width)}:is(._20B5K .jcfWL):hover:not(:disabled){opacity:.9}.obGnC:is(._20B5K .jcfWL){border-color:var(--altum-color-brand);box-shadow:0 0 0 1px var(--altum-color-brand);opacity:1}:is(._20B5K .jcfWL) .DlhBH{display:block;height:100%;object-fit:cover;pointer-events:none;width:100%}._20B5K .MdBOx{align-self:center;color:var(--altum-image-gallery-counter-color,var(--altum-color-muted));font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium)}@keyframes _4V5g9{0%{opacity:0}}@media (prefers-reduced-motion:reduce){._20B5K .kuumv{animation:none}._20B5K .ro8Ub{transition:none}}";const e={gallery:"_20B5K",empty:"viRPM",emptyText:"_9qVXv",mainArea:"-FEGS",mainImage:"kuumv",navBtn:"ro8Ub",navPrev:"utab2",navNext:"QpEtC",thumbnails:"nCrhJ",thumbnailBtn:"jcfWL",active:"obGnC",thumbnailImage:"DlhBH",counter:"MdBOx"};a(r);export{e as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t="._20B5K{display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-4);width:100%}._20B5K.viRPM{align-items:center;background-color:var(--altum-color-surface);border:1px dashed var(--altum-color-border);border-radius:var(--altum-g-radius);justify-content:center;min-height:var(--altum-image-gallery-viewport-min)}._20B5K ._9qVXv{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-base)}._20B5K .-FEGS{background-color:var(--altum-image-gallery-viewport-bg,var(--altum-color-surface));border:1px solid var(--altum-image-gallery-viewport-border,var(--altum-color-border));border-radius:var(--altum-g-radius);height:var(--altum-image-gallery-viewport-height,min(60vh,480px));min-width:0;overflow:var(--altum-image-gallery-viewport-overflow,hidden);position:relative;width:100%}._20B5K .kuumv{animation:_4V5g9 .32s ease;filter:var(--altum-image-gallery-image-filter,none);height:100%;inset:0;object-fit:contain;position:absolute;-webkit-user-select:none;user-select:none;width:100%;z-index:var(--altum-g-z-raised)}._20B5K .-FEGS .ro8Ub{--altum-btn-bg:var(--altum-image-gallery-nav-bg,var(--altum-color-surface));--altum-btn-bg-hover:var(--altum-btn-bg);--altum-btn-bg-active:var(--altum-btn-bg);--altum-btn-border:var(--altum-image-gallery-nav-border,var(--altum-color-border));--altum-btn-text:var(--altum-image-gallery-nav-color,inherit);--altum-btn-text-hover:var(--altum-btn-text);--altum-btn-shadow:var(--altum-shadow-surface);--_o:1;opacity:var(--_o);position:absolute;top:50%;translate:0 -50%;z-index:var(--altum-g-z-raised-above)}:is(._20B5K .-FEGS .ro8Ub):disabled{--_o:0.35;pointer-events:none}._20B5K .utab2{left:var(--altum-g-space-3)}._20B5K .QpEtC{right:var(--altum-g-space-3)}@media (hover:hover) and (pointer:fine){._20B5K .-FEGS .ro8Ub,._20B5K .-FEGS .ro8Ub:disabled{--_o:0;pointer-events:none;transition:opacity .5s cubic-bezier(.4,0,.2,1)}._20B5K .-FEGS:is(:hover,:focus-within) .ro8Ub{--_o:1;pointer-events:auto;transition-duration:.32s}:is(._20B5K .-FEGS:is(:hover,:focus-within) .ro8Ub):disabled{--_o:0.35;pointer-events:none}}._20B5K .nCrhJ{display:flex;gap:var(--altum-g-space-2);overflow-x:auto;padding:var(--altum-g-space-1) var(--altum-g-space-1) var(--altum-g-space-2);scroll-behavior:smooth;scrollbar-width:thin}._20B5K .jcfWL{background:none;border:2px solid #0000;border-radius:var(--altum-g-radius-sm);cursor:pointer;flex:0 0 auto;height:var(--altum-image-gallery-thumb-height);opacity:.65;overflow:hidden;padding:0;transition:var(--altum-transition-smooth);width:var(--altum-image-gallery-thumb-width)}:is(._20B5K .jcfWL):hover:not(:disabled){opacity:.9}.obGnC:is(._20B5K .jcfWL){border-color:var(--altum-color-brand);box-shadow:0 0 0 1px var(--altum-color-brand);opacity:1}:is(._20B5K .jcfWL) .DlhBH{display:block;height:100%;object-fit:cover;pointer-events:none;width:100%}._20B5K .MdBOx{align-self:center;color:var(--altum-image-gallery-counter-color,var(--altum-color-muted));font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium)}@media (prefers-reduced-motion:reduce){._20B5K .kuumv{animation:none}._20B5K .-FEGS .ro8Ub,._20B5K .-FEGS:is(:hover,:focus-within) .ro8Ub{transition:none}}@keyframes _4V5g9{0%{opacity:0}}";const e={gallery:"_20B5K",empty:"viRPM",emptyText:"_9qVXv",mainArea:"-FEGS",mainImage:"kuumv",navBtn:"ro8Ub",navPrev:"utab2",navNext:"QpEtC",thumbnails:"nCrhJ",thumbnailBtn:"jcfWL",active:"obGnC",thumbnailImage:"DlhBH",counter:"MdBOx"};a(t);export{e as default};
@@ -1 +1 @@
1
- "use client";import{jsx as o,jsxs as x}from"react/jsx-runtime";import{forwardRef as b}from"react";import{Overlay as u}from"../Overlay/Overlay.js";import{ImageGallery as C}from"../ImageGallery/ImageGallery.js";import{ButtonIcon as I}from"../ButtonIcon/ButtonIcon.js";import{IconCross as y}from"../../icons/icons/IconCross.js";import N from"../../styles/overlayClose.module.css.js";import{cn as L}from"../../utils/cn.js";import{composeEventHandlers as k}from"../../utils/composeEvents.js";import a from"./ImageLightbox.module.css.js";import{useLocale as v}from"../../locales/localeContext.js";const n=b(function({open:m,onOpenChange:r,images:l,index:s,defaultIndex:t=0,onIndexChange:c,className:p,onClick:f,...d},g){const{t:i}=v();return o(u,{ref:g,variant:"modal",purpose:"lightbox",open:m,onOpenChange:r,"aria-label":i("imageLightbox.ariaLabel"),children:(e,h)=>x("div",{...e,...d,ref:h,className:L(a.stage,e.className,p),style:e.style,onClick:k(f,e.onClick),children:[o(I,{className:a.close,appearance:"diskClose","aria-label":i("imageLightbox.close"),icon:o(y,{className:N.icon,size:16,"aria-hidden":!0}),onClick:()=>r(!1)}),o(C,{images:l,index:s,defaultIndex:t,onIndexChange:c,enableKeyboard:!0,showThumbnails:!1,className:a.gallery})]})})});n.displayName="ImageLightbox";export{n as ImageLightbox};
1
+ "use client";import{jsx as e,jsxs as p}from"react/jsx-runtime";import{forwardRef as x}from"react";import{Overlay as d}from"../Overlay/Overlay.js";import{ImageGallery as h}from"../ImageGallery/ImageGallery.js";import{OverlayCloseButton as b}from"../ButtonIcon/OverlayCloseButton.js";import{cn as u}from"../../utils/cn.js";import a from"./ImageLightbox.module.css.js";import{useLocale as I}from"../../locales/localeContext.js";import{ruSlice as L}from"../../locales/slices/imageLightbox.ru.js";const C={imageLightbox:L},i=x(function({open:m,onOpenChange:o,images:l,index:n,defaultIndex:t,onIndexChange:s,className:g,...c},f){const{t:r}=I(C);return e(d,{variant:"modal",purpose:"lightbox",open:m,onOpenChange:o,"aria-label":r("imageLightbox.ariaLabel"),children:p("div",{ref:f,className:u(a.stage,g),...c,children:[e(b,{className:a.close,"aria-label":r("imageLightbox.close"),onClick:()=>o(!1)}),e(h,{images:l,index:n,defaultIndex:t,onIndexChange:s,showThumbnails:!1,className:a.gallery})]})})});i.displayName="ImageLightbox";export{i as ImageLightbox};
@@ -1 +1 @@
1
- "use client";import{injectCss as e}from"../../utils/injectCss.js";var a=".RGkCH{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;overflow:visible;padding:var(--altum-g-space-6);pointer-events:none;position:relative;width:100%}.gfE0G.gfE0G{--altum-image-gallery-counter-color:var(--altum-overlay-text-muted);--altum-image-gallery-viewport-height:min(72vh,640px);--altum-image-gallery-viewport-bg:#0000;--altum-image-gallery-viewport-border:#0000;--altum-image-gallery-viewport-overflow:visible;--altum-image-gallery-image-filter:drop-shadow(var(--altum-overlay-media-shadow));--altum-image-gallery-nav-bg:var(--altum-overlay-control-bg);--altum-image-gallery-nav-border:var(--altum-overlay-control-border);--altum-image-gallery-nav-color:var(--altum-overlay-on-scrim);max-height:calc(100vh - 48px);min-width:0;pointer-events:auto;width:min(100%,960px)}.NqdYT.NqdYT{pointer-events:auto;position:absolute;right:var(--altum-g-space-5);top:var(--altum-g-space-5);z-index:var(--altum-g-z-raised-above)}";const t={stage:"RGkCH",gallery:"gfE0G",close:"NqdYT"};e(a);export{t as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var e=".RGkCH{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;padding:var(--altum-g-space-6);pointer-events:none;width:100%}.RGkCH .gfE0G{--altum-image-gallery-counter-color:var(--altum-overlay-text-muted);--altum-image-gallery-viewport-height:min(72vh,640px);--altum-image-gallery-viewport-bg:#0000;--altum-image-gallery-viewport-border:#0000;--altum-image-gallery-viewport-overflow:visible;--altum-image-gallery-image-filter:drop-shadow(var(--altum-overlay-media-shadow));--altum-image-gallery-nav-bg:var(--altum-overlay-control-bg);--altum-image-gallery-nav-border:var(--altum-overlay-control-border);--altum-image-gallery-nav-color:var(--altum-overlay-on-scrim);max-height:calc(100dvh - var(--altum-g-space-6)*2);min-width:0;pointer-events:auto;width:min(100%,960px)}.RGkCH .NqdYT{pointer-events:auto;position:absolute;right:var(--altum-g-space-5);top:var(--altum-g-space-5);z-index:var(--altum-g-z-raised-above)}";const t={stage:"RGkCH",gallery:"gfE0G",close:"NqdYT"};a(e);export{t as default};
@@ -1 +1 @@
1
- "use client";import{jsx as s}from"react/jsx-runtime";import{forwardRef as n}from"react";import{cn as m}from"../../utils/cn.js";import{mergeStyles as x}from"../../utils/mergeStyles.js";import r from"./Layout.module.css.js";import{ControlRow as p}from"./ControlRow.js";import{Inline as d}from"./Inline.js";import{LayoutItem as N}from"./LayoutItem.js";import{Split as L}from"./Split.js";import{As as i}from"../../base/As/As.js";const k={start:"flex-start",center:"center",end:"flex-end","space-between":"space-between"},f=n(function({as:t="div",className:e,...o},a){return s(i,{ref:a,as:t,className:m(r.root,e),...o})}),l=n(function({as:t="header",className:e,sticky:o=!1,...a},c){return s(i,{ref:c,as:t,className:m(r.header,o&&r.sticky,e),...a})}),y=n(function({as:t="div",className:e,...o},a){return s(i,{ref:a,as:t,className:m(r.content,e),...o})}),u=n(function({as:t="footer",className:e,sticky:o=!1,align:a="start",style:c,...C},w){return s(i,{ref:w,as:t,className:m(r.footer,o&&r.sticky,e),style:x({justifyContent:k[a]},c),...C})});f.displayName="Layout",l.displayName="Layout.Header",y.displayName="Layout.Content",u.displayName="Layout.Footer";const I=Object.assign(f,{Header:l,Content:y,Footer:u,Inline:d,Split:L,ControlRow:p,Item:N});export{p as ControlRow,d as Inline,I as Layout,y as LayoutContent,u as LayoutFooter,l as LayoutHeader,N as LayoutItem,f as LayoutRoot,L as Split};
1
+ "use client";import{jsx as g}from"react/jsx-runtime";import{forwardRef as e}from"react";import{cn as N}from"../../utils/cn.js";import m from"./Layout.module.css.js";import{As as C}from"../../base/As/As.js";function n(t,{as:o="div",className:a,sticky:r,align:d,padding:c,gap:l,style:f,...p},L){return g(C,{ref:L,as:o,className:N(m[t],r&&m.sticky,a),...p,"data-padding":c,"data-gap":l,style:d==null?f:{justifyContent:d,...f}})}const s=e(function(t,o){return n("root",t,o)}),i=e(function({as:t="header",...o},a){return n("header",{as:t,...o},a)}),u=e(function(t,o){return n("content",t,o)}),y=e(function({as:t="footer",align:o="start",...a},r){return n("footer",{as:t,align:o,...a},r)});s.displayName="Layout",i.displayName="Layout.Header",u.displayName="Layout.Content",y.displayName="Layout.Footer";const j=Object.assign(s,{Header:i,Content:u,Footer:y});export{j as Layout,u as LayoutContent,y as LayoutFooter,i as LayoutHeader,s as LayoutRoot};
@@ -1 +1 @@
1
- "use client";import{injectCss as t}from"../../utils/injectCss.js";var e=".tyzJ8{box-sizing:border-box;display:flex;flex:1 1 auto;flex-direction:column;height:100%;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;width:100%}.j6ao5{flex-shrink:0}.Wa4rZ{flex:1 0 auto;min-width:0}._266Qh{align-items:center;display:flex;flex-shrink:0;gap:var(--altum-g-space-3)}.GdLP9{position:sticky;z-index:var(--altum-g-z-raised,1)}.j6ao5.GdLP9{top:0}._266Qh.GdLP9{bottom:0}";const o={root:"tyzJ8",header:"j6ao5",content:"Wa4rZ",footer:"_266Qh",sticky:"GdLP9"};t(e);export{o as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t='.tyzJ8{--altum-layout-pad:0;--altum-layout-gap:0;box-sizing:border-box;display:flex;flex:1 1 auto;flex-direction:column;height:100%;min-height:0;min-width:0;overflow:hidden auto;width:100%}.tyzJ8[data-padding=sm]{--altum-layout-pad:var(--altum-g-space-3)}.tyzJ8[data-padding=md]{--altum-layout-pad:var(--altum-g-space-4)}.tyzJ8[data-padding=lg]{--altum-layout-pad:var(--altum-g-space-6)}.tyzJ8[data-gap=sm]{--altum-layout-gap:var(--altum-g-space-3)}.tyzJ8[data-gap=md]{--altum-layout-gap:var(--altum-g-space-4)}.tyzJ8[data-gap=lg]{--altum-layout-gap:var(--altum-g-space-6)}.tyzJ8[data-gap]{gap:var(--altum-layout-gap)}.tyzJ8[data-padding]>:is(.j6ao5,.Wa4rZ,._266Qh){box-sizing:border-box;padding-inline:var(--altum-layout-pad)}.tyzJ8[data-padding]>:is(.j6ao5,._266Qh:first-child,.Wa4rZ:first-child){padding-block-start:var(--altum-layout-pad)}.tyzJ8[data-padding]>:is(._266Qh,.j6ao5:last-child,.Wa4rZ:last-child){padding-block-end:var(--altum-layout-pad)}._266Qh,.j6ao5{flex-shrink:0}.Wa4rZ{flex:1 0 auto;min-width:0}._266Qh{align-items:center;display:flex;gap:var(--altum-g-space-3)}.GdLP9{position:sticky;z-index:var(--altum-g-z-raised)}.GdLP9.j6ao5{top:0}.GdLP9._266Qh{bottom:0}.GdLP9._266Qh:before,.GdLP9.j6ao5:after{background-color:inherit;content:"";height:var(--altum-layout-gap);left:calc(var(--altum-layout-pad)*-1);pointer-events:none;position:absolute;right:calc(var(--altum-layout-pad)*-1)}.GdLP9.j6ao5:after{margin-top:1px;top:100%}.GdLP9._266Qh:before{bottom:100%;margin-bottom:1px}';const o={root:"tyzJ8",header:"j6ao5",content:"Wa4rZ",footer:"_266Qh",sticky:"GdLP9"};a(t);export{o as default};
@@ -1 +1 @@
1
- "use client";import{forwardRef as g,isValidElement as k,Children as h,createElement as L}from"react";import N from"../../styles/unstyledControl.module.css.js";import w from"../../styles/textLink.module.css.js";import m from"../../styles/type.module.css.js";import e from"./Link.module.css.js";import{cn as x}from"../../utils/cn.js";import{Slot as y}from"../../utils/slot.js";const a=g(function({variant:l="primary",status:f="default",size:o,weight:t,className:s,children:r,target:n,rel:i,...c},p){const d=k(r)&&h.count(r)===1,u=n==="_blank"?i??"noopener noreferrer":i;return L(d?y:"a",{ref:p,className:x(N.control,w.link,e.link,e[l],f==="danger"&&e.danger,o&&m[o],t&&m[t],s),target:n,rel:u,...c},r)});a.displayName="Link";export{a as Link};
1
+ "use client";import{forwardRef as g,isValidElement as k,Children as h,createElement as w}from"react";import L from"../../styles/unstyledControl.module.css.js";import N from"../../styles/textLink.module.css.js";import m from"../../styles/type.module.css.js";import e from"./Link.module.css.js";import{cn as x}from"../../utils/cn.js";import{Slot as y}from"../../utils/slot.js";const a=g(function({variant:l="primary",status:f="default",size:o,weight:t,className:s,children:r,target:n,rel:i,...c},p){const d=k(r)&&h.count(r)===1,u=n==="_blank"?i??"noopener noreferrer":i;return w(d?y:"a",{ref:p,className:x(L.control,N.link,e.link,e[l],f==="danger"&&e.danger,o&&m[o],t&&m[t],s),target:n,rel:u,...c},r)});a.displayName="Link";export{a as Link};
@@ -1 +1 @@
1
- "use client";import{jsx as u,jsxs as se}from"react/jsx-runtime";import{forwardRef as de,useRef as F,useMemo as z,useCallback as v,useEffect as K,useImperativeHandle as ue,createElement as ce}from"react";import{resolveListboxGroups as me,flattenResolvedListboxGroups as he,getListboxOptionDomId as L,moveListboxHighlight as ge,findEnabledListboxIndex as O,getListboxOptionText as pe}from"../../utils/listboxOptions.js";import{handleListHighlightKeyDown as be}from"../../utils/keyboard.js";import{IconCheckmark as fe}from"../../icons/icons/IconCheckmark.js";import{VirtualList as ve}from"../VirtualList/VirtualList.js";import{cn as H}from"../../utils/cn.js";import{composeEventHandlers as xe}from"../../utils/composeEvents.js";import{useControlledStateWithCallback as Ie}from"../../hooks/useControlledState.js";import{useFallbackId as ye}from"../../hooks/useFallbackId.js";import{useLocale as Le}from"../../locales/localeContext.js";import Ne from"../../styles/unstyledControl.module.css.js";import o from"./Listbox.module.css.js";const ke=100,we=40,R=de(function({options:x,groups:I,value:T=[],multiple:$=!1,onSelect:N,id:G,"aria-label":V,"aria-labelledby":j,noOptionsText:A,loading:W=!1,className:q,showCheck:D=!1,navigation:B="roving",highlightedIndex:Y,defaultHighlightedIndex:J=-1,onHighlightChange:Q,preventOptionMouseDown:U=!1,disabled:m=!1,multiline:X=!1,virtualized:Z,onKeyDown:_,...ee},te){const{t:le}=Le(),ie=A??le("listbox.noOptions"),s=ye(G),S=F(null),M=F(null),h=!!(I&&I.length>0),g=z(()=>h?me(x,I):null,[I,h,x]),i=z(()=>g?he(g):x,[x,g]),[l,n]=Ie(Y,J,Q),r=B==="roving",d=v((e,t)=>{e<0||(M.current?.scrollToIndex(e),requestAnimationFrame(()=>{const a=document.getElementById(L(s,e));if(t){a?.focus({preventScroll:!0});return}a?.scrollIntoView({block:"nearest"})}))},[s]);K(()=>{if(i.length===0){l!==-1&&n(-1);return}l>=i.length&&n(i.length-1)},[l,i.length,n]),K(()=>{l<0||d(l,!1)},[i.length,l,d]);const p=v(e=>!!i[e]?.disabled,[i]),b=v(e=>{const t=ge(l,i.length,e,{isDisabled:p});t<0||(n(t),d(t,r))},[i.length,l,p,r,d,n]),k=v(e=>{if(m)return;const t=i[e];if(!(!t||t.disabled))return N?.(t.value),t.value},[m,N,i]),f=v(e=>{const t=O(i.length,e,p);t<0||(n(t),d(t,r))},[i.length,p,r,d,n]);ue(te,()=>({highlightNext:()=>b(1),highlightPrev:()=>b(-1),highlightFirst:()=>f("start"),highlightLast:()=>f("end"),selectHighlighted:()=>k(l),getHighlightedIndex:()=>l,getActiveDescendantId:()=>!r&&l>=0?L(s,l):void 0,focusOption:e=>d(e,!0)}),[f,l,r,s,b,k,d]);const oe=new Set(T),ne=r?l>=0?l:O(i.length,"start",p):-1,w=(e,t)=>{const a=m||!!e.disabled,c=oe.has(e.value),y=t===l,C=pe(e);return ce("button",{...e.buttonProps,key:`${e.value}-${t}`,id:L(s,t),type:"button",role:"option","aria-selected":c,"aria-disabled":a||void 0,"aria-label":e.buttonProps?.["aria-label"]??(typeof e.label!="string"?C:void 0),tabIndex:r&&!a&&t===ne?0:-1,disabled:a,className:H(Ne.control,o.option,c&&o.selected,y&&o.highlighted,D&&o.optionWithCheck,e.buttonProps?.className),onMouseDown:E=>{U&&E.preventDefault()},onMouseEnter:()=>n(t),onMouseLeave:E=>{E.currentTarget.contains(document.activeElement)||n(-1)},onFocus:()=>n(t),onClick:()=>{a||N?.(e.value)}},D?u("span",{className:o.optionCheck,"aria-hidden":"true",children:c?u(fe,{size:14}):null}):null,u("span",{className:H(o.label,X&&o.labelMultiline),children:e.label}))},ae=()=>{if(!g)return null;let e=-1;return g.map(t=>{if(t.options.length===0)return null;const a=`${s}-group-${t.id}`,c=t.label!=null,y=typeof t.label=="string"?t.label:void 0;return se("div",{role:"group",className:o.group,"aria-label":y,"aria-labelledby":c&&!y?a:void 0,children:[c?u("div",{id:a,className:o.groupLabel,children:t.label}):null,t.options.map(C=>(e+=1,w(C,e)))]},t.id)})},re=i.length===0,P=!h&&(Z??i.length>ke);return u("div",{...ee,ref:S,id:s,className:H(o.listbox,h&&o.listboxGrouped,P&&o.listboxVirtualized,q),role:"listbox","aria-label":V,"aria-labelledby":j,"aria-multiselectable":$||void 0,"aria-busy":W||void 0,"aria-disabled":m||void 0,"aria-activedescendant":!r&&l>=0?L(s,l):void 0,tabIndex:-1,onKeyDown:xe(_,e=>{m||i.length===0||be(e,{onNext:()=>b(1),onPrev:()=>b(-1),onFirst:()=>f("start"),onLast:()=>f("end"),onSelect:l>=0?()=>k(l):void 0,includeSpace:!0})}),children:re?u("div",{className:o.emptyState,"aria-live":"polite",children:ie}):P?u(ve,{ref:M,scrollElement:S,items:i,estimateSize:we,gap:4,getItemKey:e=>e.value,className:o.virtualList,renderItem:({item:e,index:t})=>w(e,t)}):h?ae():i.map((e,t)=>w(e,t))})});R.displayName="Listbox";export{R as Listbox};
1
+ "use client";import{jsx as d,jsxs as ie}from"react/jsx-runtime";import{forwardRef as le,useRef as I,useEffect as ne,useImperativeHandle as oe,createElement as ae}from"react";import{resolveListboxGroups as se,flattenResolvedListboxGroups as ue,moveListboxHighlight as ce,findEnabledListboxIndex as D,getListboxOptionDomId as v,getListboxOptionText as de}from"../../utils/listboxOptions.js";import{handleListHighlightKeyDown as me}from"../../utils/keyboard.js";import{IconCheckmark as pe}from"../../icons/icons/IconCheckmark.js";import{VirtualList as ge}from"../VirtualList/VirtualList.js";import{cn as L}from"../../utils/cn.js";import{composeEventHandlers as ve}from"../../utils/composeEvents.js";import{useControlledStateWithCallback as be}from"../../hooks/useControlledState.js";import{useFallbackId as fe}from"../../hooks/useFallbackId.js";import{useLocale as he}from"../../locales/localeContext.js";import xe from"../../styles/unstyledControl.module.css.js";import l from"./Listbox.module.css.js";import{ruSlice as Ie}from"../../locales/slices/listbox.ru.js";const Le={listbox:Ie},ye=100,Fe=40,E=le(function({options:y,groups:F,value:C=[],multiple:H=!1,onSelect:N,id:M,"aria-label":O,"aria-labelledby":P,noOptionsText:T,loading:z=!1,className:K,showCheck:$=!1,navigation:j="roving",highlightedIndex:G,defaultHighlightedIndex:R=-1,onHighlightChange:V,preventOptionMouseDown:A=!1,disabled:g=!1,multiline:W=!1,virtualized:q,onKeyDown:B,...J},Q){const{t:Y}=he(Le),Z=T??Y("listbox.noOptions"),m=fe(M),w=I(null),S=I(null),t=I({pendingFocus:!1,move:e=>{},edge:e=>{},select:()=>{},reveal:(e,r)=>{},index:-1,activeId:()=>{}}),c=F?.length?se(y,F):null,p=c?ue(c):y,n=p.length,[i,s]=be(G,R,V),u=j==="roving",b=e=>!!p[e]?.disabled;t.current.reveal=(e,r)=>{if(e<0)return;S.current?.scrollToIndex(e);const a=v(m,e);requestAnimationFrame(()=>{const o=document.getElementById(a);o&&(r&&o.focus({preventScroll:!0}),o.scrollIntoView({block:"nearest"}))})},t.current.move=e=>{const r=ce(i,n,e,{isDisabled:b});if(!(r<0)){if(r===i){t.current.reveal(r,u);return}t.current.pendingFocus=u,s(r)}},t.current.edge=e=>{const r=D(n,e,b);if(!(r<0)){if(r===i){t.current.reveal(r,u);return}t.current.pendingFocus=u,s(r)}},t.current.select=()=>{if(g)return;const e=p[i];if(!(!e||e.disabled))return N?.(e.value),e.value},t.current.index=i,t.current.activeId=()=>!u&&i>=0?v(m,i):void 0,ne(()=>{if(n===0){i!==-1?s(-1):t.current.pendingFocus=!1;return}if(i>=n){s(n-1);return}if(i<0){t.current.pendingFocus=!1;return}const e=t.current.pendingFocus;t.current.pendingFocus=!1,t.current.reveal(i,e)},[t,n,i,s]),oe(Q,()=>({highlightNext:()=>t.current.move(1),highlightPrev:()=>t.current.move(-1),highlightFirst:()=>t.current.edge("start"),highlightLast:()=>t.current.edge("end"),selectHighlighted:()=>t.current.select(),getHighlightedIndex:()=>t.current.index,getActiveDescendantId:()=>t.current.activeId(),focusOption:e=>t.current.reveal(e,!0)}),[t]);const U=new Set(C),X=u?i>=0?i:D(n,"start",b):-1,f=(e,r)=>{const a=g||!!e.disabled,o=U.has(e.value),h=r===i,re=de(e);return ae("button",{...e.buttonProps,key:`${e.value}-${r}`,id:v(m,r),type:"button",role:"option","aria-selected":o,"aria-disabled":a||void 0,"aria-label":e.buttonProps?.["aria-label"]??(typeof e.label!="string"?re:void 0),tabIndex:u&&!a&&r===X?0:-1,disabled:a,className:L(xe.control,l.option,o&&l.selected,h&&l.highlighted,e.buttonProps?.className),onMouseDown:x=>{A&&x.preventDefault()},onMouseEnter:()=>s(r),onMouseLeave:x=>{x.currentTarget.contains(document.activeElement)||s(-1)},onFocus:()=>s(r),onClick:()=>{a||N?.(e.value)}},$?d("span",{className:l.optionCheck,"aria-hidden":"true",children:o?d(pe,{size:14}):null}):null,d("span",{className:L(l.label,W&&l.labelMultiline),children:e.label}))},_=()=>{if(!c)return null;let e=-1;return c.map(r=>{const a=`${m}-group-${r.id}`,o=r.label!=null;return ie("div",{role:"group",className:l.group,"aria-labelledby":o?a:void 0,children:[o?d("div",{id:a,className:l.groupLabel,children:r.label}):null,r.options.map(h=>(e+=1,f(h,e)))]},r.id)})},ee=n===0,k=!c&&(q??n>ye),te=!u&&i>=0?v(m,i):void 0;return d("div",{...J,ref:w,id:m,className:L(l.listbox,c&&l.listboxGrouped,k&&l.listboxVirtualized,K),role:"listbox","aria-label":O,"aria-labelledby":P,"aria-multiselectable":H||void 0,"aria-busy":z||void 0,"aria-disabled":g||void 0,"aria-activedescendant":te,tabIndex:-1,onKeyDown:ve(B,e=>{g||n===0||me(e,{onNext:()=>t.current.move(1),onPrev:()=>t.current.move(-1),onFirst:()=>t.current.edge("start"),onLast:()=>t.current.edge("end"),onSelect:i>=0?()=>t.current.select():void 0,includeSpace:!0})}),children:ee?d("div",{className:l.emptyState,"aria-live":"polite",children:Z}):k?d(ge,{ref:S,scrollElement:w,items:p,estimateSize:Fe,gap:4,getItemKey:e=>e.value,renderItem:({item:e,index:r})=>f(e,r)}):c?_():p.map((e,r)=>f(e,r))})});E.displayName="Listbox";export{E as Listbox};
@@ -1 +1 @@
1
- "use client";import{injectCss as l}from"../../utils/injectCss.js";var o=".lSHQo{display:flex;flex-direction:column;gap:var(--altum-g-space-1);margin:0;padding:var(--altum-g-space-1)}.lSHQo.wgWhM{gap:var(--altum-g-space-2)}.lSHQo._4FYkP{max-height:min(320px,50vh);overflow:auto}.lSHQo .aL5VO{display:flex;flex-direction:column;gap:var(--altum-g-space-1)}.lSHQo .Knz6J{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium);line-height:var(--altum-g-line-height-2xs);padding:var(--altum-g-space-1) var(--altum-g-space-2)}.lSHQo ._2QZ9E{color:var(--altum-field-label);font-size:var(--altum-g-font-size-base);padding:var(--altum-g-space-3) var(--altum-g-space-4);text-align:center}.lSHQo .COEgV{gap:var(--altum-g-space-2)}.lSHQo .CnY3o{align-items:center;display:inline-flex;flex-shrink:0;font-size:var(--altum-g-font-size-2xs);justify-content:center;line-height:1;width:1em}.lSHQo .d7ICC{width:100%}.sCJLx{align-items:center;border-radius:var(--altum-g-radius-sm);color:var(--altum-color-control-text-color);display:flex;min-width:100%;padding:var(--altum-option-padding-y) var(--altum-option-padding-x);text-align:left;transition:background-color .2s cubic-bezier(.16,1,.3,1),color .2s cubic-bezier(.16,1,.3,1);width:max-content}.sCJLx:disabled{opacity:var(--altum-opacity-disabled)}.sCJLx:focus-visible:not(:disabled),.sCJLx:hover:not(:disabled){background-color:var(--altum-color-option-hover)}.sCJLx:focus-visible:not(:disabled){outline-offset:calc(var(--altum-focus-ring-offset)*-1)}.ctvla{background-color:var(--altum-color-option-hover)}.zx1V4{background-color:var(--altum-color-selection-fill);color:var(--altum-color-selection-fill-fg)}.zx1V4.ctvla:not(:disabled),.zx1V4:focus-visible:not(:disabled),.zx1V4:hover:not(:disabled){background-color:var(--altum-color-selection-fill-emphasis);color:var(--altum-color-selection-fill-fg)}.MNwcg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.LUJ-R{align-items:center;display:flex;flex:1 1 auto;gap:var(--altum-g-space-2);overflow:visible;text-overflow:unset;white-space:normal}";const a={listbox:"lSHQo",listboxGrouped:"wgWhM",listboxVirtualized:"_4FYkP",group:"aL5VO",groupLabel:"Knz6J",emptyState:"_2QZ9E",optionWithCheck:"COEgV",optionCheck:"CnY3o",virtualList:"d7ICC",option:"sCJLx",highlighted:"ctvla",selected:"zx1V4",label:"MNwcg",labelMultiline:"LUJ-R"};l(o);export{a as default};
1
+ "use client";import{injectCss as l}from"../../utils/injectCss.js";var a=".lSHQo{display:flex;flex-direction:column;gap:var(--altum-g-space-1);margin:0;padding:var(--altum-g-space-1)}.lSHQo.wgWhM{gap:var(--altum-g-space-2)}.lSHQo._4FYkP{max-height:min(320px,50vh);overflow:auto}.lSHQo .aL5VO{display:flex;flex-direction:column;gap:var(--altum-g-space-1)}.lSHQo .Knz6J{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium);line-height:var(--altum-g-line-height-2xs);padding:var(--altum-g-space-1) var(--altum-g-space-2)}.lSHQo ._2QZ9E{color:var(--altum-field-label);font-size:var(--altum-g-font-size-base);padding:var(--altum-g-space-3) var(--altum-g-space-4);text-align:center}.lSHQo .CnY3o{align-items:center;display:inline-flex;flex-shrink:0;font-size:var(--altum-g-font-size-2xs);justify-content:center;line-height:1;width:1em}.lSHQo .sCJLx{align-items:center;border-radius:var(--altum-g-radius-sm);color:var(--altum-color-control-text-color);display:flex;gap:var(--altum-g-space-2);min-width:100%;padding:var(--altum-option-padding-y) var(--altum-option-padding-x);text-align:left;transition:var(--altum-transition-smooth);width:max-content}:is(.lSHQo .sCJLx):disabled{opacity:var(--altum-opacity-disabled)}.ctvla:is(.lSHQo .sCJLx):not(:disabled),:is(.lSHQo .sCJLx):focus-visible:not(:disabled),:is(.lSHQo .sCJLx):hover:not(:disabled){background-color:var(--altum-color-option-hover)}.zx1V4:is(.lSHQo .sCJLx){background-color:var(--altum-color-selection-fill);color:var(--altum-color-selection-fill-fg)}.zx1V4.ctvla:is(.lSHQo .sCJLx):not(:disabled),.zx1V4:is(.lSHQo .sCJLx):focus-visible:not(:disabled),.zx1V4:is(.lSHQo .sCJLx):hover:not(:disabled){background-color:var(--altum-color-selection-fill-emphasis);color:var(--altum-color-selection-fill-fg)}.lSHQo .MNwcg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lSHQo .LUJ-R{align-items:center;display:flex;flex:1 1 auto;gap:var(--altum-g-space-2);overflow:visible;text-overflow:unset;white-space:normal}";const o={listbox:"lSHQo",listboxGrouped:"wgWhM",listboxVirtualized:"_4FYkP",group:"aL5VO",groupLabel:"Knz6J",emptyState:"_2QZ9E",optionCheck:"CnY3o",option:"sCJLx",highlighted:"ctvla",selected:"zx1V4",label:"MNwcg",labelMultiline:"LUJ-R"};l(a);export{o as default};
@@ -0,0 +1 @@
1
+ "use client";import{jsx as a}from"react/jsx-runtime";import{forwardRef as s}from"react";import{VisuallyHidden as l}from"../VisuallyHidden/VisuallyHidden.js";const r=s(function({message:e,politeness:i="polite",...o},t){return e?a(l,{ref:t,as:"div",...o,role:i==="assertive"?"alert":"status","aria-live":i,"aria-atomic":!0,children:e}):null});r.displayName="LiveRegion";export{r as LiveRegion};