@astryxdesign/core 0.4.4 → 0.4.5-canary.1274820

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 (355) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/AvatarGroup/AvatarGroupOverflow.js +1 -1
  3. package/dist/BottomSheet/BottomSheet.d.ts +11 -2
  4. package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
  5. package/dist/BottomSheet/BottomSheet.js +4 -0
  6. package/dist/BottomSheet/BottomSheetPanel.d.ts +5 -2
  7. package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
  8. package/dist/BottomSheet/BottomSheetPanel.js +65 -15
  9. package/dist/BottomSheet/index.d.ts +1 -1
  10. package/dist/BottomSheet/index.d.ts.map +1 -1
  11. package/dist/BottomSheet/snapOffsets.d.ts +57 -20
  12. package/dist/BottomSheet/snapOffsets.d.ts.map +1 -1
  13. package/dist/BottomSheet/snapOffsets.js +106 -30
  14. package/dist/BottomSheet/useSheetGestures.d.ts +13 -8
  15. package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
  16. package/dist/BottomSheet/useSheetGestures.js +160 -64
  17. package/dist/Breadcrumbs/BreadcrumbItem.js +6 -6
  18. package/dist/Button/Button.js +5 -5
  19. package/dist/Calendar/Calendar.d.ts +17 -0
  20. package/dist/Calendar/Calendar.d.ts.map +1 -1
  21. package/dist/Calendar/Calendar.js +34 -3
  22. package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts +14 -0
  23. package/dist/Calendar/getStandaloneShortWeekdayNames.d.ts.map +1 -0
  24. package/dist/Calendar/getStandaloneShortWeekdayNames.js +26 -0
  25. package/dist/Calendar/hooks/useCalendarConstraints.d.ts +22 -1
  26. package/dist/Calendar/hooks/useCalendarConstraints.d.ts.map +1 -1
  27. package/dist/Calendar/hooks/useCalendarConstraints.js +26 -4
  28. package/dist/Calendar/hooks/useCalendarDays.d.ts.map +1 -1
  29. package/dist/Calendar/hooks/useCalendarDays.js +14 -10
  30. package/dist/Calendar/standaloneShortWeekdayNames.generated.d.ts +47 -0
  31. package/dist/Calendar/standaloneShortWeekdayNames.generated.d.ts.map +1 -0
  32. package/dist/Calendar/standaloneShortWeekdayNames.generated.js +40 -0
  33. package/dist/Calendar/styles.js +3 -3
  34. package/dist/Center/Center.d.ts +23 -1
  35. package/dist/Center/Center.d.ts.map +1 -1
  36. package/dist/Center/Center.js +12 -6
  37. package/dist/Chat/ChatComposer.d.ts.map +1 -1
  38. package/dist/Chat/ChatComposer.js +2 -2
  39. package/dist/Chat/ChatToolCalls.js +1 -1
  40. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  41. package/dist/CheckboxInput/CheckboxInput.js +9 -0
  42. package/dist/Citation/Citation.js +3 -3
  43. package/dist/ClickableCard/ClickableCard.js +2 -2
  44. package/dist/CommandPalette/CommandPaletteItem.js +1 -1
  45. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  46. package/dist/ComplexSelector/ComplexSelector.js +8 -3
  47. package/dist/DateInput/DateInput.d.ts.map +1 -1
  48. package/dist/DateInput/DateInput.js +6 -1
  49. package/dist/DateRangeInput/DateRangeInput.d.ts +23 -1
  50. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  51. package/dist/DateRangeInput/DateRangeInput.js +39 -4
  52. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  53. package/dist/DateTimeInput/DateTimeInput.js +7 -2
  54. package/dist/Dialog/Dialog.d.ts.map +1 -1
  55. package/dist/Dialog/Dialog.js +3 -3
  56. package/dist/Field/FieldLabel.d.ts +2 -1
  57. package/dist/Field/FieldLabel.d.ts.map +1 -1
  58. package/dist/Field/FieldLabel.js +21 -3
  59. package/dist/Field/InputClearButton.d.ts +2 -1
  60. package/dist/Field/InputClearButton.d.ts.map +1 -1
  61. package/dist/Field/InputClearButton.js +6 -1
  62. package/dist/Field/inputStyles.stylex.d.ts.map +1 -1
  63. package/dist/Field/inputStyles.stylex.js +4 -4
  64. package/dist/FileInput/FileInput.d.ts.map +1 -1
  65. package/dist/FileInput/FileInput.js +2 -2
  66. package/dist/FormLayout/FormLayout.d.ts +24 -2
  67. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  68. package/dist/FormLayout/FormLayout.js +7 -2
  69. package/dist/FormLayout/FormLayoutContext.d.ts +15 -2
  70. package/dist/FormLayout/FormLayoutContext.d.ts.map +1 -1
  71. package/dist/FormLayout/FormLayoutContext.js +19 -4
  72. package/dist/FormLayout/index.d.ts +1 -1
  73. package/dist/FormLayout/index.d.ts.map +1 -1
  74. package/dist/Item/Item.d.ts +9 -1
  75. package/dist/Item/Item.d.ts.map +1 -1
  76. package/dist/Item/Item.js +46 -8
  77. package/dist/Layer/useLayer.d.ts.map +1 -1
  78. package/dist/Layer/useLayer.js +3 -2
  79. package/dist/Layout/container.stylex.d.ts +4 -2
  80. package/dist/Layout/container.stylex.d.ts.map +1 -1
  81. package/dist/Layout/container.stylex.js +19 -11
  82. package/dist/Layout/index.d.ts +1 -0
  83. package/dist/Layout/index.d.ts.map +1 -1
  84. package/dist/Layout/index.js +4 -0
  85. package/dist/Layout/padding.stylex.d.ts +315 -12
  86. package/dist/Layout/padding.stylex.d.ts.map +1 -1
  87. package/dist/Layout/padding.stylex.js +389 -12
  88. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  89. package/dist/Lightbox/Lightbox.js +2 -1
  90. package/dist/Link/Link.js +4 -4
  91. package/dist/Markdown/Markdown.d.ts +8 -0
  92. package/dist/Markdown/Markdown.d.ts.map +1 -1
  93. package/dist/Markdown/Markdown.js +31 -3
  94. package/dist/Markdown/parser.d.ts +14 -2
  95. package/dist/Markdown/parser.d.ts.map +1 -1
  96. package/dist/Markdown/parser.js +50 -2
  97. package/dist/MobileNav/MobileNav.d.ts +1 -0
  98. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  99. package/dist/MobileNav/MobileNav.js +24 -6
  100. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  101. package/dist/MultiSelector/MultiSelector.js +8 -3
  102. package/dist/NavItem/navItemStyles.stylex.d.ts +2 -2
  103. package/dist/NavItem/navItemStyles.stylex.js +2 -2
  104. package/dist/NavMenu/NavHeadingMenuItem.js +1 -1
  105. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  106. package/dist/NumberInput/NumberInput.js +38 -5
  107. package/dist/Outline/Outline.js +2 -2
  108. package/dist/Outline/parseOutlineFromMarkdown.d.ts +2 -0
  109. package/dist/Outline/parseOutlineFromMarkdown.d.ts.map +1 -1
  110. package/dist/Outline/parseOutlineFromMarkdown.js +5 -31
  111. package/dist/RadioList/RadioList.d.ts.map +1 -1
  112. package/dist/RadioList/RadioList.js +12 -1
  113. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  114. package/dist/Resizable/ResizeHandle.js +3 -3
  115. package/dist/Section/Section.d.ts +36 -1
  116. package/dist/Section/Section.d.ts.map +1 -1
  117. package/dist/Section/Section.js +12 -2
  118. package/dist/SegmentedControl/SegmentedControlItem.js +1 -1
  119. package/dist/SelectableCard/SelectableCard.js +1 -1
  120. package/dist/Selector/Selector.d.ts +26 -1
  121. package/dist/Selector/Selector.d.ts.map +1 -1
  122. package/dist/Selector/Selector.js +95 -17
  123. package/dist/Selector/SelectorOption.d.ts +14 -1
  124. package/dist/Selector/SelectorOption.d.ts.map +1 -1
  125. package/dist/Selector/SelectorOption.js +6 -0
  126. package/dist/Selector/SelectorRowLayoutContext.d.ts +8 -0
  127. package/dist/Selector/SelectorRowLayoutContext.d.ts.map +1 -0
  128. package/dist/Selector/SelectorRowLayoutContext.js +27 -0
  129. package/dist/Selector/types.d.ts +1 -0
  130. package/dist/Selector/types.d.ts.map +1 -1
  131. package/dist/SideNav/SideNavHeading.js +1 -1
  132. package/dist/SideNav/SideNavItem.js +1 -1
  133. package/dist/Slider/Slider.d.ts.map +1 -1
  134. package/dist/Slider/Slider.js +3 -3
  135. package/dist/Stack/Stack.d.ts +23 -1
  136. package/dist/Stack/Stack.d.ts.map +1 -1
  137. package/dist/Stack/Stack.js +12 -6
  138. package/dist/StatusDot/StatusDot.d.ts +43 -3
  139. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  140. package/dist/StatusDot/StatusDot.js +42 -5
  141. package/dist/Switch/Switch.d.ts.map +1 -1
  142. package/dist/Switch/Switch.js +9 -0
  143. package/dist/TabList/TabMenu.js +1 -1
  144. package/dist/Table/TableRow.js +4 -4
  145. package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  146. package/dist/Table/plugins/columnResize/useTableColumnResize.js +1 -1
  147. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
  148. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +1 -1
  149. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  150. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +7 -2
  151. package/dist/Table/plugins/tree/useTableTreeData.js +2 -2
  152. package/dist/TextArea/TextArea.d.ts.map +1 -1
  153. package/dist/TextArea/TextArea.js +6 -1
  154. package/dist/TextInput/TextInput.d.ts.map +1 -1
  155. package/dist/TextInput/TextInput.js +6 -1
  156. package/dist/Thumbnail/Thumbnail.js +1 -1
  157. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  158. package/dist/TimeInput/TimeInput.js +6 -1
  159. package/dist/Token/Token.js +1 -1
  160. package/dist/TopNav/TopNavHeading.js +2 -2
  161. package/dist/TopNav/TopNavItem.js +2 -2
  162. package/dist/TopNav/TopNavMegaMenu.js +1 -1
  163. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  164. package/dist/TopNav/TopNavMenu.js +2 -2
  165. package/dist/TreeList/TreeListItem.js +1 -1
  166. package/dist/astryx.css +79 -60
  167. package/dist/hooks/containerReveal.stylex.d.ts.map +1 -1
  168. package/dist/hooks/containerReveal.stylex.js +18 -18
  169. package/dist/hooks/scrollbarGutter.d.ts +28 -0
  170. package/dist/hooks/scrollbarGutter.d.ts.map +1 -0
  171. package/dist/hooks/scrollbarGutter.js +103 -0
  172. package/dist/hooks/useResolvedRequired.d.ts +19 -0
  173. package/dist/hooks/useResolvedRequired.d.ts.map +1 -0
  174. package/dist/hooks/useResolvedRequired.js +40 -0
  175. package/dist/hooks/useScrollLock.d.ts +4 -0
  176. package/dist/hooks/useScrollLock.d.ts.map +1 -1
  177. package/dist/hooks/useScrollLock.js +13 -1
  178. package/dist/theme/defineTheme.d.ts +5 -0
  179. package/dist/theme/defineTheme.d.ts.map +1 -1
  180. package/dist/theme/defineTheme.js +5 -0
  181. package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
  182. package/dist/theme/derivedVarRegistry.js +7 -0
  183. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  184. package/dist/theme/generateThemeRules.js +66 -5
  185. package/dist/utils/plainDate.d.ts +6 -0
  186. package/dist/utils/plainDate.d.ts.map +1 -1
  187. package/dist/utils/plainDate.js +12 -0
  188. package/locales/af-ZA.json +958 -0
  189. package/locales/ar-SA.json +998 -0
  190. package/locales/ca-ES.json +974 -0
  191. package/locales/cs-CZ.json +990 -0
  192. package/locales/da-DK.json +966 -0
  193. package/locales/de-DE.json +966 -0
  194. package/locales/el-GR.json +990 -0
  195. package/locales/en.json +8 -0
  196. package/locales/es-ES.json +978 -0
  197. package/locales/fi-FI.json +990 -0
  198. package/locales/fr-FR.json +928 -0
  199. package/locales/he-IL.json +990 -0
  200. package/locales/hu-HU.json +990 -0
  201. package/locales/it-IT.json +978 -0
  202. package/locales/ja-JP.json +998 -0
  203. package/locales/ko-KR.json +990 -0
  204. package/locales/nl-NL.json +954 -0
  205. package/locales/no-NO.json +978 -0
  206. package/locales/pl-PL.json +982 -0
  207. package/locales/pseudo.json +6 -0
  208. package/locales/pt-BR.json +982 -0
  209. package/locales/pt-PT.json +982 -0
  210. package/locales/ro-RO.json +982 -0
  211. package/locales/ru-RU.json +990 -0
  212. package/locales/sr-SP.json +990 -0
  213. package/locales/sv-SE.json +986 -0
  214. package/locales/tr-TR.json +990 -0
  215. package/locales/uk-UA.json +990 -0
  216. package/locales/vi-VN.json +986 -0
  217. package/locales/zh-CN.json +998 -0
  218. package/locales/zh-TW.json +998 -0
  219. package/package.json +3 -3
  220. package/src/AvatarGroup/AvatarGroupOverflow.tsx +1 -1
  221. package/src/BottomSheet/BottomSheet.doc.mjs +36 -3
  222. package/src/BottomSheet/BottomSheet.test.tsx +177 -2
  223. package/src/BottomSheet/BottomSheet.tsx +16 -2
  224. package/src/BottomSheet/BottomSheetPanel.test.tsx +41 -0
  225. package/src/BottomSheet/BottomSheetPanel.tsx +95 -15
  226. package/src/BottomSheet/index.ts +5 -1
  227. package/src/BottomSheet/snapOffsets.test.ts +114 -47
  228. package/src/BottomSheet/snapOffsets.ts +119 -33
  229. package/src/BottomSheet/useSheetGestures.test.ts +113 -15
  230. package/src/BottomSheet/useSheetGestures.ts +196 -100
  231. package/src/Breadcrumbs/BreadcrumbItem.tsx +1 -1
  232. package/src/Button/Button.tsx +7 -7
  233. package/src/Calendar/Calendar.doc.mjs +16 -0
  234. package/src/Calendar/Calendar.test.tsx +137 -0
  235. package/src/Calendar/Calendar.tsx +65 -2
  236. package/src/Calendar/getStandaloneShortWeekdayNames.test.ts +54 -0
  237. package/src/Calendar/getStandaloneShortWeekdayNames.ts +38 -0
  238. package/src/Calendar/hooks/useCalendarConstraints.ts +54 -3
  239. package/src/Calendar/hooks/useCalendarDays.ts +13 -10
  240. package/src/Calendar/standaloneShortWeekdayNames.generated.ts +50 -0
  241. package/src/Calendar/styles.ts +3 -3
  242. package/src/Center/Center.doc.mjs +48 -0
  243. package/src/Center/Center.test.tsx +158 -0
  244. package/src/Center/Center.tsx +50 -9
  245. package/src/Chat/ChatComposer.tsx +7 -4
  246. package/src/Chat/ChatToolCalls.tsx +1 -1
  247. package/src/CheckboxInput/CheckboxInput.tsx +6 -0
  248. package/src/Citation/Citation.tsx +3 -3
  249. package/src/ClickableCard/ClickableCard.tsx +2 -2
  250. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  251. package/src/ComplexSelector/ComplexSelector.tsx +8 -5
  252. package/src/DateInput/DateInput.test.tsx +1 -1
  253. package/src/DateInput/DateInput.tsx +3 -1
  254. package/src/DateRangeInput/DateRangeInput.doc.mjs +16 -0
  255. package/src/DateRangeInput/DateRangeInput.test.tsx +81 -1
  256. package/src/DateRangeInput/DateRangeInput.tsx +73 -2
  257. package/src/DateTimeInput/DateTimeInput.tsx +4 -2
  258. package/src/Dialog/Dialog.test.tsx +24 -0
  259. package/src/Dialog/Dialog.tsx +3 -0
  260. package/src/Field/Field.doc.mjs +1 -0
  261. package/src/Field/FieldLabel.tsx +20 -4
  262. package/src/Field/InputClearButton.test.tsx +26 -1
  263. package/src/Field/InputClearButton.tsx +4 -1
  264. package/src/Field/inputStyles.stylex.ts +16 -12
  265. package/src/FileInput/FileInput.tsx +5 -4
  266. package/src/FormLayout/FormLayout.doc.mjs +13 -0
  267. package/src/FormLayout/FormLayout.test.tsx +181 -4
  268. package/src/FormLayout/FormLayout.tsx +33 -2
  269. package/src/FormLayout/FormLayoutContext.ts +22 -7
  270. package/src/FormLayout/index.ts +1 -1
  271. package/src/Item/Item.doc.mjs +1 -0
  272. package/src/Item/Item.test.tsx +50 -0
  273. package/src/Item/Item.tsx +41 -2
  274. package/src/Layer/useLayer.tsx +13 -2
  275. package/src/Layout/Layout.doc.mjs +18 -0
  276. package/src/Layout/container.stylex.ts +11 -3
  277. package/src/Layout/index.ts +4 -0
  278. package/src/Layout/overlayPaddingReset.test.tsx +222 -0
  279. package/src/Layout/padding.stylex.ts +192 -12
  280. package/src/Lightbox/Lightbox.tsx +2 -1
  281. package/src/Link/Link.tsx +4 -4
  282. package/src/Markdown/Markdown.doc.mjs +3 -0
  283. package/src/Markdown/Markdown.test.tsx +78 -0
  284. package/src/Markdown/Markdown.tsx +41 -1
  285. package/src/Markdown/parser.ts +60 -2
  286. package/src/MobileNav/MobileNav.tsx +61 -5
  287. package/src/MobileNav/MobileNavEntryAnimation.test.tsx +212 -0
  288. package/src/MobileNav/MobileNavScrollbarGutter.test.tsx +109 -0
  289. package/src/MultiSelector/MultiSelector.test.tsx +1 -1
  290. package/src/MultiSelector/MultiSelector.tsx +8 -5
  291. package/src/NavItem/navItemStyles.stylex.ts +2 -2
  292. package/src/NavMenu/NavHeadingMenuItem.tsx +1 -1
  293. package/src/NumberInput/NumberInput.doc.mjs +24 -0
  294. package/src/NumberInput/NumberInput.test.tsx +138 -0
  295. package/src/NumberInput/NumberInput.tsx +44 -6
  296. package/src/Outline/Outline.doc.mjs +2 -0
  297. package/src/Outline/Outline.tsx +1 -1
  298. package/src/Outline/parseOutlineFromMarkdown.ts +10 -40
  299. package/src/RadioList/RadioList.tsx +9 -1
  300. package/src/Resizable/ResizeHandle.test.tsx +22 -0
  301. package/src/Resizable/ResizeHandle.tsx +9 -3
  302. package/src/Section/Section.doc.mjs +55 -0
  303. package/src/Section/Section.test.tsx +201 -4
  304. package/src/Section/Section.tsx +69 -0
  305. package/src/SegmentedControl/SegmentedControlItem.tsx +1 -1
  306. package/src/SelectableCard/SelectableCard.tsx +1 -1
  307. package/src/Selector/Selector.doc.mjs +16 -2
  308. package/src/Selector/Selector.test.tsx +525 -1
  309. package/src/Selector/Selector.tsx +166 -21
  310. package/src/Selector/SelectorOption.doc.mjs +7 -0
  311. package/src/Selector/SelectorOption.tsx +21 -0
  312. package/src/Selector/SelectorRowLayoutContext.ts +32 -0
  313. package/src/Selector/types.ts +4 -4
  314. package/src/SideNav/SideNavHeading.tsx +2 -2
  315. package/src/SideNav/SideNavItem.tsx +1 -1
  316. package/src/Slider/Slider.tsx +11 -1
  317. package/src/Stack/Stack.doc.mjs +72 -0
  318. package/src/Stack/Stack.test.tsx +156 -0
  319. package/src/Stack/Stack.tsx +50 -8
  320. package/src/StatusDot/StatusDot.doc.mjs +13 -0
  321. package/src/StatusDot/StatusDot.test.tsx +115 -8
  322. package/src/StatusDot/StatusDot.tsx +74 -9
  323. package/src/Switch/Switch.tsx +6 -0
  324. package/src/TabList/TabMenu.tsx +1 -1
  325. package/src/Table/TableRow.tsx +4 -4
  326. package/src/Table/plugins/columnResize/useTableColumnResize.tsx +2 -1
  327. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +2 -1
  328. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +22 -4
  329. package/src/Table/plugins/tree/useTableTreeData.tsx +2 -2
  330. package/src/TextArea/TextArea.tsx +3 -1
  331. package/src/TextInput/TextInput.tsx +3 -1
  332. package/src/Thumbnail/Thumbnail.tsx +1 -1
  333. package/src/TimeInput/TimeInput.tsx +3 -1
  334. package/src/Token/Token.tsx +1 -1
  335. package/src/TopNav/TopNavHeading.tsx +1 -1
  336. package/src/TopNav/TopNavItem.tsx +2 -2
  337. package/src/TopNav/TopNavMegaMenu.tsx +1 -1
  338. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  339. package/src/TopNav/TopNavMenu.tsx +2 -2
  340. package/src/TreeList/TreeListItem.tsx +1 -1
  341. package/src/hooks/containerReveal.stylex.ts +54 -18
  342. package/src/hooks/scrollbarGutter.test.ts +167 -0
  343. package/src/hooks/scrollbarGutter.ts +121 -0
  344. package/src/hooks/useResolvedRequired.ts +42 -0
  345. package/src/hooks/useScrollLock.doc.mjs +4 -4
  346. package/src/hooks/useScrollLock.test.ts +73 -0
  347. package/src/hooks/useScrollLock.ts +14 -0
  348. package/src/theme/defineTheme.test.ts +9 -3
  349. package/src/theme/defineTheme.ts +5 -0
  350. package/src/theme/derivedVarRegistry.test.ts +14 -3
  351. package/src/theme/derivedVarRegistry.ts +4 -0
  352. package/src/theme/generateThemeRules.test.ts +118 -0
  353. package/src/theme/generateThemeRules.ts +83 -5
  354. package/src/utils/plainDate.test.ts +50 -0
  355. package/src/utils/plainDate.ts +12 -0
@@ -75,7 +75,7 @@ const styles = {
75
75
  $$css: true
76
76
  },
77
77
  ariaDisabled: {
78
- kKwaWg: "x18o3ruo x8o3jvd xuqm82a",
78
+ kKwaWg: "x18o3ruo xuqm82a",
79
79
  $$css: true
80
80
  },
81
81
  iconOnly: {
@@ -187,26 +187,26 @@ const variants = {
187
187
  primary: {
188
188
  kWkggS: "x1ewilqj",
189
189
  kMwMTN: "x17wrial",
190
- kKwaWg: "x1ilzqfv xq8i9tn",
190
+ kKwaWg: "xmvprkv xq8i9tn",
191
191
  $$css: true
192
192
  },
193
193
  secondary: {
194
194
  kWkggS: "x17x4s8c",
195
195
  kMwMTN: "x1tgivj0",
196
- kKwaWg: "x1ilzqfv xq8i9tn",
196
+ kKwaWg: "xmvprkv xq8i9tn",
197
197
  $$css: true
198
198
  },
199
199
  ghost: {
200
200
  kWkggS: "xjbqb8w",
201
201
  kMwMTN: "x1tgivj0",
202
- kKwaWg: "x1ilzqfv xq8i9tn",
202
+ kKwaWg: "xmvprkv xq8i9tn",
203
203
  $$css: true
204
204
  },
205
205
  destructive: {
206
206
  kWkggS: "x1pjz0fi",
207
207
  kMwMTN: "x1m024r3",
208
208
  kjBf7l: "x1e0x2sz",
209
- kKwaWg: "x1ilzqfv xq8i9tn",
209
+ kKwaWg: "xmvprkv xq8i9tn",
210
210
  $$css: true
211
211
  }
212
212
  };
@@ -22,6 +22,23 @@ interface CalendarBaseProps extends Omit<BaseProps<HTMLDivElement>, 'onChange' |
22
22
  * Use for complex rules like "weekdays only" or "no holidays".
23
23
  */
24
24
  dateConstraints?: ReadonlyArray<(date: Date) => boolean>;
25
+ /**
26
+ * Range mode only. Maximum number of days a selected range may span,
27
+ * counting both endpoints — `maxRangeSpan={7}` allows a 7-day window
28
+ * (start + 6 days). Once a start date is picked, days beyond this distance
29
+ * from it are disabled in either direction; before a start is picked every
30
+ * otherwise-valid day stays selectable. Use for rolling windows like "at
31
+ * most a week from the chosen day". For fixed calendar bounds use min/max.
32
+ */
33
+ maxRangeSpan?: number;
34
+ /**
35
+ * Range mode only. Minimum number of days a selected range must span,
36
+ * counting both endpoints — `minRangeSpan={2}` forbids a single-day range.
37
+ * Once a start date is picked, days closer than this to it are disabled —
38
+ * except the start itself, which stays selectable as the active anchor.
39
+ * Defaults to 1 (a same-day start and end is allowed).
40
+ */
41
+ minRangeSpan?: number;
25
42
  /**
26
43
  * Controlled focus date (which month is visible).
27
44
  * If not provided, defaults to selected date or today.
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/Calendar/Calendar.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA+C5C,YAAY,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,EACV,MAAM,oBAAoB,CAAC;AAK5B,+CAA+C;AAE/C,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CAC3C;AAID,UAAU,iBAAkB,SAAQ,IAAI,CACtC,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,GAAG,cAAc,CAC5B;IACC,kDAAkD;IAClD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,qDAAqD;IACrD,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACtC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAEvB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,aAAa,CAAC;IAEpB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,aAAa,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAEzD;;;OAGG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;IAE1B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAEvD;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CAC1C;AAID,UAAU,mBAAoB,SAAQ,iBAAiB;IACrD,qBAAqB;IACrB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,aAAa,CAAC;IAE7B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,KAAK,IAAI,CAAC;CAC9D;AAED,UAAU,kBAAmB,SAAQ,iBAAiB;IACpD,qBAAqB;IACrB,IAAI,EAAE,OAAO,CAAC;IAEd,0BAA0B;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAMrE;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EAAC,GAAG,EAAE,GAAG,KAAK,EAAC,EAAE,aAAa,+BA+VtD;yBA/Ve,QAAQ"}
1
+ {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/Calendar/Calendar.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA+C5C,YAAY,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,EACV,MAAM,oBAAoB,CAAC;AAK5B,+CAA+C;AAE/C,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CAC3C;AAID,UAAU,iBAAkB,SAAQ,IAAI,CACtC,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,GAAG,cAAc,CAC5B;IACC,kDAAkD;IAClD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,qDAAqD;IACrD,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACtC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAEvB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,aAAa,CAAC;IAEpB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,aAAa,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAEzD;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;IAE1B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAEvD;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CAC1C;AAID,UAAU,mBAAoB,SAAQ,iBAAiB;IACrD,qBAAqB;IACrB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,aAAa,CAAC;IAE7B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,KAAK,IAAI,CAAC;CAC9D;AAED,UAAU,kBAAmB,SAAQ,iBAAiB;IACpD,qBAAqB;IACrB,IAAI,EAAE,OAAO,CAAC;IAEd,0BAA0B;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAMrE;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EAAC,GAAG,EAAE,GAAG,KAAK,EAAC,EAAE,aAAa,+BAoXtD;yBApXe,QAAQ"}
@@ -69,6 +69,8 @@ export function Calendar({
69
69
  min,
70
70
  max,
71
71
  dateConstraints,
72
+ maxRangeSpan,
73
+ minRangeSpan,
72
74
  focusDate: focusDateProp,
73
75
  onFocusDateChange,
74
76
  hasOutsideDays = true,
@@ -247,6 +249,20 @@ export function Calendar({
247
249
  } else {
248
250
  // Second click - complete the range
249
251
  const startPd = plainDateFromISO(rangeSelectionStart);
252
+
253
+ // Clicking the anchor again clears the in-progress start rather than
254
+ // committing a zero-length range. This is also the escape hatch when
255
+ // `minRangeSpan` disables the days around the anchor: without it the
256
+ // anchor would be the only clickable day left and the start could
257
+ // never be moved. `minRangeSpan` leaves the anchor itself enabled
258
+ // precisely so this toggle stays reachable.
259
+ if (plainDateIsEqual(date, startPd)) {
260
+ setRangeSelectionStart(null);
261
+ announce(t('@astryx.calendar.rangeClearedAnnounce', {
262
+ date: plainDateFormat(date, DATE_FORMAT_WITH_WEEKDAY)
263
+ }));
264
+ return;
265
+ }
250
266
  let start;
251
267
  let end;
252
268
 
@@ -339,6 +355,8 @@ export function Calendar({
339
355
  min: min,
340
356
  max: max,
341
357
  dateConstraints: dateConstraints,
358
+ maxRangeSpan: maxRangeSpan,
359
+ minRangeSpan: minRangeSpan,
342
360
  hasOutsideDays: hasOutsideDays,
343
361
  hasWeekNumbers: hasWeekNumbers,
344
362
  hasVariableRowCount: hasVariableRowCount,
@@ -369,6 +387,8 @@ function MonthGrid({
369
387
  min,
370
388
  max,
371
389
  dateConstraints,
390
+ maxRangeSpan,
391
+ minRangeSpan,
372
392
  hasOutsideDays,
373
393
  hasWeekNumbers,
374
394
  hasVariableRowCount,
@@ -394,12 +414,20 @@ function MonthGrid({
394
414
  weekStartsOn,
395
415
  hasVariableRowCount
396
416
  });
417
+ const dayNameHeaders = useMemo(() => dayNames.map((name, offset) => ({
418
+ dayOfWeek: (weekStartsOn + offset) % 7,
419
+ name
420
+ })), [dayNames, weekStartsOn]);
421
+ const rangeAnchor = useMemo(() => mode === 'range' && rangeSelectionStart ? plainDateFromISO(rangeSelectionStart) : null, [mode, rangeSelectionStart]);
397
422
  const {
398
423
  isDateDisabled
399
424
  } = useCalendarConstraints({
400
425
  min,
401
426
  max,
402
- dateConstraints
427
+ dateConstraints,
428
+ maxRangeSpan,
429
+ minRangeSpan,
430
+ rangeAnchor
403
431
  });
404
432
 
405
433
  // Parse selected date for roving tabindex priority
@@ -585,11 +613,14 @@ function MonthGrid({
585
613
  ...stylex.props(monthGridStyles.weekRow),
586
614
  children: [hasWeekNumbers && /*#__PURE__*/_jsx("div", {
587
615
  ...stylex.props(monthGridStyles.dayName, monthGridStyles.weekNumberHeader)
588
- }), dayNames.map(name => /*#__PURE__*/_jsx("div", {
616
+ }), dayNameHeaders.map(({
617
+ dayOfWeek,
618
+ name
619
+ }) => /*#__PURE__*/_jsx("div", {
589
620
  role: "columnheader",
590
621
  ...stylex.props(monthGridStyles.dayName),
591
622
  children: name
592
- }, name))]
623
+ }, dayOfWeek))]
593
624
  }), weeks.map(week => {
594
625
  const weekDate = week.find(d => !d.isOutside)?.date || week[0].date;
595
626
  const weekNum = plainDateGetWeekNumber(weekDate);
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @file getStandaloneShortWeekdayNames.ts
3
+ * @input Generated CLDR stand-alone-short weekday table
4
+ * @output Private locale resolver for Calendar weekday headers
5
+ * @position Calendar-internal pure utility; not exported from the package
6
+ */
7
+ import { type StandaloneShortWeekdayNames } from './standaloneShortWeekdayNames.generated';
8
+ /**
9
+ * Resolve generated weekday reference data as exact locale -> language -> English.
10
+ * Unicode extensions are ignored through Intl.Locale.baseName. Invalid tags and
11
+ * valid but unsupported languages safely use English.
12
+ */
13
+ export declare function getStandaloneShortWeekdayNames(locale: string): StandaloneShortWeekdayNames;
14
+ //# sourceMappingURL=getStandaloneShortWeekdayNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStandaloneShortWeekdayNames.d.ts","sourceRoot":"","sources":["../../src/Calendar/getStandaloneShortWeekdayNames.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,yCAAyC,CAAC;AAOjD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,GACb,2BAA2B,CAW7B"}
@@ -0,0 +1,26 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file getStandaloneShortWeekdayNames.ts
5
+ * @input Generated CLDR stand-alone-short weekday table
6
+ * @output Private locale resolver for Calendar weekday headers
7
+ * @position Calendar-internal pure utility; not exported from the package
8
+ */
9
+
10
+ import { standaloneShortWeekdayNamesByLocale } from "./standaloneShortWeekdayNames.generated.js";
11
+ const weekdayNamesByLocale = standaloneShortWeekdayNamesByLocale;
12
+ const englishWeekdayNames = weekdayNamesByLocale.en;
13
+
14
+ /**
15
+ * Resolve generated weekday reference data as exact locale -> language -> English.
16
+ * Unicode extensions are ignored through Intl.Locale.baseName. Invalid tags and
17
+ * valid but unsupported languages safely use English.
18
+ */
19
+ export function getStandaloneShortWeekdayNames(locale) {
20
+ try {
21
+ const parsed = new Intl.Locale(locale);
22
+ return weekdayNamesByLocale[parsed.baseName] ?? weekdayNamesByLocale[parsed.language] ?? englishWeekdayNames;
23
+ } catch {
24
+ return englishWeekdayNames;
25
+ }
26
+ }
@@ -13,6 +13,25 @@ export interface UseCalendarConstraintsOptions {
13
13
  * Date is disabled if ANY function returns false.
14
14
  */
15
15
  dateConstraints?: ReadonlyArray<(date: Date) => boolean>;
16
+ /**
17
+ * Maximum number of days a range may span, counting both endpoints
18
+ * (a value of 7 allows a 7-day window). In range mode, once a start is
19
+ * picked, dates further than this from it are disabled. No effect until a
20
+ * range anchor exists.
21
+ */
22
+ maxRangeSpan?: number;
23
+ /**
24
+ * Minimum number of days a range must span, counting both endpoints
25
+ * (a value of 2 forbids a single-day range). In range mode, once a start
26
+ * is picked, dates closer than this to it are disabled.
27
+ */
28
+ minRangeSpan?: number;
29
+ /**
30
+ * The in-progress range start (first click, awaiting the second). Span
31
+ * constraints are measured from this date. Null when no selection is
32
+ * underway.
33
+ */
34
+ rangeAnchor?: PlainDate | null;
16
35
  }
17
36
  /**
18
37
  * Return type for useCalendarConstraints hook
@@ -29,13 +48,15 @@ export interface UseCalendarConstraintsReturn {
29
48
  * Hook for managing calendar date validation constraints.
30
49
  *
31
50
  * Provides a function to check if a date is disabled based on
32
- * min/max bounds and custom constraint functions.
51
+ * min/max bounds, range-span bounds, and custom constraint functions.
33
52
  *
34
53
  * @example
35
54
  * ```
36
55
  * const {isDateDisabled} = useCalendarConstraints({
37
56
  * min: '2026-01-01',
38
57
  * max: '2026-12-31',
58
+ * maxRangeSpan: 7, // once a start is picked, cap the window at 7 days
59
+ * rangeAnchor, // the in-progress start (null before the first click)
39
60
  * dateConstraints: [
40
61
  * (date) => date.getDay() !== 0, // No Sundays (receives native Date)
41
62
  * ],
@@ -1 +1 @@
1
- {"version":3,"file":"useCalendarConstraints.d.ts","sourceRoot":"","sources":["../../../src/Calendar/hooks/useCalendarConstraints.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,4CAA4C;IAC5C,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,uCAAuC;IACvC,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC;IAC7C,gCAAgC;IAChC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B,gCAAgC;IAChC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,4BAA4B,CAuC9B"}
1
+ {"version":3,"file":"useCalendarConstraints.d.ts","sourceRoot":"","sources":["../../../src/Calendar/hooks/useCalendarConstraints.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,KAAK,SAAS,EAMf,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,4CAA4C;IAC5C,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IACzD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,uCAAuC;IACvC,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC;IAC7C,gCAAgC;IAChC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B,gCAAgC;IAChC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,4BAA4B,CAoE9B"}
@@ -12,7 +12,7 @@
12
12
  * - /packages/core/src/Calendar/hooks/index.ts
13
13
  */
14
14
  import { useCallback, useMemo } from 'react';
15
- import { plainDateFromISO, plainDateToDate, plainDateIsBefore, plainDateIsAfter } from "../../utils/plainDate.js";
15
+ import { plainDateFromISO, plainDateToDate, plainDateIsBefore, plainDateIsAfter, plainDateDiffDays } from "../../utils/plainDate.js";
16
16
 
17
17
  /**
18
18
  * Configuration for date constraints
@@ -26,13 +26,15 @@ import { plainDateFromISO, plainDateToDate, plainDateIsBefore, plainDateIsAfter
26
26
  * Hook for managing calendar date validation constraints.
27
27
  *
28
28
  * Provides a function to check if a date is disabled based on
29
- * min/max bounds and custom constraint functions.
29
+ * min/max bounds, range-span bounds, and custom constraint functions.
30
30
  *
31
31
  * @example
32
32
  * ```
33
33
  * const {isDateDisabled} = useCalendarConstraints({
34
34
  * min: '2026-01-01',
35
35
  * max: '2026-12-31',
36
+ * maxRangeSpan: 7, // once a start is picked, cap the window at 7 days
37
+ * rangeAnchor, // the in-progress start (null before the first click)
36
38
  * dateConstraints: [
37
39
  * (date) => date.getDay() !== 0, // No Sundays (receives native Date)
38
40
  * ],
@@ -48,7 +50,10 @@ export function useCalendarConstraints(options) {
48
50
  const {
49
51
  min,
50
52
  max,
51
- dateConstraints
53
+ dateConstraints,
54
+ maxRangeSpan,
55
+ minRangeSpan,
56
+ rangeAnchor
52
57
  } = options;
53
58
 
54
59
  // Parse min/max dates
@@ -67,6 +72,23 @@ export function useCalendarConstraints(options) {
67
72
  return true;
68
73
  }
69
74
 
75
+ // Range-span bounds, measured from the in-progress start. Spans count
76
+ // both endpoints (a span of 7 spans a 7-day window), so the reachable
77
+ // distance from the anchor is `span - 1` days in either direction. Only
78
+ // active once a start is picked — before that, every day stays pickable.
79
+ if (rangeAnchor) {
80
+ const distance = Math.abs(plainDateDiffDays(rangeAnchor, date));
81
+ if (maxRangeSpan != null && distance > maxRangeSpan - 1) {
82
+ return true;
83
+ }
84
+ // The anchor itself (distance 0) is never disabled by minRangeSpan —
85
+ // it is the picked start, and disabling it would render the active
86
+ // selection start as aria-disabled to keyboard and screen-reader users.
87
+ if (minRangeSpan != null && distance > 0 && distance < minRangeSpan - 1) {
88
+ return true;
89
+ }
90
+ }
91
+
70
92
  // Check custom constraints (convert to Date for public API compatibility)
71
93
  if (dateConstraints) {
72
94
  for (const constraint of dateConstraints) {
@@ -76,7 +98,7 @@ export function useCalendarConstraints(options) {
76
98
  }
77
99
  }
78
100
  return false;
79
- }, [minDate, maxDate, dateConstraints]);
101
+ }, [minDate, maxDate, dateConstraints, maxRangeSpan, minRangeSpan, rangeAnchor]);
80
102
  return {
81
103
  isDateDisabled,
82
104
  minDate,
@@ -1 +1 @@
1
- {"version":3,"file":"useCalendarDays.d.ts","sourceRoot":"","sources":["../../../src/Calendar/hooks/useCalendarDays.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,SAAS,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,mCAAmC;IACnC,GAAG,EAAE,aAAa,CAAC;IACnB,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,8BAA8B;IAC9B,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;IACvB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CA+EvB"}
1
+ {"version":3,"file":"useCalendarDays.d.ts","sourceRoot":"","sources":["../../../src/Calendar/hooks/useCalendarDays.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,SAAS,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,uBAAuB,CAAC;AAI/B;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,mCAAmC;IACnC,GAAG,EAAE,aAAa,CAAC;IACnB,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,8BAA8B;IAC9B,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;IACvB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CAgFvB"}
@@ -4,15 +4,17 @@
4
4
 
5
5
  /**
6
6
  * @file useCalendarDays.ts
7
- * @input Uses React useMemo, PlainDate utilities
7
+ * @input Uses React context via use(), useMemo, PlainDate utilities, generated CLDR weekday data
8
8
  * @output Exports useCalendarDays hook for generating calendar day grids
9
9
  * @position Calendar-specific hook; used by Calendar
10
10
  *
11
11
  * SYNC: When modified, update:
12
12
  * - /packages/core/src/Calendar/hooks/index.ts
13
13
  */
14
- import { useMemo } from 'react';
14
+ import { use, useMemo } from 'react';
15
15
  import { plainDateToISO, getDaysInMonth, plainDateDayOfWeek, plainDateAddDays } from "../../utils/plainDate.js";
16
+ import { InternationalizationContext } from "../../i18n/InternationalizationContext.js";
17
+ import { getStandaloneShortWeekdayNames } from "../getStandaloneShortWeekdayNames.js";
16
18
 
17
19
  /**
18
20
  * Represents a single day in the calendar grid.
@@ -49,6 +51,9 @@ export function useCalendarDays(options) {
49
51
  weekStartsOn = 0,
50
52
  hasVariableRowCount = false
51
53
  } = options;
54
+ const {
55
+ locale
56
+ } = use(InternationalizationContext);
52
57
 
53
58
  // Calculate grid structure
54
59
  const gridInfo = useMemo(() => {
@@ -75,15 +80,14 @@ export function useCalendarDays(options) {
75
80
  };
76
81
  }, [year, month, weekStartsOn, hasVariableRowCount]);
77
82
 
78
- // Generate day names
83
+ // Generated strings avoid Date anchors, so weekday headers cannot shift with
84
+ // the runtime timezone. Keep numeric indices as the rotation source of truth.
79
85
  const dayNames = useMemo(() => {
80
- const names = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
81
- const rotated = [];
82
- for (let i = 0; i < 7; i++) {
83
- rotated.push(names[(i + weekStartsOn) % 7]);
84
- }
85
- return rotated;
86
- }, [weekStartsOn]);
86
+ const names = getStandaloneShortWeekdayNames(locale);
87
+ return Array.from({
88
+ length: 7
89
+ }, (_, index) => names[(index + weekStartsOn) % 7]);
90
+ }, [locale, weekStartsOn]);
87
91
 
88
92
  // Generate days array
89
93
  const days = useMemo(() => {
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @generated by scripts/generate-cldr-weekdays.mjs from Unicode CLDR 48.2.0.
3
+ * Do not edit by hand. Run `pnpm generate:cldr-weekdays` instead.
4
+ */
5
+ export type StandaloneShortWeekdayNames = readonly [
6
+ string,
7
+ string,
8
+ string,
9
+ string,
10
+ string,
11
+ string,
12
+ string
13
+ ];
14
+ export declare const standaloneShortWeekdayNamesByLocale: {
15
+ readonly af: readonly ["So.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Sa."];
16
+ readonly ar: readonly ["أحد", "إثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت"];
17
+ readonly 'ar-SA': readonly ["أحد", "إثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت"];
18
+ readonly ca: readonly ["dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."];
19
+ readonly cs: readonly ["ne", "po", "út", "st", "čt", "pá", "so"];
20
+ readonly da: readonly ["sø.", "ma.", "ti.", "on.", "to.", "fr.", "lø."];
21
+ readonly de: readonly ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."];
22
+ readonly el: readonly ["Κυ", "Δε", "Τρ", "Τε", "Πέ", "Πα", "Σά"];
23
+ readonly en: readonly ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
24
+ readonly es: readonly ["DO", "LU", "MA", "MI", "JU", "VI", "SA"];
25
+ readonly fi: readonly ["su", "ma", "ti", "ke", "to", "pe", "la"];
26
+ readonly fr: readonly ["di", "lu", "ma", "me", "je", "ve", "sa"];
27
+ readonly he: readonly ["א׳", "ב׳", "ג׳", "ד׳", "ה׳", "ו׳", "ש׳"];
28
+ readonly hu: readonly ["V", "H", "K", "Sze", "Cs", "P", "Szo"];
29
+ readonly it: readonly ["dom", "lun", "mar", "mer", "gio", "ven", "sab"];
30
+ readonly ja: readonly ["日", "月", "火", "水", "木", "金", "土"];
31
+ readonly ko: readonly ["일", "월", "화", "수", "목", "금", "토"];
32
+ readonly nl: readonly ["zo", "ma", "di", "wo", "do", "vr", "za"];
33
+ readonly no: readonly ["sø.", "ma.", "ti.", "on.", "to.", "fr.", "lø."];
34
+ readonly pl: readonly ["nie", "pon", "wto", "śro", "czw", "pią", "sob"];
35
+ readonly pt: readonly ["dom.", "seg.", "ter.", "qua.", "qui.", "sex.", "sáb."];
36
+ readonly 'pt-PT': readonly ["dom.", "seg.", "ter.", "qua.", "qui.", "sex.", "sáb."];
37
+ readonly ro: readonly ["du.", "lu.", "ma.", "mi.", "joi", "vi.", "sâ."];
38
+ readonly ru: readonly ["вс", "пн", "вт", "ср", "чт", "пт", "сб"];
39
+ readonly sr: readonly ["не", "по", "ут", "ср", "че", "пе", "су"];
40
+ readonly sv: readonly ["sö", "må", "ti", "on", "to", "fr", "lö"];
41
+ readonly tr: readonly ["Pa", "Pt", "Sa", "Ça", "Pe", "Cu", "Ct"];
42
+ readonly uk: readonly ["нд", "пн", "вт", "ср", "чт", "пт", "сб"];
43
+ readonly vi: readonly ["CN", "T2", "T3", "T4", "T5", "T6", "T7"];
44
+ readonly zh: readonly ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
45
+ readonly 'zh-TW': readonly ["日", "一", "二", "三", "四", "五", "六"];
46
+ };
47
+ //# sourceMappingURL=standaloneShortWeekdayNames.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standaloneShortWeekdayNames.generated.d.ts","sourceRoot":"","sources":["../../src/Calendar/standaloneShortWeekdayNames.generated.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,MAAM,MAAM,2BAA2B,GAAG,SAAS;IACjD,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC0B,CAAC"}
@@ -0,0 +1,40 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @generated by scripts/generate-cldr-weekdays.mjs from Unicode CLDR 48.2.0.
5
+ * Do not edit by hand. Run `pnpm generate:cldr-weekdays` instead.
6
+ */
7
+
8
+ export const standaloneShortWeekdayNamesByLocale = {
9
+ af: ['So.', 'Ma.', 'Di.', 'Wo.', 'Do.', 'Vr.', 'Sa.'],
10
+ ar: ['أحد', 'إثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
11
+ 'ar-SA': ['أحد', 'إثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
12
+ ca: ['dg.', 'dl.', 'dt.', 'dc.', 'dj.', 'dv.', 'ds.'],
13
+ cs: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
14
+ da: ['sø.', 'ma.', 'ti.', 'on.', 'to.', 'fr.', 'lø.'],
15
+ de: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],
16
+ el: ['Κυ', 'Δε', 'Τρ', 'Τε', 'Πέ', 'Πα', 'Σά'],
17
+ en: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
18
+ es: ['DO', 'LU', 'MA', 'MI', 'JU', 'VI', 'SA'],
19
+ fi: ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'],
20
+ fr: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],
21
+ he: ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו׳', 'ש׳'],
22
+ hu: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
23
+ it: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],
24
+ ja: ['日', '月', '火', '水', '木', '金', '土'],
25
+ ko: ['일', '월', '화', '수', '목', '금', '토'],
26
+ nl: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
27
+ no: ['sø.', 'ma.', 'ti.', 'on.', 'to.', 'fr.', 'lø.'],
28
+ pl: ['nie', 'pon', 'wto', 'śro', 'czw', 'pią', 'sob'],
29
+ pt: ['dom.', 'seg.', 'ter.', 'qua.', 'qui.', 'sex.', 'sáb.'],
30
+ 'pt-PT': ['dom.', 'seg.', 'ter.', 'qua.', 'qui.', 'sex.', 'sáb.'],
31
+ ro: ['du.', 'lu.', 'ma.', 'mi.', 'joi', 'vi.', 'sâ.'],
32
+ ru: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
33
+ sr: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
34
+ sv: ['sö', 'må', 'ti', 'on', 'to', 'fr', 'lö'],
35
+ tr: ['Pa', 'Pt', 'Sa', 'Ça', 'Pe', 'Cu', 'Ct'],
36
+ uk: ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
37
+ vi: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
38
+ zh: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
39
+ 'zh-TW': ['日', '一', '二', '三', '四', '五', '六']
40
+ };
@@ -253,7 +253,7 @@ export const dayCellTheme = {
253
253
  day: {
254
254
  kMwMTN: "x1tgivj0",
255
255
  kWkggS: "xjbqb8w",
256
- kKwaWg: "x1ilzqfv",
256
+ kKwaWg: "xmvprkv",
257
257
  $$css: true
258
258
  },
259
259
  dayOutside: {
@@ -271,12 +271,12 @@ export const dayCellTheme = {
271
271
  daySelected: {
272
272
  kWkggS: "x1ewilqj",
273
273
  kMwMTN: "x17wrial",
274
- kKwaWg: "x1ilzqfv",
274
+ kKwaWg: "xmvprkv",
275
275
  $$css: true
276
276
  },
277
277
  dayDisabled: {
278
278
  kSiTet: "xuzhngd",
279
- kKwaWg: "x18o3ruo x8o3jvd",
279
+ kKwaWg: "x18o3ruo x1bm8j9m",
280
280
  $$css: true
281
281
  }
282
282
  };
@@ -57,11 +57,33 @@ export interface CenterProps extends BaseProps<HTMLDivElement> {
57
57
  * Overrides `padding` on the inline axis when both are set.
58
58
  */
59
59
  paddingInline?: SpacingStep;
60
+ /**
61
+ * Inline-start padding, using the spacing scale. Logical: the left edge in
62
+ * LTR, the right edge in RTL.
63
+ * Overrides `paddingInline` and `padding` on that edge only.
64
+ */
65
+ paddingInlineStart?: SpacingStep;
66
+ /**
67
+ * Inline-end padding, using the spacing scale. Logical: the right edge in
68
+ * LTR, the left edge in RTL.
69
+ * Overrides `paddingInline` and `padding` on that edge only.
70
+ */
71
+ paddingInlineEnd?: SpacingStep;
60
72
  /**
61
73
  * Block (vertical) padding, using the spacing scale.
62
74
  * Overrides `padding` on the block axis when both are set.
63
75
  */
64
76
  paddingBlock?: SpacingStep;
77
+ /**
78
+ * Block-start (top) padding, using the spacing scale.
79
+ * Overrides `paddingBlock` and `padding` on that edge only.
80
+ */
81
+ paddingBlockStart?: SpacingStep;
82
+ /**
83
+ * Block-end (bottom) padding, using the spacing scale.
84
+ * Overrides `paddingBlock` and `padding` on that edge only.
85
+ */
86
+ paddingBlockEnd?: SpacingStep;
65
87
  /**
66
88
  * Whether to make the container inline-flex (useful for text/icons).
67
89
  * @default false
@@ -85,7 +107,7 @@ export interface CenterProps extends BaseProps<HTMLDivElement> {
85
107
  * </Center>
86
108
  * ```
87
109
  */
88
- export declare function Center({ axis, width, height, maxWidth, minHeight, padding, paddingInline, paddingBlock, isInline, children, xstyle, className, style, ref, ...props }: CenterProps): import("react").JSX.Element;
110
+ export declare function Center({ axis, width, height, maxWidth, minHeight, padding, paddingInline, paddingInlineStart, paddingInlineEnd, paddingBlock, paddingBlockStart, paddingBlockEnd, isInline, children, xstyle, className, style, ref, ...props }: CenterProps): import("react").JSX.Element;
89
111
  export declare namespace Center {
90
112
  var displayName: string;
91
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Center.d.ts","sourceRoot":"","sources":["../../src/Center/Center.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAsC3D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAE5D,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC5D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,WAAW,CAAC;IAE5B;;;OAGG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,EACrB,IAAa,EACb,KAAK,EACL,MAAM,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,aAAa,EACb,YAAY,EACZ,QAAgB,EAChB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,+BAgCb;yBAhDe,MAAM"}
1
+ {"version":3,"file":"Center.d.ts","sourceRoot":"","sources":["../../src/Center/Center.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAwC3D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAE5D,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC5D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,WAAW,CAAC;IAE5B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAEjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAE/B;;;OAGG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;IAE3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAEhC;;;OAGG;IACH,eAAe,CAAC,EAAE,WAAW,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,EACrB,IAAa,EACb,KAAK,EACL,MAAM,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,QAAgB,EAChB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,+BAyCb;yBA7De,MAAM"}
@@ -14,7 +14,7 @@
14
14
  */
15
15
 
16
16
  import * as stylex from '@stylexjs/stylex';
17
- import { paddingInlineStyles, paddingBlockStyles } from "../Layout/padding.stylex.js";
17
+ import { paddingInlineStartStyles, paddingInlineEndStyles, paddingBlockStartStyles, paddingBlockEndStyles } from "../Layout/padding.stylex.js";
18
18
  import { mergeProps } from "../utils/index.js";
19
19
  import { themeProps } from "../utils/themeProps.js";
20
20
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -73,7 +73,11 @@ export function Center({
73
73
  minHeight,
74
74
  padding,
75
75
  paddingInline,
76
+ paddingInlineStart,
77
+ paddingInlineEnd,
76
78
  paddingBlock,
79
+ paddingBlockStart,
80
+ paddingBlockEnd,
77
81
  isInline = false,
78
82
  children,
79
83
  xstyle,
@@ -82,13 +86,15 @@ export function Center({
82
86
  ref,
83
87
  ...props
84
88
  }) {
85
- // Resolve padding to per-axis values: `padding` sets both axes; `paddingInline`
86
- // / `paddingBlock` take precedence on their own axis when provided.
87
- const resolvedPaddingInline = paddingInline ?? padding;
88
- const resolvedPaddingBlock = paddingBlock ?? padding;
89
+ // Resolve padding to per-edge values. Most specific wins, per edge:
90
+ // edge prop -> axis prop -> `padding`.
91
+ const resolvedPaddingInlineStart = paddingInlineStart ?? paddingInline ?? padding;
92
+ const resolvedPaddingInlineEnd = paddingInlineEnd ?? paddingInline ?? padding;
93
+ const resolvedPaddingBlockStart = paddingBlockStart ?? paddingBlock ?? padding;
94
+ const resolvedPaddingBlockEnd = paddingBlockEnd ?? paddingBlock ?? padding;
89
95
  const stylexProps = mergeProps(themeProps('center', {
90
96
  axis
91
- }), stylex.props(isInline ? styles.inline : styles.base, (axis === 'both' || axis === 'vertical') && styles.alignItemsCenter, (axis === 'both' || axis === 'horizontal') && styles.justifyContentCenter, dynamicStyles.sizing(width ?? null, height ?? null, maxWidth ?? null, minHeight ?? null), resolvedPaddingInline != null && paddingInlineStyles[resolvedPaddingInline], resolvedPaddingBlock != null && paddingBlockStyles[resolvedPaddingBlock], xstyle), className, style);
97
+ }), stylex.props(isInline ? styles.inline : styles.base, (axis === 'both' || axis === 'vertical') && styles.alignItemsCenter, (axis === 'both' || axis === 'horizontal') && styles.justifyContentCenter, dynamicStyles.sizing(width ?? null, height ?? null, maxWidth ?? null, minHeight ?? null), resolvedPaddingInlineStart != null && paddingInlineStartStyles[resolvedPaddingInlineStart], resolvedPaddingInlineEnd != null && paddingInlineEndStyles[resolvedPaddingInlineEnd], resolvedPaddingBlockStart != null && paddingBlockStartStyles[resolvedPaddingBlockStart], resolvedPaddingBlockEnd != null && paddingBlockEndStyles[resolvedPaddingBlockEnd], xstyle), className, style);
92
98
  return /*#__PURE__*/_jsx("div", {
93
99
  ref: ref,
94
100
  ...stylexProps,
@@ -1 +1 @@
1
- {"version":3,"file":"ChatComposer.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatComposer.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,EAKZ,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA0B5C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEtE,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAC7C,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,GAAG,UAAU,CACxB;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB;IACtB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAI3B,6GAA6G;IAC7G,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,yHAAyH;IACzH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,yGAAyG;IACzG,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gHAAgH;IAChH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,gHAAgH;IAChH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,gDAAgD;IAChD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,iEAAiE;IACjE,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,oDAAoD;IACpD,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CACnC;AA8LD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBAiLpD;yBAjLe,YAAY"}
1
+ {"version":3,"file":"ChatComposer.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatComposer.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,EAKZ,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA0B5C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEtE,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAC7C,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,GAAG,UAAU,CACxB;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB;IACtB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAI3B,6GAA6G;IAC7G,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,yHAAyH;IACzH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,yGAAyG;IACzG,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gHAAgH;IAChH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,gHAAgH;IAChH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,gDAAgD;IAChD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,iEAAiE;IACjE,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,oDAAoD;IACpD,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CACnC;AAiMD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBAiLpD;yBAjLe,YAAY"}
@@ -75,7 +75,7 @@ const styles = {
75
75
  // shadow rings on hover and focus.
76
76
  const elevationStyles = {
77
77
  low: {
78
- kGVxlE: "x1i5ehqx xhouywz",
78
+ kGVxlE: "x1i5ehqx x1ymidup",
79
79
  knuKkz: "xyavpck",
80
80
  $$css: true
81
81
  },
@@ -84,7 +84,7 @@ const elevationStyles = {
84
84
  ksu8eU: "x1y0btm7",
85
85
  kVAM5u: "xvy26l8 x6q1khz",
86
86
  kmVPX3: "x1b50gpf",
87
- kGVxlE: "x1gnnqk1 x12y27fx xuihb5h",
87
+ kGVxlE: "x1gnnqk1 x1xqjsvb xuihb5h",
88
88
  $$css: true
89
89
  }
90
90
  };