Skip to content

Epic: Update form components to leverage ElementInternals API #8126

@jcfranco

Description

@jcfranco

monday.com sync: #18048583564

Description

Lit is looking to add support for ElementInternals, so we should explore leveraging this API instead of our custom solution.

cc @eriklharper @benelan

Based on recent discussion, we'll use this issue to track just replacing the existing HiddenFormInputSlot implementation with ElementInternals without changing any existing public APIs. This will keep the refactor label consistent too since no functionality would change as a result.

Proposed Advantages

Improved form integration and leaner components.

Which Component

Checkbox, Combobox, Input Date Picker, Input Number, Input Text, Input Time Picker, Input Time Zone, Input, Meter, Radio Button, Rating, Segmented Control, Select, Slider, Switch, Text Area

Relevant Info

Safari added support for ElementInternals at 16.4, so we may have to consider the following if we update form components to use this API:

  • waiting until Safari 18 to ensure last 2 base versions support this API
  • consider a polyfill to handle Safari 16.0 – 16.3 (requires a lot testing)
  • moving forward and document form integration won't work for 16.0 – 16.3 (nonstarter option as it introduces a regression for this version)

All components implementing FormComponent:

Components that can be used to trigger form submit and reset events:

Calcite package

  • @esri/calcite-components
  • @esri/calcite-components-react
  • @esri/calcite-design-tokens
  • @esri/eslint-plugin-calcite-components

Related issues

Metadata

Metadata

Labels

2 - ready for devIssues that are designed, have acceptance criteria defined, and are ready for a developer to pick upc-checkboxIssues that pertain to the calcite-checkbox componentc-comboboxIssues that pertain to the calcite-combobox and related componentsc-inputIssues that pertain to the calcite-input componentc-input-date-pickerIssues that pertain to the calcite-input-date-picker componentc-input-numberIssues that pertain to the calcite-input-number componentc-input-textIssues that pertain to the calcite-input-text componentc-input-time-pickerIssues that pertain to the calcite-input-time-picker componentc-input-time-zoneIssues that pertain to the calcite-input-time-zone componentc-meterIssues that pertain to the calcite-meter componentc-radio-buttonIssue related to calcite-radio-buttonc-ratingIssues that pertain to the calcite-rating componentc-segmented-controlIssues that pertain to the calcite-segmented-control componentc-selectIssues that pertain to the calcite-select componentc-sliderIssues that pertain to the calcite-slider componentc-switchIssues that pertain to the calcite-switch componentc-text-areaIssues that pertain to the calcite-text-area componentcalcite-componentsIssues specific to the @esri/calcite-components package.epicLarge scale issues to be broken up into sub-issues and tracked via sprints and/or project.p - mediumIssue is non core or affecting less that 60% of people using the libraryrefactorIssues tied to code that needs to be significantly reworked.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions