@astryxdesign/core 0.7.8 → 0.7.9-canary.0236bb8

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 (560) hide show
  1. package/dist/AppShell/observeMainOverflow.d.ts.map +1 -1
  2. package/dist/AppShell/observeMainOverflow.js +9 -6
  3. package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
  4. package/dist/BottomSheet/BottomSheet.js +7 -2
  5. package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
  6. package/dist/BottomSheet/BottomSheetPanel.js +40 -8
  7. package/dist/BottomSheet/bottomSheetStack.d.ts.map +1 -1
  8. package/dist/BottomSheet/bottomSheetStack.js +4 -3
  9. package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
  10. package/dist/BottomSheet/useSheetGestures.js +61 -21
  11. package/dist/Calendar/Calendar.d.ts +14 -2
  12. package/dist/Calendar/Calendar.d.ts.map +1 -1
  13. package/dist/Calendar/Calendar.js +63 -74
  14. package/dist/Calendar/getInitialFocusDate.d.ts +4 -1
  15. package/dist/Calendar/getInitialFocusDate.d.ts.map +1 -1
  16. package/dist/Calendar/getInitialFocusDate.js +7 -5
  17. package/dist/Calendar/hooks/useCalendarDays.d.ts +19 -2
  18. package/dist/Calendar/hooks/useCalendarDays.d.ts.map +1 -1
  19. package/dist/Calendar/hooks/useCalendarDays.js +57 -64
  20. package/dist/Calendar/hooks/useCalendarNavigation.d.ts +28 -3
  21. package/dist/Calendar/hooks/useCalendarNavigation.d.ts.map +1 -1
  22. package/dist/Calendar/hooks/useCalendarNavigation.js +33 -22
  23. package/dist/Calendar/styles.d.ts +1 -1
  24. package/dist/CheckboxInput/CheckboxInput.d.ts +2 -1
  25. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  26. package/dist/CheckboxInput/CheckboxInput.js +74 -18
  27. package/dist/CheckboxInput/CheckboxRowPressContext.d.ts +2 -0
  28. package/dist/CheckboxInput/CheckboxRowPressContext.d.ts.map +1 -0
  29. package/dist/CheckboxInput/CheckboxRowPressContext.js +20 -0
  30. package/dist/CheckboxList/CheckboxListItem.d.ts +2 -1
  31. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  32. package/dist/CheckboxList/CheckboxListItem.js +40 -14
  33. package/dist/ClickableCard/ClickableCard.d.ts +1 -1
  34. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  35. package/dist/ClickableCard/ClickableCard.js +5 -1
  36. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  37. package/dist/ContextMenu/ContextMenu.js +2 -0
  38. package/dist/DateInput/DateInput.d.ts +37 -6
  39. package/dist/DateInput/DateInput.d.ts.map +1 -1
  40. package/dist/DateInput/DateInput.js +97 -124
  41. package/dist/DateInput/MonthScroller.d.ts +5 -2
  42. package/dist/DateInput/MonthScroller.d.ts.map +1 -1
  43. package/dist/DateInput/MonthScroller.js +26 -29
  44. package/dist/DateInput/MonthYearWheels.d.ts +10 -1
  45. package/dist/DateInput/MonthYearWheels.d.ts.map +1 -1
  46. package/dist/DateInput/MonthYearWheels.js +54 -42
  47. package/dist/DateInput/PickerWheel.d.ts.map +1 -1
  48. package/dist/DateInput/PickerWheel.js +7 -1
  49. package/dist/DateInput/TouchDateField.d.ts +1 -1
  50. package/dist/DateInput/TouchDateField.d.ts.map +1 -1
  51. package/dist/DateInput/TouchDateField.js +26 -21
  52. package/dist/DateInput/monthGeometry.d.ts +42 -8
  53. package/dist/DateInput/monthGeometry.d.ts.map +1 -1
  54. package/dist/DateInput/monthGeometry.js +81 -7
  55. package/dist/DateInput/useCalendarPresentation.d.ts +10 -0
  56. package/dist/DateInput/useCalendarPresentation.d.ts.map +1 -0
  57. package/dist/DateInput/useCalendarPresentation.js +32 -0
  58. package/dist/DateInput/useTypedDate.d.ts +92 -0
  59. package/dist/DateInput/useTypedDate.d.ts.map +1 -0
  60. package/dist/DateInput/useTypedDate.js +269 -0
  61. package/dist/DateRangeInput/DateRangeInput.d.ts +17 -1
  62. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  63. package/dist/DateRangeInput/DateRangeInput.js +15 -8
  64. package/dist/DateTimeInput/DateTimeInput.d.ts +26 -3
  65. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  66. package/dist/DateTimeInput/DateTimeInput.js +92 -88
  67. package/dist/DateTimeInput/TouchDateTimeField.d.ts +1 -1
  68. package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
  69. package/dist/DateTimeInput/TouchDateTimeField.js +26 -20
  70. package/dist/Dialog/Dialog.d.ts +2 -1
  71. package/dist/Dialog/Dialog.d.ts.map +1 -1
  72. package/dist/Dialog/Dialog.js +14 -3
  73. package/dist/Drawer/useDrawerDialogPresence.d.ts +2 -1
  74. package/dist/Drawer/useDrawerDialogPresence.d.ts.map +1 -1
  75. package/dist/Drawer/useDrawerDialogPresence.js +11 -2
  76. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -1
  77. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  78. package/dist/DropdownMenu/DropdownMenu.js +11 -8
  79. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  80. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +3 -2
  81. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  82. package/dist/DropdownMenu/DropdownMenuItem.js +3 -2
  83. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  84. package/dist/DropdownMenu/DropdownMenuRadioItem.js +3 -2
  85. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  86. package/dist/DropdownMenu/DropdownMenuSubMenu.js +3 -2
  87. package/dist/Field/inputDisabledFocus.d.ts +4 -4
  88. package/dist/Field/inputStyles.stylex.d.ts +1 -1
  89. package/dist/FileInput/FileInput.d.ts.map +1 -1
  90. package/dist/FileInput/FileInput.js +16 -2
  91. package/dist/HoverCard/useHoverCard.d.ts +3 -1
  92. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  93. package/dist/Icon/Icon.d.ts +1 -1
  94. package/dist/InfoTip/InfoTip.d.ts +1 -0
  95. package/dist/InfoTip/InfoTip.d.ts.map +1 -1
  96. package/dist/InfoTip/InfoTip.js +6 -18
  97. package/dist/InputGroup/InputGroup.d.ts +4 -3
  98. package/dist/InputGroup/InputGroup.d.ts.map +1 -1
  99. package/dist/InputGroup/InputGroup.js +2 -2
  100. package/dist/InputGroup/groupStyles.d.ts +1 -1
  101. package/dist/InputGroup/groupStyles.d.ts.map +1 -1
  102. package/dist/InputGroup/groupStyles.js +1 -1
  103. package/dist/Item/Item.d.ts +20 -1
  104. package/dist/Item/Item.d.ts.map +1 -1
  105. package/dist/Item/Item.js +97 -29
  106. package/dist/Item/ItemListRowContext.d.ts +2 -0
  107. package/dist/Item/ItemListRowContext.d.ts.map +1 -0
  108. package/dist/Item/ItemListRowContext.js +16 -0
  109. package/dist/Layer/holdEntranceInput.d.ts +24 -0
  110. package/dist/Layer/holdEntranceInput.d.ts.map +1 -0
  111. package/dist/Layer/holdEntranceInput.js +65 -0
  112. package/dist/Layer/inputHold.d.ts +49 -0
  113. package/dist/Layer/inputHold.d.ts.map +1 -0
  114. package/dist/Layer/inputHold.js +636 -0
  115. package/dist/Layer/outsidePress.d.ts +4 -0
  116. package/dist/Layer/outsidePress.d.ts.map +1 -1
  117. package/dist/Layer/outsidePress.js +18 -1
  118. package/dist/Layer/preserveAnimations.d.ts +1 -5
  119. package/dist/Layer/preserveAnimations.d.ts.map +1 -1
  120. package/dist/Layer/preserveAnimations.js +12 -214
  121. package/dist/Layer/useBackdropPress.d.ts +8 -0
  122. package/dist/Layer/useBackdropPress.d.ts.map +1 -1
  123. package/dist/Layer/useBackdropPress.js +31 -2
  124. package/dist/Layer/useLayer.d.ts +3 -1
  125. package/dist/Layer/useLayer.d.ts.map +1 -1
  126. package/dist/Layer/useLayer.js +64 -4
  127. package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
  128. package/dist/Layer/useTouchTrigger.js +4 -0
  129. package/dist/Layout/LayoutContent.d.ts +3 -1
  130. package/dist/Layout/LayoutContent.d.ts.map +1 -1
  131. package/dist/Layout/LayoutContent.js +12 -4
  132. package/dist/Layout/LayoutPanel.d.ts +13 -10
  133. package/dist/Layout/LayoutPanel.d.ts.map +1 -1
  134. package/dist/Layout/LayoutPanel.js +70 -9
  135. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  136. package/dist/Lightbox/Lightbox.js +4 -0
  137. package/dist/List/List.d.ts.map +1 -1
  138. package/dist/List/List.js +1 -0
  139. package/dist/List/ListItem.d.ts +5 -4
  140. package/dist/List/ListItem.d.ts.map +1 -1
  141. package/dist/List/ListItem.js +45 -9
  142. package/dist/Markdown/parser.d.ts.map +1 -1
  143. package/dist/Markdown/parser.js +56 -39
  144. package/dist/MetadataList/MetadataList.js +1 -1
  145. package/dist/MobileNav/MobileNav.d.ts +11 -1
  146. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  147. package/dist/MobileNav/MobileNav.js +39 -1
  148. package/dist/MoreMenu/MoreMenu.d.ts +5 -3
  149. package/dist/MoreMenu/MoreMenu.d.ts.map +1 -1
  150. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  151. package/dist/MultiSelector/MultiSelector.js +6 -9
  152. package/dist/NumberInput/NumberInput.d.ts +4 -2
  153. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  154. package/dist/NumberInput/NumberInput.js +244 -11
  155. package/dist/Popover/usePopover.d.ts +1 -0
  156. package/dist/Popover/usePopover.d.ts.map +1 -1
  157. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  158. package/dist/PowerSearch/PowerSearch.js +12 -5
  159. package/dist/PowerSearch/PowerSearchBottomSheet.d.ts.map +1 -1
  160. package/dist/PowerSearch/PowerSearchBottomSheet.js +4 -2
  161. package/dist/PowerSearch/PowerSearchToken.d.ts.map +1 -1
  162. package/dist/PowerSearch/PowerSearchToken.js +3 -1
  163. package/dist/PowerSearch/formatFilterValue.d.ts +9 -3
  164. package/dist/PowerSearch/formatFilterValue.d.ts.map +1 -1
  165. package/dist/PowerSearch/formatFilterValue.js +14 -11
  166. package/dist/PowerSearch/formatTokenValue.d.ts +6 -2
  167. package/dist/PowerSearch/formatTokenValue.d.ts.map +1 -1
  168. package/dist/PowerSearch/formatTokenValue.js +6 -3
  169. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  170. package/dist/RadioList/RadioListItem.js +16 -3
  171. package/dist/Resizable/ResizeHandle.d.ts +5 -5
  172. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  173. package/dist/Resizable/ResizeHandle.js +44 -5
  174. package/dist/Resizable/resizablePane.d.ts +58 -0
  175. package/dist/Resizable/resizablePane.d.ts.map +1 -0
  176. package/dist/Resizable/resizablePane.js +137 -0
  177. package/dist/Resizable/useResizable.d.ts +7 -0
  178. package/dist/Resizable/useResizable.d.ts.map +1 -1
  179. package/dist/Resizable/useResizable.js +13 -0
  180. package/dist/SelectableCard/SelectableCard.d.ts +1 -1
  181. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  182. package/dist/SelectableCard/SelectableCard.js +5 -1
  183. package/dist/Selector/Selector.d.ts.map +1 -1
  184. package/dist/Selector/Selector.js +51 -10
  185. package/dist/SideNav/SideNav.d.ts +9 -3
  186. package/dist/SideNav/SideNav.d.ts.map +1 -1
  187. package/dist/SideNav/SideNav.js +45 -10
  188. package/dist/Spinner/Spinner.d.ts.map +1 -1
  189. package/dist/Spinner/Spinner.js +14 -71
  190. package/dist/Spinner/index.d.ts +1 -1
  191. package/dist/Spinner/index.d.ts.map +1 -1
  192. package/dist/Spinner/spinnerRotor.d.ts +28 -0
  193. package/dist/Spinner/spinnerRotor.d.ts.map +1 -0
  194. package/dist/Spinner/spinnerRotor.js +98 -0
  195. package/dist/Stack/StackItem.d.ts +8 -4
  196. package/dist/Stack/StackItem.d.ts.map +1 -1
  197. package/dist/Stack/StackItem.js +17 -4
  198. package/dist/Switch/Switch.d.ts.map +1 -1
  199. package/dist/Switch/Switch.js +13 -10
  200. package/dist/TabList/Tab.d.ts.map +1 -1
  201. package/dist/TabList/Tab.js +5 -1
  202. package/dist/Table/plugins/sortable/useTableSortable.js +1 -1
  203. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  204. package/dist/Timestamp/Timestamp.js +14 -8
  205. package/dist/Timestamp/formatInstant.d.ts +10 -1
  206. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  207. package/dist/Timestamp/formatInstant.js +13 -27
  208. package/dist/Timestamp/tooltipEntries.d.ts +5 -3
  209. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
  210. package/dist/Timestamp/tooltipEntries.js +6 -4
  211. package/dist/Token/Token.d.ts.map +1 -1
  212. package/dist/Token/Token.js +9 -0
  213. package/dist/Token/TokenLink.d.ts +1 -1
  214. package/dist/Token/TokenLink.d.ts.map +1 -1
  215. package/dist/Token/TokenLink.js +4 -1
  216. package/dist/Tokenizer/Tokenizer.d.ts +14 -10
  217. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  218. package/dist/Tokenizer/Tokenizer.js +189 -89
  219. package/dist/Tooltip/useTooltip.d.ts +3 -1
  220. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  221. package/dist/Tooltip/useTooltip.js +164 -59
  222. package/dist/TreeList/TreeListItem.d.ts +2 -1
  223. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  224. package/dist/TreeList/TreeListItem.js +27 -3
  225. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  226. package/dist/Typeahead/BaseTypeahead.js +2 -1
  227. package/dist/astryx.css +362 -325
  228. package/dist/gestures/GestureHost.d.ts +2 -2
  229. package/dist/gestures/GestureHost.d.ts.map +1 -1
  230. package/dist/gestures/GestureHost.js +21 -6
  231. package/dist/gestures/PanGestureRecognizer.d.ts +11 -1
  232. package/dist/gestures/PanGestureRecognizer.d.ts.map +1 -1
  233. package/dist/gestures/PanGestureRecognizer.js +15 -1
  234. package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts +6 -1
  235. package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts.map +1 -1
  236. package/dist/gestures/nativeScroll.d.ts +3 -6
  237. package/dist/gestures/nativeScroll.d.ts.map +1 -1
  238. package/dist/gestures/nativeScroll.js +7 -52
  239. package/dist/gestures/wheelSegmenter.d.ts +68 -1
  240. package/dist/gestures/wheelSegmenter.d.ts.map +1 -1
  241. package/dist/gestures/wheelSegmenter.js +199 -10
  242. package/dist/hooks/StackItemScrollRegion.d.ts +31 -0
  243. package/dist/hooks/StackItemScrollRegion.d.ts.map +1 -0
  244. package/dist/hooks/StackItemScrollRegion.js +40 -0
  245. package/dist/hooks/computeOverflow.d.ts +2 -0
  246. package/dist/hooks/computeOverflow.d.ts.map +1 -1
  247. package/dist/hooks/computeOverflow.js +1 -1
  248. package/dist/hooks/menuPressGesture.d.ts +133 -21
  249. package/dist/hooks/menuPressGesture.d.ts.map +1 -1
  250. package/dist/hooks/menuPressGesture.js +155 -30
  251. package/dist/hooks/menuPressValues.d.ts +16 -0
  252. package/dist/hooks/menuPressValues.d.ts.map +1 -0
  253. package/dist/hooks/menuPressValues.js +18 -0
  254. package/dist/hooks/useClickableContainer.d.ts +36 -7
  255. package/dist/hooks/useClickableContainer.d.ts.map +1 -1
  256. package/dist/hooks/useClickableContainer.js +63 -14
  257. package/dist/hooks/useFocusTrap.d.ts +10 -0
  258. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  259. package/dist/hooks/useFocusTrap.js +225 -132
  260. package/dist/hooks/useKeyboardHighlight.d.ts +17 -0
  261. package/dist/hooks/useKeyboardHighlight.d.ts.map +1 -0
  262. package/dist/hooks/useKeyboardHighlight.js +38 -0
  263. package/dist/hooks/useMediaQuery.d.ts +2 -1
  264. package/dist/hooks/useMediaQuery.d.ts.map +1 -1
  265. package/dist/hooks/useMediaQuery.js +37 -12
  266. package/dist/hooks/useMenuPress.d.ts +34 -1
  267. package/dist/hooks/useMenuPress.d.ts.map +1 -1
  268. package/dist/hooks/useMenuPress.js +93 -5
  269. package/dist/hooks/useOverflow.d.ts.map +1 -1
  270. package/dist/hooks/useOverflow.js +190 -21
  271. package/dist/hooks/usePressFeedback.d.ts +6 -6
  272. package/dist/hooks/usePressFeedback.js +6 -6
  273. package/dist/hooks/useScrollRegionProps.d.ts +35 -0
  274. package/dist/hooks/useScrollRegionProps.d.ts.map +1 -0
  275. package/dist/hooks/useScrollRegionProps.js +51 -0
  276. package/dist/i18n/InternationalizationContext.d.ts +6 -0
  277. package/dist/i18n/InternationalizationContext.d.ts.map +1 -1
  278. package/dist/i18n/InternationalizationProvider.d.ts +23 -3
  279. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  280. package/dist/i18n/InternationalizationProvider.js +8 -3
  281. package/dist/i18n/generated-english/DateInput/DateInput.generated.d.ts.map +1 -1
  282. package/dist/i18n/generated-english/DateInput/DateInput.generated.js +0 -1
  283. package/dist/i18n/generated-english/DateInput/useTypedDate.generated.d.ts +8 -0
  284. package/dist/i18n/generated-english/DateInput/useTypedDate.generated.d.ts.map +1 -0
  285. package/dist/i18n/generated-english/DateInput/useTypedDate.generated.js +16 -0
  286. package/dist/i18n/generated-english/DateTimeInput/DateTimeInput.generated.d.ts.map +1 -1
  287. package/dist/i18n/generated-english/DateTimeInput/DateTimeInput.generated.js +0 -1
  288. package/dist/i18n/generated-english/hooks/useScrollRegionProps.generated.d.ts +8 -0
  289. package/dist/i18n/generated-english/hooks/useScrollRegionProps.generated.d.ts.map +1 -0
  290. package/dist/i18n/generated-english/hooks/useScrollRegionProps.generated.js +12 -0
  291. package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
  292. package/dist/i18n/generated-locales/en.generated.js +5 -0
  293. package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
  294. package/dist/i18n/generated-locales/pseudo.generated.js +5 -0
  295. package/dist/i18n/index.d.ts +2 -0
  296. package/dist/i18n/index.d.ts.map +1 -1
  297. package/dist/i18n/index.js +1 -0
  298. package/dist/i18n/useCalendarSystem.d.ts +19 -0
  299. package/dist/i18n/useCalendarSystem.d.ts.map +1 -0
  300. package/dist/i18n/useCalendarSystem.js +61 -0
  301. package/dist/internal/calendar-system.d.ts +18 -0
  302. package/dist/internal/calendar-system.d.ts.map +1 -0
  303. package/dist/internal/calendar-system.js +19 -0
  304. package/dist/internal/spinner-rotor.d.ts +16 -0
  305. package/dist/internal/spinner-rotor.d.ts.map +1 -0
  306. package/dist/internal/spinner-rotor.js +16 -0
  307. package/dist/internal/touch.d.ts +14 -1
  308. package/dist/internal/touch.d.ts.map +1 -1
  309. package/dist/internal/touch.js +20 -2
  310. package/dist/motion/carryAnimations.d.ts +58 -0
  311. package/dist/motion/carryAnimations.d.ts.map +1 -0
  312. package/dist/motion/carryAnimations.js +305 -0
  313. package/dist/motion/transientCopy.d.ts +4 -2
  314. package/dist/motion/transientCopy.d.ts.map +1 -1
  315. package/dist/motion/transientCopy.js +34 -5
  316. package/dist/motion/uikit/gestures.d.ts +41 -0
  317. package/dist/motion/uikit/gestures.d.ts.map +1 -1
  318. package/dist/motion/uikit/gestures.js +25 -0
  319. package/dist/motion/uikit/index.d.ts +1 -1
  320. package/dist/motion/uikit/index.d.ts.map +1 -1
  321. package/dist/motion/uikit/index.js +1 -1
  322. package/dist/motion/uikit/timing.d.ts +14 -10
  323. package/dist/motion/uikit/timing.d.ts.map +1 -1
  324. package/dist/motion/uikit/timing.js +7 -5
  325. package/dist/privateAttributes/menuPressLit.stylex.d.ts +52 -0
  326. package/dist/privateAttributes/menuPressLit.stylex.d.ts.map +1 -0
  327. package/dist/privateAttributes/menuPressLit.stylex.js +99 -0
  328. package/dist/privateAttributes/press.stylex.d.ts +142 -0
  329. package/dist/privateAttributes/press.stylex.d.ts.map +1 -0
  330. package/dist/privateAttributes/press.stylex.js +101 -0
  331. package/dist/theme/themeMotion.d.ts +3 -2
  332. package/dist/theme/themeMotion.d.ts.map +1 -1
  333. package/dist/theme/themeMotion.js +3 -2
  334. package/dist/theme/tokens.stylex.d.ts +2 -2
  335. package/dist/theme/tokens.stylex.js +1 -1
  336. package/dist/utils/calendarDateParser.d.ts +110 -0
  337. package/dist/utils/calendarDateParser.d.ts.map +1 -0
  338. package/dist/utils/calendarDateParser.js +1225 -0
  339. package/dist/utils/calendarSystem.d.ts +176 -0
  340. package/dist/utils/calendarSystem.d.ts.map +1 -0
  341. package/dist/utils/calendarSystem.js +569 -0
  342. package/dist/utils/coarsePointer.d.ts +5 -0
  343. package/dist/utils/coarsePointer.d.ts.map +1 -1
  344. package/dist/utils/coarsePointer.js +22 -13
  345. package/dist/utils/flatTree.d.ts +6 -3
  346. package/dist/utils/flatTree.d.ts.map +1 -1
  347. package/dist/utils/flatTree.js +13 -3
  348. package/dist/utils/focusReturn.d.ts +10 -2
  349. package/dist/utils/focusReturn.d.ts.map +1 -1
  350. package/dist/utils/focusReturn.js +16 -3
  351. package/dist/utils/hitArea.d.ts +8 -1
  352. package/dist/utils/hitArea.d.ts.map +1 -1
  353. package/dist/utils/hitArea.js +99 -9
  354. package/dist/utils/inputPresentation.d.ts +9 -1
  355. package/dist/utils/inputPresentation.d.ts.map +1 -1
  356. package/dist/utils/inputPresentation.js +15 -1
  357. package/dist/utils/inputStream.d.ts +14 -1
  358. package/dist/utils/inputStream.d.ts.map +1 -1
  359. package/dist/utils/inputStream.js +40 -9
  360. package/dist/utils/interactionOverlay.stylex.d.ts +5 -9
  361. package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
  362. package/dist/utils/interactionOverlay.stylex.js +29 -31
  363. package/dist/utils/plainDate.d.ts +38 -7
  364. package/dist/utils/plainDate.d.ts.map +1 -1
  365. package/dist/utils/plainDate.js +92 -18
  366. package/dist/utils/pressFeedback.d.ts +10 -2
  367. package/dist/utils/pressFeedback.d.ts.map +1 -1
  368. package/dist/utils/pressFeedback.js +40 -15
  369. package/dist/utils/pressGesture.d.ts +12 -6
  370. package/dist/utils/pressGesture.d.ts.map +1 -1
  371. package/dist/utils/pressGesture.js +26 -8
  372. package/dist/utils/scrollView.d.ts +25 -0
  373. package/dist/utils/scrollView.d.ts.map +1 -0
  374. package/dist/utils/scrollView.js +108 -0
  375. package/dist/utils/selectionLock.d.ts.map +1 -1
  376. package/dist/utils/selectionLock.js +1 -10
  377. package/dist/utils/touchHitArea.d.ts +30 -0
  378. package/dist/utils/touchHitArea.d.ts.map +1 -0
  379. package/dist/utils/touchHitArea.js +167 -0
  380. package/dist/utils/touchHitArea.stylex.d.ts +38 -0
  381. package/dist/utils/touchHitArea.stylex.d.ts.map +1 -0
  382. package/dist/utils/touchHitArea.stylex.js +48 -0
  383. package/dist/utils/triggerFocus.d.ts +5 -0
  384. package/dist/utils/triggerFocus.d.ts.map +1 -1
  385. package/dist/utils/triggerFocus.js +9 -2
  386. package/locales/en.json +21 -1
  387. package/locales/pseudo.json +15 -0
  388. package/package.json +15 -4
  389. package/src/AppShell/observeMainOverflow.ts +9 -6
  390. package/src/BottomSheet/BottomSheet.tsx +7 -2
  391. package/src/BottomSheet/BottomSheetPanel.tsx +64 -7
  392. package/src/BottomSheet/bottomSheetStack.ts +4 -3
  393. package/src/BottomSheet/useSheetGestures.ts +83 -20
  394. package/src/Calendar/Calendar.doc.mjs +76 -6
  395. package/src/Calendar/Calendar.tsx +123 -104
  396. package/src/Calendar/getInitialFocusDate.ts +22 -8
  397. package/src/Calendar/hooks/useCalendarDays.ts +89 -63
  398. package/src/Calendar/hooks/useCalendarNavigation.ts +68 -26
  399. package/src/CheckboxInput/CheckboxInput.doc.mjs +5 -4
  400. package/src/CheckboxInput/CheckboxInput.tsx +105 -20
  401. package/src/CheckboxInput/CheckboxRowPressContext.ts +22 -0
  402. package/src/CheckboxList/CheckboxList.doc.mjs +9 -0
  403. package/src/CheckboxList/CheckboxListItem.doc.mjs +3 -3
  404. package/src/CheckboxList/CheckboxListItem.tsx +35 -14
  405. package/src/ClickableCard/ClickableCard.tsx +8 -1
  406. package/src/ContextMenu/ContextMenu.tsx +2 -0
  407. package/src/DateInput/DateInput.doc.mjs +45 -12
  408. package/src/DateInput/DateInput.tsx +165 -179
  409. package/src/DateInput/MonthScroller.tsx +39 -37
  410. package/src/DateInput/MonthYearWheels.tsx +68 -47
  411. package/src/DateInput/PickerWheel.tsx +7 -2
  412. package/src/DateInput/TouchDateField.tsx +45 -17
  413. package/src/DateInput/monthGeometry.ts +110 -8
  414. package/src/DateInput/useCalendarPresentation.ts +64 -0
  415. package/src/DateInput/useTypedDate.ts +469 -0
  416. package/src/DateRangeInput/DateRangeInput.doc.mjs +9 -0
  417. package/src/DateRangeInput/DateRangeInput.tsx +43 -9
  418. package/src/DateTimeInput/DateTimeInput.doc.mjs +42 -9
  419. package/src/DateTimeInput/DateTimeInput.tsx +138 -148
  420. package/src/DateTimeInput/TouchDateTimeField.tsx +31 -16
  421. package/src/Dialog/Dialog.doc.mjs +1 -1
  422. package/src/Dialog/Dialog.tsx +14 -2
  423. package/src/Drawer/Drawer.doc.mjs +1 -1
  424. package/src/Drawer/useDrawerDialogPresence.ts +9 -2
  425. package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -2
  426. package/src/DropdownMenu/DropdownMenu.tsx +31 -7
  427. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +5 -1
  428. package/src/DropdownMenu/DropdownMenuItem.tsx +8 -4
  429. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +5 -1
  430. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +5 -1
  431. package/src/FileInput/FileInput.tsx +16 -2
  432. package/src/HoverCard/useHoverCard.tsx +3 -1
  433. package/src/InfoTip/InfoTip.doc.mjs +26 -2
  434. package/src/InfoTip/InfoTip.tsx +6 -27
  435. package/src/InputGroup/InputGroup.doc.mjs +4 -3
  436. package/src/InputGroup/InputGroup.tsx +4 -3
  437. package/src/InputGroup/groupStyles.ts +3 -1
  438. package/src/Item/Item.tsx +139 -35
  439. package/src/Item/ItemListRowContext.tsx +18 -0
  440. package/src/Layer/holdEntranceInput.ts +84 -0
  441. package/src/Layer/inputHold.ts +734 -0
  442. package/src/Layer/outsidePress.ts +18 -1
  443. package/src/Layer/preserveAnimations.ts +12 -275
  444. package/src/Layer/useBackdropPress.ts +41 -1
  445. package/src/Layer/useLayer.tsx +77 -4
  446. package/src/Layer/useTouchTrigger.ts +4 -0
  447. package/src/Layout/LayoutContent.doc.mjs +6 -3
  448. package/src/Layout/LayoutContent.tsx +10 -4
  449. package/src/Layout/LayoutPanel.doc.mjs +14 -11
  450. package/src/Layout/LayoutPanel.tsx +98 -15
  451. package/src/Lightbox/Lightbox.tsx +4 -0
  452. package/src/List/List.doc.mjs +10 -1
  453. package/src/List/List.tsx +5 -0
  454. package/src/List/ListItem.tsx +63 -8
  455. package/src/Markdown/parser.ts +65 -42
  456. package/src/MetadataList/MetadataList.tsx +1 -1
  457. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  458. package/src/MobileNav/MobileNav.tsx +39 -1
  459. package/src/MoreMenu/MoreMenu.doc.mjs +2 -4
  460. package/src/MoreMenu/MoreMenu.tsx +5 -3
  461. package/src/MultiSelector/MultiSelector.tsx +7 -17
  462. package/src/NumberInput/NumberInput.doc.mjs +1 -1
  463. package/src/NumberInput/NumberInput.tsx +259 -11
  464. package/src/Popover/usePopover.tsx +1 -0
  465. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  466. package/src/PowerSearch/PowerSearch.tsx +20 -3
  467. package/src/PowerSearch/PowerSearchBottomSheet.tsx +4 -1
  468. package/src/PowerSearch/PowerSearchToken.tsx +3 -0
  469. package/src/PowerSearch/formatFilterValue.ts +21 -11
  470. package/src/PowerSearch/formatTokenValue.ts +7 -1
  471. package/src/RadioList/RadioListItem.doc.mjs +3 -2
  472. package/src/RadioList/RadioListItem.tsx +16 -6
  473. package/src/Resizable/Resizable.doc.mjs +40 -12
  474. package/src/Resizable/ResizeHandle.tsx +68 -6
  475. package/src/Resizable/resizablePane.ts +179 -0
  476. package/src/Resizable/useResizable.ts +15 -0
  477. package/src/SelectableCard/SelectableCard.tsx +8 -1
  478. package/src/Selector/Selector.tsx +83 -8
  479. package/src/SideNav/SideNav.doc.mjs +2 -2
  480. package/src/SideNav/SideNav.tsx +87 -12
  481. package/src/Spinner/Spinner.tsx +7 -89
  482. package/src/Spinner/index.ts +1 -5
  483. package/src/Spinner/spinnerRotor.ts +113 -0
  484. package/src/Stack/Stack.doc.mjs +1 -1
  485. package/src/Stack/StackItem.tsx +27 -13
  486. package/src/Switch/Switch.tsx +7 -6
  487. package/src/TabList/Tab.tsx +5 -1
  488. package/src/Table/plugins/sortable/useTableSortable.tsx +1 -1
  489. package/src/Timestamp/Timestamp.doc.mjs +3 -3
  490. package/src/Timestamp/Timestamp.tsx +13 -8
  491. package/src/Timestamp/formatInstant.ts +49 -28
  492. package/src/Timestamp/tooltipEntries.ts +7 -3
  493. package/src/Token/Token.tsx +18 -1
  494. package/src/Token/TokenLink.tsx +7 -1
  495. package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
  496. package/src/Tokenizer/Tokenizer.tsx +252 -115
  497. package/src/Tooltip/useTooltip.tsx +180 -80
  498. package/src/TreeList/TreeListItem.tsx +36 -2
  499. package/src/Typeahead/BaseTypeahead.tsx +2 -0
  500. package/src/gestures/GestureHost.ts +21 -5
  501. package/src/gestures/PanGestureRecognizer.ts +19 -2
  502. package/src/gestures/README.md +14 -5
  503. package/src/gestures/ScreenEdgePanGestureRecognizer.ts +6 -1
  504. package/src/gestures/nativeScroll.ts +12 -68
  505. package/src/gestures/wheelSegmenter.ts +243 -10
  506. package/src/hooks/StackItemScrollRegion.tsx +57 -0
  507. package/src/hooks/computeOverflow.ts +1 -1
  508. package/src/hooks/menuPressGesture.ts +244 -38
  509. package/src/hooks/menuPressValues.ts +18 -0
  510. package/src/hooks/useClickableContainer.doc.mjs +8 -2
  511. package/src/hooks/useClickableContainer.ts +93 -15
  512. package/src/hooks/useFocusTrap.ts +268 -151
  513. package/src/hooks/useKeyboardHighlight.ts +71 -0
  514. package/src/hooks/useMediaQuery.ts +41 -12
  515. package/src/hooks/useMenuPress.ts +118 -11
  516. package/src/hooks/useOverflow.ts +297 -73
  517. package/src/hooks/usePressFeedback.doc.mjs +3 -3
  518. package/src/hooks/usePressFeedback.ts +6 -6
  519. package/src/hooks/useScrollRegionProps.ts +76 -0
  520. package/src/i18n/InternationalizationContext.ts +6 -0
  521. package/src/i18n/InternationalizationProvider.doc.mjs +29 -1
  522. package/src/i18n/InternationalizationProvider.tsx +35 -3
  523. package/src/i18n/generated-english/DateInput/DateInput.generated.ts +0 -1
  524. package/src/i18n/generated-english/DateInput/useTypedDate.generated.ts +17 -0
  525. package/src/i18n/generated-english/DateTimeInput/DateTimeInput.generated.ts +0 -1
  526. package/src/i18n/generated-english/hooks/useScrollRegionProps.generated.ts +13 -0
  527. package/src/i18n/generated-locales/en.generated.ts +7 -0
  528. package/src/i18n/generated-locales/pseudo.generated.ts +7 -0
  529. package/src/i18n/index.ts +2 -0
  530. package/src/i18n/useCalendarSystem.ts +95 -0
  531. package/src/internal/calendar-system.ts +26 -0
  532. package/src/internal/spinner-rotor.ts +20 -0
  533. package/src/internal/touch.ts +34 -1
  534. package/src/motion/MEASUREMENTS.md +11 -0
  535. package/src/motion/carryAnimations.ts +389 -0
  536. package/src/motion/transientCopy.ts +45 -5
  537. package/src/motion/uikit/gestures.ts +22 -0
  538. package/src/motion/uikit/index.ts +1 -0
  539. package/src/motion/uikit/timing.ts +7 -5
  540. package/src/privateAttributes/menuPressLit.stylex.ts +104 -0
  541. package/src/privateAttributes/press.stylex.ts +261 -0
  542. package/src/theme/themeMotion.ts +3 -2
  543. package/src/theme/tokens.stylex.ts +1 -1
  544. package/src/utils/calendarDateParser.ts +1385 -0
  545. package/src/utils/calendarSystem.ts +832 -0
  546. package/src/utils/coarsePointer.ts +27 -14
  547. package/src/utils/flatTree.ts +15 -3
  548. package/src/utils/focusReturn.ts +17 -3
  549. package/src/utils/hitArea.ts +138 -9
  550. package/src/utils/inputPresentation.ts +21 -1
  551. package/src/utils/inputStream.ts +47 -10
  552. package/src/utils/interactionOverlay.stylex.ts +19 -22
  553. package/src/utils/plainDate.ts +130 -19
  554. package/src/utils/pressFeedback.ts +46 -14
  555. package/src/utils/pressGesture.ts +35 -9
  556. package/src/utils/scrollView.ts +135 -0
  557. package/src/utils/selectionLock.ts +5 -10
  558. package/src/utils/touchHitArea.stylex.ts +56 -0
  559. package/src/utils/touchHitArea.ts +177 -0
  560. package/src/utils/triggerFocus.ts +17 -4
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @file privateAttributes/menuPressLit.stylex.ts
3
+ * @input The row that a held finger or pen lights in a menu
4
+ * @output Exports markMenuPressLit and clearMenuPressLit, which mark that row,
5
+ * and isMenuPressLit, which reads the mark. It also exports
6
+ * menuPressLitRowStyle, which paints the marked row. The hold pair,
7
+ * holdMenuPressPaint and releaseMenuPressPaint, keeps the other rows off
8
+ * their pressed paint, and isMenuPressPaintHeld reads that hold.
9
+ * @position Owner module of the private menu-press-lit attribute: the only
10
+ * file that writes its name. The menu press model (hooks/useMenuPress.ts)
11
+ * marks the row; DropdownMenu's rows compose the styles. No package entry
12
+ * exports it.
13
+ *
14
+ * SYNC: Each row that composes menuPressLitRowStyle reads
15
+ * `--_menu-row-focus-paint` in its `:focus` background, and a row with an
16
+ * `:active` background reads `--_menu-row-active-paint` there:
17
+ * - /packages/core/src/DropdownMenu/DropdownMenuItem.tsx
18
+ * - /packages/core/src/DropdownMenu/DropdownMenuCheckboxItem.tsx
19
+ * - /packages/core/src/DropdownMenu/DropdownMenuRadioItem.tsx
20
+ * - /packages/core/src/DropdownMenu/DropdownMenuSubMenu.tsx
21
+ */
22
+ import type { StyleXStyles } from '@stylexjs/stylex';
23
+ /** Marks `row` as the row that a held finger or pen lights. */
24
+ export declare function markMenuPressLit(row: Element): void;
25
+ /** Removes the mark from `row`. */
26
+ export declare function clearMenuPressLit(row: Element): void;
27
+ /** Whether a held finger or pen lights `row`. */
28
+ export declare function isMenuPressLit(row: Element): boolean;
29
+ /**
30
+ * Keeps `menu`'s rows off their `:active` paint while a held finger or pen
31
+ * presses in it. The row the press began on stays `:active` as the press
32
+ * moves on. The lit row keeps the pressed overlay through its own mark.
33
+ */
34
+ export declare function holdMenuPressPaint(menu: HTMLElement): void;
35
+ /** Gives `menu`'s rows their `:active` paint back. */
36
+ export declare function releaseMenuPressPaint(menu: HTMLElement): void;
37
+ /** Whether a held finger or pen keeps `menu`'s rows off their `:active` paint. */
38
+ export declare function isMenuPressPaintHeld(menu: HTMLElement): boolean;
39
+ /**
40
+ * Compose on a menu row whose `:focus` background is
41
+ * `var(--_menu-row-focus-paint, <hover overlay>)`, and whose `:active`
42
+ * background, if any, is `var(--_menu-row-active-paint, <pressed overlay>)`.
43
+ * The row paints the hover overlay on focus, and the pressed overlay while a
44
+ * held finger or pen lights it.
45
+ * Under a finger, the hover overlay is too faint to follow. The variable has
46
+ * no default: a layered stylesheet emits a default unlayered, and it would
47
+ * beat the attribute arm. The value resolves on the row, so a theme set on any
48
+ * ancestor applies. The style sets only a custom property, which shares no
49
+ * key with StyleX's CSS property type, so TypeScript needs the wider type.
50
+ */
51
+ export declare const menuPressLitRowStyle: StyleXStyles;
52
+ //# sourceMappingURL=menuPressLit.stylex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuPressLit.stylex.d.ts","sourceRoot":"","sources":["../../src/privateAttributes/menuPressLit.stylex.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAMnD,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAEnD;AAED,mCAAmC;AACnC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAEpD;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAE1D;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAE7D;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAE/D;AA6BD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,EAAiB,YAAY,CAAC"}
@@ -0,0 +1,99 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ /**
3
+ * @file privateAttributes/menuPressLit.stylex.ts
4
+ * @input The row that a held finger or pen lights in a menu
5
+ * @output Exports markMenuPressLit and clearMenuPressLit, which mark that row,
6
+ * and isMenuPressLit, which reads the mark. It also exports
7
+ * menuPressLitRowStyle, which paints the marked row. The hold pair,
8
+ * holdMenuPressPaint and releaseMenuPressPaint, keeps the other rows off
9
+ * their pressed paint, and isMenuPressPaintHeld reads that hold.
10
+ * @position Owner module of the private menu-press-lit attribute: the only
11
+ * file that writes its name. The menu press model (hooks/useMenuPress.ts)
12
+ * marks the row; DropdownMenu's rows compose the styles. No package entry
13
+ * exports it.
14
+ *
15
+ * SYNC: Each row that composes menuPressLitRowStyle reads
16
+ * `--_menu-row-focus-paint` in its `:focus` background, and a row with an
17
+ * `:active` background reads `--_menu-row-active-paint` there:
18
+ * - /packages/core/src/DropdownMenu/DropdownMenuItem.tsx
19
+ * - /packages/core/src/DropdownMenu/DropdownMenuCheckboxItem.tsx
20
+ * - /packages/core/src/DropdownMenu/DropdownMenuRadioItem.tsx
21
+ * - /packages/core/src/DropdownMenu/DropdownMenuSubMenu.tsx
22
+ */
23
+
24
+ import * as stylex from '@stylexjs/stylex';
25
+ import "../theme/tokens.stylex.js";
26
+ import { colorVars } from "../theme/tokens.stylex.js";
27
+ const MENU_PRESS_LIT = 'data-astryx-menu-press-lit';
28
+ const ACTIVE_PAINT = '--_menu-row-active-paint';
29
+
30
+ /** Marks `row` as the row that a held finger or pen lights. */
31
+ export function markMenuPressLit(row) {
32
+ row.setAttribute(MENU_PRESS_LIT, '');
33
+ }
34
+
35
+ /** Removes the mark from `row`. */
36
+ export function clearMenuPressLit(row) {
37
+ row.removeAttribute(MENU_PRESS_LIT);
38
+ }
39
+
40
+ /** Whether a held finger or pen lights `row`. */
41
+ export function isMenuPressLit(row) {
42
+ return row.hasAttribute(MENU_PRESS_LIT);
43
+ }
44
+
45
+ /**
46
+ * Keeps `menu`'s rows off their `:active` paint while a held finger or pen
47
+ * presses in it. The row the press began on stays `:active` as the press
48
+ * moves on. The lit row keeps the pressed overlay through its own mark.
49
+ */
50
+ export function holdMenuPressPaint(menu) {
51
+ menu.style.setProperty(ACTIVE_PAINT, 'transparent');
52
+ }
53
+
54
+ /** Gives `menu`'s rows their `:active` paint back. */
55
+ export function releaseMenuPressPaint(menu) {
56
+ menu.style.removeProperty(ACTIVE_PAINT);
57
+ }
58
+
59
+ /** Whether a held finger or pen keeps `menu`'s rows off their `:active` paint. */
60
+ export function isMenuPressPaintHeld(menu) {
61
+ return menu.style.getPropertyValue(ACTIVE_PAINT) !== '';
62
+ }
63
+
64
+ /**
65
+ * A value for each attribute state. The index signature gives StyleX the value
66
+ * type, which it cannot read from a literal attribute key.
67
+ */
68
+
69
+ const litRowPaint = {
70
+ '--_menu-row-focus-paint': {
71
+ default: null,
72
+ '[data-astryx-menu-press-lit]': colorVars['--color-overlay-pressed']
73
+ },
74
+ '--_menu-row-active-paint': {
75
+ default: null,
76
+ '[data-astryx-menu-press-lit]': colorVars['--color-overlay-pressed']
77
+ }
78
+ };
79
+ const styles = {
80
+ row: {
81
+ "--_menu-row-focus-paint": "x1ar3rj9",
82
+ "--_menu-row-active-paint": "xcukuoe",
83
+ $$css: true
84
+ }
85
+ };
86
+
87
+ /**
88
+ * Compose on a menu row whose `:focus` background is
89
+ * `var(--_menu-row-focus-paint, <hover overlay>)`, and whose `:active`
90
+ * background, if any, is `var(--_menu-row-active-paint, <pressed overlay>)`.
91
+ * The row paints the hover overlay on focus, and the pressed overlay while a
92
+ * held finger or pen lights it.
93
+ * Under a finger, the hover overlay is too faint to follow. The variable has
94
+ * no default: a layered stylesheet emits a default unlayered, and it would
95
+ * beat the attribute arm. The value resolves on the row, so a theme set on any
96
+ * ancestor applies. The style sets only a custom property, which shares no
97
+ * key with StyleX's CSS property type, so TypeScript needs the wider type.
98
+ */
99
+ export const menuPressLitRowStyle = styles.row;
@@ -0,0 +1,142 @@
1
+ /**
2
+ * @file privateAttributes/press.stylex.ts
3
+ * @input StyleX, the overlay color tokens, the touch press strength
4
+ * (`pressVars`) and the row layer's clocks (utils/rowPressLayer.stylex.ts)
5
+ * @output `rowPressLayerStyles`, the compositor press layer for list rows
6
+ * (`cell`, `cellOnImage` for a `backgroundImage` row), and
7
+ * `rowPressPaintStyles`, a CheckboxList row's press paint for its box
8
+ * @position Owner module of the private press attribute: the press controller
9
+ * (utils/pressFeedback.ts) writes it, and this file reads it. No package
10
+ * entry exports it. Item, TreeList and CheckboxListItem compose its styles;
11
+ * utils/interactionOverlay.cell.test.ts tests the row layer.
12
+ */
13
+ import * as stylex from '@stylexjs/stylex';
14
+ export declare const rowPressLayerStyles: Readonly<{
15
+ readonly cell: Readonly<{
16
+ readonly backgroundImage: stylex.StyleXClassNameFor<"backgroundImage", unknown>;
17
+ readonly animationName: stylex.StyleXClassNameFor<"animationName", unknown>;
18
+ readonly isolation: stylex.StyleXClassNameFor<"isolation", "isolate" | null>;
19
+ readonly '::before': stylex.StyleXClassNameFor<"::before", {
20
+ readonly content: {
21
+ readonly default: null;
22
+ readonly "@media (pointer: coarse)": {
23
+ readonly default: null;
24
+ readonly ":where(:not(:disabled,[aria-disabled=\"true\"]))": {
25
+ readonly default: null;
26
+ readonly ":is([data-astryx-press=\"on\"],[data-astryx-press=\"fading\"])": "\"\"";
27
+ };
28
+ };
29
+ };
30
+ readonly position: {
31
+ readonly default: null;
32
+ readonly "@media (pointer: coarse)": {
33
+ readonly default: null;
34
+ readonly ":is([data-astryx-press=\"on\"],[data-astryx-press=\"fading\"])": "absolute";
35
+ };
36
+ };
37
+ readonly inset: {
38
+ readonly default: null;
39
+ readonly "@media (pointer: coarse)": {
40
+ readonly default: null;
41
+ readonly ":is([data-astryx-press=\"on\"],[data-astryx-press=\"fading\"])": 0;
42
+ };
43
+ };
44
+ readonly zIndex: {
45
+ readonly default: null;
46
+ readonly "@media (pointer: coarse)": {
47
+ readonly default: null;
48
+ readonly ":is([data-astryx-press=\"on\"],[data-astryx-press=\"fading\"])": -1;
49
+ };
50
+ };
51
+ readonly borderRadius: {
52
+ readonly default: null;
53
+ readonly "@media (pointer: coarse)": {
54
+ readonly default: null;
55
+ readonly ":is([data-astryx-press=\"on\"],[data-astryx-press=\"fading\"])": "inherit";
56
+ };
57
+ };
58
+ readonly pointerEvents: {
59
+ readonly default: null;
60
+ readonly "@media (pointer: coarse)": {
61
+ readonly default: null;
62
+ readonly ":is([data-astryx-press=\"on\"],[data-astryx-press=\"fading\"])": "none";
63
+ };
64
+ };
65
+ readonly backgroundColor: {
66
+ readonly default: null;
67
+ readonly "@media (pointer: coarse)": {
68
+ readonly default: null;
69
+ readonly ":is([data-astryx-press=\"on\"],[data-astryx-press=\"fading\"])": stylex.StyleXVar<"light-dark(#05365919, #FFFFFF19)">;
70
+ };
71
+ };
72
+ readonly opacity: {
73
+ readonly default: null;
74
+ readonly "@media (pointer: coarse)": {
75
+ readonly default: null;
76
+ readonly "[data-astryx-press=\"on\"]": 1;
77
+ readonly "[data-astryx-press=\"fading\"]": 0;
78
+ };
79
+ };
80
+ readonly animationName: {
81
+ readonly default: null;
82
+ readonly "@media (pointer: coarse)": {
83
+ readonly default: null;
84
+ readonly ":where(:not(:disabled,[aria-disabled=\"true\"]))": {
85
+ readonly default: null;
86
+ readonly "[data-astryx-press=\"fading\"]": string;
87
+ };
88
+ };
89
+ };
90
+ readonly animationDuration: {
91
+ readonly default: null;
92
+ readonly "@media (pointer: coarse)": {
93
+ readonly default: null;
94
+ readonly "[data-astryx-press=\"fading\"]": {
95
+ readonly default: stylex.StyleXVar<"var(--duration-fast)">;
96
+ readonly "@media (prefers-reduced-motion: reduce)": string;
97
+ };
98
+ };
99
+ };
100
+ readonly animationTimingFunction: {
101
+ readonly default: null;
102
+ readonly "@media (pointer: coarse)": {
103
+ readonly default: null;
104
+ readonly "[data-astryx-press=\"fading\"]": stylex.StyleXVar<"cubic-bezier(0.3, 0, 0.6, 0.6)">;
105
+ };
106
+ };
107
+ readonly animationFillMode: {
108
+ readonly default: null;
109
+ readonly "@media (pointer: coarse)": {
110
+ readonly default: null;
111
+ readonly "[data-astryx-press=\"fading\"]": "both";
112
+ };
113
+ };
114
+ }>;
115
+ }>;
116
+ readonly cellWithoutLayer: Readonly<{
117
+ readonly backgroundImage: stylex.StyleXClassNameFor<"backgroundImage", "none">;
118
+ readonly animationName: stylex.StyleXClassNameFor<"animationName", unknown>;
119
+ readonly isolation: stylex.StyleXClassNameFor<"isolation", "auto" | null>;
120
+ readonly '::before': stylex.StyleXClassNameFor<"::before", {
121
+ readonly content: {
122
+ readonly default: null;
123
+ readonly "@media (pointer: coarse)": {
124
+ readonly default: null;
125
+ readonly ":where(:not(:disabled,[aria-disabled=\"true\"]))": {
126
+ readonly default: null;
127
+ readonly ":is([data-astryx-press=\"on\"],[data-astryx-press=\"fading\"])": "none";
128
+ };
129
+ };
130
+ };
131
+ }>;
132
+ }>;
133
+ readonly cellOnImage: Readonly<{
134
+ readonly backgroundImage: stylex.StyleXClassNameFor<"backgroundImage", string | null>;
135
+ }>;
136
+ }>;
137
+ export declare const rowPressPaintStyles: Readonly<{
138
+ readonly checkboxRow: Readonly<{
139
+ readonly '--_checkbox-row-press-paint': stylex.StyleXClassNameFor<"--_checkbox-row-press-paint", "none" | "var(--_press-paint-image)">;
140
+ }>;
141
+ }>;
142
+ //# sourceMappingURL=press.stylex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"press.stylex.d.ts","sourceRoot":"","sources":["../../src/privateAttributes/press.stylex.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAqD3C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2K9B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;EAgB9B,CAAC"}
@@ -0,0 +1,101 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /* eslint-disable @astryx/no-hover-on-disabled -- Every hover branch is
4
+ * nested beneath ENABLED below, as in interactionOverlay.stylex.ts. */
5
+
6
+ /**
7
+ * @file privateAttributes/press.stylex.ts
8
+ * @input StyleX, the overlay color tokens, the touch press strength
9
+ * (`pressVars`) and the row layer's clocks (utils/rowPressLayer.stylex.ts)
10
+ * @output `rowPressLayerStyles`, the compositor press layer for list rows
11
+ * (`cell`, `cellOnImage` for a `backgroundImage` row), and
12
+ * `rowPressPaintStyles`, a CheckboxList row's press paint for its box
13
+ * @position Owner module of the private press attribute: the press controller
14
+ * (utils/pressFeedback.ts) writes it, and this file reads it. No package
15
+ * entry exports it. Item, TreeList and CheckboxListItem compose its styles;
16
+ * utils/interactionOverlay.cell.test.ts tests the row layer.
17
+ */
18
+
19
+ import * as stylex from '@stylexjs/stylex';
20
+ import "../theme/tokens.stylex.js";
21
+ import { colorVars, durationVars, easeVars } from "../theme/tokens.stylex.js";
22
+ import "../motion/reducedMotion.stylex.js";
23
+ import { reducedMotionFadeConsts } from "../motion/reducedMotion.stylex.js";
24
+ import "../utils/interactionOverlay.stylex.js";
25
+ import { pressVars } from "../utils/interactionOverlay.stylex.js";
26
+
27
+ // The overlay's arm selectors (interactionOverlay.stylex.ts), restated here:
28
+ // StyleX resolves a style's keys within its own file.
29
+ const ENABLED = ':where(:not(:disabled,[aria-disabled="true"]))';
30
+ const HOVER_HOVER = '@media (hover: hover)';
31
+ const COARSE = '@media (pointer: coarse)';
32
+ const PRESSED_ON = '[data-astryx-press="on"]';
33
+ const PRESSED_FADING = '[data-astryx-press="fading"]';
34
+ /**
35
+ * A press in any of its states: the row layer exists only then, so at rest a
36
+ * row's own `::before` and its stacking are untouched.
37
+ */
38
+ const PRESSED_ANY = ':is([data-astryx-press="on"],[data-astryx-press="fading"])';
39
+ const PRESS_ALPHA = pressVars['--astryx-press-alpha'];
40
+ const hoverImage = `linear-gradient(${colorVars['--color-overlay-hover']}, ${colorVars['--color-overlay-hover']})`;
41
+ const pressedImage = `linear-gradient(${colorVars['--color-overlay-pressed']}, ${colorVars['--color-overlay-pressed']})`;
42
+ /** The overlay's paint, read back off the element (its gradient layer). */
43
+ const pressedOverlayImage = 'var(--_press-paint-image)';
44
+
45
+ /**
46
+ * The overlay's strength release (interactionOverlay.stylex.ts), restated so
47
+ * a fine pointer keeps it: the same keyframes, so the same animation.
48
+ */
49
+ const pressRelease = "x10jkm1t-B";
50
+
51
+ /**
52
+ * The row layer's clock as CSS: the strength release's clock, the theme's
53
+ * exit duration, so the layer and the strength land together.
54
+ */
55
+ const CELL_RELEASE = durationVars['--duration-exit'];
56
+ /** The same clock under Reduce Motion, no longer than the Reduce Motion fade. */
57
+ const CELL_RELEASE_REDUCED = `min(${durationVars['--duration-exit']}, ${reducedMotionFadeConsts.duration})`;
58
+ const REDUCED_MOTION = '@media (prefers-reduced-motion: reduce)';
59
+
60
+ /** Opacity 1 → 0: the row layer leaves; its fading arm runs it. */
61
+ const cellRelease = "x1jn504y-B";
62
+
63
+ /** The release's curve: the theme's exit easing, as the strength's. */
64
+ const RELEASE_EASE = easeVars['--ease-exit'];
65
+ export const rowPressLayerStyles = {
66
+ cell: {
67
+ kKwaWg: "x7ngsy6 x10ogxw0 xubczrd x18xnkjv",
68
+ kKVMdj: "x14e4jsf x6su2wr",
69
+ kHBbk8: "xif6eam",
70
+ kgeoSG: "x1ocadqd",
71
+ kEoFBp: "x1ukh9kf",
72
+ kFcpXp: "xrkptjy",
73
+ kxmVGU: "xjscm90",
74
+ kPB484: "x1kec4ew",
75
+ km8f2m: "x13r5q6d",
76
+ kLkRvE: "x1dn949c",
77
+ k5QlbN: "xw7rim2 xr9xsjc",
78
+ k7EzDT: "x1bxn267",
79
+ kQZAMR: "x1osot8d xbkwwzw",
80
+ kZiNAr: "x10t12yn",
81
+ k8Tatv: "x1dn5vsf",
82
+ $$css: true
83
+ },
84
+ cellWithoutLayer: {
85
+ kKwaWg: "x18o3ruo",
86
+ kKVMdj: "x14e4jsf",
87
+ kHBbk8: "xrqzsdu",
88
+ kgeoSG: "x1995whq",
89
+ $$css: true
90
+ },
91
+ cellOnImage: {
92
+ kKwaWg: "x7uyq82 x3f84ok x7ngsy6 x10ogxw0 xubczrd x18xnkjv xmvprkv xetgvay",
93
+ $$css: true
94
+ }
95
+ };
96
+ export const rowPressPaintStyles = {
97
+ checkboxRow: {
98
+ "--_checkbox-row-press-paint": "x1ectg7s xbxihhr x18sblwv xvfewc x19dyfww",
99
+ $$css: true
100
+ }
101
+ };
@@ -45,8 +45,9 @@ export declare const CHARACTER_EASE: {
45
45
  export declare function resolveMotionKnobs(config: ThemeMotionConfig | undefined): ResolvedMotionKnobs;
46
46
  /**
47
47
  * The private custom property a theme with a `tempo` writes beside its
48
- * duration tokens: the press release fade (`utils/interactionOverlay.stylex.ts`)
49
- * multiplies its clock by it.
48
+ * duration tokens, for a style that scales a clock of its own by it
49
+ * (ProgressBar's move). A press release needs none: it plays
50
+ * `--duration-exit`, which already follows the tempo.
50
51
  */
51
52
  export declare const MOTION_TEMPO_PROPERTY = "--_astryx-motion-tempo";
52
53
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"themeMotion.d.ts","sourceRoot":"","sources":["../../src/theme/themeMotion.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAoB,KAAK,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAC3B,gBAAgB,GAAG,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;CAIgC,CAAC;AAE5D,kEAAkE;AAClE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACpC,mBAAmB,CAErB;AAaD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAUlE,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMtE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,iBAAiB,GACxB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmCxB;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;KAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1D,GAAG,WAAW,CAyCd"}
1
+ {"version":3,"file":"themeMotion.d.ts","sourceRoot":"","sources":["../../src/theme/themeMotion.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAoB,KAAK,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAC3B,gBAAgB,GAAG,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;CAIgC,CAAC;AAE5D,kEAAkE;AAClE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACpC,mBAAmB,CAErB;AAaD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAUlE,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMtE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,iBAAiB,GACxB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmCxB;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;KAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1D,GAAG,WAAW,CAyCd"}
@@ -63,8 +63,9 @@ function msOf(value) {
63
63
 
64
64
  /**
65
65
  * The private custom property a theme with a `tempo` writes beside its
66
- * duration tokens: the press release fade (`utils/interactionOverlay.stylex.ts`)
67
- * multiplies its clock by it.
66
+ * duration tokens, for a style that scales a clock of its own by it
67
+ * (ProgressBar's move). A press release needs none: it plays
68
+ * `--duration-exit`, which already follows the tempo.
68
69
  */
69
70
  export const MOTION_TEMPO_PROPERTY = '--_astryx-motion-tempo';
70
71
 
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import * as stylex from '@stylexjs/stylex';
17
17
  export declare const colorDefaults: {
18
- readonly '--color-accent': "light-dark(#0064E0, #2694FE)";
18
+ readonly '--color-accent': "light-dark(#0064E0, #0171E3)";
19
19
  readonly '--color-accent-muted': "light-dark(#0082FB33, #0082FB3F)";
20
20
  readonly '--color-on-accent': "light-dark(#FFFFFF, #FFFFFF)";
21
21
  readonly '--color-neutral': "light-dark(rgba(5, 54, 89, 0.1), rgba(223, 226, 229, 0.2))";
@@ -115,7 +115,7 @@ export declare const colorDefaults: {
115
115
  readonly '--color-text-yellow': "light-dark(#753F07, #FBCE03)";
116
116
  };
117
117
  export declare const colorVars: stylex.VarGroup<Readonly<{
118
- readonly '--color-accent': "light-dark(#0064E0, #2694FE)";
118
+ readonly '--color-accent': "light-dark(#0064E0, #0171E3)";
119
119
  readonly '--color-accent-muted': "light-dark(#0082FB33, #0082FB3F)";
120
120
  readonly '--color-on-accent': "light-dark(#FFFFFF, #FFFFFF)";
121
121
  readonly '--color-neutral': "light-dark(rgba(5, 54, 89, 0.1), rgba(223, 226, 229, 0.2))";
@@ -24,7 +24,7 @@ import * as stylex from '@stylexjs/stylex';
24
24
 
25
25
  export const colorDefaults = {
26
26
  // Core semantic
27
- '--color-accent': 'light-dark(#0064E0, #2694FE)',
27
+ '--color-accent': 'light-dark(#0064E0, #0171E3)',
28
28
  '--color-accent-muted': 'light-dark(#0082FB33, #0082FB3F)',
29
29
  '--color-on-accent': 'light-dark(#FFFFFF, #FFFFFF)',
30
30
  '--color-neutral': 'light-dark(rgba(5, 54, 89, 0.1), rgba(223, 226, 229, 0.2))',
@@ -0,0 +1,110 @@
1
+ /**
2
+ * @file calendarDateParser.ts
3
+ * @input Date text, locale, calendar; Intl, calendarSystem, unicodeDigits
4
+ * @output Cached per-locale lexicons, a typed-date parser with distinct rejection
5
+ * kinds, committed display text, the format hint, and calendar display names
6
+ * @position Core utility; used by DateInput and DateTimeInput through useTypedDate
7
+ *
8
+ * SYNC: When modified, update:
9
+ * - /packages/core/src/utils/calendarDateParser.test.ts
10
+ * - /packages/core/src/utils/calendarDateParser.roundtrip.test.ts
11
+ */
12
+ import type { PlainDate } from './dateTypes.js';
13
+ import type { Locale } from '../i18n/types.js';
14
+ import { type CalendarSystem } from './calendarSystem.js';
15
+ import { type SharedDateFormat } from './plainDate.js';
16
+ /** How a typed text reads in a calendar. */
17
+ export type CalendarDateParseResult = {
18
+ readonly kind: 'empty';
19
+ }
20
+ /** Part of a date: nothing to report yet. */
21
+ | {
22
+ readonly kind: 'incomplete';
23
+ }
24
+ /** Text that cannot become a date. */
25
+ | {
26
+ readonly kind: 'unreadable';
27
+ }
28
+ /** A readable date that the calendar does not have. */
29
+ | {
30
+ readonly kind: 'nonexistent';
31
+ readonly isComplete: boolean;
32
+ }
33
+ /** A date that the constraints reject. */
34
+ | {
35
+ readonly kind: 'outOfRange';
36
+ readonly date: PlainDate;
37
+ readonly isComplete: boolean;
38
+ }
39
+ /**
40
+ * A date. `isComplete` is true when more typing cannot change its meaning,
41
+ * so a field may report it while the person types.
42
+ */
43
+ | {
44
+ readonly kind: 'value';
45
+ readonly date: PlainDate;
46
+ readonly isComplete: boolean;
47
+ };
48
+ export interface CalendarDateParseOptions {
49
+ /** The Gregorian date that two-digit and omitted years resolve against. */
50
+ readonly today?: PlainDate;
51
+ /** Reads ISO-shaped text as a Gregorian ISO date, as `system_date` shows. */
52
+ readonly isoIsGregorian?: boolean;
53
+ /** Returns true for a date that may not be chosen. */
54
+ readonly isDateDisabled?: (date: PlainDate) => boolean;
55
+ }
56
+ type DateField = 'year' | 'month' | 'day';
57
+ interface EraArithmetic {
58
+ /** The Gregorian year before era year 1, or after it for a backward era. */
59
+ readonly base: number;
60
+ readonly isForward: boolean;
61
+ }
62
+ /** What a locale writes for one calendar, learned from Intl. */
63
+ export interface CalendarDateLexicon {
64
+ readonly locale: Locale;
65
+ readonly calendar: CalendarSystem;
66
+ readonly order: ReadonlyArray<DateField>;
67
+ readonly nameOrder: ReadonlyArray<DateField>;
68
+ readonly months: ReadonlyMap<string, ReadonlySet<string>>;
69
+ readonly monthTemplates: ReadonlyArray<MonthTemplate>;
70
+ readonly leapMarkers: ReadonlySet<string>;
71
+ readonly eras: ReadonlyMap<string, string>;
72
+ readonly yearAliases: ReadonlyMap<string, string>;
73
+ readonly trailers: ReadonlySet<string>;
74
+ readonly yearMarkers: ReadonlySet<string>;
75
+ readonly separators: ReadonlySet<string>;
76
+ readonly weekdays: ReadonlySet<string>;
77
+ readonly vocabulary: ReadonlyArray<string>;
78
+ readonly vocabularySet: ReadonlySet<string>;
79
+ readonly isNumericMonthOrdinal: boolean;
80
+ readonly eraArithmetic: ReadonlyMap<string, EraArithmetic>;
81
+ }
82
+ interface MonthTemplate {
83
+ readonly pre: string;
84
+ readonly post: string;
85
+ readonly isLeap: boolean;
86
+ }
87
+ /** Text in one comparable form: ASCII digits, lower case, no Latin accents. */
88
+ export declare function normalizeDateText(text: string, locale: Locale): string;
89
+ /**
90
+ * The lexicon for a locale and calendar, built on first use and cached.
91
+ * Building one formats a few hundred dates; call it when a field gains focus.
92
+ */
93
+ export declare function getCalendarDateLexicon(locale: Locale, calendar: CalendarSystem): CalendarDateLexicon;
94
+ /**
95
+ * Reads typed text as a date in the lexicon's calendar. Values are Gregorian.
96
+ * The result tells an empty field, part of a date, unreadable text, a date the
97
+ * calendar does not have, a date out of range, and a date apart.
98
+ */
99
+ export declare function parseCalendarDate(text: string, lex: CalendarDateLexicon, options?: CalendarDateParseOptions): CalendarDateParseResult;
100
+ /**
101
+ * The committed text of a date field in a calendar. Gregorian text is the
102
+ * shared Timestamp date text; `system_date` is always the ISO date.
103
+ */
104
+ export declare function formatCalendarDateText(pd: PlainDate, format: SharedDateFormat, locale: Locale, calendar: CalendarSystem): string;
105
+ /** An example date in the calendar's numeric pattern, with its era. */
106
+ export declare function formatCalendarDateHint(pd: PlainDate, locale: Locale, calendar: CalendarSystem): string;
107
+ /** The calendar's name in the locale, such as "Persian Calendar". */
108
+ export declare function calendarDisplayName(calendar: CalendarSystem, locale: Locale): string;
109
+ export {};
110
+ //# sourceMappingURL=calendarDateParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendarDateParser.d.ts","sourceRoot":"","sources":["../../src/utils/calendarDateParser.ts"],"names":[],"mappings":"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"}