@mitodl/smoot-design 0.0.0-preview215f7ae3fa

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 (190) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +27 -0
  3. package/dist/bundles/aiChat.es.js +24812 -0
  4. package/dist/bundles/aiChat.umd.js +161 -0
  5. package/dist/cjs/ai.d.ts +2 -0
  6. package/dist/cjs/ai.js +5 -0
  7. package/dist/cjs/bundles/aiChat.d.ts +6 -0
  8. package/dist/cjs/bundles/aiChat.js +13 -0
  9. package/dist/cjs/components/AiChat/AiChat.d.ts +5 -0
  10. package/dist/cjs/components/AiChat/AiChat.js +150 -0
  11. package/dist/cjs/components/AiChat/AiChat.stories.d.ts +11 -0
  12. package/dist/cjs/components/AiChat/AiChat.stories.js +76 -0
  13. package/dist/cjs/components/AiChat/AiChat.test.d.ts +1 -0
  14. package/dist/cjs/components/AiChat/AiChat.test.js +130 -0
  15. package/dist/cjs/components/AiChat/story-utils.d.ts +3 -0
  16. package/dist/cjs/components/AiChat/story-utils.js +100 -0
  17. package/dist/cjs/components/AiChat/types.d.ts +45 -0
  18. package/dist/cjs/components/AiChat/types.js +3 -0
  19. package/dist/cjs/components/AiChat/utils.d.ts +9 -0
  20. package/dist/cjs/components/AiChat/utils.js +31 -0
  21. package/dist/cjs/components/Button/ActionButton.d.ts +30 -0
  22. package/dist/cjs/components/Button/ActionButton.js +73 -0
  23. package/dist/cjs/components/Button/ActionButton.stories.d.ts +15 -0
  24. package/dist/cjs/components/Button/ActionButton.stories.js +116 -0
  25. package/dist/cjs/components/Button/Button.d.ts +56 -0
  26. package/dist/cjs/components/Button/Button.js +273 -0
  27. package/dist/cjs/components/Button/Button.stories.d.ts +17 -0
  28. package/dist/cjs/components/Button/Button.stories.js +138 -0
  29. package/dist/cjs/components/Button/Button.test.d.ts +1 -0
  30. package/dist/cjs/components/Button/Button.test.js +46 -0
  31. package/dist/cjs/components/Input/Input.d.ts +115 -0
  32. package/dist/cjs/components/Input/Input.js +219 -0
  33. package/dist/cjs/components/Input/Input.stories.d.ts +19 -0
  34. package/dist/cjs/components/Input/Input.stories.js +134 -0
  35. package/dist/cjs/components/Input/Input.test.d.ts +1 -0
  36. package/dist/cjs/components/Input/Input.test.js +32 -0
  37. package/dist/cjs/components/LinkAdapter/LinkAdapter.d.ts +23 -0
  38. package/dist/cjs/components/LinkAdapter/LinkAdapter.js +34 -0
  39. package/dist/cjs/components/ScrollSnap/ScrollSnap.d.ts +19 -0
  40. package/dist/cjs/components/ScrollSnap/ScrollSnap.js +59 -0
  41. package/dist/cjs/components/ScrollSnap/ScrollSnap.stories.d.ts +6 -0
  42. package/dist/cjs/components/ScrollSnap/ScrollSnap.stories.js +43 -0
  43. package/dist/cjs/components/SrAnnouncer/SrAnnouncer.d.ts +25 -0
  44. package/dist/cjs/components/SrAnnouncer/SrAnnouncer.js +43 -0
  45. package/dist/cjs/components/SrAnnouncer/SrAnnouncer.stories.d.ts +6 -0
  46. package/dist/cjs/components/SrAnnouncer/SrAnnouncer.stories.js +44 -0
  47. package/dist/cjs/components/SrAnnouncer/SrAnnouncer.test.d.ts +1 -0
  48. package/dist/cjs/components/SrAnnouncer/SrAnnouncer.test.js +62 -0
  49. package/dist/cjs/components/TextField/TextField.d.ts +29 -0
  50. package/dist/cjs/components/TextField/TextField.js +33 -0
  51. package/dist/cjs/components/TextField/TextField.stories.d.ts +10 -0
  52. package/dist/cjs/components/TextField/TextField.stories.js +135 -0
  53. package/dist/cjs/components/TextField/TextField.test.d.ts +1 -0
  54. package/dist/cjs/components/TextField/TextField.test.js +77 -0
  55. package/dist/cjs/components/ThemeProvider/ThemeProvider.d.ts +23 -0
  56. package/dist/cjs/components/ThemeProvider/ThemeProvider.js +90 -0
  57. package/dist/cjs/components/ThemeProvider/ThemeProvider.stories.d.ts +58 -0
  58. package/dist/cjs/components/ThemeProvider/ThemeProvider.stories.js +97 -0
  59. package/dist/cjs/components/ThemeProvider/Typography.stories.d.ts +39 -0
  60. package/dist/cjs/components/ThemeProvider/Typography.stories.js +65 -0
  61. package/dist/cjs/components/ThemeProvider/breakpoints.d.ts +4 -0
  62. package/dist/cjs/components/ThemeProvider/breakpoints.js +20 -0
  63. package/dist/cjs/components/ThemeProvider/buttons.d.ts +7 -0
  64. package/dist/cjs/components/ThemeProvider/buttons.js +20 -0
  65. package/dist/cjs/components/ThemeProvider/chips.d.ts +3 -0
  66. package/dist/cjs/components/ThemeProvider/chips.js +154 -0
  67. package/dist/cjs/components/ThemeProvider/colors.d.ts +32 -0
  68. package/dist/cjs/components/ThemeProvider/colors.js +35 -0
  69. package/dist/cjs/components/ThemeProvider/typography.d.ts +18 -0
  70. package/dist/cjs/components/ThemeProvider/typography.js +174 -0
  71. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +24 -0
  72. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js +33 -0
  73. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.stories.d.ts +6 -0
  74. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.stories.js +13 -0
  75. package/dist/cjs/components/internal/FormHelpers/FormHelpers.d.ts +39 -0
  76. package/dist/cjs/components/internal/FormHelpers/FormHelpers.js +78 -0
  77. package/dist/cjs/components/internal/FormHelpers/FormHelpers.test.d.ts +1 -0
  78. package/dist/cjs/components/internal/FormHelpers/FormHelpers.test.js +93 -0
  79. package/dist/cjs/index.d.ts +16 -0
  80. package/dist/cjs/index.js +28 -0
  81. package/dist/cjs/jest-setup.d.ts +1 -0
  82. package/dist/cjs/jest-setup.js +18 -0
  83. package/dist/cjs/jsdom-extended.d.ts +6 -0
  84. package/dist/cjs/jsdom-extended.js +14 -0
  85. package/dist/cjs/story-utils/index.d.ts +6 -0
  86. package/dist/cjs/story-utils/index.js +17 -0
  87. package/dist/cjs/utils/composeRefs.d.ts +7 -0
  88. package/dist/cjs/utils/composeRefs.js +20 -0
  89. package/dist/cjs/utils/composeRefs.test.d.ts +1 -0
  90. package/dist/cjs/utils/composeRefs.test.js +19 -0
  91. package/dist/cjs/utils/useDevCheckStable.d.ts +8 -0
  92. package/dist/cjs/utils/useDevCheckStable.js +29 -0
  93. package/dist/cjs/utils/useInterval.d.ts +7 -0
  94. package/dist/cjs/utils/useInterval.js +25 -0
  95. package/dist/esm/ai.d.ts +2 -0
  96. package/dist/esm/ai.js +1 -0
  97. package/dist/esm/bundles/aiChat.d.ts +6 -0
  98. package/dist/esm/bundles/aiChat.js +10 -0
  99. package/dist/esm/components/AiChat/AiChat.d.ts +5 -0
  100. package/dist/esm/components/AiChat/AiChat.js +147 -0
  101. package/dist/esm/components/AiChat/AiChat.stories.d.ts +11 -0
  102. package/dist/esm/components/AiChat/AiChat.stories.js +73 -0
  103. package/dist/esm/components/AiChat/AiChat.test.d.ts +1 -0
  104. package/dist/esm/components/AiChat/AiChat.test.js +128 -0
  105. package/dist/esm/components/AiChat/story-utils.d.ts +3 -0
  106. package/dist/esm/components/AiChat/story-utils.js +96 -0
  107. package/dist/esm/components/AiChat/types.d.ts +45 -0
  108. package/dist/esm/components/AiChat/types.js +2 -0
  109. package/dist/esm/components/AiChat/utils.d.ts +9 -0
  110. package/dist/esm/components/AiChat/utils.js +28 -0
  111. package/dist/esm/components/Button/ActionButton.d.ts +30 -0
  112. package/dist/esm/components/Button/ActionButton.js +68 -0
  113. package/dist/esm/components/Button/ActionButton.stories.d.ts +15 -0
  114. package/dist/esm/components/Button/ActionButton.stories.js +113 -0
  115. package/dist/esm/components/Button/Button.d.ts +56 -0
  116. package/dist/esm/components/Button/Button.js +265 -0
  117. package/dist/esm/components/Button/Button.stories.d.ts +17 -0
  118. package/dist/esm/components/Button/Button.stories.js +135 -0
  119. package/dist/esm/components/Button/Button.test.d.ts +1 -0
  120. package/dist/esm/components/Button/Button.test.js +44 -0
  121. package/dist/esm/components/Input/Input.d.ts +115 -0
  122. package/dist/esm/components/Input/Input.js +214 -0
  123. package/dist/esm/components/Input/Input.stories.d.ts +19 -0
  124. package/dist/esm/components/Input/Input.stories.js +131 -0
  125. package/dist/esm/components/Input/Input.test.d.ts +1 -0
  126. package/dist/esm/components/Input/Input.test.js +30 -0
  127. package/dist/esm/components/LinkAdapter/LinkAdapter.d.ts +23 -0
  128. package/dist/esm/components/LinkAdapter/LinkAdapter.js +31 -0
  129. package/dist/esm/components/ScrollSnap/ScrollSnap.d.ts +19 -0
  130. package/dist/esm/components/ScrollSnap/ScrollSnap.js +56 -0
  131. package/dist/esm/components/ScrollSnap/ScrollSnap.stories.d.ts +6 -0
  132. package/dist/esm/components/ScrollSnap/ScrollSnap.stories.js +40 -0
  133. package/dist/esm/components/SrAnnouncer/SrAnnouncer.d.ts +25 -0
  134. package/dist/esm/components/SrAnnouncer/SrAnnouncer.js +40 -0
  135. package/dist/esm/components/SrAnnouncer/SrAnnouncer.stories.d.ts +6 -0
  136. package/dist/esm/components/SrAnnouncer/SrAnnouncer.stories.js +41 -0
  137. package/dist/esm/components/SrAnnouncer/SrAnnouncer.test.d.ts +1 -0
  138. package/dist/esm/components/SrAnnouncer/SrAnnouncer.test.js +60 -0
  139. package/dist/esm/components/TextField/TextField.d.ts +29 -0
  140. package/dist/esm/components/TextField/TextField.js +30 -0
  141. package/dist/esm/components/TextField/TextField.stories.d.ts +10 -0
  142. package/dist/esm/components/TextField/TextField.stories.js +132 -0
  143. package/dist/esm/components/TextField/TextField.test.d.ts +1 -0
  144. package/dist/esm/components/TextField/TextField.test.js +75 -0
  145. package/dist/esm/components/ThemeProvider/ThemeProvider.d.ts +23 -0
  146. package/dist/esm/components/ThemeProvider/ThemeProvider.js +86 -0
  147. package/dist/esm/components/ThemeProvider/ThemeProvider.stories.d.ts +58 -0
  148. package/dist/esm/components/ThemeProvider/ThemeProvider.stories.js +94 -0
  149. package/dist/esm/components/ThemeProvider/Typography.stories.d.ts +39 -0
  150. package/dist/esm/components/ThemeProvider/Typography.stories.js +62 -0
  151. package/dist/esm/components/ThemeProvider/breakpoints.d.ts +4 -0
  152. package/dist/esm/components/ThemeProvider/breakpoints.js +16 -0
  153. package/dist/esm/components/ThemeProvider/buttons.d.ts +7 -0
  154. package/dist/esm/components/ThemeProvider/buttons.js +17 -0
  155. package/dist/esm/components/ThemeProvider/chips.d.ts +3 -0
  156. package/dist/esm/components/ThemeProvider/chips.js +151 -0
  157. package/dist/esm/components/ThemeProvider/colors.d.ts +32 -0
  158. package/dist/esm/components/ThemeProvider/colors.js +32 -0
  159. package/dist/esm/components/ThemeProvider/typography.d.ts +18 -0
  160. package/dist/esm/components/ThemeProvider/typography.js +168 -0
  161. package/dist/esm/components/VisuallyHidden/VisuallyHidden.d.ts +24 -0
  162. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js +30 -0
  163. package/dist/esm/components/VisuallyHidden/VisuallyHidden.stories.d.ts +6 -0
  164. package/dist/esm/components/VisuallyHidden/VisuallyHidden.stories.js +10 -0
  165. package/dist/esm/components/internal/FormHelpers/FormHelpers.d.ts +39 -0
  166. package/dist/esm/components/internal/FormHelpers/FormHelpers.js +73 -0
  167. package/dist/esm/components/internal/FormHelpers/FormHelpers.test.d.ts +1 -0
  168. package/dist/esm/components/internal/FormHelpers/FormHelpers.test.js +91 -0
  169. package/dist/esm/index.d.ts +16 -0
  170. package/dist/esm/index.js +11 -0
  171. package/dist/esm/jest-setup.d.ts +1 -0
  172. package/dist/esm/jest-setup.js +16 -0
  173. package/dist/esm/jsdom-extended.d.ts +6 -0
  174. package/dist/esm/jsdom-extended.js +12 -0
  175. package/dist/esm/story-utils/index.d.ts +6 -0
  176. package/dist/esm/story-utils/index.js +13 -0
  177. package/dist/esm/utils/composeRefs.d.ts +7 -0
  178. package/dist/esm/utils/composeRefs.js +17 -0
  179. package/dist/esm/utils/composeRefs.test.d.ts +1 -0
  180. package/dist/esm/utils/composeRefs.test.js +17 -0
  181. package/dist/esm/utils/useDevCheckStable.d.ts +8 -0
  182. package/dist/esm/utils/useDevCheckStable.js +26 -0
  183. package/dist/esm/utils/useInterval.d.ts +7 -0
  184. package/dist/esm/utils/useInterval.js +22 -0
  185. package/dist/tsconfig.tsbuildinfo +1 -0
  186. package/dist/type-augmentation/TypescriptDocs.mdx +17 -0
  187. package/dist/type-augmentation/index.d.ts +2 -0
  188. package/dist/type-augmentation/theme.d.ts +103 -0
  189. package/dist/type-augmentation/typography.d.ts +54 -0
  190. package/package.json +141 -0
@@ -0,0 +1,17 @@
1
+ import { Meta } from "@storybook/blocks"
2
+
3
+ <Meta title="Smoot-Design/Typescript" />
4
+
5
+ # Type Augmentation
6
+
7
+ Smoot Design uses Typescript's module augmentation to enhance types provided by `@emotion` and `@mui` packages. For example, we add custom theme properties (`theme.custom`) to the default theme and add new properties / values to some MUI components.
8
+
9
+ To enable this module augmentation in a consuming application or library, either:
10
+
11
+ - **Method 1:** `"@mitodl/smoot-design/type-augmentation"` to the `"types"` array in the `tsconfig.json` file, or
12
+ - **Method 2:** add `import "@mitodl/smoot-design/type-augmentation";` to a `global.d.ts` file.
13
+
14
+ For more information on this subject, see:
15
+
16
+ - TS Documenation: [Declaration Merging](https://www.typescriptlang.org/docs/handbook/declaration-merging.html)
17
+ - MUI Documentation: [Theming/Typescript](https://mui.com/material-ui/customization/theming/#typescript)
@@ -0,0 +1,2 @@
1
+ import "./theme"
2
+ import "./typography"
@@ -0,0 +1,103 @@
1
+ import type { Theme as MuiTheme } from "@mui/material/styles"
2
+ import "@emotion/react"
3
+ import "@emotion/styled"
4
+
5
+ export interface ColorGroup {
6
+ main: string
7
+ highlight: string
8
+ contrastText: string
9
+ }
10
+
11
+ export interface CustomTheme {
12
+ colors: {
13
+ mitRed: string
14
+ silverGray: string
15
+ brightRed: string
16
+ black: string
17
+ white: string
18
+ darkGray2: string
19
+ darkGray1: string
20
+ silverGrayDark: string
21
+ silverGrayLight: string
22
+ lightGray2: string
23
+ lightGray1: string
24
+ navGray: string
25
+ darkPink: string
26
+ pink: string
27
+ lightPink: string
28
+ darkPurple: string
29
+ purple: string
30
+ lightPurple: string
31
+ darkBlue: string
32
+ blue: string
33
+ lightBlue: string
34
+ darkGreen: string
35
+ green: string
36
+ lightGreen: string
37
+ darkRed: string
38
+ red: string
39
+ lightRed: string
40
+ orange: string
41
+ yellow: string
42
+ }
43
+ dimensions: {
44
+ headerHeight: string
45
+ headerHeightSm: string
46
+ }
47
+ LinkAdapter?: React.ElementType
48
+ }
49
+
50
+ /* https://mui.com/material-ui/customization/theming/#typescript */
51
+ declare module "@mui/material/styles" {
52
+ interface Theme {
53
+ custom: CustomTheme
54
+ }
55
+
56
+ interface ThemeOptions {
57
+ custom: CustomTheme
58
+ }
59
+
60
+ interface PaletteColor {
61
+ active?: string
62
+ }
63
+
64
+ interface SimplePaletteColorOptions {
65
+ active?: string
66
+ }
67
+ }
68
+
69
+ declare module "@mui/material/Button" {
70
+ interface ButtonPropsSizeOverrides {
71
+ medium: false
72
+ }
73
+ }
74
+
75
+ declare module "@mui/material/InputBase" {
76
+ interface InputBasePropsSizeOverrides {
77
+ hero: true
78
+ large: true
79
+ }
80
+ }
81
+
82
+ declare module "@mui/material/Chip" {
83
+ interface ChipPropsSizeOverrides {
84
+ large: true
85
+ medium: true
86
+ small: false
87
+ }
88
+
89
+ interface ChipPropsVariantOverrides {
90
+ filled: true
91
+ outlined: true
92
+ outlinedWhite: true
93
+ dark: true
94
+ darker: true
95
+ gray: true
96
+ }
97
+ }
98
+
99
+ declare module "@emotion/react" {
100
+ export interface Theme extends MuiTheme {
101
+ custom: CustomTheme
102
+ }
103
+ }
@@ -0,0 +1,54 @@
1
+ import "@mui/material/styles"
2
+
3
+ declare module "@mui/material/styles" {
4
+ interface TypographyVariants {
5
+ h1: React.CSSProperties
6
+ h2: React.CSSProperties
7
+ h3: React.CSSProperties
8
+ h4: React.CSSProperties
9
+ h5: React.CSSProperties
10
+ body1: React.CSSProperties
11
+ body2: React.CSSProperties
12
+ body3: React.CSSProperties
13
+ body4: React.CSSProperties
14
+ subtitle1: React.CSSProperties
15
+ subtitle2: React.CSSProperties
16
+ subtitle3: React.CSSProperties
17
+ subtitle4: React.CSSProperties
18
+ buttonLarge: React.CSSProperties
19
+ button: React.CSSProperties
20
+ buttonSmall: React.CSSProperties
21
+ }
22
+ interface TypographyVariantsOptions {
23
+ h1: React.CSSProperties
24
+ h2: React.CSSProperties
25
+ h3: React.CSSProperties
26
+ h4: React.CSSProperties
27
+ h5: React.CSSProperties
28
+ body1: React.CSSProperties
29
+ body2: React.CSSProperties
30
+ body3: React.CSSProperties
31
+ body4: React.CSSProperties
32
+ subtitle1: React.CSSProperties
33
+ subtitle2: React.CSSProperties
34
+ subtitle3: React.CSSProperties
35
+ subtitle4: React.CSSProperties
36
+ buttonLarge: React.CSSProperties
37
+ button: React.CSSProperties
38
+ buttonSmall: React.CSSProperties
39
+ }
40
+ }
41
+
42
+ declare module "@mui/material/Typography" {
43
+ interface TypographyPropsVariantOverrides {
44
+ body1: true
45
+ body2: true
46
+ body3: true
47
+ body4: true
48
+ subtitle1: true
49
+ subtitle2: true
50
+ subtitle3: true
51
+ subtitle4: true
52
+ button: true
53
+ }
54
+ }
package/package.json ADDED
@@ -0,0 +1,141 @@
1
+ {
2
+ "name": "@mitodl/smoot-design",
3
+ "version": "0.0.0-preview215f7ae3fa",
4
+ "packageManager": "yarn@4.5.3",
5
+ "files": [
6
+ "dist"
7
+ ],
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/mitodl/smoot-design"
11
+ },
12
+ "scripts": {
13
+ "start": "storybook dev -p 6006 --docs",
14
+ "bundle-preview": "yarn build && cp -r dist/bundles bundle-preview/static/smoot-design && npx serve bundle-preview",
15
+ "build-storybook": "storybook build --docs",
16
+ "test": "jest",
17
+ "typecheck": "tsc --noEmit",
18
+ "build:esm": "tsc",
19
+ "build:cjs": "tsc --module commonjs --outDir dist/cjs",
20
+ "build:bundles": "vite build --outDir dist/bundles",
21
+ "build:type-augmentation": "cp -r src/type-augmentation dist/type-augmentation",
22
+ "build": "rm -rf dist && rm -f .tsbuildinfo && npm run build:esm && npm run build:cjs && npm run build:type-augmentation && yarn build:bundles",
23
+ "lint-check": "eslint src/ .storybook/",
24
+ "lint-fix": "yarn lint-check --fix",
25
+ "fmt-check": "prettier --ignore-path .gitignore --ignore-path .prettierignore --check .",
26
+ "fmt-fix": "prettier --ignore-path .gitignore --ignore-path .prettierignore --write .",
27
+ "prepack": "yarn build"
28
+ },
29
+ "exports": {
30
+ ".": {
31
+ "import": {
32
+ "types": "./dist/esm/index.d.ts",
33
+ "default": "./dist/esm/index.js"
34
+ },
35
+ "require": {
36
+ "types": "./dist/cjs/index.d.ts",
37
+ "default": "./dist/cjs/index.js"
38
+ },
39
+ "default": {
40
+ "types": "./dist/esm/index.d.ts",
41
+ "default": "./dist/esm/index.js"
42
+ }
43
+ },
44
+ "./ai": {
45
+ "import": {
46
+ "types": "./dist/esm/ai.d.ts",
47
+ "default": "./dist/esm/ai.js"
48
+ },
49
+ "require": {
50
+ "types": "./dist/cjs/ai.d.ts",
51
+ "default": "./dist/cjs/ai.js"
52
+ },
53
+ "default": {
54
+ "types": "./dist/esm/ai.d.ts",
55
+ "default": "./dist/esm/ai.js"
56
+ }
57
+ },
58
+ "./type-augmentation": {
59
+ "import": "./dist/type-augmentation/index.d.ts",
60
+ "require": "./dist/type-augmentation/index.d.ts",
61
+ "default": "./dist/type-augmentation/index.d.ts"
62
+ }
63
+ },
64
+ "dependencies": {
65
+ "@emotion/react": "^11.11.1",
66
+ "@emotion/styled": "^11.11.0",
67
+ "@mui/base": "5.0.0-beta.67",
68
+ "@mui/lab": "6.0.0-beta.20",
69
+ "@mui/material": "^6.1.6",
70
+ "@mui/material-nextjs": "^6.1.6",
71
+ "@mui/system": "^6.1.6",
72
+ "@remixicon/react": "^4.2.0",
73
+ "@types/jest": "^29.5.14",
74
+ "ai": "^4.0.13",
75
+ "classnames": "^2.5.1",
76
+ "lodash": "^4.17.21",
77
+ "react-markdown": "^9.0.1",
78
+ "tiny-invariant": "^1.3.1",
79
+ "zod": "^3.23.8"
80
+ },
81
+ "devDependencies": {
82
+ "@chromatic-com/storybook": "^1.9.0",
83
+ "@faker-js/faker": "^9.0.0",
84
+ "@jest/environment": "^29.7.0",
85
+ "@storybook/addon-actions": "^8.4.7",
86
+ "@storybook/addon-essentials": "^8.4.7",
87
+ "@storybook/addon-interactions": "^8.4.7",
88
+ "@storybook/addon-links": "^8.4.7",
89
+ "@storybook/addon-onboarding": "^8.4.7",
90
+ "@storybook/addon-webpack5-compiler-swc": "^1.0.5",
91
+ "@storybook/blocks": "^8.4.7",
92
+ "@storybook/nextjs": "^8.4.7",
93
+ "@storybook/preview-api": "^8.4.7",
94
+ "@storybook/react": "^8.4.7",
95
+ "@storybook/react-webpack5": "^8.4.7",
96
+ "@storybook/test": "^8.4.7",
97
+ "@storybook/types": "^8.4.7",
98
+ "@swc/jest": "^0.2.37",
99
+ "@testing-library/jest-dom": "^6.6.3",
100
+ "@testing-library/react": "^16.0.1",
101
+ "@testing-library/user-event": "14.5.2",
102
+ "@types/lodash": "^4.17.13",
103
+ "@types/react-dom": "^19.0.0",
104
+ "@typescript-eslint/eslint-plugin": "^8.13.0",
105
+ "@typescript-eslint/typescript-estree": "^8.13.0",
106
+ "conventional-changelog-conventionalcommits": "^8.0.0",
107
+ "eslint": "8.57.1",
108
+ "eslint-config-mitodl": "^2.1.0",
109
+ "eslint-config-prettier": "^9.0.0",
110
+ "eslint-import-resolver-typescript": "^3.6.1",
111
+ "eslint-plugin-import": "^2.29.1",
112
+ "eslint-plugin-jest": "^28.6.0",
113
+ "eslint-plugin-mdx": "^3.0.0",
114
+ "eslint-plugin-react": "^7.34.3",
115
+ "eslint-plugin-react-hooks": "^5.0.0",
116
+ "eslint-plugin-styled-components-a11y": "^2.1.35",
117
+ "eslint-plugin-testing-library": "^7.0.0",
118
+ "jest": "^29.7.0",
119
+ "jest-environment-jsdom": "^29.5.0",
120
+ "jest-extended": "^4.0.2",
121
+ "jest-fail-on-console": "^3.3.1",
122
+ "jest-watch-typeahead": "^2.2.2",
123
+ "next": "^15.0.2",
124
+ "prettier": "^3.3.3",
125
+ "react": "19.0.0",
126
+ "react-dom": "^19.0.0",
127
+ "react-router": "^6.22.2",
128
+ "react-router-dom": "^6.22.2",
129
+ "semantic-release": "^24.2.0",
130
+ "storybook": "^8.4.2",
131
+ "ts-node": "^10.9.2",
132
+ "tsconfig-paths-webpack-plugin": "^4.1.0",
133
+ "type-fest": "^4.26.1",
134
+ "typescript": "^5.6.3",
135
+ "vite": "^6.0.7"
136
+ },
137
+ "peerDependencies": {
138
+ "react": "^18 || ^19",
139
+ "react-dom": "^18 || ^19"
140
+ }
141
+ }