@hashicorp/react-components 0.0.0 → 1.0.1

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 (586) 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 +18 -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/nav-panel/components/link-list/index.tsx +88 -0
  101. package/src/components/nav-panel/components/link-list/style.module.css +57 -0
  102. package/src/components/nav-panel/components/panel/column/index.tsx +9 -0
  103. package/src/components/nav-panel/components/panel/column/style.module.css +14 -0
  104. package/src/components/nav-panel/components/panel/index.tsx +4 -0
  105. package/src/components/nav-panel/components/panel/root/index.tsx +9 -0
  106. package/src/components/nav-panel/components/panel/root/style.module.css +15 -0
  107. package/src/components/nav-panel/components/promo/index.tsx +79 -0
  108. package/src/components/nav-panel/components/promo/style.module.css +92 -0
  109. package/src/components/nav-panel/index.tsx +6 -0
  110. package/src/components/nav-panel/product-panel/index.tsx +88 -0
  111. package/src/components/nav-panel/product-panel/style.module.css +100 -0
  112. package/src/components/nav-panel/standard-panel/index.tsx +44 -0
  113. package/src/components/nav-panel/standard-panel/style.module.css +11 -0
  114. package/src/components/next-steps/index.tsx +137 -0
  115. package/src/components/next-steps/style.module.css +270 -0
  116. package/src/components/next-steps/types.ts +63 -0
  117. package/src/components/product-badge/index.test.tsx +11 -0
  118. package/src/components/product-badge/index.tsx +42 -0
  119. package/src/components/product-badge/style.module.css +76 -0
  120. package/src/components/products-used/index.tsx +84 -0
  121. package/src/components/products-used/style.module.css +87 -0
  122. package/src/components/products-used/types.ts +31 -0
  123. package/src/components/related-content/index.test.tsx +74 -0
  124. package/src/components/related-content/index.tsx +56 -0
  125. package/src/components/related-content/style.module.css +89 -0
  126. package/src/components/related-content/types.ts +21 -0
  127. package/src/components/subnav/helpers/areBasePathsMatching.ts +13 -0
  128. package/src/components/subnav/helpers/traverse/index.ts +42 -0
  129. package/src/components/subnav/helpers/useHeightRef.ts +42 -0
  130. package/src/components/subnav/helpers/useNavRef.ts +30 -0
  131. package/src/components/subnav/helpers/useOverflowRef.ts +85 -0
  132. package/src/components/subnav/helpers/useStuckRef.ts +51 -0
  133. package/src/components/subnav/index.tsx +199 -0
  134. package/src/components/subnav/partials/CtaLinks/github-stars-link/formatStarCount/index.test.ts +26 -0
  135. package/src/components/subnav/partials/CtaLinks/github-stars-link/formatStarCount/index.ts +22 -0
  136. package/src/components/subnav/partials/CtaLinks/github-stars-link/index.tsx +87 -0
  137. package/src/components/subnav/partials/CtaLinks/github-stars-link/parseGithubUrl/index.test.ts +29 -0
  138. package/src/components/subnav/partials/CtaLinks/github-stars-link/parseGithubUrl/index.ts +32 -0
  139. package/src/components/subnav/partials/CtaLinks/github-stars-link/style.module.css +85 -0
  140. package/src/components/subnav/partials/CtaLinks/icons/github-logo.js +20 -0
  141. package/{packages → src/components}/subnav/partials/CtaLinks/icons/github.svg.js +5 -0
  142. package/src/components/subnav/partials/CtaLinks/icons/star.js +20 -0
  143. package/src/components/subnav/partials/CtaLinks/index.tsx +130 -0
  144. package/src/components/subnav/partials/CtaLinks/style.module.css +45 -0
  145. package/src/components/subnav/partials/DropdownTrigger/index.tsx +35 -0
  146. package/src/components/subnav/partials/DropdownTrigger/style.module.css +36 -0
  147. package/src/components/subnav/partials/MenuItemsDefault/index.tsx +151 -0
  148. package/src/components/subnav/partials/MenuItemsDefault/style.module.css +91 -0
  149. package/src/components/subnav/partials/MenuItemsOverflow/index.tsx +139 -0
  150. package/src/components/subnav/partials/MenuItemsOverflow/style.module.css +82 -0
  151. package/src/components/subnav/partials/TitleLink/index.tsx +113 -0
  152. package/src/components/subnav/partials/TitleLink/mktg-logos/all-community-product-logos_on-dark.ts +9 -0
  153. package/src/components/subnav/partials/TitleLink/mktg-logos/all-community-product-logos_on-light.ts +9 -0
  154. package/src/components/subnav/partials/TitleLink/mktg-logos/all-primary-logos_on-dark.ts +23 -0
  155. package/src/components/subnav/partials/TitleLink/mktg-logos/all-primary-logos_on-light.ts +23 -0
  156. package/src/components/subnav/partials/TitleLink/style.module.css +43 -0
  157. package/src/components/subnav/partials/nav-item-text/index.tsx +37 -0
  158. package/src/components/subnav/partials/nav-item-text/style.module.css +15 -0
  159. package/src/components/subnav/style.module.css +68 -0
  160. package/src/components/subnav/subnav-consts.ts +1 -0
  161. package/src/components/subnav/theme.module.css +50 -0
  162. package/tsconfig.json +14 -0
  163. package/vitest.config.mts +12 -0
  164. package/.circleci/config.yml +0 -8
  165. package/.github/pull_request_template.md +0 -36
  166. package/.github/workflows/publish.yml +0 -181
  167. package/__test-helpers/expect-throw.js +0 -6
  168. package/__test-helpers/extend-expect.js +0 -1
  169. package/__test-helpers/mocks/css-module-mock.js +0 -1
  170. package/__test-helpers/mocks/graphql-fragment-mock.js +0 -1
  171. package/__test-helpers/mocks/svg-mock.js +0 -1
  172. package/babel.config.js +0 -5
  173. package/jest.config.js +0 -13
  174. package/lerna.json +0 -16
  175. package/next.config.js +0 -14
  176. package/packages/accordion/LICENSE +0 -373
  177. package/packages/accordion/README.md +0 -5
  178. package/packages/accordion/index.js +0 -21
  179. package/packages/accordion/package-lock.json +0 -13
  180. package/packages/accordion/package.json +0 -20
  181. package/packages/accordion/partials/AccordionItems/fixtures/default.json +0 -12
  182. package/packages/accordion/partials/AccordionItems/icons/arrow-down.svg +0 -1
  183. package/packages/accordion/partials/AccordionItems/index.js +0 -64
  184. package/packages/accordion/partials/AccordionItems/style.css +0 -2
  185. package/packages/accordion/partials/AccordionItems/styles/content.css +0 -47
  186. package/packages/accordion/partials/AccordionItems/styles/index.css +0 -72
  187. package/packages/accordion/partials/Collapsible/index.js +0 -87
  188. package/packages/accordion/partials/Collapsible/style.css +0 -10
  189. package/packages/accordion/style.css +0 -3
  190. package/packages/accordion/styles/index.css +0 -14
  191. package/packages/alert/LICENSE +0 -373
  192. package/packages/alert/README.md +0 -9
  193. package/packages/alert/fragment.graphql +0 -8
  194. package/packages/alert/index.js +0 -44
  195. package/packages/alert/package.json +0 -22
  196. package/packages/alert/style.css +0 -138
  197. package/packages/alert-banner/LICENSE +0 -373
  198. package/packages/alert-banner/README.md +0 -3
  199. package/packages/alert-banner/close-icon.js +0 -35
  200. package/packages/alert-banner/fragment.graphql +0 -8
  201. package/packages/alert-banner/index.jsx +0 -97
  202. package/packages/alert-banner/package-lock.json +0 -18
  203. package/packages/alert-banner/package.json +0 -26
  204. package/packages/alert-banner/style.css +0 -151
  205. package/packages/button/LICENSE +0 -373
  206. package/packages/button/README.md +0 -19
  207. package/packages/button/fragment.graphql +0 -6
  208. package/packages/button/helpers/normalizeButtonTheme.js +0 -49
  209. package/packages/button/icons/arrow-right.svg.js +0 -1
  210. package/packages/button/icons/chevron-down.svg.js +0 -1
  211. package/packages/button/icons/download.svg.js +0 -1
  212. package/packages/button/icons/external-link.svg.js +0 -1
  213. package/packages/button/index.js +0 -86
  214. package/packages/button/package-lock.json +0 -18
  215. package/packages/button/package.json +0 -21
  216. package/packages/button/styles/index.css +0 -122
  217. package/packages/button/styles/variant-primary.css +0 -232
  218. package/packages/button/styles/variant-secondary.css +0 -179
  219. package/packages/button/styles/variant-tertiary-neutral.css +0 -65
  220. package/packages/button/styles/variant-tertiary.css +0 -182
  221. package/packages/call-to-action/LICENSE +0 -373
  222. package/packages/call-to-action/README.md +0 -3
  223. package/packages/call-to-action/index.js +0 -67
  224. package/packages/call-to-action/package-lock.json +0 -27
  225. package/packages/call-to-action/package.json +0 -21
  226. package/packages/call-to-action/style.css +0 -1
  227. package/packages/call-to-action/styles/_temp-spacing-tokens.css +0 -33
  228. package/packages/call-to-action/styles/common.css +0 -27
  229. package/packages/call-to-action/styles/index.css +0 -4
  230. package/packages/call-to-action/styles/variant-centered.css +0 -44
  231. package/packages/call-to-action/styles/variant-compact.css +0 -46
  232. package/packages/call-to-action/styles/variant-links.css +0 -32
  233. package/packages/callouts/LICENSE +0 -373
  234. package/packages/callouts/README.md +0 -8
  235. package/packages/callouts/index.js +0 -67
  236. package/packages/callouts/package-lock.json +0 -33
  237. package/packages/callouts/package.json +0 -20
  238. package/packages/callouts/partials/callout-item/fixtures/default.json +0 -9
  239. package/packages/callouts/partials/callout-item/index.js +0 -71
  240. package/packages/callouts/partials/callout-item/style.css +0 -76
  241. package/packages/callouts/style.css +0 -1
  242. package/packages/callouts/styles/_temp-reset.css +0 -11
  243. package/packages/callouts/styles/_temp-spacing-tokens.css +0 -41
  244. package/packages/callouts/styles/index.css +0 -124
  245. package/packages/case-study-slider/LICENSE +0 -373
  246. package/packages/case-study-slider/Logo.js +0 -6
  247. package/packages/case-study-slider/StatusBar.js +0 -14
  248. package/packages/case-study-slider/StatusBar.test.js +0 -32
  249. package/packages/case-study-slider/docs.mdx +0 -144
  250. package/packages/case-study-slider/fragment.graphql +0 -33
  251. package/packages/case-study-slider/index.js +0 -229
  252. package/packages/case-study-slider/index.test.js +0 -279
  253. package/packages/case-study-slider/package-lock.json +0 -72
  254. package/packages/case-study-slider/package.json +0 -20
  255. package/packages/case-study-slider/props.js +0 -182
  256. package/packages/case-study-slider/readme.md +0 -7
  257. package/packages/case-study-slider/style.css +0 -176
  258. package/packages/checkbox-input/LICENSE +0 -373
  259. package/packages/checkbox-input/index.js +0 -55
  260. package/packages/checkbox-input/package-lock.json +0 -13
  261. package/packages/checkbox-input/package.json +0 -20
  262. package/packages/checkbox-input/readme.md +0 -19
  263. package/packages/checkbox-input/style.css +0 -110
  264. package/packages/code-block/LICENSE +0 -373
  265. package/packages/code-block/README.md +0 -9
  266. package/packages/code-block/fragment.graphql +0 -10
  267. package/packages/code-block/img/clipboard.svg +0 -1
  268. package/packages/code-block/index.js +0 -85
  269. package/packages/code-block/languages/sentinel.js +0 -71
  270. package/packages/code-block/package-lock.json +0 -68
  271. package/packages/code-block/package.json +0 -22
  272. package/packages/code-block/style.css +0 -162
  273. package/packages/consent-manager/LICENSE +0 -373
  274. package/packages/consent-manager/banner.js +0 -39
  275. package/packages/consent-manager/cookies.js +0 -53
  276. package/packages/consent-manager/dialog.js +0 -286
  277. package/packages/consent-manager/icn_close.js +0 -19
  278. package/packages/consent-manager/index.js +0 -119
  279. package/packages/consent-manager/integrations.js +0 -92
  280. package/packages/consent-manager/load.js +0 -139
  281. package/packages/consent-manager/package-lock.json +0 -45
  282. package/packages/consent-manager/package.json +0 -24
  283. package/packages/consent-manager/style.css +0 -209
  284. package/packages/content/LICENSE +0 -373
  285. package/packages/content/README.md +0 -8
  286. package/packages/content/index.js +0 -9
  287. package/packages/content/package.json +0 -17
  288. package/packages/content/style.css +0 -322
  289. package/packages/content-cta/LICENSE +0 -373
  290. package/packages/content-cta/README.md +0 -3
  291. package/packages/content-cta/docs.mdx +0 -25
  292. package/packages/content-cta/index.js +0 -49
  293. package/packages/content-cta/index.test.js +0 -78
  294. package/packages/content-cta/package-lock.json +0 -27
  295. package/packages/content-cta/package.json +0 -20
  296. package/packages/content-cta/props.js +0 -41
  297. package/packages/content-cta/stories/docs.mdx +0 -0
  298. package/packages/content-cta/stories/examples.stories.js +0 -51
  299. package/packages/content-cta/stories/with-knobs.stories.js +0 -58
  300. package/packages/content-cta/style.css +0 -80
  301. package/packages/docs-page/LICENSE +0 -373
  302. package/packages/docs-page/README.md +0 -51
  303. package/packages/docs-page/components.js +0 -11
  304. package/packages/docs-page/docs.mdx +0 -71
  305. package/packages/docs-page/img/github-logo.svg +0 -1
  306. package/packages/docs-page/index.js +0 -75
  307. package/packages/docs-page/index.test.js +0 -18
  308. package/packages/docs-page/package-lock.json +0 -138
  309. package/packages/docs-page/package.json +0 -28
  310. package/packages/docs-page/props.js +0 -59
  311. package/packages/docs-page/server.js +0 -137
  312. package/packages/docs-page/style.css +0 -120
  313. package/packages/docs-page/temporary_jump-to-section.js +0 -64
  314. package/packages/docs-sidenav/LICENSE +0 -373
  315. package/packages/docs-sidenav/README.md +0 -7
  316. package/packages/docs-sidenav/chevron-icon.js +0 -18
  317. package/packages/docs-sidenav/img/external.svg +0 -7
  318. package/packages/docs-sidenav/index.js +0 -457
  319. package/packages/docs-sidenav/menu-icon.js +0 -14
  320. package/packages/docs-sidenav/package-lock.json +0 -26
  321. package/packages/docs-sidenav/package.json +0 -21
  322. package/packages/docs-sidenav/style.css +0 -302
  323. package/packages/enterprise-alert/LICENSE +0 -373
  324. package/packages/enterprise-alert/README.md +0 -9
  325. package/packages/enterprise-alert/index.js +0 -28
  326. package/packages/enterprise-alert/package-lock.json +0 -13
  327. package/packages/enterprise-alert/package.json +0 -23
  328. package/packages/enterprise-alert/style.css +0 -91
  329. package/packages/featured-slider/LICENSE +0 -373
  330. package/packages/featured-slider/README.md +0 -3
  331. package/packages/featured-slider/StatusBar.js +0 -14
  332. package/packages/featured-slider/docs.mdx +0 -60
  333. package/packages/featured-slider/index.js +0 -231
  334. package/packages/featured-slider/index.test.js +0 -59
  335. package/packages/featured-slider/package-lock.json +0 -66
  336. package/packages/featured-slider/package.json +0 -22
  337. package/packages/featured-slider/props.js +0 -82
  338. package/packages/featured-slider/style.css +0 -204
  339. package/packages/hashi-stack-menu/LICENSE +0 -373
  340. package/packages/hashi-stack-menu/README.md +0 -3
  341. package/packages/hashi-stack-menu/assets/icon-dropdown.svg +0 -1
  342. package/packages/hashi-stack-menu/assets/logo.svg +0 -1
  343. package/packages/hashi-stack-menu/assets/product-icons/boundary-icon-color.svg +0 -1
  344. package/packages/hashi-stack-menu/assets/product-icons/consul-icon-color.svg +0 -1
  345. package/packages/hashi-stack-menu/assets/product-icons/nomad-icon-color.svg +0 -1
  346. package/packages/hashi-stack-menu/assets/product-icons/packer-icon-color.svg +0 -1
  347. package/packages/hashi-stack-menu/assets/product-icons/terraform-icon-color.svg +0 -1
  348. package/packages/hashi-stack-menu/assets/product-icons/vagrant-icon-color.svg +0 -1
  349. package/packages/hashi-stack-menu/assets/product-icons/vault-icon-color.svg +0 -1
  350. package/packages/hashi-stack-menu/assets/product-icons/waypoint-icon-color.svg +0 -1
  351. package/packages/hashi-stack-menu/browse-panel/browse-panel.module.css +0 -33
  352. package/packages/hashi-stack-menu/browse-panel/index.jsx +0 -9
  353. package/packages/hashi-stack-menu/data/index.js +0 -125
  354. package/packages/hashi-stack-menu/hashi-stack-menu.module.css +0 -41
  355. package/packages/hashi-stack-menu/index.jsx +0 -51
  356. package/packages/hashi-stack-menu/nav-item/index.jsx +0 -100
  357. package/packages/hashi-stack-menu/nav-item/nav-item.module.css +0 -64
  358. package/packages/hashi-stack-menu/package-lock.json +0 -18
  359. package/packages/hashi-stack-menu/package.json +0 -17
  360. package/packages/hashi-stack-menu/stack-group/index.jsx +0 -16
  361. package/packages/hashi-stack-menu/stack-group/stack-group.module.css +0 -29
  362. package/packages/hashi-stack-menu/stack-item/index.jsx +0 -35
  363. package/packages/hashi-stack-menu/stack-item/stack-item.module.css +0 -58
  364. package/packages/hashi-stack-menu/stack-menu-section/index.jsx +0 -18
  365. package/packages/hashi-stack-menu/stack-menu-section/stack-menu-section.module.css +0 -26
  366. package/packages/hashi-stack-menu/use-on-click-outside-dropdown.js +0 -22
  367. package/packages/head/LICENSE +0 -373
  368. package/packages/head/README.md +0 -236
  369. package/packages/head/index.d.ts +0 -107
  370. package/packages/head/index.js +0 -66
  371. package/packages/head/package.json +0 -17
  372. package/packages/hero/LICENSE +0 -373
  373. package/packages/hero/README.md +0 -31
  374. package/packages/hero/arrow-icon.js +0 -24
  375. package/packages/hero/carousel.js +0 -153
  376. package/packages/hero/fragment.graphql +0 -55
  377. package/packages/hero/heroLeadForm.js +0 -107
  378. package/packages/hero/index.js +0 -129
  379. package/packages/hero/package-lock.json +0 -273
  380. package/packages/hero/package.json +0 -28
  381. package/packages/hero/style.css +0 -501
  382. package/packages/image/LICENSE +0 -373
  383. package/packages/image/fragment.graphql +0 -5
  384. package/packages/image/index.js +0 -81
  385. package/packages/image/package-lock.json +0 -33
  386. package/packages/image/package.json +0 -21
  387. package/packages/image/readme.md +0 -27
  388. package/packages/inline-svg/LICENSE +0 -373
  389. package/packages/inline-svg/README.md +0 -9
  390. package/packages/inline-svg/docs.mdx +0 -15
  391. package/packages/inline-svg/index.js +0 -23
  392. package/packages/inline-svg/index.test.js +0 -50
  393. package/packages/inline-svg/package.json +0 -30
  394. package/packages/inline-svg/props.js +0 -10
  395. package/packages/learn-callout/LICENSE +0 -373
  396. package/packages/learn-callout/README.md +0 -9
  397. package/packages/learn-callout/docs.mdx +0 -31
  398. package/packages/learn-callout/index.js +0 -57
  399. package/packages/learn-callout/index.test.js +0 -49
  400. package/packages/learn-callout/props.js +0 -47
  401. package/packages/learn-callout/style.css +0 -207
  402. package/packages/link-wrap/LICENSE +0 -373
  403. package/packages/link-wrap/README.md +0 -44
  404. package/packages/link-wrap/index.js +0 -40
  405. package/packages/link-wrap/package-lock.json +0 -5
  406. package/packages/link-wrap/package.json +0 -17
  407. package/packages/logo-grid/LICENSE +0 -373
  408. package/packages/logo-grid/README.md +0 -26
  409. package/packages/logo-grid/fragment.graphql +0 -17
  410. package/packages/logo-grid/index.js +0 -157
  411. package/packages/logo-grid/package-lock.json +0 -111
  412. package/packages/logo-grid/package.json +0 -21
  413. package/packages/logo-grid/style.css +0 -148
  414. package/packages/product-downloader/LICENSE +0 -373
  415. package/packages/product-downloader/README.md +0 -9
  416. package/packages/product-downloader/index.js +0 -102
  417. package/packages/product-downloader/package-lock.json +0 -103
  418. package/packages/product-downloader/package.json +0 -18
  419. package/packages/product-downloader/partials/download-cards/index.jsx +0 -125
  420. package/packages/product-downloader/partials/download-cards/style.module.css +0 -152
  421. package/packages/product-downloader/partials/dropdown/index.jsx +0 -58
  422. package/packages/product-downloader/partials/dropdown/style.module.css +0 -28
  423. package/packages/product-downloader/partials/logos/fastly.svg +0 -7
  424. package/packages/product-downloader/partials/release-information/index.jsx +0 -148
  425. package/packages/product-downloader/partials/release-information/style.module.css +0 -101
  426. package/packages/product-downloader/style.module.css +0 -100
  427. package/packages/product-downloader/utils/downloader.js +0 -136
  428. package/packages/product-features-list/LICENSE +0 -373
  429. package/packages/product-features-list/README.md +0 -3
  430. package/packages/product-features-list/index.js +0 -30
  431. package/packages/product-features-list/package-lock.json +0 -42
  432. package/packages/product-features-list/package.json +0 -20
  433. package/packages/product-features-list/style.css +0 -90
  434. package/packages/search/LICENSE +0 -373
  435. package/packages/search/README.md +0 -188
  436. package/packages/search/hits.js +0 -196
  437. package/packages/search/img/return.svg.js +0 -1
  438. package/packages/search/img/search-legend-enter.svg.js +0 -1
  439. package/packages/search/img/search-legend-escape.svg.js +0 -1
  440. package/packages/search/img/search-legend-page.svg.js +0 -1
  441. package/packages/search/img/search-x.svg.js +0 -1
  442. package/packages/search/img/search.svg.js +0 -1
  443. package/packages/search/img/slash-search-toggle.js +0 -17
  444. package/packages/search/index.js +0 -60
  445. package/packages/search/legend.js +0 -32
  446. package/packages/search/package-lock.json +0 -931
  447. package/packages/search/package.json +0 -29
  448. package/packages/search/provider.js +0 -81
  449. package/packages/search/search-box.js +0 -139
  450. package/packages/search/style.css +0 -366
  451. package/packages/search/tools.js +0 -166
  452. package/packages/section-header/LICENSE +0 -373
  453. package/packages/section-header/README.md +0 -13
  454. package/packages/section-header/fragment.graphql +0 -5
  455. package/packages/section-header/index.js +0 -42
  456. package/packages/section-header/package-lock.json +0 -18
  457. package/packages/section-header/package.json +0 -20
  458. package/packages/section-header/style.css +0 -18
  459. package/packages/select-input/LICENSE +0 -373
  460. package/packages/select-input/README.md +0 -1
  461. package/packages/select-input/img/dropdown-arrow.svg +0 -1
  462. package/packages/select-input/index.js +0 -80
  463. package/packages/select-input/package-lock.json +0 -70
  464. package/packages/select-input/package.json +0 -19
  465. package/packages/select-input/style.css +0 -88
  466. package/packages/subnav/LICENSE +0 -373
  467. package/packages/subnav/README.md +0 -85
  468. package/packages/subnav/helpers/globalThis.js +0 -9
  469. package/packages/subnav/helpers/traverse/index.js +0 -34
  470. package/packages/subnav/helpers/useNavRef.js +0 -16
  471. package/packages/subnav/helpers/useOverflowRef.js +0 -76
  472. package/packages/subnav/helpers/useStuckRef.js +0 -43
  473. package/packages/subnav/icons/boundary-logo-color.svgr.js +0 -32
  474. package/packages/subnav/icons/chevron-down.svg.js +0 -3
  475. package/packages/subnav/icons/consul-logo-color.svgr.js +0 -44
  476. package/packages/subnav/icons/hcp-logo-black-white.svgr.js +0 -29
  477. package/packages/subnav/icons/nomad-logo-color.svgr.js +0 -50
  478. package/packages/subnav/icons/packer-logo-color.svgr.js +0 -40
  479. package/packages/subnav/icons/terraform-logo-color.svgr.js +0 -44
  480. package/packages/subnav/icons/vagrant-logo-color.svgr.js +0 -38
  481. package/packages/subnav/icons/vault-logo-color.svgr.js +0 -32
  482. package/packages/subnav/icons/waypoint-logo-color.svgr.js +0 -28
  483. package/packages/subnav/index.js +0 -107
  484. package/packages/subnav/package-lock.json +0 -56
  485. package/packages/subnav/package.json +0 -25
  486. package/packages/subnav/partials/CtaLinks/github-stars-link/formatStarCount/index.js +0 -17
  487. package/packages/subnav/partials/CtaLinks/github-stars-link/index.js +0 -71
  488. package/packages/subnav/partials/CtaLinks/github-stars-link/parseGithubUrl/index.js +0 -25
  489. package/packages/subnav/partials/CtaLinks/github-stars-link/style.css +0 -78
  490. package/packages/subnav/partials/CtaLinks/icons/github-logo.js +0 -14
  491. package/packages/subnav/partials/CtaLinks/icons/star.js +0 -14
  492. package/packages/subnav/partials/CtaLinks/index.js +0 -48
  493. package/packages/subnav/partials/CtaLinks/style.css +0 -32
  494. package/packages/subnav/partials/DropdownTrigger/index.js +0 -20
  495. package/packages/subnav/partials/DropdownTrigger/style.css +0 -27
  496. package/packages/subnav/partials/MenuItemsDefault/index.js +0 -131
  497. package/packages/subnav/partials/MenuItemsDefault/style.css +0 -63
  498. package/packages/subnav/partials/MenuItemsOverflow/index.js +0 -117
  499. package/packages/subnav/partials/MenuItemsOverflow/style.css +0 -38
  500. package/packages/subnav/partials/TitleLink/index.js +0 -40
  501. package/packages/subnav/partials/TitleLink/style.css +0 -21
  502. package/packages/subnav/style.css +0 -6
  503. package/packages/subnav/styles/_temp-g-svg.css +0 -22
  504. package/packages/subnav/styles/_temp-resets.css +0 -15
  505. package/packages/subnav/styles/index.css +0 -103
  506. package/packages/tabbed-accordion/LICENSE +0 -373
  507. package/packages/tabbed-accordion/README.md +0 -3
  508. package/packages/tabbed-accordion/fixtures/base.json +0 -44
  509. package/packages/tabbed-accordion/index.js +0 -27
  510. package/packages/tabbed-accordion/package-lock.json +0 -27
  511. package/packages/tabbed-accordion/package.json +0 -19
  512. package/packages/tabbed-accordion/style/_temp-spacing-tokens.css +0 -36
  513. package/packages/tabbed-accordion/style/index.css +0 -22
  514. package/packages/tabbed-accordion/style.css +0 -1
  515. package/packages/tabs/LICENSE +0 -373
  516. package/packages/tabs/README.md +0 -31
  517. package/packages/tabs/index.js +0 -41
  518. package/packages/tabs/package-lock.json +0 -73
  519. package/packages/tabs/package.json +0 -18
  520. package/packages/tabs/partials/TabTriggers/helpers/smoothScroll.js +0 -77
  521. package/packages/tabs/partials/TabTriggers/icons/chevron-right_black.svg.js +0 -1
  522. package/packages/tabs/partials/TabTriggers/index.js +0 -143
  523. package/packages/tabs/partials/TabTriggers/partials/TabTrigger/icons/tooltip.svg.js +0 -1
  524. package/packages/tabs/partials/TabTriggers/partials/TabTrigger/index.js +0 -37
  525. package/packages/tabs/partials/TabTriggers/partials/TabTrigger/style.css +0 -75
  526. package/packages/tabs/partials/TabTriggers/style.css +0 -152
  527. package/packages/tabs/style.css +0 -67
  528. package/packages/terminal/LICENSE +0 -373
  529. package/packages/terminal/README.md +0 -9
  530. package/packages/terminal/Terminal.module.css +0 -146
  531. package/packages/terminal/index.jsx +0 -46
  532. package/packages/terminal/package.json +0 -17
  533. package/packages/text-input/LICENSE +0 -373
  534. package/packages/text-input/README.md +0 -24
  535. package/packages/text-input/index.js +0 -42
  536. package/packages/text-input/package-lock.json +0 -13
  537. package/packages/text-input/package.json +0 -19
  538. package/packages/text-input/style.css +0 -68
  539. package/packages/text-split/LICENSE +0 -373
  540. package/packages/text-split/README.md +0 -3
  541. package/packages/text-split/index.js +0 -66
  542. package/packages/text-split/package-lock.json +0 -35
  543. package/packages/text-split/package.json +0 -20
  544. package/packages/text-split/partials/button-group/index.js +0 -40
  545. package/packages/text-split/partials/button-group/style.css +0 -28
  546. package/packages/text-split/partials/checkbox-list/icons/check-circle.svg.jsx +0 -39
  547. package/packages/text-split/partials/checkbox-list/index.js +0 -28
  548. package/packages/text-split/partials/checkbox-list/style.css +0 -59
  549. package/packages/text-split/style.css +0 -1
  550. package/packages/text-split/styles/_temp-spacing-tokens.css +0 -37
  551. package/packages/text-split/styles/index.css +0 -86
  552. package/packages/text-split-with-code/LICENSE +0 -373
  553. package/packages/text-split-with-code/README.md +0 -13
  554. package/packages/text-split-with-code/index.js +0 -29
  555. package/packages/text-split-with-code/package-lock.json +0 -117
  556. package/packages/text-split-with-code/package.json +0 -21
  557. package/packages/text-split-with-code/style.css +0 -42
  558. package/packages/text-split-with-image/LICENSE +0 -373
  559. package/packages/text-split-with-image/README.md +0 -12
  560. package/packages/text-split-with-image/index.js +0 -11
  561. package/packages/text-split-with-image/package-lock.json +0 -75
  562. package/packages/text-split-with-image/package.json +0 -17
  563. package/packages/text-split-with-logo-grid/LICENSE +0 -373
  564. package/packages/text-split-with-logo-grid/README.md +0 -8
  565. package/packages/text-split-with-logo-grid/index.js +0 -63
  566. package/packages/text-split-with-logo-grid/package-lock.json +0 -90
  567. package/packages/text-split-with-logo-grid/package.json +0 -18
  568. package/packages/text-split-with-logo-grid/style.css +0 -88
  569. package/packages/toggle/LICENSE +0 -373
  570. package/packages/toggle/index.js +0 -22
  571. package/packages/toggle/package-lock.json +0 -5
  572. package/packages/toggle/package.json +0 -17
  573. package/packages/toggle/readme.md +0 -7
  574. package/packages/toggle/style.css +0 -35
  575. package/packages/vertical-text-block-list/LICENSE +0 -373
  576. package/packages/vertical-text-block-list/README.md +0 -15
  577. package/packages/vertical-text-block-list/index.js +0 -54
  578. package/packages/vertical-text-block-list/package-lock.json +0 -60
  579. package/packages/vertical-text-block-list/package.json +0 -22
  580. package/packages/vertical-text-block-list/style.css +0 -104
  581. package/pages/_app.jsx +0 -5
  582. package/pages/global.css +0 -43
  583. package/pages/index.jsx +0 -16
  584. package/prettier.config.js +0 -4
  585. package/scripts/release-check-branch.sh +0 -15
  586. 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
- }