zudoku 0.53.2 → 0.53.4

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 (115) hide show
  1. package/dist/app/main.js +3 -9
  2. package/dist/app/main.js.map +1 -1
  3. package/dist/lib/components/Banner.js +1 -1
  4. package/dist/lib/components/Banner.js.map +1 -1
  5. package/dist/lib/components/CategoryHeading.js +1 -1
  6. package/dist/lib/components/CategoryHeading.js.map +1 -1
  7. package/dist/lib/components/Header.js +1 -1
  8. package/dist/lib/components/Header.js.map +1 -1
  9. package/dist/lib/components/Pagination.js +1 -1
  10. package/dist/lib/components/Pagination.js.map +1 -1
  11. package/dist/lib/components/StatusPage.js +4 -0
  12. package/dist/lib/components/StatusPage.js.map +1 -1
  13. package/dist/lib/components/navigation/NavigationWrapper.js +1 -1
  14. package/dist/lib/components/navigation/NavigationWrapper.js.map +1 -1
  15. package/dist/lib/plugins/markdown/MdxPage.js +1 -1
  16. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  17. package/dist/lib/plugins/openapi/OperationList.js +2 -1
  18. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  19. package/dist/lib/plugins/search-inkeep/index.d.ts +5 -22
  20. package/dist/lib/plugins/search-inkeep/index.js +35 -29
  21. package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
  22. package/dist/lib/plugins/search-inkeep/inkeep.d.ts +5 -21
  23. package/dist/lib/plugins/search-inkeep/inkeep.js +10 -19
  24. package/dist/lib/plugins/search-inkeep/inkeep.js.map +1 -1
  25. package/dist/lib/plugins/search-pagefind/PagefindSearch.js +1 -1
  26. package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -1
  27. package/dist/lib/plugins/search-pagefind/ResultList.d.ts +1 -1
  28. package/dist/lib/plugins/search-pagefind/ResultList.js +12 -5
  29. package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -1
  30. package/dist/lib/ui/Alert.d.ts +1 -1
  31. package/dist/vite/build.js +7 -1
  32. package/dist/vite/build.js.map +1 -1
  33. package/dist/vite/plugin-mdx.js +2 -3
  34. package/dist/vite/plugin-mdx.js.map +1 -1
  35. package/lib/{Alert-CT_ViLrJ.js → Alert-SijAp9LN.js} +3 -3
  36. package/lib/Alert-SijAp9LN.js.map +1 -0
  37. package/lib/{MdxPage-8UuEK446.js → MdxPage-BFKqQsmK.js} +19 -19
  38. package/lib/{MdxPage-8UuEK446.js.map → MdxPage-BFKqQsmK.js.map} +1 -1
  39. package/lib/{OasProvider-BsWpguVO.js → OasProvider-Bdyvd6Ic.js} +2 -2
  40. package/lib/{OasProvider-BsWpguVO.js.map → OasProvider-Bdyvd6Ic.js.map} +1 -1
  41. package/lib/{OperationList-PnZbf3b2.js → OperationList-YZ7k-Rkt.js} +172 -172
  42. package/lib/{OperationList-PnZbf3b2.js.map → OperationList-YZ7k-Rkt.js.map} +1 -1
  43. package/lib/{Pagination-DY7gCrm4.js → Pagination-EViy7EHt.js} +9 -8
  44. package/lib/Pagination-EViy7EHt.js.map +1 -0
  45. package/lib/{RouteGuard-CbKd7_9h.js → RouteGuard-CX6A77iy.js} +2 -2
  46. package/lib/{RouteGuard-CbKd7_9h.js.map → RouteGuard-CX6A77iy.js.map} +1 -1
  47. package/lib/{SchemaList-D6k4DKWH.js → SchemaList--_f8Azv0.js} +8 -8
  48. package/lib/{SchemaList-D6k4DKWH.js.map → SchemaList--_f8Azv0.js.map} +1 -1
  49. package/lib/{SchemaView-BhgJ9WB8.js → SchemaView-7XWvSrbX.js} +4 -4
  50. package/lib/{SchemaView-BhgJ9WB8.js.map → SchemaView-7XWvSrbX.js.map} +1 -1
  51. package/lib/{SignUp-CpUD6DUM.js → SignUp-CXCezG-m.js} +3 -3
  52. package/lib/{SignUp-CpUD6DUM.js.map → SignUp-CXCezG-m.js.map} +1 -1
  53. package/lib/{Slot-DwZlQ-vX.js → Slot-tFjhrd8V.js} +14 -6
  54. package/lib/Slot-tFjhrd8V.js.map +1 -0
  55. package/lib/{SyntaxHighlight-CrjhGEwT.js → SyntaxHighlight-Bp_UsIXG.js} +754 -754
  56. package/lib/SyntaxHighlight-Bp_UsIXG.js.map +1 -0
  57. package/lib/{Toc-WCmwFkX-.js → Toc-Ck0YQtmd.js} +2 -2
  58. package/lib/{Toc-WCmwFkX-.js.map → Toc-Ck0YQtmd.js.map} +1 -1
  59. package/lib/{circular-BUMjK3JF.js → circular-BtKlhs07.js} +2 -2
  60. package/lib/{circular-BUMjK3JF.js.map → circular-BtKlhs07.js.map} +1 -1
  61. package/lib/{createServer-BPz8ZCrd.js → createServer-Di2U1Dg0.js} +4 -4
  62. package/lib/{createServer-BPz8ZCrd.js.map → createServer-Di2U1Dg0.js.map} +1 -1
  63. package/lib/{errors-DY-qOx9n.js → errors-Dv_yAK6M.js} +4 -4
  64. package/lib/{errors-DY-qOx9n.js.map → errors-Dv_yAK6M.js.map} +1 -1
  65. package/lib/{hook-Bd0yS8M0.js → hook-CZjW2buS.js} +420 -413
  66. package/lib/hook-CZjW2buS.js.map +1 -0
  67. package/lib/{index-dVBKCNMa.js → index-BTqwnlI5.js} +13 -13
  68. package/lib/{index-dVBKCNMa.js.map → index-BTqwnlI5.js.map} +1 -1
  69. package/lib/index-Bm35Tkgf.js +107 -0
  70. package/lib/index-Bm35Tkgf.js.map +1 -0
  71. package/lib/{index-CcV90rin.js → index-CeQqiMIG.js} +2 -2
  72. package/lib/{index-CcV90rin.js.map → index-CeQqiMIG.js.map} +1 -1
  73. package/lib/{index-C_xVKbf9.js → index-DKCEJ4Kd.js} +1056 -1040
  74. package/lib/index-DKCEJ4Kd.js.map +1 -0
  75. package/lib/ui/Alert.js.map +1 -1
  76. package/lib/ui/SyntaxHighlight.js +2 -2
  77. package/lib/zudoku.auth-auth0.js +1 -1
  78. package/lib/zudoku.auth-azureb2c.js +1553 -1556
  79. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  80. package/lib/zudoku.auth-clerk.js +2 -2
  81. package/lib/zudoku.auth-openid.js +2 -2
  82. package/lib/zudoku.components.js +5 -5
  83. package/lib/zudoku.hooks.js +3 -3
  84. package/lib/zudoku.plugin-api-catalog.js +5 -5
  85. package/lib/zudoku.plugin-api-keys.js +3 -3
  86. package/lib/zudoku.plugin-custom-pages.js +1 -1
  87. package/lib/zudoku.plugin-markdown.js +1 -1
  88. package/lib/zudoku.plugin-openapi.js +2 -2
  89. package/lib/zudoku.plugin-search-inkeep.js +54 -57
  90. package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
  91. package/lib/zudoku.plugin-search-pagefind.js +107 -103
  92. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  93. package/package.json +13 -12
  94. package/src/app/main.tsx +6 -14
  95. package/src/lib/components/Banner.tsx +0 -1
  96. package/src/lib/components/CategoryHeading.tsx +4 -1
  97. package/src/lib/components/Header.tsx +4 -1
  98. package/src/lib/components/Pagination.tsx +1 -0
  99. package/src/lib/components/StatusPage.tsx +5 -0
  100. package/src/lib/components/navigation/NavigationWrapper.tsx +4 -1
  101. package/src/lib/plugins/markdown/MdxPage.tsx +1 -1
  102. package/src/lib/plugins/openapi/OperationList.tsx +3 -1
  103. package/src/lib/plugins/search-inkeep/index.tsx +54 -58
  104. package/src/lib/plugins/search-inkeep/inkeep.ts +19 -21
  105. package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +1 -0
  106. package/src/lib/plugins/search-pagefind/ResultList.tsx +13 -4
  107. package/src/lib/ui/Alert.tsx +1 -1
  108. package/lib/Alert-CT_ViLrJ.js.map +0 -1
  109. package/lib/Pagination-DY7gCrm4.js.map +0 -1
  110. package/lib/Slot-DwZlQ-vX.js.map +0 -1
  111. package/lib/SyntaxHighlight-CrjhGEwT.js.map +0 -1
  112. package/lib/hook-Bd0yS8M0.js.map +0 -1
  113. package/lib/index-C_xVKbf9.js.map +0 -1
  114. package/lib/index-ClhS5TxS.js +0 -107
  115. package/lib/index-ClhS5TxS.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { j as l } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import { LogOutIcon as g } from "lucide-react";
3
- import { S as f, a as w, b as p } from "./SignUp-CpUD6DUM.js";
4
- import { u as n } from "./hook-Bd0yS8M0.js";
3
+ import { S as f, a as w, b as p } from "./SignUp-CXCezG-m.js";
4
+ import { u as n } from "./hook-CZjW2buS.js";
5
5
  const y = ({
6
6
  clerkPubKey: d,
7
7
  redirectToAfterSignOut: c = "/",
@@ -1,8 +1,8 @@
1
1
  import { j as ne } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import { g as Le } from "./invariant-DAFpPywt.js";
3
3
  import { C as Ue } from "./ClientOnly-E7hGysn1.js";
4
- import { j as xe, u as S } from "./hook-Bd0yS8M0.js";
5
- import { C as Ce, O as re, A as R, a as Ie } from "./errors-DY-qOx9n.js";
4
+ import { j as xe, u as S } from "./hook-CZjW2buS.js";
5
+ import { C as Ce, O as re, A as R, a as Ie } from "./errors-Dv_yAK6M.js";
6
6
  var O = { exports: {} }, je = O.exports, oe;
7
7
  function De() {
8
8
  return oe || (oe = 1, function(t) {
@@ -1,9 +1,9 @@
1
- import "./RouteGuard-CbKd7_9h.js";
2
- import "./index-ClhS5TxS.js";
1
+ import "./RouteGuard-CX6A77iy.js";
2
+ import "./index-Bm35Tkgf.js";
3
3
  import "./chunk-DQRVZFIR-DHK7_Ilc.js";
4
- import "./hook-Bd0yS8M0.js";
5
- import "./Slot-DwZlQ-vX.js";
6
- import { e as C, f as d, j as h, B as k, m as l, C as S, i as B, H as c, c as y, L as E, M as g, g as H, R as L, d as M, S as R, h as T, T as Z, Z as f, b as A, l as b, k as j, n as v, u as w } from "./index-C_xVKbf9.js";
4
+ import "./hook-CZjW2buS.js";
5
+ import "./Slot-tFjhrd8V.js";
6
+ import { e as C, f as d, j as h, B as k, m as l, C as S, i as B, H as c, c as y, L as E, M as g, g as H, R as L, d as M, S as R, h as T, T as Z, Z as f, b as A, l as b, k as j, n as v, u as w } from "./index-DKCEJ4Kd.js";
7
7
  import "./ui/Button.js";
8
8
  import "./ui/Callout.js";
9
9
  import "./ClientOnly-E7hGysn1.js";
@@ -1,6 +1,6 @@
1
- import { z as p, u as a } from "./index-ClhS5TxS.js";
2
- import { d as n, e as c, f } from "./hook-Bd0yS8M0.js";
3
- import { C as k } from "./hook-Bd0yS8M0.js";
1
+ import { z as p, u as a } from "./index-Bm35Tkgf.js";
2
+ import { d as n, e as c, f } from "./hook-CZjW2buS.js";
3
+ import { C as k } from "./hook-CZjW2buS.js";
4
4
  import { u as d } from "./useExposedProps-BIYjecPD.js";
5
5
  import { useState as E, useEffect as i } from "react";
6
6
  function C(e, s) {
@@ -1,10 +1,10 @@
1
1
  import { j as t } from "./jsx-runtime-C5mzlN2N.js";
2
- import { s as f } from "./index-CcV90rin.js";
2
+ import { s as f } from "./index-CeQqiMIG.js";
3
3
  import { d as b, m as j } from "./chunk-DQRVZFIR-DHK7_Ilc.js";
4
- import { u as x, c as v, j as d } from "./hook-Bd0yS8M0.js";
5
- import { H as y } from "./RouteGuard-CbKd7_9h.js";
6
- import { L as N } from "./index-C_xVKbf9.js";
7
- import { H as k, M as S } from "./Slot-DwZlQ-vX.js";
4
+ import { u as x, c as v, j as d } from "./hook-CZjW2buS.js";
5
+ import { H as y } from "./RouteGuard-CX6A77iy.js";
6
+ import { L as N } from "./index-DKCEJ4Kd.js";
7
+ import { H as k, M as S } from "./Slot-tFjhrd8V.js";
8
8
  const w = ({
9
9
  items: n,
10
10
  filterCatalogItems: o = (r) => r,
@@ -1,11 +1,11 @@
1
1
  import { j as e } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import { CircleSlashIcon as M, CheckIcon as W, XIcon as ae, PencilLineIcon as oe, RefreshCwIcon as le, EyeOffIcon as ce, EyeIcon as de, CopyIcon as ue, TrashIcon as he, KeyRoundIcon as fe } from "lucide-react";
3
- import { D as pe, a as B, R as me } from "./Slot-DwZlQ-vX.js";
3
+ import { D as pe, a as B, R as me } from "./Slot-tFjhrd8V.js";
4
4
  import { i as D } from "./invariant-DAFpPywt.js";
5
5
  import { O as xe, L as J } from "./chunk-DQRVZFIR-DHK7_Ilc.js";
6
- import { e as ye, d as ge, g as je, c as Ce } from "./hook-Bd0yS8M0.js";
6
+ import { e as ye, d as ge, g as je, c as Ce } from "./hook-CZjW2buS.js";
7
7
  import { Button as j } from "./ui/Button.js";
8
- import { u as S, A as q, a as L } from "./Alert-CT_ViLrJ.js";
8
+ import { u as S, A as q, a as L } from "./Alert-SijAp9LN.js";
9
9
  import * as F from "react";
10
10
  import we, { createContext as O, useRef as N, useLayoutEffect as ve, useEffect as X, useId as Q, useContext as H, useInsertionEffect as ke, useMemo as $, useCallback as be, Children as Ee, isValidElement as Ne, useState as P } from "react";
11
11
  import { C as Pe, a as De } from "./Card-DPhGbYUM.js";
@@ -1,4 +1,4 @@
1
- import { t as o } from "./hook-Bd0yS8M0.js";
1
+ import { t as o } from "./hook-CZjW2buS.js";
2
2
  const n = (s = []) => ({
3
3
  getRoutes: () => {
4
4
  const e = [];
@@ -4,7 +4,7 @@ const m = (t) => ({
4
4
  ([e, n]) => ({
5
5
  path: e,
6
6
  lazy: async () => {
7
- const { MdxPage: o } = await import("./MdxPage-8UuEK446.js"), { default: a, ...r } = await n();
7
+ const { MdxPage: o } = await import("./MdxPage-BFKqQsmK.js"), { default: a, ...r } = await n();
8
8
  return {
9
9
  element: /* @__PURE__ */ s.jsx(
10
10
  o,
@@ -1,9 +1,9 @@
1
1
  import "./jsx-runtime-C5mzlN2N.js";
2
2
  import "lucide-react";
3
3
  import "./chunk-DQRVZFIR-DHK7_Ilc.js";
4
- import "./hook-Bd0yS8M0.js";
4
+ import "./hook-CZjW2buS.js";
5
5
  import "./ui/Button.js";
6
- import { E as e, U as n, F as s } from "./index-dVBKCNMa.js";
6
+ import { E as e, U as n, F as s } from "./index-BTqwnlI5.js";
7
7
  export {
8
8
  e as GetNavigationOperationsQuery,
9
9
  n as UNTAGGED_PATH,
@@ -1,75 +1,72 @@
1
- import { j as a } from "./jsx-runtime-C5mzlN2N.js";
2
- import { useRef as l, useState as f, useMemo as m, useEffect as c } from "react";
3
- import { C as g } from "./ClientOnly-E7hGysn1.js";
4
- const h = {
5
- theme: {
6
- components: {
7
- AIChatPageWrapper: {
8
- defaultProps: {
9
- size: "shrink-vertically",
10
- variant: "no-shadow"
11
- }
12
- },
13
- SearchBarTrigger: {
14
- defaultProps: {
15
- size: "expand",
16
- variant: "subtle"
17
- // Choose from 'emphasized' or 'subtle'
18
- }
19
- }
20
- }
21
- }
22
- }, k = {}, I = ({
23
- prefilledQuery: t,
24
- isOpen: e,
1
+ import { j as o } from "./jsx-runtime-C5mzlN2N.js";
2
+ import { useMemo as l, useState as h, useEffect as c } from "react";
3
+ import { C as p } from "./ClientOnly-E7hGysn1.js";
4
+ const u = {
5
+ primaryBrandColor: "#26D6FF"
6
+ }, m = {
7
+ shortcutKey: "k"
8
+ }, S = {
9
+ placeholder: "Search..."
10
+ }, f = {
11
+ aiAssistantName: "Assistant"
12
+ }, k = ({
13
+ isOpen: n,
25
14
  onClose: r,
26
- settings: u
15
+ settings: a
27
16
  }) => {
28
- const i = l(null), o = l(null), [n, d] = f(
29
- typeof Inkeep < "u"
30
- ), s = m(
17
+ const s = l(
31
18
  () => ({
32
- componentType: "CustomTrigger",
33
- targetElement: i.current,
34
- properties: {
35
- isOpen: e,
36
- onClose: r,
37
- onOpen: void 0,
38
- baseSettings: { ...h, ...u },
39
- searchSettings: {
40
- prefilledQuery: t || void 0
41
- },
42
- aiChatSettings: k
43
- }
19
+ baseSettings: {
20
+ ...u,
21
+ ...a,
22
+ colorMode: {
23
+ sync: {
24
+ target: "html",
25
+ attributes: ["class"],
26
+ isDarkMode: (e) => e.class?.includes("dark") ?? !1
27
+ }
28
+ }
29
+ },
30
+ modalSettings: {
31
+ ...m,
32
+ onOpenChange: (e) => {
33
+ e || r();
34
+ }
35
+ },
36
+ searchSettings: S,
37
+ aiChatSettings: f
44
38
  }),
45
- [e, r, t, u, i]
39
+ [r, a]
40
+ ), [t, i] = h(
41
+ typeof window < "u" && window.Inkeep?.ModalSearchAndChat ? window.Inkeep.ModalSearchAndChat(s) : void 0
46
42
  );
47
43
  return c(() => {
48
- if (n) return;
49
- const p = setInterval(() => {
50
- typeof Inkeep < "u" && (d(!0), clearInterval(p));
44
+ if (t) return;
45
+ const e = setInterval(() => {
46
+ if (typeof window < "u" && window.Inkeep?.ModalSearchAndChat) {
47
+ const d = window.Inkeep.ModalSearchAndChat(s);
48
+ i(d), clearInterval(e);
49
+ }
51
50
  }, 100);
52
- return () => clearInterval(p);
53
- }, [n]), c(() => {
54
- !n || o.current || (o.current = Inkeep().embed(s));
55
- }, [s, n]), c(() => {
56
- o.current?.render({ ...s, isOpen: e });
57
- }, [s, e]), /* @__PURE__ */ a.jsx("div", { ref: i });
58
- }, x = (t) => ({
59
- getHead: () => /* @__PURE__ */ a.jsx(
51
+ return () => clearInterval(e);
52
+ }, [s, t]), c(() => {
53
+ t && t.update({ modalSettings: { isOpen: n } });
54
+ }, [n, t]), null;
55
+ }, C = (n) => ({
56
+ getHead: () => /* @__PURE__ */ o.jsx(
60
57
  "script",
61
58
  {
62
59
  type: "module",
63
- src: "https://unpkg.com/@inkeep/uikit-js@0.3.19/dist/embed.js",
60
+ src: "https://cdn.jsdelivr.net/npm/@inkeep/cxkit-js@0.5.90/+esm",
64
61
  defer: !0
65
62
  }
66
63
  ),
67
64
  renderSearch: ({
68
- isOpen: e,
69
- onClose: r
70
- }) => /* @__PURE__ */ a.jsx(g, { children: /* @__PURE__ */ a.jsx(I, { isOpen: e, onClose: r, settings: t }) })
65
+ isOpen: r,
66
+ onClose: a
67
+ }) => /* @__PURE__ */ o.jsx(p, { children: /* @__PURE__ */ o.jsx(k, { isOpen: r, onClose: a, settings: n }) })
71
68
  });
72
69
  export {
73
- x as inkeepSearchPlugin
70
+ C as inkeepSearchPlugin
74
71
  };
75
72
  //# sourceMappingURL=zudoku.plugin-search-inkeep.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.plugin-search-inkeep.js","sources":["../src/lib/plugins/search-inkeep/inkeep.ts","../src/lib/plugins/search-inkeep/index.tsx"],"sourcesContent":["const baseSettings = {\n theme: {\n components: {\n AIChatPageWrapper: {\n defaultProps: {\n size: \"shrink-vertically\",\n variant: \"no-shadow\",\n },\n },\n SearchBarTrigger: {\n defaultProps: {\n size: \"expand\",\n variant: \"subtle\", // Choose from 'emphasized' or 'subtle'\n },\n },\n },\n },\n} as const;\n\nconst modalSettings = {};\n\nconst searchSettings = {};\n\nconst aiChatSettings = {};\n\nexport { aiChatSettings, baseSettings, modalSettings, searchSettings };\n","import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { ClientOnly } from \"../../components/ClientOnly.js\";\nimport type { ZudokuPlugin } from \"../../core/plugins.js\";\nimport { aiChatSettings, baseSettings } from \"./inkeep.js\";\n\ninterface PluginInkeepBaseSettings {\n apiKey?: string;\n integrationId: string;\n organizationId: string;\n organizationDisplayName?: string;\n primaryBrandColor: string;\n}\n\ninterface InkeepEmbedConfig {\n componentType: string;\n targetElement: HTMLElement;\n properties: unknown;\n}\n\ninterface InkeepWidget {\n render: (config: InkeepEmbedConfig & { isOpen: boolean }) => void;\n}\n\ndeclare global {\n let Inkeep: () => {\n embed: (config: InkeepEmbedConfig) => InkeepWidget;\n };\n}\n\nconst InkeepSearch = ({\n prefilledQuery,\n isOpen,\n onClose,\n settings,\n}: {\n isOpen: boolean;\n onClose: () => void;\n prefilledQuery?: string | null;\n settings: PluginInkeepBaseSettings;\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const widgetRef = useRef<InkeepWidget | null>(null);\n const [isInkeepAvailable, setIsInkeepAvailable] = useState(\n typeof Inkeep !== \"undefined\",\n );\n\n const config: InkeepEmbedConfig = useMemo(\n () => ({\n componentType: \"CustomTrigger\",\n targetElement: ref.current!,\n properties: {\n isOpen,\n onClose,\n onOpen: undefined,\n baseSettings: { ...baseSettings, ...settings },\n searchSettings: {\n prefilledQuery: prefilledQuery || undefined,\n },\n aiChatSettings,\n },\n }),\n [isOpen, onClose, prefilledQuery, settings, ref],\n );\n\n useEffect(() => {\n if (isInkeepAvailable) return;\n\n const checkInkeep = setInterval(() => {\n if (typeof Inkeep !== \"undefined\") {\n setIsInkeepAvailable(true);\n clearInterval(checkInkeep);\n }\n }, 100);\n\n return () => clearInterval(checkInkeep);\n }, [isInkeepAvailable]);\n\n useEffect(() => {\n if (!isInkeepAvailable || widgetRef.current) return;\n\n widgetRef.current = Inkeep().embed(config);\n }, [config, isInkeepAvailable]);\n\n useEffect(() => {\n widgetRef.current?.render({ ...config, isOpen });\n }, [config, isOpen]);\n\n return <div ref={ref} />;\n};\n\nexport const inkeepSearchPlugin = (\n settings: PluginInkeepBaseSettings,\n): ZudokuPlugin => {\n return {\n getHead: () => {\n return (\n <script\n type=\"module\"\n src=\"https://unpkg.com/@inkeep/uikit-js@0.3.19/dist/embed.js\"\n defer\n />\n );\n },\n renderSearch: ({\n isOpen,\n onClose,\n }: {\n isOpen: boolean;\n onClose: () => void;\n }) => {\n return (\n <ClientOnly>\n <InkeepSearch isOpen={isOpen} onClose={onClose} settings={settings} />\n </ClientOnly>\n );\n },\n };\n};\n"],"names":["baseSettings","aiChatSettings","InkeepSearch","prefilledQuery","isOpen","onClose","settings","ref","useRef","widgetRef","isInkeepAvailable","setIsInkeepAvailable","useState","config","useMemo","useEffect","checkInkeep","jsx","inkeepSearchPlugin","ClientOnly"],"mappings":";;;AAAA,MAAMA,IAAe;AAAA,EACnB,OAAO;AAAA,IACL,YAAY;AAAA,MACV,mBAAmB;AAAA,QACjB,cAAc;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA,QAAA;AAAA,MAEb;AAAA,MACA,kBAAkB;AAAA,QAChB,cAAc;AAAA,UACZ,MAAM;AAAA,UACN,SAAS;AAAA;AAAA,QAAA;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAEJ,GAMMC,IAAiB,CAAC,GCMlBC,IAAe,CAAC;AAAA,EACpB,gBAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AACF,MAKM;AACE,QAAAC,IAAMC,EAAuB,IAAI,GACjCC,IAAYD,EAA4B,IAAI,GAC5C,CAACE,GAAmBC,CAAoB,IAAIC;AAAA,IAChD,OAAO,SAAW;AAAA,EACpB,GAEMC,IAA4BC;AAAA,IAChC,OAAO;AAAA,MACL,eAAe;AAAA,MACf,eAAeP,EAAI;AAAA,MACnB,YAAY;AAAA,QACV,QAAAH;AAAA,QACA,SAAAC;AAAA,QACA,QAAQ;AAAA,QACR,cAAc,EAAE,GAAGL,GAAc,GAAGM,EAAS;AAAA,QAC7C,gBAAgB;AAAA,UACd,gBAAgBH,KAAkB;AAAA,QACpC;AAAA,QACA,gBAAAF;AAAA,MAAA;AAAA,IACF;AAAA,IAEF,CAACG,GAAQC,GAASF,GAAgBG,GAAUC,CAAG;AAAA,EACjD;AAEA,SAAAQ,EAAU,MAAM;AACd,QAAIL,EAAmB;AAEjB,UAAAM,IAAc,YAAY,MAAM;AAChC,MAAA,OAAO,SAAW,QACpBL,EAAqB,EAAI,GACzB,cAAcK,CAAW;AAAA,OAE1B,GAAG;AAEC,WAAA,MAAM,cAAcA,CAAW;AAAA,EAAA,GACrC,CAACN,CAAiB,CAAC,GAEtBK,EAAU,MAAM;AACV,IAAA,CAACL,KAAqBD,EAAU,YAEpCA,EAAU,UAAU,SAAS,MAAMI,CAAM;AAAA,EAAA,GACxC,CAACA,GAAQH,CAAiB,CAAC,GAE9BK,EAAU,MAAM;AACd,IAAAN,EAAU,SAAS,OAAO,EAAE,GAAGI,GAAQ,QAAAT,GAAQ;AAAA,EAAA,GAC9C,CAACS,GAAQT,CAAM,CAAC,GAEZa,gBAAAA,MAAC,SAAI,KAAAV,GAAU;AACxB,GAEaW,IAAqB,CAChCZ,OAEO;AAAA,EACL,SAAS,MAELW,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,KAAI;AAAA,MACJ,OAAK;AAAA,IAAA;AAAA,EACP;AAAA,EAGJ,cAAc,CAAC;AAAA,IACb,QAAAb;AAAA,IACA,SAAAC;AAAA,EAAA,4BAMGc,GACC,EAAA,UAAAF,gBAAAA,EAAA,IAACf,KAAa,QAAAE,GAAgB,SAAAC,GAAkB,UAAAC,GAAoB,EACtE,CAAA;AAGN;"}
1
+ {"version":3,"file":"zudoku.plugin-search-inkeep.js","sources":["../src/lib/plugins/search-inkeep/inkeep.ts","../src/lib/plugins/search-inkeep/index.tsx"],"sourcesContent":["import type {\n InkeepAIChatSettings,\n InkeepBaseSettings,\n InkeepModalSettings,\n InkeepSearchSettings,\n} from \"@inkeep/cxkit-types\";\n\nconst baseSettings: InkeepBaseSettings = {\n primaryBrandColor: \"#26D6FF\",\n};\n\nconst modalSettings: InkeepModalSettings = {\n shortcutKey: \"k\",\n};\n\nconst searchSettings: InkeepSearchSettings = {\n placeholder: \"Search...\",\n};\n\nconst aiChatSettings: InkeepAIChatSettings = {\n aiAssistantName: \"Assistant\",\n};\n\nexport { aiChatSettings, baseSettings, modalSettings, searchSettings };\n","import type {\n InkeepBaseSettings,\n InkeepComponentInstance,\n InkeepJS,\n InkeepSettings,\n} from \"@inkeep/cxkit-types\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { ClientOnly } from \"../../components/ClientOnly.js\";\nimport type { ZudokuPlugin } from \"../../core/plugins.js\";\nimport {\n aiChatSettings,\n baseSettings,\n modalSettings,\n searchSettings,\n} from \"./inkeep.js\";\n\ndeclare global {\n interface Window {\n Inkeep: InkeepJS | undefined;\n }\n}\n\nconst InkeepSearch = ({\n isOpen,\n onClose,\n settings,\n}: {\n isOpen: boolean;\n onClose: () => void;\n settings: InkeepBaseSettings;\n}) => {\n const config = useMemo<InkeepSettings>(\n () => ({\n baseSettings: {\n ...baseSettings,\n ...settings,\n colorMode: {\n sync: {\n target: \"html\",\n attributes: [\"class\"],\n isDarkMode: (attrs) => attrs[\"class\"]?.includes(\"dark\") ?? false,\n },\n },\n },\n modalSettings: {\n ...modalSettings,\n onOpenChange: (newOpen: boolean) => {\n if (!newOpen) onClose();\n },\n },\n searchSettings,\n aiChatSettings,\n }),\n [onClose, settings],\n );\n const [searchInstance, setSearchInstance] = useState<\n InkeepComponentInstance | undefined\n >(\n typeof window !== \"undefined\" && window.Inkeep?.ModalSearchAndChat\n ? window.Inkeep.ModalSearchAndChat(config)!\n : undefined,\n );\n\n useEffect(() => {\n if (searchInstance) return;\n\n const checkInkeep = setInterval(() => {\n if (typeof window !== \"undefined\" && window.Inkeep?.ModalSearchAndChat) {\n const inkeep = window.Inkeep.ModalSearchAndChat(config)!;\n setSearchInstance(inkeep);\n clearInterval(checkInkeep);\n }\n }, 100);\n\n return () => clearInterval(checkInkeep);\n }, [config, searchInstance]);\n\n useEffect(() => {\n if (!searchInstance) return;\n\n searchInstance.update({ modalSettings: { isOpen } });\n }, [isOpen, searchInstance]);\n\n return null;\n};\n\nexport const inkeepSearchPlugin = (\n settings: InkeepBaseSettings,\n): ZudokuPlugin => {\n return {\n getHead: () => {\n return (\n <script\n type=\"module\"\n src=\"https://cdn.jsdelivr.net/npm/@inkeep/cxkit-js@0.5.90/+esm\"\n defer\n />\n );\n },\n renderSearch: ({\n isOpen,\n onClose,\n }: {\n isOpen: boolean;\n onClose: () => void;\n }) => {\n return (\n <ClientOnly>\n <InkeepSearch isOpen={isOpen} onClose={onClose} settings={settings} />\n </ClientOnly>\n );\n },\n };\n};\n"],"names":["baseSettings","modalSettings","searchSettings","aiChatSettings","InkeepSearch","isOpen","onClose","settings","config","useMemo","attrs","newOpen","searchInstance","setSearchInstance","useState","useEffect","checkInkeep","inkeep","inkeepSearchPlugin","jsx","ClientOnly"],"mappings":";;;AAOA,MAAMA,IAAmC;AAAA,EACvC,mBAAmB;AACrB,GAEMC,IAAqC;AAAA,EACzC,aAAa;AACf,GAEMC,IAAuC;AAAA,EAC3C,aAAa;AACf,GAEMC,IAAuC;AAAA,EAC3C,iBAAiB;AACnB,GCCMC,IAAe,CAAC;AAAA,EACpB,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AACF,MAIM;AACJ,QAAMC,IAASC;AAAA,IACb,OAAO;AAAA,MACL,cAAc;AAAA,QACZ,GAAGT;AAAA,QACH,GAAGO;AAAA,QACH,WAAW;AAAA,UACT,MAAM;AAAA,YACJ,QAAQ;AAAA,YACR,YAAY,CAAC,OAAO;AAAA,YACpB,YAAY,CAACG,MAAUA,EAAM,OAAU,SAAS,MAAM,KAAK;AAAA,UAAA;AAAA,QAC7D;AAAA,MAEJ;AAAA,MACA,eAAe;AAAA,QACb,GAAGT;AAAA,QACH,cAAc,CAACU,MAAqB;AAC9B,UAACA,KAAiBL,EAAA;AAAA,QAAA;AAAA,MAE1B;AAAA,MACA,gBAAAJ;AAAA,MACA,gBAAAC;AAAA,IAAA;AAAA,IAEF,CAACG,GAASC,CAAQ;AAAA,EACpB,GACM,CAACK,GAAgBC,CAAiB,IAAIC;AAAA,IAG1C,OAAO,SAAW,OAAe,OAAO,QAAQ,qBAC5C,OAAO,OAAO,mBAAmBN,CAAM,IACvC;AAAA,EACN;AAEA,SAAAO,EAAU,MAAM;AACd,QAAIH,EAAgB;AAEd,UAAAI,IAAc,YAAY,MAAM;AACpC,UAAI,OAAO,SAAW,OAAe,OAAO,QAAQ,oBAAoB;AACtE,cAAMC,IAAS,OAAO,OAAO,mBAAmBT,CAAM;AACtD,QAAAK,EAAkBI,CAAM,GACxB,cAAcD,CAAW;AAAA,MAAA;AAAA,OAE1B,GAAG;AAEC,WAAA,MAAM,cAAcA,CAAW;AAAA,EAAA,GACrC,CAACR,GAAQI,CAAc,CAAC,GAE3BG,EAAU,MAAM;AACd,IAAKH,KAELA,EAAe,OAAO,EAAE,eAAe,EAAE,QAAAP,KAAU;AAAA,EAAA,GAClD,CAACA,GAAQO,CAAc,CAAC,GAEpB;AACT,GAEaM,IAAqB,CAChCX,OAEO;AAAA,EACL,SAAS,MAELY,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,KAAI;AAAA,MACJ,OAAK;AAAA,IAAA;AAAA,EACP;AAAA,EAGJ,cAAc,CAAC;AAAA,IACb,QAAAd;AAAA,IACA,SAAAC;AAAA,EAAA,4BAMGc,GACC,EAAA,UAAAD,gBAAAA,EAAA,IAACf,KAAa,QAAAC,GAAgB,SAAAC,GAAkB,UAAAC,GAAoB,EACtE,CAAA;AAGN;"}