calcite-design-system
calcite-design-system copied to clipboard
Some properties (e.g. `inputMode` not available anymore)
Check existing issues
- [X] I have checked for existing issues to avoid duplicates
Actual Behavior
While testing the latest v2.8.0 of Calcite Components together with the JSAPI, the Typescript compiler reported that inputMode
is no longer available as a property of <calcite-input-number>
. It seems like the change got introduced by https://github.com/Esri/calcite-design-system/commit/13ba95375a9cb9091edf469d45827bd8374098b9 and it could affect apps using that property or any of the other properties that were removed.
Expected Behavior
Typings should still contain the previously-existing properties. Alternatively, a breaking change and consequent major version should be released.
Reproduction Sample
https://codepen.io/hccampos/pen/ExJzRRq
Reproduction Steps
- Open https://codepen.io/hccampos/pen/ExJzRRq
- Inspect the input element.
- Type
$0.inputMode
in the console and notice that theinputMode
property isn't set.
Alternatively, build an application which makes use of the typings and notice that the property isn't available.
Reproduction Version
2.8.0
Relevant Info
No response
Regression?
2.7.x
Priority impact
p0 - emergency
Impact
While it doesn't directly impact my team (we haven't decided if we'll upgrade to this version of Calcite for the upcoming release), it can potentially affect any application which was using one of the removed properties. Their builds can fail and the components may not work as expected.
Calcite package
- [X] @esri/calcite-components
- [ ] @esri/calcite-components-angular
- [ ] @esri/calcite-components-react
- [ ] @esri/calcite-design-tokens
- [ ] @esri/eslint-plugin-calcite-components
Esri team
ArcGIS Maps SDK for JavaScript
Closing out the above as the global attributes are provided and the issue for Maps SDK for JS appears to be related to the maquette VDOM library typings for globals.
One thing that https://github.com/Esri/calcite-design-system/pull/9123 overlooked was how our custom global component prop's were using the kebabified™ case vs the native ones. I think we can add props (@internal
) for enterKeyHint
and inputMode
to allow the VDOM typing tool referenced above to do proper attribute mapping. We can drop support for the kebab-case attributes in 3.x.
Reopening to provide support to kebab-case per Franco's comment above.
Installed and assigned for verification.
🍡 Verified locally on hotfix
Reopening due to autofocus
prop/attr type issue. Using @internal
removes the prop/attr from components.d.ts
and due to https://github.com/ionic-team/stencil/issues/5726 the type cannot be resolved (inputMode
and enterKeyHint
do not have this issue).
cc @AdelheidF
Installed and assigned for verification.
Repro case: https://github.com/jcfranco/cc-autofocus-missing-from-types
Verified with https://github.com/jcfranco/cc-autofocus-missing-from-types in 2.8.2
🎉