7.0.0-beta.0 (2023-01-25)
Bug Fixes
- accordion-group: do not adjust incorrect values (#26086) (e2cbeeb)
- action-sheet: container animates in correctly (#26347) (1e855e7), closes #25368
- angular: null values are not converted to falsy value (#26341) (ce2e37b)
- back-button: update style for ios spec (#26395) (1a840c4), closes #26393
- breadcrumb: add aria-label to collapsed indicator (#26615) (f8a2c79)
- card-header: reverse order of title and subtitle on ios (#26084) (2080890)
- datetime: do not report timezone in ionChange (#26183) (3fb4caf), closes #25577
- datetime: haptics are enabled only on ios (#26370) (8eec197), closes #25508
- input, searchbar, select, textarea: placeholder has improved contrast (#26486) (6c82435)
- input, textarea: inputs now scroll into view when tapping labels (#25848) (cb265d6)
- input, textarea: padding is now added to content so inputs scroll above keyboard (#25849) (ba6b539), closes #18532
- input: clearOnEdit clears input when user initially types (#26005) (bf5e118)
- item: align iOS font size to spec (#26445) (eea91bb)
- item: ios mode has correct padding (#26511) (96147ec)
- overlays: dismiss on keydown to avoid chrome for windows and firefox bug (#25811) (a1ec9aa), closes #25802
- overlays: triggerController warns about missing triggers (#26651) (a7c2c55)
- range: range matches iOS design specification (#25873) (da05ffe), closes #25872
- segment: click event triggers ionChange (#26162) (70781e4)
- select: chevron icon is now an ionicon (#26484) (0823c09)
- select: modern component takes up full line (#26670) (4d24b32)
- textarea: clearOnEdit clears textarea when user initially types (#26006) (f7176bb)
- textarea: render icon for clearing input (3271ecf)
Code Refactoring
- config: remove stencil extras (#26461) (bd4027b)
- core: remove global hidden attribute (#25829) (f5a6b5a), closes #17583
- modal: remove swipeToClose in favor of canDismiss (#26050) (1f3ddf2)
- picker: remove refresh key (#26340) (0fbcc5b)
- react: only ship es modules (#26044) (c946af2)
- types: remove overlay attribute interfaces (#26181) (322a1db)
- vue: only ship es modules (#26054) (86bbed0), closes #25104
Features
- accordion: ionChange will only emit from user committed changes (#25922) (4eea9fa)
- action-sheet: use action sheet overlay inline (#26172) (92b763a), closes #22799, #23219
- alert: add ability to use alert inline (#26316) (08c0a55), closes #22799, #23219
- base-components: add ability to remove ios and md theme (#26669) (18f109c)
- checkbox: component can be used outside ion-item (#26518) (9d52e70), closes #21513, #23332, #23289
- checkbox: ionChange fires on user interaction (#25923) (a6b2629)
- datetime: ionChange will only emit from user committed changes (#26083) (cc2af20), closes #20873 #24452
- input, textarea: change default debounce to undefined (#26073) (c45d054)
- input, textarea: ionInput and ionChange pass event and value (#26176) (eea6ba9)
- input: component can be used outside of ion-item (#26283) (44472ae), closes #20153 #19084 #22736, #24312, #24333, #24639, #26178, #24966, #23331, #18037, #23335
- input: debounce controls the timing to delay the ionInput event (#25969) (35041b2)
- input: ionChange will only emit from user committed changes (#25858) (8732b7b), closes #20106 #20061
- loading: use loading overlay inline (#26153) (34ca337), closes #22799, #23219
- picker: add ability to use picker inline (#26336) (c0a8501), closes #22799, #23219
- radio-group: ionChange will only emit from user committed changes (#26223) (c299d36)
- radio: component can be used outside of ion-item (#26582) (9761b0a), closes #21513
- range: component can be used outside of ion-item (#26479) (49baad8)
- range: ionChange will only emit from user committed changes (#26089) (d1fb7b0)
- searchbar: ionChange will only emit from user committed changes (#26026) (b052d3b)
- segment: ionChange will only emit from user committed changes (#25934) (a03c8af)
- select: component can be used outside ion-item (#26572) (02640b5), closes #23540, #24322, #25449, #25639, #19936
- select: ionChange will only emit from user committed changes (#26066) (34c4137)
- slides: remove ion-slide, ion-slides, and IonicSwiper module (#25868) (d478e03)
- textarea: component can be used outside of ion-item (#26674) (8d3edd0), closes #22269
- textarea: ionChange will only emit from user committed changes (#25953) (68bae80)
- toast: add ability to use toast inline (#26215) (003de44), closes #22799, #23219
- toggle: component can be used outside of ion-item (#26357) (c74901c), closes #25570 #23213, closes #23332, #23213
- toggle: ionChange will only emit from user committed changes (#26078) (85d3bd9)
- virtual-scroll: remove virtual scroll component (#25808) (1eb6fd0)
Performance Improvements
- item: remove delegatesFocus patch for iOS 13 (#25822) (ee3467c), closes #25273
- many: reduce delay when performing overlay or page transitions (#26189) (30e3a14), closes #24346
BREAKING CHANGES
- config: The supported version of Firefox for Ionic v7 has changed to Firefox v70+
- input, searchbar, select, textarea: The default value for the
--placeholder-opacity
CSS Variable onion-input
,ion-searchbar
,ion-select
, andion-textarea
has been updated to0.6
. - select: The
icon
CSS Shadow Part forion-select
now targets anion-icon
component. - datetime: The haptics when swiping the wheel picker are now enabled only on iOS.
- toggle: The
--background
and--background-checked
variables have been renamed to--track-background
and--track-background-checked
, respectively. - angular: Datetime:
Passing the empty string to the value
property will now error as it is not a valid ISO-8601 value.
Angular:
null
values on form components will no longer be converted to the empty string (''
) or false
. This impacts ion-checkbox
, ion-datetime
, ion-input
, ion-radio
, ion-radio-group
, ion-range,
ion-searchbar,
ion-segment,
ion-select,
ion-textarea, and
ion-toggle`.
- picker: The
refresh
key has been removed from thePickerColumn
interface. Developers should use thecolumns
property to refresh theion-picker
view. - input, textarea: The
detail
payload for theionInput
event onion-input
andion-textarea
now contains an object with the currentvalue
as well as the native event that triggeredionInput
. - datetime: Datetime no longer incorrectly reports the time zone when
value
is updated. Datetime does not manage time zones, so any time zone information provided is ignored. - types:
ActionSheetAttributes
,AlertAttributes
,AlertTextareaAttributes
,AlertInputAttributes
,LoadingAttributes
,ModalAttributes
,PickerAttributes
,PopoverAttributes
, andToastAttributes
have been removed. Developers should use{ [key: string]: any }
instead. - card-header: - The card header has ben changed to a flex container with direction set to
column
(top to bottom). Inios
mode the direction is set tocolumn-reverse
which results in the subtitle displaying on top of the title. - accordion-group: Accordion Group no longer automatically adjusts the
value
property when passed an array andmultiple="false"
. Developers should update their apps to ensure they are using the API correctly. - select:
ionChange
is no longer emitted when thevalue
ofion-select
is modified externally.ionChange
is only emitted from user committed changes, such as confirming a selected option in the select's overlay. - react:
@ionic/react
and@ionic/react-router
no longer ship a CommonJS entry point. Instead, only an ES Module entry point is provided for improved compatibility with Vite. - vue:
@ionic/vue
and@ionic/vue-router
no longer ship a CommonJS entry point. Instead, only an ES Module entry point is provided for improved compatibility with Vite. - modal: - The
swipeToClose
property has been removed in favor ofcanDismiss
.
- The
canDismiss
property now defaults totrue
and can no longer be set toundefined
.
- checkbox:
ionChange
is no longer emitted when thechecked
property ofion-checkbox
is modified externally.ionChange
is only emitted from user committed changes, such as clicking or tapping the checkbox. - accordion:
ionChange
is no longer emitted when thevalue
ofion-accordion-group
is modified externally.ionChange
is only emitted from user committed changes, such as clicking or tapping the accordion header. - core: The
[hidden]
attribute has been removed from Ionic's global stylesheet. The[hidden]
attribute can continue to be used, but developers will get the nativehidden
implementation instead. The main difference is that the native implementation is easier to override usingdisplay
than Ionic's implementation.
Developers can add the following CSS to their global stylesheet if they need the old behavior:
[hidden] {
display: none !important;
}
- overlays: Ionic now listens on the
keydown
event instead of thekeyup
event when determining when to dismiss overlays via the "Escape" key. Any applications that were listening onkeyup
to suppress this behavior should listen onkeydown
instead.