An autocomplete component, built to be accessible.

Overview

Accessible autocomplete

The accessible autocomplete is a component that helps users choose answers from a list you provide. You can also use it to make the answers you get from users more consistent.

If you're asking users to provide their country or territory, the govuk-country-and-territory-autocomplete might be more appropriate.

npm version JavaScript Style Guide gzip size

Sauce Labs Build Status

accessible-autocomplete is a JavaScript autocomplete built from the ground up to be accessible. The design goals are:

  • Accessibility: Following WAI-ARIA best practices and testing with assistive technologies.
  • User experience: Supporting a wide variety of user needs.
  • Compatibility: Working with recommended browsers and assistive technologies.

Try out the examples!


Support

The GOV.UK Design System team maintains the accessible autocomplete as a standalone component. However, we’re only able to put in minimal work to support it.

Read about our plans to maintain this component.

Read more about the types of support we can provide.


Installation / usage

Using npm and a module system

Install it by running:

npm install --save accessible-autocomplete

The accessibleAutocomplete function will render an autocomplete <input> and its accompanying suggestions and aria-live region. Your page should provide a <label> and a container element:

<label for="my-autocomplete">Select your country</label>
<div id="my-autocomplete-container"></div>

Then import it using a module system like Browserify / Webpack / Rollup, and call the accessibleAutocomplete function, providing an array of values:

import accessibleAutocomplete from 'accessible-autocomplete'

const countries = [
  'France',
  'Germany',
  'United Kingdom'
]

accessibleAutocomplete({
  element: document.querySelector('#my-autocomplete-container'),
  id: 'my-autocomplete', // To match it to the existing <label>.
  source: countries
})

If you want to use it as a replacement for a <select> element, read the Progressive enhancement section.

As a plain JavaScript module

You can copy the dist/accessible-autocomplete.min.js file to your JavaScript folder and import it into the browser:

<script type="text/javascript" src="assets/js/accessible-autocomplete.min.js"></script>

Styling the autocomplete

A stylesheet is included with the package at dist/accessible-autocomplete.min.css.

You can copy it to your stylesheets folder and import it into the browser:

<link rel="stylesheet" href="assets/css/accessible-autocomplete.min.css" />

You can also import it using Sass:

@import "accessible-autocomplete";

Using with Preact

If you already use Preact in your application, you can import a bundle that will use that:

import preact from 'preact'
import Autocomplete from 'accessible-autocomplete/preact'

preact.render(
  <Autocomplete id='autocomplete' source={suggest} />,
  document.querySelector('#container')
)

Try out the Preact example!

Using with React

If you already use React in your application, you can import a bundle that will use that:

import React from 'react'
import ReactDOM from 'react-dom'
import Autocomplete from 'accessible-autocomplete/react'

ReactDOM.render(
  <Autocomplete id='autocomplete' source={suggest} />,
  document.querySelector('#container')
)

Try out the React example!

React versions

React v15.5.4 has been tested to work with the Accessible Autocomplete - although make sure to check out documented issues.

React v15.6.2 and 16.0 have been incompletely tested with the Accessible Autocomplete: while no undocumented issues were found, we recommend you carry out thorough testing if you wish to use these or later versions of React.

API documentation

Required options

element

Type: HTMLElement

The container element in which the autocomplete will be rendered in.

id

Type: string

The id to assign to the autocomplete input field, to use with a <label for=id>. Not required if using enhanceSelectElement.

source

Type: Array | Function

An array of values to search when the user types in the input field, or a function to take what the user types and call a callback function with the results to be displayed.

An example of an array of values:

const countries = [
  'France',
  'Germany',
  'United Kingdom'
]

If source is a function, the arguments are: query: string, populateResults: Function

Similar to the source argument for typeahead.js, a backing data source for suggestions. query is what gets typed into the input field, which will callback to populateResults synchronously with the array of string results to display in the menu.

An example of a simple suggestion engine:

function suggest (query, populateResults) {
  const results = [
    'France',
    'Germany',
    'United Kingdom'
  ]
  const filteredResults = results.filter(result => result.indexOf(query) !== -1)
  populateResults(filteredResults)
}

Other options

autoselect (default: false)

Type: Boolean

Set to true to highlight the first option when the user types in something and receives results. Pressing enter will select it.

confirmOnBlur (default: true)

Type: Boolean

The autocomplete will confirm the currently selected option when the user clicks outside of the component. Set to false to disable.

cssNamespace (default: 'autocomplete')

Type: string

Use this property to override the BEM block name that the JavaScript component will use. You will need to rewrite the CSS class names to use your specified block name.

defaultValue (default: '')

Type: string

Specify a string to prefill the autocomplete with.

displayMenu (default: 'inline')

Type: 'inline' | 'overlay'

You can set this property to specify the way the menu should appear, whether inline or as an overlay.

minLength (default: 0)

Type: number

The minimum number of characters that should be entered before the autocomplete will attempt to suggest options. When the query length is under this, the aria status region will also provide helpful text to the user informing them they should type in more.

name (default: 'input-autocomplete')

Type: string

The name for the autocomplete input field, to use with a parent <form>.

onConfirm (default: () => {})

Type: Function

Arguments: confirmed: Object

This function will be called when the user confirms an option, with the option they've confirmed.

placeholder (default: '') ⚠️ not recommended ⚠️

Type: string

This option will populate the placeholder attribute on the input element.

We think placeholders have usability issues and that there are better alternatives to input placeholder text, so we do not recommend using this option.

required (default: false)

Type: Boolean

The input field will be rendered with a required attribute, see W3C required attribute definition.

showAllValues (default: false)

Type: Boolean

If this is set to true, all values are shown when the user clicks the input. This is similar to a default dropdown, so the autocomplete is rendered with a dropdown arrow to convey this behaviour.

showNoOptionsFound (default: true)

Type: Boolean

The autocomplete will display a "No results found" template when there are no results. Set to false to disable.

templates (default: undefined)

Type:

{
  inputValue: Function,
  suggestion: Function
}

This object defines templates (functions) that are used for displaying parts of the autocomplete.

inputValue is a function that receives one argument, the currently selected suggestion. It returns the string value to be inserted into the input.

suggestion is a function that receives one argument, a suggestion to be displayed. It is used when rendering suggestions, and should return a string, which can contain HTML.

⚠️ Caution: because this function allows you to output arbitrary HTML, you should make sure it's trusted, and accessible.

If your template includes child elements with defined foreground or background colours, check they display correctly in forced colors modes. For example, Windows high contrast mode.

dropdownArrow (default: A triangle pointing down)

Type: Function

A function that gets passed an object with the property className ({ className: '' }) and should return a string of HTML or a (P)React element. ⚠️ Caution: because this function allows you to output arbitrary HTML, you should make sure it's trusted, and accessible.

Internationalization

tNoResults (default: () => 'No results found')

Type: Function

A function that receives no arguments and should return the text used in the dropdown to indicate that there are no results.

tStatusQueryTooShort (default: (minQueryLength) => `Type in ${minQueryLength} or more characters for results`)

Type: Function

A function that receives one argument that indicates the minimal amount of characters needed for the dropdown to trigger and should return the text used in the accessibility hint to indicate that the query is too short.

tStatusNoResults (default: () => 'No search results')

Type: Function

A function that receives no arguments and should return the text that is used in the accessibility hint to indicate that there are no results.

tStatusSelectedOption (default: (selectedOption, length, index) => `${selectedOption} ${index + 1} of ${length} is highlighted`)

Type: Function

A function that receives two arguments, the selectedOption and the amount of available options, and it should return the text used in the accessibility hint to indicate which option is selected.

tStatusResults

Default:

(length, contentSelectedOption) => {
  const words = {
    result: (length === 1) ? 'result' : 'results',
    is: (length === 1) ? 'is' : 'are'
  }

  return <span>{length} {words.result} {words.is} available. {contentSelectedOption}</span>
}

Type: Function

A function that receives two arguments, the count of available options and the return value of tStatusSelectedOption, and should return the text used in the accessibility hint to indicate which options are available and which is selected.

tAssistiveHint (default: () => 'When autocomplete results are available use up and down arrows to review and enter to select. Touch device users, explore by touch or with swipe gestures.')

Type: Function

A function that receives no arguments and should return the text to be assigned as the aria description of the html input element, via the aria-describedby attribute. This text is intended as an initial instruction to the assistive tech user. The aria-describedby attribute is automatically removed once user input is detected, in order to reduce screen reader verbosity.

Progressive enhancement

If your autocomplete is meant to select from a small list of options (a few hundred), we strongly suggest that you render a <select> menu on the server, and use progressive enhancement.

If you have the following HTML:

<select id="location-picker">
  <option value="fr">France</option>
  <option value="de">Germany</option>
  <option value="gb">United Kingdom</option>
</select>

You can use the accessibleAutocomplete.enhanceSelectElement function to enhance it into an autocomplete:

accessibleAutocomplete.enhanceSelectElement({
  selectElement: document.querySelector('#location-picker')
})

This will:

  • Place an autocomplete input field after the specified <select>
  • Default the autocomplete autoselect to true
  • Default the autocomplete defaultValue to the select's option[selected]
  • Default the autocomplete id to the <select>'s id
  • Default the autocomplete name attribute to '' to prevent it being included in form submissions
  • Default the autocomplete source to use existing <option>s from the <select>
  • Hide the <select> using inline display: none
  • Set the <select>'s id to ${id}-select to decouple from any <label>
  • Upon confirming a value in the autocomplete, update the original <select>

This function takes the same options as accessibleAutocomplete, with the only difference being that it uses selectElement instead of element, which needs to be an instance of HTMLSelectElement.

Note: The accessibleAutocomplete.enhanceSelectElement function is fairly light and wraps the public API for accessibleAutocomplete. If your use case doesn't fit the above defaults, try reading the source and seeing if you can write your own.

Null options

If your <select> element has a "null" option - a default option with no value - then you can pass a defaultValue option to enhanceSelectElement which will replace the label of this option when it is selected.

With the following HTML:

<select id="location-picker">
  <option value="">Select a country</option>
  <option value="fr">France</option>
  <option value="de">Germany</option>
  <option value="gb">United Kingdom</option>
</select>

Then passing a defaultValue option of '' will then leave the autocomplete blank if the null option is selected.

accessibleAutocomplete.enhanceSelectElement({
  defaultValue: '',
  selectElement: document.querySelector('#location-picker')
})

Any null options will also be filtered out of the options used to populate the source of the autocomplete element. To preserve options with no value in the autocomplete, then pass a preserveNullOptions flag of true to enhanceSelectElement.

Analytics and tracking

The following events get triggered on the input element during the life cycle of the autocomplete:

  • onConfirm - This function will be called when the user confirms an option, with the option they've chosen.

Example usage:

accessibleAutocomplete({
  // additional options
  onConfirm: (val) => {
    track(val)
  }
})

Why another autocomplete?

accessible-autocomplete was built after studying many existing solutions and prototyping patches to fix user experience or accessibility issues. It draws heavy inspiration from the following (and a lot of others):

Developing locally

Check out the CONTRIBUTING guide for instructions.

If you want to help and want to get more familiar with the codebase, try starting with the "good for beginners" issues.

License

MIT.

Comments
  • Update webpack to the latest version 🚀

    Update webpack to the latest version 🚀

    ☝️ Greenkeeper’s updated Terms of Service will come into effect on April 6th, 2018.

    Version 4.0.0 of webpack was just published.

    Dependency webpack
    Current Version 3.11.0
    Type devDependency

    The version 4.0.0 is not covered by your current version range.

    If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

    It might be worth looking into these changes and trying to get this project onto the latest version of webpack.

    If you have a solid test suite and good coverage, a passing build is a strong indicator that you can take advantage of these changes directly by merging the proposed change into your project. If the build fails or you don’t have such unconditional trust in your tests, this branch is a great starting point for you to work on the update.


    Release Notes v4.0.0

    Big changes

    • Environment
      • Node.js 4 is no longer supported. Source Code was upgraded to a higher ecmascript version.
    • Usage
      • You have to choose (mode or --mode) between two modes now: production or development
        • production enables all kind of optimizations to generate optimized bundles
        • development enables comments and hint for development and enables the eval devtool
        • production doesn't support watching, development is optimized for fast incremental rebuilds
        • production also enables module concatenating (Scope Hoisting)
        • You can configure this in detail with the flags in optimization.* (build your custom mode)
        • process.env.NODE_ENV are set to production or development (only in built code, not in config)
        • There is a hidden none mode which disables everything
    • Syntax
      • import() always returns a namespace object. CommonJS modules are wrapped into the default export
        • This probably breaks your code, if you used to import CommonJs with import()
    • Configuration
      • You no longer need to use these plugins:
        • NoEmitOnErrorsPlugin -> optimization.noEmitOnErrors (on by default in production mode)
        • ModuleConcatenationPlugin -> optimization.concatenateModules (on by default in production mode)
        • NamedModulesPlugin -> optimization.namedModules (on by default in develoment mode)
      • CommonsChunkPlugin was removed -> optimization.splitChunks, optimization.runtimeChunk
    • JSON
      • webpack now handles JSON natively
        • You may need to add type: "javascript/auto" when transforming JSON via loader to JS
        • Just using JSON without loader should still work
      • allows to import JSON via ESM syntax
        • unused exports elimination for JSON modules
    • Optimization
      • Upgrade uglifyjs-webpack-plugin to v1
        • ES15 support

    Big features

    • Modules
      • webpack now supports these module types:
        • javascript/auto: (The default one in webpack 3) Javascript module with all module systems enabled: CommonJS, AMD, ESM
        • javascript/esm: EcmaScript modules, all other module system are not available
        • javascript/dynamic: Only CommonJS and, EcmaScript modules are not available
        • json: JSON data, it's available via require and import
        • webassembly/experimental: WebAssembly modules (currently experimental)
      • javascript/esm handles ESM more strictly compared to javascript/auto:
        • Imported names need to exist on imported module
        • Dynamic modules (non-esm, i. e. CommonJs) can only imported via default import, everything else (including namespace import) emit errors
      • In .mjs modules are javascript/esm by default
      • WebAssembly modules
        • can import other modules (JS and WASM)
        • Exports from WebAssembly modules are validated by ESM import
          • You'll get a warning/error when trying to import a non-existing export from WASM
        • can only be used in async chunks. They doesn't work in initial chunks (would be bad for web performance)
          • Import modules using WASM via import()
        • This is an experimental feature and subject of change
    • Optimization
      • sideEffects: false is now supported in package.json
        • sideEffects in package.json also supports glob expressions and arrays of glob expressions
      • Instead of a JSONP function a JSONP array is used -> async script tag support, order no longer matter
      • New optimization.splitChunks option was introduced
        Details: https://gist.github.com/sokra/1522d586b8e5c0f5072d7565c2bee693
      • Dead branches are now removed by webpack itself
        • Before: Uglify removed the dead code
        • Now: webpack removes the dead code (in some cases)
        • This prevents crashing when import() occur in a dead branch
    • Syntax
      • webpackInclude and webpackExclude are supported by the magic comment for import(). They allow to filter files when using a dynamic expression.
      • Using System.import() now emits a warning
        • You can disable the warning with Rule.parser.system: true
        • You can disable System.import with Rule.parser.system: false
    • Configuration
      • Resolving can now be configured with module.rules[].resolve. It's merged with the global configuration.
      • optimization.minimize has been added to switch minimizing on/off
        • By default: on in production mode, off in development mode
      • optimization.minimizer has been added to configurate minimizers and options
    • Usage
      • Some Plugin options are now validated
      • CLI has been move to webpack-cli, you need to install webpack-cli to use the CLI
      • The ProgressPlugin (--progress) now displays plugin names
        • At least for plugins migrated to the new plugin system
    • Performance
      • UglifyJs now caches and parallizes by default
      • Multiple performance improvements, especially for faster incremental rebuilds
      • performance improvement for RemoveParentModulesPlugin
    • Stats
      • Stats can display modules nested in concatenated modules

    Features

    • Configuration
      • Module type is automatically choosen for mjs, json and wasm extensions. Other extensions need to be configured via module.rules[].type
      • Incorrect options.dependencies configurations now throw error
      • sideEffects can be overriden via module.rules
      • output.hashFunction can now be a Constructor to a custom hash function
        • You can provide a non-cryto hash function for performance reasons
      • add output.globalObject config option to allow to choose the global object reference in runtime exitCode
    • Runtime
      • Error for chunk loading now includes more information and two new properties type and request.
    • Devtool
      • remove comment footer from SourceMaps and eval
      • add support for include test and exclude to the eval source map devtool plugin
    • Performance
      • webpacks AST can be passed directly from loader to webpack to avoid extra parsing
      • Unused modules are no longer unnecessarly concatenated
      • Add a ProfilingPlugin which write a (Chrome) profile file which includes timings of plugins
      • Migrate to using for of instead of forEach
      • Migrate to using Map and Set instead of Objects
      • Migrate to using includes instead of indexOf
      • Replaced some RegExp with string methods
      • Queue don't enqueues the same job twice
      • Use faster md4 hash for hashing by default
    • Optimization
      • When using more than 25 exports mangled export names are shorter.
      • script tags are no longer text/javascript and async as this are the default values (saves a few bytes)
      • The concatenated module now generates a bit less code
      • constant replacements now don't need __webpack_require__ and argument is omitted
    • Defaults
      • webpack now looks for the .wasm, .mjs, .js and .json extensions in this order
      • output.pathinfo is now on by default in develoment mode
      • in-memory caching is now off by default in production
      • entry defaults to ./src
      • output.path defaults to ./dist
      • Use production defaults when omiting the mode option
    • Usage
      • Add detailed progress reporting to SourceMapDevToolPlugin
      • removed plugins now give a useful error message
    • Stats
      • Sizes are now shown in kiB instead of kB in Stats
      • entrypoints are now shows by default in Stats
      • chunks now display <{parents}> >{children}< and ={siblings}= in Stats
      • add buildAt time to stats
      • stats json now includes the output path
    • Syntax
      • A resource query is supported in context
      • Referencing entry point name in import() now emits a error instead of a warning
      • Upgraded to acorn 5 and support ES 2018
    • Plugins
      • done is now an async hook

    Bugfixes

    • Generated comments no longer break on */
    • webpack no longer modifies the passed options object
    • Compiler "watch-run" hook now has the Compiler as first parameter
    • add output.chunkCallbackName to the schema to allow configurating WebWorker template
    • Using module.id/loaded now correctly bails out of Module Concatentation (Scope Hoisting)
    • OccurenceOrderPlugin now sorts modules in correct order (instead of reversed)
    • timestamps for files are read from watcher when calling Watching.invalidate
    • fix incorrect -! behavior with post loaders
    • add run and watchRun hooks for MultiCompiler
    • this is now undefined in ESM
    • VariableDeclaration are correctly identified as var, const or let
    • Parser now parse the source code with the correct source type (module/script) when the module type javascript/dynamic or javascript/module is used.
    • don't crash on missing modules with buildMeta of null
    • add original-fs module for electron targets
    • HMRPlugin can be added to the Compiler outside of plugins

    Internal changes

    • Replaced plugin calls with tap calls (new plugin system)
    • Migrated many deprecated plugins to new plugin system API
    • added buildMeta.exportsType: "default" for json modules
    • Remove unused methods from Parser (parserStringArray, parserCalculatedStringArray)
    • Remove ability to clear BasicEvaluatedExpression and to have multiple types
    • Buffer.from instead of new Buffer
    • Avoid using forEach and use for of instead
    • Use neo-async instead of async
    • Update tapable and enhanced-resolve dependencies to new major versions
    • Use prettier

    Removed features

    • removed module.loaders
    • removed loaderContext.options
    • removed Compilation.notCacheable flag
    • removed NoErrorsPlugin
    • removed Dependency.isEqualResource
    • removed NewWatchingPlugin
    • removed CommonsChunkPlugin

    Breaking changes for plugins/loaders

    • new plugin system
      • plugin method is backward-compatible
      • Plugins should use Compiler.hooks.xxx.tap(<plugin name>, fn) now
    • New major version of enhanced-resolve
    • Templates for chunks may now generate multiple assets
    • Chunk.chunks/parents/blocks are no longer Arrays. A Set is used internally and there are methods to access it.
    • Parser.scope.renames and Parser.scope.definitions are no longer Objects/Arrays, but Map/Sets.
    • Parser uses StackedSetMap (LevelDB-like datastructure) instead of Arrays
    • Compiler.options is no longer set while applying plugins
    • Harmony Dependencies has changed because of refactoring
    • Dependency.getReference() may now return a weak property. Dependency.weak is now used by the Dependency base class and returned in the base impl of getReference()
    • Constructor arguments changed for all Modules
    • Merged options into options object for ContextModule and resolveDependencies
    • Changed and renamed dependencies for `import()
    • Moved Compiler.resolvers into Compiler.resolverFactory accessible with plugins
    • Dependency.isEqualResource has been replaced with Dependency.getResourceIdentifier
    • Methods on Template are now static
    • A new RuntimeTemplate class has been added and outputOptions and requestShortener has been moved to this class
      • Many methods has been updated to use the RuntimeTemplate instead
      • We plan to move code which accesses the runtime to this new class
    • Module.meta has been replaced with Module.buildMeta
    • Module.buildInfo and Module.factoryMeta have been added
    • Some properties of Module have been moved into the new objects
    • added loaderContext.rootContext which points to the context options. Loaders may use it to make stuff relative to the application root.
    • add this.hot flag to loader context when HMR is enabled
    • buildMeta.harmony has been replaced with buildMeta.exportsType: "namespace
    • The chunk graph has changed:
      • Before: Chunks were connected with parent-child-relationships.
      • Now: ChunkGroups are connected with parent-child-relationships. ChunkGroups contain Chunks in order.
      • Before: AsyncDependenciesBlocks reference a list of Chunks in order.
      • Now: AsyncDependenciesBlocks reference a single ChunkGroup.
    • file/contextTimestamps are Maps now
    • map/foreach Chunks/Modules/Parents methods are now deprecated/removed
    • NormalModule accept options object in Constructor
    • Added required generator argument for NormalModule
    • Added createGenerator and generator hooks for NormalModuleFactory to customize code generation
    • Allow to customize render manifest for Chunks via hooks
    Commits

    The new version differs by 838 commits.

    • 213226e 4.0.0
    • fde0183 Merge pull request #6081 from webpack/formating/prettier
    • b6396e7 update stats
    • f32bd41 fix linting
    • 5238159 run prettier on existing code
    • 518d1e0 replace js-beautify with prettier
    • 4c25bfb 4.0.0-beta.3
    • dd93716 Merge pull request #6296 from shellscape/fix/hmr-before-node-stuff
    • 7a07901 Merge pull request #6563 from webpack/performance/assign-depth
    • c7eb895 Merge pull request #6452 from webpack/update_acorn
    • 9179980 Merge pull request #6551 from nveenjain/fix/templatemd
    • e52f323 optimize performance of assignDepth
    • 6bf5df5 Fixed template.md
    • 90ab23a Merge branch 'master' into fix/hmr-before-node-stuff
    • b0949cb add integration test for spread operator

    There are 250 commits in total.

    See the full diff

    FAQ and help

    There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


    Your Greenkeeper bot :palm_tree:

    opened by greenkeeper[bot] 37
  • Update sinon to the latest version 🚀

    Update sinon to the latest version 🚀

    Version 4.0.0 of sinon just got published.

    Dependency sinon
    Current Version 3.3.0
    Type devDependency

    The version 4.0.0 is not covered by your current version range.

    Without accepting this pull request your project will work just like it did before. There might be a bunch of new features, fixes and perf improvements that the maintainers worked on for you though.

    I recommend you look into these changes and try to get onto the latest version of sinon. Given that you have a decent test suite, a passing build is a strong indicator that you can take advantage of these changes by merging the proposed change into your project. Otherwise this branch is a great starting point for you to work on the update.


    Commits

    The new version differs by 11 commits.

    • 95908f4 Add release notes for 4.0.0
    • 460907b Update docs/changelog.md and set new release id in docs/_config.yml
    • 6f599a6 Add release documentation for v4.0.0
    • fba2e29 4.0.0
    • c838e22 Update History.md and AUTHORS for new release
    • 3837635 Merge pull request #1569 from fatso83/1566-update-deps
    • 3d3a044 Explicitly update fake xhr lib 'nise'
    • 5ec0ae0 Merge pull request #1564 from fatso83/amended-1563
    • cf32e6d Update deps lock file
    • 37ff38b Removes dependency to "build"
    • 34fc2ba Remove support for stubbing undefined props (#1557)

    See the full diff

    Not sure how things should work exactly?

    There is a collection of frequently asked questions and of course you may always ask my humans.


    Your Greenkeeper Bot :palm_tree:

    opened by greenkeeper[bot] 35
  • Update all the packages

    Update all the packages

    I noticed there were lots of out of date packages.

    Some of them begin to address issues too:

    1. Automatic polyfills using @babel/preset-env Babel v7 can now use Browserlist, I've matched GOV.UK Frontend

    2. UglifyJS 3 with IE8 friendly config Follows advice from @nickcolley in https://github.com/alphagov/accessible-autocomplete/issues/306

    Due to Preact and Webpack we still have issues that IE8 can't overcome, but it's at least possible to debug where the problem lies now.

    3. Karma now uses Istanbul for coverage Babel now adds instrumentation with NODE_ENV=test, removed deprecated isparta loader

    Apart from a flaky IE11 test run (Selenium WebDriver driver error, worked second time) all the SauceLabs tests run perfectly. Even Chrome v70 passes (marked red on the repo home page).

    test runs

    opened by colinrotherham 18
  • DO NOT MERGE Add option to show all values on click (like a normal dropdown)

    DO NOT MERGE Add option to show all values on click (like a normal dropdown)

    for discussion - this PR adds an option showAllValues. If this is set to true, all values are shown when a user clicks the input, like a normal dropdown. This allows the user to browse the available options.

    I think this option might need a visual change to be more accessible - when clicked the list shows, but with keyboard use, you have to press space to see the list, which is non-obvious.

    opened by joelanman 18
  • Update webpack-dev-middleware to the latest version 🚀

    Update webpack-dev-middleware to the latest version 🚀

    Version 1.12.1 of webpack-dev-middleware was just published.

    Dependency webpack-dev-middleware
    Current Version 1.12.0
    Type devDependency

    The version 1.12.1 is not covered by your current version range.

    If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

    It might be worth looking into these changes and trying to get this project onto the latest version of webpack-dev-middleware.

    If you have a solid test suite and good coverage, a passing build is a strong indicator that you can take advantage of these changes directly by merging the proposed change into your project. If the build fails or you don’t have such unconditional trust in your tests, this branch is a great starting point for you to work on the update.


    Release Notes v1.12.1

    Updates

    • update mime package to avoid security vulnerability (#231)
    Commits

    The new version differs by 4 commits.

    • 9ab1d96 1.12.1
    • bc9e37c fix: update mime package to avoid security vulnerability (#231)
    • 4bb8bd7 Fix typo in README: confiugrations -> configurations (#220)
    • 441335c Grammatical fixes (#213)

    See the full diff

    FAQ and help

    There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


    Your Greenkeeper bot :palm_tree:

    opened by greenkeeper[bot] 16
  • Functionality: Down key show all results?

    Functionality: Down key show all results?

    Not sure if this is a good idea, but when I use keyboard input on a select input, then press down on the keyboard, it'll open the select and let me go through them.

    feature request help wanted 
    opened by NickColley 15
  • Allow an empty `defaultValue` option for `enhanceSelectElement`

    Allow an empty `defaultValue` option for `enhanceSelectElement`

    The check for a default value option matches false-y values, but that also catches the case where the default value is explicitly set to an empty string.

    Add an extra condition for the case where the default value is '' so that it is not overwritten with the content of the first <option>.

    opened by lennym 14
  • Update integration tests to WebdriverIO v6

    Update integration tests to WebdriverIO v6

    This PR bumps all WebdriverIO related packages to their latest versions, and fixes issues arising.

    Notes

    • The integration tests now use the latest version of WebdriverIO v6
    • The integration tests now use W3C spec capabilities, except for Internet Explorer 9
    • The integration tests now build assets before running the tests using npm run build, as wdio-webpack-dev-server-service is no longer supported (#449)
    • You can no longer use the envvar SAUCE_CONNECT_VERSION to choose the version of Sauce Connect Proxy when running the integration tests, as @wdio/sauce-service no longer uses the sauce-connect-launcher
    • You can now find the verbose logs from the integration tests in the folder logs/
    opened by lfdebrux 12
  • Mouse clicks are getting interrupted since 2.0.2

    Mouse clicks are getting interrupted since 2.0.2

    We're getting a failing build when updating to 2.0.2. We're seeing any clicks below the autocomplete field being interrupted once, if you click again a second time it works.

    I've tested it in Chrome, Safari and Firefox and they all show the same behaviour.

    Steps to reproduce:

    • Include a link after the accessible-autocomplete field (eg. in a footer)
    • Start typing something to get some results (but don't click any of them)
    • Click the link that you included

    Expected behaviour

    • The browser goes to the link

    Actual behaviour

    • The browser doesn't go to the link

    Happy to provide our real-world use case if it helps.

    awaiting triage 
    opened by robbiepaul 11
  • Update mocha to the latest version 🚀

    Update mocha to the latest version 🚀

    Version 4.0.0 of mocha just got published.

    Dependency mocha
    Current Version 3.5.3
    Type devDependency

    The version 4.0.0 is not covered by your current version range.

    Without accepting this pull request your project will work just like it did before. There might be a bunch of new features, fixes and perf improvements that the maintainers worked on for you though.

    I recommend you look into these changes and try to get onto the latest version of mocha. Given that you have a decent test suite, a passing build is a strong indicator that you can take advantage of these changes by merging the proposed change into your project. Otherwise this branch is a great starting point for you to work on the update.


    Release Notes v4.0.0

    4.0.0 / 2017-10-02

    You might want to read this before filing a new bug! 😝

    💥 Breaking Changes

    For more info, please read this article.

    Compatibility

    • #3016: Drop support for unmaintained versions of Node.js (@boneskull):
      • 0.10.x
      • 0.11.x
      • 0.12.x
      • iojs (any)
      • 5.x.x
    • #2979: Drop support for non-ES5-compliant browsers (@boneskull):
      • IE7
      • IE8
      • PhantomJS 1.x
    • #2615: Drop Bower support; old versions (3.x, etc.) will remain available (@ScottFreeCode, @boneskull)

    Default Behavior

    • #2879: By default, Mocha will no longer force the process to exit once all tests complete. This means any test code (or code under test) which would normally prevent node from exiting will do so when run in Mocha. Supply the --exit flag to revert to pre-v4.0.0 behavior (@ScottFreeCode, @boneskull)

    Reporter Output

    👎 Deprecations

    • #2493: The --compilers command-line option is now soft-deprecated and will emit a warning on STDERR. Read this for more info and workarounds (@ScottFreeCode, @boneskull)

    🎉 Enhancements

    • #2628: Allow override of default test suite name in XUnit reporter (@ngeor)

    📖 Documentation

    🔩 Other

    Commits

    The new version differs by 48 commits.

    • d69bf14 Release v4.0.0
    • 171b9f9 pfix "prepublishOnly" potential portability problem
    • 60e39d9 Update link to wiki (GitHub at the leading --)
    • 804f9d5 Update link because GitHub ate the leading --
    • 3326c23 update CHANGELOG for v4.0.0 [ci skip]
    • 6dd9252 add link to wiki on --compilers deprecation
    • 96318e1 Deprecate --compilers
    • 92beda9 drop bower support
    • 58a4c6a remove unused .npmignore
    • 7af6611 kill Date#toISOString shim
    • 43501a2 reduce noise about slow tests; make a few tests faster, etc.
    • fa228e9 update --exit / --no-exit integration test for new default behavior
    • 3fdd3ff Switch default from forced exit to no-exit
    • c5d69e0 add integration tests for --exit/--no-exit
    • 3a7f8dc enhance runMochaJSON() helper by returning the subprocess instance

    There are 48 commits in total.

    See the full diff

    Not sure how things should work exactly?

    There is a collection of frequently asked questions and of course you may always ask my humans.


    Your Greenkeeper Bot :palm_tree:

    opened by greenkeeper[bot] 11
  • Use a default search engine

    Use a default search engine

    Previously, a source function was required.

    This PR simplifies so that only an array of values is required. In this case, a simple search engine is used to search the array for whatever's been typed.

    Optionally a source function can be provided as before.

    opened by joelanman 11
  • Bump json5, karma-webpack, webpack and webpack-cli

    Bump json5, karma-webpack, webpack and webpack-cli

    Bumps json5 to 2.2.2 and updates ancestor dependencies json5, karma-webpack, webpack and webpack-cli. These dependencies need to be updated together.

    Updates json5 from 2.2.0 to 2.2.2

    Release notes

    Sourced from json5's releases.

    v2.2.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)
    Changelog

    Sourced from json5's changelog.

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)
    Commits
    • 14f8cb1 2.2.2
    • 10cc7ca docs: update CHANGELOG for v2.2.2
    • 7774c10 fix: add proto to objects and arrays
    • edde30a Readme: slight tweak to intro
    • 97286f8 Improve example in readme
    • d720b4f Improve readme (e.g. explain JSON5 better!) (#291)
    • 910ce25 docs: fix spelling of Aseem
    • 2aab4dd test: require tap as t in cli tests
    • 6d42686 test: remove mocha syntax from tests
    • 4798b9d docs: update installation and usage for modules
    • Additional commits viewable in compare view

    Updates karma-webpack from 4.0.2 to 5.0.0

    Release notes

    Sourced from karma-webpack's releases.

    v5.0.0

    No release notes provided.

    v5.0.0-alpha.6

    Bug Fixes

    • automatically fix missing webpack framework and report a warning (ea5dc8e)
    • fix an issue where multiple karma-webpack processes could not run in parallel (ea3dabe)
    • bump hotfix dependencies (98b3ec9)

    v5.0.0-alpha.5

    Bug Fixes

    • change the webpack peer dependency to webpack v5 (2e0ca74)

    v5.0.0-alpha.4

    Bug Fixes

    • fix compatibility issues for webpack v5 (8d7366f), closes #452
    • remove deprecation warning for .watch() (4fe1f60)
    Changelog

    Sourced from karma-webpack's changelog.

    5.0.0 (2021-02-02)

    No changes, just a new stable release.

    5.0.0-alpha.6 (2021-01-30)

    Bug Fixes

    • automatically fix missing webpack framework and report a warning (ea5dc8e)
    • fix an issue where multiple karma-webpack processes could not run in parallel (ea3dabe)
    • bump hotfix dependencies (98b3ec9)

    5.0.0-alpha.5 (2020-12-06)

    Bug Fixes

    • change the webpack peer dependency to webpack v5 (2e0ca74)

    5.0.0-alpha.4 (2020-12-06)

    Bug Fixes

    • fix compatibility issues for webpack v5 (8d7366f), closes #452
    • remove deprecation warning for .watch() (4fe1f60)

    5.0.0-alpha.3.0 (2019-03-07)

    Bug Fixes

    5.0.0-alpha.2 (2019-02-13)

    Bug Fixes

    • karma-webpack: normalize paths to be compatible with windows (b783e1c)

    5.0.0-alpha.1 (2019-01-01)

    ... (truncated)

    Commits
    Maintainer changes

    This version was pushed to npm by ryanclark, a new releaser for karma-webpack since your current version.


    Updates webpack from 4.46.0 to 5.75.0

    Release notes

    Sourced from webpack's releases.

    v5.75.0

    Bugfixes

    • experiments.* normalize to false when opt-out
    • avoid NaN%
    • show the correct error when using a conflicting chunk name in code
    • HMR code tests existance of window before trying to access it
    • fix eval-nosources-* actually exclude sources
    • fix race condition where no module is returned from processing module
    • fix position of standalong semicolon in runtime code

    Features

    • add support for @import to extenal CSS when using experimental CSS in node
    • add i64 support to the deprecated WASM implementation

    Developer Experience

    • expose EnableWasmLoadingPlugin
    • add more typings
    • generate getters instead of readonly properties in typings to allow overriding them

    v5.74.0

    Features

    • add resolve.extensionAlias option which allows to alias extensions
      • This is useful when you are forced to add the .js extension to imports when the file really has a .ts extension (typescript + "type": "module")
    • add support for ES2022 features like static blocks
    • add Tree Shaking support for ProvidePlugin

    Bugfixes

    • fix persistent cache when some build dependencies are on a different windows drive
    • make order of evaluation of side-effect-free modules deterministic between concatenated and non-concatenated modules
    • remove left-over from debugging in TLA/async modules runtime code
    • remove unneeded extra 1s timestamp offset during watching when files are actually untouched
      • This sometimes caused an additional second build which are not really needed
    • fix shareScope option for ModuleFederationPlugin
    • set "use-credentials" also for same origin scripts

    Performance

    • Improve memory usage and performance of aggregating needed files/directories for watching
      • This affects rebuild performance

    Extensibility

    • export HarmonyImportDependency for plugins

    v5.73.0

    ... (truncated)

    Commits

    Updates webpack-cli from 3.3.12 to 5.0.1

    Release notes

    Sourced from webpack-cli's releases.

    v5.0.1

    5.0.1 (2022-12-05)

    Bug Fixes

    • make define-process-env-node-env alias node-env (#3514) (346a518)

    v5.0.0

    5.0.0 (2022-11-17)

    Bug Fixes

    • improve description of the --disable-interpret option (#3364) (bdb7e20)
    • remove the redundant utils export (#3343) (a9ce5d0)
    • respect NODE_PATH env variable (#3411) (83d1f58)
    • show all CLI specific flags in the minimum help output (#3354) (35843e8)

    Features

    • failOnWarnings option (#3317) (c48c848)
    • update commander to v9 (#3460) (6621c02)
    • added the --define-process-env-node-env option
    • update interpret to v3 and rechoir to v0.8
    • add an option for preventing interpret (#3329) (c737383)

    BREAKING CHANGES

    • the minimum supported webpack version is v5.0.0 (#3342) (b1af0dc), closes #3342
    • webpack-cli no longer supports webpack v4, the minimum supported version is webpack v5.0.0
    • webpack-cli no longer supports webpack-dev-server v3, the minimum supported version is webpack-dev-server v4.0.0
    • remove the migrate command (#3291) (56b43e4), closes #3291
    • remove the --prefetch option in favor the PrefetchPlugin plugin
    • remove the --node-env option in favor --define-process-env-node-env
    • remove the --hot option in favor of directly using the HotModuleReplacement plugin (only for build command, for serve it will work)
    • the behavior logic of the --entry option has been changed - previously it replaced your entries, now the option adds a specified entry, if you want to return the previous behavior please use webpack --entry-reset --entry './src/my-entry.js'

    v4.10.0

    4.10.0 (2022-06-13)

    Bug Fixes

    Features

    v4.9.2

    4.9.2 (2022-01-24)

    ... (truncated)

    Changelog

    Sourced from webpack-cli's changelog.

    5.0.1 (2022-12-05)

    Bug Fixes

    • make define-process-env-node-env alias node-env (#3514) (346a518)

    5.0.0 (2022-11-17)

    Bug Fixes

    • improve description of the --disable-interpret option (#3364) (bdb7e20)
    • remove the redundant utils export (#3343) (a9ce5d0)
    • respect NODE_PATH env variable (#3411) (83d1f58)
    • show all CLI specific flags in the minimum help output (#3354) (35843e8)

    Features

    • failOnWarnings option (#3317) (c48c848)
    • update commander to v9 (#3460) (6621c02)
    • added the --define-process-env-node-env option
    • update interpret to v3 and rechoir to v0.8
    • add an option for preventing interpret (#3329) (c737383)

    BREAKING CHANGES

    • the minimum supported webpack version is v5.0.0 (#3342) (b1af0dc), closes #3342
    • webpack-cli no longer supports webpack v4, the minimum supported version is webpack v5.0.0
    • webpack-cli no longer supports webpack-dev-server v3, the minimum supported version is webpack-dev-server v4.0.0
    • remove the migrate command (#3291) (56b43e4), closes #3291
    • remove the --prefetch option in favor the PrefetchPlugin plugin
    • remove the --node-env option in favor --define-process-env-node-env
    • remove the --hot option in favor of directly using the HotModuleReplacement plugin (only for build command, for serve it will work)
    • the behavior logic of the --entry option has been changed - previously it replaced your entries, now the option adds a specified entry, if you want to return the previous behavior please use webpack --entry-reset --entry './src/my-entry.js'

    4.10.0 (2022-06-13)

    Bug Fixes

    Features

    4.9.2 (2022-01-24)

    Bug Fixes

    • respect negatedDescription for flags from schema (#3102) (463b731)

    ... (truncated)

    Commits
    • 4a0f893 chore(release): publish new version
    • 9de982c chore: fix cspell
    • 32d26c8 chore(deps-dev): bump cspell from 6.15.1 to 6.16.0 (#3517)
    • 2788bf9 chore(deps-dev): bump eslint from 8.28.0 to 8.29.0 (#3516)
    • ac88ee4 chore(deps-dev): bump lint-staged from 13.0.4 to 13.1.0 (#3515)
    • 346a518 fix: make define-process-env-node-env alias node-env (#3514)
    • 3ec7b16 chore(deps): bump yeoman-environment from 3.12.1 to 3.13.0 (#3508)
    • c8adfa6 chore(deps-dev): bump @​types/node from 18.11.9 to 18.11.10 (#3513)
    • 0ad8cc2 chore(deps-dev): bump cspell from 6.15.0 to 6.15.1 (#3512)
    • d30f261 chore(deps-dev): bump ts-loader from 9.4.1 to 9.4.2 (#3511)
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump express from 4.17.2 to 4.18.2

    Bump express from 4.17.2 to 4.18.2

    Bumps express from 4.17.2 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump qs, express and body-parser

    Bump qs, express and body-parser

    Bumps qs, express and body-parser. These dependencies needed to be updated together. Updates qs from 6.9.6 to 6.11.0

    Changelog

    Sourced from qs's changelog.

    6.11.0

    • [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option (#442)
    • [readme] fix version badge

    6.10.5

    • [Fix] stringify: with arrayFormat: comma, properly include an explicit [] on a single-item array (#434)

    6.10.4

    • [Fix] stringify: with arrayFormat: comma, include an explicit [] on a single-item array (#441)
    • [meta] use npmignore to autogenerate an npmignore file
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, object-inspect, tape

    6.10.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [actions] reuse common workflows
    • [Dev Deps] update eslint, @ljharb/eslint-config, object-inspect, tape

    6.10.2

    • [Fix] stringify: actually fix cyclic references (#426)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [actions] update codecov uploader
    • [actions] update workflows
    • [Tests] clean up stringify tests slightly
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, object-inspect, safe-publish-latest, tape

    6.10.1

    • [Fix] stringify: avoid exception on repeated object values (#402)

    6.10.0

    • [New] stringify: throw on cycles, instead of an infinite loop (#395, #394, #393)
    • [New] parse: add allowSparse option for collapsing arrays with missing indices (#312)
    • [meta] fix README.md (#399)
    • [meta] only run npm run dist in publish, not install
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbols, tape
    • [Tests] fix tests on node v0.6
    • [Tests] use ljharb/actions/node/install instead of ljharb/actions/node/run
    • [Tests] Revert "[meta] ignore eclint transitive audit warning"

    6.9.7

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [Tests] clean up stringify tests slightly
    • [meta] fix README.md (#399)
    • Revert "[meta] ignore eclint transitive audit warning"

    ... (truncated)

    Commits
    • 56763c1 v6.11.0
    • ddd3e29 [readme] fix version badge
    • c313472 [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option
    • 95bc018 v6.10.5
    • 0e903c0 [Fix] stringify: with arrayFormat: comma, properly include an explicit `[...
    • ba9703c v6.10.4
    • 4e44019 [Fix] stringify: with arrayFormat: comma, include an explicit [] on a s...
    • 113b990 [Dev Deps] update object-inspect
    • c77f38f [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, tape
    • 2cf45b2 [meta] use npmignore to autogenerate an npmignore file
    • Additional commits viewable in compare view

    Updates express from 4.17.2 to 4.18.2

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Updates body-parser from 1.19.1 to 1.20.1

    Release notes

    Sourced from body-parser's releases.

    1.20.0

    1.19.2

    Changelog

    Sourced from body-parser's changelog.

    1.20.1 / 2022-10-06

    1.20.0 / 2022-04-02

    1.19.2 / 2022-02-15

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2

    Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Hitting escape clears the input field focus class as well as the combo box

    Hitting escape clears the input field focus class as well as the combo box

    To replicate:

    • start typing in an autocomplete input
    • field shows focus style (has focused class)

    • combo box shows

    • hit escape
    • combo box hides

    The issue: the GDS focus style is removed, however the browser focus style is shown

    It's happening because the escape key clears not only the combo box but the input focus class, however the input is still in focus so the browser default style shows.

    To view in action:

    look at the html for the input it has autocomplete__input--focused when you type hit escape it clears that class but the input is still in focus so browser focus style takes over

    It's a small issue but it does mean we have inconsistent styling so I wanted to raise it for consideration :)

    opened by jennikate 1
  • chore(deps): upgrading dependencies to the latest versions

    chore(deps): upgrading dependencies to the latest versions

    Opening as a draft PR so I can track my changes, feel free to push if I'm being slow at the todos :)

    Changes

    • Updated all dependencies to the latest version
    • Updated the webpack config to v5
    • Removed uglifyjs in favour of terser
    • Updated babel config
    • Formatted with the latest version of standard
    • Changed componentWillMount and componentWillReceiveProps

    TODO

    • [ ] Update the e2e config (not currently working as it's still using deprecated features)
    • [ ] Fix an issue where three dev servers start up (unsure why this is happening at the moment)
    • [ ] Make sure I haven't broke anything with the webpack config
    • [ ] Run full tests once they've all been fixed
    • [ ] Check if the readme or other documentation needs to be updated (probably doesn't)

    Other information

    Published a WIP version here to test with our packages: https://www.npmjs.com/package/ng-accessible-autocomplete

    opened by nicholasgriffintn 0
Releases(v2.0.4)
🎒 Accessible and extremely useful website for public school in Poland, built on fun and modern stack.

✨ Strona Szkolna ?? Zadania · ?? Pomysły Struktura ?? apps ?? backend: headless CMS (API) używający Strapi, które umożliwia dowolne typy contentu, np.

Elektron++ 26 Dec 21, 2022
Obsidian plugin that adds autocomplete and auto-formatting to frontmatter tags.

Obsidian Front Matter Tag Wizard Tired of having to type # to get tag autocompletion in your Obsidian note front matter? I feel your pain. This plugin

Eric 10 Nov 5, 2022
Autocomplete für YForm Tabellen

?? WIP REDAXO-Addon: YForm Autocomplete Dieses Addon ermöglicht, Felder einer YForm-Tabelle über eine weitere automatisiert zu befüllen. Features Todo

Thorben 2 Jun 17, 2022
Autocomplete for HTMLTextAreaElement and more.

Textcomplete Autocomplete for HTMLTextAreaElement and more. Document. Packages Textcomplete consists of subpackages: Name Description @textcomplete/co

Yuku Takahashi 1.7k Dec 28, 2022
Autocomplete, diagnostics, hover info & more for the Wally package manager

Wally Utilities This VSCode extension provides some nice-to-haves when using the Wally package manager. The extension can be downloaded from the Visua

Filip Tibell 4 Jul 28, 2022
autocomplete/typeahead js plugin for bootstrap v5

bootstrap-5-autocomplete This is a rewrite of https://github.com/Honatas/bootstrap-4-autocomplete for bootstrap v5. Example const ac = new Autocomplet

Evgeny Zinoviev 76 Dec 28, 2022
Email Genie Allows autocomplete on email field by providing a list of domain suggestions (gmail.com, outlook.com, etc.).

Allows users to easily and quickly complete an email field by providing a list of domain suggestions (gmail.com, outlook.com, etc.). This package stands out for its flexibility, its compatibility with libraries / frameworks, but especially its use of basic HTML and Javascript functionalities that maximize the native behavior of desktop AND mobile browsers.

Simon Arnold 3 Oct 4, 2022
jQuery plugin for fuzzy search in autocomplete

fuzzycomplete jQuery plugin for fuzzy search in an autocomplete form, which uses Fuse.js. By harnessing the flexibility Fuse.js, this plugin allows yo

null 14 Nov 1, 2021
Interactive, accessible toggle switches for the web.

On-Off Toggle Switch Interactive, accessible toggle switches for the web Transform checkboxes into toggle switches. Toggle switches made for the web a

Timmy Willison 91 Sep 9, 2022
Listing of accessible components & patterns

Accessible Components I've built a good handful of accessible markup patterns and widgets at this point. Each is based on testing with users, UX and d

Scott O'Hara 538 Jan 3, 2023
An open-source boat display cockpit for navigation, speed, heading, and tide tables running on Raspberry Pi and accessible as a webapp through any smartphone.

An open-source boat display cockpit for navigation, speed, heading, and tide tables running on Raspberry Pi and accessible as a webapp through any smartphone

Andy 44 Dec 30, 2022
Dynamic, fast, accessible & zero dependency accordion for React

React Fast Accordion ⚡️ Dynamic, fast, accessible & zero dependency accordion for React How it's fast? Instead of adding event listener on all the ite

Shivam 59 Oct 8, 2022
Simple, fast, accessible accordion library with no dependency

React Fast Accordion ⚡️ Dynamic, fast, accessible & zero dependency accordion for React How it's fast? Instead of adding event listener on all the ite

Shivam 59 Oct 8, 2022
A library of high-quality primitives that help you build accessible user interfaces with SolidJS.

Solid Aria A library of high-quality primitives that help you build accessible user interfaces with SolidJS. Primitives @solid-aria/primitives - Expor

SolidJS Community 205 Jan 7, 2023
Using a RPI 3b+ to create a PT camera accessible through Windows browser and controllable through MQTT

web-camera_PT A Web flask server converts the MJPEG stream from RPI to JPG img using opencv, then display in browser. Controls added to move Camera in

null 11 Dec 20, 2022
An accessible dialog window library for all humans.

Version 0.4.4 Requires jQuery 1.11.2 or higher (v2 not tested, v3 works but not extensively stress tested). Built by Humaan Modaal Modaal is a WCAG 2.

Humaan 2.7k Dec 26, 2022
Vanilla JS Accessible Dialog Library

A11y Dialog Component a11y-dialog-component is a fast, lightweight and flexible vanilla JavaScript library to create accessible modal, non-modal or to

Jonathan Levaillant 19 Nov 17, 2022
An accessible, open-source lightbox with no dependencies

Tobii An accessible, open-source lightbox with no dependencies. See it in Action Table of contents Features Get Tobii Download Package managers Usage

null 146 Dec 30, 2022
Basic, accessible, responsive and freely restyleable tabs.

Skeletabs · Skeletabs is an open source jQuery plugin that provides tabbed browsing feature to your web contents. It is focused on accessibility and s

Taesung, Lim 18 Nov 13, 2022