@ionic/core 7.5.8-dev.11701806358.1ca1b519 → 7.5.8-dev.11701876182.1e71e7a0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/animation.js +12 -11
- package/components/backdrop.js +12 -0
- package/components/checkbox.js +5 -3
- package/components/data.js +1 -1
- package/components/gesture-controller.js +1 -1
- package/components/index4.js +10 -12
- package/components/index5.js +0 -22
- package/components/input-shims.js +12 -7
- package/components/input.utils.js +3 -2
- package/components/ion-content.js +1 -1
- package/components/ion-datetime.js +64 -40
- package/components/ion-infinite-scroll.js +11 -3
- package/components/ion-input.js +31 -8
- package/components/ion-modal.js +2 -2
- package/components/ion-picker-column-internal.d.ts +11 -0
- package/components/ion-picker-column-internal.js +9 -0
- package/components/ion-picker-column.js +2 -2
- package/components/{ion-picker-legacy.d.ts → ion-picker-internal.d.ts} +4 -4
- package/components/ion-picker-internal.js +9 -0
- package/components/ion-picker.js +309 -1
- package/components/ion-range.js +5 -3
- package/components/ion-select.js +44 -29
- package/components/ion-skeleton-text.js +14 -1
- package/components/ion-textarea.js +30 -7
- package/components/ion-toast.js +419 -74
- package/components/ion-toggle.js +5 -3
- package/components/item.js +2 -2
- package/components/label.js +2 -2
- package/components/overlays.js +6 -12
- package/components/picker-column-internal.js +390 -0
- package/components/picker-column.js +317 -363
- package/components/{picker.js → picker-internal.js} +16 -16
- package/components/radio-group.js +2 -0
- package/components/radio.js +45 -5
- package/dist/cjs/{animation-cc40e39c.js → animation-9b401d39.js} +13 -12
- package/dist/cjs/{button-active-9d7e0640.js → button-active-a5185907.js} +2 -2
- package/dist/cjs/{capacitor-46980811.js → capacitor-c04564bf.js} +1 -1
- package/dist/cjs/compare-with-utils-df1001d7.js +44 -0
- package/dist/cjs/{data-e7526b58.js → data-36b9094e.js} +1 -1
- package/dist/cjs/{gesture-controller-9436f482.js → gesture-controller-c40c045a.js} +0 -1
- package/dist/cjs/{haptic-216df36c.js → haptic-b882e0bb.js} +1 -1
- package/dist/cjs/{index-8c1e77d6.js → index-b4f986cd.js} +1 -1
- package/dist/cjs/index-c8d52405.js +10 -0
- package/dist/cjs/{index-5cbb20f9.js → index-ce101dc9.js} +11 -13
- package/dist/cjs/{index-ee07ed59.js → index-d1b59ffa.js} +1 -1
- package/dist/cjs/{index-d4c2e02c.js → index-f8f13389.js} +2 -2
- package/dist/cjs/index.cjs.js +10 -10
- package/dist/cjs/{input-shims-87102b6a.js → input-shims-a23bb0f4.js} +15 -10
- package/dist/cjs/{input.utils-2a11c1fe.js → input.utils-3d0166a2.js} +4 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
- package/dist/cjs/ion-alert.cjs.entry.js +8 -8
- package/dist/cjs/ion-app_8.cjs.entry.js +10 -10
- package/dist/cjs/ion-backdrop.cjs.entry.js +12 -0
- package/dist/cjs/ion-checkbox.cjs.entry.js +5 -3
- package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime_3.cjs.entry.js +60 -40
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +11 -3
- package/dist/cjs/ion-input.cjs.entry.js +34 -11
- package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-item_8.cjs.entry.js +17 -4
- package/dist/cjs/ion-loading.cjs.entry.js +3 -4
- package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-modal.cjs.entry.js +10 -10
- package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
- package/dist/cjs/{ion-picker-column.cjs.entry.js → ion-picker-column-internal.cjs.entry.js} +74 -107
- package/dist/cjs/{ion-picker.cjs.entry.js → ion-picker-internal.cjs.entry.js} +13 -13
- package/dist/cjs/ion-popover.cjs.entry.js +4 -5
- package/dist/cjs/ion-radio_2.cjs.entry.js +9 -4
- package/dist/cjs/ion-range.cjs.entry.js +6 -4
- package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +51 -36
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-textarea.cjs.entry.js +33 -10
- package/dist/cjs/ion-toast.cjs.entry.js +434 -93
- package/dist/cjs/ion-toggle.cjs.entry.js +9 -7
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/{ios.transition-a4ffb5a2.js → ios.transition-6787b799.js} +3 -3
- package/dist/cjs/{keyboard-9390928c.js → keyboard-0272231f.js} +1 -1
- package/dist/cjs/{keyboard-7d621ee9.js → keyboard-af1bb365.js} +3 -3
- package/dist/cjs/{keyboard-controller-2158b478.js → keyboard-controller-c05e747a.js} +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{md.transition-292abe1c.js → md.transition-e033d20a.js} +3 -3
- package/dist/cjs/{notch-controller-1dce508a.js → notch-controller-9735e7ac.js} +1 -1
- package/dist/cjs/{overlays-e8e05b0e.js → overlays-27a6fb16.js} +7 -12
- package/dist/cjs/{swipe-back-b8f2330b.js → swipe-back-2a858bbd.js} +2 -2
- package/dist/collection/collection-manifest.json +6 -7
- package/dist/collection/components/backdrop/backdrop.js +12 -0
- package/dist/collection/components/checkbox/checkbox.ios.css +0 -6
- package/dist/collection/components/checkbox/checkbox.js +4 -1
- package/dist/collection/components/checkbox/checkbox.md.css +0 -6
- package/dist/collection/components/checkbox/test/checkbox.spec.js +14 -0
- package/dist/collection/components/content/content.css +4 -0
- package/dist/collection/components/datetime/datetime.ios.css +38 -83
- package/dist/collection/components/datetime/datetime.js +36 -24
- package/dist/collection/components/datetime/datetime.md.css +38 -88
- package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/a11y/datetime.spec.js +9 -6
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +0 -10
- package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
- package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
- package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
- package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
- package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +41 -43
- package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
- package/dist/collection/components/datetime/test/values/datetime.e2e.js +12 -15
- package/dist/collection/components/datetime/utils/data.js +1 -1
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +11 -3
- package/dist/collection/components/infinite-scroll/test/small-dom-update/infinite-scroll.e2e.js +31 -0
- package/dist/collection/components/input/input.ios.css +10 -3
- package/dist/collection/components/input/input.js +31 -6
- package/dist/collection/components/input/input.md.css +13 -12
- package/dist/collection/components/input/test/slot/input.e2e.js +51 -0
- package/dist/collection/components/item/item.ios.css +41 -3
- package/dist/collection/components/item/item.md.css +41 -3
- package/dist/collection/components/item/test/basic/item.e2e.js +1 -1
- package/dist/collection/components/item/test/disabled/item.e2e.js +0 -1
- package/dist/collection/components/label/label.ios.css +14 -3
- package/dist/collection/components/label/label.md.css +14 -3
- package/dist/collection/components/modal/gestures/swipe-to-close.js +2 -1
- package/dist/collection/components/note/test/a11y/note.e2e.js +43 -0
- package/dist/collection/components/picker/picker.ios.css +205 -100
- package/dist/collection/components/picker/picker.js +743 -461
- package/dist/collection/components/picker/picker.md.css +194 -98
- package/dist/collection/components/picker/test/basic/picker.e2e.js +13 -99
- package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
- package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
- package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
- package/dist/collection/components/picker-column/picker-column.ios.css +160 -120
- package/dist/collection/components/picker-column/picker-column.js +329 -514
- package/dist/collection/components/picker-column/picker-column.md.css +107 -134
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
- package/dist/collection/components/{picker-column-option/picker-column-option.md.css → picker-column-internal/picker-column-internal.ios.css} +53 -6
- package/dist/collection/components/picker-column-internal/picker-column-internal.js +565 -0
- package/dist/collection/components/{picker-legacy-column/picker-column.md.css → picker-column-internal/picker-column-internal.md.css} +63 -113
- package/dist/collection/components/{picker-column/test/basic/picker-column.e2e.js → picker-column-internal/test/basic/picker-column-internal.e2e.js} +8 -8
- package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +162 -0
- package/dist/collection/components/{picker-legacy/picker.md.css → picker-internal/picker-internal.ios.css} +100 -192
- package/dist/collection/components/picker-internal/picker-internal.js +544 -0
- package/dist/collection/components/{picker-legacy-column/picker-column.ios.css → picker-internal/picker-internal.md.css} +101 -98
- package/dist/collection/components/{picker/test/a11y/picker.e2e.js → picker-internal/test/a11y/picker-internal.e2e.js} +2 -2
- package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +118 -0
- package/dist/collection/components/{picker/test/keyboard-entry/picker.e2e.js → picker-internal/test/keyboard-entry/picker-internal.e2e.js} +22 -23
- package/dist/collection/components/radio/radio.ios.css +0 -6
- package/dist/collection/components/radio/radio.js +7 -3
- package/dist/collection/components/radio/radio.md.css +0 -6
- package/dist/collection/components/radio/test/radio.spec.js +14 -0
- package/dist/collection/components/radio-group/radio-group.js +24 -0
- package/dist/collection/components/radio-group/test/radio-group.spec.js +69 -0
- package/dist/collection/components/range/range.ios.css +0 -6
- package/dist/collection/components/range/range.js +4 -1
- package/dist/collection/components/range/range.md.css +0 -6
- package/dist/collection/components/range/test/range.spec.js +16 -0
- package/dist/collection/components/select/select.ios.css +60 -7
- package/dist/collection/components/select/select.js +45 -28
- package/dist/collection/components/select/select.md.css +63 -19
- package/dist/collection/components/select/test/item/select.e2e.js +15 -0
- package/dist/collection/components/select/test/label/select.e2e.js +1 -1
- package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
- package/dist/collection/components/select/test/slot/select.e2e.js +67 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js +39 -0
- package/dist/collection/components/textarea/test/slot/textarea.e2e.js +51 -0
- package/dist/collection/components/textarea/textarea.ios.css +37 -5
- package/dist/collection/components/textarea/textarea.js +30 -5
- package/dist/collection/components/textarea/textarea.md.css +47 -14
- package/dist/collection/components/toast/animations/ios.enter.js +2 -1
- package/dist/collection/components/toast/animations/md.enter.js +4 -3
- package/dist/collection/components/toast/animations/utils.js +20 -14
- package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +267 -0
- package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +84 -0
- package/dist/collection/components/toast/test/toast-config.spec.js +25 -0
- package/dist/collection/components/toast/test/toast.spec.js +80 -0
- package/dist/collection/components/toast/toast.ios.css +10 -10
- package/dist/collection/components/toast/toast.js +104 -1
- package/dist/collection/components/toast/toast.md.css +10 -0
- package/dist/collection/components/toggle/test/toggle.spec.js +12 -0
- package/dist/collection/components/toggle/toggle.ios.css +0 -6
- package/dist/collection/components/toggle/toggle.js +4 -1
- package/dist/collection/components/toggle/toggle.md.css +0 -6
- package/dist/collection/utils/animation/animation.js +12 -11
- package/dist/collection/utils/animation/test/animation.spec.js +16 -0
- package/dist/collection/utils/browser/index.js +0 -22
- package/dist/collection/utils/forms/compare-with-utils.js +39 -0
- package/dist/collection/utils/forms/index.js +1 -0
- package/dist/collection/utils/gesture/gesture-controller.js +1 -1
- package/dist/collection/utils/input-shims/input-shims.js +12 -6
- package/dist/collection/utils/menu-controller/index.js +10 -12
- package/dist/collection/utils/overlays.js +5 -11
- package/dist/collection/utils/slot-mutation-controller.js +3 -2
- package/dist/docs.json +265 -561
- package/dist/esm/{animation-fb0e0f6f.js → animation-dde8cc0d.js} +13 -12
- package/dist/esm/{button-active-ed9d848c.js → button-active-c6ee4f50.js} +2 -2
- package/dist/esm/{capacitor-b0e5fe83.js → capacitor-59395cbd.js} +1 -1
- package/dist/esm/compare-with-utils-a96ff2ea.js +41 -0
- package/dist/esm/{data-4b9508c9.js → data-f5c75b4e.js} +1 -1
- package/dist/esm/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
- package/dist/esm/{haptic-152c4172.js → haptic-554688a5.js} +1 -1
- package/dist/esm/{index-80492ed3.js → index-0c12c22b.js} +11 -13
- package/dist/esm/{index-d8817fb0.js → index-1932b201.js} +2 -2
- package/dist/esm/{index-39782642.js → index-2cf77112.js} +2 -2
- package/dist/esm/{index-ba9976bb.js → index-82eeb47f.js} +1 -1
- package/dist/esm/index-a5d50daf.js +7 -0
- package/dist/esm/index.js +10 -10
- package/dist/esm/{input-shims-0a2e541d.js → input-shims-6539ce13.js} +14 -9
- package/dist/esm/{input.utils-2846d430.js → input.utils-a5a2d164.js} +4 -3
- package/dist/esm/ion-action-sheet.entry.js +8 -8
- package/dist/esm/ion-alert.entry.js +8 -8
- package/dist/esm/ion-app_8.entry.js +10 -10
- package/dist/esm/ion-backdrop.entry.js +12 -0
- package/dist/esm/ion-checkbox.entry.js +5 -3
- package/dist/esm/ion-datetime-button.entry.js +1 -1
- package/dist/esm/ion-datetime_3.entry.js +59 -39
- package/dist/esm/ion-infinite-scroll_2.entry.js +11 -3
- package/dist/esm/ion-input.entry.js +34 -11
- package/dist/esm/ion-item-option_3.entry.js +1 -1
- package/dist/esm/ion-item_8.entry.js +17 -4
- package/dist/esm/ion-loading.entry.js +3 -4
- package/dist/esm/ion-menu_3.entry.js +7 -7
- package/dist/esm/ion-modal.entry.js +10 -10
- package/dist/esm/ion-nav_2.entry.js +2 -2
- package/dist/esm/{ion-picker-column.entry.js → ion-picker-column-internal.entry.js} +74 -107
- package/dist/esm/{ion-picker.entry.js → ion-picker-internal.entry.js} +13 -13
- package/dist/esm/ion-popover.entry.js +4 -5
- package/dist/esm/ion-radio_2.entry.js +9 -4
- package/dist/esm/ion-range.entry.js +6 -4
- package/dist/esm/ion-refresher_2.entry.js +7 -7
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-segment_2.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +47 -32
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-textarea.entry.js +33 -10
- package/dist/esm/ion-toast.entry.js +417 -76
- package/dist/esm/ion-toggle.entry.js +9 -7
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/{ios.transition-fd16bec1.js → ios.transition-802a84a6.js} +3 -3
- package/dist/esm/{keyboard-c402e885.js → keyboard-52278bd7.js} +3 -3
- package/dist/esm/{keyboard-dbb05fb9.js → keyboard-73175e24.js} +1 -1
- package/dist/esm/{keyboard-controller-5d90929a.js → keyboard-controller-ec5c2bfa.js} +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{md.transition-94ac93e1.js → md.transition-43c2874d.js} +3 -3
- package/dist/esm/{notch-controller-d09b6aca.js → notch-controller-fea7f9c5.js} +1 -1
- package/dist/esm/{overlays-fbc5cab5.js → overlays-32ef481d.js} +7 -13
- package/dist/esm/{swipe-back-a8ca7f93.js → swipe-back-a6f386fc.js} +2 -2
- package/dist/esm-es5/{animation-fb0e0f6f.js → animation-dde8cc0d.js} +1 -1
- package/dist/esm-es5/{button-active-ed9d848c.js → button-active-c6ee4f50.js} +1 -1
- package/dist/esm-es5/{capacitor-b0e5fe83.js → capacitor-59395cbd.js} +1 -1
- package/dist/esm-es5/compare-with-utils-a96ff2ea.js +4 -0
- package/dist/esm-es5/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
- package/dist/esm-es5/{haptic-152c4172.js → haptic-554688a5.js} +1 -1
- package/dist/esm-es5/index-0c12c22b.js +4 -0
- package/dist/esm-es5/{index-d8817fb0.js → index-1932b201.js} +1 -1
- package/dist/esm-es5/{index-39782642.js → index-2cf77112.js} +1 -1
- package/dist/esm-es5/{index-ba9976bb.js → index-82eeb47f.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-6539ce13.js +4 -0
- package/dist/esm-es5/input.utils-a5a2d164.js +4 -0
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-internal.entry.js +4 -0
- package/dist/esm-es5/ion-picker-internal.entry.js +4 -0
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-fd16bec1.js → ios.transition-802a84a6.js} +1 -1
- package/dist/esm-es5/{keyboard-c402e885.js → keyboard-52278bd7.js} +1 -1
- package/dist/esm-es5/{keyboard-dbb05fb9.js → keyboard-73175e24.js} +1 -1
- package/dist/esm-es5/{keyboard-controller-5d90929a.js → keyboard-controller-ec5c2bfa.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-43c2874d.js +4 -0
- package/dist/esm-es5/{notch-controller-d09b6aca.js → notch-controller-fea7f9c5.js} +1 -1
- package/dist/esm-es5/overlays-32ef481d.js +4 -0
- package/dist/esm-es5/swipe-back-a6f386fc.js +4 -0
- package/dist/html.html-data.json +15 -153
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-01d14eba.system.entry.js +4 -0
- package/dist/ionic/p-042e6f4b.entry.js +4 -0
- package/dist/ionic/p-05d83227.system.entry.js +4 -0
- package/dist/ionic/{p-32e19bee.system.js → p-0bd51c34.system.js} +1 -1
- package/dist/ionic/p-16756e94.system.entry.js +4 -0
- package/dist/ionic/p-1b19c04b.entry.js +4 -0
- package/dist/ionic/{p-95c26010.system.js → p-1cca10d6.system.js} +1 -1
- package/dist/ionic/p-1e4371bd.js +4 -0
- package/dist/ionic/{p-21c3515a.entry.js → p-251666e2.entry.js} +1 -1
- package/dist/ionic/{p-4e8e09e1.js → p-27281edd.js} +1 -1
- package/dist/ionic/p-28249b10.system.entry.js +4 -0
- package/dist/ionic/p-28a2c2a2.entry.js +4 -0
- package/dist/ionic/p-29d03b3a.js +4 -0
- package/dist/ionic/p-2b7827c7.js +4 -0
- package/dist/ionic/p-2d3b9fa3.system.entry.js +4 -0
- package/dist/ionic/p-2d539df1.entry.js +4 -0
- package/dist/ionic/{p-9c229210.system.entry.js → p-3137c025.system.entry.js} +2 -2
- package/dist/ionic/{p-3e1e14d9.system.js → p-31b2326e.system.js} +1 -1
- package/dist/ionic/{p-30029cc2.system.js → p-31fcb233.system.js} +1 -1
- package/dist/ionic/{p-1d624e03.system.js → p-33a37fad.system.js} +1 -1
- package/dist/ionic/p-35ce400e.system.js +4 -0
- package/dist/ionic/p-36d187af.js +4 -0
- package/dist/ionic/p-376a6063.js +4 -0
- package/dist/ionic/p-38f2c6bb.system.js +4 -0
- package/dist/ionic/p-39c31982.system.entry.js +4 -0
- package/dist/ionic/{p-75445583.js → p-3a75d7fd.js} +1 -1
- package/dist/ionic/{p-1fc72959.entry.js → p-3dd98a73.entry.js} +1 -1
- package/dist/ionic/p-3e6b47e8.system.entry.js +4 -0
- package/dist/ionic/p-3f5179b5.entry.js +4 -0
- package/dist/ionic/p-40f68333.system.js +4 -0
- package/dist/ionic/{p-643a8fae.js → p-42f189f4.js} +1 -1
- package/dist/ionic/p-438e1b8a.entry.js +4 -0
- package/dist/ionic/{p-b752714f.system.entry.js → p-46d400b4.system.entry.js} +1 -1
- package/dist/ionic/p-47b6ba5b.js +4 -0
- package/dist/ionic/{p-5d42b6b4.entry.js → p-4d67d27a.entry.js} +1 -1
- package/dist/ionic/{p-535d2a67.entry.js → p-4f3ae45a.entry.js} +1 -1
- package/dist/ionic/p-517a9885.system.entry.js +4 -0
- package/dist/ionic/p-53ec4f1c.system.js +4 -0
- package/dist/ionic/p-5e4eec2e.entry.js +4 -0
- package/dist/ionic/{p-57477107.system.js → p-5e745192.system.js} +1 -1
- package/dist/ionic/{p-a9a80f5b.entry.js → p-5eda1d7d.entry.js} +1 -1
- package/dist/ionic/{p-e8e86f69.system.entry.js → p-6577aea9.system.entry.js} +1 -1
- package/dist/ionic/p-6a6477b2.js +4 -0
- package/dist/ionic/{p-4890093d.js → p-6de472cb.js} +1 -1
- package/dist/ionic/{p-b4d31b30.system.entry.js → p-6de62649.system.entry.js} +1 -1
- package/dist/ionic/p-72f6ff89.js +4 -0
- package/dist/ionic/p-765f4dde.entry.js +4 -0
- package/dist/ionic/{p-3f6270b3.entry.js → p-78aadecb.entry.js} +1 -1
- package/dist/ionic/p-7d92bf15.system.entry.js +4 -0
- package/dist/ionic/p-7ee0f3f2.entry.js +4 -0
- package/dist/ionic/p-80fa068e.entry.js +4 -0
- package/dist/ionic/p-8314281e.system.js +4 -0
- package/dist/ionic/p-88d5fbd3.js +4 -0
- package/dist/ionic/{p-4911a5d6.entry.js → p-88fde0e0.entry.js} +1 -1
- package/dist/ionic/{p-0e4f2e17.system.js → p-8985cdb6.system.js} +1 -1
- package/dist/ionic/{p-96dbbac1.system.entry.js → p-8acae6b0.system.entry.js} +1 -1
- package/dist/ionic/p-8d69a624.entry.js +4 -0
- package/dist/ionic/p-8de17614.system.entry.js +4 -0
- package/dist/ionic/p-908475e7.system.entry.js +4 -0
- package/dist/ionic/p-91d33c4a.js +4 -0
- package/dist/ionic/p-979d4f5c.system.js +4 -0
- package/dist/ionic/p-9b7f0b0f.entry.js +4 -0
- package/dist/ionic/p-9e447eb1.system.js +4 -0
- package/dist/ionic/{p-f910cc73.system.entry.js → p-9eec42cc.system.entry.js} +1 -1
- package/dist/ionic/p-9f6ee2c0.system.entry.js +4 -0
- package/dist/ionic/{p-77965464.system.entry.js → p-a0bb7b92.system.entry.js} +1 -1
- package/dist/ionic/p-a0d7bb5e.system.js +4 -0
- package/dist/ionic/{p-6d72fb44.entry.js → p-a1987850.entry.js} +1 -1
- package/dist/ionic/p-a3277a67.entry.js +4 -0
- package/dist/ionic/{p-6b7c55cd.entry.js → p-a9978d08.entry.js} +1 -1
- package/dist/ionic/{p-fbf3a689.system.entry.js → p-ada96dd0.system.entry.js} +1 -1
- package/dist/ionic/p-afd6ca9d.entry.js +4 -0
- package/dist/ionic/p-b56d0866.system.entry.js +4 -0
- package/dist/ionic/p-b6f9d32a.entry.js +4 -0
- package/dist/ionic/{p-9b97df10.js → p-bb3615f7.js} +1 -1
- package/dist/ionic/p-c61cc894.js +4 -0
- package/dist/ionic/{p-20d469d0.system.js → p-c7c8429a.system.js} +1 -1
- package/dist/ionic/{p-304383f9.system.js → p-cabad15b.system.js} +1 -1
- package/dist/ionic/p-cce9f61a.system.entry.js +4 -0
- package/dist/ionic/{p-31158892.js → p-cdbeaadc.js} +1 -1
- package/dist/ionic/p-d032f825.system.entry.js +4 -0
- package/dist/ionic/p-d51674c5.system.js +4 -0
- package/dist/ionic/{p-b133e9b4.entry.js → p-ddb30596.entry.js} +1 -1
- package/dist/ionic/{p-98d82c73.system.js → p-ddbb2d5b.system.js} +1 -1
- package/dist/ionic/p-de6f8b28.system.js +4 -0
- package/dist/ionic/p-de756e5c.js +4 -0
- package/dist/ionic/p-dee7c1d0.system.entry.js +4 -0
- package/dist/ionic/p-dfd9432a.entry.js +4 -0
- package/dist/ionic/{p-54dfc9b5.system.js → p-e24ce1e5.system.js} +1 -1
- package/dist/ionic/p-e3584231.system.js +1 -1
- package/dist/ionic/{p-6fd64e7c.system.entry.js → p-e6d68e02.system.entry.js} +1 -1
- package/dist/ionic/p-e94c392d.entry.js +4 -0
- package/dist/ionic/p-f0445d82.system.entry.js +4 -0
- package/dist/ionic/{p-8ededb41.js → p-f5d2dc9b.js} +1 -1
- package/dist/ionic/p-f656e032.system.entry.js +4 -0
- package/dist/ionic/{p-76d3765d.js → p-f70970cf.js} +1 -1
- package/dist/ionic/{p-c18de88a.system.entry.js → p-fba0a6e7.system.entry.js} +1 -1
- package/dist/ionic/p-feae5133.entry.js +4 -0
- package/dist/types/components/backdrop/backdrop.d.ts +3 -0
- package/dist/types/components/checkbox/checkbox.d.ts +1 -0
- package/dist/types/components/datetime/datetime.d.ts +1 -0
- package/dist/types/components/datetime/utils/data.d.ts +2 -2
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +7 -0
- package/dist/types/components/input/input.d.ts +2 -0
- package/dist/types/components/menu/menu.d.ts +1 -1
- package/dist/types/components/picker/picker.d.ts +131 -74
- package/dist/types/components/picker-column/picker-column.d.ts +39 -105
- package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +102 -0
- package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +8 -0
- package/dist/types/components/picker-internal/picker-internal.d.ts +102 -0
- package/dist/types/components/radio/radio.d.ts +1 -0
- package/dist/types/components/radio-group/radio-group-interface.d.ts +1 -0
- package/dist/types/components/radio-group/radio-group.d.ts +8 -1
- package/dist/types/components/range/range.d.ts +1 -0
- package/dist/types/components/router/router.d.ts +2 -1
- package/dist/types/components/select/select.d.ts +6 -1
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +9 -1
- package/dist/types/components/textarea/textarea.d.ts +2 -0
- package/dist/types/components/toast/animations/utils.d.ts +15 -4
- package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +9 -0
- package/dist/types/components/toast/toast-interface.d.ts +2 -0
- package/dist/types/components/toast/toast.d.ts +28 -1
- package/dist/types/components/toggle/toggle.d.ts +1 -0
- package/dist/types/components.d.ts +159 -169
- package/dist/types/interface.d.ts +2 -6
- package/dist/types/jest.d.ts +5 -0
- package/dist/types/utils/animation/animation-interface.d.ts +4 -4
- package/dist/types/utils/browser/index.d.ts +11 -2
- package/dist/types/utils/config.d.ts +2 -2
- package/dist/types/utils/forms/compare-with-utils.d.ts +18 -0
- package/dist/types/utils/forms/index.d.ts +1 -0
- package/dist/types/utils/gesture/gesture-controller.d.ts +0 -1
- package/dist/types/utils/hardware-back-button.d.ts +4 -0
- package/dist/types/utils/overlays.d.ts +3 -5
- package/dist/types/utils/slot-mutation-controller.d.ts +2 -2
- package/hydrate/index.js +1855 -1509
- package/package.json +1 -1
- package/components/ion-picker-column-option.d.ts +0 -11
- package/components/ion-picker-column-option.js +0 -9
- package/components/ion-picker-legacy-column.d.ts +0 -11
- package/components/ion-picker-legacy-column.js +0 -9
- package/components/ion-picker-legacy.js +0 -309
- package/components/picker-column-option.js +0 -122
- package/components/picker-column2.js +0 -379
- package/dist/cjs/index-306a7476.js +0 -32
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +0 -104
- package/dist/collection/components/item/test/text/item.e2e.js +0 -14
- package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +0 -113
- package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +0 -39
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -87
- package/dist/collection/components/picker-column-option/picker-column-option.js +0 -173
- package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +0 -18
- package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +0 -37
- package/dist/collection/components/picker-legacy/picker.ios.css +0 -367
- package/dist/collection/components/picker-legacy/picker.js +0 -817
- package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +0 -25
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -419
- package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +0 -65
- package/dist/esm/index-7a14ecec.js +0 -29
- package/dist/esm/ion-picker-column-option.entry.js +0 -100
- package/dist/esm-es5/index-80492ed3.js +0 -4
- package/dist/esm-es5/input-shims-0a2e541d.js +0 -4
- package/dist/esm-es5/input.utils-2846d430.js +0 -4
- package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
- package/dist/esm-es5/ion-picker-column.entry.js +0 -4
- package/dist/esm-es5/ion-picker.entry.js +0 -4
- package/dist/esm-es5/md.transition-94ac93e1.js +0 -4
- package/dist/esm-es5/overlays-fbc5cab5.js +0 -4
- package/dist/esm-es5/swipe-back-a8ca7f93.js +0 -4
- package/dist/ionic/p-22e5af95.entry.js +0 -4
- package/dist/ionic/p-232d1f22.entry.js +0 -4
- package/dist/ionic/p-23672c82.system.entry.js +0 -4
- package/dist/ionic/p-26798a7b.system.entry.js +0 -4
- package/dist/ionic/p-27bcbbc7.system.entry.js +0 -4
- package/dist/ionic/p-2ab4e925.system.entry.js +0 -4
- package/dist/ionic/p-2d5aeccc.js +0 -4
- package/dist/ionic/p-2d600c25.system.js +0 -4
- package/dist/ionic/p-308e1341.js +0 -4
- package/dist/ionic/p-32303650.system.entry.js +0 -4
- package/dist/ionic/p-34c39c48.entry.js +0 -4
- package/dist/ionic/p-3ba01a9c.system.entry.js +0 -4
- package/dist/ionic/p-3c58a71b.js +0 -4
- package/dist/ionic/p-3fd26bd6.system.entry.js +0 -4
- package/dist/ionic/p-3fe96156.system.js +0 -4
- package/dist/ionic/p-42ba3902.entry.js +0 -4
- package/dist/ionic/p-4a081ea9.entry.js +0 -4
- package/dist/ionic/p-4a31c99f.entry.js +0 -4
- package/dist/ionic/p-4a36430f.system.entry.js +0 -4
- package/dist/ionic/p-51abefb7.system.js +0 -4
- package/dist/ionic/p-563c41f0.system.entry.js +0 -4
- package/dist/ionic/p-5a68960f.entry.js +0 -4
- package/dist/ionic/p-6c37f051.js +0 -4
- package/dist/ionic/p-73190c5f.entry.js +0 -4
- package/dist/ionic/p-73aa7604.entry.js +0 -4
- package/dist/ionic/p-7b725280.entry.js +0 -4
- package/dist/ionic/p-8017aad2.system.entry.js +0 -4
- package/dist/ionic/p-83af3685.system.js +0 -4
- package/dist/ionic/p-846ee227.entry.js +0 -4
- package/dist/ionic/p-856c430d.js +0 -4
- package/dist/ionic/p-8c97cdc0.entry.js +0 -4
- package/dist/ionic/p-8fa6583d.system.js +0 -4
- package/dist/ionic/p-9282b16f.entry.js +0 -4
- package/dist/ionic/p-93000a81.system.entry.js +0 -4
- package/dist/ionic/p-990ffd0e.js +0 -4
- package/dist/ionic/p-9ba90516.system.entry.js +0 -4
- package/dist/ionic/p-a225bf0f.system.entry.js +0 -4
- package/dist/ionic/p-a60a1ce5.js +0 -4
- package/dist/ionic/p-a8baa23e.entry.js +0 -4
- package/dist/ionic/p-a98dc0c1.entry.js +0 -4
- package/dist/ionic/p-a9e3b5be.system.entry.js +0 -4
- package/dist/ionic/p-ab9456e9.system.entry.js +0 -4
- package/dist/ionic/p-afcf4620.entry.js +0 -4
- package/dist/ionic/p-c2910c78.entry.js +0 -4
- package/dist/ionic/p-c8f0a036.entry.js +0 -4
- package/dist/ionic/p-ca8938f4.js +0 -4
- package/dist/ionic/p-ca9d1792.system.entry.js +0 -4
- package/dist/ionic/p-cde52378.system.entry.js +0 -4
- package/dist/ionic/p-d43f1f3d.system.js +0 -4
- package/dist/ionic/p-d662d908.js +0 -4
- package/dist/ionic/p-d9695ad9.system.js +0 -4
- package/dist/ionic/p-da15f571.system.entry.js +0 -4
- package/dist/ionic/p-e4d90573.js +0 -4
- package/dist/ionic/p-f54c72b0.system.js +0 -4
- package/dist/ionic/p-f7a36cd0.system.js +0 -4
- package/dist/ionic/p-f967631d.js +0 -4
- package/dist/ionic/p-fe4dde76.entry.js +0 -4
- package/dist/ionic/p-ffd5dba4.system.entry.js +0 -4
- package/dist/types/components/picker/picker-interfaces.d.ts +0 -8
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -66
- package/dist/types/components/picker-legacy/picker.d.ts +0 -158
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
- /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
- /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
- /package/dist/collection/components/picker/{picker-interfaces.js → picker-interface.js} +0 -0
- /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
- /package/dist/collection/components/{picker-column/picker-column-interfaces.js → picker-column-internal/picker-column-internal-interfaces.js} +0 -0
- /package/dist/collection/components/{picker-legacy/picker-interface.js → picker-internal/picker-internal-interfaces.js} +0 -0
- /package/dist/esm-es5/{data-4b9508c9.js → data-f5c75b4e.js} +0 -0
- /package/dist/esm-es5/{index-7a14ecec.js → index-a5d50daf.js} +0 -0
- /package/dist/ionic/{p-368f5215.js → p-2aea8b1e.js} +0 -0
- /package/dist/ionic/{p-0e94957a.system.js → p-792919fd.system.js} +0 -0
- /package/dist/ionic/{p-b347cfd1.js → p-7b30edcc.js} +0 -0
- /package/dist/ionic/{p-f58981c2.system.js → p-82e3d633.system.js} +0 -0
- /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
- /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
- /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
- /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
- /package/dist/types/components/{picker-column/picker-column-interfaces.d.ts → picker-column-internal/picker-column-internal-interfaces.d.ts} +0 -0
|
@@ -161,7 +161,7 @@ class TimePickerFixture {
|
|
|
161
161
|
await this.page.waitForChanges();
|
|
162
162
|
}
|
|
163
163
|
async expectTime(hour, minute, ampm) {
|
|
164
|
-
const pickerColumns = this.timePicker.locator('ion-picker-column');
|
|
164
|
+
const pickerColumns = this.timePicker.locator('ion-picker-column-internal');
|
|
165
165
|
await expect(pickerColumns.nth(0)).toHaveJSProperty('value', hour);
|
|
166
166
|
await expect(pickerColumns.nth(1)).toHaveJSProperty('value', minute);
|
|
167
167
|
await expect(pickerColumns.nth(2)).toHaveJSProperty('value', ampm);
|
|
@@ -34,7 +34,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
|
|
|
34
34
|
await expect(calendarMonthYear).toHaveText('February 2022');
|
|
35
35
|
await calendarMonthYear.click();
|
|
36
36
|
await page.waitForChanges();
|
|
37
|
-
await page.locator('.month-column
|
|
37
|
+
await page.locator('.month-column .picker-item[data-value="3"]').click();
|
|
38
38
|
await page.waitForChanges();
|
|
39
39
|
await expect(calendarMonthYear).toHaveText('March 2022');
|
|
40
40
|
await expect(ionChange).not.toHaveReceivedEvent();
|
|
@@ -46,14 +46,14 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
|
|
|
46
46
|
const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
|
|
47
47
|
await page.waitForSelector('.datetime-ready');
|
|
48
48
|
const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
|
|
49
|
-
const monthYearButton = page.locator('.calendar-month-year-
|
|
49
|
+
const monthYearButton = page.locator('.calendar-month-year ion-item');
|
|
50
50
|
await expect(calendarMonthYear).toHaveText('February 2022');
|
|
51
51
|
await page.keyboard.press(tabKey);
|
|
52
52
|
await expect(monthYearButton).toBeFocused();
|
|
53
53
|
await page.waitForChanges();
|
|
54
54
|
await page.keyboard.press('Enter');
|
|
55
55
|
await page.waitForChanges();
|
|
56
|
-
const marchPickerItem = page.locator('.month-column
|
|
56
|
+
const marchPickerItem = page.locator('.month-column .picker-item[data-value="3"]');
|
|
57
57
|
await expect(marchPickerItem).toBeVisible();
|
|
58
58
|
});
|
|
59
59
|
test('should view next month via next button', async ({ page }) => {
|
|
@@ -75,7 +75,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
|
|
|
75
75
|
`, config);
|
|
76
76
|
const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
|
|
77
77
|
const datetime = page.locator('ion-datetime');
|
|
78
|
-
const monthYearButton = page.locator('.calendar-month-year-
|
|
78
|
+
const monthYearButton = page.locator('.calendar-month-year ion-item');
|
|
79
79
|
const prevButton = page.locator('.calendar-next-prev ion-button:nth-child(1)');
|
|
80
80
|
const nextButton = page.locator('.calendar-next-prev ion-button:nth-child(2)');
|
|
81
81
|
const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
|
|
@@ -22,28 +22,28 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
22
22
|
await page.setContent(`
|
|
23
23
|
<ion-datetime locale="en-US" presentation="month-year" month-values="5,6,10"></ion-datetime>
|
|
24
24
|
`, config);
|
|
25
|
-
const items = page.locator('.month-column
|
|
25
|
+
const items = page.locator('.month-column .picker-item:not(.picker-item-empty)');
|
|
26
26
|
await expect(items).toHaveText(['May', 'June', 'October']);
|
|
27
27
|
});
|
|
28
28
|
test('should render correct years', async ({ page }) => {
|
|
29
29
|
await page.setContent(`
|
|
30
30
|
<ion-datetime locale="en-US" presentation="month-year" year-values="2022,2021,2020"></ion-datetime>
|
|
31
31
|
`, config);
|
|
32
|
-
const items = page.locator('.year-column
|
|
32
|
+
const items = page.locator('.year-column .picker-item:not(.picker-item-empty)');
|
|
33
33
|
await expect(items).toHaveText(['2022', '2021', '2020']);
|
|
34
34
|
});
|
|
35
35
|
test('should render correct hours', async ({ page }) => {
|
|
36
36
|
await page.setContent(`
|
|
37
37
|
<ion-datetime locale="en-US" presentation="time" hour-values="1,2,3"></ion-datetime>
|
|
38
38
|
`, config);
|
|
39
|
-
const items = page.locator('ion-picker-column:first-of-type
|
|
39
|
+
const items = page.locator('ion-picker-column-internal:first-of-type .picker-item:not(.picker-item-empty)');
|
|
40
40
|
await expect(items).toHaveText(['1', '2', '3']);
|
|
41
41
|
});
|
|
42
42
|
test('should render correct minutes', async ({ page }) => {
|
|
43
43
|
await page.setContent(`
|
|
44
44
|
<ion-datetime locale="en-US" presentation="time" minute-values="1,2,3"></ion-datetime>
|
|
45
45
|
`, config);
|
|
46
|
-
const items = page.locator('ion-picker-column:nth-of-type(2)
|
|
46
|
+
const items = page.locator('ion-picker-column-internal:nth-of-type(2) .picker-item:not(.picker-item-empty)');
|
|
47
47
|
await expect(items).toHaveText(['01', '02', '03']);
|
|
48
48
|
});
|
|
49
49
|
test('should adjust default parts for allowed hour and minute values', async ({ page }) => {
|
|
@@ -69,22 +69,19 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
69
69
|
</script>
|
|
70
70
|
`, config);
|
|
71
71
|
await page.waitForSelector('.datetime-ready');
|
|
72
|
-
const
|
|
73
|
-
const minuteItems = minuteColumn.locator('ion-picker-column-option');
|
|
72
|
+
const minuteItems = page.locator('ion-picker-column-internal:nth-of-type(2) .picker-item:not(.picker-item-empty)');
|
|
74
73
|
await expect(minuteItems).toHaveText(['00', '15', '30', '45']);
|
|
75
|
-
await expect(
|
|
76
|
-
const
|
|
77
|
-
const hourItems = hourColumn.locator('ion-picker-column-option');
|
|
74
|
+
await expect(minuteItems.nth(1)).toHaveClass(/picker-item-active/);
|
|
75
|
+
const hourItems = page.locator('ion-picker-column-internal:nth-of-type(1) .picker-item:not(.picker-item-empty)');
|
|
78
76
|
await expect(hourItems).toHaveText(['2']);
|
|
79
|
-
await expect(
|
|
77
|
+
await expect(hourItems.nth(0)).toHaveClass(/picker-item-active/);
|
|
80
78
|
/**
|
|
81
79
|
* Since the allowed hour is 2AM, the time period
|
|
82
80
|
* should switch from PM to AM.
|
|
83
81
|
*/
|
|
84
|
-
const
|
|
85
|
-
const ampmItems = ampmColumn.locator('ion-picker-column-option');
|
|
82
|
+
const ampmItems = page.locator('ion-picker-column-internal:nth-of-type(3) .picker-item:not(.picker-item-empty)');
|
|
86
83
|
await expect(ampmItems).toHaveText(['AM', 'PM']);
|
|
87
|
-
await expect(
|
|
84
|
+
await expect(ampmItems.nth(0)).toHaveClass(/picker-item-active/);
|
|
88
85
|
});
|
|
89
86
|
test('should adjust default parts month for allowed month values', async ({ page }) => {
|
|
90
87
|
/**
|
|
@@ -109,9 +106,9 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
109
106
|
</script>
|
|
110
107
|
`, config);
|
|
111
108
|
await page.waitForSelector('.datetime-ready');
|
|
112
|
-
const monthItems = page.locator('.month-column
|
|
109
|
+
const monthItems = page.locator('.month-column .picker-item:not(.picker-item-empty)');
|
|
113
110
|
await expect(monthItems).toHaveText(['January']);
|
|
114
|
-
await expect(monthItems.nth(0)).toHaveClass(/
|
|
111
|
+
await expect(monthItems.nth(0)).toHaveClass(/picker-item-active/);
|
|
115
112
|
});
|
|
116
113
|
test('today date highlight should persist even if disallowed from dayValues', async ({ page }) => {
|
|
117
114
|
/**
|
|
@@ -323,7 +323,7 @@ export const getMonthColumnData = (locale, refParts, minParts, maxParts, monthVa
|
|
|
323
323
|
* @param minParts The minimum bound on the date that can be returned
|
|
324
324
|
* @param maxParts The maximum bound on the date that can be returned
|
|
325
325
|
* @param dayValues The allowed date values
|
|
326
|
-
* @returns Date data to be used in ion-picker-column
|
|
326
|
+
* @returns Date data to be used in ion-picker-column-internal
|
|
327
327
|
*/
|
|
328
328
|
export const getDayColumnData = (locale, refParts, minParts, maxParts, dayValues, formatOptions = {
|
|
329
329
|
day: 'numeric',
|
|
@@ -8,6 +8,13 @@ export class InfiniteScroll {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
this.thrPx = 0;
|
|
10
10
|
this.thrPc = 0;
|
|
11
|
+
/**
|
|
12
|
+
* didFire exists so that ionInfinite
|
|
13
|
+
* does not fire multiple times if
|
|
14
|
+
* users continue to scroll after
|
|
15
|
+
* scrolling into the infinite
|
|
16
|
+
* scroll threshold.
|
|
17
|
+
*/
|
|
11
18
|
this.didFire = false;
|
|
12
19
|
this.isBusy = false;
|
|
13
20
|
this.onScroll = () => {
|
|
@@ -35,9 +42,6 @@ export class InfiniteScroll {
|
|
|
35
42
|
return 3;
|
|
36
43
|
}
|
|
37
44
|
}
|
|
38
|
-
else {
|
|
39
|
-
this.didFire = false;
|
|
40
|
-
}
|
|
41
45
|
return 4;
|
|
42
46
|
};
|
|
43
47
|
this.isLoading = false;
|
|
@@ -137,11 +141,15 @@ export class InfiniteScroll {
|
|
|
137
141
|
writeTask(() => {
|
|
138
142
|
scrollEl.scrollTop = newScrollTop;
|
|
139
143
|
this.isBusy = false;
|
|
144
|
+
this.didFire = false;
|
|
140
145
|
});
|
|
141
146
|
});
|
|
142
147
|
});
|
|
143
148
|
});
|
|
144
149
|
}
|
|
150
|
+
else {
|
|
151
|
+
this.didFire = false;
|
|
152
|
+
}
|
|
145
153
|
}
|
|
146
154
|
canStart() {
|
|
147
155
|
return !this.disabled && !this.isBusy && !!this.scrollEl && !this.isLoading;
|
package/dist/collection/components/infinite-scroll/test/small-dom-update/infinite-scroll.e2e.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { expect } from "@playwright/test";
|
|
5
|
+
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
|
+
configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
7
|
+
test.describe(title('infinite-scroll: appending small amounts to dom'), () => {
|
|
8
|
+
test('should load more after remaining in threshold', async ({ page }) => {
|
|
9
|
+
await page.goto('/src/components/infinite-scroll/test/small-dom-update', config);
|
|
10
|
+
const ionInfiniteComplete = await page.spyOnEvent('ionInfiniteComplete');
|
|
11
|
+
const content = page.locator('ion-content');
|
|
12
|
+
const items = page.locator('#list .item');
|
|
13
|
+
expect(await items.count()).toBe(30);
|
|
14
|
+
await content.evaluate((el) => el.scrollToBottom(0));
|
|
15
|
+
await ionInfiniteComplete.next();
|
|
16
|
+
/**
|
|
17
|
+
* Even after appending we'll still be within
|
|
18
|
+
* the infinite scroll's threshold
|
|
19
|
+
*/
|
|
20
|
+
expect(await items.count()).toBe(33);
|
|
21
|
+
await content.evaluate((el) => el.scrollToBottom(0));
|
|
22
|
+
await ionInfiniteComplete.next();
|
|
23
|
+
/**
|
|
24
|
+
* Scrolling down again without leaving
|
|
25
|
+
* the threshold should still trigger
|
|
26
|
+
* infinite scroll again.
|
|
27
|
+
*/
|
|
28
|
+
expect(await items.count()).toBe(36);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
});
|
|
@@ -350,6 +350,7 @@
|
|
|
350
350
|
display: flex;
|
|
351
351
|
position: relative;
|
|
352
352
|
flex-grow: 1;
|
|
353
|
+
align-items: center;
|
|
353
354
|
width: 100%;
|
|
354
355
|
}
|
|
355
356
|
|
|
@@ -654,9 +655,7 @@
|
|
|
654
655
|
/**
|
|
655
656
|
* This makes the label sit above the input.
|
|
656
657
|
*/
|
|
657
|
-
:host(.
|
|
658
|
-
:host(.has-focus.input-label-placement-floating) .label-text-wrapper,
|
|
659
|
-
:host(.has-value.input-label-placement-floating) .label-text-wrapper {
|
|
658
|
+
:host(.label-floating) .label-text-wrapper {
|
|
660
659
|
transform: translateY(50%) scale(0.75);
|
|
661
660
|
/**
|
|
662
661
|
* Label text should not extend
|
|
@@ -665,6 +664,14 @@
|
|
|
665
664
|
max-width: calc(100% / 0.75);
|
|
666
665
|
}
|
|
667
666
|
|
|
667
|
+
::slotted([slot=start]) {
|
|
668
|
+
margin-inline-end: 16px;
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
::slotted([slot=end]) {
|
|
672
|
+
margin-inline-start: 16px;
|
|
673
|
+
}
|
|
674
|
+
|
|
668
675
|
/**
|
|
669
676
|
* Convert a font size to a dynamic font size.
|
|
670
677
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -14,6 +14,8 @@ import { getCounterText } from "./input.utils";
|
|
|
14
14
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
15
15
|
*
|
|
16
16
|
* @slot label - The label text to associate with the input. Use the `labelPlacement` property to control where the label is placed relative to the input. Use this if you need to render a label with custom HTML. (EXPERIMENTAL)
|
|
17
|
+
* @slot start - Content to display at the leading edge of the input. (EXPERIMENTAL)
|
|
18
|
+
* @slot end - Content to display at the trailing edge of the input. (EXPERIMENTAL)
|
|
17
19
|
*/
|
|
18
20
|
export class Input {
|
|
19
21
|
constructor() {
|
|
@@ -157,7 +159,7 @@ export class Input {
|
|
|
157
159
|
connectedCallback() {
|
|
158
160
|
const { el } = this;
|
|
159
161
|
this.legacyFormController = createLegacyFormController(el);
|
|
160
|
-
this.slotMutationController = createSlotMutationController(el, 'label', () => forceUpdate(this));
|
|
162
|
+
this.slotMutationController = createSlotMutationController(el, ['label', 'start', 'end'], () => forceUpdate(this));
|
|
161
163
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
162
164
|
this.emitStyle();
|
|
163
165
|
this.debounceChanged();
|
|
@@ -258,6 +260,8 @@ export class Input {
|
|
|
258
260
|
'has-value': this.hasValue(),
|
|
259
261
|
'has-focus': this.hasFocus,
|
|
260
262
|
'interactive-disabled': this.disabled,
|
|
263
|
+
// TODO(FW-2764): remove this
|
|
264
|
+
legacy: !!this.legacy,
|
|
261
265
|
});
|
|
262
266
|
}
|
|
263
267
|
}
|
|
@@ -363,29 +367,50 @@ export class Input {
|
|
|
363
367
|
return this.renderLabel();
|
|
364
368
|
}
|
|
365
369
|
renderInput() {
|
|
366
|
-
const { disabled, fill, readonly, shape, inputId, labelPlacement } = this;
|
|
370
|
+
const { disabled, fill, readonly, shape, inputId, labelPlacement, el, hasFocus } = this;
|
|
367
371
|
const mode = getIonMode(this);
|
|
368
372
|
const value = this.getValue();
|
|
369
373
|
const inItem = hostContext('ion-item', this.el);
|
|
370
374
|
const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
|
|
375
|
+
const hasValue = this.hasValue();
|
|
376
|
+
const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
|
|
377
|
+
/**
|
|
378
|
+
* If the label is stacked, it should always sit above the input.
|
|
379
|
+
* For floating labels, the label should move above the input if
|
|
380
|
+
* the input has a value, is focused, or has anything in either
|
|
381
|
+
* the start or end slot.
|
|
382
|
+
*
|
|
383
|
+
* If there is content in the start slot, the label would overlap
|
|
384
|
+
* it if not forced to float. This is also applied to the end slot
|
|
385
|
+
* because with the default or solid fills, the input is not
|
|
386
|
+
* vertically centered in the container, but the label is. This
|
|
387
|
+
* causes the slots and label to appear vertically offset from each
|
|
388
|
+
* other when the label isn't floating above the input. This doesn't
|
|
389
|
+
* apply to the outline fill, but this was not accounted for to keep
|
|
390
|
+
* things consistent.
|
|
391
|
+
*
|
|
392
|
+
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
393
|
+
*/
|
|
394
|
+
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
371
395
|
return (h(Host, { class: createColorClasses(this.color, {
|
|
372
396
|
[mode]: true,
|
|
373
|
-
'has-value':
|
|
374
|
-
'has-focus':
|
|
397
|
+
'has-value': hasValue,
|
|
398
|
+
'has-focus': hasFocus,
|
|
399
|
+
'label-floating': labelShouldFloat,
|
|
375
400
|
[`input-fill-${fill}`]: fill !== undefined,
|
|
376
401
|
[`input-shape-${shape}`]: shape !== undefined,
|
|
377
402
|
[`input-label-placement-${labelPlacement}`]: true,
|
|
378
403
|
'in-item': inItem,
|
|
379
404
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
380
405
|
'input-disabled': disabled,
|
|
381
|
-
}) }, h("label", { class: "input-wrapper" }, this.renderLabelContainer(), h("div", { class: "native-wrapper" }, h("input", Object.assign({ class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (h("button", { "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
406
|
+
}) }, h("label", { class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), h("div", { class: "native-wrapper" }, h("slot", { name: "start" }), h("input", Object.assign({ class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (h("button", { "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
382
407
|
/**
|
|
383
408
|
* This prevents mobile browsers from
|
|
384
409
|
* blurring the input when the clear
|
|
385
410
|
* button is activated.
|
|
386
411
|
*/
|
|
387
412
|
ev.preventDefault();
|
|
388
|
-
}, onClick: this.clearTextInput }, h("ion-icon", { "aria-hidden": "true", icon: mode === 'ios' ? closeCircle : closeSharp })))), shouldRenderHighlight && h("div", { class: "input-highlight" })), this.renderBottomContent()));
|
|
413
|
+
}, onClick: this.clearTextInput }, h("ion-icon", { "aria-hidden": "true", icon: mode === 'ios' ? closeCircle : closeSharp }))), h("slot", { name: "end" })), shouldRenderHighlight && h("div", { class: "input-highlight" })), this.renderBottomContent()));
|
|
389
414
|
}
|
|
390
415
|
// TODO FW-2764 Remove this
|
|
391
416
|
renderLegacyInput() {
|
|
@@ -350,6 +350,7 @@
|
|
|
350
350
|
display: flex;
|
|
351
351
|
position: relative;
|
|
352
352
|
flex-grow: 1;
|
|
353
|
+
align-items: center;
|
|
353
354
|
width: 100%;
|
|
354
355
|
}
|
|
355
356
|
|
|
@@ -654,9 +655,7 @@
|
|
|
654
655
|
/**
|
|
655
656
|
* This makes the label sit above the input.
|
|
656
657
|
*/
|
|
657
|
-
:host(.
|
|
658
|
-
:host(.has-focus.input-label-placement-floating) .label-text-wrapper,
|
|
659
|
-
:host(.has-value.input-label-placement-floating) .label-text-wrapper {
|
|
658
|
+
:host(.label-floating) .label-text-wrapper {
|
|
660
659
|
transform: translateY(50%) scale(0.75);
|
|
661
660
|
/**
|
|
662
661
|
* Label text should not extend
|
|
@@ -665,6 +664,14 @@
|
|
|
665
664
|
max-width: calc(100% / 0.75);
|
|
666
665
|
}
|
|
667
666
|
|
|
667
|
+
::slotted([slot=start]) {
|
|
668
|
+
margin-inline-end: 16px;
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
::slotted([slot=end]) {
|
|
672
|
+
margin-inline-start: 16px;
|
|
673
|
+
}
|
|
674
|
+
|
|
668
675
|
/**
|
|
669
676
|
* Convert a font size to a dynamic font size.
|
|
670
677
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -907,9 +914,7 @@
|
|
|
907
914
|
}
|
|
908
915
|
}
|
|
909
916
|
|
|
910
|
-
:host(.input-fill-solid.input-label-placement-
|
|
911
|
-
:host(.has-focus.input-fill-solid.input-label-placement-floating) .label-text-wrapper,
|
|
912
|
-
:host(.has-value.input-fill-solid.input-label-placement-floating) .label-text-wrapper {
|
|
917
|
+
:host(.label-floating.input-fill-solid.input-label-placement-floating) .label-text-wrapper {
|
|
913
918
|
/**
|
|
914
919
|
* Label text should not extend
|
|
915
920
|
* beyond the bounds of the input.
|
|
@@ -1063,9 +1068,7 @@
|
|
|
1063
1068
|
/**
|
|
1064
1069
|
* This makes the label sit above the input.
|
|
1065
1070
|
*/
|
|
1066
|
-
:host(.
|
|
1067
|
-
:host(.has-value.input-fill-outline.input-label-placement-floating) .label-text-wrapper,
|
|
1068
|
-
:host(.input-fill-outline.input-label-placement-stacked) .label-text-wrapper {
|
|
1071
|
+
:host(.label-floating.input-fill-outline) .label-text-wrapper {
|
|
1069
1072
|
transform: translateY(-32%) scale(0.75);
|
|
1070
1073
|
margin-left: 0;
|
|
1071
1074
|
margin-right: 0;
|
|
@@ -1226,9 +1229,7 @@
|
|
|
1226
1229
|
* the floating/stacked label. We simulate this "cut out"
|
|
1227
1230
|
* by removing the top border from the notch fragment.
|
|
1228
1231
|
*/
|
|
1229
|
-
:host(.
|
|
1230
|
-
:host(.has-value.input-fill-outline.input-label-placement-floating) .input-outline-notch,
|
|
1231
|
-
:host(.input-fill-outline.input-label-placement-stacked) .input-outline-notch {
|
|
1232
|
+
:host(.label-floating.input-fill-outline) .input-outline-notch {
|
|
1232
1233
|
border-top: none;
|
|
1233
1234
|
}
|
|
1234
1235
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { expect } from "@playwright/test";
|
|
5
|
+
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
|
+
configs().forEach(({ title, screenshot, config }) => {
|
|
7
|
+
test.describe(title('input: start and end slots (visual checks)'), () => {
|
|
8
|
+
test('should not have visual regressions with a start-positioned label', async ({ page }) => {
|
|
9
|
+
await page.setContent(`
|
|
10
|
+
<ion-input label-placement="start" fill="solid" value="100" label="Weight" clear-input="true">
|
|
11
|
+
<ion-icon slot="start" name="barbell" aria-hidden="true"></ion-icon>
|
|
12
|
+
<ion-label slot="end">lbs</ion-label>
|
|
13
|
+
</ion-input>
|
|
14
|
+
`, config);
|
|
15
|
+
const input = page.locator('ion-input');
|
|
16
|
+
await expect(input).toHaveScreenshot(screenshot(`input-slots-label-start`));
|
|
17
|
+
});
|
|
18
|
+
test('should not have visual regressions with a floating label', async ({ page }) => {
|
|
19
|
+
await page.setContent(`
|
|
20
|
+
<ion-input label-placement="floating" fill="solid" value="100" label="Weight" clear-input="true">
|
|
21
|
+
<ion-icon slot="start" name="barbell" aria-hidden="true"></ion-icon>
|
|
22
|
+
<ion-label slot="end">lbs</ion-label>
|
|
23
|
+
</ion-input>
|
|
24
|
+
`, config);
|
|
25
|
+
const input = page.locator('ion-input');
|
|
26
|
+
await expect(input).toHaveScreenshot(screenshot(`input-slots-label-floating`));
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
31
|
+
test.describe(title('input: start and end slots (functionality checks)'), () => {
|
|
32
|
+
test('should raise floating label when there is content in the start slot', async ({ page }) => {
|
|
33
|
+
await page.setContent(`
|
|
34
|
+
<ion-input label-placement="floating" fill="solid" label="Weight">
|
|
35
|
+
<ion-icon slot="start" name="barbell" aria-hidden="true"></ion-icon>
|
|
36
|
+
</ion-input>
|
|
37
|
+
`, config);
|
|
38
|
+
const input = page.locator('ion-input');
|
|
39
|
+
await expect(input).toHaveClass(/label-floating/);
|
|
40
|
+
});
|
|
41
|
+
test('should raise floating label when there is content in the end slot', async ({ page }) => {
|
|
42
|
+
await page.setContent(`
|
|
43
|
+
<ion-input label-placement="floating" fill="solid" label="Weight">
|
|
44
|
+
<ion-icon slot="end" name="barbell" aria-hidden="true"></ion-icon>
|
|
45
|
+
</ion-input>
|
|
46
|
+
`, config);
|
|
47
|
+
const input = page.locator('ion-input');
|
|
48
|
+
await expect(input).toHaveClass(/label-floating/);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|
|
@@ -100,6 +100,14 @@
|
|
|
100
100
|
* @prop --highlight-color-valid: The color of the highlight on the item when valid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
101
101
|
* @prop --highlight-color-invalid: The color of the highlight on the item when invalid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
102
102
|
*/
|
|
103
|
+
/**
|
|
104
|
+
* We change the minimum width as the
|
|
105
|
+
* font size changes. Using a fixed minimum
|
|
106
|
+
* width means that fewer and fewer characters
|
|
107
|
+
* can be displayed in the same space as the
|
|
108
|
+
* text grows.
|
|
109
|
+
*/
|
|
110
|
+
--inner-min-width: 4rem;
|
|
103
111
|
--border-radius: 0px;
|
|
104
112
|
--border-width: 0px;
|
|
105
113
|
--border-style: solid;
|
|
@@ -230,6 +238,7 @@
|
|
|
230
238
|
/* stylelint-enable */
|
|
231
239
|
display: flex;
|
|
232
240
|
position: relative;
|
|
241
|
+
flex-wrap: wrap;
|
|
233
242
|
align-items: inherit;
|
|
234
243
|
justify-content: inherit;
|
|
235
244
|
width: 100%;
|
|
@@ -241,8 +250,8 @@
|
|
|
241
250
|
outline: none;
|
|
242
251
|
background: var(--background);
|
|
243
252
|
overflow: inherit;
|
|
244
|
-
box-sizing: border-box;
|
|
245
253
|
z-index: 1;
|
|
254
|
+
box-sizing: border-box;
|
|
246
255
|
}
|
|
247
256
|
:host-context([dir=rtl]) .item-native {
|
|
248
257
|
padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
|
|
@@ -261,6 +270,10 @@
|
|
|
261
270
|
}
|
|
262
271
|
}
|
|
263
272
|
|
|
273
|
+
:host(.item-legacy) .item-native {
|
|
274
|
+
flex-wrap: unset;
|
|
275
|
+
}
|
|
276
|
+
|
|
264
277
|
.item-native::-moz-focus-inner {
|
|
265
278
|
border: 0;
|
|
266
279
|
}
|
|
@@ -296,10 +309,20 @@ button, a {
|
|
|
296
309
|
/* stylelint-enable */
|
|
297
310
|
display: flex;
|
|
298
311
|
position: relative;
|
|
299
|
-
flex: 1;
|
|
312
|
+
flex: 1 0 0;
|
|
300
313
|
flex-direction: inherit;
|
|
314
|
+
flex-wrap: wrap;
|
|
301
315
|
align-items: inherit;
|
|
302
316
|
align-self: stretch;
|
|
317
|
+
/**
|
|
318
|
+
* The min-width defines when the
|
|
319
|
+
* content in the default slot should
|
|
320
|
+
* stop wrapping/truncating within its own
|
|
321
|
+
* container. At this point the entire
|
|
322
|
+
* container will wrap to the next line.
|
|
323
|
+
*/
|
|
324
|
+
min-width: var(--inner-min-width);
|
|
325
|
+
max-width: 100%;
|
|
303
326
|
min-height: inherit;
|
|
304
327
|
border-width: var(--inner-border-width);
|
|
305
328
|
border-style: var(--border-style);
|
|
@@ -325,6 +348,12 @@ button, a {
|
|
|
325
348
|
}
|
|
326
349
|
}
|
|
327
350
|
|
|
351
|
+
:host(.item-legacy) .item-inner {
|
|
352
|
+
flex: 1;
|
|
353
|
+
flex-wrap: unset;
|
|
354
|
+
max-width: unset;
|
|
355
|
+
}
|
|
356
|
+
|
|
328
357
|
.item-bottom {
|
|
329
358
|
margin-left: 0;
|
|
330
359
|
margin-right: 0;
|
|
@@ -388,6 +417,7 @@ button, a {
|
|
|
388
417
|
|
|
389
418
|
::slotted(ion-label:not([slot=end])) {
|
|
390
419
|
flex: 1;
|
|
420
|
+
width: min-content;
|
|
391
421
|
}
|
|
392
422
|
|
|
393
423
|
:host(.item-input) {
|
|
@@ -396,15 +426,23 @@ button, a {
|
|
|
396
426
|
|
|
397
427
|
.input-wrapper {
|
|
398
428
|
display: flex;
|
|
399
|
-
flex: 1;
|
|
429
|
+
flex: 1 0 auto;
|
|
400
430
|
flex-direction: inherit;
|
|
431
|
+
flex-wrap: wrap;
|
|
401
432
|
align-items: inherit;
|
|
402
433
|
align-self: stretch;
|
|
434
|
+
max-width: 100%;
|
|
403
435
|
text-overflow: ellipsis;
|
|
404
436
|
overflow: inherit;
|
|
405
437
|
box-sizing: border-box;
|
|
406
438
|
}
|
|
407
439
|
|
|
440
|
+
:host(.item-legacy) .input-wrapper {
|
|
441
|
+
flex: 1;
|
|
442
|
+
flex-wrap: unset;
|
|
443
|
+
max-width: unset;
|
|
444
|
+
}
|
|
445
|
+
|
|
408
446
|
:host(.item-label-stacked),
|
|
409
447
|
:host(.item-label-floating) {
|
|
410
448
|
align-items: start;
|
|
@@ -100,6 +100,14 @@
|
|
|
100
100
|
* @prop --highlight-color-valid: The color of the highlight on the item when valid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
101
101
|
* @prop --highlight-color-invalid: The color of the highlight on the item when invalid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
102
102
|
*/
|
|
103
|
+
/**
|
|
104
|
+
* We change the minimum width as the
|
|
105
|
+
* font size changes. Using a fixed minimum
|
|
106
|
+
* width means that fewer and fewer characters
|
|
107
|
+
* can be displayed in the same space as the
|
|
108
|
+
* text grows.
|
|
109
|
+
*/
|
|
110
|
+
--inner-min-width: 4rem;
|
|
103
111
|
--border-radius: 0px;
|
|
104
112
|
--border-width: 0px;
|
|
105
113
|
--border-style: solid;
|
|
@@ -230,6 +238,7 @@
|
|
|
230
238
|
/* stylelint-enable */
|
|
231
239
|
display: flex;
|
|
232
240
|
position: relative;
|
|
241
|
+
flex-wrap: wrap;
|
|
233
242
|
align-items: inherit;
|
|
234
243
|
justify-content: inherit;
|
|
235
244
|
width: 100%;
|
|
@@ -241,8 +250,8 @@
|
|
|
241
250
|
outline: none;
|
|
242
251
|
background: var(--background);
|
|
243
252
|
overflow: inherit;
|
|
244
|
-
box-sizing: border-box;
|
|
245
253
|
z-index: 1;
|
|
254
|
+
box-sizing: border-box;
|
|
246
255
|
}
|
|
247
256
|
:host-context([dir=rtl]) .item-native {
|
|
248
257
|
padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
|
|
@@ -261,6 +270,10 @@
|
|
|
261
270
|
}
|
|
262
271
|
}
|
|
263
272
|
|
|
273
|
+
:host(.item-legacy) .item-native {
|
|
274
|
+
flex-wrap: unset;
|
|
275
|
+
}
|
|
276
|
+
|
|
264
277
|
.item-native::-moz-focus-inner {
|
|
265
278
|
border: 0;
|
|
266
279
|
}
|
|
@@ -296,10 +309,20 @@ button, a {
|
|
|
296
309
|
/* stylelint-enable */
|
|
297
310
|
display: flex;
|
|
298
311
|
position: relative;
|
|
299
|
-
flex: 1;
|
|
312
|
+
flex: 1 0 0;
|
|
300
313
|
flex-direction: inherit;
|
|
314
|
+
flex-wrap: wrap;
|
|
301
315
|
align-items: inherit;
|
|
302
316
|
align-self: stretch;
|
|
317
|
+
/**
|
|
318
|
+
* The min-width defines when the
|
|
319
|
+
* content in the default slot should
|
|
320
|
+
* stop wrapping/truncating within its own
|
|
321
|
+
* container. At this point the entire
|
|
322
|
+
* container will wrap to the next line.
|
|
323
|
+
*/
|
|
324
|
+
min-width: var(--inner-min-width);
|
|
325
|
+
max-width: 100%;
|
|
303
326
|
min-height: inherit;
|
|
304
327
|
border-width: var(--inner-border-width);
|
|
305
328
|
border-style: var(--border-style);
|
|
@@ -325,6 +348,12 @@ button, a {
|
|
|
325
348
|
}
|
|
326
349
|
}
|
|
327
350
|
|
|
351
|
+
:host(.item-legacy) .item-inner {
|
|
352
|
+
flex: 1;
|
|
353
|
+
flex-wrap: unset;
|
|
354
|
+
max-width: unset;
|
|
355
|
+
}
|
|
356
|
+
|
|
328
357
|
.item-bottom {
|
|
329
358
|
margin-left: 0;
|
|
330
359
|
margin-right: 0;
|
|
@@ -388,6 +417,7 @@ button, a {
|
|
|
388
417
|
|
|
389
418
|
::slotted(ion-label:not([slot=end])) {
|
|
390
419
|
flex: 1;
|
|
420
|
+
width: min-content;
|
|
391
421
|
}
|
|
392
422
|
|
|
393
423
|
:host(.item-input) {
|
|
@@ -396,15 +426,23 @@ button, a {
|
|
|
396
426
|
|
|
397
427
|
.input-wrapper {
|
|
398
428
|
display: flex;
|
|
399
|
-
flex: 1;
|
|
429
|
+
flex: 1 0 auto;
|
|
400
430
|
flex-direction: inherit;
|
|
431
|
+
flex-wrap: wrap;
|
|
401
432
|
align-items: inherit;
|
|
402
433
|
align-self: stretch;
|
|
434
|
+
max-width: 100%;
|
|
403
435
|
text-overflow: ellipsis;
|
|
404
436
|
overflow: inherit;
|
|
405
437
|
box-sizing: border-box;
|
|
406
438
|
}
|
|
407
439
|
|
|
440
|
+
:host(.item-legacy) .input-wrapper {
|
|
441
|
+
flex: 1;
|
|
442
|
+
flex-wrap: unset;
|
|
443
|
+
max-width: unset;
|
|
444
|
+
}
|
|
445
|
+
|
|
408
446
|
:host(.item-label-stacked),
|
|
409
447
|
:host(.item-label-floating) {
|
|
410
448
|
align-items: start;
|