@netfoundry/docusaurus-theme 0.1.9 → 0.2.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 (69) hide show
  1. package/css/legacy.css +0 -9
  2. package/css/theme.css +72 -20
  3. package/dist/css/legacy.css +0 -9
  4. package/dist/css/theme.css +72 -20
  5. package/dist/src/components/NetFoundryFooter/defaults.d.ts +19 -0
  6. package/dist/src/components/NetFoundryFooter/defaults.d.ts.map +1 -0
  7. package/dist/src/components/NetFoundryFooter/defaults.js +24 -0
  8. package/dist/src/components/NetFoundryFooter/defaults.js.map +1 -0
  9. package/dist/src/components/NetFoundryLayout/NetFoundryLayout.d.ts.map +1 -1
  10. package/dist/src/components/NetFoundryLayout/NetFoundryLayout.js +3 -1
  11. package/dist/src/components/NetFoundryLayout/NetFoundryLayout.js.map +1 -1
  12. package/dist/src/components/ProductSearch/ProductSearch.d.ts +10 -0
  13. package/dist/src/components/ProductSearch/ProductSearch.d.ts.map +1 -0
  14. package/dist/src/components/ProductSearch/ProductSearch.js +140 -0
  15. package/dist/src/components/ProductSearch/ProductSearch.js.map +1 -0
  16. package/dist/src/components/ProductSearch/ProductSearch.module.css +189 -0
  17. package/dist/src/components/ProductSearch/index.d.ts +4 -0
  18. package/dist/src/components/ProductSearch/index.d.ts.map +1 -0
  19. package/dist/src/components/ProductSearch/index.js +4 -0
  20. package/dist/src/components/ProductSearch/index.js.map +1 -0
  21. package/dist/src/components/index.d.ts +1 -0
  22. package/dist/src/components/index.d.ts.map +1 -1
  23. package/dist/src/components/index.js +1 -0
  24. package/dist/src/components/index.js.map +1 -1
  25. package/dist/src/index.js +1 -1
  26. package/dist/src/index.js.map +1 -1
  27. package/dist/src/options.d.ts +20 -30
  28. package/dist/src/options.d.ts.map +1 -1
  29. package/dist/theme/BlogPostPage/Metadata.d.ts +2 -0
  30. package/dist/theme/BlogPostPage/Metadata.d.ts.map +1 -0
  31. package/dist/theme/BlogPostPage/Metadata.js +2 -0
  32. package/dist/theme/BlogPostPage/Metadata.js.map +1 -0
  33. package/dist/theme/BlogPostPage/StructuredData.d.ts +2 -0
  34. package/dist/theme/BlogPostPage/StructuredData.d.ts.map +1 -0
  35. package/dist/theme/BlogPostPage/StructuredData.js +2 -0
  36. package/dist/theme/BlogPostPage/StructuredData.js.map +1 -0
  37. package/dist/theme/BlogPostPage/index.d.ts +14 -0
  38. package/dist/theme/BlogPostPage/index.d.ts.map +1 -0
  39. package/dist/theme/BlogPostPage/index.js +27 -0
  40. package/dist/theme/BlogPostPage/index.js.map +1 -0
  41. package/dist/theme/BlogPostPage/index.module.css +53 -0
  42. package/dist/theme/DocSearch/index.d.ts +3 -0
  43. package/dist/theme/DocSearch/index.d.ts.map +1 -0
  44. package/dist/theme/DocSearch/index.js +30 -0
  45. package/dist/theme/DocSearch/index.js.map +1 -0
  46. package/dist/theme/DocSearch/styles.module.css +12 -0
  47. package/dist/theme/Layout/index.d.ts +0 -9
  48. package/dist/theme/Layout/index.d.ts.map +1 -1
  49. package/dist/theme/Layout/index.js +17 -19
  50. package/dist/theme/Layout/index.js.map +1 -1
  51. package/dist/theme/Navbar/Content/index.d.ts +6 -0
  52. package/dist/theme/Navbar/Content/index.d.ts.map +1 -0
  53. package/dist/theme/Navbar/Content/index.js +27 -0
  54. package/dist/theme/Navbar/Content/index.js.map +1 -0
  55. package/dist/theme/Navbar/Content/index.module.css +0 -0
  56. package/dist/theme/Navbar/Logo/index.d.ts +3 -0
  57. package/dist/theme/Navbar/Logo/index.d.ts.map +1 -0
  58. package/dist/theme/Navbar/Logo/index.js +44 -0
  59. package/dist/theme/Navbar/Logo/index.js.map +1 -0
  60. package/dist/theme/OsTabs/index.d.ts +13 -0
  61. package/dist/theme/OsTabs/index.d.ts.map +1 -0
  62. package/dist/theme/OsTabs/index.js +20 -0
  63. package/dist/theme/OsTabs/index.js.map +1 -0
  64. package/dist/theme/SearchBar/SearchBar.module.css +37 -0
  65. package/dist/theme/SearchBar/index.d.ts +2 -0
  66. package/dist/theme/SearchBar/index.d.ts.map +1 -0
  67. package/dist/theme/SearchBar/index.js +36 -0
  68. package/dist/theme/SearchBar/index.js.map +1 -0
  69. package/package.json +9 -3
@@ -0,0 +1,27 @@
1
+ import { createElement as _createElement } from "react";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useLocation } from '@docusaurus/router';
4
+ import NavbarItem from '@theme/NavbarItem';
5
+ import SearchBar from '@theme/SearchBar';
6
+ import NavbarLogo from "@theme/Navbar/Logo";
7
+ import ColorModeToggle from '@theme/ColorModeToggle';
8
+ import { useColorMode, useThemeConfig } from '@docusaurus/theme-common';
9
+ import NavbarMobileSidebarToggle from "@theme/Navbar/MobileSidebar/Toggle";
10
+ import { useNavbarMobileSidebar } from "@docusaurus/theme-common/internal";
11
+ import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
12
+ export default function NavbarContent(props) {
13
+ const { pathname } = useLocation();
14
+ const { siteConfig } = useDocusaurusContext();
15
+ const { colorMode, setColorMode } = useColorMode();
16
+ const { colorMode: cmCfg } = useThemeConfig();
17
+ const themeConfig = siteConfig.themeConfig;
18
+ const nfConfig = themeConfig.netfoundry ?? {};
19
+ // Find product override for navbar items
20
+ const product = nfConfig.products?.find(p => pathname.startsWith(p.pathPrefix));
21
+ const items = product?.navbarItems || [];
22
+ const left = items.filter((i) => i.position !== 'right');
23
+ const right = items.filter((i) => i.position === 'right');
24
+ const mobileSidebar = useNavbarMobileSidebar();
25
+ return (_jsxs("div", { className: "navbar__inner", children: [_jsxs("div", { className: "navbar__items", children: [!mobileSidebar.disabled && _jsx(NavbarMobileSidebarToggle, {}), _jsx(NavbarLogo, {}), left.map((item, i) => (_createElement(NavbarItem, { ...item, key: `l-${i}` })))] }), _jsxs("div", { className: "navbar__items navbar__items--right", children: [!cmCfg?.disableSwitch && (_jsx(ColorModeToggle, { value: colorMode, onChange: setColorMode })), right.map((item, i) => (_createElement(NavbarItem, { ...item, key: `r-${i}` }))), _jsx(SearchBar, {})] })] }));
26
+ }
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../theme/Navbar/Content/index.tsx"],"names":[],"mappings":";;AACA,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAC/C,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAEzC,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,eAAe,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,0BAA0B,CAAC;AAGtE,OAAO,yBAAyB,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAC;AACzE,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AAKpE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAY;IAC9C,MAAM,EAAC,QAAQ,EAAC,GAAG,WAAW,EAAE,CAAC;IACjC,MAAM,EAAC,UAAU,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAC5C,MAAM,EAAC,SAAS,EAAE,YAAY,EAAC,GAAG,YAAY,EAAE,CAAC;IACjD,MAAM,EAAC,SAAS,EAAE,KAAK,EAAC,GAAG,cAAc,EAAE,CAAC;IAE5C,MAAM,WAAW,GAAG,UAAU,CAAC,WAAwC,CAAC;IACxE,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,IAAI,EAAE,CAAC;IAE9C,yCAAyC;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC;IAEzC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAE/D,MAAM,aAAa,GAAG,sBAAsB,EAAE,CAAC;IAE/C,OAAO,CACH,eAAK,SAAS,EAAC,eAAe,aAC1B,eAAK,SAAS,EAAC,eAAe,aACzB,CAAC,aAAa,CAAC,QAAQ,IAAI,KAAC,yBAAyB,KAAG,EACzD,KAAC,UAAU,KAAG,EACb,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAChC,eAAC,UAAU,OAAK,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAI,CAC1C,CAAC,IACA,EACN,eAAK,SAAS,EAAC,oCAAoC,aAC9C,CAAC,KAAK,EAAE,aAAa,IAAI,CACtB,KAAC,eAAe,IAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAI,CAChE,EACA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CACjC,eAAC,UAAU,OAAK,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAI,CAC1C,CAAC,EACF,KAAC,SAAS,KAAG,IACX,IACJ,CACT,CAAC;AACN,CAAC"}
File without changes
@@ -0,0 +1,3 @@
1
+ import { JSX } from 'react';
2
+ export default function NavbarLogo(): JSX.Element;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../theme/Navbar/Logo/index.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AA2BjC,MAAM,CAAC,OAAO,UAAU,UAAU,IAAI,GAAG,CAAC,OAAO,CAkChD"}
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import Link from '@docusaurus/Link';
3
+ import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
4
+ import { useLocation } from '@docusaurus/router';
5
+ import ThemedImage from "@theme/ThemedImage";
6
+ import useBaseUrl from "@docusaurus/useBaseUrl";
7
+ const mapTitle = (p, defTitle) => {
8
+ if (p.startsWith('/docs/frontdoor'))
9
+ return { includeNFLogo: true, to: '/frontdoor', alt: 'Frontdoor', logoLight: `img/frontdoor-sm-logo.svg`, logoDark: `img/frontdoor-sm-logo.svg` };
10
+ if (p.startsWith('/docs/onprem'))
11
+ return { includeNFLogo: true, to: '/onprem', alt: 'On-Prem', logoLight: `img/onprem-sm-logo.svg`, logoDark: `img/onprem-sm-logo.svg` };
12
+ if (p.startsWith('/docs/openziti'))
13
+ return { includeNFLogo: true, to: '/openziti', alt: 'OpenZiti', logoLight: `img/openziti-sm-logo.svg`, logoDark: `img/openziti-sm-logo.svg` };
14
+ if (p.startsWith('/docs/zlan'))
15
+ return { includeNFLogo: true, to: '/zlan', alt: 'zlan', logoLight: `img/zlan-logo.svg`, logoDark: `img/zlan-logo.svg` };
16
+ if (p.startsWith('/docs/zrok'))
17
+ return { text: '', includeNFLogo: true, to: '/zrok', alt: 'zrok', logoLight: `img/zrok-1.0.0-rocket-purple.svg`, logoDark: `img/zrok-1.0.0-rocket-green.svg` };
18
+ return {
19
+ includeNFLogo: false,
20
+ to: '/',
21
+ alt: 'NetFoundry',
22
+ logoLight: `img/netfoundry-name-and-logo.svg`,
23
+ logoDark: `img/netfoundry-name-and-logo-dark.svg`
24
+ };
25
+ };
26
+ function navbarpoke(cfg) {
27
+ // console.log("A:" + JSON.stringify(cfg?.themeConfig?.navbar));
28
+ }
29
+ export default function NavbarLogo() {
30
+ const { siteConfig } = useDocusaurusContext();
31
+ const { pathname } = useLocation();
32
+ const title = mapTitle(pathname, siteConfig.title);
33
+ navbarpoke(siteConfig);
34
+ const LinkComp = Link;
35
+ const ThemedImageComp = ThemedImage;
36
+ return (_jsxs(_Fragment, { children: [_jsx(LinkComp, { className: "navbar__brand", to: "https://netfoundry.io", children: _jsx(ThemedImageComp, { className: "navbar__logo_nf", alt: title.alt, sources: {
37
+ light: useBaseUrl(`img/netfoundry-name-and-logo.svg`),
38
+ dark: useBaseUrl(`img/netfoundry-name-and-logo-dark.svg`),
39
+ } }) }), _jsxs(LinkComp, { className: "navbar__brand", to: title.to, children: [_jsx(ThemedImageComp, { className: "navbar__logo", alt: title.alt, sources: {
40
+ light: useBaseUrl(title.logoLight),
41
+ dark: useBaseUrl(title.logoDark),
42
+ } }), _jsx("span", { className: "navbar__title", children: title.text })] })] }));
43
+ }
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../theme/Navbar/Logo/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type ReactNode } from 'react';
2
+ interface OsTabsProps {
3
+ children: ReactNode;
4
+ groupId?: string;
5
+ values?: Array<{
6
+ value: string;
7
+ label: string;
8
+ }>;
9
+ [key: string]: any;
10
+ }
11
+ export default function OsTabs(props: OsTabsProps): ReactNode;
12
+ export {};
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../theme/OsTabs/index.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAInE,UAAU,WAAW;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAwB5D"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState, useEffect } from 'react';
3
+ import OriginalTabs from '@theme/Tabs';
4
+ import { osName } from 'react-device-detect';
5
+ export default function OsTabs(props) {
6
+ const [defaultValue, setDefaultValue] = useState(null);
7
+ useEffect(() => {
8
+ // Based on the OS or any other client-side condition, set the default value
9
+ const tabs = ['iOS', 'Android', 'Mac OS', 'Windows', 'Linux'];
10
+ if (tabs.includes(osName)) {
11
+ setDefaultValue(osName);
12
+ }
13
+ else {
14
+ setDefaultValue('Windows');
15
+ }
16
+ }, []); // The empty dependency array ensures this runs once after component mount
17
+ const OriginalTabsComp = OriginalTabs;
18
+ return (_jsx(_Fragment, { children: _jsx(OriginalTabsComp, { ...props, defaultValue: defaultValue, children: props.children }) }));
19
+ }
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../theme/OsTabs/index.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AACnE,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAS7C,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAkB;IAC/C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAEtE,SAAS,CAAC,GAAG,EAAE;QACb,4EAA4E;QAC5E,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;QAC7D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,0EAA0E;IAElF,MAAM,gBAAgB,GAAG,YAAmB,CAAC;IAE7C,OAAO,CACL,4BACE,KAAC,gBAAgB,OAAK,KAAK,EAAE,YAAY,EAAE,YAAY,YACpD,KAAK,CAAC,QAAQ,GACE,GAGlB,CACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,37 @@
1
+ .trigger{all:unset;cursor:pointer;padding:.4rem .6rem;border:1px solid var(--ifm-color-emphasis-300);border-radius:8px}
2
+ .backdrop{
3
+ position:fixed;
4
+ inset:0;
5
+ background:rgba(0,0,0,.5);
6
+ display:flex;
7
+ align-items:flex-start;
8
+ justify-content:center;
9
+ padding-top:10vh;
10
+ z-index:9999;
11
+ width:100%;
12
+ }
13
+ .modal{
14
+ /*background:var(--ifm-background-color);*/
15
+ /*color:var(--ifm-font-color-base);*/
16
+ /*min-height:85vh;*/
17
+ /*max-height:85vh;*/
18
+ /*overflow:auto;*/
19
+ /*border-radius:12px;*/
20
+ /*padding:1rem;*/
21
+ }
22
+ .close{position:relative;cursor:pointer;font-size:1.5rem}
23
+ /* src/theme/SearchBar/SearchBar.module.css */
24
+ .pills{position:fixed;top:12px;right:18px;z-index:100000;display:flex;gap:.4rem;flex-wrap:wrap}
25
+ .pills button{all:unset;cursor:pointer;padding:.25rem .6rem;border:1px solid var(--ifm-color-emphasis-300);border-radius:999px;font-size:.8rem;background:var(--ifm-background-color)}
26
+ .pills button.active{background:var(--ifm-color-primary);color:#fff;border-color:transparent}
27
+
28
+ .modalSearchContainer {
29
+ max-height: 60vh;
30
+ }
31
+ .searchModal {
32
+ background: var(--ifm-background-color);
33
+ padding: 10px;
34
+ border-radius: 10px;
35
+ width: 80vw;
36
+ max-width: 800px;
37
+ }
@@ -0,0 +1,2 @@
1
+ export default function SearchBar(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../theme/SearchBar/index.tsx"],"names":[],"mappings":"AAUA,MAAM,CAAC,OAAO,UAAU,SAAS,4CAmDhC"}
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // src/theme/SearchBar/index.tsx
3
+ import { useEffect, useState } from "react";
4
+ import ReactDOM from "react-dom";
5
+ import { DocSearchButton } from "@docsearch/react";
6
+ import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
7
+ import ProductSearch from "../../src/components/ProductSearch";
8
+ import styles from "./SearchBar.module.css";
9
+ import clsx from "clsx";
10
+ export default function SearchBar() {
11
+ const [open, setOpen] = useState(false);
12
+ const [mounted, setMounted] = useState(false);
13
+ const [mouseDownTarget, setMouseDownTarget] = useState(null);
14
+ useEffect(() => setMounted(true), []);
15
+ useEffect(() => {
16
+ const onKey = (e) => {
17
+ if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "k") {
18
+ e.preventDefault();
19
+ setOpen(true);
20
+ }
21
+ if (e.key === "Escape")
22
+ setOpen(false);
23
+ };
24
+ window.addEventListener("keydown", onKey);
25
+ return () => window.removeEventListener("keydown", onKey);
26
+ }, []);
27
+ useEffect(() => { document.body.style.overflow = open ? "hidden" : ""; }, [open]);
28
+ const { customFields } = useDocusaurusContext().siteConfig;
29
+ const DocSearchButtonComp = DocSearchButton;
30
+ return (_jsxs(_Fragment, { children: [_jsx(DocSearchButtonComp, { onClick: () => setOpen(true) }), mounted && open && ReactDOM.createPortal(_jsx("div", { className: styles.backdrop, onMouseDown: (e) => setMouseDownTarget(e.target), onMouseUp: (e) => {
31
+ if (e.target === mouseDownTarget && e.target === e.currentTarget) {
32
+ setOpen(false);
33
+ }
34
+ }, children: _jsx("div", { className: styles.searchModal, onClick: (e) => e.stopPropagation(), children: _jsx("div", { className: clsx(styles.modal), onClick: (e) => e.stopPropagation(), children: _jsx(ProductSearch, { appId: customFields?.ALGOLIA_APPID, apiKey: customFields?.ALGOLIA_APIKEY, indexName: customFields?.ALGOLIA_INDEXNAME, extraContainerClasses: [styles.modalSearchContainer] }) }) }) }), document.body)] }));
35
+ }
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../theme/SearchBar/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netfoundry/docusaurus-theme",
3
- "version": "0.1.9",
3
+ "version": "0.2.0",
4
4
  "description": "NetFoundry Docusaurus theme with shared layout, footer, and styling",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -11,7 +11,7 @@
11
11
  "scripts": {
12
12
  "clean": "rm -rf dist",
13
13
  "build": "yarn clean && tsc && yarn build:css",
14
- "build:css": "cp -r css dist/ && find src -name '*.css' -exec sh -c 'mkdir -p dist/$(dirname {}) && cp {} dist/{}' \\;",
14
+ "build:css": "cp -r css dist/ && find src theme -name '*.css' -exec sh -c 'mkdir -p dist/$(dirname {}) && cp {} dist/{}' \\;",
15
15
  "test": "jest",
16
16
  "prepublishOnly": "yarn build && yarn test"
17
17
  },
@@ -45,21 +45,27 @@
45
45
  "react-dom": "^18 || ^19"
46
46
  },
47
47
  "dependencies": {
48
+ "algoliasearch": "^5.47.0",
48
49
  "clsx": "^2.0.0",
50
+ "instantsearch.js": "^4.86.1",
49
51
  "react-device-detect": "^2.2.3",
50
- "react-github-btn": "^1.4.0"
52
+ "react-github-btn": "^1.4.0",
53
+ "react-instantsearch": "^7.22.1",
54
+ "react-lite-youtube-embed": "^3.3.3"
51
55
  },
52
56
  "devDependencies": {
53
57
  "@docusaurus/core": "^3",
54
58
  "@docusaurus/theme-classic": "^3",
55
59
  "@docusaurus/theme-common": "^3",
56
60
  "@docusaurus/types": "^3",
61
+ "@types/jest": "^30.0.0",
57
62
  "@types/js-yaml": "^4.0.9",
58
63
  "@types/react": "^18",
59
64
  "@types/react-dom": "^18",
60
65
  "jest": "^30.0.4",
61
66
  "react": "^18",
62
67
  "react-dom": "^18",
68
+ "ts-jest": "^29.4.6",
63
69
  "typescript": "^5"
64
70
  },
65
71
  "repository": {