@ionic/core 8.4.4-dev.11741294920.1c3e822a → 8.4.4-dev.11741357957.1558bd4c
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/alert.js +4 -30
- package/components/checkbox.js +6 -4
- package/components/helpers.js +1 -7
- package/components/index6.js +11 -3
- package/components/index9.js +1 -1
- package/components/ion-input.js +2 -2
- package/components/ion-range.js +1 -5
- package/components/ion-router.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-select.js +6 -4
- package/components/ion-textarea.js +2 -2
- package/components/ion-toggle.js +6 -4
- package/components/ionic-global.js +1 -2
- package/components/modal.js +259 -35
- package/components/radio.js +37 -5
- package/components/toolbar.js +2 -2
- package/css/core.css.map +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/dist/cjs/{app-globals-4283fe37.js → app-globals-21afee77.js} +1 -1
- package/dist/cjs/{data-21dc0f81.js → data-108e531d.js} +1 -1
- package/dist/cjs/{framework-delegate-c4f2ba04.js → framework-delegate-05579976.js} +1 -1
- package/dist/cjs/{hardware-back-button-f2cbbdce.js → hardware-back-button-9e8a2c4f.js} +1 -1
- package/dist/cjs/{helpers-b14a0f09.js → helpers-4be3f90d.js} +0 -7
- package/dist/cjs/{index-1248dbd7.js → index-0ff61d0b.js} +4 -4
- package/dist/cjs/{index-4e37257d.js → index-26bb7e42.js} +5 -5
- package/dist/cjs/{index-5915f9b3.js → index-2a46a047.js} +11 -3
- package/dist/cjs/{index-a4a74252.js → index-6770fc00.js} +2 -2
- package/dist/cjs/{index-786364c7.js → index-ad7a712e.js} +1 -1
- package/dist/cjs/index.cjs.js +10 -10
- package/dist/cjs/{input-shims-b4c0eee7.js → input-shims-fd997b01.js} +5 -3
- package/dist/cjs/{input.utils-4af208ab.js → input.utils-c15a1814.js} +2 -2
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
- package/dist/cjs/ion-alert.cjs.entry.js +10 -36
- package/dist/cjs/ion-app_8.cjs.entry.js +14 -14
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +7 -6
- package/dist/cjs/ion-chip.cjs.entry.js +1 -1
- package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
- package/dist/cjs/ion-datetime_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-img.cjs.entry.js +2 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +7 -7
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-loading.cjs.entry.js +6 -6
- package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-modal.cjs.entry.js +266 -43
- package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-column.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +7 -7
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +37 -7
- package/dist/cjs/ion-range.cjs.entry.js +4 -8
- package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-select-modal.cjs.entry.js +6 -6
- package/dist/cjs/ion-select_3.cjs.entry.js +12 -11
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +1 -1
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-text.cjs.entry.js +1 -1
- package/dist/cjs/ion-textarea.cjs.entry.js +7 -7
- package/dist/cjs/ion-toast.cjs.entry.js +6 -6
- package/dist/cjs/ion-toggle.cjs.entry.js +7 -6
- package/dist/cjs/{ionic-global-96da1b2e.js → ionic-global-d9a8bb5b.js} +1 -2
- package/dist/cjs/ionic.cjs.js +3 -3
- package/dist/cjs/{ios.transition-8d363d77.js → ios.transition-a4f35c55.js} +4 -4
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-57d695fa.js → md.transition-cdf904e6.js} +4 -4
- package/dist/cjs/{notch-controller-bd07748b.js → notch-controller-a0c464d1.js} +1 -1
- package/dist/cjs/{overlays-27703a30.js → overlays-86695cf1.js} +5 -5
- package/dist/cjs/{status-tap-654077ee.js → status-tap-1a2485c1.js} +4 -3
- package/dist/cjs/{swipe-back-b70cd52e.js → swipe-back-47a52b83.js} +1 -1
- package/dist/collection/components/alert/alert.js +4 -34
- package/dist/collection/components/checkbox/checkbox.js +23 -4
- package/dist/collection/components/input/input.ios.css +3 -2
- package/dist/collection/components/input/input.md.css +7 -2
- package/dist/collection/components/modal/animations/ios.enter.js +50 -4
- package/dist/collection/components/modal/animations/ios.leave.js +24 -2
- package/dist/collection/components/modal/animations/md.enter.js +52 -5
- package/dist/collection/components/modal/animations/md.leave.js +26 -3
- package/dist/collection/components/modal/animations/sheet.js +11 -2
- package/dist/collection/components/modal/gestures/sheet.js +79 -10
- package/dist/collection/components/modal/modal.ios.css +16 -0
- package/dist/collection/components/modal/modal.js +32 -7
- package/dist/collection/components/modal/modal.md.css +6 -0
- package/dist/collection/components/radio/radio.ios.css +52 -15
- package/dist/collection/components/radio/radio.js +70 -3
- package/dist/collection/components/radio/radio.md.css +52 -15
- package/dist/collection/components/select/select.js +23 -4
- package/dist/collection/components/textarea/textarea.ios.css +3 -2
- package/dist/collection/components/textarea/textarea.md.css +7 -2
- package/dist/collection/components/toggle/toggle.js +23 -4
- package/dist/collection/components/toolbar/toolbar.js +6 -2
- package/dist/collection/utils/floating-point/index.js +0 -5
- package/dist/collection/utils/helpers.js +0 -6
- package/dist/collection/utils/logging/index.js +10 -3
- package/dist/collection/utils/platform.js +1 -2
- package/dist/collection/utils/test/platform.utils.js +1 -1
- package/dist/docs.json +187 -6
- package/dist/esm/{app-globals-c10a1137.js → app-globals-5dbb61a5.js} +1 -1
- package/dist/esm/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
- package/dist/esm/{framework-delegate-42bc40b1.js → framework-delegate-f683816e.js} +1 -1
- package/dist/esm/{hardware-back-button-44195e92.js → hardware-back-button-06ef3c3e.js} +1 -1
- package/dist/esm/{helpers-13b816c6.js → helpers-9b49d7d2.js} +1 -7
- package/dist/esm/{index-28c8fd64.js → index-5a0f5fd0.js} +1 -1
- package/dist/esm/{index-4b39521b.js → index-6a5baab0.js} +5 -5
- package/dist/esm/{index-9b0d46f4.js → index-6ad967f3.js} +11 -3
- package/dist/esm/{index-6b548278.js → index-7105cd59.js} +4 -4
- package/dist/esm/{index-edf58462.js → index-dd0f7395.js} +2 -2
- package/dist/esm/index.js +10 -10
- package/dist/esm/{input-shims-5e5e47e8.js → input-shims-dff819a9.js} +5 -3
- package/dist/esm/{input.utils-d3717b00.js → input.utils-2f1029cf.js} +2 -2
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +6 -6
- package/dist/esm/ion-alert.entry.js +10 -36
- package/dist/esm/ion-app_8.entry.js +14 -14
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-back-button.entry.js +2 -2
- package/dist/esm/ion-backdrop.entry.js +1 -1
- package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
- package/dist/esm/ion-button_2.entry.js +3 -3
- package/dist/esm/ion-card_5.entry.js +2 -2
- package/dist/esm/ion-checkbox.entry.js +7 -6
- package/dist/esm/ion-chip.entry.js +1 -1
- package/dist/esm/ion-col_3.entry.js +1 -1
- package/dist/esm/ion-datetime-button.entry.js +4 -4
- package/dist/esm/ion-datetime_3.entry.js +7 -7
- package/dist/esm/ion-fab_3.entry.js +2 -2
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +4 -4
- package/dist/esm/ion-input-password-toggle.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +7 -7
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +2 -2
- package/dist/esm/ion-loading.entry.js +6 -6
- package/dist/esm/ion-menu_3.entry.js +7 -7
- package/dist/esm/ion-modal.entry.js +266 -43
- package/dist/esm/ion-nav_2.entry.js +6 -6
- package/dist/esm/ion-picker-column-option.entry.js +2 -2
- package/dist/esm/ion-picker-column.entry.js +2 -2
- package/dist/esm/ion-picker.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +7 -7
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +37 -7
- package/dist/esm/ion-range.entry.js +4 -8
- package/dist/esm/ion-refresher_2.entry.js +4 -4
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +2 -2
- package/dist/esm/ion-select-modal.entry.js +6 -6
- package/dist/esm/ion-select_3.entry.js +12 -11
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +1 -1
- package/dist/esm/ion-tab-bar_2.entry.js +2 -2
- package/dist/esm/ion-tab_2.entry.js +2 -2
- package/dist/esm/ion-text.entry.js +1 -1
- package/dist/esm/ion-textarea.entry.js +7 -7
- package/dist/esm/ion-toast.entry.js +6 -6
- package/dist/esm/ion-toggle.entry.js +7 -6
- package/dist/esm/{ionic-global-bf78a847.js → ionic-global-c81d82ab.js} +1 -2
- package/dist/esm/ionic.js +3 -3
- package/dist/esm/{ios.transition-e7a4de4f.js → ios.transition-314468a2.js} +4 -4
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{md.transition-290d8802.js → md.transition-a560e0e2.js} +4 -4
- package/dist/esm/{notch-controller-bb8f3a48.js → notch-controller-3dc61260.js} +1 -1
- package/dist/esm/{overlays-4ff6e618.js → overlays-9a81f230.js} +5 -5
- package/dist/esm/{status-tap-ba401484.js → status-tap-d07dbc82.js} +4 -3
- package/dist/esm/{swipe-back-a258b011.js → swipe-back-23ee7ab1.js} +1 -1
- package/dist/esm-es5/app-globals-5dbb61a5.js +4 -0
- package/dist/esm-es5/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
- package/dist/esm-es5/{framework-delegate-42bc40b1.js → framework-delegate-f683816e.js} +1 -1
- package/dist/esm-es5/{hardware-back-button-44195e92.js → hardware-back-button-06ef3c3e.js} +1 -1
- package/dist/esm-es5/{helpers-13b816c6.js → helpers-9b49d7d2.js} +1 -1
- package/dist/esm-es5/{index-28c8fd64.js → index-5a0f5fd0.js} +1 -1
- package/dist/esm-es5/{index-4b39521b.js → index-6a5baab0.js} +1 -1
- package/dist/esm-es5/index-6ad967f3.js +4 -0
- package/dist/esm-es5/{index-6b548278.js → index-7105cd59.js} +1 -1
- package/dist/esm-es5/{index-edf58462.js → index-dd0f7395.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-dff819a9.js +4 -0
- package/dist/esm-es5/{input.utils-d3717b00.js → input.utils-2f1029cf.js} +1 -1
- package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
- 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-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-card_5.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-chip.entry.js +1 -1
- package/dist/esm-es5/ion-col_3.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-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-img.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-input-password-toggle.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-option.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column.entry.js +1 -1
- package/dist/esm-es5/ion-picker.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.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-ripple-effect.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select-modal.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.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-global-bf78a847.js → ionic-global-c81d82ab.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-e7a4de4f.js → ios.transition-314468a2.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-a560e0e2.js +4 -0
- package/dist/esm-es5/{notch-controller-bb8f3a48.js → notch-controller-3dc61260.js} +1 -1
- package/dist/esm-es5/{overlays-4ff6e618.js → overlays-9a81f230.js} +1 -1
- package/dist/esm-es5/status-tap-d07dbc82.js +4 -0
- package/dist/esm-es5/{swipe-back-a258b011.js → swipe-back-23ee7ab1.js} +1 -1
- package/dist/html.html-data.json +24 -0
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/ionic.js +1 -1
- package/dist/ionic/{p-37a21d70.entry.js → p-02e23f26.entry.js} +1 -1
- package/dist/ionic/{p-cc991f05.entry.js → p-037fc3f3.entry.js} +1 -1
- package/dist/ionic/p-04e08129.entry.js +4 -0
- package/dist/ionic/p-0574e87e.js +4 -0
- package/dist/ionic/{p-64bb1da1.system.js → p-058e61eb.system.js} +1 -1
- package/dist/ionic/{p-1b2657c9.system.entry.js → p-0bfffa34.system.entry.js} +1 -1
- package/dist/ionic/{p-4a98a017.system.entry.js → p-0eb2553a.system.entry.js} +1 -1
- package/dist/ionic/{p-bc148b43.system.entry.js → p-10327ad2.system.entry.js} +1 -1
- package/dist/ionic/{p-5e9733d0.entry.js → p-155c2bb0.entry.js} +1 -1
- package/dist/ionic/p-155f4d90.entry.js +4 -0
- package/dist/ionic/p-16bfb979.system.entry.js +4 -0
- package/dist/ionic/{p-7a9407cc.system.entry.js → p-18e101b7.system.entry.js} +2 -2
- package/dist/ionic/{p-d60342e3.js → p-1a5bc5f7.js} +1 -1
- package/dist/ionic/p-1f405274.js +4 -0
- package/dist/ionic/p-21227121.js +4 -0
- package/dist/ionic/p-22149a4f.js +4 -0
- package/dist/ionic/{p-a873feda.system.entry.js → p-2507278c.system.entry.js} +1 -1
- package/dist/ionic/{p-5996d3ad.system.entry.js → p-2515cb4d.system.entry.js} +1 -1
- package/dist/ionic/{p-37264dcc.entry.js → p-265939f0.entry.js} +1 -1
- package/dist/ionic/{p-4eed0eb2.system.entry.js → p-2abae1cc.system.entry.js} +1 -1
- package/dist/ionic/{p-3559bd4f.js → p-2bc73fb5.js} +1 -1
- package/dist/ionic/p-2c9eb774.system.js +4 -0
- package/dist/ionic/{p-a8d31cd5.entry.js → p-2cbe5399.entry.js} +1 -1
- package/dist/ionic/{p-c3a51c19.system.entry.js → p-2ef3c7ee.system.entry.js} +1 -1
- package/dist/ionic/{p-d785235b.system.entry.js → p-31a6efce.system.entry.js} +1 -1
- package/dist/ionic/p-322c5fb4.system.js +4 -0
- package/dist/ionic/{p-c66604e4.entry.js → p-33a8a71b.entry.js} +1 -1
- package/dist/ionic/{p-f687573e.system.js → p-343b6b1d.system.js} +1 -1
- package/dist/ionic/p-34479cfb.entry.js +4 -0
- package/dist/ionic/{p-5ae70860.js → p-346b2baf.js} +1 -1
- package/dist/ionic/{p-eab9414f.entry.js → p-36c448fe.entry.js} +1 -1
- package/dist/ionic/{p-5d1be985.js → p-39dd4f62.js} +1 -1
- package/dist/ionic/{p-8911101b.system.js → p-3c8e5c23.system.js} +1 -1
- package/dist/ionic/p-3e99e3e0.entry.js +4 -0
- package/dist/ionic/p-4129228f.system.entry.js +4 -0
- package/dist/ionic/{p-8c0d81a9.entry.js → p-41780810.entry.js} +1 -1
- package/dist/ionic/p-42c9deb1.entry.js +4 -0
- package/dist/ionic/{p-f5a536e1.system.js → p-4452a8ac.system.js} +1 -1
- package/dist/ionic/{p-e3be9fa8.system.entry.js → p-484d855b.system.entry.js} +2 -2
- package/dist/ionic/p-49a0e74c.entry.js +4 -0
- package/dist/ionic/{p-1f62c30b.entry.js → p-4ad78edc.entry.js} +1 -1
- package/dist/ionic/{p-ffb6d30e.js → p-4d3a5f86.js} +1 -1
- package/dist/ionic/{p-ae02a7ea.system.entry.js → p-4d413973.system.entry.js} +1 -1
- package/dist/ionic/{p-43df2d06.system.entry.js → p-5010643d.system.entry.js} +1 -1
- package/dist/ionic/{p-52b61cba.system.js → p-5126cf1e.system.js} +1 -1
- package/dist/ionic/p-52245809.js +4 -0
- package/dist/ionic/p-5375091b.system.entry.js +4 -0
- package/dist/ionic/{p-e4c1fd74.system.entry.js → p-56da53ad.system.entry.js} +1 -1
- package/dist/ionic/{p-6a649fcd.system.js → p-578efda4.system.js} +2 -2
- package/dist/ionic/{p-d6b3e734.system.entry.js → p-5882bffa.system.entry.js} +1 -1
- package/dist/ionic/{p-026517fb.entry.js → p-5b932840.entry.js} +1 -1
- package/dist/ionic/p-5c9324c6.js +4 -0
- package/dist/ionic/{p-9c7efe25.system.entry.js → p-5fce0c0b.system.entry.js} +1 -1
- package/dist/ionic/{p-85b1ffae.entry.js → p-62af944c.entry.js} +1 -1
- package/dist/ionic/{p-feab8373.system.entry.js → p-63c09585.system.entry.js} +1 -1
- package/dist/ionic/{p-d854f4bc.system.entry.js → p-65346408.system.entry.js} +1 -1
- package/dist/ionic/{p-ac2c154f.system.entry.js → p-655723eb.system.entry.js} +1 -1
- package/dist/ionic/p-67222c16.system.js +4 -0
- package/dist/ionic/{p-c2583512.entry.js → p-6d32975a.entry.js} +1 -1
- package/dist/ionic/{p-13637707.entry.js → p-70af0afb.entry.js} +1 -1
- package/dist/ionic/p-712fedc9.entry.js +4 -0
- package/dist/ionic/{p-ca5eef42.entry.js → p-72ec9a26.entry.js} +1 -1
- package/dist/ionic/{p-0116e7d7.system.js → p-73897169.system.js} +1 -1
- package/dist/ionic/{p-d4896d36.system.entry.js → p-7458862e.system.entry.js} +1 -1
- package/dist/ionic/{p-166f4ba0.entry.js → p-76446a85.entry.js} +1 -1
- package/dist/ionic/{p-3fe95571.system.entry.js → p-77e7b7b6.system.entry.js} +1 -1
- package/dist/ionic/{p-89e678fa.js → p-7a1766d6.js} +1 -1
- package/dist/ionic/{p-486dc46d.system.entry.js → p-7ae680ba.system.entry.js} +1 -1
- package/dist/ionic/{p-fd2c0aa6.entry.js → p-7b98cebe.entry.js} +1 -1
- package/dist/ionic/p-80c6d619.entry.js +4 -0
- package/dist/ionic/{p-e0a2abde.system.entry.js → p-84d08aae.system.entry.js} +1 -1
- package/dist/ionic/{p-c09a2f58.system.js → p-860eb968.system.js} +1 -1
- package/dist/ionic/{p-31918ee1.entry.js → p-8818edd8.entry.js} +1 -1
- package/dist/ionic/{p-ebd0a280.entry.js → p-89bf08c7.entry.js} +1 -1
- package/dist/ionic/{p-830f1a37.system.entry.js → p-8cfba7e9.system.entry.js} +1 -1
- package/dist/ionic/{p-bba0bc47.system.js → p-8e407469.system.js} +1 -1
- package/dist/ionic/p-8f51281f.entry.js +4 -0
- package/dist/ionic/{p-48e13807.system.entry.js → p-92365bc1.system.entry.js} +1 -1
- package/dist/ionic/{p-ee41045b.system.entry.js → p-93e3654c.system.entry.js} +1 -1
- package/dist/ionic/{p-8f89c8e3.entry.js → p-955c3eb8.entry.js} +1 -1
- package/dist/ionic/{p-56a8aa85.entry.js → p-95775830.entry.js} +1 -1
- package/dist/ionic/{p-f6e7870b.system.js → p-95da3ae2.system.js} +1 -1
- package/dist/ionic/{p-230af7f2.js → p-990630ca.js} +1 -1
- package/dist/ionic/{p-4429e8c5.entry.js → p-9962f63f.entry.js} +1 -1
- package/dist/ionic/p-9a100adc.entry.js +4 -0
- package/dist/ionic/{p-34182275.entry.js → p-9b3bb24e.entry.js} +1 -1
- package/dist/ionic/{p-a69cf9ea.entry.js → p-9de5c787.entry.js} +1 -1
- package/dist/ionic/{p-eb4ac14d.system.js → p-9f3008d4.system.js} +1 -1
- package/dist/ionic/p-a18470c6.entry.js +4 -0
- package/dist/ionic/{p-17c772fb.entry.js → p-a5b31c0f.entry.js} +1 -1
- package/dist/ionic/{p-d86d7845.system.js → p-a69b9fc5.system.js} +1 -1
- package/dist/ionic/{p-c55254f0.system.entry.js → p-a9e24ae2.system.entry.js} +1 -1
- package/dist/ionic/{p-d7607262.system.js → p-acb30a5c.system.js} +1 -1
- package/dist/ionic/{p-361ab803.system.entry.js → p-acc8399c.system.entry.js} +2 -2
- package/dist/ionic/p-af09741c.entry.js +4 -0
- package/dist/ionic/{p-953d9cf5.system.js → p-af452fa4.system.js} +1 -1
- package/dist/ionic/{p-b533b7ab.system.entry.js → p-af744710.system.entry.js} +1 -1
- package/dist/ionic/{p-42a9bb35.entry.js → p-afecb188.entry.js} +1 -1
- package/dist/ionic/{p-8aa290af.system.js → p-b3680e2f.system.js} +1 -1
- package/dist/ionic/p-b936eb7e.system.entry.js +4 -0
- package/dist/ionic/{p-6eb35904.js → p-bb11d9fb.js} +1 -1
- package/dist/ionic/{p-00d5ab83.entry.js → p-bb2a6761.entry.js} +1 -1
- package/dist/ionic/{p-327b452e.entry.js → p-bc616455.entry.js} +1 -1
- package/dist/ionic/{p-9d4a8059.entry.js → p-bdad26e3.entry.js} +1 -1
- package/dist/ionic/{p-91b944fa.entry.js → p-c32644d7.entry.js} +1 -1
- package/dist/ionic/p-c3802319.system.js +4 -0
- package/dist/ionic/{p-a4b108a7.entry.js → p-c8d645b3.entry.js} +1 -1
- package/dist/ionic/{p-07d0478c.js → p-c935cfc9.js} +1 -1
- package/dist/ionic/{p-45109533.system.entry.js → p-d1172fe3.system.entry.js} +1 -1
- package/dist/ionic/{p-b566749e.js → p-d4ca0475.js} +1 -1
- package/dist/ionic/{p-e25cd3c7.js → p-d743e981.js} +1 -1
- package/dist/ionic/{p-80f2a47b.entry.js → p-d7bb5325.entry.js} +1 -1
- package/dist/ionic/{p-364ed29d.system.entry.js → p-d821466d.system.entry.js} +1 -1
- package/dist/ionic/{p-733f53f8.system.js → p-d99e8644.system.js} +1 -1
- package/dist/ionic/{p-05f90810.system.entry.js → p-da8ef548.system.entry.js} +1 -1
- package/dist/ionic/{p-de4fef3c.system.entry.js → p-dc146a2a.system.entry.js} +1 -1
- package/dist/ionic/{p-25580c85.system.entry.js → p-dd0c9350.system.entry.js} +1 -1
- package/dist/ionic/{p-136ff13e.entry.js → p-df862603.entry.js} +1 -1
- package/dist/ionic/{p-e84da6cb.system.entry.js → p-e2e19375.system.entry.js} +1 -1
- package/dist/ionic/{p-0793353d.system.entry.js → p-e32557bb.system.entry.js} +1 -1
- package/dist/ionic/{p-fced06e0.entry.js → p-e5849f8d.entry.js} +1 -1
- package/dist/ionic/p-e8d56122.js +4 -0
- package/dist/ionic/{p-441c2c8c.entry.js → p-e8f34871.entry.js} +1 -1
- package/dist/ionic/{p-6f3d8334.js → p-ecceeb90.js} +1 -1
- package/dist/ionic/{p-d7fef52e.system.entry.js → p-ed75fcfb.system.entry.js} +1 -1
- package/dist/ionic/{p-213b12ce.system.entry.js → p-eeb5cb45.system.entry.js} +2 -2
- package/dist/ionic/p-efbf5af5.system.entry.js +4 -0
- package/dist/ionic/p-f2613334.system.entry.js +4 -0
- package/dist/ionic/{p-6347c733.system.entry.js → p-f301a694.system.entry.js} +1 -1
- package/dist/ionic/{p-478dfa8c.system.entry.js → p-f3102647.system.entry.js} +1 -1
- package/dist/ionic/{p-f8ef15ba.system.entry.js → p-f56752be.system.entry.js} +1 -1
- package/dist/ionic/{p-379d9002.entry.js → p-f5d6624d.entry.js} +1 -1
- package/dist/ionic/{p-5d3dc32b.system.entry.js → p-f78af648.system.entry.js} +1 -1
- package/dist/ionic/{p-c3de6cd1.system.entry.js → p-f89cf011.system.entry.js} +1 -1
- package/dist/ionic/p-fbf86e62.system.js +4 -0
- package/dist/ionic/{p-16dd9c9b.entry.js → p-fca17935.entry.js} +1 -1
- package/dist/ionic/{p-712b57f9.system.entry.js → p-fca6ef5f.system.entry.js} +1 -1
- package/dist/ionic/{p-c06312bf.entry.js → p-fec13c57.entry.js} +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +6 -0
- package/dist/types/components/modal/animations/sheet.d.ts +1 -0
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +1 -0
- package/dist/types/components/modal/modal.d.ts +11 -0
- package/dist/types/components/radio/radio.d.ts +19 -0
- package/dist/types/components/select/select.d.ts +6 -0
- package/dist/types/components/toggle/toggle.d.ts +6 -0
- package/dist/types/components/toolbar/toolbar.d.ts +4 -0
- package/dist/types/components.d.ts +48 -0
- package/dist/types/utils/config.d.ts +9 -0
- package/dist/types/utils/helpers.d.ts +0 -4
- package/dist/types/utils/logging/index.d.ts +13 -1
- package/dist/types/utils/native/capacitor.d.ts +1 -7
- package/dist/types/utils/test/platform.utils.d.ts +1 -1
- package/hydrate/index.js +341 -103
- package/hydrate/index.mjs +341 -103
- package/package.json +5 -5
- package/dist/esm-es5/app-globals-c10a1137.js +0 -4
- package/dist/esm-es5/index-9b0d46f4.js +0 -4
- package/dist/esm-es5/input-shims-5e5e47e8.js +0 -4
- package/dist/esm-es5/md.transition-290d8802.js +0 -4
- package/dist/esm-es5/status-tap-ba401484.js +0 -4
- package/dist/ionic/p-06fee233.js +0 -4
- package/dist/ionic/p-1c89b09c.system.entry.js +0 -4
- package/dist/ionic/p-1f1b8704.entry.js +0 -4
- package/dist/ionic/p-30ec5574.entry.js +0 -4
- package/dist/ionic/p-4075165f.js +0 -4
- package/dist/ionic/p-4133f9ec.entry.js +0 -4
- package/dist/ionic/p-47ed8b64.entry.js +0 -4
- package/dist/ionic/p-4e8946f7.js +0 -4
- package/dist/ionic/p-51d4cdba.system.js +0 -4
- package/dist/ionic/p-665f9987.entry.js +0 -4
- package/dist/ionic/p-6c85db7e.system.entry.js +0 -4
- package/dist/ionic/p-8b367303.entry.js +0 -4
- package/dist/ionic/p-8f3d6be8.entry.js +0 -4
- package/dist/ionic/p-9e23592d.system.js +0 -4
- package/dist/ionic/p-a749d4a9.entry.js +0 -4
- package/dist/ionic/p-acb5a6e4.entry.js +0 -4
- package/dist/ionic/p-b1c4a9db.js +0 -4
- package/dist/ionic/p-b58057d4.js +0 -4
- package/dist/ionic/p-b5a10c8b.system.entry.js +0 -4
- package/dist/ionic/p-b6ee3fc7.system.entry.js +0 -4
- package/dist/ionic/p-c312ea08.entry.js +0 -4
- package/dist/ionic/p-c42a4dad.system.entry.js +0 -4
- package/dist/ionic/p-e03cd18a.system.entry.js +0 -4
- package/dist/ionic/p-e03d645e.entry.js +0 -4
- package/dist/ionic/p-ebb85488.entry.js +0 -4
- package/dist/ionic/p-efa8edbc.system.js +0 -4
- package/dist/ionic/p-f1bbc785.js +0 -4
- package/dist/ionic/p-f4f255cb.system.js +0 -4
- package/dist/ionic/p-f6fe87c1.js +0 -4
- package/dist/ionic/p-ff4b7e40.system.js +0 -4
|
@@ -14,10 +14,15 @@ import { getIonMode } from "../../global/ionic-global";
|
|
|
14
14
|
* @part container - The container for the radio mark.
|
|
15
15
|
* @part label - The label text describing the radio.
|
|
16
16
|
* @part mark - The checkmark or dot used to indicate the checked state.
|
|
17
|
+
* @part supporting-text - Supporting text displayed beneath the radio label.
|
|
18
|
+
* @part helper-text - Supporting text displayed beneath the radio label when the radio is valid.
|
|
19
|
+
* @part error-text - Supporting text displayed beneath the radio label when the radio is invalid and touched.
|
|
17
20
|
*/
|
|
18
21
|
export class Radio {
|
|
19
22
|
constructor() {
|
|
20
23
|
this.inputId = `ion-rb-${radioButtonIds++}`;
|
|
24
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
25
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
21
26
|
this.radioGroup = null;
|
|
22
27
|
this.updateState = () => {
|
|
23
28
|
if (this.radioGroup) {
|
|
@@ -57,6 +62,8 @@ export class Radio {
|
|
|
57
62
|
this.color = undefined;
|
|
58
63
|
this.name = this.inputId;
|
|
59
64
|
this.disabled = false;
|
|
65
|
+
this.errorText = undefined;
|
|
66
|
+
this.helperText = undefined;
|
|
60
67
|
this.value = undefined;
|
|
61
68
|
this.labelPlacement = 'start';
|
|
62
69
|
this.justify = undefined;
|
|
@@ -116,11 +123,37 @@ export class Radio {
|
|
|
116
123
|
renderRadioControl() {
|
|
117
124
|
return (h("div", { class: "radio-icon", part: "container" }, h("div", { class: "radio-inner", part: "mark" }), h("div", { class: "radio-ripple" })));
|
|
118
125
|
}
|
|
126
|
+
getHintTextID() {
|
|
127
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
128
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
129
|
+
return errorTextId;
|
|
130
|
+
}
|
|
131
|
+
if (helperText) {
|
|
132
|
+
return helperTextId;
|
|
133
|
+
}
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Responsible for rendering helper text and error text.
|
|
138
|
+
* This element should only be rendered if hint text is set.
|
|
139
|
+
*/
|
|
140
|
+
renderHintText() {
|
|
141
|
+
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
142
|
+
/**
|
|
143
|
+
* undefined and empty string values should
|
|
144
|
+
* be treated as not having helper/error text.
|
|
145
|
+
*/
|
|
146
|
+
const hasHintText = !!helperText || !!errorText;
|
|
147
|
+
if (!hasHintText) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
return (h("div", { class: "radio-bottom" }, h("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text" }, helperText), h("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text" }, errorText)));
|
|
151
|
+
}
|
|
119
152
|
render() {
|
|
120
153
|
const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
|
|
121
154
|
const mode = getIonMode(this);
|
|
122
155
|
const inItem = hostContext('ion-item', el);
|
|
123
|
-
return (h(Host, { key: '
|
|
156
|
+
return (h(Host, { key: '4f01024a74c1846438372c40519df1044f5b12b9', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
|
|
124
157
|
[mode]: true,
|
|
125
158
|
'in-item': inItem,
|
|
126
159
|
'radio-checked': checked,
|
|
@@ -131,10 +164,10 @@ export class Radio {
|
|
|
131
164
|
// Focus and active styling should not apply when the radio is in an item
|
|
132
165
|
'ion-activatable': !inItem,
|
|
133
166
|
'ion-focusable': !inItem,
|
|
134
|
-
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '
|
|
167
|
+
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, tabindex: buttonTabindex }, h("label", { key: '59dc0343534e626692f3b71b32204c1b2b25d40a', class: "radio-wrapper" }, h("div", { key: '26d7d3faf1b02bb138fb2c46f83e824962b6b92e', class: {
|
|
135
168
|
'label-text-wrapper': true,
|
|
136
169
|
'label-text-wrapper-hidden': !hasLabel,
|
|
137
|
-
}, part: "label" }, h("slot", { key: '
|
|
170
|
+
}, part: "label" }, h("slot", { key: '9c3d8bb0c5cd3ce94d1e661d89587cf67c522bc0' }), this.renderHintText()), h("div", { key: '3183f79e2977ee001e69c23f73073555744281d8', class: "native-wrapper" }, this.renderRadioControl()))));
|
|
138
171
|
}
|
|
139
172
|
static get is() { return "ion-radio"; }
|
|
140
173
|
static get encapsulation() { return "shadow"; }
|
|
@@ -211,6 +244,40 @@ export class Radio {
|
|
|
211
244
|
"reflect": false,
|
|
212
245
|
"defaultValue": "false"
|
|
213
246
|
},
|
|
247
|
+
"errorText": {
|
|
248
|
+
"type": "string",
|
|
249
|
+
"mutable": false,
|
|
250
|
+
"complexType": {
|
|
251
|
+
"original": "string",
|
|
252
|
+
"resolved": "string | undefined",
|
|
253
|
+
"references": {}
|
|
254
|
+
},
|
|
255
|
+
"required": false,
|
|
256
|
+
"optional": true,
|
|
257
|
+
"docs": {
|
|
258
|
+
"tags": [],
|
|
259
|
+
"text": "Text that is placed under the radio label and displayed when an error is detected."
|
|
260
|
+
},
|
|
261
|
+
"attribute": "error-text",
|
|
262
|
+
"reflect": false
|
|
263
|
+
},
|
|
264
|
+
"helperText": {
|
|
265
|
+
"type": "string",
|
|
266
|
+
"mutable": false,
|
|
267
|
+
"complexType": {
|
|
268
|
+
"original": "string",
|
|
269
|
+
"resolved": "string | undefined",
|
|
270
|
+
"references": {}
|
|
271
|
+
},
|
|
272
|
+
"required": false,
|
|
273
|
+
"optional": true,
|
|
274
|
+
"docs": {
|
|
275
|
+
"tags": [],
|
|
276
|
+
"text": "Text that is placed under the radio label and displayed when no error is detected."
|
|
277
|
+
},
|
|
278
|
+
"attribute": "helper-text",
|
|
279
|
+
"reflect": false
|
|
280
|
+
},
|
|
214
281
|
"value": {
|
|
215
282
|
"type": "any",
|
|
216
283
|
"mutable": false,
|
|
@@ -175,32 +175,39 @@ input {
|
|
|
175
175
|
align-items: center;
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
|
|
178
|
+
.radio-bottom {
|
|
179
|
+
padding-top: 4px;
|
|
180
|
+
display: flex;
|
|
179
181
|
justify-content: space-between;
|
|
182
|
+
font-size: 0.75rem;
|
|
183
|
+
white-space: normal;
|
|
180
184
|
}
|
|
181
185
|
|
|
182
|
-
:host(.radio-
|
|
183
|
-
|
|
186
|
+
:host(.radio-label-placement-stacked) .radio-bottom {
|
|
187
|
+
font-size: 1rem;
|
|
184
188
|
}
|
|
185
189
|
|
|
186
|
-
|
|
187
|
-
|
|
190
|
+
/**
|
|
191
|
+
* Error text should only be shown when .ion-invalid is
|
|
192
|
+
* present on the radio. Otherwise the helper text should
|
|
193
|
+
* be shown.
|
|
194
|
+
*/
|
|
195
|
+
.radio-bottom .error-text {
|
|
196
|
+
display: none;
|
|
197
|
+
color: var(--ion-color-danger, #c5000f);
|
|
188
198
|
}
|
|
189
199
|
|
|
190
|
-
|
|
191
|
-
|
|
200
|
+
.radio-bottom .helper-text {
|
|
201
|
+
display: block;
|
|
202
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
192
203
|
}
|
|
193
204
|
|
|
194
|
-
:host(.
|
|
195
|
-
|
|
205
|
+
:host(.ion-touched.ion-invalid) .radio-bottom .error-text {
|
|
206
|
+
display: block;
|
|
196
207
|
}
|
|
197
208
|
|
|
198
|
-
:host(.radio-
|
|
199
|
-
:
|
|
200
|
-
:host(.radio-justify-end),
|
|
201
|
-
:host(.radio-alignment-start),
|
|
202
|
-
:host(.radio-alignment-center) {
|
|
203
|
-
display: block;
|
|
209
|
+
:host(.ion-touched.ion-invalid) .radio-bottom .helper-text {
|
|
210
|
+
display: none;
|
|
204
211
|
}
|
|
205
212
|
|
|
206
213
|
/**
|
|
@@ -229,6 +236,7 @@ input {
|
|
|
229
236
|
*/
|
|
230
237
|
:host(.radio-label-placement-end) .radio-wrapper {
|
|
231
238
|
flex-direction: row-reverse;
|
|
239
|
+
justify-content: start;
|
|
232
240
|
}
|
|
233
241
|
|
|
234
242
|
/**
|
|
@@ -270,6 +278,7 @@ input {
|
|
|
270
278
|
*/
|
|
271
279
|
:host(.radio-label-placement-stacked) .radio-wrapper {
|
|
272
280
|
flex-direction: column;
|
|
281
|
+
text-align: center;
|
|
273
282
|
}
|
|
274
283
|
|
|
275
284
|
:host(.radio-label-placement-stacked) .label-text-wrapper {
|
|
@@ -315,6 +324,34 @@ input {
|
|
|
315
324
|
}
|
|
316
325
|
}
|
|
317
326
|
|
|
327
|
+
:host(.radio-justify-space-between) .radio-wrapper {
|
|
328
|
+
justify-content: space-between;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
:host(.radio-justify-start) .radio-wrapper {
|
|
332
|
+
justify-content: start;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
:host(.radio-justify-end) .radio-wrapper {
|
|
336
|
+
justify-content: end;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
:host(.radio-alignment-start) .radio-wrapper {
|
|
340
|
+
align-items: start;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
:host(.radio-alignment-center) .radio-wrapper {
|
|
344
|
+
align-items: center;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
:host(.radio-justify-space-between),
|
|
348
|
+
:host(.radio-justify-start),
|
|
349
|
+
:host(.radio-justify-end),
|
|
350
|
+
:host(.radio-alignment-start),
|
|
351
|
+
:host(.radio-alignment-center) {
|
|
352
|
+
display: block;
|
|
353
|
+
}
|
|
354
|
+
|
|
318
355
|
/**
|
|
319
356
|
* Convert a font size to a dynamic font size.
|
|
320
357
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -91,6 +91,7 @@ export class Select {
|
|
|
91
91
|
this.expandedIcon = undefined;
|
|
92
92
|
this.shape = undefined;
|
|
93
93
|
this.value = undefined;
|
|
94
|
+
this.required = false;
|
|
94
95
|
}
|
|
95
96
|
styleChanged() {
|
|
96
97
|
this.emitStyle();
|
|
@@ -655,8 +656,8 @@ export class Select {
|
|
|
655
656
|
return renderedLabel;
|
|
656
657
|
}
|
|
657
658
|
renderListbox() {
|
|
658
|
-
const { disabled, inputId, isExpanded } = this;
|
|
659
|
-
return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
659
|
+
const { disabled, inputId, isExpanded, required } = this;
|
|
660
|
+
return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
660
661
|
}
|
|
661
662
|
render() {
|
|
662
663
|
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
|
|
@@ -687,7 +688,7 @@ export class Select {
|
|
|
687
688
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
688
689
|
*/
|
|
689
690
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
690
|
-
return (h(Host, { key: '
|
|
691
|
+
return (h(Host, { key: 'f7cf03de773cd85da42978e274d65cc1eb6ed8a3', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
691
692
|
[mode]: true,
|
|
692
693
|
'in-item': inItem,
|
|
693
694
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -703,7 +704,7 @@ export class Select {
|
|
|
703
704
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
704
705
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
705
706
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
706
|
-
}) }, h("label", { key: '
|
|
707
|
+
}) }, h("label", { key: '91674f8f5cce37c87a7096d09b3f1d351cba1527', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '2229333833047db13ed2a01cb10bb6e6f774031d', class: "select-wrapper-inner" }, h("slot", { key: 'f2766bdf8bff261efa5711f72d9edef407e45189', name: "start" }), h("div", { key: '84fec020ecaaac41298a01dbffdbb2f3744170b4', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '9b91237d7a1621bce1e15546abcb4f6b74cccc5f', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'e02aea3e8f344376013257f5261a29408e62b359', class: "select-highlight" }))));
|
|
707
708
|
}
|
|
708
709
|
static get is() { return "ion-select"; }
|
|
709
710
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1069,6 +1070,24 @@ export class Select {
|
|
|
1069
1070
|
},
|
|
1070
1071
|
"attribute": "value",
|
|
1071
1072
|
"reflect": false
|
|
1073
|
+
},
|
|
1074
|
+
"required": {
|
|
1075
|
+
"type": "boolean",
|
|
1076
|
+
"mutable": false,
|
|
1077
|
+
"complexType": {
|
|
1078
|
+
"original": "boolean",
|
|
1079
|
+
"resolved": "boolean",
|
|
1080
|
+
"references": {}
|
|
1081
|
+
},
|
|
1082
|
+
"required": false,
|
|
1083
|
+
"optional": false,
|
|
1084
|
+
"docs": {
|
|
1085
|
+
"tags": [],
|
|
1086
|
+
"text": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid."
|
|
1087
|
+
},
|
|
1088
|
+
"attribute": "required",
|
|
1089
|
+
"reflect": false,
|
|
1090
|
+
"defaultValue": "false"
|
|
1072
1091
|
}
|
|
1073
1092
|
};
|
|
1074
1093
|
}
|
|
@@ -373,6 +373,7 @@
|
|
|
373
373
|
justify-content: space-between;
|
|
374
374
|
border-top: var(--border-width) var(--border-style) var(--border-color);
|
|
375
375
|
font-size: 0.75rem;
|
|
376
|
+
white-space: normal;
|
|
376
377
|
}
|
|
377
378
|
|
|
378
379
|
/**
|
|
@@ -396,7 +397,7 @@
|
|
|
396
397
|
|
|
397
398
|
.textarea-bottom .helper-text {
|
|
398
399
|
display: block;
|
|
399
|
-
color: var(--ion-color-step-
|
|
400
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
400
401
|
}
|
|
401
402
|
|
|
402
403
|
:host(.ion-touched.ion-invalid) .textarea-bottom .error-text {
|
|
@@ -415,7 +416,7 @@
|
|
|
415
416
|
*/
|
|
416
417
|
-webkit-margin-start: auto;
|
|
417
418
|
margin-inline-start: auto;
|
|
418
|
-
color: var(--ion-color-step-
|
|
419
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
419
420
|
white-space: nowrap;
|
|
420
421
|
padding-inline-start: 16px;
|
|
421
422
|
}
|
|
@@ -373,6 +373,7 @@
|
|
|
373
373
|
justify-content: space-between;
|
|
374
374
|
border-top: var(--border-width) var(--border-style) var(--border-color);
|
|
375
375
|
font-size: 0.75rem;
|
|
376
|
+
white-space: normal;
|
|
376
377
|
}
|
|
377
378
|
|
|
378
379
|
/**
|
|
@@ -396,7 +397,7 @@
|
|
|
396
397
|
|
|
397
398
|
.textarea-bottom .helper-text {
|
|
398
399
|
display: block;
|
|
399
|
-
color: var(--ion-color-step-
|
|
400
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
400
401
|
}
|
|
401
402
|
|
|
402
403
|
:host(.ion-touched.ion-invalid) .textarea-bottom .error-text {
|
|
@@ -415,7 +416,7 @@
|
|
|
415
416
|
*/
|
|
416
417
|
-webkit-margin-start: auto;
|
|
417
418
|
margin-inline-start: auto;
|
|
418
|
-
color: var(--ion-color-step-
|
|
419
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
419
420
|
white-space: nowrap;
|
|
420
421
|
padding-inline-start: 16px;
|
|
421
422
|
}
|
|
@@ -928,6 +929,10 @@
|
|
|
928
929
|
--border-color: var(--highlight-color);
|
|
929
930
|
}
|
|
930
931
|
|
|
932
|
+
/**
|
|
933
|
+
* The bottom content should never have
|
|
934
|
+
* a border with the solid style.
|
|
935
|
+
*/
|
|
931
936
|
:host(.textarea-fill-solid) .textarea-bottom {
|
|
932
937
|
border-top: none;
|
|
933
938
|
}
|
|
@@ -71,6 +71,7 @@ export class Toggle {
|
|
|
71
71
|
this.labelPlacement = 'start';
|
|
72
72
|
this.justify = undefined;
|
|
73
73
|
this.alignment = undefined;
|
|
74
|
+
this.required = false;
|
|
74
75
|
}
|
|
75
76
|
disabledChanged() {
|
|
76
77
|
if (this.gesture) {
|
|
@@ -152,12 +153,12 @@ export class Toggle {
|
|
|
152
153
|
return this.el.textContent !== '';
|
|
153
154
|
}
|
|
154
155
|
render() {
|
|
155
|
-
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
|
|
156
|
+
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
|
|
156
157
|
const mode = getIonMode(this);
|
|
157
158
|
const value = this.getValue();
|
|
158
159
|
const rtl = isRTL(el) ? 'rtl' : 'ltr';
|
|
159
160
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
160
|
-
return (h(Host, { key: '
|
|
161
|
+
return (h(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses(color, {
|
|
161
162
|
[mode]: true,
|
|
162
163
|
'in-item': hostContext('ion-item', el),
|
|
163
164
|
'toggle-activated': activated,
|
|
@@ -167,10 +168,10 @@ export class Toggle {
|
|
|
167
168
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
168
169
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
169
170
|
[`toggle-${rtl}`]: true,
|
|
170
|
-
}) }, h("label", { key: '
|
|
171
|
+
}) }, h("label", { key: '484860e2a33f4d123904edb96159f0e1972d3add', class: "toggle-wrapper" }, h("input", Object.assign({ key: '360b53080aacfd99a9ff60ffb5219816bd4163ee', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, this.inheritedAttributes)), h("div", { key: 'f7239fa668fe11257239ea30cf0198e4f3274f6b', class: {
|
|
171
172
|
'label-text-wrapper': true,
|
|
172
173
|
'label-text-wrapper-hidden': !this.hasLabel,
|
|
173
|
-
}, part: "label" }, h("slot", { key: '
|
|
174
|
+
}, part: "label" }, h("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), h("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
174
175
|
}
|
|
175
176
|
static get is() { return "ion-toggle"; }
|
|
176
177
|
static get encapsulation() { return "shadow"; }
|
|
@@ -352,6 +353,24 @@ export class Toggle {
|
|
|
352
353
|
},
|
|
353
354
|
"attribute": "alignment",
|
|
354
355
|
"reflect": false
|
|
356
|
+
},
|
|
357
|
+
"required": {
|
|
358
|
+
"type": "boolean",
|
|
359
|
+
"mutable": false,
|
|
360
|
+
"complexType": {
|
|
361
|
+
"original": "boolean",
|
|
362
|
+
"resolved": "boolean",
|
|
363
|
+
"references": {}
|
|
364
|
+
},
|
|
365
|
+
"required": false,
|
|
366
|
+
"optional": false,
|
|
367
|
+
"docs": {
|
|
368
|
+
"tags": [],
|
|
369
|
+
"text": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid."
|
|
370
|
+
},
|
|
371
|
+
"attribute": "required",
|
|
372
|
+
"reflect": false,
|
|
373
|
+
"defaultValue": "false"
|
|
355
374
|
}
|
|
356
375
|
};
|
|
357
376
|
}
|
|
@@ -12,6 +12,10 @@ import { getIonMode } from "../../global/ionic-global";
|
|
|
12
12
|
* @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
|
|
13
13
|
* @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
|
|
14
14
|
* @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
|
|
15
|
+
*
|
|
16
|
+
* @part background - The background of the toolbar, covering the entire area behind the toolbar content.
|
|
17
|
+
* @part container - The container that wraps all toolbar content, including the default slot and named slot content.
|
|
18
|
+
* @part content - The container for the default slot, wrapping content provided without a named slot.
|
|
15
19
|
*/
|
|
16
20
|
export class Toolbar {
|
|
17
21
|
constructor() {
|
|
@@ -62,10 +66,10 @@ export class Toolbar {
|
|
|
62
66
|
this.childrenStyles.forEach((value) => {
|
|
63
67
|
Object.assign(childStyles, value);
|
|
64
68
|
});
|
|
65
|
-
return (h(Host, { key: '
|
|
69
|
+
return (h(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
|
|
66
70
|
[mode]: true,
|
|
67
71
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
68
|
-
})) }, h("div", { key: '
|
|
72
|
+
})) }, h("div", { key: '443a216362bbbf1c149ed12140d52b0f0ea2d664', class: "toolbar-background", part: "background" }), h("div", { key: '1df87f4027d605e42757a13d4828df45b90a4fdc', class: "toolbar-container", part: "container" }, h("slot", { key: 'f66f34972be8e3f4915b9c6f5808600dbaedb1ea', name: "start" }), h("slot", { key: '14f38b0975e956f404c4eb3ee56f2055c6615276', name: "secondary" }), h("div", { key: '75ba5953a25c7544793484d2b245792cb0a5af75', class: "toolbar-content", part: "content" }, h("slot", { key: '149dfa58ff7106f318fecb4134e7c69edf8bc231' })), h("slot", { key: '807ab9ad21d7f1d9d427a4086460bcb9e5e8c019', name: "primary" }), h("slot", { key: 'bd2f9da95d2fa8e74dc6e0666587ceecbba99d9f', name: "end" }))));
|
|
69
73
|
}
|
|
70
74
|
static get is() { return "ion-toolbar"; }
|
|
71
75
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { isSafeNumber } from "../helpers";
|
|
5
4
|
export function getDecimalPlaces(n) {
|
|
6
|
-
if (!isSafeNumber(n))
|
|
7
|
-
return 0;
|
|
8
5
|
if (n % 1 === 0)
|
|
9
6
|
return 0;
|
|
10
7
|
return n.toString().split('.')[1].length;
|
|
@@ -42,8 +39,6 @@ export function getDecimalPlaces(n) {
|
|
|
42
39
|
* be used as a reference for the desired specificity.
|
|
43
40
|
*/
|
|
44
41
|
export function roundToMaxDecimalPlaces(n, ...references) {
|
|
45
|
-
if (!isSafeNumber(n))
|
|
46
|
-
return 0;
|
|
47
42
|
const maxPlaces = Math.max(...references.map((r) => getDecimalPlaces(r)));
|
|
48
43
|
return Number(n.toFixed(maxPlaces));
|
|
49
44
|
}
|
|
@@ -374,9 +374,3 @@ export const getNextSiblingOfType = (element) => {
|
|
|
374
374
|
}
|
|
375
375
|
return null;
|
|
376
376
|
};
|
|
377
|
-
/**
|
|
378
|
-
* Checks input for usable number. Not NaN and not Infinite.
|
|
379
|
-
*/
|
|
380
|
-
export const isSafeNumber = (input) => {
|
|
381
|
-
return typeof input === 'number' && !isNaN(input) && isFinite(input);
|
|
382
|
-
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
+
import { config } from "../../global/config";
|
|
4
5
|
/**
|
|
5
6
|
* Logs a warning to the console with an Ionic prefix
|
|
6
7
|
* to indicate the library that is warning the developer.
|
|
@@ -8,9 +9,12 @@
|
|
|
8
9
|
* @param message - The string message to be logged to the console.
|
|
9
10
|
*/
|
|
10
11
|
export const printIonWarning = (message, ...params) => {
|
|
11
|
-
|
|
12
|
+
const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
|
|
13
|
+
if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
|
|
14
|
+
return console.warn(`[Ionic Warning]: ${message}`, ...params);
|
|
15
|
+
}
|
|
12
16
|
};
|
|
13
|
-
|
|
17
|
+
/**
|
|
14
18
|
* Logs an error to the console with an Ionic prefix
|
|
15
19
|
* to indicate the library that is warning the developer.
|
|
16
20
|
*
|
|
@@ -18,7 +22,10 @@ export const printIonWarning = (message, ...params) => {
|
|
|
18
22
|
* @param params - Additional arguments to supply to the console.error.
|
|
19
23
|
*/
|
|
20
24
|
export const printIonError = (message, ...params) => {
|
|
21
|
-
|
|
25
|
+
const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
|
|
26
|
+
if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
|
|
27
|
+
return console.error(`[Ionic Error]: ${message}`, ...params);
|
|
28
|
+
}
|
|
22
29
|
};
|
|
23
30
|
/**
|
|
24
31
|
* Prints an error informing developers that an implementation requires an element to be used
|
|
@@ -67,8 +67,7 @@ const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
|
|
|
67
67
|
const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
|
|
68
68
|
const isCapacitorNative = (win) => {
|
|
69
69
|
const capacitor = win['Capacitor'];
|
|
70
|
-
|
|
71
|
-
return !!((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative) || ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNativePlatform) && !!capacitor.isNativePlatform()));
|
|
70
|
+
return !!(capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative);
|
|
72
71
|
};
|
|
73
72
|
const isElectron = (win) => testUserAgent(win, /electron/i);
|
|
74
73
|
const isPWA = (win) => { var _a; return !!(((_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, '(display-mode: standalone)').matches) || win.navigator.standalone); };
|