@equinor/eds-core-react 0.14.1 → 0.15.0-dev.20211116v2

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 (399) hide show
  1. package/dist/core-react.cjs.js +7520 -17417
  2. package/dist/esm/components/Accordion/Accordion.js +28 -0
  3. package/dist/esm/components/Accordion/Accordion.tokens.js +112 -0
  4. package/dist/esm/components/Accordion/AccordionHeader.js +137 -0
  5. package/dist/esm/components/Accordion/AccordionHeaderTitle.js +30 -0
  6. package/dist/esm/components/Accordion/AccordionItem.js +47 -0
  7. package/dist/esm/components/Accordion/AccordionPanel.js +40 -0
  8. package/dist/esm/components/Accordion/index.js +17 -0
  9. package/dist/esm/components/Avatar/Avatar.js +40 -0
  10. package/dist/esm/components/Avatar/Avatar.tokens.js +13 -0
  11. package/dist/esm/components/Banner/Banner.js +51 -0
  12. package/dist/esm/components/Banner/Banner.tokens.js +86 -0
  13. package/dist/esm/components/Banner/BannerActions.js +36 -0
  14. package/dist/esm/components/Banner/BannerIcon.js +41 -0
  15. package/dist/esm/components/Banner/BannerMessage.js +25 -0
  16. package/dist/esm/components/Banner/index.js +14 -0
  17. package/dist/esm/components/Breadcrumbs/Breadcrumb.js +49 -0
  18. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +98 -0
  19. package/dist/esm/components/Breadcrumbs/Breadcrumbs.tokens.js +39 -0
  20. package/dist/esm/components/Breadcrumbs/index.js +8 -0
  21. package/dist/esm/components/Button/Button.js +106 -0
  22. package/dist/esm/components/Button/InnerFullWidth.js +26 -0
  23. package/dist/esm/components/Button/tokens/button.js +127 -0
  24. package/dist/esm/components/Button/tokens/contained.js +86 -0
  25. package/dist/esm/components/Button/tokens/ghost.js +84 -0
  26. package/dist/esm/components/Button/tokens/icon.js +123 -0
  27. package/dist/esm/components/Button/tokens/index.js +27 -0
  28. package/dist/esm/components/Button/tokens/outlined.js +111 -0
  29. package/dist/esm/components/Card/Card.js +40 -0
  30. package/dist/esm/components/Card/Card.tokens.js +54 -0
  31. package/dist/esm/components/Card/CardActions.js +32 -0
  32. package/dist/esm/components/Card/CardHeader.js +25 -0
  33. package/dist/esm/components/Card/CardHeaderTitle.js +21 -0
  34. package/dist/esm/components/Card/CardMedia.js +30 -0
  35. package/dist/esm/components/Card/index.js +17 -0
  36. package/dist/esm/components/Checkbox/Checkbox.js +44 -0
  37. package/dist/esm/components/Checkbox/Checkbox.tokens.js +91 -0
  38. package/dist/esm/components/Checkbox/Input.js +115 -0
  39. package/dist/esm/components/Chip/Chip.js +126 -0
  40. package/dist/esm/components/Chip/Chip.tokens.js +148 -0
  41. package/dist/esm/components/Chip/Icon.js +31 -0
  42. package/dist/esm/components/Dialog/Actions.js +24 -0
  43. package/dist/esm/components/Dialog/CustomContent.js +40 -0
  44. package/dist/esm/components/Dialog/Dialog.js +31 -0
  45. package/dist/esm/components/Dialog/Dialog.tokens.js +73 -0
  46. package/dist/esm/components/Dialog/Title.js +35 -0
  47. package/dist/esm/components/Dialog/index.js +14 -0
  48. package/dist/esm/components/Divider/Divider.js +32 -0
  49. package/dist/esm/components/Divider/Divider.tokens.js +59 -0
  50. package/dist/esm/components/EdsProvider/eds.context.js +35 -0
  51. package/dist/esm/components/Icon/Icon.js +102 -0
  52. package/dist/esm/components/Icon/index.js +7 -0
  53. package/dist/esm/components/Icon/library.js +19 -0
  54. package/dist/esm/components/Input/Input.js +58 -0
  55. package/dist/esm/components/Input/Input.tokens.js +172 -0
  56. package/dist/esm/components/Label/Label.js +41 -0
  57. package/dist/esm/components/Label/Label.tokens.js +30 -0
  58. package/dist/esm/components/List/List.js +30 -0
  59. package/dist/esm/components/List/List.tokens.js +12 -0
  60. package/dist/esm/components/List/ListItem.js +14 -0
  61. package/dist/esm/components/List/index.js +8 -0
  62. package/dist/esm/components/Menu/Menu.context.js +43 -0
  63. package/dist/esm/components/Menu/Menu.js +110 -0
  64. package/dist/esm/components/Menu/Menu.tokens.js +132 -0
  65. package/dist/esm/components/Menu/MenuItem.js +90 -0
  66. package/dist/esm/components/Menu/MenuList.js +96 -0
  67. package/dist/esm/components/Menu/MenuSection.js +36 -0
  68. package/dist/esm/components/Menu/index.js +11 -0
  69. package/dist/esm/components/Pagination/Pagination.js +159 -0
  70. package/dist/esm/components/Pagination/Pagination.tokens.js +40 -0
  71. package/dist/esm/components/Pagination/PaginationItem.js +30 -0
  72. package/dist/esm/components/Pagination/paginationControl.js +46 -0
  73. package/dist/esm/components/Paper/Paper.js +24 -0
  74. package/dist/esm/components/Paper/Paper.tokens.js +19 -0
  75. package/dist/esm/components/Popover/Popover.js +96 -0
  76. package/dist/esm/components/Popover/Popover.tokens.js +73 -0
  77. package/dist/esm/components/Popover/PopoverContent.js +21 -0
  78. package/dist/esm/components/Popover/PopoverTitle.js +31 -0
  79. package/dist/esm/components/Popover/index.js +11 -0
  80. package/dist/esm/components/Progress/Circular/CircularProgress.js +94 -0
  81. package/dist/esm/components/Progress/Circular/CircularProgress.tokens.js +42 -0
  82. package/dist/esm/components/Progress/Dots/DotProgress.js +55 -0
  83. package/dist/esm/components/Progress/Dots/DotProgress.tokens.js +30 -0
  84. package/dist/esm/components/Progress/Linear/LinearProgress.js +50 -0
  85. package/dist/esm/components/Progress/Linear/LinearProgress.tokens.js +24 -0
  86. package/dist/esm/components/Progress/Star/StarProgress.js +62 -0
  87. package/dist/esm/components/Progress/Star/StarProgress.tokens.js +16 -0
  88. package/dist/esm/components/Progress/index.js +17 -0
  89. package/dist/esm/components/Radio/Radio.js +128 -0
  90. package/dist/esm/components/Radio/Radio.tokens.js +91 -0
  91. package/dist/esm/components/Scrim/Scrim.js +62 -0
  92. package/dist/esm/components/Scrim/Scrim.tokens.js +18 -0
  93. package/dist/esm/components/Search/Search.js +180 -0
  94. package/dist/esm/components/Search/Search.tokens.js +96 -0
  95. package/dist/esm/components/Select/MultiSelect/MultiSelect.js +202 -0
  96. package/dist/esm/components/Select/NativeSelect/NativeSelect.js +66 -0
  97. package/dist/esm/components/Select/NativeSelect/NativeSelect.tokens.js +66 -0
  98. package/dist/esm/components/Select/Select.tokens.js +98 -0
  99. package/dist/esm/components/Select/SingleSelect/SingleSelect.js +145 -0
  100. package/dist/esm/components/Select/commonStyles.js +54 -0
  101. package/dist/esm/components/SideSheet/SideSheet.js +60 -0
  102. package/dist/esm/components/SideSheet/SideSheet.tokens.js +45 -0
  103. package/dist/esm/components/Slider/MinMax.js +26 -0
  104. package/dist/esm/components/Slider/Output.js +32 -0
  105. package/dist/esm/components/Slider/Slider.js +243 -0
  106. package/dist/esm/components/Slider/Slider.tokens.js +136 -0
  107. package/dist/esm/components/Slider/SliderInput.js +60 -0
  108. package/dist/esm/components/Snackbar/Snackbar.js +63 -0
  109. package/dist/esm/components/Snackbar/Snackbar.tokens.js +74 -0
  110. package/dist/esm/components/Snackbar/SnackbarAction.js +22 -0
  111. package/dist/esm/components/Snackbar/index.js +7 -0
  112. package/dist/esm/components/Switch/Switch.js +67 -0
  113. package/dist/esm/components/Switch/Switch.styles.js +34 -0
  114. package/dist/esm/components/Switch/Switch.tokens.js +168 -0
  115. package/dist/esm/components/Switch/SwitchDefault.js +61 -0
  116. package/dist/esm/components/Switch/SwitchSmall.js +58 -0
  117. package/dist/esm/components/Table/Body.js +25 -0
  118. package/dist/esm/components/Table/Caption.js +19 -0
  119. package/dist/esm/components/Table/Cell.js +33 -0
  120. package/dist/esm/components/Table/DataCell/DataCell.js +49 -0
  121. package/dist/esm/components/Table/DataCell/DataCell.tokens.js +151 -0
  122. package/dist/esm/components/Table/Head/Head.js +29 -0
  123. package/dist/esm/components/Table/Head/Head.tokens.js +30 -0
  124. package/dist/esm/components/Table/HeaderCell/HeaderCell.js +67 -0
  125. package/dist/esm/components/Table/HeaderCell/HeaderCell.tokens.js +118 -0
  126. package/dist/esm/components/Table/Inner.context.js +8 -0
  127. package/dist/esm/components/Table/Row/Row.js +34 -0
  128. package/dist/esm/components/Table/Row/Row.tokens.js +26 -0
  129. package/dist/esm/components/Table/Table.js +20 -0
  130. package/dist/esm/components/Table/index.js +20 -0
  131. package/dist/esm/components/TableOfContents/LinkItem.js +23 -0
  132. package/dist/esm/components/TableOfContents/TableOfContents.js +43 -0
  133. package/dist/esm/components/TableOfContents/TableOfContents.tokens.js +103 -0
  134. package/dist/esm/components/TableOfContents/index.js +8 -0
  135. package/dist/esm/components/Tabs/Tab.js +44 -0
  136. package/dist/esm/components/Tabs/TabList.js +90 -0
  137. package/dist/esm/components/Tabs/TabPanel.js +29 -0
  138. package/dist/esm/components/Tabs/TabPanels.js +25 -0
  139. package/dist/esm/components/Tabs/Tabs.context.js +13 -0
  140. package/dist/esm/components/Tabs/Tabs.js +59 -0
  141. package/dist/esm/components/Tabs/Tabs.tokens.js +127 -0
  142. package/dist/esm/components/Tabs/index.js +17 -0
  143. package/dist/esm/components/TextField/Field.js +145 -0
  144. package/dist/esm/components/TextField/HelperText/HelperText.js +83 -0
  145. package/dist/esm/components/TextField/HelperText/HelperText.token.js +49 -0
  146. package/dist/esm/components/TextField/Icon/Icon.js +62 -0
  147. package/dist/esm/components/TextField/Icon/Icon.tokens.js +46 -0
  148. package/dist/esm/components/TextField/TextField.context.js +37 -0
  149. package/dist/esm/components/TextField/TextField.js +83 -0
  150. package/dist/esm/components/TextField/TextField.tokens.js +124 -0
  151. package/dist/esm/components/Textarea/Textarea.js +92 -0
  152. package/dist/esm/components/Tooltip/Tooltip.js +119 -0
  153. package/dist/esm/components/Tooltip/Tooltip.tokens.js +63 -0
  154. package/dist/esm/components/TopBar/Actions.js +20 -0
  155. package/dist/esm/components/TopBar/CustomContent.js +20 -0
  156. package/dist/esm/components/TopBar/Header.js +20 -0
  157. package/dist/esm/components/TopBar/TopBar.js +29 -0
  158. package/dist/esm/components/TopBar/TopBar.tokens.js +32 -0
  159. package/dist/esm/components/TopBar/index.js +14 -0
  160. package/dist/esm/components/Typography/Typography.js +93 -0
  161. package/dist/esm/components/Typography/Typography.tokens.js +61 -0
  162. package/dist/esm/hooks/useAutoResize.js +39 -0
  163. package/dist/esm/hooks/useCombinedRefs.js +14 -0
  164. package/dist/esm/hooks/useGlobalKeyPress.js +34 -0
  165. package/dist/esm/hooks/useHideBodyScroll.js +12 -0
  166. package/dist/esm/hooks/useId.js +14 -0
  167. package/dist/esm/hooks/useMountedRef.js +12 -0
  168. package/dist/esm/hooks/useOutsideClick.js +18 -0
  169. package/dist/esm/hooks/usePopper.js +31 -0
  170. package/dist/esm/hooks/useToken.js +16 -0
  171. package/dist/esm/index.js +41 -0
  172. package/dist/esm/utils/joinHandlers.js +10 -0
  173. package/dist/esm/utils/setReactInputValue.js +18 -0
  174. package/dist/esm/utils/templates/borders.js +35 -0
  175. package/dist/esm/utils/templates/common.js +19 -0
  176. package/dist/esm/utils/templates/focus.js +35 -0
  177. package/dist/esm/utils/templates/index.js +59 -0
  178. package/dist/types/components/Accordion/Accordion.d.ts +4 -4
  179. package/dist/types/components/Accordion/Accordion.tokens.d.ts +10 -10
  180. package/dist/types/components/Accordion/Accordion.types.d.ts +6 -6
  181. package/dist/types/components/Accordion/AccordionHeader.d.ts +35 -35
  182. package/dist/types/components/Accordion/AccordionHeaderTitle.d.ts +14 -14
  183. package/dist/types/components/Accordion/AccordionItem.d.ts +19 -19
  184. package/dist/types/components/Accordion/AccordionPanel.d.ts +18 -18
  185. package/dist/types/components/Accordion/index.d.ts +15 -15
  186. package/dist/types/components/Avatar/Avatar.d.ts +23 -23
  187. package/dist/types/components/Avatar/Avatar.tokens.d.ts +10 -10
  188. package/dist/types/components/Avatar/index.d.ts +1 -1
  189. package/dist/types/components/Banner/Banner.d.ts +7 -7
  190. package/dist/types/components/Banner/Banner.tokens.d.ts +9 -9
  191. package/dist/types/components/Banner/BannerActions.d.ts +11 -11
  192. package/dist/types/components/Banner/BannerIcon.d.ts +15 -15
  193. package/dist/types/components/Banner/BannerMessage.d.ts +10 -10
  194. package/dist/types/components/Banner/index.d.ts +12 -12
  195. package/dist/types/components/Breadcrumbs/Breadcrumb.d.ts +11 -11
  196. package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts +11 -11
  197. package/dist/types/components/Breadcrumbs/Breadcrumbs.tokens.d.ts +2 -2
  198. package/dist/types/components/Breadcrumbs/index.d.ts +8 -8
  199. package/dist/types/components/Button/Button.d.ts +43 -43
  200. package/dist/types/components/Button/Button.types.d.ts +12 -12
  201. package/dist/types/components/Button/InnerFullWidth.d.ts +2 -2
  202. package/dist/types/components/Button/index.d.ts +1 -1
  203. package/dist/types/components/Button/tokens/button.d.ts +2 -2
  204. package/dist/types/components/Button/tokens/contained.d.ts +4 -4
  205. package/dist/types/components/Button/tokens/ghost.d.ts +4 -4
  206. package/dist/types/components/Button/tokens/icon.d.ts +4 -4
  207. package/dist/types/components/Button/tokens/index.d.ts +8 -8
  208. package/dist/types/components/Button/tokens/outlined.d.ts +4 -4
  209. package/dist/types/components/Card/Card.d.ts +9 -9
  210. package/dist/types/components/Card/Card.tokens.d.ts +6 -6
  211. package/dist/types/components/Card/CardActions.d.ts +13 -13
  212. package/dist/types/components/Card/CardHeader.d.ts +3 -3
  213. package/dist/types/components/Card/CardHeaderTitle.d.ts +3 -3
  214. package/dist/types/components/Card/CardMedia.d.ts +9 -9
  215. package/dist/types/components/Card/index.d.ts +14 -14
  216. package/dist/types/components/Checkbox/Checkbox.d.ts +15 -15
  217. package/dist/types/components/Checkbox/Checkbox.tokens.d.ts +4 -4
  218. package/dist/types/components/Checkbox/Input.d.ts +12 -12
  219. package/dist/types/components/Checkbox/index.d.ts +1 -1
  220. package/dist/types/components/Chip/Chip.d.ts +17 -17
  221. package/dist/types/components/Chip/Chip.tokens.d.ts +8 -8
  222. package/dist/types/components/Chip/Icon.d.ts +6 -6
  223. package/dist/types/components/Chip/index.d.ts +1 -1
  224. package/dist/types/components/Combobox/Combobox.d.ts +55 -55
  225. package/dist/types/components/Combobox/Combobox.tokens.d.ts +3 -3
  226. package/dist/types/components/Combobox/index.d.ts +1 -1
  227. package/dist/types/components/Dialog/Actions.d.ts +3 -3
  228. package/dist/types/components/Dialog/CustomContent.d.ts +9 -9
  229. package/dist/types/components/Dialog/Dialog.d.ts +3 -3
  230. package/dist/types/components/Dialog/Dialog.tokens.d.ts +4 -4
  231. package/dist/types/components/Dialog/Title.d.ts +3 -3
  232. package/dist/types/components/Dialog/index.d.ts +12 -12
  233. package/dist/types/components/Divider/Divider.d.ts +17 -17
  234. package/dist/types/components/Divider/Divider.tokens.d.ts +12 -12
  235. package/dist/types/components/Divider/index.d.ts +1 -1
  236. package/dist/types/components/EdsProvider/eds.context.d.ts +15 -15
  237. package/dist/types/components/EdsProvider/index.d.ts +1 -1
  238. package/dist/types/components/Icon/Icon.d.ts +20 -20
  239. package/dist/types/components/Icon/Icon.types.d.ts +11 -11
  240. package/dist/types/components/Icon/index.d.ts +5 -5
  241. package/dist/types/components/Icon/library.d.ts +8 -8
  242. package/dist/types/components/Input/Input.d.ts +26 -26
  243. package/dist/types/components/Input/Input.tokens.d.ts +12 -12
  244. package/dist/types/components/Input/index.d.ts +1 -1
  245. package/dist/types/components/Label/Label.d.ts +11 -11
  246. package/dist/types/components/Label/Label.tokens.d.ts +4 -4
  247. package/dist/types/components/Label/index.d.ts +1 -1
  248. package/dist/types/components/List/List.d.ts +14 -14
  249. package/dist/types/components/List/List.tokens.d.ts +4 -4
  250. package/dist/types/components/List/ListItem.d.ts +4 -4
  251. package/dist/types/components/List/index.d.ts +8 -8
  252. package/dist/types/components/Menu/Menu.context.d.ts +15 -15
  253. package/dist/types/components/Menu/Menu.d.ts +27 -27
  254. package/dist/types/components/Menu/Menu.tokens.d.ts +4 -4
  255. package/dist/types/components/Menu/Menu.types.d.ts +1 -1
  256. package/dist/types/components/Menu/MenuItem.d.ts +21 -21
  257. package/dist/types/components/Menu/MenuList.d.ts +8 -8
  258. package/dist/types/components/Menu/MenuSection.d.ts +11 -11
  259. package/dist/types/components/Menu/index.d.ts +10 -10
  260. package/dist/types/components/Pagination/Pagination.d.ts +25 -25
  261. package/dist/types/components/Pagination/Pagination.tokens.d.ts +2 -2
  262. package/dist/types/components/Pagination/PaginationItem.d.ts +8 -8
  263. package/dist/types/components/Pagination/index.d.ts +1 -1
  264. package/dist/types/components/Pagination/paginationControl.d.ts +1 -1
  265. package/dist/types/components/Paper/Paper.d.ts +8 -8
  266. package/dist/types/components/Paper/Paper.tokens.d.ts +12 -12
  267. package/dist/types/components/Paper/index.d.ts +1 -1
  268. package/dist/types/components/Popover/Popover.d.ts +22 -22
  269. package/dist/types/components/Popover/Popover.tokens.d.ts +4 -4
  270. package/dist/types/components/Popover/PopoverContent.d.ts +3 -3
  271. package/dist/types/components/Popover/PopoverTitle.d.ts +3 -3
  272. package/dist/types/components/Popover/index.d.ts +10 -10
  273. package/dist/types/components/Progress/Circular/CircularProgress.d.ts +16 -16
  274. package/dist/types/components/Progress/Circular/CircularProgress.tokens.d.ts +8 -8
  275. package/dist/types/components/Progress/Dots/DotProgress.d.ts +11 -11
  276. package/dist/types/components/Progress/Dots/DotProgress.tokens.d.ts +5 -5
  277. package/dist/types/components/Progress/Linear/LinearProgress.d.ts +18 -18
  278. package/dist/types/components/Progress/Linear/LinearProgress.tokens.d.ts +7 -7
  279. package/dist/types/components/Progress/Star/StarProgress.d.ts +14 -14
  280. package/dist/types/components/Progress/Star/StarProgress.tokens.d.ts +2 -2
  281. package/dist/types/components/Progress/index.d.ts +15 -15
  282. package/dist/types/components/Radio/Radio.d.ts +10 -10
  283. package/dist/types/components/Radio/Radio.tokens.d.ts +4 -4
  284. package/dist/types/components/Radio/index.d.ts +1 -1
  285. package/dist/types/components/Scrim/Scrim.d.ts +15 -15
  286. package/dist/types/components/Scrim/Scrim.tokens.d.ts +2 -2
  287. package/dist/types/components/Scrim/index.d.ts +1 -1
  288. package/dist/types/components/Search/Search.d.ts +3 -3
  289. package/dist/types/components/Search/Search.tokens.d.ts +4 -4
  290. package/dist/types/components/Search/index.d.ts +1 -1
  291. package/dist/types/components/Select/MultiSelect/MultiSelect.d.ts +48 -48
  292. package/dist/types/components/Select/MultiSelect/index.d.ts +1 -1
  293. package/dist/types/components/Select/NativeSelect/NativeSelect.d.ts +29 -29
  294. package/dist/types/components/Select/NativeSelect/NativeSelect.tokens.d.ts +4 -4
  295. package/dist/types/components/Select/NativeSelect/index.d.ts +1 -1
  296. package/dist/types/components/Select/Select.tokens.d.ts +3 -3
  297. package/dist/types/components/Select/SingleSelect/SingleSelect.d.ts +48 -48
  298. package/dist/types/components/Select/SingleSelect/index.d.ts +1 -1
  299. package/dist/types/components/Select/commonStyles.d.ts +32 -32
  300. package/dist/types/components/Select/index.d.ts +3 -3
  301. package/dist/types/components/SideSheet/SideSheet.d.ts +21 -21
  302. package/dist/types/components/SideSheet/SideSheet.tokens.d.ts +10 -10
  303. package/dist/types/components/SideSheet/index.d.ts +1 -1
  304. package/dist/types/components/Slider/MinMax.d.ts +5 -5
  305. package/dist/types/components/Slider/Output.d.ts +9 -9
  306. package/dist/types/components/Slider/Slider.d.ts +49 -49
  307. package/dist/types/components/Slider/Slider.tokens.d.ts +4 -4
  308. package/dist/types/components/Slider/SliderInput.d.ts +21 -21
  309. package/dist/types/components/Slider/index.d.ts +1 -1
  310. package/dist/types/components/Snackbar/Snackbar.d.ts +21 -21
  311. package/dist/types/components/Snackbar/Snackbar.tokens.d.ts +4 -4
  312. package/dist/types/components/Snackbar/SnackbarAction.d.ts +5 -5
  313. package/dist/types/components/Snackbar/index.d.ts +8 -8
  314. package/dist/types/components/Switch/Switch.d.ts +12 -12
  315. package/dist/types/components/Switch/Switch.styles.d.ts +5 -5
  316. package/dist/types/components/Switch/Switch.tokens.d.ts +3 -3
  317. package/dist/types/components/Switch/SwitchDefault.d.ts +6 -6
  318. package/dist/types/components/Switch/SwitchSmall.d.ts +6 -6
  319. package/dist/types/components/Switch/index.d.ts +1 -1
  320. package/dist/types/components/Table/Body.d.ts +3 -3
  321. package/dist/types/components/Table/Caption.d.ts +4 -4
  322. package/dist/types/components/Table/Cell.d.ts +11 -11
  323. package/dist/types/components/Table/DataCell/DataCell.d.ts +8 -8
  324. package/dist/types/components/Table/DataCell/DataCell.tokens.d.ts +15 -15
  325. package/dist/types/components/Table/DataCell/index.d.ts +1 -1
  326. package/dist/types/components/Table/Head/Head.d.ts +9 -9
  327. package/dist/types/components/Table/Head/Head.tokens.d.ts +2 -2
  328. package/dist/types/components/Table/Head/index.d.ts +1 -1
  329. package/dist/types/components/Table/HeaderCell/HeaderCell.d.ts +5 -5
  330. package/dist/types/components/Table/HeaderCell/HeaderCell.tokens.d.ts +3 -3
  331. package/dist/types/components/Table/HeaderCell/index.d.ts +1 -1
  332. package/dist/types/components/Table/Inner.context.d.ts +7 -7
  333. package/dist/types/components/Table/Row/Row.d.ts +9 -9
  334. package/dist/types/components/Table/Row/Row.tokens.d.ts +2 -2
  335. package/dist/types/components/Table/Row/index.d.ts +1 -1
  336. package/dist/types/components/Table/Table.d.ts +3 -3
  337. package/dist/types/components/Table/Table.types.d.ts +2 -2
  338. package/dist/types/components/Table/index.d.ts +16 -16
  339. package/dist/types/components/TableOfContents/LinkItem.d.ts +3 -3
  340. package/dist/types/components/TableOfContents/TableOfContents.d.ts +14 -14
  341. package/dist/types/components/TableOfContents/TableOfContents.tokens.d.ts +4 -4
  342. package/dist/types/components/TableOfContents/index.d.ts +8 -8
  343. package/dist/types/components/Tabs/Tab.d.ts +13 -13
  344. package/dist/types/components/Tabs/TabList.d.ts +11 -11
  345. package/dist/types/components/Tabs/TabPanel.d.ts +10 -10
  346. package/dist/types/components/Tabs/TabPanels.d.ts +4 -4
  347. package/dist/types/components/Tabs/Tabs.context.d.ts +13 -13
  348. package/dist/types/components/Tabs/Tabs.d.ts +19 -19
  349. package/dist/types/components/Tabs/Tabs.tokens.d.ts +2 -2
  350. package/dist/types/components/Tabs/Tabs.types.d.ts +1 -1
  351. package/dist/types/components/Tabs/index.d.ts +14 -14
  352. package/dist/types/components/TextField/Field.d.ts +34 -34
  353. package/dist/types/components/TextField/HelperText/HelperText.d.ts +14 -14
  354. package/dist/types/components/TextField/HelperText/HelperText.token.d.ts +15 -15
  355. package/dist/types/components/TextField/HelperText/index.d.ts +1 -1
  356. package/dist/types/components/TextField/Icon/Icon.d.ts +13 -13
  357. package/dist/types/components/TextField/Icon/Icon.tokens.d.ts +14 -14
  358. package/dist/types/components/TextField/Icon/index.d.ts +1 -1
  359. package/dist/types/components/TextField/TextField.context.d.ts +17 -17
  360. package/dist/types/components/TextField/TextField.d.ts +37 -37
  361. package/dist/types/components/TextField/TextField.tokens.d.ts +10 -10
  362. package/dist/types/components/TextField/index.d.ts +1 -1
  363. package/dist/types/components/TextField/types.d.ts +6 -6
  364. package/dist/types/components/Textarea/Textarea.d.ts +30 -30
  365. package/dist/types/components/Textarea/index.d.ts +1 -1
  366. package/dist/types/components/Tooltip/Tooltip.d.ts +22 -22
  367. package/dist/types/components/Tooltip/Tooltip.tokens.d.ts +4 -4
  368. package/dist/types/components/Tooltip/index.d.ts +1 -1
  369. package/dist/types/components/TopBar/Actions.d.ts +3 -3
  370. package/dist/types/components/TopBar/CustomContent.d.ts +3 -3
  371. package/dist/types/components/TopBar/Header.d.ts +3 -3
  372. package/dist/types/components/TopBar/TopBar.d.ts +3 -3
  373. package/dist/types/components/TopBar/TopBar.tokens.d.ts +4 -4
  374. package/dist/types/components/TopBar/index.d.ts +12 -12
  375. package/dist/types/components/Typography/Typography.d.ts +15 -15
  376. package/dist/types/components/Typography/Typography.tokens.d.ts +453 -453
  377. package/dist/types/components/Typography/index.d.ts +1 -1
  378. package/dist/types/hooks/index.d.ts +9 -9
  379. package/dist/types/hooks/useAutoResize.d.ts +1 -1
  380. package/dist/types/hooks/useCombinedRefs.d.ts +3 -3
  381. package/dist/types/hooks/useGlobalKeyPress.d.ts +10 -10
  382. package/dist/types/hooks/useHideBodyScroll.d.ts +1 -1
  383. package/dist/types/hooks/useId.d.ts +1 -1
  384. package/dist/types/hooks/useMountedRef.d.ts +1 -1
  385. package/dist/types/hooks/useOutsideClick.d.ts +1 -1
  386. package/dist/types/hooks/usePopper.d.ts +12 -12
  387. package/dist/types/hooks/useToken.d.ts +7 -7
  388. package/dist/types/index.d.ts +35 -35
  389. package/dist/types/utils/index.d.ts +4 -4
  390. package/dist/types/utils/joinHandlers.d.ts +3 -3
  391. package/dist/types/utils/setReactInputValue.d.ts +7 -7
  392. package/dist/types/utils/templates/borders.d.ts +2 -2
  393. package/dist/types/utils/templates/common.d.ts +9 -9
  394. package/dist/types/utils/templates/focus.d.ts +2 -2
  395. package/dist/types/utils/templates/index.d.ts +7 -7
  396. package/package.json +16 -24
  397. package/dist/core-react.esm.js +0 -18721
  398. package/dist/core-react.umd.js +0 -18793
  399. package/src/index.ts +0 -37
@@ -0,0 +1,59 @@
1
+ import { tokens as tokens$1 } from '@equinor/eds-tokens';
2
+
3
+ const {
4
+ colors: {
5
+ ui: {
6
+ background__default: {
7
+ rgba: lighter
8
+ },
9
+ background__light: {
10
+ rgba: light
11
+ },
12
+ background__medium: {
13
+ rgba: mediumColor
14
+ }
15
+ }
16
+ },
17
+ spacings: {
18
+ comfortable: {
19
+ small: spacingSmall,
20
+ medium: spacingMedium
21
+ }
22
+ }
23
+ } = tokens$1;
24
+ const dividerHeight = 1;
25
+
26
+ const reduceByValue = subtractValue => valueWithUnit => {
27
+ const valueAndUnit = valueWithUnit.split(/(\d+)/).filter(val => val.length > 0);
28
+ return `${parseInt(valueAndUnit[0]) - subtractValue}` + valueAndUnit[1];
29
+ };
30
+
31
+ const reduceValueByDividerHeight = reduceByValue(dividerHeight);
32
+ const baseDivider = {
33
+ height: `${dividerHeight}px`
34
+ };
35
+ const divider = {
36
+ lighter: {
37
+ background: lighter
38
+ },
39
+ light: {
40
+ background: light
41
+ },
42
+ mediumColor: {
43
+ background: mediumColor
44
+ }
45
+ };
46
+ const small = { ...baseDivider,
47
+ spacings: {
48
+ top: spacingSmall,
49
+ bottom: reduceValueByDividerHeight(spacingSmall)
50
+ }
51
+ };
52
+ const medium = { ...baseDivider,
53
+ spacings: {
54
+ top: spacingMedium,
55
+ bottom: reduceValueByDividerHeight(spacingMedium)
56
+ }
57
+ };
58
+
59
+ export { baseDivider, divider, medium, small };
@@ -0,0 +1,35 @@
1
+ import { useState, useEffect, useContext, createContext } from 'react';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ const initalState = {
5
+ density: 'comfortable'
6
+ };
7
+ const EdsContext = /*#__PURE__*/createContext(initalState);
8
+ const EdsProvider = ({
9
+ children,
10
+ density = 'comfortable'
11
+ }) => {
12
+ const [state, setState] = useState({ ...initalState,
13
+ density
14
+ });
15
+
16
+ const setDensity = density => setState(prevState => ({ ...prevState,
17
+ density
18
+ }));
19
+
20
+ useEffect(() => {
21
+ if (typeof density !== 'undefined' && density !== state.density) {
22
+ setDensity(density);
23
+ }
24
+ }, [density, state.density]);
25
+ const value = {
26
+ density: state.density
27
+ };
28
+ return /*#__PURE__*/jsx(EdsContext.Provider, {
29
+ value: value,
30
+ children: children
31
+ });
32
+ };
33
+ const useEds = () => useContext(EdsContext);
34
+
35
+ export { EdsProvider, useEds };
@@ -0,0 +1,102 @@
1
+ import { forwardRef } from 'react';
2
+ import styled from 'styled-components';
3
+ import { get } from './library.js';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+
6
+ const customIcon = icon => ({
7
+ icon,
8
+ count: Math.floor(Math.random() * 1000)
9
+ });
10
+
11
+ const transform = ({
12
+ rotation
13
+ }) => rotation ? `transform: rotate(${rotation}deg)` : '';
14
+
15
+ const StyledSvg = styled.svg.attrs(({
16
+ height,
17
+ width,
18
+ fill
19
+ }) => ({
20
+ name: null,
21
+ xmlns: 'http://www.w3.org/2000/svg',
22
+ height: `${height}px`,
23
+ width: `${width}px`,
24
+ fill
25
+ })).withConfig({
26
+ displayName: "Icon__StyledSvg",
27
+ componentId: "sc-6evbi1-0"
28
+ })(["", ""], transform);
29
+ const StyledPath = styled.path.attrs(({
30
+ height,
31
+ size
32
+ }) => ({
33
+ size: null,
34
+ fillRule: 'evenodd',
35
+ clipRule: 'evenodd',
36
+ transform: size / height !== 1 ? `scale(${size / height})` : null
37
+ })).withConfig({
38
+ displayName: "Icon__StyledPath",
39
+ componentId: "sc-6evbi1-1"
40
+ })([""]);
41
+ const Icon = /*#__PURE__*/forwardRef(function Icon({
42
+ size = 24,
43
+ color = 'currentColor',
44
+ name,
45
+ className,
46
+ rotation,
47
+ title,
48
+ data,
49
+ ...rest
50
+ }, ref) {
51
+ const {
52
+ icon,
53
+ count
54
+ } = data ? customIcon(data) : get(name);
55
+
56
+ if (typeof icon === 'undefined') {
57
+ throw Error(`Icon "${name}" not found. Have you added it using Icon.add() or using data props?`);
58
+ }
59
+
60
+ let svgProps = {
61
+ height: size,
62
+ width: size,
63
+ fill: color,
64
+ viewBox: `0 0 ${size} ${size}`,
65
+ className,
66
+ rotation,
67
+ name,
68
+ 'aria-hidden': true,
69
+ title: null
70
+ };
71
+ const pathProps = {
72
+ d: icon.svgPathData,
73
+ height: icon.height ? icon.height : size,
74
+ size
75
+ }; // Accessibility
76
+
77
+ let titleId = '';
78
+
79
+ if (title) {
80
+ titleId = `${icon.prefix}-${icon.name}-${count}`;
81
+ svgProps = { ...svgProps,
82
+ title,
83
+ role: 'img',
84
+ 'aria-hidden': undefined,
85
+ 'aria-labelledby': titleId
86
+ };
87
+ }
88
+
89
+ return /*#__PURE__*/jsxs(StyledSvg, { ...svgProps,
90
+ ...rest,
91
+ ref: ref,
92
+ children: [title && /*#__PURE__*/jsx("title", {
93
+ id: titleId,
94
+ children: title
95
+ }), /*#__PURE__*/jsx(StyledPath, {
96
+ "data-testid": "eds-icon-path",
97
+ ...pathProps
98
+ })]
99
+ });
100
+ }); // Icon.displayName = 'EdsIcon'
101
+
102
+ export { Icon };
@@ -0,0 +1,7 @@
1
+ import { Icon as Icon$1 } from './Icon.js';
2
+ import { add } from './library.js';
3
+
4
+ const Icon = Icon$1;
5
+ Icon.add = add;
6
+
7
+ export { Icon };
@@ -0,0 +1,19 @@
1
+ let _icons = {};
2
+ let count = 0;
3
+ /** Add icons to library to be used for rendering using name.
4
+ This needs to be done lonly once */
5
+
6
+ const add = icons => {
7
+ _icons = { ..._icons,
8
+ ...icons
9
+ };
10
+ };
11
+ const get = name => {
12
+ count += 1;
13
+ return {
14
+ icon: _icons[name],
15
+ count
16
+ };
17
+ };
18
+
19
+ export { add, get };
@@ -0,0 +1,58 @@
1
+ import { forwardRef } from 'react';
2
+ import styled, { css, ThemeProvider } from 'styled-components';
3
+ import { inputToken } from './Input.tokens.js';
4
+ import { jsx } from 'react/jsx-runtime';
5
+ import { outlineTemplate } from '../../utils/templates/focus.js';
6
+ import { typographyTemplate, spacingsTemplate } from '../../utils/templates/index.js';
7
+ import { useEds } from '../EdsProvider/eds.context.js';
8
+ import { useToken } from '../../hooks/useToken.js';
9
+
10
+ const StyledInput = styled.input.withConfig({
11
+ displayName: "Input__StyledInput",
12
+ componentId: "sc-1ykv024-0"
13
+ })(({
14
+ theme
15
+ }) => {
16
+ const {
17
+ states: {
18
+ focus: {
19
+ outline: focusOutline
20
+ },
21
+ active: {
22
+ outline: activeOutline
23
+ },
24
+ disabled,
25
+ readOnly
26
+ },
27
+ boxShadow
28
+ } = theme;
29
+ return css(["width:100%;box-sizing:border-box;margin:0;appearance:none;background:", ";border:none;height:", ";box-shadow:", ";", " ", " ", ";&::placeholder{color:", ";}&:active,&:focus{outline-offset:0;box-shadow:none;", "}&:disabled{color:", ";cursor:not-allowed;box-shadow:none;outline:none;&:focus,&:active{outline:none;}}&[readOnly]{background:", ";box-shadow:", ";}"], theme.background, theme.minHeight, boxShadow, outlineTemplate(activeOutline), typographyTemplate(theme.typography), spacingsTemplate(theme.spacings), theme.entities.placeholder.typography.color, outlineTemplate(focusOutline), disabled.typography.color, readOnly.background, readOnly.boxShadow);
30
+ });
31
+ const Input = /*#__PURE__*/forwardRef(function Input({
32
+ variant = 'default',
33
+ disabled = false,
34
+ type = 'text',
35
+ ...other
36
+ }, ref) {
37
+ const actualVariant = variant === 'default' ? 'input' : variant;
38
+ const inputVariant = inputToken[actualVariant];
39
+ const {
40
+ density
41
+ } = useEds();
42
+ const token = useToken({
43
+ density
44
+ }, inputVariant);
45
+ const inputProps = {
46
+ ref,
47
+ type,
48
+ disabled,
49
+ ...other
50
+ };
51
+ return /*#__PURE__*/jsx(ThemeProvider, {
52
+ theme: token,
53
+ children: /*#__PURE__*/jsx(StyledInput, { ...inputProps
54
+ })
55
+ });
56
+ });
57
+
58
+ export { Input };
@@ -0,0 +1,172 @@
1
+ import { tokens as tokens$1 } from '@equinor/eds-tokens';
2
+ import { mergeDeepRight } from 'ramda';
3
+
4
+ const {
5
+ colors: {
6
+ ui: {
7
+ background__light: {
8
+ rgba: background
9
+ }
10
+ },
11
+ text: {
12
+ static_icons__default,
13
+ static_icons__tertiary
14
+ },
15
+ interactive: {
16
+ disabled__text,
17
+ primary__resting,
18
+ danger__resting,
19
+ danger__hover,
20
+ warning__resting,
21
+ warning__hover,
22
+ success__resting,
23
+ success__hover
24
+ }
25
+ },
26
+ spacings: {
27
+ comfortable: {
28
+ small,
29
+ x_small
30
+ }
31
+ },
32
+ typography,
33
+ shape
34
+ } = tokens$1;
35
+ const input = {
36
+ minHeight: shape.straight.minHeight,
37
+ background,
38
+ spacings: {
39
+ left: small,
40
+ right: small,
41
+ top: '6px',
42
+ bottom: '6px'
43
+ },
44
+ typography: { ...typography.input.text,
45
+ color: static_icons__default.rgba
46
+ },
47
+ entities: {
48
+ placeholder: {
49
+ typography: {
50
+ color: static_icons__tertiary.rgba
51
+ }
52
+ }
53
+ },
54
+ states: {
55
+ disabled: {
56
+ typography: {
57
+ color: disabled__text.rgba
58
+ }
59
+ },
60
+ readOnly: {
61
+ background: 'transparent',
62
+ boxShadow: 'none'
63
+ },
64
+ active: {
65
+ outline: {
66
+ type: 'outline',
67
+ color: 'transparent',
68
+ width: '1px',
69
+ style: 'solid',
70
+ offset: '0px'
71
+ }
72
+ },
73
+ focus: {
74
+ outline: {
75
+ type: 'outline',
76
+ width: '2px',
77
+ color: primary__resting.rgba,
78
+ style: 'solid',
79
+ offset: '0px'
80
+ }
81
+ }
82
+ },
83
+ boxShadow: 'inset 0px -1px 0px 0px ' + static_icons__tertiary.rgba,
84
+ modes: {
85
+ compact: {
86
+ minHeight: shape._modes.compact.straight.minHeight,
87
+ spacings: {
88
+ left: x_small,
89
+ right: x_small,
90
+ top: x_small,
91
+ bottom: x_small
92
+ }
93
+ }
94
+ }
95
+ };
96
+ const error = mergeDeepRight(input, {
97
+ boxShadow: 'inset 0px -1px 0px 0px transparent',
98
+ states: {
99
+ active: {
100
+ outline: {
101
+ type: 'outline',
102
+ color: danger__resting.rgba,
103
+ width: '1px',
104
+ style: 'solid',
105
+ offset: '0px'
106
+ }
107
+ },
108
+ focus: {
109
+ outline: {
110
+ type: 'outline',
111
+ width: '2px',
112
+ color: danger__hover.rgba,
113
+ style: 'solid',
114
+ offset: '0px'
115
+ }
116
+ }
117
+ }
118
+ });
119
+ const warning = mergeDeepRight(input, {
120
+ boxShadow: 'inset 0px -1px 0px 0px transparent',
121
+ states: {
122
+ active: {
123
+ outline: {
124
+ type: 'outline',
125
+ color: warning__resting.rgba,
126
+ width: '1px',
127
+ style: 'solid',
128
+ offset: '0px'
129
+ }
130
+ },
131
+ focus: {
132
+ outline: {
133
+ type: 'outline',
134
+ width: '2px',
135
+ color: warning__hover.rgba,
136
+ style: 'solid',
137
+ offset: '0px'
138
+ }
139
+ }
140
+ }
141
+ });
142
+ const success = mergeDeepRight(input, {
143
+ boxShadow: 'inset 0px -1px 0px 0px transparent',
144
+ states: {
145
+ active: {
146
+ outline: {
147
+ type: 'outline',
148
+ color: success__resting.rgba,
149
+ width: '1px',
150
+ style: 'solid',
151
+ offset: '0px'
152
+ }
153
+ },
154
+ focus: {
155
+ outline: {
156
+ type: 'outline',
157
+ width: '2px',
158
+ color: success__hover.rgba,
159
+ style: 'solid',
160
+ offset: '0px'
161
+ }
162
+ }
163
+ }
164
+ });
165
+ const inputToken = {
166
+ input,
167
+ error,
168
+ warning,
169
+ success
170
+ };
171
+
172
+ export { error, input, inputToken, success, warning };
@@ -0,0 +1,41 @@
1
+ import { forwardRef } from 'react';
2
+ import styled from 'styled-components';
3
+ import { label } from './Label.tokens.js';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+ import { typographyTemplate } from '../../utils/templates/index.js';
6
+
7
+ const LabelBase = styled.label.withConfig({
8
+ displayName: "Label__LabelBase",
9
+ componentId: "sc-1gi2bcn-0"
10
+ })(["display:flex;justify-content:space-between;position:relative;", " margin-left:", ";margin-right:", ";color:", ";"], typographyTemplate(label.typography), label.spacings.left, label.spacings.right, ({
11
+ disabledText
12
+ }) => disabledText ? label.states.disabled.typography.color : label.typography.color);
13
+ const Text = styled.span.withConfig({
14
+ displayName: "Label__Text",
15
+ componentId: "sc-1gi2bcn-1"
16
+ })(["margin:0;"]);
17
+ const Label = /*#__PURE__*/forwardRef(function Label(props, ref) {
18
+ const {
19
+ label = '',
20
+ meta,
21
+ disabled = false,
22
+ ...other
23
+ } = props;
24
+ return (
25
+ /*#__PURE__*/
26
+
27
+ /* @TODO: Other props spread has to be at the end for downshift to create the for attribute */
28
+ jsxs(LabelBase, {
29
+ ref: ref,
30
+ disabledText: disabled,
31
+ ...other,
32
+ children: [/*#__PURE__*/jsx(Text, {
33
+ children: label
34
+ }), meta && /*#__PURE__*/jsx(Text, {
35
+ children: meta
36
+ })]
37
+ })
38
+ );
39
+ }); // Label.displayName = 'eds-text-field-label'
40
+
41
+ export { Label };
@@ -0,0 +1,30 @@
1
+ import { tokens } from '@equinor/eds-tokens';
2
+
3
+ const {
4
+ colors,
5
+ spacings: {
6
+ comfortable
7
+ },
8
+ typography
9
+ } = tokens;
10
+ const label = {
11
+ background: colors.ui.background__light.rgba,
12
+ typography: { ...typography.input.label,
13
+ color: colors.text.static_icons__tertiary.rgba
14
+ },
15
+ spacings: {
16
+ left: comfortable.small,
17
+ right: comfortable.small,
18
+ top: '6px',
19
+ bottom: '6px'
20
+ },
21
+ states: {
22
+ disabled: {
23
+ typography: {
24
+ color: colors.interactive.disabled__text.rgba
25
+ }
26
+ }
27
+ }
28
+ };
29
+
30
+ export { label };
@@ -0,0 +1,30 @@
1
+ import { forwardRef } from 'react';
2
+ import styled, { css } from 'styled-components';
3
+ import { list } from './List.tokens.js';
4
+ import { jsx } from 'react/jsx-runtime';
5
+ import { typographyTemplate } from '../../utils/templates/index.js';
6
+
7
+ const {
8
+ typography
9
+ } = list;
10
+ const StyledList = styled.ul.withConfig({
11
+ displayName: "List__StyledList",
12
+ componentId: "sc-v9d2hy-0"
13
+ })(["", " ", ""], ({
14
+ as
15
+ }) => as === 'ol' ? css(["& ol{list-style-type:lower-alpha;}"]) : '', typographyTemplate(typography));
16
+ const List = /*#__PURE__*/forwardRef(function List({
17
+ children,
18
+ variant = 'bullet',
19
+ ...props
20
+ }, ref) {
21
+ const as = variant === 'numbered' ? 'ol' : 'ul';
22
+ return /*#__PURE__*/jsx(StyledList, {
23
+ as: as,
24
+ ref: ref,
25
+ ...props,
26
+ children: children
27
+ });
28
+ }); // List.displayName = 'List'
29
+
30
+ export { List };
@@ -0,0 +1,12 @@
1
+ import { tokens } from '@equinor/eds-tokens';
2
+
3
+ const {
4
+ typography: {
5
+ paragraph
6
+ }
7
+ } = tokens;
8
+ const list = {
9
+ typography: paragraph.body_short
10
+ };
11
+
12
+ export { list };
@@ -0,0 +1,14 @@
1
+ import { forwardRef } from 'react';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ const ListItem = /*#__PURE__*/forwardRef(function ListItem({
5
+ children,
6
+ ...props
7
+ }, ref) {
8
+ return /*#__PURE__*/jsx("li", { ...props,
9
+ ref: ref,
10
+ children: children
11
+ });
12
+ }); // ListItem.displayName = 'ListItem'
13
+
14
+ export { ListItem };
@@ -0,0 +1,8 @@
1
+ import { List as List$1 } from './List.js';
2
+ import { ListItem } from './ListItem.js';
3
+
4
+ const List = List$1;
5
+ List.Item = ListItem;
6
+ List.Item.displayName = 'List.Item';
7
+
8
+ export { List };
@@ -0,0 +1,43 @@
1
+ import { useState, useContext, createContext } from 'react';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ const initalState = {
5
+ focusedIndex: -1,
6
+ onClose: null
7
+ };
8
+ const MenuContext = /*#__PURE__*/createContext(initalState);
9
+ const MenuProvider = ({
10
+ children
11
+ }) => {
12
+ const [state, setState] = useState(initalState);
13
+ const {
14
+ focusedIndex,
15
+ onClose
16
+ } = state;
17
+
18
+ const setFocusedIndex = i => {
19
+ setState(prevState => ({ ...prevState,
20
+ focusedIndex: i
21
+ }));
22
+ };
23
+
24
+ const setOnClose = onClose => {
25
+ setState(prevState => ({ ...prevState,
26
+ onClose
27
+ }));
28
+ };
29
+
30
+ const value = {
31
+ setFocusedIndex,
32
+ focusedIndex,
33
+ setOnClose,
34
+ onClose
35
+ };
36
+ return /*#__PURE__*/jsx(MenuContext.Provider, {
37
+ value: value,
38
+ children: children
39
+ });
40
+ };
41
+ const useMenu = () => useContext(MenuContext);
42
+
43
+ export { MenuProvider, useMenu };