sp-picker

size Small Medium Large Extra large
quiet true false
disabled true false
invalid true false
Overview API Changelog

Overview

Section titled Overview

An <sp-picker> is an alternative to HTML's <select> element. Use <sp-menu-item> elements to outline the options that will be made available to the user when interacting with the <sp-picker> element.

Usage

Section titled Usage

See it on NPM! How big is this package in your project? Try it on webcomponents.dev

yarn add @spectrum-web-components/picker

Import the side effectful registration of <sp-picker> via:

import '@spectrum-web-components/picker/sp-picker.js';

The default of <sp-picker> will load dependencies in @spectrum-web-components/overlay asynchronously via a dynamic import. In the case that you would like to import those tranverse dependencies statically, import the side effectful registration of <sp-picker> as follows:

import '@spectrum-web-components/picker/sync/sp-picker.js';

When looking to leverage the Picker base class as a type and/or for extension purposes, do so via:

import { Picker } from '@spectrum-web-components/picker';

Anatomy

Section titled Anatomy

Labels

Section titled Labels

To render accessibly, an <sp-picker> element should be paired with an <sp-field-label> element that has the for attribute referencing the id of the <sp-picker> element.

For an accessible label that renders within the bounds of the picker itself, but still fulfills the accessibility contract, use the label attribute or a <span slot="label"> as a child element of <sp-picker>.

Uses <sp-field-label>
<sp-field-label for="uses-sp-field-label">Selection type:</sp-field-label>
<sp-picker id="uses-sp-field-label">
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>
Uses label attribute
<sp-picker label="Selection type" id="uses-label-attribute">
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>
Uses label slot
<sp-picker id="uses-label-slot">
    <span slot="label">Selection type:</span>
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>

Icons

Section titled Icons

<sp-menu-item>s in an <sp-picker> that are provided content addressed to their icon slot will be passed to the <sp-picker> element when that item is chosen.

<sp-field-label for="picker-icons">Choose an action...</sp-field-label>
<sp-picker label="What would you like to do?" value="item-2" id="picker-icons">
    <sp-menu-item>
        <sp-icon-save-floppy slot="icon"></sp-icon-save-floppy>
        Save
    </sp-menu-item>
    <sp-menu-item>
        <sp-icon-stopwatch slot="icon"></sp-icon-stopwatch>
        Finish
    </sp-menu-item>
    <sp-menu-item>
        <sp-icon-user-activity slot="icon"></sp-icon-user-activity>
        Review
    </sp-menu-item>
</sp-picker>

When using <sp-menu-item> elements without text content, be sure to use the value attribute so that the <sp-picker> element can differentiate between the available options. Furthermore, it is important to apply accessible labeling to the [slot="icon"] content as follows:

<sp-field-label for="picker-icons-only">Choose an action...</sp-field-label>
<sp-picker
    label="What would you like to do?"
    value="item-2"
    id="picker-icons-only"
>
    <sp-menu-item value="item-1">
        <sp-icon-save-floppy slot="icon" label="Save"></sp-icon-save-floppy>
    </sp-menu-item>
    <sp-menu-item value="item-2">
        <sp-icon-stopwatch slot="icon" label="Finish"></sp-icon-stopwatch>
    </sp-menu-item>
    <sp-menu-item value="item-3">
        <sp-icon-user-activity
            slot="icon"
            label="Review"
        ></sp-icon-user-activity>
    </sp-menu-item>
</sp-picker>
Advanced icon management
Section titled Advanced icon management

The icons attribute manages how the selected item will appear. Set icons="only" to display only the selected item's icon in the <sp-picker> element, or icons="none" to display the selected item text without the icon <sp-picker>.

When using icons="only" on <sp-menu-item> elements that have text content, that text will be applied to <sp-picker> element in a non-visible way.

Only
<sp-field-label for="picker-icons-value">Choose an action...</sp-field-label>
<sp-picker
    label="What would you like to do?"
    value="save"
    id="picker-icons-value"
    icons="only"
>
    <sp-menu-item value="save">
        <sp-icon-save-floppy slot="icon"></sp-icon-save-floppy>
        Save
    </sp-menu-item>
    <sp-menu-item value="finish">
        <sp-icon-stopwatch slot="icon"></sp-icon-stopwatch>
        Finish
    </sp-menu-item>
    <sp-menu-item value="review">
        <sp-icon-user-activity slot="icon"></sp-icon-user-activity>
        Review
    </sp-menu-item>
</sp-picker>
None
<sp-field-label for="picker-icons-none">Choose an action...</sp-field-label>
<sp-picker
    label="What would you like to do?"
    value="save"
    id="picker-icons-none"
    icons="none"
>
    <sp-menu-item value="save">
        <sp-icon-save-floppy slot="icon"></sp-icon-save-floppy>
        Save
    </sp-menu-item>
    <sp-menu-item value="finish">
        <sp-icon-stopwatch slot="icon"></sp-icon-stopwatch>
        Finish
    </sp-menu-item>
    <sp-menu-item value="review">
        <sp-icon-user-activity slot="icon"></sp-icon-user-activity>
        Review
    </sp-menu-item>
</sp-picker>

Value

Section titled Value

When the value of an <sp-picker> matches either the value attribute or the trimmed textContent (or itemText) of a descendent <sp-menu-item>, it will mark that element as selected.

Matching value
<sp-field-label for="picker-value">Selection type:</sp-field-label>
<sp-picker
    label="Select a Country with a very long label, too long in fact"
    value="item-2"
    id="picker-value"
>
    <sp-menu-item value="item-1">Deselect</sp-menu-item>
    <sp-menu-item value="item-2">Select inverse</sp-menu-item>
    <sp-menu-item value="item-3">Feather...</sp-menu-item>
    <sp-menu-item value="item-4">Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item value="item-5">Save selection</sp-menu-item>
    <sp-menu-item disabled value="item-6">Make work path</sp-menu-item>
</sp-picker>
Matching itemText
<sp-field-label for="picker-item-text">Selection type:</sp-field-label>
<sp-picker
    label="Select a Country with a very long label, too long in fact"
    value="Feather..."
    id="picker-item-text"
>
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item>Make work path</sp-menu-item>
</sp-picker>

Options

Section titled Options

Sizes

Section titled Sizes
Small
<sp-field-label for="picker-s" size="s">Selection type:</sp-field-label>
<sp-picker id="picker-s" size="s" label="Selection type">
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>
<br />
<br />
<sp-field-label for="picker-s-quiet" size="s">Selection type:</sp-field-label>
<sp-picker id="picker-s-quiet" quiet size="s" label="Selection type">
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>
Medium
<sp-field-label for="picker-m" size="m">Selection type:</sp-field-label>
<sp-picker id="picker-m" size="m" label="Selection type">
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>
<br />
<br />
<sp-field-label for="picker-m-quiet" size="m">Selection type:</sp-field-label>
<sp-picker id="picker-m-quiet" quiet size="m" label="Selection type">
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>
Large
<sp-picker id="picker-l" size="l" label="Selection type">
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>
<br />
<br />
<sp-field-label for="picker-l-quiet" size="l">Selection type:</sp-field-label>
<sp-picker id="picker-l-quiet" quiet size="l" label="Selection type">
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>
Extra Large
<sp-field-label for="picker-xl" size="xl">Selection type:</sp-field-label>
<sp-picker id="picker-xl" size="xl" label="Selection type">
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>
<br />
<br />
<sp-field-label for="picker-xl-quiet" size="xl">Selection type:</sp-field-label>
<sp-picker id="picker-xl-quiet" quiet size="xl" label="Selection type">
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>

Side Label

Section titled Side Label
Side label, standard
<sp-field-label side-aligned="start" for="picker-sideLabel">
    Standard:
</sp-field-label>
<sp-picker
    label="Select a Country with a very long label, too long in fact"
    id="picker-sideLabel"
>
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>
Side label, quiet
<sp-field-label side-aligned="start" for="picker-sideLabel-quiet">
    Quiet:
</sp-field-label>
<sp-picker
    label="Select a Country with a very long label, too long in fact"
    quiet
    id="picker-sideLabel-quiet"
>
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>

States

Section titled States

Invalid

Section titled Invalid
Invalid, standard
<sp-field-label for="picker-invalid">Standard:</sp-field-label>
<sp-picker
    label="Select a Country with a very long label, too long in fact"
    invalid
    id="picker-invalid"
>
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>
Invalid, quiet
<sp-field-label for="picker-invalid-quiet">Quiet:</sp-field-label>
<sp-picker
    label="Select a Country with a very long label, too long in fact"
    invalid
    quiet
    id="picker-invalid-quiet"
>
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>

Disabled

Section titled Disabled
Disabled, standard
<sp-field-label for="picker-disabled">Standard:</sp-field-label>
<sp-picker
    label="Select a Country with a very long label, too long in fact"
    disabled
    id="picker-disabled"
>
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>
Disabled, quiet
<sp-field-label for="picker-disabled-quiet">Quiet:</sp-field-label>
<sp-picker
    label="Select a Country with a very long label, too long in fact"
    disabled
    quiet
    id="picker-disabled-quiet"
>
    <sp-menu-item>Deselect</sp-menu-item>
    <sp-menu-item>Select inverse</sp-menu-item>
    <sp-menu-item>Feather...</sp-menu-item>
    <sp-menu-item>Select and mask...</sp-menu-item>
    <sp-menu-divider></sp-menu-divider>
    <sp-menu-item>Save selection</sp-menu-item>
    <sp-menu-item disabled>Make work path</sp-menu-item>
</sp-picker>

Pending

Section titled Pending

While in pending state, <sp-picker> elements will not respond to click events and will be delivered with <sp-progress-circle> to visually denote that it is pending. It will not toggle open or display its <sp-menu-item> descendants until the attribute is removed. Use the pending-label attribute to customize the pending text for assoistive technology, which is set to Pending by default.

Pending, standard
<sp-field-label for="picker-loading">Standard:</sp-field-label>
<sp-picker
    id="picker-loading"
    label="Loading blending modes..."
    pending
    pending-label="loading options"
>
    <sp-menu-item>Pass through</sp-menu-item>
    <sp-menu-item>Normal</sp-menu-item>
    <sp-menu-item>Multiply</sp-menu-item>
    <sp-menu-item>Screen</sp-menu-item>
</sp-picker>
Pending, quiet
<sp-field-label for="picker-loading-quiet">Quiet:</sp-field-label>
<sp-picker
    id="picker-loading-quiet"
    label="Loading blending modes..."
    pending
    quiet
>
    <sp-menu-item>Pass through</sp-menu-item>
    <sp-menu-item>Normal</sp-menu-item>
    <sp-menu-item>Multiply</sp-menu-item>
    <sp-menu-item>Screen</sp-menu-item>
</sp-picker>

Accessibility

Section titled Accessibility

Include a visible label

Section titled Include a visible label

Every picker should have a label. A picker without a label is ambiguous and not accessible.

Use help text to show context

Section titled Use help text to show context

A picker’s description in the help text can communicate what to select or how to select an option. This includes information such as:

  • An overall description of the picker options
  • Hints for what kind of information to choose
  • More context for why a user needs to make a selection

The help text’s message should not simply restate the same information in the label in order to prompt someone to interact with a picker. Don’t add help text to maintain layout continuity with other inputs that require help text if it isn’t actually relevant or meaningful to a user.

The help text area also displays an error message. When a picker already includes help text and an error is triggered, the help text is replaced with error text. Once the error is resolved, the help text description reappears below the picker.

Since one gets replaced by the other, the language of the help text and error text need to work together to convey the same messaging. Help text explains the requirement or adds supplementary context for how to complete the interaction. Error text tells a user how to fix the error by re-stating the selection requirements or describing the necessary interaction. Make sure that the help text and the error text include the same essential information so that it isn’t lost if one replaces the other (e.g., minimum requirements).

Use <sp-help-text> to add help text and error text:

Help text
<sp-field-label for="text">Preferred contact method:</sp-field-label>
<sp-picker id="text" label="Select contact method" aria-describedby="help-text">
    <sp-menu-item>Phone</sp-menu-item>
    <sp-menu-item>Text</sp-menu-item>
    <sp-menu-item>Email</sp-menu-item>
</sp-picker>
<sp-help-text id="help-text">
    Choose the best way to contact you in case there's an issue with your
    account.
</sp-help-text>
Error text
<sp-field-label for="error-text" required invalid>
    Preferred contact method:
</sp-field-label>
<sp-picker
    id="error-text"
    invalid
    label="Select contact method"
    required
    aria-describedby="error-help-text"
>
    <sp-menu-item>Phone</sp-menu-item>
    <sp-menu-item>Text</sp-menu-item>
    <sp-menu-item>Email</sp-menu-item>
</sp-picker>
<sp-help-text id="error-help-text" variant="negative">
    Select a contact method.
</sp-help-text>

API

Attributes and Properties

Section titled Attributes and Properties
Property Attribute Type Default Description disabled disabled boolean false Disable this control. It will not receive focus or events focused focused boolean false icons icons 'only' | 'none' | undefined invalid invalid boolean false label label string | undefined open open boolean false pending pending boolean false Whether the items are currently loading. pendingLabel pending-label string 'Pending' Defines a string value that labels the Picker while it is in pending state. placement placement "top" | "top-start" | "top-end" | "right" | "right-start" | "right-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" 'bottom-start' quiet quiet boolean false readonly readonly boolean false tabIndex tabIndex number The tab index to apply to this control. See general documentation about the tabindex HTML property value value string ''

Slots

Section titled Slots
Name Description description The description content for the Picker label The placeholder content for the Picker tooltip Tooltip to to be applied to the the Picker Button default slot menu items to be listed in the Picker

Events

Section titled Events
Name Type Description change Event Announces that the `value` of the element has changed scroll Event sp-closed Event Announces that the overlay has been closed sp-opened Event Announces that the overlay has been opened

Changelog

1.0.1 (2024-11-11)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker: don't handle pointerdown for touch devices (#4850) (3a62d13)

1.0.0 (2024-10-31)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.49.0 (2024-10-15)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.48.1 (2024-10-01)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.48.0 (2024-09-17)

Section titled

Bug Fixes

Section titled Bug Fixes
  • action-menu: dispatch scroll event (#4715) (c76f3f5)
  • picker: added a custom class to make :focus-visible styles consistent across all browsers (#4724) (d667d08)

Features

Section titled Features
  • reactive-controller: new pending state controller (#4605) (68baf94)

0.47.2 (2024-09-03)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.47.1 (2024-08-27)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.47.0 (2024-08-20)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker: updated type for mobile and desktop (#4666) (d11da1f)

0.46.0 (2024-08-08)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.45.0 (2024-07-30)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker pointerup in mobile does not automatically make a selection. (4227) ([56366ce] (https://github.com/adobe/spectrum-web-components/commit/56366ce2750bb4bb5c6e3fa5fe7d809434497adb))

Note: Version bump only for package @spectrum-web-components/picker

0.44.0 (2024-07-15)

Section titled

Features

Section titled Features
  • action-bar: support for action-menus (#3780) (4aff599)

0.43.0 (2024-06-11)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.42.5 (2024-05-24)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.42.4 (2024-05-14)

Section titled

Bug Fixes

Section titled Bug Fixes
  • action-menu: allow menu groups to handle their own selections (#4397) (5a19051)

0.42.3 (2024-05-01)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.42.2 (2024-04-03)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.42.1 (2024-04-02)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.42.0 (2024-03-19)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker: add loading state to the picker (#3110) (d91e2c9)
  • picker: allow open/close in tablet (dcfc96e)
  • picker: correctly process the CSS for the quiet hover effect (#4167) (eb282fa)

Features

Section titled Features
  • asset: use core tokens (99e76f4)

0.41.2 (2024-03-05)

Section titled

Bug Fixes

Section titled Bug Fixes
  • overlay: leverage "transition-behavior" to persist top-layer content while closing (#4050) (e3dea14)
  • picker: support inline labeling of quiet Picker (#3704) (3372286)

0.41.1 (2024-02-22)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker: correct implementation of "disabled", expand stories and documentation (#4040) (84c2fef)

0.41.0 (2024-02-13)

Section titled

Features

Section titled Features
  • icon: use core tokens (a11ef6b)

0.40.5 (2024-02-05)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.40.4 (2024-01-29)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker,action-menu,split-button: update interaction model (#3935) (bae7d52)

0.40.3 (2024-01-11)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker: force close slotted Tooltip elements with disabled when Menu openes (82c8f12)
  • picker: prevent the Menu opening until required dependencies are loaded (55e6174)

0.40.2 (2023-12-18)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.40.1 (2023-12-05)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker: ensure menu placement in mobile (#3835) (4aba1c6)

0.40.0 (2023-11-16)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.39.4 (2023-11-02)

Section titled

Bug Fixes

Section titled Bug Fixes
  • overlay: calculate more transforms (6538a45)

0.39.3 (2023-10-18)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.39.2 (2023-10-13)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.39.1 (2023-10-06)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.39.0 (2023-09-25)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker,split-button: include "tooltip" slot in the main button (699b8af)

0.38.0 (2023-09-05)

Section titled

Bug Fixes

Section titled Bug Fixes
  • action-menu,split-button: ensure toggling the Menu closed completes (2dd0f98)
  • picker: ensure the Menu opens in a Tray on mobile (6be2bed)

0.37.0 (2023-08-18)

Section titled

Bug Fixes

Section titled Bug Fixes
  • allow non-selection carying Picker derivatives to report value (02c0134)

Features

Section titled Features
  • picker,action-group,split-button: leverage Overlay v2 (170a223)

Performance Improvements

Section titled Performance Improvements
  • make lots of things lazy (b8fa3ad)
  • make submenus lazier (a2d661c)

0.36.0 (2023-08-18)

Section titled

Features

Section titled Features
  • menu: convert to core tokens (#3254) (da43540)

0.35.0 (2023-07-31)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.34.0 (2023-07-11)

Section titled

Bug Fixes

Section titled Bug Fixes
  • action-button,action-menu,picker,split-button: expand and update application of aria-* attributes (52c0156)
  • picker: correct label application for screen readers (8ce0cb0)

0.33.2 (2023-06-14)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.33.1 (2023-06-14)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.33.0 (2023-06-08)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.32.0 (2023-06-01)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker: correct attribute spelling of "aria-label" in dismiss button (5fc9b30)

0.31.0 (2023-05-17)

Section titled

Bug Fixes

Section titled Bug Fixes
  • generate react/picker and pass react TS checks (101b88c)

0.30.0 (2023-05-03)

Section titled 0.30.0 (2023-05-03)

Bug Fixes

Section titled Bug Fixes
  • abstract "hasVisibleFocusInTree" functionality and return trigger focus after close (4f39f2c)
  • action-menu: fix 2510, unable to control top-level action-menu selection (c9198c2)
  • action-menu: never set item selected values when selects is undefined (5237fdb)
  • action-menu: stop stripping selected state from submenu items (968d1f2)
  • add icon present and icon-only support to Picker (f6887a3)
  • add support for "readonly" attribute (4bce3b7)
  • add t-shirt sizing to Thumbnail and support for "xxs"/"xs" sizes (520a642)
  • allow "updateComplete" to resolve to a boolean like the LitElement default (6127946)
  • allow Picker to be reparented (39e7309)
  • analyze errors, properly this time (df685a2)
  • analyze type errors, and add deprecated syntax tests (b7e67a1)
  • bad merge conflict resolution (e408d61)
  • correct custom property hoisting (a1d98dc)
  • correct max size calculation for overlays (0585f7f)
  • ensure Action Menu Item with [href] close the menu (6b3d87f)
  • ensure correct Menu Items are "selected" when passed into the overlay (46a25db)
  • ensure focus is managed when tabbing out of a menu (9bfa81d)
  • expand sync offering for elements with overlay content (0195843)
  • give Picker a focus helper to enable tab navigation in Safari (e796525)
  • hopefully fix CI (ea87245)
  • include late added items in the item list for the Picker (9232eb1)
  • issues with optionsMenu & menuItems (01a7e35)
  • menu: add support for submenu interactions (68399af)
  • menu: clarify menu internal focus management via preventScroll option (9ae092c)
  • menu: ensure active descendant is in view when activated (6edc351)
  • menu: only scrollIntoView when keyboard navigating (f4e9278)
  • overlay: move "escape" listener to "keydown" (813b341)
  • picker: accept new "value" and new option post first render (8f8c93f)
  • picker: add "quick select" action to right/left arrow keys (21895ee)
  • picker: allow menu items to be added, updated, and removed (73511ba)
  • picker: ensure focus visibility application (2679081)
  • picker: ensure that width is customizable from the outside (702b052)
  • picker: make "change" event bubbling and composed (1fdd33d)
  • picker: query less strictly to support automatically selecting values (969f966)
  • picker: use "modal" as the menu overlay interaction (c8fbbe2)
  • prevent console.log in source and test files (3ee082c)
  • remove usage where deprecated (387db3b)
  • simplify focus application in Menu (6140169)
  • simplify optionsMenu usage and fix tests (91241b7)
  • slot documentation (0ebd260)
  • split-button tests & lots of cleanup based on review feedback (10b4a04), closes #1189
  • style icons in Picker correctly (0bbdf84)
  • support a wider number of sizes (ee44978)
  • update Picker label via MutationObserver instead of "slotchange" (196998e)
  • update screen reader interface with menu items list (16756b5)
  • update to latest spectrum-css packages (a5ca19f)

Features

Section titled Features
  • add selects attribute to menu (bdf2578)
  • add t-shirt sizing with visual regressions to checkbox and picker elements (ce47ec8)
  • adopt DNA@7 base Spectrum CSS (e08cafd)
  • conditionally load focus-visible polyfill (6b5e5cf)
  • delivery dev mode messages in various packages (62370a1)
  • deprecate sp-menu in PickerBase derived classes (bbb773c)
  • include all Dev Mode files in side effects (f70817c)
  • picker: process field-label content for more accurate a11y tree (dc9df54)
  • picker: replace dropdown with picker component (30b8bc7)
  • picker: support responsive delivery of menu (20031d1)
  • picker: update "icons-only" to "icons=only" to support more variations (de16a62)
  • picker: use new tokens (7d65b69)
  • reparentChildren - refactored arguments - breaking change (dea2bc5)
  • sets action-menu quiet to false by default, fixes #3040 (8414cab)
  • shared pkg versions, devmode define warning, registry-conflicts docs (6e49565)
  • tabs: add sp-tab-panel element (b17d276)
  • update lit-* dependencies, wip (377f3c8)
  • use latest exports specification (a7ecf4b)

Performance Improvements

Section titled Performance Improvements
  • reorganize inheritance and composition in Menu Items (d96ccb6)

0.15.2 (2023-04-24)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.15.1 (2023-04-05)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.15.0 (2023-03-22)

Section titled

Features

Section titled Features
  • sets action-menu quiet to false by default, fixes #3040 (8414cab)

0.14.2 (2023-03-08)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.14.1 (2023-02-13)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.14.0 (2023-02-08)

Section titled

Features

Section titled Features
  • picker: use new tokens (7d65b69)

0.13.11 (2023-01-23)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.13.10 (2023-01-09)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.13.9 (2022-12-08)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.13.8 (2022-11-21)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.13.7 (2022-11-14)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.13.6 (2022-10-28)

Section titled

Bug Fixes

Section titled Bug Fixes
  • ensure Action Menu Item with [href] close the menu (6b3d87f)

0.13.5 (2022-10-17)

Section titled

Bug Fixes

Section titled Bug Fixes
  • style icons in Picker correctly (0bbdf84)

0.13.4 (2022-10-10)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.13.3 (2022-09-15)

Section titled

Bug Fixes

Section titled Bug Fixes
  • action-menu: fix 2510, unable to control top-level action-menu selection (c9198c2)
  • action-menu: never set item selected values when selects is undefined (5237fdb)

0.13.2 (2022-09-14)

Section titled

Bug Fixes

Section titled Bug Fixes
  • overlay: move "escape" listener to "keydown" (813b341)

0.13.1 (2022-08-24)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.13.0 (2022-08-09)

Section titled

Features

Section titled Features
  • include all Dev Mode files in side effects (f70817c)

0.12.0 (2022-08-04)

Section titled

Bug Fixes

Section titled Bug Fixes
  • action-menu: stop stripping selected state from submenu items (968d1f2)
  • picker: query less strictly to support automatically selecting values (969f966)

Features

Section titled Features
  • delivery dev mode messages in various packages (62370a1)

0.11.5 (2022-07-18)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.11.4 (2022-06-29)

Section titled

Bug Fixes

Section titled Bug Fixes
  • update Picker label via MutationObserver instead of "slotchange" (196998e)

0.11.3 (2022-06-07)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.11.2 (2022-05-27)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.11.1 (2022-05-12)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.11.0 (2022-04-21)

Section titled

Bug Fixes

Section titled Bug Fixes
  • allow Picker to be reparented (39e7309)
  • correct custom property hoisting (a1d98dc)
  • ensure correct Menu Items are "selected" when passed into the overlay (46a25db)

Features

Section titled Features
  • conditionally load focus-visible polyfill (6b5e5cf)
  • reparentChildren - refactored arguments - breaking change (dea2bc5)

0.10.6 (2022-03-30)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.10.5 (2022-03-08)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.10.4 (2022-03-08)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.10.3 (2022-03-04)

Section titled

Bug Fixes

Section titled Bug Fixes
  • menu: add support for submenu interactions (68399af)

0.10.2 (2022-02-22)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.10.1 (2022-02-03)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.10.0 (2022-02-02)

Section titled

Features

Section titled Features
  • picker: support responsive delivery of menu (20031d1)

0.9.4 (2022-01-26)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.9.3 (2022-01-26)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker: make "change" event bubbling and composed (1fdd33d)

0.9.2 (2022-01-07)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.9.1 (2021-12-13)

Section titled

Bug Fixes

Section titled Bug Fixes
  • add t-shirt sizing to Thumbnail and support for "xxs"/"xs" sizes (520a642)
  • picker: allow menu items to be added, updated, and removed (73511ba)

0.9.0 (2021-11-08)

Section titled

Features

Section titled Features
  • update lit-* dependencies, wip (377f3c8)

0.8.1 (2021-11-08)

Section titled

Bug Fixes

Section titled Bug Fixes
  • abstract "hasVisibleFocusInTree" functionality and return trigger focus after close (4f39f2c)

0.8.0 (2021-11-02)

Section titled

Bug Fixes

Section titled Bug Fixes
  • update screen reader interface with menu items list (16756b5)
  • picker: use "modal" as the menu overlay interaction (c8fbbe2)
  • include late added items in the item list for the Picker (9232eb1)

Features

Section titled Features
  • adopt DNA@7 base Spectrum CSS (e08cafd)

0.7.5 (2021-10-12)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.7.4 (2021-10-05)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.7.3 (2021-09-20)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.7.2 (2021-09-13)

Section titled

Bug Fixes

Section titled Bug Fixes
  • give Picker a focus helper to enable tab navigation in Safari (e796525)
  • simplify focus application in Menu (6140169)

0.7.1 (2021-08-24)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.7.0 (2021-08-17)

Section titled

Features

Section titled Features
  • picker: update "icons-only" to "icons=only" to support more variations (de16a62)

Performance Improvements

Section titled Performance Improvements
  • reorganize inheritance and composition in Menu Items (d96ccb6)

0.6.0 (2021-08-03)

Section titled

Bug Fixes

Section titled Bug Fixes
  • allow "updateComplete" to resolve to a boolean like the LitElement default (6127946)
  • expand sync offering for elements with overlay content (0195843)

Features

Section titled Features
  • add selects attribute to menu (bdf2578)

0.5.4 (2021-07-22)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.5.3 (2021-07-01)

Section titled

Bug Fixes

Section titled Bug Fixes
  • add icon present and icon-only support to Picker (f6887a3)

0.5.2 (2021-06-16)

Section titled

Bug Fixes

Section titled Bug Fixes
  • prevent console.log in source and test files (3ee082c)

0.5.1 (2021-06-07)

Section titled

Bug Fixes

Section titled Bug Fixes
  • menu: clarify menu internal focus management via preventScroll option (9ae092c)
  • ensure focus is managed when tabbing out of a menu (9bfa81d)

0.5.0 (2021-05-24)

Section titled

Features

Section titled Features
  • tabs: add sp-tab-panel element (b17d276)

0.4.5 (2021-05-12)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker: ensure focus visibility application (2679081)

0.4.4 (2021-04-15)

Section titled

Bug Fixes

Section titled Bug Fixes
  • menu: only scrollIntoView when keyboard navigating (f4e9278)

0.4.3 (2021-04-09)

Section titled

Bug Fixes

Section titled Bug Fixes
  • picker: accept new "value" and new option post first render (8f8c93f)

0.4.2 (2021-03-29)

Section titled

Bug Fixes

Section titled Bug Fixes
  • correct max size calculation for overlays (0585f7f)

0.4.1 (2021-03-22)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.4.0 (2021-03-22)

Section titled

Bug Fixes

Section titled Bug Fixes
  • add support for "readonly" attribute (4bce3b7)
  • analyze errors, properly this time (df685a2)
  • analyze type errors, and add deprecated syntax tests (b7e67a1)
  • bad merge conflict resolution (e408d61)
  • hopefully fix CI (ea87245)
  • issues with optionsMenu & menuItems (01a7e35)
  • remove usage where deprecated (387db3b)
  • simplify optionsMenu usage and fix tests (91241b7)
  • slot documentation (0ebd260)
  • split-button tests & lots of cleanup based on review feedback (10b4a04), closes #1189

Features

Section titled Features
  • picker: process field-label content for more accurate a11y tree (dc9df54)
  • deprecate sp-menu in PickerBase derived classes (bbb773c)

0.3.1 (2021-03-05)

Section titled

Note: Version bump only for package @spectrum-web-components/picker

0.3.0 (2021-03-04)

Section titled

Bug Fixes

Section titled Bug Fixes
  • menu: ensure active descendant is in view when activated (6edc351)
  • picker: add "quick select" action to right/left arrow keys (21895ee)
  • picker: ensure that width is customizable from the outside (702b052)
  • support a wider number of sizes (ee44978)

Features

Section titled Features
  • use latest exports specification (a7ecf4b)

0.2.0 (2021-02-11)

Section titled

Bug Fixes

Section titled Bug Fixes
  • update to latest spectrum-css packages (a5ca19f)

Features

Section titled Features
  • add t-shirt sizing with visual regressions to checkbox and picker elements (ce47ec8)

0.1.0 (2021-02-02)

Section titled 0.1.0 (2021-02-02)

Features

Section titled Features
  • picker: replace dropdown with picker component (30b8bc7)