@netfoundry/docusaurus-theme 0.1.9 → 0.2.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 (78) 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/Common/Logos.d.ts +6 -0
  6. package/dist/src/components/Common/Logos.d.ts.map +1 -0
  7. package/dist/src/components/Common/Logos.js +7 -0
  8. package/dist/src/components/Common/Logos.js.map +1 -0
  9. package/dist/src/components/Common/index.d.ts +1 -0
  10. package/dist/src/components/Common/index.d.ts.map +1 -1
  11. package/dist/src/components/Common/index.js +1 -0
  12. package/dist/src/components/Common/index.js.map +1 -1
  13. package/dist/src/components/NetFoundryFooter/defaults.d.ts +19 -0
  14. package/dist/src/components/NetFoundryFooter/defaults.d.ts.map +1 -0
  15. package/dist/src/components/NetFoundryFooter/defaults.js +24 -0
  16. package/dist/src/components/NetFoundryFooter/defaults.js.map +1 -0
  17. package/dist/src/components/NetFoundryLayout/NetFoundryLayout.d.ts.map +1 -1
  18. package/dist/src/components/NetFoundryLayout/NetFoundryLayout.js +3 -1
  19. package/dist/src/components/NetFoundryLayout/NetFoundryLayout.js.map +1 -1
  20. package/dist/src/components/ProductSearch/ProductSearch.d.ts +10 -0
  21. package/dist/src/components/ProductSearch/ProductSearch.d.ts.map +1 -0
  22. package/dist/src/components/ProductSearch/ProductSearch.js +140 -0
  23. package/dist/src/components/ProductSearch/ProductSearch.js.map +1 -0
  24. package/dist/src/components/ProductSearch/ProductSearch.module.css +189 -0
  25. package/dist/src/components/ProductSearch/index.d.ts +4 -0
  26. package/dist/src/components/ProductSearch/index.d.ts.map +1 -0
  27. package/dist/src/components/ProductSearch/index.js +4 -0
  28. package/dist/src/components/ProductSearch/index.js.map +1 -0
  29. package/dist/src/components/index.d.ts +1 -0
  30. package/dist/src/components/index.d.ts.map +1 -1
  31. package/dist/src/components/index.js +1 -0
  32. package/dist/src/components/index.js.map +1 -1
  33. package/dist/src/index.d.ts.map +1 -1
  34. package/dist/src/index.js +6 -1
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/options.d.ts +27 -30
  37. package/dist/src/options.d.ts.map +1 -1
  38. package/dist/theme/BlogPostPage/Metadata.d.ts +2 -0
  39. package/dist/theme/BlogPostPage/Metadata.d.ts.map +1 -0
  40. package/dist/theme/BlogPostPage/Metadata.js +2 -0
  41. package/dist/theme/BlogPostPage/Metadata.js.map +1 -0
  42. package/dist/theme/BlogPostPage/StructuredData.d.ts +2 -0
  43. package/dist/theme/BlogPostPage/StructuredData.d.ts.map +1 -0
  44. package/dist/theme/BlogPostPage/StructuredData.js +2 -0
  45. package/dist/theme/BlogPostPage/StructuredData.js.map +1 -0
  46. package/dist/theme/BlogPostPage/index.d.ts +14 -0
  47. package/dist/theme/BlogPostPage/index.d.ts.map +1 -0
  48. package/dist/theme/BlogPostPage/index.js +27 -0
  49. package/dist/theme/BlogPostPage/index.js.map +1 -0
  50. package/dist/theme/BlogPostPage/index.module.css +53 -0
  51. package/dist/theme/DocSearch/index.d.ts +3 -0
  52. package/dist/theme/DocSearch/index.d.ts.map +1 -0
  53. package/dist/theme/DocSearch/index.js +30 -0
  54. package/dist/theme/DocSearch/index.js.map +1 -0
  55. package/dist/theme/DocSearch/styles.module.css +12 -0
  56. package/dist/theme/Layout/index.d.ts +0 -9
  57. package/dist/theme/Layout/index.d.ts.map +1 -1
  58. package/dist/theme/Layout/index.js +17 -19
  59. package/dist/theme/Layout/index.js.map +1 -1
  60. package/dist/theme/Navbar/Content/index.d.ts +6 -0
  61. package/dist/theme/Navbar/Content/index.d.ts.map +1 -0
  62. package/dist/theme/Navbar/Content/index.js +27 -0
  63. package/dist/theme/Navbar/Content/index.js.map +1 -0
  64. package/dist/theme/Navbar/Content/index.module.css +0 -0
  65. package/dist/theme/Navbar/Logo/index.d.ts +3 -0
  66. package/dist/theme/Navbar/Logo/index.d.ts.map +1 -0
  67. package/dist/theme/Navbar/Logo/index.js +40 -0
  68. package/dist/theme/Navbar/Logo/index.js.map +1 -0
  69. package/dist/theme/OsTabs/index.d.ts +13 -0
  70. package/dist/theme/OsTabs/index.d.ts.map +1 -0
  71. package/dist/theme/OsTabs/index.js +20 -0
  72. package/dist/theme/OsTabs/index.js.map +1 -0
  73. package/dist/theme/SearchBar/SearchBar.module.css +37 -0
  74. package/dist/theme/SearchBar/index.d.ts +2 -0
  75. package/dist/theme/SearchBar/index.d.ts.map +1 -0
  76. package/dist/theme/SearchBar/index.js +36 -0
  77. package/dist/theme/SearchBar/index.js.map +1 -0
  78. package/package.json +9 -3
@@ -0,0 +1,6 @@
1
+ import React, { JSX } from 'react';
2
+ import OriginalNavbarContent from '@theme-original/Navbar/Content';
3
+ type Props = React.ComponentProps<typeof OriginalNavbarContent>;
4
+ export default function NavbarContent(props: Props): JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../theme/Navbar/Content/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAIjC,OAAO,qBAAqB,MAAM,gCAAgC,CAAC;AAWnE,KAAK,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEhE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAsC/D"}
@@ -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, fallback to standard navbar items
20
+ const product = nfConfig.products?.find(p => pathname.startsWith(p.pathPrefix));
21
+ const items = product?.navbarItems || themeConfig.navbar?.items || [];
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,4EAA4E;IAC5E,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,IAAK,WAAW,CAAC,MAAc,EAAE,KAAK,IAAI,EAAE,CAAC;IAE/E,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;AAYjC,MAAM,CAAC,OAAO,UAAU,UAAU,IAAI,GAAG,CAAC,OAAO,CA4DhD"}
@@ -0,0 +1,40 @@
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
+ import { useColorMode } from '@docusaurus/theme-common';
8
+ // Import logos as code
9
+ import { NetFoundryLogo, FrontdoorLogo } from '../../../src/components/Common/Logos';
10
+ export default function NavbarLogo() {
11
+ const { siteConfig } = useDocusaurusContext();
12
+ const { pathname } = useLocation();
13
+ const { colorMode } = useColorMode();
14
+ const themeConfig = siteConfig.themeConfig;
15
+ const nfConfig = themeConfig.netfoundry ?? {};
16
+ // Find product override for logo
17
+ const product = nfConfig.products?.find(p => pathname.startsWith(p.pathPrefix));
18
+ const LinkComp = Link;
19
+ const ThemedImageComp = ThemedImage;
20
+ // Determine which product logo to show
21
+ const renderProductLogo = () => {
22
+ if (!product?.logo)
23
+ return null;
24
+ const logo = product.logo;
25
+ // Handle special known product logos as components
26
+ if (pathname.startsWith('/docs/frontdoor')) {
27
+ return (_jsxs(LinkComp, { className: "navbar__brand", to: logo.to || '/docs/', children: [_jsx(FrontdoorLogo, { className: "navbar__logo" }), _jsx("span", { className: "navbar__title", children: logo.text || 'Frontdoor' })] }));
28
+ }
29
+ // Fallback to standard image-based logo if provided in config
30
+ if (logo.logoLight) {
31
+ return (_jsxs(LinkComp, { className: "navbar__brand", to: logo.to, children: [_jsx(ThemedImageComp, { className: "navbar__logo", alt: logo.alt || 'Logo', sources: {
32
+ light: useBaseUrl(logo.logoLight),
33
+ dark: useBaseUrl(logo.logoDark || logo.logoLight),
34
+ } }), _jsx("span", { className: "navbar__title", children: logo.text })] }));
35
+ }
36
+ return null;
37
+ };
38
+ return (_jsxs(_Fragment, { children: [_jsx(LinkComp, { className: "navbar__brand", to: "https://netfoundry.io", children: _jsx(NetFoundryLogo, { variant: colorMode === 'dark' ? 'dark' : 'light', className: "navbar__logo_nf" }) }), renderProductLogo()] }));
39
+ }
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../theme/Navbar/Logo/index.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAC/C,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErF,MAAM,CAAC,OAAO,UAAU,UAAU;IAC9B,MAAM,EAAC,UAAU,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAC5C,MAAM,EAAC,QAAQ,EAAC,GAAG,WAAW,EAAE,CAAC;IACjC,MAAM,EAAC,SAAS,EAAC,GAAG,YAAY,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAwC,CAAC;IACxE,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,IAAI,EAAE,CAAC;IAE9C,iCAAiC;IACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAEhF,MAAM,QAAQ,GAAG,IAAW,CAAC;IAC7B,MAAM,eAAe,GAAG,WAAkB,CAAC;IAE3C,uCAAuC;IACvC,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC3B,IAAI,CAAC,OAAO,EAAE,IAAI;YAAE,OAAO,IAAI,CAAC;QAEhC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,mDAAmD;QACnD,IAAI,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACzC,OAAO,CACH,MAAC,QAAQ,IAAC,SAAS,EAAC,eAAe,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,QAAQ,aACvD,KAAC,aAAa,IAAC,SAAS,EAAC,cAAc,GAAG,EAC1C,eAAM,SAAS,EAAC,eAAe,YAAE,IAAI,CAAC,IAAI,IAAI,WAAW,GAAQ,IAC1D,CACd,CAAC;QACN,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,CACH,MAAC,QAAQ,IAAC,SAAS,EAAC,eAAe,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,aAC3C,KAAC,eAAe,IACZ,SAAS,EAAC,cAAc,EACxB,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,MAAM,EACvB,OAAO,EAAE;4BACL,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;4BACjC,IAAI,EAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;yBACrD,GACH,EACF,eAAM,SAAS,EAAC,eAAe,YAAE,IAAI,CAAC,IAAI,GAAQ,IAC3C,CACd,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,CACH,8BACA,KAAC,QAAQ,IAAC,SAAS,EAAC,eAAe,EAAC,EAAE,EAAC,uBAAuB,YAC1D,KAAC,cAAc,IACX,OAAO,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAChD,SAAS,EAAC,iBAAiB,GAC7B,GACK,EACV,iBAAiB,EAAE,IACjB,CACN,CAAC;AACN,CAAC"}
@@ -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.1",
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": {