reshaped 3.4.1 → 3.4.3

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 (409) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/bundle.css +1 -1
  3. package/dist/bundle.d.ts +8 -6
  4. package/dist/bundle.js +11 -11
  5. package/dist/cjs/cli/theming/index.js +0 -1
  6. package/dist/cjs/themes/_generator/definitions/figma.d.ts +1 -1
  7. package/dist/cjs/themes/_generator/definitions/figma.js +6 -5
  8. package/dist/cjs/themes/_generator/utilities/color.js +11 -11
  9. package/dist/cjs/themes/_generator/utilities/generateBackgroundColors.js +0 -2
  10. package/dist/cjs/themes/_generator/utilities/generateColors.js +1 -1
  11. package/dist/cjs/themes/_generator/utilities/generateUnits.js +0 -1
  12. package/dist/cjs/themes/_generator/utilities/mergeDeep.js +1 -1
  13. package/dist/cjs/themes/_generator/utilities/resolveTokenReference.js +2 -0
  14. package/dist/cjs/themes/figma/tailwind.css +1 -1
  15. package/dist/cjs/themes/figma/theme.css +1 -1
  16. package/dist/cli/theming/index.js +0 -1
  17. package/dist/components/Accordion/Accordion.d.ts +9 -2
  18. package/dist/components/Accordion/Accordion.js +1 -0
  19. package/dist/components/Accordion/AccordionContent.d.ts +4 -1
  20. package/dist/components/Accordion/AccordionContent.js +1 -0
  21. package/dist/components/Accordion/AccordionControlled.d.ts +4 -1
  22. package/dist/components/Accordion/AccordionControlled.js +1 -0
  23. package/dist/components/Accordion/AccordionTrigger.d.ts +4 -1
  24. package/dist/components/Accordion/AccordionTrigger.js +1 -0
  25. package/dist/components/Accordion/AccordionUncontrolled.d.ts +4 -1
  26. package/dist/components/Accordion/AccordionUncontrolled.js +1 -0
  27. package/dist/components/Accordion/tests/Accordion.stories.d.ts +9 -2
  28. package/dist/components/Accordion/tests/Accordion.stories.js +1 -1
  29. package/dist/components/ActionBar/ActionBar.d.ts +4 -1
  30. package/dist/components/ActionBar/ActionBar.js +1 -0
  31. package/dist/components/ActionBar/tests/ActionBar.stories.d.ts +4 -1
  32. package/dist/components/ActionBar/tests/ActionBar.test.stories.d.ts +4 -1
  33. package/dist/components/Actionable/Actionable.js +3 -0
  34. package/dist/components/Actionable/tests/Actionable.stories.js +1 -1
  35. package/dist/components/Actionable/tests/Actionable.test.stories.js +1 -1
  36. package/dist/components/Alert/Alert.d.ts +4 -1
  37. package/dist/components/Alert/Alert.js +1 -0
  38. package/dist/components/Alert/tests/Alert.stories.d.ts +4 -1
  39. package/dist/components/Alert/tests/Alert.test.stories.d.ts +4 -1
  40. package/dist/components/Autocomplete/Autocomplete.d.ts +5 -1
  41. package/dist/components/Autocomplete/Autocomplete.js +3 -0
  42. package/dist/components/Autocomplete/tests/Autocomplete.stories.d.ts +5 -1
  43. package/dist/components/Autocomplete/tests/Autocomplete.test.stories.d.ts +5 -1
  44. package/dist/components/Avatar/Avatar.d.ts +4 -1
  45. package/dist/components/Avatar/Avatar.js +1 -0
  46. package/dist/components/Avatar/tests/Avatar.stories.d.ts +4 -1
  47. package/dist/components/Avatar/tests/Avatar.test.stories.d.ts +4 -1
  48. package/dist/components/Badge/Badge.js +1 -0
  49. package/dist/components/Badge/BadgeContainer.d.ts +4 -1
  50. package/dist/components/Badge/BadgeContainer.js +1 -0
  51. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -1
  52. package/dist/components/Breadcrumbs/Breadcrumbs.js +1 -0
  53. package/dist/components/Breadcrumbs/BreadcrumbsItem.d.ts +4 -1
  54. package/dist/components/Breadcrumbs/BreadcrumbsItem.js +1 -0
  55. package/dist/components/Breadcrumbs/index.d.ts +4 -1
  56. package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.d.ts +8 -2
  57. package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.d.ts +8 -2
  58. package/dist/components/Button/Button.js +1 -0
  59. package/dist/components/Button/ButtonAligner.d.ts +4 -1
  60. package/dist/components/Button/ButtonAligner.js +1 -0
  61. package/dist/components/Button/ButtonGroup.d.ts +4 -1
  62. package/dist/components/Button/ButtonGroup.js +1 -0
  63. package/dist/components/Calendar/Calendar.d.ts +4 -1
  64. package/dist/components/Calendar/Calendar.js +1 -0
  65. package/dist/components/Calendar/Calendar.module.css +1 -1
  66. package/dist/components/Calendar/Calendar.types.d.ts +4 -4
  67. package/dist/components/Calendar/CalendarControlled.d.ts +4 -1
  68. package/dist/components/Calendar/CalendarControlled.js +3 -2
  69. package/dist/components/Calendar/CalendarControls.d.ts +4 -1
  70. package/dist/components/Calendar/CalendarControls.js +1 -0
  71. package/dist/components/Calendar/CalendarDate.d.ts +4 -1
  72. package/dist/components/Calendar/CalendarDate.js +30 -11
  73. package/dist/components/Calendar/CalendarMonth.d.ts +4 -1
  74. package/dist/components/Calendar/CalendarMonth.js +3 -6
  75. package/dist/components/Calendar/CalendarUncontrolled.d.ts +4 -1
  76. package/dist/components/Calendar/CalendarUncontrolled.js +1 -0
  77. package/dist/components/Calendar/CalendarYear.d.ts +4 -1
  78. package/dist/components/Calendar/CalendarYear.js +1 -0
  79. package/dist/components/Calendar/tests/Calendar.stories.d.ts +23 -6
  80. package/dist/components/Calendar/tests/Calendar.stories.js +237 -27
  81. package/dist/components/Card/Card.d.ts +1 -1
  82. package/dist/components/Card/Card.js +3 -4
  83. package/dist/components/Card/tests/Card.stories.d.ts +1 -1
  84. package/dist/components/Card/tests/Card.test.stories.d.ts +1 -1
  85. package/dist/components/Carousel/Carousel.d.ts +4 -1
  86. package/dist/components/Carousel/Carousel.js +2 -2
  87. package/dist/components/Carousel/Carousel.types.d.ts +1 -5
  88. package/dist/components/Carousel/Carousel.types.js +1 -5
  89. package/dist/components/Carousel/CarouselControl.d.ts +4 -1
  90. package/dist/components/Carousel/CarouselControl.js +3 -3
  91. package/dist/components/Carousel/tests/Carousel.stories.d.ts +4 -1
  92. package/dist/components/Checkbox/Checkbox.d.ts +4 -1
  93. package/dist/components/Checkbox/Checkbox.js +1 -0
  94. package/dist/components/Checkbox/tests/Checkbox.stories.d.ts +4 -1
  95. package/dist/components/Checkbox/tests/Checkbox.test.stories.d.ts +4 -1
  96. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +4 -1
  97. package/dist/components/CheckboxGroup/CheckboxGroup.js +1 -0
  98. package/dist/components/CheckboxGroup/CheckboxGroupControlled.d.ts +4 -1
  99. package/dist/components/CheckboxGroup/CheckboxGroupControlled.js +1 -0
  100. package/dist/components/CheckboxGroup/CheckboxGroupUncontrolled.d.ts +4 -1
  101. package/dist/components/CheckboxGroup/CheckboxGroupUncontrolled.js +1 -0
  102. package/dist/components/CheckboxGroup/tests/CheckboxGroup.stories.d.ts +4 -1
  103. package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.d.ts +4 -1
  104. package/dist/components/Container/Container.d.ts +4 -1
  105. package/dist/components/Container/Container.js +1 -0
  106. package/dist/components/Container/tests/Container.stories.d.ts +4 -1
  107. package/dist/components/Container/tests/Container.stories.js +1 -1
  108. package/dist/components/Container/tests/Container.test.stories.d.ts +4 -1
  109. package/dist/components/Container/tests/Container.test.stories.js +1 -1
  110. package/dist/components/ContextMenu/ContextMenu.d.ts +21 -5
  111. package/dist/components/ContextMenu/ContextMenu.js +1 -0
  112. package/dist/components/ContextMenu/tests/ContextMenu.stories.d.ts +21 -5
  113. package/dist/components/ContextMenu/tests/ContextMenu.test.stories.d.ts +21 -5
  114. package/dist/components/Dismissible/Dismissible.d.ts +4 -1
  115. package/dist/components/Dismissible/Dismissible.js +1 -0
  116. package/dist/components/Dismissible/tests/Dismissible.stories.d.ts +4 -1
  117. package/dist/components/Dismissible/tests/Dismissible.stories.js +1 -1
  118. package/dist/components/Dismissible/tests/Dismissible.test.stories.d.ts +4 -1
  119. package/dist/components/Dismissible/tests/Dismissible.test.stories.js +1 -1
  120. package/dist/components/Divider/Divider.d.ts +4 -1
  121. package/dist/components/Divider/Divider.js +1 -0
  122. package/dist/components/Divider/tests/Divider.stories.d.ts +4 -1
  123. package/dist/components/Divider/tests/Divider.test.stories.d.ts +4 -1
  124. package/dist/components/DropdownMenu/DropdownMenu.d.ts +29 -7
  125. package/dist/components/DropdownMenu/DropdownMenu.js +7 -1
  126. package/dist/components/DropdownMenu/tests/DropdownMenu.stories.d.ts +29 -7
  127. package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.d.ts +29 -7
  128. package/dist/components/FileUpload/FileUpload.d.ts +5 -1
  129. package/dist/components/FileUpload/FileUpload.js +2 -0
  130. package/dist/components/FileUpload/tests/FileUpload.stories.d.ts +5 -1
  131. package/dist/components/FileUpload/tests/FileUpload.test.stories.d.ts +5 -1
  132. package/dist/components/FormControl/FormControl.context.d.ts +4 -0
  133. package/dist/components/FormControl/FormControl.js +1 -0
  134. package/dist/components/FormControl/FormControlError.d.ts +4 -1
  135. package/dist/components/FormControl/FormControlError.js +1 -0
  136. package/dist/components/FormControl/FormControlHelper.d.ts +4 -1
  137. package/dist/components/FormControl/FormControlHelper.js +1 -0
  138. package/dist/components/FormControl/FormControlLabel.d.ts +4 -1
  139. package/dist/components/FormControl/FormControlLabel.js +1 -0
  140. package/dist/components/FormControl/tests/FormControl.stories.js +1 -1
  141. package/dist/components/FormControl/tests/FormControl.test.stories.js +1 -1
  142. package/dist/components/Grid/Grid.d.ts +5 -1
  143. package/dist/components/Grid/Grid.js +10 -2
  144. package/dist/components/Grid/tests/Grid.stories.d.ts +5 -1
  145. package/dist/components/Grid/tests/Grid.stories.js +1 -1
  146. package/dist/components/Grid/tests/Grid.test.stories.d.ts +5 -1
  147. package/dist/components/Grid/tests/Grid.test.stories.js +1 -1
  148. package/dist/components/Hidden/Hidden.d.ts +4 -1
  149. package/dist/components/Hidden/Hidden.js +1 -0
  150. package/dist/components/Hidden/tests/Hidden.stories.d.ts +4 -1
  151. package/dist/components/Hidden/tests/Hidden.stories.js +1 -1
  152. package/dist/components/Hidden/tests/Hidden.test.stories.d.ts +4 -1
  153. package/dist/components/Hidden/tests/Hidden.test.stories.js +1 -1
  154. package/dist/components/HiddenVisually/HiddenVisually.d.ts +4 -1
  155. package/dist/components/HiddenVisually/HiddenVisually.js +1 -0
  156. package/dist/components/HiddenVisually/tests/HiddenVisually.stories.d.ts +4 -1
  157. package/dist/components/HiddenVisually/tests/HiddenVisually.stories.js +1 -1
  158. package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.d.ts +4 -1
  159. package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.js +1 -1
  160. package/dist/components/Hotkey/Hotkey.d.ts +4 -1
  161. package/dist/components/Hotkey/Hotkey.js +1 -0
  162. package/dist/components/Hotkey/tests/Hotkey.stories.d.ts +4 -1
  163. package/dist/components/Hotkey/tests/Hotkey.test.stories.d.ts +4 -1
  164. package/dist/components/Icon/Icon.d.ts +4 -1
  165. package/dist/components/Icon/Icon.js +2 -3
  166. package/dist/components/Icon/tests/Icon.stories.d.ts +4 -1
  167. package/dist/components/Icon/tests/Icon.stories.js +1 -1
  168. package/dist/components/Icon/tests/Icon.test.stories.d.ts +4 -1
  169. package/dist/components/Icon/tests/Icon.test.stories.js +1 -1
  170. package/dist/components/Image/Image.d.ts +4 -1
  171. package/dist/components/Image/Image.js +1 -0
  172. package/dist/components/Image/tests/Image.stories.d.ts +4 -1
  173. package/dist/components/Image/tests/Image.stories.js +1 -1
  174. package/dist/components/Image/tests/Image.test.stories.d.ts +4 -1
  175. package/dist/components/Image/tests/Image.test.stories.js +1 -1
  176. package/dist/components/Link/Link.js +1 -0
  177. package/dist/components/Loader/Loader.d.ts +4 -1
  178. package/dist/components/Loader/Loader.js +1 -0
  179. package/dist/components/Loader/tests/Loader.stories.d.ts +4 -1
  180. package/dist/components/Loader/tests/Loader.test.stories.d.ts +4 -1
  181. package/dist/components/MenuItem/MenuItem.js +1 -0
  182. package/dist/components/MenuItem/MenuItemAligner.d.ts +4 -1
  183. package/dist/components/MenuItem/MenuItemAligner.js +1 -0
  184. package/dist/components/Modal/Modal.d.ts +9 -2
  185. package/dist/components/Modal/Modal.js +3 -0
  186. package/dist/components/Modal/tests/Modal.stories.d.ts +9 -2
  187. package/dist/components/Modal/tests/Modal.test.stories.d.ts +9 -2
  188. package/dist/components/Overlay/Overlay.d.ts +4 -1
  189. package/dist/components/Overlay/Overlay.js +1 -0
  190. package/dist/components/Overlay/tests/Overlay.stories.d.ts +4 -1
  191. package/dist/components/Overlay/tests/Overlay.stories.js +1 -1
  192. package/dist/components/Overlay/tests/Overlay.test.stories.d.ts +4 -1
  193. package/dist/components/Overlay/tests/Overlay.test.stories.js +1 -1
  194. package/dist/components/Pagination/Pagination.d.ts +4 -1
  195. package/dist/components/Pagination/Pagination.js +1 -0
  196. package/dist/components/Pagination/PaginationControlled.d.ts +4 -1
  197. package/dist/components/Pagination/PaginationControlled.js +1 -0
  198. package/dist/components/Pagination/PaginationUncontrolled.d.ts +4 -1
  199. package/dist/components/Pagination/PaginationUncontrolled.js +1 -0
  200. package/dist/components/Pagination/tests/Pagination.stories.d.ts +4 -1
  201. package/dist/components/Pagination/tests/Pagination.test.stories.d.ts +4 -1
  202. package/dist/components/PinField/PinField.d.ts +4 -1
  203. package/dist/components/PinField/PinField.js +1 -0
  204. package/dist/components/PinField/PinFieldControlled.d.ts +4 -1
  205. package/dist/components/PinField/PinFieldControlled.js +1 -1
  206. package/dist/components/PinField/PinFieldUncontrolled.d.ts +4 -1
  207. package/dist/components/PinField/PinFieldUncontrolled.js +1 -0
  208. package/dist/components/PinField/tests/PinField.stories.d.ts +4 -1
  209. package/dist/components/PinField/tests/PinField.test.stories.d.ts +4 -1
  210. package/dist/components/Popover/Popover.d.ts +13 -3
  211. package/dist/components/Popover/Popover.js +2 -0
  212. package/dist/components/Popover/tests/Popover.stories.d.ts +13 -3
  213. package/dist/components/Popover/tests/Popover.test.stories.d.ts +13 -3
  214. package/dist/components/Progress/Progress.d.ts +4 -1
  215. package/dist/components/Progress/Progress.js +1 -0
  216. package/dist/components/Progress/tests/Progress.stories.d.ts +4 -1
  217. package/dist/components/Progress/tests/Progress.test.stories.d.ts +4 -1
  218. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +4 -1
  219. package/dist/components/ProgressIndicator/ProgressIndicator.js +1 -0
  220. package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.d.ts +4 -1
  221. package/dist/components/Radio/Radio.d.ts +4 -1
  222. package/dist/components/Radio/Radio.js +1 -0
  223. package/dist/components/Radio/tests/Radio.stories.d.ts +4 -1
  224. package/dist/components/Radio/tests/Radio.test.stories.d.ts +4 -1
  225. package/dist/components/RadioGroup/RadioGroup.d.ts +4 -1
  226. package/dist/components/RadioGroup/RadioGroup.js +1 -0
  227. package/dist/components/RadioGroup/RadioGroupControlled.d.ts +4 -1
  228. package/dist/components/RadioGroup/RadioGroupControlled.js +1 -0
  229. package/dist/components/RadioGroup/RadioGroupUncontrolled.d.ts +4 -1
  230. package/dist/components/RadioGroup/RadioGroupUncontrolled.js +1 -0
  231. package/dist/components/RadioGroup/tests/RadioGroup.stories.d.ts +4 -1
  232. package/dist/components/RadioGroup/tests/RadioGroup.test.stories.d.ts +4 -1
  233. package/dist/components/Reshaped/Reshaped.d.ts +4 -1
  234. package/dist/components/Reshaped/Reshaped.js +1 -0
  235. package/dist/components/Reshaped/tests/Reshaped.stories.js +1 -1
  236. package/dist/components/Resizable/Resizable.d.ts +1 -0
  237. package/dist/components/Resizable/Resizable.js +3 -1
  238. package/dist/components/Resizable/Resizable.types.d.ts +1 -1
  239. package/dist/components/Resizable/tests/Resizable.stories.d.ts +1 -0
  240. package/dist/components/Resizable/tests/Resizable.test.stories.d.ts +1 -0
  241. package/dist/components/Scrim/Scrim.d.ts +4 -1
  242. package/dist/components/Scrim/Scrim.js +1 -0
  243. package/dist/components/Scrim/tests/Scrim.stories.d.ts +4 -1
  244. package/dist/components/Scrim/tests/Scrim.test.stories.d.ts +4 -1
  245. package/dist/components/ScrollArea/ScrollArea.js +1 -0
  246. package/dist/components/ScrollArea/tests/ScrollArea.stories.js +1 -1
  247. package/dist/components/ScrollArea/tests/ScrollArea.test.stories.js +1 -1
  248. package/dist/components/Select/Select.d.ts +4 -1
  249. package/dist/components/Select/Select.js +1 -0
  250. package/dist/components/Select/tests/Select.stories.d.ts +4 -1
  251. package/dist/components/Select/tests/Select.test.stories.d.ts +4 -1
  252. package/dist/components/Skeleton/Skeleton.d.ts +4 -1
  253. package/dist/components/Skeleton/Skeleton.js +1 -0
  254. package/dist/components/Skeleton/tests/Skeleton.stories.d.ts +4 -1
  255. package/dist/components/Skeleton/tests/Skeleton.test.stories.d.ts +4 -1
  256. package/dist/components/Slider/Slider.d.ts +4 -1
  257. package/dist/components/Slider/Slider.js +1 -0
  258. package/dist/components/Slider/SliderControlled.d.ts +4 -1
  259. package/dist/components/Slider/SliderControlled.js +10 -3
  260. package/dist/components/Slider/SliderThumb.js +1 -0
  261. package/dist/components/Slider/SliderUncontrolled.d.ts +4 -1
  262. package/dist/components/Slider/SliderUncontrolled.js +1 -0
  263. package/dist/components/Slider/tests/Slider.stories.d.ts +4 -1
  264. package/dist/components/Slider/tests/Slider.test.stories.d.ts +4 -1
  265. package/dist/components/Stepper/Stepper.d.ts +5 -1
  266. package/dist/components/Stepper/Stepper.js +9 -2
  267. package/dist/components/Stepper/tests/Stepper.stories.d.ts +5 -1
  268. package/dist/components/Stepper/tests/Stepper.test.stories.d.ts +5 -1
  269. package/dist/components/Switch/Switch.d.ts +4 -1
  270. package/dist/components/Switch/Switch.js +1 -0
  271. package/dist/components/Switch/tests/Switch.stories.d.ts +4 -1
  272. package/dist/components/Switch/tests/Switch.test.stories.d.ts +4 -1
  273. package/dist/components/Table/Table.d.ts +21 -5
  274. package/dist/components/Table/Table.js +6 -0
  275. package/dist/components/Table/tests/Table.stories.d.ts +21 -5
  276. package/dist/components/Table/tests/Table.test.stories.d.ts +21 -5
  277. package/dist/components/Tabs/Tabs.d.ts +9 -2
  278. package/dist/components/Tabs/Tabs.js +1 -0
  279. package/dist/components/Tabs/TabsControlled.d.ts +4 -1
  280. package/dist/components/Tabs/TabsControlled.js +1 -0
  281. package/dist/components/Tabs/TabsItem.js +1 -0
  282. package/dist/components/Tabs/TabsList.d.ts +4 -1
  283. package/dist/components/Tabs/TabsList.js +8 -3
  284. package/dist/components/Tabs/TabsPanel.d.ts +4 -1
  285. package/dist/components/Tabs/TabsPanel.js +1 -0
  286. package/dist/components/Tabs/TabsUncontrolled.d.ts +4 -1
  287. package/dist/components/Tabs/TabsUncontrolled.js +1 -0
  288. package/dist/components/Tabs/tests/Tabs.stories.d.ts +9 -2
  289. package/dist/components/Tabs/tests/Tabs.test.stories.d.ts +9 -2
  290. package/dist/components/Text/Text.d.ts +4 -1
  291. package/dist/components/Text/Text.js +3 -4
  292. package/dist/components/Text/tests/Text.stories.d.ts +4 -1
  293. package/dist/components/Text/tests/Text.stories.js +1 -1
  294. package/dist/components/Text/tests/Text.test.stories.d.ts +4 -1
  295. package/dist/components/Text/tests/Text.test.stories.js +1 -1
  296. package/dist/components/TextArea/TextArea.d.ts +5 -1
  297. package/dist/components/TextArea/TextArea.js +1 -0
  298. package/dist/components/TextArea/tests/TextArea.stories.d.ts +5 -1
  299. package/dist/components/TextArea/tests/TextArea.test.stories.d.ts +5 -1
  300. package/dist/components/TextField/TextField.d.ts +5 -1
  301. package/dist/components/TextField/TextField.js +1 -0
  302. package/dist/components/TextField/tests/TextField.stories.d.ts +5 -1
  303. package/dist/components/TextField/tests/TextField.test.stories.d.ts +5 -1
  304. package/dist/components/Theme/GlobalColorMode.d.ts +4 -1
  305. package/dist/components/Theme/GlobalColorMode.js +1 -0
  306. package/dist/components/Theme/Theme.d.ts +4 -1
  307. package/dist/components/Theme/Theme.js +1 -0
  308. package/dist/components/Theme/tests/Theme.test.stories.d.ts +4 -1
  309. package/dist/components/Theme/tests/Theme.test.stories.js +1 -1
  310. package/dist/components/Timeline/Timeline.d.ts +5 -1
  311. package/dist/components/Timeline/Timeline.js +3 -1
  312. package/dist/components/Timeline/tests/Timeline.stories.d.ts +5 -1
  313. package/dist/components/Timeline/tests/Timeline.test.stories.d.ts +5 -1
  314. package/dist/components/Toast/Toast.d.ts +6 -3
  315. package/dist/components/Toast/Toast.js +1 -0
  316. package/dist/components/Toast/ToastContainer.d.ts +4 -1
  317. package/dist/components/Toast/ToastContainer.js +1 -0
  318. package/dist/components/Toast/ToastProvider.d.ts +4 -1
  319. package/dist/components/Toast/ToastProvider.js +9 -4
  320. package/dist/components/Toast/ToastRegion.d.ts +4 -1
  321. package/dist/components/Toast/ToastRegion.js +1 -0
  322. package/dist/components/Tooltip/Tooltip.d.ts +4 -1
  323. package/dist/components/Tooltip/Tooltip.js +1 -0
  324. package/dist/components/Tooltip/tests/Tooltip.stories.d.ts +4 -1
  325. package/dist/components/Tooltip/tests/Tooltip.test.stories.d.ts +4 -1
  326. package/dist/components/View/View.d.ts +5 -1
  327. package/dist/components/View/View.js +12 -5
  328. package/dist/components/View/tests/View.stories.d.ts +5 -1
  329. package/dist/components/View/tests/View.stories.js +1 -1
  330. package/dist/components/View/tests/View.test.stories.d.ts +5 -1
  331. package/dist/components/View/tests/View.test.stories.js +1 -1
  332. package/dist/components/_private/Aligner/Aligner.d.ts +4 -1
  333. package/dist/components/_private/Aligner/Aligner.js +1 -0
  334. package/dist/components/_private/Expandable/Expandable.d.ts +4 -1
  335. package/dist/components/_private/Expandable/Expandable.js +1 -0
  336. package/dist/components/_private/Flyout/Flyout.d.ts +9 -2
  337. package/dist/components/_private/Flyout/Flyout.js +1 -0
  338. package/dist/components/_private/Flyout/FlyoutContent.d.ts +4 -1
  339. package/dist/components/_private/Flyout/FlyoutContent.js +5 -1
  340. package/dist/components/_private/Flyout/FlyoutControlled.d.ts +5 -2
  341. package/dist/components/_private/Flyout/FlyoutControlled.js +8 -9
  342. package/dist/components/_private/Flyout/FlyoutTrigger.d.ts +4 -1
  343. package/dist/components/_private/Flyout/FlyoutTrigger.js +2 -1
  344. package/dist/components/_private/Flyout/FlyoutUncontrolled.d.ts +4 -1
  345. package/dist/components/_private/Flyout/FlyoutUncontrolled.js +1 -0
  346. package/dist/components/_private/Flyout/useFlyout.js +2 -0
  347. package/dist/components/_private/HiddenInput/HiddenInput.d.ts +4 -1
  348. package/dist/components/_private/HiddenInput/HiddenInput.js +1 -0
  349. package/dist/components/_private/Portal/Portal.d.ts +5 -1
  350. package/dist/components/_private/Portal/Portal.js +2 -0
  351. package/dist/config/tailwind.d.ts +1 -1
  352. package/dist/hooks/{useDrag.js → _private/useDrag.js} +6 -6
  353. package/dist/hooks/_private/useSingletonHotkeys.js +2 -0
  354. package/dist/hooks/tests/useDrag.stories.d.ts +26 -1
  355. package/dist/hooks/tests/useDrag.stories.js +120 -3
  356. package/dist/hooks/tests/useElementId.stories.d.ts +5 -0
  357. package/dist/hooks/tests/useElementId.stories.js +6 -2
  358. package/dist/hooks/tests/useHandlerRef.stories.d.ts +14 -0
  359. package/dist/hooks/tests/useHandlerRef.stories.js +44 -0
  360. package/dist/hooks/tests/useHotkeys.stories.d.ts +39 -1
  361. package/dist/hooks/tests/useHotkeys.stories.js +157 -38
  362. package/dist/hooks/tests/useKeyboardMode.stories.d.ts +5 -0
  363. package/dist/hooks/tests/useKeyboardMode.stories.js +6 -1
  364. package/dist/hooks/tests/useOnClickOutside.stories.d.ts +23 -0
  365. package/dist/hooks/tests/useOnClickOutside.stories.js +111 -0
  366. package/dist/hooks/tests/useRTL.stories.d.ts +5 -0
  367. package/dist/hooks/tests/useRTL.stories.js +9 -11
  368. package/dist/hooks/tests/useResponsiveClientValue.stories.d.ts +5 -0
  369. package/dist/hooks/tests/useResponsiveClientValue.stories.js +6 -1
  370. package/dist/hooks/tests/useScrollLock.stories.d.ts +7 -0
  371. package/dist/hooks/tests/useScrollLock.stories.js +47 -1
  372. package/dist/hooks/tests/useToggle.stories.d.ts +5 -0
  373. package/dist/hooks/tests/useToggle.stories.js +6 -1
  374. package/dist/hooks/useHandlerRef.js +1 -1
  375. package/dist/hooks/{_private/useOnClickOutside.d.ts → useOnClickOutside.d.ts} +3 -1
  376. package/dist/hooks/{_private/useOnClickOutside.js → useOnClickOutside.js} +13 -4
  377. package/dist/hooks/useResponsiveClientValue.d.ts +1 -1
  378. package/dist/hooks/useScrollLock.d.ts +1 -1
  379. package/dist/hooks/useScrollLock.js +2 -2
  380. package/dist/index.d.ts +8 -6
  381. package/dist/index.js +7 -4
  382. package/dist/tests/ShadowDOM.stories.js +1 -1
  383. package/dist/themes/_generator/definitions/figma.d.ts +1 -1
  384. package/dist/themes/_generator/definitions/figma.js +6 -5
  385. package/dist/themes/_generator/tests/themes.stories.js +1 -1
  386. package/dist/themes/_generator/utilities/color.js +11 -11
  387. package/dist/themes/_generator/utilities/generateBackgroundColors.js +0 -2
  388. package/dist/themes/_generator/utilities/generateColors.js +1 -1
  389. package/dist/themes/_generator/utilities/generateUnits.js +0 -1
  390. package/dist/themes/_generator/utilities/mergeDeep.js +1 -1
  391. package/dist/themes/_generator/utilities/resolveTokenReference.js +2 -0
  392. package/dist/themes/figma/tailwind.css +1 -1
  393. package/dist/themes/figma/theme.css +1 -1
  394. package/dist/types/global.d.ts +2 -2
  395. package/dist/utilities/a11y/TrapFocus.d.ts +1 -1
  396. package/dist/utilities/a11y/TrapFocus.js +17 -11
  397. package/dist/utilities/a11y/tests/TrapFocus.stories.d.ts +10 -2
  398. package/dist/utilities/a11y/tests/TrapFocus.stories.js +596 -40
  399. package/dist/utilities/a11y/types.d.ts +3 -1
  400. package/dist/utilities/helpers.js +4 -1
  401. package/dist/utilities/platform.js +1 -0
  402. package/package.json +36 -40
  403. package/dist/components/Calendar/tests/Calendar.test.stories.d.ts +0 -26
  404. package/dist/components/Calendar/tests/Calendar.test.stories.js +0 -161
  405. package/dist/hooks/tests/useDrag.test.stories.d.ts +0 -26
  406. package/dist/hooks/tests/useDrag.test.stories.js +0 -120
  407. package/dist/hooks/tests/useHotkeys.test.stories.d.ts +0 -39
  408. package/dist/hooks/tests/useHotkeys.test.stories.js +0 -119
  409. /package/dist/hooks/{useDrag.d.ts → _private/useDrag.d.ts} +0 -0
@@ -0,0 +1,111 @@
1
+ import React from "react";
2
+ import { expect, fn, userEvent } from "@storybook/test";
3
+ import Button from "../../components/Button/index.js";
4
+ import useOnClickOutside from "../useOnClickOutside.js";
5
+ import View from "../../components/View/index.js";
6
+ export default {
7
+ title: "Hooks/useOnClickOutside",
8
+ parameters: {
9
+ chromatic: { disableSnapshot: true },
10
+ },
11
+ };
12
+ export const base = {
13
+ name: "base",
14
+ args: {
15
+ handleOutsideClick: fn(),
16
+ },
17
+ render: (args) => {
18
+ const ref = React.useRef(null);
19
+ const [target, setTarget] = React.useState(null);
20
+ useOnClickOutside([ref], () => {
21
+ args.handleOutsideClick();
22
+ setTarget("outside");
23
+ });
24
+ return (<View gap={4} align="start">
25
+ <Button attributes={{ ref }} onClick={() => setTarget("inside")}>
26
+ Trigger
27
+ </Button>
28
+ {target && `Clicked ${target}`}
29
+ </View>);
30
+ },
31
+ play: async ({ canvas, args }) => {
32
+ const button = canvas.getAllByRole("button")[0];
33
+ await userEvent.click(button);
34
+ expect(args.handleOutsideClick).not.toHaveBeenCalled();
35
+ await userEvent.click(document.body);
36
+ expect(args.handleOutsideClick).toHaveBeenCalledTimes(1);
37
+ expect(args.handleOutsideClick).toHaveBeenCalledWith();
38
+ },
39
+ };
40
+ export const refs = {
41
+ name: "multiple refs",
42
+ args: {
43
+ handleOutsideClick: fn(),
44
+ },
45
+ render: (args) => {
46
+ const ref = React.useRef(null);
47
+ const ref2 = React.useRef(null);
48
+ useOnClickOutside([ref, ref2], () => {
49
+ args.handleOutsideClick();
50
+ });
51
+ return (<View gap={4} align="start">
52
+ <Button attributes={{ ref }}>Trigger</Button>
53
+ <Button attributes={{ ref: ref2 }}>Trigger 2</Button>
54
+ </View>);
55
+ },
56
+ play: async ({ canvas, args }) => {
57
+ const [button, button2] = canvas.getAllByRole("button");
58
+ await userEvent.click(button);
59
+ expect(args.handleOutsideClick).not.toHaveBeenCalled();
60
+ await userEvent.click(button2);
61
+ expect(args.handleOutsideClick).not.toHaveBeenCalled();
62
+ await userEvent.click(document.body);
63
+ expect(args.handleOutsideClick).toHaveBeenCalledTimes(1);
64
+ expect(args.handleOutsideClick).toHaveBeenCalledWith();
65
+ },
66
+ };
67
+ export const disabled = {
68
+ name: "disabled",
69
+ args: {
70
+ handleOutsideClick: fn(),
71
+ },
72
+ render: (args) => {
73
+ const ref = React.useRef(null);
74
+ useOnClickOutside([ref], () => {
75
+ args.handleOutsideClick();
76
+ }, {
77
+ disabled: true,
78
+ });
79
+ return (<View gap={4} align="start">
80
+ <Button attributes={{ ref }}>Trigger</Button>
81
+ </View>);
82
+ },
83
+ play: async ({ args }) => {
84
+ await userEvent.click(document.body);
85
+ expect(args.handleOutsideClick).not.toHaveBeenCalled();
86
+ },
87
+ };
88
+ export const deps = {
89
+ name: "test: handler uses latest state",
90
+ args: {
91
+ handleOutsideClick: fn(),
92
+ },
93
+ render: (args) => {
94
+ const ref = React.useRef(null);
95
+ const [count, setCount] = React.useState(0);
96
+ useOnClickOutside([ref], () => {
97
+ args.handleOutsideClick({ count });
98
+ });
99
+ return (<Button attributes={{ ref }} onClick={() => setCount((prev) => prev + 1)}>
100
+ Trigger
101
+ </Button>);
102
+ },
103
+ play: async ({ canvas, args }) => {
104
+ const button = canvas.getAllByRole("button")[0];
105
+ await userEvent.click(document.body);
106
+ expect(args.handleOutsideClick).toHaveBeenLastCalledWith({ count: 0 });
107
+ await userEvent.click(button);
108
+ await userEvent.click(document.body);
109
+ expect(args.handleOutsideClick).toHaveBeenLastCalledWith({ count: 1 });
110
+ },
111
+ };
@@ -1,6 +1,11 @@
1
1
  import { StoryObj } from "@storybook/react";
2
2
  declare const _default: {
3
3
  title: string;
4
+ parameters: {
5
+ chromatic: {
6
+ disableSnapshot: boolean;
7
+ };
8
+ };
4
9
  };
5
10
  export default _default;
6
11
  export declare const setRTL: StoryObj;
@@ -1,8 +1,12 @@
1
1
  import React from "react";
2
- import { expect, waitFor } from "@storybook/test";
3
- import Reshaped from "../../components/Reshaped/index.js";
2
+ import { expect } from "@storybook/test";
4
3
  import useRTL from "../useRTL.js";
5
- export default { title: "Hooks/useRTL" };
4
+ export default {
5
+ title: "Hooks/useRTL",
6
+ parameters: {
7
+ chromatic: { disableSnapshot: true },
8
+ },
9
+ };
6
10
  const Component = () => {
7
11
  const [rtl, setRTL] = useRTL();
8
12
  React.useEffect(() => {
@@ -12,14 +16,8 @@ const Component = () => {
12
16
  };
13
17
  export const setRTL = {
14
18
  name: "setRTL",
15
- render: () => {
16
- return (<Reshaped theme="reshaped">
17
- <Component />
18
- </Reshaped>);
19
- },
19
+ render: () => <Component />,
20
20
  play: async () => {
21
- waitFor(() => {
22
- expect(document.documentElement).toHaveAttribute("dir", "rtl");
23
- });
21
+ expect(document.documentElement).toHaveAttribute("dir", "rtl");
24
22
  },
25
23
  };
@@ -1,5 +1,10 @@
1
1
  declare const _default: {
2
2
  title: string;
3
+ parameters: {
4
+ chromatic: {
5
+ disableSnapshot: boolean;
6
+ };
7
+ };
3
8
  };
4
9
  export default _default;
5
10
  export declare const base: {
@@ -1,6 +1,11 @@
1
1
  import useResponsiveClientValue from "../useResponsiveClientValue.js";
2
2
  import View from "../../components/View/index.js";
3
- export default { title: "Hooks/useResponsiveClientValue" };
3
+ export default {
4
+ title: "Hooks/useResponsiveClientValue",
5
+ parameters: {
6
+ chromatic: { disableSnapshot: true },
7
+ },
8
+ };
4
9
  export const base = {
5
10
  name: "base",
6
11
  render: () => {
@@ -1,6 +1,13 @@
1
1
  import { StoryObj } from "@storybook/react";
2
2
  declare const _default: {
3
3
  title: string;
4
+ parameters: {
5
+ chromatic: {
6
+ disableSnapshot: boolean;
7
+ };
8
+ };
4
9
  };
5
10
  export default _default;
6
11
  export declare const base: StoryObj;
12
+ export declare const origin: StoryObj;
13
+ export declare const container: StoryObj;
@@ -2,7 +2,13 @@ import React from "react";
2
2
  import { expect, userEvent } from "@storybook/test";
3
3
  import Button from "../../components/Button/index.js";
4
4
  import useScrollLock from "../useScrollLock.js";
5
- export default { title: "Hooks/useScrollLock" };
5
+ import View from "../../components/View/index.js";
6
+ export default {
7
+ title: "Hooks/useScrollLock",
8
+ parameters: {
9
+ chromatic: { disableSnapshot: true },
10
+ },
11
+ };
6
12
  export const base = {
7
13
  name: "base",
8
14
  render: () => {
@@ -20,3 +26,43 @@ export const base = {
20
26
  expect(document.body).not.toHaveStyle("overflow: hidden");
21
27
  },
22
28
  };
29
+ export const origin = {
30
+ name: "originRef",
31
+ render: () => {
32
+ const originRef = React.useRef(null);
33
+ const { lockScroll, unlockScroll, scrollLocked } = useScrollLock({ originRef });
34
+ return (<View overflow="auto" height={25} attributes={{ ref: originRef, "data-testid": "root" }}>
35
+ <View height={50} padding={4} backgroundColor="neutral-faded" borderRadius="medium">
36
+ <Button onClick={scrollLocked ? unlockScroll : lockScroll}>Toggle</Button>
37
+ </View>
38
+ </View>);
39
+ },
40
+ play: async ({ canvas }) => {
41
+ const button = canvas.getAllByRole("button")[0];
42
+ const root = canvas.getByTestId("root");
43
+ await userEvent.click(button);
44
+ expect(document.body).not.toHaveStyle("overflow: hidden");
45
+ expect(root).toHaveStyle("overflow: hidden");
46
+ await userEvent.click(button);
47
+ expect(root).not.toHaveStyle("overflow: hidden");
48
+ },
49
+ };
50
+ export const container = {
51
+ name: "containerRef",
52
+ render: () => {
53
+ const containerRef = React.useRef(null);
54
+ const { lockScroll, unlockScroll, scrollLocked } = useScrollLock({ containerRef });
55
+ return (<View height={25} attributes={{ ref: containerRef, "data-testid": "root" }}>
56
+ <Button onClick={scrollLocked ? unlockScroll : lockScroll}>Toggle</Button>
57
+ </View>);
58
+ },
59
+ play: async ({ canvas }) => {
60
+ const button = canvas.getAllByRole("button")[0];
61
+ const root = canvas.getByTestId("root");
62
+ await userEvent.click(button);
63
+ expect(document.body).not.toHaveStyle("overflow: hidden");
64
+ expect(root).toHaveStyle("overflow: hidden");
65
+ await userEvent.click(button);
66
+ expect(root).not.toHaveStyle("overflow: hidden");
67
+ },
68
+ };
@@ -1,6 +1,11 @@
1
1
  import { StoryObj } from "@storybook/react";
2
2
  declare const _default: {
3
3
  title: string;
4
+ parameters: {
5
+ chromatic: {
6
+ disableSnapshot: boolean;
7
+ };
8
+ };
4
9
  };
5
10
  export default _default;
6
11
  export declare const toggle: StoryObj;
@@ -2,7 +2,12 @@ import React from "react";
2
2
  import { expect, userEvent } from "@storybook/test";
3
3
  import Button from "../../components/Button/index.js";
4
4
  import useToggle from "../useToggle.js";
5
- export default { title: "Hooks/useToggle" };
5
+ export default {
6
+ title: "Hooks/useToggle",
7
+ parameters: {
8
+ chromatic: { disableSnapshot: true },
9
+ },
10
+ };
6
11
  export const toggle = {
7
12
  name: "toggle",
8
13
  render: () => {
@@ -10,7 +10,7 @@ const useHandlerRef = (cb) => {
10
10
  // Update the callback on every render, keeping the ref instance the same
11
11
  useIsomorphicLayoutEffect(() => {
12
12
  ref.current = cb;
13
- });
13
+ }, [cb]);
14
14
  return ref;
15
15
  };
16
16
  export default useHandlerRef;
@@ -1,3 +1,5 @@
1
1
  import React from "react";
2
- declare const useOnClickOutside: (refs: React.RefObject<HTMLElement | null>[], handler: (event: Event) => void, deps: any[]) => void;
2
+ declare const useOnClickOutside: (refs: React.RefObject<HTMLElement | null>[], handler: (event: Event) => void, options?: {
3
+ disabled?: boolean;
4
+ }) => void;
3
5
  export default useOnClickOutside;
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
- import useHandlerRef from "../useHandlerRef.js";
3
- const useOnClickOutside = (refs, handler, deps) => {
2
+ import useHandlerRef from "./useHandlerRef.js";
3
+ const useOnClickOutside = (refs, handler, options) => {
4
+ const { disabled } = options || {};
4
5
  const handlerRef = useHandlerRef(handler);
5
6
  /**
6
7
  * We're checking the element position in the DOM on mousedown to make sure
@@ -9,6 +10,10 @@ const useOnClickOutside = (refs, handler, deps) => {
9
10
  */
10
11
  const isMouseDownInsideRef = React.useRef(false);
11
12
  React.useEffect(() => {
13
+ /**
14
+ * Not checking for disabled here since some components can enable the hook
15
+ * after it was clicked
16
+ */
12
17
  const handleMouseDown = (event) => {
13
18
  isMouseDownInsideRef.current = false;
14
19
  const clickedEl = event.composedPath()[0];
@@ -31,16 +36,20 @@ const useOnClickOutside = (refs, handler, deps) => {
31
36
  React.useEffect(() => {
32
37
  if (!handlerRef.current)
33
38
  return;
39
+ if (disabled)
40
+ return;
34
41
  const handleClick = (event) => {
42
+ if (!event.pointerType)
43
+ return;
35
44
  if (event.button === 2)
36
45
  return;
37
46
  if (isMouseDownInsideRef.current)
38
47
  return;
39
48
  handlerRef.current?.(event);
40
49
  };
41
- document.addEventListener("click", handleClick);
50
+ document.addEventListener("click", handleClick, { passive: true });
42
51
  return () => document.removeEventListener("click", handleClick);
43
52
  // eslint-disable-next-line react-hooks/exhaustive-deps
44
- }, [handlerRef, ...refs, ...deps]);
53
+ }, [handlerRef, disabled, ...refs]);
45
54
  };
46
55
  export default useOnClickOutside;
@@ -1,3 +1,3 @@
1
1
  import type * as G from "../types/global";
2
- declare const useResponsiveClientValue: <T extends unknown>(value: G.Responsive<T>) => T | undefined;
2
+ declare const useResponsiveClientValue: <T>(value: G.Responsive<T>) => T | undefined;
3
3
  export default useResponsiveClientValue;
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- declare const useScrollLock: (props?: {
2
+ declare const useScrollLock: (options?: {
3
3
  containerRef?: React.RefObject<HTMLElement | null>;
4
4
  originRef?: React.RefObject<HTMLElement | null>;
5
5
  }) => {
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import React from "react";
3
3
  import { lockScroll, unlockScroll } from "../utilities/scroll/index.js";
4
- const useScrollLock = (props) => {
5
- const { containerRef, originRef } = props || {};
4
+ const useScrollLock = (options) => {
5
+ const { containerRef, originRef } = options || {};
6
6
  const [locked, setLocked] = React.useState(false);
7
7
  const handleLockScroll = React.useCallback(() => {
8
8
  lockScroll({
package/dist/index.d.ts CHANGED
@@ -119,19 +119,21 @@ export type { ViewProps, ViewItemProps } from "./components/View";
119
119
  * Hooks
120
120
  */
121
121
  export { useFormControl } from "./components/FormControl";
122
- export { default as Theme, useTheme } from "./components/Theme";
123
- export type { ThemeProps } from "./components/Theme";
124
- export { default as useScrollLock } from "./hooks/useScrollLock";
125
- export { default as useToggle } from "./hooks/useToggle";
126
- export { default as useRTL } from "./hooks/useRTL";
127
- export { default as useIsomorphicLayoutEffect } from "./hooks/useIsomorphicLayoutEffect";
122
+ export { default as Theme, useTheme, type ThemeProps } from "./components/Theme";
123
+ export { default as useHandlerRef } from "./hooks/useHandlerRef";
128
124
  export { default as useHotkeys } from "./hooks/useHotkeys";
125
+ export { default as useIsomorphicLayoutEffect } from "./hooks/useIsomorphicLayoutEffect";
129
126
  export { default as useKeyboardMode } from "./hooks/useKeyboardMode";
127
+ export { default as useOnClickOutside } from "./hooks/useOnClickOutside";
130
128
  export { default as useResponsiveClientValue } from "./hooks/useResponsiveClientValue";
129
+ export { default as useRTL } from "./hooks/useRTL";
130
+ export { default as useScrollLock } from "./hooks/useScrollLock";
131
+ export { default as useToggle } from "./hooks/useToggle";
131
132
  /**
132
133
  * Utilities
133
134
  */
134
135
  export { classNames, responsiveClassNames, responsivePropDependency } from "./utilities/helpers";
136
+ export { TrapFocus } from "./utilities/a11y";
135
137
  /**
136
138
  * Types
137
139
  */
package/dist/index.js CHANGED
@@ -63,17 +63,20 @@ export { default as View } from "./components/View/index.js";
63
63
  */
64
64
  export { useFormControl } from "./components/FormControl/index.js";
65
65
  export { default as Theme, useTheme } from "./components/Theme/index.js";
66
- export { default as useScrollLock } from "./hooks/useScrollLock.js";
67
- export { default as useToggle } from "./hooks/useToggle.js";
68
- export { default as useRTL } from "./hooks/useRTL.js";
69
- export { default as useIsomorphicLayoutEffect } from "./hooks/useIsomorphicLayoutEffect.js";
66
+ export { default as useHandlerRef } from "./hooks/useHandlerRef.js";
70
67
  export { default as useHotkeys } from "./hooks/useHotkeys.js";
68
+ export { default as useIsomorphicLayoutEffect } from "./hooks/useIsomorphicLayoutEffect.js";
71
69
  export { default as useKeyboardMode } from "./hooks/useKeyboardMode.js";
70
+ export { default as useOnClickOutside } from "./hooks/useOnClickOutside.js";
72
71
  export { default as useResponsiveClientValue } from "./hooks/useResponsiveClientValue.js";
72
+ export { default as useRTL } from "./hooks/useRTL.js";
73
+ export { default as useScrollLock } from "./hooks/useScrollLock.js";
74
+ export { default as useToggle } from "./hooks/useToggle.js";
73
75
  /**
74
76
  * Utilities
75
77
  */
76
78
  export { classNames, responsiveClassNames, responsivePropDependency } from "./utilities/helpers.js";
79
+ export { TrapFocus } from "./utilities/a11y/index.js";
77
80
  /**
78
81
  * Dev utilities
79
82
  */
@@ -9,7 +9,7 @@ import Select from "../components/Select/index.js";
9
9
  import Button from "../components/Button/index.js";
10
10
  import Tooltip from "../components/Tooltip/index.js";
11
11
  export default {
12
- title: "Meta/ShadowDOM",
12
+ title: "Internal/ShadowDOM",
13
13
  };
14
14
  const getStylesData = () => {
15
15
  const sourceStylesContainer = document.head;
@@ -1,3 +1,3 @@
1
1
  import type { ThemeDefinition } from "../tokens/types";
2
- declare const theme: ThemeDefinition;
2
+ declare const theme: Partial<ThemeDefinition>;
3
3
  export default theme;
@@ -99,7 +99,6 @@ const theme = {
99
99
  radiusMedium: { px: 4 },
100
100
  radiusLarge: { px: 4 },
101
101
  },
102
- // @ts-ignore
103
102
  color: {
104
103
  foregroundNeutral: { hex: "#191919", hexDark: "#FFFFFF" },
105
104
  foregroundNeutralFaded: { hex: "#474747", hexDark: "#B2B2B2" },
@@ -107,20 +106,19 @@ const theme = {
107
106
  foregroundPrimary: { hex: "#007BE5", hexDark: "#7CC4F8" },
108
107
  foregroundPositive: { hex: "#009951", hexDark: "#79D297" },
109
108
  foregroundCritical: { hex: "#DC3412", hexDark: "#FCA397" },
109
+ foregroundWarning: { hex: "#7b6305", hexDark: "#b4920c" },
110
110
  backgroundNeutral: { hex: "#DFE2EA", hexDark: "#444444" },
111
111
  backgroundNeutralFaded: { hex: "#F5F5F5", hexDark: "#383838" },
112
- backgroundNeutralHighlighted: { hex: "#D4D8E3", hexDark: "#525252" },
113
112
  backgroundDisabled: { hex: "#e4e4e4", hexDark: "#474747" },
114
113
  backgroundDisabledFaded: { hex: "#F5F5F5", hexDark: "#3A3A3A" },
115
114
  backgroundPrimary: { hex: "#0D99FF", hexDark: "#0C8CE9" },
116
- backgroundPrimaryHighlighted: { hex: "#007BE5", hexDark: "#0A6DC2" },
117
115
  backgroundPrimaryFaded: { hex: "#E5F4FF", hexDark: "#394360" },
118
116
  backgroundPositive: { hex: "#14AE5C", hexDark: "#198F51" },
119
117
  backgroundPositiveFaded: { hex: "#DAECDF", hexDark: "#3d5749" },
120
- backgroundPositiveHighlighted: { hex: "#009951", hexDark: "#078348" },
121
118
  backgroundCritical: { hex: "#F24822", hexDark: "#E03E1A" },
122
119
  backgroundCriticalFaded: { hex: "#FFE2E0", hexDark: "#60332A" },
123
- backgroundCriticalHighlighted: { hex: "#DC3412", hexDark: "#C4381C" },
120
+ backgroundWarning: { hex: "#facc15", hexDark: "#f1c512" },
121
+ backgroundWarningFaded: { hex: "#fffae9", hexDark: "#2c271f" },
124
122
  borderNeutral: { hex: "#E6E6E6", hexDark: "#444444" },
125
123
  borderNeutralFaded: { hex: "#E6E6E6", hexDark: "#444444" },
126
124
  borderDisabled: { hex: "#E6E6E6", hexDark: "#3E3E3E" },
@@ -130,12 +128,15 @@ const theme = {
130
128
  borderPositiveFaded: { hex: "#BBDDC6", hexDark: "#086338" },
131
129
  borderCritical: { hex: "#DC3412", hexDark: "#FCA397" },
132
130
  borderCriticalFaded: { hex: "#FFC7C2", hexDark: "#803226" },
131
+ borderWarning: { hex: "#cfa90f", hexDark: "#b4920a" },
132
+ borderWarningFaded: { hex: "#ece2c4", hexDark: "#453c1e" },
133
133
  backgroundPage: { hex: "#FFFFFF", hexDark: "#2C2C2C" },
134
134
  backgroundPageFaded: { hex: "#FAFAFA", hexDark: "#1E1E1E" },
135
135
  backgroundElevationBase: { hex: "#FFFFFF", hexDark: "#2C2C2C" },
136
136
  backgroundElevationRaised: { hex: "#FFFFFF", hexDark: "#2C2C2C" },
137
137
  backgroundElevationOverlay: { hex: "#FFFFFF", hexDark: "#2C2C2C" },
138
138
  onBackgroundPrimary: { hex: "#FFFFFF" },
139
+ brand: { hex: "#0D99FF" },
139
140
  black: { hex: "#000000" },
140
141
  white: { hex: "#FFFFFF" },
141
142
  },
@@ -14,7 +14,7 @@ import Link from "../../../components/Link/index.js";
14
14
  import Text from "../../../components/Text/index.js";
15
15
  import { getThemeCSS, generateThemeColors, baseThemeDefinition } from "../../index.js";
16
16
  export default {
17
- title: "Meta/Themes",
17
+ title: "Internal/Themes",
18
18
  parameters: {
19
19
  iframe: { url: "https://reshaped.so/docs/tokens/theming/runtime-theming" },
20
20
  a11y: {
@@ -309,17 +309,17 @@ const GREEN = 0.7152;
309
309
  const BLUE = 0.0722;
310
310
  const GAMMA = 2.4;
311
311
  function luminanceWCAG(r, g, b) {
312
- var a = [r, g, b].map((v) => {
312
+ const a = [r, g, b].map((v) => {
313
313
  v /= 255;
314
314
  return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, GAMMA);
315
315
  });
316
316
  return a[0] * RED + a[1] * GREEN + a[2] * BLUE;
317
317
  }
318
318
  function contrastWCAG(rgb1, rgb2) {
319
- var lum1 = luminanceWCAG(...rgb1);
320
- var lum2 = luminanceWCAG(...rgb2);
321
- var brightest = Math.max(lum1, lum2);
322
- var darkest = Math.min(lum1, lum2);
319
+ const lum1 = luminanceWCAG(...rgb1);
320
+ const lum2 = luminanceWCAG(...rgb2);
321
+ const brightest = Math.max(lum1, lum2);
322
+ const darkest = Math.min(lum1, lum2);
323
323
  return (brightest + 0.05) / (darkest + 0.05);
324
324
  }
325
325
  export const getOnColorWCAG = (args) => {
@@ -340,7 +340,7 @@ function luminanceAPCA({ r, g, b }) {
340
340
  }
341
341
  function contrastAPCA(backgroundLuminance, textLuminance) {
342
342
  // Calculate the contrast based on APCA
343
- let Lc = textLuminance - backgroundLuminance;
343
+ const Lc = textLuminance - backgroundLuminance;
344
344
  return Math.abs(Lc); // Return the absolute value of contrast
345
345
  }
346
346
  export const getOnColorAPCA = (args) => {
@@ -355,12 +355,12 @@ export const getOnColorAPCA = (args) => {
355
355
  b: (1 - bgAlpha) * baseColor.b + bgAlpha * bgColor.b,
356
356
  };
357
357
  // Calculate luminance for background and for white & black
358
- let backgroundLuminance = luminanceAPCA({ r, g, b });
359
- let whiteLuminance = luminanceAPCA({ r: 255, g: 255, b: 255 });
360
- let blackLuminance = luminanceAPCA({ r: 0, g: 0, b: 0 });
358
+ const backgroundLuminance = luminanceAPCA({ r, g, b });
359
+ const whiteLuminance = luminanceAPCA({ r: 255, g: 255, b: 255 });
360
+ const blackLuminance = luminanceAPCA({ r: 0, g: 0, b: 0 });
361
361
  // Calculate contrast
362
- let contrastWithWhite = contrastAPCA(backgroundLuminance, whiteLuminance);
363
- let contrastWithBlack = contrastAPCA(backgroundLuminance, blackLuminance);
362
+ const contrastWithWhite = contrastAPCA(backgroundLuminance, whiteLuminance);
363
+ const contrastWithBlack = contrastAPCA(backgroundLuminance, blackLuminance);
364
364
  // Choose the color with higher contrast
365
365
  return contrastWithWhite > contrastWithBlack ? lightHexColor : darkHexColor;
366
366
  };
@@ -39,7 +39,6 @@ const generateBackgroundColors = (definition, themeOptions) => {
39
39
  algorithm: themeOptions?.colorContrastAlgorithm,
40
40
  ...onColorHexMap,
41
41
  });
42
- // eslint-disable-next-line no-param-reassign
43
42
  definition.color[generatedForegroundName] = {
44
43
  hex,
45
44
  hexDark: hex !== hexDark ? hexDark : undefined,
@@ -48,7 +47,6 @@ const generateBackgroundColors = (definition, themeOptions) => {
48
47
  if (needsRGB) {
49
48
  const rgb = hexToRgb(bgToken.hex);
50
49
  const rgbDark = bgToken.hexDark && hexToRgb(bgToken.hexDark);
51
- // eslint-disable-next-line no-param-reassign
52
50
  definition.color[generatedRGBName] = {
53
51
  hex: `${rgb.r}, ${rgb.g}, ${rgb.b}`,
54
52
  hexDark: rgbDark && `${rgbDark.r}, ${rgbDark.g}, ${rgbDark.b}`,
@@ -2,7 +2,7 @@ import { parseHex, convertOklabToOkhsl, convertLrgbToOklab, convertRgbToLrgb, co
2
2
  const hexToOkHsl = (hex) => {
3
3
  const rgb = parseHex(hex);
4
4
  if (!rgb)
5
- throw new Error(`[Reshaped] Can\'t generate rgb from ${hex} color`);
5
+ throw new Error(`[Reshaped] Can't generate rgb from ${hex} color`);
6
6
  const lrgb = convertRgbToLrgb(rgb);
7
7
  const oklab = convertLrgbToOklab(lrgb);
8
8
  const okhsl = convertOklabToOkhsl(oklab);
@@ -5,7 +5,6 @@ const generateUnits = (definition) => {
5
5
  return;
6
6
  for (let i = 1; i <= 10; i += 1) {
7
7
  const generatedName = `x${i}`;
8
- // eslint-disable-next-line no-param-reassign
9
8
  definition.unit[generatedName] = {
10
9
  px: baseValue * i,
11
10
  };
@@ -1,5 +1,5 @@
1
1
  const isObject = (item) => {
2
- return item && typeof item === "object" && !Array.isArray(item);
2
+ return !!item && typeof item === "object" && !Array.isArray(item);
3
3
  };
4
4
  const mergeDeep = (target, ...sources) => {
5
5
  if (!sources.length)
@@ -4,6 +4,8 @@ const resolveTokenReference = (theme, tokenType, ref) => {
4
4
  Object.keys(tokenGroup).forEach((tokenName) => {
5
5
  if (referencedToken)
6
6
  return;
7
+ // Relaxed runtime group resolving
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
9
  if (tokenName === ref)
8
10
  referencedToken = tokenGroup[tokenName];
9
11
  });
@@ -1 +1 @@
1
- @theme{--background-color-primary:var(--rs-color-background-primary);--background-color-primary-faded:var(--rs-color-background-primary-faded);--border-color-primary:var(--rs-color-border-primary);--border-color-primary-faded:var(--rs-color-border-primary-faded);--text-color-primary:var(--rs-color-foreground-primary);--background-color-critical:var(--rs-color-background-critical);--background-color-critical-faded:var(--rs-color-background-critical-faded);--border-color-critical:var(--rs-color-border-critical);--border-color-critical-faded:var(--rs-color-border-critical-faded);--text-color-critical:var(--rs-color-foreground-critical);--background-color-warning:var(--rs-color-background-warning);--background-color-warning-faded:var(--rs-color-background-warning-faded);--border-color-warning:var(--rs-color-border-warning);--border-color-warning-faded:var(--rs-color-border-warning-faded);--text-color-warning:var(--rs-color-foreground-warning);--background-color-positive:var(--rs-color-background-positive);--background-color-positive-faded:var(--rs-color-background-positive-faded);--border-color-positive:var(--rs-color-border-positive);--border-color-positive-faded:var(--rs-color-border-positive-faded);--text-color-positive:var(--rs-color-foreground-positive);--background-color-neutral:var(--rs-color-background-neutral);--background-color-neutral-faded:var(--rs-color-background-neutral-faded);--border-color-neutral:var(--rs-color-border-neutral);--border-color-neutral-faded:var(--rs-color-border-neutral-faded);--text-color-neutral:var(--rs-color-foreground-neutral);--text-color-neutral-faded:var(--rs-color-foreground-neutral-faded);--background-color-disabled:var(--rs-color-background-disabled);--background-color-disabled-faded:var(--rs-color-background-disabled-faded);--border-color-disabled:var(--rs-color-border-disabled);--text-color-disabled:var(--rs-color-foreground-disabled);--background-color-elevation-base:var(--rs-color-background-elevation-base);--background-color-elevation-raised:var(--rs-color-background-elevation-raised);--background-color-elevation-overlay:var(--rs-color-background-elevation-overlay);--background-color-page:var(--rs-color-background-page);--background-color-page-faded:var(--rs-color-background-page-faded);--color-brand:var(--rs-color-brand);--color-white:var(--rs-color-white);--color-black:var(--rs-color-black);--background-color-neutral-highlighted:var(--rs-color-background-neutral-highlighted);--background-color-primary-highlighted:var(--rs-color-background-primary-highlighted);--background-color-positive-highlighted:var(--rs-color-background-positive-highlighted);--background-color-critical-highlighted:var(--rs-color-background-critical-highlighted);--text-color-on-primary:var(--rs-color-on-background-primary);--text-color-on-critical:var(--rs-color-on-background-critical);--text-color-on-warning:var(--rs-color-on-background-warning);--text-color-on-positive:var(--rs-color-on-background-positive);--text-color-on-neutral:var(--rs-color-on-background-neutral);--text-color-on-brand:var(--rs-color-on-brand);--radius-small:var(--rs-radius-small);--radius-medium:var(--rs-radius-medium);--radius-large:var(--rs-radius-large);--spacing-0:0px;--spacing-x1:var(--rs-unit-x1);--spacing-x2:var(--rs-unit-x2);--spacing-x3:var(--rs-unit-x3);--spacing-x4:var(--rs-unit-x4);--spacing-x5:var(--rs-unit-x5);--spacing-x6:var(--rs-unit-x6);--spacing-x7:var(--rs-unit-x7);--spacing-x8:var(--rs-unit-x8);--spacing-x9:var(--rs-unit-x9);--spacing-x10:var(--rs-unit-x10);--shadow-raised:var(--rs-shadow-raised);--shadow-overlay:var(--rs-shadow-overlay);--breakpoint-m:660px;--breakpoint-l:900px;--breakpoint-xl:1280px}
1
+ @theme{--background-color-primary:var(--rs-color-background-primary);--background-color-primary-faded:var(--rs-color-background-primary-faded);--border-color-primary:var(--rs-color-border-primary);--border-color-primary-faded:var(--rs-color-border-primary-faded);--text-color-primary:var(--rs-color-foreground-primary);--background-color-critical:var(--rs-color-background-critical);--background-color-critical-faded:var(--rs-color-background-critical-faded);--border-color-critical:var(--rs-color-border-critical);--border-color-critical-faded:var(--rs-color-border-critical-faded);--text-color-critical:var(--rs-color-foreground-critical);--background-color-warning:var(--rs-color-background-warning);--background-color-warning-faded:var(--rs-color-background-warning-faded);--border-color-warning:var(--rs-color-border-warning);--border-color-warning-faded:var(--rs-color-border-warning-faded);--text-color-warning:var(--rs-color-foreground-warning);--background-color-positive:var(--rs-color-background-positive);--background-color-positive-faded:var(--rs-color-background-positive-faded);--border-color-positive:var(--rs-color-border-positive);--border-color-positive-faded:var(--rs-color-border-positive-faded);--text-color-positive:var(--rs-color-foreground-positive);--background-color-neutral:var(--rs-color-background-neutral);--background-color-neutral-faded:var(--rs-color-background-neutral-faded);--border-color-neutral:var(--rs-color-border-neutral);--border-color-neutral-faded:var(--rs-color-border-neutral-faded);--text-color-neutral:var(--rs-color-foreground-neutral);--text-color-neutral-faded:var(--rs-color-foreground-neutral-faded);--background-color-disabled:var(--rs-color-background-disabled);--background-color-disabled-faded:var(--rs-color-background-disabled-faded);--border-color-disabled:var(--rs-color-border-disabled);--text-color-disabled:var(--rs-color-foreground-disabled);--background-color-elevation-base:var(--rs-color-background-elevation-base);--background-color-elevation-raised:var(--rs-color-background-elevation-raised);--background-color-elevation-overlay:var(--rs-color-background-elevation-overlay);--background-color-page:var(--rs-color-background-page);--background-color-page-faded:var(--rs-color-background-page-faded);--color-brand:var(--rs-color-brand);--color-white:var(--rs-color-white);--color-black:var(--rs-color-black);--text-color-on-primary:var(--rs-color-on-background-primary);--text-color-on-critical:var(--rs-color-on-background-critical);--text-color-on-warning:var(--rs-color-on-background-warning);--text-color-on-positive:var(--rs-color-on-background-positive);--text-color-on-neutral:var(--rs-color-on-background-neutral);--text-color-on-brand:var(--rs-color-on-brand);--radius-small:var(--rs-radius-small);--radius-medium:var(--rs-radius-medium);--radius-large:var(--rs-radius-large);--spacing-0:0px;--spacing-x1:var(--rs-unit-x1);--spacing-x2:var(--rs-unit-x2);--spacing-x3:var(--rs-unit-x3);--spacing-x4:var(--rs-unit-x4);--spacing-x5:var(--rs-unit-x5);--spacing-x6:var(--rs-unit-x6);--spacing-x7:var(--rs-unit-x7);--spacing-x8:var(--rs-unit-x8);--spacing-x9:var(--rs-unit-x9);--spacing-x10:var(--rs-unit-x10);--shadow-raised:var(--rs-shadow-raised);--shadow-overlay:var(--rs-shadow-overlay);--breakpoint-m:660px;--breakpoint-l:900px;--breakpoint-xl:1280px}