altum 0.0.1

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 (536) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/LICENSE +21 -0
  3. package/README.md +53 -0
  4. package/dist/base/ButtonBase/ButtonBase.js +1 -0
  5. package/dist/base/ButtonBase/ButtonBase.module.css.js +1 -0
  6. package/dist/base/ChartBase/ChartBase.js +1 -0
  7. package/dist/base/ChartBase/ChartBase.module.css.js +1 -0
  8. package/dist/base/ChartBase/ChartBase.utils.js +1 -0
  9. package/dist/base/DialogBase/DialogBase.js +1 -0
  10. package/dist/base/DialogBase/DialogBase.module.css.js +1 -0
  11. package/dist/base/FieldBase/FieldBase.js +1 -0
  12. package/dist/base/FieldBase/FieldBase.module.css.js +1 -0
  13. package/dist/base/ListOptionBase/ListOptionBase.js +1 -0
  14. package/dist/base/ListOptionBase/ListOptionBase.module.css.js +1 -0
  15. package/dist/base/MediaRowBase/MediaRowBase.js +1 -0
  16. package/dist/base/MediaRowBase/MediaRowBase.module.css.js +1 -0
  17. package/dist/base/ToggleControlBase/ToggleControlBase.js +1 -0
  18. package/dist/base/ToggleControlBase/ToggleControlBase.module.css.js +1 -0
  19. package/dist/components/Accordion/Accordion.js +1 -0
  20. package/dist/components/Accordion/Accordion.module.css.js +1 -0
  21. package/dist/components/ActionList/ActionList.js +1 -0
  22. package/dist/components/ActionList/ActionList.module.css.js +1 -0
  23. package/dist/components/ActionSheetTrigger/ActionSheetTrigger.js +1 -0
  24. package/dist/components/ActionSheetTrigger/ActionSheetTrigger.module.css.js +1 -0
  25. package/dist/components/ActionSheetTrigger/actionSheetContext.js +1 -0
  26. package/dist/components/Alert/Alert.js +1 -0
  27. package/dist/components/Alert/Alert.module.css.js +1 -0
  28. package/dist/components/AspectRatio/AspectRatio.js +1 -0
  29. package/dist/components/AspectRatio/AspectRatio.module.css.js +1 -0
  30. package/dist/components/Attachment/Attachment.js +1 -0
  31. package/dist/components/Attachment/Attachment.module.css.js +1 -0
  32. package/dist/components/Avatar/Avatar.js +1 -0
  33. package/dist/components/Avatar/Avatar.module.css.js +1 -0
  34. package/dist/components/Backdrop/Backdrop.js +1 -0
  35. package/dist/components/Backdrop/Backdrop.module.css.js +1 -0
  36. package/dist/components/Badge/Badge.js +1 -0
  37. package/dist/components/Badge/Badge.module.css.js +1 -0
  38. package/dist/components/BarChart/BarChart.js +1 -0
  39. package/dist/components/BarChart/BarChart.module.css.js +1 -0
  40. package/dist/components/Box/Box.js +1 -0
  41. package/dist/components/Box/Box.module.css.js +1 -0
  42. package/dist/components/Bubble/Bubble.js +1 -0
  43. package/dist/components/Bubble/Bubble.module.css.js +1 -0
  44. package/dist/components/Button/Button.js +1 -0
  45. package/dist/components/Button/Button.module.css.js +1 -0
  46. package/dist/components/ButtonGroup/ButtonGroup.js +1 -0
  47. package/dist/components/ButtonGroup/ButtonGroup.module.css.js +1 -0
  48. package/dist/components/ButtonIcon/ButtonIcon.js +1 -0
  49. package/dist/components/ButtonIcon/ButtonIcon.module.css.js +1 -0
  50. package/dist/components/Calendar/Calendar.context.js +1 -0
  51. package/dist/components/Calendar/Calendar.js +1 -0
  52. package/dist/components/Calendar/Calendar.module.css.js +1 -0
  53. package/dist/components/Calendar/Calendar.slots.js +1 -0
  54. package/dist/components/Calendar/Calendar.types.js +1 -0
  55. package/dist/components/Calendar/Calendar.utils.js +1 -0
  56. package/dist/components/Calendar/Calendar.views.js +1 -0
  57. package/dist/components/Calendar/calendar.schedule.js +1 -0
  58. package/dist/components/CalendarBoard/CalendarBoard.EventBar.js +1 -0
  59. package/dist/components/CalendarBoard/CalendarBoard.EventBar.module.css.js +1 -0
  60. package/dist/components/CalendarBoard/CalendarBoard.MonthView.js +1 -0
  61. package/dist/components/CalendarBoard/CalendarBoard.Schedule.js +1 -0
  62. package/dist/components/CalendarBoard/CalendarBoard.Schedule.module.css.js +1 -0
  63. package/dist/components/CalendarBoard/CalendarBoard.Schedule.types.js +1 -0
  64. package/dist/components/CalendarBoard/CalendarBoard.Schedule.utils.js +1 -0
  65. package/dist/components/CalendarBoard/CalendarBoard.ScheduleView.js +1 -0
  66. package/dist/components/CalendarBoard/CalendarBoard.TaskChip.js +1 -0
  67. package/dist/components/CalendarBoard/CalendarBoard.TimedEvent.js +1 -0
  68. package/dist/components/CalendarBoard/CalendarBoard.TimedEvent.module.css.js +1 -0
  69. package/dist/components/CalendarBoard/CalendarBoard.YearView.js +1 -0
  70. package/dist/components/CalendarBoard/CalendarBoard.chrome.js +1 -0
  71. package/dist/components/CalendarBoard/CalendarBoard.context.js +1 -0
  72. package/dist/components/CalendarBoard/CalendarBoard.js +1 -0
  73. package/dist/components/CalendarBoard/CalendarBoard.module.css.js +1 -0
  74. package/dist/components/CalendarBoard/CalendarBoard.utils.js +1 -0
  75. package/dist/components/CalendarBoard/CalendarBoard.views.js +1 -0
  76. package/dist/components/CalendarBoard/calendarBoardHoverStore.js +1 -0
  77. package/dist/components/Card/Card.js +1 -0
  78. package/dist/components/Card/Card.module.css.js +1 -0
  79. package/dist/components/Checkbox/Checkbox.js +1 -0
  80. package/dist/components/Chip/Chip.js +1 -0
  81. package/dist/components/Chip/Chip.module.css.js +1 -0
  82. package/dist/components/Collapse/Collapse.js +1 -0
  83. package/dist/components/Collapse/Collapse.module.css.js +1 -0
  84. package/dist/components/ColorSwatchGroup/ColorSwatchGroup.js +1 -0
  85. package/dist/components/ColorSwatchGroup/ColorSwatchGroup.module.css.js +1 -0
  86. package/dist/components/CommandPalette/CommandPalette.js +1 -0
  87. package/dist/components/CommandPalette/CommandPalette.module.css.js +1 -0
  88. package/dist/components/ConfirmDialog/ConfirmDialog.js +1 -0
  89. package/dist/components/ConfirmDialog/ConfirmDialog.module.css.js +1 -0
  90. package/dist/components/Container/Container.js +1 -0
  91. package/dist/components/Container/Container.module.css.js +1 -0
  92. package/dist/components/ContextMenu/ContextMenu.js +1 -0
  93. package/dist/components/ContextMenu/ContextMenu.module.css.js +1 -0
  94. package/dist/components/CustomSelect/CustomSelect.Filter.js +1 -0
  95. package/dist/components/CustomSelect/CustomSelect.List.js +1 -0
  96. package/dist/components/CustomSelect/CustomSelect.Shell.js +1 -0
  97. package/dist/components/CustomSelect/CustomSelect.Shell.module.css.js +1 -0
  98. package/dist/components/CustomSelect/CustomSelect.context.js +1 -0
  99. package/dist/components/CustomSelect/CustomSelect.js +1 -0
  100. package/dist/components/CustomSelect/CustomSelect.module.css.js +1 -0
  101. package/dist/components/CustomSelect/useCustomSelectComboboxKeyboard.js +1 -0
  102. package/dist/components/DatePicker/DatePicker.js +1 -0
  103. package/dist/components/DatePicker/DatePicker.utils.js +1 -0
  104. package/dist/components/DateRangePicker/DateRangePicker.js +1 -0
  105. package/dist/components/DateRangePicker/DateRangePicker.module.css.js +1 -0
  106. package/dist/components/DayStripCalendar/DayStripCalendar.js +1 -0
  107. package/dist/components/DayStripCalendar/DayStripCalendar.module.css.js +1 -0
  108. package/dist/components/DescriptionList/DescriptionList.js +1 -0
  109. package/dist/components/DescriptionList/DescriptionList.module.css.js +1 -0
  110. package/dist/components/DonutChart/DonutChart.js +1 -0
  111. package/dist/components/DonutChart/DonutChart.module.css.js +1 -0
  112. package/dist/components/Dropdown/Dropdown.js +1 -0
  113. package/dist/components/Dropdown/Dropdown.module.css.js +1 -0
  114. package/dist/components/Dropdown/DropdownMobileSheet.js +1 -0
  115. package/dist/components/DropdownMenu/DropdownMenu.js +1 -0
  116. package/dist/components/EmptyState/EmptyState.js +1 -0
  117. package/dist/components/EmptyState/EmptyState.module.css.js +1 -0
  118. package/dist/components/FieldLabel/FieldLabel.js +1 -0
  119. package/dist/components/FieldLabel/FieldLabel.module.css.js +1 -0
  120. package/dist/components/Fieldset/Fieldset.js +1 -0
  121. package/dist/components/Fieldset/Fieldset.module.css.js +1 -0
  122. package/dist/components/FileList/FileList.js +1 -0
  123. package/dist/components/FileList/FileList.module.css.js +1 -0
  124. package/dist/components/FocusTrap/FocusTrap.js +1 -0
  125. package/dist/components/FormMessage/FormMessage.js +1 -0
  126. package/dist/components/FormMessage/FormMessage.module.css.js +1 -0
  127. package/dist/components/GrabHandle/GrabHandle.js +1 -0
  128. package/dist/components/GrabHandle/GrabHandle.module.css.js +1 -0
  129. package/dist/components/Grid/Grid.js +1 -0
  130. package/dist/components/Grid/Grid.module.css.js +1 -0
  131. package/dist/components/Grid/Grid.utils.js +1 -0
  132. package/dist/components/ImageCrop/ImageCrop.js +1 -0
  133. package/dist/components/ImageCrop/ImageCrop.module.css.js +1 -0
  134. package/dist/components/ImageCrop/ImageCrop.utils.js +1 -0
  135. package/dist/components/ImageGallery/ImageGallery.js +1 -0
  136. package/dist/components/ImageGallery/ImageGallery.module.css.js +1 -0
  137. package/dist/components/ImageLightbox/ImageLightbox.js +1 -0
  138. package/dist/components/ImageLightbox/ImageLightbox.module.css.js +1 -0
  139. package/dist/components/Item/Item.js +1 -0
  140. package/dist/components/Item/Item.module.css.js +1 -0
  141. package/dist/components/Kbd/Kbd.js +1 -0
  142. package/dist/components/Kbd/Kbd.module.css.js +1 -0
  143. package/dist/components/Layout/ControlRow.js +1 -0
  144. package/dist/components/Layout/Inline.js +1 -0
  145. package/dist/components/Layout/Layout.js +1 -0
  146. package/dist/components/Layout/Layout.module.css.js +1 -0
  147. package/dist/components/Layout/Layout.types.js +1 -0
  148. package/dist/components/Layout/LayoutItem.js +1 -0
  149. package/dist/components/Layout/Split.js +1 -0
  150. package/dist/components/Layout/Stack.js +1 -0
  151. package/dist/components/Layout/flexPrimitives.module.css.js +1 -0
  152. package/dist/components/Layout/layoutClasses.js +1 -0
  153. package/dist/components/LineChart/LineChart.js +1 -0
  154. package/dist/components/LineChart/LineChart.module.css.js +1 -0
  155. package/dist/components/Link/Link.js +1 -0
  156. package/dist/components/Link/Link.module.css.js +1 -0
  157. package/dist/components/Listbox/Listbox.js +1 -0
  158. package/dist/components/Listbox/Listbox.module.css.js +1 -0
  159. package/dist/components/LocaleProvider/LocaleProvider.js +1 -0
  160. package/dist/components/Marker/Marker.js +1 -0
  161. package/dist/components/Marker/Marker.module.css.js +1 -0
  162. package/dist/components/MaskedField/MaskedField.js +1 -0
  163. package/dist/components/MaskedField/MaskedField.module.css.js +1 -0
  164. package/dist/components/MaskedField/MaskedField.utils.js +1 -0
  165. package/dist/components/Media/Media.js +1 -0
  166. package/dist/components/Media/Media.module.css.js +1 -0
  167. package/dist/components/Modal/Modal.js +1 -0
  168. package/dist/components/Modal/Modal.module.css.js +1 -0
  169. package/dist/components/Notification/Notification.js +1 -0
  170. package/dist/components/Notification/Notification.module.css.js +1 -0
  171. package/dist/components/Notification/toast.js +1 -0
  172. package/dist/components/NumberField/NumberField.js +1 -0
  173. package/dist/components/NumberField/NumberField.module.css.js +1 -0
  174. package/dist/components/OverflowActions/OverflowActions.js +1 -0
  175. package/dist/components/OverflowActions/OverflowActions.module.css.js +1 -0
  176. package/dist/components/OverflowGroup/OverflowGroup.js +1 -0
  177. package/dist/components/OverflowGroup/OverflowGroup.module.css.js +1 -0
  178. package/dist/components/Overlay/Overlay.Dismiss.js +1 -0
  179. package/dist/components/Overlay/Overlay.Focus.js +1 -0
  180. package/dist/components/Overlay/Overlay.Positioner.js +1 -0
  181. package/dist/components/Overlay/Overlay.Root.js +1 -0
  182. package/dist/components/Overlay/Overlay.js +1 -0
  183. package/dist/components/Overlay/Overlay.module.css.js +1 -0
  184. package/dist/components/Overlay/Overlay.types.js +1 -0
  185. package/dist/components/Pagination/Pagination.js +1 -0
  186. package/dist/components/Pagination/Pagination.module.css.js +1 -0
  187. package/dist/components/PasswordField/PasswordField.js +1 -0
  188. package/dist/components/PasswordField/PasswordField.module.css.js +1 -0
  189. package/dist/components/PinInput/PinInput.js +1 -0
  190. package/dist/components/PinInput/PinInput.module.css.js +1 -0
  191. package/dist/components/Popover/Popover.js +1 -0
  192. package/dist/components/Popover/Popover.module.css.js +1 -0
  193. package/dist/components/Progress/Progress.js +1 -0
  194. package/dist/components/Progress/Progress.module.css.js +1 -0
  195. package/dist/components/PullToRefresh/PullToRefresh.js +1 -0
  196. package/dist/components/PullToRefresh/PullToRefresh.module.css.js +1 -0
  197. package/dist/components/Radio/Radio.js +1 -0
  198. package/dist/components/Rating/Rating.js +1 -0
  199. package/dist/components/Rating/Rating.module.css.js +1 -0
  200. package/dist/components/RelativeTime/RelativeTime.js +1 -0
  201. package/dist/components/SafeArea/SafeArea.js +1 -0
  202. package/dist/components/SafeArea/SafeArea.module.css.js +1 -0
  203. package/dist/components/ScrollArea/ScrollArea.js +1 -0
  204. package/dist/components/ScrollArea/ScrollArea.module.css.js +1 -0
  205. package/dist/components/SearchField/SearchField.js +1 -0
  206. package/dist/components/SearchField/SearchField.module.css.js +1 -0
  207. package/dist/components/SegmentedControl/SegmentedControl.js +1 -0
  208. package/dist/components/SegmentedControl/SegmentedControl.module.css.js +1 -0
  209. package/dist/components/Select/Select.js +1 -0
  210. package/dist/components/Select/Select.module.css.js +1 -0
  211. package/dist/components/SelectionGroup/SelectionGroup.js +1 -0
  212. package/dist/components/SelectionGroup/SelectionGroup.module.css.js +1 -0
  213. package/dist/components/Separator/Separator.js +1 -0
  214. package/dist/components/Separator/Separator.module.css.js +1 -0
  215. package/dist/components/Sheet/Sheet.js +1 -0
  216. package/dist/components/Sheet/Sheet.module.css.js +1 -0
  217. package/dist/components/Sidebar/Sidebar.js +1 -0
  218. package/dist/components/Sidebar/Sidebar.module.css.js +1 -0
  219. package/dist/components/Skeleton/Skeleton.js +1 -0
  220. package/dist/components/Skeleton/Skeleton.module.css.js +1 -0
  221. package/dist/components/SkipLink/SkipLink.js +1 -0
  222. package/dist/components/SkipLink/SkipLink.module.css.js +1 -0
  223. package/dist/components/Slider/Slider.js +1 -0
  224. package/dist/components/Slider/Slider.module.css.js +1 -0
  225. package/dist/components/SortableList/SortableList.js +1 -0
  226. package/dist/components/SortableList/SortableList.module.css.js +1 -0
  227. package/dist/components/SortableList/SortableList.types.js +1 -0
  228. package/dist/components/SortableList/useSortableListDnD.js +1 -0
  229. package/dist/components/Spinner/Spinner.js +1 -0
  230. package/dist/components/Spinner/Spinner.module.css.js +1 -0
  231. package/dist/components/StatBadge/StatBadge.js +1 -0
  232. package/dist/components/StatBadge/StatBadge.module.css.js +1 -0
  233. package/dist/components/Steps/Steps.js +1 -0
  234. package/dist/components/Steps/Steps.module.css.js +1 -0
  235. package/dist/components/SuggestField/SuggestField.js +1 -0
  236. package/dist/components/SuggestField/SuggestField.module.css.js +1 -0
  237. package/dist/components/SwipeToAction/SwipeActionButtons.js +1 -0
  238. package/dist/components/SwipeToAction/SwipeToAction.js +1 -0
  239. package/dist/components/SwipeToAction/SwipeToAction.module.css.js +1 -0
  240. package/dist/components/SwipeToAction/SwipeToAction.utils.js +1 -0
  241. package/dist/components/Switch/Switch.js +1 -0
  242. package/dist/components/Switch/Switch.module.css.js +1 -0
  243. package/dist/components/Table/Table.js +1 -0
  244. package/dist/components/Table/Table.module.css.js +1 -0
  245. package/dist/components/Table/Table.slots.js +1 -0
  246. package/dist/components/Table/TableContext.js +1 -0
  247. package/dist/components/Table/TableRow.js +1 -0
  248. package/dist/components/Table/TableRowActions.js +1 -0
  249. package/dist/components/Table/TableView.js +1 -0
  250. package/dist/components/Tabs/Tabs.js +1 -0
  251. package/dist/components/Tabs/Tabs.module.css.js +1 -0
  252. package/dist/components/Text/Text.js +1 -0
  253. package/dist/components/Text/Text.module.css.js +1 -0
  254. package/dist/components/TextField/TextField.js +1 -0
  255. package/dist/components/TextField/TextField.module.css.js +1 -0
  256. package/dist/components/TextareaField/TextareaField.js +1 -0
  257. package/dist/components/TextareaField/TextareaField.module.css.js +1 -0
  258. package/dist/components/ThemeProvider/ThemeProvider.js +1 -0
  259. package/dist/components/ThemeProvider/ThemeProvider.module.css.js +1 -0
  260. package/dist/components/TimePicker/TimePicker.js +1 -0
  261. package/dist/components/TimePicker/TimePicker.module.css.js +1 -0
  262. package/dist/components/Timeline/Timeline.js +1 -0
  263. package/dist/components/Timeline/Timeline.module.css.js +1 -0
  264. package/dist/components/Title/Title.js +1 -0
  265. package/dist/components/Title/Title.module.css.js +1 -0
  266. package/dist/components/Tooltip/Tooltip.js +1 -0
  267. package/dist/components/Tooltip/Tooltip.module.css.js +1 -0
  268. package/dist/components/UploadZone/UploadZone.js +1 -0
  269. package/dist/components/UploadZone/UploadZone.module.css.js +1 -0
  270. package/dist/components/VirtualList/VirtualList.js +1 -0
  271. package/dist/components/VirtualList/VirtualList.module.css.js +1 -0
  272. package/dist/components/VirtualList/VirtualList.utils.js +1 -0
  273. package/dist/components/VirtualList/VirtualListInner.js +1 -0
  274. package/dist/components/VirtualList/VirtualListItemCell.js +1 -0
  275. package/dist/components/VisuallyHidden/VisuallyHidden.js +1 -0
  276. package/dist/components/VisuallyHidden/VisuallyHidden.module.css.js +1 -0
  277. package/dist/entries/hooks.js +1 -0
  278. package/dist/entries/icons.js +1 -0
  279. package/dist/entries/utils.js +1 -0
  280. package/dist/hooks/useBodyScrollLock.js +1 -0
  281. package/dist/hooks/useControlledState.js +1 -0
  282. package/dist/hooks/useDocumentKeyDown.js +1 -0
  283. package/dist/hooks/useEscapeKey.js +1 -0
  284. package/dist/hooks/useFocusRestore.js +1 -0
  285. package/dist/hooks/useFocusTrap.js +1 -0
  286. package/dist/hooks/useForm.js +1 -0
  287. package/dist/hooks/useInertSiblings.js +1 -0
  288. package/dist/hooks/useLongPress.js +1 -0
  289. package/dist/hooks/useMediaQuery.js +1 -0
  290. package/dist/hooks/useOutsideClick.js +1 -0
  291. package/dist/hooks/useOverlay.js +1 -0
  292. package/dist/hooks/useOverlayPanel.js +1 -0
  293. package/dist/hooks/usePrefersReducedMotion.js +1 -0
  294. package/dist/icons/icons/IconAlarm.js +10 -0
  295. package/dist/icons/icons/IconAlignCenter.js +3 -0
  296. package/dist/icons/icons/IconAlignJustify.js +3 -0
  297. package/dist/icons/icons/IconAlignLeft.js +3 -0
  298. package/dist/icons/icons/IconAlignRight.js +3 -0
  299. package/dist/icons/icons/IconAnchor.js +5 -0
  300. package/dist/icons/icons/IconArchive.js +5 -0
  301. package/dist/icons/icons/IconArrowDown.js +3 -0
  302. package/dist/icons/icons/IconArrowLeft.js +3 -0
  303. package/dist/icons/icons/IconArrowRight.js +3 -0
  304. package/dist/icons/icons/IconArrowThinDown.js +3 -0
  305. package/dist/icons/icons/IconArrowThinLeft.js +2 -0
  306. package/dist/icons/icons/IconArrowThinRight.js +3 -0
  307. package/dist/icons/icons/IconArrowThinUp.js +2 -0
  308. package/dist/icons/icons/IconArrowUp.js +3 -0
  309. package/dist/icons/icons/IconArticle.js +4 -0
  310. package/dist/icons/icons/IconBackspace.js +3 -0
  311. package/dist/icons/icons/IconBasket.js +4 -0
  312. package/dist/icons/icons/IconBasketball.js +7 -0
  313. package/dist/icons/icons/IconBatteryEmpty.js +2 -0
  314. package/dist/icons/icons/IconBatteryFull.js +4 -0
  315. package/dist/icons/icons/IconBatteryLow.js +3 -0
  316. package/dist/icons/icons/IconBatteryMedium.js +3 -0
  317. package/dist/icons/icons/IconBell.js +8 -0
  318. package/dist/icons/icons/IconBlog.js +4 -0
  319. package/dist/icons/icons/IconBluetooth.js +4 -0
  320. package/dist/icons/icons/IconBold.js +3 -0
  321. package/dist/icons/icons/IconBookmark.js +3 -0
  322. package/dist/icons/icons/IconBookmarks.js +4 -0
  323. package/dist/icons/icons/IconBox.js +5 -0
  324. package/dist/icons/icons/IconBriefcase.js +4 -0
  325. package/dist/icons/icons/IconBrightnessLow.js +10 -0
  326. package/dist/icons/icons/IconBrightnessMax.js +9 -0
  327. package/dist/icons/icons/IconBrightnessMedium.js +9 -0
  328. package/dist/icons/icons/IconBroadcast.js +10 -0
  329. package/dist/icons/icons/IconBrowser.js +2 -0
  330. package/dist/icons/icons/IconBrowserUpload.js +5 -0
  331. package/dist/icons/icons/IconBrush.js +7 -0
  332. package/dist/icons/icons/IconCalendar.js +4 -0
  333. package/dist/icons/icons/IconCamcorder.js +3 -0
  334. package/dist/icons/icons/IconCamera.js +8 -0
  335. package/dist/icons/icons/IconCard.js +3 -0
  336. package/dist/icons/icons/IconCart.js +6 -0
  337. package/dist/icons/icons/IconChecklist.js +6 -0
  338. package/dist/icons/icons/IconCheckmark.js +2 -0
  339. package/dist/icons/icons/IconChevronDown.js +2 -0
  340. package/dist/icons/icons/IconChevronLeft.js +2 -0
  341. package/dist/icons/icons/IconChevronRight.js +2 -0
  342. package/dist/icons/icons/IconChevronUp.js +2 -0
  343. package/dist/icons/icons/IconClipboard.js +4 -0
  344. package/dist/icons/icons/IconClock.js +3 -0
  345. package/dist/icons/icons/IconClockwise.js +4 -0
  346. package/dist/icons/icons/IconCloud.js +6 -0
  347. package/dist/icons/icons/IconCloudDownload.js +9 -0
  348. package/dist/icons/icons/IconCloudUpload.js +9 -0
  349. package/dist/icons/icons/IconCode.js +4 -0
  350. package/dist/icons/icons/IconContract.js +8 -0
  351. package/dist/icons/icons/IconContract2.js +4 -0
  352. package/dist/icons/icons/IconConversation.js +7 -0
  353. package/dist/icons/icons/IconCopy.js +5 -0
  354. package/dist/icons/icons/IconCrop.js +6 -0
  355. package/dist/icons/icons/IconCross.js +3 -0
  356. package/dist/icons/icons/IconCrosshair.js +4 -0
  357. package/dist/icons/icons/IconCutlery.js +7 -0
  358. package/dist/icons/icons/IconDeviceDesktop.js +4 -0
  359. package/dist/icons/icons/IconDeviceMobile.js +3 -0
  360. package/dist/icons/icons/IconDeviceTablet.js +3 -0
  361. package/dist/icons/icons/IconDirection.js +3 -0
  362. package/dist/icons/icons/IconDisc.js +8 -0
  363. package/dist/icons/icons/IconDocument.js +5 -0
  364. package/dist/icons/icons/IconDocumentDelete.js +5 -0
  365. package/dist/icons/icons/IconDocumentEdit.js +4 -0
  366. package/dist/icons/icons/IconDocumentNew.js +2 -0
  367. package/dist/icons/icons/IconDocumentRemove.js +3 -0
  368. package/dist/icons/icons/IconDot.js +2 -0
  369. package/dist/icons/icons/IconDots2.js +4 -0
  370. package/dist/icons/icons/IconDots3.js +5 -0
  371. package/dist/icons/icons/IconDownload.js +3 -0
  372. package/dist/icons/icons/IconDragHandle.js +1 -0
  373. package/dist/icons/icons/IconDuplicate.js +3 -0
  374. package/dist/icons/icons/IconEnter.js +4 -0
  375. package/dist/icons/icons/IconExit.js +4 -0
  376. package/dist/icons/icons/IconExpand.js +8 -0
  377. package/dist/icons/icons/IconExpand2.js +4 -0
  378. package/dist/icons/icons/IconExperiment.js +7 -0
  379. package/dist/icons/icons/IconExport.js +6 -0
  380. package/dist/icons/icons/IconFeed.js +6 -0
  381. package/dist/icons/icons/IconFlag.js +6 -0
  382. package/dist/icons/icons/IconFlashlight.js +4 -0
  383. package/dist/icons/icons/IconFolder.js +2 -0
  384. package/dist/icons/icons/IconFolderOpen.js +3 -0
  385. package/dist/icons/icons/IconForward.js +5 -0
  386. package/dist/icons/icons/IconGaming.js +14 -0
  387. package/dist/icons/icons/IconGear.js +21 -0
  388. package/dist/icons/icons/IconGraduation.js +6 -0
  389. package/dist/icons/icons/IconGraphBar.js +3 -0
  390. package/dist/icons/icons/IconGraphLine.js +4 -0
  391. package/dist/icons/icons/IconGraphPie.js +4 -0
  392. package/dist/icons/icons/IconHeadset.js +8 -0
  393. package/dist/icons/icons/IconHeart.js +8 -0
  394. package/dist/icons/icons/IconHelp.js +12 -0
  395. package/dist/icons/icons/IconHome.js +4 -0
  396. package/dist/icons/icons/IconHourglass.js +6 -0
  397. package/dist/icons/icons/IconInbox.js +6 -0
  398. package/dist/icons/icons/IconInformation.js +6 -0
  399. package/dist/icons/icons/IconItalic.js +3 -0
  400. package/dist/icons/icons/IconJewel.js +4 -0
  401. package/dist/icons/icons/IconLifting.js +3 -0
  402. package/dist/icons/icons/IconLightbulb.js +7 -0
  403. package/dist/icons/icons/IconLink.js +6 -0
  404. package/dist/icons/icons/IconLinkBroken.js +8 -0
  405. package/dist/icons/icons/IconList.js +7 -0
  406. package/dist/icons/icons/IconLoading.js +12 -0
  407. package/dist/icons/icons/IconLocation.js +5 -0
  408. package/dist/icons/icons/IconLock.js +2 -0
  409. package/dist/icons/icons/IconLockOpen.js +3 -0
  410. package/dist/icons/icons/IconMail.js +9 -0
  411. package/dist/icons/icons/IconMap.js +8 -0
  412. package/dist/icons/icons/IconMediaLoop.js +3 -0
  413. package/dist/icons/icons/IconMediaNext.js +3 -0
  414. package/dist/icons/icons/IconMediaPause.js +2 -0
  415. package/dist/icons/icons/IconMediaPlay.js +2 -0
  416. package/dist/icons/icons/IconMediaPrevious.js +3 -0
  417. package/dist/icons/icons/IconMediaRecord.js +3 -0
  418. package/dist/icons/icons/IconMediaShuffle.js +8 -0
  419. package/dist/icons/icons/IconMediaStop.js +2 -0
  420. package/dist/icons/icons/IconMedical.js +4 -0
  421. package/dist/icons/icons/IconMenu.js +3 -0
  422. package/dist/icons/icons/IconMessage.js +5 -0
  423. package/dist/icons/icons/IconMeter.js +5 -0
  424. package/dist/icons/icons/IconMicrophone.js +8 -0
  425. package/dist/icons/icons/IconMinus.js +1 -0
  426. package/dist/icons/icons/IconMonitor.js +2 -0
  427. package/dist/icons/icons/IconMove.js +7 -0
  428. package/dist/icons/icons/IconMusic.js +8 -0
  429. package/dist/icons/icons/IconNetwork1.js +6 -0
  430. package/dist/icons/icons/IconNetwork2.js +6 -0
  431. package/dist/icons/icons/IconNetwork3.js +8 -0
  432. package/dist/icons/icons/IconNetwork4.js +7 -0
  433. package/dist/icons/icons/IconNetwork5.js +4 -0
  434. package/dist/icons/icons/IconPamphlet.js +6 -0
  435. package/dist/icons/icons/IconPaperclip.js +5 -0
  436. package/dist/icons/icons/IconPencil.js +4 -0
  437. package/dist/icons/icons/IconPhone.js +7 -0
  438. package/dist/icons/icons/IconPhoto.js +4 -0
  439. package/dist/icons/icons/IconPhotoGroup.js +6 -0
  440. package/dist/icons/icons/IconPill.js +8 -0
  441. package/dist/icons/icons/IconPin.js +8 -0
  442. package/dist/icons/icons/IconPlus.js +2 -0
  443. package/dist/icons/icons/IconPower.js +4 -0
  444. package/dist/icons/icons/IconPreview.js +8 -0
  445. package/dist/icons/icons/IconPreviewOff.js +8 -0
  446. package/dist/icons/icons/IconPrint.js +5 -0
  447. package/dist/icons/icons/IconPulse.js +4 -0
  448. package/dist/icons/icons/IconQuestion.js +6 -0
  449. package/dist/icons/icons/IconReply.js +4 -0
  450. package/dist/icons/icons/IconReplyAll.js +6 -0
  451. package/dist/icons/icons/IconReturn.js +3 -0
  452. package/dist/icons/icons/IconRetweet.js +5 -0
  453. package/dist/icons/icons/IconRocket.js +11 -0
  454. package/dist/icons/icons/IconScale.js +6 -0
  455. package/dist/icons/icons/IconSearch.js +6 -0
  456. package/dist/icons/icons/IconShoppingBag.js +3 -0
  457. package/dist/icons/icons/IconSkip.js +5 -0
  458. package/dist/icons/icons/IconStack.js +5 -0
  459. package/dist/icons/icons/IconStar.js +5 -0
  460. package/dist/icons/icons/IconStopwatch.js +6 -0
  461. package/dist/icons/icons/IconStore.js +6 -0
  462. package/dist/icons/icons/IconSuitcase.js +3 -0
  463. package/dist/icons/icons/IconSwap.js +5 -0
  464. package/dist/icons/icons/IconTag.js +4 -0
  465. package/dist/icons/icons/IconTagDelete.js +5 -0
  466. package/dist/icons/icons/IconTags.js +7 -0
  467. package/dist/icons/icons/IconThumbsDown.js +7 -0
  468. package/dist/icons/icons/IconThumbsUp.js +7 -0
  469. package/dist/icons/icons/IconTicket.js +8 -0
  470. package/dist/icons/icons/IconTimeReverse.js +5 -0
  471. package/dist/icons/icons/IconToDo.js +5 -0
  472. package/dist/icons/icons/IconToggles.js +9 -0
  473. package/dist/icons/icons/IconTrash.js +6 -0
  474. package/dist/icons/icons/IconTrophy.js +7 -0
  475. package/dist/icons/icons/IconUpload.js +4 -0
  476. package/dist/icons/icons/IconUser.js +5 -0
  477. package/dist/icons/icons/IconUserGroup.js +9 -0
  478. package/dist/icons/icons/IconUserId.js +7 -0
  479. package/dist/icons/icons/IconVibrate.js +7 -0
  480. package/dist/icons/icons/IconViewApps.js +14 -0
  481. package/dist/icons/icons/IconViewList.js +5 -0
  482. package/dist/icons/icons/IconViewListLarge.js +6 -0
  483. package/dist/icons/icons/IconViewThumb.js +6 -0
  484. package/dist/icons/icons/IconVolumeFull.js +8 -0
  485. package/dist/icons/icons/IconVolumeLow.js +5 -0
  486. package/dist/icons/icons/IconVolumeMedium.js +6 -0
  487. package/dist/icons/icons/IconVolumeOff.js +6 -0
  488. package/dist/icons/icons/IconWallet.js +5 -0
  489. package/dist/icons/icons/IconWarning.js +4 -0
  490. package/dist/icons/icons/IconWeb.js +12 -0
  491. package/dist/icons/icons/IconWeight.js +3 -0
  492. package/dist/icons/icons/IconWifi.js +7 -0
  493. package/dist/icons/icons/IconWrong.js +3 -0
  494. package/dist/icons/icons/IconZoomIn.js +5 -0
  495. package/dist/icons/icons/IconZoomOut.js +4 -0
  496. package/dist/index.js +1 -0
  497. package/dist/locales/en.js +1 -0
  498. package/dist/locales/localeContext.js +1 -0
  499. package/dist/locales/ru.js +1 -0
  500. package/dist/locales/translate.js +1 -0
  501. package/dist/utils/a11y.js +1 -0
  502. package/dist/utils/anchorPosition.js +1 -0
  503. package/dist/utils/arrayMove.js +1 -0
  504. package/dist/utils/autoHeight.js +1 -0
  505. package/dist/utils/cn.js +1 -0
  506. package/dist/utils/composeEvents.js +1 -0
  507. package/dist/utils/composeRefs.js +1 -0
  508. package/dist/utils/controlTrack.js +1 -0
  509. package/dist/utils/controlTrack.module.css.js +1 -0
  510. package/dist/utils/cssSize.js +1 -0
  511. package/dist/utils/focus.js +1 -0
  512. package/dist/utils/formControl.js +1 -0
  513. package/dist/utils/hoverTriggerGroup.js +1 -0
  514. package/dist/utils/keyboard.js +1 -0
  515. package/dist/utils/keyboardShortcut.js +1 -0
  516. package/dist/utils/listboxOptions.js +1 -0
  517. package/dist/utils/mergeStyles.js +1 -0
  518. package/dist/utils/overlayDismiss.js +1 -0
  519. package/dist/utils/overlayEscapeStack.js +1 -0
  520. package/dist/utils/overlayPurpose.js +1 -0
  521. package/dist/utils/overlayStack.js +1 -0
  522. package/dist/utils/overlayZIndex.js +1 -0
  523. package/dist/utils/portal.js +1 -0
  524. package/dist/utils/renderChildren.js +1 -0
  525. package/dist/utils/slot.js +1 -0
  526. package/dist/utils/spacing.js +1 -0
  527. package/dist/utils/transform.js +1 -0
  528. package/docs/COMPONENTS.md +207 -0
  529. package/docs/ICONS.md +22 -0
  530. package/docs/LAYOUT.md +282 -0
  531. package/docs/THEMING.md +308 -0
  532. package/package.json +127 -0
  533. package/types/entries/hooks.d.ts +329 -0
  534. package/types/entries/icons.d.ts +1621 -0
  535. package/types/entries/utils.d.ts +519 -0
  536. package/types/index.d.ts +6083 -0
@@ -0,0 +1,308 @@
1
+ # Темизация altum-ui
2
+
3
+ altum-ui использует **CSS custom properties** для всех дизайн-токенов. Компоненты ссылаются на переменные вроде `var(--altum-color-brand)` и `var(--altum-color-field-border)` — цвета темы никогда не хардкодятся.
4
+
5
+ ## Быстрый старт
6
+
7
+ Оберните приложение в `ThemeProvider` (установка — [README](../README.md)). Стили инжектятся из JS — отдельный `styles.css` не нужен. По умолчанию `applyTo="wrapper"`. Для порталов (`Modal`, `Sheet`, выпадающие панели, `Notification`) используйте **`applyTo="document"`**, чтобы классы и `data-theme` попали на `html` / `body`. Синхронизация идёт в **`useLayoutEffect`**, чтобы первый кадр совпадал с `initialTheme` / контролируемой `theme`.
8
+
9
+ ### Контролируемая тема и хранилище
10
+
11
+ ```tsx
12
+ const [theme, setTheme] = useState<Theme>(() => readStoredTheme() ?? 'light');
13
+
14
+ return (
15
+ <ThemeProvider theme={theme} onThemeChange={setTheme}>
16
+ <App />
17
+ </ThemeProvider>
18
+ );
19
+ ```
20
+
21
+ Неконтролируемый `initialTheme` — снимок на момент монтирования; если хранилище читается асинхронно, передайте контролируемую `theme` или перемонтируйте с `key={storedTheme}`. Чтобы не было FOUC до гидрации React, задайте `document.documentElement.dataset.theme` (и опциональный класс) небольшим блокирующим inline-скриптом, который читает хранилище.
22
+
23
+ ## Переопределение токенов
24
+
25
+ Переопределяйте переменные на обёртке или `:root` после монтирования `ThemeProvider`. Если в приложении уже есть свои токены — смапьте на них. Переопределяйте только те переменные, которые реально используют ваши компоненты.
26
+
27
+ ```css
28
+ .my-app {
29
+ --altum-color-brand: var(--brand-primary, #2563eb);
30
+ --altum-color-control-text-color: var(--text-secondary, #1e293b);
31
+ --altum-color-input-border-focus: var(--brand-primary, #2563eb);
32
+ --altum-color-bg: var(--surface-page, #ffffff);
33
+ --altum-color-text: #0f172a;
34
+ }
35
+ ```
36
+
37
+ ```tsx
38
+ <ThemeProvider>
39
+ <div className="my-app">
40
+ <YourApp />
41
+ </div>
42
+ </ThemeProvider>
43
+ ```
44
+
45
+ ## Справочник токенов
46
+
47
+ Три слоя, все с префиксом `--altum-`. HEX живёт только в `ThemeProvider`. В приложении переопределяйте семантические токены (`--altum-color-*`); примитивы (`--altum-g-*`) — это шкала.
48
+
49
+ | Слой | Пример | Роль |
50
+ |------|--------|------|
51
+ | Примитив `--altum-g-*` | `--altum-g-space-4`, `--altum-g-color-slate-600` | Сырая шкала (отступы, типографика, радиус, z-index, цвет) |
52
+ | Семантика `--altum-*` | `--altum-color-brand`, `--altum-color-field-border` | Чем рисуют компоненты |
53
+ | Компонент `--altum-[компонент]-*` | `--altum-segmented-height` | Локальный chrome; не примитив ThemeProvider |
54
+
55
+ Не заводите параллельный `--color-accent`. Старые имена без префикса (`--space-*`, `--prm-*`, `--field-*`) сняты — совместимых алиасов нет (см. CHANGELOG).
56
+
57
+ ### Раскладка
58
+
59
+ | Переменная | Назначение |
60
+ |------------|------------|
61
+ | `--altum-g-radius` | Радиус по умолчанию (8px) |
62
+ | `--altum-g-radius-sm` | Малый радиус (4px) |
63
+ | `--altum-g-radius-md` | Алиас `--altum-g-radius` |
64
+ | `--altum-g-radius-lg` | Большой радиус (12px) |
65
+ | `--altum-g-radius-pill` | Радиус «пилюли» / тега (9999px) |
66
+ | `--altum-transition-smooth` | Стандартный переход (`all 0.2s` spring) |
67
+ | `--altum-motion-overlay` | Длительность появления/скрытия оверлея (0.2s) |
68
+ | `--altum-control-height-xs` / `sm` / `md` / `lg` | 28 / 32 / 44 / 52 — лестница высот; публичный `size` контролов — **`sm` \| `md` \| `lg`** (токен `xs` только для раскладки / легаси) |
69
+ | `--altum-control-inset` | 2px — внутренний отступ трека SegmentedControl |
70
+ | `--altum-control-icon-size-sm` / `md` / `lg` | 14 / 18 / 22 — аффиксы полей + иконки ButtonGroup |
71
+ | `--altum-field-pad-top-*` / `--altum-field-pad-bottom-*` | Оптические отступы плавающего лейбла (sm…lg) |
72
+ | `--altum-badge-size-sm` / `md` / `--altum-badge-font-size` / `--altum-badge-font-size-sm` | Компактный chrome счётчика (Badge / Tabs); sm-кегль для числового standalone |
73
+ | `--altum-g-space-1` … `--altum-g-space-9` | Шкала отступов (4px … 36px) |
74
+ | `--altum-shadow-sm` / `--altum-shadow-md` / `--altum-shadow-lg` | Лестница теней (алиасы `--altum-shadow-surface` / `--altum-shadow-dropdown` / deep) |
75
+
76
+ ### Типографика
77
+
78
+ | Переменная | По умолчанию | Назначение |
79
+ |------------|--------------|------------|
80
+ | `--altum-g-font-family-ui` | system-ui, … | UI sans-стек |
81
+ | `--altum-g-font-family-mono` | ui-monospace, … | Моноширинный стек |
82
+ | `--altum-g-font-size-3xs` | 10px | Крошечные лейблы, компактные чипы, бейджи |
83
+ | `--altum-g-font-size-2xs` / `--altum-g-line-height-2xs` | 12px / 1.35 | Компактный UI (чипы md, кнопка sm) |
84
+ | `--altum-g-font-size-xs` / `--altum-g-line-height-xs` | 11px / 1.35 | Сверхмелкий / подпись (`Text` xs); **меньше, чем 2xs** |
85
+ | `--altum-g-font-size-sm` / `--altum-g-line-height-sm` | 13px / 1.35 | Мелкий текст |
86
+ | `--altum-g-font-size-base` / `--altum-g-line-height-base` | 14px / 1.45 | Основной текст |
87
+ | `--altum-g-font-size-lg` / `--altum-g-line-height-lg` | 16px / 1.4 | Крупный текст / заголовок диалога |
88
+ | `--altum-g-font-size-xl` / `--altum-g-line-height-xl` | 18px / 1.35 | Акцент |
89
+ | `--altum-g-font-size-2xl` | 20px | Display (`Title` h3) |
90
+ | `--altum-g-font-size-3xl` | 24px | Display (`Title` h2) |
91
+ | `--altum-g-font-size-4xl` | 32px | Display (`Title` h1) |
92
+ | `--altum-g-font-weight-normal` … `--altum-g-font-weight-bold` | 400–700 | Начертания |
93
+ | `--altum-g-line-height-snug` / `--altum-g-line-height-relaxed` | → xs / base | Алиасы |
94
+
95
+ В компонентах: `font-size: var(--altum-g-font-size-sm); line-height: var(--altum-g-line-height-sm);`.
96
+
97
+ ### Диалог / список / опция
98
+
99
+ | Переменная | По умолчанию | Назначение |
100
+ |------------|--------------|------------|
101
+ | `--altum-dialog-header-padding` | асимметричный `--altum-g-space-4` / `--altum-g-space-3` | Шапка Modal / Sheet |
102
+ | `--altum-dialog-body-padding` | `--altum-g-space-4` | Тело Modal / Sheet |
103
+ | `--altum-dialog-footer-padding` | асимметричный футер | Футер Modal / Sheet |
104
+ | `--altum-dialog-title-size` | `--altum-g-font-size-lg` | Заголовок диалога |
105
+ | `--altum-dialog-title-weight` | `--altum-g-font-weight-semibold` | Начертание заголовка |
106
+ | `--altum-dialog-body-size` | `--altum-g-font-size-base` | Текст тела диалога |
107
+ | `--altum-dialog-max-width-sm` / `md` / `lg` | 420 / 500 / 600 | Modal / Sheet |
108
+ | `--altum-dialog-max-height` | 85vh | Максимальная высота Modal |
109
+ | `--altum-list-max-height` | 280px | Область скролла выпадающего списка |
110
+ | `--altum-option-padding-y` / `--altum-option-padding-x` | `--altum-g-space-2` / `--altum-g-space-3` | Внутренние отступы опции списка |
111
+
112
+ ### Тоггл / фокус / chrome оверлея
113
+
114
+ | Переменная | По умолчанию | Назначение |
115
+ |------------|--------------|------------|
116
+ | `--altum-toggle-box-size-sm` | 16px | Бокс Checkbox / Radio (sm) |
117
+ | `--altum-toggle-box-size` | 20px | Бокс Checkbox / Radio (md) |
118
+ | `--altum-toggle-box-size-lg` | 24px | Бокс Checkbox / Radio (lg) |
119
+ | `--altum-toggle-label-gap` | `--altum-g-space-3` | Зазор между боксом и лейблом (Checkbox / Radio / Switch) |
120
+ | `--altum-toggle-stack-gap` | `--altum-g-space-3` | Вертикальный зазор в стеке контролов |
121
+ | `--altum-toggle-check-width/height/stroke*` | sm/md/lg | Геометрия галочки Checkbox |
122
+ | `--altum-toggle-dash-width/height*` | sm/md/lg | Тире indeterminate Checkbox |
123
+ | `--altum-toggle-task-check-height` | 7px | Высота галочки в режиме task |
124
+ | `--altum-toggle-radio-dot*` | sm/md/lg | Размер внутренней точки Radio |
125
+ | `--altum-toggle-align-nudge` | `0.15em` | Оптическое выравнивание бокса тоггла относительно лейбла |
126
+ | `--altum-rating-size-sm` / `md` / `lg` | 16 / 22 / 28 | Размер SVG-звезды Rating |
127
+ | `--altum-command-palette-max-width` / `height` | 560 / 520 | Ограничение панели CommandPalette |
128
+ | `--altum-button-group-item-min-sm` / `md` / `lg` | space-6 / 7 / 8 | Мин. ширина ButtonGroup.Item |
129
+ | `--altum-focus-ring-width` | 2px | Толщина outline-фокуса (навигация / тогглы / выбор) |
130
+ | `--altum-focus-ring-offset` | 1px | Смещение outline-фокуса (согласовано с кольцом кнопки) |
131
+ | `--altum-focus-ring-color` | → `--altum-color-input-border-focus` | Общий цвет outline-фокуса |
132
+ | `--altum-button-focus-inner` / `--altum-button-focus-outer` | 1px / 3px | Ширины двойного кольца кнопки (алиасы `--altum-color-button-focus-*`) |
133
+ | `--altum-opacity-disabled` | 0.5 | Отключённые контролы |
134
+ | `--altum-field-disabled-opacity` | 0.8 | Chrome отключённого поля (текст остаётся читаемым) |
135
+ | `--altum-field-label-gap` / `--altum-field-message-gap` | `--altum-g-space-1` | Зазор внешнего лейбла / helper+ошибка |
136
+ | `--altum-form-helper-indent` | `--altum-g-space-1` | Левый отступ helper / ошибки |
137
+ | `--altum-field-placeholder` / `--altum-color-input-placeholder` | `color-mix(… label 88%, transparent)` | Текст плейсхолдера |
138
+ | `--altum-switch-track-width/height/thumb-size-*` | sm/md/lg | Геометрия Switch (из toggle-box + inset) |
139
+ | `--altum-switch-track-off` | смесь ink на ctrl-bg | Заливка трека выключенного Switch |
140
+ | `--altum-overlay-close-size` | 28px | Хит-зона закрытия Overlay / Alert / Notification |
141
+ | `--altum-overlay-close-fg` / `--altum-overlay-close-bg` / `--altum-overlay-close-bg-hover` | тема | `ButtonIcon` `diskClose` idle/hover (Modal / Sheet) |
142
+ | `--altum-overlay-arrow-size` | 8px | Стрелка Popover / tooltip |
143
+ | `--altum-badge-overhang` | `space-1` + `control-inset` (6px) | Запас раскладки + смещение overlay-бейджа |
144
+
145
+ ### Статусы (`--altum-color-status-*`)
146
+
147
+ Семантические цвета для уведомлений, текстовых вариантов, ошибок формы, бейджей.
148
+
149
+ | Переменная | Назначение |
150
+ |------------|------------|
151
+ | `--altum-color-status-info` | Информационный |
152
+ | `--altum-color-status-success` / `--altum-color-status-success-strong` | Успех |
153
+ | `--altum-color-status-warning` / `--altum-color-status-warning-strong` | Предупреждение |
154
+ | `--altum-color-status-error` | Ошибки, деструктивный бейдж |
155
+
156
+ ### Оверлеи (`--altum-overlay-*`)
157
+
158
+ | Переменная | Назначение |
159
+ |------------|------------|
160
+ | `--altum-overlay-scrim` | Затемнение Modal / Sheet (`Backdrop` по умолчанию) |
161
+ | `--altum-overlay-scrim-strong` | Затемнение ImageLightbox (`Backdrop variant="strong"`) |
162
+ | `--altum-overlay-on-scrim` | Текст/иконки на тёмном scrim |
163
+ | `--altum-overlay-control-bg` / `--altum-overlay-control-border` | Контролы на scrim |
164
+
165
+ ### Слои z-index (`--altum-g-z-*`)
166
+
167
+ Глобальный порядок стека для портальных оверлеев. Переопределяйте на `:root` или `.themeProvider`, если приложению нужны другие значения.
168
+
169
+ | Переменная | По умолчанию | Кто использует |
170
+ |------------|--------------|----------------|
171
+ | `--altum-g-z-below` | `-1` | Линия-коннектор Steps |
172
+ | `--altum-g-z-raised` | `1` | Слайдер SegmentedControl |
173
+ | `--altum-g-z-raised-above` | `2` | Контент кнопки, контролы NumberField |
174
+ | `--altum-g-z-control` | `5` | Бегунок Slider |
175
+ | `--altum-g-z-local` | `10` | Badge, липкий заголовок таблицы, маска TextField |
176
+ | `--altum-g-z-upload` | `50` | Drag-оверлей UploadZone |
177
+ | `--altum-g-z-overlay` | `1000` | **Sheet** (по умолчанию), портальные панели между chrome и Modal |
178
+ | `--altum-g-z-modal` | `1100` | Modal |
179
+ | `--altum-g-z-tooltip` | `1150` | Tooltip (выше модалки, чтобы подсказки работали в диалогах) |
180
+ | `--altum-g-z-dropdown` | `1200` | Dropdown (выше Modal) |
181
+ | `--altum-g-z-lightbox` | `1250` | ImageLightbox |
182
+ | `--altum-g-z-notification` | `1300` | Тосты Notification; Sheet с `zIndexTier="notification"` |
183
+
184
+ `Overlay` использует **`purpose`** вместо сырых `zIndex` / `sideOffset`:
185
+
186
+ | purpose | z-index | sideOffset |
187
+ |---------|---------|------------|
188
+ | `tooltip` | `--altum-g-z-tooltip` | `--altum-overlay-offset-tooltip` (8px) |
189
+ | `popover` | `--altum-g-z-dropdown` | `--altum-overlay-offset-popover` (8px) |
190
+ | `dropdown` | `--altum-g-z-dropdown` | `--altum-overlay-offset-dropdown` (4px) |
191
+ | `modal` | `--altum-g-z-modal` | — |
192
+ | `sheet` | `--altum-g-z-overlay` | — |
193
+ | `lightbox` | `--altum-g-z-lightbox` | — |
194
+ | `notification` | `--altum-g-z-notification` | — |
195
+
196
+ Переопределение `Sheet`: `zIndexTier` (`overlay` \| `modal` \| `dropdown` \| `lightbox` \| `notification`) или сырой `zIndex`. Меню, открытые внутри приподнятого Sheet, стекаются выше него (`max(--altum-g-z-dropdown, parent + 1)`).
197
+
198
+ ### Акцент (`--altum-color-brand-*`)
199
+
200
+ Основная кнопка (Prominent), активная навигация, прогресс-бары, кольца фокуса.
201
+
202
+ | Переменная | Light по умолчанию |
203
+ |------------|--------------------|
204
+ | `--altum-color-brand` | `#475569` |
205
+ | `--altum-color-brand-hover` | `#334155` |
206
+ | `--altum-color-brand-active` | `#1e293b` |
207
+ | `--altum-color-brand-text` | `#ffffff` |
208
+ | `--altum-color-brand-disabled` / `--altum-color-brand-text-disabled` | Заливка/лейбл отключённой primary (не смывка opacity) |
209
+
210
+ ### Тонированный (`--altum-color-brand-tint-*`)
211
+
212
+ Приглушённый акцентный вариант (Apple-style Tinted / Light): заливка ~12% от акцента, текст остаётся ярким и контрастным. Используется в `Button` / `Chip` / `SegmentedControl` с `variant="tinted"`.
213
+
214
+ | Переменная | Назначение |
215
+ |------------|------------|
216
+ | `--altum-color-brand-tint` | Фон заливки (~12% accent) |
217
+ | `--altum-color-brand-tint-hover` | Hover |
218
+ | `--altum-color-brand-tint-active` | Active / pressed |
219
+ | `--altum-color-brand-tint-text` | Контрастный акцентный текст |
220
+ | `--altum-color-brand-tint-border` | Рамка |
221
+ | `--altum-color-button-border-tinted` | Рамка кнопки |
222
+
223
+ Светлая заливка деструктивной кнопки использует `--altum-color-danger-bg-solid: #dc2626` (WCAG AA с белым текстом).
224
+
225
+ ### Вторичный (`--altum-color-surface`, `--altum-color-border`)
226
+
227
+ Карточки, вторичные кнопки, рамки.
228
+
229
+ | Переменная | Назначение |
230
+ |------------|------------|
231
+ | `--altum-color-surface` | Фон поверхности |
232
+ | `--altum-color-border` | Рамки |
233
+ | `--altum-color-text-secondary` | Приглушённый текст |
234
+
235
+ ### Опасность / деструктив (`--altum-color-danger-*`)
236
+
237
+ Действия удаления, состояния ошибки. API кнопки: `status="danger"` вместе с `variant` (`primary` — заливка, `secondary` — контур по поверхности, `tinted` — мягкая смывка).
238
+
239
+ | Переменная | Назначение |
240
+ |------------|------------|
241
+ | `--altum-color-danger-bg-solid` | Залитая деструктивная кнопка |
242
+ | `--altum-color-danger-text-secondary` | Текст контурной деструктивной (`variant="secondary"`) |
243
+ | `--altum-color-danger-tint-bg` / `--altum-color-danger-tint-text` | Мягкий tint опасности (`variant="tinted"`) |
244
+
245
+ ### Контролы формы (`--altum-color-input-*`, `--altum-color-control-*`)
246
+
247
+ TextField, Checkbox (`mode="task"`), Switch, Radio. Примитивы — исходные значения для слоя элементов ниже.
248
+
249
+ | Переменная | Назначение |
250
+ |------------|------------|
251
+ | `--altum-color-input-bg` | Фон поля |
252
+ | `--altum-color-input-text` | Текст поля |
253
+ | `--altum-color-input-border` | Рамка по умолчанию |
254
+ | `--altum-color-input-border-focus` | Рамка в фокусе |
255
+ | `--altum-color-muted` | Плавающий лейбл (light: `#64748b`, dark: `#94a3b8`) |
256
+ | `--altum-color-control-bg` | Фон checkbox/radio |
257
+ | `--altum-color-control-bg-checked` | Состояние checked |
258
+ | `--altum-color-control-text-color` | Текст лейбла контрола |
259
+
260
+ ### Chrome элементов (`--altum-field-*`, `--altum-color-button-*`, `--altum-color-chip-*`, `--altum-color-segmented-*`, `--altum-color-panel-*`, `--altum-type-*`, `--altum-color-link-*`)
261
+
262
+ Компоненты читают токены **элементов**. Значения по умолчанию — алиасы примитивов выше (визуально без изменений). Адаптивные варианты `Box` (`outlined` / `elevated` / `tinted` / `secondary` / `muted` / `glass` / `overlay`) переопределяют их для потомков через CSS-каскад, а не через React-контекст.
263
+
264
+ | Группа | Примеры |
265
+ |--------|---------|
266
+ | Поле | `--altum-color-field-bg`, `--altum-color-field-border`, `--altum-color-border-hover`, `--altum-color-field-text`, `--altum-field-label` |
267
+ | Кнопка (secondary / tinted / ghost) | `--altum-color-button-secondary-bg`, `--altum-color-button-tinted-border`, `--altum-color-button-ghost-hover-bg` |
268
+ | Chip | `--altum-color-chip-secondary-bg`, `--altum-color-chip-tinted-text` |
269
+ | Segmented | `--altum-color-segmented-*` (алиасы на `--altum-color-button-*`); primary active: `--altum-color-segmented-primary-slider-bg` (в dark контрастнее трека) |
270
+ | Панель | `--altum-color-panel-bg`, `--altum-color-panel-border`, `--altum-color-panel-bg-hover` |
271
+ | Типографика | `--altum-color-type`, `--altum-color-type-secondary`, `--altum-color-type-muted` (`Title` / `Text`) |
272
+ | Ссылка | `--altum-color-link-color`, `--altum-color-link-secondary`, `--altum-color-link-muted`, `--altum-color-link-danger`, `--altum-color-link-focus-ring` |
273
+
274
+ Primary- и danger-кнопки остаются на `--altum-color-brand-*` / `--altum-color-danger-*` (Box их не перемапливает). Ремап типографики/ссылок сильнее всего на `tinted` и `overlay`.
275
+
276
+ ### Поверхности
277
+
278
+ | Переменная | Назначение |
279
+ |------------|------------|
280
+ | `--altum-color-bg` | Фон страницы |
281
+ | `--altum-color-text` | Текст страницы |
282
+ | `--altum-color-dropdown-bg` | Modal, выпадающие панели |
283
+ | `--altum-color-option-hover` | Фоны при наведении |
284
+ | `--altum-color-selection-fill` / `--altum-color-selection-fill-fg` / `--altum-color-selection-fill-emphasis` | Акцентный выбранный chrome (Segmented primary, Chip primary/tinted active) |
285
+ | `--altum-color-selection-neutral-fill` / `--altum-color-selection-neutral-border` / `--altum-color-selection-neutral-slider` | Мягкий выбранный chrome (Segmented secondary, Chip secondary active) |
286
+ | `--altum-color-empty-icon` | Чернила иллюстрации EmptyState (`--altum-color-text-secondary`) |
287
+
288
+ ## Тёмная тема
289
+
290
+ `ThemeProvider` поставляется с классом `.dark`, который перемапливает все токены. Переключение через хук:
291
+
292
+ ```tsx
293
+ import { useTheme } from 'altum-ui';
294
+
295
+ function ThemeToggle() {
296
+ const { theme, toggleTheme } = useTheme();
297
+ return <button onClick={toggleTheme}>{theme === 'light' ? 'Тёмная' : 'Светлая'}</button>;
298
+ }
299
+ ```
300
+
301
+ Системное предпочтение:
302
+
303
+ ```tsx
304
+ const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
305
+ <ThemeProvider initialTheme={prefersDark ? 'dark' : 'light'} />
306
+ ```
307
+
308
+ Тёмная заливка primary (`--altum-color-brand: #6b7f98`) даёт явную affordance относительно modal/sheet (`--altum-color-dropdown-bg: #1e1e24`) и отключённого состояния (`--altum-color-brand-disabled`). Лейбл на заливке остаётся AA (`--altum-color-brand-text: #f8fafc`). Приглушённые / лейбловые чернила в dark (`--altum-color-muted` / `--altum-color-text-secondary`: `#a3b0c2`) и плейсхолдеры (mix 88%) подобраны для читаемых подписей на `--altum-color-bg`. Рамки Checkbox / Radio идут через `--altum-color-control-border` → `--altum-color-input-border`, чтобы тогглы совпадали с chrome полей.
package/package.json ADDED
@@ -0,0 +1,127 @@
1
+ {
2
+ "name": "altum",
3
+ "version": "0.0.1",
4
+ "description": "Библиотека React + TypeScript UI-компонентов: CSS Modules, токены ThemeProvider, адаптация overlay/sheet.",
5
+ "license": "MIT",
6
+ "author": "Alexander <azeeson@gmail.com>",
7
+ "keywords": [
8
+ "react",
9
+ "components",
10
+ "typescript",
11
+ "ui",
12
+ "design-system",
13
+ "css-modules"
14
+ ],
15
+ "engines": {
16
+ "node": ">=18"
17
+ },
18
+ "type": "module",
19
+ "main": "./dist/index.js",
20
+ "module": "./dist/index.js",
21
+ "types": "./types/index.d.ts",
22
+ "exports": {
23
+ ".": {
24
+ "types": "./types/index.d.ts",
25
+ "import": "./dist/index.js",
26
+ "default": "./dist/index.js"
27
+ },
28
+ "./hooks": {
29
+ "types": "./types/entries/hooks.d.ts",
30
+ "import": "./dist/entries/hooks.js",
31
+ "default": "./dist/entries/hooks.js"
32
+ },
33
+ "./utils": {
34
+ "types": "./types/entries/utils.d.ts",
35
+ "import": "./dist/entries/utils.js",
36
+ "default": "./dist/entries/utils.js"
37
+ },
38
+ "./icons": {
39
+ "types": "./types/entries/icons.d.ts",
40
+ "import": "./dist/entries/icons.js",
41
+ "default": "./dist/entries/icons.js"
42
+ },
43
+ "./package.json": "./package.json"
44
+ },
45
+ "files": [
46
+ "dist",
47
+ "types",
48
+ "docs",
49
+ "CHANGELOG.md",
50
+ "README.md",
51
+ "LICENSE"
52
+ ],
53
+ "scripts": {
54
+ "start": "npm run storybook",
55
+ "typecheck": "tsc -p tsconfig.types.json --noEmit",
56
+ "build": "rollup -c rollup.config.mjs && node scripts/bundle-types.mjs && node scripts/cleanup-declaration-artifacts.mjs",
57
+ "prepublishOnly": "npm run lint && npm run lint:css && npm run lint:css-ownership && npm run typecheck && npm run build && npm run pack:check",
58
+ "pack:check": "node scripts/pack-check.mjs",
59
+ "release": "npm test && npm publish",
60
+ "storybook": "storybook dev -p 6006",
61
+ "build-storybook": "storybook build -o dist-storybook",
62
+ "test": "npm run build-storybook && playwright test",
63
+ "test:visual": "npm run build-storybook && playwright test tests/visual",
64
+ "test:behavior": "npm run build-storybook && playwright test tests/behavior",
65
+ "test:update-snapshots": "npm run build-storybook && playwright test --update-snapshots",
66
+ "lint": "eslint .",
67
+ "lint:fix": "eslint . --fix",
68
+ "lint:css": "stylelint \"src/**/*.css\"",
69
+ "lint:css:fix": "stylelint \"src/**/*.css\" --fix && node scripts/fix-css-brace-format.mjs && stylelint \"src/**/*.css\" --fix",
70
+ "lint:css-ownership": "node scripts/audit-css-ownership.mjs",
71
+ "scaffold": "node scripts/scaffold-component.mjs"
72
+ },
73
+ "browserslist": [
74
+ "> 0.5%",
75
+ "last 2 versions",
76
+ "not dead",
77
+ "not op_mini all"
78
+ ],
79
+ "publishConfig": {
80
+ "access": "public"
81
+ },
82
+ "sideEffects": [
83
+ "**/*.module.css.js"
84
+ ],
85
+ "peerDependencies": {
86
+ "react": "^18.0.0 || ^19.0.0",
87
+ "react-dom": "^18.0.0 || ^19.0.0"
88
+ },
89
+ "devDependencies": {
90
+ "@eslint/js": "^9.39.4",
91
+ "@playwright/test": "^1.51.0",
92
+ "@rollup/plugin-node-resolve": "^16.0.3",
93
+ "@storybook/addon-essentials": "^7.0.22",
94
+ "@storybook/react": "^7.0.22",
95
+ "@storybook/react-webpack5": "^7.0.22",
96
+ "@stylistic/eslint-plugin": "^5.10.0",
97
+ "@stylistic/stylelint-plugin": "^5.2.1",
98
+ "@types/react": "^18.3.31",
99
+ "@types/react-dom": "^18.3.7",
100
+ "autoprefixer": "^10.5.4",
101
+ "css-loader": "^6.8.1",
102
+ "esbuild": "^0.25.9",
103
+ "eslint": "^9.39.4",
104
+ "eslint-plugin-react": "^7.37.5",
105
+ "eslint-plugin-react-hooks": "^7.1.1",
106
+ "http-server": "^14.1.1",
107
+ "postcss": "^8.5.24",
108
+ "postcss-nesting": "^14.0.1",
109
+ "react": "^18.3.1",
110
+ "react-dom": "^18.3.1",
111
+ "rollup": "^4.62.2",
112
+ "rollup-plugin-dts": "^6.4.1",
113
+ "rollup-plugin-esbuild": "^6.2.1",
114
+ "rollup-plugin-postcss": "^4.0.2",
115
+ "storybook": "^7.0.22",
116
+ "style-loader": "^3.3.3",
117
+ "stylelint": "^17.14.1",
118
+ "stylelint-order": "^8.1.1",
119
+ "ts-loader": "^9.4.3",
120
+ "typescript": "^5.1.3",
121
+ "typescript-eslint": "^8.62.1",
122
+ "webpack": "^5.109.2"
123
+ },
124
+ "overrides": {
125
+ "webpack": "^5.109.2"
126
+ }
127
+ }