From 4c954e33ecd2c5fea386bd2c4e9ae3dcee34ec3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Thu, 18 Mar 2021 10:31:51 +0100 Subject: [PATCH 01/25] feat(theme): patch theme Co-authored-by: Kevin Granger --- bundlesize.config.json | 6 +- .../src/__tests__/render.test.ts | 23 +- packages/autocomplete-js/src/render.tsx | 5 +- .../autocomplete-theme-classic/src/theme.scss | 615 ++++++++++++------ 4 files changed, 431 insertions(+), 218 deletions(-) diff --git a/bundlesize.config.json b/bundlesize.config.json index 27930d0b2..654cbd0bc 100644 --- a/bundlesize.config.json +++ b/bundlesize.config.json @@ -6,7 +6,7 @@ }, { "path": "packages/autocomplete-js/dist/umd/index.production.js", - "maxSize": "14.50 kB" + "maxSize": "14.75 kB" }, { "path": "packages/autocomplete-preset-algolia/dist/umd/index.production.js", @@ -23,6 +23,10 @@ { "path": "packages/autocomplete-plugin-query-suggestions/dist/umd/index.production.js", "maxSize": "4 kB" + }, + { + "path": "packages/autocomplete-theme-classic/dist/theme.css", + "maxSize": "4 kB" } ] } diff --git a/packages/autocomplete-js/src/__tests__/render.test.ts b/packages/autocomplete-js/src/__tests__/render.test.ts index 2b371c2f0..d10b06eee 100644 --- a/packages/autocomplete-js/src/__tests__/render.test.ts +++ b/packages/autocomplete-js/src/__tests__/render.test.ts @@ -1,6 +1,7 @@ import { fireEvent, waitFor } from '@testing-library/dom'; import { createElement as preactCreateElement, + Fragment, Fragment as PreactFragment, render, } from 'preact'; @@ -358,16 +359,24 @@ describe('render', () => { }, ]; }, - render({ createElement, children }, root) { + render({ createElement, children, sections }, root) { expect(children).toEqual( expect.objectContaining({ - type: 'div', + type: Fragment, props: { - className: expect.any(String), - children: expect.arrayContaining([ - expect.any(Object), - expect.any(Object), - ]), + children: [ + expect.objectContaining({ + props: { + className: 'aa-PanelLayout aa-Panel--Scrollable', + children: sections, + }, + }), + expect.objectContaining({ + props: { + className: 'aa-GradientBottom', + }, + }), + ], }, }) ); diff --git a/packages/autocomplete-js/src/render.tsx b/packages/autocomplete-js/src/render.tsx index 385b5cdc0..3ee6676af 100644 --- a/packages/autocomplete-js/src/render.tsx +++ b/packages/autocomplete-js/src/render.tsx @@ -166,7 +166,10 @@ export function renderPanel( )); const children = ( -
{sections}
+ +
{sections}
+
+ ); const elements = sections.reduce((acc, current) => { acc[current.props['data-autocomplete-source-id']] = current; diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index 82cbaa8f7..418d696a2 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -1,33 +1,70 @@ // ---------------- -// Variables +// 1. CSS Variables +// 2. Dark Mode +// 3. Autocomplete +// 4. Panel +// 5. Sources +// 6. Hit Layout +// 7. Panel Header +// 8. Panel Footer +// 9. Detached Mode +// 10. Gradients +// ---------------- + +// Note: +// This theme is trying to reflect the markup of autocomplete with SCSS indentation. +// We use the SASS `@at-root` function to remove unecessary specificities. + +// ---------------- +// 1. CSS Variables // ---------------- :root { + // input + --aa-search-input-height: 44px; + --aa-input-icon-size: 20px; + // size & spacing --aa-base-unit: 16; - --aa-font-size: calc(var(--aa-base-unit) * 1px); - --aa-spacing-factor: 1; // xs:0.6 / sm:0.8 / md:1 / lg:1.2 / xl:1.5 + --aa-spacing-factor: 0.8; --aa-spacing: calc(var(--aa-base-unit) * var(--aa-spacing-factor) * 1px); --aa-spacing-half: calc(var(--aa-spacing) / 2); + --aa-panel-max-height: 650px; + // font + --aa-font-size: calc(var(--aa-base-unit) * 1px); + --aa-font-family: -apple-system, 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', + 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + // icons --aa-icon-size: 18px; - --aa-icon-stroke-width: calc((20 / var(--aa-base-unit)) * 1.6); - --aa-primary-color: rgb(62, 52, 211); - --aa-muted-color: rgba(128, 126, 163, 0.6); - --aa-selected-color: rgba(62, 52, 211, 0.1); + --aa-icon-stroke-width: 1.6; --aa-icon-color: rgb(119, 119, 163); + // text colors --aa-text-color: rgb(38, 38, 39); + --aa-primary-color: rgb(62, 52, 211); + --aa-primary-color-alpha: rgba(62, 52, 211, 0.2); --aa-content-text-color: rgb(38, 38, 39, 0.7); + --aa-muted-color: rgba(128, 126, 163, 0.6); + // border colors + --aa-panel-border-color: rgba(128, 126, 163, 0.3); + --aa-input-border-color: rgba(128, 126, 163, 0.8); + // background colors + --aa-selected-color: rgba(179, 173, 214, 0.205); --aa-background-color: rgb(255, 255, 255); --aa-background-color-alpha-0: rgba(255, 255, 255, 0); + --aa-input-background-color: rgb(255, 255, 255); + // detached mode + --aa-detached-media-query: (max-width: 680px); + --aa-detached-modal-media-query: (min-width: 680px); + --aa-detached-modal-max-width: 680px; + --aa-detached-modal-max-height: 500px; + --aa-overlay-color: rgba(115, 114, 129, 0.4); + // shadows --aa-panel-shadow: 0 0 0 1px rgba(35, 38, 59, 0.1), 0 6px 16px -4px rgba(35, 38, 59, 0.15); - --aa-panel-max-height: 500px; - --aa-detached-media-query: (max-width: 500px); - --aa-detached-modal-media-query: (min-width: 500px); - --aa-detached-modal-max-width: 500px; - --aa-detached-modal-max-height: 500px; + --aa-key-shadow: ''; } // ---------------- -// Darkmode +// 2. Dark Mode // ---------------- body { /* stylelint-disable selector-no-qualifying-type, selector-class-pattern */ @@ -46,65 +83,76 @@ body { /* stylelint-enable selector-no-qualifying-type, selector-class-pattern */ } +// reset for extend +%reset { + box-sizing: border-box; +} + +// init for extend +%init { + color: var(--aa-text-color); + font-family: var(--aa-font-family); + font-size: var(--aa-font-size); + font-weight: normal; + line-height: 1em; + margin: 0; + padding: 0; + text-align: left; +} + // ---------------- -// Autocomplete +// 3. Autocomplete // ---------------- .aa-Autocomplete, .aa-DetachedFormContainer { - font-size: var(--aa-font-size); - line-height: 1em; - text-align: left; + @extend %init; // reset * { - box-sizing: border-box; - margin: 0; - padding: 0; + @extend %reset; } // searchbox .aa-Form { align-items: center; - background-color: var(--aa-background-color); - border: 1px solid var(--aa-muted-color); + background-color: var(--aa-input-background-color); + border: 1px solid var(--aa-input-border-color); border-radius: 3px; display: flex; - padding: 0 var(--aa-spacing) 0 var(--aa-spacing-half); + line-height: 1em; + margin: 0; + padding: 0 calc(var(--aa-spacing) + var(--aa-spacing-half) - 2px) 0 + calc(var(--aa-spacing) - 1px); position: relative; width: 100%; - &:focus-within { - border-color: var(--aa-primary-color); - box-shadow: var(--aa-selected-color) 0 0 0 3px, - inset var(--aa-selected-color) 0 0 0 2px; - outline: currentColor none medium; - } - .aa-InputWrapperPrefix { + @at-root .aa-InputWrapperPrefix { align-items: center; display: flex; flex-shrink: 0; - flex-wrap: none; order: 1; - padding-right: var(--aa-spacing-half); // container for search and loading icons .aa-Label, .aa-LoadingIndicator { cursor: initial; flex-shrink: 0; - text-align: center; - width: calc(var(--aa-spacing) + var(--aa-icon-size)); + padding: 0; + text-align: left; + width: calc(var(--aa-icon-size) + var(--aa-spacing)); button { appearance: none; background: none; border: 0; + margin: 0; + padding: 2px; } svg { color: var(--aa-primary-color); - left: 2px; - position: relative; + height: auto; + max-height: var(--aa-input-icon-size); stroke-width: var(--aa-icon-stroke-width); - width: 20px; + width: var(--aa-input-icon-size); } } } - .aa-InputWrapper { + @at-root .aa-InputWrapper { order: 3; position: relative; width: 100%; @@ -115,7 +163,7 @@ body { border: 0; color: var(--aa-text-color); font: inherit; - height: calc(var(--aa-spacing) * 2.5); + height: var(--aa-search-input-height); width: 100%; // remove native appearence &::-webkit-search-decoration, @@ -136,7 +184,7 @@ body { } } } - .aa-InputWrapperSuffix { + @at-root .aa-InputWrapperSuffix { align-items: center; display: flex; order: 4; @@ -148,6 +196,8 @@ body { color: var(--aa-muted-color); cursor: pointer; display: flex; + margin: 0; + padding: 2px; &[hidden] { display: none; } @@ -161,110 +211,140 @@ body { } } } + &:focus-within { + border-color: var(--aa-primary-color); + box-shadow: var(--aa-primary-color-alpha) 0 0 0 2px, + inset var(--aa-primary-color-alpha) 0 0 0 2px; + outline: currentColor none medium; + } } } // ---------------- -// Panel +// 4. Panel // ---------------- - .aa-Panel { - position: absolute; - // reset - * { - box-sizing: border-box; - margin: 0; - padding: 0; - } - button { - appearance: none; - background: none; - border: 0; - } + @extend %init; - &::after { - background-image: linear-gradient( - var(--aa-background-color-alpha-0), - var(--aa-background-color) - ); - border-radius: 3px; - bottom: 0; - content: ''; - height: 0.75em; - pointer-events: none; - position: absolute; - width: 100%; - z-index: 99; + background-color: var(--aa-background-color); + border-radius: calc(var(--aa-spacing) / 4); + box-shadow: var(--aa-panel-shadow); + margin: 8px 0 0; + overflow: hidden; + position: absolute; + transition: opacity 200ms ease-in, filter 200ms ease-in; + @media screen and (prefers-reduced-motion) { + transition: none; } - .aa-PanelLayout { - background-color: var(--aa-background-color); - border-radius: 3px; - box-shadow: var(--aa-panel-shadow); + @at-root .aa-PanelLayout { height: 100%; - margin-top: var(--aa-spacing-half); + margin: 0; max-height: var(--aa-panel-max-height); - padding-bottom: var(--aa-spacing-half); - padding-top: var(--aa-spacing-half); + overflow-y: auto; + padding: 0; + padding: var(--aa-spacing-half) var(--aa-spacing) var(--aa-spacing) + var(--aa-spacing-half); position: relative; text-align: left; - .aa-PanelLayoutResults { - overflow-x: hidden; - overflow-y: auto; - width: 50%; + &.aa-PanelLayout-cols-two--golden { + display: grid; + grid-template-columns: 39.2% auto; + overflow: hidden; + padding: 0; } - .aa-PanelLayoutPreview { - border-left: solid 1px var(--aa-selected-color); - flex-shrink: 1; - max-width: 50%; + &.aa-PanelLayout-cols-two { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; + padding: 0; + } + &.aa-PanelLayout-cols-three { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + overflow: hidden; + padding: 0; + } + + .aa-Panel--Scrollable { + margin: 0; + max-height: var(--aa-panel-max-height); + overflow-x: hidden; + overflow-y: auto; + padding: var(--aa-spacing-half) var(--aa-spacing) var(--aa-spacing) 0; + &:first-child { + margin-left: var(--aa-spacing-half); + } } } - .aa-Panel--Scrollable { - overflow-y: auto; + // reset + * { + @extend %reset; + } + button { + appearance: none; + background: none; + border: 0; + margin: 0; + padding: 0; } - // when a query isn't resolved yet &.aa-Panel--stalled { - filter: grayscale(1); - opacity: 0.8; - @media screen and (prefers-reduced-motion: reduce) { - transition: opacity 200ms ease-in; + .aa-Source { + filter: grayscale(1); + opacity: 0.8; } } } // ---------------- -// Sources +// 5. Sources // Each source can be styled independently // ---------------- .aa-Source { + margin: 0; + padding: 0; position: relative; width: 100%; + @at-root .aa-SourceNoResults { + font-size: 1em; + margin: 0; + padding: var(--aa-spacing); + } + // list of results inside the source + @at-root .aa-List { + list-style: none; + margin: 0; + padding: 0; + position: relative; + } // source title .aa-SourceHeader { - line-height: var(--aa-spacing); - margin: var(--aa-spacing-half) calc(var(--aa-spacing-half) + 2px); + margin: var(--aa-spacing-half) 0.5em var(--aa-spacing-half) 0; + padding: 0; position: relative; // Title typography - .aa-SourceHeaderTitle { + @at-root .aa-SourceHeaderTitle { background: var(--aa-background-color); color: var(--aa-primary-color); display: inline-block; font-size: 0.8em; font-weight: 600; - padding-right: var(--aa-spacing-half); + margin: 0; + padding: 0 var(--aa-spacing-half) 0 0; position: relative; text-transform: capitalize; z-index: 2; } // Line separator - .aa-SourceHeaderLine { + @at-root .aa-SourceHeaderLine { border-bottom: solid 1px var(--aa-primary-color); display: block; height: 2px; left: 0; + margin: 0; opacity: 0.3; + padding: 0; position: absolute; right: 0; top: var(--aa-spacing-half); @@ -275,73 +355,69 @@ body { display: none; } } - .aa-SourceNoResults { - padding: var(--aa-spacing); - } &:empty { // hide empty section display: none; } - // list of results inside the source - .aa-List { - list-style: none; - margin: 0; - padding: 0; - position: relative; + // See all button + .aa-SourceFooterSeeAll { + background: linear-gradient( + 180deg, + var(--aa-background-color), + rgba(128, 126, 163, 0.14) + ); + border: 1px solid var(--aa-muted-color); + border-radius: 5px; + box-shadow: inset 0 0 2px #fff, 0 2px 2px -1px rgba(76, 69, 88, 0.15); + color: inherit; + font-size: 0.95em; + font-weight: 500; + padding: 0.475em 1em 0.6em; + text-decoration: none; + &:focus, + &:hover { + border: 1px solid var(--aa-primary-color); + color: var(--aa-primary-color); + } } } // ---------------- -// Hit Layout +// 6. Hit Layout // ---------------- .aa-Item { align-items: center; - color: var(--aa-text-color); + border-radius: 3px; cursor: pointer; display: flex; - //height: 100%; - line-height: 1.1em; - padding: 0 var(--aa-spacing-half); - .aa-ActiveOnly { - visibility: hidden; - } - // when the result is active - &[aria-selected='true'] { - background-color: var(--aa-selected-color); - .aa-ItemActionButton, - .aa-ActiveOnly { - visibility: visible; - } - } - // wrap hit with url but we don't need to see it - .aa-ItemWrapper, - .aa-ItemLink { - align-items: center; - color: inherit; - display: flex; - text-decoration: none; - width: 100%; - } - .aa-ItemLink { - color: inherit; - text-decoration: none; - } + padding: 0; // the result type icon inlined svg or img - .aa-ItemIcon { + @at-root .aa-ItemIcon { align-items: center; - background: #fff; + background: var(--aa-background-color); border-radius: 3px; - box-shadow: inset 0 0 0 1px var(--aa-selected-color); + box-shadow: inset 0 0 0 1px var(--aa-panel-border-color); color: var(--aa-icon-color); display: flex; flex-shrink: 0; font-size: var(--aa-icon-size); + font-size: 0.7em; height: calc(var(--aa-icon-size) + var(--aa-spacing)); justify-content: center; margin: 2px var(--aa-spacing-half) 2px 2px; + overflow: hidden; stroke-width: var(--aa-icon-stroke-width); text-align: center; width: calc(var(--aa-icon-size) + var(--aa-spacing)); + &.aa-ItemVisual { + height: 80px; + width: 80px; + img { + max-height: 100%; + max-width: 100%; + padding: var(--aa-spacing-half); + } + } &.aa-ItemIcon--align-top { align-self: flex-start; } @@ -361,13 +437,22 @@ body { width: var(--aa-icon-size); } } - .aa-ItemContent { - color: var(--aa-text-color); + @at-root .aa-ItemContent { cursor: pointer; - flex-shrink: 1; + line-height: 1.25em; overflow: hidden; padding: calc(var(--aa-spacing) / 4) 0; width: 100%; + &.aa-ItemContent--dual { + display: flex; + flex-direction: column; + justify-content: space-between; + text-align: left; + .aa-ItemContentTitle, + .aa-ItemContentSubtitle { + display: block; + } + } mark { background: none; color: var(--aa-text-color); @@ -376,59 +461,31 @@ body { } .aa-ItemContentTitle { display: inline-block; - line-height: 1.25em; + margin: 0 0.5em 0 0; max-width: 100%; overflow: hidden; + padding: 0; text-overflow: ellipsis; white-space: nowrap; } .aa-ItemContentSubtitle { color: var(--aa-content-text-color); display: inline-block; - font-size: 0.92em; - margin-top: -2px; + font-size: 0.8em; max-width: 100%; overflow-x: hidden; text-overflow: ellipsis; white-space: nowrap; - &::before { - content: ' '; - white-space: pre; - } - &:empty { - display: none; - } - .aa-ItemContentDash { - color: var(--aa-muted-color); - display: none; - opacity: 0.4; - } - .aa-ItemContentTag { - background-color: var(--aa-selected-color); - border-radius: 3px; - margin-right: 0.4em; - padding: 0.08em 0.3em; - } - } - &.aa-ItemContent--dual { - display: flex; - flex-direction: column; - justify-content: center; - text-align: left; - .aa-ItemContentTitle, - .aa-ItemContentSubtitle { - display: block; - } } .aa-ItemContentDescription { color: var(--aa-content-text-color); font-size: 0.85em; max-width: 100%; overflow-x: hidden; - padding: 0.3em 0; + padding: 0; text-overflow: ellipsis; mark { - background: rgb(245 223 77 / 0.5); + background: rgba(245, 223, 77, 0.5); color: var(--aa-text-color); font-style: normal; font-weight: 500; @@ -437,6 +494,44 @@ body { display: none; } } + &:empty { + display: none; + } + .aa-ItemContentDash { + color: var(--aa-muted-color); + display: none; + opacity: 0.4; + } + .aa-ItemContentTag { + background-color: var(--aa-primary-color-alpha); + border-radius: 3px; + margin: 0 0.4em 0 0; + padding: 0.08em 0.3em; + } + } + .aa-ActiveOnly { + visibility: hidden; + } + // when the result is active + &[aria-selected='true'] { + background-color: var(--aa-selected-color); + .aa-ItemActionButton, + .aa-ActiveOnly { + visibility: visible; + } + } + // wrap hit with url but we don't need to see it + .aa-ItemWrapper, + .aa-ItemLink { + align-items: center; + color: inherit; + display: flex; + text-decoration: none; + width: 100%; + } + .aa-ItemLink { + color: inherit; + text-decoration: none; } // secondary click action .aa-ItemActions { @@ -450,13 +545,15 @@ body { cursor: pointer; display: flex; flex-shrink: 0; + margin: 0 var(--aa-spacing-half) 0; + padding: 0; &:hover svg, &:focus svg { color: var(--aa-text-color); } svg { color: var(--aa-muted-color); - margin: 0 var(--aa-spacing-half); + margin: 0; stroke-width: var(--aa-icon-stroke-width); width: var(--aa-icon-size); &:hover, @@ -468,72 +565,109 @@ body { } //---------------- -// Detached +// 7. Panel Header //---------------- -.aa-DetachedSearchButton { +.aa-PanelHeader { align-items: center; + background: var(--aa-primary-color); + color: #fff; + display: grid; + height: var(--aa-modal-header-height); + margin: 0; + padding: var(--aa-spacing-half) var(--aa-spacing); + position: relative; + + &::after { + background-image: linear-gradient( + var(--aa-background-color), + var(--aa-background-color-alpha-0) + ); + bottom: calc(var(--aa-spacing-half) * -1); + content: ''; + height: var(--aa-spacing-half); + left: 0; + pointer-events: none; + position: absolute; + right: 0; + z-index: 99; + } +} + +//---------------- +// 8. Panel Footer +//---------------- +.aa-PanelFooter { background-color: var(--aa-background-color); - border: 1px solid var(--aa-muted-color); - border-radius: 3px; - color: var(--aa-muted-color); - cursor: pointer; + box-shadow: inset 0 1px 0 var(--aa-panel-border-color); display: flex; - font: inherit; - height: calc(var(--aa-spacing) * 2.5); - padding: 0 var(--aa-spacing-half); + justify-content: space-between; + margin: 0; + padding: var(--aa-spacing); position: relative; - text-align: left; - width: 100%; - &:focus { - border-color: var(--aa-primary-color); - box-shadow: var(--aa-selected-color) 0 0 0 3px, - inset var(--aa-selected-color) 0 0 0 2px; - outline: currentColor none medium; - } - .aa-DetachedSearchButtonIcon { - align-items: center; - color: var(--aa-primary-color); - cursor: initial; - display: flex; - height: 100%; - margin-right: var(--aa-spacing-half); + z-index: 95; + &::after { + background-image: linear-gradient( + var(--aa-background-color-alpha-0), + var(--aa-muted-color) + ); + content: ''; + height: var(--aa-spacing); + left: 0; + opacity: 0.12; + pointer-events: none; + position: absolute; + right: 0; + top: calc(var(--aa-spacing) * -1); + z-index: 99; } } +//---------------- +// 9. Detached Mode +//---------------- .aa-DetachedContainer { background: var(--aa-background-color); bottom: 0; + box-shadow: var(--aa-panel-shadow); display: flex; flex-direction: column; left: 0; + margin: 0; overflow: hidden; padding: 0; position: fixed; right: 0; top: 0; z-index: 1000; - .aa-DetachedFormContainer { - border-bottom: solid 1px var(--aa-selected-color); + border-bottom: solid 1px var(--aa-panel-border-color); display: flex; flex-direction: row; justify-content: space-between; + margin: 0; padding: var(--aa-spacing-half); - .aa-Form { - padding: 0 var(--aa-spacing-half) 0 0; - } .aa-DetachedCancelButton { background: none; border: 0; + border-radius: 3px; color: inherit; + color: var(--aa-text-color); cursor: pointer; font: inherit; - padding: 0 0 0 var(--aa-spacing-half); + margin: 0 0 0 var(--aa-spacing-half); + padding: 0 var(--aa-spacing-half); + &:hover, + &:focus { + box-shadow: inset 0 0 0 1px var(--aa-panel-border-color); + } } } .aa-Panel { background-color: var(--aa-background-color); - overflow: hidden; + border-radius: 0; + box-shadow: none; + margin: 0; + padding: 0; position: relative; .aa-PanelLayout { box-shadow: none; @@ -542,10 +676,8 @@ body { max-height: none; overflow-y: auto; padding: 0; - padding: 6px var(--aa-spacing-half) 80px; width: 100%; } - .aa-Item { border-radius: 3px; padding: 0; @@ -557,7 +689,6 @@ body { &::after { height: 32px; } - &.aa-DetachedContainer--Modal { border-radius: 6px; bottom: inherit; @@ -574,7 +705,40 @@ body { } } } - +// Search Button +.aa-DetachedSearchButton { + align-items: center; + background-color: var(--aa-input-background-color); + border: 1px solid var(--aa-input-border-color); + border-radius: 3px; + color: var(--aa-muted-color); + cursor: pointer; + display: flex; + font: inherit; + font-family: var(--aa-font-family); + font-size: var(--aa-font-size); + height: var(--aa-search-input-height); + margin: 0; + padding: 0 calc(var(--aa-search-input-height) / 8); + position: relative; + text-align: left; + width: 100%; + &:focus { + border-color: var(--aa-primary-color); + box-shadow: var(--aa-primary-color-alpha) 0 0 0 3px, + inset var(--aa-primary-color-alpha) 0 0 0 2px; + outline: currentColor none medium; + } + .aa-DetachedSearchButtonIcon { + align-items: center; + color: var(--aa-primary-color); + cursor: initial; + display: flex; + height: 100%; + justify-content: center; + width: calc(var(--aa-icon-size) + var(--aa-spacing)); + } +} // remove scroll for body .aa-Detached { height: 100vh; @@ -582,9 +746,11 @@ body { } .aa-DetachedOverlay { - background-color: var(--aa-muted-color); + background-color: var(--aa-overlay-color); height: 100vh; left: 0; + margin: 0; + padding: 0; position: fixed; right: 0; top: 0; @@ -596,3 +762,34 @@ body { display: none !important; // TODO: fix specificity issue } } + +//---------------- +// 10. Gradients +//---------------- + +.aa-GradientTop, +.aa-GradientBottom { + left: 0; + pointer-events: none; + position: absolute; + right: 0; +} + +.aa-GradientTop { + background-image: linear-gradient( + var(--aa-background-color) var(--aa-background-color-alpha-0) + ); + height: var(--aa-spacing-half); + top: 0; + z-index: 98; +} + +.aa-GradientBottom { + background-image: linear-gradient( + var(--aa-background-color-alpha-0), + var(--aa-background-color) + ); + bottom: 0; + height: var(--aa-spacing); + z-index: 90; +} From 52bfd978e0e6ba1439c734cbeca5641a4f7d2916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Fri, 19 Mar 2021 10:40:12 +0100 Subject: [PATCH 02/25] feat: convert CSS color vars to RGB and alpha tuples --- .../autocomplete-theme-classic/src/theme.scss | 210 +++++++++++------- 1 file changed, 134 insertions(+), 76 deletions(-) diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index 418d696a2..9fdf234e4 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -36,27 +36,34 @@ // icons --aa-icon-size: 18px; --aa-icon-stroke-width: 1.6; - --aa-icon-color: rgb(119, 119, 163); + --aa-icon-color-rgb: 119, 119, 163; + --aa-icon-color-alpha: 1; // text colors - --aa-text-color: rgb(38, 38, 39); - --aa-primary-color: rgb(62, 52, 211); - --aa-primary-color-alpha: rgba(62, 52, 211, 0.2); - --aa-content-text-color: rgb(38, 38, 39, 0.7); - --aa-muted-color: rgba(128, 126, 163, 0.6); + --aa-text-color-rgb: 38, 38, 39; + --aa-text-color-alpha: 1; + --aa-primary-color-rgb: 62, 52, 211; + --aa-primary-color-alpha: 0.2; + --aa-muted-color-rgb: 128, 126, 163; + --aa-muted-color-alpha: 0.6; // border colors - --aa-panel-border-color: rgba(128, 126, 163, 0.3); - --aa-input-border-color: rgba(128, 126, 163, 0.8); + --aa-panel-border-color-rgb: 128, 126, 163; + --aa-panel-border-color-alpha: 0.3; + --aa-input-border-color-rgb: 128, 126, 163; + --aa-input-border-color-alpha: 0.8; // background colors - --aa-selected-color: rgba(179, 173, 214, 0.205); - --aa-background-color: rgb(255, 255, 255); - --aa-background-color-alpha-0: rgba(255, 255, 255, 0); - --aa-input-background-color: rgb(255, 255, 255); + --aa-selected-color-rgb: 179, 173, 214; + --aa-selected-color-alpha: 0.205; + --aa-background-color-rgb: 255, 255, 255; + --aa-background-color-alpha: 1; + --aa-input-background-color-rgb: 255, 255, 255; + --aa-input-background-color-alpha: 1; // detached mode --aa-detached-media-query: (max-width: 680px); --aa-detached-modal-media-query: (min-width: 680px); --aa-detached-modal-max-width: 680px; --aa-detached-modal-max-height: 500px; - --aa-overlay-color: rgba(115, 114, 129, 0.4); + --aa-overlay-color-rgb: 115, 114, 129; + --aa-overlay-color-alpha: 0.4; // shadows --aa-panel-shadow: 0 0 0 1px rgba(35, 38, 59, 0.1), 0 6px 16px -4px rgba(35, 38, 59, 0.15); @@ -70,13 +77,13 @@ body { /* stylelint-disable selector-no-qualifying-type, selector-class-pattern */ &[data-theme='dark'], &.dark { - --aa-primary-color: rgb(93, 85, 213); - --aa-muted-color: rgba(93, 85, 213, 0.6); - --aa-selected-color: rgba(93, 85, 213, 0.25); - --aa-icon-color: rgb(119, 119, 163); - --aa-text-color: rgb(183, 192, 199); - --aa-content-text-color: rgb(183, 192, 199, 0.8); - --aa-background-color: rgb(21, 24, 42); + --aa-primary-color-rgb: 93, 85, 213; + --aa-muted-color-rgb: 93, 85, 213; + --aa-selected-color-rgb: 93, 85, 213; + --aa-selected-color-alpha: 0.25; + --aa-icon-color-rgb-rgb: 119, 119, 163; + --aa-text-color-rgb: 183, 192, 199; + --aa-background-color-rgb: 21, 24, 42; --aa-panel-shadow: inset 1px 1px 0 0 rgb(44, 46, 64), 0 3px 8px 0 rgb(0, 3, 9); } @@ -90,7 +97,7 @@ body { // init for extend %init { - color: var(--aa-text-color); + color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha)); font-family: var(--aa-font-family); font-size: var(--aa-font-size); font-weight: normal; @@ -113,8 +120,12 @@ body { // searchbox .aa-Form { align-items: center; - background-color: var(--aa-input-background-color); - border: 1px solid var(--aa-input-border-color); + background-color: rgba( + var(--aa-input-background-color-rgb), + var(--aa-input-background-color-alpha) + ); + border: 1px solid + rgba(var(--aa-input-border-color-rgb), var(--aa-input-border-color-alpha)); border-radius: 3px; display: flex; line-height: 1em; @@ -144,7 +155,7 @@ body { padding: 2px; } svg { - color: var(--aa-primary-color); + color: rgba(var(--aa-primary-color-rgb), 1); height: auto; max-height: var(--aa-input-icon-size); stroke-width: var(--aa-icon-stroke-width); @@ -161,7 +172,7 @@ body { appearance: none; background: none; border: 0; - color: var(--aa-text-color); + color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha)); font: inherit; height: var(--aa-search-input-height); width: 100%; @@ -173,7 +184,7 @@ body { appearance: none; } &::placeholder { - color: var(--aa-muted-color); + color: rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha)); opacity: 1; } // remove focus effect as we moved it to parent wrapper @@ -193,7 +204,7 @@ body { align-items: center; background: none; border: 0; - color: var(--aa-muted-color); + color: rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha)); cursor: pointer; display: flex; margin: 0; @@ -203,7 +214,7 @@ body { } &:hover, &:focus { - color: var(--aa-text-color); + color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha)); } svg { stroke-width: var(--aa-icon-stroke-width); @@ -212,9 +223,14 @@ body { } } &:focus-within { - border-color: var(--aa-primary-color); - box-shadow: var(--aa-primary-color-alpha) 0 0 0 2px, - inset var(--aa-primary-color-alpha) 0 0 0 2px; + border-color: rgba(var(--aa-primary-color-rgb), 1); + box-shadow: rgba( + var(--aa-primary-color-rgb), + var(--aa-primary-color-alpha) + ) + 0 0 0 2px, + inset rgba(var(--aa-primary-color-rgb), var(--aa-primary-color-alpha)) 0 + 0 0 2px; outline: currentColor none medium; } } @@ -226,7 +242,10 @@ body { .aa-Panel { @extend %init; - background-color: var(--aa-background-color); + background-color: rgba( + var(--aa-background-color-rgb), + var(--aa-background-color-alpha) + ); border-radius: calc(var(--aa-spacing) / 4); box-shadow: var(--aa-panel-shadow); margin: 8px 0 0; @@ -325,8 +344,11 @@ body { position: relative; // Title typography @at-root .aa-SourceHeaderTitle { - background: var(--aa-background-color); - color: var(--aa-primary-color); + background: rgba( + var(--aa-background-color-rgb), + var(--aa-background-color-alpha) + ); + color: rgba(var(--aa-primary-color-rgb), 1); display: inline-block; font-size: 0.8em; font-weight: 600; @@ -338,7 +360,7 @@ body { } // Line separator @at-root .aa-SourceHeaderLine { - border-bottom: solid 1px var(--aa-primary-color); + border-bottom: solid 1px rgba(var(--aa-primary-color-rgb), 1); display: block; height: 2px; left: 0; @@ -363,10 +385,11 @@ body { .aa-SourceFooterSeeAll { background: linear-gradient( 180deg, - var(--aa-background-color), + rgba(var(--aa-background-color-rgb), var(--aa-background-color-alpha)), rgba(128, 126, 163, 0.14) ); - border: 1px solid var(--aa-muted-color); + border: 1px solid + rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha)); border-radius: 5px; box-shadow: inset 0 0 2px #fff, 0 2px 2px -1px rgba(76, 69, 88, 0.15); color: inherit; @@ -376,8 +399,8 @@ body { text-decoration: none; &:focus, &:hover { - border: 1px solid var(--aa-primary-color); - color: var(--aa-primary-color); + border: 1px solid rgba(var(--aa-primary-color-rgb), 1); + color: rgba(var(--aa-primary-color-rgb), 1); } } } @@ -394,10 +417,14 @@ body { // the result type icon inlined svg or img @at-root .aa-ItemIcon { align-items: center; - background: var(--aa-background-color); + background: rgba( + var(--aa-background-color-rgb), + var(--aa-background-color-alpha) + ); border-radius: 3px; - box-shadow: inset 0 0 0 1px var(--aa-panel-border-color); - color: var(--aa-icon-color); + box-shadow: inset 0 0 0 1px + rgba(var(--aa-panel-border-color-rgb), var(--aa-panel-border-color-alpha)); + color: rgba(var(--aa-icon-color-rgb), var(--aa-icon-color-alpha)); display: flex; flex-shrink: 0; font-size: var(--aa-icon-size); @@ -455,7 +482,7 @@ body { } mark { background: none; - color: var(--aa-text-color); + color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha)); font-style: normal; font-weight: bold; } @@ -469,7 +496,7 @@ body { white-space: nowrap; } .aa-ItemContentSubtitle { - color: var(--aa-content-text-color); + color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha)); display: inline-block; font-size: 0.8em; max-width: 100%; @@ -478,7 +505,7 @@ body { white-space: nowrap; } .aa-ItemContentDescription { - color: var(--aa-content-text-color); + color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha)); font-size: 0.85em; max-width: 100%; overflow-x: hidden; @@ -486,7 +513,7 @@ body { text-overflow: ellipsis; mark { background: rgba(245, 223, 77, 0.5); - color: var(--aa-text-color); + color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha)); font-style: normal; font-weight: 500; } @@ -498,12 +525,15 @@ body { display: none; } .aa-ItemContentDash { - color: var(--aa-muted-color); + color: rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha)); display: none; opacity: 0.4; } .aa-ItemContentTag { - background-color: var(--aa-primary-color-alpha); + background-color: rgba( + var(--aa-primary-color-rgb), + var(--aa-primary-color-alpha) + ); border-radius: 3px; margin: 0 0.4em 0 0; padding: 0.08em 0.3em; @@ -514,7 +544,10 @@ body { } // when the result is active &[aria-selected='true'] { - background-color: var(--aa-selected-color); + background-color: rgba( + var(--aa-selected-color-rgb), + var(--aa-selected-color-alpha) + ); .aa-ItemActionButton, .aa-ActiveOnly { visibility: visible; @@ -541,7 +574,7 @@ body { align-items: center; background: none; border: 0; - color: var(--aa-muted-color); + color: rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha)); cursor: pointer; display: flex; flex-shrink: 0; @@ -549,16 +582,16 @@ body { padding: 0; &:hover svg, &:focus svg { - color: var(--aa-text-color); + color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha)); } svg { - color: var(--aa-muted-color); + color: rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha)); margin: 0; stroke-width: var(--aa-icon-stroke-width); width: var(--aa-icon-size); &:hover, &:focus { - color: var(--aa-text-color); + color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha)); } } } @@ -569,7 +602,7 @@ body { //---------------- .aa-PanelHeader { align-items: center; - background: var(--aa-primary-color); + background: rgba(var(--aa-primary-color-rgb), 1); color: #fff; display: grid; height: var(--aa-modal-header-height); @@ -579,8 +612,8 @@ body { &::after { background-image: linear-gradient( - var(--aa-background-color), - var(--aa-background-color-alpha-0) + rgba(var(--aa-background-color-rgb), 1), + rgba(var(--aa-background-color-rgb), 0) ); bottom: calc(var(--aa-spacing-half) * -1); content: ''; @@ -597,8 +630,12 @@ body { // 8. Panel Footer //---------------- .aa-PanelFooter { - background-color: var(--aa-background-color); - box-shadow: inset 0 1px 0 var(--aa-panel-border-color); + background-color: rgba( + var(--aa-background-color-rgb), + var(--aa-background-color-alpha) + ); + box-shadow: inset 0 1px 0 + rgba(var(--aa-panel-border-color-rgb), var(--aa-panel-border-color-alpha)); display: flex; justify-content: space-between; margin: 0; @@ -607,8 +644,8 @@ body { z-index: 95; &::after { background-image: linear-gradient( - var(--aa-background-color-alpha-0), - var(--aa-muted-color) + rgba(var(--aa-background-color-rgb), 0), + rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha)) ); content: ''; height: var(--aa-spacing); @@ -626,7 +663,10 @@ body { // 9. Detached Mode //---------------- .aa-DetachedContainer { - background: var(--aa-background-color); + background: rgba( + var(--aa-background-color-rgb), + var(--aa-background-color-alpha) + ); bottom: 0; box-shadow: var(--aa-panel-shadow); display: flex; @@ -640,7 +680,8 @@ body { top: 0; z-index: 1000; .aa-DetachedFormContainer { - border-bottom: solid 1px var(--aa-panel-border-color); + border-bottom: solid 1px + rgba(var(--aa-panel-border-color-rgb), var(--aa-panel-border-color-alpha)); display: flex; flex-direction: row; justify-content: space-between; @@ -651,19 +692,26 @@ body { border: 0; border-radius: 3px; color: inherit; - color: var(--aa-text-color); + color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha)); cursor: pointer; font: inherit; margin: 0 0 0 var(--aa-spacing-half); padding: 0 var(--aa-spacing-half); &:hover, &:focus { - box-shadow: inset 0 0 0 1px var(--aa-panel-border-color); + box-shadow: inset 0 0 0 1px + rgba( + var(--aa-panel-border-color-rgb), + var(--aa-panel-border-color-alpha) + ); } } } .aa-Panel { - background-color: var(--aa-background-color); + background-color: rgba( + var(--aa-background-color-rgb), + var(--aa-background-color-alpha) + ); border-radius: 0; box-shadow: none; margin: 0; @@ -708,10 +756,14 @@ body { // Search Button .aa-DetachedSearchButton { align-items: center; - background-color: var(--aa-input-background-color); - border: 1px solid var(--aa-input-border-color); + background-color: rgba( + var(--aa-input-background-color-rgb), + var(--aa-input-background-color-alpha) + ); + border: 1px solid + rgba(var(--aa-input-border-color-rgb), var(--aa-input-border-color-alpha)); border-radius: 3px; - color: var(--aa-muted-color); + color: rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha)); cursor: pointer; display: flex; font: inherit; @@ -724,14 +776,16 @@ body { text-align: left; width: 100%; &:focus { - border-color: var(--aa-primary-color); - box-shadow: var(--aa-primary-color-alpha) 0 0 0 3px, - inset var(--aa-primary-color-alpha) 0 0 0 2px; + border-color: rgba(var(--aa-primary-color-rgb), 1); + box-shadow: rgba(var(--aa-primary-color-rgb), var(--aa-primary-color-alpha)) + 0 0 0 3px, + inset rgba(var(--aa-primary-color-rgb), var(--aa-primary-color-alpha)) 0 0 + 0 2px; outline: currentColor none medium; } .aa-DetachedSearchButtonIcon { align-items: center; - color: var(--aa-primary-color); + color: rgba(var(--aa-primary-color-rgb), 1); cursor: initial; display: flex; height: 100%; @@ -746,7 +800,10 @@ body { } .aa-DetachedOverlay { - background-color: var(--aa-overlay-color); + background-color: rgba( + var(--aa-overlay-color-rgb), + var(--aa-overlay-color-alpha) + ); height: 100vh; left: 0; margin: 0; @@ -777,7 +834,8 @@ body { .aa-GradientTop { background-image: linear-gradient( - var(--aa-background-color) var(--aa-background-color-alpha-0) + rgba(var(--aa-background-color-rgb), 1), + rgba(var(--aa-background-color-rgb), 0) ); height: var(--aa-spacing-half); top: 0; @@ -786,8 +844,8 @@ body { .aa-GradientBottom { background-image: linear-gradient( - var(--aa-background-color-alpha-0), - var(--aa-background-color) + rgba(var(--aa-background-color-rgb), 0), + rgba(var(--aa-background-color-rgb), 1) ); bottom: 0; height: var(--aa-spacing); From cd6facdb860e976d201f089ea9827ea411787472 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Fri, 19 Mar 2021 10:40:42 +0100 Subject: [PATCH 03/25] feat: remove capitalize on header --- packages/autocomplete-theme-classic/src/theme.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index 9fdf234e4..766931ea4 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -355,7 +355,6 @@ body { margin: 0; padding: 0 var(--aa-spacing-half) 0 0; position: relative; - text-transform: capitalize; z-index: 2; } // Line separator From b8728ca30373012c0eb1b8dc032371eeefe1961e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Fri, 19 Mar 2021 10:43:27 +0100 Subject: [PATCH 04/25] feat: rename columns CSS classes --- packages/autocomplete-theme-classic/src/theme.scss | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index 766931ea4..29edf3e7c 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -266,19 +266,19 @@ body { position: relative; text-align: left; - &.aa-PanelLayout-cols-two--golden { + &.aa-PanelLayoutColumns--twoGolden { display: grid; grid-template-columns: 39.2% auto; overflow: hidden; padding: 0; } - &.aa-PanelLayout-cols-two { + &.aa-PanelLayoutColumns--two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; padding: 0; } - &.aa-PanelLayout-cols-three { + &.aa-PanelLayoutColumns--three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; From ed288f3d0886d818d5654cc3f91ccc75d072d230 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Fri, 19 Mar 2021 10:44:20 +0100 Subject: [PATCH 05/25] fix: fix scrollable class case --- packages/autocomplete-js/src/__tests__/render.test.ts | 2 +- packages/autocomplete-js/src/autocomplete.ts | 2 +- packages/autocomplete-js/src/render.tsx | 2 +- packages/autocomplete-theme-classic/src/theme.scss | 2 +- packages/website/docs/autocomplete-theme-classic.md | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/autocomplete-js/src/__tests__/render.test.ts b/packages/autocomplete-js/src/__tests__/render.test.ts index d10b06eee..ceeab1214 100644 --- a/packages/autocomplete-js/src/__tests__/render.test.ts +++ b/packages/autocomplete-js/src/__tests__/render.test.ts @@ -367,7 +367,7 @@ describe('render', () => { children: [ expect.objectContaining({ props: { - className: 'aa-PanelLayout aa-Panel--Scrollable', + className: 'aa-PanelLayout aa-Panel--scrollable', children: sections, }, }), diff --git a/packages/autocomplete-js/src/autocomplete.ts b/packages/autocomplete-js/src/autocomplete.ts index 7dc5003bd..da6ef56c6 100644 --- a/packages/autocomplete-js/src/autocomplete.ts +++ b/packages/autocomplete-js/src/autocomplete.ts @@ -228,7 +228,7 @@ export function autocomplete( // results come in) so that users don't have to. if (state.query !== prevState.query) { const scrollablePanels = document.querySelectorAll( - '.aa-Panel--Scrollable' + '.aa-Panel--scrollable' ); scrollablePanels.forEach((scrollablePanel) => { if (scrollablePanel.scrollTop !== 0) { diff --git a/packages/autocomplete-js/src/render.tsx b/packages/autocomplete-js/src/render.tsx index 3ee6676af..99ed97f9e 100644 --- a/packages/autocomplete-js/src/render.tsx +++ b/packages/autocomplete-js/src/render.tsx @@ -167,7 +167,7 @@ export function renderPanel( const children = ( -
{sections}
+
{sections}
); diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index 29edf3e7c..89a4e49f4 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -285,7 +285,7 @@ body { padding: 0; } - .aa-Panel--Scrollable { + .aa-Panel--scrollable { margin: 0; max-height: var(--aa-panel-max-height); overflow-x: hidden; diff --git a/packages/website/docs/autocomplete-theme-classic.md b/packages/website/docs/autocomplete-theme-classic.md index b06ef18ca..bdea86cf7 100644 --- a/packages/website/docs/autocomplete-theme-classic.md +++ b/packages/website/docs/autocomplete-theme-classic.md @@ -49,7 +49,7 @@ To customize a value, you can create a custom stylesheet and override the variab } ``` -Make sure to load these styles *after* the theme. +Make sure to load these styles _after_ the theme. ## Templates @@ -166,7 +166,7 @@ The theme provides a set of optional classes for you to use in different context - `.aa-ItemIcon--no-border` removes the border of the icon - `.aa-ItemIcon--align-top` aligns the icon to the top (recommended when the template is longer than three lines) -- `.aa-Panel--Scrollable` declares the scrollable container(s) of the panel +- `.aa-Panel--scrollable` declares the scrollable container(s) of the panel ### Utilities From 7fbeec3265cab33ba7122d8c2846f8e19a0ae183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Fri, 19 Mar 2021 10:45:37 +0100 Subject: [PATCH 06/25] chore: update comments --- packages/autocomplete-theme-classic/src/theme.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index 89a4e49f4..14d992a39 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -12,8 +12,8 @@ // ---------------- // Note: -// This theme is trying to reflect the markup of autocomplete with SCSS indentation. -// We use the SASS `@at-root` function to remove unecessary specificities. +// This theme reflects the markup structure of autocomplete with SCSS indentation. +// We use the SASS `@at-root` function to keep specificity low. // ---------------- // 1. CSS Variables From d64ed5a83f2b6f0639f527239c384f859cb50a3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Fri, 19 Mar 2021 10:47:05 +0100 Subject: [PATCH 07/25] fix: rename ItemIcon CSS modifiers --- cypress/test-apps/js/app.tsx | 2 +- cypress/test-apps/js/categoriesPlugin.tsx | 2 +- examples/js/categoriesPlugin.tsx | 2 +- examples/query-suggestions-with-inline-categories/app.tsx | 2 +- examples/query-suggestions-with-rich-hits/app.tsx | 2 +- examples/recently-viewed-items/app.tsx | 2 +- examples/recently-viewed-items/recentlyViewedItemsPlugin.tsx | 2 +- .../src/getTemplates.tsx | 2 +- .../autocomplete-plugin-recent-searches/src/getTemplates.tsx | 2 +- packages/autocomplete-theme-classic/src/theme.scss | 4 ++-- packages/website/docs/autocomplete-theme-classic.md | 4 ++-- packages/website/docs/getting-started.mdx | 2 +- packages/website/docs/including-multiple-result-types.mdx | 2 +- packages/website/src/components/AutocompleteStaticItem.tsx | 2 +- packages/website/src/components/linksPlugin.tsx | 2 +- packages/website/src/components/productsPlugin.tsx | 2 +- 16 files changed, 18 insertions(+), 18 deletions(-) diff --git a/cypress/test-apps/js/app.tsx b/cypress/test-apps/js/app.tsx index 933500982..9f908a8c6 100644 --- a/cypress/test-apps/js/app.tsx +++ b/cypress/test-apps/js/app.tsx @@ -129,7 +129,7 @@ type ProductItemProps = { function ProductItem({ hit, insights }: ProductItemProps) { return ( -
+
{hit.name}
diff --git a/cypress/test-apps/js/categoriesPlugin.tsx b/cypress/test-apps/js/categoriesPlugin.tsx index 57075aaf5..05ad29f30 100644 --- a/cypress/test-apps/js/categoriesPlugin.tsx +++ b/cypress/test-apps/js/categoriesPlugin.tsx @@ -55,7 +55,7 @@ export function createCategoriesPlugin({ item({ item }) { return ( -
+
-
+
-
+
-
+
{hit.name}
diff --git a/examples/recently-viewed-items/app.tsx b/examples/recently-viewed-items/app.tsx index 8b9a4d1c5..b77e01ab4 100644 --- a/examples/recently-viewed-items/app.tsx +++ b/examples/recently-viewed-items/app.tsx @@ -87,7 +87,7 @@ type ProductItemProps = { function AutocompleteProductItem({ hit }: ProductItemProps) { return ( -
+
{hit.name}
diff --git a/examples/recently-viewed-items/recentlyViewedItemsPlugin.tsx b/examples/recently-viewed-items/recentlyViewedItemsPlugin.tsx index 4c64a2093..f47eb5179 100644 --- a/examples/recently-viewed-items/recentlyViewedItemsPlugin.tsx +++ b/examples/recently-viewed-items/recentlyViewedItemsPlugin.tsx @@ -80,7 +80,7 @@ export function createLocalStorageRecentlyViewedItems< {item.label}
) : ( -
+
({ item({ item, createElement, Fragment }) { return ( -
+
{!item.__autocomplete_qsCategory && ( ({ item({ item, createElement, Fragment }) { return ( -
+
diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index 14d992a39..dd4e25073 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -444,10 +444,10 @@ body { padding: var(--aa-spacing-half); } } - &.aa-ItemIcon--align-top { + &.aa-ItemIcon--alignTop { align-self: flex-start; } - &.aa-ItemIcon--no-border { + &.aa-ItemIcon--noBorder { background: none; box-shadow: none; margin: 0 var(--aa-spacing-half) 0 2px; diff --git a/packages/website/docs/autocomplete-theme-classic.md b/packages/website/docs/autocomplete-theme-classic.md index bdea86cf7..5ab404c93 100644 --- a/packages/website/docs/autocomplete-theme-classic.md +++ b/packages/website/docs/autocomplete-theme-classic.md @@ -164,8 +164,8 @@ The theme provides a set of optional classes for you to use in different context ### Modifiers -- `.aa-ItemIcon--no-border` removes the border of the icon -- `.aa-ItemIcon--align-top` aligns the icon to the top (recommended when the template is longer than three lines) +- `.aa-ItemIcon--noBorder` removes the border of the icon +- `.aa-ItemIcon--alignTop` aligns the icon to the top (recommended when the template is longer than three lines) - `.aa-Panel--scrollable` declares the scrollable container(s) of the panel ### Utilities diff --git a/packages/website/docs/getting-started.mdx b/packages/website/docs/getting-started.mdx index 4062d3b9c..44772c086 100644 --- a/packages/website/docs/getting-started.mdx +++ b/packages/website/docs/getting-started.mdx @@ -206,7 +206,7 @@ autocomplete({ function ProductItem({ hit }: ProductItemProps) { return ( -
+
{hit.name}
diff --git a/packages/website/docs/including-multiple-result-types.mdx b/packages/website/docs/including-multiple-result-types.mdx index 43178e258..61b7b2ee5 100644 --- a/packages/website/docs/including-multiple-result-types.mdx +++ b/packages/website/docs/including-multiple-result-types.mdx @@ -254,7 +254,7 @@ export const predefinedItemsPlugin = { item({ item }) { return ( -
+
-
+
-
+
-
+
{hit.name}
From 9a758eab988ec9967353e188967906b6b5894993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Fri, 19 Mar 2021 10:48:47 +0100 Subject: [PATCH 08/25] fix: fix DetachedContainer modal CSS modifier case --- packages/autocomplete-js/src/autocomplete.ts | 2 +- packages/autocomplete-theme-classic/src/theme.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/autocomplete-js/src/autocomplete.ts b/packages/autocomplete-js/src/autocomplete.ts index da6ef56c6..64c1bf601 100644 --- a/packages/autocomplete-js/src/autocomplete.ts +++ b/packages/autocomplete-js/src/autocomplete.ts @@ -272,7 +272,7 @@ export function autocomplete( function toggleModalClassname(isActive: boolean) { dom.value.detachedContainer.classList.toggle( - 'aa-DetachedContainer--Modal', + 'aa-DetachedContainer--modal', isActive ); } diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index dd4e25073..cbeaeb06e 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -736,7 +736,7 @@ body { &::after { height: 32px; } - &.aa-DetachedContainer--Modal { + &.aa-DetachedContainer--modal { border-radius: 6px; bottom: inherit; height: auto; From 17cdd2106b6f0542602d11ac4222306ff341ea16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Fri, 19 Mar 2021 10:48:59 +0100 Subject: [PATCH 09/25] chore: improve stylelint config --- .stylelintrc.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.stylelintrc.json b/.stylelintrc.json index f307d44b9..c1461ce35 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -13,7 +13,9 @@ "rules": { "order/properties-alphabetical-order": true, "no-descending-specificity": null, - "selector-class-pattern": ["^aa-[A-Za-z0-9-]*$"], + "selector-class-pattern": [ + "^aa-(?:[A-Z][a-z]+)+(?:--[a-z]+(?:[A-Z][a-z]+)?)?$" + ], "prettier/prettier": true, "max-nesting-depth": null, "rule-empty-line-before": [ From a593a7931026d6c1444553d2a28e3e9a95f889e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Fri, 19 Mar 2021 10:53:45 +0100 Subject: [PATCH 10/25] chore: update comments --- .../autocomplete-theme-classic/src/theme.scss | 34 ++++++++----------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index cbeaeb06e..c5779d67c 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -90,12 +90,12 @@ body { /* stylelint-enable selector-no-qualifying-type, selector-class-pattern */ } -// reset for extend +// Reset for `@extend` %reset { box-sizing: border-box; } -// init for extend +// Init for `@extend` %init { color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha)); font-family: var(--aa-font-family); @@ -113,11 +113,10 @@ body { .aa-Autocomplete, .aa-DetachedFormContainer { @extend %init; - // reset * { @extend %reset; } - // searchbox + // Search box .aa-Form { align-items: center; background-color: rgba( @@ -139,7 +138,7 @@ body { display: flex; flex-shrink: 0; order: 1; - // container for search and loading icons + // Container for search and loading icons .aa-Label, .aa-LoadingIndicator { cursor: initial; @@ -167,7 +166,7 @@ body { order: 3; position: relative; width: 100%; - // input of the searchbox, where the placeholder and query appear + // Search box input (with placeholder and query) .aa-Input { appearance: none; background: none; @@ -176,7 +175,7 @@ body { font: inherit; height: var(--aa-search-input-height); width: 100%; - // remove native appearence + // Remove native appearence &::-webkit-search-decoration, &::-webkit-search-cancel-button, &::-webkit-search-results-button, @@ -187,7 +186,7 @@ body { color: rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha)); opacity: 1; } - // remove focus effect as we moved it to parent wrapper + // Remove focus effect as we moved it to parent wrapper &:focus { border-color: none; box-shadow: none; @@ -199,7 +198,7 @@ body { align-items: center; display: flex; order: 4; - // accelerator to clear the query + // Accelerator to clear the query .aa-ClearButton { align-items: center; background: none; @@ -240,8 +239,6 @@ body { // 4. Panel // ---------------- .aa-Panel { - @extend %init; - background-color: rgba( var(--aa-background-color-rgb), var(--aa-background-color-alpha) @@ -252,6 +249,7 @@ body { overflow: hidden; position: absolute; transition: opacity 200ms ease-in, filter 200ms ease-in; + @extend %init; @media screen and (prefers-reduced-motion) { transition: none; } @@ -296,7 +294,6 @@ body { } } } - // reset * { @extend %reset; } @@ -307,7 +304,7 @@ body { margin: 0; padding: 0; } - // when a query isn't resolved yet + // When a query isn't resolved yet &.aa-Panel--stalled { .aa-Source { filter: grayscale(1); @@ -330,14 +327,14 @@ body { margin: 0; padding: var(--aa-spacing); } - // list of results inside the source + // List of results inside the source @at-root .aa-List { list-style: none; margin: 0; padding: 0; position: relative; } - // source title + // Source title .aa-SourceHeader { margin: var(--aa-spacing-half) 0.5em var(--aa-spacing-half) 0; padding: 0; @@ -371,7 +368,7 @@ body { top: var(--aa-spacing-half); z-index: 1; } - // hide empty header + // Hide empty header &:empty { display: none; } @@ -413,7 +410,7 @@ body { cursor: pointer; display: flex; padding: 0; - // the result type icon inlined svg or img + // The result type icon inlined svg or img @at-root .aa-ItemIcon { align-items: center; background: rgba( @@ -792,7 +789,7 @@ body { width: calc(var(--aa-icon-size) + var(--aa-spacing)); } } -// remove scroll for body +// Remove scroll on `body` .aa-Detached { height: 100vh; overflow: hidden; @@ -822,7 +819,6 @@ body { //---------------- // 10. Gradients //---------------- - .aa-GradientTop, .aa-GradientBottom { left: 0; From 87463e1348d1c0ed8809f3da841230eb9748cbc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Fri, 19 Mar 2021 10:59:07 +0100 Subject: [PATCH 11/25] chore: run lint --- .../autocomplete-theme-classic/src/theme.scss | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index c5779d67c..a4d713e94 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -239,6 +239,8 @@ body { // 4. Panel // ---------------- .aa-Panel { + @extend %init; + background-color: rgba( var(--aa-background-color-rgb), var(--aa-background-color-alpha) @@ -249,7 +251,23 @@ body { overflow: hidden; position: absolute; transition: opacity 200ms ease-in, filter 200ms ease-in; - @extend %init; + * { + @extend %reset; + } + button { + appearance: none; + background: none; + border: 0; + margin: 0; + padding: 0; + } + // When a query isn't resolved yet + &.aa-Panel--stalled { + .aa-Source { + filter: grayscale(1); + opacity: 0.8; + } + } @media screen and (prefers-reduced-motion) { transition: none; } @@ -294,23 +312,6 @@ body { } } } - * { - @extend %reset; - } - button { - appearance: none; - background: none; - border: 0; - margin: 0; - padding: 0; - } - // When a query isn't resolved yet - &.aa-Panel--stalled { - .aa-Source { - filter: grayscale(1); - opacity: 0.8; - } - } } // ---------------- From 75c56ed61cc8b43bf66fb0ca3d8ff35175745eb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Fri, 19 Mar 2021 10:59:29 +0100 Subject: [PATCH 12/25] chore(examples): update icon class --- examples/js/app.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/js/app.tsx b/examples/js/app.tsx index 25c4a7bdb..21ba38ab5 100644 --- a/examples/js/app.tsx +++ b/examples/js/app.tsx @@ -120,7 +120,7 @@ type ProductItemProps = { function ProductItem({ hit, insights }: ProductItemProps) { return ( -
+
{hit.name}
From bd7e49bfe756f2c5fb932ebdc115ac6102519b03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Wed, 24 Mar 2021 09:25:02 +0100 Subject: [PATCH 13/25] fix: remove `aa-key-shadow` var --- packages/autocomplete-theme-classic/src/theme.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index a4d713e94..b5f55975e 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -67,7 +67,6 @@ // shadows --aa-panel-shadow: 0 0 0 1px rgba(35, 38, 59, 0.1), 0 6px 16px -4px rgba(35, 38, 59, 0.15); - --aa-key-shadow: ''; } // ---------------- From 9c260268e7ff881df3b879c694f98ca25e0e9f95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Wed, 24 Mar 2021 09:39:59 +0100 Subject: [PATCH 14/25] feat: use base `z-index` var --- .../autocomplete-theme-classic/src/theme.scss | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index b5f55975e..c99ab2ef9 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -67,6 +67,8 @@ // shadows --aa-panel-shadow: 0 0 0 1px rgba(35, 38, 59, 0.1), 0 6px 16px -4px rgba(35, 38, 59, 0.15); + // Z-index + --aa-base-z-index: 9999; } // ---------------- @@ -352,7 +354,7 @@ body { margin: 0; padding: 0 var(--aa-spacing-half) 0 0; position: relative; - z-index: 2; + z-index: var(--aa-base-z-index); } // Line separator @at-root .aa-SourceHeaderLine { @@ -366,7 +368,7 @@ body { position: absolute; right: 0; top: var(--aa-spacing-half); - z-index: 1; + z-index: calc(var(--aa-base-z-index) - 1); } // Hide empty header &:empty { @@ -618,7 +620,7 @@ body { pointer-events: none; position: absolute; right: 0; - z-index: 99; + z-index: var(--aa-base-z-index); } } @@ -637,7 +639,7 @@ body { margin: 0; padding: var(--aa-spacing); position: relative; - z-index: 95; + z-index: var(--aa-base-z-index); &::after { background-image: linear-gradient( rgba(var(--aa-background-color-rgb), 0), @@ -651,7 +653,7 @@ body { position: absolute; right: 0; top: calc(var(--aa-spacing) * -1); - z-index: 99; + z-index: calc(var(--aa-base-z-index) - 1); } } @@ -674,7 +676,7 @@ body { position: fixed; right: 0; top: 0; - z-index: 1000; + z-index: var(--aa-base-z-index); .aa-DetachedFormContainer { border-bottom: solid 1px rgba(var(--aa-panel-border-color-rgb), var(--aa-panel-border-color-alpha)); @@ -807,7 +809,7 @@ body { position: fixed; right: 0; top: 0; - z-index: 999; + z-index: calc(var(--aa-base-z-index) - 1); } @media (hover: none) and (pointer: coarse) { @@ -834,7 +836,7 @@ body { ); height: var(--aa-spacing-half); top: 0; - z-index: 98; + z-index: var(--aa-base-z-index); } .aa-GradientBottom { @@ -844,5 +846,5 @@ body { ); bottom: 0; height: var(--aa-spacing); - z-index: 90; + z-index: var(--aa-base-z-index); } From 71c229f6a29a5da043e16185fc105866051ef629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Wed, 24 Mar 2021 09:42:19 +0100 Subject: [PATCH 15/25] refactor: update CSS vars descriptions --- .../autocomplete-theme-classic/src/theme.scss | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index c99ab2ef9..1a896d674 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -19,56 +19,65 @@ // 1. CSS Variables // ---------------- :root { - // input + // Input --aa-search-input-height: 44px; --aa-input-icon-size: 20px; - // size & spacing + + // Size and spacing --aa-base-unit: 16; --aa-spacing-factor: 0.8; --aa-spacing: calc(var(--aa-base-unit) * var(--aa-spacing-factor) * 1px); --aa-spacing-half: calc(var(--aa-spacing) / 2); --aa-panel-max-height: 650px; - // font + + // Z-index + --aa-base-z-index: 9999; + + // Font --aa-font-size: calc(var(--aa-base-unit) * 1px); --aa-font-family: -apple-system, 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; - // icons + + // Icons --aa-icon-size: 18px; --aa-icon-stroke-width: 1.6; --aa-icon-color-rgb: 119, 119, 163; --aa-icon-color-alpha: 1; - // text colors + + // Text colors --aa-text-color-rgb: 38, 38, 39; --aa-text-color-alpha: 1; --aa-primary-color-rgb: 62, 52, 211; --aa-primary-color-alpha: 0.2; --aa-muted-color-rgb: 128, 126, 163; --aa-muted-color-alpha: 0.6; - // border colors + + // Border colors --aa-panel-border-color-rgb: 128, 126, 163; --aa-panel-border-color-alpha: 0.3; --aa-input-border-color-rgb: 128, 126, 163; --aa-input-border-color-alpha: 0.8; - // background colors + + // Background colors --aa-selected-color-rgb: 179, 173, 214; --aa-selected-color-alpha: 0.205; --aa-background-color-rgb: 255, 255, 255; --aa-background-color-alpha: 1; --aa-input-background-color-rgb: 255, 255, 255; --aa-input-background-color-alpha: 1; - // detached mode + + // Detached mode --aa-detached-media-query: (max-width: 680px); --aa-detached-modal-media-query: (min-width: 680px); --aa-detached-modal-max-width: 680px; --aa-detached-modal-max-height: 500px; --aa-overlay-color-rgb: 115, 114, 129; --aa-overlay-color-alpha: 0.4; - // shadows + + // Shadows --aa-panel-shadow: 0 0 0 1px rgba(35, 38, 59, 0.1), 0 6px 16px -4px rgba(35, 38, 59, 0.15); - // Z-index - --aa-base-z-index: 9999; } // ---------------- From 8041ea3e0177606d09e786f60179402c0f23a59c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Wed, 24 Mar 2021 09:45:46 +0100 Subject: [PATCH 16/25] docs: update comments --- packages/autocomplete-theme-classic/src/theme.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index 1a896d674..0be33cb05 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -196,7 +196,7 @@ body { color: rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha)); opacity: 1; } - // Remove focus effect as we moved it to parent wrapper + // Focus is set and styled on the parent, it isn't necessary here &:focus { border-color: none; box-shadow: none; @@ -271,7 +271,7 @@ body { margin: 0; padding: 0; } - // When a query isn't resolved yet + // When a request isn't resolved yet &.aa-Panel--stalled { .aa-Source { filter: grayscale(1); From 5f91aff9c400d89bf6a0e80d256074d433c96ec1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Mon, 8 Mar 2021 16:14:03 +0100 Subject: [PATCH 17/25] feat(layout): introduce Layout API --- .circleci/config.yml | 4 + bundlesize.config.json | 4 + examples/layouts/README.md | 0 examples/layouts/app.tsx | 58 ++++++ examples/layouts/env.ts | 10 + examples/layouts/favicon.png | Bin 0 -> 233669 bytes examples/layouts/index.html | 20 ++ examples/layouts/package.json | 28 +++ examples/layouts/style.css | 20 ++ .../autocomplete-layout-classic/README.md | 15 ++ .../autocomplete-layout-classic/package.json | 36 ++++ .../rollup.config.js | 5 + .../src/NavigationCommandsLayout.tsx | 99 ++++++++++ .../src/SearchByAlgoliaLayout.tsx | 44 +++++ .../autocomplete-layout-classic/src/index.ts | 2 + .../tsconfig.declaration.json | 3 + .../autocomplete-theme-classic/src/theme.scss | 64 ++++++- .../docs/autocomplete-layout-classic.md | 178 ++++++++++++++++++ packages/website/sidebars.js | 1 + ship.config.js | 1 + 20 files changed, 590 insertions(+), 2 deletions(-) create mode 100644 examples/layouts/README.md create mode 100644 examples/layouts/app.tsx create mode 100644 examples/layouts/env.ts create mode 100644 examples/layouts/favicon.png create mode 100644 examples/layouts/index.html create mode 100644 examples/layouts/package.json create mode 100644 examples/layouts/style.css create mode 100644 packages/autocomplete-layout-classic/README.md create mode 100644 packages/autocomplete-layout-classic/package.json create mode 100644 packages/autocomplete-layout-classic/rollup.config.js create mode 100644 packages/autocomplete-layout-classic/src/NavigationCommandsLayout.tsx create mode 100644 packages/autocomplete-layout-classic/src/SearchByAlgoliaLayout.tsx create mode 100644 packages/autocomplete-layout-classic/src/index.ts create mode 100644 packages/autocomplete-layout-classic/tsconfig.declaration.json create mode 100644 packages/website/docs/autocomplete-layout-classic.md diff --git a/.circleci/config.yml b/.circleci/config.yml index d7c6792f7..cfd5014b2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -30,6 +30,7 @@ aliases: mkdir -p packages/autocomplete-plugin-algolia-insights/dist mkdir -p packages/autocomplete-plugin-recent-searches/dist mkdir -p packages/autocomplete-plugin-query-suggestions/dist + mkdir -p packages/autocomplete-layout-classic/dist cp -R /tmp/workspace/packages/autocomplete-shared/dist packages/autocomplete-shared cp -R /tmp/workspace/packages/autocomplete-core/dist packages/autocomplete-core @@ -38,6 +39,7 @@ aliases: cp -R /tmp/workspace/packages/autocomplete-plugin-algolia-insights/dist packages/autocomplete-plugin-algolia-insights cp -R /tmp/workspace/packages/autocomplete-plugin-recent-searches/dist packages/autocomplete-plugin-recent-searches cp -R /tmp/workspace/packages/autocomplete-plugin-query-suggestions/dist packages/autocomplete-plugin-query-suggestions + cp -R /tmp/workspace/packages/autocomplete-layout-classic/dist packages/autocomplete-layout-classic defaults: &defaults working_directory: ~/autocomplete @@ -82,6 +84,7 @@ jobs: mkdir -p /tmp/workspace/packages/autocomplete-plugin-algolia-insights/dist mkdir -p /tmp/workspace/packages/autocomplete-plugin-recent-searches/dist mkdir -p /tmp/workspace/packages/autocomplete-plugin-query-suggestions/dist + mkdir -p /tmp/workspace/packages/autocomplete-layout-classic/dist cp -R packages/autocomplete-shared/dist /tmp/workspace/packages/autocomplete-shared cp -R packages/autocomplete-core/dist /tmp/workspace/packages/autocomplete-core @@ -90,6 +93,7 @@ jobs: cp -R packages/autocomplete-plugin-algolia-insights/dist /tmp/workspace/packages/autocomplete-plugin-algolia-insights cp -R packages/autocomplete-plugin-recent-searches/dist /tmp/workspace/packages/autocomplete-plugin-recent-searches cp -R packages/autocomplete-plugin-query-suggestions/dist /tmp/workspace/packages/autocomplete-plugin-query-suggestions + cp -R packages/autocomplete-layout-classic/dist /tmp/workspace/packages/autocomplete-layout-classic - persist_to_workspace: root: *workspace_root paths: diff --git a/bundlesize.config.json b/bundlesize.config.json index 654cbd0bc..8c0a42225 100644 --- a/bundlesize.config.json +++ b/bundlesize.config.json @@ -24,6 +24,10 @@ "path": "packages/autocomplete-plugin-query-suggestions/dist/umd/index.production.js", "maxSize": "4 kB" }, + { + "path": "packages/autocomplete-layout-classic/dist/umd/index.production.js", + "maxSize": "4 kB" + }, { "path": "packages/autocomplete-theme-classic/dist/theme.css", "maxSize": "4 kB" diff --git a/examples/layouts/README.md b/examples/layouts/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/examples/layouts/app.tsx b/examples/layouts/app.tsx new file mode 100644 index 000000000..ac7cf25e5 --- /dev/null +++ b/examples/layouts/app.tsx @@ -0,0 +1,58 @@ +/** @jsx h */ +import { autocomplete } from '@algolia/autocomplete-js'; +import { + NavigationCommandsLayout, + SearchByAlgoliaLayout, +} from '@algolia/autocomplete-layout-classic'; +import { createQuerySuggestionsPlugin } from '@algolia/autocomplete-plugin-query-suggestions'; +import algoliasearch from 'algoliasearch/lite'; +import { h, render } from 'preact'; + +import '@algolia/autocomplete-theme-classic'; + +const appId = 'latency'; +const apiKey = '6be0576ff61c053d5f9a3225e2a90f76'; +const searchClient = algoliasearch(appId, apiKey); + +const querySuggestionsPlugin = createQuerySuggestionsPlugin({ + searchClient, + indexName: 'instant_search_demo_query_suggestions', + getSearchParams() { + return { + hitsPerPage: 10, + }; + }, +}); + +autocomplete({ + container: '#autocomplete', + placeholder: 'Search', + openOnFocus: true, + plugins: [querySuggestionsPlugin], + render({ sections, createElement, Fragment }, root) { + render( + +
{sections}
+
+ {NavigationCommandsLayout({ + createElement, + Fragment, + translations: { + toClose: 'pour fermer', + toNavigate: 'pour naviguer', + toSelect: 'pour sélectionner', + }, + })} + {SearchByAlgoliaLayout({ + createElement, + Fragment, + translations: { + searchBy: 'Recherche par', + }, + })} +
+
, + root + ); + }, +}); diff --git a/examples/layouts/env.ts b/examples/layouts/env.ts new file mode 100644 index 000000000..e289f63b2 --- /dev/null +++ b/examples/layouts/env.ts @@ -0,0 +1,10 @@ +import * as preact from 'preact'; + +// Parcel picks the `source` field of the monorepo packages and thus doesn't +// apply the Babel config to replace our `__DEV__` global expression. +// We therefore need to manually override it in the example app. +// See https://twitter.com/devongovett/status/1134231234605830144 +(global as any).__DEV__ = process.env.NODE_ENV !== 'production'; +(global as any).__TEST__ = false; +(global as any).h = preact.h; +(global as any).React = preact; diff --git a/examples/layouts/favicon.png b/examples/layouts/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..f305dca76200d34fe62ca09ea8902771a55be240 GIT binary patch literal 233669 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

{9CkoM8=tqH@6BAl$$zE*#f7>2qC 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�j=#r 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 JPDHLkV1h>%ltTaj literal 0 HcmV?d00001 diff --git a/examples/layouts/index.html b/examples/layouts/index.html new file mode 100644 index 000000000..df0fe276a --- /dev/null +++ b/examples/layouts/index.html @@ -0,0 +1,20 @@ + + + + + + + + + Layouts Examples + + + +

+ + + + + diff --git a/examples/layouts/package.json b/examples/layouts/package.json new file mode 100644 index 000000000..e1622066e --- /dev/null +++ b/examples/layouts/package.json @@ -0,0 +1,28 @@ +{ + "name": "@algolia/layouts-example", + "description": "Autocomplete Layouts Sandbox", + "version": "1.0.0-alpha.44", + "private": true, + "license": "MIT", + "main": "index.html", + "scripts": { + "build": "parcel build index.html", + "start": "parcel index.html" + }, + "dependencies": { + "@algolia/autocomplete-js": "1.0.0-alpha.44", + "@algolia/autocomplete-plugin-query-suggestions": "1.0.0-alpha.44", + "@algolia/autocomplete-theme-classic": "1.0.0-alpha.44", + "@algolia/autocomplete-layout-classic": "1.0.0-alpha.44", + "algoliasearch": "4.8.3", + "preact": "10.5.7" + }, + "devDependencies": { + "parcel-bundler": "1.12.4" + }, + "keywords": [ + "algolia", + "autocomplete", + "javascript" + ] +} diff --git a/examples/layouts/style.css b/examples/layouts/style.css new file mode 100644 index 000000000..a4d3906cf --- /dev/null +++ b/examples/layouts/style.css @@ -0,0 +1,20 @@ +* { + box-sizing: border-box; +} + +body { + background-color: rgb(244, 244, 249); + color: rgb(65, 65, 65); + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + padding: 1rem; +} + +.container { + margin: 0 auto; + max-width: 640px; + width: 100%; +} diff --git a/packages/autocomplete-layout-classic/README.md b/packages/autocomplete-layout-classic/README.md new file mode 100644 index 000000000..257316f4e --- /dev/null +++ b/packages/autocomplete-layout-classic/README.md @@ -0,0 +1,15 @@ +# @algolia/autocomplete-layout-classic + +Classic layout for Algolia Autocomplete. + +## Installation + +```sh +yarn add @algolia/autocomplete-layout-classic@alpha +# or +npm install @algolia/autocomplete-layout-classic@alpha +``` + +## Documentation + +[Read documentation →](https://autocomplete.algolia.com/docs/autocomplete-layout-classic) diff --git a/packages/autocomplete-layout-classic/package.json b/packages/autocomplete-layout-classic/package.json new file mode 100644 index 000000000..9bcbd0a96 --- /dev/null +++ b/packages/autocomplete-layout-classic/package.json @@ -0,0 +1,36 @@ +{ + "name": "@algolia/autocomplete-layout-classic", + "description": "Classic layout for Algolia Autocomplete.", + "version": "1.0.0-alpha.44", + "license": "MIT", + "homepage": "https://github.com/algolia/autocomplete", + "repository": "algolia/autocomplete", + "author": { + "name": "Algolia, Inc.", + "url": "https://www.algolia.com" + }, + "sideEffects": false, + "files": [ + "dist/" + ], + "source": "src/index.ts", + "types": "dist/esm/index.d.ts", + "module": "dist/esm/index.js", + "main": "dist/umd/index.production.js", + "umd:main": "dist/umd/index.production.js", + "unpkg": "dist/umd/index.production.js", + "jsdelivr": "dist/umd/index.production.js", + "scripts": { + "build:clean": "rm -rf ./dist", + "build:esm": "babel src --root-mode upward --extensions '.ts,.tsx' --out-dir dist/esm --ignore '**/*/__tests__/'", + "build:types": "tsc -p ./tsconfig.declaration.json --outDir ./dist/esm", + "build:umd": "rollup --config", + "build": "yarn build:clean && yarn build:umd && yarn build:esm && yarn build:types", + "on:change": "concurrently \"yarn build:esm\" \"yarn build:types\"", + "prepare": "yarn build:esm && yarn build:types", + "watch": "watch \"yarn on:change\" --ignoreDirectoryPattern \"/dist/\"" + }, + "devDependencies": { + "@algolia/autocomplete-js": "1.0.0-alpha.44" + } +} diff --git a/packages/autocomplete-layout-classic/rollup.config.js b/packages/autocomplete-layout-classic/rollup.config.js new file mode 100644 index 000000000..099ce0e3a --- /dev/null +++ b/packages/autocomplete-layout-classic/rollup.config.js @@ -0,0 +1,5 @@ +import { createRollupConfigs } from '../../scripts/rollup/config'; + +import pkg from './package.json'; + +export default createRollupConfigs({ pkg }); diff --git a/packages/autocomplete-layout-classic/src/NavigationCommandsLayout.tsx b/packages/autocomplete-layout-classic/src/NavigationCommandsLayout.tsx new file mode 100644 index 000000000..2e7c0c8db --- /dev/null +++ b/packages/autocomplete-layout-classic/src/NavigationCommandsLayout.tsx @@ -0,0 +1,99 @@ +/** @jsx createElement */ +import type { Pragma, PragmaFrag } from '@algolia/autocomplete-js'; + +type NavigationCommandsLayoutTranslations = { + toSelect: string; + toNavigate: string; + toClose: string; +}; + +const defaultTranslations: NavigationCommandsLayoutTranslations = { + toSelect: 'to select', + toNavigate: 'to navigate', + toClose: 'to close', +}; + +type NavigationCommandsLayoutProps = { + translations?: NavigationCommandsLayoutTranslations; + createElement: Pragma; + Fragment: PragmaFrag; +}; + +export function NavigationCommandsLayout({ + translations = defaultTranslations, + createElement, +}: NavigationCommandsLayoutProps) { + return ( +
+
    +
  • + + + + + + + + + {translations.toSelect} + +
  • +
  • + + + + + + + + + + + + + + + + {translations.toNavigate} + +
  • +
  • + + + + + + + + + {translations.toClose} + +
  • +
+
+ ); +} diff --git a/packages/autocomplete-layout-classic/src/SearchByAlgoliaLayout.tsx b/packages/autocomplete-layout-classic/src/SearchByAlgoliaLayout.tsx new file mode 100644 index 000000000..96b6cdd70 --- /dev/null +++ b/packages/autocomplete-layout-classic/src/SearchByAlgoliaLayout.tsx @@ -0,0 +1,44 @@ +/** @jsx createElement */ +import type { Pragma, PragmaFrag } from '@algolia/autocomplete-js'; + +type SearchByAlgoliaTranslations = { + searchBy: string; +}; + +const defaultTranslations: SearchByAlgoliaTranslations = { + searchBy: 'Search by', +}; + +type SearchByAlgoliaLayoutProps = { + translations?: SearchByAlgoliaTranslations; + createElement: Pragma; + Fragment: PragmaFrag; +}; + +export function SearchByAlgoliaLayout({ + translations = defaultTranslations, + createElement, +}: SearchByAlgoliaLayoutProps) { + return ( +
+ {translations.searchBy} + + + + + ); +} diff --git a/packages/autocomplete-layout-classic/src/index.ts b/packages/autocomplete-layout-classic/src/index.ts new file mode 100644 index 000000000..d5bcd16cb --- /dev/null +++ b/packages/autocomplete-layout-classic/src/index.ts @@ -0,0 +1,2 @@ +export * from './NavigationCommandsLayout'; +export * from './SearchByAlgoliaLayout'; diff --git a/packages/autocomplete-layout-classic/tsconfig.declaration.json b/packages/autocomplete-layout-classic/tsconfig.declaration.json new file mode 100644 index 000000000..1e0c6449f --- /dev/null +++ b/packages/autocomplete-layout-classic/tsconfig.declaration.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.declaration" +} diff --git a/packages/autocomplete-theme-classic/src/theme.scss b/packages/autocomplete-theme-classic/src/theme.scss index 0be33cb05..7b3e0de0a 100644 --- a/packages/autocomplete-theme-classic/src/theme.scss +++ b/packages/autocomplete-theme-classic/src/theme.scss @@ -9,6 +9,7 @@ // 8. Panel Footer // 9. Detached Mode // 10. Gradients +// 11. Layouts // ---------------- // Note: @@ -287,7 +288,7 @@ body { max-height: var(--aa-panel-max-height); overflow-y: auto; padding: 0; - padding: var(--aa-spacing-half) var(--aa-spacing) var(--aa-spacing) + padding: var(--aa-spacing-half) var(--aa-spacing) var(--aa-spacing-half) var(--aa-spacing-half); position: relative; text-align: left; @@ -645,7 +646,7 @@ body { rgba(var(--aa-panel-border-color-rgb), var(--aa-panel-border-color-alpha)); display: flex; justify-content: space-between; - margin: 0; + margin: var(--aa-spacing-half) 0 0 0; padding: var(--aa-spacing); position: relative; z-index: var(--aa-base-z-index); @@ -857,3 +858,62 @@ body { height: var(--aa-spacing); z-index: var(--aa-base-z-index); } + +//---------------- +// 11. Layouts +//---------------- +@media (hover: none) and (pointer: coarse) { + .aa-NavigationCommands > * { + display: none; + } +} + +.aa-NavigationCommandList { + display: grid; + gap: var(--aa-spacing); + grid-template-columns: repeat(3, auto); + margin: 0; + padding: 0; +} + +.aa-NavigationCommandListItem { + align-items: center; + display: flex; + flex-direction: row; + justify-content: center; +} + +.aa-NavigationCommandLabel, +.aa-SearchByAlgoliaLabel { + color: #969faf; + font-size: 0.75em; + line-height: 1.6em; +} + +.aa-SearchByAlgolia { + align-items: center; + display: grid; + gap: var(--aa-spacing-half); + grid-template-columns: repeat(2, auto); + text-decoration: none; +} + +.aa-SearchByAlgoliaLogo { + color: rgb(84, 104, 255); +} + +.aa-Key { + align-items: center; + background: linear-gradient(-225deg, rgb(213, 219, 228), rgb(248, 248, 248)); + border-radius: 3px; + box-shadow: inset 0 -2px 0 0 #cdcde6, inset 0 0 1px 1px #fff, + 0 1px 2px 1px rgba(30, 35, 90, 0.4); + color: #969faf; + display: flex; + height: 20px; + justify-content: center; + margin-right: 8px; + position: relative; + top: -1px; + width: 20px; +} diff --git a/packages/website/docs/autocomplete-layout-classic.md b/packages/website/docs/autocomplete-layout-classic.md new file mode 100644 index 000000000..bd7693fc7 --- /dev/null +++ b/packages/website/docs/autocomplete-layout-classic.md @@ -0,0 +1,178 @@ +--- +id: autocomplete-layout-classic +--- + +The Classic layout provides components for Autocomplete experiences. + +This layout relies on the [Autocomplete Classic Theme](autocomplete-theme-classic). Make sure to install it as well. + +## Installation + +First, you need to install the layout. + +```bash +yarn add @algolia/autocomplete-layout-classic@alpha +# or +npm install @algolia/autocomplete-layout-classic@alpha +``` + +Then import it in your project: + +```js +import { + NavigationCommandsLayout, + SearchByAlgoliaLayout, +} from '@algolia/autocomplete-layout-classic'; +``` + +If you don't use a package manager, you can use a standalone endpoint: + +```html + +``` + +## Examples + +With default translations: + +```tsx +/** @jsx h */ +import { autocomplete } from '@algolia/autocomplete-js'; +import { + NavigationCommandsLayout, + SearchByAlgoliaLayout, +} from '@algolia/autocomplete-layout-classic'; +import { h, render } from 'preact'; + +import '@algolia/autocomplete-theme-classic'; + +autocomplete({ + // ... + render({ sections, createElement, Fragment }, root) { + render( + +
{sections}
+
+ {NavigationCommandsLayout({ createElement, Fragment })} + {SearchByAlgoliaLayout({ createElement, Fragment })} +
+
, + root + ); + }, +}); +``` + +With French translations: + +```tsx +/** @jsx h */ +import { autocomplete } from '@algolia/autocomplete-js'; +import { + NavigationCommandsLayout, + SearchByAlgoliaLayout, +} from '@algolia/autocomplete-layout-classic'; +import { h, render } from 'preact'; + +import '@algolia/autocomplete-theme-classic'; + +autocomplete({ + // ... + render({ sections, createElement, Fragment }, root) { + render( + +
{sections}
+
+ {NavigationCommandsLayout({ + createElement, + Fragment, + translations: { + toClose: 'pour fermer', + toNavigate: 'pour naviguer', + toSelect: 'pour sélectionner', + }, + })} + {SearchByAlgoliaLayout({ + createElement, + Fragment, + translations: { + searchBy: 'Recherche par', + }, + })} +
+
, + root + ); + }, +}); +``` + +## Layouts + +### `NavigationCommandsLayout` + +#### `createElement` + +> `(type: any, props: Record | null, ...children: ComponentChildren[]) => VNode` + +The function that create virtual nodes. + +#### `Fragment` + +The component to use to create fragments. + +#### `translations` + +> `NavigationCommandsLayoutTranslations` | defaults to English strings + +The translations to display. + +```ts +type NavigationCommandsLayoutTranslations = { + toSelect: string; + toNavigate: string; + toClose: string; +}; +``` + +Defaults to: + +```ts +const translations = { + toSelect: 'to select', + toNavigate: 'to navigate', + toClose: 'to close', +}; +``` + +### `SearchByAlgoliaLayout` + +#### `createElement` + +> `(type: any, props: Record | null, ...children: ComponentChildren[]) => VNode` + +The function that create virtual nodes. + +#### `Fragment` + +The component to use to create fragments. + +#### `translations` + +> `SearchByAlgoliaTranslations` | defaults to English strings + +The translations to display. + +```ts +type SearchByAlgoliaTranslations = { + searchBy: string; +}; +``` + +Defaults to: + +```ts +const translations = { + searchBy: 'Search by', +}; +``` diff --git a/packages/website/sidebars.js b/packages/website/sidebars.js index 4d12dff55..95c939c4f 100644 --- a/packages/website/sidebars.js +++ b/packages/website/sidebars.js @@ -79,6 +79,7 @@ module.exports = { ], }, 'autocomplete-theme-classic', + 'autocomplete-layout-classic', ], }, }; diff --git a/ship.config.js b/ship.config.js index beaa5e8ed..57b6cdc44 100644 --- a/ship.config.js +++ b/ship.config.js @@ -9,6 +9,7 @@ module.exports = { packagesToPublish: [ 'packages/autocomplete-core', 'packages/autocomplete-js', + 'packages/autocomplete-layout-classic', 'packages/autocomplete-plugin-algolia-insights', 'packages/autocomplete-plugin-query-suggestions', 'packages/autocomplete-plugin-recent-searches', From afb1e2f62d58e718edef232d739b5547f76df779 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Thu, 25 Mar 2021 09:40:35 +0100 Subject: [PATCH 18/25] chore(ci): add Layouts sandbox to CodeSandbox deployments --- .codesandbox/ci.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.codesandbox/ci.json b/.codesandbox/ci.json index cdf19981c..e5716fc6e 100644 --- a/.codesandbox/ci.json +++ b/.codesandbox/ci.json @@ -9,7 +9,8 @@ "/examples/query-suggestions", "/examples/query-suggestions-with-recent-searches", "/examples/query-suggestions-with-inline-categories", - "/examples/recently-viewed-items" + "/examples/recently-viewed-items", + "/examples/layouts" ], "node": "14" } From 37cf813ba1bbaa999cb430011bb58b34371c886f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Wed, 7 Apr 2021 16:08:17 +0200 Subject: [PATCH 19/25] docs: update example --- examples/layouts/app.tsx | 3 ++- examples/layouts/package.json | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/examples/layouts/app.tsx b/examples/layouts/app.tsx index ac7cf25e5..55ba6acc8 100644 --- a/examples/layouts/app.tsx +++ b/examples/layouts/app.tsx @@ -28,11 +28,12 @@ autocomplete({ container: '#autocomplete', placeholder: 'Search', openOnFocus: true, + debug: true, plugins: [querySuggestionsPlugin], render({ sections, createElement, Fragment }, root) { render( -
{sections}
+
{sections}