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
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".piMYQ{box-sizing:border-box;color:var(--altum-color-input-text);display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-4);min-width:0;width:100%}.piMYQ .PIhAv{align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-3);min-height:var(--altum-control-height-sm)}.piMYQ .ieFyD{color:var(--altum-color-ink-default);flex:1 1 auto;font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);line-height:1.3;min-width:0}.piMYQ .EWooT{gap:var(--altum-g-space-1)}.piMYQ .EWooT,.piMYQ ._6i0TI{align-items:center;display:inline-flex}.piMYQ ._6i0TI{background:var(--altum-color-surface);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius-sm);color:var(--altum-color-text-secondary);height:var(--altum-control-height-sm);justify-content:center;transition:var(--altum-transition-smooth);width:var(--altum-control-height-sm)}:is(.piMYQ ._6i0TI):hover:not(:disabled){background:var(--altum-color-surface-hover);color:var(--altum-color-input-text)}.piMYQ ._8goA5{flex:0 0 auto}.piMYQ ._7RpjV{min-width:0}.piMYQ .Fgaml{display:flex;flex-direction:column;gap:var(--altum-g-space-2);min-width:0}.piMYQ .pJ9nq{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,minmax(0,1fr));padding:0 var(--altum-g-space-1)}.piMYQ .ZOxGs{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium);line-height:var(--altum-g-line-height-2xs);text-align:center}.piMYQ .ap-38{gap:var(--altum-g-space-1)}.piMYQ .SdYwd,.piMYQ .ap-38{display:flex;flex-direction:column}.piMYQ .SdYwd{gap:0;min-width:0;position:relative}.piMYQ ._0kfE4{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,minmax(0,1fr))}.piMYQ ._0kfE4,.piMYQ ._1Ww5-{min-height:calc(var(--altum-g-space-9)*2 + var(--altum-g-space-4))}.piMYQ ._1Ww5-{box-sizing:border-box;min-width:0}.piMYQ .VhRCF{align-items:stretch;background:var(--altum-color-bg);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius-sm);display:flex;flex-direction:column;gap:var(--altum-g-space-1);padding:var(--altum-g-space-1);padding-bottom:calc(var(--altum-g-space-1) + var(--altum-calendar-board-span-height, 0px));transition:var(--altum-transition-smooth)}.piMYQ .r4I7X{align-items:center;display:inline-flex;justify-content:flex-start;width:fit-content}:is(.piMYQ .r4I7X):hover .rLdLT{color:var(--altum-color-brand-tint-text)}.piMYQ .keApy{opacity:var(--altum-opacity-disabled)}.piMYQ .IXXDA{border-color:var(--altum-color-brand)}.piMYQ .yeXWt{background:color-mix(in srgb,var(--altum-color-brand) 8%,var(--altum-color-bg));border-color:var(--altum-color-input-border-focus);box-shadow:inset 0 0 0 1px var(--altum-color-input-border-focus)}.piMYQ .rLdLT{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-semibold);line-height:1.2}.piMYQ .dUxNu{display:flex;flex-direction:column;gap:var(--altum-control-inset);min-width:0}.piMYQ ._7UYkH{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-xs);line-height:var(--altum-g-line-height-xs);padding-left:var(--altum-g-space-1)}.piMYQ .NXhuu{bottom:var(--altum-g-space-1);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--altum-control-inset);height:var(--altum-calendar-board-span-height,0);left:0;pointer-events:none;position:absolute;right:0;z-index:var(--altum-g-z-raised-above)}.piMYQ .olUCM{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,minmax(0,1fr));height:var(--altum-g-space-5);min-height:var(--altum-g-space-5);pointer-events:none}.piMYQ .Kn1-T{box-sizing:border-box;display:flex;height:100%;min-width:0;padding:0 var(--altum-calendar-span-pad,1px);pointer-events:auto}:is(.piMYQ .Kn1-T)>*{flex:1 1 auto;min-width:0}.piMYQ ._0thuL{align-items:center;background-color:color-mix(in srgb,var(--altum-calendar-board-task-color,var(--altum-color-brand)) 14%,var(--altum-color-dropdown-bg));border:none;border-radius:var(--altum-g-radius-sm);box-sizing:border-box;color:var(--altum-color-input-text);display:flex;font-family:inherit;font-size:var(--altum-g-font-size-xs);font-weight:var(--altum-g-font-weight-medium);gap:var(--altum-g-space-1);line-height:var(--altum-g-line-height-xs);max-width:100%;overflow:hidden;padding:var(--altum-control-inset) calc(var(--altum-g-space-1) + var(--altum-control-inset));text-align:left;transition:var(--altum-transition-smooth)}.piMYQ ._9ratn{cursor:pointer}.piMYQ ._9OokW{background-color:var(--altum-calendar-board-dot-color,var(--altum-color-brand));border-radius:50%;flex-shrink:0;height:var(--altum-calendar-dot-size,6px);width:var(--altum-calendar-dot-size,6px)}.piMYQ .lrBTx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.piMYQ .YQrGM{opacity:var(--altum-opacity-disabled)}:is(.piMYQ .YQrGM) .lrBTx{text-decoration:line-through}.piMYQ ._4Md0S{display:grid;gap:var(--altum-g-space-4);grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.piMYQ .PWn5Q{min-width:0}.piMYQ .lqOaF{background:var(--altum-color-bg);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--altum-g-space-2);margin:0;padding:var(--altum-g-space-3);width:100%}.piMYQ .QmrLz{border-color:var(--altum-color-brand)}.piMYQ .LhY4U{align-self:flex-start;color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-sm);font-weight:var(--altum-g-font-weight-semibold);line-height:var(--altum-g-line-height-sm)}:is(.piMYQ .LhY4U):hover{color:var(--altum-color-brand-tint-text)}.piMYQ .lSrMn{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.piMYQ .UQweF,.piMYQ .lSrMn{gap:var(--altum-control-inset)}.piMYQ .UQweF{display:flex;flex-direction:column}.piMYQ .zgp79{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-3xs);line-height:var(--altum-g-line-height-xs);text-align:center}.piMYQ ._1-m2q{align-items:center;display:flex;font-size:var(--altum-g-font-size-xs);justify-content:center;line-height:1.2;min-height:calc(var(--altum-g-space-5) + var(--altum-control-inset));text-align:center;width:100%}.piMYQ .JN3mE{color:#0000;pointer-events:none}.piMYQ ._6P5Gz{box-shadow:inset 0 0 0 1px var(--altum-color-brand);font-weight:var(--altum-g-font-weight-bold)}.piMYQ .GMPdz{background-color:var(--altum-color-brand-tint);font-weight:var(--altum-g-font-weight-semibold)}.piMYQ .GMPdz,:is(.piMYQ .GMPdz):hover{color:var(--altum-color-brand-tint-text)}:is(.piMYQ .GMPdz):hover{background-color:var(--altum-color-brand-tint-hover)}._9ratn:hover,.dE7XX{background-color:color-mix(in srgb,var(--altum-calendar-board-task-color,var(--altum-color-brand)) 28%,var(--altum-color-dropdown-bg));filter:brightness(.97)}";const r={root:"piMYQ",header:"PIhAv",title:"ieFyD",nav:"EWooT",navBtn:"_6i0TI",viewSwitch:"_8goA5",body:"_7RpjV",month:"Fgaml",weekdayRow:"pJ9nq",weekdayLabel:"ZOxGs",monthWeeks:"ap-38",weekRow:"SdYwd",weekDays:"_0kfE4",dayCell:"_1Ww5-",dayCellSurface:"VhRCF",dayNumberBtn:"r4I7X",dayNumber:"rLdLT",dayOutside:"keApy",dayToday:"IXXDA",daySelected:"yeXWt",dayChips:"dUxNu",dayMore:"_7UYkH",spanTrack:"NXhuu",spanLane:"olUCM",spanSlot:"Kn1-T",chip:"_0thuL",chipClickable:"_9ratn",chipDot:"_9OokW",chipTitle:"lrBTx",chipCompleted:"YQrGM",year:"_4Md0S",yearMonth:"PWn5Q",yearMonthCard:"lqOaF",yearMonthCurrent:"QmrLz",yearMonthLabelBtn:"LhY4U",yearCols:"lSrMn",yearWeeks:"UQweF",yearWeekday:"zgp79",yearDay:"_1-m2q",yearDayOutside:"JN3mE",yearDayToday:"_6P5Gz",yearDayHasTask:"GMPdz",chipHighlighted:"dE7XX"};a(t);export{r as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".piMYQ{box-sizing:border-box;color:var(--altum-color-input-text);display:flex;flex-direction:column;font-family:var(--altum-g-font-family-ui);gap:var(--altum-g-space-4);min-width:0;width:100%}.piMYQ .PIhAv{align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-3);min-height:var(--altum-control-height-sm)}.piMYQ .ieFyD{color:var(--altum-color-ink-default);flex:1 1 auto;font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);line-height:1.3;min-width:0}.piMYQ .EWooT{gap:var(--altum-g-space-1)}.piMYQ .EWooT,.piMYQ ._6i0TI{align-items:center;display:inline-flex}.piMYQ ._6i0TI{background:var(--altum-color-surface);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius-sm);color:var(--altum-color-text-secondary);height:var(--altum-control-height-sm);justify-content:center;transition:var(--altum-transition-smooth);width:var(--altum-control-height-sm)}:is(.piMYQ ._6i0TI):hover:not(:disabled){background:var(--altum-color-surface-hover);color:var(--altum-color-input-text)}.piMYQ ._8goA5{flex:0 0 auto}.piMYQ ._7RpjV{min-width:0}.piMYQ .Fgaml{display:flex;flex-direction:column;gap:var(--altum-g-space-2);min-width:0}.piMYQ .pJ9nq{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,minmax(0,1fr));padding:0 var(--altum-g-space-1)}.piMYQ .ZOxGs{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-medium);line-height:var(--altum-g-line-height-2xs);text-align:center}.piMYQ .ap-38{gap:var(--altum-g-space-1)}.piMYQ .SdYwd,.piMYQ .ap-38{display:flex;flex-direction:column}.piMYQ .SdYwd{gap:0;min-width:0;position:relative}.piMYQ ._0kfE4{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,minmax(0,1fr))}.piMYQ ._0kfE4,.piMYQ ._1Ww5-{min-height:calc(var(--altum-g-space-9)*2 + var(--altum-g-space-4))}.piMYQ ._1Ww5-{box-sizing:border-box;min-width:0}.piMYQ .VhRCF{align-items:stretch;background:var(--altum-color-bg);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius-sm);display:flex;flex-direction:column;gap:var(--altum-g-space-1);padding:var(--altum-g-space-1);padding-bottom:calc(var(--altum-g-space-1) + var(--altum-calendar-board-span-height, 0px));transition:var(--altum-transition-smooth)}.piMYQ .r4I7X{align-items:center;display:inline-flex;justify-content:flex-start;width:fit-content}:is(.piMYQ .r4I7X):hover .rLdLT{color:var(--altum-color-brand-tint-text)}.piMYQ .keApy{opacity:var(--altum-opacity-disabled)}.piMYQ .IXXDA{border-color:var(--altum-color-brand)}.piMYQ .yeXWt{background:color-mix(in srgb,var(--altum-color-brand) 8%,var(--altum-color-bg));border-color:var(--altum-color-input-border-focus);box-shadow:inset 0 0 0 1px var(--altum-color-input-border-focus)}.piMYQ .rLdLT{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-2xs);font-weight:var(--altum-g-font-weight-semibold);line-height:var(--altum-g-line-height-2xs)}.piMYQ .dUxNu{display:flex;flex-direction:column;gap:var(--altum-control-inset);min-width:0}.piMYQ ._7UYkH{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-xs);line-height:var(--altum-g-line-height-xs);padding-left:var(--altum-g-space-1)}.piMYQ .NXhuu{bottom:var(--altum-g-space-1);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--altum-control-inset);height:var(--altum-calendar-board-span-height,0);left:0;pointer-events:none;position:absolute;right:0;z-index:var(--altum-g-z-raised-above)}.piMYQ .olUCM{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,minmax(0,1fr));height:var(--altum-g-space-5);min-height:var(--altum-g-space-5);pointer-events:none}.piMYQ .Kn1-T{box-sizing:border-box;display:flex;height:100%;min-width:0;padding:0 var(--altum-calendar-span-pad,1px);pointer-events:auto}:is(.piMYQ .Kn1-T)>*{flex:1 1 auto;min-width:0}.piMYQ ._0thuL{align-items:center;background-color:color-mix(in srgb,var(--altum-calendar-board-task-color,var(--altum-color-brand)) 14%,var(--altum-color-dropdown-bg));border:none;border-radius:var(--altum-g-radius-sm);box-sizing:border-box;color:var(--altum-color-input-text);display:flex;font-family:inherit;font-size:var(--altum-g-font-size-xs);font-weight:var(--altum-g-font-weight-medium);gap:var(--altum-g-space-1);line-height:var(--altum-g-line-height-xs);max-width:100%;overflow:hidden;padding:var(--altum-control-inset) calc(var(--altum-g-space-1) + var(--altum-control-inset));text-align:left;transition:var(--altum-transition-smooth)}.piMYQ ._9ratn{cursor:pointer}.piMYQ ._9OokW{background-color:var(--altum-calendar-board-dot-color,var(--altum-color-brand));border-radius:50%;flex-shrink:0;height:var(--altum-calendar-dot-size,6px);width:var(--altum-calendar-dot-size,6px)}.piMYQ .lrBTx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.piMYQ .YQrGM{opacity:var(--altum-opacity-disabled)}:is(.piMYQ .YQrGM) .lrBTx{text-decoration:line-through}.piMYQ ._4Md0S{display:grid;gap:var(--altum-g-space-4);grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.piMYQ .PWn5Q{min-width:0}.piMYQ .lqOaF{background:var(--altum-color-bg);border:1px solid var(--altum-color-border);border-radius:var(--altum-g-radius);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--altum-g-space-2);margin:0;padding:var(--altum-g-space-3);width:100%}.piMYQ .QmrLz{border-color:var(--altum-color-brand)}.piMYQ .LhY4U{align-self:flex-start;color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-sm);font-weight:var(--altum-g-font-weight-semibold);line-height:var(--altum-g-line-height-sm)}:is(.piMYQ .LhY4U):hover{color:var(--altum-color-brand-tint-text)}.piMYQ .lSrMn{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.piMYQ .UQweF,.piMYQ .lSrMn{gap:var(--altum-control-inset)}.piMYQ .UQweF{display:flex;flex-direction:column}.piMYQ .zgp79{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-3xs);line-height:var(--altum-g-line-height-xs);text-align:center}.piMYQ ._1-m2q{align-items:center;display:flex;font-size:var(--altum-g-font-size-xs);justify-content:center;line-height:1.2;min-height:calc(var(--altum-g-space-5) + var(--altum-control-inset));text-align:center;width:100%}.piMYQ .JN3mE{color:#0000;pointer-events:none}.piMYQ ._6P5Gz{box-shadow:inset 0 0 0 1px var(--altum-color-brand);font-weight:var(--altum-g-font-weight-bold)}.piMYQ .GMPdz{background-color:var(--altum-color-brand-tint);font-weight:var(--altum-g-font-weight-semibold)}.piMYQ .GMPdz,:is(.piMYQ .GMPdz):hover{color:var(--altum-color-brand-tint-text)}:is(.piMYQ .GMPdz):hover{background-color:var(--altum-color-brand-tint-hover)}._9ratn:hover,.dE7XX{background-color:color-mix(in srgb,var(--altum-calendar-board-task-color,var(--altum-color-brand)) 28%,var(--altum-color-dropdown-bg));filter:brightness(.97)}";const r={root:"piMYQ",header:"PIhAv",title:"ieFyD",nav:"EWooT",navBtn:"_6i0TI",viewSwitch:"_8goA5",body:"_7RpjV",month:"Fgaml",weekdayRow:"pJ9nq",weekdayLabel:"ZOxGs",monthWeeks:"ap-38",weekRow:"SdYwd",weekDays:"_0kfE4",dayCell:"_1Ww5-",dayCellSurface:"VhRCF",dayNumberBtn:"r4I7X",dayNumber:"rLdLT",dayOutside:"keApy",dayToday:"IXXDA",daySelected:"yeXWt",dayChips:"dUxNu",dayMore:"_7UYkH",spanTrack:"NXhuu",spanLane:"olUCM",spanSlot:"Kn1-T",chip:"_0thuL",chipClickable:"_9ratn",chipDot:"_9OokW",chipTitle:"lrBTx",chipCompleted:"YQrGM",year:"_4Md0S",yearMonth:"PWn5Q",yearMonthCard:"lqOaF",yearMonthCurrent:"QmrLz",yearMonthLabelBtn:"LhY4U",yearCols:"lSrMn",yearWeeks:"UQweF",yearWeekday:"zgp79",yearDay:"_1-m2q",yearDayOutside:"JN3mE",yearDayToday:"_6P5Gz",yearDayHasTask:"GMPdz",chipHighlighted:"dE7XX"};a(t);export{r as default};
@@ -1 +1 @@
1
- "use client";import{startOfDay as i,startOfWeek as o,buildDayStrip as g,addDays as D}from"../Calendar/Calendar.utils.js";function f(t,e=1){const n=t.getFullYear(),a=t.getMonth(),s=i(new Date(n,a,1)),c=i(new Date(n,a+1,0));let r=o(s,e);const l=o(c,e),u=[];for(;r.getTime()<=l.getTime();)u.push(g(r,7)),r=D(r,7);return u}function m(t,e){const n=i(t).getTime(),a=i(e).getTime();return Math.max(0,Math.round((a-n)/(1440*60*1e3)))}function d(t,e){return m(t,e)>1}function h(t){return`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`}export{f as buildMonthWeeks,h as calendarDateKey,d as isMultiDayTask};
1
+ "use client";import{buildDayStrip as l}from"../Calendar/Calendar.utils.js";import{startOfDay as i,getWeekStart as u,addDays as m}from"../../utils/date.js";function D(t,e=1){const n=t.getFullYear(),r=t.getMonth(),s=i(new Date(n,r,1)),c=i(new Date(n,r+1,0));let a=u(s,e);const g=u(c,e),o=[];for(;a.getTime()<=g.getTime();)o.push(l(a,7)),a=m(a,7);return o}function f(t,e){const n=i(t).getTime(),r=i(e).getTime();return Math.max(0,Math.round((r-n)/(1440*60*1e3)))}function d(t,e){return f(t,e)>1}function h(t){return`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`}export{D as buildMonthWeeks,h as calendarDateKey,d as isMultiDayTask};
@@ -1 +1 @@
1
- "use client";import{startOfDay as f,addDays as y}from"../Calendar/Calendar.utils.js";function h(t){return y(f(t),1)}function g(t){return t.getHours()*60+t.getMinutes()+t.getSeconds()/60}function p(t,u,r){return Math.min(r,Math.max(u,t))}function I(t,u){const r=Math.floor(t),a=Math.ceil(u);return a<=r?[]:Array.from({length:a-r},(e,n)=>r+n)}function M(t){const u=(t%24+24)%24;return`${String(u).padStart(2,"0")}:00`}function S(t,u,r){const a=f(r),e=h(r),n=t>a?t:a,o=u<e?u:e;return o<=n?null:{start:n,end:o}}function T(t,u,r,a){const e=r*60,n=a*60;if(n<=e)return null;const o=p(g(t),e,n),s=p(g(u),e,n);if(s<=o)return null;const l=n-e,m=(s-o)/l*100,c=32/l*100;return{topPercent:(o-e)/l*100,heightPercent:Math.max(m,c)}}function x(t,u,r){if(r.length===0)return null;const a=f(t),e=f(u);if(e<=a)return null;const n=r[0],o=r[r.length-1],s=h(o);if(e<=n||a>=s)return null;const l=r.map((m,c)=>({column:m,index:c})).filter(({column:m})=>m>=a&&m<e).map(({index:m})=>m);return l.length===0?null:{startIndex:l[0],endIndex:l[l.length-1],continuesBefore:a<n,continuesAfter:e>s}}function D(t,u,r){const a=[];return r.forEach((e,n)=>{const o=e.filter(Boolean),s=x(t,u,o);s&&a.push({weekIndex:n,segment:s})}),a}function k(t){const u=[...t].sort((e,n)=>{if(e.segment.startIndex!==n.segment.startIndex)return e.segment.startIndex-n.segment.startIndex;const o=e.segment.endIndex-e.segment.startIndex;return n.segment.endIndex-n.segment.startIndex-o}),r=[],a=[];for(const e of u){let n=r.findIndex(o=>o<e.segment.startIndex);n===-1?(n=r.length,r.push(e.segment.endIndex)):r[n]=e.segment.endIndex,a.push({item:e.item,segment:e.segment,lane:n})}return{packed:a,laneCount:r.length}}function v(t,u,r){const a=t.map(s=>{const l=T(s.start,s.end,u,r);return l?{item:s.item,layout:{...l,start:s.start,end:s.end}}:null}).filter(s=>s!==null).sort((s,l)=>s.layout.start.getTime()-l.layout.start.getTime()),e=[],n=[];let o=0;for(const s of a){const l=s.layout.start.getTime(),m=s.layout.end.getTime();for(let i=e.length-1;i>=0;i-=1)e[i].end<=l&&e.splice(i,1);const c=new Set(e.map(i=>i.lane));let d=0;for(;c.has(d);)d+=1;e.push({end:m,lane:d}),o=Math.max(o,d+1),n.push({item:s.item,layout:s.layout,lane:d})}return n.map(s=>({...s,laneCount:Math.max(o,1)}))}function A(t){return t.allDay===!0?!0:t.allDay===!1?!1:t.end.getTime()-t.start.getTime()>=1440*60*1e3&&g(t.start)===0&&g(t.end)===0}export{I as buildHourMarks,S as clipEventToDay,M as formatHourLabel,k as packSpanSegments,v as packTimedEventsInDay,A as resolveAllDay,D as segmentSpanByWeeks,x as segmentSpanInColumns};
1
+ "use client";import{startOfDay as f,addDays as y}from"../../utils/date.js";function h(n){return y(f(n),1)}function g(n){return n.getHours()*60+n.getMinutes()+n.getSeconds()/60}function x(n,l,s){return Math.min(s,Math.max(l,n))}function I(n,l){const s=Math.floor(n),o=Math.ceil(l);return o<=s?[]:Array.from({length:o-s},(e,t)=>s+t)}function M(n,l,s){const o=f(s),e=h(s),t=n>o?n:o,a=l<e?l:e;return a<=t?null:{start:t,end:a}}function T(n,l,s,o){const e=s*60,t=o*60;if(t<=e)return null;const a=x(g(n),e,t),r=x(g(l),e,t);if(r<=a)return null;const u=t-e,m=(r-a)/u*100,c=32/u*100;return{topPercent:(a-e)/u*100,heightPercent:Math.max(m,c)}}function p(n,l,s){if(s.length===0)return null;const o=f(n),e=f(l);if(e<=o)return null;const t=s[0],a=s[s.length-1],r=h(a);if(e<=t||o>=r)return null;const u=s.map((m,c)=>({column:m,index:c})).filter(({column:m})=>m>=o&&m<e).map(({index:m})=>m);return u.length===0?null:{startIndex:u[0],endIndex:u[u.length-1],continuesBefore:o<t,continuesAfter:e>r}}function D(n,l,s){const o=[];return s.forEach((e,t)=>{const a=e.filter(Boolean),r=p(n,l,a);r&&o.push({weekIndex:t,segment:r})}),o}function k(n){const l=[...n].sort((e,t)=>{if(e.segment.startIndex!==t.segment.startIndex)return e.segment.startIndex-t.segment.startIndex;const a=e.segment.endIndex-e.segment.startIndex;return t.segment.endIndex-t.segment.startIndex-a}),s=[],o=[];for(const e of l){let t=s.findIndex(a=>a<e.segment.startIndex);t===-1?(t=s.length,s.push(e.segment.endIndex)):s[t]=e.segment.endIndex,o.push({item:e.item,segment:e.segment,lane:t})}return{packed:o,laneCount:s.length}}function S(n,l,s){const o=n.map(r=>{const u=T(r.start,r.end,l,s);return u?{item:r.item,layout:{...u,start:r.start,end:r.end}}:null}).filter(r=>r!==null).sort((r,u)=>r.layout.start.getTime()-u.layout.start.getTime()),e=[],t=[];let a=0;for(const r of o){const u=r.layout.start.getTime(),m=r.layout.end.getTime();for(let i=e.length-1;i>=0;i-=1)e[i].end<=u&&e.splice(i,1);const c=new Set(e.map(i=>i.lane));let d=0;for(;c.has(d);)d+=1;e.push({end:m,lane:d}),a=Math.max(a,d+1),t.push({item:r.item,layout:r.layout,lane:d})}return t.map(r=>({...r,laneCount:Math.max(a,1)}))}function v(n){return n.allDay===!0?!0:n.allDay===!1?!1:n.end.getTime()-n.start.getTime()>=1440*60*1e3&&g(n.start)===0&&g(n.end)===0}export{I as buildHourMarks,M as clipEventToDay,k as packSpanSegments,S as packTimedEventsInDay,v as resolveAllDay,D as segmentSpanByWeeks,p as segmentSpanInColumns};
@@ -1 +1 @@
1
- "use client";import{jsxs as F,Fragment as I,jsx as l}from"react/jsx-runtime";import{forwardRef as G}from"react";import{IconCross as T}from"../../icons/icons/IconCross.js";import o from"./Chip.module.css.js";import h from"../../styles/status.module.css.js";import L from"../../styles/unstyledControl.module.css.js";import{cn as b}from"../../utils/cn.js";import{composeRefs as z}from"../../utils/composeRefs.js";import{useOverflowEdges as A}from"../../hooks/useOverflowEdges.js";import{useScrollFocusedChildIntoView as B}from"../../hooks/useScrollFocusedChildIntoView.js";import{useLocale as R}from"../../locales/localeContext.js";const M={success:1,info:1,warning:1,error:1},x=G(function({variant:s="primary",size:g="md",mode:d,as:c="chip",children:v,onRemove:r,onClick:t,disabled:e=!1,icon:m,className:C,removeLabel:y,...N},k){const{t:a}=R(),n=d??c,f=n==="tag",p=n==="toggle",i=!!t&&!e,w=i&&!!r,S=i&&!r?"button":"span",u=s in M,X=F(I,{children:[m&&l("span",{className:o.icon,"aria-hidden":f||void 0,children:m}),l("span",{className:o.label,children:v})]});return F(S,{ref:k,className:b(o.chip,f?o.modeTag:o.modeChip,u?h[s]:o[s],u?h.surface:"",u&&i?h.clickable:"",o[g],p?u?h.active:o.active:"",i?o.clickable:"",r?o.chipRemovable:"",e?o.disabled:"",C),type:S==="button"?"button":void 0,...N,"aria-pressed":i&&p&&!w?!0:void 0,"aria-disabled":e||void 0,disabled:S==="button"?e:void 0,onClick:i&&!w?t:void 0,children:[w?l("button",{type:"button",className:b(L.control,o.action),onClick:t,"aria-pressed":p||void 0,disabled:e,children:X}):X,r&&!e&&l("button",{type:"button",className:b(L.control,o.removeBtn),onClick:j=>{j.stopPropagation(),r()},"aria-label":y??a("chip.remove"),children:l(T,{})})]})});x.displayName="Chip";const E=G(function({children:s,"aria-label":g,gap:d="md",layout:c="wrap",overflowAffordance:v,mode:r,as:t="chip",className:e,style:m,...C},y){const{t:N}=R(),k=r??t,a=c==="scrollX"&&(v??"fade")==="fade",{ref:n,start:f,end:p}=A(a);return B(n,c==="scrollX"),l("div",{ref:z(y,n),className:b(o.chipGroup,d==="sm"?o.gapSm:d==="lg"?o.gapLg:"",c==="scrollX"?o.layoutScrollX:"",a?o.layoutScrollXFade:"",a&&f?o.fadeStart:"",a&&p?o.fadeEnd:"",e),style:m,...C,role:"group","aria-label":g??N(k==="tag"?"chip.groupTags":"chip.groupChips"),children:s})});E.displayName="ChipGroup";export{x as Chip,E as ChipGroup};
1
+ "use client";import{jsxs as G,Fragment as F,jsx as r}from"react/jsx-runtime";import{forwardRef as x}from"react";import{IconCross as M}from"../../icons/icons/IconCross.js";import i from"./Chip.module.css.js";import p from"../../styles/status.module.css.js";import L from"../../styles/unstyledControl.module.css.js";import{cn as m}from"../../utils/cn.js";import{useLocale as R}from"../../locales/localeContext.js";const P={success:1,info:1,warning:1,error:1},T=x(function({variant:t="primary",size:d="md",mode:s,as:h="chip",children:u,onRemove:e,onClick:c,disabled:a=!1,icon:l,className:b,removeLabel:g,...w},I){const{t:z}=R(),N=s??h,y=N==="tag",f=N==="toggle",o=!!c&&!a,v=o&&!!e,C=o&&!e?"button":"span",n=t in P,k=G(F,{children:[l&&r("span",{className:i.icon,"aria-hidden":y||void 0,children:l}),r("span",{className:i.label,children:u})]});return G(C,{ref:I,className:m(i.chip,y?i.modeTag:i.modeChip,n?p[t]:i[t],n?p.surface:"",n&&o?p.clickable:"",i[d],f?n?p.active:i.active:"",o?i.clickable:"",e&&!a?i.chipRemovable:"",a?i.disabled:"",b),type:C==="button"?"button":void 0,...w,"aria-pressed":o&&f&&!v?!0:void 0,"aria-disabled":a||void 0,disabled:C==="button"?a:void 0,onClick:o&&!v?c:void 0,children:[v?r("button",{type:"button",className:m(L.control,i.action),onClick:c,"aria-pressed":f||void 0,disabled:a,children:k}):k,e&&!a&&r("button",{type:"button",className:m(L.control,i.removeBtn),onClick:B=>{B.stopPropagation(),e()},"aria-label":g??z("chip.remove"),children:r(M,{})})]})});T.displayName="Chip";const j=x(function({children:t,"aria-label":d,gap:s="md",mode:h,as:u="chip",className:e,style:c,...a},l){const{t:b}=R(),g=h??u;return r("div",{ref:l,className:m(i.chipGroup,s==="sm"?i.gapSm:s==="lg"?i.gapLg:"",e),style:c,...a,role:"group","aria-label":d??b(g==="tag"?"chip.groupTags":"chip.groupChips"),children:t})});j.displayName="ChipGroup";export{T as Chip,j as ChipGroup};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var r="._0nys-{--altum-chip-border:#0000;--altum-chip-fg:inherit;--altum-chip-bg:#0000;--altum-chip-border-hover:var(--altum-chip-border);--altum-chip-bg-hover:var(--altum-chip-bg);--altum-chip-border-active:var(--altum-chip-border);--altum-chip-fg-active:var(--altum-chip-fg);--altum-chip-bg-active:var(--altum-chip-bg);--altum-chip-remove-icon:10px;align-items:center;background-color:var(--altum-chip-bg);border:1px solid var(--altum-chip-border);box-sizing:border-box;color:var(--altum-chip-fg);display:inline-flex;font-family:var(--altum-g-font-family-ui);font-weight:var(--altum-g-font-weight-medium,500);gap:var(--altum-g-space-1);max-width:100%;transition:var(--altum-transition-smooth);-webkit-user-select:none;user-select:none}._0nys-._0lmtZ{border-radius:var(--altum-g-radius-sm)}._0nys-.uzyWi{border-radius:var(--altum-g-radius-pill)}._0nys-.dsdYB{--altum-chip-remove-size:var(--altum-g-space-4);--altum-chip-remove-icon:8px;font-size:var(--altum-g-font-size-xs);line-height:1.2;min-height:var(--altum-g-space-5);padding:0 var(--altum-g-space-2)}._0nys-.dsdYB .zcpqW{padding:1px}._0nys-.TEBUR{--altum-chip-remove-size:var(--altum-g-space-5);font-size:var(--altum-g-font-size-2xs);line-height:1.25;min-height:calc(var(--altum-g-space-6) + var(--altum-control-inset));padding:var(--altum-control-inset) var(--altum-g-space-2)}._0nys-.elR6T{--altum-chip-remove-size:var(--altum-g-space-6);--altum-chip-remove-icon:12px;font-size:var(--altum-g-font-size-sm);gap:var(--altum-g-space-2);line-height:1.3;min-height:var(--altum-g-space-7);padding:0 var(--altum-g-space-3)}._0nys-.elR6T .zcpqW{padding:2px}._0nys-.YebDo.dsdYB{padding-right:2px}._0nys-.YebDo.TEBUR,._0nys-.YebDo.elR6T{padding-right:var(--altum-g-space-1)}._0nys-.u11-9{--altum-chip-border:color-mix(in srgb,var(--altum-color-brand-text) 28%,var(--altum-color-brand));--altum-chip-fg:var(--altum-color-fill-primary-fg);--altum-chip-bg:var(--altum-color-fill-primary-bg);--altum-chip-border-hover:color-mix(in srgb,var(--altum-color-brand-text) 40%,var(--altum-color-brand-hover));--altum-chip-bg-hover:var(--altum-color-brand-hover);--altum-chip-border-active:color-mix(in srgb,var(--altum-color-brand-text) 55%,var(--altum-color-brand));--altum-chip-fg-active:var(--altum-color-selection-fill-fg,var(--altum-color-brand-text));--altum-chip-bg-active:var(--altum-color-selection-fill-emphasis,var(--altum-color-brand-hover,var(--altum-color-brand)))}._0nys-._5OzVt{--altum-chip-border:var(--altum-color-chip-tinted-border);--altum-chip-fg:var(--altum-color-chip-tinted-text);--altum-chip-bg:var(--altum-color-chip-tinted-bg);--altum-chip-border-hover:var(--altum-color-chip-tinted-border-hover);--altum-chip-bg-hover:var(--altum-color-chip-tinted-bg-hover);--altum-chip-border-active:color-mix(in srgb,var(--altum-color-brand-tint-text) 45%,#0000);--altum-chip-fg-active:var(--altum-color-selection-fill-fg,var(--altum-color-brand-text));--altum-chip-bg-active:var(--altum-color-selection-fill,var(--altum-color-brand-tint-active))}._0nys-.Pblts{--altum-chip-border:var(--altum-color-chip-secondary-border);--altum-chip-fg:var(--altum-color-chip-secondary-text);--altum-chip-bg:var(--altum-color-chip-secondary-bg);--altum-chip-border-hover:var(--altum-color-chip-secondary-border-hover);--altum-chip-bg-hover:var(--altum-color-chip-secondary-bg-hover);--altum-chip-border-active:var(--altum-color-selection-neutral-border,color-mix(in srgb,var(--altum-color-text-secondary) 45%,var(--altum-color-border)));--altum-chip-fg-active:var(--altum-color-field-text,var(--altum-color-text-secondary));--altum-chip-bg-active:var(--altum-color-selection-neutral-fill,color-mix(in srgb,var(--altum-color-text-secondary) 22%,#0000))}._0nys-.AkRz4:is(.u11-9,._5OzVt,.Pblts):hover:not(:disabled){background-color:var(--altum-chip-bg-hover);border-color:var(--altum-chip-border-hover)}._0nys-.Nql1K{background-color:var(--altum-chip-bg-active);border-color:var(--altum-chip-border-active);box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 35%,#0000);color:var(--altum-chip-fg-active)}._0nys-.AkRz4{cursor:pointer}._0nys-.AkRz4:focus-visible{outline:var(--altum-focus-ring-width) solid var(--altum-focus-ring-color);outline-offset:var(--altum-focus-ring-offset)}._0nys- .-EHB0{gap:inherit;min-width:0}._0nys- .-EHB0,._0nys- .dtR-K{align-items:center;display:inline-flex}._0nys- .dtR-K{flex-shrink:0;justify-content:center;line-height:0}._0nys- .Ov9pg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._0nys- .zcpqW{align-items:center;border-radius:50%;box-sizing:border-box;display:inline-flex;flex-shrink:0;height:var(--altum-chip-remove-size,var(--altum-g-space-5));justify-content:center;opacity:.7;transition:var(--altum-transition-smooth);width:var(--altum-chip-remove-size,var(--altum-g-space-5))}:is(._0nys- .zcpqW) svg{height:var(--altum-chip-remove-icon);width:var(--altum-chip-remove-icon)}:is(._0nys- .zcpqW):hover:not(:disabled){background-color:color-mix(in srgb,currentColor 12%,#0000);opacity:1}:is(._0nys- .zcpqW):focus-visible{opacity:1}._0nys-._5Z-a8{cursor:not-allowed;opacity:var(--altum-opacity-disabled);pointer-events:none}.BDyZD{align-content:flex-start;align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-2);justify-content:flex-start}.BDyZD.pPuGm{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}.BDyZD.pPuGm>*{flex-shrink:0}.BDyZD.wBJnf{-webkit-mask-image:linear-gradient(to right,#0000 0,var(--altum-chip-mask) var(--altum-g-space-4),var(--altum-chip-mask) calc(100% - var(--altum-g-space-4)),#0000 100%);mask-image:linear-gradient(to right,#0000 0,var(--altum-chip-mask) var(--altum-g-space-4),var(--altum-chip-mask) calc(100% - var(--altum-g-space-4)),#0000 100%)}.BDyZD.wBJnf.x8XR-:not(.Z-fFZ){-webkit-mask-image:linear-gradient(to right,#0000 0,var(--altum-chip-mask) var(--altum-g-space-4),var(--altum-chip-mask) 100%);mask-image:linear-gradient(to right,#0000 0,var(--altum-chip-mask) var(--altum-g-space-4),var(--altum-chip-mask) 100%)}.BDyZD.wBJnf.Z-fFZ:not(.x8XR-){-webkit-mask-image:linear-gradient(to right,var(--altum-chip-mask) 0,var(--altum-chip-mask) calc(100% - var(--altum-g-space-4)),#0000 100%);mask-image:linear-gradient(to right,var(--altum-chip-mask) 0,var(--altum-chip-mask) calc(100% - var(--altum-g-space-4)),#0000 100%)}.BDyZD.wBJnf:not(.x8XR-):not(.Z-fFZ){-webkit-mask-image:none;mask-image:none}.BDyZD.SJea-{gap:var(--altum-g-space-1)}.BDyZD.ipm2Q{gap:var(--altum-g-space-3)}";const t={chip:"_0nys-",modeChip:"_0lmtZ",modeTag:"uzyWi",sm:"dsdYB",removeBtn:"zcpqW",md:"TEBUR",lg:"elR6T",chipRemovable:"YebDo",primary:"u11-9",tinted:"_5OzVt",secondary:"Pblts",clickable:"AkRz4",active:"Nql1K",action:"-EHB0",icon:"dtR-K",label:"Ov9pg",disabled:"_5Z-a8",chipGroup:"BDyZD",layoutScrollX:"pPuGm",layoutScrollXFade:"wBJnf",fadeStart:"x8XR-",fadeEnd:"Z-fFZ",gapSm:"SJea-",gapLg:"ipm2Q"};a(r);export{t as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var r="._0nys-{--altum-chip-border:#0000;--altum-chip-fg:inherit;--altum-chip-bg:#0000;--altum-chip-border-hover:var(--altum-chip-border);--altum-chip-bg-hover:var(--altum-chip-bg);--altum-chip-border-active:var(--altum-chip-border);--altum-chip-fg-active:var(--altum-chip-fg);--altum-chip-bg-active:var(--altum-chip-bg);--altum-chip-remove-icon:10px;align-items:center;background-color:var(--altum-chip-bg);border:1px solid var(--altum-chip-border);box-sizing:border-box;color:var(--altum-chip-fg);display:inline-flex;font-family:var(--altum-g-font-family-ui);font-weight:var(--altum-g-font-weight-medium);gap:var(--altum-g-space-1);max-width:100%;transition:var(--altum-transition-smooth);-webkit-user-select:none;user-select:none}._0nys-._0lmtZ{border-radius:var(--altum-g-radius-sm)}._0nys-.uzyWi{border-radius:var(--altum-g-radius-pill)}._0nys-.dsdYB{--altum-chip-remove-size:var(--altum-g-space-4);--altum-chip-remove-icon:var(--altum-g-space-2);font-size:var(--altum-g-font-size-xs);line-height:1.2;min-height:var(--altum-g-space-5);padding:0 var(--altum-g-space-2)}._0nys-.dsdYB .zcpqW{padding:1px}._0nys-.TEBUR{--altum-chip-remove-size:var(--altum-g-space-5);font-size:var(--altum-g-font-size-2xs);line-height:1.25;min-height:calc(var(--altum-g-space-6) + var(--altum-control-inset));padding:var(--altum-control-inset) var(--altum-g-space-2)}._0nys-.elR6T{--altum-chip-remove-size:var(--altum-g-space-6);--altum-chip-remove-icon:var(--altum-g-space-3);font-size:var(--altum-g-font-size-sm);gap:var(--altum-g-space-2);line-height:1.3;min-height:var(--altum-g-space-7);padding:0 var(--altum-g-space-3)}._0nys-.elR6T .zcpqW{padding:var(--altum-control-inset)}._0nys-.YebDo.dsdYB{padding-right:var(--altum-control-inset)}._0nys-.YebDo.TEBUR,._0nys-.YebDo.elR6T{padding-right:var(--altum-g-space-1)}._0nys-.u11-9{--altum-chip-border:color-mix(in srgb,var(--altum-color-brand-text) 28%,var(--altum-color-brand));--altum-chip-fg:var(--altum-color-fill-primary-fg);--altum-chip-bg:var(--altum-color-fill-primary-bg);--altum-chip-border-hover:color-mix(in srgb,var(--altum-color-brand-text) 40%,var(--altum-color-brand-hover));--altum-chip-bg-hover:var(--altum-color-brand-hover);--altum-chip-border-active:color-mix(in srgb,var(--altum-color-brand-text) 55%,var(--altum-color-brand));--altum-chip-fg-active:var(--altum-color-selection-fill-fg,var(--altum-color-brand-text));--altum-chip-bg-active:var(--altum-color-selection-fill-emphasis,var(--altum-color-brand-hover,var(--altum-color-brand)))}._0nys-._5OzVt{--altum-chip-border:var(--altum-color-chip-tinted-border);--altum-chip-fg:var(--altum-color-chip-tinted-text);--altum-chip-bg:var(--altum-color-chip-tinted-bg);--altum-chip-border-hover:var(--altum-color-chip-tinted-border-hover);--altum-chip-bg-hover:var(--altum-color-chip-tinted-bg-hover);--altum-chip-border-active:color-mix(in srgb,var(--altum-color-brand-tint-text) 45%,#0000);--altum-chip-fg-active:var(--altum-color-selection-fill-fg,var(--altum-color-brand-text));--altum-chip-bg-active:var(--altum-color-selection-fill,var(--altum-color-brand-tint-active))}._0nys-.Pblts{--altum-chip-border:var(--altum-color-chip-secondary-border);--altum-chip-fg:var(--altum-color-chip-secondary-text);--altum-chip-bg:var(--altum-color-chip-secondary-bg);--altum-chip-border-hover:var(--altum-color-chip-secondary-border-hover);--altum-chip-bg-hover:var(--altum-color-chip-secondary-bg-hover);--altum-chip-border-active:var(--altum-color-selection-neutral-border,color-mix(in srgb,var(--altum-color-text-secondary) 45%,var(--altum-color-border)));--altum-chip-fg-active:var(--altum-color-field-text,var(--altum-color-text-secondary));--altum-chip-bg-active:var(--altum-color-selection-neutral-fill,color-mix(in srgb,var(--altum-color-text-secondary) 22%,#0000))}._0nys-.AkRz4:is(.u11-9,._5OzVt,.Pblts):hover:not(:disabled){background-color:var(--altum-chip-bg-hover);border-color:var(--altum-chip-border-hover)}._0nys-.Nql1K{background-color:var(--altum-chip-bg-active);border-color:var(--altum-chip-border-active);box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 35%,#0000);color:var(--altum-chip-fg-active)}._0nys-.AkRz4{cursor:pointer}._0nys-.AkRz4:focus-visible{outline:var(--altum-focus-ring-width) solid var(--altum-focus-ring-color);outline-offset:var(--altum-focus-ring-offset)}._0nys- .-EHB0{gap:inherit;min-width:0}._0nys- .-EHB0,._0nys- .dtR-K{align-items:center;display:inline-flex}._0nys- .dtR-K{flex-shrink:0;justify-content:center;line-height:0}._0nys- .Ov9pg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._0nys- .zcpqW{align-items:center;border-radius:50%;box-sizing:border-box;display:inline-flex;flex-shrink:0;height:var(--altum-chip-remove-size,var(--altum-g-space-5));justify-content:center;opacity:.7;transition:var(--altum-transition-smooth);width:var(--altum-chip-remove-size,var(--altum-g-space-5))}:is(._0nys- .zcpqW) svg{height:var(--altum-chip-remove-icon);width:var(--altum-chip-remove-icon)}:is(._0nys- .zcpqW):hover:not(:disabled){background-color:color-mix(in srgb,currentColor 12%,#0000);opacity:1}:is(._0nys- .zcpqW):focus-visible{opacity:1}._0nys-._5Z-a8{cursor:not-allowed;opacity:var(--altum-opacity-disabled);pointer-events:none}.BDyZD{align-content:flex-start;align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-2);justify-content:flex-start}.BDyZD.SJea-{gap:var(--altum-g-space-1)}.BDyZD.ipm2Q{gap:var(--altum-g-space-3)}";const t={chip:"_0nys-",modeChip:"_0lmtZ",modeTag:"uzyWi",sm:"dsdYB",removeBtn:"zcpqW",md:"TEBUR",lg:"elR6T",chipRemovable:"YebDo",primary:"u11-9",tinted:"_5OzVt",secondary:"Pblts",clickable:"AkRz4",active:"Nql1K",action:"-EHB0",icon:"dtR-K",label:"Ov9pg",disabled:"_5Z-a8",chipGroup:"BDyZD",gapSm:"SJea-",gapLg:"ipm2Q"};a(r);export{t as default};
@@ -1 +1 @@
1
- "use client";import{injectCss as r}from"../../utils/injectCss.js";var a=".bWMc8{--altum-swatch-size:var(--altum-g-space-7);align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-2)}.bWMc8._0Y80K{--altum-swatch-size:var(--altum-g-space-5)}.bWMc8.nDsdT{background-color:var(--altum-field-bg-readonly);border:1px dashed var(--altum-field-border-readonly);border-radius:var(--altum-g-radius);padding:var(--altum-g-space-2)}.bWMc8.PmFOm .Dgzsz{cursor:not-allowed;opacity:.5}.Dgzsz{background-color:var(--altum-swatch-color);border:2px solid #0000;border-radius:50%;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--altum-color-input-text) 8%,#0000);height:var(--altum-swatch-size);transition:var(--altum-transition-smooth);width:var(--altum-swatch-size)}.Dgzsz:hover:not(:disabled){transform:scale(1.1)}.Dgzsz.ntGAr{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--altum-color-input-text) 14%,#0000),0 0 0 2px color-mix(in srgb,var(--altum-color-bg) 88%,#0000),0 0 0 3.5px color-mix(in srgb,var(--altum-color-text-secondary) 42%,#0000)}.Dgzsz.ntGAr:hover:not(:disabled){transform:scale(1.06)}.PmFOm .Dgzsz,.nDsdT .Dgzsz,:is(.nDsdT .Dgzsz,.PmFOm .Dgzsz):hover{transform:none}@media (prefers-reduced-motion:reduce){.Dgzsz:hover:not(:disabled){transform:none}}";const s={group:"bWMc8",sm:"_0Y80K",readOnly:"nDsdT",disabled:"PmFOm",swatch:"Dgzsz",selected:"ntGAr"};r(a);export{s as default};
1
+ "use client";import{injectCss as r}from"../../utils/injectCss.js";var a=".bWMc8{--altum-swatch-size:var(--altum-g-space-7);align-items:center;display:flex;flex-wrap:wrap;gap:var(--altum-g-space-2)}.bWMc8._0Y80K{--altum-swatch-size:var(--altum-g-space-5)}.bWMc8.nDsdT{background-color:var(--altum-field-bg-readonly);border:1px dashed var(--altum-field-border-readonly);border-radius:var(--altum-g-radius);padding:var(--altum-g-space-2)}.bWMc8.PmFOm .Dgzsz{cursor:not-allowed;opacity:.5}.bWMc8 .Dgzsz{background-color:var(--altum-swatch-color);border:2px solid #0000;border-radius:50%;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--altum-color-input-text) 8%,#0000);height:var(--altum-swatch-size);transition:var(--altum-transition-smooth);width:var(--altum-swatch-size)}:is(.bWMc8 .Dgzsz):hover:not(:disabled){transform:scale(1.1)}.ntGAr:is(.bWMc8 .Dgzsz){box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--altum-color-input-text) 14%,#0000),0 0 0 2px color-mix(in srgb,var(--altum-color-bg) 88%,#0000),0 0 0 3.5px color-mix(in srgb,var(--altum-color-text-secondary) 42%,#0000)}.ntGAr:is(.bWMc8 .Dgzsz):hover:not(:disabled){transform:scale(1.06)}.bWMc8.PmFOm .Dgzsz,.bWMc8.nDsdT .Dgzsz,:is(.bWMc8.nDsdT .Dgzsz,.bWMc8.PmFOm .Dgzsz):hover{transform:none}@media (prefers-reduced-motion:reduce){.bWMc8 .Dgzsz:hover:not(:disabled){transform:none}}";const s={group:"bWMc8",sm:"_0Y80K",readOnly:"nDsdT",disabled:"PmFOm",swatch:"Dgzsz",selected:"ntGAr"};r(a);export{s as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as s,jsx as n}from"react/jsx-runtime";import{forwardRef as w,useId as x}from"react";import{Button as r}from"../Button/Button.js";import{Modal as a}from"../Modal/Modal.js";import{useLocale as z}from"../../locales/localeContext.js";const c=w(function({open:t,title:m,message:f,confirmLabel:p,cancelLabel:g,status:h="default",secondaryAction:e,onConfirm:u,onOpenChange:o,loading:i=!1,className:C,...b},y){const{t:l}=z(),k=p??l("confirmDialog.confirm"),v=g??l("confirmDialog.cancel"),d=x(),D=()=>{i||o(!1)};return s(a,{ref:y,open:t,onOpenChange:o,"aria-describedby":d,className:C,...b,children:[n(a.Header,{showClose:!1,children:n(a.Title,{children:m})}),n(a.Body,{id:d,children:f}),s(a.Footer,{align:e?"space-between":"end",children:[e&&n(r,{variant:e.variant??"secondary",size:"md",onClick:e.onClick,disabled:i||e.disabled,children:e.label}),n(r,{variant:"secondary",size:"md",onClick:D,disabled:i,children:v}),n(r,{variant:"primary",status:h==="danger"?"danger":"default",size:"md",onClick:u,loading:i,children:k})]})]})});c.displayName="ConfirmDialog";export{c as ConfirmDialog};
1
+ "use client";import{jsxs as c,jsx as n}from"react/jsx-runtime";import{forwardRef as w,useId as x}from"react";import{Button as r}from"../Button/Button.js";import{Modal as a}from"../Modal/Modal.js";import{useLocale as z}from"../../locales/localeContext.js";const s=w(function({open:t,title:m,message:f,confirmLabel:p,cancelLabel:g,status:h="default",secondaryAction:e,onConfirm:C,onOpenChange:o,loading:i=!1,className:b,...u},y){const{t:l}=z(),k=p??l("confirmDialog.confirm"),v=g??l("confirmDialog.cancel"),d=x(),D=()=>{i||o(!1)};return c(a,{ref:y,open:t,onOpenChange:o,"aria-describedby":d,className:b,...u,children:[n(a.Header,{showClose:!1,children:n(a.Title,{children:m})}),n(a.Body,{id:d,children:f}),c(a.Footer,{align:e?"space-between":"end",children:[e&&n(r,{variant:e.variant??"secondary",size:"md",onClick:e.onClick,disabled:i||e.disabled,children:e.label}),n(r,{variant:"secondary",size:"md",onClick:D,disabled:i,children:v}),n(r,{variant:h==="danger"?"danger":"primary",size:"md",onClick:C,loading:i,children:k})]})]})});s.displayName="ConfirmDialog";export{s as ConfirmDialog};
@@ -1 +1 @@
1
- "use client";import{jsx as m}from"react/jsx-runtime";import{forwardRef as K,useRef as b,useEffect as g}from"react";import{cn as D}from"../../utils/cn.js";import{handleEnterKeyDown as E}from"../../utils/keyboard.js";import{composeEventHandlers as c}from"../../utils/composeEvents.js";import{useLocale as N}from"../../locales/localeContext.js";import{composeRefs as O}from"../../utils/composeRefs.js";import{useCustomSelectFilterContext as R,useCustomSelectSelectionContext as z,useCustomSelectOpenContext as P}from"./CustomSelect.context.js";import{SearchField as Q}from"../SearchField/SearchField.js";import j from"./CustomSelect.module.css.js";const i=K(function({placeholder:n,label:u,className:a,autoFocus:t=!0,onKeyDown:f,onChange:p,size:d="sm",...C},S){const{t:h}=N(),o=n??h("customSelect.filterPlaceholder"),{filterQuery:F,setFilterQuery:v,filteredOptions:x}=R("CustomSelect.Filter"),{listboxId:y,selectOption:w}=z("CustomSelect.Filter"),{open:r}=P("CustomSelect.Filter"),l=b(null);return g(()=>{r&&t&&l.current?.focus({preventScroll:!0})},[t,r]),m("div",{className:D(j.filterWrapper,a),children:m(Q,{...C,ref:O(S,l),size:d,keepPlaceholder:!0,label:u??o,placeholder:o,value:F,autoComplete:"off",onChange:c(p,e=>{v(e.target.value)}),onKeyDown:c(f,e=>{E(e,()=>{const s=x[0];s&&w(s.value)})}),"aria-controls":y})})});i.displayName="CustomSelect.Filter";export{i as CustomSelectFilter};
1
+ "use client";import{jsx as m}from"react/jsx-runtime";import{forwardRef as K,useRef as b,useEffect as g}from"react";import{cn as D}from"../../utils/cn.js";import{handleEnterKeyDown as E}from"../../utils/keyboard.js";import{composeEventHandlers as c}from"../../utils/composeEvents.js";import{useLocale as N}from"../../locales/localeContext.js";import{composeRefs as O}from"../../utils/composeRefs.js";import{useCustomSelectFilterContext as R,useCustomSelectSelectionContext as z,useCustomSelectOpenContext as P}from"./CustomSelect.context.js";import{SearchField as Q}from"../SearchField/SearchField.js";import j from"./CustomSelect.module.css.js";const i=K(function({placeholder:n,label:u,className:a,autoFocus:t=!0,onKeyDown:f,onChange:p,size:d="sm",...C},S){const{t:h}=N(),o=n??h("customSelect.filterPlaceholder"),{filterQuery:F,setFilterQuery:v,filteredOptions:x}=R("CustomSelect.Filter"),{listboxId:y,selectOption:w}=z("CustomSelect.Filter"),{open:r}=P("CustomSelect.Filter"),l=b(null);return g(()=>{r&&t&&l.current?.focus({preventScroll:!0})},[t,r]),m("div",{className:D(j.filterWrapper,a),children:m(Q,{...C,ref:O(S,l),size:d,keepPlaceholder:!0,"aria-label":u??o,placeholder:o,value:F,autoComplete:"off",onChange:c(p,e=>{v(e.target.value)}),onKeyDown:c(f,e=>{E(e,()=>{const s=x[0];s&&w(s.value)})}),"aria-controls":y})})});i.displayName="CustomSelect.Filter";export{i as CustomSelectFilter};
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as K}from"react/jsx-runtime";import{forwardRef as u}from"react";import{composeRefs as L}from"../../utils/composeRefs.js";import{cn as h}from"../../utils/cn.js";import a from"./CustomSelect.Shell.module.css.js";import{FieldBase as V,FieldBaseIcon as M,useFieldControlAttrs as q,fieldSurfaceClassName as E}from"../../base/FieldBase/FieldBase.js";const y=u(function({open:l=!1,readOnly:e=!1,className:i,arrowClassName:s=a.arrow,arrowOpenClassName:p=a.open,readOnlyArrowClassName:t=a.readOnly,...o},d){return r("svg",{ref:d,className:h(s,l&&p,e&&t,i),viewBox:"0 0 24 24",...o,"aria-hidden":"true",children:r("path",{d:"M6 9l6 6 6-6"})})});y.displayName="CustomSelect.Chevron";const v=u(function({children:l,className:e,...i},s){return r("span",{ref:s,className:h(a.placeholder,e),...i,children:l})});v.displayName="CustomSelect.Placeholder";const x=u(function({triggerAs:l,triggerAttrs:e,triggerProps:i,id:s,open:p,disabled:t,readOnly:o,isInteractive:d,popupRole:C,triggerClassName:f,sizerContent:m,children:g},N){const b=q(),n=l==="button";return K(l,{ref:N,...e,...i,...b,id:s,type:n?"button":void 0,disabled:n?t:void 0,role:n?void 0:"combobox",tabIndex:n||t?void 0:0,"aria-disabled":n?void 0:t||void 0,"aria-readonly":o||void 0,"aria-haspopup":C,"aria-expanded":p,className:h(E({readOnly:o}),a.trigger,f),onClick:c=>{if(!d){c.preventDefault();return}e.onClick?.(c)},onKeyDown:c=>{d&&e.onKeyDown?.(c)},children:[r("span",{className:a.triggerSizer,"aria-hidden":"true",children:m}),r("span",{className:a.triggerText,children:g})]})});x.displayName="CustomSelect.ShellTrigger";const w=u(function({triggerRef:l,triggerAttrs:e,id:i,label:s,size:p="md",labelPlacement:t="inline",width:o="md",error:d,helperText:C,disabled:f=!1,readOnly:m=!1,open:g,isInteractive:N,hasValue:b,className:n="",popupRole:c="listbox",children:S,sizerContent:A="\xA0",prefix:O,onClear:P,clearLabel:z,triggerClassName:I="",triggerAs:R="button",triggerProps:D,wrapperProps:T,...B},F){const{className:j,...k}=e;return r(V,{label:s,labelPlacement:t,size:p,width:o,error:d,helperText:C,disabled:f,readOnly:m,prefix:O,postfix:r(M,{children:r(y,{open:g,readOnly:m})}),onClear:P,clearLabel:z,id:i,hasValue:b,open:g,className:h(j,t==="inline"&&a.placementInline,o!=="full"&&a.fitContent,n),ref:L(F,l),...B,...T,children:r(x,{triggerAs:R,triggerAttrs:k,triggerProps:D,id:i,open:g,disabled:f,readOnly:m,isInteractive:N,popupRole:c,triggerClassName:I,sizerContent:A,children:S})})});w.displayName="CustomSelect.Shell";export{y as CustomSelectChevron,v as CustomSelectPlaceholder,w as CustomSelectShell};
1
+ "use client";import{jsx as r,jsxs as T}from"react/jsx-runtime";import{forwardRef as u}from"react";import{TextField as H,FieldBaseIcon as M}from"../TextField/TextField.js";import{cn as n}from"../../utils/cn.js";import e from"./CustomSelect.Shell.module.css.js";const C=u(function({open:l=!1,readOnly:s=!1,className:o,arrowClassName:a=e.arrow,arrowOpenClassName:d=e.open,readOnlyArrowClassName:i=e.readOnly,...c},p){return r("svg",{ref:p,className:n(a,l&&d,s&&i,o),viewBox:"0 0 24 24",...c,"aria-hidden":"true",children:r("path",{d:"M6 9l6 6 6-6"})})});C.displayName="CustomSelect.Chevron";const w=u(function({children:l,className:s,...o},a){return r("span",{ref:a,className:n(e.placeholder,s),...o,children:l})});w.displayName="CustomSelect.Placeholder";const x=u(function({triggerRef:l,triggerAttrs:s,id:o,label:a,size:d="md",width:i="md",error:c,description:p,disabled:m=!1,readOnly:g=!1,open:f,isInteractive:N,hasValue:y,className:v="",popupRole:S="listbox",children:O,sizerContent:z="\xA0",prefix:A,onClear:P,clearLabel:R,triggerClassName:D="",triggerAs:b="button",triggerProps:F,wrapperProps:I,...K},V){const{className:j,onClick:k,onKeyDown:B,...L}=s,h=b==="button";return T(H,{as:b,ref:l,wrapperRef:V,label:a,size:d,width:i,error:c,description:p,disabled:m,readOnly:g,prefix:A,postfix:r(M,{children:r(C,{open:f,readOnly:g})}),onClear:P,clearLabel:R,id:o,hasValue:y,active:f,className:n(e.trigger,D),wrapperClassName:n(j,!!a&&e.labeled,i!=="full"&&e.fitContent,v),wrapperProps:{...K,...I},...L,...F,role:h?void 0:"combobox",tabIndex:h||m?void 0:0,"aria-disabled":h?void 0:m||void 0,"aria-haspopup":S,"aria-expanded":f,onClick:t=>{if(!N){t.preventDefault();return}k?.(t)},onKeyDown:t=>{N&&B?.(t)},children:[r("span",{className:e.triggerSizer,"aria-hidden":"true",children:z}),r("span",{className:e.triggerText,children:O})]})});x.displayName="CustomSelect.Shell";export{C as CustomSelectChevron,w as CustomSelectPlaceholder,x as CustomSelectShell};
@@ -1 +1 @@
1
- "use client";import{injectCss as e}from"../../utils/injectCss.js";var t=".B5o2G{align-content:center;cursor:pointer;display:grid;height:100%;min-height:0;overflow:hidden;position:relative;text-align:left;text-overflow:ellipsis;white-space:nowrap}.B5o2G .-dojU,.B5o2G .LDBVd{grid-area:1/1}.B5o2G .LDBVd{align-items:flex-start;flex-direction:column;font-weight:var(--altum-g-font-weight-medium);height:1.25em;pointer-events:none;visibility:hidden}.B5o2G .-dojU,.B5o2G .LDBVd{display:flex;overflow:hidden;white-space:nowrap}.B5o2G .-dojU{align-items:center;min-height:1.25em;min-width:0;text-overflow:ellipsis}._1UPrY{max-width:min(100%,var(--altum-field-width-default));width:max-content}.IA0iK{color:var(--altum-color-input-placeholder,var(--altum-field-label))}.I-uO2 .IA0iK{color:#0000}.UmDc9{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;color:var(--altum-field-label);flex-shrink:0;transition:transform .2s ease}.UmDc9.RwIS5{transform:rotate(180deg)}.UmDc9.PXmN9{opacity:var(--altum-opacity-disabled)}";const i={trigger:"B5o2G",triggerSizer:"LDBVd",triggerText:"-dojU",fitContent:"_1UPrY",placeholder:"IA0iK",placementInline:"I-uO2",arrow:"UmDc9",open:"RwIS5",readOnly:"PXmN9"};e(t);export{i as default};
1
+ "use client";import{injectCss as e}from"../../utils/injectCss.js";var t=".B5o2G{align-content:center;cursor:pointer;display:grid;height:100%;min-height:0;overflow:hidden;position:relative;text-align:left;text-overflow:ellipsis;white-space:nowrap}.B5o2G .-dojU,.B5o2G .LDBVd{grid-area:1/1}.B5o2G .LDBVd{align-items:flex-start;flex-direction:column;font-weight:var(--altum-g-font-weight-medium);height:1.25em;pointer-events:none;visibility:hidden}.B5o2G .-dojU,.B5o2G .LDBVd{display:flex;overflow:hidden;white-space:nowrap}.B5o2G .-dojU{align-items:center;min-height:1.25em;min-width:0;text-overflow:ellipsis}._1UPrY{max-width:min(100%,var(--altum-field-width-default));width:max-content}.IA0iK{color:var(--altum-color-input-placeholder,var(--altum-field-label))}.t-BWy .IA0iK{color:#0000}.UmDc9{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;color:var(--altum-field-label);flex-shrink:0;transition:transform .2s ease}.UmDc9.RwIS5{transform:rotate(180deg)}.UmDc9.PXmN9{opacity:var(--altum-opacity-disabled)}";const i={trigger:"B5o2G",triggerSizer:"LDBVd",triggerText:"-dojU",fitContent:"_1UPrY",placeholder:"IA0iK",labeled:"t-BWy",arrow:"UmDc9",open:"RwIS5",readOnly:"PXmN9"};e(t);export{i as default};
@@ -0,0 +1 @@
1
+ "use client";import{jsx as i}from"react/jsx-runtime";import{forwardRef as x,useState as O,useEffect as M}from"react";import{MaskedField as P}from"../MaskedField/MaskedField.js";import{Calendar as k}from"../Calendar/Calendar.js";import{FieldBaseIcon as E}from"../TextField/TextField.js";import{IconCalendar as I}from"../../icons/icons/IconCalendar.js";import{useCalendarPopupField as T,formatDateToDigits as V,CalendarFieldDropdown as j,parseDigitsToDate as B}from"./DateField.utils.js";import{commitMaskedValue as H}from"../../utils/commitMaskedValue.js";import{composeEventHandlers as N}from"../../utils/composeEvents.js";const p=x(function({value:e,onChange:r,label:f,width:c="md",disabled:n=!1,readOnly:t=!1,prefix:u,onClear:l,onFocus:C,...D},g){const{open:d,setOpen:b,close:h,openPopup:s,digits:v,setDigits:a,isMobile:w,mobileChrome:F}=T({disabled:n,readOnly:t}),[y,m]=O(e??new Date);return M(()=>{a(V(e)),e&&m(e)},[a,e]),i(k.Provider,{value:e,viewDate:y,onViewDateChange:m,onChange:o=>{o instanceof Date&&(r(o),b(!1))},children:i(j,{open:d,onClose:h,onOpen:s,isMobile:w,mobileChrome:F,trigger:i(P,{...D,ref:g,label:f,width:c,mask:"99.99.9999",value:v,onChange:o=>{t||(a(o),H(o,B,r))},active:d,disabled:n,type:"text",readOnly:t,prefix:u??i(E,{children:i(I,{})}),onClear:l?()=>{a(""),r(void 0),l()}:void 0,onFocus:N(C,s)})})})});p.displayName="DateField";export{p as DateField};
@@ -0,0 +1 @@
1
+ "use client";import{jsxs as B,jsx as a}from"react/jsx-runtime";import{forwardRef as H,useState as h,useId as ee,useEffect as te}from"react";import{MaskedField as y}from"../MaskedField/MaskedField.js";import{Calendar as ae}from"../Calendar/Calendar.js";import r from"./DateRangeField.module.css.js";import{cn as re}from"../../utils/cn.js";import{useLocale as ne}from"../../locales/localeContext.js";import{useCalendarPopupField as se,formatDateToDigits as n,CalendarFieldDropdown as de,parseDigitsToDate as D}from"../DateField/DateField.utils.js";const z=e=>!e.start&&!e.end?"":e.start&&!e.end?n(e.start):e.start&&e.end?`${n(e.start)}${n(e.end)}`:"",L=H(function({value:e,onChange:l,label:M,startLabel:P,endLabel:S,layout:x="single",size:c="md",width:w="md",className:j="",disabled:p=!1,readOnly:o=!1,error:T,description:V,prefix:$,postfix:E,onClear:G,clearLabel:I,...J},O){const{messages:g}=ne(),{open:m,setOpen:K,close:Q,openPopup:u,isMobile:U,mobileChrome:W}=se({disabled:p,readOnly:o}),[X,v]=h(e.end??e.start??new Date),[Y,R]=h(z(e)),[Z,N]=h(n(e.start)),[_,k]=h(n(e.end)),q=ee();te(()=>{R(z(e)),N(n(e.start)),k(n(e.end)),e.end?v(e.end):e.start&&v(e.start)},[e]);const b=(t,f)=>{if(o)return;if(f==="range"){if(R(t),!t){l({start:void 0,end:void 0});return}const C=t.slice(0,8),F=t.slice(8,16);let d=C.length===8?D(C):C.length===0?void 0:e.start,i=F.length===8?D(F):F.length===0?void 0:e.end;d&&i&&i<d&&([d,i]=[i,d]),(d!==e.start||i!==e.end)&&l({start:d,end:i});return}f==="start"?N(t):k(t);const s=D(t);if(s){l(f==="start"?{start:s,end:e.end&&s>e.end?void 0:e.end}:e.start&&s<e.start?{start:s,end:e.start}:{start:e.start,end:s});return}t||l(f==="start"?{start:void 0,end:e.end}:{start:e.start,end:void 0})},A=x==="split"?B("div",{className:r.splitFields,"data-size":c,children:[a("div",{className:r.fieldSlot,children:a(y,{ref:O,label:P??g.dateRangeField.start,size:c,mask:"99.99.9999",type:"text",value:Z,onChange:t=>b(t,"start"),onFocus:u,active:m,disabled:p,readOnly:o})}),a("span",{className:r.dash,"aria-hidden":!0,children:"\u2014"}),a("div",{className:r.fieldSlot,children:a(y,{label:S??g.dateRangeField.end,size:c,mask:"99.99.9999",type:"text",value:_,onChange:t=>b(t,"end"),onFocus:u,active:m,disabled:p,readOnly:o})})]}):a(y,{ref:O,label:M??g.dateRangeField.label,size:c,width:w,mask:"99.99.9999 \u2014 99.99.9999",type:"text",value:Y,error:T,description:V,prefix:$,postfix:E,onClear:G,clearLabel:I,onChange:t=>b(t,"range"),onFocus:u,active:m,disabled:p,readOnly:o,id:q});return a("div",{className:re(r.root,x==="split"?r.layoutSplit:"",w==="full"?r.widthFull:"",j),...J,children:a(ae.Provider,{selectionMode:"range",value:e,onChange:t=>{t instanceof Date||(l(t),t.start&&t.end&&K(!1))},viewDate:X,onViewDateChange:v,children:a(de,{open:m,onClose:Q,onOpen:u,isMobile:U,mobileChrome:W,trigger:A})})})});L.displayName="DateRangeField";export{L as DateRangeField};
@@ -0,0 +1 @@
1
+ "use client";import{injectCss as t}from"../../utils/injectCss.js";var e=".swgJG{max-width:var(--altum-field-width-default);width:100%}._3kisC,.d6QzG{max-width:100%}.RI2Es{--altum-field-size-height:var(--altum-control-height-md);align-items:flex-start;display:flex;gap:var(--altum-g-space-2);width:100%}.RI2Es[data-size=sm]{--altum-field-size-height:var(--altum-control-height-sm)}.RI2Es[data-size=lg]{--altum-field-size-height:var(--altum-control-height-lg)}.YU6RK{flex:1;min-width:0}._8CVyZ{align-items:center;align-self:flex-start;color:var(--altum-color-muted);display:flex;flex:0 0 auto;font-size:var(--altum-g-font-size-base);height:var(--altum-field-size-height);justify-content:center;line-height:1}";const i={root:"swgJG",layoutSplit:"_3kisC",widthFull:"d6QzG",splitFields:"RI2Es",fieldSlot:"YU6RK",dash:"_8CVyZ"};t(e);export{i as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as M,jsx as m,Fragment as B}from"react/jsx-runtime";import{forwardRef as R,useId as q,useCallback as G,useEffect as J,useMemo as Q}from"react";import{startOfDay as c,startOfWeek as $,addDays as h,buildDayStrip as U,formatMonthYear as O,isSameDay as X,isToday as Z,weekdayLabelFor as _}from"../Calendar/Calendar.utils.js";import{handleArrowPairKeyDown as ee,isKey as T}from"../../utils/keyboard.js";import ae from"../../styles/unstyledControl.module.css.js";import v from"../../styles/calendarChrome.module.css.js";import n from"./DayStripCalendar.module.css.js";import{cn as F}from"../../utils/cn.js";import{useControlledStateWithCallback as te}from"../../hooks/useControlledState.js";import{useLocale as re}from"../../locales/localeContext.js";import{PeriodHeader as oe}from"../../base/PeriodHeader/PeriodHeader.js";const H=R(function({value:S,onChange:I,viewDate:k,onViewDateChange:K,daysCount:r=7,weekStartsOn:y=1,showHeader:N=!0,showNav:P=!0,className:Y,"aria-label":j,renderDay:g,...z},A){const{messages:l}=re(),{months:C,weekdaysShort:E}=l.calendar,b=q(),i=S?c(S):void 0,w=i?.getTime(),V=i??c(new Date),[t,x]=te(k!==void 0?c(k):void 0,$(V,y),K),D=G(e=>{x(c(e))},[x]);J(()=>{if(w===void 0)return;const e=new Date(w),a=h(t,r-1);(e<t||e>a)&&D(r===7?$(e,y):e)},[r,w,D,y]);const d=Q(()=>U(t,r),[r,t]),W=Math.max(1,Math.round(r/2)),p=e=>{I(c(e))},f=e=>{const a=i??d[0];if(!a)return;const o=h(a,e);p(o);const s=h(t,r-1);(o<t||o>s)&&D(h(t,e*W))};return M("div",{ref:A,className:F(n.root,Y),role:"group","aria-label":j??l.dayStrip.ariaLabel,"aria-labelledby":N?b:void 0,...z,children:[m(oe,{title:O(i??t,C),titleId:b,showTitle:N,showNav:P,onPrev:()=>f(-1),onNext:()=>f(1),prevLabel:l.dayStrip.prev,nextLabel:l.dayStrip.next}),m("div",{className:n.strip,role:"listbox","aria-label":l.dayStrip.days,"aria-orientation":"horizontal",tabIndex:0,onKeyDown:e=>{if(!ee(e,()=>f(-1),()=>f(1))){if(T(e,"Home")){e.preventDefault(),p(d[0]);return}T(e,"End")&&(e.preventDefault(),p(d[d.length-1]))}},children:d.map(e=>{const a=i?X(e,i):!1,o=Z(e),s=_(e,y,E),u=e.getDate(),L=`${b}-day-${e.getFullYear()}-${e.getMonth()}-${u}`;return m("button",{id:L,type:"button",role:"option","aria-selected":a,"aria-current":o?"date":void 0,"aria-label":`${s}, ${u} ${O(e,C)}`,className:F(ae.control,v.cell,n.day,a?v.selected:"",a?n.daySelected:"",o?v.today:""),onClick:()=>p(e),children:g?g({date:e,dayOfMonth:u,weekdayLabel:s,isSelected:a,isToday:o}):M(B,{children:[m("span",{className:n.weekday,children:s}),m("span",{className:n.dayNumber,children:u})]})},L)})})]})});H.displayName="DayStripCalendar";export{H as DayStripCalendar};
1
+ "use client";import{jsxs as M,jsx as m,Fragment as R}from"react/jsx-runtime";import{forwardRef as q,useId as B,useCallback as G,useEffect as J,useMemo as Q}from"react";import{buildDayStrip as U,formatMonthYear as $,isToday as X,weekdayLabelFor as Z}from"../Calendar/Calendar.utils.js";import{handleArrowPairKeyDown as _,isKey as T}from"../../utils/keyboard.js";import ee from"../../styles/unstyledControl.module.css.js";import v from"../../styles/calendarChrome.module.css.js";import n from"./DayStripCalendar.module.css.js";import{cn as F}from"../../utils/cn.js";import{useControlledStateWithCallback as ae}from"../../hooks/useControlledState.js";import{useLocale as te}from"../../locales/localeContext.js";import{startOfDay as c,getWeekStart as H,addDays as h,isSameDay as re}from"../../utils/date.js";import{PeriodHeader as oe}from"../../base/PeriodHeader/PeriodHeader.js";const I=q(function({value:S,onChange:K,viewDate:g,onViewDateChange:O,daysCount:r=7,weekStartsOn:p=1,showHeader:k=!0,showNav:P=!0,className:Y,"aria-label":j,renderDay:N,...z},A){const{messages:l}=te(),{months:C,weekdaysShort:E}=l.calendar,b=B(),i=S?c(S):void 0,w=i?.getTime(),V=i??c(new Date),[t,x]=ae(g!==void 0?c(g):void 0,H(V,p),O),D=G(e=>{x(c(e))},[x]);J(()=>{if(w===void 0)return;const e=new Date(w),a=h(t,r-1);(e<t||e>a)&&D(r===7?H(e,p):e)},[r,w,D,p]);const d=Q(()=>U(t,r),[r,t]),W=Math.max(1,Math.round(r/2)),y=e=>{K(c(e))},f=e=>{const a=i??d[0];if(!a)return;const o=h(a,e);y(o);const s=h(t,r-1);(o<t||o>s)&&D(h(t,e*W))};return M("div",{ref:A,className:F(n.root,Y),role:"group","aria-label":j??l.dayStrip.ariaLabel,"aria-labelledby":k?b:void 0,...z,children:[m(oe,{title:$(i??t,C),titleId:b,showTitle:k,showNav:P,onPrev:()=>f(-1),onNext:()=>f(1),prevLabel:l.dayStrip.prev,nextLabel:l.dayStrip.next}),m("div",{className:n.strip,role:"listbox","aria-label":l.dayStrip.days,"aria-orientation":"horizontal",tabIndex:0,onKeyDown:e=>{if(!_(e,()=>f(-1),()=>f(1))){if(T(e,"Home")){e.preventDefault(),y(d[0]);return}T(e,"End")&&(e.preventDefault(),y(d[d.length-1]))}},children:d.map(e=>{const a=i?re(e,i):!1,o=X(e),s=Z(e,p,E),u=e.getDate(),L=`${b}-day-${e.getFullYear()}-${e.getMonth()}-${u}`;return m("button",{id:L,type:"button",role:"option","aria-selected":a,"aria-current":o?"date":void 0,"aria-label":`${s}, ${u} ${$(e,C)}`,className:F(ee.control,v.cell,n.day,a?v.selected:"",a?n.daySelected:"",o?v.today:""),onClick:()=>y(e),children:N?N({date:e,dayOfMonth:u,weekdayLabel:s,isSelected:a,isToday:o}):M(R,{children:[m("span",{className:n.weekday,children:s}),m("span",{className:n.dayNumber,children:u})]})},L)})})]})});I.displayName="DayStripCalendar";export{I as DayStripCalendar};
@@ -1 +1 @@
1
- "use client";import{jsx as s,jsxs as Z}from"react/jsx-runtime";import{forwardRef as X,useRef as y,useId as $,useCallback as m,useEffect as N,useMemo as ee,Suspense as oe,lazy as ne}from"react";import{ButtonIcon as te}from"../ButtonIcon/ButtonIcon.js";import{IconCross as re}from"../../icons/icons/IconCross.js";import ae from"../../styles/overlayClose.module.css.js";import g from"./Dropdown.module.css.js";import{focusElement as O}from"../../utils/a11y.js";import{useMediaQuery as ie,MOBILE_MEDIA_QUERY as le}from"../../hooks/useMediaQuery.js";import{useDocumentKeyDown as ce}from"../../hooks/useDocumentKeyDown.js";import{useControlledState as se}from"../../hooks/useControlledState.js";import{queryFocusableElements as ue,handleTabCycle as me,handleFocusableListNavigation as de,FOCUSABLE_WITH_ROLES_SELECTOR as fe}from"../../utils/focus.js";import{cn as I}from"../../utils/cn.js";import{useOverlayStackZIndex as pe,elevateAboveOverlayStack as be}from"../../utils/overlayStack.js";import{Box as ve}from"../Box/Box.js";import{useLocale as ye}from"../../locales/localeContext.js";import{Overlay as ge}from"../Overlay/Overlay.js";const he=ne(async()=>({default:(await import("./DropdownMobileSheet.js")).DropdownMobileSheet}));function we(a){return a==="left"||a==="start"||a==="auto"?"start":a==="right"||a==="end"?"end":"center"}const A=X(function({children:a,renderTrigger:T,open:q,onOpenChange:d,popupRole:u="none",triggerMode:F="toggle",className:_,boxProps:B,align:U="auto",widthMode:z="content",panelScroll:j="overlay",mobileTitle:E,mobileLeftControls:K,mobileRightControls:P,panelClassName:Q,...Y},G){const{t:H}=ye(),J=pe(),V=be(J),n=F==="combobox",[o,f]=se(q,!1),p=ie(le),i=y(null),r=y(null),h=y(null),C=y(null),b=$(),D=u==="menu",S=m(()=>i.current?i.current.querySelector('[role="combobox"]')??i.current.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')??i.current:null,[]),l=m(()=>{if(d?.(!1),f(!1),n){const t=document.activeElement;if(t instanceof Node&&i.current?.contains(t)||!(t instanceof Node&&(r.current?.contains(t)||h.current?.contains(t))))return}const e=C.current??S();O(e)},[S,n,d,f]),c=m(()=>{C.current=document.activeElement,d?.(!0),f(!0)},[d,f]),v=m(()=>{o?l():c()},[l,o,c]),M=m(e=>{if(n){if(o&&(e.key==="Enter"||e.key===" "))return;!o&&(e.key==="Enter"||e.key===" "||e.key==="ArrowDown"||e.key==="ArrowUp")&&(e.preventDefault(),c());return}if(e.key==="Enter"||e.key===" "){e.preventDefault(),v();return}!o&&(e.key==="ArrowDown"||e.key==="ArrowUp")&&(e.preventDefault(),c())},[n,o,c,v]);ce(e=>{if(!o||!r.current)return;const t=ue(r.current,fe);t.length!==0&&(me(e,t,{wrap:D||p,onTabForwardFromLast:D||p?void 0:l})||n&&!r.current.contains(document.activeElement)||de(e,t))},{enabled:o}),N(()=>{!o||n||!r.current||O(r.current.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"]), [role="option"]'))},[n,o]),N(()=>{if(!o||!n)return;const e=t=>{const x=t.target;i.current?.contains(x)||r.current?.contains(x)||h.current?.contains(x)||l()};return document.addEventListener("focusin",e),()=>document.removeEventListener("focusin",e)},[l,n,o]);const W=ee(()=>({type:"button","aria-haspopup":u==="menu"?"menu":u==="dialog"?"dialog":"listbox","aria-expanded":o,"aria-controls":o?b:void 0,...n?{}:{tabIndex:0},onKeyDown:M,onClick:e=>{if(n){o||c();return}e.preventDefault(),v()}}),[b,M,n,o,c,u,v]),w=u==="none"?void 0:u,R=I(g.panel,p&&g.mobile,j==="content"&&g.contentScroll,Q),L={onClick:e=>e.stopPropagation(),onMouseDown:e=>{n&&e.preventDefault()}};let k=null;return p?k=s(oe,{fallback:null,children:s(he,{sheetRef:h,open:o,onOpenChange:e=>{e||l()},zIndex:V,mobileTitle:E,mobileLeftControls:K,mobileRightControls:P??(E?s(te,{appearance:"diskClose","aria-label":H("common.close"),icon:s(re,{className:ae.icon,size:16,"aria-hidden":!0}),onClick:l}):void 0),children:s("div",{id:b,ref:r,role:w,className:R,...L,children:a})})}):k=s(ge,{ref:r,variant:"dropdown",purpose:"dropdown",open:o,onOpenChange:e=>{e||l()},targetRef:i,triggerMode:"manual",side:"bottom",align:we(U),widthMode:z,dismiss:"all",role:w??"presentation",children:s(ve,{as:"div",variant:"floating",id:b,role:w,className:R,...B,...L,children:a})}),Z("div",{ref:G,className:I(g.root,_),...Y,children:[T(W,e=>{i.current=e}),k]})});A.displayName="Dropdown";export{A as Dropdown};
1
+ "use client";import{jsx as s,jsxs as Z}from"react/jsx-runtime";import{forwardRef as X,useRef as y,useId as $,useCallback as m,useEffect as N,useMemo as ee,Suspense as oe,lazy as ne}from"react";import{ButtonIcon as re}from"../ButtonIcon/ButtonIcon.js";import{IconCross as te}from"../../icons/icons/IconCross.js";import ae from"../../styles/overlayClose.module.css.js";import g from"./Dropdown.module.css.js";import{focusElement as O}from"../../utils/a11y.js";import{useMediaQuery as ie,MOBILE_MEDIA_QUERY as le}from"../../hooks/useMediaQuery.js";import{useDocumentKeyDown as ce}from"../../hooks/useDocumentKeyDown.js";import{useControlledState as se}from"../../hooks/useControlledState.js";import{queryFocusableElements as ue,handleTabCycle as me,handleFocusableListNavigation as de,FOCUSABLE_WITH_ROLES_SELECTOR as fe}from"../../utils/focus.js";import{cn as I}from"../../utils/cn.js";import{useOverlayStackZIndex as pe,elevateAboveOverlayStack as be}from"../../utils/overlayStack.js";import{Box as ve}from"../Box/Box.js";import{useLocale as ye}from"../../locales/localeContext.js";import{Overlay as ge}from"../Overlay/Overlay.js";const he=ne(async()=>({default:(await import("./DropdownMobileSheet.js")).DropdownMobileSheet}));function we(a){return a==="left"||a==="start"||a==="auto"?"start":a==="right"||a==="end"?"end":"center"}const A=X(function({children:a,renderTrigger:T,open:q,onOpenChange:d,popupRole:u="none",triggerMode:F="toggle",className:_,boxProps:z,align:B="auto",widthMode:U="content",panelScroll:j="overlay",mobileTitle:E,mobileLeftControls:K,mobileRightControls:P,panelClassName:Q,...Y},G){const{t:H}=ye(),J=pe(),V=be(J),n=F==="combobox",[o,f]=se(q,!1),p=ie(le),i=y(null),t=y(null),h=y(null),C=y(null),b=$(),D=u==="menu",S=m(()=>i.current?i.current.querySelector('[role="combobox"]')??i.current.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')??i.current:null,[]),l=m(()=>{if(d?.(!1),f(!1),n){const r=document.activeElement;if(r instanceof Node&&i.current?.contains(r)||!(r instanceof Node&&(t.current?.contains(r)||h.current?.contains(r))))return}const e=C.current??S();O(e)},[S,n,d,f]),c=m(()=>{C.current=document.activeElement,d?.(!0),f(!0)},[d,f]),v=m(()=>{o?l():c()},[l,o,c]),M=m(e=>{if(n){if(o&&(e.key==="Enter"||e.key===" "))return;!o&&(e.key==="Enter"||e.key===" "||e.key==="ArrowDown"||e.key==="ArrowUp")&&(e.preventDefault(),c());return}if(e.key==="Enter"||e.key===" "){e.preventDefault(),v();return}!o&&(e.key==="ArrowDown"||e.key==="ArrowUp")&&(e.preventDefault(),c())},[n,o,c,v]);ce(e=>{if(!o||!t.current)return;const r=ue(t.current,fe);r.length!==0&&(me(e,r,{wrap:D||p,onTabForwardFromLast:D||p?void 0:l})||n&&!t.current.contains(document.activeElement)||de(e,r))},{enabled:o}),N(()=>{!o||n||!t.current||O(t.current.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"]), [role="option"]'))},[n,o]),N(()=>{if(!o||!n)return;const e=r=>{const x=r.target;i.current?.contains(x)||t.current?.contains(x)||h.current?.contains(x)||l()};return document.addEventListener("focusin",e),()=>document.removeEventListener("focusin",e)},[l,n,o]);const W=ee(()=>({type:"button","aria-haspopup":u==="menu"?"menu":u==="dialog"?"dialog":"listbox","aria-expanded":o,"aria-controls":o?b:void 0,...n?{}:{tabIndex:0},onKeyDown:M,onClick:e=>{if(n){o||c();return}e.preventDefault(),v()}}),[b,M,n,o,c,u,v]),w=u==="none"?void 0:u,R=I(g.panel,p&&g.mobile,j==="content"&&g.contentScroll,Q),L={onClick:e=>e.stopPropagation(),onMouseDown:e=>{n&&e.preventDefault()}};let k=null;return p?k=s(oe,{fallback:null,children:s(he,{sheetRef:h,open:o,onOpenChange:e=>{e||l()},zIndex:V,mobileTitle:E,mobileLeftControls:K,mobileRightControls:P??(E?s(re,{appearance:"diskClose","aria-label":H("common.close"),icon:s(te,{className:ae.icon,size:"var(--altum-overlay-close-icon-size)","aria-hidden":!0}),onClick:l}):void 0),children:s("div",{id:b,ref:t,role:w,className:R,...L,children:a})})}):k=s(ge,{ref:t,variant:"dropdown",purpose:"dropdown",open:o,onOpenChange:e=>{e||l()},targetRef:i,triggerMode:"manual",side:"bottom",align:we(B),widthMode:U,dismiss:"all",role:w??"presentation",children:s(ve,{as:"div",variant:"floating",id:b,role:w,className:R,...z,...L,children:a})}),Z("div",{ref:G,className:I(g.root,_),...Y,children:[T(W,e=>{i.current=e}),k]})});A.displayName="Dropdown";export{A as Dropdown};
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as v,Fragment as k}from"react/jsx-runtime";import{forwardRef as z}from"react";import{Item as w}from"../Item/Item.js";import{ButtonIcon as I}from"../ButtonIcon/ButtonIcon.js";import{Progress as C}from"../Progress/Progress.js";import{Stack as M}from"../Layout/Stack.js";import{IconDocument as S}from"../../icons/icons/IconDocument.js";import{IconCross as T}from"../../icons/icons/IconCross.js";import{IconTimeReverse as D}from"../../icons/icons/IconTimeReverse.js";import l from"./FileList.module.css.js";import{cn as L}from"../../utils/cn.js";import{formatBytes as O}from"../../utils/formatBytes.js";import{useLocale as P}from"../../locales/localeContext.js";const n=z(function({id:t,name:s,size:o,progress:r,status:x,error:y,previewUrl:d,onRemove:a,onRetry:p,removeLabel:N,retryLabel:R,attachmentSize:m="sm",className:b,...F},B){const{t:u}=P(),i=x??(r!=null&&r<100?"uploading":"idle"),f=[typeof o=="string"?o:o!=null?O(o):void 0,i==="uploading"&&r!=null?`${Math.round(r)}%`:void 0,i==="error"?y:void 0].filter(Boolean),g=i==="error"&&p;return v("li",{ref:B,className:L(l.item,b),"data-status":i,...F,children:[e(w,{size:m==="xs"?"sm":m,variant:"ghost",media:d?e("img",{src:d,alt:""}):e(S,{size:m==="xs"?14:18,"aria-hidden":!0}),title:s,description:f.length>0?f.flatMap((h,j)=>j>0?[" \xB7 ",h]:[h]):void 0,actions:a||g?v(k,{children:[g?e(I,{size:"sm","aria-label":R??u("fileList.retry"),icon:e(D,{size:14,"aria-hidden":!0}),onClick:()=>p(t)}):null,a?e(I,{size:"sm","aria-label":N??u("fileList.remove"),icon:e(T,{size:14,"aria-hidden":!0}),onClick:()=>a(t)}):null]}):void 0}),i==="uploading"&&e(C,{percentage:r??0,indeterminate:r==null,showValueText:!1,className:l.progress})]})});n.displayName="FileList.Item";const c=z(function({children:t,className:s,...o},r){return e(M,{ref:r,as:"ul",gap:"sm",className:L(l.list,s),...o,children:t})});c.displayName="FileList.Root";const U=Object.assign(c,{Root:c,Item:n});export{U as FileList,n as FileListItem};
1
+ "use client";import{jsx as e,jsxs as h,Fragment as k}from"react/jsx-runtime";import{forwardRef as z}from"react";import{Item as w}from"../Item/Item.js";import{ButtonIcon as I}from"../ButtonIcon/ButtonIcon.js";import{Progress as C}from"../Progress/Progress.js";import{Stack as M}from"../Layout/Stack.js";import{IconDocument as S}from"../../icons/icons/IconDocument.js";import{IconCross as T}from"../../icons/icons/IconCross.js";import{IconTimeReverse as D}from"../../icons/icons/IconTimeReverse.js";import l from"./FileList.module.css.js";import{cn as L}from"../../utils/cn.js";import{formatBytes as O}from"../../utils/formatBytes.js";import{useLocale as P}from"../../locales/localeContext.js";const n=z(function({id:t,name:s,size:r,progress:o,status:x,error:y,previewUrl:d,onRemove:a,onRetry:u,removeLabel:N,retryLabel:R,attachmentSize:m="sm",className:b,...F},B){const{t:f}=P(),i=x??(o!=null&&o<100?"uploading":"idle"),p=[typeof r=="string"?r:r!=null?O(r):void 0,i==="uploading"&&o!=null?`${Math.round(o)}%`:void 0,i==="error"?y:void 0].filter(Boolean),v=i==="error"&&u;return h("li",{ref:B,className:L(l.item,b),"data-status":i,...F,children:[e(w,{size:m==="xs"?"sm":m,variant:"ghost",media:d?e("img",{src:d,alt:""}):e(S,{size:m==="xs"?"var(--altum-control-icon-size-sm)":"var(--altum-control-icon-size-md)","aria-hidden":!0}),title:s,description:p.length>0?p.flatMap((g,j)=>j>0?[" \xB7 ",g]:[g]):void 0,actions:a||v?h(k,{children:[v?e(I,{size:"sm","aria-label":R??f("fileList.retry"),icon:e(D,{size:"var(--altum-control-icon-size-sm)","aria-hidden":!0}),onClick:()=>u(t)}):null,a?e(I,{size:"sm","aria-label":N??f("fileList.remove"),icon:e(T,{size:"var(--altum-control-icon-size-sm)","aria-hidden":!0}),onClick:()=>a(t)}):null]}):void 0}),i==="uploading"&&e(C,{percentage:o??0,indeterminate:o==null,showValueText:!1,className:l.progress})]})});n.displayName="FileList.Item";const c=z(function({children:t,className:s,...r},o){return e(M,{ref:o,as:"ul",gap:"sm",className:L(l.list,s),...r,children:t})});c.displayName="FileList.Root";const U=Object.assign(c,{Root:c,Item:n});export{U as FileList,n as FileListItem};
@@ -1 +1 @@
1
- "use client";import{jsx as u}from"react/jsx-runtime";import{forwardRef as c}from"react";import f from"./Grid.module.css.js";import{cn as g}from"../../utils/cn.js";import{mergeStyles as v}from"../../utils/mergeStyles.js";import{setResponsive as m,setGridItemColumnVars as x,resolveAutoColumnsTemplate as C,resolveColumnsTemplate as R,resolveGapCss as w,resolveGridRowValue as S}from"./Grid.utils.js";import{GRID_BREAKPOINTS as K}from"./Grid.utils.js";import{As as G}from"../../base/As/As.js";const y=c(function({columns:t=1,gap:s="md",mode:e="fixed",minColumnWidth:o=240,className:a,style:l,as:i="div",...d},n){const r={},p="repeat(1, minmax(0, 1fr))";return e==="autoFit"||e==="autoFill"?m(r,"--altum-grid-cols",C(e,o),I=>I,p):m(r,"--altum-grid-cols",t,R,p),m(r,"--altum-grid-gap",s,w,"var(--altum-g-space-3)"),u(G,{ref:n,as:i,className:g(f.grid,a),style:v(r,l),...d})}),N=c(function({span:t,colStart:s,colEnd:e,rowSpan:o,className:a,style:l,as:i="div",...d},n){const r={};return x(r,t,s,e),o!==void 0&&m(r,"--altum-grid-item-row",o,S,"auto"),u(G,{ref:n,as:i,className:g(f.gridItem,a),style:v(r,l),...d})});y.displayName="Grid",N.displayName="GridItem";export{K as GRID_BREAKPOINTS,y as Grid,N as GridItem};
1
+ "use client";import{jsx as u}from"react/jsx-runtime";import{forwardRef as c}from"react";import f from"./Grid.module.css.js";import{cn as g}from"../../utils/cn.js";import{mergeStyles as v}from"../../utils/mergeStyles.js";import{resolveSpacingCss as x}from"../../utils/spacing.js";import{setResponsive as m,setGridItemColumnVars as C,resolveAutoColumnsTemplate as R,resolveColumnsTemplate as S,resolveGridRowValue as w}from"./Grid.utils.js";import{GRID_BREAKPOINTS as O}from"./Grid.utils.js";import{As as G}from"../../base/As/As.js";const y=c(function({columns:t=1,gap:s="md",mode:o="fixed",minColumnWidth:e=240,className:a,style:i,as:l="div",...d},n){const r={},p="repeat(1, minmax(0, 1fr))";return o==="autoFit"||o==="autoFill"?m(r,"--altum-grid-cols",R(o,e),I=>I,p):m(r,"--altum-grid-cols",t,S,p),m(r,"--altum-grid-gap",s,x,"var(--altum-g-space-3)"),u(G,{ref:n,as:l,className:g(f.grid,a),style:v(r,i),...d})}),N=c(function({span:t,colStart:s,colEnd:o,rowSpan:e,className:a,style:i,as:l="div",...d},n){const r={};return C(r,t,s,o),e!==void 0&&m(r,"--altum-grid-item-row",e,w,"auto"),u(G,{ref:n,as:l,className:g(f.gridItem,a),style:v(r,i),...d})});y.displayName="Grid",N.displayName="GridItem";export{O as GRID_BREAKPOINTS,y as Grid,N as GridItem};
@@ -1 +1 @@
1
- "use client";import{resolveSpacingCss as c}from"../../utils/spacing.js";import{toCssSize as v}from"../../utils/cssSize.js";const p={xs:0,sm:600,md:768,lg:1024,xl:1280},a=["xs","sm","md","lg","xl"];function f(o){return typeof o=="object"&&o!==null&&!Array.isArray(o)}function $(o,t,i,r,u){if(!f(i)){const n=r(i)??u;for(const s of a)o[`${t}-${s}`]=n;return}let e=u;for(const n of a){const s=i[n];if(s!==void 0){const l=r(s);l!==void 0&&(e=l)}o[`${t}-${n}`]=e}}function x(o){return typeof o=="number"?`repeat(${o}, minmax(0, 1fr))`:o}function C(o,t){return`repeat(${o==="autoFit"?"auto-fit":"auto-fill"}, minmax(${v(t)}, 1fr))`}function g(o){return c(o)}function d(o,t,i){if(t!==void 0&&i!==void 0)return`${t} / ${i}`;if(t!==void 0&&o!==void 0)return`${t} / span ${o}`;if(o!==void 0)return`span ${o}`;if(t!==void 0)return String(t)}function A(o){if(o!==void 0)return`span ${o}`}function G(o,t,i,r){if(t===void 0&&i===void 0&&r===void 0)return;let u="auto";for(const e of a){const n=f(t)?t[e]:t,s=f(i)?i[e]:i,l=f(r)?r[e]:r,m=d(n,s,l);m!==void 0&&(u=m),o[`--altum-grid-item-col-${e}`]=u}}export{p as GRID_BREAKPOINTS,f as isAdaptiveValue,C as resolveAutoColumnsTemplate,x as resolveColumnsTemplate,g as resolveGapCss,d as resolveGridColumnValue,A as resolveGridRowValue,G as setGridItemColumnVars,$ as setResponsive};
1
+ "use client";import{toCssSize as c}from"../../utils/cssSize.js";const v={xs:0,sm:600,md:768,lg:1024,xl:1280},a=["xs","sm","md","lg","xl"];function f(o){return typeof o=="object"&&o!==null&&!Array.isArray(o)}function $(o,i,t,r,s){if(!f(t)){const e=r(t)??s;for(const u of a)o[`${i}-${u}`]=e;return}let n=s;for(const e of a){const u=t[e];if(u!==void 0){const l=r(u);l!==void 0&&(n=l)}o[`${i}-${e}`]=n}}function p(o){return typeof o=="number"?`repeat(${o}, minmax(0, 1fr))`:o}function x(o,i){return`repeat(${o==="autoFit"?"auto-fit":"auto-fill"}, minmax(${c(i)}, 1fr))`}function d(o,i,t){if(i!==void 0&&t!==void 0)return`${i} / ${t}`;if(i!==void 0&&o!==void 0)return`${i} / span ${o}`;if(o!==void 0)return`span ${o}`;if(i!==void 0)return String(i)}function A(o){if(o!==void 0)return`span ${o}`}function C(o,i,t,r){if(i===void 0&&t===void 0&&r===void 0)return;let s="auto";for(const n of a){const e=f(i)?i[n]:i,u=f(t)?t[n]:t,l=f(r)?r[n]:r,m=d(e,u,l);m!==void 0&&(s=m),o[`--altum-grid-item-col-${n}`]=s}}export{v as GRID_BREAKPOINTS,f as isAdaptiveValue,x as resolveAutoColumnsTemplate,p as resolveColumnsTemplate,d as resolveGridColumnValue,A as resolveGridRowValue,C as setGridItemColumnVars,$ as setResponsive};
@@ -1 +1 @@
1
- "use client";import{jsx as o,jsxs as h}from"react/jsx-runtime";import{forwardRef as ye,useId as ve,useRef as X,useState as c,useEffect as _}from"react";import{Button as q}from"../Button/Button.js";import{Overlay as Ce}from"../Overlay/Overlay.js";import{cn as G}from"../../utils/cn.js";import{composeEventHandlers as we}from"../../utils/composeEvents.js";import{loadImageFromSrc as xe,getDisplaySize as D,exportCroppedImage as be,clampOffset as J,getMinCoverScale as Ne}from"./ImageCrop.utils.js";import i from"./ImageCrop.module.css.js";import{useLocale as ke}from"../../locales/localeContext.js";import{DialogBase as g}from"../../base/DialogBase/DialogBase.js";const P=1,U=4,Q=.1,Re=["nw","ne","se","sw"],ee=ye(function({open:d,onOpenChange:O,file:y=null,src:re=null,shape:S="circle",cropSize:f=280,outputSize:te=512,title:oe,confirmLabel:ae,cancelLabel:ne,className:ie,style:le,onCrop:Y,onClick:se,...ce},pe){const{t:n}=ke(),j=ve(),E=X(null),v=X(null),z=X(null),[me,$]=c(null),[t,A]=c(null),[p,C]=c(0),[m,w]=c(0),[l,x]=c(1),[I,B]=c(!1),[M,b]=c(null),u=me??re??null,N=t?Ne(t,f):1,F=t?D(t,N,l):{width:0,height:0},k=()=>O(!1);_(()=>{if(!d||!y){$(r=>(r&&URL.revokeObjectURL(r),null));return}const e=URL.createObjectURL(y);return $(e),()=>URL.revokeObjectURL(e)},[y,d]),_(()=>{if(!d||!u){A(null),x(1),C(0),w(0),b(null),v.current=null;return}let e=!1;return b(null),xe(u,{errorMessage:n("imageCrop.loadError")}).then(r=>{e||(v.current=r,A({width:r.naturalWidth,height:r.naturalHeight}),x(1),C(0),w(0))}).catch(r=>{e||b(r instanceof Error?r.message:n("imageCrop.loadError"))}),()=>{e=!0}},[u,d,n]);const H=(e,r,a)=>{const s=Math.min(U,Math.max(P,e));if(!t){x(s);return}const R=D(t,N,s),L=J(r,a,R.width,R.height,f);x(s),C(L.offsetX),w(L.offsetY)},ue=e=>{const r=z.current;if(!r||!t)return;if(r.type==="pan"){const W=D(t,N,l),V=J(r.ox+e.clientX-r.startX,r.oy+e.clientY-r.startY,W.width,W.height,f);C(V.offsetX),w(V.offsetY);return}const a=E.current?.getBoundingClientRect();if(!a)return;const s=e.clientX-(a.left+a.width/2+r.ox),R=e.clientY-(a.top+a.height/2+r.oy),L=Math.hypot(s,R)/(Math.hypot(r.vx,r.vy)||1);H(r.originZoom*L,r.ox,r.oy)},T=()=>{z.current=null},Z=(e,r)=>{e.button!==0||!t||(e.preventDefault(),e.currentTarget.setPointerCapture?.(e.pointerId),z.current=r)},de=e=>{Z(e,{type:"pan",startX:e.clientX,startY:e.clientY,ox:p,oy:m})},fe=e=>{e.stopPropagation();const r=E.current?.getBoundingClientRect();if(!r)return;const a=r.left+r.width/2+p,s=r.top+r.height/2+m;Z(e,{type:"scale",originZoom:l,ox:p,oy:m,vx:e.clientX-a,vy:e.clientY-s})},he=e=>{let r=l;if(e.key==="ArrowUp"||e.key==="ArrowRight")r=l+Q;else if(e.key==="ArrowDown"||e.key==="ArrowLeft")r=l-Q;else if(e.key==="Home")r=P;else if(e.key==="End")r=U;else return;e.preventDefault(),H(r,p,m)},ge=async()=>{if(!t||!v.current||!Y){k();return}B(!0);try{const e=await be({image:v.current,natural:t,baseScale:N,zoom:l,offsetX:p,offsetY:m,cropSize:f,outputSize:te,shape:S,exportErrorMessage:n("imageCrop.exportError"),fileName:(()=>{const r=y?.name?.replace(/\.\w+$/,"");return r?`${r}-cropped.png`:"cropped.png"})()});Y(e),k()}catch(e){b(e instanceof Error?e.message:n("imageCrop.cropError"))}finally{B(!1)}},K=!!(u&&t);return o(Ce,{ref:pe,variant:"modal",purpose:"lightbox",open:d,onOpenChange:O,"aria-labelledby":j,children:(e,r)=>o("div",{...e,...ce,ref:r,role:e.role,"aria-modal":e["aria-modal"],"aria-labelledby":e["aria-labelledby"],className:G(i.panel,e.className,ie),style:{...e.style,...le},onClick:we(se,e.onClick),children:h(g.Provider,{onClose:k,titleId:j,children:[h(g.Header,{children:[o(g.Title,{as:"h2",children:oe??n("imageCrop.title")}),o("p",{className:i.hint,children:n("imageCrop.hint")})]}),o(g.Body,{children:h("div",{ref:E,className:i.stage,style:{"--altum-image-crop-size":`${f}px`},onPointerMove:ue,onPointerUp:T,onPointerCancel:T,children:[M&&o("div",{className:G(i.status,i.error),role:"alert",children:M}),h("div",{className:i.viewport,children:[K&&o("div",{className:i.imageLayer,style:{width:F.width,height:F.height,transform:`translate(calc(-50% + ${p}px), calc(-50% + ${m}px))`},onPointerDown:de,children:o("img",{src:u,alt:"",draggable:!1,className:i.image})}),K&&o("div",{className:i.cropFrame,"data-shape":S,children:Re.map(a=>o("div",{role:"slider",tabIndex:0,className:i.handle,"aria-label":n("imageCrop.scaleHandle",{corner:a}),"aria-valuemin":P,"aria-valuemax":U,"aria-valuenow":Number(l.toFixed(2)),onPointerDown:fe,onKeyDown:he},a))}),!u&&!M&&o("div",{className:i.status,children:n("imageCrop.choose")})]})]})}),h(g.Footer,{children:[o(q,{variant:"secondary",size:"sm",onClick:k,disabled:I,children:ne??n("imageCrop.cancel")}),o(q,{variant:"primary",size:"sm",onClick:ge,disabled:I||!t,loading:I,children:ae??n("imageCrop.confirm")})]})]})})})});ee.displayName="ImageCrop";export{ee as ImageCrop};
1
+ "use client";import{jsx as t,jsxs as f}from"react/jsx-runtime";import{forwardRef as ve,useId as Ce,useRef as P,useState as c,useEffect as G}from"react";import{Button as J}from"../Button/Button.js";import{Overlay as we}from"../Overlay/Overlay.js";import{cn as Q}from"../../utils/cn.js";import{composeEventHandlers as xe}from"../../utils/composeEvents.js";import{loadImageFromSrc as be,getDisplaySize as X,exportCroppedImage as Ne,clampOffset as V,getMinCoverScale as ke}from"./ImageCrop.utils.js";import n from"./ImageCrop.module.css.js";import{useLocale as Le}from"../../locales/localeContext.js";import{DialogBase as g}from"../../base/DialogBase/DialogBase.js";const O=1,S=4,ee=.1,Re=["nw","ne","se","sw"],re=ve(function({open:u,onOpenChange:U,file:y=null,src:te=null,shape:j="circle",cropSize:h=280,outputSize:ae=512,title:oe,confirmLabel:ne,cancelLabel:ie,className:le,style:se,onCrop:H,onClick:ce,...me},pe){const{t:i}=Le(),$=Ce(),z=P(null),v=P(null),D=P(null),[de,A]=c(null),[a,B]=c(null),[m,C]=c(0),[p,w]=c(0),[l,x]=c(1),[I,F]=c(!1),[Y,b]=c(null),d=de??te??null,N=a?ke(a,h):1,k=a?X(a,N,l):{width:0,height:0},L=()=>U(!1);G(()=>{if(!u||!y){A(r=>(r&&URL.revokeObjectURL(r),null));return}const e=URL.createObjectURL(y);return A(e),()=>URL.revokeObjectURL(e)},[y,u]),G(()=>{if(!u||!d){B(null),x(1),C(0),w(0),b(null),v.current=null;return}let e=!1;return b(null),be(d,{errorMessage:i("imageCrop.loadError")}).then(r=>{e||(v.current=r,B({width:r.naturalWidth,height:r.naturalHeight}),x(1),C(0),w(0))}).catch(r=>{e||b(r instanceof Error?r.message:i("imageCrop.loadError"))}),()=>{e=!0}},[d,u,i]);const Z=(e,r,o)=>{const s=Math.min(S,Math.max(O,e));if(!a){x(s);return}const R=X(a,N,s),E=V(r,o,R.width,R.height,h);x(s),C(E.offsetX),w(E.offsetY)},ue=e=>{const r=D.current;if(!r||!a)return;if(r.type==="pan"){const T=X(a,N,l),_=V(r.ox+e.clientX-r.startX,r.oy+e.clientY-r.startY,T.width,T.height,h);C(_.offsetX),w(_.offsetY);return}const o=z.current?.getBoundingClientRect();if(!o)return;const s=e.clientX-(o.left+o.width/2+r.ox),R=e.clientY-(o.top+o.height/2+r.oy),E=Math.hypot(s,R)/(Math.hypot(r.vx,r.vy)||1);Z(r.originZoom*E,r.ox,r.oy)},K=()=>{D.current=null},W=(e,r)=>{e.button!==0||!a||(e.preventDefault(),e.currentTarget.setPointerCapture?.(e.pointerId),D.current=r)},he=e=>{W(e,{type:"pan",startX:e.clientX,startY:e.clientY,ox:m,oy:p})},fe=e=>{e.stopPropagation();const r=z.current?.getBoundingClientRect();if(!r)return;const o=r.left+r.width/2+m,s=r.top+r.height/2+p;W(e,{type:"scale",originZoom:l,ox:m,oy:p,vx:e.clientX-o,vy:e.clientY-s})},ge=e=>{let r=l;if(e.key==="ArrowUp"||e.key==="ArrowRight")r=l+ee;else if(e.key==="ArrowDown"||e.key==="ArrowLeft")r=l-ee;else if(e.key==="Home")r=O;else if(e.key==="End")r=S;else return;e.preventDefault(),Z(r,m,p)},ye=async()=>{if(!a||!v.current||!H){L();return}F(!0);try{const e=await Ne({image:v.current,natural:a,baseScale:N,zoom:l,offsetX:m,offsetY:p,cropSize:h,outputSize:ae,shape:j,exportErrorMessage:i("imageCrop.exportError"),fileName:(()=>{const r=y?.name?.replace(/\.\w+$/,"");return r?`${r}-cropped.png`:"cropped.png"})()});H(e),L()}catch(e){b(e instanceof Error?e.message:i("imageCrop.cropError"))}finally{F(!1)}},M=!!(d&&a),q=`translate(calc(-50% + ${m}px), calc(-50% + ${p}px))`;return t(we,{ref:pe,variant:"modal",purpose:"lightbox",open:u,onOpenChange:U,"aria-labelledby":$,children:(e,r)=>t("div",{...e,...me,ref:r,role:e.role,"aria-modal":e["aria-modal"],"aria-labelledby":e["aria-labelledby"],className:Q(n.panel,e.className,le),style:{...e.style,...se},onClick:xe(ce,e.onClick),children:f(g.Provider,{onClose:L,titleId:$,children:[f(g.Header,{children:[t(g.Title,{as:"h2",children:oe??i("imageCrop.title")}),t("p",{className:n.hint,children:i("imageCrop.hint")})]}),t(g.Body,{children:f("div",{ref:z,className:n.stage,style:{"--altum-image-crop-size":`${h}px`},onPointerMove:ue,onPointerUp:K,onPointerCancel:K,children:[Y&&t("div",{className:Q(n.status,n.error),role:"alert",children:Y}),f("div",{className:n.viewport,children:[M&&t("div",{className:n.imageLayer,style:{width:k.width,height:k.height,transform:q},onPointerDown:he,children:t("img",{src:d,alt:"",draggable:!1,className:n.image})}),M&&t("div",{className:n.cropFrame,"data-shape":j}),!d&&!Y&&t("div",{className:n.status,children:i("imageCrop.choose")})]}),M&&t("div",{className:n.handleLayer,style:{width:k.width,height:k.height,transform:q},children:Re.map(o=>t("div",{role:"slider",tabIndex:0,"data-corner":o,className:n.handle,"aria-label":i("imageCrop.scaleHandle",{corner:o}),"aria-valuemin":O,"aria-valuemax":S,"aria-valuenow":Number(l.toFixed(2)),onPointerDown:fe,onKeyDown:ge},o))})]})}),f(g.Footer,{children:[t(J,{variant:"secondary",size:"sm",onClick:L,disabled:I,children:ie??i("imageCrop.cancel")}),t(J,{variant:"primary",size:"sm",onClick:ye,disabled:I||!a,loading:I,children:ne??i("imageCrop.confirm")})]})]})})})});re.displayName="ImageCrop";export{re as ImageCrop};
@@ -1 +1 @@
1
- "use client";import{injectCss as r}from"../../utils/injectCss.js";var o=".VsqSJ{background-color:var(--altum-color-fill-floating-bg);border-radius:var(--altum-g-radius);box-sizing:border-box;color:var(--altum-color-fill-floating-fg);display:flex;flex-direction:column;pointer-events:auto;position:relative;width:min(100%,var(--altum-image-crop-panel-max));z-index:var(--altum-g-z-raised)}.VsqSJ .QNjqO{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-sm);line-height:1.4;margin:0}.VsqSJ .br-aR{aspect-ratio:1;max-height:min(70vh,var(--altum-image-crop-stage-max));position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.VsqSJ .FFs-o{background-color:var(--altum-overlay-content-bg);color:var(--altum-overlay-on-scrim);inset:0;overflow:hidden;position:absolute}.VsqSJ .eighF{cursor:grab;left:50%;position:absolute;top:50%;will-change:transform}:is(.VsqSJ .eighF):active{cursor:grabbing}.VsqSJ .LAjrZ{-webkit-user-drag:none;display:block;height:100%;pointer-events:none;width:100%}.VsqSJ .FO4mc{border:2px solid var(--altum-overlay-on-scrim);box-shadow:0 0 0 9999px var(--altum-overlay-scrim-strong);box-sizing:border-box;height:var(--altum-image-crop-size);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--altum-image-crop-size);z-index:var(--altum-g-z-raised)}[data-shape=circle]:is(.VsqSJ .FO4mc){border-radius:50%}[data-shape=square]:is(.VsqSJ .FO4mc){border-radius:var(--altum-g-radius-sm)}.VsqSJ .mBMAL{appearance:none;background-color:var(--altum-color-brand);border:2px solid var(--altum-overlay-on-scrim);border-radius:var(--altum-g-radius-sm);box-shadow:var(--altum-shadow-brand);height:var(--altum-g-space-4);margin:0;padding:0;pointer-events:auto;position:absolute;transition:background-color .15s ease;width:var(--altum-g-space-4)}:is(.VsqSJ .mBMAL):first-child{cursor:nwse-resize;left:0;top:0;transform:translate(-50%,-50%)}:is(.VsqSJ .mBMAL):nth-child(2){cursor:nesw-resize;right:0;top:0;transform:translate(50%,-50%)}:is(.VsqSJ .mBMAL):nth-child(3){bottom:0;cursor:nwse-resize;right:0;transform:translate(50%,50%)}:is(.VsqSJ .mBMAL):nth-child(4){bottom:0;cursor:nesw-resize;left:0;transform:translate(-50%,50%)}:is(.VsqSJ .mBMAL):focus-visible,:is(.VsqSJ .mBMAL):hover{background-color:var(--altum-color-brand-hover);outline:none}@media (prefers-reduced-motion:reduce){.VsqSJ .mBMAL{transition:none}}.VsqSJ .BG4TM{align-items:center;color:var(--altum-color-muted);display:flex;font-size:var(--altum-g-font-size-base);inset:0;justify-content:center;padding:var(--altum-g-space-4);position:absolute;text-align:center;z-index:var(--altum-g-z-control)}.VsqSJ .wGZHl{background-color:color-mix(in srgb,var(--altum-color-dropdown-bg) 88%,#0000);color:var(--altum-color-status-error)}";const a={panel:"VsqSJ",hint:"QNjqO",stage:"br-aR",viewport:"FFs-o",imageLayer:"eighF",image:"LAjrZ",cropFrame:"FO4mc",handle:"mBMAL",status:"BG4TM",error:"wGZHl"};r(o);export{a as default};
1
+ "use client";import{injectCss as r}from"../../utils/injectCss.js";var a=".VsqSJ{background-color:var(--altum-color-fill-floating-bg);border-radius:var(--altum-g-radius);box-sizing:border-box;color:var(--altum-color-fill-floating-fg);display:flex;flex-direction:column;pointer-events:auto;position:relative;width:min(100%,var(--altum-image-crop-panel-max));z-index:var(--altum-g-z-raised)}.VsqSJ .QNjqO{color:var(--altum-color-muted);font-size:var(--altum-g-font-size-sm);line-height:1.4;margin:0}.VsqSJ .br-aR{aspect-ratio:1;max-height:min(70vh,var(--altum-image-crop-stage-max));position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.VsqSJ .FFs-o{background-color:var(--altum-overlay-content-bg);color:var(--altum-overlay-on-scrim);inset:0;overflow:hidden;position:absolute}.VsqSJ .eighF{cursor:grab;left:50%;position:absolute;top:50%;will-change:transform}:is(.VsqSJ .eighF):active{cursor:grabbing}.VsqSJ .LAjrZ{-webkit-user-drag:none;display:block;height:100%;pointer-events:none;width:100%}.VsqSJ .FO4mc{border:2px solid var(--altum-overlay-on-scrim);box-shadow:0 0 0 9999px var(--altum-overlay-scrim-strong);box-sizing:border-box;height:var(--altum-image-crop-size);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--altum-image-crop-size);z-index:var(--altum-g-z-raised)}[data-shape=circle]:is(.VsqSJ .FO4mc){border-radius:50%}[data-shape=square]:is(.VsqSJ .FO4mc){border-radius:var(--altum-g-radius-sm)}.VsqSJ .wTX2-{left:50%;pointer-events:none;position:absolute;top:50%;z-index:calc(var(--altum-g-z-raised) + 1)}.VsqSJ .mBMAL{appearance:none;background-color:var(--altum-color-brand);border:2px solid var(--altum-overlay-on-scrim);border-radius:var(--altum-g-radius-sm);box-shadow:var(--altum-shadow-brand);height:var(--altum-g-space-4);margin:0;padding:0;pointer-events:auto;position:absolute;transform:translate(-50%,-50%);transition:background-color .15s ease;width:var(--altum-g-space-4)}[data-corner=nw]:is(.VsqSJ .mBMAL){cursor:nwse-resize;left:0;top:0}[data-corner=ne]:is(.VsqSJ .mBMAL){cursor:nesw-resize;left:100%;top:0}[data-corner=se]:is(.VsqSJ .mBMAL){cursor:nwse-resize;left:100%;top:100%}[data-corner=sw]:is(.VsqSJ .mBMAL){cursor:nesw-resize;left:0;top:100%}:is(.VsqSJ .mBMAL):focus-visible,:is(.VsqSJ .mBMAL):hover{background-color:var(--altum-color-brand-hover);outline:none}@media (prefers-reduced-motion:reduce){.VsqSJ .mBMAL{transition:none}}.VsqSJ .BG4TM{align-items:center;color:var(--altum-color-muted);display:flex;font-size:var(--altum-g-font-size-base);inset:0;justify-content:center;padding:var(--altum-g-space-4);position:absolute;text-align:center;z-index:var(--altum-g-z-control)}.VsqSJ .wGZHl{background-color:color-mix(in srgb,var(--altum-color-dropdown-bg) 88%,#0000);color:var(--altum-color-status-error)}";const e={panel:"VsqSJ",hint:"QNjqO",stage:"br-aR",viewport:"FFs-o",imageLayer:"eighF",image:"LAjrZ",cropFrame:"FO4mc",handleLayer:"wTX2-",handle:"mBMAL",status:"BG4TM",error:"wGZHl"};r(a);export{e as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as u,jsx as a}from"react/jsx-runtime";import{forwardRef as I}from"react";import{Box as $}from"../Box/Box.js";import e from"../../styles/MediaItem.module.css.js";import i from"./Item.module.css.js";import{cn as l}from"../../utils/cn.js";import{implicitAs as b}from"../../utils/implicitAs.js";const f=I(function({size:s="md",variant:N="ghost",interactive:o=!1,as:r,media:m,mediaVariant:v="icon",mediaClassName:h,title:n,titleClassName:C,description:t,descriptionClassName:x,actions:c,actionsClassName:g,className:j,onClick:d,role:p,...k},w){const y=o?b(r,d,p):r??"div";return u($,{ref:w,as:y,variant:N,padding:"none",className:l(e.row,i.item,s!=="md"&&i[s],o&&i.interactive,j),onClick:d,role:p,...k,children:[m!=null?a("div",{className:l(e.media,i.media,i[`media_${v}`],h),children:m}):null,n!=null||t!=null?u("div",{className:l(e.content,i.body),children:[n!=null?a("div",{className:l(e.title,i.title,C),children:n}):null,t!=null?a("div",{className:l(e.description,i.description,x),children:t}):null]}):null,c!=null?a("div",{className:l(e.actions,i.actions,g),children:c}):null]})});f.displayName="Item";export{f as Item};
1
+ "use client";import{jsx as l,jsxs as u}from"react/jsx-runtime";import{forwardRef as $}from"react";import{Box as b}from"../Box/Box.js";import N from"../../styles/flexChild.module.css.js";import t from"../../styles/MediaItem.module.css.js";import i from"./Item.module.css.js";import{cn as e}from"../../utils/cn.js";import{implicitAs as z}from"../../utils/implicitAs.js";import{Flex as s}from"../../base/Flex/Flex.js";const A={sm:"sm",md:"md",lg:"md"},B={sm:"none",md:"var(--altum-control-inset)",lg:"var(--altum-control-inset)"},g=$(function({size:a="md",variant:v="ghost",interactive:m=!1,as:o,media:c,mediaVariant:h="icon",mediaClassName:C,title:n,titleClassName:x,description:r,descriptionClassName:w,actions:d,actionsClassName:k,className:j,onClick:p,role:f,...y},F){const I=m?z(o,p,f):o??"div";return l(b,{ref:F,as:I,variant:v,padding:"none",className:e(i.item,a!=="md"&&i[a],m&&i.interactive,j),onClick:p,role:f,...y,children:u(s,{align:"center",gap:A[a],wrap:!1,children:[c!=null?l("div",{className:e(t.media,i.media,i[`media_${h}`],C),children:c}):null,n!=null||r!=null?u(s,{direction:"column",gap:B[a],wrap:!1,className:e(N.grow,i.body),children:[n!=null?l("div",{className:e(t.title,i.title,x),children:n}):null,r!=null?l("div",{className:e(t.description,i.description,w),children:r}):null]}):null,d!=null?l(s,{align:"center",gap:"xs",wrap:!1,className:e(N.noShrink,i.actions,k),children:d}):null]})})});g.displayName="Item";export{g as Item};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t='.c0x-9{--altum-item-media:var(--altum-g-space-8);border-radius:var(--altum-g-radius);color:var(--altum-color-field-text);padding:var(--altum-g-space-2) var(--altum-g-space-3);position:relative;text-align:start;transition:var(--altum-transition-smooth)}.c0x-9:is(button){appearance:none;cursor:pointer}.c0x-9 ._7dXq9{color:var(--altum-field-label);height:var(--altum-item-media);width:var(--altum-item-media)}.c0x-9 .L7hoN{color:var(--altum-color-field-text);font-size:var(--altum-g-font-size-base)}.c0x-9 .B-ruZ{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-2xs);line-height:var(--altum-g-line-height-2xs)}.c0x-9 .zgxWz{gap:var(--altum-g-space-1)}.c0x-9 .u0ZlD{gap:var(--altum-control-inset)}.c0x-9.GRryI{--altum-item-media:var(--altum-g-space-6);gap:var(--altum-g-space-2);padding:var(--altum-g-space-1) var(--altum-g-space-2)}.c0x-9.GRryI .u0ZlD{gap:0}.c0x-9.oB8Iz{--altum-item-media:calc(var(--altum-g-space-8) + var(--altum-g-space-2));gap:var(--altum-g-space-4);padding:var(--altum-g-space-3) var(--altum-g-space-4)}.c0x-9.oB8Iz .u0ZlD{gap:calc(var(--altum-g-space-1) + var(--altum-control-inset))}.c0x-9.GRryI .L7hoN,.c0x-9.oB8Iz .L7hoN{font-size:var(--altum-g-font-size-sm)}._4iApM{cursor:pointer}._4iApM:after{background:#0000;border-radius:inherit;content:"";inset:0;pointer-events:none;position:absolute;transition:background .2s ease-in-out}._4iApM:hover:not(:disabled):after{background:color-mix(in srgb,var(--altum-color-text-secondary) 6%,#0000)}._4iApM:active:not(:disabled):after{background:color-mix(in srgb,var(--altum-color-text-secondary) 10%,#0000)}@media (prefers-reduced-motion:reduce){._4iApM:after{transition:none}}.Z-ge7{background:var(--altum-color-brand-tint);border-radius:var(--altum-g-radius-sm);color:var(--altum-color-brand-tint-text)}.Eid4d,.xHsEG{background:var(--altum-color-surface-active)}.Eid4d{border-radius:var(--altum-g-radius-sm)}.xHsEG{border-radius:50%}';const r={item:"c0x-9",media:"_7dXq9",title:"L7hoN",description:"B-ruZ",actions:"zgxWz",body:"u0ZlD",sm:"GRryI",lg:"oB8Iz",interactive:"_4iApM",media_icon:"Z-ge7",media_image:"Eid4d",media_avatar:"xHsEG"};a(t);export{r as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t='.c0x-9{--altum-item-media:var(--altum-g-space-8);color:var(--altum-color-field-text);min-width:0;padding:var(--altum-g-space-2) var(--altum-g-space-3);position:relative;text-align:start;transition:var(--altum-transition-smooth);width:100%}.c0x-9:is(button){appearance:none;cursor:pointer}.c0x-9 ._7dXq9{height:var(--altum-item-media);width:var(--altum-item-media)}.c0x-9 .L7hoN{font-size:var(--altum-g-font-size-base)}.c0x-9 .B-ruZ,.c0x-9 .L7hoN{line-height:var(--altum-g-line-height-2xs)}.c0x-9 .B-ruZ{color:var(--altum-color-ink-muted);font-size:var(--altum-g-font-size-2xs)}.c0x-9 .u0ZlD,.c0x-9 .zgxWz{width:auto}.c0x-9.GRryI{--altum-item-media:var(--altum-g-space-6);padding:var(--altum-g-space-1) var(--altum-g-space-2)}.c0x-9.GRryI .L7hoN{font-size:var(--altum-g-font-size-2xs)}.c0x-9.GRryI .B-ruZ{font-size:var(--altum-g-font-size-3xs);line-height:var(--altum-g-line-height-3xs)}.c0x-9.oB8Iz{--altum-item-media:calc(var(--altum-g-space-8) + var(--altum-g-space-2));padding:var(--altum-g-space-2) var(--altum-g-space-3)}.c0x-9.oB8Iz .L7hoN{font-size:var(--altum-g-font-size-lg)}.c0x-9.oB8Iz .B-ruZ,.c0x-9.oB8Iz .L7hoN{line-height:var(--altum-g-line-height-sm)}.c0x-9.oB8Iz .B-ruZ{font-size:var(--altum-g-font-size-sm)}._4iApM{cursor:pointer}._4iApM:after{background:#0000;border-radius:inherit;content:"";inset:0;pointer-events:none;position:absolute;transition:background .2s ease-in-out}._4iApM:hover:not(:disabled):after{background:color-mix(in srgb,var(--altum-color-text-secondary) 6%,#0000)}._4iApM:active:not(:disabled):after{background:color-mix(in srgb,var(--altum-color-text-secondary) 10%,#0000)}@media (prefers-reduced-motion:reduce){._4iApM:after{transition:none}}.Z-ge7{background:var(--altum-color-brand-tint);border-radius:var(--altum-g-radius-sm);color:var(--altum-color-brand-tint-text)}.Eid4d,.xHsEG{background:var(--altum-color-surface-active)}.Eid4d{border-radius:var(--altum-g-radius-sm)}.xHsEG{border-radius:50%}';const e={item:"c0x-9",media:"_7dXq9",title:"L7hoN",description:"B-ruZ",body:"u0ZlD",actions:"zgxWz",sm:"GRryI",lg:"oB8Iz",interactive:"_4iApM",media_icon:"Z-ge7",media_image:"Eid4d",media_avatar:"xHsEG"};a(t);export{e as default};
@@ -1 +1 @@
1
- "use client";import{jsx as i}from"react/jsx-runtime";import{useMemo as c}from"react";import{builtInMessages as n}from"../../locales/messages.js";import{deepMergeMessages as d,translate as p}from"../../locales/translate.js";import{LocaleContext as u,defaultLocaleContext as f}from"../../locales/localeContext.js";const s=({locale:e="ru",messages:r,children:t})=>{const a=c(()=>{const o=d(n[e]??f.messages,r);return{locale:e,messages:o,t:(l,m)=>p(o,l,m)}},[e,r]);return i(u.Provider,{value:a,children:t})};s.displayName="LocaleProvider";export{s as LocaleProvider};
1
+ "use client";import{jsx as i}from"react/jsx-runtime";import{useMemo as c}from"react";import{builtInMessages as n}from"../../locales/messages.js";import{deepMergeMessages as d,translate as p}from"../../locales/translate.js";import{defaultLocaleContext as u,LocaleContext as f}from"../../locales/localeContext.js";const s=({locale:e="ru",messages:r,children:t})=>{const a=c(()=>{const o=d(n[e]??u.messages,r);return{locale:e,messages:o,t:(l,m)=>p(o,l,m,e)}},[e,r]);return i(f.Provider,{value:a,children:t})};s.displayName="LocaleProvider";export{s as LocaleProvider};
@@ -1 +1 @@
1
- "use client";import{jsx as a,jsxs as C}from"react/jsx-runtime";import{forwardRef as v}from"react";import{TextField as x}from"../TextField/TextField.js";import d from"./MaskedField.module.css.js";import{composeEventHandlers as s}from"../../utils/composeEvents.js";import{composeRefs as O}from"../../utils/composeRefs.js";import{useDigitMask as b}from"../../hooks/useDigitMask.js";import{getRemainingGuides as t}from"./MaskedField.utils.js";import{getFormattedValue as A,getStaticDigitsPrefix as E}from"./MaskedField.utils.js";import{fieldOverlayClassName as D}from"../../base/FieldBase/FieldBase.js";const m=v(function({mask:l,value:c,onChange:r,onClear:i,clearLabel:p,onKeyDown:f,disabled:o,readOnly:n,maskAsPlaceholder:h=!1,placeholder:u,onClick:g,...y},k){const e=b({mask:l,value:c,disabled:o,readOnly:n,onChange:r});return a(x,{...y,ref:O(k,e.inputRef),type:"text",value:e.displayVal,disabled:o,readOnly:n,onChange:e.handleChange,onKeyDown:s(f,e.handleKeyDown),onClick:s(g,e.handleClick),placeholder:h?t("",l):u,onClear:i?()=>{r(""),i()}:void 0,clearLabel:p,controlOverlay:e.remainingGuides.length>0?C("div",{className:D(),"aria-hidden":"true","data-testid":"masked-overlay",children:[a("span",{className:d.maskOffset,children:e.displayVal}),a("span",{className:d.guideChar,children:e.remainingGuides})]}):null})});m.displayName="MaskedField";export{m as MaskedField,A as getFormattedValue,t as getRemainingGuides,E as getStaticDigitsPrefix};
1
+ "use client";import{jsx as a,jsxs as C}from"react/jsx-runtime";import{forwardRef as v}from"react";import{TextField as x,fieldOverlayClassName as O}from"../TextField/TextField.js";import d from"./MaskedField.module.css.js";import{composeEventHandlers as s}from"../../utils/composeEvents.js";import{composeRefs as b}from"../../utils/composeRefs.js";import{useDigitMask as D}from"../../hooks/useDigitMask.js";import{getRemainingGuides as t}from"./MaskedField.utils.js";import{getFormattedValue as P,getStaticDigitsPrefix as A}from"./MaskedField.utils.js";const m=v(function({mask:l,value:c,onChange:r,onClear:i,clearLabel:p,onKeyDown:f,disabled:n,readOnly:o,maskAsPlaceholder:h=!1,placeholder:u,onClick:g,...y},k){const e=D({mask:l,value:c,disabled:n,readOnly:o,onChange:r});return a(x,{...y,ref:b(k,e.inputRef),type:"text",value:e.displayVal,disabled:n,readOnly:o,onChange:e.handleChange,onKeyDown:s(f,e.handleKeyDown),onClick:s(g,e.handleClick),placeholder:h?t("",l):u,onClear:i?()=>{r(""),i()}:void 0,clearLabel:p,controlOverlay:e.remainingGuides.length>0?C("div",{className:O(),"aria-hidden":"true","data-testid":"masked-overlay",children:[a("span",{className:d.maskOffset,children:e.displayVal}),a("span",{className:d.guideChar,children:e.remainingGuides})]}):null})});m.displayName="MaskedField";export{m as MaskedField,P as getFormattedValue,t as getRemainingGuides,A as getStaticDigitsPrefix};
@@ -1 +1 @@
1
- "use client";import{jsxs as M,jsx as r}from"react/jsx-runtime";import D,{forwardRef as E,useContext as z,useState as C,useRef as L,useCallback as R,useEffect as y,useMemo as K,createContext as V}from"react";import{IconCross as A}from"../../icons/icons/IconCross.js";import{Button as F}from"../Button/Button.js";import{ButtonIcon as q}from"../ButtonIcon/ButtonIcon.js";import X from"../../styles/overlayClose.module.css.js";import o from"./Notification.module.css.js";import{cn as N}from"../../utils/cn.js";import{composeEventHandlers as S}from"../../utils/composeEvents.js";import{useLocale as G}from"../../locales/localeContext.js";import{createLibraryPortal as J}from"../../utils/portal.js";import{useDocumentKeyDown as Q}from"../../hooks/useDocumentKeyDown.js";import{formatKeyboardShortcut as U}from"../../utils/keyboardShortcut.js";import{matchesKeyboardShortcut as W}from"../../utils/keyboardShortcut.match.js";const T=V({position:"bottom-right"}),b=E(function({children:e,stacked:t=!0,stackDepth:s=3,position:i="bottom-right",className:n,...m},u){const d=K(()=>({position:i}),[i]);return J(r(T.Provider,{value:d,children:r("div",{ref:u,className:N(o.notificationsContainer,n),"data-position":i,...m,children:r(Y,{stacked:t,stackDepth:s,children:e})})}))}),Y=({children:e,stacked:t,stackDepth:s})=>{const[i,n]=C(!t),m=L(null),[u,d]=C(64),f=D.Children.toArray(e),h=Math.max(1,s);return y(()=>{n(!t)},[t]),y(()=>{const a=m.current;if(!a)return;const c=()=>d(a.getBoundingClientRect().height);c();const v=new ResizeObserver(c);return v.observe(a),()=>v.disconnect()},[f.length]),r("div",{className:N(o.stack,i?o.stackExpanded:o.stackCollapsed),style:{"--altum-stack-depth":String(h),"--altum-stack-front-h":`${u}px`},onMouseEnter:()=>{t&&n(!0)},onMouseLeave:()=>{t&&n(!1)},onFocusCapture:()=>{t&&n(!0)},onBlurCapture:a=>{t&&!a.currentTarget.contains(a.relatedTarget)&&n(!1)},children:f.map((a,c)=>r("div",{ref:c===0?m:void 0,className:N(o.stackItem,c>=h&&o.stackItemHidden),style:{"--altum-stack-i":String(c)},children:a},D.isValidElement(a)?a.key??c:c))})},w=E(function({variant:e="info",duration:t=3e3,progress:s=t>0,pauseOnHover:i=!0,onClose:n,title:m,description:u,actions:d,className:f,onMouseEnter:h,onMouseLeave:a,...c},v){const{position:H}=z(T),{t:O}=G(),[P,x]=C(!1),[k,$]=C(!1),p=L(null),g=R(()=>{k||($(!0),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{n?.()},200))},[k,n]);return y(()=>()=>{p.current&&clearTimeout(p.current)},[]),M("div",{ref:v,className:N(o.notification,o[e],k&&o.exit,f),"data-variant":e,"data-position":H,onMouseEnter:S(h,()=>{i&&x(!0)}),onMouseLeave:S(a,()=>{i&&x(!1)}),...c,role:e==="error"?"alert":"status","aria-live":e==="error"||e==="warning"?"assertive":"polite",children:[r("div",{className:o.title,children:m}),u!=null&&u!==""?r("div",{className:o.description,children:u}):null,r(q,{appearance:"diskClose",className:o.close,"aria-label":O("common.close"),icon:r(A,{className:X.icon,size:16,"aria-hidden":!0}),onClick:g}),d?.length?r("div",{className:o.actions,children:d.map((l,j)=>M(F,{size:"sm",variant:l.variant==="secondary"?"secondary":"primary",onClick:()=>{l.onClick(),g()},children:[l.label,(l.shortcutLabel??l.shortcut)&&r("span",{className:o.actionShortcut,children:l.shortcutLabel??U(l.shortcut)})]},`${l.label}-${j}`))}):null,s&&t>0&&!k&&r("div",{className:o.progressTrack,"aria-hidden":!0,children:r("div",{className:o.progressBar,style:{animationDuration:`${t}ms`,animationPlayState:P?"paused":"running"},onAnimationEnd:g})})]})});w.displayName="Notification",b.displayName="Notification.Viewport";const I=Object.assign(w,{Viewport:b}),B=({item:e,onClose:t})=>{const s=R(()=>t(e.id),[e.id,t]);return Q(i=>{if(!i.defaultPrevented){for(const n of e.actions??[])if(!(!n.shortcut||!W(i,n.shortcut))){i.preventDefault(),n.onClick(),s();return}}}),r(I,{variant:e.variant,duration:e.duration,progress:e.progress,pauseOnHover:e.pauseOnHover,onClose:s,title:e.title,description:e.description,actions:e.actions})},Z=({notifications:e,onClose:t,...s})=>r(b,{...s,children:e.slice().reverse().map(i=>r(B,{item:i,onClose:t},i.id))});export{I as Notification,Z as NotificationContainer,B as NotificationItemRenderer};
1
+ "use client";import{jsxs as M,jsx as r}from"react/jsx-runtime";import D,{forwardRef as E,useContext as j,useState as N,useRef as L,useCallback as R,useEffect as y,useMemo as K,createContext as V}from"react";import{IconCross as A}from"../../icons/icons/IconCross.js";import{Button as F}from"../Button/Button.js";import{ButtonIcon as q}from"../ButtonIcon/ButtonIcon.js";import X from"../../styles/overlayClose.module.css.js";import o from"./Notification.module.css.js";import{cn as C}from"../../utils/cn.js";import{composeEventHandlers as S}from"../../utils/composeEvents.js";import{useLocale as G}from"../../locales/localeContext.js";import{createLibraryPortal as J}from"../../utils/portal.js";import{useDocumentKeyDown as Q}from"../../hooks/useDocumentKeyDown.js";import{formatKeyboardShortcut as U}from"../../utils/keyboardShortcut.js";import{matchesKeyboardShortcut as W}from"../../utils/keyboardShortcut.match.js";const T=V({position:"bottom-right"}),b=E(function({children:e,stacked:t=!0,stackDepth:s=3,position:i="bottom-right",className:a,...m},u){const d=K(()=>({position:i}),[i]);return J(r(T.Provider,{value:d,children:r("div",{ref:u,className:C(o.notificationsContainer,a),"data-position":i,...m,children:r(Y,{stacked:t,stackDepth:s,children:e})})}))}),Y=({children:e,stacked:t,stackDepth:s})=>{const[i,a]=N(!t),m=L(null),[u,d]=N(64),h=D.Children.toArray(e),f=Math.max(1,s);return y(()=>{a(!t)},[t]),y(()=>{const n=m.current;if(!n)return;const c=()=>d(n.getBoundingClientRect().height);c();const v=new ResizeObserver(c);return v.observe(n),()=>v.disconnect()},[h.length]),r("div",{className:C(o.stack,i?o.stackExpanded:o.stackCollapsed),style:{"--altum-stack-depth":String(f),"--altum-stack-front-h":`${u}px`},onMouseEnter:()=>{t&&a(!0)},onMouseLeave:()=>{t&&a(!1)},onFocusCapture:()=>{t&&a(!0)},onBlurCapture:n=>{t&&!n.currentTarget.contains(n.relatedTarget)&&a(!1)},children:h.map((n,c)=>r("div",{ref:c===0?m:void 0,className:C(o.stackItem,c>=f&&o.stackItemHidden),style:{"--altum-stack-i":String(c)},children:n},D.isValidElement(n)?n.key??c:c))})},w=E(function({variant:e="info",duration:t=3e3,progress:s=t>0,pauseOnHover:i=!0,onClose:a,title:m,description:u,actions:d,className:h,onMouseEnter:f,onMouseLeave:n,...c},v){const{position:H}=j(T),{t:O}=G(),[z,x]=N(!1),[k,P]=N(!1),p=L(null),g=R(()=>{k||(P(!0),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{a?.()},200))},[k,a]);return y(()=>()=>{p.current&&clearTimeout(p.current)},[]),M("div",{ref:v,className:C(o.notification,o[e],k&&o.exit,h),"data-variant":e,"data-position":H,onMouseEnter:S(f,()=>{i&&x(!0)}),onMouseLeave:S(n,()=>{i&&x(!1)}),...c,role:e==="error"?"alert":"status","aria-live":e==="error"||e==="warning"?"assertive":"polite",children:[r("div",{className:o.title,children:m}),u!=null&&u!==""?r("div",{className:o.description,children:u}):null,r(q,{appearance:"diskClose",className:o.close,"aria-label":O("common.close"),icon:r(A,{className:X.icon,size:"var(--altum-overlay-close-icon-size)","aria-hidden":!0}),onClick:g}),d?.length?r("div",{className:o.actions,children:d.map((l,$)=>M(F,{size:"sm",variant:l.variant==="secondary"?"secondary":"primary",onClick:()=>{l.onClick(),g()},children:[l.label,(l.shortcutLabel??l.shortcut)&&r("span",{className:o.actionShortcut,children:l.shortcutLabel??U(l.shortcut)})]},`${l.label}-${$}`))}):null,s&&t>0&&!k&&r("div",{className:o.progressTrack,"aria-hidden":!0,children:r("div",{className:o.progressBar,style:{animationDuration:`${t}ms`,animationPlayState:z?"paused":"running"},onAnimationEnd:g})})]})});w.displayName="Notification",b.displayName="Notification.Viewport";const I=Object.assign(w,{Viewport:b}),B=({item:e,onClose:t})=>{const s=R(()=>t(e.id),[e.id,t]);return Q(i=>{if(!i.defaultPrevented){for(const a of e.actions??[])if(!(!a.shortcut||!W(i,a.shortcut))){i.preventDefault(),a.onClick(),s();return}}}),r(I,{variant:e.variant,duration:e.duration,progress:e.progress,pauseOnHover:e.pauseOnHover,onClose:s,title:e.title,description:e.description,actions:e.actions})},Z=({notifications:e,onClose:t,...s})=>r(b,{...s,children:e.slice().reverse().map(i=>r(B,{item:i,onClose:t},i.id))});export{I as Notification,Z as NotificationContainer,B as NotificationItemRenderer};
@@ -1 +1 @@
1
- "use client";import{jsx as i,jsxs as E,Fragment as H}from"react/jsx-runtime";import{forwardRef as J,useState as P}from"react";import T from"./NumberField.module.css.js";import{TextField as V}from"../TextField/TextField.js";import{IconMinus as $}from"../../icons/icons/IconMinus.js";import{IconPlus as q}from"../../icons/icons/IconPlus.js";import{getFormControlState as z}from"../../utils/formControl.js";import{clamp as A}from"../../utils/clamp.js";import{cn as D}from"../../utils/cn.js";import{useLocale as G}from"../../locales/localeContext.js";import{FieldBaseButton as B}from"../../base/FieldBase/FieldBase.js";const K=/^(?:|-|\.|-\.)$/,I=J(function({value:a,min:r,max:n,step:l=1,onChange:t,onClear:c,onBlur:L,clearLabel:O,postfix:S,disabled:m,readOnly:f,className:R,...j},k){const{t:p}=G(),[b,v]=P(null),d=e=>A(e,r??-1/0,n??1/0),o=a!==void 0?d(a):void 0,M=b!==null?b:o!==void 0?String(o):"",F=o??r??0,{isReadOnly:W}=z({disabled:m,readOnly:f}),g=o!==void 0&&r!==void 0&&F<=r,N=o!==void 0&&n!==void 0&&F>=n,s=W||m,x=e=>{s||(e>0?N:g)||t?.(d(o===void 0?e>0?r??l:r??0:o+e*l))},y=(e,u=!1)=>{if(s)return;const w=e.trim();if(K.test(w)){u||t?.(void 0);return}if(!u&&(e.endsWith(".")||e.endsWith("-")))return;const C=parseFloat(e);if(Number.isNaN(C))return;const h=d(C);(!u||h!==a)&&t?.(h)};return i(V,{ref:k,...j,type:"number",className:D(T.numberInput,R),min:r,max:n,step:l,disabled:m,readOnly:f,value:M,onChange:e=>{v(e.target.value),y(e.target.value)},onBlur:e=>{v(null),y(e.target.value,!0),L?.(e)},onClear:c?()=>{t?.(void 0),c()}:void 0,clearLabel:O,postfix:S||(s?void 0:E(H,{children:[i(B,{"aria-label":p("numberField.decrement"),disabled:g,onClick:()=>x(-1),icon:i($,{})}),i(B,{"aria-label":p("numberField.increment"),disabled:N,onClick:()=>x(1),icon:i(q,{})})]}))})});I.displayName="NumberField";export{I as NumberField};
1
+ "use client";import{jsx as i,jsxs as E,Fragment as H}from"react/jsx-runtime";import{forwardRef as J,useState as P}from"react";import T from"./NumberField.module.css.js";import{TextField as V,FieldBaseButton as B}from"../TextField/TextField.js";import{IconMinus as $}from"../../icons/icons/IconMinus.js";import{IconPlus as q}from"../../icons/icons/IconPlus.js";import{getFormControlState as z}from"../../utils/formControl.js";import{clamp as A}from"../../utils/clamp.js";import{cn as D}from"../../utils/cn.js";import{useLocale as G}from"../../locales/localeContext.js";const K=/^(?:|-|\.|-\.)$/,I=J(function({value:t,min:r,max:n,step:l=1,onChange:a,onClear:c,onBlur:L,clearLabel:O,postfix:S,disabled:m,readOnly:f,className:R,...j},k){const{t:p}=G(),[b,v]=P(null),d=e=>A(e,r??-1/0,n??1/0),o=t!==void 0?d(t):void 0,M=b!==null?b:o!==void 0?String(o):"",F=o??r??0,{isReadOnly:W}=z({disabled:m,readOnly:f}),g=o!==void 0&&r!==void 0&&F<=r,N=o!==void 0&&n!==void 0&&F>=n,s=W||m,x=e=>{s||(e>0?N:g)||a?.(d(o===void 0?e>0?r??l:r??0:o+e*l))},y=(e,u=!1)=>{if(s)return;const w=e.trim();if(K.test(w)){u||a?.(void 0);return}if(!u&&(e.endsWith(".")||e.endsWith("-")))return;const C=parseFloat(e);if(Number.isNaN(C))return;const h=d(C);(!u||h!==t)&&a?.(h)};return i(V,{ref:k,...j,type:"number",className:D(T.numberInput,R),min:r,max:n,step:l,disabled:m,readOnly:f,value:M,onChange:e=>{v(e.target.value),y(e.target.value)},onBlur:e=>{v(null),y(e.target.value,!0),L?.(e)},onClear:c?()=>{a?.(void 0),c()}:void 0,clearLabel:O,postfix:S||(s?void 0:E(H,{children:[i(B,{"aria-label":p("numberField.decrement"),disabled:g,onClick:()=>x(-1),icon:i($,{})}),i(B,{"aria-label":p("numberField.increment"),disabled:N,onClick:()=>x(1),icon:i(q,{})})]}))})});I.displayName="NumberField";export{I as NumberField};
@@ -1 +1 @@
1
- "use client";import{jsx as c,jsxs as p}from"react/jsx-runtime";import h,{forwardRef as u}from"react";import{OverflowMode as T,OverflowItem as d}from"./OverflowActionsMode.js";import{OverflowMeasure as N}from"./OverflowMeasure.js";import{ActionSheetTrigger as x}from"../ActionSheetTrigger/ActionSheetTrigger.js";function M(s){const o=[],e=[];return h.Children.forEach(s,r=>{h.isValidElement(r)&&r.type===d?o.push(r):r!=null&&r!==!1&&e.push(r)}),{items:o,extra:e}}const g=Object.assign(u(function(s,o){const{longPress:e=!1,longPressMs:r,moveThreshold:v,showOverflowTrigger:w,children:t,className:l,...n}=s,{items:f,extra:O}=M(t),m=f.length>0,i=w??!e,a=m?c(T,{ref:e?void 0:o,...n,showOverflowTrigger:i,className:e?void 0:l,children:f}):c(N,{ref:e?void 0:o,...n,showOverflowTrigger:i,className:e?void 0:l,children:t});return e?p(x,{ref:o,className:l,showOverflowTrigger:i,longPressMs:r,moveThreshold:v,children:[m?O:null,a]}):a}),{Item:d});g.displayName="Overflow";export{g as Overflow};
1
+ "use client";import{jsx as c,jsxs as p}from"react/jsx-runtime";import{forwardRef as O}from"react";import{visitElementTree as u}from"../../utils/visitElementTree.js";import{OverflowMode as T,OverflowItem as h}from"./OverflowActionsMode.js";import{OverflowMeasure as N}from"./OverflowMeasure.js";import{ActionSheetTrigger as x}from"../ActionSheetTrigger/ActionSheetTrigger.js";function M(s){const r=[],e=[];return u(s,o=>{o.type===h?r.push(o):e.push(o)},()=>!1),{items:r,extra:e}}const v=Object.assign(O(function(s,r){const{longPress:e=!1,longPressMs:o,moveThreshold:g,showOverflowTrigger:d,children:t,className:l,...m}=s,{items:f,extra:w}=M(t),n=f.length>0,i=d??!e,a=n?c(T,{ref:e?void 0:r,...m,showOverflowTrigger:i,className:e?void 0:l,children:f}):c(N,{ref:e?void 0:r,...m,showOverflowTrigger:i,className:e?void 0:l,children:t});return e?p(x,{ref:r,className:l,showOverflowTrigger:i,longPressMs:o,moveThreshold:g,children:[n?w:null,a]}):a}),{Item:h});v.displayName="Overflow";export{v as Overflow};
@@ -1 +1 @@
1
- "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".Kkant{align-items:center;display:flex;flex-wrap:nowrap;min-width:0;position:relative}.Kkant.x97pZ{display:inline-flex;flex-wrap:wrap;gap:var(--altum-g-space-1)}.Kkant.LAkSp{max-width:100%;width:max-content}.Kkant.EfjIo{align-self:stretch;height:100%;width:100%}.Kkant.EfjIo .Ua-VV{align-items:stretch;height:100%}.Kkant.EfjIo .eKBSM{align-items:stretch;display:flex}.Kkant.EfjIo .yVeqT{align-items:stretch;margin-inline-start:auto}.Kkant.EfjIo .COxju{align-self:stretch;aspect-ratio:auto;background-color:initial;border:none;border-radius:calc(var(--altum-g-radius) - 2px);box-shadow:none;height:auto;min-height:0;opacity:.75}:is(.Kkant.EfjIo .COxju):hover:not(:disabled){background-color:color-mix(in srgb,var(--altum-field-label) 8%,#0000);opacity:1}:is(.Kkant.EfjIo .COxju):focus-visible{opacity:1}.Kkant .Ua-VV{align-items:center;display:flex;flex-wrap:nowrap;min-width:0;width:100%}.Kkant .bb2Tq,.Kkant .eKBSM{flex-shrink:0}.Kkant .Kfxom{pointer-events:none;position:absolute;visibility:hidden}.Kkant .yVeqT{align-items:center;display:flex;flex-shrink:0}.Kkant .TwrfM{gap:var(--altum-g-space-1)}.Kkant .WOShp{gap:var(--altum-g-space-2)}.Kkant .eKcBZ{gap:var(--altum-g-space-3)}.Kkant .Cq3Em{max-width:min(20rem,calc(100vw - var(--altum-g-space-8)));overflow-x:hidden;overflow-y:auto}.Kkant .GeIJ-{align-items:stretch;display:flex;flex-direction:column;gap:var(--altum-g-space-2);max-width:100%;overflow-x:hidden;padding:var(--altum-g-space-2);width:max-content}:is(.Kkant .GeIJ-)>*{height:auto;max-width:100%;min-height:var(--altum-control-height-sm);width:100%}:is(.Kkant .MCd7o):focus-visible{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}";const e={root:"Kkant",actions:"x97pZ",fitContent:"LAkSp",fitContainer:"EfjIo",row:"Ua-VV",item:"eKBSM",moreSlot:"yVeqT",bare:"COxju",more:"bb2Tq",moreMeasure:"Kfxom",gapSm:"TwrfM",gapMd:"WOShp",gapLg:"eKcBZ",menuPanel:"Cq3Em",menuStack:"GeIJ-",srFocus:"MCd7o"};a(t);export{e as default};
1
+ "use client";import{injectCss as a}from"../../utils/injectCss.js";var t=".Kkant{align-items:center;display:flex;flex-wrap:nowrap;min-width:0;position:relative}.Kkant.x97pZ{display:inline-flex;flex-wrap:wrap;gap:var(--altum-g-space-1)}.Kkant.LAkSp{max-width:100%;width:max-content}.Kkant.EfjIo{align-self:stretch;height:100%;width:100%}.Kkant.EfjIo .Ua-VV{align-items:stretch;height:100%}.Kkant.EfjIo .eKBSM{align-items:stretch;display:flex}.Kkant.EfjIo .yVeqT{align-items:stretch;margin-inline-start:auto}.Kkant.EfjIo .COxju{align-self:stretch;aspect-ratio:auto;background-color:initial;border:none;border-radius:calc(var(--altum-g-radius) - var(--altum-control-inset));box-shadow:none;height:auto;min-height:0;opacity:.75}:is(.Kkant.EfjIo .COxju):hover:not(:disabled){background-color:color-mix(in srgb,var(--altum-field-label) 8%,#0000);opacity:1}:is(.Kkant.EfjIo .COxju):focus-visible{opacity:1}.Kkant .Ua-VV{align-items:center;display:flex;flex-wrap:nowrap;min-width:0;width:100%}.Kkant .bb2Tq,.Kkant .eKBSM{flex-shrink:0}.Kkant .Kfxom{pointer-events:none;position:absolute;visibility:hidden}.Kkant .yVeqT{align-items:center;display:flex;flex-shrink:0}.Kkant .TwrfM{gap:var(--altum-g-space-1)}.Kkant .WOShp{gap:var(--altum-g-space-2)}.Kkant .eKcBZ{gap:var(--altum-g-space-3)}.Kkant .Cq3Em{max-width:min(20rem,calc(100vw - var(--altum-g-space-8)));overflow-x:hidden;overflow-y:auto}.Kkant .GeIJ-{align-items:stretch;display:flex;flex-direction:column;gap:var(--altum-g-space-2);max-width:100%;overflow-x:hidden;padding:var(--altum-g-space-2);width:max-content}:is(.Kkant .GeIJ-)>*{height:auto;max-width:100%;min-height:var(--altum-control-height-sm);width:100%}:is(.Kkant .MCd7o):focus-visible{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}";const e={root:"Kkant",actions:"x97pZ",fitContent:"LAkSp",fitContainer:"EfjIo",row:"Ua-VV",item:"eKBSM",moreSlot:"yVeqT",bare:"COxju",more:"bb2Tq",moreMeasure:"Kfxom",gapSm:"TwrfM",gapMd:"WOShp",gapLg:"eKcBZ",menuPanel:"Cq3Em",menuStack:"GeIJ-",srFocus:"MCd7o"};a(t);export{e as default};
@@ -1 +1 @@
1
- "use client";import{jsxs as q,jsx as s}from"react/jsx-runtime";import y,{forwardRef as D,useId as F,useState as G,useMemo as O,useCallback as S}from"react";import{ActionList as J}from"../ActionList/ActionList.js";import{Button as Q}from"../Button/Button.js";import{ButtonIcon as X}from"../ButtonIcon/ButtonIcon.js";import{cn as x}from"../../utils/cn.js";import{useActionSheetContext as Z}from"../ActionSheetTrigger/actionSheetContext.js";import b from"./Overflow.module.css.js";import{useLocale as _}from"../../locales/localeContext.js";import{OverflowMore as $}from"./OverflowMore.js";const H=new Set(["id","icon","label","textValue","disabled","onSelect","className","key"]);function K(e){return y.isValidElement(e)&&e.type===v}function U(e){const l=[];return y.Children.forEach(e,(i,t)=>{if(!K(i))return;const r=i.props.id??`action-${t}`;l.push({...i.props,id:r,key:String(i.key??r)})}),l}function N(e){return typeof e.textValue=="string"&&e.textValue.length>0?e.textValue:typeof e.label=="string"||typeof e.label=="number"?String(e.label):e.id??e.key}function k(e){const l={};for(const[i,t]of Object.entries(e))H.has(i)||t===void 0||(l[i]=t);return l}const v=()=>null;v.displayName="Overflow.Item";function W({item:e,display:l,size:i}){const t=N(e),r=l==="icon"&&e.icon!=null,n=k(e),c={...n,type:"button",variant:"ghost",size:i,id:e.id,disabled:e.disabled,className:x(b.item,e.className),onClick:()=>e.onSelect?.()};return r?s(X,{...c,icon:e.icon,"aria-label":n["aria-label"]??(n["aria-labelledby"]?void 0:t)}):s(Q,{...c,iconStart:e.icon,children:e.label})}const V=D(function({children:e,visibleCount:l,display:i="icon-label",showOverflowTrigger:t,size:r="sm",mobileTitle:n,className:c,"aria-label":C,gap:Y,fit:ee,maxVisible:oe,align:le,moreLabel:ie,...M},z){const{t:m}=_(),h=C??m("overflow.ariaLabel"),I=n??m("overflow.title"),L=F(),a=Z(),[T,j]=G(!1),f=O(()=>U(e),[e]),w=l===void 0||!Number.isFinite(l)?f.length:Math.max(0,Math.floor(l)),A=f.slice(0,w),d=f.slice(w),g=d.length>0,E=!(t??a?.shouldShowOverflowTrigger??!0),u=a!=null&&g,R=u?a.overflowOpen:T,p=S(o=>{u?a.setOverflowOpen(o):j(o)},[u,a]),B=O(()=>d.map(o=>({id:o.id??o.key,groupId:"overflow",label:o.label,textValue:N(o),icon:o.icon,disabled:o.disabled,onSelect:o.onSelect,buttonProps:k(o)})),[d]),P=S(o=>{o.onSelect?.(),p(!1)},[p]);return q("div",{ref:z,className:x(b.root,b.actions,c),...M,role:"toolbar","aria-label":h,children:[A.map(o=>s(W,{item:o,display:i,size:r},o.key)),g&&s($,{open:R,onOpenChange:p,size:r,mobileTitle:I,ariaLabel:m("overflow.more"),hidden:E,children:s(J,{id:L,"aria-label":h,items:B,groups:[{id:"overflow",label:m("overflow.title")}],onAction:P})})]})});V.displayName="Overflow";export{v as OverflowItem,V as OverflowMode};
1
+ "use client";import{jsxs as P,jsx as s}from"react/jsx-runtime";import D,{forwardRef as F,useId as G,useState as J,useMemo as y,useCallback as O}from"react";import{visitElementTree as Q}from"../../utils/visitElementTree.js";import{ActionList as U}from"../ActionList/ActionList.js";import{Button as Z}from"../Button/Button.js";import{ButtonIcon as _}from"../ButtonIcon/ButtonIcon.js";import{cn as x}from"../../utils/cn.js";import{useActionSheetContext as q}from"../ActionSheetTrigger/actionSheetContext.js";import b from"./Overflow.module.css.js";import{useLocale as H}from"../../locales/localeContext.js";import{OverflowMore as K}from"./OverflowMore.js";const W=new Set(["id","icon","label","textValue","disabled","onSelect","className","key"]);function X(e){return D.isValidElement(e)&&e.type===v}function Y(e){const o=[];let i=0;return Q(e,t=>{if(!X(t))return;const r=t.props.id??`action-${i}`;o.push({...t.props,id:r,key:String(t.key??r)}),i+=1},()=>!1),o}function S(e){return typeof e.textValue=="string"&&e.textValue.length>0?e.textValue:typeof e.label=="string"||typeof e.label=="number"?String(e.label):e.id??e.key}function N(e){const o={};for(const[i,t]of Object.entries(e))W.has(i)||t===void 0||(o[i]=t);return o}const v=()=>null;v.displayName="Overflow.Item";function $({item:e,display:o,size:i}){const t=S(e),r=o==="icon"&&e.icon!=null,n=N(e),c={...n,type:"button",variant:"ghost",size:i,id:e.id,disabled:e.disabled,className:x(b.item,e.className),onClick:()=>e.onSelect?.()};return r?s(_,{...c,icon:e.icon,"aria-label":n["aria-label"]??(n["aria-labelledby"]?void 0:t)}):s(Z,{...c,prefix:e.icon,children:e.label})}const k=F(function({children:e,visibleCount:o,display:i="icon-label",showOverflowTrigger:t,size:r="sm",mobileTitle:n,className:c,"aria-label":V,gap:ee,fit:le,maxVisible:oe,align:te,moreLabel:ie,...M},T){const{t:m}=H(),w=V??m("overflow.ariaLabel"),z=n??m("overflow.title"),C=G(),a=q(),[I,L]=J(!1),f=y(()=>Y(e),[e]),h=o===void 0||!Number.isFinite(o)?f.length:Math.max(0,Math.floor(o)),A=f.slice(0,h),d=f.slice(h),g=d.length>0,j=!(t??a?.shouldShowOverflowTrigger??!0),u=a!=null&&g,E=u?a.overflowOpen:I,p=O(l=>{u?a.setOverflowOpen(l):L(l)},[u,a]),R=y(()=>d.map(l=>({id:l.id??l.key,groupId:"overflow",label:l.label,textValue:S(l),icon:l.icon,disabled:l.disabled,onSelect:l.onSelect,buttonProps:N(l)})),[d]),B=O(l=>{l.onSelect?.(),p(!1)},[p]);return P("div",{ref:T,className:x(b.root,b.actions,c),...M,role:"toolbar","aria-label":w,children:[A.map(l=>s($,{item:l,display:i,size:r},l.key)),g&&s(K,{open:E,onOpenChange:p,size:r,mobileTitle:z,ariaLabel:m("overflow.more"),hidden:j,children:s(U,{id:C,"aria-label":w,items:R,groups:[{id:"overflow",label:m("overflow.title")}],onAction:B})})]})});k.displayName="Overflow";export{v as OverflowItem,k as OverflowMode};
@@ -1 +1 @@
1
- "use client";import{jsx as s,jsxs as te}from"react/jsx-runtime";import z,{forwardRef as ne,useMemo as V,useState as T,useRef as d,useCallback as P,useLayoutEffect as oe,useEffect as ie}from"react";import{composeRefs as le}from"../../utils/composeRefs.js";import{cn as W}from"../../utils/cn.js";import{useLocale as ae}from"../../locales/localeContext.js";import n from"./Overflow.module.css.js";import{OverflowMore as ue}from"./OverflowMore.js";function ce(e){return z.Children.toArray(e).filter(i=>z.isValidElement(i))}function k(e,i){return e.key!=null?String(e.key):`overflow-item-${i}`}function se(e){return e==="sm"?n.gapSm:e==="lg"?n.gapLg:n.gapMd}function fe(e){return`var(--altum-control-height-${e})`}function q(e){if(!e)return 0;const i=getComputedStyle(e).columnGap||getComputedStyle(e).gap,u=Number.parseFloat(i);return Number.isFinite(u)?u:0}function D(e,i,u,f,c){const a=i.length;if(a===0||e<=0)return 0;const g=o=>{if(o<=0)return 0;let m=0;for(let b=0;b<o;b+=1)m+=i[b]??0;return m+f*Math.max(0,o-1)},R=g(a),v=c!==void 0?Math.min(a,Math.max(0,Math.floor(c))):a;if(R<=e&&v>=a)return a;for(let o=v;o>=0;o-=1){const m=g(o);if((o<a?m+(o>0?f:0)+u:m)<=e)return o}return 0}const G=ne(function({children:e,gap:i="md",size:u="md",fit:f="content",maxVisible:c,align:a="right",moreLabel:g,mobileTitle:R,className:v,"aria-label":o,visibleCount:m,display:b,showOverflowTrigger:me,...J},K){const{t:S}=ae(),l=V(()=>ce(e),[e]),p=`${V(()=>l.map((r,t)=>k(r,t)).join("\0"),[l])}|${i}|${u}|${f}|${c??""}`,[$,Q]=T(""),[w,U]=T(l.length),[X,Y]=T(!1),N=d(null),x=d(null),E=d(null),y=d([]),C=d([]),L=d(0),h=$!==p,Z=o??S("overflow.groupAriaLabel"),_=g??S("overflow.groupMore"),B=R??S("overflow.groupTitle"),F=fe(u),M=P(r=>{U(t=>t===r?t:r)},[]),O=P(()=>{const r=N.current,t=x.current;!r||!t||C.current.length===0||M(D(r.clientWidth,C.current,L.current,q(t),c))},[M,c]);oe(()=>{const r=N.current,t=x.current;if(!(!r||!t)){if(h){y.current=y.current.slice(0,l.length),C.current=l.map((A,re)=>y.current[re]?.offsetWidth??0),L.current=E.current?.offsetWidth??0,M(D(r.clientWidth,C.current,L.current,q(t),c)),Q(p);return}O()}},[M,l.length,c,p,h,O]),ie(()=>{const r=N.current;if(!r||typeof ResizeObserver>"u")return;const t=new ResizeObserver(()=>{$===p&&O()});return t.observe(r),()=>t.disconnect()},[p,O,$]);const j=!h&&w<l.length,H=h?l.length:w,I=l.slice(0,H),ee=j?l.slice(w):[];return s("div",{ref:le(K,N),className:W(n.root,f==="container"?n.fitContainer:n.fitContent,v),role:"group","aria-label":Z,...J,children:te("div",{ref:x,className:W(n.row,se(i)),children:[I.map((r,t)=>s("div",{ref:A=>{y.current[t]=A},className:n.item,children:r},k(r,t))),h&&s("div",{ref:E,className:W(n.more,n.moreMeasure),style:{width:F,height:F},"aria-hidden":!0}),j&&s("div",{className:n.moreSlot,children:s(ue,{open:X,onOpenChange:Y,size:u,align:a,mobileTitle:B,ariaLabel:_,popupRole:"none",panelClassName:n.menuPanel,triggerClassName:f==="container"?n.bare:void 0,children:s("div",{className:n.menuStack,children:ee.map((r,t)=>s(z.Fragment,{children:r},k(r,w+t)))})})})]})})});G.displayName="Overflow";export{G as OverflowMeasure};
1
+ "use client";import{jsx as f,jsxs as ne}from"react/jsx-runtime";import W,{forwardRef as oe,useMemo as V,useState as k,useRef as h,useCallback as P,useLayoutEffect as ie,useEffect as le}from"react";import{composeRefs as ae}from"../../utils/composeRefs.js";import{cn as z}from"../../utils/cn.js";import{useLocale as ue}from"../../locales/localeContext.js";import n from"./Overflow.module.css.js";import{OverflowMore as ce}from"./OverflowMore.js";function me(e){return W.Children.toArray(e).filter(o=>W.isValidElement(o))}function T(e,o){return e.key!=null?String(e.key):`overflow-item-${o}`}function se(e){return e==="sm"?n.gapSm:e==="lg"?n.gapLg:n.gapMd}function fe(e){return`var(--altum-control-height-${e})`}function B(e){if(!e)return 0;const o=getComputedStyle(e).columnGap||getComputedStyle(e).gap,m=Number.parseFloat(o);return Number.isFinite(m)?m:0}function D(e,o){return o==="container"?e.clientWidth:e.parentElement?.clientWidth??e.clientWidth}function G(e,o,m,i,s){const c=o.length;if(c===0||e<=0)return 0;const v=l=>{if(l<=0)return 0;let d=0;for(let w=0;w<l;w+=1)d+=o[w]??0;return d+i*Math.max(0,l-1)},S=v(c),b=s!==void 0?Math.min(c,Math.max(0,Math.floor(s))):c;if(S<=e&&b>=c)return c;for(let l=b;l>=0;l-=1){const d=v(l);if((l<c?d+(l>0?i:0)+m:d)<=e)return l}return 0}const J=oe(function({children:e,gap:o="md",size:m="md",fit:i="content",maxVisible:s,align:c="right",moreLabel:v,mobileTitle:S,className:b,"aria-label":l,visibleCount:d,display:w,showOverflowTrigger:de,...K},Q){const{t:$}=ue(),a=V(()=>me(e),[e]),p=`${V(()=>a.map((r,t)=>T(r,t)).join("\0"),[a])}|${o}|${m}|${i}|${s??""}`,[x,U]=k(""),[N,X]=k(a.length),[Y,Z]=k(!1),y=h(null),L=h(null),j=h(null),C=h([]),M=h([]),E=h(0),g=x!==p,_=l??$("overflow.groupAriaLabel"),q=v??$("overflow.groupMore"),H=S??$("overflow.groupTitle"),A=fe(m),O=P(r=>{X(t=>t===r?t:r)},[]),R=P(()=>{const r=y.current,t=L.current;if(!r||!t||M.current.length===0)return;const u=D(r,i);u<=0||O(G(u,M.current,E.current,B(t),s))},[O,i,s]);ie(()=>{const r=y.current,t=L.current;if(!(!r||!t)){if(g){const u=D(r,i);if(u<=0)return;C.current=C.current.slice(0,a.length),M.current=a.map((he,te)=>C.current[te]?.offsetWidth??0),E.current=j.current?.offsetWidth??0,O(G(u,M.current,E.current,B(t),s)),U(p);return}R()}},[O,i,a.length,s,p,g,R]),le(()=>{const r=y.current;if(!r||typeof ResizeObserver>"u")return;const t=i==="container"?r:r.parentElement??r,u=new ResizeObserver(()=>{x===p&&R()});return u.observe(t),()=>u.disconnect()},[i,p,R,x]);const F=!g&&N<a.length,I=g?a.length:N,ee=a.slice(0,I),re=F?a.slice(N):[];return f("div",{ref:ae(Q,y),className:z(n.root,i==="container"?n.fitContainer:n.fitContent,b),role:"group","aria-label":_,...K,children:ne("div",{ref:L,className:z(n.row,se(o)),children:[ee.map((r,t)=>f("div",{ref:u=>{C.current[t]=u},className:n.item,children:r},T(r,t))),g&&f("div",{ref:j,className:z(n.more,n.moreMeasure),style:{width:A,height:A},"aria-hidden":!0}),F&&f("div",{className:n.moreSlot,children:f(ce,{open:Y,onOpenChange:Z,size:m,align:c,mobileTitle:H,ariaLabel:q,popupRole:"none",panelClassName:n.menuPanel,triggerClassName:i==="container"?n.bare:void 0,children:f("div",{className:n.menuStack,children:re.map((r,t)=>f(W.Fragment,{children:r},T(r,N+t)))})})})]})})});J.displayName="Overflow";export{J as OverflowMeasure};