diff --git a/src/Elastic.Documentation.Site/.gitignore b/src/Elastic.Documentation.Site/.gitignore
index 919143418..e7a86be8c 100644
--- a/src/Elastic.Documentation.Site/.gitignore
+++ b/src/Elastic.Documentation.Site/.gitignore
@@ -1,11 +1,7 @@
.parcel-cache/
node_modules/
-_static/main.js
-_static/main.js.map
-_static/custom-elements.js
-_static/custom-elements.js.map
-_static/pages-nav.js
-_static/pages-nav.js.map
_static/styles.css
_static/styles.css.map
_static/*.woff2
+_static/*.js
+_static/*.js.map
diff --git a/src/Elastic.Documentation.Site/Assets/web-components/SearchOrAskAi/SearchOrAskAiButton.tsx b/src/Elastic.Documentation.Site/Assets/web-components/SearchOrAskAi/SearchOrAskAiButton.tsx
index 0006f0845..23ab5b61c 100644
--- a/src/Elastic.Documentation.Site/Assets/web-components/SearchOrAskAi/SearchOrAskAiButton.tsx
+++ b/src/Elastic.Documentation.Site/Assets/web-components/SearchOrAskAi/SearchOrAskAiButton.tsx
@@ -1,5 +1,5 @@
+/** @jsxImportSource @emotion/react */
import '../../eui-icons-cache'
-import { SearchOrAskAiModal } from './SearchOrAskAiModal'
import { useModalActions, useModalIsOpen } from './modal.store'
import { useSearchActions, useSearchTerm } from './search.store'
import {
@@ -10,10 +10,18 @@ import {
EuiPanel,
EuiTextTruncate,
EuiText,
+ EuiLoadingSpinner,
} from '@elastic/eui'
import { css } from '@emotion/react'
import * as React from 'react'
-import { useEffect } from 'react'
+import { useEffect, Suspense, lazy } from 'react'
+
+// Lazy load the modal component
+const SearchOrAskAiModal = lazy(() =>
+ import('./SearchOrAskAiModal').then((module) => ({
+ default: module.SearchOrAskAiModal,
+ }))
+)
export const SearchOrAskAiButton = () => {
const searchTerm = useSearchTerm()
@@ -30,6 +38,13 @@ export const SearchOrAskAiButton = () => {
max-width: 100%;
`
+ const loadingCss = css`
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 2rem;
+ `
+
useEffect(() => {
const handleKeydown = (event: KeyboardEvent) => {
if (event.key === 'Escape') {
@@ -81,7 +96,15 @@ export const SearchOrAskAiButton = () => {
-
+
+
+
+ }
+ >
+
+
diff --git a/src/Elastic.Documentation.Site/Assets/web-components/SearchOrAskAi/SearchOrAskAiModal.tsx b/src/Elastic.Documentation.Site/Assets/web-components/SearchOrAskAi/SearchOrAskAiModal.tsx
index 2580133af..ed4d91c3b 100644
--- a/src/Elastic.Documentation.Site/Assets/web-components/SearchOrAskAi/SearchOrAskAiModal.tsx
+++ b/src/Elastic.Documentation.Site/Assets/web-components/SearchOrAskAi/SearchOrAskAiModal.tsx
@@ -3,7 +3,6 @@ import { Suggestions } from './Suggestions'
import { useAskAiTerm, useSearchActions, useSearchTerm } from './search.store'
import {
EuiFieldSearch,
- EuiPanel,
EuiSpacer,
EuiBetaBadge,
EuiText,
@@ -20,12 +19,7 @@ export const SearchOrAskAiModal = () => {
const { setSearchTerm, submitAskAiTerm } = useSearchActions()
return (
-
+ <>
{
This feature is in beta. Got feedback? We'd love to hear it!
-
+ >
)
}