docs,api-ref: added search filters (#4830)
* initial implementation of search modal * added hit and search suggestions * added support for multiple indices * updated sample env * added close when click outside dropdown * test for mobile * added mobile design * added shortcut * dark mode fixes * added search to docs * added plugins filter * added React import * moved filters to configurations * handled error on page load * change suggestion text * removed hits limit * handle select all * open link in current tab * change highlight colors * added support for shortcuts + auto focus * change header and footer * redesigned search ui
This commit is contained in:
@@ -1,197 +0,0 @@
|
||||
.DocSearch-Modal {
|
||||
@apply border border-solid !border-medusa-border-base dark:!border-medusa-border-base-dark;
|
||||
@apply lg:!rounded !relative;
|
||||
@apply md:!m-[unset] md:w-[560px];
|
||||
}
|
||||
|
||||
.DocSearch-SearchBar {
|
||||
@apply !p-0;
|
||||
}
|
||||
|
||||
.DocSearch-Form {
|
||||
--docsearch-spacing: theme(margin[1.5]);
|
||||
--docsearch-searchbox-height: 56px;
|
||||
--docsearch-searchbox-focus-background: var(--docsearch-modal-background) !important;
|
||||
|
||||
@apply !rounded-t !rounded-b-none border-0 border-b border-solid !border-medusa-border-base dark:!border-medusa-border-base-dark;
|
||||
}
|
||||
|
||||
.DocSearch-LoadingIndicator svg, .DocSearch-MagnifierLabel svg {
|
||||
@apply !w-[20px] !h-[20px];
|
||||
}
|
||||
|
||||
.DocSearch-Input {
|
||||
@apply !text-medium !pl-1;
|
||||
@apply placeholder:text-medusa-fg-muted dark:placeholder:text-medusa-fg-muted-dark;
|
||||
}
|
||||
|
||||
.DocSearch-Dropdown {
|
||||
@apply !pt-0 !pb-2.5 !px-0;
|
||||
@apply !max-h-[416px];
|
||||
}
|
||||
|
||||
.DocSearch-Hit-source {
|
||||
@apply !m-0 !text-compact-small-plus uppercase text-medusa-fg-muted dark:text-medusa-fg-muted-dark;
|
||||
@apply border-0 border-b border-solid border-medusa-border-base dark:border-medusa-border-base-dark;
|
||||
@apply !py-[10px] !px-1.5;
|
||||
}
|
||||
|
||||
.DocSearch-Footer {
|
||||
@apply !hidden;
|
||||
}
|
||||
|
||||
.DocSearch-Hit {
|
||||
@apply !p-0;
|
||||
}
|
||||
|
||||
.DocSearch-Hit:not(.DocSearch-Hit--Child) .DocSearch-Hit-icon {
|
||||
@apply !w-2.5 !h-2.5 p-0.125 border border-solid border-medusa-border-strong dark:border-medusa-border-strong-dark;
|
||||
@apply rounded flex justify-center items-center;
|
||||
@apply before:content-[''] before:w-2 before:h-2 before:bg-no-repeat before:bg-center before:bg-contain before:bg-search-hit dark:before:bg-search-hit-dark;
|
||||
}
|
||||
|
||||
.DocSearch-Hit-icon svg {
|
||||
@apply hidden;
|
||||
}
|
||||
|
||||
.DocSearch-Hit--Child .DocSearch-Hit-icon {
|
||||
@apply hidden;
|
||||
}
|
||||
|
||||
.DocSearch-Hit a {
|
||||
@apply !py-0.75 !px-1.5 !shadow-none !rounded-none;
|
||||
}
|
||||
|
||||
.DocSearch-Hit:not(:last-of-type) a {
|
||||
@apply border-0 border-b border-solid border-medusa-border-base dark:border-medusa-border-base-dark;
|
||||
}
|
||||
|
||||
.DocSearch-Hit-content-wrapper {
|
||||
@apply !mt-0 !mx-1;
|
||||
}
|
||||
|
||||
.DocSearch-Hit-title,
|
||||
.DocSearch-Hit-title mark {
|
||||
@apply !text-medusa-fg-base dark:!text-medusa-fg-base-dark;
|
||||
@apply !text-compact-small-plus;
|
||||
}
|
||||
|
||||
.DocSearch-Hit-path {
|
||||
@apply !text-medusa-fg-subtle dark:!text-medusa-fg-subtle-dark !text-compact-small;
|
||||
}
|
||||
|
||||
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path {
|
||||
--docsearch-hit-active-color: theme(colors.medusa.fg.subtle.DEFAULT);
|
||||
}
|
||||
|
||||
html[data-theme="dark"] .DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path {
|
||||
--docsearch-hit-active-color: theme(colors.medusa.fg.subtle.dark);
|
||||
}
|
||||
|
||||
.DocSearch-Hit[aria-selected=true] a {
|
||||
@apply !bg-medusa-bg-base-hover dark:!bg-medusa-bg-base-hover-dark;
|
||||
}
|
||||
|
||||
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-content-wrapper + .DocSearch-Hit-action:last-child {
|
||||
@apply h-1.5 w-1.5 border border-solid border-medusa-border-strong dark:border-medusa-border-strong-dark;
|
||||
@apply rounded bg-medusa-bg-base dark:bg-medusa-bg-base-dark p-0.125 flex justify-center items-center;
|
||||
@apply before:content-[''] before:w-[20px] before:h-[20px] before:bg-search-arrow dark:before:bg-search-arrow-dark before:bg-no-repeat before:bg-center;
|
||||
}
|
||||
|
||||
.DocSearch-Hit-content-wrapper + .DocSearch-Hit-action:last-child svg,
|
||||
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-content-wrapper + .DocSearch-Hit-action:last-child svg {
|
||||
@apply hidden;
|
||||
}
|
||||
|
||||
.DocSearch-Hit[aria-selected=true] mark {
|
||||
@apply !no-underline;
|
||||
}
|
||||
|
||||
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree {
|
||||
@apply text-medusa-border-strong dark:text-medusa-border-strong-dark;
|
||||
}
|
||||
|
||||
.DocSearch-Hit-Tree {
|
||||
@apply text-medusa-border-base dark:text-medusa-border-base-dark;
|
||||
}
|
||||
|
||||
.DocSearch-HitsFooter {
|
||||
@apply z-[100] absolute bottom-0 left-0 w-full h-2.5 !bg-medusa-bg-base dark:!bg-medusa-bg-base-dark;
|
||||
@apply border-0 border-t border-solid border-medusa-border-base dark:border-medusa-border-base-dark;
|
||||
}
|
||||
|
||||
.DocSearch-HitsFooter a {
|
||||
@apply !border-b-0;
|
||||
}
|
||||
|
||||
.DocSearch-Reset {
|
||||
@apply !rounded transition-all duration-200 ease-ease;
|
||||
@apply hover:bg-medusa-bg-base-hover dark:hover:bg-medusa-bg-base-hover-dark;
|
||||
}
|
||||
|
||||
.DocSearch-NoResults .DocSearch-Screen-Icon {
|
||||
@apply w-[20px] h-[20px] !p-0 flex justify-center items-center mt-0 mb-1 mx-auto;
|
||||
@apply before:content-[''] before:w-full before:h-full before:bg-no-repeat before:bg-center before:bg-contain;
|
||||
@apply before:bg-search-no-result dark:before:bg-search-no-result-dark;
|
||||
}
|
||||
|
||||
.DocSearch-NoResults .DocSearch-Screen-Icon svg {
|
||||
@apply hidden;
|
||||
}
|
||||
|
||||
.DocSearch-NoResults .DocSearch-Title {
|
||||
@apply !text-compact-small !pl-1;
|
||||
}
|
||||
|
||||
.DocSearch-NoResults-Prefill-List {
|
||||
@apply text-center !text-compact-small-plus !pl-1;
|
||||
}
|
||||
|
||||
.DocSearch-NoResults-Prefill-List li::marker {
|
||||
@apply content-[''];
|
||||
}
|
||||
|
||||
.DocSearch-NoResults-Prefill-List li button {
|
||||
@apply text-medusa-fg-base dark:text-medusa-fg-base-dark;
|
||||
}
|
||||
.DocSearch-Button {
|
||||
@apply w-full !h-full !rounded lg:!border lg:!border-solid lg:!border-medusa-border-base lg:dark:!border-medusa-border-base-dark border-0;
|
||||
@apply lg:!bg-medusa-bg-field lg:dark:!bg-medusa-bg-field-dark !bg-transparent;
|
||||
@apply lg:hover:!bg-medusa-bg-field-hover lg:dark:hover:!bg-medusa-bg-field-hover-dark;
|
||||
@apply !py-[6px] !pl-0.5 relative;
|
||||
@apply hover:!border-medusa-border-base hover:dark:!border-medusa-border-base-dark;
|
||||
@apply active:!border-medusa-border-base active:dark:!border-medusa-border-base-dark;
|
||||
@apply focus:!border-medusa-border-base focus:dark:!border-medusa-border-base-dark;
|
||||
}
|
||||
|
||||
.DocSearch-Container {
|
||||
@apply !z-[1001] md:flex md:justify-center md:items-center;
|
||||
}
|
||||
|
||||
.DocSearch-Button .DocSearch-Search-Icon {
|
||||
@apply invisible;
|
||||
}
|
||||
|
||||
.DocSearch-Button-Container {
|
||||
@apply before:content-[''] before:h-[20px] before:w-[20px] before:absolute before:left-0.5 before:top-[5px];
|
||||
@apply before:bg-magnifying-glass dark:before:bg-magnifying-glass-dark before:bg-no-repeat;
|
||||
}
|
||||
|
||||
.DocSearch-Button-Placeholder {
|
||||
@apply text-medusa-fg-muted dark:text-medusa-fg-muted-dark;
|
||||
@apply !pl-0.5 !text-compact-small lg:!block !hidden;
|
||||
}
|
||||
|
||||
.DocSearch-Button-Keys {
|
||||
@apply w-fit !min-w-[unset] lg:!flex !hidden;
|
||||
}
|
||||
|
||||
.DocSearch-Button-Key {
|
||||
@apply !shadow-none !rounded-md !text-compact-x-small-plus !font-base align-middle !p-0.125;
|
||||
@apply !border !border-solid !border-medusa-tag-neutral-border dark:!border-medusa-tag-neutral-border-dark;
|
||||
@apply [&span]:hidden [&:not(:last-child)]:!mr-0.25 last:!mr-0;
|
||||
}
|
||||
|
||||
[class*=searchBox] {
|
||||
@apply lg:w-[280px] lg:max-w-[280px] lg:!h-2 lg:!p-0 !static;
|
||||
}
|
||||
@@ -2,6 +2,17 @@
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
@layer base {
|
||||
body[data-modal="opened"] {
|
||||
@apply !overflow-hidden;
|
||||
}
|
||||
|
||||
mark {
|
||||
@apply bg-medusa-bg-highlight dark:bg-medusa-bg-highlight-dark;
|
||||
@apply text-medusa-fg-interactive dark:text-medusa-fg-interactive-dark;
|
||||
}
|
||||
}
|
||||
|
||||
@layer components {
|
||||
.sidebar-title {
|
||||
@apply !m-0 !py-1 !px-0;
|
||||
@@ -116,13 +127,14 @@
|
||||
@apply inline-flex flex-row justify-center items-center;
|
||||
@apply py-[5px] px-0.75 rounded-sm cursor-pointer;
|
||||
@apply bg-button-neutral bg-medusa-button-neutral dark:bg-button-neutral-dark dark:bg-medusa-button-neutral-dark;
|
||||
@apply hover:bg-medusa-button-neutral-hover hover:bg-button-neutral-hover dark:hover:bg-medusa-button-neutral-hover-dark dark:hover:bg-button-neutral-hover-dark hover:no-underline;
|
||||
@apply active:bg-medusa-button-neutral-pressed active:bg-button-neutral-pressed dark:active:bg-medusa-button-neutral-pressed-dark dark:active:bg-button-neutral-pressed-dark;
|
||||
@apply focus:bg-medusa-button-neutral-pressed focus:bg-button-neutral-pressed dark:focus:bg-medusa-button-neutral-pressed-dark dark:focus:bg-button-neutral-pressed-dark;
|
||||
@apply hover:bg-medusa-button-neutral-hover hover:bg-no-image dark:hover:bg-medusa-button-neutral-hover-dark hover:no-underline;
|
||||
@apply active:bg-medusa-button-neutral-pressed active:bg-no-image dark:active:bg-medusa-button-neutral-pressed-dark;
|
||||
@apply focus:bg-medusa-button-neutral-pressed focus:bg-no-image dark:focus:bg-medusa-button-neutral-pressed-dark;
|
||||
@apply disabled:!bg-no-image disabled:bg-medusa-bg-disabled dark:disabled:bg-medusa-bg-disabled-dark;
|
||||
@apply disabled:cursor-not-allowed;
|
||||
@apply border border-solid border-medusa-border-base dark:border-medusa-border-base-dark;
|
||||
@apply text-compact-small-plus text-medusa-fg-base dark:text-medusa-fg-base-dark;
|
||||
@apply hover:text-medusa-fg-base hover:dark:text-medusa-fg-base-dark;
|
||||
@apply shadow-button-neutral focus:shadow-button-neutral-focused active:shadow-button-neutral-focused transition-shadow;
|
||||
@apply dark:shadow-button-neutral dark:focus:shadow-button-neutral-focused dark:active:shadow-button-neutral-focused;
|
||||
@apply select-none;
|
||||
@@ -132,9 +144,9 @@
|
||||
@apply inline-flex flex-row justify-center items-center;
|
||||
@apply py-[5px] px-0.75 rounded-sm cursor-pointer;
|
||||
@apply bg-button-inverted bg-medusa-button-inverted dark:bg-button-inverted-dark dark:bg-medusa-button-inverted-dark;
|
||||
@apply hover:bg-medusa-button-inverted-hover hover:bg-button-inverted-hover dark:hover:bg-medusa-button-inverted-hover-dark dark:hover:bg-button-inverted-hover-dark hover:no-underline;
|
||||
@apply active:bg-medusa-button-inverted-pressed active:bg-button-inverted-pressed dark:active:bg-medusa-button-inverted-pressed-dark dark:active:bg-button-inverted-pressed-dark;
|
||||
@apply focus:bg-medusa-button-inverted-pressed focus:bg-button-inverted-pressed dark:focus:bg-medusa-button-inverted-pressed-dark dark:focus:bg-button-inverted-pressed-dark;
|
||||
@apply hover:bg-medusa-button-inverted-hover hover:bg-no-image dark:hover:bg-medusa-button-inverted-hover-dark hover:no-underline;
|
||||
@apply active:bg-medusa-button-inverted-pressed active:bg-no-image dark:active:bg-medusa-button-inverted-pressed-dark;
|
||||
@apply focus:bg-medusa-button-inverted-pressed focus:bg-no-image dark:focus:bg-medusa-button-inverted-pressed-dark;
|
||||
@apply shadow-button-colored active:shadow-button-colored-focused focus:shadow-button-colored-focused transition-shadow;
|
||||
@apply dark:shadow-button-colored-dark dark:active:shadow-button-colored-focused-dark dark:focus:shadow-button-colored-focused-dark;
|
||||
@apply disabled:!bg-no-image disabled:bg-medusa-button-disabled dark:disabled:bg-medusa-button-disabled-dark;
|
||||
@@ -146,15 +158,16 @@
|
||||
}
|
||||
|
||||
.navbar-action-icon-item {
|
||||
@apply lg:bg-docs-button-neutral lg:dark:bg-docs-button-neutral-dark hover:!bg-no-image lg:active:!bg-no-image hover:bg-medusa-button-neutral-hover dark:hover:bg-medusa-button-neutral-hover-dark;
|
||||
@apply lg:active:bg-medusa-button-neutral-pressed lg:dark:active:bg-medusa-button-neutral-pressed-dark;
|
||||
@apply lg:focus:shadow-button-secondary-focus lg:dark:focus:shadow-button-secondary-focus-dark;
|
||||
@apply lg:border lg:border-solid lg:border-medusa-border-loud-muted lg:dark:border-medusa-border-loud-muted-dark rounded;
|
||||
@apply lg:bg-button-neutral lg:bg-medusa-button-neutral lg:dark:bg-button-neutral-dark lg:dark:bg-medusa-button-neutral-dark;
|
||||
@apply lg:hover:bg-medusa-button-neutral-hover lg:hover:bg-no-image lg:dark:hover:bg-medusa-button-neutral-hover-dark lg:hover:no-underline;
|
||||
@apply lg:active:bg-medusa-button-neutral-pressed lg:active:bg-no-image lg:dark:active:bg-medusa-button-neutral-pressed-dark;
|
||||
@apply lg:focus:bg-medusa-button-neutral-pressed lg:focus:bg-no-image lg:dark:focus:bg-medusa-button-neutral-pressed-dark;
|
||||
@apply lg:lg:border lg:border-solid lg:border-medusa-border-base lg:dark:border-medusa-border-base-dark rounded;
|
||||
@apply w-2 h-2 flex justify-center items-center cursor-pointer;
|
||||
}
|
||||
|
||||
.transparent-button {
|
||||
@apply bg-transparent border-0 text-inherit cursor-pointer p-0;
|
||||
.btn-clear {
|
||||
@apply bg-transparent shadow-none border-0 outline-none cursor-pointer;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -167,7 +180,6 @@
|
||||
@import url('./_variables.css');
|
||||
|
||||
@import url('./_docusaurus.css');
|
||||
@import url('./components/docsearch.css');
|
||||
@import url('./components/sidebar.css');
|
||||
@import url('./components/toc.css');
|
||||
@import url('./components/tooltip.css');
|
||||
Reference in New Issue
Block a user