@hashicorp/react-components 0.0.0 → 1.0.0

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 (572) hide show
  1. package/.eslintrc.js +4 -0
  2. package/.stylelintrc.js +3 -0
  3. package/.test/setup-vitest.js +1 -0
  4. package/README.md +2 -78
  5. package/global.d.ts +6 -0
  6. package/package.json +29 -29
  7. package/postcss.config.js +21 -0
  8. package/src/components/actions/index.tsx +107 -0
  9. package/src/components/actions/style.module.css +28 -0
  10. package/src/components/actions/types.ts +73 -0
  11. package/src/components/call-to-action/index.tsx +205 -0
  12. package/src/components/call-to-action/styles/variant-centered.module.css +93 -0
  13. package/src/components/call-to-action/styles/variant-compact-grid.module.css +88 -0
  14. package/src/components/call-to-action/styles/variant-compact.module.css +91 -0
  15. package/src/components/call-to-action/styles/variant-links.module.css +85 -0
  16. package/src/components/card/README.md +11 -0
  17. package/src/components/card/card.tsx +45 -0
  18. package/src/components/card/index.test.tsx +69 -0
  19. package/src/components/card/index.tsx +14 -0
  20. package/src/components/card/newsroom-card/index.test.tsx +39 -0
  21. package/src/components/card/newsroom-card/index.tsx +37 -0
  22. package/src/components/card/newsroom-card/style.module.css +12 -0
  23. package/src/components/card/partner-card/index.test.tsx +57 -0
  24. package/src/components/card/partner-card/index.tsx +69 -0
  25. package/src/components/card/partner-card/style.module.css +24 -0
  26. package/src/components/card/person-card/index.test.tsx +71 -0
  27. package/src/components/card/person-card/index.tsx +93 -0
  28. package/src/components/card/person-card/style.module.css +33 -0
  29. package/src/components/card/primitives.tsx +176 -0
  30. package/src/components/card/promo-card/index.tsx +51 -0
  31. package/src/components/card/resource-card/index.test.tsx +48 -0
  32. package/src/components/card/resource-card/index.tsx +37 -0
  33. package/src/components/card/style.module.css +145 -0
  34. package/src/components/card/types.ts +66 -0
  35. package/src/components/card/unified-card/index.tsx +64 -0
  36. package/{packages → src/components}/consent-manager/README.md +44 -1
  37. package/src/components/consent-manager/components/banner/banner.module.css +23 -0
  38. package/src/components/consent-manager/components/banner/banner.test.tsx +31 -0
  39. package/src/components/consent-manager/components/banner/banner.tsx +73 -0
  40. package/src/components/consent-manager/components/dialog/dialog.module.css +145 -0
  41. package/src/components/consent-manager/components/dialog/dialog.test.tsx +194 -0
  42. package/src/components/consent-manager/components/dialog/dialog.tsx +339 -0
  43. package/src/components/consent-manager/img/icn_close.tsx +19 -0
  44. package/src/components/consent-manager/index.test.tsx +334 -0
  45. package/src/components/consent-manager/index.tsx +186 -0
  46. package/src/components/consent-manager/loader/README.md +29 -0
  47. package/src/components/consent-manager/loader/categories.ts +22 -0
  48. package/src/components/consent-manager/loader/index.tsx +94 -0
  49. package/src/components/consent-manager/loader/presets/enterprise.ts +12 -0
  50. package/src/components/consent-manager/loader/presets/oss.ts +10 -0
  51. package/src/components/consent-manager/loader/services.ts +45 -0
  52. package/src/components/consent-manager/scripts/custom.tsx +59 -0
  53. package/src/components/consent-manager/scripts/segment.tsx +87 -0
  54. package/src/components/consent-manager/style.module.css +9 -0
  55. package/src/components/consent-manager/types.ts +55 -0
  56. package/src/components/consent-manager/util/cookies.test.ts +75 -0
  57. package/src/components/consent-manager/util/cookies.ts +70 -0
  58. package/src/components/consent-manager/util/integrations.test.ts +115 -0
  59. package/src/components/consent-manager/util/integrations.ts +110 -0
  60. package/src/components/intro/index.tsx +82 -0
  61. package/src/components/intro/style.module.css +67 -0
  62. package/src/components/intro/types.ts +44 -0
  63. package/src/components/marketo-form/CHANGELOG.md +122 -0
  64. package/src/components/marketo-form/README.md +1 -0
  65. package/src/components/marketo-form/contexts/FormMetadata.ts +11 -0
  66. package/src/components/marketo-form/docs.mdx +197 -0
  67. package/src/components/marketo-form/fixtures/index.ts +185 -0
  68. package/src/components/marketo-form/form/index.tsx +369 -0
  69. package/src/components/marketo-form/index.test.tsx +320 -0
  70. package/src/components/marketo-form/index.ts +11 -0
  71. package/src/components/marketo-form/package.original.json +30 -0
  72. package/src/components/marketo-form/partials/error-message/index.tsx +12 -0
  73. package/src/components/marketo-form/partials/error-message/style.module.css +13 -0
  74. package/src/components/marketo-form/partials/field/index.tsx +90 -0
  75. package/src/components/marketo-form/partials/field-wrapper/index.tsx +26 -0
  76. package/src/components/marketo-form/partials/fields/checkbox-field/index.tsx +32 -0
  77. package/src/components/marketo-form/partials/fields/email-field/index.tsx +35 -0
  78. package/src/components/marketo-form/partials/fields/form-page-url-field/index.tsx +21 -0
  79. package/src/components/marketo-form/partials/fields/hidden-field/index.tsx +37 -0
  80. package/src/components/marketo-form/partials/fields/htmltext-field/index.tsx +21 -0
  81. package/src/components/marketo-form/partials/fields/htmltext-field/style.module.css +6 -0
  82. package/src/components/marketo-form/partials/fields/name-field/index.tsx +19 -0
  83. package/src/components/marketo-form/partials/fields/name-field/style.module.css +13 -0
  84. package/src/components/marketo-form/partials/fields/radio-buttons-field/index.tsx +48 -0
  85. package/src/components/marketo-form/partials/fields/select-field/index.tsx +39 -0
  86. package/src/components/marketo-form/partials/fields/select-field/style.module.css +5 -0
  87. package/src/components/marketo-form/partials/fields/telephone-field/index.tsx +30 -0
  88. package/src/components/marketo-form/partials/fields/text-field/index.tsx +30 -0
  89. package/src/components/marketo-form/partials/fields/textarea-field/index.tsx +29 -0
  90. package/src/components/marketo-form/partials/label/index.tsx +24 -0
  91. package/src/components/marketo-form/partials/label/style.module.css +12 -0
  92. package/src/components/marketo-form/partials/visibility-rule/index.tsx +84 -0
  93. package/src/components/marketo-form/props.js +66 -0
  94. package/src/components/marketo-form/server/api-routes.ts +109 -0
  95. package/src/components/marketo-form/server/client.ts +98 -0
  96. package/src/components/marketo-form/server/index.ts +8 -0
  97. package/src/components/marketo-form/types.ts +268 -0
  98. package/src/components/marketo-form/utils.test.tsx +103 -0
  99. package/src/components/marketo-form/utils.ts +445 -0
  100. package/src/components/next-steps/index.tsx +143 -0
  101. package/src/components/next-steps/style.module.css +270 -0
  102. package/src/components/next-steps/types.ts +63 -0
  103. package/src/components/product-badge/index.test.tsx +11 -0
  104. package/src/components/product-badge/index.tsx +42 -0
  105. package/src/components/product-badge/style.module.css +76 -0
  106. package/src/components/products-used/index.tsx +84 -0
  107. package/src/components/products-used/style.module.css +87 -0
  108. package/src/components/products-used/types.ts +31 -0
  109. package/src/components/related-content/index.test.tsx +74 -0
  110. package/src/components/related-content/index.tsx +56 -0
  111. package/src/components/related-content/style.module.css +89 -0
  112. package/src/components/related-content/types.ts +21 -0
  113. package/src/components/subnav/helpers/areBasePathsMatching.ts +13 -0
  114. package/src/components/subnav/helpers/traverse/index.ts +42 -0
  115. package/src/components/subnav/helpers/useHeightRef.ts +42 -0
  116. package/src/components/subnav/helpers/useNavRef.ts +30 -0
  117. package/src/components/subnav/helpers/useOverflowRef.ts +85 -0
  118. package/src/components/subnav/helpers/useStuckRef.ts +51 -0
  119. package/src/components/subnav/index.tsx +199 -0
  120. package/src/components/subnav/partials/CtaLinks/github-stars-link/formatStarCount/index.test.ts +26 -0
  121. package/src/components/subnav/partials/CtaLinks/github-stars-link/formatStarCount/index.ts +22 -0
  122. package/src/components/subnav/partials/CtaLinks/github-stars-link/index.tsx +87 -0
  123. package/src/components/subnav/partials/CtaLinks/github-stars-link/parseGithubUrl/index.test.ts +29 -0
  124. package/src/components/subnav/partials/CtaLinks/github-stars-link/parseGithubUrl/index.ts +32 -0
  125. package/src/components/subnav/partials/CtaLinks/github-stars-link/style.module.css +85 -0
  126. package/src/components/subnav/partials/CtaLinks/icons/github-logo.js +20 -0
  127. package/{packages → src/components}/subnav/partials/CtaLinks/icons/github.svg.js +5 -0
  128. package/src/components/subnav/partials/CtaLinks/icons/star.js +20 -0
  129. package/src/components/subnav/partials/CtaLinks/index.tsx +131 -0
  130. package/src/components/subnav/partials/CtaLinks/style.module.css +45 -0
  131. package/src/components/subnav/partials/DropdownTrigger/index.tsx +35 -0
  132. package/src/components/subnav/partials/DropdownTrigger/style.module.css +36 -0
  133. package/src/components/subnav/partials/MenuItemsDefault/index.tsx +151 -0
  134. package/src/components/subnav/partials/MenuItemsDefault/style.module.css +91 -0
  135. package/src/components/subnav/partials/MenuItemsOverflow/index.tsx +139 -0
  136. package/src/components/subnav/partials/MenuItemsOverflow/style.module.css +82 -0
  137. package/src/components/subnav/partials/TitleLink/index.tsx +113 -0
  138. package/src/components/subnav/partials/TitleLink/mktg-logos/all-community-product-logos_on-dark.ts +9 -0
  139. package/src/components/subnav/partials/TitleLink/mktg-logos/all-community-product-logos_on-light.ts +9 -0
  140. package/src/components/subnav/partials/TitleLink/mktg-logos/all-primary-logos_on-dark.ts +23 -0
  141. package/src/components/subnav/partials/TitleLink/mktg-logos/all-primary-logos_on-light.ts +23 -0
  142. package/src/components/subnav/partials/TitleLink/style.module.css +43 -0
  143. package/src/components/subnav/partials/nav-item-text/index.tsx +37 -0
  144. package/src/components/subnav/partials/nav-item-text/style.module.css +15 -0
  145. package/src/components/subnav/style.module.css +68 -0
  146. package/src/components/subnav/subnav-consts.ts +1 -0
  147. package/src/components/subnav/theme.module.css +50 -0
  148. package/tsconfig.json +14 -0
  149. package/vitest.config.mts +12 -0
  150. package/.circleci/config.yml +0 -8
  151. package/.github/pull_request_template.md +0 -36
  152. package/.github/workflows/publish.yml +0 -181
  153. package/__test-helpers/expect-throw.js +0 -6
  154. package/__test-helpers/extend-expect.js +0 -1
  155. package/__test-helpers/mocks/css-module-mock.js +0 -1
  156. package/__test-helpers/mocks/graphql-fragment-mock.js +0 -1
  157. package/__test-helpers/mocks/svg-mock.js +0 -1
  158. package/babel.config.js +0 -5
  159. package/jest.config.js +0 -13
  160. package/lerna.json +0 -16
  161. package/next.config.js +0 -14
  162. package/packages/accordion/LICENSE +0 -373
  163. package/packages/accordion/README.md +0 -5
  164. package/packages/accordion/index.js +0 -21
  165. package/packages/accordion/package-lock.json +0 -13
  166. package/packages/accordion/package.json +0 -20
  167. package/packages/accordion/partials/AccordionItems/fixtures/default.json +0 -12
  168. package/packages/accordion/partials/AccordionItems/icons/arrow-down.svg +0 -1
  169. package/packages/accordion/partials/AccordionItems/index.js +0 -64
  170. package/packages/accordion/partials/AccordionItems/style.css +0 -2
  171. package/packages/accordion/partials/AccordionItems/styles/content.css +0 -47
  172. package/packages/accordion/partials/AccordionItems/styles/index.css +0 -72
  173. package/packages/accordion/partials/Collapsible/index.js +0 -87
  174. package/packages/accordion/partials/Collapsible/style.css +0 -10
  175. package/packages/accordion/style.css +0 -3
  176. package/packages/accordion/styles/index.css +0 -14
  177. package/packages/alert/LICENSE +0 -373
  178. package/packages/alert/README.md +0 -9
  179. package/packages/alert/fragment.graphql +0 -8
  180. package/packages/alert/index.js +0 -44
  181. package/packages/alert/package.json +0 -22
  182. package/packages/alert/style.css +0 -138
  183. package/packages/alert-banner/LICENSE +0 -373
  184. package/packages/alert-banner/README.md +0 -3
  185. package/packages/alert-banner/close-icon.js +0 -35
  186. package/packages/alert-banner/fragment.graphql +0 -8
  187. package/packages/alert-banner/index.jsx +0 -97
  188. package/packages/alert-banner/package-lock.json +0 -18
  189. package/packages/alert-banner/package.json +0 -26
  190. package/packages/alert-banner/style.css +0 -151
  191. package/packages/button/LICENSE +0 -373
  192. package/packages/button/README.md +0 -19
  193. package/packages/button/fragment.graphql +0 -6
  194. package/packages/button/helpers/normalizeButtonTheme.js +0 -49
  195. package/packages/button/icons/arrow-right.svg.js +0 -1
  196. package/packages/button/icons/chevron-down.svg.js +0 -1
  197. package/packages/button/icons/download.svg.js +0 -1
  198. package/packages/button/icons/external-link.svg.js +0 -1
  199. package/packages/button/index.js +0 -86
  200. package/packages/button/package-lock.json +0 -18
  201. package/packages/button/package.json +0 -21
  202. package/packages/button/styles/index.css +0 -122
  203. package/packages/button/styles/variant-primary.css +0 -232
  204. package/packages/button/styles/variant-secondary.css +0 -179
  205. package/packages/button/styles/variant-tertiary-neutral.css +0 -65
  206. package/packages/button/styles/variant-tertiary.css +0 -182
  207. package/packages/call-to-action/LICENSE +0 -373
  208. package/packages/call-to-action/README.md +0 -3
  209. package/packages/call-to-action/index.js +0 -67
  210. package/packages/call-to-action/package-lock.json +0 -27
  211. package/packages/call-to-action/package.json +0 -21
  212. package/packages/call-to-action/style.css +0 -1
  213. package/packages/call-to-action/styles/_temp-spacing-tokens.css +0 -33
  214. package/packages/call-to-action/styles/common.css +0 -27
  215. package/packages/call-to-action/styles/index.css +0 -4
  216. package/packages/call-to-action/styles/variant-centered.css +0 -44
  217. package/packages/call-to-action/styles/variant-compact.css +0 -46
  218. package/packages/call-to-action/styles/variant-links.css +0 -32
  219. package/packages/callouts/LICENSE +0 -373
  220. package/packages/callouts/README.md +0 -8
  221. package/packages/callouts/index.js +0 -67
  222. package/packages/callouts/package-lock.json +0 -33
  223. package/packages/callouts/package.json +0 -20
  224. package/packages/callouts/partials/callout-item/fixtures/default.json +0 -9
  225. package/packages/callouts/partials/callout-item/index.js +0 -71
  226. package/packages/callouts/partials/callout-item/style.css +0 -76
  227. package/packages/callouts/style.css +0 -1
  228. package/packages/callouts/styles/_temp-reset.css +0 -11
  229. package/packages/callouts/styles/_temp-spacing-tokens.css +0 -41
  230. package/packages/callouts/styles/index.css +0 -124
  231. package/packages/case-study-slider/LICENSE +0 -373
  232. package/packages/case-study-slider/Logo.js +0 -6
  233. package/packages/case-study-slider/StatusBar.js +0 -14
  234. package/packages/case-study-slider/StatusBar.test.js +0 -32
  235. package/packages/case-study-slider/docs.mdx +0 -144
  236. package/packages/case-study-slider/fragment.graphql +0 -33
  237. package/packages/case-study-slider/index.js +0 -229
  238. package/packages/case-study-slider/index.test.js +0 -279
  239. package/packages/case-study-slider/package-lock.json +0 -72
  240. package/packages/case-study-slider/package.json +0 -20
  241. package/packages/case-study-slider/props.js +0 -182
  242. package/packages/case-study-slider/readme.md +0 -7
  243. package/packages/case-study-slider/style.css +0 -176
  244. package/packages/checkbox-input/LICENSE +0 -373
  245. package/packages/checkbox-input/index.js +0 -55
  246. package/packages/checkbox-input/package-lock.json +0 -13
  247. package/packages/checkbox-input/package.json +0 -20
  248. package/packages/checkbox-input/readme.md +0 -19
  249. package/packages/checkbox-input/style.css +0 -110
  250. package/packages/code-block/LICENSE +0 -373
  251. package/packages/code-block/README.md +0 -9
  252. package/packages/code-block/fragment.graphql +0 -10
  253. package/packages/code-block/img/clipboard.svg +0 -1
  254. package/packages/code-block/index.js +0 -85
  255. package/packages/code-block/languages/sentinel.js +0 -71
  256. package/packages/code-block/package-lock.json +0 -68
  257. package/packages/code-block/package.json +0 -22
  258. package/packages/code-block/style.css +0 -162
  259. package/packages/consent-manager/LICENSE +0 -373
  260. package/packages/consent-manager/banner.js +0 -39
  261. package/packages/consent-manager/cookies.js +0 -53
  262. package/packages/consent-manager/dialog.js +0 -286
  263. package/packages/consent-manager/icn_close.js +0 -19
  264. package/packages/consent-manager/index.js +0 -119
  265. package/packages/consent-manager/integrations.js +0 -92
  266. package/packages/consent-manager/load.js +0 -139
  267. package/packages/consent-manager/package-lock.json +0 -45
  268. package/packages/consent-manager/package.json +0 -24
  269. package/packages/consent-manager/style.css +0 -209
  270. package/packages/content/LICENSE +0 -373
  271. package/packages/content/README.md +0 -8
  272. package/packages/content/index.js +0 -9
  273. package/packages/content/package.json +0 -17
  274. package/packages/content/style.css +0 -322
  275. package/packages/content-cta/LICENSE +0 -373
  276. package/packages/content-cta/README.md +0 -3
  277. package/packages/content-cta/docs.mdx +0 -25
  278. package/packages/content-cta/index.js +0 -49
  279. package/packages/content-cta/index.test.js +0 -78
  280. package/packages/content-cta/package-lock.json +0 -27
  281. package/packages/content-cta/package.json +0 -20
  282. package/packages/content-cta/props.js +0 -41
  283. package/packages/content-cta/stories/docs.mdx +0 -0
  284. package/packages/content-cta/stories/examples.stories.js +0 -51
  285. package/packages/content-cta/stories/with-knobs.stories.js +0 -58
  286. package/packages/content-cta/style.css +0 -80
  287. package/packages/docs-page/LICENSE +0 -373
  288. package/packages/docs-page/README.md +0 -51
  289. package/packages/docs-page/components.js +0 -11
  290. package/packages/docs-page/docs.mdx +0 -71
  291. package/packages/docs-page/img/github-logo.svg +0 -1
  292. package/packages/docs-page/index.js +0 -75
  293. package/packages/docs-page/index.test.js +0 -18
  294. package/packages/docs-page/package-lock.json +0 -138
  295. package/packages/docs-page/package.json +0 -28
  296. package/packages/docs-page/props.js +0 -59
  297. package/packages/docs-page/server.js +0 -137
  298. package/packages/docs-page/style.css +0 -120
  299. package/packages/docs-page/temporary_jump-to-section.js +0 -64
  300. package/packages/docs-sidenav/LICENSE +0 -373
  301. package/packages/docs-sidenav/README.md +0 -7
  302. package/packages/docs-sidenav/chevron-icon.js +0 -18
  303. package/packages/docs-sidenav/img/external.svg +0 -7
  304. package/packages/docs-sidenav/index.js +0 -457
  305. package/packages/docs-sidenav/menu-icon.js +0 -14
  306. package/packages/docs-sidenav/package-lock.json +0 -26
  307. package/packages/docs-sidenav/package.json +0 -21
  308. package/packages/docs-sidenav/style.css +0 -302
  309. package/packages/enterprise-alert/LICENSE +0 -373
  310. package/packages/enterprise-alert/README.md +0 -9
  311. package/packages/enterprise-alert/index.js +0 -28
  312. package/packages/enterprise-alert/package-lock.json +0 -13
  313. package/packages/enterprise-alert/package.json +0 -23
  314. package/packages/enterprise-alert/style.css +0 -91
  315. package/packages/featured-slider/LICENSE +0 -373
  316. package/packages/featured-slider/README.md +0 -3
  317. package/packages/featured-slider/StatusBar.js +0 -14
  318. package/packages/featured-slider/docs.mdx +0 -60
  319. package/packages/featured-slider/index.js +0 -231
  320. package/packages/featured-slider/index.test.js +0 -59
  321. package/packages/featured-slider/package-lock.json +0 -66
  322. package/packages/featured-slider/package.json +0 -22
  323. package/packages/featured-slider/props.js +0 -82
  324. package/packages/featured-slider/style.css +0 -204
  325. package/packages/hashi-stack-menu/LICENSE +0 -373
  326. package/packages/hashi-stack-menu/README.md +0 -3
  327. package/packages/hashi-stack-menu/assets/icon-dropdown.svg +0 -1
  328. package/packages/hashi-stack-menu/assets/logo.svg +0 -1
  329. package/packages/hashi-stack-menu/assets/product-icons/boundary-icon-color.svg +0 -1
  330. package/packages/hashi-stack-menu/assets/product-icons/consul-icon-color.svg +0 -1
  331. package/packages/hashi-stack-menu/assets/product-icons/nomad-icon-color.svg +0 -1
  332. package/packages/hashi-stack-menu/assets/product-icons/packer-icon-color.svg +0 -1
  333. package/packages/hashi-stack-menu/assets/product-icons/terraform-icon-color.svg +0 -1
  334. package/packages/hashi-stack-menu/assets/product-icons/vagrant-icon-color.svg +0 -1
  335. package/packages/hashi-stack-menu/assets/product-icons/vault-icon-color.svg +0 -1
  336. package/packages/hashi-stack-menu/assets/product-icons/waypoint-icon-color.svg +0 -1
  337. package/packages/hashi-stack-menu/browse-panel/browse-panel.module.css +0 -33
  338. package/packages/hashi-stack-menu/browse-panel/index.jsx +0 -9
  339. package/packages/hashi-stack-menu/data/index.js +0 -125
  340. package/packages/hashi-stack-menu/hashi-stack-menu.module.css +0 -41
  341. package/packages/hashi-stack-menu/index.jsx +0 -51
  342. package/packages/hashi-stack-menu/nav-item/index.jsx +0 -100
  343. package/packages/hashi-stack-menu/nav-item/nav-item.module.css +0 -64
  344. package/packages/hashi-stack-menu/package-lock.json +0 -18
  345. package/packages/hashi-stack-menu/package.json +0 -17
  346. package/packages/hashi-stack-menu/stack-group/index.jsx +0 -16
  347. package/packages/hashi-stack-menu/stack-group/stack-group.module.css +0 -29
  348. package/packages/hashi-stack-menu/stack-item/index.jsx +0 -35
  349. package/packages/hashi-stack-menu/stack-item/stack-item.module.css +0 -58
  350. package/packages/hashi-stack-menu/stack-menu-section/index.jsx +0 -18
  351. package/packages/hashi-stack-menu/stack-menu-section/stack-menu-section.module.css +0 -26
  352. package/packages/hashi-stack-menu/use-on-click-outside-dropdown.js +0 -22
  353. package/packages/head/LICENSE +0 -373
  354. package/packages/head/README.md +0 -236
  355. package/packages/head/index.d.ts +0 -107
  356. package/packages/head/index.js +0 -66
  357. package/packages/head/package.json +0 -17
  358. package/packages/hero/LICENSE +0 -373
  359. package/packages/hero/README.md +0 -31
  360. package/packages/hero/arrow-icon.js +0 -24
  361. package/packages/hero/carousel.js +0 -153
  362. package/packages/hero/fragment.graphql +0 -55
  363. package/packages/hero/heroLeadForm.js +0 -107
  364. package/packages/hero/index.js +0 -129
  365. package/packages/hero/package-lock.json +0 -273
  366. package/packages/hero/package.json +0 -28
  367. package/packages/hero/style.css +0 -501
  368. package/packages/image/LICENSE +0 -373
  369. package/packages/image/fragment.graphql +0 -5
  370. package/packages/image/index.js +0 -81
  371. package/packages/image/package-lock.json +0 -33
  372. package/packages/image/package.json +0 -21
  373. package/packages/image/readme.md +0 -27
  374. package/packages/inline-svg/LICENSE +0 -373
  375. package/packages/inline-svg/README.md +0 -9
  376. package/packages/inline-svg/docs.mdx +0 -15
  377. package/packages/inline-svg/index.js +0 -23
  378. package/packages/inline-svg/index.test.js +0 -50
  379. package/packages/inline-svg/package.json +0 -30
  380. package/packages/inline-svg/props.js +0 -10
  381. package/packages/learn-callout/LICENSE +0 -373
  382. package/packages/learn-callout/README.md +0 -9
  383. package/packages/learn-callout/docs.mdx +0 -31
  384. package/packages/learn-callout/index.js +0 -57
  385. package/packages/learn-callout/index.test.js +0 -49
  386. package/packages/learn-callout/props.js +0 -47
  387. package/packages/learn-callout/style.css +0 -207
  388. package/packages/link-wrap/LICENSE +0 -373
  389. package/packages/link-wrap/README.md +0 -44
  390. package/packages/link-wrap/index.js +0 -40
  391. package/packages/link-wrap/package-lock.json +0 -5
  392. package/packages/link-wrap/package.json +0 -17
  393. package/packages/logo-grid/LICENSE +0 -373
  394. package/packages/logo-grid/README.md +0 -26
  395. package/packages/logo-grid/fragment.graphql +0 -17
  396. package/packages/logo-grid/index.js +0 -157
  397. package/packages/logo-grid/package-lock.json +0 -111
  398. package/packages/logo-grid/package.json +0 -21
  399. package/packages/logo-grid/style.css +0 -148
  400. package/packages/product-downloader/LICENSE +0 -373
  401. package/packages/product-downloader/README.md +0 -9
  402. package/packages/product-downloader/index.js +0 -102
  403. package/packages/product-downloader/package-lock.json +0 -103
  404. package/packages/product-downloader/package.json +0 -18
  405. package/packages/product-downloader/partials/download-cards/index.jsx +0 -125
  406. package/packages/product-downloader/partials/download-cards/style.module.css +0 -152
  407. package/packages/product-downloader/partials/dropdown/index.jsx +0 -58
  408. package/packages/product-downloader/partials/dropdown/style.module.css +0 -28
  409. package/packages/product-downloader/partials/logos/fastly.svg +0 -7
  410. package/packages/product-downloader/partials/release-information/index.jsx +0 -148
  411. package/packages/product-downloader/partials/release-information/style.module.css +0 -101
  412. package/packages/product-downloader/style.module.css +0 -100
  413. package/packages/product-downloader/utils/downloader.js +0 -136
  414. package/packages/product-features-list/LICENSE +0 -373
  415. package/packages/product-features-list/README.md +0 -3
  416. package/packages/product-features-list/index.js +0 -30
  417. package/packages/product-features-list/package-lock.json +0 -42
  418. package/packages/product-features-list/package.json +0 -20
  419. package/packages/product-features-list/style.css +0 -90
  420. package/packages/search/LICENSE +0 -373
  421. package/packages/search/README.md +0 -188
  422. package/packages/search/hits.js +0 -196
  423. package/packages/search/img/return.svg.js +0 -1
  424. package/packages/search/img/search-legend-enter.svg.js +0 -1
  425. package/packages/search/img/search-legend-escape.svg.js +0 -1
  426. package/packages/search/img/search-legend-page.svg.js +0 -1
  427. package/packages/search/img/search-x.svg.js +0 -1
  428. package/packages/search/img/search.svg.js +0 -1
  429. package/packages/search/img/slash-search-toggle.js +0 -17
  430. package/packages/search/index.js +0 -60
  431. package/packages/search/legend.js +0 -32
  432. package/packages/search/package-lock.json +0 -931
  433. package/packages/search/package.json +0 -29
  434. package/packages/search/provider.js +0 -81
  435. package/packages/search/search-box.js +0 -139
  436. package/packages/search/style.css +0 -366
  437. package/packages/search/tools.js +0 -166
  438. package/packages/section-header/LICENSE +0 -373
  439. package/packages/section-header/README.md +0 -13
  440. package/packages/section-header/fragment.graphql +0 -5
  441. package/packages/section-header/index.js +0 -42
  442. package/packages/section-header/package-lock.json +0 -18
  443. package/packages/section-header/package.json +0 -20
  444. package/packages/section-header/style.css +0 -18
  445. package/packages/select-input/LICENSE +0 -373
  446. package/packages/select-input/README.md +0 -1
  447. package/packages/select-input/img/dropdown-arrow.svg +0 -1
  448. package/packages/select-input/index.js +0 -80
  449. package/packages/select-input/package-lock.json +0 -70
  450. package/packages/select-input/package.json +0 -19
  451. package/packages/select-input/style.css +0 -88
  452. package/packages/subnav/LICENSE +0 -373
  453. package/packages/subnav/README.md +0 -85
  454. package/packages/subnav/helpers/globalThis.js +0 -9
  455. package/packages/subnav/helpers/traverse/index.js +0 -34
  456. package/packages/subnav/helpers/useNavRef.js +0 -16
  457. package/packages/subnav/helpers/useOverflowRef.js +0 -76
  458. package/packages/subnav/helpers/useStuckRef.js +0 -43
  459. package/packages/subnav/icons/boundary-logo-color.svgr.js +0 -32
  460. package/packages/subnav/icons/chevron-down.svg.js +0 -3
  461. package/packages/subnav/icons/consul-logo-color.svgr.js +0 -44
  462. package/packages/subnav/icons/hcp-logo-black-white.svgr.js +0 -29
  463. package/packages/subnav/icons/nomad-logo-color.svgr.js +0 -50
  464. package/packages/subnav/icons/packer-logo-color.svgr.js +0 -40
  465. package/packages/subnav/icons/terraform-logo-color.svgr.js +0 -44
  466. package/packages/subnav/icons/vagrant-logo-color.svgr.js +0 -38
  467. package/packages/subnav/icons/vault-logo-color.svgr.js +0 -32
  468. package/packages/subnav/icons/waypoint-logo-color.svgr.js +0 -28
  469. package/packages/subnav/index.js +0 -107
  470. package/packages/subnav/package-lock.json +0 -56
  471. package/packages/subnav/package.json +0 -25
  472. package/packages/subnav/partials/CtaLinks/github-stars-link/formatStarCount/index.js +0 -17
  473. package/packages/subnav/partials/CtaLinks/github-stars-link/index.js +0 -71
  474. package/packages/subnav/partials/CtaLinks/github-stars-link/parseGithubUrl/index.js +0 -25
  475. package/packages/subnav/partials/CtaLinks/github-stars-link/style.css +0 -78
  476. package/packages/subnav/partials/CtaLinks/icons/github-logo.js +0 -14
  477. package/packages/subnav/partials/CtaLinks/icons/star.js +0 -14
  478. package/packages/subnav/partials/CtaLinks/index.js +0 -48
  479. package/packages/subnav/partials/CtaLinks/style.css +0 -32
  480. package/packages/subnav/partials/DropdownTrigger/index.js +0 -20
  481. package/packages/subnav/partials/DropdownTrigger/style.css +0 -27
  482. package/packages/subnav/partials/MenuItemsDefault/index.js +0 -131
  483. package/packages/subnav/partials/MenuItemsDefault/style.css +0 -63
  484. package/packages/subnav/partials/MenuItemsOverflow/index.js +0 -117
  485. package/packages/subnav/partials/MenuItemsOverflow/style.css +0 -38
  486. package/packages/subnav/partials/TitleLink/index.js +0 -40
  487. package/packages/subnav/partials/TitleLink/style.css +0 -21
  488. package/packages/subnav/style.css +0 -6
  489. package/packages/subnav/styles/_temp-g-svg.css +0 -22
  490. package/packages/subnav/styles/_temp-resets.css +0 -15
  491. package/packages/subnav/styles/index.css +0 -103
  492. package/packages/tabbed-accordion/LICENSE +0 -373
  493. package/packages/tabbed-accordion/README.md +0 -3
  494. package/packages/tabbed-accordion/fixtures/base.json +0 -44
  495. package/packages/tabbed-accordion/index.js +0 -27
  496. package/packages/tabbed-accordion/package-lock.json +0 -27
  497. package/packages/tabbed-accordion/package.json +0 -19
  498. package/packages/tabbed-accordion/style/_temp-spacing-tokens.css +0 -36
  499. package/packages/tabbed-accordion/style/index.css +0 -22
  500. package/packages/tabbed-accordion/style.css +0 -1
  501. package/packages/tabs/LICENSE +0 -373
  502. package/packages/tabs/README.md +0 -31
  503. package/packages/tabs/index.js +0 -41
  504. package/packages/tabs/package-lock.json +0 -73
  505. package/packages/tabs/package.json +0 -18
  506. package/packages/tabs/partials/TabTriggers/helpers/smoothScroll.js +0 -77
  507. package/packages/tabs/partials/TabTriggers/icons/chevron-right_black.svg.js +0 -1
  508. package/packages/tabs/partials/TabTriggers/index.js +0 -143
  509. package/packages/tabs/partials/TabTriggers/partials/TabTrigger/icons/tooltip.svg.js +0 -1
  510. package/packages/tabs/partials/TabTriggers/partials/TabTrigger/index.js +0 -37
  511. package/packages/tabs/partials/TabTriggers/partials/TabTrigger/style.css +0 -75
  512. package/packages/tabs/partials/TabTriggers/style.css +0 -152
  513. package/packages/tabs/style.css +0 -67
  514. package/packages/terminal/LICENSE +0 -373
  515. package/packages/terminal/README.md +0 -9
  516. package/packages/terminal/Terminal.module.css +0 -146
  517. package/packages/terminal/index.jsx +0 -46
  518. package/packages/terminal/package.json +0 -17
  519. package/packages/text-input/LICENSE +0 -373
  520. package/packages/text-input/README.md +0 -24
  521. package/packages/text-input/index.js +0 -42
  522. package/packages/text-input/package-lock.json +0 -13
  523. package/packages/text-input/package.json +0 -19
  524. package/packages/text-input/style.css +0 -68
  525. package/packages/text-split/LICENSE +0 -373
  526. package/packages/text-split/README.md +0 -3
  527. package/packages/text-split/index.js +0 -66
  528. package/packages/text-split/package-lock.json +0 -35
  529. package/packages/text-split/package.json +0 -20
  530. package/packages/text-split/partials/button-group/index.js +0 -40
  531. package/packages/text-split/partials/button-group/style.css +0 -28
  532. package/packages/text-split/partials/checkbox-list/icons/check-circle.svg.jsx +0 -39
  533. package/packages/text-split/partials/checkbox-list/index.js +0 -28
  534. package/packages/text-split/partials/checkbox-list/style.css +0 -59
  535. package/packages/text-split/style.css +0 -1
  536. package/packages/text-split/styles/_temp-spacing-tokens.css +0 -37
  537. package/packages/text-split/styles/index.css +0 -86
  538. package/packages/text-split-with-code/LICENSE +0 -373
  539. package/packages/text-split-with-code/README.md +0 -13
  540. package/packages/text-split-with-code/index.js +0 -29
  541. package/packages/text-split-with-code/package-lock.json +0 -117
  542. package/packages/text-split-with-code/package.json +0 -21
  543. package/packages/text-split-with-code/style.css +0 -42
  544. package/packages/text-split-with-image/LICENSE +0 -373
  545. package/packages/text-split-with-image/README.md +0 -12
  546. package/packages/text-split-with-image/index.js +0 -11
  547. package/packages/text-split-with-image/package-lock.json +0 -75
  548. package/packages/text-split-with-image/package.json +0 -17
  549. package/packages/text-split-with-logo-grid/LICENSE +0 -373
  550. package/packages/text-split-with-logo-grid/README.md +0 -8
  551. package/packages/text-split-with-logo-grid/index.js +0 -63
  552. package/packages/text-split-with-logo-grid/package-lock.json +0 -90
  553. package/packages/text-split-with-logo-grid/package.json +0 -18
  554. package/packages/text-split-with-logo-grid/style.css +0 -88
  555. package/packages/toggle/LICENSE +0 -373
  556. package/packages/toggle/index.js +0 -22
  557. package/packages/toggle/package-lock.json +0 -5
  558. package/packages/toggle/package.json +0 -17
  559. package/packages/toggle/readme.md +0 -7
  560. package/packages/toggle/style.css +0 -35
  561. package/packages/vertical-text-block-list/LICENSE +0 -373
  562. package/packages/vertical-text-block-list/README.md +0 -15
  563. package/packages/vertical-text-block-list/index.js +0 -54
  564. package/packages/vertical-text-block-list/package-lock.json +0 -60
  565. package/packages/vertical-text-block-list/package.json +0 -22
  566. package/packages/vertical-text-block-list/style.css +0 -104
  567. package/pages/_app.jsx +0 -5
  568. package/pages/global.css +0 -43
  569. package/pages/index.jsx +0 -16
  570. package/prettier.config.js +0 -4
  571. package/scripts/release-check-branch.sh +0 -15
  572. package/scripts/release-check-npm-auth.sh +0 -39
@@ -1,188 +0,0 @@
1
- # @hashicorp/react-search
2
-
3
- ## Props
4
-
5
- ### renderHitContent
6
-
7
- > `function` | `({ hit: object, Highlight: React.Node }) => React.Component` | _Required_
8
-
9
- A render function whose result is used to display each query "hit"
10
-
11
- **Params**
12
-
13
- | Property | Type | Description |
14
- |-----------|--------------|-------------------------------------------------------------------------------------|
15
- | hit | `object` | https://www.algolia.com/doc/api-reference/widgets/highlight/react/#widget-param-hit |
16
- | Highlight | `React.Node` | https://www.algolia.com/doc/api-reference/widgets/highlight/react/ |
17
-
18
- ### resolveHitLink
19
-
20
- > `function` | | `( hit: object ) => NextLinkProps` | _Optional_ | **Default:** (hit) => ({ href:`/${hit.objectID}` })
21
-
22
- A function whose return value is spread as props to `next/link`.
23
- For more information about the available props, reference the next/link documentation: https://nextjs.org/docs/api-reference/next/link
24
-
25
- **Params**
26
-
27
- | Property | Type | Description |
28
- |----------|----------|-------------------------------------------------------------------------------------|
29
- | hit | `object` | https://www.algolia.com/doc/api-reference/widgets/highlight/react/#widget-param-hit |
30
-
31
- ### placeholder
32
-
33
- > `string` | _Optional_ | **Default:** `Search`
34
-
35
- ## Usage
36
-
37
- ```jsx
38
- import Search from '@hashicorp/react-search'
39
-
40
- function SearchBar() {
41
- return (
42
- <Search
43
- renderHitContent={({ hit, Highlight }) => <div>...</div>}
44
- resolveHitLink={(hit) => ({ href: { pathname: `/${hit.objectID}`, query: { id: hit.__queryID} } })}
45
- placeholder="Search documentation"
46
- />
47
- }
48
- ```
49
-
50
- ### Environment Variables
51
-
52
- This component relies on the presence of the following environment variables to be available client side:
53
-
54
- ```text
55
- NEXT_PUBLIC_ALGOLIA_APP_ID
56
- NEXT_PUBLIC_ALGOLIA_SEARCH_ONLY_API_KEY
57
- NEXT_PUBLIC_ALGOLIA_INDEX
58
- ```
59
-
60
- ### React
61
-
62
- To use the primary `<Search />` component, ensure it exists as a child of the `<SearchProvider />` component. For example:
63
-
64
- **App.jsx**
65
-
66
- ```jsx
67
- import Search, { SearchProvider } from '@hashicorp/react-search'
68
-
69
- function App() {
70
- return (
71
- <>
72
- <SearchProvider>
73
- <Search
74
- renderHitContent={({hit, Highlight}) => (
75
- <span className="name">
76
- <Highlight attribute="name" hit={hit} tagName="span" />
77
- </span>
78
- )}
79
- resolveHitLink={(hit) => ({ href: `/${hit.objectID}` })}
80
- />
81
- <ComponentA>
82
- <ComponentB>
83
- </SearchProvider>
84
- <ComponentC__WithoutSearchContext>
85
- </>
86
- )
87
- }
88
- ```
89
-
90
- Any child component of `<SearchProvider />` can utilize the provided `useSearch()` hook and access search-specific information. For example:
91
-
92
- ```jsx
93
- import { useSearch } from '@hashicorp/react-search'
94
-
95
- function ComponentA() {
96
- const { query } = useSearch()
97
-
98
- return <code>Search query: {query}</code>
99
- }
100
- ```
101
-
102
- ## useSearch()
103
-
104
- `useSearch()` exposes the following values:
105
-
106
- - `client` (`object`) - Initialized Algolia client
107
- - `indexName` (`string`) - The name of the Algolia index that search is performed upon
108
- - `initAlgoliaInsights` (`function`) - Required to initialize Algolia
109
- - `isCancelled` (`boolean`) - Indicates if search is currently cancelled or not
110
- - `logClick` (`function`) - Fires an analytics event via the `search-insights` package
111
- - `query` (`string`) - Current search query
112
- - `setIsCancelled` (`function`) - Setter function that updates the search cancel state
113
- - `setQuery` (`function`) - Setter function that updates the search query
114
-
115
-
116
- ## Tools
117
-
118
- This package includes a `tools.js` file that includes Algolia-related Node.js scripts
119
-
120
- ### Usage
121
-
122
- ```js
123
- const { indexDocsContent, indexContent } = require('@hashicorp/react-search/tools')
124
- /* It's worth noting that you'd only want to use *one* of the two exported functions */
125
- ```
126
-
127
- #### indexDocsContent
128
- > `function` | `(config: object)`
129
- This specific helper function is designed specifically for perfoming search indexing on our various product sites' documentation pages.
130
-
131
- ##### config.algoliaConfig: { appId: string, apiKey: string, index: string }
132
-
133
- Algolia-related configuration
134
-
135
- _Default_:
136
- ```js
137
- {
138
- apiKey: process.env.ALGOLIA_API_KEY,
139
- appId: process.env.NEXT_PUBLIC_ALGOLIA_APP_ID,
140
- index: process.env.NEXT_PUBLIC_ALGOLIA_INDEX,
141
- }
142
- ```
143
-
144
- ##### config.contentDir: string
145
-
146
- Path to directory that contains the content to be indexed by Algolia
147
-
148
- _Default_: `path.join(__dirname, 'pages')`
149
-
150
- ##### config.filesPattern: string
151
-
152
- [minimatch](https://github.com/isaacs/minimatch)-style string to be performed within `config.contentDir`. The results of this pattern match will determine which files to index.
153
-
154
- _Default_: `'**/*.mdx'`
155
-
156
- ##### config.globOptions: { [k:string]: any }
157
-
158
- Additional options to include to the glob match. Available options [here](https://github.com/isaacs/node-glob#options)
159
-
160
- _Default_: `{ ignore: path.join(config.contentDir, 'partials/**/*') }`
161
-
162
- ##### config.frontmatterKeys: string[]
163
-
164
- Assuming your search-indexed content includes [frontmatter](https://jekyllrb.com/docs/front-matter/), the keys included in this `array` will be included as search criteria.
165
-
166
- _Default_: `['page_title', 'description']`
167
-
168
-
169
- #### indexContent
170
- > `function` | `(config: object)`
171
- This generic helper function allows for custom Algolia indexing
172
-
173
- ##### config.algoliaConfig: { appId: string, apiKey: string, index: string }
174
-
175
- Algolia-related configuration
176
-
177
- _Default_:
178
- ```js
179
- {
180
- apiKey: process.env.ALGOLIA_API_KEY,
181
- appId: process.env.NEXT_PUBLIC_ALGOLIA_APP_ID,
182
- index: process.env.NEXT_PUBLIC_ALGOLIA_INDEX,
183
- }
184
- ```
185
-
186
- ##### config.getSearchObjects: () => any
187
-
188
- This function should return an array of objects that will get passed to Algolias [`partialUpdateObjects`](https://www.algolia.com/doc/api-reference/api-methods/partial-update-objects/) function
@@ -1,196 +0,0 @@
1
- import { forwardRef, useEffect, useRef, useState } from 'react'
2
- import Link from 'next/link'
3
- import { Highlight, connectHits } from 'react-instantsearch-dom'
4
- import generateSlug from '@hashicorp/remark-plugins/generate_slug'
5
- import InlineSvg from '@hashicorp/react-inline-svg'
6
- import SearchLegend from './legend'
7
- import { useSearch } from './provider'
8
- import IconReturn from './img/return.svg.js'
9
-
10
- function Hits({
11
- /* Props provided from connector */
12
- hits,
13
- /* Props passed explicity */
14
- handleEscape,
15
- renderHitContent,
16
- resolveHitLink,
17
- query,
18
- setCancelled,
19
- }) {
20
- const selectedHit = useRef(null)
21
- const [hitsTabIndex, setHitsTabIndex] = useState(null)
22
-
23
- useEffect(() => {
24
- window.addEventListener('keydown', onKeyDown)
25
- return () => window.removeEventListener('keydown', onKeyDown)
26
- }, [hitsTabIndex])
27
-
28
- useEffect(() => {
29
- if (selectedHit?.current) scrollToActive(selectedHit.current)
30
- }, [hitsTabIndex])
31
-
32
- function onKeyDown(e) {
33
- switch ([e.ctrlKey, e.keyCode].join(',')) {
34
- // [Enter]
35
- case 'false,13':
36
- return handleEnter(e)
37
- // [Escape]
38
- case 'false,27':
39
- setHitsTabIndex(null)
40
- return handleEscape()
41
- // [ArrowDown]
42
- // [Ctrl-n]
43
- case 'false,40':
44
- case 'true,78':
45
- if (!hitsTabIndex) {
46
- setHitsTabIndex(0)
47
- scrollToActive()
48
- }
49
- return incrementTabIndex()
50
- // [ArrowUp]
51
- // [Ctrl-p]
52
- case 'false,38':
53
- case 'true,80':
54
- e.preventDefault()
55
- return decrementTabIndex()
56
- }
57
- }
58
-
59
- function handleEnter(e) {
60
- e.preventDefault()
61
- selectedHit.current?.click()
62
- }
63
-
64
- function incrementTabIndex() {
65
- let startIndex = hitsTabIndex || 0
66
- const nextIndex = startIndex + 1
67
- if (nextIndex > hits.length) return setHitsTabIndex(1)
68
- setHitsTabIndex(nextIndex)
69
- }
70
-
71
- function decrementTabIndex() {
72
- let startIndex = hitsTabIndex || 0
73
- const nextIndex = startIndex - 1
74
- if (nextIndex < 1) return setHitsTabIndex(hits.length)
75
- setHitsTabIndex(nextIndex)
76
- }
77
-
78
- function scrollToActive(el) {
79
- if (!el) return
80
- el.scrollIntoView({
81
- behavior: 'smooth',
82
- block: 'nearest',
83
- inline: 'nearest',
84
- })
85
- }
86
-
87
- return (
88
- <div className="c-hits">
89
- {hits.length === 0 ? (
90
- <div className="no-hits">
91
- <span className="title">{`No results for ${query}...`}</span>
92
- <span className="message">
93
- Search tips: some terms require an exact match. Try typing the
94
- entire term, or use a different word or phrase.
95
- </span>
96
- </div>
97
- ) : (
98
- <div className="hits">
99
- <SearchLegend />
100
- <ul className="hits-list">
101
- {hits.map((hit) => (
102
- <Hit
103
- key={hit.objectID}
104
- closeSearchResults={() => setCancelled(true)}
105
- hit={hit}
106
- renderHitContent={renderHitContent}
107
- resolveHitLink={resolveHitLink}
108
- {...(hitsTabIndex === hit.__position && {
109
- className: 'active',
110
- ref: selectedHit,
111
- })}
112
- />
113
- ))}
114
- </ul>
115
- </div>
116
- )}
117
- </div>
118
- )
119
- }
120
-
121
- export default connectHits(Hits)
122
-
123
- /* eslint-disable react/display-name */
124
-
125
- // we need an `a` tag that also has a click handler
126
- // next/link passes a click handler to its child; so in order to merge ours in, we need this syntax
127
- // ref: https://github.com/zeit/next.js/#with-link
128
-
129
- const LinkWithClick = forwardRef(({ children, ...props }, ref) => (
130
- <a {...props} ref={ref}>
131
- {children}
132
- </a>
133
- ))
134
-
135
- const Hit = forwardRef(
136
- (
137
- {
138
- className = '',
139
- closeSearchResults,
140
- hit,
141
- renderHitContent,
142
- resolveHitLink,
143
- },
144
- ref
145
- ) => {
146
- const { logClick, setQuery } = useSearch()
147
- let hitLink = resolveHitLink
148
- ? resolveHitLink(hit)
149
- : { href: `/${hit.objectID}` }
150
-
151
- // We append an associated heading slug to hitLink.href if and only if the search result matches one heading
152
- // and does not match either description or page title criteria
153
- if (
154
- hit?._highlightResult?.description?.matchLevel === 'none' &&
155
- hit?._highlightResult?.page_title?.matchLevel === 'none'
156
- ) {
157
- const matchedHeading = hit.headings.filter((heading, idx) => {
158
- return hit?._highlightResult?.headings[idx]?.matchLevel !== 'none'
159
- })
160
-
161
- if (matchedHeading.length === 1) {
162
- hitLink.href =
163
- typeof hitLink.href === 'object'
164
- ? { ...hitLink.href, hash: generateSlug(matchedHeading[0]) }
165
- : { pathname: hitLink.href, hash: generateSlug(matchedHeading[0]) }
166
- }
167
- }
168
-
169
- const handleClick = () => {
170
- logClick(hit)
171
- closeSearchResults()
172
- setQuery('')
173
- }
174
-
175
- return (
176
- <li className="hit-item">
177
- <Link {...hitLink} passHref>
178
- <LinkWithClick
179
- ref={ref}
180
- className={`hit-link-wrapper ${className}`}
181
- onClick={handleClick}
182
- >
183
- <div className="hit">
184
- <div className="hit-content">
185
- {renderHitContent({ hit, Highlight })}
186
- </div>
187
- <InlineSvg className={`icon-return`} src={IconReturn} />
188
- </div>
189
- </LinkWithClick>
190
- </Link>
191
- </li>
192
- )
193
- }
194
- )
195
-
196
- /* eslint-enable */
@@ -1 +0,0 @@
1
- export default `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17 7v5a1 1 0 01-1 1H7.5" stroke="#76767D" stroke-linecap="round"/><path d="M10 10l-3 3 3 3" stroke="#76767D" stroke-linecap="round" stroke-linejoin="round"/></svg>`
@@ -1 +0,0 @@
1
- export default `<svg width="61" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><g opacity=".75"><rect x=".5" y=".5" width="60" height="23" rx=".5" stroke="#DCDDE0"/><path d="M11.252 16.132c1.44 0 2.4-.852 2.58-2.028h-1.2c-.276.792-.996.924-1.38.924-.948 0-1.572-.6-1.572-1.584v-.012h4.248c.144-1.98-.864-3.504-2.712-3.504-1.704 0-2.856 1.26-2.856 3.12 0 1.932 1.14 3.084 2.892 3.084zm-1.536-3.816c.048-.756.66-1.284 1.464-1.284.804 0 1.368.528 1.404 1.284H9.716zM15.085 16h1.272v-3.024c0-1.236.708-1.992 1.5-1.992.672 0 1.188.42 1.188 1.476V16h1.38v-3.684c0-2.028-1.44-2.472-2.268-2.472-.972 0-1.572.588-1.8.912V10h-1.272v6zm8.523 0h1.14l.012-1.128h-.816c-.576 0-.732-.192-.732-.792v-3h1.536V10h-1.536V8.08h-1.248V10h-.936v1.08h.936v3.324c0 .936.684 1.596 1.644 1.596zm4.402.132c1.44 0 2.4-.852 2.58-2.028h-1.2c-.276.792-.996.924-1.38.924-.948 0-1.572-.6-1.572-1.584v-.012h4.248c.144-1.98-.864-3.504-2.712-3.504-1.704 0-2.856 1.26-2.856 3.12 0 1.932 1.14 3.084 2.892 3.084zm-1.536-3.816c.048-.756.66-1.284 1.464-1.284.804 0 1.368.528 1.404 1.284h-2.868zM31.843 16h1.236v-3.036c0-1.476.935-1.74 1.751-1.728h.205V9.904h-.276c-1.14 0-1.56.6-1.68.828V10h-1.237v6z" fill="#76767D"/><path d="M54 7v5a1 1 0 01-1 1h-8.5" stroke="#76767D" stroke-linecap="round"/><path d="M47 10l-3 3 3 3" stroke="#76767D" stroke-linecap="round" stroke-linejoin="round"/></g></svg>`
@@ -1 +0,0 @@
1
- export default `<svg width="36" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path opacity=".75" d="M11.703 16.143c1.56 0 2.6-.923 2.795-2.197h-1.3c-.299.858-1.079 1.001-1.495 1.001-1.027 0-1.703-.65-1.703-1.716v-.013h4.602c.156-2.145-.936-3.796-2.938-3.796-1.846 0-3.094 1.365-3.094 3.38 0 2.093 1.235 3.341 3.133 3.341zm-1.664-4.134c.052-.819.715-1.391 1.586-1.391.871 0 1.482.572 1.521 1.391H10.04zm8.091 4.134c1.21 0 2.535-.754 2.535-2.106 0-1.001-.598-1.729-2.626-1.976-.806-.104-1.105-.429-1.105-.78 0-.481.546-.689 1.053-.689.364 0 1.105.117 1.248 1.001h1.287c-.13-1.612-1.378-2.21-2.56-2.21-1.496 0-2.432.897-2.432 1.885 0 .65.234 1.612 2.496 1.937.988.143 1.196.481 1.196.832 0 .533-.455.936-1.144.936-.689 0-1.274-.377-1.417-1.053h-1.326c.078 1.482 1.326 2.223 2.795 2.223zm6.37-.052c1.52 0 2.73-.975 2.912-2.366h-1.456c-.117.585-.598 1.144-1.43 1.144-.936 0-1.677-.819-1.677-2.21 0-1.326.74-2.106 1.65-2.106.82 0 1.314.559 1.457 1.144h1.456c-.17-1.365-1.352-2.327-2.86-2.327-1.86 0-3.172 1.404-3.172 3.38 0 1.963 1.287 3.341 3.12 3.341z" fill="#76767D"/><rect opacity=".5" x=".5" y=".5" width="35" height="23" rx=".5" stroke="#BDBEC2"/></svg>`
@@ -1 +0,0 @@
1
- export default `<svg width="20" height="12" fill="none" xmlns="http://www.w3.org/2000/svg"><path stroke="#76767D" stroke-linecap="round" d="M4.5.5v11"/><path d="M1 4L4.5.5 8 4" stroke="#76767D" stroke-linecap="round" stroke-linejoin="round"/><path stroke="#76767D" stroke-linecap="round" d="M15.5.5v11"/><path d="M12 7.5l3.5 4 3.5-4" stroke="#76767D" stroke-linecap="round" stroke-linejoin="round"/></svg>`
@@ -1 +0,0 @@
1
- export default `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.915 1.077h13.684v13.684H1.915z"/><path d="M1.915 1.077l13.683 13.684M1.915 14.76L15.598 1.078" stroke="#76767D" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>`
@@ -1 +0,0 @@
1
- export default `<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M8.75 15a6.25 6.25 0 100-12.5 6.25 6.25 0 000 12.5z" stroke="#76767d" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M17.5 17.5l-4.333-4.333" stroke="#76767d" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>`
@@ -1,17 +0,0 @@
1
- export default function IconSlash() {
2
- return (
3
- <svg
4
- className="icon-slash"
5
- width="24"
6
- height="24"
7
- fill="none"
8
- viewBox="0 0 24 24"
9
- xmlns="http://www.w3.org/2000/svg"
10
- role="img"
11
- >
12
- <title>{"Type '/' to Search"}</title>
13
- <rect x=".5" y=".5" width="23" height="23" rx=".5" stroke="#76767D" />
14
- <path d="M9 18l6-12" stroke="#76767D" strokeWidth="1.5" />
15
- </svg>
16
- )
17
- }
@@ -1,60 +0,0 @@
1
- import { useEffect } from 'react'
2
- import { Configure, InstantSearch } from 'react-instantsearch-dom'
3
- import Hits from './hits'
4
- import SearchBox from './search-box'
5
- import SearchProvider, { useSearch } from './provider'
6
-
7
- function Search({ placeholder = 'Search', renderHitContent, resolveHitLink }) {
8
- if (!renderHitContent) {
9
- throw new Error(
10
- 'Please provide a `renderHitContent` prop to the Search component'
11
- )
12
- }
13
-
14
- const {
15
- client,
16
- indexName,
17
- initAlgoliaInsights,
18
- isCancelled,
19
- query,
20
- setCancelled,
21
- setQuery,
22
- } = useSearch()
23
-
24
- useEffect(initAlgoliaInsights, [])
25
-
26
- function handleEscape() {
27
- setCancelled(true)
28
- }
29
-
30
- return (
31
- <div className="g-search">
32
- <InstantSearch indexName={indexName} searchClient={client} refresh>
33
- <Configure distinct={1} hitsPerPage={25} clickAnalytics />
34
- <SearchBox
35
- {...{
36
- handleEscape,
37
- placeholder,
38
- query,
39
- setCancelled,
40
- setQuery,
41
- }}
42
- />
43
- {query && !isCancelled && (
44
- <Hits
45
- {...{
46
- handleEscape,
47
- query,
48
- renderHitContent,
49
- resolveHitLink,
50
- setCancelled,
51
- }}
52
- />
53
- )}
54
- </InstantSearch>
55
- </div>
56
- )
57
- }
58
-
59
- export default Search
60
- export { SearchProvider, useSearch }
@@ -1,32 +0,0 @@
1
- import InlineSvg from '@hashicorp/react-inline-svg'
2
- import IconEnter from './img/search-legend-enter.svg.js'
3
- import IconPage from './img/search-legend-page.svg.js'
4
- import IconEscape from './img/search-legend-escape.svg.js'
5
-
6
- export default function SearchLegend() {
7
- return (
8
- <div className="c-search-legend">
9
- <figure className="legend-item">
10
- <InlineSvg src={IconEnter} aria-hidden={true} />
11
- <p className="g-type-tag-label">
12
- <span className="visually-hidden">Enter</span>
13
- to select
14
- </p>
15
- </figure>
16
- <figure className="legend-item">
17
- <InlineSvg src={IconPage} aria-hidden={true} />
18
- <p className="g-type-tag-label">
19
- <span className="visually-hidden">Tab</span>
20
- to navigate
21
- </p>
22
- </figure>
23
- <figure className="legend-item">
24
- <InlineSvg src={IconEscape} aria-hidden={true} />
25
- <p className="g-type-tag-label">
26
- <span className="visually-hidden">Escape</span>
27
- to dismiss
28
- </p>
29
- </figure>
30
- </div>
31
- )
32
- }