@seekora-ai/ui-sdk-react 0.2.32 → 0.2.33
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.
- package/dist/docsearch/components/DocSearch.d.ts +3 -3
- package/dist/docsearch/components/DocSearch.d.ts.map +1 -1
- package/dist/docsearch/components/DocSearch.js +20 -18
- package/dist/docsearch/components/DocSearchButton.d.ts +3 -3
- package/dist/docsearch/components/DocSearchButton.d.ts.map +1 -1
- package/dist/docsearch/components/DocSearchButton.js +5 -5
- package/dist/docsearch/components/Modal.d.ts +3 -2
- package/dist/docsearch/components/Modal.d.ts.map +1 -1
- package/dist/docsearch/components/Modal.js +16 -13
- package/dist/docsearch/types.d.ts +17 -13
- package/dist/docsearch/types.d.ts.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/src/index.d.ts +18 -14
- package/dist/src/index.esm.js +28 -23
- package/dist/src/index.esm.js.map +1 -1
- package/dist/src/index.js +28 -23
- package/dist/src/index.js.map +1 -1
- package/package.json +3 -3
package/dist/src/index.js
CHANGED
|
@@ -16676,24 +16676,27 @@ const SuggestionDropdownVariants = {
|
|
|
16676
16676
|
minimal: MinimalDropdown,
|
|
16677
16677
|
};
|
|
16678
16678
|
|
|
16679
|
-
function Modal({ isOpen, onClose, children }) {
|
|
16679
|
+
function Modal({ isOpen, onClose, children, className }) {
|
|
16680
16680
|
const overlayRef = React.useRef(null);
|
|
16681
16681
|
const containerRef = React.useRef(null);
|
|
16682
16682
|
React.useEffect(() => {
|
|
16683
16683
|
const handleClickOutside = (event) => {
|
|
16684
|
-
if (containerRef.current &&
|
|
16684
|
+
if (containerRef.current &&
|
|
16685
|
+
!containerRef.current.contains(event.target)) {
|
|
16685
16686
|
onClose();
|
|
16686
16687
|
}
|
|
16687
16688
|
};
|
|
16688
16689
|
if (isOpen)
|
|
16689
|
-
document.addEventListener(
|
|
16690
|
-
return () => document.removeEventListener(
|
|
16690
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
16691
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
16691
16692
|
}, [isOpen, onClose]);
|
|
16692
16693
|
React.useEffect(() => {
|
|
16693
16694
|
if (isOpen) {
|
|
16694
16695
|
const originalOverflow = document.body.style.overflow;
|
|
16695
|
-
document.body.style.overflow =
|
|
16696
|
-
return () => {
|
|
16696
|
+
document.body.style.overflow = "hidden";
|
|
16697
|
+
return () => {
|
|
16698
|
+
document.body.style.overflow = originalOverflow;
|
|
16699
|
+
};
|
|
16697
16700
|
}
|
|
16698
16701
|
}, [isOpen]);
|
|
16699
16702
|
React.useEffect(() => {
|
|
@@ -16704,7 +16707,7 @@ function Modal({ isOpen, onClose, children }) {
|
|
|
16704
16707
|
const firstElement = focusableElements[0];
|
|
16705
16708
|
const lastElement = focusableElements[focusableElements.length - 1];
|
|
16706
16709
|
const handleTabKey = (e) => {
|
|
16707
|
-
if (e.key !==
|
|
16710
|
+
if (e.key !== "Tab")
|
|
16708
16711
|
return;
|
|
16709
16712
|
if (e.shiftKey) {
|
|
16710
16713
|
if (document.activeElement === firstElement) {
|
|
@@ -16719,12 +16722,12 @@ function Modal({ isOpen, onClose, children }) {
|
|
|
16719
16722
|
}
|
|
16720
16723
|
}
|
|
16721
16724
|
};
|
|
16722
|
-
container.addEventListener(
|
|
16723
|
-
return () => container.removeEventListener(
|
|
16725
|
+
container.addEventListener("keydown", handleTabKey);
|
|
16726
|
+
return () => container.removeEventListener("keydown", handleTabKey);
|
|
16724
16727
|
}, [isOpen]);
|
|
16725
|
-
if (!isOpen || typeof document ===
|
|
16728
|
+
if (!isOpen || typeof document === "undefined")
|
|
16726
16729
|
return null;
|
|
16727
|
-
const modalContent = (React.createElement("div", { ref: overlayRef, className:
|
|
16730
|
+
const modalContent = (React.createElement("div", { ref: overlayRef, className: `seekora-docsearch-overlay${className ? ` ${className}` : ""}`, role: "dialog", "aria-modal": "true", "aria-label": "Search documentation" },
|
|
16728
16731
|
React.createElement("div", { ref: containerRef, className: "seekora-docsearch-container" }, children)));
|
|
16729
16732
|
return reactDom.createPortal(modalContent, document.body);
|
|
16730
16733
|
}
|
|
@@ -17138,9 +17141,9 @@ function getShortcutText(key = 'K') {
|
|
|
17138
17141
|
return isMac ? `⌘${key}` : `Ctrl+${key}`;
|
|
17139
17142
|
}
|
|
17140
17143
|
|
|
17141
|
-
function DocSearchButton({ onClick, placeholder =
|
|
17142
|
-
const shortcutText = getShortcutText(
|
|
17143
|
-
return (React.createElement("button", { type: "button", className:
|
|
17144
|
+
function DocSearchButton({ onClick, placeholder = "Search documentation...", className, }) {
|
|
17145
|
+
const shortcutText = getShortcutText("K");
|
|
17146
|
+
return (React.createElement("button", { type: "button", className: `seekora-docsearch-button${className ? ` ${className}` : ""}`, onClick: onClick, "aria-label": "Search documentation" },
|
|
17144
17147
|
React.createElement("span", { className: "seekora-docsearch-button-icon" },
|
|
17145
17148
|
React.createElement("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" },
|
|
17146
17149
|
React.createElement("path", { d: "M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z", fill: "currentColor" }))),
|
|
@@ -17585,17 +17588,17 @@ function useSeekoraSearch$1(options) {
|
|
|
17585
17588
|
};
|
|
17586
17589
|
}
|
|
17587
17590
|
|
|
17588
|
-
function DocSearch({ storeId, storeSecret, seekoraApiEndpoint, apiEndpoint, apiKey, sources, placeholder =
|
|
17591
|
+
function DocSearch({ storeId, storeSecret, seekoraApiEndpoint, apiEndpoint, apiKey, sources, placeholder = "Search documentation...", maxResults = 10, debounceMs = 200, onSelect, onClose, translations = {}, renderButton = true, buttonComponent: ButtonComponent = DocSearchButton, initialOpen = false, disableShortcut = false, shortcutKey = "k", processGroupedResults, className, }) {
|
|
17589
17592
|
const [isOpen, setIsOpen] = React.useState(initialOpen);
|
|
17590
17593
|
const scrollSelectionIntoViewRef = React.useRef(false);
|
|
17591
17594
|
const useSeekoraSDK = !!storeId;
|
|
17592
17595
|
const seekoraSearch = useSeekoraSearch$1({
|
|
17593
|
-
storeId: storeId ||
|
|
17596
|
+
storeId: storeId || "",
|
|
17594
17597
|
storeSecret,
|
|
17595
17598
|
apiEndpoint: seekoraApiEndpoint,
|
|
17596
17599
|
maxResults,
|
|
17597
17600
|
debounceMs,
|
|
17598
|
-
analyticsTags: [
|
|
17601
|
+
analyticsTags: ["docsearch"],
|
|
17599
17602
|
});
|
|
17600
17603
|
const legacySearch = useDocSearch({
|
|
17601
17604
|
apiEndpoint,
|
|
@@ -17606,11 +17609,13 @@ function DocSearch({ storeId, storeSecret, seekoraApiEndpoint, apiEndpoint, apiK
|
|
|
17606
17609
|
processGroupedResults,
|
|
17607
17610
|
});
|
|
17608
17611
|
const { query, suggestions, isLoading, error, selectedIndex, setQuery, selectNext, selectPrev, setSelectedIndex, reset, getSelectedItem, } = useSeekoraSDK ? seekoraSearch : legacySearch;
|
|
17609
|
-
const groupedSuggestions = useSeekoraSDK
|
|
17612
|
+
const groupedSuggestions = useSeekoraSDK
|
|
17613
|
+
? undefined
|
|
17614
|
+
: legacySearch.groupedSuggestions;
|
|
17610
17615
|
const results = useSeekoraSDK ? suggestions : legacySearch.results;
|
|
17611
|
-
const mode = useSeekoraSDK ?
|
|
17616
|
+
const mode = useSeekoraSDK ? "suggestions" : legacySearch.mode;
|
|
17612
17617
|
const searchSources = useSeekoraSDK
|
|
17613
|
-
? [{ id:
|
|
17618
|
+
? [{ id: "seekora", name: "Results", endpoint: "" }]
|
|
17614
17619
|
: legacySearch.sources;
|
|
17615
17620
|
const handleOpen = React.useCallback(() => setIsOpen(true), []);
|
|
17616
17621
|
const handleClose = React.useCallback(() => {
|
|
@@ -17654,10 +17659,10 @@ function DocSearch({ storeId, storeSecret, seekoraApiEndpoint, apiEndpoint, apiK
|
|
|
17654
17659
|
shortcutKey,
|
|
17655
17660
|
});
|
|
17656
17661
|
const handleKeyDown = React.useCallback((event) => handleModalKeyDown(event), [handleModalKeyDown]);
|
|
17657
|
-
const displayHits = mode ===
|
|
17662
|
+
const displayHits = mode === "results" ? results : suggestions;
|
|
17658
17663
|
return (React.createElement(React.Fragment, null,
|
|
17659
|
-
renderButton && (React.createElement(ButtonComponent, { onClick: handleOpen, placeholder: translations.buttonText || placeholder })),
|
|
17660
|
-
React.createElement(Modal, { isOpen: isOpen, onClose: handleClose },
|
|
17664
|
+
renderButton && (React.createElement(ButtonComponent, { onClick: handleOpen, placeholder: translations.buttonText || placeholder, className: className })),
|
|
17665
|
+
React.createElement(Modal, { isOpen: isOpen, onClose: handleClose, className: className },
|
|
17661
17666
|
React.createElement("div", { className: "seekora-docsearch-modal", onKeyDown: handleKeyDown },
|
|
17662
17667
|
React.createElement("header", { className: "seekora-docsearch-header" },
|
|
17663
17668
|
React.createElement(SearchBox, { value: query, onChange: setQuery, placeholder: placeholder, onClear: reset }),
|