@seekora-ai/ui-sdk-react 0.0.0-stage-20260517092419

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 (357) hide show
  1. package/dist/components/Breadcrumb.d.ts +43 -0
  2. package/dist/components/Breadcrumb.d.ts.map +1 -0
  3. package/dist/components/Breadcrumb.js +119 -0
  4. package/dist/components/ClearRefinements.d.ts +42 -0
  5. package/dist/components/ClearRefinements.d.ts.map +1 -0
  6. package/dist/components/ClearRefinements.js +81 -0
  7. package/dist/components/CurrentRefinements.d.ts +63 -0
  8. package/dist/components/CurrentRefinements.d.ts.map +1 -0
  9. package/dist/components/CurrentRefinements.js +302 -0
  10. package/dist/components/FacetDropdown.d.ts +94 -0
  11. package/dist/components/FacetDropdown.d.ts.map +1 -0
  12. package/dist/components/FacetDropdown.js +396 -0
  13. package/dist/components/Facets.d.ts +118 -0
  14. package/dist/components/Facets.d.ts.map +1 -0
  15. package/dist/components/Facets.js +785 -0
  16. package/dist/components/FederatedDropdown.d.ts +98 -0
  17. package/dist/components/FederatedDropdown.d.ts.map +1 -0
  18. package/dist/components/FederatedDropdown.js +526 -0
  19. package/dist/components/HierarchicalMenu.d.ts +55 -0
  20. package/dist/components/HierarchicalMenu.d.ts.map +1 -0
  21. package/dist/components/HierarchicalMenu.js +276 -0
  22. package/dist/components/Highlight.d.ts +51 -0
  23. package/dist/components/Highlight.d.ts.map +1 -0
  24. package/dist/components/Highlight.js +155 -0
  25. package/dist/components/HitsPerPage.d.ts +41 -0
  26. package/dist/components/HitsPerPage.d.ts.map +1 -0
  27. package/dist/components/HitsPerPage.js +82 -0
  28. package/dist/components/InfiniteHits.d.ts +51 -0
  29. package/dist/components/InfiniteHits.d.ts.map +1 -0
  30. package/dist/components/InfiniteHits.js +173 -0
  31. package/dist/components/MobileFilters.d.ts +71 -0
  32. package/dist/components/MobileFilters.d.ts.map +1 -0
  33. package/dist/components/MobileFilters.js +242 -0
  34. package/dist/components/Pagination.d.ts +90 -0
  35. package/dist/components/Pagination.d.ts.map +1 -0
  36. package/dist/components/Pagination.js +298 -0
  37. package/dist/components/QuerySuggestions.d.ts +36 -0
  38. package/dist/components/QuerySuggestions.d.ts.map +1 -0
  39. package/dist/components/QuerySuggestions.js +71 -0
  40. package/dist/components/QuerySuggestionsDropdown.d.ts +82 -0
  41. package/dist/components/QuerySuggestionsDropdown.d.ts.map +1 -0
  42. package/dist/components/QuerySuggestionsDropdown.js +394 -0
  43. package/dist/components/RangeInput.d.ts +58 -0
  44. package/dist/components/RangeInput.d.ts.map +1 -0
  45. package/dist/components/RangeInput.js +203 -0
  46. package/dist/components/RangeSlider.d.ts +51 -0
  47. package/dist/components/RangeSlider.d.ts.map +1 -0
  48. package/dist/components/RangeSlider.js +262 -0
  49. package/dist/components/Recommendations.d.ts +89 -0
  50. package/dist/components/Recommendations.d.ts.map +1 -0
  51. package/dist/components/Recommendations.js +256 -0
  52. package/dist/components/RichQuerySuggestions.d.ts +88 -0
  53. package/dist/components/RichQuerySuggestions.d.ts.map +1 -0
  54. package/dist/components/RichQuerySuggestions.js +498 -0
  55. package/dist/components/SearchBar.d.ts +57 -0
  56. package/dist/components/SearchBar.d.ts.map +1 -0
  57. package/dist/components/SearchBar.js +361 -0
  58. package/dist/components/SearchBarWithSuggestions.d.ts +105 -0
  59. package/dist/components/SearchBarWithSuggestions.d.ts.map +1 -0
  60. package/dist/components/SearchBarWithSuggestions.js +275 -0
  61. package/dist/components/SearchLayout.d.ts +35 -0
  62. package/dist/components/SearchLayout.d.ts.map +1 -0
  63. package/dist/components/SearchLayout.js +61 -0
  64. package/dist/components/SearchProvider.d.ts +35 -0
  65. package/dist/components/SearchProvider.d.ts.map +1 -0
  66. package/dist/components/SearchProvider.js +53 -0
  67. package/dist/components/SearchResults.d.ts +57 -0
  68. package/dist/components/SearchResults.d.ts.map +1 -0
  69. package/dist/components/SearchResults.js +456 -0
  70. package/dist/components/SortBy.d.ts +84 -0
  71. package/dist/components/SortBy.d.ts.map +1 -0
  72. package/dist/components/SortBy.js +183 -0
  73. package/dist/components/Stats.d.ts +51 -0
  74. package/dist/components/Stats.d.ts.map +1 -0
  75. package/dist/components/Stats.js +201 -0
  76. package/dist/components/primitives/ActionButtons.d.ts +27 -0
  77. package/dist/components/primitives/ActionButtons.d.ts.map +1 -0
  78. package/dist/components/primitives/ActionButtons.js +102 -0
  79. package/dist/components/primitives/AnalyticsProvider.d.ts +22 -0
  80. package/dist/components/primitives/AnalyticsProvider.d.ts.map +1 -0
  81. package/dist/components/primitives/AnalyticsProvider.js +87 -0
  82. package/dist/components/primitives/BadgeList.d.ts +14 -0
  83. package/dist/components/primitives/BadgeList.d.ts.map +1 -0
  84. package/dist/components/primitives/BadgeList.js +65 -0
  85. package/dist/components/primitives/CustomSelect.d.ts +40 -0
  86. package/dist/components/primitives/CustomSelect.d.ts.map +1 -0
  87. package/dist/components/primitives/CustomSelect.js +196 -0
  88. package/dist/components/primitives/ImageDisplay.d.ts +28 -0
  89. package/dist/components/primitives/ImageDisplay.d.ts.map +1 -0
  90. package/dist/components/primitives/ImageDisplay.js +127 -0
  91. package/dist/components/primitives/ImageZoom.d.ts +33 -0
  92. package/dist/components/primitives/ImageZoom.d.ts.map +1 -0
  93. package/dist/components/primitives/ImageZoom.js +433 -0
  94. package/dist/components/primitives/PriceDisplay.d.ts +21 -0
  95. package/dist/components/primitives/PriceDisplay.d.ts.map +1 -0
  96. package/dist/components/primitives/PriceDisplay.js +44 -0
  97. package/dist/components/primitives/RatingDisplay.d.ts +43 -0
  98. package/dist/components/primitives/RatingDisplay.d.ts.map +1 -0
  99. package/dist/components/primitives/RatingDisplay.js +114 -0
  100. package/dist/components/primitives/VariantSelector.d.ts +30 -0
  101. package/dist/components/primitives/VariantSelector.d.ts.map +1 -0
  102. package/dist/components/primitives/VariantSelector.js +155 -0
  103. package/dist/components/primitives/VariantSwatches.d.ts +28 -0
  104. package/dist/components/primitives/VariantSwatches.d.ts.map +1 -0
  105. package/dist/components/primitives/VariantSwatches.js +188 -0
  106. package/dist/components/primitives/index.d.ts +12 -0
  107. package/dist/components/primitives/index.d.ts.map +1 -0
  108. package/dist/components/primitives/index.js +11 -0
  109. package/dist/components/primitives/withAnalytics.d.ts +24 -0
  110. package/dist/components/primitives/withAnalytics.d.ts.map +1 -0
  111. package/dist/components/primitives/withAnalytics.js +73 -0
  112. package/dist/components/product-page/ProductGallery.d.ts +26 -0
  113. package/dist/components/product-page/ProductGallery.d.ts.map +1 -0
  114. package/dist/components/product-page/ProductGallery.js +13 -0
  115. package/dist/components/product-page/ProductInfo.d.ts +44 -0
  116. package/dist/components/product-page/ProductInfo.d.ts.map +1 -0
  117. package/dist/components/product-page/ProductInfo.js +34 -0
  118. package/dist/components/product-page/ProductRecommendations.d.ts +21 -0
  119. package/dist/components/product-page/ProductRecommendations.d.ts.map +1 -0
  120. package/dist/components/product-page/ProductRecommendations.js +17 -0
  121. package/dist/components/product-page/index.d.ts +4 -0
  122. package/dist/components/product-page/index.d.ts.map +1 -0
  123. package/dist/components/product-page/index.js +3 -0
  124. package/dist/components/section-primitives/SectionError.d.ts +11 -0
  125. package/dist/components/section-primitives/SectionError.d.ts.map +1 -0
  126. package/dist/components/section-primitives/SectionError.js +13 -0
  127. package/dist/components/section-primitives/SectionItemGrid.d.ts +18 -0
  128. package/dist/components/section-primitives/SectionItemGrid.d.ts.map +1 -0
  129. package/dist/components/section-primitives/SectionItemGrid.js +14 -0
  130. package/dist/components/section-primitives/SectionLoading.d.ts +11 -0
  131. package/dist/components/section-primitives/SectionLoading.d.ts.map +1 -0
  132. package/dist/components/section-primitives/SectionLoading.js +11 -0
  133. package/dist/components/section-primitives/SectionSearchContext.d.ts +17 -0
  134. package/dist/components/section-primitives/SectionSearchContext.d.ts.map +1 -0
  135. package/dist/components/section-primitives/SectionSearchContext.js +17 -0
  136. package/dist/components/section-primitives/SectionSearchProvider.d.ts +25 -0
  137. package/dist/components/section-primitives/SectionSearchProvider.d.ts.map +1 -0
  138. package/dist/components/section-primitives/SectionSearchProvider.js +106 -0
  139. package/dist/components/section-primitives/index.d.ts +5 -0
  140. package/dist/components/section-primitives/index.d.ts.map +1 -0
  141. package/dist/components/section-primitives/index.js +4 -0
  142. package/dist/components/suggestions/AmazonDropdown.d.ts +30 -0
  143. package/dist/components/suggestions/AmazonDropdown.d.ts.map +1 -0
  144. package/dist/components/suggestions/AmazonDropdown.js +509 -0
  145. package/dist/components/suggestions/GoogleDropdown.d.ts +31 -0
  146. package/dist/components/suggestions/GoogleDropdown.d.ts.map +1 -0
  147. package/dist/components/suggestions/GoogleDropdown.js +349 -0
  148. package/dist/components/suggestions/MinimalDropdown.d.ts +24 -0
  149. package/dist/components/suggestions/MinimalDropdown.d.ts.map +1 -0
  150. package/dist/components/suggestions/MinimalDropdown.js +312 -0
  151. package/dist/components/suggestions/MobileSheetDropdown.d.ts +31 -0
  152. package/dist/components/suggestions/MobileSheetDropdown.d.ts.map +1 -0
  153. package/dist/components/suggestions/MobileSheetDropdown.js +483 -0
  154. package/dist/components/suggestions/PinterestDropdown.d.ts +29 -0
  155. package/dist/components/suggestions/PinterestDropdown.d.ts.map +1 -0
  156. package/dist/components/suggestions/PinterestDropdown.js +446 -0
  157. package/dist/components/suggestions/ShopifyDropdown.d.ts +27 -0
  158. package/dist/components/suggestions/ShopifyDropdown.d.ts.map +1 -0
  159. package/dist/components/suggestions/ShopifyDropdown.js +448 -0
  160. package/dist/components/suggestions/SpotlightDropdown.d.ts +33 -0
  161. package/dist/components/suggestions/SpotlightDropdown.d.ts.map +1 -0
  162. package/dist/components/suggestions/SpotlightDropdown.js +544 -0
  163. package/dist/components/suggestions/SuggestionSearchBar.d.ts +127 -0
  164. package/dist/components/suggestions/SuggestionSearchBar.d.ts.map +1 -0
  165. package/dist/components/suggestions/SuggestionSearchBar.js +644 -0
  166. package/dist/components/suggestions/index.d.ts +37 -0
  167. package/dist/components/suggestions/index.d.ts.map +1 -0
  168. package/dist/components/suggestions/index.js +59 -0
  169. package/dist/components/suggestions/styles/index.d.ts +11 -0
  170. package/dist/components/suggestions/styles/index.d.ts.map +1 -0
  171. package/dist/components/suggestions/styles/index.js +289 -0
  172. package/dist/components/suggestions/styles/responsive.d.ts +107 -0
  173. package/dist/components/suggestions/styles/responsive.d.ts.map +1 -0
  174. package/dist/components/suggestions/styles/responsive.js +237 -0
  175. package/dist/components/suggestions/types.d.ts +511 -0
  176. package/dist/components/suggestions/types.d.ts.map +1 -0
  177. package/dist/components/suggestions/types.js +6 -0
  178. package/dist/components/suggestions/utils.d.ts +259 -0
  179. package/dist/components/suggestions/utils.d.ts.map +1 -0
  180. package/dist/components/suggestions/utils.js +668 -0
  181. package/dist/components/suggestions-primitives/CategoriesTabs.d.ts +13 -0
  182. package/dist/components/suggestions-primitives/CategoriesTabs.d.ts.map +1 -0
  183. package/dist/components/suggestions-primitives/CategoriesTabs.js +35 -0
  184. package/dist/components/suggestions-primitives/DropdownPanel.d.ts +24 -0
  185. package/dist/components/suggestions-primitives/DropdownPanel.d.ts.map +1 -0
  186. package/dist/components/suggestions-primitives/DropdownPanel.js +67 -0
  187. package/dist/components/suggestions-primitives/ItemCard.d.ts +48 -0
  188. package/dist/components/suggestions-primitives/ItemCard.d.ts.map +1 -0
  189. package/dist/components/suggestions-primitives/ItemCard.js +103 -0
  190. package/dist/components/suggestions-primitives/ItemGrid.d.ts +28 -0
  191. package/dist/components/suggestions-primitives/ItemGrid.d.ts.map +1 -0
  192. package/dist/components/suggestions-primitives/ItemGrid.js +55 -0
  193. package/dist/components/suggestions-primitives/ProductCard.d.ts +45 -0
  194. package/dist/components/suggestions-primitives/ProductCard.d.ts.map +1 -0
  195. package/dist/components/suggestions-primitives/ProductCard.js +177 -0
  196. package/dist/components/suggestions-primitives/ProductCardLayouts.d.ts +44 -0
  197. package/dist/components/suggestions-primitives/ProductCardLayouts.d.ts.map +1 -0
  198. package/dist/components/suggestions-primitives/ProductCardLayouts.js +137 -0
  199. package/dist/components/suggestions-primitives/ProductGrid.d.ts +22 -0
  200. package/dist/components/suggestions-primitives/ProductGrid.d.ts.map +1 -0
  201. package/dist/components/suggestions-primitives/ProductGrid.js +41 -0
  202. package/dist/components/suggestions-primitives/RecentSearchesList.d.ts +17 -0
  203. package/dist/components/suggestions-primitives/RecentSearchesList.d.ts.map +1 -0
  204. package/dist/components/suggestions-primitives/RecentSearchesList.js +46 -0
  205. package/dist/components/suggestions-primitives/SearchInput.d.ts +23 -0
  206. package/dist/components/suggestions-primitives/SearchInput.d.ts.map +1 -0
  207. package/dist/components/suggestions-primitives/SearchInput.js +114 -0
  208. package/dist/components/suggestions-primitives/SuggestionItem.d.ts +31 -0
  209. package/dist/components/suggestions-primitives/SuggestionItem.d.ts.map +1 -0
  210. package/dist/components/suggestions-primitives/SuggestionItem.js +47 -0
  211. package/dist/components/suggestions-primitives/SuggestionList.d.ts +26 -0
  212. package/dist/components/suggestions-primitives/SuggestionList.d.ts.map +1 -0
  213. package/dist/components/suggestions-primitives/SuggestionList.js +35 -0
  214. package/dist/components/suggestions-primitives/SuggestionsContext.d.ts +44 -0
  215. package/dist/components/suggestions-primitives/SuggestionsContext.d.ts.map +1 -0
  216. package/dist/components/suggestions-primitives/SuggestionsContext.js +18 -0
  217. package/dist/components/suggestions-primitives/SuggestionsDropdownComposition.d.ts +24 -0
  218. package/dist/components/suggestions-primitives/SuggestionsDropdownComposition.d.ts.map +1 -0
  219. package/dist/components/suggestions-primitives/SuggestionsDropdownComposition.js +30 -0
  220. package/dist/components/suggestions-primitives/SuggestionsError.d.ts +11 -0
  221. package/dist/components/suggestions-primitives/SuggestionsError.d.ts.map +1 -0
  222. package/dist/components/suggestions-primitives/SuggestionsError.js +19 -0
  223. package/dist/components/suggestions-primitives/SuggestionsLoading.d.ts +11 -0
  224. package/dist/components/suggestions-primitives/SuggestionsLoading.d.ts.map +1 -0
  225. package/dist/components/suggestions-primitives/SuggestionsLoading.js +17 -0
  226. package/dist/components/suggestions-primitives/SuggestionsProvider.d.ts +38 -0
  227. package/dist/components/suggestions-primitives/SuggestionsProvider.d.ts.map +1 -0
  228. package/dist/components/suggestions-primitives/SuggestionsProvider.js +259 -0
  229. package/dist/components/suggestions-primitives/TrendingList.d.ts +17 -0
  230. package/dist/components/suggestions-primitives/TrendingList.d.ts.map +1 -0
  231. package/dist/components/suggestions-primitives/TrendingList.js +48 -0
  232. package/dist/components/suggestions-primitives/highlightMarkup.d.ts +31 -0
  233. package/dist/components/suggestions-primitives/highlightMarkup.d.ts.map +1 -0
  234. package/dist/components/suggestions-primitives/highlightMarkup.js +70 -0
  235. package/dist/components/suggestions-primitives/index.d.ts +39 -0
  236. package/dist/components/suggestions-primitives/index.d.ts.map +1 -0
  237. package/dist/components/suggestions-primitives/index.js +24 -0
  238. package/dist/docsearch/components/DocSearch.d.ts +4 -0
  239. package/dist/docsearch/components/DocSearch.d.ts.map +1 -0
  240. package/dist/docsearch/components/DocSearch.js +93 -0
  241. package/dist/docsearch/components/DocSearchButton.d.ts +4 -0
  242. package/dist/docsearch/components/DocSearchButton.d.ts.map +1 -0
  243. package/dist/docsearch/components/DocSearchButton.js +12 -0
  244. package/dist/docsearch/components/Footer.d.ts +8 -0
  245. package/dist/docsearch/components/Footer.d.ts.map +1 -0
  246. package/dist/docsearch/components/Footer.js +40 -0
  247. package/dist/docsearch/components/Highlight.d.ts +9 -0
  248. package/dist/docsearch/components/Highlight.d.ts.map +1 -0
  249. package/dist/docsearch/components/Highlight.js +48 -0
  250. package/dist/docsearch/components/Hit.d.ts +15 -0
  251. package/dist/docsearch/components/Hit.d.ts.map +1 -0
  252. package/dist/docsearch/components/Hit.js +96 -0
  253. package/dist/docsearch/components/Modal.d.ts +10 -0
  254. package/dist/docsearch/components/Modal.d.ts.map +1 -0
  255. package/dist/docsearch/components/Modal.js +57 -0
  256. package/dist/docsearch/components/Results.d.ts +23 -0
  257. package/dist/docsearch/components/Results.d.ts.map +1 -0
  258. package/dist/docsearch/components/Results.js +141 -0
  259. package/dist/docsearch/components/SearchBox.d.ts +11 -0
  260. package/dist/docsearch/components/SearchBox.d.ts.map +1 -0
  261. package/dist/docsearch/components/SearchBox.js +16 -0
  262. package/dist/docsearch/hooks/useDocSearch.d.ts +33 -0
  263. package/dist/docsearch/hooks/useDocSearch.d.ts.map +1 -0
  264. package/dist/docsearch/hooks/useDocSearch.js +224 -0
  265. package/dist/docsearch/hooks/useKeyboard.d.ts +17 -0
  266. package/dist/docsearch/hooks/useKeyboard.d.ts.map +1 -0
  267. package/dist/docsearch/hooks/useKeyboard.js +71 -0
  268. package/dist/docsearch/hooks/useSeekoraSearch.d.ts +27 -0
  269. package/dist/docsearch/hooks/useSeekoraSearch.d.ts.map +1 -0
  270. package/dist/docsearch/hooks/useSeekoraSearch.js +213 -0
  271. package/dist/docsearch/index.d.ts +13 -0
  272. package/dist/docsearch/index.d.ts.map +1 -0
  273. package/dist/docsearch/index.js +11 -0
  274. package/dist/docsearch/types.d.ts +175 -0
  275. package/dist/docsearch/types.d.ts.map +1 -0
  276. package/dist/docsearch/types.js +4 -0
  277. package/dist/docsearch.css +234 -0
  278. package/dist/hooks/useAnalytics.d.ts +24 -0
  279. package/dist/hooks/useAnalytics.d.ts.map +1 -0
  280. package/dist/hooks/useAnalytics.js +67 -0
  281. package/dist/hooks/useClickTracking.d.ts +36 -0
  282. package/dist/hooks/useClickTracking.d.ts.map +1 -0
  283. package/dist/hooks/useClickTracking.js +89 -0
  284. package/dist/hooks/useExperiment.d.ts +25 -0
  285. package/dist/hooks/useExperiment.d.ts.map +1 -0
  286. package/dist/hooks/useExperiment.js +123 -0
  287. package/dist/hooks/useFilters.d.ts +27 -0
  288. package/dist/hooks/useFilters.d.ts.map +1 -0
  289. package/dist/hooks/useFilters.js +86 -0
  290. package/dist/hooks/useKeyboardNavigation.d.ts +51 -0
  291. package/dist/hooks/useKeyboardNavigation.d.ts.map +1 -0
  292. package/dist/hooks/useKeyboardNavigation.js +113 -0
  293. package/dist/hooks/useNaturalLanguageFilters.d.ts +48 -0
  294. package/dist/hooks/useNaturalLanguageFilters.d.ts.map +1 -0
  295. package/dist/hooks/useNaturalLanguageFilters.js +221 -0
  296. package/dist/hooks/useProductAnalytics.d.ts +49 -0
  297. package/dist/hooks/useProductAnalytics.d.ts.map +1 -0
  298. package/dist/hooks/useProductAnalytics.js +116 -0
  299. package/dist/hooks/useQuerySuggestions.d.ts +21 -0
  300. package/dist/hooks/useQuerySuggestions.d.ts.map +1 -0
  301. package/dist/hooks/useQuerySuggestions.js +84 -0
  302. package/dist/hooks/useQuerySuggestionsEnhanced.d.ts +120 -0
  303. package/dist/hooks/useQuerySuggestionsEnhanced.d.ts.map +1 -0
  304. package/dist/hooks/useQuerySuggestionsEnhanced.js +444 -0
  305. package/dist/hooks/useSearchState.d.ts +35 -0
  306. package/dist/hooks/useSearchState.d.ts.map +1 -0
  307. package/dist/hooks/useSearchState.js +68 -0
  308. package/dist/hooks/useSeekoraSearch.d.ts +20 -0
  309. package/dist/hooks/useSeekoraSearch.d.ts.map +1 -0
  310. package/dist/hooks/useSeekoraSearch.js +63 -0
  311. package/dist/hooks/useSmartSuggestions.d.ts +55 -0
  312. package/dist/hooks/useSmartSuggestions.d.ts.map +1 -0
  313. package/dist/hooks/useSmartSuggestions.js +236 -0
  314. package/dist/hooks/useSuggestionsAnalytics.d.ts +93 -0
  315. package/dist/hooks/useSuggestionsAnalytics.d.ts.map +1 -0
  316. package/dist/hooks/useSuggestionsAnalytics.js +239 -0
  317. package/dist/hooks/useVariantSelection.d.ts +28 -0
  318. package/dist/hooks/useVariantSelection.d.ts.map +1 -0
  319. package/dist/hooks/useVariantSelection.js +44 -0
  320. package/dist/index.d.ts +105 -0
  321. package/dist/index.d.ts.map +1 -0
  322. package/dist/index.js +110 -0
  323. package/dist/index.umd.js +1 -0
  324. package/dist/src/index.d.ts +4469 -0
  325. package/dist/src/index.esm.js +18952 -0
  326. package/dist/src/index.esm.js.map +1 -0
  327. package/dist/src/index.js +19086 -0
  328. package/dist/src/index.js.map +1 -0
  329. package/dist/themes/createTheme.d.ts +8 -0
  330. package/dist/themes/createTheme.d.ts.map +1 -0
  331. package/dist/themes/createTheme.js +10 -0
  332. package/dist/themes/dark.d.ts +6 -0
  333. package/dist/themes/dark.d.ts.map +1 -0
  334. package/dist/themes/dark.js +34 -0
  335. package/dist/themes/default.d.ts +6 -0
  336. package/dist/themes/default.d.ts.map +1 -0
  337. package/dist/themes/default.js +71 -0
  338. package/dist/themes/mergeThemes.d.ts +7 -0
  339. package/dist/themes/mergeThemes.d.ts.map +1 -0
  340. package/dist/themes/mergeThemes.js +6 -0
  341. package/dist/themes/minimal.d.ts +6 -0
  342. package/dist/themes/minimal.d.ts.map +1 -0
  343. package/dist/themes/minimal.js +34 -0
  344. package/dist/themes/suggestions.d.ts +216 -0
  345. package/dist/themes/suggestions.d.ts.map +1 -0
  346. package/dist/themes/suggestions.js +546 -0
  347. package/dist/themes/types.d.ts +7 -0
  348. package/dist/themes/types.d.ts.map +1 -0
  349. package/dist/themes/types.js +6 -0
  350. package/dist/types/index.d.ts +33 -0
  351. package/dist/types/index.d.ts.map +1 -0
  352. package/dist/types/index.js +4 -0
  353. package/dist/utils/responsive.d.ts +130 -0
  354. package/dist/utils/responsive.d.ts.map +1 -0
  355. package/dist/utils/responsive.js +225 -0
  356. package/package.json +68 -0
  357. package/src/docsearch/docsearch.css +234 -0
@@ -0,0 +1,213 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import { SeekoraClient } from '@seekora-ai/search-sdk';
3
+ /** Build hierarchy from doc: either nested doc.hierarchy or flat keys like doc['hierarchy.lvl0'] */
4
+ function getHierarchy(doc) {
5
+ const hierarchy = {};
6
+ if (doc?.hierarchy && typeof doc.hierarchy === 'object') {
7
+ hierarchy.lvl0 = doc.hierarchy.lvl0;
8
+ hierarchy.lvl1 = doc.hierarchy.lvl1;
9
+ hierarchy.lvl2 = doc.hierarchy.lvl2;
10
+ hierarchy.lvl3 = doc.hierarchy.lvl3;
11
+ hierarchy.lvl4 = doc.hierarchy.lvl4;
12
+ hierarchy.lvl5 = doc.hierarchy.lvl5;
13
+ }
14
+ else if (doc && typeof doc === 'object') {
15
+ hierarchy.lvl0 = doc['hierarchy.lvl0'];
16
+ hierarchy.lvl1 = doc['hierarchy.lvl1'];
17
+ hierarchy.lvl2 = doc['hierarchy.lvl2'];
18
+ hierarchy.lvl3 = doc['hierarchy.lvl3'];
19
+ hierarchy.lvl4 = doc['hierarchy.lvl4'];
20
+ hierarchy.lvl5 = doc['hierarchy.lvl5'];
21
+ }
22
+ return hierarchy;
23
+ }
24
+ function transformResults(results) {
25
+ const stripMark = (s) => typeof s === 'string' ? s.replace(/<\/?mark>/g, '') : (s ? String(s) : '');
26
+ return results.map((result) => {
27
+ const doc = result?.document ?? result;
28
+ const hierarchy = getHierarchy(doc);
29
+ const url = doc.url || result.url || doc.route || result.route || doc.link || result.link || '';
30
+ const rawTitle = doc.title || result.title || doc.name || result.name || hierarchy?.lvl3 || hierarchy?.lvl2 || hierarchy?.lvl1 || hierarchy?.lvl0 || '';
31
+ const content = doc.content ?? result.content ?? doc.description ?? result.description ?? doc.snippet ?? result.snippet ?? '';
32
+ const description = doc.description ?? result.description ?? (typeof content === 'string' ? content.substring(0, 150) : '');
33
+ const plainTitle = stripMark(rawTitle) || stripMark(hierarchy?.lvl3) || stripMark(hierarchy?.lvl2) || stripMark(hierarchy?.lvl1) || stripMark(hierarchy?.lvl0) || 'Untitled';
34
+ const plainContent = stripMark(content)?.substring(0, 200) || content;
35
+ const apiHighlight = result?.highlight ?? doc?.highlight;
36
+ const highlightTitle = typeof apiHighlight?.title === 'string' ? apiHighlight.title : undefined;
37
+ const highlightContent = typeof apiHighlight?.content === 'string' ? apiHighlight.content : undefined;
38
+ return {
39
+ url,
40
+ title: plainTitle,
41
+ content: plainContent,
42
+ description: stripMark(description) || description,
43
+ category: doc.category ?? result.category ?? hierarchy?.lvl0 ?? '',
44
+ hierarchy,
45
+ route: doc.route ?? result.route,
46
+ parentTitle: doc.parent_title ?? doc.parentTitle ?? result.parent_title ?? result.parentTitle,
47
+ type: doc.type ?? result.type ?? '',
48
+ anchor: doc.anchor ?? result.anchor ?? '',
49
+ _source: 'seekora',
50
+ highlight: (highlightTitle ?? highlightContent) ? { title: highlightTitle, content: highlightContent } : undefined,
51
+ };
52
+ });
53
+ }
54
+ export function useSeekoraSearch(options) {
55
+ const { storeId, storeSecret, apiEndpoint, maxResults = 20, debounceMs = 200, analyticsTags = ['docsearch'], groupField = 'hierarchy.lvl3', groupSize = 10, } = options;
56
+ const [query, setQueryState] = useState('');
57
+ const [suggestions, setSuggestions] = useState([]);
58
+ const [isLoading, setIsLoading] = useState(false);
59
+ const [error, setError] = useState(null);
60
+ const [selectedIndex, setSelectedIndex] = useState(0);
61
+ const clientRef = useRef(null);
62
+ const lastSearchContextRef = useRef(null);
63
+ const debounceTimerRef = useRef(null);
64
+ const abortControllerRef = useRef(null);
65
+ useEffect(() => {
66
+ if (!storeId)
67
+ return;
68
+ const config = {
69
+ storeId,
70
+ readSecret: storeSecret,
71
+ logLevel: 'warn',
72
+ enableContextCollection: true,
73
+ enableEventQueue: true, // Enable batching for better performance
74
+ eventQueue: {
75
+ batchSize: 10,
76
+ flushInterval: 5000, // 5 seconds
77
+ enablePersistence: true,
78
+ },
79
+ };
80
+ if (apiEndpoint) {
81
+ if (['local', 'stage', 'production'].includes(apiEndpoint)) {
82
+ config.environment = apiEndpoint;
83
+ }
84
+ else {
85
+ // Search SDK path is /v1/search; backend serves at /api/v1/search. baseUrl must include /api.
86
+ const base = apiEndpoint.replace(/\/$/, '');
87
+ config.baseUrl = base.endsWith('/api') ? base : `${base}/api`;
88
+ }
89
+ }
90
+ try {
91
+ clientRef.current = new SeekoraClient(config);
92
+ }
93
+ catch (err) {
94
+ console.error('Failed to initialize SeekoraClient:', err);
95
+ setError('Failed to initialize search client');
96
+ }
97
+ return () => {
98
+ clientRef.current = null;
99
+ };
100
+ }, [storeId, storeSecret, apiEndpoint]);
101
+ const performSearch = useCallback(async (searchQuery) => {
102
+ if (!clientRef.current) {
103
+ setError('Search client not initialized');
104
+ return;
105
+ }
106
+ if (!searchQuery.trim()) {
107
+ setSuggestions([]);
108
+ return;
109
+ }
110
+ if (abortControllerRef.current)
111
+ abortControllerRef.current.abort();
112
+ abortControllerRef.current = new AbortController();
113
+ setIsLoading(true);
114
+ setError(null);
115
+ try {
116
+ const response = await clientRef.current.search(searchQuery, {
117
+ per_page: maxResults,
118
+ analytics_tags: analyticsTags,
119
+ return_fields: [
120
+ 'hierarchy.lvl0', 'hierarchy.lvl1', 'hierarchy.lvl2', 'hierarchy.lvl3',
121
+ 'hierarchy.lvl4', 'hierarchy.lvl5', 'hierarchy.lvl6',
122
+ 'content', 'type', 'url', 'title', 'anchor'
123
+ ],
124
+ snippet_fields: [
125
+ 'hierarchy.lvl1', 'hierarchy.lvl2', 'hierarchy.lvl3',
126
+ 'hierarchy.lvl4', 'hierarchy.lvl5', 'hierarchy.lvl6', 'content'
127
+ ],
128
+ snippet_prefix: '<mark>',
129
+ snippet_suffix: '</mark>',
130
+ include_snippets: true,
131
+ group_field: groupField,
132
+ group_size: groupSize,
133
+ });
134
+ if (abortControllerRef.current?.signal.aborted)
135
+ return;
136
+ if (response?.context)
137
+ lastSearchContextRef.current = response.context;
138
+ setSuggestions(transformResults(response.results || []));
139
+ setSelectedIndex(0);
140
+ }
141
+ catch (err) {
142
+ if (err instanceof Error && err.name === 'AbortError')
143
+ return;
144
+ console.error('Search failed:', err);
145
+ setError(err instanceof Error ? err.message : 'Search failed');
146
+ setSuggestions([]);
147
+ }
148
+ finally {
149
+ setIsLoading(false);
150
+ }
151
+ }, [maxResults, analyticsTags, groupField, groupSize]);
152
+ const setQuery = useCallback((newQuery) => {
153
+ setQueryState(newQuery);
154
+ setSelectedIndex(0);
155
+ if (debounceTimerRef.current)
156
+ clearTimeout(debounceTimerRef.current);
157
+ debounceTimerRef.current = setTimeout(() => performSearch(newQuery), debounceMs);
158
+ }, [performSearch, debounceMs]);
159
+ const selectNext = useCallback(() => {
160
+ setSelectedIndex((prev) => (prev >= suggestions.length - 1 ? 0 : prev + 1));
161
+ }, [suggestions.length]);
162
+ const selectPrev = useCallback(() => {
163
+ setSelectedIndex((prev) => (prev <= 0 ? suggestions.length - 1 : prev - 1));
164
+ }, [suggestions.length]);
165
+ const reset = useCallback(() => {
166
+ if (abortControllerRef.current)
167
+ abortControllerRef.current.abort();
168
+ if (debounceTimerRef.current)
169
+ clearTimeout(debounceTimerRef.current);
170
+ setQueryState('');
171
+ setSuggestions([]);
172
+ setIsLoading(false);
173
+ setError(null);
174
+ setSelectedIndex(0);
175
+ }, []);
176
+ const getSelectedItem = useCallback(() => {
177
+ return suggestions[selectedIndex] || null;
178
+ }, [suggestions, selectedIndex]);
179
+ const trackDocClick = useCallback((hit, position) => {
180
+ const client = clientRef.current;
181
+ if (!client?.trackEvent)
182
+ return;
183
+ const context = lastSearchContextRef.current ?? undefined;
184
+ const itemId = hit.url || hit.id || hit.title || String(position);
185
+ client.trackEvent({
186
+ event_name: 'doc_click',
187
+ clicked_item_id: itemId,
188
+ metadata: { position, result: hit, source: 'docsearch' },
189
+ }, context);
190
+ }, []);
191
+ useEffect(() => {
192
+ return () => {
193
+ if (abortControllerRef.current)
194
+ abortControllerRef.current.abort();
195
+ if (debounceTimerRef.current)
196
+ clearTimeout(debounceTimerRef.current);
197
+ };
198
+ }, []);
199
+ return {
200
+ query,
201
+ suggestions,
202
+ isLoading,
203
+ error,
204
+ selectedIndex,
205
+ setQuery,
206
+ selectNext,
207
+ selectPrev,
208
+ setSelectedIndex,
209
+ reset,
210
+ getSelectedItem,
211
+ trackDocClick,
212
+ };
213
+ }
@@ -0,0 +1,13 @@
1
+ export { DocSearch } from './components/DocSearch';
2
+ export { DocSearchButton } from './components/DocSearchButton';
3
+ export { Modal } from './components/Modal';
4
+ export { SearchBox } from './components/SearchBox';
5
+ export { Results } from './components/Results';
6
+ export { Hit } from './components/Hit';
7
+ export { Highlight, truncateAroundMatch } from './components/Highlight';
8
+ export { Footer } from './components/Footer';
9
+ export { useDocSearch } from './hooks/useDocSearch';
10
+ export { useSeekoraSearch, type UseSeekoraSearchOptions, type UseSeekoraSearchResult } from './hooks/useSeekoraSearch';
11
+ export { useKeyboard, getShortcutText } from './hooks/useKeyboard';
12
+ export type { DocSearchProps, DocSearchButtonProps, DocSearchHit, DocSearchSuggestion, DocSearchResponse, DocSearchSuggestionsResponse, DocSearchTranslations, DocSearchState, DocSearchAction, SearchSource, } from './types';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/docsearch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnE,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,4BAA4B,EAC5B,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,SAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { DocSearch } from './components/DocSearch';
2
+ export { DocSearchButton } from './components/DocSearchButton';
3
+ export { Modal } from './components/Modal';
4
+ export { SearchBox } from './components/SearchBox';
5
+ export { Results } from './components/Results';
6
+ export { Hit } from './components/Hit';
7
+ export { Highlight, truncateAroundMatch } from './components/Highlight';
8
+ export { Footer } from './components/Footer';
9
+ export { useDocSearch } from './hooks/useDocSearch';
10
+ export { useSeekoraSearch } from './hooks/useSeekoraSearch';
11
+ export { useKeyboard, getShortcutText } from './hooks/useKeyboard';
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Seekora DocSearch Types
3
+ */
4
+ import type React from "react";
5
+ export interface DocSearchHit {
6
+ objectID: string;
7
+ url: string;
8
+ anchor?: string;
9
+ title: string;
10
+ content: string;
11
+ section_level: number;
12
+ hierarchy: {
13
+ lvl0?: string;
14
+ lvl1?: string;
15
+ lvl2?: string;
16
+ lvl3?: string;
17
+ lvl4?: string;
18
+ lvl5?: string;
19
+ };
20
+ _highlightResult?: {
21
+ title?: {
22
+ value: string;
23
+ matchLevel: string;
24
+ };
25
+ content?: {
26
+ value: string;
27
+ matchLevel: string;
28
+ };
29
+ hierarchy?: {
30
+ lvl0?: {
31
+ value: string;
32
+ matchLevel: string;
33
+ };
34
+ lvl1?: {
35
+ value: string;
36
+ matchLevel: string;
37
+ };
38
+ lvl2?: {
39
+ value: string;
40
+ matchLevel: string;
41
+ };
42
+ lvl3?: {
43
+ value: string;
44
+ matchLevel: string;
45
+ };
46
+ };
47
+ };
48
+ _source?: string;
49
+ }
50
+ export interface DocSearchSuggestion {
51
+ url: string;
52
+ title: string;
53
+ content?: string;
54
+ description?: string;
55
+ category?: string;
56
+ hierarchy?: {
57
+ lvl0?: string;
58
+ lvl1?: string;
59
+ lvl2?: string;
60
+ lvl3?: string;
61
+ lvl4?: string;
62
+ lvl5?: string;
63
+ };
64
+ highlight?: {
65
+ title?: string;
66
+ content?: string;
67
+ };
68
+ _source?: string;
69
+ route?: string;
70
+ parentTitle?: string;
71
+ type?: string;
72
+ anchor?: string;
73
+ }
74
+ export interface SearchSource {
75
+ id: string;
76
+ name: string;
77
+ endpoint: string;
78
+ apiKey?: string;
79
+ storeId?: string;
80
+ storeSecret?: string;
81
+ maxResults?: number;
82
+ minQueryLength?: number;
83
+ transformResults?: (data: any) => DocSearchSuggestion[];
84
+ openInNewTab?: boolean;
85
+ icon?: string;
86
+ }
87
+ export interface DocSearchResponse {
88
+ hits: DocSearchHit[];
89
+ query: string;
90
+ total?: number;
91
+ page?: number;
92
+ nbPages?: number;
93
+ }
94
+ export interface DocSearchSuggestionsResponse {
95
+ suggestions: DocSearchSuggestion[];
96
+ query: string;
97
+ }
98
+ export interface DocSearchProps {
99
+ storeId?: string;
100
+ storeSecret?: string;
101
+ seekoraApiEndpoint?: string;
102
+ apiEndpoint?: string;
103
+ apiKey?: string;
104
+ sources?: SearchSource[];
105
+ indexName?: string;
106
+ placeholder?: string;
107
+ maxResults?: number;
108
+ debounceMs?: number;
109
+ onSelect?: (hit: DocSearchHit | DocSearchSuggestion) => void;
110
+ onClose?: () => void;
111
+ translations?: DocSearchTranslations;
112
+ renderButton?: boolean;
113
+ buttonComponent?: React.ComponentType<DocSearchButtonProps>;
114
+ initialOpen?: boolean;
115
+ disableShortcut?: boolean;
116
+ shortcutKey?: string;
117
+ /** Post-process results per source (e.g. filter by permission, resolve :storeId). */
118
+ processGroupedResults?: (sourceId: string, items: DocSearchSuggestion[]) => DocSearchSuggestion[];
119
+ /** Additional CSS class applied to the modal overlay and container — use to scope CSS variable overrides. */
120
+ className?: string;
121
+ }
122
+ export interface DocSearchButtonProps {
123
+ onClick: () => void;
124
+ placeholder?: string;
125
+ /** Additional CSS class for the button element. */
126
+ className?: string;
127
+ }
128
+ export interface DocSearchTranslations {
129
+ buttonText?: string;
130
+ buttonAriaLabel?: string;
131
+ searchPlaceholder?: string;
132
+ noResultsText?: string;
133
+ errorText?: string;
134
+ footerText?: string;
135
+ closeText?: string;
136
+ searchByText?: string;
137
+ }
138
+ export interface DocSearchState {
139
+ query: string;
140
+ results: DocSearchHit[];
141
+ suggestions: DocSearchSuggestion[];
142
+ isLoading: boolean;
143
+ error: string | null;
144
+ selectedIndex: number;
145
+ mode: "suggestions" | "results";
146
+ }
147
+ export type DocSearchAction = {
148
+ type: "SET_QUERY";
149
+ payload: string;
150
+ } | {
151
+ type: "SET_RESULTS";
152
+ payload: DocSearchHit[];
153
+ } | {
154
+ type: "SET_SUGGESTIONS";
155
+ payload: DocSearchSuggestion[];
156
+ } | {
157
+ type: "SET_LOADING";
158
+ payload: boolean;
159
+ } | {
160
+ type: "SET_ERROR";
161
+ payload: string | null;
162
+ } | {
163
+ type: "SET_SELECTED_INDEX";
164
+ payload: number;
165
+ } | {
166
+ type: "SELECT_NEXT";
167
+ } | {
168
+ type: "SELECT_PREV";
169
+ } | {
170
+ type: "SET_MODE";
171
+ payload: "suggestions" | "results";
172
+ } | {
173
+ type: "RESET";
174
+ };
175
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/docsearch/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Seekora DocSearch Types
3
+ */
4
+ export {};
@@ -0,0 +1,234 @@
1
+ /**
2
+ * Seekora DocSearch CSS - bundled with @seekora/ui-sdk-react
3
+ * Override CSS variables to customize. Dark mode: [data-theme="dark"] or prefers-color-scheme.
4
+ */
5
+
6
+ :root {
7
+ --seekora-docsearch-primary: #5468ff;
8
+ --seekora-docsearch-primary-hover: #4458e8;
9
+ --seekora-docsearch-text: #1a1a1a;
10
+ --seekora-docsearch-text-muted: #6b7280;
11
+ --seekora-docsearch-text-secondary: #9ca3af;
12
+ --seekora-docsearch-background: #ffffff;
13
+ --seekora-docsearch-background-secondary: #f9fafb;
14
+ --seekora-docsearch-border: #e5e7eb;
15
+ --seekora-docsearch-border-light: #f3f4f6;
16
+ --seekora-docsearch-shadow: rgba(0, 0, 0, 0.1);
17
+ --seekora-docsearch-shadow-strong: rgba(0, 0, 0, 0.2);
18
+ --seekora-docsearch-overlay: rgba(0, 0, 0, 0.4);
19
+ --seekora-docsearch-highlight-bg: rgba(84, 104, 255, 0.1);
20
+ --seekora-docsearch-highlight-text: #5468ff;
21
+ --seekora-docsearch-hit-bg: transparent;
22
+ --seekora-docsearch-hit-bg-hover: #f3f4f6;
23
+ --seekora-docsearch-hit-bg-selected: #eef2ff;
24
+ --seekora-docsearch-icon: #9ca3af;
25
+ --seekora-docsearch-icon-active: #5468ff;
26
+ --seekora-docsearch-key-bg: #f3f4f6;
27
+ --seekora-docsearch-key-border: #d1d5db;
28
+ --seekora-docsearch-key-text: #6b7280;
29
+ --seekora-docsearch-spacing-xs: 4px;
30
+ --seekora-docsearch-spacing-sm: 8px;
31
+ --seekora-docsearch-spacing-md: 12px;
32
+ --seekora-docsearch-spacing-lg: 16px;
33
+ --seekora-docsearch-spacing-xl: 24px;
34
+ --seekora-docsearch-font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
35
+ --seekora-docsearch-font-size-xs: 11px;
36
+ --seekora-docsearch-font-size-sm: 13px;
37
+ --seekora-docsearch-font-size-md: 14px;
38
+ --seekora-docsearch-font-size-lg: 16px;
39
+ --seekora-docsearch-font-weight-normal: 400;
40
+ --seekora-docsearch-font-weight-medium: 500;
41
+ --seekora-docsearch-font-weight-semibold: 600;
42
+ --seekora-docsearch-line-height: 1.5;
43
+ --seekora-docsearch-radius-sm: 4px;
44
+ --seekora-docsearch-radius-md: 8px;
45
+ --seekora-docsearch-radius-lg: 12px;
46
+ --seekora-docsearch-radius-xl: 16px;
47
+ --seekora-docsearch-transition-fast: 100ms;
48
+ --seekora-docsearch-transition-normal: 150ms;
49
+ --seekora-docsearch-transition-slow: 200ms;
50
+ --seekora-docsearch-modal-width: 560px;
51
+ --seekora-docsearch-modal-max-height: 80vh;
52
+ --seekora-docsearch-modal-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
53
+ --seekora-docsearch-z-index: 99999;
54
+ }
55
+
56
+ [data-theme="dark"], .dark {
57
+ --seekora-docsearch-primary: #7c8aff;
58
+ --seekora-docsearch-primary-hover: #6e7dff;
59
+ --seekora-docsearch-text: #f9fafb;
60
+ --seekora-docsearch-text-muted: #9ca3af;
61
+ --seekora-docsearch-text-secondary: #6b7280;
62
+ --seekora-docsearch-background: #1f2937;
63
+ --seekora-docsearch-background-secondary: #111827;
64
+ --seekora-docsearch-border: #374151;
65
+ --seekora-docsearch-border-light: #374151;
66
+ --seekora-docsearch-shadow: rgba(0, 0, 0, 0.3);
67
+ --seekora-docsearch-shadow-strong: rgba(0, 0, 0, 0.5);
68
+ --seekora-docsearch-overlay: rgba(0, 0, 0, 0.6);
69
+ --seekora-docsearch-highlight-bg: rgba(124, 138, 255, 0.15);
70
+ --seekora-docsearch-highlight-text: #a5b4fc;
71
+ --seekora-docsearch-hit-bg: transparent;
72
+ --seekora-docsearch-hit-bg-hover: #374151;
73
+ --seekora-docsearch-hit-bg-selected: #312e81;
74
+ --seekora-docsearch-icon: #6b7280;
75
+ --seekora-docsearch-icon-active: #7c8aff;
76
+ --seekora-docsearch-key-bg: #374151;
77
+ --seekora-docsearch-key-border: #4b5563;
78
+ --seekora-docsearch-key-text: #9ca3af;
79
+ }
80
+
81
+ @media (prefers-color-scheme: dark) {
82
+ :root:not([data-theme="light"]):not(.light) {
83
+ --seekora-docsearch-primary: #7c8aff;
84
+ --seekora-docsearch-primary-hover: #6e7dff;
85
+ --seekora-docsearch-text: #f9fafb;
86
+ --seekora-docsearch-text-muted: #9ca3af;
87
+ --seekora-docsearch-text-secondary: #6b7280;
88
+ --seekora-docsearch-background: #1f2937;
89
+ --seekora-docsearch-background-secondary: #111827;
90
+ --seekora-docsearch-border: #374151;
91
+ --seekora-docsearch-border-light: #374151;
92
+ --seekora-docsearch-shadow: rgba(0, 0, 0, 0.3);
93
+ --seekora-docsearch-shadow-strong: rgba(0, 0, 0, 0.5);
94
+ --seekora-docsearch-overlay: rgba(0, 0, 0, 0.6);
95
+ --seekora-docsearch-highlight-bg: rgba(124, 138, 255, 0.15);
96
+ --seekora-docsearch-highlight-text: #a5b4fc;
97
+ --seekora-docsearch-hit-bg: transparent;
98
+ --seekora-docsearch-hit-bg-hover: #374151;
99
+ --seekora-docsearch-hit-bg-selected: #312e81;
100
+ --seekora-docsearch-icon: #6b7280;
101
+ --seekora-docsearch-icon-active: #7c8aff;
102
+ --seekora-docsearch-key-bg: #374151;
103
+ --seekora-docsearch-key-border: #4b5563;
104
+ --seekora-docsearch-key-text: #9ca3af;
105
+ }
106
+ }
107
+
108
+ .seekora-docsearch-button {
109
+ display: flex;
110
+ align-items: center;
111
+ gap: var(--seekora-docsearch-spacing-sm);
112
+ padding: var(--seekora-docsearch-spacing-sm) var(--seekora-docsearch-spacing-md);
113
+ min-width: 200px;
114
+ height: 40px;
115
+ background: var(--seekora-docsearch-background);
116
+ border: 1px solid var(--seekora-docsearch-border);
117
+ border-radius: var(--seekora-docsearch-radius-md);
118
+ color: var(--seekora-docsearch-text-muted);
119
+ font-family: var(--seekora-docsearch-font-family);
120
+ font-size: var(--seekora-docsearch-font-size-md);
121
+ cursor: pointer;
122
+ transition: all var(--seekora-docsearch-transition-normal) ease;
123
+ box-shadow: 0 1px 2px var(--seekora-docsearch-shadow);
124
+ }
125
+ .seekora-docsearch-button:hover { border-color: var(--seekora-docsearch-primary); box-shadow: 0 2px 4px var(--seekora-docsearch-shadow); }
126
+ .seekora-docsearch-button:focus { outline: none; border-color: var(--seekora-docsearch-primary); box-shadow: 0 0 0 3px var(--seekora-docsearch-highlight-bg); }
127
+ .seekora-docsearch-button-icon { display: flex; align-items: center; justify-content: center; color: var(--seekora-docsearch-icon); flex-shrink: 0; }
128
+ .seekora-docsearch-button-placeholder { flex: 1; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
129
+ .seekora-docsearch-button-keys { display: flex; align-items: center; gap: var(--seekora-docsearch-spacing-xs); flex-shrink: 0; }
130
+ .seekora-docsearch-button-key {
131
+ display: inline-flex; align-items: center; justify-content: center; padding: 2px 6px; min-width: 20px; height: 20px;
132
+ background: var(--seekora-docsearch-key-bg); border: 1px solid var(--seekora-docsearch-key-border);
133
+ border-radius: var(--seekora-docsearch-radius-sm); color: var(--seekora-docsearch-key-text);
134
+ font-family: var(--seekora-docsearch-font-family); font-size: var(--seekora-docsearch-font-size-xs);
135
+ font-weight: var(--seekora-docsearch-font-weight-medium); box-shadow: inset 0 -1px 0 var(--seekora-docsearch-key-border);
136
+ }
137
+ @media (max-width: 640px) {
138
+ .seekora-docsearch-button { min-width: auto; padding: var(--seekora-docsearch-spacing-sm); }
139
+ .seekora-docsearch-button-placeholder { display: none; }
140
+ .seekora-docsearch-button-keys { display: none; }
141
+ }
142
+
143
+ .seekora-docsearch-overlay {
144
+ position: fixed; inset: 0; z-index: var(--seekora-docsearch-z-index);
145
+ display: flex; align-items: flex-start; justify-content: center;
146
+ padding: 10vh var(--seekora-docsearch-spacing-lg);
147
+ background: var(--seekora-docsearch-overlay); backdrop-filter: blur(4px);
148
+ animation: seekora-docsearch-fade-in var(--seekora-docsearch-transition-normal) ease;
149
+ }
150
+ @keyframes seekora-docsearch-fade-in { from { opacity: 0; } to { opacity: 1; } }
151
+ .seekora-docsearch-container { width: 100%; max-width: var(--seekora-docsearch-modal-width); animation: seekora-docsearch-slide-in var(--seekora-docsearch-transition-slow) ease; }
152
+ @keyframes seekora-docsearch-slide-in { from { opacity: 0; transform: translateY(-20px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
153
+ .seekora-docsearch-modal {
154
+ display: flex; flex-direction: column; max-height: var(--seekora-docsearch-modal-max-height);
155
+ background: var(--seekora-docsearch-background); border: 1px solid var(--seekora-docsearch-border);
156
+ border-radius: var(--seekora-docsearch-radius-xl); box-shadow: var(--seekora-docsearch-modal-shadow); overflow: hidden;
157
+ }
158
+ .seekora-docsearch-header { display: flex; align-items: center; gap: var(--seekora-docsearch-spacing-sm); padding: var(--seekora-docsearch-spacing-md); border-bottom: 1px solid var(--seekora-docsearch-border-light); }
159
+ .seekora-docsearch-close {
160
+ display: flex; align-items: center; justify-content: center;
161
+ padding: var(--seekora-docsearch-spacing-xs) var(--seekora-docsearch-spacing-sm);
162
+ background: var(--seekora-docsearch-key-bg); border: 1px solid var(--seekora-docsearch-key-border);
163
+ border-radius: var(--seekora-docsearch-radius-sm); color: var(--seekora-docsearch-key-text);
164
+ font-family: var(--seekora-docsearch-font-family); font-size: var(--seekora-docsearch-font-size-xs);
165
+ font-weight: var(--seekora-docsearch-font-weight-medium); cursor: pointer; transition: all var(--seekora-docsearch-transition-fast) ease; flex-shrink: 0;
166
+ }
167
+ .seekora-docsearch-close:hover { background: var(--seekora-docsearch-hit-bg-hover); border-color: var(--seekora-docsearch-border); }
168
+ .seekora-docsearch-close-text { text-transform: uppercase; letter-spacing: 0.05em; }
169
+ .seekora-docsearch-body { flex: 1; overflow-y: auto; min-height: 0; overscroll-behavior: contain; scroll-behavior: auto; scroll-padding: 8px 0; }
170
+ .seekora-docsearch-body::-webkit-scrollbar { width: 8px; }
171
+ .seekora-docsearch-body::-webkit-scrollbar-track { background: transparent; }
172
+ .seekora-docsearch-body::-webkit-scrollbar-thumb { background: var(--seekora-docsearch-border); border-radius: 4px; }
173
+ .seekora-docsearch-body::-webkit-scrollbar-thumb:hover { background: var(--seekora-docsearch-text-muted); }
174
+ @media (max-width: 640px) {
175
+ .seekora-docsearch-overlay { padding: var(--seekora-docsearch-spacing-md); }
176
+ .seekora-docsearch-modal { max-height: calc(100vh - 32px); border-radius: var(--seekora-docsearch-radius-lg); }
177
+ }
178
+
179
+ .seekora-docsearch-searchbox {
180
+ display: flex; align-items: center; gap: var(--seekora-docsearch-spacing-sm); flex: 1;
181
+ padding: 0 var(--seekora-docsearch-spacing-sm); background: var(--seekora-docsearch-background-secondary);
182
+ border: 1px solid transparent; border-radius: var(--seekora-docsearch-radius-md); transition: all var(--seekora-docsearch-transition-fast) ease;
183
+ }
184
+ .seekora-docsearch-searchbox:focus-within { background: var(--seekora-docsearch-background); border-color: var(--seekora-docsearch-primary); box-shadow: 0 0 0 3px var(--seekora-docsearch-highlight-bg); }
185
+ .seekora-docsearch-searchbox-icon { display: flex; align-items: center; justify-content: center; color: var(--seekora-docsearch-icon); flex-shrink: 0; cursor: default; }
186
+ .seekora-docsearch-searchbox:focus-within .seekora-docsearch-searchbox-icon { color: var(--seekora-docsearch-icon-active); }
187
+ .seekora-docsearch-input {
188
+ flex: 1; padding: var(--seekora-docsearch-spacing-md) var(--seekora-docsearch-spacing-sm);
189
+ background: transparent; border: none; color: var(--seekora-docsearch-text);
190
+ font-family: var(--seekora-docsearch-font-family); font-size: var(--seekora-docsearch-font-size-lg);
191
+ line-height: var(--seekora-docsearch-line-height); outline: none; min-width: 0;
192
+ }
193
+ .seekora-docsearch-input::placeholder { color: var(--seekora-docsearch-text-secondary); }
194
+ .seekora-docsearch-clear { display: flex; align-items: center; justify-content: center; padding: var(--seekora-docsearch-spacing-xs); background: transparent; border: none; border-radius: var(--seekora-docsearch-radius-sm); color: var(--seekora-docsearch-text-muted); cursor: pointer; transition: all var(--seekora-docsearch-transition-fast) ease; flex-shrink: 0; }
195
+ .seekora-docsearch-clear:hover { background: var(--seekora-docsearch-hit-bg-hover); color: var(--seekora-docsearch-text); }
196
+
197
+ .seekora-docsearch-results { padding: var(--seekora-docsearch-spacing-sm) 0; }
198
+ .seekora-docsearch-results-list { list-style: none; margin: 0; padding: 0; }
199
+ .seekora-docsearch-results-group { margin-bottom: var(--seekora-docsearch-spacing-sm); }
200
+ .seekora-docsearch-results-group:last-child { margin-bottom: 0; }
201
+ .seekora-docsearch-results-group-header { padding: var(--seekora-docsearch-spacing-sm) var(--seekora-docsearch-spacing-lg); color: var(--seekora-docsearch-text-muted); font-size: var(--seekora-docsearch-font-size-sm); font-weight: var(--seekora-docsearch-font-weight-semibold); text-transform: uppercase; letter-spacing: 0.05em; }
202
+ .seekora-docsearch-results-group-items { list-style: none; margin: 0; padding: 0; }
203
+ .seekora-docsearch-hit { display: flex; align-items: center; gap: var(--seekora-docsearch-spacing-md); padding: var(--seekora-docsearch-spacing-md) var(--seekora-docsearch-spacing-lg); background: var(--seekora-docsearch-hit-bg); color: var(--seekora-docsearch-text); text-decoration: none; cursor: pointer; transition: background var(--seekora-docsearch-transition-fast) ease; }
204
+ .seekora-docsearch-hit:hover { background: var(--seekora-docsearch-hit-bg-hover); }
205
+ .seekora-docsearch-hit--selected { background: var(--seekora-docsearch-hit-bg-selected); }
206
+ .seekora-docsearch-hit--selected:hover { background: var(--seekora-docsearch-hit-bg-selected); }
207
+ .seekora-docsearch-hit-icon { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: var(--seekora-docsearch-background-secondary); border-radius: var(--seekora-docsearch-radius-md); color: var(--seekora-docsearch-icon); flex-shrink: 0; }
208
+ .seekora-docsearch-hit--selected .seekora-docsearch-hit-icon { background: var(--seekora-docsearch-primary); color: white; }
209
+ .seekora-docsearch-hit-content { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--seekora-docsearch-spacing-xs); }
210
+ .seekora-docsearch-hit-breadcrumb { color: var(--seekora-docsearch-text-secondary); font-size: var(--seekora-docsearch-font-size-xs); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
211
+ .seekora-docsearch-hit-title { color: var(--seekora-docsearch-text); font-size: var(--seekora-docsearch-font-size-md); font-weight: var(--seekora-docsearch-font-weight-medium); line-height: var(--seekora-docsearch-line-height); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
212
+ .seekora-docsearch-hit-description { color: var(--seekora-docsearch-text-muted); font-size: var(--seekora-docsearch-font-size-sm); line-height: var(--seekora-docsearch-line-height); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
213
+ .seekora-docsearch-hit-action { display: flex; align-items: center; justify-content: center; color: var(--seekora-docsearch-text-secondary); flex-shrink: 0; opacity: 0; transition: opacity var(--seekora-docsearch-transition-fast) ease; }
214
+ .seekora-docsearch-hit:hover .seekora-docsearch-hit-action, .seekora-docsearch-hit--selected .seekora-docsearch-hit-action { opacity: 1; }
215
+ .seekora-docsearch-highlight mark { background: var(--seekora-docsearch-highlight-bg); color: var(--seekora-docsearch-highlight-text); font-weight: var(--seekora-docsearch-font-weight-semibold); padding: 0 2px; border-radius: 2px; }
216
+ .seekora-docsearch-empty, .seekora-docsearch-no-results, .seekora-docsearch-error { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: var(--seekora-docsearch-spacing-xl); text-align: center; }
217
+ .seekora-docsearch-empty-text, .seekora-docsearch-no-results-text, .seekora-docsearch-error-text { color: var(--seekora-docsearch-text-muted); font-size: var(--seekora-docsearch-font-size-md); margin: 0; }
218
+ .seekora-docsearch-error-text { color: #ef4444; }
219
+ .seekora-docsearch-hit--child { padding-left: var(--seekora-docsearch-spacing-md); }
220
+ .seekora-docsearch-hit--child .seekora-docsearch-hit-icon { width: 32px; height: 32px; }
221
+ .seekora-docsearch-hit-tree { display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--seekora-docsearch-border); }
222
+ .seekora-docsearch-hit-tree-icon { width: 16px; height: 20px; color: var(--seekora-docsearch-border); }
223
+
224
+ .seekora-docsearch-footer { display: flex; align-items: center; justify-content: space-between; padding: var(--seekora-docsearch-spacing-md) var(--seekora-docsearch-spacing-lg); background: var(--seekora-docsearch-background-secondary); border-top: 1px solid var(--seekora-docsearch-border-light); }
225
+ .seekora-docsearch-footer-commands { display: flex; align-items: center; }
226
+ .seekora-docsearch-footer-commands-list { display: flex; align-items: center; gap: var(--seekora-docsearch-spacing-lg); list-style: none; margin: 0; padding: 0; }
227
+ .seekora-docsearch-footer-command { display: flex; align-items: center; gap: var(--seekora-docsearch-spacing-xs); color: var(--seekora-docsearch-text-muted); font-size: var(--seekora-docsearch-font-size-xs); }
228
+ .seekora-docsearch-key { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 4px; background: var(--seekora-docsearch-key-bg); border: 1px solid var(--seekora-docsearch-key-border); border-radius: var(--seekora-docsearch-radius-sm); color: var(--seekora-docsearch-key-text); font-family: var(--seekora-docsearch-font-family); font-size: var(--seekora-docsearch-font-size-xs); font-weight: var(--seekora-docsearch-font-weight-medium); box-shadow: inset 0 -1px 0 var(--seekora-docsearch-key-border); }
229
+ .seekora-docsearch-footer-logo { display: flex; align-items: center; gap: var(--seekora-docsearch-spacing-sm); }
230
+ .seekora-docsearch-footer-logo-text { color: var(--seekora-docsearch-text-secondary); font-size: var(--seekora-docsearch-font-size-xs); }
231
+ .seekora-docsearch-footer-logo-link { display: flex; align-items: center; color: var(--seekora-docsearch-text); text-decoration: none; transition: color var(--seekora-docsearch-transition-fast) ease; }
232
+ .seekora-docsearch-footer-logo-link:hover { color: var(--seekora-docsearch-primary); }
233
+ .seekora-docsearch-logo { height: 16px; width: auto; }
234
+ @media (max-width: 640px) { .seekora-docsearch-footer { justify-content: center; } .seekora-docsearch-footer-commands { display: none; } }