@seekora-ai/ui-sdk-react 0.2.31 → 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/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 && !containerRef.current.contains(event.target)) {
16684
+ if (containerRef.current &&
16685
+ !containerRef.current.contains(event.target)) {
16685
16686
  onClose();
16686
16687
  }
16687
16688
  };
16688
16689
  if (isOpen)
16689
- document.addEventListener('mousedown', handleClickOutside);
16690
- return () => document.removeEventListener('mousedown', handleClickOutside);
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 = 'hidden';
16696
- return () => { document.body.style.overflow = originalOverflow; };
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 !== 'Tab')
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('keydown', handleTabKey);
16723
- return () => container.removeEventListener('keydown', handleTabKey);
16725
+ container.addEventListener("keydown", handleTabKey);
16726
+ return () => container.removeEventListener("keydown", handleTabKey);
16724
16727
  }, [isOpen]);
16725
- if (!isOpen || typeof document === 'undefined')
16728
+ if (!isOpen || typeof document === "undefined")
16726
16729
  return null;
16727
- const modalContent = (React.createElement("div", { ref: overlayRef, className: "seekora-docsearch-overlay", role: "dialog", "aria-modal": "true", "aria-label": "Search documentation" },
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 = 'Search documentation...' }) {
17142
- const shortcutText = getShortcutText('K');
17143
- return (React.createElement("button", { type: "button", className: "seekora-docsearch-button", onClick: onClick, "aria-label": "Search documentation" },
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 = 'Search documentation...', maxResults = 10, debounceMs = 200, onSelect, onClose, translations = {}, renderButton = true, buttonComponent: ButtonComponent = DocSearchButton, initialOpen = false, disableShortcut = false, shortcutKey = 'k', processGroupedResults, }) {
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: ['docsearch'],
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 ? undefined : legacySearch.groupedSuggestions;
17612
+ const groupedSuggestions = useSeekoraSDK
17613
+ ? undefined
17614
+ : legacySearch.groupedSuggestions;
17610
17615
  const results = useSeekoraSDK ? suggestions : legacySearch.results;
17611
- const mode = useSeekoraSDK ? 'suggestions' : legacySearch.mode;
17616
+ const mode = useSeekoraSDK ? "suggestions" : legacySearch.mode;
17612
17617
  const searchSources = useSeekoraSDK
17613
- ? [{ id: 'seekora', name: 'Results', endpoint: '' }]
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,13 +17659,13 @@ 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 === 'results' ? results : suggestions;
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
- React.createElement(SearchBox, { value: query, onChange: setQuery, onKeyDown: handleKeyDown, placeholder: placeholder, onClear: reset }),
17668
+ React.createElement(SearchBox, { value: query, onChange: setQuery, placeholder: placeholder, onClear: reset }),
17664
17669
  React.createElement("button", { type: "button", className: "seekora-docsearch-close", onClick: handleClose, "aria-label": "Close search" },
17665
17670
  React.createElement("span", { className: "seekora-docsearch-close-text" }, "esc"))),
17666
17671
  React.createElement("div", { className: "seekora-docsearch-body" },