@ionic/core 8.4.4-dev.11741632207.1cb10db6 → 8.4.4-dev.11741648084.118e26ac
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 +30 -4
- package/components/checkbox.js +37 -5
- package/components/helpers.js +7 -1
- package/components/index9.js +1 -1
- package/components/ion-range.js +28 -6
- package/components/ion-router.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-select.js +47 -5
- package/components/ion-toggle.js +38 -5
- package/components/ionic-global.js +2 -1
- package/components/modal.js +15 -7
- package/dist/cjs/{app-globals-21afee77.js → app-globals-4283fe37.js} +1 -1
- package/dist/cjs/{data-108e531d.js → data-26456291.js} +1 -1
- package/dist/cjs/{framework-delegate-05579976.js → framework-delegate-c4f2ba04.js} +1 -1
- package/dist/cjs/{hardware-back-button-9e8a2c4f.js → hardware-back-button-f2cbbdce.js} +1 -1
- package/dist/cjs/{helpers-4be3f90d.js → helpers-b14a0f09.js} +7 -0
- package/dist/cjs/{index-0ff61d0b.js → index-0d2610b6.js} +4 -4
- package/dist/cjs/{index-2a46a047.js → index-275c982e.js} +1 -1
- package/dist/cjs/{index-6770fc00.js → index-608fc5fd.js} +2 -2
- package/dist/cjs/{index-26bb7e42.js → index-6ad4725f.js} +5 -5
- package/dist/cjs/{index-ad7a712e.js → index-786364c7.js} +1 -1
- package/dist/cjs/index.cjs.js +10 -10
- package/dist/cjs/{input-shims-fd997b01.js → input-shims-a2cf9d15.js} +4 -4
- package/dist/cjs/{input.utils-c15a1814.js → input.utils-18725f61.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 +36 -10
- package/dist/cjs/ion-app_8.cjs.entry.js +12 -12
- 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 +37 -7
- 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 +5 -5
- 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 +23 -15
- 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 +2 -2
- package/dist/cjs/ion-range.cjs.entry.js +30 -9
- 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 +52 -12
- 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 +5 -5
- package/dist/cjs/ion-toast.cjs.entry.js +6 -6
- package/dist/cjs/ion-toggle.cjs.entry.js +38 -7
- package/dist/cjs/{ionic-global-d9a8bb5b.js → ionic-global-96da1b2e.js} +2 -1
- package/dist/cjs/ionic.cjs.js +3 -3
- package/dist/cjs/{ios.transition-a4f35c55.js → ios.transition-e188169d.js} +4 -4
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-cdf904e6.js → md.transition-b66da2a1.js} +4 -4
- package/dist/cjs/{notch-controller-a0c464d1.js → notch-controller-bd07748b.js} +1 -1
- package/dist/cjs/{overlays-86695cf1.js → overlays-b0b07774.js} +5 -5
- package/dist/cjs/{status-tap-1a2485c1.js → status-tap-3b633cba.js} +4 -4
- package/dist/cjs/{swipe-back-47a52b83.js → swipe-back-b70cd52e.js} +1 -1
- package/dist/collection/components/alert/alert.js +34 -4
- package/dist/collection/components/checkbox/checkbox.ios.css +52 -15
- package/dist/collection/components/checkbox/checkbox.js +70 -3
- package/dist/collection/components/checkbox/checkbox.md.css +52 -15
- package/dist/collection/components/modal/gestures/sheet.js +11 -3
- package/dist/collection/components/modal/modal.js +5 -5
- package/dist/collection/components/range/range.js +25 -6
- package/dist/collection/components/select/select.ios.css +59 -0
- package/dist/collection/components/select/select.js +80 -3
- package/dist/collection/components/select/select.md.css +61 -0
- package/dist/collection/components/toggle/toggle.ios.css +52 -15
- package/dist/collection/components/toggle/toggle.js +71 -3
- package/dist/collection/components/toggle/toggle.md.css +52 -15
- package/dist/collection/utils/floating-point/index.js +5 -0
- package/dist/collection/utils/helpers.js +6 -0
- package/dist/collection/utils/platform.js +2 -1
- package/dist/collection/utils/test/platform.utils.js +1 -1
- package/dist/docs.json +222 -2
- package/dist/esm/{app-globals-5dbb61a5.js → app-globals-c10a1137.js} +1 -1
- package/dist/esm/{data-b3284b5e.js → data-bf516e75.js} +1 -1
- package/dist/esm/{framework-delegate-f683816e.js → framework-delegate-42bc40b1.js} +1 -1
- package/dist/esm/{hardware-back-button-06ef3c3e.js → hardware-back-button-44195e92.js} +1 -1
- package/dist/esm/{helpers-9b49d7d2.js → helpers-13b816c6.js} +7 -1
- package/dist/esm/{index-5a0f5fd0.js → index-28c8fd64.js} +1 -1
- package/dist/esm/{index-6a5baab0.js → index-879a2080.js} +5 -5
- package/dist/esm/{index-7105cd59.js → index-b4ac4019.js} +4 -4
- package/dist/esm/{index-6ad967f3.js → index-ce8d38d0.js} +1 -1
- package/dist/esm/{index-dd0f7395.js → index-ec2140bf.js} +2 -2
- package/dist/esm/index.js +10 -10
- package/dist/esm/{input-shims-dff819a9.js → input-shims-4c3d7279.js} +4 -4
- package/dist/esm/{input.utils-2f1029cf.js → input.utils-b4805900.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 +36 -10
- package/dist/esm/ion-app_8.entry.js +12 -12
- 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 +37 -7
- 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 +5 -5
- 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 +23 -15
- 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 +2 -2
- package/dist/esm/ion-range.entry.js +30 -9
- 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 +52 -12
- 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 +5 -5
- package/dist/esm/ion-toast.entry.js +6 -6
- package/dist/esm/ion-toggle.entry.js +38 -7
- package/dist/esm/{ionic-global-c81d82ab.js → ionic-global-bf78a847.js} +2 -1
- package/dist/esm/ionic.js +3 -3
- package/dist/esm/{ios.transition-314468a2.js → ios.transition-ffee637f.js} +4 -4
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{md.transition-a560e0e2.js → md.transition-3a4f9709.js} +4 -4
- package/dist/esm/{notch-controller-3dc61260.js → notch-controller-bb8f3a48.js} +1 -1
- package/dist/esm/{overlays-9a81f230.js → overlays-36f5880e.js} +5 -5
- package/dist/esm/{status-tap-d07dbc82.js → status-tap-2ce7841e.js} +4 -4
- package/dist/esm/{swipe-back-23ee7ab1.js → swipe-back-a258b011.js} +1 -1
- package/dist/esm-es5/app-globals-c10a1137.js +4 -0
- package/dist/esm-es5/{data-b3284b5e.js → data-bf516e75.js} +1 -1
- package/dist/esm-es5/{framework-delegate-f683816e.js → framework-delegate-42bc40b1.js} +1 -1
- package/dist/esm-es5/{hardware-back-button-06ef3c3e.js → hardware-back-button-44195e92.js} +1 -1
- package/dist/esm-es5/{helpers-9b49d7d2.js → helpers-13b816c6.js} +1 -1
- package/dist/esm-es5/{index-5a0f5fd0.js → index-28c8fd64.js} +1 -1
- package/dist/esm-es5/{index-6a5baab0.js → index-879a2080.js} +1 -1
- package/dist/esm-es5/{index-7105cd59.js → index-b4ac4019.js} +1 -1
- package/dist/esm-es5/{index-6ad967f3.js → index-ce8d38d0.js} +1 -1
- package/dist/esm-es5/{index-dd0f7395.js → index-ec2140bf.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/{input-shims-dff819a9.js → input-shims-4c3d7279.js} +1 -1
- package/dist/esm-es5/{input.utils-2f1029cf.js → input.utils-b4805900.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-c81d82ab.js → ionic-global-bf78a847.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-314468a2.js → ios.transition-ffee637f.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-3a4f9709.js +4 -0
- package/dist/esm-es5/{notch-controller-3dc61260.js → notch-controller-bb8f3a48.js} +1 -1
- package/dist/esm-es5/{overlays-9a81f230.js → overlays-36f5880e.js} +1 -1
- package/dist/esm-es5/{status-tap-d07dbc82.js → status-tap-2ce7841e.js} +1 -1
- package/dist/esm-es5/{swipe-back-23ee7ab1.js → swipe-back-a258b011.js} +1 -1
- package/dist/html.html-data.json +25 -1
- 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-bb2a6761.entry.js → p-00d5ab83.entry.js} +1 -1
- package/dist/ionic/{p-b1f885df.entry.js → p-020df11a.entry.js} +1 -1
- package/dist/ionic/{p-1a5bc5f7.js → p-03940ae5.js} +1 -1
- package/dist/ionic/p-0412232d.js +4 -0
- package/dist/ionic/{p-a309ca1c.entry.js → p-0434c94c.entry.js} +1 -1
- package/dist/ionic/{p-da8ef548.system.entry.js → p-05f90810.system.entry.js} +1 -1
- package/dist/ionic/{p-89bf08c7.entry.js → p-09e4bf0d.entry.js} +1 -1
- package/dist/ionic/p-0ab8caf8.system.entry.js +4 -0
- package/dist/ionic/{p-6ca64f4e.entry.js → p-0eab6979.entry.js} +1 -1
- package/dist/ionic/p-0f138cf3.entry.js +4 -0
- package/dist/ionic/{p-78c884a1.system.entry.js → p-166a794f.system.entry.js} +1 -1
- package/dist/ionic/{p-fca17935.entry.js → p-16dd9c9b.entry.js} +1 -1
- package/dist/ionic/{p-acb30a5c.system.js → p-187396b1.system.js} +1 -1
- package/dist/ionic/{p-fa210a45.system.entry.js → p-1cf593cf.system.entry.js} +1 -1
- package/dist/ionic/{p-4ad78edc.entry.js → p-1f62c30b.entry.js} +1 -1
- package/dist/ionic/p-21780245.entry.js +4 -0
- package/dist/ionic/{p-b936eb7e.system.entry.js → p-21ee4f71.system.entry.js} +1 -1
- package/dist/ionic/{p-04b4ee62.entry.js → p-221fbdf5.entry.js} +1 -1
- package/dist/ionic/{p-dd0c9350.system.entry.js → p-25580c85.system.entry.js} +1 -1
- package/dist/ionic/{p-dde1e5b8.entry.js → p-2840743b.entry.js} +1 -1
- package/dist/ionic/{p-3624eb4f.entry.js → p-29cccf08.entry.js} +1 -1
- package/dist/ionic/{p-343b6b1d.system.js → p-2c1d4963.system.js} +1 -1
- package/dist/ionic/{p-b93144e1.entry.js → p-2f429536.entry.js} +1 -1
- package/dist/ionic/{p-9b3bb24e.entry.js → p-34182275.entry.js} +1 -1
- package/dist/ionic/{p-2bc73fb5.js → p-3559bd4f.js} +1 -1
- package/dist/ionic/p-38df41a6.system.js +4 -0
- package/dist/ionic/{p-8e407469.system.js → p-3a4d77b9.system.js} +1 -1
- package/dist/ionic/{p-3731296e.entry.js → p-3b872754.entry.js} +1 -1
- package/dist/ionic/{p-16960598.entry.js → p-41d7ca3c.entry.js} +1 -1
- package/dist/ionic/{p-f2fb9a7b.system.entry.js → p-4200e056.system.entry.js} +1 -1
- package/dist/ionic/{p-bf63d4b2.entry.js → p-43bfbfd7.entry.js} +1 -1
- package/dist/ionic/{p-e8f34871.entry.js → p-441c2c8c.entry.js} +1 -1
- package/dist/ionic/{p-1f9fa897.system.entry.js → p-47026941.system.entry.js} +1 -1
- package/dist/ionic/{p-f3102647.system.entry.js → p-478dfa8c.system.entry.js} +1 -1
- package/dist/ionic/{p-ba3f918e.entry.js → p-48e9eedb.entry.js} +1 -1
- package/dist/ionic/{p-0eb2553a.system.entry.js → p-4a98a017.system.entry.js} +1 -1
- package/dist/ionic/{p-990630ca.js → p-4e0643a3.js} +1 -1
- package/dist/ionic/p-4e8946f7.js +4 -0
- package/dist/ionic/{p-c59abcb6.system.entry.js → p-506f2664.system.entry.js} +1 -1
- package/dist/ionic/p-51d4cdba.system.js +4 -0
- package/dist/ionic/{p-5126cf1e.system.js → p-52b61cba.system.js} +1 -1
- package/dist/ionic/p-541b5191.entry.js +4 -0
- package/dist/ionic/{p-f5d6624d.entry.js → p-5a1017f3.entry.js} +1 -1
- package/dist/ionic/{p-36c448fe.entry.js → p-5bc47f96.entry.js} +1 -1
- package/dist/ionic/p-5c364a5b.entry.js +4 -0
- package/dist/ionic/{p-ca7b5bec.system.entry.js → p-5f10138c.system.entry.js} +1 -1
- package/dist/ionic/{p-ad10b555.system.entry.js → p-5f7a9125.system.entry.js} +2 -2
- package/dist/ionic/p-60f7c85d.entry.js +4 -0
- package/dist/ionic/p-62151078.system.entry.js +4 -0
- package/dist/ionic/p-623b4fa6.system.entry.js +4 -0
- package/dist/ionic/{p-78604c34.entry.js → p-62d2e17d.entry.js} +1 -1
- package/dist/ionic/{p-4f8e2c0a.system.entry.js → p-6321783a.system.entry.js} +1 -1
- package/dist/ionic/{p-d99e8644.system.js → p-6579f457.system.js} +1 -1
- package/dist/ionic/{p-73262d9e.system.entry.js → p-66425a02.system.entry.js} +1 -1
- package/dist/ionic/{p-8f2fe279.system.entry.js → p-6703c724.system.entry.js} +1 -1
- package/dist/ionic/{p-bb11d9fb.js → p-6eb35904.js} +1 -1
- package/dist/ionic/{p-ecceeb90.js → p-6f3d8334.js} +1 -1
- package/dist/ionic/{p-462ddb40.entry.js → p-6f6dd24f.entry.js} +1 -1
- package/dist/ionic/p-717520d6.system.entry.js +4 -0
- package/dist/ionic/{p-655723eb.system.entry.js → p-72210f2a.system.entry.js} +1 -1
- package/dist/ionic/{p-73897169.system.js → p-74e328cf.system.js} +1 -1
- package/dist/ionic/{p-39dd4f62.js → p-761c42da.js} +1 -1
- package/dist/ionic/{p-484d855b.system.entry.js → p-7d1cbf97.system.entry.js} +2 -2
- package/dist/ionic/{p-5c9324c6.js → p-7e70835f.js} +1 -1
- package/dist/ionic/{p-c1dbc8b6.system.entry.js → p-7ef62ef9.system.entry.js} +1 -1
- package/dist/ionic/{p-af452fa4.system.js → p-80d837dd.system.js} +1 -1
- package/dist/ionic/{p-744b2484.system.entry.js → p-826c4d67.system.entry.js} +1 -1
- package/dist/ionic/{p-4a1d747d.entry.js → p-82afe775.entry.js} +1 -1
- package/dist/ionic/{p-4d3a5f86.js → p-845f8d16.js} +1 -1
- package/dist/ionic/{p-af744710.system.entry.js → p-84fb742d.system.entry.js} +1 -1
- package/dist/ionic/{p-29c6c783.entry.js → p-85d6d07c.entry.js} +1 -1
- package/dist/ionic/{p-860eb968.system.js → p-86a9a4ca.system.js} +1 -1
- package/dist/ionic/{p-3c8e5c23.system.js → p-8911101b.system.js} +1 -1
- package/dist/ionic/{p-c3802319.system.js → p-8973b827.system.js} +1 -1
- package/dist/ionic/{p-7a1766d6.js → p-89e678fa.js} +1 -1
- package/dist/ionic/p-8a3509b8.js +4 -0
- package/dist/ionic/{p-b3680e2f.system.js → p-8aa290af.system.js} +1 -1
- package/dist/ionic/{p-fd6cff12.entry.js → p-8eee812a.entry.js} +1 -1
- package/dist/ionic/{p-955c3eb8.entry.js → p-8f89c8e3.entry.js} +1 -1
- package/dist/ionic/{p-21c7f006.entry.js → p-8fa80de0.entry.js} +1 -1
- package/dist/ionic/{p-18e101b7.system.entry.js → p-9104d662.system.entry.js} +1 -1
- package/dist/ionic/{p-2cd35dd9.entry.js → p-95a11fc4.entry.js} +1 -1
- package/dist/ionic/{p-e32557bb.system.entry.js → p-97542341.system.entry.js} +1 -1
- package/dist/ionic/{p-60e2b91f.system.entry.js → p-986a98d9.system.entry.js} +2 -2
- package/dist/ionic/{p-88d323cd.system.entry.js → p-98aefaa1.system.entry.js} +1 -1
- package/dist/ionic/{p-d821466d.system.entry.js → p-9994c82e.system.entry.js} +1 -1
- package/dist/ionic/{p-e06861a9.system.entry.js → p-99b4160f.system.entry.js} +1 -1
- package/dist/ionic/p-9a950d3c.entry.js +4 -0
- package/dist/ionic/{p-75cc5913.system.entry.js → p-9aaaff17.system.entry.js} +1 -1
- package/dist/ionic/{p-5fce0c0b.system.entry.js → p-9c7efe25.system.entry.js} +1 -1
- package/dist/ionic/{p-bdad26e3.entry.js → p-9d4a8059.entry.js} +1 -1
- package/dist/ionic/{p-70af0afb.entry.js → p-a17a1fb9.entry.js} +1 -1
- package/dist/ionic/{p-e8d56122.js → p-a3e60403.js} +1 -1
- package/dist/ionic/{p-c8d645b3.entry.js → p-a4b108a7.entry.js} +1 -1
- package/dist/ionic/{p-fd4e25b5.system.entry.js → p-a4e7eaf6.system.entry.js} +1 -1
- package/dist/ionic/{p-b3c4ddc2.system.entry.js → p-aae5907a.system.entry.js} +1 -1
- package/dist/ionic/p-afba4c00.system.entry.js +4 -0
- package/dist/ionic/p-b1c4a9db.js +4 -0
- package/dist/ionic/{p-826a2aaf.entry.js → p-b1dbfc12.entry.js} +1 -1
- package/dist/ionic/{p-d4ca0475.js → p-b566749e.js} +1 -1
- package/dist/ionic/{p-bc616455.entry.js → p-bbfa740f.entry.js} +1 -1
- package/dist/ionic/{p-0609cf64.entry.js → p-bd1c99cb.entry.js} +1 -1
- package/dist/ionic/p-be8ecfc1.js +4 -0
- package/dist/ionic/p-c1ad8eb0.system.js +4 -0
- package/dist/ionic/{p-c935cfc9.js → p-c30c10af.js} +1 -1
- package/dist/ionic/{p-f89cf011.system.entry.js → p-c3de6cd1.system.entry.js} +1 -1
- package/dist/ionic/{p-6e077659.entry.js → p-c43872df.entry.js} +1 -1
- package/dist/ionic/{p-e75b0c87.entry.js → p-c4f9367a.entry.js} +1 -1
- package/dist/ionic/{p-648f5e38.system.entry.js → p-c52ca485.system.entry.js} +1 -1
- package/dist/ionic/{p-a9e24ae2.system.entry.js → p-c55254f0.system.entry.js} +1 -1
- package/dist/ionic/{p-33a8a71b.entry.js → p-c66604e4.entry.js} +1 -1
- package/dist/ionic/{p-f8e37d24.system.entry.js → p-cad0b874.system.entry.js} +1 -1
- package/dist/ionic/{p-a69b9fc5.system.js → p-d86d7845.system.js} +1 -1
- package/dist/ionic/{p-058e61eb.system.js → p-d8c1ac0d.system.js} +1 -1
- package/dist/ionic/{p-75544514.system.entry.js → p-d9162cf7.system.entry.js} +1 -1
- package/dist/ionic/{p-e5ed3da9.entry.js → p-dbe534f5.entry.js} +1 -1
- package/dist/ionic/{p-2d1d8a25.entry.js → p-dde5afee.entry.js} +1 -1
- package/dist/ionic/{p-2abc5389.entry.js → p-de0b8503.entry.js} +1 -1
- package/dist/ionic/{p-dc146a2a.system.entry.js → p-de4fef3c.system.entry.js} +1 -1
- package/dist/ionic/{p-84d08aae.system.entry.js → p-e0a2abde.system.entry.js} +1 -1
- package/dist/ionic/{p-d743e981.js → p-e25cd3c7.js} +1 -1
- package/dist/ionic/{p-665c22ee.entry.js → p-e3bd1070.entry.js} +1 -1
- package/dist/ionic/{p-8cfba7e9.system.entry.js → p-e56b4e0f.system.entry.js} +1 -1
- package/dist/ionic/{p-9a100adc.entry.js → p-e824ffe7.entry.js} +1 -1
- package/dist/ionic/{p-9f3008d4.system.js → p-eb4ac14d.system.js} +1 -1
- package/dist/ionic/{p-1c934892.entry.js → p-ebceb0ac.entry.js} +1 -1
- package/dist/ionic/{p-e0a6dc45.system.entry.js → p-ec92cc52.system.entry.js} +1 -1
- package/dist/ionic/{p-1283c4fa.system.entry.js → p-ee70a913.system.entry.js} +1 -1
- package/dist/ionic/{p-d7bb5325.entry.js → p-f4cddcd0.entry.js} +1 -1
- package/dist/ionic/p-f4f255cb.system.js +4 -0
- package/dist/ionic/{p-4452a8ac.system.js → p-f5a536e1.system.js} +1 -1
- package/dist/ionic/{p-a6cf686b.system.entry.js → p-f5f52b6d.system.entry.js} +1 -1
- package/dist/ionic/{p-578efda4.system.js → p-f6d066b4.system.js} +1 -1
- package/dist/ionic/{p-95da3ae2.system.js → p-f6e7870b.system.js} +1 -1
- package/dist/ionic/{p-e9ddf8fe.system.entry.js → p-fa5a45cd.system.entry.js} +1 -1
- package/dist/ionic/{p-a9eda6d0.system.entry.js → p-fb048d4d.system.entry.js} +1 -1
- package/dist/ionic/p-fe00ac05.system.entry.js +4 -0
- package/dist/ionic/{p-346b2baf.js → p-fe7be7b4.js} +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +19 -0
- package/dist/types/components/modal/modal.d.ts +6 -3
- package/dist/types/components/range/range.d.ts +3 -2
- package/dist/types/components/select/select.d.ts +23 -0
- package/dist/types/components/toggle/toggle.d.ts +19 -0
- package/dist/types/components.d.ts +50 -2
- package/dist/types/utils/helpers.d.ts +4 -0
- package/dist/types/utils/native/capacitor.d.ts +7 -1
- package/dist/types/utils/test/platform.utils.d.ts +1 -1
- package/hydrate/index.js +210 -32
- package/hydrate/index.mjs +210 -32
- package/package.json +5 -5
- package/dist/esm-es5/app-globals-5dbb61a5.js +0 -4
- package/dist/esm-es5/md.transition-a560e0e2.js +0 -4
- package/dist/ionic/p-0574e87e.js +0 -4
- package/dist/ionic/p-155f4d90.entry.js +0 -4
- package/dist/ionic/p-1f405274.js +0 -4
- package/dist/ionic/p-21227121.js +0 -4
- package/dist/ionic/p-22149a4f.js +0 -4
- package/dist/ionic/p-2c9eb774.system.js +0 -4
- package/dist/ionic/p-322c5fb4.system.js +0 -4
- package/dist/ionic/p-4a25618e.system.entry.js +0 -4
- package/dist/ionic/p-52245809.js +0 -4
- package/dist/ionic/p-5733b3de.system.entry.js +0 -4
- package/dist/ionic/p-67222c16.system.js +0 -4
- package/dist/ionic/p-68c5fcd6.system.entry.js +0 -4
- package/dist/ionic/p-712fedc9.entry.js +0 -4
- package/dist/ionic/p-7b02a0e4.entry.js +0 -4
- package/dist/ionic/p-7c3b0a9b.system.entry.js +0 -4
- package/dist/ionic/p-8f4361a8.system.entry.js +0 -4
- package/dist/ionic/p-9f763f14.entry.js +0 -4
- package/dist/ionic/p-a43ad5b5.entry.js +0 -4
- package/dist/ionic/p-acc8399c.system.entry.js +0 -4
- package/dist/ionic/p-c67ded77.entry.js +0 -4
- package/dist/ionic/p-fbf86e62.system.js +0 -4
|
@@ -189,32 +189,39 @@ input {
|
|
|
189
189
|
opacity: 0;
|
|
190
190
|
}
|
|
191
191
|
|
|
192
|
-
|
|
192
|
+
.checkbox-bottom {
|
|
193
|
+
padding-top: 4px;
|
|
194
|
+
display: flex;
|
|
193
195
|
justify-content: space-between;
|
|
196
|
+
font-size: 0.75rem;
|
|
197
|
+
white-space: normal;
|
|
194
198
|
}
|
|
195
199
|
|
|
196
|
-
:host(.checkbox-
|
|
197
|
-
|
|
200
|
+
:host(.checkbox-label-placement-stacked) .checkbox-bottom {
|
|
201
|
+
font-size: 1rem;
|
|
198
202
|
}
|
|
199
203
|
|
|
200
|
-
|
|
201
|
-
|
|
204
|
+
/**
|
|
205
|
+
* Error text should only be shown when .ion-invalid is
|
|
206
|
+
* present on the checkbox. Otherwise the helper text should
|
|
207
|
+
* be shown.
|
|
208
|
+
*/
|
|
209
|
+
.checkbox-bottom .error-text {
|
|
210
|
+
display: none;
|
|
211
|
+
color: var(--ion-color-danger, #c5000f);
|
|
202
212
|
}
|
|
203
213
|
|
|
204
|
-
|
|
205
|
-
|
|
214
|
+
.checkbox-bottom .helper-text {
|
|
215
|
+
display: block;
|
|
216
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
206
217
|
}
|
|
207
218
|
|
|
208
|
-
:host(.
|
|
209
|
-
|
|
219
|
+
:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text {
|
|
220
|
+
display: block;
|
|
210
221
|
}
|
|
211
222
|
|
|
212
|
-
:host(.checkbox-
|
|
213
|
-
:
|
|
214
|
-
:host(.checkbox-justify-end),
|
|
215
|
-
:host(.checkbox-alignment-start),
|
|
216
|
-
:host(.checkbox-alignment-center) {
|
|
217
|
-
display: block;
|
|
223
|
+
:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text {
|
|
224
|
+
display: none;
|
|
218
225
|
}
|
|
219
226
|
|
|
220
227
|
/**
|
|
@@ -243,6 +250,7 @@ input {
|
|
|
243
250
|
*/
|
|
244
251
|
:host(.checkbox-label-placement-end) .checkbox-wrapper {
|
|
245
252
|
flex-direction: row-reverse;
|
|
253
|
+
justify-content: start;
|
|
246
254
|
}
|
|
247
255
|
|
|
248
256
|
/**
|
|
@@ -285,6 +293,7 @@ input {
|
|
|
285
293
|
*/
|
|
286
294
|
:host(.checkbox-label-placement-stacked) .checkbox-wrapper {
|
|
287
295
|
flex-direction: column;
|
|
296
|
+
text-align: center;
|
|
288
297
|
}
|
|
289
298
|
|
|
290
299
|
:host(.checkbox-label-placement-stacked) .label-text-wrapper {
|
|
@@ -330,6 +339,34 @@ input {
|
|
|
330
339
|
}
|
|
331
340
|
}
|
|
332
341
|
|
|
342
|
+
:host(.checkbox-justify-space-between) .checkbox-wrapper {
|
|
343
|
+
justify-content: space-between;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
:host(.checkbox-justify-start) .checkbox-wrapper {
|
|
347
|
+
justify-content: start;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
:host(.checkbox-justify-end) .checkbox-wrapper {
|
|
351
|
+
justify-content: end;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
:host(.checkbox-alignment-start) .checkbox-wrapper {
|
|
355
|
+
align-items: start;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
:host(.checkbox-alignment-center) .checkbox-wrapper {
|
|
359
|
+
align-items: center;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
:host(.checkbox-justify-space-between),
|
|
363
|
+
:host(.checkbox-justify-start),
|
|
364
|
+
:host(.checkbox-justify-end),
|
|
365
|
+
:host(.checkbox-alignment-start),
|
|
366
|
+
:host(.checkbox-alignment-center) {
|
|
367
|
+
display: block;
|
|
368
|
+
}
|
|
369
|
+
|
|
333
370
|
:host(.checkbox-checked) .checkbox-icon,
|
|
334
371
|
:host(.checkbox-indeterminate) .checkbox-icon {
|
|
335
372
|
border-color: var(--border-color-checked);
|
|
@@ -13,10 +13,15 @@ import { getIonMode } from "../../global/ionic-global";
|
|
|
13
13
|
* @part container - The container for the checkbox mark.
|
|
14
14
|
* @part label - The label text describing the checkbox.
|
|
15
15
|
* @part mark - The checkmark used to indicate the checked state.
|
|
16
|
+
* @part supporting-text - Supporting text displayed beneath the checkbox label.
|
|
17
|
+
* @part helper-text - Supporting text displayed beneath the checkbox label when the checkbox is valid.
|
|
18
|
+
* @part error-text - Supporting text displayed beneath the checkbox label when the checkbox is invalid and touched.
|
|
16
19
|
*/
|
|
17
20
|
export class Checkbox {
|
|
18
21
|
constructor() {
|
|
19
22
|
this.inputId = `ion-cb-${checkboxIds++}`;
|
|
23
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
24
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
20
25
|
this.inheritedAttributes = {};
|
|
21
26
|
/**
|
|
22
27
|
* Sets the checked property and emits
|
|
@@ -54,6 +59,8 @@ export class Checkbox {
|
|
|
54
59
|
this.checked = false;
|
|
55
60
|
this.indeterminate = false;
|
|
56
61
|
this.disabled = false;
|
|
62
|
+
this.errorText = undefined;
|
|
63
|
+
this.helperText = undefined;
|
|
57
64
|
this.value = 'on';
|
|
58
65
|
this.labelPlacement = 'start';
|
|
59
66
|
this.justify = undefined;
|
|
@@ -69,12 +76,38 @@ export class Checkbox {
|
|
|
69
76
|
this.focusEl.focus();
|
|
70
77
|
}
|
|
71
78
|
}
|
|
79
|
+
getHintTextID() {
|
|
80
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
81
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
82
|
+
return errorTextId;
|
|
83
|
+
}
|
|
84
|
+
if (helperText) {
|
|
85
|
+
return helperTextId;
|
|
86
|
+
}
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Responsible for rendering helper text and error text.
|
|
91
|
+
* This element should only be rendered if hint text is set.
|
|
92
|
+
*/
|
|
93
|
+
renderHintText() {
|
|
94
|
+
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
95
|
+
/**
|
|
96
|
+
* undefined and empty string values should
|
|
97
|
+
* be treated as not having helper/error text.
|
|
98
|
+
*/
|
|
99
|
+
const hasHintText = !!helperText || !!errorText;
|
|
100
|
+
if (!hasHintText) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
return (h("div", { class: "checkbox-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)));
|
|
104
|
+
}
|
|
72
105
|
render() {
|
|
73
106
|
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
|
|
74
107
|
const mode = getIonMode(this);
|
|
75
108
|
const path = getSVGPath(mode, indeterminate);
|
|
76
109
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
77
|
-
return (h(Host, { key: '
|
|
110
|
+
return (h(Host, { key: '7ac31df89b07c781ddcd30a6a8c109494d0c500a', "aria-checked": indeterminate ? 'mixed' : `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, class: createColorClasses(color, {
|
|
78
111
|
[mode]: true,
|
|
79
112
|
'in-item': hostContext('ion-item', el),
|
|
80
113
|
'checkbox-checked': checked,
|
|
@@ -84,10 +117,10 @@ export class Checkbox {
|
|
|
84
117
|
[`checkbox-justify-${justify}`]: justify !== undefined,
|
|
85
118
|
[`checkbox-alignment-${alignment}`]: alignment !== undefined,
|
|
86
119
|
[`checkbox-label-placement-${labelPlacement}`]: true,
|
|
87
|
-
}), onClick: this.onClick }, h("label", { key: '
|
|
120
|
+
}), onClick: this.onClick }, h("label", { key: '674e923fe1ec83a33c31d67b0d414d61ba8f9e4b', class: "checkbox-wrapper" }, h("input", Object.assign({ key: 'c4866e392fbdf3b76edcd1507cb67f40a213a4e7', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), h("div", { key: '79cb96e5963b9331a760438ec8cc9e456215de91', class: {
|
|
88
121
|
'label-text-wrapper': true,
|
|
89
122
|
'label-text-wrapper-hidden': el.textContent === '',
|
|
90
|
-
}, part: "label" }, h("slot", { key: '
|
|
123
|
+
}, part: "label" }, h("slot", { key: '896cb26292c9a4a6c105afb39611472b93bf5e90' }), this.renderHintText()), h("div", { key: '52cd22e79fd5db30b45d7b092aa5af3944392336', class: "native-wrapper" }, h("svg", { key: '18d862ab7cc32055eaf200eea560ff1b2b6cbde0', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
|
|
91
124
|
}
|
|
92
125
|
getSVGPath(mode, indeterminate) {
|
|
93
126
|
let path = indeterminate ? (h("path", { d: "M6 12L18 12", part: "mark" })) : (h("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
|
|
@@ -207,6 +240,40 @@ export class Checkbox {
|
|
|
207
240
|
"reflect": false,
|
|
208
241
|
"defaultValue": "false"
|
|
209
242
|
},
|
|
243
|
+
"errorText": {
|
|
244
|
+
"type": "string",
|
|
245
|
+
"mutable": false,
|
|
246
|
+
"complexType": {
|
|
247
|
+
"original": "string",
|
|
248
|
+
"resolved": "string | undefined",
|
|
249
|
+
"references": {}
|
|
250
|
+
},
|
|
251
|
+
"required": false,
|
|
252
|
+
"optional": true,
|
|
253
|
+
"docs": {
|
|
254
|
+
"tags": [],
|
|
255
|
+
"text": "Text that is placed under the checkbox label and displayed when an error is detected."
|
|
256
|
+
},
|
|
257
|
+
"attribute": "error-text",
|
|
258
|
+
"reflect": false
|
|
259
|
+
},
|
|
260
|
+
"helperText": {
|
|
261
|
+
"type": "string",
|
|
262
|
+
"mutable": false,
|
|
263
|
+
"complexType": {
|
|
264
|
+
"original": "string",
|
|
265
|
+
"resolved": "string | undefined",
|
|
266
|
+
"references": {}
|
|
267
|
+
},
|
|
268
|
+
"required": false,
|
|
269
|
+
"optional": true,
|
|
270
|
+
"docs": {
|
|
271
|
+
"tags": [],
|
|
272
|
+
"text": "Text that is placed under the checkbox label and displayed when no error is detected."
|
|
273
|
+
},
|
|
274
|
+
"attribute": "helper-text",
|
|
275
|
+
"reflect": false
|
|
276
|
+
},
|
|
210
277
|
"value": {
|
|
211
278
|
"type": "any",
|
|
212
279
|
"mutable": false,
|
|
@@ -189,32 +189,39 @@ input {
|
|
|
189
189
|
opacity: 0;
|
|
190
190
|
}
|
|
191
191
|
|
|
192
|
-
|
|
192
|
+
.checkbox-bottom {
|
|
193
|
+
padding-top: 4px;
|
|
194
|
+
display: flex;
|
|
193
195
|
justify-content: space-between;
|
|
196
|
+
font-size: 0.75rem;
|
|
197
|
+
white-space: normal;
|
|
194
198
|
}
|
|
195
199
|
|
|
196
|
-
:host(.checkbox-
|
|
197
|
-
|
|
200
|
+
:host(.checkbox-label-placement-stacked) .checkbox-bottom {
|
|
201
|
+
font-size: 1rem;
|
|
198
202
|
}
|
|
199
203
|
|
|
200
|
-
|
|
201
|
-
|
|
204
|
+
/**
|
|
205
|
+
* Error text should only be shown when .ion-invalid is
|
|
206
|
+
* present on the checkbox. Otherwise the helper text should
|
|
207
|
+
* be shown.
|
|
208
|
+
*/
|
|
209
|
+
.checkbox-bottom .error-text {
|
|
210
|
+
display: none;
|
|
211
|
+
color: var(--ion-color-danger, #c5000f);
|
|
202
212
|
}
|
|
203
213
|
|
|
204
|
-
|
|
205
|
-
|
|
214
|
+
.checkbox-bottom .helper-text {
|
|
215
|
+
display: block;
|
|
216
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
206
217
|
}
|
|
207
218
|
|
|
208
|
-
:host(.
|
|
209
|
-
|
|
219
|
+
:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text {
|
|
220
|
+
display: block;
|
|
210
221
|
}
|
|
211
222
|
|
|
212
|
-
:host(.checkbox-
|
|
213
|
-
:
|
|
214
|
-
:host(.checkbox-justify-end),
|
|
215
|
-
:host(.checkbox-alignment-start),
|
|
216
|
-
:host(.checkbox-alignment-center) {
|
|
217
|
-
display: block;
|
|
223
|
+
:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text {
|
|
224
|
+
display: none;
|
|
218
225
|
}
|
|
219
226
|
|
|
220
227
|
/**
|
|
@@ -243,6 +250,7 @@ input {
|
|
|
243
250
|
*/
|
|
244
251
|
:host(.checkbox-label-placement-end) .checkbox-wrapper {
|
|
245
252
|
flex-direction: row-reverse;
|
|
253
|
+
justify-content: start;
|
|
246
254
|
}
|
|
247
255
|
|
|
248
256
|
/**
|
|
@@ -285,6 +293,7 @@ input {
|
|
|
285
293
|
*/
|
|
286
294
|
:host(.checkbox-label-placement-stacked) .checkbox-wrapper {
|
|
287
295
|
flex-direction: column;
|
|
296
|
+
text-align: center;
|
|
288
297
|
}
|
|
289
298
|
|
|
290
299
|
:host(.checkbox-label-placement-stacked) .label-text-wrapper {
|
|
@@ -330,6 +339,34 @@ input {
|
|
|
330
339
|
}
|
|
331
340
|
}
|
|
332
341
|
|
|
342
|
+
:host(.checkbox-justify-space-between) .checkbox-wrapper {
|
|
343
|
+
justify-content: space-between;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
:host(.checkbox-justify-start) .checkbox-wrapper {
|
|
347
|
+
justify-content: start;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
:host(.checkbox-justify-end) .checkbox-wrapper {
|
|
351
|
+
justify-content: end;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
:host(.checkbox-alignment-start) .checkbox-wrapper {
|
|
355
|
+
align-items: start;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
:host(.checkbox-alignment-center) .checkbox-wrapper {
|
|
359
|
+
align-items: center;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
:host(.checkbox-justify-space-between),
|
|
363
|
+
:host(.checkbox-justify-start),
|
|
364
|
+
:host(.checkbox-justify-end),
|
|
365
|
+
:host(.checkbox-alignment-start),
|
|
366
|
+
:host(.checkbox-alignment-center) {
|
|
367
|
+
display: block;
|
|
368
|
+
}
|
|
369
|
+
|
|
333
370
|
:host(.checkbox-checked) .checkbox-icon,
|
|
334
371
|
:host(.checkbox-indeterminate) .checkbox-icon {
|
|
335
372
|
border-color: var(--border-color-checked);
|
|
@@ -130,11 +130,12 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
130
130
|
const contentEl = findClosestIonContent(detail.event.target);
|
|
131
131
|
currentBreakpoint = getCurrentBreakpoint();
|
|
132
132
|
/**
|
|
133
|
-
* If
|
|
134
|
-
* if the content is
|
|
133
|
+
* If `expandToScroll` is disabled, we should not allow the swipe gesture
|
|
134
|
+
* to start if the content is not scrolled to the top.
|
|
135
135
|
*/
|
|
136
136
|
if (!expandToScroll && contentEl) {
|
|
137
|
-
|
|
137
|
+
const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
|
|
138
|
+
return scrollEl.scrollTop === 0;
|
|
138
139
|
}
|
|
139
140
|
if (currentBreakpoint === 1 && contentEl) {
|
|
140
141
|
/**
|
|
@@ -192,6 +193,13 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
192
193
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
193
194
|
};
|
|
194
195
|
const onMove = (detail) => {
|
|
196
|
+
/**
|
|
197
|
+
* If `expandToScroll` is disabled, we should not allow the swipe gesture
|
|
198
|
+
* to continue if the gesture is not pulling down.
|
|
199
|
+
*/
|
|
200
|
+
if (!expandToScroll && detail.deltaY <= 0) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
195
203
|
/**
|
|
196
204
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
197
205
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -573,18 +573,18 @@ export class Modal {
|
|
|
573
573
|
const mode = getIonMode(this);
|
|
574
574
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
575
575
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
576
|
-
return (h(Host, Object.assign({ key: '
|
|
576
|
+
return (h(Host, Object.assign({ key: 'e661562f9e4126136cee337e4ab8ca69ac80faae', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
577
577
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
578
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '
|
|
578
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '9221692e0e111f99e80239ca44faaaed9b288425', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '20def7088d31e5eb13c3f2404c514cd8b74cd966', class: "modal-shadow" }), h("div", Object.assign({ key: 'b11229330571d4ff7b9136dfdddcd7d759ada876',
|
|
579
579
|
/*
|
|
580
580
|
role and aria-modal must be used on the
|
|
581
581
|
same element. They must also be set inside the
|
|
582
582
|
shadow DOM otherwise ion-button will not be highlighted
|
|
583
583
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
584
584
|
*/
|
|
585
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '
|
|
585
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '95b2a62477dfbc063a91910f0d37357388cfd914', class: "modal-handle",
|
|
586
586
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
587
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '
|
|
587
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: 'fba17dfdbdffbfd8992f473f633d172c5124dc19' }))));
|
|
588
588
|
}
|
|
589
589
|
static get is() { return "ion-modal"; }
|
|
590
590
|
static get encapsulation() { return "shadow"; }
|
|
@@ -754,7 +754,7 @@ export class Modal {
|
|
|
754
754
|
"optional": false,
|
|
755
755
|
"docs": {
|
|
756
756
|
"tags": [],
|
|
757
|
-
"text": "Controls whether scrolling or dragging within the sheet modal expands\nit to a larger breakpoint. This only takes effect when `breakpoints`\nand `initialBreakpoint` are set.\n\nIf `true`, scrolling or dragging anywhere in the modal will first expand\nit to the next breakpoint. Once fully expanded, scrolling will affect the
|
|
757
|
+
"text": "Controls whether scrolling or dragging within the sheet modal expands\nit to a larger breakpoint. This only takes effect when `breakpoints`\nand `initialBreakpoint` are set.\n\nIf `true`, scrolling or dragging anywhere in the modal will first expand\nit to the next breakpoint. Once fully expanded, scrolling will affect the\ncontent.\nIf `false`, scrolling will always affect the content. The modal will\nonly expand when dragging the header or handle. The modal will close when\ndragging the header or handle. It can also be closed when dragging the\ncontent, but only if the content is scrolled to the top."
|
|
758
758
|
},
|
|
759
759
|
"attribute": "expand-to-scroll",
|
|
760
760
|
"reflect": false,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Host, h } from "@stencil/core";
|
|
5
5
|
import { findClosestIonContent, disableContentScrollY, resetContentScrollY } from "../../utils/content/index";
|
|
6
|
-
import { inheritAriaAttributes, clamp, debounceEvent, renderHiddenInput } from "../../utils/helpers";
|
|
6
|
+
import { inheritAriaAttributes, clamp, debounceEvent, renderHiddenInput, isSafeNumber } from "../../utils/helpers";
|
|
7
7
|
import { printIonWarning } from "../../utils/logging/index";
|
|
8
8
|
import { isRTL } from "../../utils/rtl/index";
|
|
9
9
|
import { createColorClasses, hostContext } from "../../utils/theme";
|
|
@@ -128,16 +128,27 @@ export class Range {
|
|
|
128
128
|
*/
|
|
129
129
|
this.ionInput = debounce === undefined ? originalIonInput !== null && originalIonInput !== void 0 ? originalIonInput : ionInput : debounceEvent(ionInput, debounce);
|
|
130
130
|
}
|
|
131
|
-
minChanged() {
|
|
131
|
+
minChanged(newValue) {
|
|
132
|
+
if (!isSafeNumber(newValue)) {
|
|
133
|
+
this.min = 0;
|
|
134
|
+
}
|
|
132
135
|
if (!this.noUpdate) {
|
|
133
136
|
this.updateRatio();
|
|
134
137
|
}
|
|
135
138
|
}
|
|
136
|
-
maxChanged() {
|
|
139
|
+
maxChanged(newValue) {
|
|
140
|
+
if (!isSafeNumber(newValue)) {
|
|
141
|
+
this.max = 100;
|
|
142
|
+
}
|
|
137
143
|
if (!this.noUpdate) {
|
|
138
144
|
this.updateRatio();
|
|
139
145
|
}
|
|
140
146
|
}
|
|
147
|
+
stepChanged(newValue) {
|
|
148
|
+
if (!isSafeNumber(newValue)) {
|
|
149
|
+
this.step = 1;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
141
152
|
activeBarStartChanged() {
|
|
142
153
|
const { activeBarStart } = this;
|
|
143
154
|
if (activeBarStart !== undefined) {
|
|
@@ -170,6 +181,11 @@ export class Range {
|
|
|
170
181
|
this.rangeId = this.el.getAttribute('id');
|
|
171
182
|
}
|
|
172
183
|
this.inheritedAttributes = inheritAriaAttributes(this.el);
|
|
184
|
+
// If min, max, or step are not safe, set them to 0, 100, and 1, respectively.
|
|
185
|
+
// Each watch does this, but not before the initial load.
|
|
186
|
+
this.min = isSafeNumber(this.min) ? this.min : 0;
|
|
187
|
+
this.max = isSafeNumber(this.max) ? this.max : 100;
|
|
188
|
+
this.step = isSafeNumber(this.step) ? this.step : 1;
|
|
173
189
|
}
|
|
174
190
|
componentDidLoad() {
|
|
175
191
|
this.originalIonInput = this.ionInput;
|
|
@@ -564,7 +580,7 @@ export class Range {
|
|
|
564
580
|
const needsEndAdjustment = inItem && !hasEndContent;
|
|
565
581
|
const mode = getIonMode(this);
|
|
566
582
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
567
|
-
return (h(Host, { key: '
|
|
583
|
+
return (h(Host, { key: 'ddecc98800b9137294c8cadfbde7d07d5b3825d7', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
|
|
568
584
|
[mode]: true,
|
|
569
585
|
'in-item': inItem,
|
|
570
586
|
'range-disabled': disabled,
|
|
@@ -573,10 +589,10 @@ export class Range {
|
|
|
573
589
|
[`range-label-placement-${labelPlacement}`]: true,
|
|
574
590
|
'range-item-start-adjustment': needsStartAdjustment,
|
|
575
591
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
576
|
-
}) }, h("label", { key: '
|
|
592
|
+
}) }, h("label", { key: '5afdbea21b1b82efde1126ceb0a263f85731aecf', class: "range-wrapper", id: "range-label" }, h("div", { key: 'e47e0bbefcb931dff5b846f47b4458153b73df94', class: {
|
|
577
593
|
'label-text-wrapper': true,
|
|
578
594
|
'label-text-wrapper-hidden': !hasLabel,
|
|
579
|
-
}, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '
|
|
595
|
+
}, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '842f35cd03bb6108d1ecf0c0a07adfbdc900401c', class: "native-wrapper" }, h("slot", { key: '4a5141daaf5de5b3251bef4232ce5a27fc0395df', name: "start" }), this.renderRangeSlider(), h("slot", { key: '53ffe0a40b093c5fbcbc50d47eea6bb3f39dfdbb', name: "end" })))));
|
|
580
596
|
}
|
|
581
597
|
static get is() { return "ion-range"; }
|
|
582
598
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1031,6 +1047,9 @@ export class Range {
|
|
|
1031
1047
|
}, {
|
|
1032
1048
|
"propName": "max",
|
|
1033
1049
|
"methodName": "maxChanged"
|
|
1050
|
+
}, {
|
|
1051
|
+
"propName": "step",
|
|
1052
|
+
"methodName": "stepChanged"
|
|
1034
1053
|
}, {
|
|
1035
1054
|
"propName": "activeBarStart",
|
|
1036
1055
|
"methodName": "activeBarStartChanged"
|
|
@@ -299,6 +299,63 @@ button {
|
|
|
299
299
|
--highlight-color: var(--highlight-color-valid);
|
|
300
300
|
}
|
|
301
301
|
|
|
302
|
+
.select-bottom {
|
|
303
|
+
/**
|
|
304
|
+
* The bottom content should take on the start and end
|
|
305
|
+
* padding so it is always aligned with either the label
|
|
306
|
+
* or the start of the text select.
|
|
307
|
+
*/
|
|
308
|
+
-webkit-padding-start: var(--padding-start);
|
|
309
|
+
padding-inline-start: var(--padding-start);
|
|
310
|
+
-webkit-padding-end: var(--padding-end);
|
|
311
|
+
padding-inline-end: var(--padding-end);
|
|
312
|
+
padding-top: 5px;
|
|
313
|
+
padding-bottom: 0;
|
|
314
|
+
display: flex;
|
|
315
|
+
justify-content: space-between;
|
|
316
|
+
border-top: var(--border-width) var(--border-style) var(--border-color);
|
|
317
|
+
font-size: 0.75rem;
|
|
318
|
+
white-space: normal;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* If the select has a validity state, the
|
|
323
|
+
* border and label should reflect that as a color.
|
|
324
|
+
* The invalid state should show if the select is
|
|
325
|
+
* invalid and has already been touched.
|
|
326
|
+
* The valid state should show if the select
|
|
327
|
+
* is valid, has already been touched, and
|
|
328
|
+
* is currently focused. Do not show the valid
|
|
329
|
+
* highlight when the select is blurred.
|
|
330
|
+
*/
|
|
331
|
+
:host(.has-focus.ion-valid),
|
|
332
|
+
:host(.ion-touched.ion-invalid) {
|
|
333
|
+
--border-color: var(--highlight-color);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* Error text should only be shown when .ion-invalid is
|
|
338
|
+
* present on the select. Otherwise the helper text should
|
|
339
|
+
* be shown.
|
|
340
|
+
*/
|
|
341
|
+
.select-bottom .error-text {
|
|
342
|
+
display: none;
|
|
343
|
+
color: var(--highlight-color-invalid);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
.select-bottom .helper-text {
|
|
347
|
+
display: block;
|
|
348
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
:host(.ion-touched.ion-invalid) .select-bottom .error-text {
|
|
352
|
+
display: block;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
:host(.ion-touched.ion-invalid) .select-bottom .helper-text {
|
|
356
|
+
display: none;
|
|
357
|
+
}
|
|
358
|
+
|
|
302
359
|
.label-text-wrapper {
|
|
303
360
|
/**
|
|
304
361
|
* This causes the label to take up
|
|
@@ -686,6 +743,8 @@ button {
|
|
|
686
743
|
* }
|
|
687
744
|
*/
|
|
688
745
|
:host {
|
|
746
|
+
--border-width: 0.55px;
|
|
747
|
+
--border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));
|
|
689
748
|
--highlight-height: 0px;
|
|
690
749
|
}
|
|
691
750
|
|