@ionic/core 8.0.0-beta.2 → 8.0.0-beta.3
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/helpers.js +1 -47
- package/components/index9.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +7 -6
- package/components/ion-fab-button.js +2 -2
- package/components/ion-fab-list.js +2 -2
- package/components/ion-fab.js +2 -2
- package/components/ion-footer.js +2 -2
- package/components/ion-grid.js +2 -2
- package/components/ion-header.js +3 -3
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +2 -2
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input.js +5 -5
- package/components/ion-item-divider.js +2 -2
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +2 -2
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-loading.js +2 -2
- package/components/ion-menu-button.js +2 -2
- package/components/ion-menu-toggle.js +2 -2
- package/components/ion-menu.js +2 -2
- package/components/ion-modal.js +3 -3
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +2 -2
- package/components/ion-picker-legacy.js +2 -2
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-range.js +11 -24
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-reorder.js +1 -1
- package/components/ion-router-link.js +2 -2
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-router.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +4 -4
- package/components/ion-segment-button.js +3 -3
- package/components/ion-segment.js +2 -2
- package/components/ion-select-option.js +1 -1
- package/components/ion-select.js +9 -9
- package/components/ion-skeleton-text.js +2 -2
- package/components/ion-split-pane.js +2 -2
- package/components/ion-tab-bar.js +2 -2
- package/components/ion-tab-button.js +2 -2
- package/components/ion-tab.js +2 -2
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +2 -2
- package/components/ion-textarea.js +4 -4
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-title.js +2 -2
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +3 -3
- package/components/ion-toolbar.js +2 -2
- package/components/label.js +2 -2
- package/components/list-header.js +2 -2
- package/components/list.js +1 -1
- package/components/picker-column-option.js +2 -2
- package/components/picker-column.js +8 -4
- package/components/picker-column2.js +2 -2
- package/components/picker.js +2 -2
- package/components/popover.js +2 -2
- package/components/radio-group.js +1 -1
- package/components/radio.js +3 -3
- package/components/ripple-effect.js +1 -1
- package/components/select-popover.js +1 -1
- package/components/spinner.js +1 -1
- package/css/palettes/dark.always.css.map +1 -0
- package/css/{themes → palettes}/dark.class.css +4 -4
- package/css/palettes/dark.class.css.map +1 -0
- package/css/palettes/dark.system.css.map +1 -0
- package/css/palettes/high-contrast-dark.always.css.map +1 -0
- package/css/{themes → palettes}/high-contrast-dark.class.css +10 -10
- package/css/palettes/high-contrast-dark.class.css.map +1 -0
- package/css/palettes/high-contrast-dark.system.css.map +1 -0
- package/css/palettes/high-contrast.always.css.map +1 -0
- package/css/{themes → palettes}/high-contrast.class.css +31 -31
- package/css/palettes/high-contrast.class.css.map +1 -0
- package/css/palettes/high-contrast.system.css.map +1 -0
- package/dist/cjs/{animation-3e7bb91e.js → animation-58ecfe20.js} +1 -1
- package/dist/cjs/{framework-delegate-0499d444.js → framework-delegate-df3a2b04.js} +1 -1
- package/dist/cjs/{helpers-668b3d95.js → helpers-71097d9c.js} +0 -47
- package/dist/cjs/{index-e4b6c97e.js → index-14ae0c27.js} +3 -3
- package/dist/cjs/{index-ba7ba0af.js → index-289297dc.js} +2 -2
- package/dist/cjs/{index-c49cb371.js → index-7479ea5a.js} +1 -1
- package/dist/cjs/{index-275cc12e.js → index-a91a3e24.js} +1 -1
- package/dist/cjs/index.cjs.js +8 -8
- package/dist/cjs/{input-shims-b419f083.js → input-shims-77b14f24.js} +2 -2
- package/dist/cjs/{input.utils-32c0a14a.js → input.utils-ca74d73a.js} +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
- package/dist/cjs/ion-alert.cjs.entry.js +4 -4
- package/dist/cjs/ion-app_8.cjs.entry.js +18 -18
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-button_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-card_5.cjs.entry.js +1 -1
- package/dist/cjs/ion-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime_3.cjs.entry.js +15 -14
- package/dist/cjs/ion-fab_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-img.cjs.entry.js +2 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-input.cjs.entry.js +8 -8
- package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-item_8.cjs.entry.js +13 -13
- package/dist/cjs/ion-loading.cjs.entry.js +6 -6
- package/dist/cjs/ion-menu_3.cjs.entry.js +11 -11
- package/dist/cjs/ion-modal.cjs.entry.js +9 -9
- package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column.cjs.entry.js +9 -5
- package/dist/cjs/ion-picker.cjs.entry.js +3 -3
- 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 +5 -5
- package/dist/cjs/ion-range.cjs.entry.js +12 -25
- package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -5
- 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 +3 -3
- package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
- package/dist/cjs/ion-segment_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-select_3.cjs.entry.js +14 -14
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-tab_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- 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 +4 -4
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/{ios.transition-3e119901.js → ios.transition-8e0ca8ed.js} +3 -3
- package/dist/cjs/{md.transition-c1392f92.js → md.transition-5d0f134b.js} +3 -3
- package/dist/cjs/{notch-controller-08a24f39.js → notch-controller-0042ad49.js} +1 -1
- package/dist/cjs/{overlays-44b8d0e0.js → overlays-30b83581.js} +2 -2
- package/dist/cjs/{status-tap-32430b3e.js → status-tap-dc3b8fda.js} +2 -2
- package/dist/cjs/{swipe-back-dc4dbb65.js → swipe-back-29e88360.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +1 -1
- package/dist/collection/components/alert/test/a11y/alert.e2e.js +5 -1
- package/dist/collection/components/alert/test/basic/alert.e2e.js +1 -1
- package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +1 -1
- package/dist/collection/components/badge/test/a11y/badge.e2e.js +1 -1
- package/dist/collection/components/button/test/a11y/button.e2e.js +2 -2
- package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +1 -1
- package/dist/collection/components/datetime/datetime.js +7 -6
- package/dist/collection/components/datetime-button/datetime-button.js +1 -1
- package/dist/collection/components/fab/fab.js +2 -2
- package/dist/collection/components/fab-button/fab-button.js +2 -2
- package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +1 -1
- package/dist/collection/components/fab-list/fab-list.js +2 -2
- package/dist/collection/components/footer/footer.js +2 -2
- package/dist/collection/components/grid/grid.js +2 -2
- package/dist/collection/components/header/header.ios.css +5 -2
- package/dist/collection/components/header/header.js +2 -2
- package/dist/collection/components/header/test/basic/header.e2e.js +77 -0
- package/dist/collection/components/img/img.js +1 -1
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
- package/dist/collection/components/input/input.ios.css +2 -2
- package/dist/collection/components/input/input.js +3 -3
- package/dist/collection/components/input/input.md.css +2 -2
- package/dist/collection/components/input/test/a11y/input.e2e.js +1 -1
- package/dist/collection/components/input/test/slot/input.e2e.js +8 -0
- package/dist/collection/components/item/test/buttons/item.e2e.js +20 -4
- package/dist/collection/components/item-divider/item-divider.js +2 -2
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +2 -2
- package/dist/collection/components/item-options/item-options.js +1 -1
- package/dist/collection/components/item-sliding/item-sliding.js +1 -1
- package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +1 -1
- package/dist/collection/components/label/label.js +2 -2
- package/dist/collection/components/label/test/a11y/label.e2e.js +1 -1
- package/dist/collection/components/list/list.js +1 -1
- package/dist/collection/components/list-header/list-header.js +2 -2
- package/dist/collection/components/loading/loading.js +2 -2
- package/dist/collection/components/loading/test/a11y/loading.e2e.js +1 -1
- package/dist/collection/components/menu/menu.js +2 -2
- package/dist/collection/components/menu-button/menu-button.js +2 -2
- package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +1 -1
- package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
- package/dist/collection/components/modal/modal.js +3 -3
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/nav-link/nav-link.js +1 -1
- package/dist/collection/components/note/note.js +2 -2
- package/dist/collection/components/picker/picker.js +2 -2
- package/dist/collection/components/picker-column/picker-column.js +8 -4
- package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
- package/dist/collection/components/picker-legacy/picker.js +2 -2
- package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
- package/dist/collection/components/popover/popover.js +2 -2
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +1 -1
- package/dist/collection/components/radio/radio.js +3 -3
- package/dist/collection/components/radio/test/a11y/radio.e2e.js +1 -1
- package/dist/collection/components/radio-group/radio-group.js +1 -1
- package/dist/collection/components/range/range.js +11 -24
- package/dist/collection/components/range/test/a11y/range.e2e.js +1 -1
- package/dist/collection/components/range/test/label/range.spec.js +24 -0
- package/dist/collection/components/refresher/refresher.js +1 -1
- package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +1 -1
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +1 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +1 -1
- package/dist/collection/components/router-outlet/router-outlet.js +1 -1
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +4 -4
- package/dist/collection/components/segment/segment.js +2 -2
- package/dist/collection/components/segment/test/a11y/segment.e2e.js +1 -1
- package/dist/collection/components/segment-button/segment-button.js +3 -3
- package/dist/collection/components/select/select.ios.css +2 -2
- package/dist/collection/components/select/select.js +7 -7
- package/dist/collection/components/select/select.md.css +2 -2
- package/dist/collection/components/select/test/a11y/select.e2e.js +1 -1
- package/dist/collection/components/select/test/select.spec.js +22 -0
- package/dist/collection/components/select/test/slot/select.e2e.js +8 -0
- package/dist/collection/components/select-option/select-option.js +1 -1
- package/dist/collection/components/select-popover/select-popover.js +1 -1
- package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +1 -1
- package/dist/collection/components/textarea/test/slot/textarea.e2e.js +8 -0
- package/dist/collection/components/textarea/textarea.ios.css +2 -2
- package/dist/collection/components/textarea/textarea.js +2 -2
- package/dist/collection/components/textarea/textarea.md.css +2 -2
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/test/a11y/toast.e2e.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +1 -1
- package/dist/collection/components/toggle/toggle.js +4 -4
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/collection/css/test/a11y/typography.e2e.js +1 -1
- package/dist/collection/themes/test/colors/theme.e2e.js +2 -2
- package/dist/collection/utils/helpers.js +0 -46
- package/dist/collection/utils/test/playwright/generator.js +17 -17
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +6 -6
- package/dist/docs.json +3 -3
- package/dist/esm/{animation-9a23ed8d.js → animation-6a3c0abb.js} +1 -1
- package/dist/esm/{framework-delegate-3fd96df8.js → framework-delegate-3dede018.js} +1 -1
- package/dist/esm/{helpers-f51cf76f.js → helpers-eab4f597.js} +1 -47
- package/dist/esm/{index-86688780.js → index-044b5a86.js} +1 -1
- package/dist/esm/{index-6da05eef.js → index-136e99c8.js} +3 -3
- package/dist/esm/{index-9d7e5d3e.js → index-95a691d4.js} +2 -2
- package/dist/esm/{index-1262064c.js → index-fa221975.js} +1 -1
- package/dist/esm/index.js +8 -8
- package/dist/esm/{input-shims-2a4ad5a1.js → input-shims-196afa11.js} +2 -2
- package/dist/esm/{input.utils-d2dee48e.js → input.utils-426cc674.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +4 -4
- package/dist/esm/ion-alert.entry.js +4 -4
- package/dist/esm/ion-app_8.entry.js +18 -18
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-back-button.entry.js +1 -1
- package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm/ion-button_2.entry.js +1 -1
- package/dist/esm/ion-card_5.entry.js +1 -1
- package/dist/esm/ion-checkbox.entry.js +1 -1
- package/dist/esm/ion-col_3.entry.js +3 -3
- package/dist/esm/ion-datetime-button.entry.js +2 -2
- package/dist/esm/ion-datetime_3.entry.js +15 -14
- package/dist/esm/ion-fab_3.entry.js +7 -7
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
- package/dist/esm/ion-input.entry.js +8 -8
- package/dist/esm/ion-item-option_3.entry.js +6 -6
- package/dist/esm/ion-item_8.entry.js +13 -13
- package/dist/esm/ion-loading.entry.js +6 -6
- package/dist/esm/ion-menu_3.entry.js +11 -11
- package/dist/esm/ion-modal.entry.js +9 -9
- package/dist/esm/ion-nav_2.entry.js +6 -6
- package/dist/esm/ion-picker-column-option.entry.js +3 -3
- package/dist/esm/ion-picker-column.entry.js +9 -5
- package/dist/esm/ion-picker.entry.js +3 -3
- 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 +5 -5
- package/dist/esm/ion-range.entry.js +12 -25
- package/dist/esm/ion-refresher_2.entry.js +5 -5
- 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 +3 -3
- package/dist/esm/ion-searchbar.entry.js +5 -5
- package/dist/esm/ion-segment_2.entry.js +6 -6
- package/dist/esm/ion-select_3.entry.js +14 -14
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +5 -5
- package/dist/esm/ion-tab_2.entry.js +5 -5
- package/dist/esm/ion-text.entry.js +2 -2
- 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 +4 -4
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/{ios.transition-fbde96b0.js → ios.transition-d1c8eea2.js} +3 -3
- package/dist/esm/{md.transition-76e0020b.js → md.transition-0d2de76d.js} +3 -3
- package/dist/esm/{notch-controller-00572cf8.js → notch-controller-cff691e5.js} +1 -1
- package/dist/esm/{overlays-b1ac1c63.js → overlays-d41f74ac.js} +2 -2
- package/dist/esm/{status-tap-84b41f36.js → status-tap-45595148.js} +2 -2
- package/dist/esm/{swipe-back-f2bec781.js → swipe-back-57844616.js} +1 -1
- package/dist/esm-es5/{animation-9a23ed8d.js → animation-6a3c0abb.js} +1 -1
- package/dist/esm-es5/{framework-delegate-3fd96df8.js → framework-delegate-3dede018.js} +1 -1
- package/dist/esm-es5/helpers-eab4f597.js +4 -0
- package/dist/esm-es5/{index-86688780.js → index-044b5a86.js} +1 -1
- package/dist/esm-es5/{index-6da05eef.js → index-136e99c8.js} +1 -1
- package/dist/esm-es5/{index-9d7e5d3e.js → index-95a691d4.js} +1 -1
- package/dist/esm-es5/index-fa221975.js +4 -0
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/{input-shims-2a4ad5a1.js → input-shims-196afa11.js} +1 -1
- package/dist/esm-es5/{input.utils-d2dee48e.js → input.utils-426cc674.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-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-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.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_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/{ios.transition-fbde96b0.js → ios.transition-d1c8eea2.js} +1 -1
- package/dist/esm-es5/md.transition-0d2de76d.js +4 -0
- package/dist/esm-es5/{notch-controller-00572cf8.js → notch-controller-cff691e5.js} +1 -1
- package/dist/esm-es5/{overlays-b1ac1c63.js → overlays-d41f74ac.js} +1 -1
- package/dist/esm-es5/{status-tap-84b41f36.js → status-tap-45595148.js} +1 -1
- package/dist/esm-es5/{swipe-back-f2bec781.js → swipe-back-57844616.js} +1 -1
- package/dist/html.html-data.json +1 -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-bbc4f653.entry.js → p-0051ceb9.entry.js} +1 -1
- package/dist/ionic/{p-a7f788ec.entry.js → p-00a6f38d.entry.js} +1 -1
- package/dist/ionic/{p-1acaf641.entry.js → p-02a803dc.entry.js} +1 -1
- package/dist/ionic/{p-05f10e5f.entry.js → p-02a8b73b.entry.js} +1 -1
- package/dist/ionic/{p-53c592ec.system.js → p-07759435.system.js} +1 -1
- package/dist/ionic/{p-04f9ce05.system.js → p-08a8971e.system.js} +1 -1
- package/dist/ionic/p-0e4c9e45.system.js +4 -0
- package/dist/ionic/{p-50d19fc7.system.entry.js → p-103ec049.system.entry.js} +1 -1
- package/dist/ionic/p-1685d81c.system.entry.js +4 -0
- package/dist/ionic/{p-49a205d0.system.js → p-17043350.system.js} +1 -1
- package/dist/ionic/{p-0afaf65b.system.entry.js → p-17ee2784.system.entry.js} +1 -1
- package/dist/ionic/{p-4d6ec139.entry.js → p-1807190c.entry.js} +1 -1
- package/dist/ionic/{p-ff740d68.system.entry.js → p-185db19b.system.entry.js} +2 -2
- package/dist/ionic/{p-e222fdd1.entry.js → p-1a8bbd2e.entry.js} +1 -1
- package/dist/ionic/{p-a37d4fe9.system.entry.js → p-1bb1ef31.system.entry.js} +1 -1
- package/dist/ionic/p-1c801dd4.entry.js +4 -0
- package/dist/ionic/{p-5054b3db.entry.js → p-2130b526.entry.js} +1 -1
- package/dist/ionic/p-22b5c888.system.entry.js +4 -0
- package/dist/ionic/{p-a5c33d6b.system.entry.js → p-23838a94.system.entry.js} +1 -1
- package/dist/ionic/{p-51b1a6be.js → p-244f56fd.js} +1 -1
- package/dist/ionic/{p-373e757d.entry.js → p-27c668a0.entry.js} +1 -1
- package/dist/ionic/{p-d9dfdbb5.system.entry.js → p-282bd5f9.system.entry.js} +1 -1
- package/dist/ionic/{p-6d75fbe8.system.entry.js → p-2852c537.system.entry.js} +1 -1
- package/dist/ionic/{p-25648922.system.entry.js → p-294c47cd.system.entry.js} +1 -1
- package/dist/ionic/{p-7200f2da.entry.js → p-29ef3b9b.entry.js} +1 -1
- package/dist/ionic/{p-b996756b.entry.js → p-2bb65deb.entry.js} +1 -1
- package/dist/ionic/{p-3944820a.system.js → p-2cc2c631.system.js} +1 -1
- package/dist/ionic/{p-cbb753d4.entry.js → p-2ce3691f.entry.js} +1 -1
- package/dist/ionic/{p-c34d1515.js → p-2f53c3eb.js} +1 -1
- package/dist/ionic/{p-4ba6d7d1.js → p-325c61a4.js} +1 -1
- package/dist/ionic/{p-68fbfcd5.entry.js → p-334ad9e4.entry.js} +1 -1
- package/dist/ionic/p-364044f0.js +4 -0
- package/dist/ionic/{p-29ecf879.entry.js → p-3785c067.entry.js} +1 -1
- package/dist/ionic/p-3ae4a2a2.entry.js +4 -0
- package/dist/ionic/p-3cd3214e.entry.js +4 -0
- package/dist/ionic/{p-e9412fe7.system.entry.js → p-3e6e53fe.system.entry.js} +1 -1
- package/dist/ionic/{p-7162350a.system.entry.js → p-40976b1c.system.entry.js} +1 -1
- package/dist/ionic/{p-d09c9468.system.entry.js → p-42fecf9c.system.entry.js} +1 -1
- package/dist/ionic/{p-b0850af6.system.entry.js → p-43c751c6.system.entry.js} +1 -1
- package/dist/ionic/{p-8dfe436d.system.js → p-4a3055ef.system.js} +1 -1
- package/dist/ionic/{p-f6db2e96.system.entry.js → p-4d325220.system.entry.js} +2 -2
- package/dist/ionic/p-4d361c89.entry.js +4 -0
- package/dist/ionic/p-54c31b4f.entry.js +4 -0
- package/dist/ionic/{p-063c093d.system.entry.js → p-5a277399.system.entry.js} +1 -1
- package/dist/ionic/{p-237b1791.system.entry.js → p-5ac63b19.system.entry.js} +1 -1
- package/dist/ionic/{p-c8675b7b.system.entry.js → p-5b2951c1.system.entry.js} +1 -1
- package/dist/ionic/{p-f5cb9689.js → p-5b52897c.js} +1 -1
- package/dist/ionic/{p-42d9f81e.entry.js → p-610f0e12.entry.js} +1 -1
- package/dist/ionic/p-668607c2.system.js +4 -0
- package/dist/ionic/{p-ffaeba0a.system.entry.js → p-68f131a7.system.entry.js} +1 -1
- package/dist/ionic/{p-eb546888.entry.js → p-6a448415.entry.js} +1 -1
- package/dist/ionic/{p-696db6f4.system.js → p-6a62da36.system.js} +1 -1
- package/dist/ionic/p-6a888b39.system.entry.js +4 -0
- package/dist/ionic/{p-ea5173f9.system.js → p-6d9f8fac.system.js} +1 -1
- package/dist/ionic/{p-d3c1c23f.entry.js → p-7002bc75.entry.js} +1 -1
- package/dist/ionic/{p-65374504.entry.js → p-7680d0ec.entry.js} +1 -1
- package/dist/ionic/{p-f8dfae89.system.entry.js → p-7adde43c.system.entry.js} +1 -1
- package/dist/ionic/p-7c4c37ae.system.js +4 -0
- package/dist/ionic/p-7d29dff0.system.entry.js +4 -0
- package/dist/ionic/p-7d4d9c40.system.entry.js +4 -0
- package/dist/ionic/p-7e7d534c.js +4 -0
- package/dist/ionic/{p-01171ead.system.js → p-853bd866.system.js} +1 -1
- package/dist/ionic/{p-5f9abba8.system.entry.js → p-85f43165.system.entry.js} +1 -1
- package/dist/ionic/p-86c17a09.entry.js +4 -0
- package/dist/ionic/p-8a881b39.entry.js +4 -0
- package/dist/ionic/{p-513abaf6.system.entry.js → p-8dd3d9c3.system.entry.js} +1 -1
- package/dist/ionic/{p-070cf7c3.entry.js → p-8ed900e4.entry.js} +1 -1
- package/dist/ionic/p-91a83ede.js +4 -0
- package/dist/ionic/{p-f15b0bbc.system.entry.js → p-92b05b70.system.entry.js} +1 -1
- package/dist/ionic/{p-3a572692.js → p-976c7c54.js} +1 -1
- package/dist/ionic/{p-144ae947.js → p-978f4710.js} +1 -1
- package/dist/ionic/{p-eee87ebb.js → p-98c86cdd.js} +1 -1
- package/dist/ionic/{p-c834c535.system.entry.js → p-9b5d033a.system.entry.js} +1 -1
- package/dist/ionic/{p-a43fbe0a.system.entry.js → p-9e6a5e3d.system.entry.js} +1 -1
- package/dist/ionic/{p-de4c700f.entry.js → p-a0e8f913.entry.js} +1 -1
- package/dist/ionic/{p-314ae72a.js → p-a3dae2ce.js} +1 -1
- package/dist/ionic/{p-2070f8d8.entry.js → p-a4c287f9.entry.js} +1 -1
- package/dist/ionic/{p-4da2ae44.js → p-a600a3e3.js} +1 -1
- package/dist/ionic/{p-f15f8140.system.entry.js → p-a6b8342e.system.entry.js} +1 -1
- package/dist/ionic/{p-f012e8f2.system.entry.js → p-a88b41d1.system.entry.js} +2 -2
- package/dist/ionic/{p-9c970454.entry.js → p-a94092b9.entry.js} +1 -1
- package/dist/ionic/p-ac6db4c2.js +4 -0
- package/dist/ionic/{p-15e2ff5f.system.entry.js → p-af2e3481.system.entry.js} +1 -1
- package/dist/ionic/{p-d4be0d81.system.entry.js → p-b0aaa59a.system.entry.js} +1 -1
- package/dist/ionic/{p-48fef2f1.entry.js → p-b141e253.entry.js} +1 -1
- package/dist/ionic/{p-8c0b08db.entry.js → p-b1d9b078.entry.js} +1 -1
- package/dist/ionic/p-ba0290d1.entry.js +4 -0
- package/dist/ionic/{p-e5e492d8.entry.js → p-bb5eba12.entry.js} +1 -1
- package/dist/ionic/{p-c4390f10.system.entry.js → p-bb608006.system.entry.js} +1 -1
- package/dist/ionic/{p-d5ef3a0a.entry.js → p-c385e49d.entry.js} +1 -1
- package/dist/ionic/{p-1e5c0c49.js → p-c3f5d0e7.js} +1 -1
- package/dist/ionic/{p-739f8b95.system.entry.js → p-c41e0b5f.system.entry.js} +1 -1
- package/dist/ionic/{p-46a4e4e8.js → p-c6f9f3eb.js} +1 -1
- package/dist/ionic/{p-03f3ebd2.entry.js → p-c8383c20.entry.js} +1 -1
- package/dist/ionic/{p-acd64713.system.entry.js → p-cbf0a046.system.entry.js} +1 -1
- package/dist/ionic/{p-566818dd.system.entry.js → p-d0496c22.system.entry.js} +1 -1
- package/dist/ionic/{p-2028668d.system.entry.js → p-d286cfbe.system.entry.js} +1 -1
- package/dist/ionic/{p-45a2b1ee.system.entry.js → p-d372938e.system.entry.js} +1 -1
- package/dist/ionic/{p-de39f314.entry.js → p-d4d17d47.entry.js} +1 -1
- package/dist/ionic/{p-47974116.system.entry.js → p-d6b84d5a.system.entry.js} +1 -1
- package/dist/ionic/{p-33e39575.system.js → p-d704f798.system.js} +1 -1
- package/dist/ionic/p-d8090ce4.entry.js +4 -0
- package/dist/ionic/{p-667290b0.system.js → p-d80b7e31.system.js} +1 -1
- package/dist/ionic/{p-2e2635b4.system.entry.js → p-d8ffe61c.system.entry.js} +1 -1
- package/dist/ionic/{p-824d44c5.system.entry.js → p-db7fcadb.system.entry.js} +2 -2
- package/dist/ionic/{p-95648db9.entry.js → p-dd9168f3.entry.js} +1 -1
- package/dist/ionic/{p-ce36d285.system.js → p-e0d52ee3.system.js} +2 -2
- package/dist/ionic/p-e3611c25.entry.js +4 -0
- package/dist/ionic/p-e7b0b64d.system.js +4 -0
- package/dist/ionic/{p-75addf49.entry.js → p-ebc5b98f.entry.js} +1 -1
- package/dist/ionic/{p-9ddbed2f.system.entry.js → p-ebe45d27.system.entry.js} +1 -1
- package/dist/ionic/{p-ba9120fe.system.entry.js → p-ec34194e.system.entry.js} +1 -1
- package/dist/ionic/p-ec613387.entry.js +4 -0
- package/dist/ionic/{p-19243ae6.entry.js → p-ed3463be.entry.js} +1 -1
- package/dist/ionic/{p-0da58e53.entry.js → p-f1d1524c.entry.js} +1 -1
- package/dist/ionic/p-f7a1318d.system.entry.js +4 -0
- package/dist/ionic/{p-1d1394da.system.entry.js → p-f7af3144.system.entry.js} +2 -2
- package/dist/ionic/p-f8502e85.js +1 -1
- package/dist/ionic/{p-f3e8c505.system.js → p-f85a4df5.system.js} +1 -1
- package/dist/ionic/{p-66596659.entry.js → p-fa8ee4c3.entry.js} +1 -1
- package/dist/ionic/{p-d85eebc3.entry.js → p-fb870c48.entry.js} +1 -1
- package/dist/ionic/{p-4997d7dc.system.js → p-fe1fd531.system.js} +1 -1
- package/dist/ionic/{p-21e88629.entry.js → p-fe35b5c0.entry.js} +1 -1
- package/dist/types/components/datetime/datetime.d.ts +1 -0
- package/dist/types/components/toggle/toggle.d.ts +1 -1
- package/dist/types/components.d.ts +2 -2
- package/dist/types/utils/helpers.d.ts +0 -18
- package/dist/types/utils/test/playwright/generator.d.ts +3 -3
- package/hydrate/index.js +150 -204
- package/package.json +7 -2
- package/css/themes/dark.always.css.map +0 -1
- package/css/themes/dark.class.css.map +0 -1
- package/css/themes/dark.system.css.map +0 -1
- package/css/themes/high-contrast-dark.always.css.map +0 -1
- package/css/themes/high-contrast-dark.class.css.map +0 -1
- package/css/themes/high-contrast-dark.system.css.map +0 -1
- package/css/themes/high-contrast.always.css.map +0 -1
- package/css/themes/high-contrast.class.css.map +0 -1
- package/css/themes/high-contrast.system.css.map +0 -1
- package/dist/collection/utils/test/aria.spec.js +0 -80
- package/dist/esm-es5/helpers-f51cf76f.js +0 -4
- package/dist/esm-es5/index-1262064c.js +0 -4
- package/dist/esm-es5/md.transition-76e0020b.js +0 -4
- package/dist/ionic/p-06e951a9.entry.js +0 -4
- package/dist/ionic/p-234dc736.entry.js +0 -4
- package/dist/ionic/p-2f53f47a.entry.js +0 -4
- package/dist/ionic/p-39483fc9.js +0 -4
- package/dist/ionic/p-39860681.entry.js +0 -4
- package/dist/ionic/p-489eb5c6.js +0 -4
- package/dist/ionic/p-493bce1f.entry.js +0 -4
- package/dist/ionic/p-517b76cb.entry.js +0 -4
- package/dist/ionic/p-59e86adb.js +0 -4
- package/dist/ionic/p-6042920d.system.entry.js +0 -4
- package/dist/ionic/p-67dbcd3b.system.js +0 -4
- package/dist/ionic/p-69df28fd.entry.js +0 -4
- package/dist/ionic/p-6d0e7669.system.entry.js +0 -4
- package/dist/ionic/p-6d1f5de9.system.entry.js +0 -4
- package/dist/ionic/p-7d4f6f18.js +0 -4
- package/dist/ionic/p-a03c993e.entry.js +0 -4
- package/dist/ionic/p-afe27188.system.js +0 -4
- package/dist/ionic/p-b0d35de4.system.js +0 -4
- package/dist/ionic/p-bb78b64e.entry.js +0 -4
- package/dist/ionic/p-c962e9ea.entry.js +0 -4
- package/dist/ionic/p-cc19ecba.system.entry.js +0 -4
- package/dist/ionic/p-d10bbab7.entry.js +0 -4
- package/dist/ionic/p-d268f7e2.system.entry.js +0 -4
- package/dist/ionic/p-e01ebeba.system.js +0 -4
- package/dist/ionic/p-fcec3b7a.system.entry.js +0 -4
- package/css/{themes → palettes}/dark.always.css +0 -0
- package/css/{themes → palettes}/dark.css +0 -0
- package/css/{themes → palettes}/dark.css.map +0 -0
- package/css/{themes → palettes}/dark.system.css +0 -0
- package/css/{themes → palettes}/high-contrast-dark.always.css +1 -1
- package/css/{themes → palettes}/high-contrast-dark.css +0 -0
- package/css/{themes → palettes}/high-contrast-dark.css.map +0 -0
- package/css/{themes → palettes}/high-contrast-dark.system.css +1 -1
- package/css/{themes → palettes}/high-contrast.always.css +25 -25
- package/css/{themes → palettes}/high-contrast.css +0 -0
- package/css/{themes → palettes}/high-contrast.css.map +0 -0
- package/css/{themes → palettes}/high-contrast.system.css +25 -25
|
@@ -70,7 +70,7 @@ export class TabButton {
|
|
|
70
70
|
rel,
|
|
71
71
|
target,
|
|
72
72
|
};
|
|
73
|
-
return (h(Host, { key: '
|
|
73
|
+
return (h(Host, { key: 'b59ea2572a066edc9aed8e027d1849a80734ddc2', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
|
|
74
74
|
[mode]: true,
|
|
75
75
|
'tab-selected': selected,
|
|
76
76
|
'tab-disabled': disabled,
|
|
@@ -82,7 +82,7 @@ export class TabButton {
|
|
|
82
82
|
'ion-activatable': true,
|
|
83
83
|
'ion-selectable': true,
|
|
84
84
|
'ion-focusable': true,
|
|
85
|
-
} }, h("a", Object.assign({ key: '
|
|
85
|
+
} }, h("a", Object.assign({ key: '426bf8ee7c7c233cd161f74bf7e46cbe939ac1d5' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: '955b805c6e1ed576604ab0294a7479520573ff0f', class: "button-inner" }, h("slot", { key: 'f1e6dc9f80bc27c956f2333f28f5440a78f2dd6c' })), mode === 'md' && h("ion-ripple-effect", { type: "unbounded" }))));
|
|
86
86
|
}
|
|
87
87
|
static get is() { return "ion-tab-button"; }
|
|
88
88
|
static get encapsulation() { return "shadow"; }
|
|
@@ -135,7 +135,7 @@ export class Tabs {
|
|
|
135
135
|
return Array.from(this.el.querySelectorAll('ion-tab'));
|
|
136
136
|
}
|
|
137
137
|
render() {
|
|
138
|
-
return (h(Host, { key: '
|
|
138
|
+
return (h(Host, { key: 'ee98a688e181f29f70bf67d8ac9a74f6863de070', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: 'd0fab7c4acb24591931523584c8f2d0a0685058a', name: "top" }), h("div", { key: '0a71bcbc44d45b0f47834f055e13a4d5ad2ec189', class: "tabs-inner" }, h("slot", { key: 'df40115d87f04d6068b1d44d4eef26d51435405a' })), h("slot", { key: '1ba4b7ff756fec9954645f13b295121fe2dc3ca3', name: "bottom" })));
|
|
139
139
|
}
|
|
140
140
|
static get is() { return "ion-tabs"; }
|
|
141
141
|
static get encapsulation() { return "shadow"; }
|
|
@@ -13,9 +13,9 @@ export class Text {
|
|
|
13
13
|
}
|
|
14
14
|
render() {
|
|
15
15
|
const mode = getIonMode(this);
|
|
16
|
-
return (h(Host, { key: '
|
|
16
|
+
return (h(Host, { key: '9b808f0e1c85e39e89df51ea0a8b97bf815907ec', class: createColorClasses(this.color, {
|
|
17
17
|
[mode]: true,
|
|
18
|
-
}) }, h("slot", { key: '
|
|
18
|
+
}) }, h("slot", { key: '200d6bf3820c9428b645abf8ec2a6f9de849e78a' })));
|
|
19
19
|
}
|
|
20
20
|
static get is() { return "ion-text"; }
|
|
21
21
|
static get encapsulation() { return "shadow"; }
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import AxeBuilder from "@axe-core/playwright";
|
|
5
5
|
import { expect } from "@playwright/test";
|
|
6
6
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
7
|
-
configs({ directions: ['ltr'],
|
|
7
|
+
configs({ directions: ['ltr'], palettes: ['light', 'dark'] }).forEach(({ title, config }) => {
|
|
8
8
|
test.describe(title('textarea: a11y'), () => {
|
|
9
9
|
test('default layout should not have accessibility violations', async ({ page }) => {
|
|
10
10
|
await page.setContent(`
|
|
@@ -9,9 +9,13 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
9
9
|
await page.setContent(`
|
|
10
10
|
<ion-textarea label-placement="start" fill="solid" value="100" label="Weight">
|
|
11
11
|
<ion-icon slot="start" name="barbell" aria-hidden="true"></ion-icon>
|
|
12
|
+
<ion-icon slot="start" name="heart" aria-hidden="true"></ion-icon>
|
|
12
13
|
<ion-button slot="end" aria-label="Show/hide password">
|
|
13
14
|
<ion-icon slot="icon-only" name="lock-closed" aria-hidden="true"></ion-icon>
|
|
14
15
|
</ion-button>
|
|
16
|
+
<ion-button slot="end">
|
|
17
|
+
<ion-icon slot="icon-only" name="trash" aria-hidden="true"></ion-icon>
|
|
18
|
+
</ion-button>
|
|
15
19
|
</ion-textarea>
|
|
16
20
|
`, config);
|
|
17
21
|
const textarea = page.locator('ion-textarea');
|
|
@@ -21,9 +25,13 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
21
25
|
await page.setContent(`
|
|
22
26
|
<ion-textarea label-placement="floating" fill="solid" value="100" label="Weight">
|
|
23
27
|
<ion-icon slot="start" name="barbell" aria-hidden="true"></ion-icon>
|
|
28
|
+
<ion-icon slot="start" name="heart" aria-hidden="true"></ion-icon>
|
|
24
29
|
<ion-button slot="end" aria-label="Show/hide password">
|
|
25
30
|
<ion-icon slot="icon-only" name="lock-closed" aria-hidden="true"></ion-icon>
|
|
26
31
|
</ion-button>
|
|
32
|
+
<ion-button slot="end">
|
|
33
|
+
<ion-icon slot="icon-only" name="trash" aria-hidden="true"></ion-icon>
|
|
34
|
+
</ion-button>
|
|
27
35
|
</ion-textarea>
|
|
28
36
|
`, config);
|
|
29
37
|
const textarea = page.locator('ion-textarea');
|
|
@@ -670,12 +670,12 @@
|
|
|
670
670
|
margin-top: 0;
|
|
671
671
|
}
|
|
672
672
|
|
|
673
|
-
::slotted([slot=start]) {
|
|
673
|
+
::slotted([slot=start]:last-of-type) {
|
|
674
674
|
margin-inline-end: 16px;
|
|
675
675
|
margin-inline-start: 0;
|
|
676
676
|
}
|
|
677
677
|
|
|
678
|
-
::slotted([slot=end]) {
|
|
678
|
+
::slotted([slot=end]:first-of-type) {
|
|
679
679
|
margin-inline-start: 16px;
|
|
680
680
|
margin-inline-end: 0;
|
|
681
681
|
}
|
|
@@ -359,7 +359,7 @@ export class Textarea {
|
|
|
359
359
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
360
360
|
*/
|
|
361
361
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
362
|
-
return (h(Host, { key: '
|
|
362
|
+
return (h(Host, { key: '031dd0f49d577017faa1c5ec87184f8047e1be86', class: createColorClasses(this.color, {
|
|
363
363
|
[mode]: true,
|
|
364
364
|
'has-value': hasValue,
|
|
365
365
|
'has-focus': hasFocus,
|
|
@@ -368,7 +368,7 @@ export class Textarea {
|
|
|
368
368
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
369
369
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
370
370
|
'textarea-disabled': disabled,
|
|
371
|
-
}) }, h("label", { key: '
|
|
371
|
+
}) }, h("label", { key: '867331fa40e10931dc3b476ce96a5c1bf24f10d8', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), h("div", { key: '0e63c53cdf36b2f5abc80f5e0327c50407785d75', class: "textarea-wrapper-inner" }, h("div", { key: '762d406affec3ff1cc42349b926f39d1a03bb86e', class: "start-slot-wrapper" }, h("slot", { key: '94f5c12011301d17c61c05794e162c06257b1e3f', name: "start" })), h("div", { key: '9f4c77548e14e61cf003c3876270838ee7ccb1c4', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, h("textarea", Object.assign({ key: '7677c92431fd88cda4b3318e0eabb5747b23416c', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value)), h("div", { key: 'a3d97905a3e526a6a65fac13cc379c981bfeedd2', class: "end-slot-wrapper" }, h("slot", { key: '3edf3ecd1917595917aa960f99698eabf3268a6f', name: "end" }))), shouldRenderHighlight && h("div", { class: "textarea-highlight" })), this.renderBottomContent()));
|
|
372
372
|
}
|
|
373
373
|
static get is() { return "ion-textarea"; }
|
|
374
374
|
static get encapsulation() { return "scoped"; }
|
|
@@ -670,12 +670,12 @@
|
|
|
670
670
|
margin-top: 0;
|
|
671
671
|
}
|
|
672
672
|
|
|
673
|
-
::slotted([slot=start]) {
|
|
673
|
+
::slotted([slot=start]:last-of-type) {
|
|
674
674
|
margin-inline-end: 16px;
|
|
675
675
|
margin-inline-start: 0;
|
|
676
676
|
}
|
|
677
677
|
|
|
678
|
-
::slotted([slot=end]) {
|
|
678
|
+
::slotted([slot=end]:first-of-type) {
|
|
679
679
|
margin-inline-start: 16px;
|
|
680
680
|
margin-inline-end: 0;
|
|
681
681
|
}
|
|
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
|
|
|
5
5
|
import { getIonMode } from "../../global/ionic-global";
|
|
6
6
|
export class Thumbnail {
|
|
7
7
|
render() {
|
|
8
|
-
return (h(Host, { key: '
|
|
8
|
+
return (h(Host, { key: 'a399199598f8eb605a2c41e0b372609e0c1df8ee', class: getIonMode(this) }, h("slot", { key: 'a63159fa02a1339273066bf7d74ec7d5d2ed0c53' })));
|
|
9
9
|
}
|
|
10
10
|
static get is() { return "ion-thumbnail"; }
|
|
11
11
|
static get encapsulation() { return "shadow"; }
|
|
@@ -27,11 +27,11 @@ export class ToolbarTitle {
|
|
|
27
27
|
render() {
|
|
28
28
|
const mode = getIonMode(this);
|
|
29
29
|
const size = this.getSize();
|
|
30
|
-
return (h(Host, { key: '
|
|
30
|
+
return (h(Host, { key: '2e4240e81db3a6c9293b7cc0589226429c82790d', class: createColorClasses(this.color, {
|
|
31
31
|
[mode]: true,
|
|
32
32
|
[`title-${size}`]: true,
|
|
33
33
|
'title-rtl': document.dir === 'rtl',
|
|
34
|
-
}) }, h("div", { key: '
|
|
34
|
+
}) }, h("div", { key: '2dccef7ee6ec217b12844e0ed72401eb834ac54e', class: "toolbar-title" }, h("slot", { key: '8d109bb5cd4e883d1e47aaa6b26ac9a345de525e' }))));
|
|
35
35
|
}
|
|
36
36
|
static get is() { return "ion-title"; }
|
|
37
37
|
static get encapsulation() { return "shadow"; }
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import AxeBuilder from "@axe-core/playwright";
|
|
5
5
|
import { expect } from "@playwright/test";
|
|
6
6
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
7
|
-
configs({ directions: ['ltr'],
|
|
7
|
+
configs({ directions: ['ltr'], palettes: ['dark', 'light'] }).forEach(({ title, config }) => {
|
|
8
8
|
test.describe(title('toast: Axe testing'), () => {
|
|
9
9
|
test('should not have any axe violations with inline toasts', async ({ page }) => {
|
|
10
10
|
await page.setContent(`
|
|
@@ -178,7 +178,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
178
178
|
/**
|
|
179
179
|
* High contrast mode tests
|
|
180
180
|
*/
|
|
181
|
-
configs({ directions: ['ltr'],
|
|
181
|
+
configs({ directions: ['ltr'], palettes: ['high-contrast-dark', 'high-contrast'] }).forEach(({ title, config, screenshot }) => {
|
|
182
182
|
test.describe(title('toast: high contrast: buttons'), () => {
|
|
183
183
|
test.beforeEach(async ({ page }) => {
|
|
184
184
|
await page.setContent(`
|
|
@@ -388,9 +388,9 @@ export class Toast {
|
|
|
388
388
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
389
389
|
printIonWarning('This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
|
|
390
390
|
}
|
|
391
|
-
return (h(Host, Object.assign({ key: '
|
|
391
|
+
return (h(Host, Object.assign({ key: '66dcfb5335d7476659c05a3df8f8b49f198197c5', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
392
392
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
393
|
-
}, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '
|
|
393
|
+
}, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: 'fb798e74b5ebcb1e17f368679d4947a490d0fdeb', class: wrapperClass }, h("div", { key: '0b39964d740f1172d172dca5af306c083f3435ae', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '265b36d5c914ac6a42a9a8e622237e026035a658', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
|
|
394
394
|
}
|
|
395
395
|
static get is() { return "ion-toast"; }
|
|
396
396
|
static get encapsulation() { return "shadow"; }
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import AxeBuilder from "@axe-core/playwright";
|
|
5
5
|
import { expect } from "@playwright/test";
|
|
6
6
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
7
|
-
configs({ directions: ['ltr'],
|
|
7
|
+
configs({ directions: ['ltr'], palettes: ['light', 'dark'] }).forEach(({ title, config }) => {
|
|
8
8
|
test.describe(title('toggle: a11y'), () => {
|
|
9
9
|
test('should not have accessibility violations', async ({ page }) => {
|
|
10
10
|
await page.setContent(`
|
|
@@ -157,7 +157,7 @@ export class Toggle {
|
|
|
157
157
|
const value = this.getValue();
|
|
158
158
|
const rtl = isRTL(el) ? 'rtl' : 'ltr';
|
|
159
159
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
160
|
-
return (h(Host, { key: '
|
|
160
|
+
return (h(Host, { key: '4a786aed54ad9c746cc3fb4cc73dc831d5cc39dc', onClick: this.onClick, class: createColorClasses(color, {
|
|
161
161
|
[mode]: true,
|
|
162
162
|
'in-item': hostContext('ion-item', el),
|
|
163
163
|
'toggle-activated': activated,
|
|
@@ -167,10 +167,10 @@ export class Toggle {
|
|
|
167
167
|
[`toggle-alignment-${alignment}`]: true,
|
|
168
168
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
169
169
|
[`toggle-${rtl}`]: true,
|
|
170
|
-
}) }, h("label", { key: '
|
|
170
|
+
}) }, h("label", { key: '7e0d74361076d55bf500a08c7f24856c1f712afa', class: "toggle-wrapper" }, h("input", Object.assign({ key: '1112f0a15dd0e8b39a1cb60e2bdef19e37e9a4ce', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), h("div", { key: 'ff94aa7e50d1b68d8131f54141209ca67b4889b9', class: {
|
|
171
171
|
'label-text-wrapper': true,
|
|
172
172
|
'label-text-wrapper-hidden': !this.hasLabel,
|
|
173
|
-
}, part: "label" }, h("slot", { key: '
|
|
173
|
+
}, part: "label" }, h("slot", { key: 'd43b70d600179d41f98b17b2e249b8e672096ccd' })), h("div", { key: 'c8e1bec8e42a09e3947209fdc7a31c66a474702f', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
174
174
|
}
|
|
175
175
|
static get is() { return "ion-toggle"; }
|
|
176
176
|
static get encapsulation() { return "shadow"; }
|
|
@@ -349,7 +349,7 @@ export class Toggle {
|
|
|
349
349
|
"optional": false,
|
|
350
350
|
"docs": {
|
|
351
351
|
"tags": [],
|
|
352
|
-
"text": "How to control the alignment of the toggle and label on the cross axis.\n
|
|
352
|
+
"text": "How to control the alignment of the toggle and label on the cross axis.\n`\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL."
|
|
353
353
|
},
|
|
354
354
|
"attribute": "alignment",
|
|
355
355
|
"reflect": false,
|
|
@@ -62,10 +62,10 @@ export class Toolbar {
|
|
|
62
62
|
this.childrenStyles.forEach((value) => {
|
|
63
63
|
Object.assign(childStyles, value);
|
|
64
64
|
});
|
|
65
|
-
return (h(Host, { key: '
|
|
65
|
+
return (h(Host, { key: 'ccdad3d73213ea96f320bedcfc77dba0b1d5a1e6', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
|
|
66
66
|
[mode]: true,
|
|
67
67
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
68
|
-
})) }, h("div", { key: '
|
|
68
|
+
})) }, h("div", { key: 'a7511bff77244f06648e7a9fa88dba7cfa341736', class: "toolbar-background" }), h("div", { key: '11347fdb377f492d454709d552754b71c0d62754', class: "toolbar-container" }, h("slot", { key: '49b7e5f7fa17329b9160f1017d00c0d39fbd1e59', name: "start" }), h("slot", { key: '23f248e4273880e4629f1149dfb3081f873d9fcb', name: "secondary" }), h("div", { key: '4f2d1b71e624c2e63427c13a1e5c4c37a422004e', class: "toolbar-content" }, h("slot", { key: '3554cda5a394ec59b6161ce45fd1c71e41dfc26c' })), h("slot", { key: 'de77e5bca3c49d3c961838681fca239ff4d4bba9', name: "primary" }), h("slot", { key: 'e3e32c04cd0558ea1cd2af1a99d527eb67de5863', name: "end" }))));
|
|
69
69
|
}
|
|
70
70
|
static get is() { return "ion-toolbar"; }
|
|
71
71
|
static get encapsulation() { return "shadow"; }
|
|
@@ -31,7 +31,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, screenshot, c
|
|
|
31
31
|
});
|
|
32
32
|
});
|
|
33
33
|
});
|
|
34
|
-
configs({ directions: ['ltr'],
|
|
34
|
+
configs({ directions: ['ltr'], palettes: ['light', 'dark'] }).forEach(({ config, title }) => {
|
|
35
35
|
test.describe(title('typography: a11y'), () => {
|
|
36
36
|
test('should not have accessibility violations for anchor tags', async ({ page }) => {
|
|
37
37
|
/**
|
|
@@ -50,7 +50,7 @@ const styleTestHelpers = `
|
|
|
50
50
|
* 6) The base color as the text color against the base color at 0.12 opacity as the background color
|
|
51
51
|
* 7) The base color as the text color against the base color at 0.16 opacity as the background color
|
|
52
52
|
*/
|
|
53
|
-
configs({ modes: ['md'], directions: ['ltr'],
|
|
53
|
+
configs({ modes: ['md'], directions: ['ltr'], palettes: ['light', 'dark'] }).forEach(({ config, title }) => {
|
|
54
54
|
const colors = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
55
55
|
test.describe(title('theme'), () => {
|
|
56
56
|
test.beforeEach(({ skip }) => {
|
|
@@ -117,7 +117,7 @@ configs({ modes: ['md'], directions: ['ltr'], themes: ['light', 'dark'] }).forEa
|
|
|
117
117
|
}
|
|
118
118
|
});
|
|
119
119
|
});
|
|
120
|
-
configs({ modes: ['md'], directions: ['ltr'],
|
|
120
|
+
configs({ modes: ['md'], directions: ['ltr'], palettes: ['high-contrast', 'high-contrast-dark'] }).forEach(({ config, title }) => {
|
|
121
121
|
const colors = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
122
122
|
test.describe(title('theme'), () => {
|
|
123
123
|
test.beforeEach(({ skip }) => {
|
|
@@ -247,52 +247,6 @@ export const focusVisibleElement = (el) => {
|
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
249
|
};
|
|
250
|
-
/**
|
|
251
|
-
* This method is used for Ionic's input components that use Shadow DOM. In
|
|
252
|
-
* order to properly label the inputs to work with screen readers, we need
|
|
253
|
-
* to get the text content of the label outside of the shadow root and pass
|
|
254
|
-
* it to the input inside of the shadow root.
|
|
255
|
-
*
|
|
256
|
-
* Referencing label elements by id from outside of the component is
|
|
257
|
-
* impossible due to the shadow boundary, read more here:
|
|
258
|
-
* https://developer.salesforce.com/blogs/2020/01/accessibility-for-web-components.html
|
|
259
|
-
*
|
|
260
|
-
* @param componentEl The shadow element that needs the aria label
|
|
261
|
-
* @param inputId The unique identifier for the input
|
|
262
|
-
*/
|
|
263
|
-
export const getAriaLabel = (componentEl, inputId) => {
|
|
264
|
-
let labelText;
|
|
265
|
-
// If the user provides their own label via the aria-labelledby attr
|
|
266
|
-
// we should use that instead of looking for an ion-label
|
|
267
|
-
const labelledBy = componentEl.getAttribute('aria-labelledby');
|
|
268
|
-
// Grab the id off of the component in case they are using
|
|
269
|
-
// a custom label using the label element
|
|
270
|
-
const componentId = componentEl.id;
|
|
271
|
-
let labelId = labelledBy !== null && labelledBy.trim() !== '' ? labelledBy : inputId + '-lbl';
|
|
272
|
-
let label = labelledBy !== null && labelledBy.trim() !== '' ? document.getElementById(labelledBy) : null;
|
|
273
|
-
if (label) {
|
|
274
|
-
if (labelledBy === null) {
|
|
275
|
-
label.id = labelId;
|
|
276
|
-
}
|
|
277
|
-
labelText = label.textContent;
|
|
278
|
-
label.setAttribute('aria-hidden', 'true');
|
|
279
|
-
// if there is no label, check to see if the user has provided
|
|
280
|
-
// one by setting an id on the component and using the label element
|
|
281
|
-
}
|
|
282
|
-
else if (componentId.trim() !== '') {
|
|
283
|
-
label = document.querySelector(`label[for="${componentId}"]`);
|
|
284
|
-
if (label) {
|
|
285
|
-
if (label.id !== '') {
|
|
286
|
-
labelId = label.id;
|
|
287
|
-
}
|
|
288
|
-
else {
|
|
289
|
-
label.id = labelId = `${componentId}-lbl`;
|
|
290
|
-
}
|
|
291
|
-
labelText = label.textContent;
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
return { label, labelId, labelText };
|
|
295
|
-
};
|
|
296
250
|
/**
|
|
297
251
|
* This method is used to add a hidden input to a host element that contains
|
|
298
252
|
* a Shadow DOM. It does not add the input inside of the Shadow root which
|
|
@@ -8,34 +8,34 @@
|
|
|
8
8
|
* each test title is unique.
|
|
9
9
|
*/
|
|
10
10
|
const generateTitle = (title, config) => {
|
|
11
|
-
const { mode, direction,
|
|
12
|
-
if (
|
|
11
|
+
const { mode, direction, palette } = config;
|
|
12
|
+
if (palette === 'light') {
|
|
13
13
|
/**
|
|
14
14
|
* Ionic has many existing tests that existed prior to
|
|
15
|
-
* the introduction of
|
|
16
|
-
* compatibility, we will not include the
|
|
17
|
-
* title if the
|
|
15
|
+
* the introduction of palette testing. To maintain backwards
|
|
16
|
+
* compatibility, we will not include the palette in the test
|
|
17
|
+
* title if the palette is set to light.
|
|
18
18
|
*/
|
|
19
19
|
return `${title} - ${mode}/${direction}`;
|
|
20
20
|
}
|
|
21
|
-
return `${title} - ${mode}/${direction}/${
|
|
21
|
+
return `${title} - ${mode}/${direction}/${palette}`;
|
|
22
22
|
};
|
|
23
23
|
/**
|
|
24
24
|
* Generates a unique filename based on a base filename
|
|
25
25
|
* and a test config.
|
|
26
26
|
*/
|
|
27
27
|
const generateScreenshotName = (fileName, config) => {
|
|
28
|
-
const { mode, direction,
|
|
29
|
-
if (
|
|
28
|
+
const { mode, direction, palette } = config;
|
|
29
|
+
if (palette === 'light') {
|
|
30
30
|
/**
|
|
31
31
|
* Ionic has many existing tests that existed prior to
|
|
32
|
-
* the introduction of
|
|
33
|
-
* compatibility, we will not include the
|
|
34
|
-
* name if the
|
|
32
|
+
* the introduction of palette testing. To maintain backwards
|
|
33
|
+
* compatibility, we will not include the palette in the screenshot
|
|
34
|
+
* name if the palette is set to light.
|
|
35
35
|
*/
|
|
36
36
|
return `${fileName}-${mode}-${direction}.png`;
|
|
37
37
|
}
|
|
38
|
-
return `${fileName}-${mode}-${direction}-${
|
|
38
|
+
return `${fileName}-${mode}-${direction}-${palette}.png`;
|
|
39
39
|
};
|
|
40
40
|
/**
|
|
41
41
|
* Given a config generate an array of test variants.
|
|
@@ -50,11 +50,11 @@ export const configs = (testConfig = DEFAULT_TEST_CONFIG_OPTION) => {
|
|
|
50
50
|
*/
|
|
51
51
|
const processedMode = modes !== null && modes !== void 0 ? modes : DEFAULT_MODES;
|
|
52
52
|
const processedDirection = directions !== null && directions !== void 0 ? directions : DEFAULT_DIRECTIONS;
|
|
53
|
-
const
|
|
53
|
+
const processedPalette = (_a = testConfig.palettes) !== null && _a !== void 0 ? _a : DEFAULT_PALETTES;
|
|
54
54
|
processedMode.forEach((mode) => {
|
|
55
55
|
processedDirection.forEach((direction) => {
|
|
56
|
-
|
|
57
|
-
configs.push({ mode, direction,
|
|
56
|
+
processedPalette.forEach((palette) => {
|
|
57
|
+
configs.push({ mode, direction, palette });
|
|
58
58
|
});
|
|
59
59
|
});
|
|
60
60
|
});
|
|
@@ -68,9 +68,9 @@ export const configs = (testConfig = DEFAULT_TEST_CONFIG_OPTION) => {
|
|
|
68
68
|
};
|
|
69
69
|
const DEFAULT_MODES = ['ios', 'md'];
|
|
70
70
|
const DEFAULT_DIRECTIONS = ['ltr', 'rtl'];
|
|
71
|
-
const
|
|
71
|
+
const DEFAULT_PALETTES = ['light'];
|
|
72
72
|
const DEFAULT_TEST_CONFIG_OPTION = {
|
|
73
73
|
modes: DEFAULT_MODES,
|
|
74
74
|
directions: DEFAULT_DIRECTIONS,
|
|
75
|
-
|
|
75
|
+
palettes: DEFAULT_PALETTES,
|
|
76
76
|
};
|
|
@@ -18,16 +18,16 @@ export const setContent = async (page, html, testInfo, options) => {
|
|
|
18
18
|
}
|
|
19
19
|
let mode;
|
|
20
20
|
let direction;
|
|
21
|
-
let
|
|
21
|
+
let palette;
|
|
22
22
|
if (options == undefined) {
|
|
23
23
|
mode = testInfo.project.metadata.mode;
|
|
24
24
|
direction = testInfo.project.metadata.rtl ? 'rtl' : 'ltr';
|
|
25
|
-
|
|
25
|
+
palette = testInfo.project.metadata.palette;
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
28
|
mode = options.mode;
|
|
29
29
|
direction = options.direction;
|
|
30
|
-
|
|
30
|
+
palette = options.palette;
|
|
31
31
|
}
|
|
32
32
|
const baseUrl = process.env.PLAYWRIGHT_TEST_BASE_URL;
|
|
33
33
|
const output = `
|
|
@@ -39,7 +39,7 @@ export const setContent = async (page, html, testInfo, options) => {
|
|
|
39
39
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0" />
|
|
40
40
|
<link href="${baseUrl}/css/ionic.bundle.css" rel="stylesheet" />
|
|
41
41
|
<link href="${baseUrl}/scripts/testing/styles.css" rel="stylesheet" />
|
|
42
|
-
${
|
|
42
|
+
${palette !== 'light' ? `<link href="${baseUrl}/css/palettes/${palette}.always.css" rel="stylesheet" />` : ''}
|
|
43
43
|
<script src="${baseUrl}/scripts/testing/scripts.js"></script>
|
|
44
44
|
<script type="module" src="${baseUrl}/dist/ionic/ionic.esm.js"></script>
|
|
45
45
|
<script>
|
|
@@ -56,8 +56,8 @@ export const setContent = async (page, html, testInfo, options) => {
|
|
|
56
56
|
</html>
|
|
57
57
|
`;
|
|
58
58
|
testInfo.annotations.push({
|
|
59
|
-
type: '
|
|
60
|
-
description:
|
|
59
|
+
type: 'palette',
|
|
60
|
+
description: palette,
|
|
61
61
|
});
|
|
62
62
|
if (baseUrl) {
|
|
63
63
|
await page.route(baseUrl, (route) => {
|
package/dist/docs.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2024-03-
|
|
2
|
+
"timestamp": "2024-03-20T14:30:27",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
|
-
"version": "4.12.
|
|
5
|
+
"version": "4.12.6",
|
|
6
6
|
"typescriptVersion": "5.3.3"
|
|
7
7
|
},
|
|
8
8
|
"components": [
|
|
@@ -28837,7 +28837,7 @@
|
|
|
28837
28837
|
"mutable": false,
|
|
28838
28838
|
"attr": "alignment",
|
|
28839
28839
|
"reflectToAttr": false,
|
|
28840
|
-
"docs": "How to control the alignment of the toggle and label on the cross axis.\n
|
|
28840
|
+
"docs": "How to control the alignment of the toggle and label on the cross axis.\n`\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL.",
|
|
28841
28841
|
"docsTags": [],
|
|
28842
28842
|
"default": "'center'",
|
|
28843
28843
|
"values": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { c as componentOnReady } from './helpers-
|
|
4
|
+
import { c as componentOnReady } from './helpers-eab4f597.js';
|
|
5
5
|
|
|
6
6
|
// TODO(FW-2832): types
|
|
7
7
|
const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
|
|
@@ -247,52 +247,6 @@ const focusVisibleElement = (el) => {
|
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
249
|
};
|
|
250
|
-
/**
|
|
251
|
-
* This method is used for Ionic's input components that use Shadow DOM. In
|
|
252
|
-
* order to properly label the inputs to work with screen readers, we need
|
|
253
|
-
* to get the text content of the label outside of the shadow root and pass
|
|
254
|
-
* it to the input inside of the shadow root.
|
|
255
|
-
*
|
|
256
|
-
* Referencing label elements by id from outside of the component is
|
|
257
|
-
* impossible due to the shadow boundary, read more here:
|
|
258
|
-
* https://developer.salesforce.com/blogs/2020/01/accessibility-for-web-components.html
|
|
259
|
-
*
|
|
260
|
-
* @param componentEl The shadow element that needs the aria label
|
|
261
|
-
* @param inputId The unique identifier for the input
|
|
262
|
-
*/
|
|
263
|
-
const getAriaLabel = (componentEl, inputId) => {
|
|
264
|
-
let labelText;
|
|
265
|
-
// If the user provides their own label via the aria-labelledby attr
|
|
266
|
-
// we should use that instead of looking for an ion-label
|
|
267
|
-
const labelledBy = componentEl.getAttribute('aria-labelledby');
|
|
268
|
-
// Grab the id off of the component in case they are using
|
|
269
|
-
// a custom label using the label element
|
|
270
|
-
const componentId = componentEl.id;
|
|
271
|
-
let labelId = labelledBy !== null && labelledBy.trim() !== '' ? labelledBy : inputId + '-lbl';
|
|
272
|
-
let label = labelledBy !== null && labelledBy.trim() !== '' ? document.getElementById(labelledBy) : null;
|
|
273
|
-
if (label) {
|
|
274
|
-
if (labelledBy === null) {
|
|
275
|
-
label.id = labelId;
|
|
276
|
-
}
|
|
277
|
-
labelText = label.textContent;
|
|
278
|
-
label.setAttribute('aria-hidden', 'true');
|
|
279
|
-
// if there is no label, check to see if the user has provided
|
|
280
|
-
// one by setting an id on the component and using the label element
|
|
281
|
-
}
|
|
282
|
-
else if (componentId.trim() !== '') {
|
|
283
|
-
label = document.querySelector(`label[for="${componentId}"]`);
|
|
284
|
-
if (label) {
|
|
285
|
-
if (label.id !== '') {
|
|
286
|
-
labelId = label.id;
|
|
287
|
-
}
|
|
288
|
-
else {
|
|
289
|
-
label.id = labelId = `${componentId}-lbl`;
|
|
290
|
-
}
|
|
291
|
-
labelText = label.textContent;
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
return { label, labelId, labelText };
|
|
295
|
-
};
|
|
296
250
|
/**
|
|
297
251
|
* This method is used to add a hidden input to a host element that contains
|
|
298
252
|
* a Shadow DOM. It does not add the input inside of the Shadow root which
|
|
@@ -408,4 +362,4 @@ const shallowEqualStringMap = (map1, map2) => {
|
|
|
408
362
|
return true;
|
|
409
363
|
};
|
|
410
364
|
|
|
411
|
-
export { addEventListener as a, removeEventListener as b, componentOnReady as c, renderHiddenInput as d, debounceEvent as e, focusVisibleElement as f, getElementRoot as g, inheritAttributes as h, inheritAriaAttributes as i, clamp as j, hasLazyBuild as k,
|
|
365
|
+
export { addEventListener as a, removeEventListener as b, componentOnReady as c, renderHiddenInput as d, debounceEvent as e, focusVisibleElement as f, getElementRoot as g, inheritAttributes as h, inheritAriaAttributes as i, clamp as j, hasLazyBuild as k, hasShadowDom as l, assert as m, isEndSide as n, debounce as o, now as p, pointerCoord as q, raf as r, shallowEqualStringMap as s, transitionEndAsync as t };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { c as componentOnReady } from './helpers-
|
|
4
|
+
import { c as componentOnReady } from './helpers-eab4f597.js';
|
|
5
5
|
import { b as printRequiredElementError } from './index-9b0d46f4.js';
|
|
6
6
|
|
|
7
7
|
const ION_CONTENT_TAG_NAME = 'ION-CONTENT';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { w as writeTask, B as Build } from './index-5d6a0317.js';
|
|
5
|
-
import { r as raf } from './helpers-
|
|
5
|
+
import { r as raf } from './helpers-eab4f597.js';
|
|
6
6
|
|
|
7
7
|
const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
|
|
8
8
|
const LIFECYCLE_DID_ENTER = 'ionViewDidEnter';
|
|
@@ -10,8 +10,8 @@ const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
|
|
|
10
10
|
const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
|
|
11
11
|
const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
|
|
12
12
|
|
|
13
|
-
const iosTransitionAnimation = () => import('./ios.transition-
|
|
14
|
-
const mdTransitionAnimation = () => import('./md.transition-
|
|
13
|
+
const iosTransitionAnimation = () => import('./ios.transition-d1c8eea2.js');
|
|
14
|
+
const mdTransitionAnimation = () => import('./md.transition-0d2de76d.js');
|
|
15
15
|
// TODO(FW-2832): types
|
|
16
16
|
const transition = (opts) => {
|
|
17
17
|
return new Promise((resolve, reject) => {
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
import { d as doc } from './index-a5d50daf.js';
|
|
5
5
|
import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-fb295e3a.js';
|
|
6
6
|
import { p as printIonWarning } from './index-9b0d46f4.js';
|
|
7
|
-
import { c as componentOnReady } from './helpers-
|
|
7
|
+
import { c as componentOnReady } from './helpers-eab4f597.js';
|
|
8
8
|
import { b as getIonMode } from './ionic-global-a589c12c.js';
|
|
9
|
-
import { c as createAnimation } from './animation-
|
|
9
|
+
import { c as createAnimation } from './animation-6a3c0abb.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* baseAnimation
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { d as doc } from './index-a5d50daf.js';
|
|
5
|
-
import {
|
|
5
|
+
import { p as now, q as pointerCoord } from './helpers-eab4f597.js';
|
|
6
6
|
|
|
7
7
|
const startTapClick = (config) => {
|
|
8
8
|
if (doc === undefined) {
|