altum 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/README.md +47 -1
- package/dist/base/FieldPopup/FieldPopup.js +1 -1
- package/dist/base/PeriodHeader/PeriodHeader.js +1 -1
- package/dist/base/ToggleControlBase/ToggleControlBase.js +1 -1
- package/dist/base/ToggleControlBase/ToggleControlBase.module.css.js +1 -1
- package/dist/components/Accordion/Accordion.js +1 -1
- package/dist/components/Accordion/Accordion.module.css.js +1 -1
- package/dist/components/ActionList/ActionList.js +1 -1
- package/dist/components/ActionList/ActionList.module.css.js +1 -1
- package/dist/components/ActionSheetTrigger/ActionSheetTrigger.js +1 -1
- package/dist/components/ActionSheetTrigger/ActionSheetTrigger.module.css.js +1 -1
- package/dist/components/Alert/Alert.js +1 -1
- package/dist/components/Alert/Alert.module.css.js +1 -1
- package/dist/components/Avatar/Avatar.module.css.js +1 -1
- package/dist/components/Badge/Badge.js +1 -1
- package/dist/components/Badge/Badge.module.css.js +1 -1
- package/dist/components/Box/Box.js +1 -1
- package/dist/components/Box/Box.module.css.js +1 -1
- package/dist/components/Bubble/Bubble.js +1 -1
- package/dist/components/Bubble/Bubble.module.css.js +1 -1
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/Button/Button.module.css.js +1 -0
- package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.module.css.js +1 -1
- package/dist/components/ButtonIcon/ButtonIcon.js +1 -1
- package/dist/components/ButtonIcon/ButtonIcon.module.css.js +1 -0
- package/dist/components/ButtonIcon/OverlayCloseButton.js +1 -0
- package/dist/components/Calendar/Calendar.context.js +1 -1
- package/dist/components/Calendar/Calendar.module.css.js +1 -1
- package/dist/components/Calendar/Calendar.slots.js +1 -1
- package/dist/components/Calendar/Calendar.utils.js +1 -1
- package/dist/components/Calendar/Calendar.views.js +1 -1
- package/dist/components/CalendarBoard/CalendarBoard.MonthView.js +1 -1
- package/dist/components/CalendarBoard/CalendarBoard.Schedule.js +1 -1
- package/dist/components/CalendarBoard/CalendarBoard.Schedule.module.css.js +1 -1
- package/dist/components/CalendarBoard/CalendarBoard.Schedule.utils.js +1 -1
- package/dist/components/CalendarBoard/CalendarBoard.YearView.js +2 -2
- package/dist/components/CalendarBoard/CalendarBoard.chrome.js +1 -1
- package/dist/components/CalendarBoard/CalendarBoard.context.js +1 -1
- package/dist/components/CalendarBoard/CalendarBoard.module.css.js +1 -1
- package/dist/components/CalendarBoard/CalendarBoard.utils.js +1 -1
- package/dist/components/CalendarBoard/calendar.schedule.js +1 -1
- package/dist/components/Card/Card.js +1 -1
- package/dist/components/Card/Card.module.css.js +1 -1
- package/dist/components/Chip/Chip.js +1 -1
- package/dist/components/Chip/Chip.module.css.js +1 -1
- package/dist/components/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/ColorSwatchGroup/ColorSwatchGroup.module.css.js +1 -1
- package/dist/components/CommandPalette/CommandPalette.js +1 -1
- package/dist/components/CommandPalette/CommandPalette.module.css.js +1 -1
- package/dist/components/ConfirmDialog/ConfirmDialog.js +1 -1
- package/dist/components/DateField/DateField.js +1 -1
- package/dist/components/DateField/DateField.utils.js +1 -1
- package/dist/components/DateRangeField/DateRangeField.js +1 -1
- package/dist/components/DayStripCalendar/DayStripCalendar.js +1 -1
- package/dist/components/DialogLayout/DialogLayout.js +1 -0
- package/dist/components/DialogLayout/DialogLayout.module.css.js +1 -0
- package/dist/components/Dropdown/Dropdown.js +1 -1
- package/dist/components/Dropdown/Dropdown.module.css.js +1 -1
- package/dist/components/Dropdown/DropdownMobileSheet.js +1 -1
- package/dist/components/FileList/FileList.js +1 -1
- package/dist/components/Grid/Grid.js +1 -1
- package/dist/components/Grid/Grid.utils.js +1 -1
- package/dist/components/ImageCrop/ImageCrop.js +1 -1
- package/dist/components/ImageCrop/ImageCrop.module.css.js +1 -1
- package/dist/components/ImageGallery/ImageGallery.js +1 -1
- package/dist/components/ImageGallery/ImageGallery.module.css.js +1 -1
- package/dist/components/ImageLightbox/ImageLightbox.js +1 -1
- package/dist/components/ImageLightbox/ImageLightbox.module.css.js +1 -1
- package/dist/components/Layout/Layout.js +1 -1
- package/dist/components/Layout/Layout.module.css.js +1 -1
- package/dist/components/Link/Link.js +1 -1
- package/dist/components/Listbox/Listbox.js +1 -1
- package/dist/components/Listbox/Listbox.module.css.js +1 -1
- package/dist/components/LiveRegion/LiveRegion.js +1 -0
- package/dist/components/LocaleProvider/LocaleProvider.js +1 -1
- package/dist/components/MaskedField/MaskedField.js +1 -1
- package/dist/components/MaskedField/MaskedField.module.css.js +1 -1
- package/dist/components/Menu/Menu.js +1 -1
- package/dist/components/Menu/Menu.module.css.js +1 -1
- package/dist/components/Modal/Modal.js +1 -1
- package/dist/components/Modal/Modal.module.css.js +1 -1
- package/dist/components/Notification/Notification.js +1 -1
- package/dist/components/Notification/Notification.module.css.js +1 -1
- package/dist/components/Notification/toast.js +1 -1
- package/dist/components/NumberField/NumberField.js +1 -1
- package/dist/components/Overflow/Overflow.js +1 -1
- package/dist/components/Overflow/Overflow.module.css.js +1 -1
- package/dist/components/Overlay/Overlay.frame.js +1 -0
- package/dist/components/Overlay/Overlay.js +1 -1
- package/dist/components/Overlay/Overlay.module.css.js +1 -1
- package/dist/components/Pagination/Pagination.js +1 -1
- package/dist/components/PasswordField/PasswordField.js +1 -1
- package/dist/components/PasswordField/PasswordField.module.css.js +1 -1
- package/dist/components/PinInput/PinInput.js +1 -1
- package/dist/components/PinInput/PinInput.module.css.js +1 -1
- package/dist/components/Popover/Popover.js +1 -1
- package/dist/components/Popover/Popover.module.css.js +1 -1
- package/dist/components/PopupSwitch/PopupSwitch.js +1 -0
- package/dist/components/PopupSwitch/PopupSwitch.module.css.js +1 -0
- package/dist/components/PopupSwitch/PopupSwitch.utils.js +1 -0
- package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
- package/dist/components/Rating/Rating.js +1 -1
- package/dist/components/RelativeTime/RelativeTime.js +1 -1
- package/dist/components/SearchField/SearchField.js +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/components/Select/Select.js +1 -1
- package/dist/components/Select/Select.module.css.js +1 -1
- package/dist/components/SelectionGroup/SelectionGroup.js +1 -1
- package/dist/components/Sheet/Sheet.js +1 -1
- package/dist/components/Sheet/Sheet.module.css.js +1 -1
- package/dist/components/Sidebar/Sidebar.js +1 -1
- package/dist/components/Sidebar/Sidebar.module.css.js +1 -1
- package/dist/components/SkipLink/SkipLink.js +1 -1
- package/dist/components/Slider/Slider.js +1 -1
- package/dist/components/SortableList/SortableList.js +1 -1
- package/dist/components/SortableList/SortableList.module.css.js +1 -1
- package/dist/components/Spinner/Spinner.js +1 -1
- package/dist/components/Steps/Steps.js +1 -1
- package/dist/components/Steps/Steps.module.css.js +1 -1
- package/dist/components/SuggestField/SuggestField.js +1 -1
- package/dist/components/Table/Table.js +1 -1
- package/dist/components/Table/TableRowActions.js +1 -1
- package/dist/components/Table/TableView.js +1 -1
- package/dist/components/TextField/TextField.js +1 -1
- package/dist/components/TextField/TextField.module.css.js +1 -0
- package/dist/components/TextareaField/TextareaField.js +1 -1
- package/dist/components/TextareaField/TextareaField.module.css.js +1 -0
- package/dist/components/ThemeProvider/ThemeProvider.js +1 -1
- package/dist/components/ThemeProvider/ThemeProvider.module.css.js +1 -1
- package/dist/components/TimeField/TimeField.js +1 -1
- package/dist/components/Tooltip/Tooltip.js +1 -1
- package/dist/components/Tooltip/Tooltip.module.css.js +1 -1
- package/dist/components/UploadZone/UploadZone.js +1 -1
- package/dist/components/VirtualList/VirtualList.js +1 -1
- package/dist/components/VirtualList/VirtualList.module.css.js +1 -1
- package/dist/components/VirtualList/VirtualList.utils.js +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.js +1 -1
- package/dist/components/WheelTimePicker/WheelTimePicker.js +1 -1
- package/dist/entries/hooks.js +1 -1
- package/dist/entries/icons.js +1 -1
- package/dist/entries/locales.js +1 -0
- package/dist/entries/utils.js +1 -1
- package/dist/hooks/useAutoResize.js +1 -1
- package/dist/hooks/useForm.js +1 -1
- package/dist/hooks/useFormProvider.js +1 -0
- package/dist/hooks/useOtpInputs.js +1 -1
- package/dist/hooks/useTrackThumb.js +1 -1
- package/dist/icons/icons/IconChevronUpDown.js +1 -0
- package/dist/index.js +1 -1
- package/dist/locales/en.js +1 -1
- package/dist/locales/localeContext.js +1 -1
- package/dist/locales/ru.js +1 -1
- package/dist/locales/slices/actionList.en.js +1 -0
- package/dist/locales/slices/actionList.ru.js +1 -0
- package/dist/locales/slices/bubble.en.js +1 -0
- package/dist/locales/slices/bubble.ru.js +1 -0
- package/dist/locales/slices/buttonGroup.en.js +1 -0
- package/dist/locales/slices/buttonGroup.ru.js +1 -0
- package/dist/locales/slices/calendar.en.js +1 -0
- package/dist/locales/slices/calendar.ru.js +1 -0
- package/dist/locales/slices/calendarBoard.en.js +1 -0
- package/dist/locales/slices/calendarBoard.ru.js +1 -0
- package/dist/locales/slices/chip.en.js +1 -0
- package/dist/locales/slices/chip.ru.js +1 -0
- package/dist/locales/slices/commandPalette.en.js +1 -0
- package/dist/locales/slices/commandPalette.ru.js +1 -0
- package/dist/locales/slices/common.en.js +1 -0
- package/dist/locales/slices/common.ru.js +1 -0
- package/dist/locales/slices/confirmDialog.en.js +1 -0
- package/dist/locales/slices/confirmDialog.ru.js +1 -0
- package/dist/locales/slices/customSelect.en.js +1 -0
- package/dist/locales/slices/customSelect.ru.js +1 -0
- package/dist/locales/slices/dateRangeField.en.js +1 -0
- package/dist/locales/slices/dateRangeField.ru.js +1 -0
- package/dist/locales/slices/dayStrip.en.js +1 -0
- package/dist/locales/slices/dayStrip.ru.js +1 -0
- package/dist/locales/slices/fileList.en.js +1 -0
- package/dist/locales/slices/fileList.ru.js +1 -0
- package/dist/locales/slices/imageCrop.en.js +1 -0
- package/dist/locales/slices/imageCrop.ru.js +1 -0
- package/dist/locales/slices/imageGallery.en.js +1 -0
- package/dist/locales/slices/imageGallery.ru.js +1 -0
- package/dist/locales/slices/imageLightbox.en.js +1 -0
- package/dist/locales/slices/imageLightbox.ru.js +1 -0
- package/dist/locales/slices/listbox.en.js +1 -0
- package/dist/locales/slices/listbox.ru.js +1 -0
- package/dist/locales/slices/menu.en.js +1 -0
- package/dist/locales/slices/menu.ru.js +1 -0
- package/dist/locales/slices/modal.en.js +1 -0
- package/dist/locales/slices/modal.ru.js +1 -0
- package/dist/locales/slices/numberField.en.js +1 -0
- package/dist/locales/slices/numberField.ru.js +1 -0
- package/dist/locales/slices/overflow.en.js +1 -0
- package/dist/locales/slices/overflow.ru.js +1 -0
- package/dist/locales/slices/pagination.en.js +1 -0
- package/dist/locales/slices/pagination.ru.js +1 -0
- package/dist/locales/slices/password.en.js +1 -0
- package/dist/locales/slices/password.ru.js +1 -0
- package/dist/locales/slices/pinInput.en.js +1 -0
- package/dist/locales/slices/pinInput.ru.js +1 -0
- package/dist/locales/slices/pullToRefresh.en.js +1 -0
- package/dist/locales/slices/pullToRefresh.ru.js +1 -0
- package/dist/locales/slices/rating.en.js +1 -0
- package/dist/locales/slices/rating.ru.js +1 -0
- package/dist/locales/slices/searchField.en.js +1 -0
- package/dist/locales/slices/searchField.ru.js +1 -0
- package/dist/locales/slices/select.en.js +1 -0
- package/dist/locales/slices/select.ru.js +1 -0
- package/dist/locales/slices/sheet.en.js +1 -0
- package/dist/locales/slices/sheet.ru.js +1 -0
- package/dist/locales/slices/sidebar.en.js +1 -0
- package/dist/locales/slices/sidebar.ru.js +1 -0
- package/dist/locales/slices/skipLink.en.js +1 -0
- package/dist/locales/slices/skipLink.ru.js +1 -0
- package/dist/locales/slices/slider.en.js +1 -0
- package/dist/locales/slices/slider.ru.js +1 -0
- package/dist/locales/slices/sortable.en.js +1 -0
- package/dist/locales/slices/sortable.ru.js +1 -0
- package/dist/locales/slices/spinner.en.js +1 -0
- package/dist/locales/slices/spinner.ru.js +1 -0
- package/dist/locales/slices/steps.en.js +1 -0
- package/dist/locales/slices/steps.ru.js +1 -0
- package/dist/locales/slices/suggestField.en.js +1 -0
- package/dist/locales/slices/suggestField.ru.js +1 -0
- package/dist/locales/slices/table.en.js +1 -0
- package/dist/locales/slices/table.ru.js +1 -0
- package/dist/locales/slices/timeField.en.js +1 -0
- package/dist/locales/slices/timeField.ru.js +1 -0
- package/dist/locales/slices/upload.en.js +1 -0
- package/dist/locales/slices/upload.ru.js +1 -0
- package/dist/locales/slices/virtualList.en.js +1 -0
- package/dist/locales/slices/virtualList.ru.js +1 -0
- package/dist/locales/translate.js +1 -1
- package/dist/shared/form/Form.utils.js +1 -0
- package/dist/shared/form/formRules.js +1 -0
- package/dist/shared/form/formValues.js +1 -0
- package/dist/styles/calendarChrome.module.css.js +1 -1
- package/dist/styles/status.module.css.js +1 -1
- package/dist/styles/toggleBox.module.css.js +1 -1
- package/dist/styles/visuallyHidden.module.css.js +1 -0
- package/dist/utils/autoHeight.js +1 -1
- package/dist/utils/date.js +1 -0
- package/dist/utils/duration.js +1 -0
- package/dist/utils/eventTarget.js +1 -0
- package/dist/utils/fieldMessage.js +1 -0
- package/dist/utils/injectCss.js +1 -1
- package/dist/utils/locale.js +1 -0
- package/dist/utils/plural.js +1 -0
- package/dist/utils/timezone.js +1 -0
- package/dist/utils/visitElementTree.js +1 -1
- package/docs/COMPONENTS.md +18 -16
- package/docs/LAYOUT.md +9 -9
- package/docs/THEMING.md +9 -16
- package/package.json +6 -1
- package/types/entries/hooks.d.ts +61 -13
- package/types/entries/icons.d.ts +3 -1
- package/types/entries/locales.d.ts +275 -0
- package/types/entries/utils.d.ts +71 -8
- package/types/index.d.ts +583 -661
- package/dist/base/ButtonBase/ButtonBase.js +0 -1
- package/dist/base/ButtonBase/ButtonBase.module.css.js +0 -1
- package/dist/base/ChevronButton/ChevronButton.js +0 -1
- package/dist/base/DialogBase/DialogBase.js +0 -1
- package/dist/base/DialogBase/DialogBase.module.css.js +0 -1
- package/dist/base/FieldBase/FieldBase.js +0 -1
- package/dist/base/FieldBase/FieldBase.module.css.js +0 -1
- package/dist/base/TextControl/TextControl.js +0 -1
- package/dist/components/CustomSelect/CustomSelect.Filter.js +0 -1
- package/dist/components/CustomSelect/CustomSelect.List.js +0 -1
- package/dist/components/CustomSelect/CustomSelect.Shell.js +0 -1
- package/dist/components/CustomSelect/CustomSelect.Shell.module.css.js +0 -1
- package/dist/components/CustomSelect/CustomSelect.context.js +0 -1
- package/dist/components/CustomSelect/CustomSelect.js +0 -1
- package/dist/components/CustomSelect/CustomSelect.module.css.js +0 -1
- package/dist/components/CustomSelect/useCustomSelectComboboxKeyboard.js +0 -1
- package/dist/components/FocusTrap/FocusTrap.js +0 -1
- package/dist/components/Overflow/OverflowActionsMode.js +0 -1
- package/dist/components/Overflow/OverflowMeasure.js +0 -1
- package/dist/components/Overflow/OverflowMore.js +0 -1
- package/dist/components/Overlay/Overlay.Dismiss.js +0 -1
- package/dist/components/Overlay/Overlay.Positioner.js +0 -1
- package/dist/components/Overlay/Overlay.types.js +0 -1
- package/dist/components/SortableList/SortableList.types.js +0 -1
- package/dist/components/SortableList/useSortableListDnD.js +0 -1
- package/dist/components/TimeField/TimeField.module.css.js +0 -1
- package/dist/hooks/useDigitMask.js +0 -1
- package/dist/hooks/useFieldControl.js +0 -1
- package/dist/hooks/useOverflowEdges.js +0 -1
- package/dist/hooks/useScrollFocusedChildIntoView.js +0 -1
- package/dist/styles/ControlTrack.module.css.js +0 -1
- package/dist/styles/srOnly.module.css.js +0 -1
- package/dist/utils/controlTrack.js +0 -1
- package/dist/utils/fieldPlaceholder.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{injectCss as
|
|
1
|
+
"use client";import{injectCss as e}from"../utils/injectCss.js";var t=".wQhie{align-items:center;display:flex;gap:var(--altum-g-space-2);justify-content:space-between;min-height:var(--altum-g-space-8,32px)}.XP4XB{color:var(--altum-color-ink-default);font-size:var(--altum-g-font-size-base);font-weight:var(--altum-g-font-weight-semibold);line-height:var(--altum-g-line-height-base);text-align:center}.X109C,.XP4XB{flex:1 1 auto}.njMp-{border-radius:var(--altum-g-radius-sm);transition:var(--altum-transition-smooth)}.njMp-:hover:not(:disabled){background-color:var(--altum-color-option-hover)}.njMp-:focus-visible{outline-offset:-2px}.AmBrO{background-color:var(--altum-color-selection-fill)}.AmBrO,.AmBrO:hover:not(:disabled){color:var(--altum-color-selection-fill-fg)}.AmBrO:hover:not(:disabled){background-color:var(--altum-color-selection-fill-emphasis)}.SZQFN:not(.AmBrO){box-shadow:inset 0 0 0 1px var(--altum-color-brand)}.hHqSW{display:grid;gap:var(--altum-g-space-1);grid-template-columns:repeat(7,1fr);text-align:center}";const a={header:"wQhie",title:"XP4XB",titleSpacer:"X109C",cell:"njMp-",selected:"AmBrO",today:"SZQFN",weekGrid:"hHqSW"};e(t);export{a as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{injectCss as t}from"../utils/injectCss.js";var a=".f6EDo{--altum-status-
|
|
1
|
+
"use client";import{injectCss as t}from"../utils/injectCss.js";var a=".KVEW3,._9J4Mh,.f6EDo,.kxhxS{--altum-status-bg:color-mix(in srgb,var(--altum-status-fill) var(--altum-status-bg-amt,11%),var(--altum-status-bg-base,#0000));--altum-status-border:color-mix(in srgb,var(--altum-status-fill) var(--altum-status-border-amt,34%),#0000);--altum-status-bg-hover:color-mix(in srgb,var(--altum-status-fill) var(--altum-status-bg-hover-amt,18%),var(--altum-status-bg-base,#0000));--altum-status-border-hover:color-mix(in srgb,var(--altum-status-fill) var(--altum-status-border-hover-amt,46%),#0000)}.f6EDo{--altum-status-fill:var(--altum-color-status-success);--altum-status-strong:var(--altum-color-status-success-strong);--altum-status-fg:var(--altum-status-strong)}.kxhxS{--altum-status-fill:var(--altum-color-status-info);--altum-status-strong:var(--altum-color-status-info);--altum-status-fg:var(--altum-status-fill)}.KVEW3{--altum-status-fill:var(--altum-color-status-warning);--altum-status-strong:var(--altum-color-status-warning-strong);--altum-status-fg:var(--altum-status-strong);--altum-status-bg-amt:var(--altum-status-warning-bg-amt,12%);--altum-status-border-amt:var(--altum-status-warning-border-amt,36%);--altum-status-bg-hover-amt:var(--altum-status-warning-bg-hover-amt,20%);--altum-status-border-hover-amt:var(--altum-status-warning-border-hover-amt,48%)}._9J4Mh{--altum-status-fill:var(--altum-color-status-error);--altum-status-strong:var(--altum-color-danger-text-secondary);--altum-status-fg:var(--altum-status-fill);--altum-status-bg-hover-amt:var(--altum-status-danger-bg-hover-amt,18%);--altum-status-border-hover-amt:var(--altum-status-danger-border-hover-amt,46%)}.KVEW3.AI6TD,._9J4Mh.AI6TD,.f6EDo.AI6TD,.kxhxS.AI6TD{background-color:var(--altum-status-bg);border-color:var(--altum-status-border);color:var(--altum-status-fg)}.KOZKu.AI6TD:hover:not(:disabled){background-color:var(--altum-status-bg-hover);border-color:var(--altum-status-border-hover)}._2pTv-{background-color:color-mix(in srgb,var(--altum-status-fill) 28%,#0000);border-color:color-mix(in srgb,var(--altum-status-fill) 70%,#0000)}.w6zDz{background-color:var(--altum-status-fill);color:var(--altum-color-brand-text)}.KVEW3 .yuC6o,._9J4Mh .yuC6o,.f6EDo .yuC6o,.kxhxS .yuC6o,.yuC6o{color:var(--altum-status-strong)}";const s={success:"f6EDo",info:"kxhxS",warning:"KVEW3",error:"_9J4Mh",surface:"AI6TD",clickable:"KOZKu",active:"_2pTv-",fill:"w6zDz",fg:"yuC6o"};t(a);export{s as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{injectCss as o}from"../utils/injectCss.js";var r='._9TRXw[data-align=start] .yMKDd{margin-top:var(--altum-toggle-align-nudge)}._9TRXw:active .sppC0:not(:disabled,[aria-readonly=true])~.yMKDd,._9TRXw:hover .sppC0:not(:checked):not(:disabled,[aria-readonly=true])~.yMKDd{border-color:var(--altum-color-border-hover)}._9TRXw:has(.sppC0[aria-readonly=true]) .yMKDd{background-color:var(--altum-color-control-bg-readonly);border-color:var(--altum-color-control-border-readonly);border-style:dashed}._9TRXw:has(.sppC0[aria-readonly=true]):hover .yMKDd{border-color:var(--altum-color-control-border-readonly)}._9TRXw .sppC0:checked~.yMKDd{background-color:var(--altum-color-control-bg-checked);border-color:var(--altum-color-control-border-checked)}:is(._9TRXw .sppC0:checked~.yMKDd):after{opacity:1}._9TRXw .sppC0:focus-visible~.yMKDd{outline:var(--altum-focus-ring-width) solid var(--altum-focus-ring-color);outline-offset:var(--altum-focus-ring-offset)}.sppC0{appearance:none}.yMKDd{background-color:var(--altum-color-control-bg);border:1px solid var(--altum-color-control-border);box-sizing:border-box;display:inline-block;height:var(--altum-toggle-box-size);position:relative;width:var(--altum-toggle-box-size)}.yMKDd,.yMKDd:after{transition:var(--altum-transition-smooth)}.yMKDd:after{content:"";left:50%;opacity:0;position:absolute;top:50%}@media (prefers-reduced-motion:reduce){.yMKDd,.yMKDd:after{transition:none}}';const
|
|
1
|
+
"use client";import{injectCss as o}from"../utils/injectCss.js";var r='._9TRXw[data-align=start] .yMKDd{margin-top:var(--altum-toggle-align-nudge)}._9TRXw:active .sppC0:not(:disabled,[aria-readonly=true])~.yMKDd,._9TRXw:hover .sppC0:not(:checked):not(:disabled,[aria-readonly=true])~.yMKDd{border-color:var(--altum-color-border-hover)}._9TRXw:has(.sppC0[aria-readonly=true]) .yMKDd{background-color:var(--altum-color-control-bg-readonly);border-color:var(--altum-color-control-border-readonly);border-style:dashed}._9TRXw:has(.sppC0[aria-readonly=true]):hover .yMKDd{border-color:var(--altum-color-control-border-readonly)}._9TRXw .sppC0:checked~.yMKDd{background-color:var(--altum-color-control-bg-checked);border-color:var(--altum-color-control-border-checked)}:is(._9TRXw .sppC0:checked~.yMKDd):after{opacity:1}._9TRXw .sppC0:focus-visible~.yMKDd{outline:var(--altum-focus-ring-width) solid var(--altum-focus-ring-color);outline-offset:var(--altum-focus-ring-offset)}.sppC0{appearance:none}.yMKDd{background-color:var(--altum-color-control-bg);border:1px solid var(--altum-color-control-border);box-sizing:border-box;display:inline-block;flex-shrink:0;height:var(--altum-toggle-box-size);min-height:var(--altum-toggle-box-size);min-width:var(--altum-toggle-box-size);position:relative;width:var(--altum-toggle-box-size)}.yMKDd,.yMKDd:after{transition:var(--altum-transition-smooth)}.yMKDd:after{content:"";left:50%;opacity:0;position:absolute;top:50%}@media (prefers-reduced-motion:reduce){.yMKDd,.yMKDd:after{transition:none}}';const e={root:"_9TRXw",box:"yMKDd",input:"sppC0"};o(r);export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{injectCss as e}from"../utils/injectCss.js";var o=".POwhD{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}";const t={root:"POwhD"};e(o);export{t as default};
|
package/dist/utils/autoHeight.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function n(e,
|
|
1
|
+
function n(e,o={}){const{minHeightPx:t=0,maxHeight:a}=o;e.style.maxHeight=a!==void 0?typeof a=="number"?`${a}px`:a:"",e.style.height="auto";const i=e.scrollHeight,r=parseFloat(getComputedStyle(e).maxHeight),h=Number.isFinite(r)?r:1/0,l=Math.min(Math.max(i,t),h);e.style.height=`${l}px`,e.style.overflowY=i>h?"auto":"hidden"}function p(e,o){const t=getComputedStyle(e),a=parseFloat(t.getPropertyValue("--altum-field-size-height"))||0,i=parseFloat(t.lineHeight)||parseFloat(t.fontSize)*1.25,r=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom),h=parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth),l=r+h+i*o;return o<=1&&a>0?Math.max(l,a):l}export{n as adjustElementHeight,p as getTextareaMinHeightPx};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{localeToBcp47 as l}from"./locale.js";function u(t,e=1){const r=new Date(t),n=r.getDay(),a=e===1?n===0?6:n-1:n;return r.setDate(r.getDate()-a),r.setHours(0,0,0,0),r}function f(t,e=1){const r=u(t,e);return Array.from({length:7},(n,a)=>{const o=new Date(r);return o.setDate(r.getDate()+a),o})}function c(t,e,r){const n=new Date(t.getTime());switch(r){case"minute":n.setMinutes(n.getMinutes()+e);break;case"hour":n.setHours(n.getHours()+e);break;case"day":n.setDate(n.getDate()+e);break;case"week":n.setDate(n.getDate()+e*7);break;case"month":n.setMonth(n.getMonth()+e);break;case"year":n.setFullYear(n.getFullYear()+e);break;default:return r}return n}function s(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function m(t,e){return c(s(t),e,"day")}function d(t,e){return i(t,e)===0}function i(t,e){const r=t.getFullYear()-e.getFullYear();if(r)return r<0?-1:1;const n=t.getMonth()-e.getMonth();if(n)return n<0?-1:1;const a=t.getDate()-e.getDate();return a<0?-1:a>0?1:0}function g(t,e,r){const n=new Date(t,e,r);return n.getFullYear()===t&&n.getMonth()===e&&n.getDate()===r}function h(t){const e=/^(\d{4})-(\d{2})-(\d{2})$/.exec(t);if(!e)return null;const r=Number(e[1]),n=Number(e[2])-1,a=Number(e[3]);return g(r,n,a)?new Date(r,n,a):null}function b(t){const e=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${t.getFullYear()}-${e}-${r}`}function D(t){return(Math.trunc(t)%24+24)%24}function w(t,e){const r=new Date(Date.UTC(2020,0,15,D(t),0,0));return new Intl.DateTimeFormat(l(e),{timeZone:"UTC",hour:"numeric",minute:"2-digit"}).format(r)}function y(t){return`${String(D(t)).padStart(2,"0")}:00`}export{m as addDays,c as addToDate,i as compareDay,w as formatHourLabel,y as formatHourTime,b as formatLocalDate,f as getWeekDays,u as getWeekStart,g as isExistingLocalDate,d as isSameDay,h as parseLocalDate,s as startOfDay};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const i=60,o=3600,t=86400,r=604800,e={minute:60,hour:3600,day:86400,week:604800};function S(n,u){return n/e[u]}function a(n,u){return n*e[u]}function c(n){return n!==0&&n%604800===0?{unit:"week",value:n/604800}:n!==0&&n%86400===0?{unit:"day",value:n/86400}:n!==0&&n%3600===0?{unit:"hour",value:n/3600}:{unit:"minute",value:n/60}}export{t as DAY_SECONDS,o as HOUR_SECONDS,i as MINUTE_SECONDS,r as WEEK_SECONDS,c as getDurationUnitAndValue,S as secondsToUnit,a as unitToSeconds};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const i=["input","textarea","select","a",'[contenteditable="true"]'].join(", "),r=['[role="dialog"]','[role="listbox"]','[role="menu"]','[role="tree"]',"[data-side]"].join(",");function a(e){return`[class*="${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"]`}function s(e){if(typeof HTMLElement>"u"||!(e instanceof HTMLElement))return!1;const{tagName:t}=e;return t==="INPUT"||t==="TEXTAREA"||t==="SELECT"||e.isContentEditable}function l(e,t){return typeof Element>"u"||!(e instanceof Element)||!t?!1:!!e.closest(t)}function c(e,t,n,o){return typeof Node>"u"||!(e instanceof Node)?!0:!(t?.contains(e)||e instanceof Element&&(n&&e.closest(n)||o&&e.closest(a(o))))}export{i as DEFAULT_DRAG_BLOCKED_SELECTOR,r as DEFAULT_PORTAL_SELECTOR,l as isDragBlockedTarget,s as isEditableTarget,c as isOutsideFormInteraction};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function s(r){return typeof r=="string"&&r.length>0}function l(r,d){const{error:i,description:c}=d,e=!!i,o=s(c),t=typeof i=="string"?`${r}-error`:void 0,n=o&&!e?`${r}-description`:void 0,p=[t,n].filter(Boolean).join(" ")||void 0;return{hasError:e,isDescriptionText:o,errorId:t,descriptionId:n,describedBy:p}}export{s as isFieldDescriptionText,l as resolveFieldMessages};
|
package/dist/utils/injectCss.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function n(t){if(typeof document>"u")return;const e=document.createElement("style");e.textContent
|
|
1
|
+
function n(t){if(typeof document>"u")return;const e=document.createElement("style");e.textContent=`@layer altum{${t}}`,document.head.appendChild(e)}export{n as injectCss};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function n(e){return e==="en"?"en-US":"ru-RU"}export{n as localeToBcp47};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function o(u,t,n,l){const e=Math.abs(Math.trunc(u)),a=e%10,r=e%100;return a===1&&r!==11?t:a>=2&&a<=4&&(r<12||r>14)?n:l}function c(u,t,n){return Math.abs(Math.trunc(u))===1?t:n}function f(u,t,n){return u==="en"?c(t,n.one,n.many):o(t,n.one,n.few,n.many)}export{f as plural,c as pluralEn,o as pluralRu};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{localeToBcp47 as m}from"./locale.js";const c=["UTC","Africa/Cairo","Africa/Johannesburg","America/Anchorage","America/Argentina/Buenos_Aires","America/Chicago","America/Denver","America/Los_Angeles","America/Mexico_City","America/New_York","America/Sao_Paulo","Asia/Dubai","Asia/Hong_Kong","Asia/Kolkata","Asia/Shanghai","Asia/Singapore","Asia/Tokyo","Australia/Sydney","Europe/Berlin","Europe/London","Europe/Moscow","Europe/Paris","Pacific/Auckland","Pacific/Honolulu"];function s(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}catch{return"UTC"}}function f(){const e=Intl,t=typeof e.supportedValuesOf=="function"?[...e.supportedValuesOf("timeZone")]:[...c];return t.includes("UTC")||t.unshift("UTC"),t}function l(e){if(!e)return!1;try{return!0}catch{return!1}}function a(e,t){try{const n=new Intl.DateTimeFormat("en-US",{timeZone:t,hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).formatToParts(e),r={};for(const i of n)i.type!=="literal"&&(r[i.type]=i.value);const o=Number(r.hour);return{year:Number(r.year),month:Number(r.month),day:Number(r.day),hour:o===24?0:o,minute:Number(r.minute),second:Number(r.second)}}catch{return null}}function d(e,t=new Date){const n=a(t,e);if(!n)return null;const r=Date.UTC(n.year,n.month-1,n.day,n.hour,n.minute,n.second);return Math.round((r-t.getTime())/6e4)}function y(e,t,n){const r=a(e,n),o=a(t,n);return!r||!o?!1:r.year===o.year&&r.month===o.month&&r.day===o.day}function h(e,t,n,r={}){try{return new Intl.DateTimeFormat(m(n),{...r,timeZone:t}).format(e)}catch{return""}}function u(e,t=new Date){try{return new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"shortOffset"}).formatToParts(t).find(n=>n.type==="timeZoneName")?.value??""}catch{return""}}function A(e){const t=u(e);return t?`${e} (${t})`:e}export{h as formatInTimeZone,A as formatTimezoneLabel,u as formatTimezoneOffset,s as getBrowserTimezone,f as getSupportedTimezones,d as getTimezoneOffsetMinutes,a as getZonedParts,y as isSameZonedDay,l as isValidTimeZone};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Children as
|
|
1
|
+
import{Children as l,isValidElement as u,Fragment as f}from"react";function p(n){return n.type===f}function e(n,i,t=()=>!0){l.forEach(n,r=>{if(!u(r))return;if(p(r)){e(r.props.children,i,t);return}if(i(r),!t(r))return;const o=r.props.children;o!=null&&e(o,i,t)})}export{e as visitElementTree};
|
package/docs/COMPONENTS.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
**Link:** единственный элемент-потомок получает стили через Slot (роутерный `Link`). Смена HTML-тега у кнопок — `as` (`button` | `a`). **`Dropdown`** / **`Popover`**: якорь — `renderTrigger(props, ref)`; **`Tooltip`**: элемент-child или render-prop. Без пропа `asChild`.
|
|
6
6
|
|
|
7
|
-
Оверлеи: кнопки — в `Modal.Footer` / `
|
|
7
|
+
Оверлеи: кнопки — в `Modal.Footer` / `Sheet.Footer`, sibling к `Body`, не внутри скролла. Статус и кнопки в одном ряду — `ControlRow` внутри футера.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
|
|
13
13
|
| Компонент | Описание |
|
|
14
14
|
|-----------|----------|
|
|
15
|
-
| **Button** | Кнопка: `variant` (`primary` / `tinted` / `secondary` / `
|
|
16
|
-
| **ButtonIcon** |
|
|
15
|
+
| **Button** | Кнопка: `variant` (`primary` / `tinted` / `secondary` / `danger` / `danger_tinted` / `ghost` / `link`), `prefix` / `postfix`, `loading`, `fullWidth`. |
|
|
16
|
+
| **ButtonIcon** | Иконка-кнопка на базе **Button**; `circle` / `square`; по умолчанию `variant="ghost"`. |
|
|
17
17
|
| **ButtonGroup** | Составная группа (`ButtonGroup` + `ButtonGroup.Item`): `mode` `button` (независимые, выбранность через `active` на Item) / `toggle` (один выбранный, слайдер) / `multi_toggle` (несколько); `itemFit` `equal` \| `content`; `width` `auto` \| `full`; `variant` / `status` / `size` / `borderless` на Root. |
|
|
18
18
|
| **SegmentedControl** | Обёртка над `ButtonGroup` (`mode="toggle"`, `width="full"`): `options` + `value` / `onChange`; `itemFit` `equal` \| `content`; варианты `primary` / `tinted` / `secondary` (по умолчанию) / `ghost` / `plain`. |
|
|
19
19
|
| **Overflow** | Лишние пункты за ⋯ в `Dropdown`. `Overflow.Item` — панель действий; прочие дети — измерение ширины. `longPress` открывает меню долгим нажатием (хост — **`ActionSheetTrigger`**). |
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
|
|
27
27
|
| Компонент | Описание |
|
|
28
28
|
|-----------|----------|
|
|
29
|
-
| **TextField** |
|
|
29
|
+
| **TextField** | Примитив поля: chrome + `as` (`input` / `textarea` / `button` / `div`). `label` — floating-лейбл; без `label` — поле без подписи (`aria-label` / `placeholder`). `description` — подсказка или слот под chrome. `keepPlaceholder` — не скрывать placeholder при фокусе пустого поля. |
|
|
30
30
|
| **PasswordField** | Пароль на базе TextField: показать/скрыть, опциональный индикатор сложности. |
|
|
31
|
-
| **SearchField** | Обёртка над `TextField` с
|
|
32
|
-
| **TextareaField** | Многострочное поле на **
|
|
31
|
+
| **SearchField** | Обёртка над `TextField` с иконкой поиска (`onClear` от TextField). Без `label` — тулбарный вид. |
|
|
32
|
+
| **TextareaField** | Многострочное поле на **TextField** `as="textarea"`; авто-рост высоты. |
|
|
33
33
|
| **NumberField** | Числовой ввод на базе `TextField` с кнопками +/-. |
|
|
34
34
|
| **MaskedField** | Поле с маской ввода (телефон, дата и т.п.) на базе `TextField`; опционально `maskAsPlaceholder`. Не переопределяйте `padding` / `font-size` на inner `input`. |
|
|
35
|
-
| **PinInput** | PIN / OTP
|
|
35
|
+
| **PinInput** | PIN / OTP: группа ячеек на **TextField**. `label` — **FieldLabel**; `description` / `error` — **FormMessage**. |
|
|
36
36
|
| **Rating** | Оценка звёздами. |
|
|
37
37
|
| **FormMessage** | Подсказка / ошибка / успех под полем; `variant` `hint` / `error` / `success`. |
|
|
38
38
|
| **Select** | Поле выбора: `options`, `value` / `onChange`, `label`, `filterable`; `selectionMode="multiple"` рисует chips. |
|
|
@@ -59,15 +59,16 @@
|
|
|
59
59
|
|
|
60
60
|
| Компонент | Описание |
|
|
61
61
|
|-----------|----------|
|
|
62
|
-
| **
|
|
62
|
+
| **DialogLayout** | Поверхность `Box` с крестиком в правом верхнем углу поверх контента. `onClose`, `showClose`. |
|
|
63
|
+
| **Modal** | Составной диалог: корень — **`DialogLayout`**, шапка / тело / футер — **`Layout`**. `Header` / `Body` / `Footer`. Заголовок — **`Title`**. Ряд действий — **`ControlRow`** внутри `Footer`. `open` / `onOpenChange`, `showClose` на корне. |
|
|
63
64
|
| **ConfirmDialog** | Готовый диалог на **`Modal`**: отмена + подтверждение, `confirmLabel`, `secondaryAction`, `status="danger"`, `onOpenChange`. |
|
|
64
|
-
| **Sheet** | Панель:
|
|
65
|
+
| **Sheet** | Панель: поверхность **`Box`**, шапка / тело / футер — **`Layout`**. `Header` / `Body` / `Footer`. Заголовок — **`Title`**. Крестик — `showClose` на `Header`. `mode` / `direction` / `backdrop` / `showHandle`. |
|
|
65
66
|
| **ImageLightbox** | Полноэкранный просмотр; `open` / `onOpenChange`. |
|
|
66
|
-
| **Dropdown** |
|
|
67
|
+
| **Dropdown** | Список или меню у кнопки, на базе **`Popover`**. Стрелки по пунктам, выбор пункта закрывает панель, клик снаружи тоже. `align`, `widthMode`, `triggerMode` `toggle` \| `combobox`. На мобильных — нижний Sheet. Форма и календарь — **`Popover`**. |
|
|
67
68
|
| **Menu** | Меню действий: клик по `trigger` (Dropdown + ActionList) или `trigger="context"` (ПКМ / Shift+F10 у курсора). |
|
|
68
|
-
| **Tooltip** | Подсказка при наведении / фокусе; триггер — элемент-child или render-prop; `side
|
|
69
|
-
| **Popover** |
|
|
70
|
-
| **CommandPalette** | Палитра Cmd+K: `items` / `groups`, фильтр — **`ActionList`** с `filterable`. |
|
|
69
|
+
| **Tooltip** | Подсказка при наведении / фокусе; триггер — элемент-child или render-prop; `side`, `openDelay` / `closeDelay`, wrap. |
|
|
70
|
+
| **Popover** | Немодальная панель для произвольного контента: текст, форма, фильтры, календарь. Клик внутри не закрывает, `Tab` ходит по полям. Якорь — `renderTrigger`, без корневой обёртки. `trigger` click/hover/manual, `variant` panel/plain, `side` / `align` / `widthMode`. Подсказки — **Tooltip**. |
|
|
71
|
+
| **CommandPalette** | Палитра Cmd+K: поверхность **`Box`**, подпись **`Text`**. `items` / `groups`, фильтр — **`ActionList`** с `filterable`. |
|
|
71
72
|
|
|
72
73
|
---
|
|
73
74
|
|
|
@@ -76,7 +77,7 @@
|
|
|
76
77
|
| Компонент | Описание |
|
|
77
78
|
|-----------|----------|
|
|
78
79
|
| **Pagination** | Постраничная навигация. Без `children` — `Controls`; опционально `totalItems` / `pageSize` / `onPageSizeChange`. Составной: `Summary`, `Controls`, `PageSize`. |
|
|
79
|
-
| **Sidebar** | Составной: `Root`, `Header`, `Title`, `
|
|
80
|
+
| **Sidebar** | Составной: `Root`, `Header`, `Title`, `Content`, `Group`, `GroupLabel`, `Item`, `Footer`, `MobileTrigger`. Шапка, меню и футер — `Layout`. Кнопка сворачивания — на корне, по центру правой границы. `value` / `onChange`; десктопный rail + мобильный Sheet. |
|
|
80
81
|
| **Steps** | Мастер: горизонтальный/вертикальный, статус шага, `onStepClick`. |
|
|
81
82
|
| **Tabs** | Составные вкладки: `Tabs.List` / `Tabs.Trigger` / `Tabs.Panel`; `value` / `defaultValue` / `onChange` (без `defaultValue` вкладка не выбирается сама); `line` / `pill`, горизонтальные/вертикальные и бейдж на Trigger. |
|
|
82
83
|
|
|
@@ -92,7 +93,7 @@
|
|
|
92
93
|
| **Accordion** | `Accordion.Item` с `title` и содержимым в `children`; `flush` (по умолчанию) / `bordered`; `multiple`, отключённый пункт. |
|
|
93
94
|
| **Badge** | `size` sm/md, `position` overlay/standalone, `variant` включая `error`; overlay — `--altum-badge-overhang`. Числовой `label` ограничивается через `max`; `children` — якорь overlay. |
|
|
94
95
|
| **Avatar** / **AvatarGroup** | Размеры `xs`…`xl`, кольцо статуса, запасная иконка; группа с наложением. |
|
|
95
|
-
| **Chip** | Тег / фильтр: `mode` `chip` \| `tag` \| `toggle
|
|
96
|
+
| **Chip** | Тег / фильтр: `mode` `chip` \| `tag` \| `toggle`, `size`, `onRemove` / `onClick`. **`ChipGroup`**: `mode` `chip` \| `tag`, `gap`. |
|
|
96
97
|
| **StatBadge** | Компактный блок статистики: число + подпись; `variant` `default` / `success` / `warning` / `error`; `size` `md` / `sm`. |
|
|
97
98
|
| **EmptyState** | Пустое состояние: иконка (`--altum-color-empty-icon`), заголовок, описание, действие; `size` для вложенных панелей. |
|
|
98
99
|
| **DescriptionList** | Список «ключ — значение» (`stacked` / `inline`, колонки). |
|
|
@@ -137,7 +138,7 @@
|
|
|
137
138
|
| Компонент | Описание |
|
|
138
139
|
|-----------|----------|
|
|
139
140
|
| **ImageGallery** | Галерея: `images`, chrome `default` \| `none`, `showNav` / `showThumbnails` / `showCounter`. |
|
|
140
|
-
| **ImageCrop** | Обрезка изображения. |
|
|
141
|
+
| **ImageCrop** | Обрезка изображения. Корень — **`DialogLayout`**, шапка, сцена и кнопки — **`Layout`**, заголовок — **`Title`**. |
|
|
141
142
|
| **FileList** | Список загрузок на **`Item`**: progress / retry / remove через `FileList.Item`. |
|
|
142
143
|
| **Attachment** | Карточка файла: `Item` + статус загрузки (`idle` / `uploading` / `error` / `done`). Действия в слоте — **`ButtonIcon`**. |
|
|
143
144
|
|
|
@@ -194,4 +195,5 @@
|
|
|
194
195
|
| **ru** / **en** | Встроенные словари. |
|
|
195
196
|
| **useTheme** | Хук `{ theme, setTheme, toggleTheme }` внутри `ThemeProvider`. |
|
|
196
197
|
| **VisuallyHidden** | Контент только для скринридеров (скрыт визуально). |
|
|
198
|
+
| **LiveRegion** | Скрытая область: озвучивает `message`. `politeness` `polite` / `assertive`. Пустое сообщение ничего не рендерит. |
|
|
197
199
|
| **SkipLink** | «Перейти к содержимому» (виден при фокусе). |
|
package/docs/LAYOUT.md
CHANGED
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
} from 'altum';
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
Связанные: **
|
|
22
|
+
Связанные: **TextField** — см. [COMPONENTS.md](./COMPONENTS.md).
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
@@ -32,9 +32,9 @@ import {
|
|
|
32
32
|
| Чипы / теги / мелкие кнопки в ряд с переносом | **Inline** |
|
|
33
33
|
| Слева заголовок, справа действия | **Split** |
|
|
34
34
|
| Поля + Chip + Button в одной строке фильтров | **ControlRow** |
|
|
35
|
-
| Одному ребёнку — `flex: 1` или «не сжимать» | **LayoutItem** (`ControlRow.Item`
|
|
35
|
+
| Одному ребёнку — `flex: 1` или «не сжимать» | **LayoutItem** (`ControlRow.Item`) |
|
|
36
36
|
| Колонки сетки | **Grid** |
|
|
37
|
-
| Оболочка input (label / prefix / clear) | **
|
|
37
|
+
| Оболочка input (label / prefix / clear) | **TextField** |
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
|
|
59
59
|
| Часть | Роль | Ключевые пропсы |
|
|
60
60
|
|-------|------|-----------------|
|
|
61
|
-
| `Layout` | Корень-scrollport (`overflow-y: auto`, flex-колонка) | `as` (
|
|
61
|
+
| `Layout` | Корень-scrollport (`overflow-y: auto`, flex-колонка) | `as`, `padding` (отступ корня), `gap` (между секциями). Оба: `sm` 12px, `md` 16px, `lg` 24px |
|
|
62
62
|
| `Layout.Header` | Шапка | `sticky`, `as="header"` |
|
|
63
63
|
| `Layout.Content` | Середина (без собственного overflow) | `as` |
|
|
64
64
|
| `Layout.Footer` | Низ с действиями | `sticky`, `align` (`start` \| `center` \| `end` \| `space-between`), `as="footer"` |
|
|
@@ -100,11 +100,11 @@ import {
|
|
|
100
100
|
</Layout>
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
###
|
|
103
|
+
### Состав объекта
|
|
104
104
|
|
|
105
|
-
На `Layout`
|
|
105
|
+
На `Layout` висят только `Layout.Header`, `Layout.Content` и `Layout.Footer`.
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
`Inline`, `Split`, `ControlRow` и `LayoutItem` — отдельные компоненты, их импортируют по имени.
|
|
108
108
|
|
|
109
109
|
Также экспортируются: `LayoutRoot`, `LayoutHeader`, `LayoutContent`, `LayoutFooter`.
|
|
110
110
|
|
|
@@ -228,7 +228,7 @@ Flex-ячейка внутри Stack / Inline / Split / ControlRow.
|
|
|
228
228
|
| `grow` | `false` | `flex: 1` — занять оставшееся место |
|
|
229
229
|
| `shrink` | `true` | `false` — кнопка/чип не сжимаются |
|
|
230
230
|
|
|
231
|
-
|
|
231
|
+
Алиас: `ControlRow.Item`.
|
|
232
232
|
|
|
233
233
|
**Использовать:** поле поиска растягивается, кнопка — по контенту; иконка/чип с `shrink={false}`.
|
|
234
234
|
|
|
@@ -279,4 +279,4 @@ Flex-ячейка внутри Stack / Inline / Split / ControlRow.
|
|
|
279
279
|
| `Stack` для чипов в ряд | **Inline** |
|
|
280
280
|
| `div` + `display:flex` + px `gap` | **Stack** / **Inline** с токенами |
|
|
281
281
|
| Оборачивать всё в `LayoutItem` | Только где нужны `grow` / `shrink` |
|
|
282
|
-
| Путать `Layout` и `
|
|
282
|
+
| Путать `Layout` и `TextField` | `Layout` — панель UI; `TextField` — оболочка поля ввода |
|
package/docs/THEMING.md
CHANGED
|
@@ -4,7 +4,7 @@ altum использует **CSS custom properties** для всех дизай
|
|
|
4
4
|
|
|
5
5
|
## Быстрый старт
|
|
6
6
|
|
|
7
|
-
Оберните приложение в `ThemeProvider` (установка — [README](../README.md)). Стили инжектятся из JS — отдельный `styles.css` не нужен. По умолчанию `applyTo="wrapper"`. Для порталов (`Modal`, `Sheet`, выпадающие панели, `Notification`) используйте **`applyTo="document"`**, чтобы классы и `data-theme` попали на `html` / `body
|
|
7
|
+
Оберните приложение в `ThemeProvider` (установка — [README](../README.md)). Стили инжектятся из JS — отдельный `styles.css` не нужен. По умолчанию `applyTo="wrapper"`. Для порталов (`Modal`, `Sheet`, выпадающие панели, `Notification`) используйте **`applyTo="document"`**, чтобы классы и `data-theme` попали на `html` / `body` и не дублировались на обёртке. Тогда переопределение токенов на `body` доходит до детей. Синхронизация идёт в **`useLayoutEffect`**, чтобы первый кадр совпадал с `initialTheme` / контролируемой `theme`.
|
|
8
8
|
|
|
9
9
|
### Контролируемая тема и хранилище
|
|
10
10
|
|
|
@@ -72,7 +72,7 @@ return (
|
|
|
72
72
|
| `--altum-field-width-default` | Макс. ширина поля при `width="md"` (320px) |
|
|
73
73
|
| `--altum-badge-size-sm` / `md` / `--altum-badge-font-size` / `--altum-badge-font-size-sm` | Компактный chrome счётчика (Badge / Tabs); sm-кегль для числового standalone |
|
|
74
74
|
| `--altum-g-space-1` … `--altum-g-space-9` | Шкала отступов (4px … 36px) |
|
|
75
|
-
| `--altum-shadow-
|
|
75
|
+
| `--altum-shadow-surface` / `--altum-shadow-dropdown` / `--altum-shadow-lg` | Тени карточки, выпадающего слоя и глубокого возвышения |
|
|
76
76
|
|
|
77
77
|
### Типографика
|
|
78
78
|
|
|
@@ -97,15 +97,9 @@ return (
|
|
|
97
97
|
|
|
98
98
|
| Переменная | По умолчанию | Назначение |
|
|
99
99
|
|------------|--------------|------------|
|
|
100
|
-
| `--altum-dialog-header-padding` | асимметричный `--altum-g-space-4` / `--altum-g-space-3` | Шапка Modal / Sheet |
|
|
101
|
-
| `--altum-dialog-body-padding` | `--altum-g-space-4` | Тело Modal / Sheet |
|
|
102
|
-
| `--altum-dialog-footer-padding` | асимметричный футер | Футер Modal / Sheet |
|
|
103
|
-
| `--altum-dialog-title-size` | `--altum-g-font-size-lg` | Заголовок диалога |
|
|
104
|
-
| `--altum-dialog-title-weight` | `--altum-g-font-weight-semibold` | Начертание заголовка |
|
|
105
100
|
| `--altum-dialog-body-size` | `--altum-g-font-size-base` | Текст тела диалога |
|
|
106
|
-
| `--altum-dialog-max-width-
|
|
101
|
+
| `--altum-dialog-max-width-md` / `lg` | 500 / 600 | Modal / Sheet |
|
|
107
102
|
| `--altum-dialog-max-height` | 85vh | Максимальная высота Modal |
|
|
108
|
-
| `--altum-list-max-height` | 280px | Область скролла выпадающего списка |
|
|
109
103
|
| `--altum-option-padding-y` / `--altum-option-padding-x` | `--altum-g-space-2` / `--altum-g-space-3` | Внутренние отступы опции списка |
|
|
110
104
|
|
|
111
105
|
### Тоггл / фокус / chrome оверлея
|
|
@@ -131,7 +125,7 @@ return (
|
|
|
131
125
|
| `--altum-button-focus-inner` / `--altum-button-focus-outer` | light 1px / 3px; dark 2px / 4px | Ширины двойного кольца кнопки |
|
|
132
126
|
| `--altum-opacity-disabled` | 0.5 | Отключённые контролы; **Button** — та же заливка × opacity |
|
|
133
127
|
| `--altum-field-disabled-opacity` | 0.8 | Chrome отключённого поля (текст остаётся читаемым) |
|
|
134
|
-
| `--altum-field-
|
|
128
|
+
| `--altum-field-message-gap` | `--altum-g-space-1` | Зазор helper и ошибки |
|
|
135
129
|
| `--altum-form-helper-indent` | `--altum-g-space-1` | Левый отступ helper / ошибки |
|
|
136
130
|
| `--altum-field-placeholder` / `--altum-color-input-placeholder` | `color-mix(… label 88%, transparent)` | Текст плейсхолдера |
|
|
137
131
|
| `--altum-switch-track-width/height/thumb-size-*` | sm/md/lg | Геометрия Switch (из toggle-box + inset) |
|
|
@@ -139,7 +133,6 @@ return (
|
|
|
139
133
|
| `--altum-overlay-close-size` | 28px | Хит-зона закрытия Overlay / Alert / Notification |
|
|
140
134
|
| `--altum-overlay-close-icon-size` | 16px | Кегль × в overlay-close |
|
|
141
135
|
| `--altum-overlay-close-fg` / `--altum-overlay-close-fg-hover` / `--altum-overlay-close-bg` / `--altum-overlay-close-bg-hover` | тема | Голый крестик overlay (Modal / Sheet, `ButtonIcon` `diskClose`); chrome только на hover |
|
|
142
|
-
| `--altum-overlay-arrow-size` | 8px | Стрелка Popover / tooltip |
|
|
143
136
|
| `--altum-badge-overhang` | `space-1` + `control-inset` (6px) | Запас раскладки + смещение overlay-бейджа |
|
|
144
137
|
| `--altum-badge-digit-nudge` | `0.5px` | Сдвиг цифры в круглом **Badge** вниз (оптический центр) |
|
|
145
138
|
| `--altum-slider-track-height` | `3px` | Высота трека **Slider** |
|
|
@@ -240,13 +233,13 @@ return (
|
|
|
240
233
|
|
|
241
234
|
### Опасность / деструктив (`--altum-color-danger-*`)
|
|
242
235
|
|
|
243
|
-
Действия удаления, состояния ошибки. API кнопки: `
|
|
236
|
+
Действия удаления, состояния ошибки. API кнопки: `variant="danger"` (заливка) и `variant="danger_tinted"` (мягкая смывка).
|
|
244
237
|
|
|
245
238
|
| Переменная | Назначение |
|
|
246
239
|
|------------|------------|
|
|
247
240
|
| `--altum-color-danger-bg-solid` | Залитая деструктивная кнопка |
|
|
248
|
-
| `--altum-color-danger-text-secondary` | Текст контурной деструктивной
|
|
249
|
-
| `--altum-color-danger-tint-bg` / `--altum-color-danger-tint-text` | Мягкий tint опасности (`variant="
|
|
241
|
+
| `--altum-color-danger-text-secondary` | Текст контурной деструктивной |
|
|
242
|
+
| `--altum-color-danger-tint-bg` / `--altum-color-danger-tint-text` | Мягкий tint опасности (`variant="danger_tinted"`) |
|
|
250
243
|
|
|
251
244
|
### Контролы формы (`--altum-color-input-*`, `--altum-color-control-*`)
|
|
252
245
|
|
|
@@ -272,10 +265,10 @@ TextField, Checkbox (`mode="task"`), Switch, Radio. Примитивы — ис
|
|
|
272
265
|
| Поле | `--altum-color-field-bg`, `--altum-color-field-border`, `--altum-color-border-hover`, `--altum-color-field-text`, `--altum-field-label` |
|
|
273
266
|
| Кнопка (secondary / tinted / ghost) | `--altum-color-button-secondary-bg`, `--altum-color-button-tinted-border`, `--altum-color-button-ghost-text` (muted, не secondary), `--altum-color-button-ghost-hover-bg` |
|
|
274
267
|
| Chip | `--altum-color-chip-secondary-bg`, `--altum-color-chip-tinted-text` |
|
|
275
|
-
| Segmented | `--altum-color-segmented
|
|
268
|
+
| Segmented | `--altum-color-segmented-ghost-slider-bg`, `--altum-color-segmented-slider-shadow` |
|
|
276
269
|
| Панель | `--altum-color-panel-bg`, `--altum-color-panel-border`, `--altum-color-panel-bg-hover` |
|
|
277
270
|
| Типографика | `--altum-color-type`, `--altum-color-type-secondary`, `--altum-color-type-tertiary`, `--altum-color-type-muted` (`Title` / `Text`) |
|
|
278
|
-
| Ссылка | `--altum-color-link-color`, `--altum-color-link-secondary`, `--altum-color-link-muted`, `--altum-color-link-danger
|
|
271
|
+
| Ссылка | `--altum-color-link-color`, `--altum-color-link-secondary`, `--altum-color-link-muted`, `--altum-color-link-danger`. Фокус — `--altum-focus-ring-color` |
|
|
279
272
|
| Tooltip | `--altum-color-tooltip-bg` / `--altum-color-tooltip-fg` (инверсия ink, не brand-кнопка) |
|
|
280
273
|
| Индикатор Tabs / Pagination | `--altum-color-tabs-indicator` |
|
|
281
274
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "altum",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "Библиотека React + TypeScript UI-компонентов: CSS Modules, токены ThemeProvider, адаптация overlay/sheet.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Alexander <azeeson@gmail.com>",
|
|
@@ -40,6 +40,11 @@
|
|
|
40
40
|
"import": "./dist/entries/icons.js",
|
|
41
41
|
"default": "./dist/entries/icons.js"
|
|
42
42
|
},
|
|
43
|
+
"./locales": {
|
|
44
|
+
"types": "./types/entries/locales.d.ts",
|
|
45
|
+
"import": "./dist/entries/locales.js",
|
|
46
|
+
"default": "./dist/entries/locales.js"
|
|
47
|
+
},
|
|
43
48
|
"./package.json": "./package.json"
|
|
44
49
|
},
|
|
45
50
|
"files": [
|
package/types/entries/hooks.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import { RefObject, PointerEvent, MouseEvent as MouseEvent$1 } from 'react';
|
|
2
|
+
import { RefObject, PointerEvent, MouseEvent as MouseEvent$1, Dispatch, SetStateAction, ReactNode } from 'react';
|
|
3
3
|
|
|
4
4
|
interface UseOutsideClickOptions {
|
|
5
5
|
enabled?: boolean;
|
|
@@ -84,6 +84,62 @@ declare function usePresence(open: boolean, durationMs: number): {
|
|
|
84
84
|
presented: boolean;
|
|
85
85
|
};
|
|
86
86
|
|
|
87
|
+
type FormErrors<T extends Record<string, unknown>> = Partial<Record<keyof T, string>>;
|
|
88
|
+
type FieldValidate<T extends Record<string, unknown>, K extends keyof T> = (value: T[K], values: T) => string | undefined;
|
|
89
|
+
interface RegisterOptions<T extends Record<string, unknown>, K extends keyof T> {
|
|
90
|
+
getValue?: (payload: unknown) => T[K];
|
|
91
|
+
validate?: FieldValidate<T, K>;
|
|
92
|
+
}
|
|
93
|
+
declare function useForm<T extends Record<string, unknown>>(initialValues: T): {
|
|
94
|
+
values: T;
|
|
95
|
+
errors: Partial<Record<keyof T, string>>;
|
|
96
|
+
isDirty: boolean;
|
|
97
|
+
register: <K extends keyof T>(name: K, options?: RegisterOptions<T, K>) => {
|
|
98
|
+
value: T[K];
|
|
99
|
+
onChange: (payload: unknown) => void;
|
|
100
|
+
};
|
|
101
|
+
hasErrors: boolean;
|
|
102
|
+
setValues: Dispatch<SetStateAction<T>>;
|
|
103
|
+
setValue: <K extends keyof T>(name: K, value: T[K]) => void;
|
|
104
|
+
setError: (name: keyof T, message: string) => void;
|
|
105
|
+
clearErrors: (name?: keyof T) => void;
|
|
106
|
+
reset: (next?: T) => void;
|
|
107
|
+
handleSubmit: (onValid: (values: T) => void) => (event?: {
|
|
108
|
+
preventDefault?: () => void;
|
|
109
|
+
}) => void;
|
|
110
|
+
};
|
|
111
|
+
type UseFormReturn<T extends Record<string, unknown>> = ReturnType<typeof useForm<T>>;
|
|
112
|
+
|
|
113
|
+
declare function useFormContext<T extends Record<string, unknown>>(): UseFormReturn<T>;
|
|
114
|
+
declare function useFormProvider<T extends Record<string, unknown>>(initialValues: T): {
|
|
115
|
+
FormProvider: {
|
|
116
|
+
({ children }: {
|
|
117
|
+
children?: ReactNode;
|
|
118
|
+
}): react.FunctionComponentElement<react.ProviderProps<UseFormReturn<Record<string, unknown>> | null>>;
|
|
119
|
+
displayName: string;
|
|
120
|
+
};
|
|
121
|
+
values: T;
|
|
122
|
+
errors: Partial<Record<keyof T, string>>;
|
|
123
|
+
isDirty: boolean;
|
|
124
|
+
register: <K extends keyof T>(name: K, options?: RegisterOptions<T, K> | undefined) => {
|
|
125
|
+
value: T[K];
|
|
126
|
+
onChange: (payload: unknown) => void;
|
|
127
|
+
};
|
|
128
|
+
hasErrors: boolean;
|
|
129
|
+
setValues: react.Dispatch<react.SetStateAction<T>>;
|
|
130
|
+
setValue: <K extends keyof T>(name: K, value: T[K]) => void;
|
|
131
|
+
setError: (name: keyof T, message: string) => void;
|
|
132
|
+
clearErrors: (name?: keyof T | undefined) => void;
|
|
133
|
+
reset: (next?: T | undefined) => void;
|
|
134
|
+
handleSubmit: (onValid: (values: T) => void) => (event?: {
|
|
135
|
+
preventDefault?: (() => void) | undefined;
|
|
136
|
+
}) => void;
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
type FormRule<T extends Record<string, unknown> = Record<string, unknown>> = (value: unknown, values: T) => string | undefined;
|
|
140
|
+
declare function required(message: string): FormRule;
|
|
141
|
+
declare function pattern(regex: RegExp, message: string): FormRule;
|
|
142
|
+
declare function compose<T extends Record<string, unknown> = Record<string, unknown>>(...rules: FormRule<T>[]): FormRule<T>;
|
|
87
143
|
interface ValidationRules {
|
|
88
144
|
required?: string;
|
|
89
145
|
pattern?: {
|
|
@@ -92,16 +148,8 @@ interface ValidationRules {
|
|
|
92
148
|
};
|
|
93
149
|
validate?: (val: unknown) => string | boolean;
|
|
94
150
|
}
|
|
95
|
-
declare function
|
|
96
|
-
|
|
97
|
-
errors: Record<string, string>;
|
|
98
|
-
register: (name: keyof T, rules?: ValidationRules) => {
|
|
99
|
-
value: T[keyof T];
|
|
100
|
-
onChange: (val: unknown) => void;
|
|
101
|
-
};
|
|
102
|
-
hasErrors: boolean;
|
|
103
|
-
setValues: react.Dispatch<react.SetStateAction<T>>;
|
|
104
|
-
};
|
|
151
|
+
declare function fieldRules(rules: ValidationRules): FormRule;
|
|
152
|
+
declare function checkedValue(payload: unknown): boolean;
|
|
105
153
|
|
|
106
|
-
export { MOBILE_MEDIA_QUERY, REDUCED_MOTION_QUERY, useBodyScrollLock, useControlledState, useControlledStateWithCallback, useDocumentKeyDown, useEscapeKey, useFocusRestore, useFocusTrap, useForm, useInertSiblings, useLongPress, useMediaQuery, useNow, useOutsideClick, useOverlay, useOverlayPanel, usePrefersReducedMotion, usePresence };
|
|
107
|
-
export type { DocumentKeyDownTarget, UseDocumentKeyDownOptions, UseEscapeKeyOptions, UseFocusTrapOptions, UseLongPressHandlers, UseLongPressOptions, UseOutsideClickOptions, UseOverlayOptions, UseOverlayPanelOptions, ValidationRules };
|
|
154
|
+
export { MOBILE_MEDIA_QUERY, REDUCED_MOTION_QUERY, checkedValue, compose, fieldRules, pattern, required, useBodyScrollLock, useControlledState, useControlledStateWithCallback, useDocumentKeyDown, useEscapeKey, useFocusRestore, useFocusTrap, useForm, useFormContext, useFormProvider, useInertSiblings, useLongPress, useMediaQuery, useNow, useOutsideClick, useOverlay, useOverlayPanel, usePrefersReducedMotion, usePresence };
|
|
155
|
+
export type { DocumentKeyDownTarget, FieldValidate, FormErrors, FormRule, RegisterOptions, UseDocumentKeyDownOptions, UseEscapeKeyOptions, UseFocusTrapOptions, UseFormReturn, UseLongPressHandlers, UseLongPressOptions, UseOutsideClickOptions, UseOverlayOptions, UseOverlayPanelOptions, ValidationRules };
|
package/types/entries/icons.d.ts
CHANGED
|
@@ -105,6 +105,8 @@ declare const IconChevronRight: react.FC<IconProps>;
|
|
|
105
105
|
|
|
106
106
|
declare const IconChevronUp: react.FC<IconProps>;
|
|
107
107
|
|
|
108
|
+
declare const IconChevronUpDown: react.FC<IconProps>;
|
|
109
|
+
|
|
108
110
|
declare const IconClipboard: react.FC<IconProps>;
|
|
109
111
|
|
|
110
112
|
declare const IconClock: react.FC<IconProps>;
|
|
@@ -411,5 +413,5 @@ declare const IconZoomIn: react.FC<IconProps>;
|
|
|
411
413
|
|
|
412
414
|
declare const IconZoomOut: react.FC<IconProps>;
|
|
413
415
|
|
|
414
|
-
export { IconAlarm, IconAlignCenter, IconAlignJustify, IconAlignLeft, IconAlignRight, IconAnchor, IconArchive, IconArrowDown, IconArrowLeft, IconArrowRight, IconArrowThinDown, IconArrowThinLeft, IconArrowThinRight, IconArrowThinUp, IconArrowUp, IconArticle, IconBackspace, IconBasket, IconBasketball, IconBatteryEmpty, IconBatteryFull, IconBatteryLow, IconBatteryMedium, IconBell, IconBlog, IconBluetooth, IconBold, IconBookmark, IconBookmarks, IconBox, IconBriefcase, IconBrightnessLow, IconBrightnessMax, IconBrightnessMedium, IconBroadcast, IconBrowser, IconBrowserUpload, IconBrush, IconCalendar, IconCamcorder, IconCamera, IconCard, IconCart, IconChecklist, IconCheckmark, IconChevronDown, IconChevronLeft, IconChevronRight, IconChevronUp, IconClipboard, IconClock, IconClockwise, IconCloud, IconCloudDownload, IconCloudUpload, IconCode, IconContract, IconContract2, IconConversation, IconCopy, IconCrop, IconCross, IconCrosshair, IconCutlery, IconDeviceDesktop, IconDeviceMobile, IconDeviceTablet, IconDirection, IconDisc, IconDocument, IconDocumentDelete, IconDocumentEdit, IconDocumentNew, IconDocumentRemove, IconDot, IconDots2, IconDots3, IconDownload, IconDragHandle, IconDuplicate, IconEnter, IconExit, IconExpand, IconExpand2, IconExperiment, IconExport, IconFeed, IconFlag, IconFlashlight, IconFolder, IconFolderOpen, IconForward, IconGaming, IconGear, IconGraduation, IconGraphBar, IconGraphLine, IconGraphPie, IconHeadset, IconHeart, IconHelp, IconHome, IconHourglass, IconInbox, IconInformation, IconItalic, IconJewel, IconLifting, IconLightbulb, IconLink, IconLinkBroken, IconList, IconLoading, IconLocation, IconLock, IconLockOpen, IconMail, IconMap, IconMediaLoop, IconMediaNext, IconMediaPause, IconMediaPlay, IconMediaPrevious, IconMediaRecord, IconMediaShuffle, IconMediaStop, IconMedical, IconMenu, IconMessage, IconMeter, IconMicrophone, IconMinus, IconMonitor, IconMove, IconMusic, IconNetwork1, IconNetwork2, IconNetwork3, IconNetwork4, IconNetwork5, IconPamphlet, IconPaperclip, IconPencil, IconPhone, IconPhoto, IconPhotoGroup, IconPill, IconPin, IconPlus, IconPower, IconPreview, IconPreviewOff, IconPrint, IconPulse, IconQuestion, IconReply, IconReplyAll, IconReturn, IconRetweet, IconRocket, IconScale, IconSearch, IconShoppingBag, IconSkip, IconStack, IconStar, IconStopwatch, IconStore, IconSuitcase, IconSwap, IconTag, IconTagDelete, IconTags, IconThumbsDown, IconThumbsUp, IconTicket, IconTimeReverse, IconToDo, IconToggles, IconTrash, IconTrophy, IconUpload, IconUser, IconUserGroup, IconUserId, IconVibrate, IconViewApps, IconViewList, IconViewListLarge, IconViewThumb, IconVolumeFull, IconVolumeLow, IconVolumeMedium, IconVolumeOff, IconWallet, IconWarning, IconWeb, IconWeight, IconWifi, IconWrong, IconZoomIn, IconZoomOut, createIcon };
|
|
416
|
+
export { IconAlarm, IconAlignCenter, IconAlignJustify, IconAlignLeft, IconAlignRight, IconAnchor, IconArchive, IconArrowDown, IconArrowLeft, IconArrowRight, IconArrowThinDown, IconArrowThinLeft, IconArrowThinRight, IconArrowThinUp, IconArrowUp, IconArticle, IconBackspace, IconBasket, IconBasketball, IconBatteryEmpty, IconBatteryFull, IconBatteryLow, IconBatteryMedium, IconBell, IconBlog, IconBluetooth, IconBold, IconBookmark, IconBookmarks, IconBox, IconBriefcase, IconBrightnessLow, IconBrightnessMax, IconBrightnessMedium, IconBroadcast, IconBrowser, IconBrowserUpload, IconBrush, IconCalendar, IconCamcorder, IconCamera, IconCard, IconCart, IconChecklist, IconCheckmark, IconChevronDown, IconChevronLeft, IconChevronRight, IconChevronUp, IconChevronUpDown, IconClipboard, IconClock, IconClockwise, IconCloud, IconCloudDownload, IconCloudUpload, IconCode, IconContract, IconContract2, IconConversation, IconCopy, IconCrop, IconCross, IconCrosshair, IconCutlery, IconDeviceDesktop, IconDeviceMobile, IconDeviceTablet, IconDirection, IconDisc, IconDocument, IconDocumentDelete, IconDocumentEdit, IconDocumentNew, IconDocumentRemove, IconDot, IconDots2, IconDots3, IconDownload, IconDragHandle, IconDuplicate, IconEnter, IconExit, IconExpand, IconExpand2, IconExperiment, IconExport, IconFeed, IconFlag, IconFlashlight, IconFolder, IconFolderOpen, IconForward, IconGaming, IconGear, IconGraduation, IconGraphBar, IconGraphLine, IconGraphPie, IconHeadset, IconHeart, IconHelp, IconHome, IconHourglass, IconInbox, IconInformation, IconItalic, IconJewel, IconLifting, IconLightbulb, IconLink, IconLinkBroken, IconList, IconLoading, IconLocation, IconLock, IconLockOpen, IconMail, IconMap, IconMediaLoop, IconMediaNext, IconMediaPause, IconMediaPlay, IconMediaPrevious, IconMediaRecord, IconMediaShuffle, IconMediaStop, IconMedical, IconMenu, IconMessage, IconMeter, IconMicrophone, IconMinus, IconMonitor, IconMove, IconMusic, IconNetwork1, IconNetwork2, IconNetwork3, IconNetwork4, IconNetwork5, IconPamphlet, IconPaperclip, IconPencil, IconPhone, IconPhoto, IconPhotoGroup, IconPill, IconPin, IconPlus, IconPower, IconPreview, IconPreviewOff, IconPrint, IconPulse, IconQuestion, IconReply, IconReplyAll, IconReturn, IconRetweet, IconRocket, IconScale, IconSearch, IconShoppingBag, IconSkip, IconStack, IconStar, IconStopwatch, IconStore, IconSuitcase, IconSwap, IconTag, IconTagDelete, IconTags, IconThumbsDown, IconThumbsUp, IconTicket, IconTimeReverse, IconToDo, IconToggles, IconTrash, IconTrophy, IconUpload, IconUser, IconUserGroup, IconUserId, IconVibrate, IconViewApps, IconViewList, IconViewListLarge, IconViewThumb, IconVolumeFull, IconVolumeLow, IconVolumeMedium, IconVolumeOff, IconWallet, IconWarning, IconWeb, IconWeight, IconWifi, IconWrong, IconZoomIn, IconZoomOut, createIcon };
|
|
415
417
|
export type { IconProps };
|