altum 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +47 -1
  3. package/dist/base/DialogBase/DialogBase.js +1 -1
  4. package/dist/base/Flex/Flex.js +1 -1
  5. package/dist/base/ToggleControlBase/ToggleControlBase.js +1 -1
  6. package/dist/base/ToggleControlBase/ToggleControlBase.module.css.js +1 -1
  7. package/dist/components/Accordion/Accordion.module.css.js +1 -1
  8. package/dist/components/ActionList/ActionList.js +1 -1
  9. package/dist/components/Alert/Alert.js +1 -1
  10. package/dist/components/Alert/Alert.module.css.js +1 -1
  11. package/dist/components/Attachment/Attachment.module.css.js +1 -1
  12. package/dist/components/Avatar/Avatar.module.css.js +1 -1
  13. package/dist/components/Bubble/Bubble.module.css.js +1 -1
  14. package/dist/components/Button/Button.js +1 -1
  15. package/dist/components/Button/Button.module.css.js +1 -0
  16. package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
  17. package/dist/components/ButtonGroup/ButtonGroup.module.css.js +1 -1
  18. package/dist/components/ButtonIcon/ButtonIcon.js +1 -1
  19. package/dist/components/ButtonIcon/ButtonIcon.module.css.js +1 -0
  20. package/dist/components/Calendar/Calendar.module.css.js +1 -1
  21. package/dist/components/Calendar/Calendar.slots.js +1 -1
  22. package/dist/components/Calendar/Calendar.utils.js +1 -1
  23. package/dist/components/Calendar/Calendar.views.js +1 -1
  24. package/dist/components/CalendarBoard/CalendarBoard.MonthView.js +1 -1
  25. package/dist/components/CalendarBoard/CalendarBoard.Schedule.js +1 -1
  26. package/dist/components/CalendarBoard/CalendarBoard.Schedule.module.css.js +1 -1
  27. package/dist/components/CalendarBoard/CalendarBoard.Schedule.utils.js +1 -1
  28. package/dist/components/CalendarBoard/CalendarBoard.YearView.js +1 -1
  29. package/dist/components/CalendarBoard/CalendarBoard.chrome.js +1 -1
  30. package/dist/components/CalendarBoard/CalendarBoard.context.js +1 -1
  31. package/dist/components/CalendarBoard/CalendarBoard.module.css.js +1 -1
  32. package/dist/components/CalendarBoard/CalendarBoard.utils.js +1 -1
  33. package/dist/components/CalendarBoard/calendar.schedule.js +1 -1
  34. package/dist/components/Chip/Chip.js +1 -1
  35. package/dist/components/Chip/Chip.module.css.js +1 -1
  36. package/dist/components/ColorSwatchGroup/ColorSwatchGroup.module.css.js +1 -1
  37. package/dist/components/ConfirmDialog/ConfirmDialog.js +1 -1
  38. package/dist/components/CustomSelect/CustomSelect.Filter.js +1 -1
  39. package/dist/components/CustomSelect/CustomSelect.Shell.js +1 -1
  40. package/dist/components/CustomSelect/CustomSelect.Shell.module.css.js +1 -1
  41. package/dist/components/DateField/DateField.js +1 -0
  42. package/dist/components/DateRangeField/DateRangeField.js +1 -0
  43. package/dist/components/DateRangeField/DateRangeField.module.css.js +1 -0
  44. package/dist/components/DayStripCalendar/DayStripCalendar.js +1 -1
  45. package/dist/components/Dropdown/Dropdown.js +1 -1
  46. package/dist/components/FileList/FileList.js +1 -1
  47. package/dist/components/Grid/Grid.js +1 -1
  48. package/dist/components/Grid/Grid.utils.js +1 -1
  49. package/dist/components/ImageCrop/ImageCrop.js +1 -1
  50. package/dist/components/ImageCrop/ImageCrop.module.css.js +1 -1
  51. package/dist/components/Item/Item.js +1 -1
  52. package/dist/components/Item/Item.module.css.js +1 -1
  53. package/dist/components/LocaleProvider/LocaleProvider.js +1 -1
  54. package/dist/components/MaskedField/MaskedField.js +1 -1
  55. package/dist/components/Notification/Notification.js +1 -1
  56. package/dist/components/NumberField/NumberField.js +1 -1
  57. package/dist/components/Overflow/Overflow.js +1 -1
  58. package/dist/components/Overflow/Overflow.module.css.js +1 -1
  59. package/dist/components/Overflow/OverflowActionsMode.js +1 -1
  60. package/dist/components/Overflow/OverflowMeasure.js +1 -1
  61. package/dist/components/Overlay/Overlay.module.css.js +1 -1
  62. package/dist/components/Pagination/Pagination.js +1 -1
  63. package/dist/components/PasswordField/PasswordField.js +1 -1
  64. package/dist/components/PasswordField/PasswordField.module.css.js +1 -1
  65. package/dist/components/PinInput/PinInput.js +1 -1
  66. package/dist/components/PinInput/PinInput.module.css.js +1 -1
  67. package/dist/components/RelativeTime/RelativeTime.js +1 -1
  68. package/dist/components/SearchField/SearchField.js +1 -1
  69. package/dist/components/Select/Select.js +1 -1
  70. package/dist/components/Steps/Steps.module.css.js +1 -1
  71. package/dist/components/SuggestField/SuggestField.js +1 -1
  72. package/dist/components/TextField/TextField.js +1 -1
  73. package/dist/components/TextField/TextField.module.css.js +1 -0
  74. package/dist/components/TextareaField/TextareaField.js +1 -1
  75. package/dist/components/TextareaField/TextareaField.module.css.js +1 -0
  76. package/dist/components/ThemeProvider/ThemeProvider.js +1 -1
  77. package/dist/components/ThemeProvider/ThemeProvider.module.css.js +1 -1
  78. package/dist/components/TimeField/TimeField.js +1 -0
  79. package/dist/components/TimeField/TimeField.module.css.js +1 -0
  80. package/dist/components/WheelTimePicker/WheelTimePicker.js +1 -0
  81. package/dist/components/WheelTimePicker/WheelTimePicker.module.css.js +1 -0
  82. package/dist/entries/hooks.js +1 -1
  83. package/dist/entries/locales.js +1 -0
  84. package/dist/entries/utils.js +1 -1
  85. package/dist/hooks/useForm.js +1 -1
  86. package/dist/hooks/useFormProvider.js +1 -0
  87. package/dist/index.js +1 -1
  88. package/dist/locales/en.js +1 -1
  89. package/dist/locales/localeContext.js +1 -1
  90. package/dist/locales/ru.js +1 -1
  91. package/dist/locales/translate.js +1 -1
  92. package/dist/shared/form/Form.utils.js +1 -0
  93. package/dist/shared/form/formRules.js +1 -0
  94. package/dist/shared/form/formValues.js +1 -0
  95. package/dist/styles/toggleBox.module.css.js +1 -1
  96. package/dist/utils/autoHeight.js +1 -1
  97. package/dist/utils/date.js +1 -0
  98. package/dist/utils/duration.js +1 -0
  99. package/dist/utils/eventTarget.js +1 -0
  100. package/dist/utils/injectCss.js +1 -1
  101. package/dist/utils/locale.js +1 -0
  102. package/dist/utils/plural.js +1 -0
  103. package/dist/utils/timezone.js +1 -0
  104. package/docs/COMPONENTS.md +11 -10
  105. package/docs/LAYOUT.md +3 -3
  106. package/docs/THEMING.md +4 -4
  107. package/package.json +6 -1
  108. package/types/entries/hooks.d.ts +61 -13
  109. package/types/entries/locales.d.ts +280 -0
  110. package/types/entries/utils.d.ts +70 -8
  111. package/types/index.d.ts +89 -60
  112. package/dist/base/ButtonBase/ButtonBase.js +0 -1
  113. package/dist/base/ButtonBase/ButtonBase.module.css.js +0 -1
  114. package/dist/base/FieldBase/FieldBase.js +0 -1
  115. package/dist/base/FieldBase/FieldBase.module.css.js +0 -1
  116. package/dist/base/TextControl/TextControl.js +0 -1
  117. package/dist/components/DatePicker/DatePicker.js +0 -1
  118. package/dist/components/DateRangePicker/DateRangePicker.js +0 -1
  119. package/dist/components/DateRangePicker/DateRangePicker.module.css.js +0 -1
  120. package/dist/components/TimePicker/TimePicker.js +0 -1
  121. package/dist/components/TimePicker/TimePicker.module.css.js +0 -1
  122. package/dist/hooks/useFieldControl.js +0 -1
  123. package/dist/hooks/useOverflowEdges.js +0 -1
  124. package/dist/hooks/useScrollFocusedChildIntoView.js +0 -1
  125. package/dist/styles/ControlTrack.module.css.js +0 -1
  126. package/dist/utils/controlTrack.js +0 -1
  127. package/dist/utils/fieldPlaceholder.js +0 -1
  128. /package/dist/components/{DatePicker/DatePicker.utils.js → DateField/DateField.utils.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -8,6 +8,16 @@
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [0.0.5] — 2026-09-25
12
+
13
+ **`useForm`**: проверка через `validate` (`fieldRules`, `compose`, `required`, `pattern`, `checkedValue`), плюс `setValue`, `reset`, `handleSubmit`, `isDirty` и **`FormProvider`**. Публичные **`altum/locales`** со склонением и утилиты дат, поясов, длительности и plural.
14
+
15
+ **`TextField`** вбрал `FieldBase`: `description` вместо `helperText` / `footer`, без `labelPlacement`. **`Button`**: `prefix` / `postfix` и `danger` / `danger_tinted` вместо `status`; **`ButtonIcon`** на **`Button`**. Стили в `@layer altum` — один `className` перекрывает библиотеку. **`ThemeProvider`** при `applyTo="document"` не вешает тему на обёртку.
16
+
17
+ ## [0.0.4] — 2026-09-12
18
+
19
+ `TimePicker` / `DatePicker` / `DateRangePicker` → **`TimeField`** / **`DateField`** / **`DateRangeField`** (ключи словаря `timePicker` → `timeField`, `dateRangePicker` → `dateRangeField`). Время — барабаны **`WheelTimePicker`**. **`Item`** на **`Flex`**, чище **`Attachment`**, `Flex.gap` — любой `SpacingValue`, floating-label выше, маркеры **`ImageCrop`** на углах кадра. Поля в Storybook — в **`FormField`**.
20
+
11
21
  ## [0.0.3] — 2026-09-11
12
22
 
13
23
  Слоты свёрнуты в пропсы, общие базы полей / диалогов / графиков, предсказуемее оверлеи и hit-target полей.
package/README.md CHANGED
@@ -31,13 +31,59 @@ export function App() {
31
31
  |--------|------------|
32
32
  | `altum` | Компоненты, `ThemeProvider`, `LocaleProvider`, словари `ru` / `en` |
33
33
  | `altum/hooks` | Универсальные хуки (`useMediaQuery`, `useOutsideClick`, …) |
34
- | `altum/utils` | Хелперы (`cn`, `composeRefs`, listbox/якорь, стек оверлеев) |
34
+ | `altum/utils` | Хелперы (`cn`, `composeRefs`, `set`, таймзоны, listbox/якорь, стек оверлеев) |
35
35
  | `altum/icons` | Каталог иконок (не реэкспортируется из главного барреля) |
36
+ | `altum/locales` | Словари и `translate` для строк приложения |
36
37
 
37
38
  Стили подключаются вместе с JS-модулем. Оберните приложение в `ThemeProvider`. Для порталов (`Modal`, `Sheet`, выпадающие панели) используйте `applyTo="document"`. Императивным тостам нужен смонтированный `NotificationProvider`.
38
39
 
39
40
  Видимость оверлея: `open` + `onOpenChange` + `onClose`. Держите компонент смонтированным (`open={false}` всё равно проигрывает выход; `{open && <Modal>}` — нет).
40
41
 
42
+ ## Локализация
43
+
44
+ `LocaleProvider` задаёт язык встроенных строк компонентов. Свои тексты переводите через `altum/locales`: словарь по кодам `ru` / `en` и `translate`. Текущая локаль — `useLocale()`.
45
+
46
+ Строка поддерживает подстановку `{name}`. Если значение — объект `{one, few, many}`, форма выбирается по `params.count` (для английского используются `one` и `many`).
47
+
48
+ ```tsx
49
+ import {LocaleProvider} from 'altum';
50
+ import {translate, useLocale, type LocaleCode, type MessageTree} from 'altum/locales';
51
+
52
+ const appMessages = {
53
+ ru: {
54
+ greeting: 'Привет, {name}',
55
+ files: {
56
+ one: '{count} файл',
57
+ few: '{count} файла',
58
+ many: '{count} файлов',
59
+ },
60
+ },
61
+ en: {
62
+ greeting: 'Hello, {name}',
63
+ files: {
64
+ one: '{count} file',
65
+ few: '{count} files',
66
+ many: '{count} files',
67
+ },
68
+ },
69
+ } satisfies Record<LocaleCode, MessageTree>;
70
+
71
+ function FilesLabel() {
72
+ const {locale} = useLocale();
73
+ return <span>{translate(appMessages[locale], 'files', {count: 2}, locale)}</span>;
74
+ }
75
+
76
+ export function App() {
77
+ return (
78
+ <LocaleProvider locale="ru">
79
+ <FilesLabel />
80
+ </LocaleProvider>
81
+ );
82
+ }
83
+ ```
84
+
85
+ Словари библиотеки — `ru`, `en` и `builtInMessages`. Точечная замена встроенных фраз — проп `messages` у `LocaleProvider`.
86
+
41
87
  ## Документация
42
88
 
43
89
  - [Компоненты](docs/COMPONENTS.md)
@@ -1 +1 @@
1
- "use client";import{jsx as l,jsxs as E}from"react/jsx-runtime";import{forwardRef as d,useContext as I,createContext as T}from"react";import{Box as b}from"../../components/Box/Box.js";import{IconCross as F}from"../../icons/icons/IconCross.js";import{useLocale as S}from"../../locales/localeContext.js";import{cn as c}from"../../utils/cn.js";import{composeEventHandlers as p}from"../../utils/composeEvents.js";import{markDialogTitle as k}from"../../utils/visitElementTree.js";import N from"../../styles/overlayClose.module.css.js";import t from"./DialogBase.module.css.js";import{ButtonBase as j}from"../ButtonBase/ButtonBase.js";const B=T(null);function m(o){const e=I(B);if(!e)throw new Error(`${o} \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 DialogBase`);return e}function g({onClose:o,titleId:e,onDragHandlePointerDown:a,children:n}){return l(B.Provider,{value:{onClose:o,titleId:e,onDragHandlePointerDown:a},children:n})}g.displayName="DialogBase.Provider";const y=d(function({onClose:o,titleId:e,onDragHandlePointerDown:a,className:n,children:r,variant:i="floating",...s},u){return l(b,{ref:u,variant:i,className:c(t.shell,n),...s,children:l(g,{onClose:o,titleId:e,onDragHandlePointerDown:a,children:r})})});y.displayName="DialogBase.Surface";const C=d(function({children:o,className:e,contentClassName:a,style:n,showClose:r=!0,onPointerDown:i,...s},u){const{onDragHandlePointerDown:f}=m("DialogBase.Header");return E("header",{ref:u,className:c(t.header,e),style:n,...s,onPointerDown:p(i,f),children:[l("div",{className:c(t.headerContent,a),children:o}),r?l(h,{}):null]})}),D=d(function({children:o,className:e,style:a,as:n="h3",...r},i){const{titleId:s}=m("DialogBase.Title");return l(n,{ref:i,className:c(t.title,e),style:a,...r,id:s,children:o})}),h=d(function({className:o,style:e,onClick:a,"aria-label":n,"data-drag-ignore":r,...i},s){const{t:u}=S(),f=n??u("common.close"),{onClose:H,onDragHandlePointerDown:P}=m("DialogBase.Close"),x=P||r!=null?{"data-drag-ignore":""}:void 0;return l(j,{ref:s,variant:"ghost",className:c(N.close,o),style:e,...x,...i,"aria-label":f,onClick:p(a,()=>H()),children:l(F,{className:N.icon,size:16,"aria-hidden":!0})})}),w=d(function({children:o,className:e,style:a,...n},r){return l("div",{ref:r,className:c(t.body,e),style:a,...n,children:o})}),q={start:t.alignStart,center:t.alignCenter,end:t.alignEnd,"space-between":t.alignSpaceBetween},v=d(function({children:o,className:e,style:a,align:n="end",...r},i){return l("footer",{ref:i,className:c(t.footer,q[n],e),style:a,...r,children:o})});C.displayName="DialogBase.Header",D.displayName="DialogBase.Title",k(D),h.displayName="DialogBase.Close",w.displayName="DialogBase.Body",v.displayName="DialogBase.Footer";const z={Provider:g,Surface:y,Header:C,Title:D,Close:h,Body:w,Footer:v};export{z as DialogBase,m as useDialogBaseContext};
1
+ "use client";import{jsx as l,jsxs as x}from"react/jsx-runtime";import{forwardRef as c,useContext as I,createContext as E}from"react";import{Box as b}from"../../components/Box/Box.js";import{ButtonIcon as T}from"../../components/ButtonIcon/ButtonIcon.js";import{IconCross as k}from"../../icons/icons/IconCross.js";import{useLocale as F}from"../../locales/localeContext.js";import{cn as d}from"../../utils/cn.js";import{composeEventHandlers as h}from"../../utils/composeEvents.js";import{markDialogTitle as S}from"../../utils/visitElementTree.js";import t from"./DialogBase.module.css.js";const C=E(null);function m(o){const e=I(C);if(!e)throw new Error(`${o} \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 DialogBase`);return e}function g({onClose:o,titleId:e,onDragHandlePointerDown:a,children:n}){return l(C.Provider,{value:{onClose:o,titleId:e,onDragHandlePointerDown:a},children:n})}g.displayName="DialogBase.Provider";const N=c(function({onClose:o,titleId:e,onDragHandlePointerDown:a,className:n,children:r,variant:i="floating",...s},u){return l(b,{ref:u,variant:i,className:d(t.shell,n),...s,children:l(g,{onClose:o,titleId:e,onDragHandlePointerDown:a,children:r})})});N.displayName="DialogBase.Surface";const y=c(function({children:o,className:e,contentClassName:a,style:n,showClose:r=!0,onPointerDown:i,...s},u){const{onDragHandlePointerDown:f}=m("DialogBase.Header");return x("header",{ref:u,className:d(t.header,e),style:n,...s,onPointerDown:h(i,f),children:[l("div",{className:d(t.headerContent,a),children:o}),r?l(p,{}):null]})}),D=c(function({children:o,className:e,style:a,as:n="h3",...r},i){const{titleId:s}=m("DialogBase.Title");return l(n,{ref:i,className:d(t.title,e),style:a,...r,id:s,children:o})}),p=c(function({className:o,style:e,onClick:a,"aria-label":n,"data-drag-ignore":r,...i},s){const{t:u}=F(),f=n??u("common.close"),{onClose:P,onDragHandlePointerDown:v}=m("DialogBase.Close"),H=v||r!=null?{"data-drag-ignore":""}:void 0;return l(T,{ref:s,appearance:"diskClose",className:o,style:e,...H,...i,"aria-label":f,onClick:h(a,()=>P()),icon:l(k,{size:16,"aria-hidden":!0})})}),B=c(function({children:o,className:e,style:a,...n},r){return l("div",{ref:r,className:d(t.body,e),style:a,...n,children:o})}),j={start:t.alignStart,center:t.alignCenter,end:t.alignEnd,"space-between":t.alignSpaceBetween},w=c(function({children:o,className:e,style:a,align:n="end",...r},i){return l("footer",{ref:i,className:d(t.footer,j[n],e),style:a,...r,children:o})});y.displayName="DialogBase.Header",D.displayName="DialogBase.Title",S(D),p.displayName="DialogBase.Close",B.displayName="DialogBase.Body",w.displayName="DialogBase.Footer";const z={Provider:g,Surface:N,Header:y,Title:D,Close:p,Body:B,Footer:w};export{z as DialogBase,m as useDialogBaseContext};
@@ -1 +1 @@
1
- "use client";import{jsx as p}from"react/jsx-runtime";import{forwardRef as d}from"react";import{cn as u}from"../../utils/cn.js";import{mergeStyles as x}from"../../utils/mergeStyles.js";import{resolveSpacingCss as y}from"../../utils/spacing.js";import e from"./Flex.module.css.js";import{As as g}from"../As/As.js";const w={start:"flex-start",center:"center",end:"flex-end",baseline:"baseline",stretch:"stretch"},b={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly"},t=d(function({as:r,direction:s,gap:n="md",align:a="stretch",justify:o="start",wrap:l,className:m,style:c,...f},i){return p(g,{ref:i,as:r,className:u(e.flex,s==="column"?e.col:e.row,l===!1&&e.nowrap,m),style:x({"--altum-flex-gap":y(n),alignItems:w[a],justifyContent:b[o]},c),...f})});t.displayName="Flex";export{t as Flex};
1
+ "use client";import{jsx as p}from"react/jsx-runtime";import{forwardRef as d}from"react";import{cn as x}from"../../utils/cn.js";import{mergeStyles as u}from"../../utils/mergeStyles.js";import{resolveSpacingCss as y}from"../../utils/spacing.js";import e from"./Flex.module.css.js";import{As as g}from"../As/As.js";const w={start:"flex-start",center:"center",end:"flex-end",baseline:"baseline",stretch:"stretch"},b={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly"},t=d(function({as:r,direction:s,gap:n="md",align:a="stretch",justify:o="start",wrap:l,className:m,style:c,...f},i){return p(g,{ref:i,as:r,className:x(e.flex,s==="column"?e.col:e.row,l===!1&&e.nowrap,m),style:u({"--altum-flex-gap":y(n),alignItems:w[a],justifyContent:b[o]},c),...f})});t.displayName="Flex";export{t as Flex};
@@ -1 +1 @@
1
- "use client";import{jsxs as B,jsx as l}from"react/jsx-runtime";import{forwardRef as w,useId as F}from"react";import{cn as s}from"../../utils/cn.js";import{preventWhen as t}from"../../utils/preventWhen.js";import n from"./ToggleControlBase.module.css.js";const r=w(function({id:d,size:m="md",align:c="center",boxClassName:p,labelClassName:b,inputClassName:f,labelSide:C="end",readOnly:u=!1,disabled:o,label:e,labelHidden:N=!1,boxContent:g,className:h,style:x,onChange:y,onClick:T,...j},k){const v=F(),i=d||v,a=!!u&&!o,z=!N&&e!=null&&e!==!1&&e!=="";return B("label",{className:s(n.root,h),style:x,htmlFor:i,"data-size":m,"data-align":c,"data-label-side":C,children:[l("input",{ref:k,id:i,className:s(n.input,f),disabled:o,"aria-readonly":a||void 0,...j,onChange:t(a,y),onClick:t(a,T)}),l("span",{className:p,children:g}),z?l("span",{className:s(n.labelText,b),children:e}):null]})});r.displayName="ToggleControlBase";export{r as ToggleControlBase};
1
+ "use client";import{jsxs as B,jsx as n}from"react/jsx-runtime";import{forwardRef as I,useId as w}from"react";import{cn as a}from"../../utils/cn.js";import{preventWhen as t}from"../../utils/preventWhen.js";import l from"./ToggleControlBase.module.css.js";const r=I(function({id:d,size:m="md",align:c="center",boxClassName:p,labelClassName:b,inputClassName:f,labelSide:C="end",readOnly:u=!1,disabled:o,label:e,labelHidden:N=!1,boxContent:g,className:h,style:x,onChange:y,onClick:T,...j},k){const v=w(),i=d||v,s=!!u&&!o,z=!N&&e!=null&&e!==!1&&e!=="";return B("label",{className:a(l.root,h),style:x,htmlFor:i,"data-size":m,"data-align":c,"data-label-side":C,children:[n("input",{ref:k,id:i,className:a(l.input,f),disabled:o,"aria-readonly":s||void 0,...j,onChange:t(s,y),onClick:t(s,T)}),n("span",{className:a(l.box,p),children:g}),z?n("span",{className:a(l.labelText,b),children:e}):null]})});r.displayName="ToggleControlBase";export{r as ToggleControlBase};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".ULs8K{align-items:center;color:var(--altum-color-control-text-color);cursor:pointer;display:inline-flex;font-family:var(--altum-g-font-family-ui);font-size:var(--altum-g-font-size-base);gap:var(--altum-toggle-label-gap);position:relative;-webkit-user-select:none;user-select:none}.ULs8K[data-align=start]{align-items:flex-start}.ULs8K[data-label-side=start]{flex-direction:row-reverse}.ULs8K[data-size=sm]{--altum-toggle-box-size:var(--altum-toggle-box-size-sm);font-size:var(--altum-g-font-size-sm);gap:var(--altum-g-space-2)}.ULs8K[data-size=lg]{--altum-toggle-box-size:var(--altum-toggle-box-size-lg);font-size:var(--altum-g-font-size-lg);gap:var(--altum-g-space-3)}.ULs8K:has(._0JKPE[aria-readonly=true]){cursor:default}.ULs8K:has(._0JKPE[aria-readonly=true]) ._0JKPE{pointer-events:none}.ULs8K:has(._0JKPE:disabled){cursor:not-allowed;opacity:var(--altum-opacity-disabled)}.ULs8K .YQos0{min-width:0}.ULs8K ._0JKPE{height:0;opacity:0;position:absolute;width:0}";const e={root:"ULs8K",input:"_0JKPE",labelText:"YQos0"};a(t);export{e as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".ULs8K{align-items:center;color:var(--altum-color-control-text-color);cursor:pointer;display:inline-flex;font-family:var(--altum-g-font-family-ui);font-size:var(--altum-g-font-size-base);gap:var(--altum-toggle-label-gap);position:relative;-webkit-user-select:none;user-select:none}.ULs8K[data-align=start]{align-items:flex-start}.ULs8K[data-label-side=start]{flex-direction:row-reverse}.ULs8K[data-size=sm]{--altum-toggle-box-size:var(--altum-toggle-box-size-sm);font-size:var(--altum-g-font-size-sm);gap:var(--altum-g-space-2)}.ULs8K[data-size=lg]{--altum-toggle-box-size:var(--altum-toggle-box-size-lg);font-size:var(--altum-g-font-size-lg);gap:var(--altum-g-space-3)}.ULs8K:has(._0JKPE[aria-readonly=true]){cursor:default}.ULs8K:has(._0JKPE[aria-readonly=true]) ._0JKPE{pointer-events:none}.ULs8K:has(._0JKPE:disabled){cursor:not-allowed;opacity:var(--altum-opacity-disabled)}.ULs8K .dl3-U{flex-shrink:0}.ULs8K .YQos0{min-width:0}.ULs8K ._0JKPE{height:0;opacity:0;position:absolute;width:0}";const e={root:"ULs8K",input:"_0JKPE",box:"dl3-U",labelText:"YQos0"};a(t);export{e as default};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var r=".LVhhv{display:flex;flex-direction:column}.LVhhv.P0DaU{gap:var(--altum-g-space-2)}.LVhhv.P0DaU ._7ryVk{background-color:var(--altum-color-surface);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius)}.LVhhv.X24HB ._7ryVk{border-bottom:1px solid var(--altum-color-panel-border)}:is(.LVhhv.X24HB ._7ryVk):last-child{border-bottom:none}.LVhhv ._7ryVk{min-width:0;overflow:hidden}.x7TBB:is(.LVhhv ._7ryVk){opacity:var(--altum-opacity-disabled)}.LVhhv ._6PDIo{margin:0}.LVhhv ._9BYFY{align-items:center;color:var(--altum-color-ink-default);display:flex;font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);justify-content:space-between;padding:var(--altum-g-space-3) var(--altum-g-space-4);text-align:left;transition:var(--altum-transition-smooth);width:100%}:is(.LVhhv ._9BYFY):focus-visible{outline-offset:-2px}:is(.LVhhv ._9BYFY):hover:not(:disabled){background-color:var(--altum-color-option-hover)}[aria-expanded=true]:is(.LVhhv ._9BYFY) .xfHxX{transform:rotate(180deg)}.LVhhv .xfHxX{color:var(--altum-field-label);flex-shrink:0;height:1em;margin-inline-start:auto;transition:var(--altum-transition-smooth);width:1em}.LVhhv .nTSIr{color:var(--altum-color-text-secondary);font-size:var(--altum-g-font-size-sm);line-height:var(--altum-g-line-height-base);padding:var(--altum-g-space-3) var(--altum-g-space-4)}@media (prefers-reduced-motion:reduce){.LVhhv ._9BYFY,.LVhhv .xfHxX{transition:none}}";const e={accordion:"LVhhv",bordered:"P0DaU",item:"_7ryVk",flush:"X24HB",disabled:"x7TBB",heading:"_6PDIo",trigger:"_9BYFY",icon:"xfHxX",panelInner:"nTSIr"};a(r);export{e as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var r=".LVhhv{display:flex;flex-direction:column}.LVhhv.P0DaU{gap:var(--altum-g-space-2)}.LVhhv.P0DaU ._7ryVk{background-color:var(--altum-color-surface);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius)}.LVhhv.X24HB ._7ryVk{border-bottom:1px solid var(--altum-color-panel-border)}:is(.LVhhv.X24HB ._7ryVk):last-child{border-bottom:none}.LVhhv ._7ryVk{min-width:0;overflow:hidden}.x7TBB:is(.LVhhv ._7ryVk){opacity:var(--altum-opacity-disabled)}.LVhhv ._6PDIo{margin:0}.LVhhv ._9BYFY{align-items:center;color:var(--altum-color-ink-default);display:flex;font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);justify-content:space-between;padding:var(--altum-g-space-3) var(--altum-g-space-4);text-align:left;transition:var(--altum-transition-smooth);width:100%}:is(.LVhhv ._9BYFY):focus-visible{outline-offset:-2px}:is(.LVhhv ._9BYFY):hover:not(:disabled){background-color:var(--altum-color-option-hover)}[aria-expanded=true]:is(.LVhhv ._9BYFY) .xfHxX{transform:rotate(180deg)}.LVhhv .xfHxX{color:var(--altum-field-label);flex-shrink:0;margin-inline-start:auto;transition:var(--altum-transition-smooth)}.LVhhv .nTSIr{color:var(--altum-color-text-secondary);font-size:var(--altum-g-font-size-sm);line-height:var(--altum-g-line-height-base);padding:var(--altum-g-space-3) var(--altum-g-space-4)}@media (prefers-reduced-motion:reduce){.LVhhv ._9BYFY,.LVhhv .xfHxX{transition:none}}";const o={accordion:"LVhhv",bordered:"P0DaU",item:"_7ryVk",flush:"X24HB",disabled:"x7TBB",heading:"_6PDIo",trigger:"_9BYFY",icon:"xfHxX",panelInner:"nTSIr"};a(r);export{o as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as u,jsx as r,Fragment as R}from"react/jsx-runtime";import{forwardRef as T,useId as q,useRef as K,useState as M,useMemo as x,useImperativeHandle as V}from"react";import{Listbox as z}from"../Listbox/Listbox.js";import{handleListHighlightKeyDown as G}from"../../utils/keyboard.js";import{filterListboxOptions as Q,getListboxOptionDomId as W}from"../../utils/listboxOptions.js";import{cn as Z}from"../../utils/cn.js";import{useControlledStateWithCallback as _}from"../../hooks/useControlledState.js";import{useLocale as E}from"../../locales/localeContext.js";import{TextField as J}from"../TextField/TextField.js";import{IconSearch as U}from"../../icons/icons/IconSearch.js";import o from"./ActionList.module.css.js";import{FieldBaseIcon as X}from"../../base/FieldBase/FieldBase.js";function Y(t){return[t.textValue??(typeof t.label=="string"||typeof t.label=="number"?String(t.label):t.id),...t.keywords??[],typeof t.description=="string"?t.description:""].join(" ")}function $(t){return u(R,{children:[t.icon&&r("span",{className:o.icon,"aria-hidden":!0,children:t.icon}),u("span",{className:o.itemBody,children:[r("span",{className:o.itemLabel,children:t.label}),t.description!=null&&r("span",{className:o.itemDescription,children:t.description})]}),t.shortcut!=null&&r("span",{className:o.shortcut,children:t.shortcut})]})}const v=T(function({items:t,groups:h,className:L="",id:y,"aria-label":I,onAction:N,onHighlightChange:P,filterable:m=!1,filterPlaceholder:C,query:p,onQueryChange:D,emptyText:F,...H},S){const{t:c}=E(),w=q(),l=y??w,n=K(null),[d,A]=_(p,"",D),[a,O]=M(-1),s=x(()=>Q({query:d,options:t.map(e=>({value:e.id,label:$(e),textValue:Y(e),disabled:e.disabled,groupId:e.groupId,buttonProps:e.buttonProps}))}),[t,d]),j=x(()=>{if(!h?.length)return;const e=new Set(s.map(i=>i.groupId).filter(i=>!!i));return h.filter(i=>e.has(i.id))},[s,h]),f=e=>{const i=t.find(g=>g.id===e);if(!(!i||i.disabled))return i.onSelect?.(),N?.(i),i},k=e=>{O(e),P?.(e)};V(S,()=>{const e=()=>n.current;return{highlightNext:()=>e()?.highlightNext(),highlightPrev:()=>e()?.highlightPrev(),highlightFirst:()=>e()?.highlightFirst(),highlightLast:()=>e()?.highlightLast(),selectHighlighted:()=>{const i=e()?.selectHighlighted();return i?t.find(g=>g.id===i):void 0},getHighlightedIndex:()=>e()?.getHighlightedIndex()??-1,getActiveDescendantId:()=>e()?.getActiveDescendantId(),getListId:()=>l}},[t,l]);const b=C??c("actionList.filterPlaceholder"),B={onNext:()=>n.current?.highlightNext(),onPrev:()=>n.current?.highlightPrev(),onFirst:()=>n.current?.highlightFirst(),onLast:()=>n.current?.highlightLast(),onSelect:()=>{const e=s[a]?.value;e&&f(e)}};return u("div",{className:Z(o.root,L),...H,children:[m&&r("div",{className:o.filter,children:r(J,{type:"search",size:"sm",width:"full",labelPlacement:"none",keepPlaceholder:!0,label:b,placeholder:b,value:d,autoComplete:"off",prefix:r(X,{children:r(U,{})}),role:"combobox","aria-expanded":!0,"aria-controls":l,"aria-autocomplete":"list","aria-activedescendant":a>=0?W(l,a):void 0,autoFocus:!0,onChange:e=>A(e.target.value),onKeyDown:e=>G(e,B)})}),r(z,{ref:n,id:l,className:o.list,options:s,groups:j,navigation:"highlight",highlightedIndex:a,onHighlightChange:k,preventOptionMouseDown:m||p!==void 0,multiline:!0,noOptionsText:F??c("actionList.empty"),"aria-label":I??c("actionList.ariaLabel"),onSelect:f})]})});v.displayName="ActionList";export{v as ActionList};
1
+ "use client";import{jsxs as u,jsx as r,Fragment as T}from"react/jsx-runtime";import{forwardRef as q,useId as K,useRef as M,useState as V,useMemo as p,useImperativeHandle as z}from"react";import{Listbox as G}from"../Listbox/Listbox.js";import{handleListHighlightKeyDown as Q}from"../../utils/keyboard.js";import{filterListboxOptions as W,getListboxOptionDomId as _}from"../../utils/listboxOptions.js";import{cn as $}from"../../utils/cn.js";import{useControlledStateWithCallback as E}from"../../hooks/useControlledState.js";import{useLocale as J}from"../../locales/localeContext.js";import{TextField as U,FieldBaseIcon as X}from"../TextField/TextField.js";import{IconSearch as Y}from"../../icons/icons/IconSearch.js";import o from"./ActionList.module.css.js";function Z(t){return[t.textValue??(typeof t.label=="string"||typeof t.label=="number"?String(t.label):t.id),...t.keywords??[],typeof t.description=="string"?t.description:""].join(" ")}function ee(t){return u(T,{children:[t.icon&&r("span",{className:o.icon,"aria-hidden":!0,children:t.icon}),u("span",{className:o.itemBody,children:[r("span",{className:o.itemLabel,children:t.label}),t.description!=null&&r("span",{className:o.itemDescription,children:t.description})]}),t.shortcut!=null&&r("span",{className:o.shortcut,children:t.shortcut})]})}const L=q(function({items:t,groups:h,className:I="",id:y,"aria-label":N,onAction:P,onHighlightChange:C,filterable:m=!1,filterPlaceholder:D,query:f,onQueryChange:F,emptyText:H,...S},w){const{t:c}=J(),A=K(),l=y??A,n=M(null),[d,k]=E(f,"",F),[a,O]=V(-1),b=p(()=>t.map(e=>({value:e.id,label:ee(e),textValue:Z(e),disabled:e.disabled,groupId:e.groupId,buttonProps:e.buttonProps})),[t]),s=p(()=>W({query:d,options:b}),[b,d]),j=p(()=>{if(!h?.length)return;const e=new Set(s.map(i=>i.groupId).filter(i=>!!i));return h.filter(i=>e.has(i.id))},[s,h]),x=e=>{const i=t.find(g=>g.id===e);if(!(!i||i.disabled))return i.onSelect?.(),P?.(i),i},B=e=>{O(e),C?.(e)};z(w,()=>{const e=()=>n.current;return{highlightNext:()=>e()?.highlightNext(),highlightPrev:()=>e()?.highlightPrev(),highlightFirst:()=>e()?.highlightFirst(),highlightLast:()=>e()?.highlightLast(),selectHighlighted:()=>{const i=e()?.selectHighlighted();return i?t.find(g=>g.id===i):void 0},getHighlightedIndex:()=>e()?.getHighlightedIndex()??-1,getActiveDescendantId:()=>e()?.getActiveDescendantId(),getListId:()=>l}},[t,l]);const v=D??c("actionList.filterPlaceholder"),R={onNext:()=>n.current?.highlightNext(),onPrev:()=>n.current?.highlightPrev(),onFirst:()=>n.current?.highlightFirst(),onLast:()=>n.current?.highlightLast(),onSelect:()=>{const e=s[a]?.value;e&&x(e)}};return u("div",{className:$(o.root,I),...S,children:[m&&r("div",{className:o.filter,children:r(U,{type:"search",size:"sm",width:"full",keepPlaceholder:!0,"aria-label":v,placeholder:v,value:d,autoComplete:"off",prefix:r(X,{children:r(Y,{})}),role:"combobox","aria-expanded":!0,"aria-controls":l,"aria-autocomplete":"list","aria-activedescendant":a>=0?_(l,a):void 0,autoFocus:!0,onChange:e=>k(e.target.value),onKeyDown:e=>Q(e,R)})}),r(G,{ref:n,id:l,className:o.list,options:s,groups:j,navigation:"highlight",highlightedIndex:a,onHighlightChange:B,preventOptionMouseDown:m||f!==void 0,multiline:!0,noOptionsText:H??c("actionList.empty"),"aria-label":N??c("actionList.ariaLabel"),onSelect:x})]})});L.displayName="ActionList";export{L as ActionList};
@@ -1 +1 @@
1
- "use client";import{jsxs as d,jsx as o}from"react/jsx-runtime";import{forwardRef as b}from"react";import{IconCheckmark as w}from"../../icons/icons/IconCheckmark.js";import{IconCross as g}from"../../icons/icons/IconCross.js";import{IconInformation as x}from"../../icons/icons/IconInformation.js";import{IconWarning as y}from"../../icons/icons/IconWarning.js";import{IconWrong as L}from"../../icons/icons/IconWrong.js";import{ButtonIcon as j}from"../ButtonIcon/ButtonIcon.js";import e from"../../styles/MediaItem.module.css.js";import A from"../../styles/overlayClose.module.css.js";import r from"./Alert.module.css.js";import f from"../../styles/status.module.css.js";import{cn as i}from"../../utils/cn.js";import{useLocale as W}from"../../locales/localeContext.js";const q={info:o(x,{size:16}),success:o(w,{size:16}),warning:o(y,{size:16}),error:o(L,{size:16})},p=b(function({variant:n="info",size:l="md",layout:u="block",className:h,role:N,title:t,icon:a,actions:s,onClose:m,closeLabel:I,children:c,...v},z){const{t:k}=W(),C=I??k("common.close");return d("div",{ref:z,className:i(e.row,e.wrap,r.alert,r[n],f[n],f.surface,l!=="md"&&r[l],u==="inline"&&r.inline,h),role:N??(n==="error"?"alert":"status"),...v,children:[a!==null&&o("div",{className:i(e.media,r.icon),"aria-hidden":!0,children:a??q[n]}),d("div",{className:i(e.content,r.body),children:[t!=null&&t!==""&&o("div",{className:i(e.title,r.title),children:t}),c!=null&&c!==""&&o("div",{className:i(e.description,r.content),children:c}),s!=null&&o("div",{className:i(e.actions,r.actions),children:s})]}),m!=null&&o(j,{appearance:"diskClose","aria-label":C,icon:o(g,{className:A.icon,size:16,"aria-hidden":!0}),onClick:m})]})});p.displayName="Alert";export{p as Alert};
1
+ "use client";import{jsxs as d,jsx as o}from"react/jsx-runtime";import{forwardRef as b}from"react";import{IconCheckmark as w}from"../../icons/icons/IconCheckmark.js";import{IconCross as y}from"../../icons/icons/IconCross.js";import{IconInformation as g}from"../../icons/icons/IconInformation.js";import{IconWarning as x}from"../../icons/icons/IconWarning.js";import{IconWrong as L}from"../../icons/icons/IconWrong.js";import{ButtonIcon as j}from"../ButtonIcon/ButtonIcon.js";import e from"../../styles/MediaItem.module.css.js";import A from"../../styles/overlayClose.module.css.js";import r from"./Alert.module.css.js";import f from"../../styles/status.module.css.js";import{cn as i}from"../../utils/cn.js";import{useLocale as W}from"../../locales/localeContext.js";const q={info:o(g,{size:16}),success:o(w,{size:16}),warning:o(x,{size:16}),error:o(L,{size:16})},p=b(function({variant:n="info",size:c="md",layout:u="block",className:h,role:v,title:l,icon:s,actions:a,onClose:m,closeLabel:N,children:t,...I},z){const{t:k}=W(),C=N??k("common.close");return d("div",{ref:z,className:i(e.row,e.wrap,r.alert,r[n],f[n],f.surface,c!=="md"&&r[c],u==="inline"&&r.inline,h),role:v??(n==="error"?"alert":"status"),...I,children:[s!==null&&o("div",{className:i(e.media,r.icon),"aria-hidden":!0,children:s??q[n]}),d("div",{className:i(e.content,r.body),children:[l!=null&&l!==""&&o("div",{className:i(e.title,r.title),children:l}),t!=null&&t!==""&&o("div",{className:i(e.description,r.content),children:t}),a!=null&&o("div",{className:i(e.actions,r.actions),children:a})]}),m!=null&&o(j,{appearance:"diskClose","aria-label":C,icon:o(y,{className:A.icon,size:"var(--altum-overlay-close-icon-size)","aria-hidden":!0}),onClick:m})]})});p.displayName="Alert";export{p as Alert};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t="._7cYyI{align-items:flex-start;background-color:var(--altum-status-bg);border:1px solid var(--altum-status-border);border-radius:var(--altum-g-radius);color:var(--altum-status-fg);padding:var(--altum-g-space-3) var(--altum-g-space-4)}._7cYyI .Zg6SB{color:inherit;margin-top:var(--altum-g-space-1)}._7cYyI .abGgF{color:inherit;font-weight:var(--altum-g-font-weight-semibold,600);line-height:var(--altum-g-line-height-xs)}._7cYyI .UXnmZ,._7cYyI .abGgF{font-size:var(--altum-g-font-size-sm)}._7cYyI .UXnmZ{color:var(--altum-color-muted);line-height:var(--altum-g-line-height-base)}._7cYyI .RW9lv{align-items:flex-start;flex-wrap:wrap;gap:var(--altum-g-space-2);margin-top:var(--altum-g-space-2)}._7cYyI._8W0SD{gap:var(--altum-g-space-2);padding:var(--altum-g-space-2) var(--altum-g-space-3)}._7cYyI._8W0SD .UXnmZ,._7cYyI._8W0SD .abGgF{font-size:var(--altum-g-font-size-xs)}._7cYyI.-rVFO{padding:var(--altum-g-space-4) var(--altum-g-space-5)}._7cYyI.-rVFO .abGgF{font-size:var(--altum-g-font-size-base)}._7cYyI.OCIzv{display:inline-flex;max-width:100%;vertical-align:middle;width:auto}._7cYyI.OCIzv .RW9lv{margin-left:var(--altum-g-space-2);margin-top:0}._7cYyI.OCIzv .B60Rk{align-items:center;flex-direction:row;flex-wrap:wrap;gap:var(--altum-g-space-2)}";const r={alert:"_7cYyI",icon:"Zg6SB",title:"abGgF",content:"UXnmZ",actions:"RW9lv",sm:"_8W0SD",lg:"-rVFO",inline:"OCIzv",body:"B60Rk"};a(t);export{r as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t="._7cYyI{align-items:flex-start;background-color:var(--altum-status-bg);border:1px solid var(--altum-status-border);border-radius:var(--altum-g-radius);color:var(--altum-status-fg);padding:var(--altum-g-space-3) var(--altum-g-space-4)}._7cYyI .Zg6SB{color:inherit;margin-top:var(--altum-g-space-1)}._7cYyI .abGgF{color:inherit;font-weight:var(--altum-g-font-weight-semibold);line-height:var(--altum-g-line-height-xs)}._7cYyI .UXnmZ,._7cYyI .abGgF{font-size:var(--altum-g-font-size-sm)}._7cYyI .UXnmZ{color:var(--altum-color-muted);line-height:var(--altum-g-line-height-base)}._7cYyI .RW9lv{align-items:flex-start;flex-wrap:wrap;gap:var(--altum-g-space-2);margin-top:var(--altum-g-space-2)}._7cYyI._8W0SD{gap:var(--altum-g-space-2);padding:var(--altum-g-space-2) var(--altum-g-space-3)}._7cYyI._8W0SD .UXnmZ,._7cYyI._8W0SD .abGgF{font-size:var(--altum-g-font-size-xs)}._7cYyI.-rVFO{padding:var(--altum-g-space-4) var(--altum-g-space-5)}._7cYyI.-rVFO .abGgF{font-size:var(--altum-g-font-size-base)}._7cYyI.OCIzv{display:inline-flex;max-width:100%;vertical-align:middle;width:auto}._7cYyI.OCIzv .RW9lv{margin-left:var(--altum-g-space-2);margin-top:0}._7cYyI.OCIzv .B60Rk{align-items:center;flex-direction:row;flex-wrap:wrap;gap:var(--altum-g-space-2)}";const r={alert:"_7cYyI",icon:"Zg6SB",title:"abGgF",content:"UXnmZ",actions:"RW9lv",sm:"_8W0SD",lg:"-rVFO",inline:"OCIzv",body:"B60Rk"};a(t);export{r as default};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t="._5PlRC{--altum-attachment-max-width:360px;--altum-attachment-max-width-sm:280px;--altum-attachment-max-width-xs:220px;color:var(--altum-color-field-text);font-family:var(--altum-g-font-family-ui);max-width:var(--altum-attachment-max-width);padding:var(--altum-g-space-2) var(--altum-g-space-3);transition:var(--altum-transition-smooth)}._5PlRC:hover:not(:disabled){background:var(--altum-color-panel-bg-hover)}._5PlRC.NkCiM,._5PlRC.um8pJ{gap:var(--altum-g-space-2);padding:var(--altum-g-space-1) var(--altum-g-space-2)}._5PlRC.NkCiM{max-width:var(--altum-attachment-max-width-sm)}._5PlRC.um8pJ{max-width:var(--altum-attachment-max-width-xs)}._5PlRC.NkCiM .FCf1F{height:var(--altum-g-space-6);width:var(--altum-g-space-6)}._5PlRC.um8pJ .FCf1F{height:var(--altum-g-space-5);width:var(--altum-g-space-5)}._5PlRC.um8pJ .n2PFF{font-size:var(--altum-g-font-size-2xs)}._5PlRC.Fv4Vl{background:color-mix(in srgb,var(--altum-color-status-error) 8%,var(--altum-color-panel-bg));border-color:color-mix(in srgb,var(--altum-color-status-error) 40%,var(--altum-color-panel-border))}._5PlRC .FCf1F{background:var(--altum-color-brand-tint);border-radius:var(--altum-g-radius-sm);color:var(--altum-color-brand-tint-text);height:var(--altum-g-space-8);position:relative;width:var(--altum-g-space-8)}._5PlRC ._5vdyS{align-items:center;background:color-mix(in srgb,var(--altum-color-panel-bg) 55%,#0000);display:flex;inset:0;justify-content:center;position:absolute}._5PlRC .n2PFF{font-size:var(--altum-g-font-size-sm)}._5PlRC .koTJ7{color:var(--altum-field-label);font-size:var(--altum-g-font-size-xs);line-height:1.3}._5PlRC .tTRcw{gap:var(--altum-g-space-1)}";const l={attachment:"_5PlRC",sm:"NkCiM",xs:"um8pJ",media:"FCf1F",title:"n2PFF",error:"Fv4Vl",uploadOverlay:"_5vdyS",description:"koTJ7",actions:"tTRcw"};a(t);export{l as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var a="._5PlRC{--altum-attachment-max-width:360px;--altum-attachment-max-width-sm:280px;--altum-attachment-max-width-xs:220px;max-width:var(--altum-attachment-max-width)}._5PlRC:hover:not(:disabled){background:var(--altum-color-panel-bg-hover)}._5PlRC.NkCiM{max-width:var(--altum-attachment-max-width-sm)}._5PlRC.um8pJ{max-width:var(--altum-attachment-max-width-xs)}._5PlRC.um8pJ .FCf1F{height:var(--altum-g-space-5);width:var(--altum-g-space-5)}._5PlRC.um8pJ .n2PFF{font-size:var(--altum-g-font-size-2xs)}._5PlRC.Fv4Vl{background:color-mix(in srgb,var(--altum-color-status-error) 8%,var(--altum-color-panel-bg));border-color:color-mix(in srgb,var(--altum-color-status-error) 40%,var(--altum-color-panel-border))}._5PlRC .FCf1F{position:relative}._5PlRC ._5vdyS{align-items:center;background:color-mix(in srgb,var(--altum-color-panel-bg) 55%,#0000);display:flex;inset:0;justify-content:center;position:absolute}._5PlRC .n2PFF{font-size:var(--altum-g-font-size-sm)}._5PlRC .koTJ7{color:var(--altum-field-label);font-size:var(--altum-g-font-size-xs);line-height:1.3}";const l={attachment:"_5PlRC",sm:"NkCiM",xs:"um8pJ",media:"FCf1F",title:"n2PFF",error:"Fv4Vl",uploadOverlay:"_5vdyS",description:"koTJ7"};t(a);export{l as default};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t='._3xMuZ{--altum-avatar-size:44px;align-items:center;background-color:var(--altum-color-fill-primary-bg);border:2px solid var(--altum-color-surface);border-radius:50%;color:var(--altum-color-fill-primary-fg);display:inline-flex;flex-shrink:0;font-family:inherit;font-size:calc(var(--altum-avatar-size)/2.5);font-weight:var(--altum-g-font-weight-semibold);height:var(--altum-avatar-size);justify-content:center;overflow:hidden;position:relative;width:var(--altum-avatar-size)}._3xMuZ[data-status]{overflow:visible}._3xMuZ[data-status]:after{aspect-ratio:1;background-color:var(--altum-avatar-status);border:2px solid var(--altum-color-surface);border-radius:50%;bottom:0;box-sizing:border-box;content:"";min-height:8px;min-width:8px;position:absolute;right:0;width:22%}._3xMuZ[data-status=online]{--altum-avatar-status:var(--altum-color-status-success)}._3xMuZ[data-status=offline]{--altum-avatar-status:var(--altum-color-border)}._3xMuZ[data-status=busy]{--altum-avatar-status:var(--altum-color-status-error)}._3xMuZ[data-status=away]{--altum-avatar-status:var(--altum-color-status-warning)}.oSaLL{--altum-avatar-size:24px}.sZ2bk{--altum-avatar-size:32px}.pTTUA{--altum-avatar-size:52px}.mW58F{--altum-avatar-size:64px}.SqXNw{border-radius:50%;height:100%;object-fit:cover;width:100%}.zRtul{align-items:center;display:inline-flex;justify-content:center;line-height:1}.zRtul:not(:has(svg)){max-width:100%;padding-inline:10%;text-align:center}.zRtul svg{height:50%;width:50%}.LHuq2{display:inline-flex;flex-direction:row}.LHuq2>*+*{margin-left:calc(var(--altum-g-space-2)*-1)}';const r={avatar:"_3xMuZ",xs:"oSaLL",sm:"sZ2bk",lg:"pTTUA",xl:"mW58F",img:"SqXNw",icon:"zRtul",group:"LHuq2"};a(t);export{r as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t='._3xMuZ{--altum-avatar-size:var(--altum-control-height-md);align-items:center;background-color:var(--altum-color-fill-primary-bg);border:2px solid var(--altum-color-surface);border-radius:50%;color:var(--altum-color-fill-primary-fg);display:inline-flex;flex-shrink:0;font-family:inherit;font-size:calc(var(--altum-avatar-size)/2.5);font-weight:var(--altum-g-font-weight-semibold);height:var(--altum-avatar-size);justify-content:center;overflow:hidden;position:relative;width:var(--altum-avatar-size)}._3xMuZ[data-status]{overflow:visible}._3xMuZ[data-status]:after{aspect-ratio:1;background-color:var(--altum-avatar-status);border:2px solid var(--altum-color-surface);border-radius:50%;bottom:0;box-sizing:border-box;content:"";min-height:var(--altum-g-space-2);min-width:var(--altum-g-space-2);position:absolute;right:0;width:22%}._3xMuZ[data-status=online]{--altum-avatar-status:var(--altum-color-status-success)}._3xMuZ[data-status=offline]{--altum-avatar-status:var(--altum-color-border)}._3xMuZ[data-status=busy]{--altum-avatar-status:var(--altum-color-status-error)}._3xMuZ[data-status=away]{--altum-avatar-status:var(--altum-color-status-warning)}.oSaLL{--altum-avatar-size:var(--altum-g-space-6)}.sZ2bk{--altum-avatar-size:var(--altum-control-height-sm)}.pTTUA{--altum-avatar-size:var(--altum-control-height-lg)}.mW58F{--altum-avatar-size:calc(var(--altum-g-space-8)*2)}.SqXNw{border-radius:50%;height:100%;object-fit:cover;width:100%}.zRtul{align-items:center;display:inline-flex;justify-content:center;line-height:1}.zRtul:not(:has(svg)){max-width:100%;padding-inline:10%;text-align:center}.zRtul svg{height:50%;width:50%}.LHuq2{display:inline-flex;flex-direction:row}.LHuq2>*+*{margin-left:calc(var(--altum-g-space-2)*-1)}';const r={avatar:"_3xMuZ",xs:"oSaLL",sm:"sZ2bk",lg:"pTTUA",xl:"mW58F",img:"SqXNw",icon:"zRtul",group:"LHuq2"};a(t);export{r as default};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var r=".URvSq{align-items:flex-start;align-self:flex-start;display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-1);max-width:min(100%,420px)}.URvSq.hfCqn{align-items:flex-end;align-self:flex-end}.URvSq.hfCqn ._980gE{border-bottom-left-radius:var(--altum-g-radius-lg,12px);border-bottom-right-radius:var(--altum-g-radius-sm)}.URvSq.hfCqn .EDs9V{border-top-left-radius:var(--altum-g-radius-lg,12px);border-top-right-radius:var(--altum-g-radius-sm)}.URvSq.dmQu2:not(:has([aria-expanded=true])) .jHlUX{-webkit-box-orient:vertical;-webkit-line-clamp:var(--altum-bubble-lines,4);display:-webkit-box;overflow:hidden}.URvSq .rJQLB{color:var(--altum-field-label);font-size:var(--altum-g-font-size-xs);line-height:1.3;padding:0 var(--altum-g-space-2)}.URvSq .NBDS9{background-color:var(--altum-color-surface-active);border:1px solid #0000;border-radius:var(--altum-g-radius-lg,12px);box-sizing:border-box;color:var(--altum-color-input-text);min-width:0;padding:var(--altum-g-space-2) var(--altum-g-space-3);transition:var(--altum-transition-smooth)}.URvSq .eb1YB{background-color:var(--altum-color-brand-tint);border-color:var(--altum-color-brand-tint-border);color:var(--altum-color-brand-tint-text)}.URvSq ._7qOPo{background-color:initial;border-color:var(--altum-color-border);border-style:dashed;color:var(--altum-field-label);font-size:var(--altum-g-font-size-2xs);padding:var(--altum-g-space-1) var(--altum-g-space-3)}.URvSq ._980gE{border-bottom-left-radius:var(--altum-g-radius-sm)}.URvSq ._9mEAO{border-radius:var(--altum-g-radius-sm)}.URvSq .EDs9V{border-top-left-radius:var(--altum-g-radius-sm)}.URvSq .jHlUX{font-size:var(--altum-g-font-size-base);line-height:1.45;margin:0;white-space:pre-wrap;word-break:break-word}.URvSq .Omawa{color:var(--altum-color-brand-tint-text);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-semibold);margin:var(--altum-g-space-1) 0 0}:is(.URvSq .Omawa):hover:not(:disabled){text-decoration:underline}.URvSq ._7eiRp{flex-wrap:wrap;margin-top:var(--altum-control-inset)}.URvSq ._7eiRp,.URvSq .m9Win{display:inline-flex;gap:var(--altum-g-space-1)}.URvSq .m9Win{align-items:center;background:var(--altum-color-panel-bg);border:1px solid var(--altum-color-panel-border);border-radius:var(--altum-g-radius-pill);color:var(--altum-color-field-text);font-size:var(--altum-g-font-size-2xs);line-height:1;min-height:var(--altum-g-space-5);padding:0 var(--altum-g-space-2);transition:var(--altum-transition-smooth)}:is(.URvSq .m9Win):hover:not(:disabled){background:var(--altum-color-panel-bg-hover)}.URvSq .v8Uhm{background:var(--altum-color-brand-tint);border-color:var(--altum-color-brand-tint-border)}.URvSq .v8Uhm,:is(.URvSq .v8Uhm) ._5gpJy{color:var(--altum-color-brand-tint-text)}.URvSq ._5gpJy{color:var(--altum-field-label);font-weight:var(--altum-g-font-weight-semibold)}";const t={wrap:"URvSq",alignEnd:"hfCqn",group_first:"_980gE",group_last:"EDs9V",collapsible:"dmQu2",body:"jHlUX",meta:"rJQLB",bubble:"NBDS9",outgoing:"eb1YB",system:"_7qOPo",group_middle:"_9mEAO",toggle:"Omawa",reactions:"_7eiRp",reaction:"m9Win",reactionActive:"v8Uhm",reactionCount:"_5gpJy"};a(r);export{t as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var r=".URvSq{align-items:flex-start;align-self:flex-start;display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-1);max-width:min(100%,420px)}.URvSq.hfCqn{align-items:flex-end;align-self:flex-end}.URvSq.hfCqn ._980gE{border-bottom-left-radius:var(--altum-g-radius-lg);border-bottom-right-radius:var(--altum-g-radius-sm)}.URvSq.hfCqn .EDs9V{border-top-left-radius:var(--altum-g-radius-lg);border-top-right-radius:var(--altum-g-radius-sm)}.URvSq.dmQu2:not(:has([aria-expanded=true])) .jHlUX{-webkit-box-orient:vertical;-webkit-line-clamp:var(--altum-bubble-lines,4);display:-webkit-box;overflow:hidden}.URvSq .rJQLB{color:var(--altum-field-label);font-size:var(--altum-g-font-size-xs);line-height:1.3;padding:0 var(--altum-g-space-2)}.URvSq .NBDS9{background-color:var(--altum-color-surface-active);border:1px solid #0000;border-radius:var(--altum-g-radius-lg);box-sizing:border-box;color:var(--altum-color-input-text);min-width:0;padding:var(--altum-g-space-2) var(--altum-g-space-3);transition:var(--altum-transition-smooth)}.URvSq .eb1YB{background-color:var(--altum-color-brand-tint);border-color:var(--altum-color-brand-tint-border);color:var(--altum-color-brand-tint-text)}.URvSq ._7qOPo{background-color:initial;border-color:var(--altum-color-border);border-style:dashed;color:var(--altum-field-label);font-size:var(--altum-g-font-size-2xs);padding:var(--altum-g-space-1) var(--altum-g-space-3)}.URvSq ._980gE{border-bottom-left-radius:var(--altum-g-radius-sm)}.URvSq ._9mEAO{border-radius:var(--altum-g-radius-sm)}.URvSq .EDs9V{border-top-left-radius:var(--altum-g-radius-sm)}.URvSq .jHlUX{font-size:var(--altum-g-font-size-base);line-height:var(--altum-g-line-height-base);margin:0;white-space:pre-wrap;word-break:break-word}.URvSq .Omawa{color:var(--altum-color-brand-tint-text);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-semibold);margin:var(--altum-g-space-1) 0 0}:is(.URvSq .Omawa):hover:not(:disabled){text-decoration:underline}.URvSq ._7eiRp{flex-wrap:wrap;margin-top:var(--altum-control-inset)}.URvSq ._7eiRp,.URvSq .m9Win{display:inline-flex;gap:var(--altum-g-space-1)}.URvSq .m9Win{align-items:center;background:var(--altum-color-panel-bg);border:1px solid var(--altum-color-panel-border);border-radius:var(--altum-g-radius-pill);color:var(--altum-color-field-text);font-size:var(--altum-g-font-size-2xs);line-height:1;min-height:var(--altum-g-space-5);padding:0 var(--altum-g-space-2);transition:var(--altum-transition-smooth)}:is(.URvSq .m9Win):hover:not(:disabled){background:var(--altum-color-panel-bg-hover)}.URvSq .v8Uhm{background:var(--altum-color-brand-tint);border-color:var(--altum-color-brand-tint-border)}.URvSq .v8Uhm,:is(.URvSq .v8Uhm) ._5gpJy{color:var(--altum-color-brand-tint-text)}.URvSq ._5gpJy{color:var(--altum-field-label);font-weight:var(--altum-g-font-weight-semibold)}";const t={wrap:"URvSq",alignEnd:"hfCqn",group_first:"_980gE",group_last:"EDs9V",collapsible:"dmQu2",body:"jHlUX",meta:"rJQLB",bubble:"NBDS9",outgoing:"eb1YB",system:"_7qOPo",group_middle:"_9mEAO",toggle:"Omawa",reactions:"_7eiRp",reaction:"m9Win",reactionActive:"v8Uhm",reactionCount:"_5gpJy"};a(r);export{t as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as p,jsx as h}from"react/jsx-runtime";import{forwardRef as y}from"react";import{formatKeyboardShortcut as B,formatAriaKeyShortcuts as b}from"../../utils/keyboardShortcut.js";import{cn as N}from"../../utils/cn.js";import{ButtonBase as v}from"../../base/ButtonBase/ButtonBase.js";import o from"../../base/ButtonBase/ButtonBase.module.css.js";const i=y(function({iconStart:a,iconEnd:s,children:e,className:n,disabled:d,loading:r=!1,fullWidth:m,shortcut:t,title:l,...c},f){const u=t?B(t):"";return p(v,{ref:f,className:N(m&&o.fullWidth,n),disabled:d||r,"aria-keyshortcuts":t?b(t):void 0,title:l??(u||void 0),...c,"aria-busy":r||void 0,children:[r?h("span",{className:o.spin,"aria-hidden":!0}):a,e,s]})});i.displayName="Button";export{i as Button};
1
+ "use client";import{jsxs as y,Fragment as g,jsx as N}from"react/jsx-runtime";import{forwardRef as k,createElement as j}from"react";import i from"./Button.module.css.js";import B from"../../styles/textLink.module.css.js";import{cn as W}from"../../utils/cn.js";const n=k(function({variant:t="primary",size:o="md",active:s,className:l,children:m,type:p="button",disabled:f,as:c,prefix:u,postfix:v,loading:a=!1,fullWidth:b,...x},h){const e=c==="a",d=s!==void 0,r=!!(f||a);return j(e?"a":"button",{ref:h,className:W(i.btn,i[t],o!=="md"&&t!=="link"&&i[o],t==="link"&&B.link,d&&i.isToggle,b&&i.fullWidth,l),type:e?void 0:p,disabled:e?void 0:r,"aria-disabled":e&&r?!0:void 0,tabIndex:e&&r?-1:void 0,...x,"aria-pressed":d?s:void 0,"aria-busy":a||void 0},y(g,{children:[a?N("span",{className:i.spin,"aria-hidden":!0}):u,m,v]}))});n.displayName="Button";export{n as Button};
@@ -0,0 +1 @@
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var a=".Fx11X{--altum-btn-border:#0000;--altum-btn-text:inherit;--altum-btn-text-hover:var(--altum-btn-text);--altum-btn-bg:#0000;--altum-btn-bg-hover:var(--altum-btn-bg);--altum-btn-bg-active:var(--altum-btn-bg-hover);--altum-btn-shadow:0 0 0 0 #0000;--altum-btn-focus-ring:var(--altum-focus-ring-color);--altum-btn-height:var(--altum-control-height-md);--altum-btn-pad-x:var(--altum-g-space-5);--altum-btn-font-size:var(--altum-g-font-size-base);--altum-btn-icon-size:var(--altum-control-icon-size-md);align-items:center;appearance:none;background:var(--altum-btn-bg);border:1px solid var(--altum-btn-border);border-radius:var(--altum-g-radius);box-shadow:var(--altum-btn-shadow);box-sizing:border-box;color:var(--altum-btn-text);cursor:pointer;display:inline-flex;font-family:var(--altum-g-font-family-ui);font-size:var(--altum-btn-font-size);font-weight:var(--altum-g-font-weight-medium);gap:var(--altum-g-space-2);height:var(--altum-btn-height);justify-content:center;outline:none;padding:0 var(--altum-btn-pad-x);transition:var(--altum-transition-smooth);-webkit-user-select:none;user-select:none}.Fx11X svg{height:var(--altum-btn-icon-size);width:var(--altum-btn-icon-size)}.Fx11X:is(:disabled,[aria-disabled=true]):not([aria-busy=true]){color:color-mix(in srgb,var(--altum-btn-text) 48%,var(--altum-color-bg));cursor:not-allowed}.Fx11X[aria-disabled=true]{pointer-events:none}.Fx11X:not(._1KINV,.Zt5hw):is(:disabled,[aria-disabled=true]):not([aria-busy=true]){background:color-mix(in srgb,var(--altum-btn-bg) 36%,var(--altum-color-surface));border-color:#0000;box-shadow:none}.Fx11X[aria-busy=true]{cursor:progress}.Fx11X:not(:disabled,[aria-disabled=true]):hover{background-color:var(--altum-btn-bg-hover);color:var(--altum-btn-text-hover)}.Fx11X:not(:disabled,[aria-disabled=true]):active{background-color:var(--altum-btn-bg-active)}.Fx11X:focus-visible{box-shadow:var(--altum-btn-shadow),0 0 0 var(--altum-button-focus-inner) var(--altum-color-bg),0 0 0 var(--altum-button-focus-outer) var(--altum-btn-focus-ring)}.Fx11X:where(.NhG0g){--altum-btn-height:var(--altum-control-height-sm);--altum-btn-pad-x:var(--altum-g-space-3);--altum-btn-font-size:var(--altum-g-font-size-2xs);--altum-btn-icon-size:var(--altum-control-icon-size-sm)}.Fx11X:where(._2plQf){--altum-btn-height:var(--altum-control-height-lg);--altum-btn-pad-x:var(--altum-g-space-7);--altum-btn-font-size:var(--altum-g-font-size-lg);--altum-btn-icon-size:var(--altum-control-icon-size-lg)}.Fx11X.s1sM6{--altum-btn-border:var(--altum-color-button-border-primary);--altum-btn-text:var(--altum-color-brand-text);--altum-btn-bg:var(--altum-color-brand);--altum-btn-bg-hover:var(--altum-color-brand-hover);--altum-btn-bg-active:var(--altum-color-brand-active);--altum-btn-shadow:var(--altum-shadow-brand)}.Fx11X.fahpj{--altum-btn-border:var(--altum-color-button-tinted-border);--altum-btn-text:var(--altum-color-button-tinted-text);--altum-btn-bg:var(--altum-color-button-tinted-bg);--altum-btn-bg-hover:var(--altum-color-button-tinted-bg-hover);--altum-btn-bg-active:var(--altum-color-button-tinted-bg-active)}.Fx11X.R0waJ{--altum-btn-border:var(--altum-color-button-secondary-border);--altum-btn-text:var(--altum-color-button-secondary-text);--altum-btn-bg:var(--altum-color-button-secondary-bg);--altum-btn-bg-hover:var(--altum-color-button-secondary-bg-hover);--altum-btn-bg-active:var(--altum-color-button-secondary-bg-active);--altum-btn-shadow:var(--altum-color-button-secondary-shadow)}.Fx11X.V4fX8{--altum-btn-border:var(--altum-color-button-border-danger);--altum-btn-text:var(--altum-color-danger-text);--altum-btn-bg:var(--altum-color-danger-bg-solid);--altum-btn-bg-hover:var(--altum-color-danger-bg-hover);--altum-btn-bg-active:var(--altum-color-danger-bg-active);--altum-btn-shadow:var(--altum-color-danger-shadow);--altum-btn-focus-ring:var(--altum-color-danger-bg-solid)}.Fx11X.U-Isv{--altum-btn-border:var(--altum-color-button-border-danger-tinted);--altum-btn-text:var(--altum-color-danger-tint-text);--altum-btn-text-hover:var(--altum-color-danger-text-secondary-hover);--altum-btn-bg:var(--altum-color-danger-tint-bg);--altum-btn-bg-hover:var(--altum-color-danger-tint-bg-hover);--altum-btn-bg-active:var(--altum-color-danger-tint-bg-active);--altum-btn-focus-ring:var(--altum-color-danger-bg-solid)}.Fx11X._1KINV{--altum-btn-text:var(--altum-color-button-ghost-text);--altum-btn-text-hover:var(--altum-color-button-ghost-text-hover);--altum-btn-bg-hover:var(--altum-color-button-ghost-hover-bg);--altum-btn-bg-active:var(--altum-color-button-ghost-active-bg)}.Fx11X.Zt5hw{--altum-btn-text:var(--altum-color-link-color);--altum-btn-text-hover:var(--altum-color-link-color-hover,var(--altum-color-link-color));--altum-btn-bg-hover:#0000;--altum-btn-bg-active:#0000;align-self:center;border:none;border-radius:var(--altum-g-radius-sm);font-weight:var(--altum-g-font-weight-normal);height:auto;padding:0}.Fx11X.Zt5hw:not(:disabled,[aria-disabled=true]):active{color:var(--altum-color-link-color-hover,var(--altum-color-link-color))}.Fx11X.mK-Gk:not([aria-pressed=true]){background-color:initial;border-color:#0000;box-shadow:none;opacity:.75}.Fx11X.mK-Gk:not([aria-pressed=true]):not(:disabled,[aria-disabled=true]):hover{opacity:1}.Fx11X._36oJT{display:flex;width:100%}.JvkZu{animation:JvkZu .75s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid #0000;box-sizing:border-box;display:inline-block;height:var(--altum-btn-icon-size);width:var(--altum-btn-icon-size)}@keyframes JvkZu{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.JvkZu{animation:none;border-right-color:initial;opacity:.55}}";const r={btn:"Fx11X",ghost:"_1KINV",link:"Zt5hw",sm:"NhG0g",lg:"_2plQf",primary:"s1sM6",tinted:"fahpj",secondary:"R0waJ",danger:"V4fX8",danger_tinted:"U-Isv",isToggle:"mK-Gk",fullWidth:"_36oJT",spin:"JvkZu"};t(a);export{r as default};
@@ -1 +1 @@
1
- "use client";import{jsx as S,jsxs as _}from"react/jsx-runtime";import $,{forwardRef as U,useRef as Y,useState as J,useCallback as Q,useMemo as X,useLayoutEffect as Z,useId as ee,createContext as te}from"react";import oe from"../../styles/unstyledControl.module.css.js";import t from"./ButtonGroup.module.css.js";import{cn as D}from"../../utils/cn.js";import{composeEventHandlers as G}from"../../utils/composeEvents.js";import{composeRefs as re}from"../../utils/composeRefs.js";import{useControlledStateWithCallback as ae}from"../../hooks/useControlledState.js";import{useLocale as ue}from"../../locales/localeContext.js";import{useRequiredContext as le}from"../../hooks/useRequiredContext.js";import{useRovingList as ie,ROVING_ITEM_ATTR as j}from"../../hooks/useRovingList.js";import{useTrackThumb as se}from"../../hooks/useTrackThumb.js";import{controlTrackClassName as de}from"../../utils/controlTrack.js";const M="data-button-group-value",V=te(null);function ne(r,e,i,d){return r==="button"||i==null?!!d:r==="toggle"?e===i:Array.isArray(e)&&e.includes(i)}const L=U(function({children:r,mode:e="button",variant:i="secondary",status:d="default",size:y="md",disabled:o=!1,readOnly:C=!1,borderless:A=!1,focusable:n=!0,width:F="auto",itemFit:N="equal",value:m,defaultValue:g,onChange:O,activateOnFocus:c=!0,"aria-label":v,className:I,onKeyDown:k,...h},E){const{t:f}=ue(),s=Y(null),[R,T]=J(null),l=C&&!o,H=e==="multi_toggle"?[]:"",[b,w]=ae(m,g??H,O),x=Q(a=>{if(o||l||e==="button")return;if(e==="toggle"){w(a);return}const u=Array.isArray(b)?b:[];w(u.includes(a)?u.filter(p=>p!==a):[...u,a])},[o,l,e,b,w]),K=X(()=>({mode:e,disabled:o,readOnly:l,focusable:n,selected:b,selectItem:x,focusedId:R,setFocusedId:T}),[o,n,R,l,e,x,b]),B=e==="toggle",q=se(s,B?`.${t.itemActive}`:"",b),P=ie("horizontal",a=>{if(T(a.dataset.itemId??""),e==="toggle"&&c){const u=a.getAttribute(M);u&&x(u)}});return Z(()=>{if(!n||o||l)return;const a=s.current;if(!a)return;const u=Array.from(a.querySelectorAll(`[${j}]:not([disabled])`));u.length!==0&&T(p=>p&&u.some(W=>W.dataset.itemId===p)?p:u[0].dataset.itemId??p)},[r,o,n,l]),S(V.Provider,{value:K,children:_("div",{ref:re(E,s),className:D(t.group,de(i,{readOnly:l}),t[i]??"",y!=="md"&&t[y],B&&t.modeToggle,d==="danger"&&t.statusDanger,A&&t.borderless,o&&t.disabled,F==="full"&&t.widthFull,N==="content"&&t.fitContent,I),...h,role:e==="toggle"?"radiogroup":"group","aria-label":v??f("buttonGroup.ariaLabel"),"aria-readonly":l||void 0,"aria-disabled":o||void 0,onKeyDown:G(k,n&&!o&&!l?P:void 0),children:[B&&S("div",{className:D(t.slider,q.ready&&t.sliderReady),style:q.style,"aria-hidden":"true"}),r]})})}),z=$.forwardRef(function({value:r,active:e,icon:i,children:d,disabled:y=!1,className:o,onClick:C,onFocus:A,"aria-label":n,...F},N){const m=ee(),{mode:g,disabled:O,readOnly:c,focusable:v,selected:I,selectItem:k,focusedId:h,setFocusedId:E}=le(V,"ButtonGroup.Item \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 ButtonGroup"),f=O||y,s=ne(g,I,r,e),R=!v||f||c?!1:g==="toggle"?s||I===""&&h===m:h===m;return _("button",{ref:N,type:"button",...F,[j]:"",...r!=null?{[M]:r}:{},"data-item-id":m,className:D(oe.control,t.item,s&&t.itemActive,c&&t.itemReadOnly,o),"aria-label":n??(typeof d=="string"?d:void 0),disabled:f,"aria-disabled":c||void 0,tabIndex:R?0:-1,...g==="toggle"?{role:"radio","aria-checked":s}:{"aria-pressed":s||void 0},onFocus:G(A,()=>{v&&!f&&!c&&E(m)}),onClick:G(C,()=>{f||c||r==null||k(r)}),children:[i,d]})});L.displayName="ButtonGroup",z.displayName="ButtonGroup.Item";const ce=Object.assign(L,{Root:L,Item:z});export{ce as ButtonGroup};
1
+ "use client";import{jsx as _,jsxs as j}from"react/jsx-runtime";import H,{forwardRef as U,useRef as Y,useState as J,useCallback as Q,useMemo as X,useLayoutEffect as Z,useId as ee,createContext as te}from"react";import oe from"../../styles/unstyledControl.module.css.js";import e from"./ButtonGroup.module.css.js";import{cn as G}from"../../utils/cn.js";import{composeEventHandlers as T}from"../../utils/composeEvents.js";import{composeRefs as re}from"../../utils/composeRefs.js";import{useControlledStateWithCallback as ae}from"../../hooks/useControlledState.js";import{useLocale as ue}from"../../locales/localeContext.js";import{useRequiredContext as le}from"../../hooks/useRequiredContext.js";import{useRovingList as ie,ROVING_ITEM_ATTR as M}from"../../hooks/useRovingList.js";import{useTrackThumb as se}from"../../hooks/useTrackThumb.js";const S="data-button-group-value",V=te(null);function de(r,t,s,d){return r==="button"||s==null?!!d:r==="toggle"?t===s:Array.isArray(t)&&t.includes(s)}const L=U(function({children:r,mode:t="button",variant:s="secondary",status:d="default",size:y="md",disabled:o=!1,readOnly:C=!1,borderless:A=!1,focusable:n=!0,width:F="auto",itemFit:N="equal",value:m,defaultValue:g,onChange:O,activateOnFocus:c=!0,"aria-label":v,className:I,onKeyDown:k,...h},w){const{t:f}=ue(),i=Y(null),[R,E]=J(null),l=C&&!o,K=t==="multi_toggle"?[]:"",[b,x]=ae(m,g??K,O),B=Q(a=>{if(o||l||t==="button")return;if(t==="toggle"){x(a);return}const u=Array.isArray(b)?b:[];x(u.includes(a)?u.filter(p=>p!==a):[...u,a])},[o,l,t,b,x]),P=X(()=>({mode:t,disabled:o,readOnly:l,focusable:n,selected:b,selectItem:B,focusedId:R,setFocusedId:E}),[o,n,R,l,t,B,b]),D=t==="toggle",q=se(i,D?`.${e.itemActive}`:"",b),W=ie("horizontal",a=>{if(E(a.dataset.itemId??""),t==="toggle"&&c){const u=a.getAttribute(S);u&&B(u)}});return Z(()=>{if(!n||o||l)return;const a=i.current;if(!a)return;const u=Array.from(a.querySelectorAll(`[${M}]:not([disabled])`));u.length!==0&&E(p=>p&&u.some($=>$.dataset.itemId===p)?p:u[0].dataset.itemId??p)},[r,o,n,l]),_(V.Provider,{value:P,children:j("div",{ref:re(w,i),className:G(e.group,e[s]??"",y!=="md"&&e[y],D&&e.modeToggle,d==="danger"&&e.statusDanger,A&&e.borderless,o&&e.disabled,l&&e.readOnly,F==="full"&&e.widthFull,N==="content"&&e.fitContent,I),...h,role:t==="toggle"?"radiogroup":"group","aria-label":v??f("buttonGroup.ariaLabel"),"aria-readonly":l||void 0,"aria-disabled":o||void 0,onKeyDown:T(k,n&&!o&&!l?W:void 0),children:[D&&_("div",{className:G(e.slider,q.ready&&e.sliderReady),style:q.style,"aria-hidden":"true"}),r]})})}),z=H.forwardRef(function({value:r,active:t,icon:s,children:d,disabled:y=!1,className:o,onClick:C,onFocus:A,"aria-label":n,...F},N){const m=ee(),{mode:g,disabled:O,readOnly:c,focusable:v,selected:I,selectItem:k,focusedId:h,setFocusedId:w}=le(V,"ButtonGroup.Item \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 ButtonGroup"),f=O||y,i=de(g,I,r,t),R=!v||f||c?!1:g==="toggle"?i||I===""&&h===m:h===m;return j("button",{ref:N,type:"button",...F,[M]:"",...r!=null?{[S]:r}:{},"data-item-id":m,className:G(oe.control,e.item,i&&e.itemActive,c&&e.itemReadOnly,o),"aria-label":n??(typeof d=="string"?d:void 0),disabled:f,"aria-disabled":c||void 0,tabIndex:R?0:-1,...g==="toggle"?{role:"radio","aria-checked":i}:{"aria-pressed":i||void 0},onFocus:T(A,()=>{v&&!f&&!c&&w(m)}),onClick:T(C,()=>{f||c||r==null||k(r)}),children:[s,d]})});L.displayName="ButtonGroup",z.displayName="ButtonGroup.Item";const ne=Object.assign(L,{Root:L,Item:z});export{ne as ButtonGroup};
@@ -1 +1 @@
1
- "use client";import{injectCss as t}from"../../utils/injectCss.js";var a=".Tgazn{--altum-button-group-spring:linear(0,0.009,0.035,0.076,0.129,0.192,0.264,0.341,0.421,0.503,0.583,0.661,0.734,0.801,0.86,0.91,0.951,0.981,1.002,1.014,1.019,1.019,1.016,1.011,1.006,1.001,0.997,0.995,0.994,0.995,0.996,0.998,1,1);--altum-button-group-height:var(--altum-control-height-md);--altum-button-group-pad:var(--altum-control-inset);--altum-button-group-font-size:var(--altum-g-font-size-base);--altum-button-group-item-min:var(--altum-button-group-item-min-md);--altum-button-group-item-pad:var(--altum-g-space-2);--altum-button-group-icon-size:var(--altum-control-icon-size-md);--altum-bg-thumb:var(--altum-color-surface-active);--altum-bg-thumb-shadow:var(--altum-color-segmented-slider-shadow);--altum-fg-item:var(--altum-color-type-secondary);--altum-fg-item-on:var(--altum-color-type);--altum-bg-item-hover:var(--altum-color-surface-hover);align-items:stretch;border-radius:var(--altum-g-radius);box-sizing:border-box;display:inline-flex;font-size:var(--altum-button-group-font-size);gap:var(--altum-g-space-1);height:var(--altum-button-group-height);max-width:100%;padding:var(--altum-button-group-pad);position:relative;transition:var(--altum-transition-smooth);vertical-align:middle}.Tgazn.rss-L{--altum-fg-item:var(--altum-color-brand-text);--altum-fg-item-on:var(--altum-color-brand-text);--altum-bg-item-hover:color-mix(in srgb,var(--altum-g-color-black) 16%,var(--altum-color-brand));--altum-bg-thumb:var(--altum-color-brand-active);--altum-bg-thumb-shadow:inset 0 0 0 1px var(--altum-color-brand-border)}.Tgazn.j78gV.rss-L{--altum-fg-item:color-mix(in srgb,var(--altum-color-brand-text) 72%,#0000)}.Tgazn._3VCs2{--altum-bg-item-hover:color-mix(in srgb,var(--altum-color-brand) 28%,#0000);--altum-bg-thumb:var(--altum-color-button-tinted-bg-active);--altum-bg-thumb-shadow:inset 0 0 0 1px var(--altum-color-button-tinted-border)}.Tgazn.g1MNC{--altum-bg-item-hover:color-mix(in srgb,var(--altum-color-text-secondary) 12%,#0000);--altum-bg-thumb:color-mix(in srgb,var(--altum-color-text-secondary) 18%,var(--altum-color-surface))}.Tgazn.Ep0ha,.Tgazn.dfR5t,.Tgazn.zBpYa{--altum-fg-item:var(--altum-color-button-ghost-text);--altum-fg-item-on:var(--altum-color-button-ghost-text-hover);--altum-bg-item-hover:var(--altum-color-button-ghost-hover-bg);--altum-bg-thumb:var(--altum-color-segmented-ghost-slider-bg)}.Tgazn.dfR5t,.Tgazn.zBpYa{gap:0;padding:0}.Tgazn.zBpYa .otlEF{bottom:0;top:0}.Tgazn.f5kUO{border:none}.Tgazn.noOCG{--altum-fg-item:var(--altum-color-danger-text);--altum-fg-item-on:var(--altum-color-danger-text);--altum-bg-thumb:var(--altum-color-danger-bg-hover);--altum-bg-thumb-shadow:var(--altum-color-danger-shadow)}.Tgazn.noOCG.rss-L{background-color:var(--altum-color-danger-bg-solid);box-shadow:var(--altum-color-danger-shadow)}.Tgazn.noOCG._3VCs2,.Tgazn.noOCG.g1MNC{--altum-fg-item:var(--altum-color-danger-text-secondary);--altum-fg-item-on:var(--altum-color-danger-text-secondary-hover);--altum-bg-thumb:var(--altum-color-danger-bg-secondary-hover);--altum-bg-thumb-shadow:var(--altum-color-danger-shadow-secondary);background-color:var(--altum-color-danger-bg-secondary);border-color:var(--altum-color-button-border-danger-secondary)}.Tgazn.noOCG.Ep0ha,.Tgazn.noOCG.dfR5t{--altum-fg-item:var(--altum-color-danger-text-secondary);--altum-fg-item-on:var(--altum-color-danger-text-secondary-hover);border-color:var(--altum-color-button-border-danger-secondary)}.Tgazn.TCMDW{display:flex;width:100%}.Tgazn.TCMDW>._-1Y6t{flex:1 1 0;min-width:0}.Tgazn.hRI2x{--altum-button-group-height:var(--altum-control-height-sm);--altum-button-group-font-size:var(--altum-g-font-size-2xs);--altum-button-group-item-min:var(--altum-button-group-item-min-sm);--altum-button-group-item-pad:var(--altum-g-space-1);--altum-button-group-icon-size:var(--altum-control-icon-size-sm)}.Tgazn._4FjZc{--altum-button-group-height:var(--altum-control-height-lg);--altum-button-group-pad:var(--altum-g-space-1);--altum-button-group-font-size:var(--altum-g-font-size-lg);--altum-button-group-item-min:var(--altum-button-group-item-min-lg);--altum-button-group-item-pad:var(--altum-g-space-3);--altum-button-group-icon-size:var(--altum-control-icon-size-lg)}.Tgazn._73VqR{cursor:not-allowed;opacity:var(--altum-opacity-disabled)}.Tgazn.j78gV{gap:var(--altum-control-inset)}.Tgazn.j78gV ._-1Y6t{overflow:hidden}:is(.Tgazn.j78gV ._-1Y6t):hover:not(:disabled):not(.nQoWy){background-color:var(--altum-bg-item-hover)}.nQoWy:is(.Tgazn.j78gV ._-1Y6t){background:#0000;box-shadow:none}:is(.Tgazn.j78gV ._-1Y6t):active:not(:disabled){transform:scale(.98)}.Tgazn.j78gV.hRI2x ._-1Y6t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Tgazn.j78gV._4FjZc ._-1Y6t{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;white-space:normal}.Tgazn.yscI->._-1Y6t{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:auto}._-1Y6t{align-items:center;align-self:stretch;border-radius:calc(var(--altum-g-radius) - 2px);color:var(--altum-fg-item);display:inline-flex;font-size:var(--altum-button-group-font-size);font-weight:var(--altum-g-font-weight-medium,500);gap:var(--altum-g-space-1);height:100%;justify-content:center;line-height:1;min-height:0;min-width:var(--altum-button-group-item-min);padding:0 var(--altum-button-group-item-pad);position:relative;white-space:nowrap;z-index:var(--altum-g-z-raised-above)}._-1Y6t:hover:not(:disabled){background-color:var(--altum-bg-item-hover);color:var(--altum-fg-item-on)}._-1Y6t:disabled{opacity:var(--altum-opacity-disabled)}._-1Y6t svg{flex-shrink:0;height:var(--altum-button-group-icon-size);width:var(--altum-button-group-icon-size)}.nQoWy{background-color:var(--altum-bg-thumb);box-shadow:var(--altum-bg-thumb-shadow);color:var(--altum-fg-item-on)}.ZOyZ9{cursor:default}.otlEF{background-color:var(--altum-bg-thumb);border-radius:calc(var(--altum-g-radius) - 2px);bottom:var(--altum-button-group-pad);box-shadow:var(--altum-bg-thumb-shadow);left:0;pointer-events:none;position:absolute;top:var(--altum-button-group-pad);transition:none;z-index:var(--altum-g-z-raised)}.otlEF.hd-IQ{transition:transform .45s var(--altum-button-group-spring),width .45s var(--altum-button-group-spring)}@media (prefers-reduced-motion:reduce){.otlEF.hd-IQ{transition:none}.j78gV ._-1Y6t:active:not(:disabled){transform:none}}";const o={group:"Tgazn",primary:"rss-L",modeToggle:"j78gV",tinted:"_3VCs2",secondary:"g1MNC",ghost:"Ep0ha",link:"dfR5t",plain:"zBpYa",slider:"otlEF",borderless:"f5kUO",statusDanger:"noOCG",widthFull:"TCMDW",item:"_-1Y6t",sm:"hRI2x",lg:"_4FjZc",disabled:"_73VqR",itemActive:"nQoWy",fitContent:"yscI-",itemReadOnly:"ZOyZ9",sliderReady:"hd-IQ"};t(a);export{o as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var a=".Tgazn{--altum-button-group-spring:linear(0,0.009,0.035,0.076,0.129,0.192,0.264,0.341,0.421,0.503,0.583,0.661,0.734,0.801,0.86,0.91,0.951,0.981,1.002,1.014,1.019,1.019,1.016,1.011,1.006,1.001,0.997,0.995,0.994,0.995,0.996,0.998,1,1);--altum-button-group-height:var(--altum-control-height-md);--altum-button-group-pad:var(--altum-control-inset);--altum-button-group-font-size:var(--altum-g-font-size-base);--altum-button-group-item-min:var(--altum-button-group-item-min-md);--altum-button-group-item-pad:var(--altum-g-space-2);--altum-button-group-icon-size:var(--altum-control-icon-size-md);--altum-bg-thumb:var(--altum-color-surface-active);--altum-bg-thumb-shadow:var(--altum-color-segmented-slider-shadow);--altum-fg-item:var(--altum-color-type-secondary);--altum-fg-item-on:var(--altum-color-type);--altum-bg-item-hover:var(--altum-color-surface-hover);align-items:stretch;border-radius:var(--altum-g-radius);box-sizing:border-box;display:inline-flex;font-size:var(--altum-button-group-font-size);gap:var(--altum-g-space-1);height:var(--altum-button-group-height);max-width:100%;padding:var(--altum-button-group-pad);position:relative;transition:var(--altum-transition-smooth);vertical-align:middle}.Tgazn.rss-L{--altum-fg-item:var(--altum-color-brand-text);--altum-fg-item-on:var(--altum-color-brand-text);--altum-bg-item-hover:color-mix(in srgb,var(--altum-g-color-black) 16%,var(--altum-color-brand));--altum-bg-thumb:var(--altum-color-brand-active);--altum-bg-thumb-shadow:inset 0 0 0 1px var(--altum-color-brand-border);background-color:var(--altum-color-brand);border:1px solid #0000;box-shadow:var(--altum-shadow-brand)}.Tgazn.j78gV.rss-L{--altum-fg-item:color-mix(in srgb,var(--altum-color-brand-text) 72%,#0000)}.Tgazn._3VCs2{--altum-bg-item-hover:color-mix(in srgb,var(--altum-color-brand) 28%,#0000);--altum-bg-thumb:var(--altum-color-button-tinted-bg-active);--altum-bg-thumb-shadow:inset 0 0 0 1px var(--altum-color-button-tinted-border);background-color:var(--altum-color-button-tinted-bg);border:1px solid var(--altum-color-button-tinted-border);box-shadow:none}.Tgazn.g1MNC{--altum-bg-item-hover:color-mix(in srgb,var(--altum-color-text-secondary) 12%,#0000);--altum-bg-thumb:color-mix(in srgb,var(--altum-color-text-secondary) 18%,var(--altum-color-surface));background-color:var(--altum-color-button-secondary-bg);border:1px solid var(--altum-color-button-secondary-border);box-shadow:none}.Tgazn.Ep0ha,.Tgazn.dfR5t,.Tgazn.zBpYa{--altum-fg-item:var(--altum-color-button-ghost-text);--altum-fg-item-on:var(--altum-color-button-ghost-text-hover);--altum-bg-item-hover:var(--altum-color-button-ghost-hover-bg);--altum-bg-thumb:var(--altum-color-segmented-ghost-slider-bg)}.Tgazn.Ep0ha{border:1px solid var(--altum-color-button-secondary-border)}.Tgazn.Ep0ha,.Tgazn.dfR5t,.Tgazn.zBpYa{background-color:initial;box-shadow:none}.Tgazn.dfR5t,.Tgazn.zBpYa{border:1px solid #0000;gap:0;padding:0}.Tgazn.zBpYa .otlEF{bottom:0;top:0}.Tgazn.f5kUO{border:none}.Tgazn.uDoMb{background-color:var(--altum-field-bg-readonly);border:1px dashed var(--altum-field-border-readonly);box-shadow:none;cursor:default}.Tgazn.noOCG{--altum-fg-item:var(--altum-color-danger-text);--altum-fg-item-on:var(--altum-color-danger-text);--altum-bg-thumb:var(--altum-color-danger-bg-hover);--altum-bg-thumb-shadow:var(--altum-color-danger-shadow)}.Tgazn.noOCG.rss-L{background-color:var(--altum-color-danger-bg-solid);box-shadow:var(--altum-color-danger-shadow)}.Tgazn.noOCG._3VCs2,.Tgazn.noOCG.g1MNC{--altum-fg-item:var(--altum-color-danger-text-secondary);--altum-fg-item-on:var(--altum-color-danger-text-secondary-hover);--altum-bg-thumb:var(--altum-color-danger-bg-secondary-hover);--altum-bg-thumb-shadow:var(--altum-color-danger-shadow-secondary);background-color:var(--altum-color-danger-bg-secondary);border-color:var(--altum-color-button-border-danger-secondary)}.Tgazn.noOCG.Ep0ha,.Tgazn.noOCG.dfR5t{--altum-fg-item:var(--altum-color-danger-text-secondary);--altum-fg-item-on:var(--altum-color-danger-text-secondary-hover);border-color:var(--altum-color-button-border-danger-secondary)}.Tgazn.TCMDW{display:flex;width:100%}.Tgazn.TCMDW>._-1Y6t{flex:1 1 0;min-width:0}.Tgazn.hRI2x{--altum-button-group-height:var(--altum-control-height-sm);--altum-button-group-font-size:var(--altum-g-font-size-2xs);--altum-button-group-item-min:var(--altum-button-group-item-min-sm);--altum-button-group-item-pad:var(--altum-g-space-1);--altum-button-group-icon-size:var(--altum-control-icon-size-sm)}.Tgazn._4FjZc{--altum-button-group-height:var(--altum-control-height-lg);--altum-button-group-pad:var(--altum-g-space-1);--altum-button-group-font-size:var(--altum-g-font-size-lg);--altum-button-group-item-min:var(--altum-button-group-item-min-lg);--altum-button-group-item-pad:var(--altum-g-space-3);--altum-button-group-icon-size:var(--altum-control-icon-size-lg)}.Tgazn._73VqR{cursor:not-allowed;opacity:var(--altum-opacity-disabled)}.Tgazn.j78gV{gap:var(--altum-control-inset)}.Tgazn.j78gV ._-1Y6t{overflow:hidden}:is(.Tgazn.j78gV ._-1Y6t):hover:not(:disabled):not(.nQoWy){background-color:var(--altum-bg-item-hover)}.nQoWy:is(.Tgazn.j78gV ._-1Y6t){background:#0000;box-shadow:none}:is(.Tgazn.j78gV ._-1Y6t):active:not(:disabled){transform:scale(.98)}.Tgazn.j78gV.hRI2x ._-1Y6t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Tgazn.j78gV._4FjZc ._-1Y6t{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;white-space:normal}.Tgazn.yscI->._-1Y6t{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:auto}._-1Y6t{align-items:center;align-self:stretch;border-radius:calc(var(--altum-g-radius) - var(--altum-control-inset));color:var(--altum-fg-item);display:inline-flex;font-size:var(--altum-button-group-font-size);font-weight:var(--altum-g-font-weight-medium,500);gap:var(--altum-g-space-1);height:100%;justify-content:center;line-height:1;min-height:0;min-width:var(--altum-button-group-item-min);padding:0 var(--altum-button-group-item-pad);position:relative;white-space:nowrap;z-index:var(--altum-g-z-raised-above)}._-1Y6t:hover:not(:disabled){background-color:var(--altum-bg-item-hover);color:var(--altum-fg-item-on)}._-1Y6t:disabled{opacity:var(--altum-opacity-disabled)}._-1Y6t svg{flex-shrink:0;height:var(--altum-button-group-icon-size);width:var(--altum-button-group-icon-size)}.nQoWy{background-color:var(--altum-bg-thumb);box-shadow:var(--altum-bg-thumb-shadow);color:var(--altum-fg-item-on)}.ZOyZ9{cursor:default}.otlEF{background-color:var(--altum-bg-thumb);border-radius:calc(var(--altum-g-radius) - var(--altum-control-inset));bottom:var(--altum-button-group-pad);box-shadow:var(--altum-bg-thumb-shadow);left:0;pointer-events:none;position:absolute;top:var(--altum-button-group-pad);transition:none;z-index:var(--altum-g-z-raised)}.otlEF.hd-IQ{transition:transform .45s var(--altum-button-group-spring),width .45s var(--altum-button-group-spring)}@media (prefers-reduced-motion:reduce){.otlEF.hd-IQ{transition:none}.j78gV ._-1Y6t:active:not(:disabled){transform:none}}";const o={group:"Tgazn",primary:"rss-L",modeToggle:"j78gV",tinted:"_3VCs2",secondary:"g1MNC",ghost:"Ep0ha",link:"dfR5t",plain:"zBpYa",slider:"otlEF",borderless:"f5kUO",readOnly:"uDoMb",statusDanger:"noOCG",widthFull:"TCMDW",item:"_-1Y6t",sm:"hRI2x",lg:"_4FjZc",disabled:"_73VqR",itemActive:"nQoWy",fitContent:"yscI-",itemReadOnly:"ZOyZ9",sliderReady:"hd-IQ"};t(a);export{o as default};
@@ -1 +1 @@
1
- "use client";import{jsx as f}from"react/jsx-runtime";import{forwardRef as p}from"react";import u from"../../styles/overlayClose.module.css.js";import{cn as d}from"../../utils/cn.js";import{ButtonBase as h}from"../../base/ButtonBase/ButtonBase.js";import t from"../../base/ButtonBase/ButtonBase.module.css.js";const e=p(function({variant:r="ghost",shape:n="square",appearance:c="default",icon:i,children:a,className:s,...m},l){const o=c==="diskClose";return f(h,{ref:l,variant:o?"ghost":r,className:d(o?u.close:r==="link"?"":t.icon,!o&&n==="circle"&&t.circle,s),...m,children:i??a})});e.displayName="ButtonIcon";export{e as ButtonIcon};
1
+ "use client";import{jsx as d}from"react/jsx-runtime";import{forwardRef as h,isValidElement as N,cloneElement as B}from"react";import{Button as g}from"../Button/Button.js";import n from"../../styles/overlayClose.module.css.js";import i from"./ButtonIcon.module.css.js";import{cn as a}from"../../utils/cn.js";function k(r){if(!N(r))return r;const e=r;return B(e,{className:a(n.icon,e.props.className),"aria-hidden":!0})}const c=h(function({variant:r="ghost",shape:e="square",appearance:s="default",icon:m,children:l,className:f,...p},u){const o=s==="diskClose",t=m??l;return d(g,{ref:u,variant:o?"ghost":r,className:a(o?n.close:r==="link"?"":i.root,!o&&e==="circle"&&i.circle,f),...p,children:o?k(t):t})});c.displayName="ButtonIcon";export{c as ButtonIcon};
@@ -0,0 +1 @@
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var a=".omUD9{--altum-btn-pad-x:0;aspect-ratio:1;width:auto}.omUD9 svg{transform:translateY(.5px)}.omUD9.z-iaD{border-radius:50%}";const o={root:"omUD9",circle:"z-iaD"};t(a);export{o as default};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".oplxF{--altum-calendar-width:280px;box-sizing:border-box;color:var(--altum-color-input-text);font-family:var(--altum-g-font-family-ui);max-width:100%;-webkit-user-select:none;user-select:none;width:var(--altum-calendar-width)}.oplxF .OimmF{color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-sm);font-weight:var(--altum-g-font-weight-semibold);margin-bottom:var(--altum-g-space-3)}.oplxF .jixIO{align-items:center;display:inline-flex;gap:var(--altum-g-space-1)}.oplxF ._95lLK{color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);padding:var(--altum-control-inset) var(--altum-g-space-1)}.oplxF .bYde3{display:flex;flex-direction:column}.oplxF .Afnz6{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-xs);margin-bottom:var(--altum-g-space-2)}.oplxF .J-3Vr{align-content:stretch;display:grid;gap:var(--altum-g-space-1);min-height:calc(var(--altum-control-height-sm)*6);text-align:center}.oplxF .VrPnd{grid-template-columns:repeat(3,1fr)}.oplxF .vo94R{grid-template-columns:repeat(4,1fr)}.oplxF .tNYuD{font-weight:var(--altum-g-font-weight-medium,500);padding:var(--altum-g-space-2) var(--altum-g-space-1)}.oplxF .dF8j7,.oplxF .tNYuD{font-size:var(--altum-g-font-size-2xs);width:100%}.oplxF .dF8j7{align-items:center;aspect-ratio:1;display:inline-flex;justify-content:center}.oplxF .dF8j7.eoULr{background-color:color-mix(in srgb,var(--altum-color-brand) 16%,#0000);border-radius:0}.oplxF .dF8j7.Jusrw{border-radius:var(--altum-g-radius-sm) 0 0 var(--altum-g-radius-sm)}.H5X-t:is(.oplxF .dF8j7.Jusrw){border-radius:var(--altum-g-radius-sm)}.oplxF .dF8j7.H5X-t{border-radius:0 var(--altum-g-radius-sm) var(--altum-g-radius-sm) 0}.oplxF .zOR5-{cursor:default;pointer-events:none}@media (max-width:768px){.oplxF{width:100%}}";const e={calendar:"oplxF",calendarHeader:"OimmF",calendarTitleSplit:"jixIO",calendarTitleButton:"_95lLK",calendarBody:"bYde3",calendarWeekdays:"Afnz6",calendarPeriodGrid:"J-3Vr",calendarMonths:"VrPnd",calendarYears:"vo94R",periodCell:"tNYuD",dayCell:"dF8j7",dayInRange:"eoULr",dayRangeStart:"Jusrw",dayRangeEnd:"H5X-t",dayEmpty:"zOR5-"};a(t);export{e as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".oplxF{--altum-calendar-width:280px;box-sizing:border-box;color:var(--altum-color-input-text);font-family:var(--altum-g-font-family-ui);max-width:100%;-webkit-user-select:none;user-select:none;width:var(--altum-calendar-width)}.oplxF .OimmF{color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-sm);font-weight:var(--altum-g-font-weight-semibold);margin-bottom:var(--altum-g-space-3)}.oplxF .jixIO{align-items:center;display:inline-flex;gap:var(--altum-g-space-1)}.oplxF ._95lLK{color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);padding:var(--altum-control-inset) var(--altum-g-space-1)}.oplxF .bYde3{display:flex;flex-direction:column}.oplxF .Afnz6{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-xs);margin-bottom:var(--altum-g-space-2)}.oplxF .J-3Vr{align-content:stretch;display:grid;gap:var(--altum-g-space-1);min-height:calc(var(--altum-control-height-sm)*6);text-align:center}.oplxF .VrPnd{grid-template-columns:repeat(3,1fr)}.oplxF .vo94R{grid-template-columns:repeat(4,1fr)}.oplxF .tNYuD{font-weight:var(--altum-g-font-weight-medium);padding:var(--altum-g-space-2) var(--altum-g-space-1)}.oplxF .dF8j7,.oplxF .tNYuD{font-size:var(--altum-g-font-size-2xs);width:100%}.oplxF .dF8j7{align-items:center;aspect-ratio:1;display:inline-flex;justify-content:center}.oplxF .dF8j7.eoULr{background-color:color-mix(in srgb,var(--altum-color-brand) 16%,#0000);border-radius:0}.oplxF .dF8j7.Jusrw{border-radius:var(--altum-g-radius-sm) 0 0 var(--altum-g-radius-sm)}.H5X-t:is(.oplxF .dF8j7.Jusrw){border-radius:var(--altum-g-radius-sm)}.oplxF .dF8j7.H5X-t{border-radius:0 var(--altum-g-radius-sm) var(--altum-g-radius-sm) 0}.oplxF .zOR5-{cursor:default;pointer-events:none}@media (max-width:768px){.oplxF{width:100%}}";const e={calendar:"oplxF",calendarHeader:"OimmF",calendarTitleSplit:"jixIO",calendarTitleButton:"_95lLK",calendarBody:"bYde3",calendarWeekdays:"Afnz6",calendarPeriodGrid:"J-3Vr",calendarMonths:"VrPnd",calendarYears:"vo94R",periodCell:"tNYuD",dayCell:"dF8j7",dayInRange:"eoULr",dayRangeStart:"Jusrw",dayRangeEnd:"H5X-t",dayEmpty:"zOR5-"};a(t);export{e as default};
@@ -1 +1 @@
1
- "use client";import{jsx as o,jsxs as v,Fragment as g}from"react/jsx-runtime";import{forwardRef as m}from"react";import{cn as p}from"../../utils/cn.js";import{composeEventHandlers as b}from"../../utils/composeEvents.js";import{useLocale as Y}from"../../locales/localeContext.js";import{useCalendarContext as h}from"./Calendar.context.js";import{CalendarMonthsPanel as R,CalendarYearsPanel as D,CalendarDaysPanel as E}from"./Calendar.views.js";import{YEARS_PER_PAGE as H}from"./Calendar.types.js";import P from"../../styles/unstyledControl.module.css.js";import u from"../../styles/calendarChrome.module.css.js";import C from"./Calendar.module.css.js";import{ChevronButton as M}from"../../base/ChevronButton/ChevronButton.js";const k=m(function({className:e,children:t,onClick:r,...n},l){return o("div",{ref:l,className:p(C.calendar,e),onClick:b(r,s=>{s.stopPropagation()}),...n,children:t})});k.displayName="Calendar.Root";const x=m(function({className:e,children:t,...r},n){return o("div",{ref:n,className:p(u.header,C.calendarHeader,e),...r,children:t})});x.displayName="Calendar.Header";const B=m(function({className:e,...t},r){const{messages:n,t:l}=Y(),s=n.calendar.months,{year:a,month:f,view:d,yearPageStart:c,setView:i}=h("Calendar.Title"),N=s[f]??"",y=p(P.control,u.cell,C.calendarTitleButton);return v("span",{ref:r,className:p(C.calendarTitle,d==="days"?C.calendarTitleSplit:"",e),...t,children:[d==="years"&&`${c} \u2013 ${c+H-1}`,d==="months"&&o("button",{type:"button",className:y,onClick:()=>i("years"),"aria-label":l("calendar.selectYear",{year:a}),children:a}),d==="days"&&v(g,{children:[o("button",{type:"button",className:y,onClick:()=>i("months"),"aria-label":l("calendar.selectMonth",{month:N}),children:N}),o("button",{type:"button",className:y,onClick:()=>i("years"),"aria-label":l("calendar.selectYear",{year:a}),children:a})]})]})});B.displayName="Calendar.Title";const w=m(function({direction:e,className:t,"aria-label":r,onClick:n,...l},s){const{messages:a}=Y(),{view:f,shiftView:d}=h("Calendar.Nav"),c=e==="prev",i=f==="days"?c?a.calendar.prevMonth:a.calendar.nextMonth:f==="months"?c?a.calendar.prevYear:a.calendar.nextYear:c?a.calendar.prevYears:a.calendar.nextYears;return o(M,{ref:s,direction:e,className:p(P.control,u.navBtn,t),onClick:b(n,()=>d(c?-1:1)),"aria-label":r??i,...l})});w.displayName="Calendar.Nav";const T=m(function({className:e,renderDayCell:t,...r},n){const{view:l,renderDayCell:s}=h("Calendar.Body");return l==="months"?o(R,{ref:n,className:e,...r}):l==="years"?o(D,{ref:n,className:e,...r}):o(E,{ref:n,className:e,renderDayCell:t??s,...r})});T.displayName="Calendar.Body";export{T as CalendarBody,x as CalendarHeader,w as CalendarNav,k as CalendarRoot,B as CalendarTitle};
1
+ "use client";import{jsx as o,jsxs as v,Fragment as g}from"react/jsx-runtime";import{forwardRef as m}from"react";import{cn as p}from"../../utils/cn.js";import{composeEventHandlers as b}from"../../utils/composeEvents.js";import{useLocale as Y}from"../../locales/localeContext.js";import{useCalendarContext as h}from"./Calendar.context.js";import{CalendarMonthsPanel as R,CalendarYearsPanel as D,CalendarDaysPanel as E}from"./Calendar.views.js";import{YEARS_PER_PAGE as H}from"./Calendar.types.js";import P from"../../styles/unstyledControl.module.css.js";import u from"../../styles/calendarChrome.module.css.js";import C from"./Calendar.module.css.js";import{ChevronButton as M}from"../../base/ChevronButton/ChevronButton.js";const k=m(function({className:e,children:t,onClick:r,...n},l){return o("div",{ref:l,className:p(C.calendar,e),onClick:b(r,s=>{s.stopPropagation()}),...n,children:t})});k.displayName="Calendar.Root";const x=m(function({className:e,children:t,...r},n){return o("div",{ref:n,className:p(u.header,C.calendarHeader,e),...r,children:t})});x.displayName="Calendar.Header";const T=m(function({className:e,...t},r){const{messages:n,t:l}=Y(),s=n.calendar.months,{year:a,month:f,view:d,yearPageStart:c,setView:i}=h("Calendar.Title"),N=s[f]??"",y=p(P.control,u.cell,C.calendarTitleButton);return v("span",{ref:r,className:p(C.calendarTitle,d==="days"?C.calendarTitleSplit:"",e),...t,children:[d==="years"&&`${c} \u2013 ${c+H-1}`,d==="months"&&o("button",{type:"button",className:y,onClick:()=>i("years"),"aria-label":l("calendar.selectYear",{year:a}),children:a}),d==="days"&&v(g,{children:[o("button",{type:"button",className:y,onClick:()=>i("months"),"aria-label":l("calendar.selectMonth",{month:N}),children:N}),o("button",{type:"button",className:y,onClick:()=>i("years"),"aria-label":l("calendar.selectYear",{year:a}),children:a})]})]})});T.displayName="Calendar.Title";const w=m(function({direction:e,className:t,"aria-label":r,onClick:n,...l},s){const{messages:a}=Y(),{view:f,shiftView:d}=h("Calendar.Nav"),c=e==="prev",i=f==="days"?c?a.calendar.prevMonth:a.calendar.nextMonth:f==="months"?c?a.calendar.prevYear:a.calendar.nextYear:c?a.calendar.prevYears:a.calendar.nextYears;return o(M,{ref:s,direction:e,className:p(P.control,u.navBtn,t),onClick:b(n,()=>d(c?-1:1)),"aria-label":r??i,...l})});w.displayName="Calendar.Nav";const B=m(function({className:e,renderDayCell:t,...r},n){const{view:l,renderDayCell:s}=h("Calendar.Body");return l==="months"?o(R,{ref:n,className:e,...r}):l==="years"?o(D,{ref:n,className:e,...r}):o(E,{ref:n,className:e,renderDayCell:t??s,...r})});B.displayName="Calendar.Body";export{B as CalendarBody,x as CalendarHeader,w as CalendarNav,k as CalendarRoot,T as CalendarTitle};
@@ -1 +1 @@
1
- "use client";function i(t,e){const n=new Date(t,e+1,0).getDate();let a=new Date(t,e,1).getDay()-1;a<0&&(a=6);const r=[];for(let o=0;o<a;o++)r.push({day:0,isEmpty:!0,date:null});for(let o=1;o<=n;o++)r.push({day:o,isEmpty:!1,date:new Date(t,e,o)});return r}function g(t,e){return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()}function s(t,e){const n=t.getFullYear()-e.getFullYear();if(n)return n<0?-1:1;const a=t.getMonth()-e.getMonth();if(a)return a<0?-1:1;const r=t.getDate()-e.getDate();return r<0?-1:r>0?1:0}function D(t,e,n){return!e||!n?!1:s(t,e)>0&&s(t,n)<0}function f(t,e){const n=u(e);return!t.start||t.start&&t.end?{start:n,end:void 0}:s(n,t.start)<0?{start:n,end:u(t.start)}:{start:u(t.start),end:n}}function y(t){return g(t,new Date)}function u(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function c(t,e){const n=u(t);return n.setDate(n.getDate()+e),n}function d(t,e=1){const n=u(t),a=n.getDay(),r=e===1?a===0?-6:1-a:-a;return c(n,r)}function h(t,e){const n=u(t);return Array.from({length:Math.max(1,e)},(a,r)=>c(n,r))}function M(t,e){return`${e[t.getMonth()]??""} ${t.getFullYear()}`}function l(t,e=1){return e===1?[...t]:[t[6]??"",...t.slice(0,6)]}function m(t,e=1,n){const a=l(n,e),r=e===1?t.getDay()===0?6:t.getDay()-1:t.getDay();return a[r]??""}export{c as addDays,h as buildDayStrip,i as buildMonthDays,s as compareDay,M as formatMonthYear,D as isDateInRange,g as isSameDay,y as isToday,f as selectNextRange,u as startOfDay,d as startOfWeek,m as weekdayLabelFor,l as weekdayLabels};
1
+ "use client";import{startOfDay as s,addDays as i,isSameDay as y,compareDay as u}from"../../utils/date.js";import{getWeekStart as x}from"../../utils/date.js";function f(t,a){const e=new Date(t,a+1,0).getDate();let o=new Date(t,a,1).getDay()-1;o<0&&(o=6);const n=[];for(let r=0;r<o;r++)n.push({day:0,isEmpty:!0,date:null});for(let r=1;r<=e;r++)n.push({day:r,isEmpty:!1,date:new Date(t,a,r)});return n}function l(t,a,e){return!a||!e?!1:u(t,a)>0&&u(t,e)<0}function d(t,a){const e=s(a);return!t.start||t.start&&t.end?{start:e,end:void 0}:u(e,t.start)<0?{start:e,end:s(t.start)}:{start:s(t.start),end:e}}function D(t){return y(t,new Date)}function g(t,a){const e=s(t);return Array.from({length:Math.max(1,a)},(o,n)=>i(e,n))}function m(t,a){return`${a[t.getMonth()]??""} ${t.getFullYear()}`}function c(t,a=1){return a===1?[...t]:[t[6]??"",...t.slice(0,6)]}function p(t,a=1,e){const o=c(e,a),n=a===1?t.getDay()===0?6:t.getDay()-1:t.getDay();return o[n]??""}export{i as addDays,g as buildDayStrip,f as buildMonthDays,u as compareDay,m as formatMonthYear,x as getWeekStart,l as isDateInRange,y as isSameDay,D as isToday,d as selectNextRange,s as startOfDay,p as weekdayLabelFor,c as weekdayLabels};
@@ -1 +1 @@
1
- "use client";import{jsx as d,jsxs as T}from"react/jsx-runtime";import{forwardRef as S,useRef as j}from"react";import{isSameDay as w,isDateInRange as O,isToday as U,selectNextRange as V}from"./Calendar.utils.js";import{getGridIndex as W,focusElement as _}from"../../utils/a11y.js";import{cn as k}from"../../utils/cn.js";import{useLocale as x}from"../../locales/localeContext.js";import{useCalendarContext as B}from"./Calendar.context.js";import{YEARS_PER_PAGE as A}from"./Calendar.types.js";import F from"../../styles/unstyledControl.module.css.js";import u from"../../styles/calendarChrome.module.css.js";import t from"./Calendar.module.css.js";const I=S(function({className:y,label:o,columnsClass:f,items:s,...c},i){return d("div",{ref:i,className:k(t.calendarPeriodGrid,f,y),role:"grid","aria-label":o,...c,children:s.map(a=>d("button",{type:"button",role:"gridcell",className:k(F.control,u.cell,t.periodCell,a.selected?u.selected:"",a.current&&!a.selected?u.today:""),"aria-selected":a.selected,"aria-label":a.ariaLabel,onClick:a.onSelect,children:a.label},a.key))})}),q=S(function({className:y,renderDayCell:o,...f},s){const{messages:c}=x(),i=c.calendar.months,a=c.calendar.weekdaysShort,{selectionMode:m,value:l,onChange:N,rangeValue:r,onRangeChange:n,year:g,month:$,days:v,shiftView:h}=B("Calendar.Body"),D=j(null),p=m==="range",L=p?r.end??r.start:l;return T("div",{ref:s,className:k(t.calendarBody,y),...f,children:[d("div",{className:k(u.weekGrid,t.calendarWeekdays),"aria-hidden":"true",children:a.map(e=>d("div",{children:e},e))}),d("div",{ref:D,className:u.weekGrid,role:"grid","aria-label":`${i[$]??""} ${g}`,onKeyDown:e=>{if(e.key==="PageUp"||e.key==="PageDown"){e.preventDefault(),h(e.key==="PageUp"?-1:1);return}const C=Array.from(D.current?.querySelectorAll("button")??[]),b=W(C.indexOf(document.activeElement),C.length,e.key,7);b!==null&&(e.preventDefault(),_(C[b]))},children:v.map((e,C)=>{if(e.isEmpty||!e.date)return d("div",{className:t.dayEmpty,role:"presentation"},`empty-${C}`);const b=!!(p&&r.start&&w(r.start,e.date)),E=!!(p&&r.end&&w(r.end,e.date)),Y=!!(p&&O(e.date,r.start,r.end)),R=p?b||E:l?w(l,e.date):!1,P=U(e.date),G=R||!L&&v.findIndex(M=>!M.isEmpty&&M.date)===C;return d("button",{type:"button",role:"gridcell",tabIndex:G?0:-1,className:k(F.control,u.cell,t.dayCell,R?u.selected:"",Y?t.dayInRange:"",b?t.dayRangeStart:"",E?t.dayRangeEnd:"",P?u.today:""),"aria-selected":R||Y,"aria-current":P?"date":void 0,"aria-label":`${e.day} ${i[$]??""} ${g}`,onClick:()=>{p?n?.(V(r,e.date)):N(e.date)},children:o?o({date:e.date,day:e.day,isSelected:R,isToday:P,rangeStart:b,rangeEnd:E,inRange:Y}):e.day},`day-${e.day}-${e.date.getTime()}`)})})]})}),K=S(function({className:y,...o},f){const{messages:s,t:c}=x(),i=s.calendar.months,a=s.calendar.monthsShort,{value:m,year:l,month:N,selectMonth:r}=B("Calendar.Body"),n=m&&m.getFullYear()===l?m.getMonth():null,g=new Date,$=g.getFullYear()===l;return d(I,{ref:f,className:y,label:c("calendar.monthsOfYear",{year:l}),columnsClass:t.calendarMonths,items:a.map((v,h)=>{const D=n===h||!m&&N===h;return{key:v,label:v,ariaLabel:`${i[h]??""} ${l}`,selected:D,current:$&&g.getMonth()===h,onSelect:()=>r(h)}}),...o})}),z=S(function({className:y,...o},f){const{t:s}=x(),{value:c,year:i,yearPageStart:a,selectYear:m}=B("Calendar.Body"),l=new Date().getFullYear();return d(I,{ref:f,className:y,label:s("calendar.yearsRange",{start:a,end:a+A-1}),columnsClass:t.calendarYears,items:Array.from({length:A},(N,r)=>{const n=a+r,g=(c?.getFullYear()??i)===n;return{key:n,label:n,ariaLabel:`${n}`,selected:g,current:l===n,onSelect:()=>m(n)}}),...o})});export{q as CalendarDaysPanel,K as CalendarMonthsPanel,z as CalendarYearsPanel};
1
+ "use client";import{jsx as d,jsxs as T}from"react/jsx-runtime";import{forwardRef as S,useRef as j}from"react";import{isDateInRange as O,isToday as U,selectNextRange as V}from"./Calendar.utils.js";import{getGridIndex as W,focusElement as _}from"../../utils/a11y.js";import{cn as k}from"../../utils/cn.js";import{useLocale as w}from"../../locales/localeContext.js";import{useCalendarContext as x}from"./Calendar.context.js";import{YEARS_PER_PAGE as B}from"./Calendar.types.js";import F from"../../styles/unstyledControl.module.css.js";import u from"../../styles/calendarChrome.module.css.js";import t from"./Calendar.module.css.js";import{isSameDay as M}from"../../utils/date.js";const I=S(function({className:y,label:o,columnsClass:f,items:s,...c},i){return d("div",{ref:i,className:k(t.calendarPeriodGrid,f,y),role:"grid","aria-label":o,...c,children:s.map(a=>d("button",{type:"button",role:"gridcell",className:k(F.control,u.cell,t.periodCell,a.selected?u.selected:"",a.current&&!a.selected?u.today:""),"aria-selected":a.selected,"aria-label":a.ariaLabel,onClick:a.onSelect,children:a.label},a.key))})}),q=S(function({className:y,renderDayCell:o,...f},s){const{messages:c}=w(),i=c.calendar.months,a=c.calendar.weekdaysShort,{selectionMode:m,value:l,onChange:N,rangeValue:r,onRangeChange:n,year:g,month:$,days:v,shiftView:h}=x("Calendar.Body"),D=j(null),p=m==="range",L=p?r.end??r.start:l;return T("div",{ref:s,className:k(t.calendarBody,y),...f,children:[d("div",{className:k(u.weekGrid,t.calendarWeekdays),"aria-hidden":"true",children:a.map(e=>d("div",{children:e},e))}),d("div",{ref:D,className:u.weekGrid,role:"grid","aria-label":`${i[$]??""} ${g}`,onKeyDown:e=>{if(e.key==="PageUp"||e.key==="PageDown"){e.preventDefault(),h(e.key==="PageUp"?-1:1);return}const C=Array.from(D.current?.querySelectorAll("button")??[]),b=W(C.indexOf(document.activeElement),C.length,e.key,7);b!==null&&(e.preventDefault(),_(C[b]))},children:v.map((e,C)=>{if(e.isEmpty||!e.date)return d("div",{className:t.dayEmpty,role:"presentation"},`empty-${C}`);const b=!!(p&&r.start&&M(r.start,e.date)),E=!!(p&&r.end&&M(r.end,e.date)),Y=!!(p&&O(e.date,r.start,r.end)),R=p?b||E:l?M(l,e.date):!1,P=U(e.date),G=R||!L&&v.findIndex(A=>!A.isEmpty&&A.date)===C;return d("button",{type:"button",role:"gridcell",tabIndex:G?0:-1,className:k(F.control,u.cell,t.dayCell,R?u.selected:"",Y?t.dayInRange:"",b?t.dayRangeStart:"",E?t.dayRangeEnd:"",P?u.today:""),"aria-selected":R||Y,"aria-current":P?"date":void 0,"aria-label":`${e.day} ${i[$]??""} ${g}`,onClick:()=>{p?n?.(V(r,e.date)):N(e.date)},children:o?o({date:e.date,day:e.day,isSelected:R,isToday:P,rangeStart:b,rangeEnd:E,inRange:Y}):e.day},`day-${e.day}-${e.date.getTime()}`)})})]})}),K=S(function({className:y,...o},f){const{messages:s,t:c}=w(),i=s.calendar.months,a=s.calendar.monthsShort,{value:m,year:l,month:N,selectMonth:r}=x("Calendar.Body"),n=m&&m.getFullYear()===l?m.getMonth():null,g=new Date,$=g.getFullYear()===l;return d(I,{ref:f,className:y,label:c("calendar.monthsOfYear",{year:l}),columnsClass:t.calendarMonths,items:a.map((v,h)=>{const D=n===h||!m&&N===h;return{key:v,label:v,ariaLabel:`${i[h]??""} ${l}`,selected:D,current:$&&g.getMonth()===h,onSelect:()=>r(h)}}),...o})}),z=S(function({className:y,...o},f){const{t:s}=w(),{value:c,year:i,yearPageStart:a,selectYear:m}=x("Calendar.Body"),l=new Date().getFullYear();return d(I,{ref:f,className:y,label:s("calendar.yearsRange",{start:a,end:a+B-1}),columnsClass:t.calendarYears,items:Array.from({length:B},(N,r)=>{const n=a+r,g=(c?.getFullYear()??i)===n;return{key:n,label:n,ariaLabel:`${n}`,selected:g,current:l===n,onSelect:()=>m(n)}}),...o})});export{q as CalendarDaysPanel,K as CalendarMonthsPanel,z as CalendarYearsPanel};
@@ -1 +1 @@
1
- "use client";import{jsxs as h,jsx as s}from"react/jsx-runtime";import{forwardRef as _,useMemo as p}from"react";import{weekdayLabels as G,startOfDay as J,isSameDay as Q,isToday as U}from"../Calendar/Calendar.utils.js";import{resolveAllDay as b,segmentSpanByWeeks as X,packSpanSegments as Z}from"./calendar.schedule.js";import{useCalendarBoard as ee}from"./CalendarBoard.context.js";import{CalendarBoardTaskChip as T}from"./CalendarBoard.TaskChip.js";import{buildMonthWeeks as ae,isMultiDayTask as I,calendarDateKey as O}from"./CalendarBoard.utils.js";import e from"./CalendarBoard.module.css.js";import te from"../../styles/unstyledControl.module.css.js";import{cn as g}from"../../utils/cn.js";import{useLocale as re}from"../../locales/localeContext.js";const $=_(function({className:A,maxChipsPerDay:W=3,...L},R){const{messages:V,t:N}=re(),{months:j,weekdaysShort:K}=V.calendar,{viewDate:u,selectedDate:C,setSelectedDate:S,setViewDate:w,setView:q,tasks:c,weekStartsOn:y,renderDayCell:D}=ee("CalendarBoard.Month"),f=p(()=>ae(u,y),[u,y]),z=u.getMonth(),E=G(K,y),v=p(()=>c.filter(t=>b(t)&&I(t.start,t.end)),[c]),F=p(()=>f.map((t,l)=>{const d=v.map(r=>{const m=X(r.start,r.end,[t])[0];return m?{item:r,segment:m.segment}:null}).filter(r=>r!==null);return{weekIndex:l,...Z(d)}}),[v,f]),H=p(()=>{const t=new Map;for(const l of c){if(b(l)&&I(l.start,l.end))continue;const d=O(J(l.start)),r=t.get(d)??[];r.push(l),t.set(d,r)}return t},[c]),P=22;return h("div",{ref:R,className:g(e.month,A),...L,children:[s("div",{className:e.weekdayRow,role:"row",children:E.map(t=>s("div",{className:e.weekdayLabel,role:"columnheader",children:t},t))}),s("div",{className:e.monthWeeks,children:f.map((t,l)=>{const d=F[l],r=Math.max(d?.laneCount??0,0),m=r>0?r*P+Math.max(0,r-1)*2:0;return h("div",{className:e.weekRow,style:{"--altum-calendar-board-span-height":`${m}px`},children:[s("div",{className:e.weekDays,children:t.map(a=>{const i=a.getMonth()===z,n=C?Q(a,C):!1,o=U(a),k=H.get(O(a))??[],M=k.slice(0,W),B=k.length-M.length,Y={date:a,dayOfMonth:a.getDate(),isCurrentMonth:i,isToday:o,isSelected:n,tasks:k};return D?s("div",{className:e.dayCell,children:D(Y)},a.toISOString()):h("div",{role:"gridcell",className:g(e.dayCell,e.dayCellSurface,i?"":e.dayOutside,n?e.daySelected:"",o&&!n?e.dayToday:""),"aria-current":o?"date":void 0,"aria-selected":n,children:[s("button",{type:"button",className:g(te.control,e.dayNumberBtn),onClick:()=>{S(a),w(a)},onDoubleClick:()=>{S(a),w(a),q("day")},"aria-label":N("calendarBoard.dayWithoutTasks",{day:a.getDate(),month:j[a.getMonth()]??""}),"aria-pressed":n,children:s("span",{className:e.dayNumber,children:a.getDate()})}),h("div",{className:e.dayChips,children:[M.map(x=>s(T,{task:x,layout:"chip"},x.id)),B>0&&s("span",{className:e.dayMore,children:N("calendarBoard.moreTasks",{count:B})})]})]},a.toISOString())})}),r>0&&s("div",{className:e.spanTrack,children:Array.from({length:r},(a,i)=>s("div",{className:e.spanLane,children:d?.packed.filter(n=>n.lane===i).map(({item:n,segment:o})=>s("div",{className:e.spanSlot,style:{gridColumn:`${o.startIndex+1} / ${o.endIndex+2}`},"data-task-id":n.id,children:s(T,{task:n,layout:"bar",continuesBefore:o.continuesBefore,continuesAfter:o.continuesAfter})},`${n.id}-${l}-${o.startIndex}-${i}`))},i))})]},t[0].toISOString())})})]})});$.displayName="CalendarBoard.Month";export{$ as CalendarBoardMonth};
1
+ "use client";import{jsxs as h,jsx as s}from"react/jsx-runtime";import{forwardRef as _,useMemo as p}from"react";import{weekdayLabels as G,isToday as J}from"../Calendar/Calendar.utils.js";import{resolveAllDay as b,segmentSpanByWeeks as Q,packSpanSegments as U}from"./calendar.schedule.js";import{useCalendarBoard as X}from"./CalendarBoard.context.js";import{CalendarBoardTaskChip as T}from"./CalendarBoard.TaskChip.js";import{buildMonthWeeks as Z,isMultiDayTask as I,calendarDateKey as O}from"./CalendarBoard.utils.js";import e from"./CalendarBoard.module.css.js";import ee from"../../styles/unstyledControl.module.css.js";import{cn as g}from"../../utils/cn.js";import{useLocale as ae}from"../../locales/localeContext.js";import{startOfDay as te,isSameDay as re}from"../../utils/date.js";const $=_(function({className:A,maxChipsPerDay:W=3,...L},R){const{messages:V,t:N}=ae(),{months:j,weekdaysShort:K}=V.calendar,{viewDate:u,selectedDate:C,setSelectedDate:S,setViewDate:w,setView:q,tasks:c,weekStartsOn:y,renderDayCell:D}=X("CalendarBoard.Month"),f=p(()=>Z(u,y),[u,y]),z=u.getMonth(),E=G(K,y),v=p(()=>c.filter(t=>b(t)&&I(t.start,t.end)),[c]),F=p(()=>f.map((t,o)=>{const d=v.map(r=>{const m=Q(r.start,r.end,[t])[0];return m?{item:r,segment:m.segment}:null}).filter(r=>r!==null);return{weekIndex:o,...U(d)}}),[v,f]),H=p(()=>{const t=new Map;for(const o of c){if(b(o)&&I(o.start,o.end))continue;const d=O(te(o.start)),r=t.get(d)??[];r.push(o),t.set(d,r)}return t},[c]),P=22;return h("div",{ref:R,className:g(e.month,A),...L,children:[s("div",{className:e.weekdayRow,role:"row",children:E.map(t=>s("div",{className:e.weekdayLabel,role:"columnheader",children:t},t))}),s("div",{className:e.monthWeeks,children:f.map((t,o)=>{const d=F[o],r=Math.max(d?.laneCount??0,0),m=r>0?r*P+Math.max(0,r-1)*2:0;return h("div",{className:e.weekRow,style:{"--altum-calendar-board-span-height":`${m}px`},children:[s("div",{className:e.weekDays,children:t.map(a=>{const i=a.getMonth()===z,n=C?re(a,C):!1,l=J(a),k=H.get(O(a))??[],M=k.slice(0,W),B=k.length-M.length,Y={date:a,dayOfMonth:a.getDate(),isCurrentMonth:i,isToday:l,isSelected:n,tasks:k};return D?s("div",{className:e.dayCell,children:D(Y)},a.toISOString()):h("div",{role:"gridcell",className:g(e.dayCell,e.dayCellSurface,i?"":e.dayOutside,n?e.daySelected:"",l&&!n?e.dayToday:""),"aria-current":l?"date":void 0,"aria-selected":n,children:[s("button",{type:"button",className:g(ee.control,e.dayNumberBtn),onClick:()=>{S(a),w(a)},onDoubleClick:()=>{S(a),w(a),q("day")},"aria-label":N("calendarBoard.dayWithoutTasks",{day:a.getDate(),month:j[a.getMonth()]??""}),"aria-pressed":n,children:s("span",{className:e.dayNumber,children:a.getDate()})}),h("div",{className:e.dayChips,children:[M.map(x=>s(T,{task:x,layout:"chip"},x.id)),B>0&&s("span",{className:e.dayMore,children:N("calendarBoard.moreTasks",{count:B})})]})]},a.toISOString())})}),r>0&&s("div",{className:e.spanTrack,children:Array.from({length:r},(a,i)=>s("div",{className:e.spanLane,children:d?.packed.filter(n=>n.lane===i).map(({item:n,segment:l})=>s("div",{className:e.spanSlot,style:{gridColumn:`${l.startIndex+1} / ${l.endIndex+2}`},"data-task-id":n.id,children:s(T,{task:n,layout:"bar",continuesBefore:l.continuesBefore,continuesAfter:l.continuesAfter})},`${n.id}-${o}-${l.startIndex}-${i}`))},i))})]},t[0].toISOString())})})]})});$.displayName="CalendarBoard.Month";export{$ as CalendarBoardMonth};
@@ -1 +1 @@
1
- "use client";import{jsxs as c,jsx as l}from"react/jsx-runtime";import{forwardRef as ue,useId as he,useState as pe,useCallback as ve,useMemo as y}from"react";import{startOfDay as f,buildDayStrip as ge,formatMonthYear as z,weekdayLabelFor as I,isSameDay as ye,isToday as V,addDays as J}from"../Calendar/Calendar.utils.js";import{buildHourMarks as fe,resolveAllDay as K,segmentSpanInColumns as Se,packSpanSegments as Ne,clipEventToDay as $e,packTimedEventsInDay as xe,formatHourLabel as De}from"./calendar.schedule.js";import{CalendarBoardEvent as Q}from"./CalendarBoard.Event.js";import Ce from"../../styles/unstyledControl.module.css.js";import H from"../../styles/calendarChrome.module.css.js";import t from"./CalendarBoard.Schedule.module.css.js";import{cn as u}from"../../utils/cn.js";import{mergeStyles as be}from"../../utils/mergeStyles.js";import{useLocale as ke}from"../../locales/localeContext.js";import{SCHEDULE_LANE_HEIGHT as L}from"./CalendarBoard.Schedule.types.js";import{resolveWindowStart as we,formatTimeRange as Ie}from"./CalendarBoard.Schedule.utils.js";import{PeriodHeader as He}from"../../base/PeriodHeader/PeriodHeader.js";const U=ue(function({viewDate:h,onViewDateChange:T,daysCount:o=7,weekStartsOn:p=1,events:S=[],dayStartHour:v=8,dayEndHour:g=20,hourHeight:N=48,selectedDate:C,onSelectDate:B,onEventClick:$,showHeader:E=!0,showNav:X=!0,className:Z,"aria-label":ee,renderSpanEvent:P,renderTimedEvent:O,style:te,...ae},re){const{messages:m}=ke(),{months:A,weekdaysShort:b}=m.calendar,M=he(),[le,oe]=pe(()=>f(h??C??new Date)),x=h?f(h):le,R=ve(e=>{const a=f(e);h===void 0&&oe(a),T?.(a)},[h,T]),k=y(()=>we(x,o,p),[x,o,p]),i=y(()=>ge(k,o),[o,k]),G=y(()=>fe(v,g),[g,v]),ne=Math.max(0,g-v)*N,w=C?f(C):void 0,W=e=>{if(o===1){R(J(x,e));return}R(J(k,e*(o===5?7:o)))},Y=y(()=>{const e=S.filter(K).map(a=>{const r=Se(a.start,a.end,i);return r?{item:a,segment:r}:null}).filter(a=>a!==null);return Ne(e)},[i,S]),ie=y(()=>i.map(e=>{const a=S.filter(r=>!K(r)).map(r=>{const s=$e(r.start,r.end,e);return s?{item:r,start:s.start,end:s.end}:null}).filter(r=>r!==null);return xe(a,v,g)}),[i,g,v,S]),se=(()=>{if(o!==1)return z(w??i[0]??x,A);const e=i[0];return`${I(e,p,b)}, ${e.getDate()} ${z(e,A)}`})(),_=Math.max(Y.laneCount,1)*L+8,de=be({"--altum-schedule-columns":String(o),"--altum-schedule-hour-height":`${N}px`,"--altum-schedule-all-day-height":`${_}px`},te);return c("div",{ref:re,className:u(t.root,Z),role:"region","aria-label":ee??m.calendarBoard.scheduleAria,"aria-labelledby":E?M:void 0,style:de,...ae,children:[l(He,{title:se,titleId:M,showTitle:E,showNav:X,onPrev:()=>W(-1),onNext:()=>W(1),prevLabel:m.calendarBoard.prevPeriod,nextLabel:m.calendarBoard.nextPeriod}),c("div",{className:t.gutterRow,children:[l("div",{className:t.gutterCorner,"aria-hidden":"true"}),l("div",{className:t.cols,style:{gridTemplateColumns:`repeat(${o}, minmax(0, 1fr))`},children:i.map(e=>{const a=w?ye(e,w):!1,r=V(e),s=I(e,p,b);return c("button",{type:"button",className:u(Ce.control,H.cell,t.dayHeader,a?H.selected:"",a?t.dayHeaderSelected:"",r?H.today:""),onClick:()=>B?.(f(e)),"aria-pressed":B?a:void 0,"aria-current":r?"date":void 0,children:[l("span",{className:t.dayWeekday,children:s}),l("span",{className:t.dayNumber,children:e.getDate()})]},e.toISOString())})})]}),c("div",{className:t.gutterRow,"aria-label":m.calendarBoard.allDay,children:[l("div",{className:t.gutterLabel,children:m.calendarBoard.allDayShort}),c("div",{className:u(t.cols,t.allDayTrack),style:{gridTemplateColumns:`repeat(${o}, minmax(0, 1fr))`,minHeight:_},children:[i.map(e=>l("div",{className:t.allDayCell},`allday-cell-${e.toISOString()}`)),Y.packed.map(({item:e,segment:a,lane:r})=>{const s=a.endIndex-a.startIndex+1,d=a.startIndex/o*100,n=s/o*100,D=P?P({event:e,continuesBefore:a.continuesBefore,continuesAfter:a.continuesAfter,lane:r}):l(Q,{title:e.title,color:e.color,continuesBefore:a.continuesBefore,continuesAfter:a.continuesAfter,onClick:$?()=>$(e):void 0});return l("div",{className:t.spanSlot,style:{left:`calc(${d}% + 2px)`,width:`calc(${n}% - 4px)`,top:4+r*L,height:L-2},children:D},`span-${e.id}-${a.startIndex}`)})]})]}),c("div",{className:u(t.gutterRow,t.timeGrid),style:{height:ne},children:[l("div",{className:t.gutter,children:G.map(e=>l("div",{className:t.hourMark,style:{height:N},children:l("span",{className:t.hourLabel,children:De(e)})},e))}),l("div",{className:u(t.cols,t.columns),style:{gridTemplateColumns:`repeat(${o}, minmax(0, 1fr))`},role:"grid","aria-colcount":o,children:i.map((e,a)=>{const r=V(e),s=ie[a]??[];return c("div",{className:u(t.column,r?t.columnToday:""),role:"gridcell","aria-label":`${I(e,p,b)} ${e.getDate()}`,children:[G.map(d=>l("div",{className:t.hourLine,style:{height:N}},`${e.toISOString()}-${d}`)),l("div",{className:t.eventsLayer,children:s.map(({item:d,layout:n,lane:D,laneCount:j})=>{const F=100/j,ce=D*F,q=Ie(n.start,n.end),me=O?O({event:d,start:n.start,end:n.end,topPercent:n.topPercent,heightPercent:n.heightPercent,lane:D,laneCount:j,timeLabel:q}):l(Q,{layout:"timed",title:d.title,timeLabel:q,color:d.color,onClick:$?()=>$(d):void 0});return l("div",{className:t.timedSlot,style:{top:`${n.topPercent}%`,height:`${n.heightPercent}%`,left:`calc(${ce}% + 2px)`,width:`calc(${F}% - 4px)`},children:me},`timed-${d.id}-${n.start.getTime()}`)})})]},e.toISOString())})})]})]})});U.displayName="CalendarBoard.Schedule";export{U as CalendarSchedule};
1
+ "use client";import{jsxs as c,jsx as l}from"react/jsx-runtime";import{forwardRef as ue,useId as he,useState as pe,useCallback as ve,useMemo as f}from"react";import{buildDayStrip as ge,formatMonthYear as z,weekdayLabelFor as T,isToday as V}from"../Calendar/Calendar.utils.js";import{buildHourMarks as fe,resolveAllDay as J,segmentSpanInColumns as ye,packSpanSegments as Se,clipEventToDay as Ne,packTimedEventsInDay as $e}from"./calendar.schedule.js";import{startOfDay as y,isSameDay as xe,formatHourTime as De,addDays as K}from"../../utils/date.js";import{CalendarBoardEvent as Q}from"./CalendarBoard.Event.js";import Ce from"../../styles/unstyledControl.module.css.js";import I from"../../styles/calendarChrome.module.css.js";import t from"./CalendarBoard.Schedule.module.css.js";import{cn as u}from"../../utils/cn.js";import{mergeStyles as be}from"../../utils/mergeStyles.js";import{useLocale as ke}from"../../locales/localeContext.js";import{SCHEDULE_LANE_HEIGHT as H}from"./CalendarBoard.Schedule.types.js";import{resolveWindowStart as we,formatTimeRange as Te}from"./CalendarBoard.Schedule.utils.js";import{PeriodHeader as Ie}from"../../base/PeriodHeader/PeriodHeader.js";const U=ue(function({viewDate:h,onViewDateChange:E,daysCount:o=7,weekStartsOn:p=1,events:S=[],dayStartHour:v=8,dayEndHour:g=20,hourHeight:N=48,selectedDate:C,onSelectDate:L,onEventClick:$,showHeader:B=!0,showNav:X=!0,className:Z,"aria-label":ee,renderSpanEvent:P,renderTimedEvent:O,style:te,...ae},re){const{messages:m}=ke(),{months:A,weekdaysShort:b}=m.calendar,M=he(),[le,oe]=pe(()=>y(h??C??new Date)),x=h?y(h):le,R=ve(e=>{const a=y(e);h===void 0&&oe(a),E?.(a)},[h,E]),k=f(()=>we(x,o,p),[x,o,p]),i=f(()=>ge(k,o),[o,k]),G=f(()=>fe(v,g),[g,v]),ne=Math.max(0,g-v)*N,w=C?y(C):void 0,W=e=>{if(o===1){R(K(x,e));return}R(K(k,e*(o===5?7:o)))},Y=f(()=>{const e=S.filter(J).map(a=>{const r=ye(a.start,a.end,i);return r?{item:a,segment:r}:null}).filter(a=>a!==null);return Se(e)},[i,S]),ie=f(()=>i.map(e=>{const a=S.filter(r=>!J(r)).map(r=>{const s=Ne(r.start,r.end,e);return s?{item:r,start:s.start,end:s.end}:null}).filter(r=>r!==null);return $e(a,v,g)}),[i,g,v,S]),se=(()=>{if(o!==1)return z(w??i[0]??x,A);const e=i[0];return`${T(e,p,b)}, ${e.getDate()} ${z(e,A)}`})(),_=Math.max(Y.laneCount,1)*H+8,de=be({"--altum-schedule-columns":String(o),"--altum-schedule-hour-height":`${N}px`,"--altum-schedule-all-day-height":`${_}px`},te);return c("div",{ref:re,className:u(t.root,Z),role:"region","aria-label":ee??m.calendarBoard.scheduleAria,"aria-labelledby":B?M:void 0,style:de,...ae,children:[l(Ie,{title:se,titleId:M,showTitle:B,showNav:X,onPrev:()=>W(-1),onNext:()=>W(1),prevLabel:m.calendarBoard.prevPeriod,nextLabel:m.calendarBoard.nextPeriod}),c("div",{className:t.gutterRow,children:[l("div",{className:t.gutterCorner,"aria-hidden":"true"}),l("div",{className:t.cols,style:{gridTemplateColumns:`repeat(${o}, minmax(0, 1fr))`},children:i.map(e=>{const a=w?xe(e,w):!1,r=V(e),s=T(e,p,b);return c("button",{type:"button",className:u(Ce.control,I.cell,t.dayHeader,a?I.selected:"",a?t.dayHeaderSelected:"",r?I.today:""),onClick:()=>L?.(y(e)),"aria-pressed":L?a:void 0,"aria-current":r?"date":void 0,children:[l("span",{className:t.dayWeekday,children:s}),l("span",{className:t.dayNumber,children:e.getDate()})]},e.toISOString())})})]}),c("div",{className:t.gutterRow,"aria-label":m.calendarBoard.allDay,children:[l("div",{className:t.gutterLabel,children:m.calendarBoard.allDayShort}),c("div",{className:u(t.cols,t.allDayTrack),style:{gridTemplateColumns:`repeat(${o}, minmax(0, 1fr))`,minHeight:_},children:[i.map(e=>l("div",{className:t.allDayCell},`allday-cell-${e.toISOString()}`)),Y.packed.map(({item:e,segment:a,lane:r})=>{const s=a.endIndex-a.startIndex+1,d=a.startIndex/o*100,n=s/o*100,D=P?P({event:e,continuesBefore:a.continuesBefore,continuesAfter:a.continuesAfter,lane:r}):l(Q,{title:e.title,color:e.color,continuesBefore:a.continuesBefore,continuesAfter:a.continuesAfter,onClick:$?()=>$(e):void 0});return l("div",{className:t.spanSlot,style:{left:`calc(${d}% + 2px)`,width:`calc(${n}% - 4px)`,top:4+r*H,height:H-2},children:D},`span-${e.id}-${a.startIndex}`)})]})]}),c("div",{className:u(t.gutterRow,t.timeGrid),style:{height:ne},children:[l("div",{className:t.gutter,children:G.map(e=>l("div",{className:t.hourMark,style:{height:N},children:l("span",{className:t.hourLabel,children:De(e)})},e))}),l("div",{className:u(t.cols,t.columns),style:{gridTemplateColumns:`repeat(${o}, minmax(0, 1fr))`},role:"grid","aria-colcount":o,children:i.map((e,a)=>{const r=V(e),s=ie[a]??[];return c("div",{className:u(t.column,r?t.columnToday:""),role:"gridcell","aria-label":`${T(e,p,b)} ${e.getDate()}`,children:[G.map(d=>l("div",{className:t.hourLine,style:{height:N}},`${e.toISOString()}-${d}`)),l("div",{className:t.eventsLayer,children:s.map(({item:d,layout:n,lane:D,laneCount:j})=>{const F=100/j,ce=D*F,q=Te(n.start,n.end),me=O?O({event:d,start:n.start,end:n.end,topPercent:n.topPercent,heightPercent:n.heightPercent,lane:D,laneCount:j,timeLabel:q}):l(Q,{layout:"timed",title:d.title,timeLabel:q,color:d.color,onClick:$?()=>$(d):void 0});return l("div",{className:t.timedSlot,style:{top:`${n.topPercent}%`,height:`${n.heightPercent}%`,left:`calc(${ce}% + 2px)`,width:`calc(${F}% - 4px)`},children:me},`timed-${d.id}-${n.start.getTime()}`)})})]},e.toISOString())})})]})]})});U.displayName="CalendarBoard.Schedule";export{U as CalendarSchedule};
@@ -1 +1 @@
1
- "use client";import{injectCss as t}from"../../utils/injectCss.js";var o=".d9FLy{box-sizing:border-box;color:var(--altum-color-input-text);display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-2);max-width:960px;width:100%}.d9FLy .e1cT5{display:grid;gap:0;grid-template-columns:calc(var(--altum-g-space-7)*2) minmax(0,1fr);min-width:0}.d9FLy .dT6mU{min-height:var(--altum-g-space-8,32px)}.d9FLy .MGcE2{align-items:flex-start;color:var(--altum-color-ink-muted);display:flex;font-size:var(--altum-g-font-size-3xs);font-weight:var(--altum-g-font-weight-semibold);justify-content:flex-end;letter-spacing:.04em;line-height:1.2;padding:var(--altum-g-space-1) var(--altum-g-space-2) 0 0;text-transform:uppercase}.d9FLy .JhQrX{display:grid;min-width:0}.d9FLy .SXTaX{align-items:center;display:flex;flex-direction:column;gap:var(--altum-control-inset);justify-content:center;min-height:var(--altum-g-space-9,36px);padding:var(--altum-g-space-1)}.d9FLy .gJ0HI{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-xs);letter-spacing:.04em;text-transform:uppercase}.d9FLy .g6pAH,.d9FLy .gJ0HI{font-weight:var(--altum-g-font-weight-semibold);line-height:1.2}.d9FLy .g6pAH{font-size:var(--altum-g-font-size-base);font-variant-numeric:tabular-nums}.d9FLy .TjFoX .gJ0HI{color:inherit;opacity:.85}.d9FLy .dYeu-{border-bottom:1px solid var(--altum-color-dropdown-border);border-top:1px solid var(--altum-color-dropdown-border);position:relative}.d9FLy .zokJX{border-left:1px solid var(--altum-color-dropdown-border);min-height:inherit}:is(.d9FLy .zokJX):first-child{border-left:none}.d9FLy .LmyPu{box-sizing:border-box;padding:0;pointer-events:auto;position:absolute;z-index:1}.d9FLy .COA-J{max-height:min(70vh,640px);overflow:auto;padding-top:var(--altum-g-space-3);scrollbar-gutter:stable}.d9FLy .COA-J,.d9FLy .Zj5tV,.d9FLy .ufuk-{position:relative}.d9FLy .ufuk-{box-sizing:border-box}.d9FLy .h95ab{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-xs);font-variant-numeric:tabular-nums;font-weight:var(--altum-g-font-weight-medium);line-height:1;position:absolute;right:var(--altum-g-space-2);top:-.55em;z-index:1}.d9FLy .BRfA1,.d9FLy .deD--{border-left:1px solid var(--altum-color-dropdown-border);position:relative}.d9FLy .deD--{min-width:0}:is(.d9FLy .deD--):first-child{border-left:none}.d9FLy ._1-g0L{background-color:color-mix(in srgb,var(--altum-color-brand) 6%,#0000)}.d9FLy .ESPDc{border-top:1px solid var(--altum-color-dropdown-border);box-sizing:border-box}:is(.d9FLy .ESPDc):first-child{border-top-color:#0000}.d9FLy .tghig{inset:0;pointer-events:none;position:absolute}.d9FLy .-G8YX{box-sizing:border-box;min-height:var(--altum-g-space-8);pointer-events:auto;position:absolute;z-index:1}";const e={root:"d9FLy",gutterRow:"e1cT5",gutterCorner:"dT6mU",gutterLabel:"MGcE2",cols:"JhQrX",dayHeader:"SXTaX",dayWeekday:"gJ0HI",dayNumber:"g6pAH",dayHeaderSelected:"TjFoX",allDayTrack:"dYeu-",allDayCell:"zokJX",spanSlot:"LmyPu",timeGrid:"COA-J",gutter:"Zj5tV",hourMark:"ufuk-",hourLabel:"h95ab",columns:"BRfA1",column:"deD--",columnToday:"_1-g0L",hourLine:"ESPDc",eventsLayer:"tghig",timedSlot:"-G8YX"};t(o);export{e as default};
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var e=".d9FLy{box-sizing:border-box;color:var(--altum-color-input-text);display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-2);max-width:var(--altum-container-max-lg,960px);width:100%}.d9FLy .e1cT5{display:grid;gap:0;grid-template-columns:calc(var(--altum-g-space-7)*2) minmax(0,1fr);min-width:0}.d9FLy .dT6mU{min-height:var(--altum-g-space-8,32px)}.d9FLy .MGcE2{align-items:flex-start;color:var(--altum-color-ink-muted);display:flex;font-size:var(--altum-g-font-size-3xs);font-weight:var(--altum-g-font-weight-semibold);justify-content:flex-end;letter-spacing:.04em;line-height:1.2;padding:var(--altum-g-space-1) var(--altum-g-space-2) 0 0;text-transform:uppercase}.d9FLy .JhQrX{display:grid;min-width:0}.d9FLy .SXTaX{align-items:center;display:flex;flex-direction:column;gap:var(--altum-control-inset);justify-content:center;min-height:var(--altum-g-space-9,36px);padding:var(--altum-g-space-1)}.d9FLy .gJ0HI{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-xs);letter-spacing:.04em;text-transform:uppercase}.d9FLy .g6pAH,.d9FLy .gJ0HI{font-weight:var(--altum-g-font-weight-semibold);line-height:1.2}.d9FLy .g6pAH{font-size:var(--altum-g-font-size-base);font-variant-numeric:tabular-nums}.d9FLy .TjFoX .gJ0HI{color:inherit;opacity:.85}.d9FLy .dYeu-{border-bottom:1px solid var(--altum-color-dropdown-border);border-top:1px solid var(--altum-color-dropdown-border);position:relative}.d9FLy .zokJX{border-left:1px solid var(--altum-color-dropdown-border);min-height:inherit}:is(.d9FLy .zokJX):first-child{border-left:none}.d9FLy .LmyPu{box-sizing:border-box;padding:0;pointer-events:auto;position:absolute;z-index:var(--altum-g-z-raised,1)}.d9FLy .COA-J{max-height:min(70vh,640px);overflow:auto;padding-top:var(--altum-g-space-3);scrollbar-gutter:stable}.d9FLy .COA-J,.d9FLy .Zj5tV,.d9FLy .ufuk-{position:relative}.d9FLy .ufuk-{box-sizing:border-box}.d9FLy .h95ab{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-xs);font-variant-numeric:tabular-nums;font-weight:var(--altum-g-font-weight-medium);line-height:1;position:absolute;right:var(--altum-g-space-2);top:-.55em;z-index:var(--altum-g-z-raised,1)}.d9FLy .BRfA1,.d9FLy .deD--{border-left:1px solid var(--altum-color-dropdown-border);position:relative}.d9FLy .deD--{min-width:0}:is(.d9FLy .deD--):first-child{border-left:none}.d9FLy ._1-g0L{background-color:color-mix(in srgb,var(--altum-color-brand) 6%,#0000)}.d9FLy .ESPDc{border-top:1px solid var(--altum-color-dropdown-border);box-sizing:border-box}:is(.d9FLy .ESPDc):first-child{border-top-color:#0000}.d9FLy .tghig{inset:0;pointer-events:none;position:absolute}.d9FLy .-G8YX{box-sizing:border-box;min-height:var(--altum-g-space-8);pointer-events:auto;position:absolute;z-index:var(--altum-g-z-raised,1)}";const o={root:"d9FLy",gutterRow:"e1cT5",gutterCorner:"dT6mU",gutterLabel:"MGcE2",cols:"JhQrX",dayHeader:"SXTaX",dayWeekday:"gJ0HI",dayNumber:"g6pAH",dayHeaderSelected:"TjFoX",allDayTrack:"dYeu-",allDayCell:"zokJX",spanSlot:"LmyPu",timeGrid:"COA-J",gutter:"Zj5tV",hourMark:"ufuk-",hourLabel:"h95ab",columns:"BRfA1",column:"deD--",columnToday:"_1-g0L",hourLine:"ESPDc",eventsLayer:"tghig",timedSlot:"-G8YX"};t(e);export{o as default};
@@ -1 +1 @@
1
- "use client";import{startOfDay as s,startOfWeek as a}from"../Calendar/Calendar.utils.js";function u(e,r){const n=t=>{const o=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0");return`${o}:${i}`};return`${n(e)} \u2013 ${n(r)}`}function c(e,r,n){const t=s(e);if(r===1)return t;const o=a(t,n);return r===5?a(t,1):o}export{u as formatTimeRange,c as resolveWindowStart};
1
+ "use client";import{startOfDay as u,getWeekStart as a}from"../../utils/date.js";function s(n,r){const e=t=>{const o=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0");return`${o}:${i}`};return`${e(n)} \u2013 ${e(r)}`}function c(n,r,e){const t=u(n);if(r===1)return t;const o=a(t,e);return r===5?a(t,1):o}export{s as formatTimeRange,c as resolveWindowStart};
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as o,jsxs as I}from"react/jsx-runtime";import{forwardRef as $,useMemo as V}from"react";import{startOfDay as N,addDays as A,weekdayLabels as H,isToday as K}from"../Calendar/Calendar.utils.js";import{useCalendarBoard as P}from"./CalendarBoard.context.js";import{calendarDateKey as b,buildMonthWeeks as R}from"./CalendarBoard.utils.js";import a from"./CalendarBoard.module.css.js";import v from"../../styles/unstyledControl.module.css.js";import{cn as y}from"../../utils/cn.js";import{useLocale as q}from"../../locales/localeContext.js";const B=$(function({className:S,...Y},O){const{messages:W,t:f}=q(),{months:i,weekdaysShort:T}=W.calendar,{viewDate:x,setViewDate:g,setView:D,tasks:k,weekStartsOn:M,renderYearMonth:w}=P("CalendarBoard.Year"),m=x.getFullYear(),C=V(()=>{const n=new Map;for(const e of k){let r=N(e.start);const h=N(e.end);for(;r<h;){if(r.getFullYear()===m){const d=b(r),c=n.get(d)??[];c.push(e),n.set(d,c)}r=A(r,1)}}return n},[k,m]),L=H(T,M).map(n=>n[0]??"");return o("div",{ref:O,className:y(a.year,S),...Y,children:Array.from({length:12},(n,e)=>{const r=new Date(m,e,1),h=R(r,M),d=new Date().getFullYear()===m&&new Date().getMonth()===e,c={date:r,monthIndex:e,label:i[e]??"",isCurrentMonth:d,taskDates:new Set(C.keys())};return w?o("div",{className:a.yearMonth,children:w(c)},e):I("div",{className:y(a.yearMonth,a.yearMonthCard,d?a.yearMonthCurrent:""),children:[o("button",{type:"button",className:y(v.control,a.yearMonthLabelBtn),onClick:()=>{g(r),D("month")},children:i[e]}),o("div",{className:a.yearCols,children:L.map((l,t)=>o("span",{className:a.yearWeekday,children:l},`${l}-${t}`))}),o("div",{className:a.yearWeeks,children:h.map(l=>o("div",{className:a.yearCols,children:l.map(t=>{const s=t.getMonth()===e,u=C.get(b(t))??[],p=u.length>0,j=K(t);return o("button",{type:"button",disabled:!s,className:y(v.control,a.yearDay,s?"":a.yearDayOutside,j?a.yearDayToday:"",p?a.yearDayHasTask:""),title:s&&p?u.map(F=>F.title).join(`
1
+ "use client";import{jsx as o,jsxs as I}from"react/jsx-runtime";import{forwardRef as $,useMemo as V}from"react";import{weekdayLabels as A,isToday as H}from"../Calendar/Calendar.utils.js";import{useCalendarBoard as K}from"./CalendarBoard.context.js";import{calendarDateKey as N,buildMonthWeeks as P}from"./CalendarBoard.utils.js";import a from"./CalendarBoard.module.css.js";import b from"../../styles/unstyledControl.module.css.js";import{cn as y}from"../../utils/cn.js";import{useLocale as R}from"../../locales/localeContext.js";import{startOfDay as v,addDays as q}from"../../utils/date.js";const B=$(function({className:S,...Y},O){const{messages:W,t:f}=R(),{months:i,weekdaysShort:T}=W.calendar,{viewDate:x,setViewDate:g,setView:D,tasks:k,weekStartsOn:M,renderYearMonth:w}=K("CalendarBoard.Year"),m=x.getFullYear(),C=V(()=>{const n=new Map;for(const e of k){let r=v(e.start);const h=v(e.end);for(;r<h;){if(r.getFullYear()===m){const d=N(r),c=n.get(d)??[];c.push(e),n.set(d,c)}r=q(r,1)}}return n},[k,m]),L=A(T,M).map(n=>n[0]??"");return o("div",{ref:O,className:y(a.year,S),...Y,children:Array.from({length:12},(n,e)=>{const r=new Date(m,e,1),h=P(r,M),d=new Date().getFullYear()===m&&new Date().getMonth()===e,c={date:r,monthIndex:e,label:i[e]??"",isCurrentMonth:d,taskDates:new Set(C.keys())};return w?o("div",{className:a.yearMonth,children:w(c)},e):I("div",{className:y(a.yearMonth,a.yearMonthCard,d?a.yearMonthCurrent:""),children:[o("button",{type:"button",className:y(b.control,a.yearMonthLabelBtn),onClick:()=>{g(r),D("month")},children:i[e]}),o("div",{className:a.yearCols,children:L.map((l,t)=>o("span",{className:a.yearWeekday,children:l},`${l}-${t}`))}),o("div",{className:a.yearWeeks,children:h.map(l=>o("div",{className:a.yearCols,children:l.map(t=>{const s=t.getMonth()===e,u=C.get(N(t))??[],p=u.length>0,j=H(t);return o("button",{type:"button",disabled:!s,className:y(b.control,a.yearDay,s?"":a.yearDayOutside,j?a.yearDayToday:"",p?a.yearDayHasTask:""),title:s&&p?u.map(F=>F.title).join(`
2
2
  `):void 0,onClick:()=>{s&&(g(t),D("day"))},"aria-label":s?p?f("calendarBoard.dayWithTasks",{day:t.getDate(),month:i[e]??"",count:u.length}):f("calendarBoard.dayWithoutTasks",{day:t.getDate(),month:i[e]??""}):void 0,children:s?t.getDate():""},t.toISOString())})},l[0].toISOString()))})]},e)})})});B.displayName="CalendarBoard.Year";export{B as CalendarBoardYear};
@@ -1 +1 @@
1
- "use client";import{jsx as d,jsxs as x}from"react/jsx-runtime";import{forwardRef as f,useMemo as F}from"react";import{formatMonthYear as w,weekdayLabelFor as V,startOfWeek as L,addDays as B}from"../Calendar/Calendar.utils.js";import{SegmentedControl as P}from"../SegmentedControl/SegmentedControl.js";import{useCalendarBoard as g}from"./CalendarBoard.context.js";import s from"./CalendarBoard.module.css.js";import{cn as c}from"../../utils/cn.js";import p from"../../styles/unstyledControl.module.css.js";import{useLocale as h}from"../../locales/localeContext.js";import{ChevronButton as C}from"../../base/ChevronButton/ChevronButton.js";const y=f(function({children:n,className:l,"aria-label":i,...a},e){const{messages:t}=h();return d("div",{ref:e,className:c(s.root,l),role:"region","aria-label":i??t.calendarBoard.ariaLabel,...a,children:n})});y.displayName="CalendarBoard.Root";const D=f(function({children:n,className:l,...i},a){return d("div",{ref:a,className:c(s.header,l),...i,children:n})});D.displayName="CalendarBoard.Header";const b=f(function({className:n,...l},i){const{view:a,viewDate:e,weekStartsOn:t}=g("CalendarBoard.Title"),{messages:m}=h(),{months:r,monthsShort:o,weekdaysShort:N}=m.calendar,k=F(()=>{if(a==="year")return String(e.getFullYear());if(a==="month")return w(e,r);if(a==="day")return`${V(e,t,N)}, ${e.getDate()} ${w(e,r)}`;const u=L(e,t),v=B(u,6);if(u.getMonth()===v.getMonth())return`${u.getDate()}\u2013${v.getDate()} ${w(u,r)}`;const M=o[u.getMonth()],Y=o[v.getMonth()];return`${u.getDate()} ${M} \u2013 ${v.getDate()} ${Y} ${v.getFullYear()}`},[r,o,a,e,N,t]);return d("div",{ref:i,className:c(s.title,n),...l,children:k})});b.displayName="CalendarBoard.Title";const $=f(function({className:n,...l},i){const{view:a,viewDate:e,setViewDate:t}=g("CalendarBoard.Nav"),{messages:m}=h(),r=o=>{if(a==="year"){t(new Date(e.getFullYear()+o,e.getMonth(),1));return}if(a==="month"){t(new Date(e.getFullYear(),e.getMonth()+o,1));return}if(a==="week"){t(B(e,o*7));return}t(B(e,o))};return x("div",{ref:i,className:c(s.nav,n),...l,children:[d(C,{direction:"prev",className:c(p.control,s.navBtn),"aria-label":m.calendarBoard.prevPeriod,onClick:()=>r(-1)}),d(C,{direction:"next",className:c(p.control,s.navBtn),"aria-label":m.calendarBoard.nextPeriod,onClick:()=>r(1)})]})});$.displayName="CalendarBoard.Nav";const S=f(function({className:n,variant:l="tinted",size:i="sm",...a},e){const{view:t,setView:m}=g("CalendarBoard.ViewSwitch"),{messages:r}=h(),o=[{label:r.calendarBoard.views.month,value:"month"},{label:r.calendarBoard.views.week,value:"week"},{label:r.calendarBoard.views.day,value:"day"},{label:r.calendarBoard.views.year,value:"year"}];return d("div",{ref:e,className:c(s.viewSwitch,n),...a,children:d(P,{"aria-label":r.calendarBoard.viewSwitchAria,options:o,value:t,onChange:m,variant:l,size:i})})});S.displayName="CalendarBoard.ViewSwitch";export{D as CalendarBoardHeader,$ as CalendarBoardNav,y as CalendarBoardRoot,b as CalendarBoardTitle,S as CalendarBoardViewSwitch};
1
+ "use client";import{jsx as d,jsxs as x}from"react/jsx-runtime";import{forwardRef as f,useMemo as F}from"react";import{formatMonthYear as w,weekdayLabelFor as V}from"../Calendar/Calendar.utils.js";import{SegmentedControl as L}from"../SegmentedControl/SegmentedControl.js";import{useCalendarBoard as B}from"./CalendarBoard.context.js";import s from"./CalendarBoard.module.css.js";import{cn as c}from"../../utils/cn.js";import N from"../../styles/unstyledControl.module.css.js";import{useLocale as h}from"../../locales/localeContext.js";import{ChevronButton as C}from"../../base/ChevronButton/ChevronButton.js";import{getWeekStart as P,addDays as g}from"../../utils/date.js";const y=f(function({children:n,className:l,"aria-label":i,...a},e){const{messages:t}=h();return d("div",{ref:e,className:c(s.root,l),role:"region","aria-label":i??t.calendarBoard.ariaLabel,...a,children:n})});y.displayName="CalendarBoard.Root";const D=f(function({children:n,className:l,...i},a){return d("div",{ref:a,className:c(s.header,l),...i,children:n})});D.displayName="CalendarBoard.Header";const b=f(function({className:n,...l},i){const{view:a,viewDate:e,weekStartsOn:t}=B("CalendarBoard.Title"),{messages:m}=h(),{months:r,monthsShort:o,weekdaysShort:p}=m.calendar,k=F(()=>{if(a==="year")return String(e.getFullYear());if(a==="month")return w(e,r);if(a==="day")return`${V(e,t,p)}, ${e.getDate()} ${w(e,r)}`;const u=P(e,t),v=g(u,6);if(u.getMonth()===v.getMonth())return`${u.getDate()}\u2013${v.getDate()} ${w(u,r)}`;const M=o[u.getMonth()],Y=o[v.getMonth()];return`${u.getDate()} ${M} \u2013 ${v.getDate()} ${Y} ${v.getFullYear()}`},[r,o,a,e,p,t]);return d("div",{ref:i,className:c(s.title,n),...l,children:k})});b.displayName="CalendarBoard.Title";const S=f(function({className:n,...l},i){const{view:a,viewDate:e,setViewDate:t}=B("CalendarBoard.Nav"),{messages:m}=h(),r=o=>{if(a==="year"){t(new Date(e.getFullYear()+o,e.getMonth(),1));return}if(a==="month"){t(new Date(e.getFullYear(),e.getMonth()+o,1));return}if(a==="week"){t(g(e,o*7));return}t(g(e,o))};return x("div",{ref:i,className:c(s.nav,n),...l,children:[d(C,{direction:"prev",className:c(N.control,s.navBtn),"aria-label":m.calendarBoard.prevPeriod,onClick:()=>r(-1)}),d(C,{direction:"next",className:c(N.control,s.navBtn),"aria-label":m.calendarBoard.nextPeriod,onClick:()=>r(1)})]})});S.displayName="CalendarBoard.Nav";const $=f(function({className:n,variant:l="tinted",size:i="sm",...a},e){const{view:t,setView:m}=B("CalendarBoard.ViewSwitch"),{messages:r}=h(),o=[{label:r.calendarBoard.views.month,value:"month"},{label:r.calendarBoard.views.week,value:"week"},{label:r.calendarBoard.views.day,value:"day"},{label:r.calendarBoard.views.year,value:"year"}];return d("div",{ref:e,className:c(s.viewSwitch,n),...a,children:d(L,{"aria-label":r.calendarBoard.viewSwitchAria,options:o,value:t,onChange:m,variant:l,size:i})})});$.displayName="CalendarBoard.ViewSwitch";export{D as CalendarBoardHeader,S as CalendarBoardNav,y as CalendarBoardRoot,b as CalendarBoardTitle,$ as CalendarBoardViewSwitch};
@@ -1 +1 @@
1
- "use client";import{jsx as y}from"react/jsx-runtime";import{useSyncExternalStore as j,useState as A,useCallback as p,useMemo as L,createContext as V}from"react";import{useRequiredContext as x}from"../../hooks/useRequiredContext.js";import{useControlledStateWithCallback as o}from"../../hooks/useControlledState.js";import{startOfDay as a}from"../Calendar/Calendar.utils.js";import{createCalendarBoardHoverStore as N}from"./calendarBoardHoverStore.js";const M=V(null),T=V(null);function b(e){return x(M,`${e} \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 CalendarBoard.Provider`)}function W(e){return x(T,`${e} \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 CalendarBoard.Provider`)}function z(e){const r=W("useCalendarBoardTaskHover");return{highlighted:j(r.subscribe,()=>r.getSnapshot()===e,()=>!1),onMouseEnter:()=>r.setHovered(e),onMouseLeave:()=>r.setHovered(null)}}function G(){return b("useCalendarBoardContext")}const F=({children:e,view:r,defaultView:P="month",onViewChange:O,viewDate:n,defaultViewDate:q,onViewDateChange:R,selectedDate:u,onSelectedDateChange:d,tasks:i=[],weekStartsOn:l=1,dayStartHour:s=0,dayEndHour:C=24,hourHeight:c=48,onTaskClick:v,renderTask:h,renderDayCell:D,renderYearMonth:m})=>{const[Y]=A(()=>N()),[k,w]=o(r,P,O),[f,B]=o(n!==void 0?a(n):void 0,a(q??u??new Date),R),[H,S]=o(u!==void 0&&u?a(u):void 0,u?a(u):void 0,d?t=>{t&&d(t)}:void 0),E=p(t=>B(a(t)),[B]),g=p(t=>S(a(t)),[S]),$=L(()=>({view:k,setView:w,viewDate:f,setViewDate:E,selectedDate:H,setSelectedDate:g,tasks:i,weekStartsOn:l,dayStartHour:s,dayEndHour:C,hourHeight:c,onTaskClick:v,renderTask:h,renderDayCell:D,renderYearMonth:m}),[C,s,c,v,D,h,m,H,g,w,E,i,k,f,l]);return y(T.Provider,{value:Y,children:y(M.Provider,{value:$,children:e})})};F.displayName="CalendarBoard";export{F as CalendarBoardProvider,b as useCalendarBoard,G as useCalendarBoardContext,z as useCalendarBoardTaskHover};
1
+ "use client";import{jsx as y}from"react/jsx-runtime";import{useSyncExternalStore as j,useState as A,useCallback as p,useMemo as L,createContext as V}from"react";import{useRequiredContext as x}from"../../hooks/useRequiredContext.js";import{useControlledStateWithCallback as o}from"../../hooks/useControlledState.js";import{startOfDay as a}from"../../utils/date.js";import{createCalendarBoardHoverStore as N}from"./calendarBoardHoverStore.js";const M=V(null),T=V(null);function b(e){return x(M,`${e} \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 CalendarBoard.Provider`)}function W(e){return x(T,`${e} \u0434\u043E\u043B\u0436\u0435\u043D \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432\u043D\u0443\u0442\u0440\u0438 CalendarBoard.Provider`)}function z(e){const r=W("useCalendarBoardTaskHover");return{highlighted:j(r.subscribe,()=>r.getSnapshot()===e,()=>!1),onMouseEnter:()=>r.setHovered(e),onMouseLeave:()=>r.setHovered(null)}}function G(){return b("useCalendarBoardContext")}const F=({children:e,view:r,defaultView:P="month",onViewChange:O,viewDate:n,defaultViewDate:q,onViewDateChange:R,selectedDate:u,onSelectedDateChange:d,tasks:i=[],weekStartsOn:l=1,dayStartHour:s=0,dayEndHour:C=24,hourHeight:c=48,onTaskClick:v,renderTask:h,renderDayCell:D,renderYearMonth:m})=>{const[Y]=A(()=>N()),[k,w]=o(r,P,O),[f,B]=o(n!==void 0?a(n):void 0,a(q??u??new Date),R),[H,S]=o(u!==void 0&&u?a(u):void 0,u?a(u):void 0,d?t=>{t&&d(t)}:void 0),E=p(t=>B(a(t)),[B]),g=p(t=>S(a(t)),[S]),$=L(()=>({view:k,setView:w,viewDate:f,setViewDate:E,selectedDate:H,setSelectedDate:g,tasks:i,weekStartsOn:l,dayStartHour:s,dayEndHour:C,hourHeight:c,onTaskClick:v,renderTask:h,renderDayCell:D,renderYearMonth:m}),[C,s,c,v,D,h,m,H,g,w,E,i,k,f,l]);return y(T.Provider,{value:Y,children:y(M.Provider,{value:$,children:e})})};F.displayName="CalendarBoard";export{F as CalendarBoardProvider,b as useCalendarBoard,G as useCalendarBoardContext,z as useCalendarBoardTaskHover};