@nypl/design-system-react-components 0.25.7 → 0.25.10

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 (293) hide show
  1. package/CHANGELOG.md +119 -1
  2. package/README.md +1 -1
  3. package/dist/components/Button/Button.d.ts +6 -6
  4. package/dist/components/Button/ButtonTypes.d.ts +0 -1
  5. package/dist/components/Card/Card.d.ts +6 -4
  6. package/dist/components/Checkbox/Checkbox.d.ts +3 -2
  7. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
  8. package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
  9. package/dist/components/DatePicker/DatePicker.d.ts +4 -3
  10. package/dist/components/Fieldset/Fieldset.d.ts +1 -3
  11. package/dist/components/Form/Form.d.ts +15 -14
  12. package/dist/components/Form/FormTypes.d.ts +2 -2
  13. package/dist/components/Heading/Heading.d.ts +7 -3
  14. package/dist/components/Heading/HeadingTypes.d.ts +6 -6
  15. package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
  16. package/dist/components/HorizontalRule/HorizontalRule.d.ts +3 -3
  17. package/dist/components/Icons/Icon.d.ts +4 -4
  18. package/dist/components/Icons/IconSvgs.d.ts +1 -21
  19. package/dist/components/Icons/IconTypes.d.ts +1 -23
  20. package/dist/components/Image/Image.d.ts +11 -3
  21. package/dist/components/Image/ImageTypes.d.ts +3 -1
  22. package/dist/components/Link/LinkTypes.d.ts +1 -0
  23. package/dist/components/Logo/Logo.d.ts +28 -0
  24. package/dist/components/Logo/LogoSvgs.d.ts +18 -0
  25. package/dist/components/Logo/LogoTypes.d.ts +30 -0
  26. package/dist/components/Modal/Modal.d.ts +0 -4
  27. package/dist/components/Notification/Notification.d.ts +4 -2
  28. package/dist/components/Placeholder/Placeholder.d.ts +3 -5
  29. package/dist/components/Radio/Radio.d.ts +6 -5
  30. package/dist/components/RadioGroup/RadioGroup.d.ts +6 -5
  31. package/dist/components/SearchBar/SearchBar.d.ts +15 -7
  32. package/dist/components/Select/Select.d.ts +5 -2
  33. package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -4
  34. package/dist/components/Slider/Slider.d.ts +3 -2
  35. package/dist/components/StatusBadge/StatusBadge.d.ts +2 -1
  36. package/dist/components/StructuredContent/StructuredContent.d.ts +41 -0
  37. package/dist/components/StructuredContent/StructuredContentTypes.d.ts +5 -0
  38. package/dist/components/Table/Table.d.ts +29 -0
  39. package/dist/components/Template/Template.d.ts +30 -6
  40. package/dist/components/Text/Text.d.ts +2 -2
  41. package/dist/components/TextInput/TextInput.d.ts +4 -3
  42. package/dist/components/Toggle/Toggle.d.ts +48 -0
  43. package/dist/components/Toggle/ToggleSizes.d.ts +4 -0
  44. package/dist/components/VideoPlayer/VideoPlayer.d.ts +17 -6
  45. package/dist/design-system-react-components.cjs.development.js +4698 -4405
  46. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  47. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  48. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  49. package/dist/design-system-react-components.esm.js +5862 -5573
  50. package/dist/design-system-react-components.esm.js.map +1 -1
  51. package/dist/index.d.ts +13 -8
  52. package/dist/resources.scss +0 -2
  53. package/dist/styles.css +2 -2
  54. package/dist/theme/components/breadcrumb.d.ts +1 -1
  55. package/dist/theme/components/button.d.ts +0 -12
  56. package/dist/theme/components/card.d.ts +14 -2
  57. package/dist/theme/components/customTable.d.ts +56 -0
  58. package/dist/theme/components/fieldset.d.ts +2 -2
  59. package/dist/theme/components/global.d.ts +1 -1
  60. package/dist/theme/components/heading.d.ts +4 -0
  61. package/dist/theme/components/label.d.ts +1 -1
  62. package/dist/theme/components/link.d.ts +14 -1
  63. package/dist/theme/components/list.d.ts +0 -2
  64. package/dist/theme/components/logo.d.ts +4 -0
  65. package/dist/theme/components/notification.d.ts +8 -4
  66. package/dist/theme/components/searchBar.d.ts +7 -13
  67. package/dist/theme/components/select.d.ts +1 -0
  68. package/dist/theme/components/structuredContent.d.ts +33 -0
  69. package/dist/theme/components/template.d.ts +10 -10
  70. package/dist/theme/components/textInput.d.ts +2 -0
  71. package/dist/theme/components/toggle.d.ts +71 -0
  72. package/dist/theme/foundations/spacing.d.ts +2 -0
  73. package/dist/utils/utils.d.ts +10 -0
  74. package/package.json +40 -37
  75. package/src/__tests__/utils/utils.test.ts +23 -1
  76. package/src/components/Accordion/Accordion.stories.mdx +16 -15
  77. package/src/components/Accordion/Accordion.test.tsx +45 -1
  78. package/src/components/Accordion/Accordion.tsx +20 -8
  79. package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +243 -0
  80. package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
  81. package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
  82. package/src/components/Autosuggest/_Autosuggest.scss +2 -6
  83. package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +43 -13
  84. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +25 -0
  85. package/src/components/Breadcrumbs/Breadcrumbs.tsx +9 -3
  86. package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +103 -4
  87. package/src/components/Button/Button.stories.mdx +93 -48
  88. package/src/components/Button/Button.test.tsx +0 -12
  89. package/src/components/Button/Button.tsx +7 -8
  90. package/src/components/Button/ButtonTypes.tsx +0 -1
  91. package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
  92. package/src/components/Card/Card.stories.mdx +246 -64
  93. package/src/components/Card/Card.test.tsx +45 -22
  94. package/src/components/Card/Card.tsx +30 -14
  95. package/src/components/Card/__snapshots__/Card.test.tsx.snap +75 -37
  96. package/src/components/Chakra/Box.stories.mdx +3 -3
  97. package/src/components/Chakra/Center.stories.mdx +5 -5
  98. package/src/components/Chakra/Flex.stories.mdx +113 -0
  99. package/src/components/Chakra/Grid.stories.mdx +14 -17
  100. package/src/components/Chakra/Stack.stories.mdx +2 -2
  101. package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
  102. package/src/components/Checkbox/Checkbox.tsx +13 -8
  103. package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
  104. package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
  105. package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
  106. package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
  107. package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
  108. package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
  109. package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
  110. package/src/components/DatePicker/DatePicker.test.tsx +14 -12
  111. package/src/components/DatePicker/DatePicker.tsx +13 -10
  112. package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +41 -22
  113. package/src/components/Fieldset/Fieldset.stories.mdx +20 -9
  114. package/src/components/Fieldset/Fieldset.tsx +2 -4
  115. package/src/components/Form/Form.stories.mdx +75 -49
  116. package/src/components/Form/Form.test.tsx +92 -3
  117. package/src/components/Form/Form.tsx +28 -23
  118. package/src/components/Form/FormTypes.tsx +2 -2
  119. package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -1
  120. package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
  121. package/src/components/Heading/Heading.stories.mdx +59 -23
  122. package/src/components/Heading/Heading.test.tsx +82 -18
  123. package/src/components/Heading/Heading.tsx +31 -31
  124. package/src/components/Heading/HeadingTypes.tsx +6 -6
  125. package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
  126. package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
  127. package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
  128. package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
  129. package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
  130. package/src/components/Hero/Hero.stories.mdx +72 -53
  131. package/src/components/HorizontalRule/HorizontalRule.stories.mdx +11 -9
  132. package/src/components/HorizontalRule/HorizontalRule.tsx +4 -6
  133. package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +4 -4
  134. package/src/components/Icons/Icon.stories.mdx +77 -75
  135. package/src/components/Icons/Icon.tsx +4 -5
  136. package/src/components/Icons/IconSvgs.tsx +2 -42
  137. package/src/components/Icons/IconTypes.tsx +1 -24
  138. package/src/components/Image/Image.stories.mdx +214 -104
  139. package/src/components/Image/Image.test.tsx +10 -0
  140. package/src/components/Image/Image.tsx +21 -10
  141. package/src/components/Image/ImageTypes.ts +2 -0
  142. package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
  143. package/src/components/Label/Label.stories.mdx +21 -20
  144. package/src/components/Link/Link.stories.mdx +103 -53
  145. package/src/components/Link/Link.test.tsx +108 -7
  146. package/src/components/Link/Link.tsx +58 -19
  147. package/src/components/Link/LinkTypes.tsx +1 -0
  148. package/src/components/Link/__snapshots__/Link.test.tsx.snap +261 -0
  149. package/src/components/List/List.stories.mdx +37 -25
  150. package/src/components/List/List.tsx +1 -1
  151. package/src/components/Logo/Logo.stories.mdx +220 -0
  152. package/src/components/Logo/Logo.test.tsx +98 -0
  153. package/src/components/Logo/Logo.tsx +97 -0
  154. package/src/components/Logo/LogoSvgs.tsx +34 -0
  155. package/src/components/Logo/LogoTypes.tsx +32 -0
  156. package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
  157. package/src/components/Modal/Modal.stories.mdx +20 -5
  158. package/src/components/Modal/Modal.tsx +2 -8
  159. package/src/components/Notification/Notification.stories.mdx +96 -40
  160. package/src/components/Notification/Notification.test.tsx +62 -16
  161. package/src/components/Notification/Notification.tsx +26 -9
  162. package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +121 -0
  163. package/src/components/Pagination/Pagination.stories.mdx +19 -9
  164. package/src/components/Pagination/Pagination.tsx +3 -3
  165. package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +42 -0
  166. package/src/components/Placeholder/Placeholder.tsx +7 -14
  167. package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +74 -46
  168. package/src/components/Radio/Radio.stories.mdx +39 -19
  169. package/src/components/Radio/Radio.tsx +13 -9
  170. package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +5 -5
  171. package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
  172. package/src/components/RadioGroup/RadioGroup.test.tsx +13 -11
  173. package/src/components/RadioGroup/RadioGroup.tsx +97 -94
  174. package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +24 -21
  175. package/src/components/SearchBar/SearchBar.Test.tsx +160 -34
  176. package/src/components/SearchBar/SearchBar.stories.mdx +116 -34
  177. package/src/components/SearchBar/SearchBar.tsx +70 -50
  178. package/src/components/Select/Select.stories.mdx +177 -66
  179. package/src/components/Select/Select.test.tsx +91 -2
  180. package/src/components/Select/Select.tsx +29 -13
  181. package/src/components/Select/__snapshots__/Select.test.tsx.snap +545 -0
  182. package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
  183. package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
  184. package/src/components/Slider/Slider.stories.mdx +74 -23
  185. package/src/components/Slider/Slider.test.tsx +35 -0
  186. package/src/components/Slider/Slider.tsx +22 -11
  187. package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +67 -30
  188. package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
  189. package/src/components/StatusBadge/StatusBadge.tsx +2 -1
  190. package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
  191. package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
  192. package/src/components/StructuredContent/StructuredContent.tsx +153 -0
  193. package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
  194. package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
  195. package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
  196. package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
  197. package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
  198. package/src/components/StyleGuide/ColorCard.tsx +1 -2
  199. package/src/components/StyleGuide/Colors.stories.mdx +3 -11
  200. package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
  201. package/src/components/StyleGuide/Forms.stories.mdx +2 -10
  202. package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
  203. package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
  204. package/src/components/StyleGuide/Typography.stories.mdx +64 -76
  205. package/src/components/Table/Table.stories.mdx +165 -0
  206. package/src/components/Table/Table.test.tsx +137 -0
  207. package/src/components/Table/Table.tsx +126 -0
  208. package/src/components/Table/__snapshots__/Table.test.tsx.snap +1179 -0
  209. package/src/components/Tabs/Tabs.stories.mdx +20 -14
  210. package/src/components/Tabs/Tabs.test.tsx +21 -5
  211. package/src/components/Tabs/Tabs.tsx +33 -18
  212. package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +195 -0
  213. package/src/components/Template/Template.stories.mdx +132 -49
  214. package/src/components/Template/Template.test.tsx +128 -6
  215. package/src/components/Template/Template.tsx +93 -13
  216. package/src/components/Template/__snapshots__/Template.test.tsx.snap +169 -0
  217. package/src/components/Text/Text.stories.mdx +33 -11
  218. package/src/components/Text/Text.tsx +2 -2
  219. package/src/components/TextInput/TextInput.stories.mdx +84 -17
  220. package/src/components/TextInput/TextInput.test.tsx +96 -0
  221. package/src/components/TextInput/TextInput.tsx +12 -8
  222. package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
  223. package/src/components/Toggle/Toggle.stories.mdx +200 -0
  224. package/src/components/Toggle/Toggle.test.tsx +140 -0
  225. package/src/components/Toggle/Toggle.tsx +123 -0
  226. package/src/components/Toggle/ToggleSizes.tsx +4 -0
  227. package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +255 -0
  228. package/src/components/VideoPlayer/VideoPlayer.stories.mdx +96 -25
  229. package/src/components/VideoPlayer/VideoPlayer.test.tsx +103 -1
  230. package/src/components/VideoPlayer/VideoPlayer.tsx +72 -22
  231. package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +57 -3
  232. package/src/docs/Chakra.stories.mdx +5 -8
  233. package/src/docs/Intro.stories.mdx +2 -2
  234. package/src/index.ts +19 -6
  235. package/src/styles/base/_03-base.scss +1 -1
  236. package/src/styles/base/_place-holder.scss +7 -7
  237. package/src/styles.scss +1 -5
  238. package/src/theme/components/breadcrumb.ts +5 -5
  239. package/src/theme/components/button.ts +5 -12
  240. package/src/theme/components/card.ts +9 -7
  241. package/src/theme/components/checkbox.ts +1 -1
  242. package/src/theme/components/customTable.ts +63 -0
  243. package/src/theme/components/datePicker.ts +1 -1
  244. package/src/theme/components/global.ts +7 -7
  245. package/src/theme/components/heading.ts +13 -11
  246. package/src/theme/components/helperErrorText.ts +1 -1
  247. package/src/theme/components/icon.ts +2 -2
  248. package/src/theme/components/image.ts +9 -1
  249. package/src/theme/components/link.ts +17 -5
  250. package/src/theme/components/list.ts +1 -3
  251. package/src/theme/components/logo.ts +54 -0
  252. package/src/theme/components/notification.ts +9 -7
  253. package/src/theme/components/searchBar.ts +7 -13
  254. package/src/theme/components/select.ts +1 -0
  255. package/src/theme/components/statusBadge.ts +1 -1
  256. package/src/theme/components/structuredContent.ts +54 -0
  257. package/src/theme/components/template.ts +10 -10
  258. package/src/theme/components/text.ts +6 -6
  259. package/src/theme/components/textInput.ts +1 -0
  260. package/src/theme/components/toggle.ts +69 -0
  261. package/src/theme/components/videoPlayer.ts +0 -2
  262. package/src/theme/foundations/global.ts +2 -2
  263. package/src/theme/foundations/spacing.ts +3 -0
  264. package/src/theme/foundations/typography.ts +84 -12
  265. package/src/theme/index.ts +8 -0
  266. package/src/utils/componentCategories.ts +5 -2
  267. package/src/utils/utils.ts +17 -0
  268. package/dist/__tests__/utils/bem.test.d.ts +0 -1
  269. package/dist/components/CardEdition/CardEdition.d.ts +0 -21
  270. package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
  271. package/dist/components/Input/Input.d.ts +0 -36
  272. package/dist/components/Input/Input.stories.d.ts +0 -29
  273. package/dist/components/Input/InputTypes.d.ts +0 -6
  274. package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
  275. package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
  276. package/dist/helpers/getCSSVariable.d.ts +0 -1
  277. package/dist/interfaces.d.ts +0 -3
  278. package/dist/utils/bem.d.ts +0 -1
  279. package/src/__tests__/utils/bem.test.ts +0 -37
  280. package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
  281. package/src/components/CardEdition/CardEdition.test.tsx +0 -395
  282. package/src/components/CardEdition/CardEdition.tsx +0 -60
  283. package/src/components/CardEdition/_CardEdition.scss +0 -137
  284. package/src/components/Input/Input.stories.tsx +0 -133
  285. package/src/components/Input/Input.test.tsx +0 -266
  286. package/src/components/Input/Input.tsx +0 -81
  287. package/src/components/Input/InputTypes.tsx +0 -8
  288. package/src/components/Input/_Input.scss +0 -78
  289. package/src/components/StyleGuide/UIDocCard.tsx +0 -36
  290. package/src/helpers/CSSVariablesHelper.tsx +0 -34
  291. package/src/helpers/getCSSVariable.tsx +0 -5
  292. package/src/interfaces.ts +0 -3
  293. package/src/utils/bem.ts +0 -44
@@ -63,6 +63,46 @@ describe("VideoPlayer", () => {
63
63
  });
64
64
  });
65
65
 
66
+ describe("using embedCode prop", () => {
67
+ const embedCode = `<iframe src="https://player.vimeo.com/video/421404144?h=5467db7edd" width="640" height="360" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>`;
68
+ const embedCodeWithTitle = `<iframe title="Pre-Existing iFrame Title" src="https://player.vimeo.com/video/421404144?h=5467db7edd" width="640" height="360" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>`;
69
+
70
+ it("Renders custom embed code", () => {
71
+ render(<VideoPlayer embedCode={embedCode} />);
72
+ expect(screen.getByTitle("Video player")).toBeInTheDocument();
73
+ expect(screen.getByTitle("Video player")).toHaveAttribute(
74
+ "src",
75
+ `https://player.vimeo.com/video/421404144?h=5467db7edd`
76
+ );
77
+ });
78
+
79
+ it("Renders custom embed code with custom iframe title", () => {
80
+ render(
81
+ <VideoPlayer embedCode={embedCode} iframeTitle="Custom iFrame Title" />
82
+ );
83
+ expect(screen.getByTitle("Custom iFrame Title")).toBeInTheDocument();
84
+ });
85
+
86
+ it("Renders custom embed code with pre-existing title", () => {
87
+ render(<VideoPlayer embedCode={embedCodeWithTitle} />);
88
+ expect(
89
+ screen.getByTitle("Pre-Existing iFrame Title")
90
+ ).toBeInTheDocument();
91
+ });
92
+
93
+ it("Renders custom embed code with pre-existing title and ignores `iframeTitle` prop", () => {
94
+ render(
95
+ <VideoPlayer
96
+ embedCode={embedCodeWithTitle}
97
+ iframeTitle="Custom iFrame Title"
98
+ />
99
+ );
100
+ expect(
101
+ screen.getByTitle("Pre-Existing iFrame Title")
102
+ ).toBeInTheDocument();
103
+ });
104
+ });
105
+
66
106
  describe("text elements", () => {
67
107
  beforeEach(() => {
68
108
  utils = render(
@@ -121,7 +161,7 @@ describe("VideoPlayer", () => {
121
161
  });
122
162
 
123
163
  describe("prop validation", () => {
124
- it("Throws error if videoId not formatted properly", () => {
164
+ it("Throws error if the videoId prop not is formatted properly", () => {
125
165
  render(
126
166
  <VideoPlayer
127
167
  videoType={VideoPlayerTypes.Vimeo}
@@ -135,6 +175,56 @@ describe("VideoPlayer", () => {
135
175
  )
136
176
  ).toBeInTheDocument();
137
177
  });
178
+
179
+ it("Throws appropriate error if VideoPlayer props are not configured properly", () => {
180
+ const warn = jest.spyOn(console, "warn");
181
+
182
+ render(<VideoPlayer />);
183
+ expect(warn).toHaveBeenCalledWith(
184
+ "VideoPlayer requires either the `embedCode` prop or both the `videoType` and `videoId` props."
185
+ );
186
+
187
+ render(<VideoPlayer videoId="http://vimeo.com/474719268" />);
188
+ expect(warn).toHaveBeenCalledWith(
189
+ "VideoPlayer also requires the `videoType` prop. You have only set the `videoId` prop."
190
+ );
191
+
192
+ render(<VideoPlayer videoType={VideoPlayerTypes.Vimeo} />);
193
+ expect(warn).toHaveBeenCalledWith(
194
+ "VideoPlayer also requires the `videoId` prop. You have only set the `videoType` prop."
195
+ );
196
+
197
+ render(
198
+ <VideoPlayer
199
+ embedCode="<iframe src='https://player.vimeo.com/video/421404144?h=5467db7edd' width='640' height='360' frameborder='0' allow='autoplay; fullscreen; picture-in-picture' allowfullscreen></iframe>"
200
+ videoType={VideoPlayerTypes.Vimeo}
201
+ videoId="http://vimeo.com/474719268"
202
+ />
203
+ );
204
+ expect(warn).toHaveBeenCalledWith(
205
+ "VideoPlayer can accept the `embedCode` prop or the `videoType` and `videoId` props. You have set both."
206
+ );
207
+
208
+ render(
209
+ <VideoPlayer
210
+ embedCode="<iframe src='https://player.vimeo.com/video/421404144?h=5467db7edd' width='640' height='360' frameborder='0' allow='autoplay; fullscreen; picture-in-picture' allowfullscreen></iframe>"
211
+ videoType={VideoPlayerTypes.Vimeo}
212
+ />
213
+ );
214
+ expect(warn).toHaveBeenCalledWith(
215
+ "VideoPlayer can accept the `embedCode` prop or the `videoType` and `videoId` props. You have set both."
216
+ );
217
+
218
+ render(
219
+ <VideoPlayer
220
+ embedCode="<iframe src='https://player.vimeo.com/video/421404144?h=5467db7edd' width='640' height='360' frameborder='0' allow='autoplay; fullscreen; picture-in-picture' allowfullscreen></iframe>"
221
+ videoId="http://vimeo.com/474719268"
222
+ />
223
+ );
224
+ expect(warn).toHaveBeenCalledWith(
225
+ "VideoPlayer can accept the `embedCode` prop or the `videoType` and `videoId` props. You have set both."
226
+ );
227
+ });
138
228
  });
139
229
 
140
230
  it("renders the UI snapshot correctly", () => {
@@ -159,6 +249,17 @@ describe("VideoPlayer", () => {
159
249
  />
160
250
  )
161
251
  .toJSON();
252
+ const videoPlayerUsingEmbedCode = renderer
253
+ .create(
254
+ <VideoPlayer
255
+ descriptionText="VideoPlayer description"
256
+ embedCode="<iframe src='https://player.vimeo.com/video/421404144?h=5467db7edd' width='640' height='360' frameborder='0' allow='autoplay; fullscreen; picture-in-picture' allowfullscreen></iframe>"
257
+ headingText="VideoPlayer Heading"
258
+ id="video-player-with-text"
259
+ helperText="VideoPlayer helper test."
260
+ />
261
+ )
262
+ .toJSON();
162
263
  const videoPlayerError = renderer
163
264
  .create(
164
265
  <VideoPlayer
@@ -171,6 +272,7 @@ describe("VideoPlayer", () => {
171
272
 
172
273
  expect(videoPlayerWithoutText).toMatchSnapshot();
173
274
  expect(videoPlayerWithText).toMatchSnapshot();
275
+ expect(videoPlayerUsingEmbedCode).toMatchSnapshot();
174
276
  expect(videoPlayerError).toMatchSnapshot();
175
277
  });
176
278
  });
@@ -1,31 +1,43 @@
1
- import * as React from "react";
2
1
  import { Box, useMultiStyleConfig } from "@chakra-ui/react";
2
+ import * as React from "react";
3
+
3
4
  import ComponentWrapper from "../ComponentWrapper/ComponentWrapper";
5
+ import { HelperErrorTextType } from "../HelperErrorText/HelperErrorText";
6
+ import { VideoPlayerAspectRatios, VideoPlayerTypes } from "./VideoPlayerTypes";
4
7
  import generateUUID from "../../helpers/generateUUID";
5
8
  import { getVariant } from "../../utils/utils";
6
- import { VideoPlayerAspectRatios, VideoPlayerTypes } from "./VideoPlayerTypes";
7
9
 
8
10
  export interface VideoPlayerProps {
9
- /** Optional aspect ratio prop to control the sizing of the video player; if omitted, the video player defaults to `sixteen-by-nine` */
11
+ /** Optional aspect ratio prop to control the sizing of the video player; if
12
+ * omitted, the video player defaults to `sixteen-by-nine` */
10
13
  aspectRatio?: VideoPlayerAspectRatios;
11
14
  /** Optional className you can add in addition to `video-player` */
12
15
  className?: string;
13
16
  /** Optional string to set the text for a video description */
14
17
  descriptionText?: string;
18
+ /** Optional string to set a code snippet provided by YouTube or Vimeo; the
19
+ * `videoPlayer` component will accept the `embedCode` prop or the `videoId`
20
+ * and `videoType` props */
21
+ embedCode?: string;
15
22
  /** Optional string to set the text for a `Heading` component */
16
23
  headingText?: string;
17
24
  /** Optional string to set the text for a `HelperErrorText` component */
18
- helperText?: string;
25
+ helperText?: HelperErrorTextType;
19
26
  /** ID that other components can cross reference for accessibility purposes */
20
27
  id?: string;
21
- /** Optional title to be added to the `<iframe>` element for improved accessibility; this title should describe in a few words the content of the video; if omitted, a generic title will be added */
28
+ /** Optional title to be added to the `<iframe>` element for improved
29
+ * accessibility; this title should describe in a few words the content of
30
+ * the video; if omitted, a generic title will be added; if a `title`
31
+ * attribute is already present in the `embedCode` prop, this prop will be
32
+ * ignored */
22
33
  iframeTitle?: string;
23
34
  /** Offers the ability to hide the helper/invalid text. */
24
35
  showHelperInvalidText?: boolean;
25
- /** Required YouTube or Vimeo video ID. This value can be pulled from a video's YouTube or Vimeo URL. */
26
- videoId: string;
36
+ /** Required YouTube or Vimeo video ID. This value can be pulled from a
37
+ * video's YouTube or Vimeo URL. */
38
+ videoId?: string;
27
39
  /** Required. Used to specify which video service is being used. */
28
- videoType: VideoPlayerTypes;
40
+ videoType?: VideoPlayerTypes;
29
41
  }
30
42
 
31
43
  export default function VideoPlayer(
@@ -35,6 +47,7 @@ export default function VideoPlayer(
35
47
  aspectRatio,
36
48
  className,
37
49
  descriptionText,
50
+ embedCode,
38
51
  headingText,
39
52
  helperText,
40
53
  id = generateUUID(),
@@ -54,29 +67,64 @@ export default function VideoPlayer(
54
67
  ? `https://player.vimeo.com/video/${videoId}?autoplay=0&loop=0`
55
68
  : `https://www.youtube.com/embed/${videoId}?disablekb=1&autoplay=0&fs=1&modestbranding=0`;
56
69
 
70
+ const iFrameTitleEmbedCode = iframeTitle ? `${iframeTitle}` : `Video player`;
71
+
72
+ const embedCodeFinal =
73
+ embedCode && embedCode.includes("<iframe") && !embedCode.includes("title=")
74
+ ? embedCode.replace(
75
+ `<iframe `,
76
+ `<iframe title="${iFrameTitleEmbedCode}" `
77
+ )
78
+ : embedCode;
79
+
57
80
  const errorMessage =
58
81
  "<strong>Error:</strong> This video player has not been configured properly. Please contact the site administrator.";
59
82
 
60
83
  let isInvalid = false;
61
- if (!videoType && !videoId) {
62
- console.warn("VideoPlayer requires the `videoType` and `videoId` props");
84
+ if (!embedCodeFinal && !videoType && !videoId) {
85
+ console.warn(
86
+ "VideoPlayer requires either the `embedCode` prop or both the `videoType` and `videoId` props."
87
+ );
63
88
  isInvalid = true;
64
- } else if (!videoType) {
65
- console.warn("VideoPlayer requires the `videoType` prop");
89
+ } else if (!embedCodeFinal && !videoType) {
90
+ console.warn(
91
+ "VideoPlayer also requires the `videoType` prop. You have only set the `videoId` prop."
92
+ );
66
93
  isInvalid = true;
67
- } else if (!videoId) {
68
- console.warn("VideoPlayer requires the `videoId` prop");
94
+ } else if (!embedCodeFinal && !videoId) {
95
+ console.warn(
96
+ "VideoPlayer also requires the `videoId` prop. You have only set the `videoType` prop."
97
+ );
98
+ isInvalid = true;
99
+ } else if (embedCodeFinal && (videoType || videoId)) {
100
+ console.warn(
101
+ "VideoPlayer can accept the `embedCode` prop or the `videoType` and `videoId` props. You have set both."
102
+ );
103
+ isInvalid = true;
104
+ }
105
+
106
+ if (
107
+ videoId &&
108
+ (videoId.includes("://") ||
109
+ videoId.includes("http") ||
110
+ videoId.includes(".") ||
111
+ videoId.includes("youtube") ||
112
+ videoId.includes("vimeo"))
113
+ ) {
114
+ console.warn("The VideoPlayer `videoId` prop is not configured properly.");
69
115
  isInvalid = true;
70
116
  }
71
117
 
72
118
  if (
73
- videoId.includes("://") ||
74
- videoId.includes("http") ||
75
- videoId.includes(".") ||
76
- videoId.includes("youtube") ||
77
- videoId.includes("vimeo")
119
+ embedCodeFinal &&
120
+ ((!embedCodeFinal.includes("vimeo.com") &&
121
+ !embedCodeFinal.includes("youtube.com")) ||
122
+ !embedCodeFinal.includes("<iframe") ||
123
+ !embedCodeFinal.includes("</iframe"))
78
124
  ) {
79
- console.warn("VideoPlayer `videoId` prop is not configured properly");
125
+ console.warn(
126
+ "The VideoPlayer `embedCode` prop is not configured properly."
127
+ );
80
128
  isInvalid = true;
81
129
  }
82
130
 
@@ -85,7 +133,9 @@ export default function VideoPlayer(
85
133
  : getVariant(aspectRatio, VideoPlayerAspectRatios);
86
134
  const styles = useMultiStyleConfig("VideoPlayer", { variant });
87
135
 
88
- const embedCode = (
136
+ const embedElement = embedCodeFinal ? (
137
+ <span dangerouslySetInnerHTML={{ __html: embedCodeFinal }} />
138
+ ) : (
89
139
  <Box
90
140
  as="iframe"
91
141
  src={videoSrc}
@@ -113,7 +163,7 @@ export default function VideoPlayer(
113
163
  helperText={helperText && showHelperInvalidText ? helperText : null}
114
164
  id={`${id}-componentWrapper`}
115
165
  >
116
- <Box __css={styles.inside}>{embedCode}</Box>
166
+ <Box __css={styles.inside}>{embedElement}</Box>
117
167
  </ComponentWrapper>
118
168
  )}
119
169
  </Box>
@@ -64,17 +64,71 @@ exports[`VideoPlayer renders the UI snapshot correctly 2`] = `
64
64
  aria-atomic={true}
65
65
  aria-live="off"
66
66
  className=" css-0"
67
+ dangerouslySetInnerHTML={
68
+ Object {
69
+ "__html": "VideoPlayer helper test.",
70
+ }
71
+ }
67
72
  data-isinvalid={false}
68
73
  id="video-player-with-text-componentWrapper-helperText"
69
- >
70
- VideoPlayer helper test.
71
- </div>
74
+ />
72
75
  </div>
73
76
  </div>
74
77
  </div>
75
78
  `;
76
79
 
77
80
  exports[`VideoPlayer renders the UI snapshot correctly 3`] = `
81
+ <div
82
+ className="css-0"
83
+ data-testid="video-player-component"
84
+ id="video-player-with-text"
85
+ >
86
+ <div
87
+ className="css-0"
88
+ >
89
+ <h2
90
+ className="chakra-heading css-0"
91
+ id="video-player-with-text-componentWrapper-heading"
92
+ >
93
+ VideoPlayer Heading
94
+ </h2>
95
+ <p
96
+ className="chakra-text css-0"
97
+ >
98
+ VideoPlayer description
99
+ </p>
100
+ <div
101
+ className="css-0"
102
+ >
103
+ <span
104
+ dangerouslySetInnerHTML={
105
+ Object {
106
+ "__html": "<iframe title=\\"Video player\\" src='https://player.vimeo.com/video/421404144?h=5467db7edd' width='640' height='360' frameborder='0' allow='autoplay; fullscreen; picture-in-picture' allowfullscreen></iframe>",
107
+ }
108
+ }
109
+ />
110
+ </div>
111
+ <div
112
+ className="css-0"
113
+ >
114
+ <div
115
+ aria-atomic={true}
116
+ aria-live="off"
117
+ className=" css-0"
118
+ dangerouslySetInnerHTML={
119
+ Object {
120
+ "__html": "VideoPlayer helper test.",
121
+ }
122
+ }
123
+ data-isinvalid={false}
124
+ id="video-player-with-text-componentWrapper-helperText"
125
+ />
126
+ </div>
127
+ </div>
128
+ </div>
129
+ `;
130
+
131
+ exports[`VideoPlayer renders the UI snapshot correctly 4`] = `
78
132
  <div
79
133
  className="css-0"
80
134
  data-testid="video-player-component"
@@ -1,4 +1,4 @@
1
- import { Meta } from "@storybook/addon-docs/blocks";
1
+ import { Meta } from "@storybook/addon-docs";
2
2
 
3
3
  <Meta title="Chakra UI" />
4
4
 
@@ -141,9 +141,7 @@ function Tabs(props) {
141
141
 
142
142
  #### Patterns
143
143
 
144
- The NYPL DS uses the [CSS BEM](http://getbem.com/introduction/) pattern to
145
- structure and write CSS, but it is slowly being phased out. We are moving away
146
- from this and re-writing SCSS classes into Javascript objects that work with
144
+ We are writing CSS style object rules into Javascript objects that work with
147
145
  Chakra's theme. Instead of creating a variant for a component with a class name,
148
146
  now different props or internal logic are used to get the appropriate variant.
149
147
  Internally, the right variant will be mapped to a Chakra theme variant that will
@@ -172,10 +170,6 @@ to test them ourselves.
172
170
 
173
171
  ## Styling
174
172
 
175
- As mentioned in the [Components composed with Chakra](#components-composed-with-chakra)
176
- section, we are moving away from using the BEM structure to using Javascript
177
- objects to extend Chakra's theme.
178
-
179
173
  The NYPL DS' theme file can be found at `src/theme/index.ts`. This creates a new
180
174
  theme that extends Chakra's theme and is set in the `DSProvider` component. Note
181
175
  that the example below is the general structure of the `theme` object but the DS
@@ -183,6 +177,9 @@ that the example below is the general structure of the `theme` object but the DS
183
177
  only work and add new object values in the `components` obejct key for new
184
178
  components and their theme or variants.
185
179
 
180
+ _Note_: There are some SCSS files used to style third party plugins and to
181
+ generate SCSS mixins.
182
+
186
183
  ```ts
187
184
  const theme = extendTheme({
188
185
  styles: { ... },
@@ -1,9 +1,9 @@
1
- import { Meta } from "@storybook/addon-docs/blocks";
1
+ import { Meta } from "@storybook/addon-docs";
2
+
2
3
  import Hero from "../components/Hero/Hero.tsx";
3
4
  import { HeroTypes } from "../components/Hero/HeroTypes.tsx";
4
5
  import Heading from "../components/Heading/Heading.tsx";
5
6
  import Image from "../components/Image/Image.tsx";
6
- import getCSSVariable from "../helpers/getCSSVariable";
7
7
  import DSProvider from "../theme/provider";
8
8
 
9
9
  <Meta title="Introduction" />
package/src/index.ts CHANGED
@@ -7,9 +7,11 @@ export {
7
7
  ButtonGroup,
8
8
  Center,
9
9
  Circle,
10
+ Flex,
10
11
  Grid,
11
12
  GridItem,
12
13
  HStack,
14
+ Spacer,
13
15
  Square,
14
16
  Stack,
15
17
  VStack,
@@ -26,16 +28,18 @@ export {
26
28
  CardHeading,
27
29
  } from "./components/Card/Card";
28
30
  export { CardLayouts } from "./components/Card/CardTypes";
29
- export { default as CardEdition } from "./components/CardEdition/CardEdition";
30
31
  export { default as Checkbox } from "./components/Checkbox/Checkbox";
31
32
  export { default as CheckboxGroup } from "./components/CheckboxGroup/CheckboxGroup";
32
33
  export { CheckboxGroupLayoutTypes } from "./components/CheckboxGroup/CheckboxGroupLayoutTypes";
33
- export { default as DatePicker } from "./components/DatePicker/DatePicker";
34
+ export {
35
+ default as DatePicker,
36
+ FullDateType,
37
+ } from "./components/DatePicker/DatePicker";
34
38
  export { DatePickerTypes } from "./components/DatePicker/DatePickerTypes";
35
39
  export { default as DSProvider } from "./theme/provider";
36
40
  export { default as Fieldset } from "./components/Fieldset/Fieldset";
37
41
  export { default as Form, FormField, FormRow } from "./components/Form/Form";
38
- export { FormSpacing } from "./components/Form/FormTypes";
42
+ export { FormGaps } from "./components/Form/FormTypes";
39
43
  export { GridGaps } from "./components/Grid/GridTypes";
40
44
  export { default as Heading } from "./components/Heading/Heading";
41
45
  export {
@@ -54,7 +58,6 @@ export {
54
58
  IconRotationTypes,
55
59
  IconSizes,
56
60
  IconTypes,
57
- LogoNames,
58
61
  } from "./components/Icons/IconTypes";
59
62
  export { default as Image } from "./components/Image/Image";
60
63
  export {
@@ -62,18 +65,22 @@ export {
62
65
  ImageSizes,
63
66
  ImageTypes,
64
67
  } from "./components/Image/ImageTypes";
65
- export { default as Input } from "./components/Input/Input";
66
- export { InputTypes } from "./components/Input/InputTypes";
67
68
  export { default as Label } from "./components/Label/Label";
68
69
  export { default as Link } from "./components/Link/Link";
69
70
  export { LinkTypes } from "./components/Link/LinkTypes";
70
71
  export { default as List } from "./components/List/List";
71
72
  export { ListTypes } from "./components/List/ListTypes";
73
+ export { default as Logo } from "./components/Logo/Logo";
74
+ export { LogoColors, LogoNames, LogoSizes } from "./components/Logo/LogoTypes";
72
75
  export { default as Modal } from "./components/Modal/Modal";
73
76
  export { default as Notification } from "./components/Notification/Notification";
74
77
  export { NotificationTypes } from "./components/Notification/NotificationTypes";
75
78
  export { default as Pagination } from "./components/Pagination/Pagination";
76
79
  export { default as ProgressIndicator } from "./components/ProgressIndicator/ProgressIndicator";
80
+ export {
81
+ ProgressIndicatorSizes,
82
+ ProgressIndicatorTypes,
83
+ } from "./components/ProgressIndicator/ProgressIndicatorTypes";
77
84
  export { default as Radio } from "./components/Radio/Radio";
78
85
  export { default as RadioGroup } from "./components/RadioGroup/RadioGroup";
79
86
  export { RadioGroupLayoutTypes } from "./components/RadioGroup/RadioGroupLayoutTypes";
@@ -88,6 +95,8 @@ export {
88
95
  export { default as Slider } from "./components/Slider/Slider";
89
96
  export { default as StatusBadge } from "./components/StatusBadge/StatusBadge";
90
97
  export { StatusBadgeTypes } from "./components/StatusBadge/StatusBadgeTypes";
98
+ export { default as StructuredContent } from "./components/StructuredContent/StructuredContent";
99
+ export { StructuredContentImagePosition } from "./components/StructuredContent/StructuredContentTypes";
91
100
  export {
92
101
  Tabs,
93
102
  TabList,
@@ -98,6 +107,7 @@ export {
98
107
  export {
99
108
  TemplateAppContainer,
100
109
  Template,
110
+ TemplateAboveHeader,
101
111
  TemplateHeader,
102
112
  TemplateBreakout,
103
113
  TemplateContent,
@@ -113,9 +123,12 @@ export {
113
123
  TextInputRefType,
114
124
  } from "./components/TextInput/TextInput";
115
125
  export { TextInputTypes } from "./components/TextInput/TextInputTypes";
126
+ export { default as Toggle } from "./components/Toggle/Toggle";
127
+ export { ToggleSizes } from "./components/Toggle/ToggleSizes";
116
128
  export { default as useNYPLTheme } from "./hooks/useNYPLTheme";
117
129
  export { default as VideoPlayer } from "./components/VideoPlayer/VideoPlayer";
118
130
  export {
119
131
  VideoPlayerAspectRatios,
120
132
  VideoPlayerTypes,
121
133
  } from "./components/VideoPlayer/VideoPlayerTypes";
134
+ export { default as Table } from "./components/Table/Table";
@@ -5,7 +5,7 @@
5
5
  font-family: var(--nypl-fonts-body);
6
6
 
7
7
  // Sets up the base font-size, 1rem, for the system
8
- font-size: 16px;
8
+ font-size: var(--nypl-fontSizes-text-default);
9
9
  font-weight: 300;
10
10
  line-height: 1.5;
11
11
 
@@ -6,13 +6,6 @@
6
6
  margin-bottom: var(--nypl-space-xl);
7
7
  }
8
8
 
9
- &--full {
10
- margin-bottom: var(--nypl-space-xxl);
11
- @include breakpoint($nypl-breakpoint-large) {
12
- margin-bottom: var(--nypl-space-xxxl);
13
- }
14
- }
15
-
16
9
  padding: var(--nypl-space-s);
17
10
 
18
11
  align-items: center;
@@ -25,6 +18,13 @@
25
18
  padding: 4rem 1rem;
26
19
  width: 100%;
27
20
 
21
+ &--full {
22
+ margin-bottom: var(--nypl-space-xxl);
23
+ @include breakpoint($nypl-breakpoint-large) {
24
+ margin-bottom: var(--nypl-space-xxxl);
25
+ }
26
+ }
27
+
28
28
  &--short {
29
29
  padding: 1rem 1rem;
30
30
  }
package/src/styles.scss CHANGED
@@ -20,11 +20,7 @@
20
20
  @import "./styles/space/_space-inset";
21
21
  @import "./styles/space/_space-stack";
22
22
 
23
- // Legacy/deprecated components:
24
- @import "./components/CardEdition/_CardEdition.scss";
25
- @import "./components/Input/_Input.scss";
26
-
27
23
  // Components.
28
- @import "./components/Autosuggest/_Autosuggest.scss"; // Depends on _Input.scss
24
+ @import "./components/Autosuggest/_Autosuggest.scss";
29
25
  @import "./components/DatePicker/_DatePicker.scss";
30
26
  @import "./components/Modal/_Modal.scss";
@@ -12,7 +12,7 @@ const booksAndMore = {
12
12
  bg: "section.books-and-more.secondary",
13
13
  };
14
14
  const locations = {
15
- bg: "section.locations.secondary",
15
+ bg: "section.locations.primary",
16
16
  };
17
17
  const research = {
18
18
  bg: "section.research.secondary",
@@ -25,8 +25,8 @@ const Breadcrumb = {
25
25
  baseStyle: {
26
26
  bg: "ui.black",
27
27
  color: "ui.white",
28
- fontSize: "-1",
29
- fontWeight: "regular",
28
+ fontSize: "breadcrumbs.default",
29
+ fontWeight: "breadcrumbs.default",
30
30
  paddingBottom: "xs",
31
31
  paddingTop: "xs",
32
32
  ol: {
@@ -43,7 +43,7 @@ const Breadcrumb = {
43
43
  },
44
44
  },
45
45
  "li:last-child": {
46
- fontWeight: { base: "regular", md: "bold" },
46
+ fontWeight: { base: "breadcrumbs.default", md: "breadcrumbs.lastChild" },
47
47
  ".chakra-breadcrumb__link": {
48
48
  _hover: {
49
49
  cursor: "default",
@@ -67,7 +67,7 @@ const Breadcrumb = {
67
67
  marginInlineStart: "xxs",
68
68
  },
69
69
  },
70
- "li:nth-last-child(2)": {
70
+ "li:nth-last-of-type(2)": {
71
71
  display: "inline-block",
72
72
  span: {
73
73
  display: { base: "none", md: "inline" },
@@ -10,7 +10,7 @@ const baseStyle = {
10
10
  px: "s",
11
11
  textDecoration: "none",
12
12
  wordWrap: "normal",
13
- fontWeight: "regular",
13
+ fontWeight: "button.default",
14
14
  svg: {
15
15
  fill: "currentColor",
16
16
  marginTop: "xxs",
@@ -34,14 +34,14 @@ const primary = {
34
34
  bg: "ui.link.primary",
35
35
  minWidth: "none",
36
36
  height: "none",
37
- fontSize: "-1",
37
+ fontSize: "button.default",
38
38
  };
39
39
  const secondary = {
40
40
  bg: "ui.white",
41
41
  border: "1px solid",
42
42
  borderColor: "ui.gray.light-cool",
43
43
  color: "inherit",
44
- fontSize: "-1",
44
+ fontSize: "button.default",
45
45
  _hover: {
46
46
  bg: "ui.gray.xx-light-cool",
47
47
  },
@@ -68,7 +68,7 @@ const pill = {
68
68
  py: "xs",
69
69
  paddingInlineStart: "m",
70
70
  paddingInlineEnd: "m",
71
- fontSize: "-1",
71
+ fontSize: "button.default",
72
72
  _hover: {
73
73
  bg: "ui.gray.xx-light-cool",
74
74
  },
@@ -86,7 +86,7 @@ const iconOnly = {
86
86
  };
87
87
  const callout = {
88
88
  bg: "brand.primary",
89
- fontSize: "-1",
89
+ fontSize: "button.default",
90
90
  _hover: {
91
91
  bg: "brand.secondary",
92
92
  },
@@ -94,12 +94,6 @@ const callout = {
94
94
  bg: "brand.secondary",
95
95
  },
96
96
  };
97
- const searchBar = {
98
- ...primary,
99
- borderLeftRadius: "none",
100
- borderRightRadius: { base: "none", md: "sm" },
101
- lineHeight: "1.75",
102
- };
103
97
  const noBrand = {
104
98
  ...primary,
105
99
  bg: "ui.black",
@@ -119,7 +113,6 @@ const Button = {
119
113
  pill,
120
114
  iconOnly,
121
115
  callout,
122
- searchBar,
123
116
  noBrand,
124
117
  },
125
118
  // Default values