@ionic/core 9.0.3-dev.11788456135.1ab1d6cd → 9.0.3-dev.11790116791.11c9cd1e
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/index.js +1 -1
- package/components/ion-accordion-group.js +1 -1
- package/components/ion-accordion.js +1 -1
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-app.js +1 -1
- package/components/ion-avatar.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-backdrop.js +1 -1
- package/components/ion-badge.js +1 -1
- package/components/ion-breadcrumb.js +1 -1
- package/components/ion-breadcrumbs.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-buttons.js +1 -1
- package/components/ion-card-content.js +1 -1
- package/components/ion-card-header.js +1 -1
- package/components/ion-card-subtitle.js +1 -1
- package/components/ion-card-title.js +1 -1
- package/components/ion-card.js +1 -1
- package/components/ion-checkbox.js +1 -1
- package/components/ion-chip.js +1 -1
- package/components/ion-col.js +1 -1
- package/components/ion-content.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-divider.js +1 -1
- package/components/ion-fab-button.js +1 -1
- package/components/ion-fab-list.js +1 -1
- package/components/ion-fab.js +1 -1
- package/components/ion-footer.js +1 -1
- package/components/ion-gallery-item.js +1 -1
- package/components/ion-gallery.js +1 -1
- package/components/ion-grid.js +1 -1
- package/components/ion-header.js +1 -1
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +1 -1
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input-otp.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-divider.js +1 -1
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-item.js +1 -1
- package/components/ion-label.js +1 -1
- package/components/ion-list-header.js +1 -1
- package/components/ion-list.js +1 -1
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu-toggle.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +1 -1
- package/components/ion-picker-column-option.js +1 -1
- package/components/ion-picker-column.js +1 -1
- package/components/ion-picker.js +1 -1
- package/components/ion-popover.js +1 -1
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-radio-group.js +1 -1
- package/components/ion-radio.js +1 -1
- package/components/ion-range.js +1 -1
- 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-ripple-effect.js +1 -1
- package/components/ion-router-link.js +1 -1
- 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 +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-segment.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select-option.js +1 -1
- package/components/ion-select-popover.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/ion-skeleton-text.js +1 -1
- package/components/ion-spinner.js +1 -1
- package/components/ion-split-pane.js +1 -1
- package/components/ion-tab-bar.js +1 -1
- package/components/ion-tab-button.js +1 -1
- package/components/ion-tab.js +1 -1
- package/components/ion-text.js +1 -1
- package/components/ion-textarea.js +1 -1
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-title.js +1 -1
- package/components/ion-toast.js +1 -1
- package/components/ion-toggle.js +1 -1
- package/components/ion-toolbar.js +1 -1
- package/components/p-0Zqw1uai.js +4 -0
- package/{dist/ionic/p-BqQ15K9a.js → components/p-0rXxxCTt.js} +1 -1
- package/components/{p-CTTmpA7l.js → p-3cjGQppH.js} +1 -1
- package/components/{p-W8Yq_OMR.js → p-B5AgguuG.js} +1 -1
- package/components/{p-BZmR0M4X.js → p-BNEGSmbp.js} +1 -1
- package/components/p-BSIw8XlU.js +4 -0
- package/components/{p-ZxET9sbA.js → p-BW5EN2Xi.js} +1 -1
- package/components/p-BYk20Mf5.js +4 -0
- package/components/p-BYnI-EJn.js +4 -0
- package/components/p-B_aT3oAQ.js +4 -0
- package/components/{p-CPXKIYkL.js → p-BkZBiLB3.js} +1 -1
- package/components/p-BouoWyEU.js +4 -0
- package/components/p-BqvZYIdI.js +4 -0
- package/components/p-BrRaGlll.js +4 -0
- package/components/{p-BBz0jPCg.js → p-C2CD_fhN.js} +1 -1
- package/components/{p-CsQsFkwO.js → p-C4xXkVID.js} +1 -1
- package/components/{p-VLn2Ytmp.js → p-CEKVY_H-.js} +1 -1
- package/components/{p-DkQNAyg8.js → p-CGj2vPt5.js} +1 -1
- package/components/{p-DgIAZUGe.js → p-CJp2AnUY.js} +1 -1
- package/components/p-CO6vPcgh.js +4 -0
- package/components/{p-DhBOoebx.js → p-Ce2nAsLZ.js} +1 -1
- package/components/{p-JAFy4ZHv.js → p-Cf8Sc9qN.js} +1 -1
- package/components/p-Cfk7czUn.js +4 -0
- package/components/{p-DNrr6r3I.js → p-CiRvXVG4.js} +1 -1
- package/components/p-Cl4FcpPX.js +4 -0
- package/components/{p-CtLeQL1G.js → p-CmZn5IDl.js} +1 -1
- package/components/p-D8HKWBJm.js +4 -0
- package/components/{p-EayFnjkU.js → p-D9UifuBV.js} +1 -1
- package/components/p-DBFO9oVW.js +4 -0
- package/components/{p-BGP1kR6j.js → p-DCpIv6ib.js} +1 -1
- package/components/p-DKWIsI1o.js +4 -0
- package/components/p-DQKxHcJi.js +4 -0
- package/components/p-DT2MRyId.js +4 -0
- package/components/{p-DWBpR7SJ.js → p-DdEyFcAR.js} +1 -1
- package/components/{p-DOdd_Inr.js → p-DrnBmDva.js} +1 -1
- package/components/{p-DGfjyB0v.js → p-Dsp7VCux.js} +1 -1
- package/components/p-DwTxdFPM.js +4 -0
- package/components/p-DxjhU4Lj.js +4 -0
- package/components/p-HWerNWEa.js +4 -0
- package/components/{p-D5lFNdff.js → p-M-IrAJS3.js} +1 -1
- package/components/p-Xl2x2-Ol.js +4 -0
- package/components/p-YP5ydNow.js +4 -0
- package/components/p-_FtneEj3.js +4 -0
- package/components/{p-C9cwz4xv.js → p-eDabxF6I.js} +1 -1
- package/components/p-fKHu5GWX.js +4 -0
- package/components/p-gGbm4ACs.js +4 -0
- package/components/p-hJBybumI.js +4 -0
- package/components/{p-Be00fpKV.js → p-jG41Us4a.js} +1 -1
- package/components/{p-CvRAtS4n.js → p-ndDJHQew.js} +1 -1
- package/components/p-oaWlbHN_.js +4 -0
- package/{dist/ionic/p-DpE9LgN6.js → components/p-oe85PI7E.js} +1 -1
- package/components/p-tglOeKd7.js +4 -0
- package/css/ionic/bundle.ionic.css +1 -1
- package/css/ionic/bundle.ionic.css.map +1 -1
- package/css/ionic/core.ionic.css +1 -1
- package/css/ionic/core.ionic.css.map +1 -1
- package/css/ionic/global.bundle.ionic.css +1 -1
- package/css/ionic/global.bundle.ionic.css.map +1 -1
- package/css/ionic/ionic-swiper.ionic.css +1 -1
- package/css/ionic/ionic-swiper.ionic.css.map +1 -1
- package/css/ionic/link.ionic.css +1 -1
- package/css/ionic/link.ionic.css.map +1 -1
- package/css/ionic/typography.ionic.css +1 -1
- package/css/ionic/typography.ionic.css.map +1 -1
- package/dist/cjs/{animation-DVrkairK.js → animation-Dfev6yFW.js} +1 -1
- package/dist/cjs/{app-globals-CTxe9MxF.js → app-globals-BwOspzE5.js} +1 -1
- package/dist/cjs/{button-active-B8t6YMNb.js → button-active-DfzJC914.js} +1 -1
- package/dist/cjs/{capacitor-w_r4U-_S.js → capacitor-B7dK21VK.js} +1 -1
- package/dist/cjs/{clear-button-press-controller-BKSn-dVq.js → clear-button-press-controller-B49x92PF.js} +1 -1
- package/dist/cjs/{focus-visible-BIj-I3-C.js → focus-visible-DGPRKkcx.js} +52 -2
- package/dist/cjs/{framework-delegate-Dmce7iqZ.js → framework-delegate-BKYAwcZK.js} +1 -1
- package/dist/cjs/{haptic-DZEv3V5s.js → haptic-CMs5ejXB.js} +1 -1
- package/dist/cjs/{helpers-DFJMw-qZ.js → helpers-D5NVnu5x.js} +16 -1
- package/dist/cjs/{index-DN51-BQl.js → index-6hDA5UlZ.js} +3 -3
- package/dist/cjs/{index-BoQA7njo.js → index-Byoi861q.js} +3 -3
- package/dist/cjs/{index-DWP810QI.js → index-CutlvfR4.js} +1 -1
- package/dist/cjs/{index-Bm6y0Ibt.js → index-Y8n2FvXS.js} +3 -3
- package/dist/cjs/index.cjs.js +10 -10
- package/dist/cjs/{input-shims-BFGH5o2Z.js → input-shims-SVR_4pAX.js} +6 -6
- package/dist/cjs/ion-accordion_2.cjs.entry.js +14 -19
- package/dist/cjs/ion-action-sheet.cjs.entry.js +10 -10
- package/dist/cjs/ion-alert.cjs.entry.js +13 -13
- package/dist/cjs/ion-app_8.cjs.entry.js +14 -14
- package/dist/cjs/ion-avatar_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-back-button.cjs.entry.js +14 -16
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +19 -32
- package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-card_5.cjs.entry.js +6 -6
- package/dist/cjs/ion-checkbox.cjs.entry.js +26 -18
- package/dist/cjs/ion-chip.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-datetime.cjs.entry.js +20 -56
- package/dist/cjs/ion-divider.cjs.entry.js +2 -2
- package/dist/cjs/ion-fab_3.cjs.entry.js +12 -17
- package/dist/cjs/ion-gallery-item.cjs.entry.js +1 -1
- package/dist/cjs/ion-gallery.cjs.entry.js +3 -3
- package/dist/cjs/ion-img.cjs.entry.js +3 -3
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-input-otp.cjs.entry.js +4 -4
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +19 -31
- package/dist/cjs/ion-input.cjs.entry.js +17 -33
- package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-item_8.cjs.entry.js +15 -20
- package/dist/cjs/ion-loading.cjs.entry.js +6 -6
- package/dist/cjs/ion-menu_3.cjs.entry.js +16 -19
- package/dist/cjs/ion-modal.cjs.entry.js +12 -12
- 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 +5 -5
- package/dist/cjs/ion-picker.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +8 -8
- package/dist/cjs/ion-progress-bar.cjs.entry.js +4 -4
- package/dist/cjs/ion-radio_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-range.cjs.entry.js +5 -5
- package/dist/cjs/ion-refresher_2.cjs.entry.js +17 -12
- package/dist/cjs/ion-reorder_2.cjs.entry.js +11 -19
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
- package/dist/cjs/ion-searchbar.cjs.entry.js +13 -42
- package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-select-modal.cjs.entry.js +17 -16
- package/dist/cjs/ion-select_3.cjs.entry.js +20 -44
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +1 -1
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +9 -9
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +1 -1
- package/dist/cjs/ion-textarea.cjs.entry.js +17 -25
- package/dist/cjs/ion-toast.cjs.entry.js +7 -7
- package/dist/cjs/ion-toggle.cjs.entry.js +18 -34
- package/dist/cjs/{ionic-global-BaVLW54G.js → ionic-global-CRAqTE7M.js} +5 -5
- package/dist/cjs/ionic.cjs.js +2 -2
- package/dist/cjs/{ios.transition-Bm4N3WK1.js → ios.transition-BluJBTN6.js} +5 -5
- package/dist/cjs/{keyboard-9uOUQmB-.js → keyboard-B44EnZyJ.js} +1 -1
- package/dist/cjs/{keyboard-5cEsoK5l.js → keyboard-CR7Eg8u3.js} +3 -3
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{md.transition-Z-7hu2x1.js → md.transition-TBHPCec3.js} +5 -5
- package/dist/cjs/{overlays-Jn6TNpc3.js → overlays-B5YzPlbv.js} +5 -5
- package/dist/cjs/{scroll-hide-controller-DQ9ulQ11.js → scroll-hide-controller-Bht8yQkC.js} +3 -3
- package/dist/cjs/{slot-mutation-controller-C9i1ymbP.js → slot-mutation-controller-CinDJgCY.js} +2 -2
- package/dist/cjs/{status-tap-DT7J4fZQ.js → status-tap-Aq-o5Csp.js} +3 -3
- package/dist/cjs/{swipe-back-BIbF7bVy.js → swipe-back-Byqp-bJI.js} +2 -2
- package/dist/collection/components/accordion/accordion.ionic.css +10 -12
- package/dist/collection/components/accordion/accordion.js +9 -14
- package/dist/collection/components/accordion-group/accordion-group.ionic.css +6 -6
- package/dist/collection/components/action-sheet/action-sheet.ionic.css +22 -26
- package/dist/collection/components/alert/alert.ionic.css +46 -54
- package/dist/collection/components/alert/alert.js +3 -3
- package/dist/collection/components/avatar/avatar.ionic.css +29 -35
- package/dist/collection/components/back-button/back-button.js +11 -13
- package/dist/collection/components/backdrop/backdrop.ionic.css +1 -1
- package/dist/collection/components/badge/badge.ionic.css +15 -18
- package/dist/collection/components/breadcrumb/breadcrumb.js +16 -28
- package/dist/collection/components/button/button.ionic.css +22 -26
- package/dist/collection/components/buttons/buttons.ionic.css +1 -1
- package/dist/collection/components/card/card.ionic.css +7 -7
- package/dist/collection/components/card-content/card-content.ionic.css +3 -4
- package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +4 -5
- package/dist/collection/components/checkbox/checkbox.ionic.css +51 -59
- package/dist/collection/components/checkbox/checkbox.ios.css +33 -29
- package/dist/collection/components/checkbox/checkbox.js +23 -13
- package/dist/collection/components/checkbox/checkbox.md.css +33 -29
- package/dist/collection/components/chip/chip.ionic.css +12 -13
- package/dist/collection/components/datetime/datetime.ionic.css +43 -49
- package/dist/collection/components/datetime/datetime.ios.css +5 -10
- package/dist/collection/components/datetime/datetime.js +12 -48
- package/dist/collection/components/datetime/datetime.md.css +5 -10
- package/dist/collection/components/divider/divider.ionic.css +1 -1
- package/dist/collection/components/fab-button/fab-button.js +9 -14
- package/dist/collection/components/header/header.ionic.css +1 -1
- package/dist/collection/components/input/input.ionic.css +142 -122
- package/dist/collection/components/input/input.js +11 -27
- package/dist/collection/components/input-otp/input-otp.ionic.css +29 -31
- package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +1 -1
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +18 -28
- package/dist/collection/components/item/item.ionic.css +9 -10
- package/dist/collection/components/item/item.js +10 -15
- package/dist/collection/components/item-option/item-option.ionic.css +5 -6
- package/dist/collection/components/item-sliding/item-sliding.ionic.css +1 -1
- package/dist/collection/components/list-header/list-header.ionic.css +4 -5
- package/dist/collection/components/menu-button/menu-button.js +9 -12
- package/dist/collection/components/modal/modal.ionic.css +3 -3
- package/dist/collection/components/popover/popover.ionic.css +1 -1
- package/dist/collection/components/progress-bar/progress-bar.ionic.css +3 -3
- package/dist/collection/components/radio/radio.ionic.css +9 -10
- package/dist/collection/components/radio-group/radio-group.ionic.css +5 -6
- package/dist/collection/components/range/range.ionic.css +11 -12
- package/dist/collection/components/refresher-content/refresher-content.js +10 -4
- package/dist/collection/components/reorder/reorder.js +5 -13
- package/dist/collection/components/searchbar/searchbar.ionic.css +17 -18
- package/dist/collection/components/searchbar/searchbar.js +8 -35
- package/dist/collection/components/segment-button/segment-button.ionic.css +8 -9
- package/dist/collection/components/select/select.ionic.css +213 -105
- package/dist/collection/components/select/select.js +14 -39
- package/dist/collection/components/select-modal/select-modal.ionic.css +13 -16
- package/dist/collection/components/select-modal/select-modal.js +12 -10
- package/dist/collection/components/select-popover/select-popover.ionic.css +11 -13
- package/dist/collection/components/spinner/spinner.ionic.css +2 -2
- package/dist/collection/components/tab-bar/tab-bar.ionic.css +6 -6
- package/dist/collection/components/tab-button/tab-button.ionic.css +4 -5
- package/dist/collection/components/textarea/textarea.ionic.css +173 -128
- package/dist/collection/components/textarea/textarea.ios.css +0 -4
- package/dist/collection/components/textarea/textarea.js +13 -18
- package/dist/collection/components/textarea/textarea.md.css +0 -4
- package/dist/collection/components/title/title.ionic.css +6 -8
- package/dist/collection/components/toast/toast.ionic.css +16 -19
- package/dist/collection/components/toggle/toggle.ionic.css +14 -16
- package/dist/collection/components/toggle/toggle.js +12 -26
- package/dist/collection/components/toolbar/toolbar.ionic.css +1 -1
- package/dist/collection/utils/focus-trap.js +2 -2
- package/dist/collection/utils/focus-visible.js +51 -2
- package/dist/collection/utils/helpers.js +15 -1
- package/dist/collection/utils/overlays.js +2 -2
- package/dist/collection/utils/test/playwright/field-geometry.js +34 -0
- package/dist/collection/utils/test/playwright/index.js +1 -0
- package/dist/docs.json +60 -25
- package/dist/esm/{animation-DXpoXT3G.js → animation-CSQV6dzD.js} +1 -1
- package/dist/esm/{app-globals-gnMsODWu.js → app-globals-PWSz-l_N.js} +1 -1
- package/dist/esm/{button-active-DtDlu9-d.js → button-active-C57xZQjg.js} +1 -1
- package/dist/esm/{capacitor-CMyaZHxy.js → capacitor-DBIFQa2o.js} +1 -1
- package/dist/esm/{clear-button-press-controller-CWOPHFBc.js → clear-button-press-controller-Dd5_yhOF.js} +1 -1
- package/dist/esm/{focus-visible-vXpMhGrs.js → focus-visible-BYk20Mf5.js} +52 -3
- package/dist/esm/{framework-delegate-DUQ69ajj.js → framework-delegate-BGk11dmh.js} +1 -1
- package/dist/esm/{haptic-Dal3yCq6.js → haptic-PEF9NVXM.js} +1 -1
- package/dist/esm/{helpers-DTqW6MzS.js → helpers-COVHAPv8.js} +16 -2
- package/dist/esm/{index-CpKLzrYn.js → index-B7Bz5x4m.js} +1 -1
- package/dist/esm/{index-BqQ15K9a.js → index-BkJpfpXI.js} +1 -1
- package/dist/esm/{index-C2QkTAgc.js → index-DHp8pAEm.js} +3 -3
- package/dist/esm/{index-D_YUqPZN.js → index-Detgiv22.js} +3 -3
- package/dist/esm/{index-D76uuG8P.js → index-MCAWImIY.js} +3 -3
- package/dist/esm/index.js +10 -10
- package/dist/esm/{input-shims-DgFi_b6v.js → input-shims-rVCP_KOP.js} +6 -6
- package/dist/esm/ion-accordion_2.entry.js +15 -20
- package/dist/esm/ion-action-sheet.entry.js +10 -10
- package/dist/esm/ion-alert.entry.js +13 -13
- package/dist/esm/ion-app_8.entry.js +14 -14
- package/dist/esm/ion-avatar_3.entry.js +3 -3
- package/dist/esm/ion-back-button.entry.js +15 -17
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +20 -33
- package/dist/esm/ion-button_2.entry.js +4 -4
- package/dist/esm/ion-card_5.entry.js +6 -6
- package/dist/esm/ion-checkbox.entry.js +27 -19
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +1 -1
- package/dist/esm/ion-datetime-button.entry.js +3 -3
- package/dist/esm/ion-datetime.entry.js +21 -57
- package/dist/esm/ion-divider.entry.js +2 -2
- package/dist/esm/ion-fab_3.entry.js +13 -18
- package/dist/esm/ion-gallery-item.entry.js +1 -1
- package/dist/esm/ion-gallery.entry.js +3 -3
- package/dist/esm/ion-img.entry.js +3 -3
- package/dist/esm/ion-infinite-scroll_2.entry.js +4 -4
- package/dist/esm/ion-input-otp.entry.js +4 -4
- package/dist/esm/ion-input-password-toggle.entry.js +20 -32
- package/dist/esm/ion-input.entry.js +18 -34
- package/dist/esm/ion-item-option_3.entry.js +6 -6
- package/dist/esm/ion-item_8.entry.js +16 -21
- package/dist/esm/ion-loading.entry.js +6 -6
- package/dist/esm/ion-menu_3.entry.js +17 -20
- package/dist/esm/ion-modal.entry.js +12 -12
- 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 +5 -5
- package/dist/esm/ion-picker.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +8 -8
- package/dist/esm/ion-progress-bar.entry.js +4 -4
- package/dist/esm/ion-radio_2.entry.js +5 -5
- package/dist/esm/ion-range.entry.js +5 -5
- package/dist/esm/ion-refresher_2.entry.js +18 -13
- package/dist/esm/ion-reorder_2.entry.js +12 -20
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +4 -4
- package/dist/esm/ion-searchbar.entry.js +14 -43
- package/dist/esm/ion-segment_2.entry.js +4 -4
- package/dist/esm/ion-select-modal.entry.js +19 -18
- package/dist/esm/ion-select_3.entry.js +21 -45
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +1 -1
- package/dist/esm/ion-tab-bar_2.entry.js +9 -9
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +1 -1
- package/dist/esm/ion-textarea.entry.js +17 -25
- package/dist/esm/ion-toast.entry.js +7 -7
- package/dist/esm/ion-toggle.entry.js +19 -35
- package/dist/esm/{ionic-global-oK2heABF.js → ionic-global-DPSBlusf.js} +5 -5
- package/dist/esm/ionic.js +2 -2
- package/dist/esm/{ios.transition-D6rsx0aJ.js → ios.transition-Dg02Css6.js} +5 -5
- package/dist/esm/{keyboard-YBye__Ay.js → keyboard-0MlGMI-U.js} +3 -3
- package/dist/esm/{keyboard-Dzp50ozz.js → keyboard-C09oMZsY.js} +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/{md.transition-0y4So3tu.js → md.transition-DWmGdm6c.js} +5 -5
- package/dist/esm/{overlays-CLlfG_qy.js → overlays-Bv7M5ll5.js} +5 -5
- package/dist/esm/{scroll-hide-controller-BUZm0jSI.js → scroll-hide-controller-Tp5xjq2E.js} +3 -3
- package/dist/esm/{slot-mutation-controller-C5Vj7Od7.js → slot-mutation-controller-PS17pZ-_.js} +2 -2
- package/dist/esm/{status-tap-VmNhEOZr.js → status-tap-_VvGTiUU.js} +3 -3
- package/dist/esm/{swipe-back-BHHiqew-.js → swipe-back-D2R5S8HL.js} +2 -2
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-3bb43e22.entry.js → p-054bdefd.entry.js} +1 -1
- package/dist/ionic/p-155f3baf.entry.js +4 -0
- package/dist/ionic/{p-2e3acd77.entry.js → p-18d55baa.entry.js} +1 -1
- package/dist/ionic/p-1d40a19c.entry.js +4 -0
- package/dist/ionic/p-221d7b0b.entry.js +4 -0
- package/dist/ionic/p-30858188.entry.js +4 -0
- package/dist/ionic/{p-924182fc.entry.js → p-3111972e.entry.js} +1 -1
- package/dist/ionic/p-323b7322.entry.js +4 -0
- package/dist/ionic/p-32ed09fe.entry.js +4 -0
- package/dist/ionic/{p-d0368d31.entry.js → p-343f72d0.entry.js} +1 -1
- package/dist/ionic/{p-db011674.entry.js → p-37faa244.entry.js} +1 -1
- package/dist/ionic/p-3966cd77.entry.js +4 -0
- package/dist/ionic/p-4030db68.entry.js +4 -0
- package/dist/ionic/p-42a054ee.entry.js +4 -0
- package/dist/ionic/{p-fdb940e3.entry.js → p-42cfdcb7.entry.js} +1 -1
- package/dist/ionic/p-44cd6a88.entry.js +4 -0
- package/dist/ionic/{p-886236f0.entry.js → p-6589a3f6.entry.js} +1 -1
- package/dist/ionic/p-68ffe393.entry.js +4 -0
- package/dist/ionic/p-6b9b6175.entry.js +4 -0
- package/dist/ionic/{p-84b5eafe.entry.js → p-6c99f6c8.entry.js} +1 -1
- package/dist/ionic/{p-dc000de0.entry.js → p-6c9d8e84.entry.js} +1 -1
- package/dist/ionic/p-6fe03c66.entry.js +4 -0
- package/dist/ionic/p-747c4c1e.entry.js +4 -0
- package/dist/ionic/p-7b769a8c.entry.js +4 -0
- package/dist/ionic/p-7e07f60d.entry.js +4 -0
- package/dist/ionic/p-7e9a0222.entry.js +4 -0
- package/dist/ionic/p-8f052ddf.entry.js +4 -0
- package/dist/ionic/p-8fb06684.entry.js +4 -0
- package/dist/ionic/p-91a7e3df.entry.js +4 -0
- package/dist/ionic/p-9344a53d.entry.js +4 -0
- package/dist/ionic/{p-55e13406.entry.js → p-93c69512.entry.js} +1 -1
- package/dist/ionic/{p-b83de44e.entry.js → p-96f73def.entry.js} +1 -1
- package/dist/ionic/p-9c0cae6a.entry.js +4 -0
- package/dist/ionic/{p-CsmXfOZY.js → p-B3Kiljjq.js} +1 -1
- package/dist/ionic/p-BN5wKnhU.js +4 -0
- package/dist/ionic/p-BQmJoNKC.js +4 -0
- package/dist/ionic/p-BYk20Mf5.js +4 -0
- package/{components/p-Cc3oC60a.js → dist/ionic/p-BkJpfpXI.js} +1 -1
- package/{components/p-CN41sVGB.js → dist/ionic/p-Bp2Gog3I.js} +1 -1
- package/dist/ionic/p-Br2aTSXv.js +4 -0
- package/dist/ionic/{p-D8HyO4-0.js → p-BxyvWHWp.js} +1 -1
- package/dist/ionic/p-C-5bbxTv.js +4 -0
- package/dist/ionic/p-CalV2EFO.js +4 -0
- package/dist/ionic/p-Ck7LvynN.js +4 -0
- package/dist/ionic/{p-BnRvdoDY.js → p-CpbV2dkG.js} +1 -1
- package/dist/ionic/p-CyqXbsry.js +4 -0
- package/dist/ionic/{p-Izgzy5eB.js → p-DAdCwTwc.js} +1 -1
- package/dist/ionic/{p-DAFzmzMJ.js → p-DWu51GL8.js} +1 -1
- package/dist/ionic/p-DYl9g-Nn.js +4 -0
- package/dist/ionic/p-DhRGeAiB.js +4 -0
- package/dist/ionic/{p-BdqFx5km.js → p-Dynoer0Z.js} +1 -1
- package/dist/ionic/p-HzpJgzPY.js +4 -0
- package/dist/ionic/{p-Cs5kzNVE.js → p-PrbehP8l.js} +1 -1
- package/dist/ionic/p-XIxYRztg.js +4 -0
- package/dist/ionic/{p-B3L20Lav.js → p-_RfHVD7s.js} +1 -1
- package/dist/ionic/{p-8a7bf6c7.entry.js → p-a69ccce3.entry.js} +1 -1
- package/dist/ionic/p-a8bce8c2.entry.js +4 -0
- package/dist/ionic/p-aa658bb9.entry.js +4 -0
- package/dist/ionic/p-ada3f6b9.entry.js +4 -0
- package/dist/ionic/p-b2d4bb26.entry.js +4 -0
- package/dist/ionic/p-b9f0ce4c.entry.js +4 -0
- package/dist/ionic/{p-30c4458b.entry.js → p-be5bc00a.entry.js} +1 -1
- package/dist/ionic/p-bfe9bfae.entry.js +4 -0
- package/dist/ionic/p-c85c7436.entry.js +4 -0
- package/dist/ionic/p-caa7801f.entry.js +4 -0
- package/dist/ionic/{p-46709a42.entry.js → p-d97fabaa.entry.js} +1 -1
- package/dist/ionic/p-da319993.entry.js +4 -0
- package/dist/ionic/p-df1c1199.entry.js +4 -0
- package/dist/ionic/{p-2c3704b9.entry.js → p-e02e6d2b.entry.js} +1 -1
- package/dist/ionic/{p-6b23289a.entry.js → p-e10326b5.entry.js} +1 -1
- package/dist/ionic/{p-d1d3048b.entry.js → p-e8e3b85f.entry.js} +1 -1
- package/dist/ionic/p-ec90ddaf.entry.js +4 -0
- package/dist/ionic/{p-cd05447f.entry.js → p-ee6708ce.entry.js} +1 -1
- package/dist/ionic/{p-e939adf3.entry.js → p-f301235c.entry.js} +1 -1
- package/dist/ionic/p-fd0666a5.entry.js +4 -0
- package/dist/ionic/{p-CP5-2cXj.js → p-j9My4oCO.js} +1 -1
- package/dist/ionic/p-pQdkMmul.js +4 -0
- package/dist/ionic/p-sXOU046_.js +4 -0
- package/dist/types/components/accordion/accordion.d.ts +7 -1
- package/dist/types/components/back-button/back-button.d.ts +8 -2
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +12 -2
- package/dist/types/components/checkbox/checkbox.d.ts +12 -1
- package/dist/types/components/datetime/datetime.d.ts +4 -4
- package/dist/types/components/fab-button/fab-button.d.ts +7 -1
- package/dist/types/components/input/input.d.ts +7 -10
- package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +14 -2
- package/dist/types/components/item/item.d.ts +7 -1
- package/dist/types/components/menu-button/menu-button.d.ts +6 -1
- package/dist/types/components/refresher-content/refresher-content.d.ts +6 -0
- package/dist/types/components/reorder/reorder.d.ts +1 -1
- package/dist/types/components/select/select.d.ts +7 -12
- package/dist/types/components/select-modal/select-modal.d.ts +6 -1
- package/dist/types/components/textarea/textarea.d.ts +8 -8
- package/dist/types/components/toggle/toggle.d.ts +5 -2
- package/dist/types/utils/config.d.ts +22 -2
- package/dist/types/utils/focus-visible.d.ts +20 -0
- package/dist/types/utils/helpers.d.ts +7 -0
- package/dist/types/utils/test/playwright/field-geometry.d.ts +13 -0
- package/dist/types/utils/test/playwright/index.d.ts +1 -0
- package/hydrate/index.js +318 -417
- package/hydrate/index.mjs +318 -417
- package/package.json +4 -5
- package/components/p-B1AK6oR-.js +0 -4
- package/components/p-B8dfyFoB.js +0 -4
- package/components/p-B9UT2JwK.js +0 -4
- package/components/p-BDqjX7Z_.js +0 -4
- package/components/p-BQUTtt8S.js +0 -4
- package/components/p-BYSs-jZz.js +0 -4
- package/components/p-BZtGrrX4.js +0 -4
- package/components/p-BdAOHgnb.js +0 -4
- package/components/p-C8aonLbo.js +0 -4
- package/components/p-CDmCFFLL.js +0 -4
- package/components/p-CPdOdJa7.js +0 -4
- package/components/p-CksPhDEa.js +0 -4
- package/components/p-Cm78Kk79.js +0 -4
- package/components/p-CmEe-Llj.js +0 -4
- package/components/p-D1t981Ih.js +0 -4
- package/components/p-D9jEKvVd.js +0 -4
- package/components/p-DG-ZC7Js.js +0 -4
- package/components/p-DJkuoL4u.js +0 -4
- package/components/p-DOoxQDxg.js +0 -4
- package/components/p-DcOWEjmv.js +0 -4
- package/components/p-DgEOEy6x.js +0 -4
- package/components/p-Dhi5xtNS.js +0 -4
- package/components/p-DtPgvez6.js +0 -4
- package/components/p-DwAij6DN.js +0 -4
- package/components/p-DzaPYdjZ.js +0 -4
- package/components/p-Dzuh_AKJ.js +0 -4
- package/components/p-Uo-TYRpE.js +0 -4
- package/components/p-cKiRADSB.js +0 -4
- package/components/p-e73ca-aN.js +0 -4
- package/components/p-fIOYmaqA.js +0 -4
- package/components/p-fh4o6dKR.js +0 -4
- package/components/p-vXpMhGrs.js +0 -4
- package/dist/cjs/caret-down-vtVgfXIs.js +0 -8
- package/dist/cjs/caret-left-CxZXLRv5.js +0 -8
- package/dist/cjs/caret-right-CRCgv98E.js +0 -8
- package/dist/cjs/list-a-7GSA6K.js +0 -8
- package/dist/cjs/x-BTF99yFH.js +0 -8
- package/dist/esm/caret-down-D1t981Ih.js +0 -6
- package/dist/esm/caret-left-fIOYmaqA.js +0 -6
- package/dist/esm/caret-right-BYSs-jZz.js +0 -6
- package/dist/esm/list-Dhi5xtNS.js +0 -6
- package/dist/esm/x-BDqjX7Z_.js +0 -6
- package/dist/ionic/p-04d96dad.entry.js +0 -4
- package/dist/ionic/p-08f20edc.entry.js +0 -4
- package/dist/ionic/p-0a924e6a.entry.js +0 -4
- package/dist/ionic/p-0f268972.entry.js +0 -4
- package/dist/ionic/p-18c6af89.entry.js +0 -4
- package/dist/ionic/p-1cc2a196.entry.js +0 -4
- package/dist/ionic/p-201f484e.entry.js +0 -4
- package/dist/ionic/p-26efcc45.entry.js +0 -4
- package/dist/ionic/p-2da21af7.entry.js +0 -4
- package/dist/ionic/p-2fc1521f.entry.js +0 -4
- package/dist/ionic/p-32be916d.entry.js +0 -4
- package/dist/ionic/p-384fb50d.entry.js +0 -4
- package/dist/ionic/p-4QzQhqmw.js +0 -4
- package/dist/ionic/p-5217eb00.entry.js +0 -4
- package/dist/ionic/p-73309d35.entry.js +0 -4
- package/dist/ionic/p-74ab5f49.entry.js +0 -4
- package/dist/ionic/p-7d2f3242.entry.js +0 -4
- package/dist/ionic/p-7e28cc53.entry.js +0 -4
- package/dist/ionic/p-83d13d56.entry.js +0 -4
- package/dist/ionic/p-854b95f9.entry.js +0 -4
- package/dist/ionic/p-8NLG9fne.js +0 -4
- package/dist/ionic/p-8dcd18cf.entry.js +0 -4
- package/dist/ionic/p-92f21db6.entry.js +0 -4
- package/dist/ionic/p-9ca59419.entry.js +0 -4
- package/dist/ionic/p-B6aOaV_m.js +0 -4
- package/dist/ionic/p-BDqjX7Z_.js +0 -4
- package/dist/ionic/p-BVv5nqxG.js +0 -4
- package/dist/ionic/p-BYSs-jZz.js +0 -4
- package/dist/ionic/p-CD4Mty1V.js +0 -4
- package/dist/ionic/p-CLVGlNRl.js +0 -4
- package/dist/ionic/p-CRbXZpID.js +0 -4
- package/dist/ionic/p-CZ-V4tB0.js +0 -4
- package/dist/ionic/p-CyXL8sF6.js +0 -4
- package/dist/ionic/p-D1ej8PMz.js +0 -4
- package/dist/ionic/p-D1t981Ih.js +0 -4
- package/dist/ionic/p-Dhi5xtNS.js +0 -4
- package/dist/ionic/p-DvXo4Ng9.js +0 -4
- package/dist/ionic/p-ac4ea8db.entry.js +0 -4
- package/dist/ionic/p-b10dc124.entry.js +0 -4
- package/dist/ionic/p-b411d90d.entry.js +0 -4
- package/dist/ionic/p-b7ce4a50.entry.js +0 -4
- package/dist/ionic/p-c7035f3f.entry.js +0 -4
- package/dist/ionic/p-c91fc9d4.entry.js +0 -4
- package/dist/ionic/p-cd4791d5.entry.js +0 -4
- package/dist/ionic/p-ce1ab874.entry.js +0 -4
- package/dist/ionic/p-e9480e7f.entry.js +0 -4
- package/dist/ionic/p-e9fdff49.entry.js +0 -4
- package/dist/ionic/p-f29b784f.entry.js +0 -4
- package/dist/ionic/p-f82b13a6.entry.js +0 -4
- package/dist/ionic/p-fIOYmaqA.js +0 -4
- package/dist/ionic/p-psKsVoNI.js +0 -4
- package/dist/ionic/p-si7ttuvL.js +0 -4
- package/dist/ionic/p-vXpMhGrs.js +0 -4
|
@@ -534,41 +534,8 @@ button {
|
|
|
534
534
|
border-top: none;
|
|
535
535
|
}
|
|
536
536
|
|
|
537
|
-
:host(.select-fill-outline) .
|
|
538
|
-
/**
|
|
539
|
-
* The label should appear on top of an outline
|
|
540
|
-
* container that overlaps it so it is always clickable.
|
|
541
|
-
*/
|
|
542
|
-
position: relative;
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
:host(.select-fill-outline) .select-wrapper-inner {
|
|
546
|
-
border-radius: var(--border-radius);
|
|
547
|
-
-webkit-padding-start: var(--padding-start);
|
|
548
|
-
padding-inline-start: var(--padding-start);
|
|
549
|
-
-webkit-padding-end: var(--padding-end);
|
|
550
|
-
padding-inline-end: var(--padding-end);
|
|
551
|
-
padding-top: var(--padding-top);
|
|
552
|
-
padding-bottom: var(--padding-bottom);
|
|
553
|
-
/**
|
|
554
|
-
* Apply the background to the native select
|
|
555
|
-
* wrapper to only style the select.
|
|
556
|
-
*/
|
|
557
|
-
background: var(--background);
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
:host(.select-fill-outline) .select-outline {
|
|
561
|
-
right: 0;
|
|
562
|
-
left: 0;
|
|
563
|
-
top: 0;
|
|
564
|
-
bottom: 0;
|
|
565
|
-
border-radius: var(--border-radius);
|
|
566
|
-
position: absolute;
|
|
567
|
-
width: 100%;
|
|
568
|
-
height: 100%;
|
|
569
|
-
pointer-events: none;
|
|
537
|
+
:host(.select-fill-outline) .select-wrapper::before {
|
|
570
538
|
border: var(--border-width) var(--border-style) var(--border-color);
|
|
571
|
-
box-sizing: border-box;
|
|
572
539
|
}
|
|
573
540
|
|
|
574
541
|
:host(.ion-focused.select-fill-outline) {
|
|
@@ -590,55 +557,53 @@ button {
|
|
|
590
557
|
|
|
591
558
|
:host {
|
|
592
559
|
--background: var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));
|
|
593
|
-
--border-color: var(--token-primitives-neutral-500, #
|
|
560
|
+
--border-color: var(--token-primitives-neutral-500, #9fa5ad);
|
|
594
561
|
--border-width: var(--token-border-size-025, var(--token-scale-025, 1px));
|
|
595
562
|
--padding-start: var(--token-space-400, var(--token-scale-400, 16px));
|
|
596
563
|
--padding-end: var(--token-space-400, var(--token-scale-400, 16px));
|
|
597
564
|
--padding-top: var(--token-space-300, var(--token-scale-300, 12px));
|
|
598
565
|
--padding-bottom: var(--token-space-300, var(--token-scale-300, 12px));
|
|
599
|
-
--placeholder-color: var(--token-primitives-neutral-800, #
|
|
566
|
+
--placeholder-color: var(--token-primitives-neutral-800, #6c727a);
|
|
600
567
|
--placeholder-opacity: 1;
|
|
601
|
-
--highlight-color-focused: var(--token-border-focus-default, var(--token-primitives-blue-400, #b5c0f7));
|
|
602
|
-
--highlight-color-valid: var(--token-semantics-success-900, var(--token-primitives-green-900, #
|
|
603
|
-
--highlight-color-invalid: var(--token-semantics-danger-800, var(--token-primitives-red-800, #
|
|
568
|
+
--highlight-color-focused: var(--token-border-focus-default, var(--token-semantics-primary-400, var(--token-primitives-blue-400, #b5c0f7)));
|
|
569
|
+
--highlight-color-valid: var(--token-semantics-success-900, var(--token-primitives-green-900, #037046));
|
|
570
|
+
--highlight-color-invalid: var(--token-semantics-danger-800, var(--token-primitives-red-800, #d2002b));
|
|
604
571
|
--select-text-gap: var(--token-space-300, var(--token-scale-300, 12px));
|
|
605
572
|
min-height: var(--token-scale-1100, 44px);
|
|
606
573
|
}
|
|
607
574
|
|
|
608
575
|
.select-bottom {
|
|
609
576
|
padding-top: var(--token-space-100, var(--token-scale-100, 4px));
|
|
577
|
+
font-family: var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");
|
|
610
578
|
font-size: var(--token-font-size-300, 0.75rem);
|
|
611
579
|
font-weight: var(--token-font-weight-medium, 500);
|
|
612
|
-
letter-spacing: var(--token-font-letter-spacing-0, 0
|
|
613
|
-
line-height: var(--token-font-line-height-500,
|
|
614
|
-
text-decoration: none;
|
|
615
|
-
text-transform: none;
|
|
580
|
+
letter-spacing: var(--token-font-letter-spacing-0, 0);
|
|
581
|
+
line-height: var(--token-font-line-height-500, 1.25rem);
|
|
616
582
|
}
|
|
617
583
|
|
|
618
584
|
.select-bottom .helper-text {
|
|
619
|
-
color: var(--token-primitives-neutral-800, #
|
|
585
|
+
color: var(--token-primitives-neutral-800, #6c727a);
|
|
620
586
|
}
|
|
621
587
|
|
|
622
588
|
.select-bottom .error-text {
|
|
623
|
-
color: var(--token-text-danger, var(--token-semantics-danger-
|
|
589
|
+
color: var(--token-text-danger, var(--token-semantics-danger-800, var(--token-primitives-red-800, #d2002b)));
|
|
624
590
|
}
|
|
625
591
|
|
|
626
592
|
.select-text {
|
|
627
593
|
min-width: var(--token-space-400, var(--token-scale-400, 16px));
|
|
628
|
-
color: var(--token-text-subtlest, var(--token-primitives-neutral-800, #
|
|
594
|
+
color: var(--token-text-subtlest, var(--token-primitives-neutral-800, #6c727a));
|
|
629
595
|
}
|
|
630
596
|
|
|
631
597
|
:host(.has-value) .select-text {
|
|
632
|
-
color: var(--token-text-default, var(--token-primitives-neutral-1200, #
|
|
598
|
+
color: var(--token-text-default, var(--token-primitives-neutral-1200, #242528));
|
|
633
599
|
}
|
|
634
600
|
|
|
635
601
|
.label-text-wrapper {
|
|
602
|
+
font-family: var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");
|
|
636
603
|
font-size: var(--token-font-size-300, 0.75rem);
|
|
637
604
|
font-weight: var(--token-font-weight-medium, 500);
|
|
638
|
-
letter-spacing: var(--token-font-letter-spacing-0, 0
|
|
639
|
-
line-height: var(--token-font-line-height-500,
|
|
640
|
-
text-decoration: none;
|
|
641
|
-
text-transform: none;
|
|
605
|
+
letter-spacing: var(--token-font-letter-spacing-0, 0);
|
|
606
|
+
line-height: var(--token-font-line-height-500, 1.25rem);
|
|
642
607
|
/**
|
|
643
608
|
* Label text should not extend
|
|
644
609
|
* beyond the bounds of the select.
|
|
@@ -649,7 +614,7 @@ button {
|
|
|
649
614
|
*/
|
|
650
615
|
max-width: var(--token-scale-5000, 200px);
|
|
651
616
|
transition: color var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1)), transform var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));
|
|
652
|
-
color: var(--token-primitives-neutral-1000, #
|
|
617
|
+
color: var(--token-primitives-neutral-1000, #383e45);
|
|
653
618
|
}
|
|
654
619
|
|
|
655
620
|
:host(.select-label-placement-start) .label-text-wrapper,
|
|
@@ -668,7 +633,6 @@ button {
|
|
|
668
633
|
}
|
|
669
634
|
|
|
670
635
|
:host(.select-label-placement-fixed) .label-text-wrapper {
|
|
671
|
-
flex: 0 0 calc(var(--token-scale-2400, 96px) + var(--token-space-100, var(--token-scale-100, 4px)));
|
|
672
636
|
width: calc(var(--token-scale-2400, 96px) + var(--token-space-100, var(--token-scale-100, 4px)));
|
|
673
637
|
min-width: calc(var(--token-scale-2400, 96px) + var(--token-space-100, var(--token-scale-100, 4px)));
|
|
674
638
|
max-width: var(--token-scale-5000, 200px);
|
|
@@ -701,72 +665,216 @@ button {
|
|
|
701
665
|
margin-bottom: var(--token-space-100, var(--token-scale-100, 4px));
|
|
702
666
|
}
|
|
703
667
|
|
|
668
|
+
/**
|
|
669
|
+
* The label is nested in the control so that every theme renders the same
|
|
670
|
+
* tree. Laying the wrapper out as a grid and flattening the control lets the
|
|
671
|
+
* label sit outside the field box, which is drawn by `::before` over the cells
|
|
672
|
+
* the label does not occupy.
|
|
673
|
+
*/
|
|
704
674
|
.select-wrapper {
|
|
675
|
+
display: grid;
|
|
676
|
+
/**
|
|
677
|
+
* Only stretch grows an auto row, so centering holds the label row at its
|
|
678
|
+
* content height and still centers the field in any leftover host height.
|
|
679
|
+
*/
|
|
680
|
+
align-content: center;
|
|
705
681
|
align-items: center;
|
|
706
682
|
min-width: var(--token-scale-5000, 200px);
|
|
707
683
|
background: transparent;
|
|
708
684
|
}
|
|
709
685
|
|
|
686
|
+
.select-control {
|
|
687
|
+
display: contents;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
/**
|
|
691
|
+
* A pseudo-element draws the box over the field cells, so the label stays
|
|
692
|
+
* outside of it.
|
|
693
|
+
*/
|
|
694
|
+
.select-wrapper::before {
|
|
695
|
+
border-radius: var(--border-radius, 0);
|
|
696
|
+
align-self: stretch;
|
|
697
|
+
box-sizing: border-box;
|
|
698
|
+
content: "";
|
|
699
|
+
pointer-events: none;
|
|
700
|
+
background: var(--background);
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
/**
|
|
704
|
+
* The field row is as tall as the size asks for, whatever the slots contain.
|
|
705
|
+
*/
|
|
706
|
+
:host(.select-size-small) .select-wrapper {
|
|
707
|
+
--internal-field-height: var(--token-scale-1000, 40px);
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
:host(.select-size-medium) .select-wrapper {
|
|
711
|
+
--internal-field-height: var(--token-scale-1200, 48px);
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
:host(.select-size-large) .select-wrapper {
|
|
715
|
+
--internal-field-height: var(--token-scale-1400, 56px);
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
:host(.select-label-placement-start) .label-text-wrapper,
|
|
719
|
+
:host(.select-label-placement-fixed) .label-text-wrapper,
|
|
720
|
+
:host(.select-label-placement-end) .label-text-wrapper {
|
|
721
|
+
grid-column: label;
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
:host(.select-label-placement-stacked) .label-text-wrapper,
|
|
725
|
+
:host(.select-label-placement-floating) .label-text-wrapper {
|
|
726
|
+
grid-column: field-start/field-end;
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
/**
|
|
730
|
+
* The `justify-content` property cannot serve here the way it does on a flex
|
|
731
|
+
* row, because grid would distribute the free space between every track,
|
|
732
|
+
* including the ones inside the field. So three empty tracks stand in for that
|
|
733
|
+
* space, and the justify property below decides which of them takes it. The
|
|
734
|
+
* other two collapse to `0fr`.
|
|
735
|
+
*/
|
|
736
|
+
:host(.select-label-placement-start) .select-wrapper,
|
|
737
|
+
:host(.select-label-placement-fixed) .select-wrapper {
|
|
738
|
+
grid-template-columns: var(--internal-justify-lead, 0fr) [label] auto var(--internal-justify-gap, 1fr) [field-start slot-start] minmax(0, auto) [native] minmax(0, auto) [slot-end] minmax(0, auto) [field-end] var(--internal-justify-trail, 0fr);
|
|
739
|
+
grid-template-rows: [label field] var(--internal-field-height, auto);
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
:host(.select-label-placement-end) .select-wrapper {
|
|
743
|
+
grid-template-columns: var(--internal-justify-lead, 0fr) [field-start slot-start] minmax(0, auto) [native] minmax(0, auto) [slot-end] minmax(0, auto) [field-end] var(--internal-justify-gap, 1fr) [label] auto var(--internal-justify-trail, 0fr);
|
|
744
|
+
grid-template-rows: [label field] var(--internal-field-height, auto);
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
/**
|
|
748
|
+
* With no label there is nothing to separate the field from, so the free space
|
|
749
|
+
* belongs after the field instead of before it. The label's own track collapses
|
|
750
|
+
* on its own, but the flexible one does not.
|
|
751
|
+
*/
|
|
752
|
+
:host(:not(.has-label)) .select-wrapper {
|
|
753
|
+
--internal-justify-gap: 0fr;
|
|
754
|
+
--internal-justify-trail: 1fr;
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
/**
|
|
758
|
+
* Each of these declares all three tracks. Declaring only the ones it moves
|
|
759
|
+
* would leave the others at whatever the no-label rule above set, since the
|
|
760
|
+
* cascade resolves per declaration and the two rules have equal specificity.
|
|
761
|
+
*
|
|
762
|
+
* Exactly one track stays flexible in every combination. That leaves no free
|
|
763
|
+
* space for the `justify-content` the shared stylesheet sets on the wrapper, so
|
|
764
|
+
* it stays inert. Leave all three at `0fr` and it starts distributing space
|
|
765
|
+
* between the field's own tracks.
|
|
766
|
+
*/
|
|
767
|
+
:host(.select-justify-start) .select-wrapper {
|
|
768
|
+
--internal-justify-lead: 0fr;
|
|
769
|
+
--internal-justify-gap: 0fr;
|
|
770
|
+
--internal-justify-trail: 1fr;
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
:host(.select-justify-end) .select-wrapper {
|
|
774
|
+
--internal-justify-lead: 1fr;
|
|
775
|
+
--internal-justify-gap: 0fr;
|
|
776
|
+
--internal-justify-trail: 0fr;
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
/**
|
|
780
|
+
* This only applies with a label, because `space-between` on a flex row with one
|
|
781
|
+
* in-flow item behaves as start, which is what the no-label rule already gives.
|
|
782
|
+
*/
|
|
783
|
+
:host(.has-label.select-justify-space-between) .select-wrapper {
|
|
784
|
+
--internal-justify-lead: 0fr;
|
|
785
|
+
--internal-justify-gap: 1fr;
|
|
786
|
+
--internal-justify-trail: 0fr;
|
|
787
|
+
}
|
|
788
|
+
|
|
710
789
|
:host(.select-label-placement-stacked) .select-wrapper,
|
|
711
790
|
:host(.select-label-placement-floating) .select-wrapper {
|
|
712
|
-
|
|
713
|
-
|
|
791
|
+
grid-template-columns: [field-start slot-start] minmax(0, auto) [native] minmax(0, 1fr) [slot-end] minmax(0, auto) [field-end];
|
|
792
|
+
grid-template-rows: [label] auto [field] var(--internal-field-height, auto);
|
|
714
793
|
}
|
|
715
794
|
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
795
|
+
/**
|
|
796
|
+
* The templates above all name the same lines, so every placement shares these.
|
|
797
|
+
* A label with its own row lands on the label row. Otherwise that name resolves
|
|
798
|
+
* to the only row there is.
|
|
799
|
+
*/
|
|
800
|
+
.label-text-wrapper {
|
|
801
|
+
grid-row: label;
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
.select-start {
|
|
805
|
+
grid-row: field;
|
|
806
|
+
grid-column: slot-start;
|
|
723
807
|
}
|
|
724
808
|
|
|
725
|
-
.
|
|
726
|
-
|
|
809
|
+
.native-wrapper {
|
|
810
|
+
grid-row: field;
|
|
811
|
+
grid-column: native;
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
.select-end {
|
|
815
|
+
grid-row: field;
|
|
816
|
+
grid-column: slot-end;
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
.select-wrapper::before {
|
|
820
|
+
grid-row: field;
|
|
821
|
+
grid-column: field-start/field-end;
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
/**
|
|
825
|
+
* The padding sits on the cells that the field box covers, so the label is not
|
|
826
|
+
* indented by it.
|
|
827
|
+
*/
|
|
828
|
+
.select-start {
|
|
727
829
|
-webkit-padding-start: var(--padding-start);
|
|
728
830
|
padding-inline-start: var(--padding-start);
|
|
831
|
+
padding-top: var(--padding-top);
|
|
832
|
+
padding-bottom: var(--padding-bottom);
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
.native-wrapper {
|
|
836
|
+
padding-top: var(--padding-top);
|
|
837
|
+
padding-bottom: var(--padding-bottom);
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
.select-end {
|
|
729
841
|
-webkit-padding-end: var(--padding-end);
|
|
730
842
|
padding-inline-end: var(--padding-end);
|
|
731
843
|
padding-top: var(--padding-top);
|
|
732
844
|
padding-bottom: var(--padding-bottom);
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
/**
|
|
848
|
+
* The slot cells can shrink below their content so that oversized slotted
|
|
849
|
+
* content is cut off at the edge of the field instead of widening it.
|
|
850
|
+
*/
|
|
851
|
+
.select-start,
|
|
852
|
+
.select-end {
|
|
738
853
|
overflow: hidden;
|
|
739
854
|
}
|
|
740
855
|
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
856
|
+
.select-wrapper .select-placeholder {
|
|
857
|
+
/**
|
|
858
|
+
* When the floating label appears on top of the
|
|
859
|
+
* select, we need to fade the text out so that the
|
|
860
|
+
* label does not overlap with the placeholder.
|
|
861
|
+
*/
|
|
862
|
+
transition: opacity var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));
|
|
744
863
|
}
|
|
745
864
|
|
|
746
865
|
.native-wrapper {
|
|
866
|
+
font-family: var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");
|
|
747
867
|
font-size: var(--token-font-size-350, 0.875rem);
|
|
748
868
|
font-weight: var(--token-font-weight-regular, 400);
|
|
749
|
-
letter-spacing: var(--token-font-letter-spacing-0, 0
|
|
750
|
-
line-height: var(--token-font-line-height-600,
|
|
751
|
-
text-decoration: none;
|
|
752
|
-
text-transform: none;
|
|
869
|
+
letter-spacing: var(--token-font-letter-spacing-0, 0);
|
|
870
|
+
line-height: var(--token-font-line-height-600, 1.5rem);
|
|
753
871
|
/**
|
|
754
872
|
* When the floating label appears on top of the
|
|
755
873
|
* input, we need to fade the input out so that the
|
|
756
874
|
* label does not overlap with the placeholder.
|
|
757
875
|
*/
|
|
758
876
|
transition: opacity var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));
|
|
759
|
-
color: var(--token-text-default, var(--token-primitives-neutral-1200, #
|
|
760
|
-
}
|
|
761
|
-
|
|
762
|
-
:host(.select-label-placement-stacked) .native-wrapper,
|
|
763
|
-
:host(.select-label-placement-floating) .native-wrapper {
|
|
764
|
-
/**
|
|
765
|
-
* Text should not extend beyond the bounds of the select.
|
|
766
|
-
* This is done by setting the width to the full width minus
|
|
767
|
-
* the icon width and the gap between the icon and the text.
|
|
768
|
-
*/
|
|
769
|
-
width: calc(100% - var(--token-scale-400, 16px) - var(--token-space-200, var(--token-scale-200, 8px)));
|
|
877
|
+
color: var(--token-text-default, var(--token-primitives-neutral-1200, #242528));
|
|
770
878
|
}
|
|
771
879
|
|
|
772
880
|
/**
|
|
@@ -808,11 +916,23 @@ button {
|
|
|
808
916
|
margin-top: 0;
|
|
809
917
|
margin-bottom: 0;
|
|
810
918
|
transition: transform 0.15s var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));
|
|
811
|
-
color: var(--token-text-subtlest, var(--token-primitives-neutral-800, #
|
|
919
|
+
color: var(--token-text-subtlest, var(--token-primitives-neutral-800, #6c727a));
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
/**
|
|
923
|
+
* The icon renders inside the end container for floating and stacked labels and
|
|
924
|
+
* inside the native wrapper otherwise, the structure BREAKING.md documents for
|
|
925
|
+
* v9. Using `order` moves it past the slotted end content so the chevron stays
|
|
926
|
+
* on the field's trailing edge. The other themes leave it ahead of that
|
|
927
|
+
* content.
|
|
928
|
+
*/
|
|
929
|
+
:host(.select-label-placement-stacked) .select-icon,
|
|
930
|
+
:host(.select-label-placement-floating) .select-icon {
|
|
931
|
+
order: 1;
|
|
812
932
|
}
|
|
813
933
|
|
|
814
934
|
:host(.has-value) .select-icon {
|
|
815
|
-
color: var(--token-text-subtle, var(--token-primitives-neutral-1000, #
|
|
935
|
+
color: var(--token-text-subtle, var(--token-primitives-neutral-1000, #383e45));
|
|
816
936
|
}
|
|
817
937
|
|
|
818
938
|
/**
|
|
@@ -825,18 +945,18 @@ button {
|
|
|
825
945
|
}
|
|
826
946
|
|
|
827
947
|
:host(.select-fill-solid) {
|
|
828
|
-
--background: var(--token-bg-input-bold-default, var(--token-primitives-neutral-200, #
|
|
948
|
+
--background: var(--token-bg-input-bold-default, var(--token-primitives-neutral-200, #ebeef2));
|
|
829
949
|
}
|
|
830
950
|
|
|
831
951
|
:host(.select-disabled) {
|
|
832
|
-
--background: var(--token-primitives-neutral-100, #
|
|
833
|
-
--border-color: var(--token-primitives-neutral-300, #
|
|
952
|
+
--background: var(--token-primitives-neutral-100, #f6f7fa);
|
|
953
|
+
--border-color: var(--token-primitives-neutral-300, #e6eaee);
|
|
834
954
|
}
|
|
835
955
|
|
|
836
956
|
:host(.select-disabled) .label-text-wrapper,
|
|
837
957
|
:host(.select-disabled) .select-text,
|
|
838
958
|
:host(.select-disabled) .select-icon {
|
|
839
|
-
color: var(--token-primitives-neutral-500, #
|
|
959
|
+
color: var(--token-primitives-neutral-500, #9fa5ad);
|
|
840
960
|
}
|
|
841
961
|
|
|
842
962
|
:host(.select-shape-soft) {
|
|
@@ -849,16 +969,4 @@ button {
|
|
|
849
969
|
|
|
850
970
|
:host(.select-shape-rectangular) {
|
|
851
971
|
--border-radius: var(--token-border-radius-0, var(--token-scale-0, 0px));
|
|
852
|
-
}
|
|
853
|
-
|
|
854
|
-
:host(.select-size-small) .select-wrapper-inner {
|
|
855
|
-
height: var(--token-scale-1000, 40px);
|
|
856
|
-
}
|
|
857
|
-
|
|
858
|
-
:host(.select-size-medium) .select-wrapper-inner {
|
|
859
|
-
height: var(--token-scale-1200, 48px);
|
|
860
|
-
}
|
|
861
|
-
|
|
862
|
-
:host(.select-size-large) .select-wrapper-inner {
|
|
863
|
-
height: var(--token-scale-1400, 56px);
|
|
864
972
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import caretDownRegular from "@phosphor-icons/core/assets/regular/caret-down.svg";
|
|
5
4
|
import { Build, Host, h, forceUpdate } from "@stencil/core";
|
|
6
5
|
import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
|
|
7
6
|
import { compareOptions, createNotchController, createStartContainerController, isOptionSelected, checkInvalidState, } from "../../utils/forms/index";
|
|
@@ -36,9 +35,8 @@ import { getIonTheme } from "../../global/ionic-global";
|
|
|
36
35
|
* @part bottom - The container element for helper text, error text, and counter.
|
|
37
36
|
* @part wrapper - The clickable label element that wraps the entire form field (label text, slots, selected values or placeholder, and toggle icons).
|
|
38
37
|
* @part start - The wrapper element for the content in the start slot.
|
|
39
|
-
* @part control - The wrapper element containing the native select control
|
|
40
|
-
* @part end - The wrapper element for the content in the end slot.
|
|
41
|
-
* @part inner - The wrapper element containing the start, control and end wrappers and the dropdown icon. Only rendered in the `"ionic"` theme.
|
|
38
|
+
* @part control - The wrapper element containing the label, the native select control, and the dropdown icon when the label is not floating or stacked. The `"ionic"` theme flattens this wrapper, so it cannot be given a box of its own there.
|
|
39
|
+
* @part end - The wrapper element for the content in the end slot. It also contains the dropdown icon when the label is floating or stacked.
|
|
42
40
|
*/
|
|
43
41
|
export class Select {
|
|
44
42
|
constructor() {
|
|
@@ -834,24 +832,13 @@ export class Select {
|
|
|
834
832
|
renderStartContainer() {
|
|
835
833
|
return (h("div", { key: "start", class: "select-start", part: "start", ref: (el) => (this.startContainerEl = el) }, h("slot", { name: "start" })));
|
|
836
834
|
}
|
|
837
|
-
renderNativeWrapper() {
|
|
838
|
-
return (h("div", { class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()));
|
|
839
|
-
}
|
|
840
|
-
/**
|
|
841
|
-
* The ionic theme keeps the label above a field box that wraps the slots and
|
|
842
|
-
* the control, so the label can size independently of the slotted content.
|
|
843
|
-
*/
|
|
844
|
-
renderIonicField() {
|
|
845
|
-
return [
|
|
846
|
-
this.renderLabel(),
|
|
847
|
-
h("div", { key: "inner", class: "select-wrapper-inner", part: "inner" }, this.fill === 'outline' && h("div", { key: "outline", class: "select-outline" }), this.renderStartContainer(), h("div", { key: "control", class: "select-control", part: "control" }, this.renderNativeWrapper()), h("div", { key: "end", class: "select-end", part: "end" }, h("slot", { name: "end" })), this.renderSelectIcon()),
|
|
848
|
-
];
|
|
849
|
-
}
|
|
850
835
|
/**
|
|
851
|
-
*
|
|
852
|
-
*
|
|
836
|
+
* Every theme renders the same label and control structure, aside from the md
|
|
837
|
+
* outline container below. The label is nested alongside the control so the
|
|
838
|
+
* ios and md floating label can escape it and clear the start and end slots.
|
|
839
|
+
* The ionic theme lifts it outside the field with grid instead.
|
|
853
840
|
*/
|
|
854
|
-
|
|
841
|
+
renderField() {
|
|
855
842
|
const { fill, labelPlacement } = this;
|
|
856
843
|
const hasOutlineFill = getIonTheme(this) === 'md' && fill === 'outline';
|
|
857
844
|
const hasFloatingOrStackedLabel = labelPlacement === 'floating' || labelPlacement === 'stacked';
|
|
@@ -993,16 +980,9 @@ export class Select {
|
|
|
993
980
|
else if (this.toggleIcon != null) {
|
|
994
981
|
return this.toggleIcon;
|
|
995
982
|
}
|
|
996
|
-
// Determine the theme and map to default
|
|
983
|
+
// Determine the theme and map to the default icon
|
|
997
984
|
const theme = getIonTheme(this);
|
|
998
|
-
const
|
|
999
|
-
ios: chevronExpand,
|
|
1000
|
-
ionic: caretDownRegular,
|
|
1001
|
-
md: caretDownSharp,
|
|
1002
|
-
};
|
|
1003
|
-
// Get the default icon based on the theme, falling back to 'md' icon if necessary
|
|
1004
|
-
const defaultIcon = defaultIcons[theme] || defaultIcons.md;
|
|
1005
|
-
// Return the configured select expanded icon or the default icon
|
|
985
|
+
const defaultIcon = theme === 'ios' ? chevronExpand : caretDownSharp;
|
|
1006
986
|
return config.get('selectExpandedIcon', defaultIcon);
|
|
1007
987
|
}
|
|
1008
988
|
/**
|
|
@@ -1016,15 +996,9 @@ export class Select {
|
|
|
1016
996
|
if (this.toggleIcon) {
|
|
1017
997
|
return this.toggleIcon;
|
|
1018
998
|
}
|
|
1019
|
-
// Determine the theme and map to default
|
|
999
|
+
// Determine the theme and map to the default icon
|
|
1020
1000
|
const theme = getIonTheme(this);
|
|
1021
|
-
const
|
|
1022
|
-
ios: chevronExpand,
|
|
1023
|
-
ionic: caretDownRegular,
|
|
1024
|
-
md: caretDownSharp,
|
|
1025
|
-
};
|
|
1026
|
-
// Get the default icon based on the theme, falling back to 'md' icon if necessary
|
|
1027
|
-
const defaultIcon = defaultIcons[theme] || defaultIcons.md;
|
|
1001
|
+
const defaultIcon = theme === 'ios' ? chevronExpand : caretDownSharp;
|
|
1028
1002
|
return config.get('selectCollapsedIcon', defaultIcon);
|
|
1029
1003
|
}
|
|
1030
1004
|
getHintTextId() {
|
|
@@ -1076,7 +1050,7 @@ export class Select {
|
|
|
1076
1050
|
const hasValue = this.hasValue();
|
|
1077
1051
|
renderHiddenInput(true, el, name, parseValue(value), disabled);
|
|
1078
1052
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || isExpanded));
|
|
1079
|
-
return (h(Host, { key: '
|
|
1053
|
+
return (h(Host, { key: 'd6d5a554df0aabf73531762d3e8f7f7757f1dd7e', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
1080
1054
|
[theme]: true,
|
|
1081
1055
|
'in-item': inItem,
|
|
1082
1056
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -1085,6 +1059,7 @@ export class Select {
|
|
|
1085
1059
|
'has-expanded-icon': expandedIcon !== undefined,
|
|
1086
1060
|
'has-value': hasValue,
|
|
1087
1061
|
'label-floating': labelShouldFloat,
|
|
1062
|
+
'has-label': this.hasLabel,
|
|
1088
1063
|
'has-placeholder': placeholder !== undefined,
|
|
1089
1064
|
'has-focus': hasFocus,
|
|
1090
1065
|
// TODO(FW-6451): Remove `ion-focusable` class in favor of `has-focus`.
|
|
@@ -1095,7 +1070,7 @@ export class Select {
|
|
|
1095
1070
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
1096
1071
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
1097
1072
|
[`select-size-${size}`]: size !== undefined,
|
|
1098
|
-
}) }, h("label", { key: '
|
|
1073
|
+
}) }, h("label", { key: '9ef1351faed0a57fc0911705102dd115ca72ed48', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderField(), shouldRenderHighlight && h("div", { key: '7f384deb139daec2556636fa07d6a384da04b437', class: "select-highlight" })), this.renderBottomContent()));
|
|
1099
1074
|
}
|
|
1100
1075
|
static get is() { return "ion-select"; }
|
|
1101
1076
|
static get encapsulation() { return "shadow"; }
|
|
@@ -74,19 +74,18 @@
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
.select-option-description {
|
|
77
|
+
font-family: var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");
|
|
77
78
|
font-size: var(--token-font-size-350, 0.875rem);
|
|
78
79
|
font-weight: var(--token-font-weight-regular, 400);
|
|
79
|
-
letter-spacing: var(--token-font-letter-spacing-0, 0
|
|
80
|
-
line-height: var(--token-font-line-height-600,
|
|
81
|
-
text-decoration: none;
|
|
82
|
-
text-transform: none;
|
|
80
|
+
letter-spacing: var(--token-font-letter-spacing-0, 0);
|
|
81
|
+
line-height: var(--token-font-line-height-600, 1.5rem);
|
|
83
82
|
-webkit-padding-start: var(--token-space-0, var(--token-scale-0, 0px));
|
|
84
83
|
padding-inline-start: var(--token-space-0, var(--token-scale-0, 0px));
|
|
85
84
|
-webkit-padding-end: var(--token-space-0, var(--token-scale-0, 0px));
|
|
86
85
|
padding-inline-end: var(--token-space-0, var(--token-scale-0, 0px));
|
|
87
86
|
padding-top: var(--token-space-0, var(--token-scale-0, 0px));
|
|
88
87
|
padding-bottom: var(--token-space-0, var(--token-scale-0, 0px));
|
|
89
|
-
color: var(--token-text-subtle, var(--token-primitives-neutral-1000, #
|
|
88
|
+
color: var(--token-text-subtle, var(--token-primitives-neutral-1000, #383e45));
|
|
90
89
|
font-size: var(--token-font-size-350, 0.875rem);
|
|
91
90
|
}
|
|
92
91
|
|
|
@@ -197,20 +196,19 @@ ion-item {
|
|
|
197
196
|
--border-width: var(--token-border-size-0, var(--token-scale-0, 0px));
|
|
198
197
|
--background-focused: transparent;
|
|
199
198
|
--background-focused-opacity: 1;
|
|
200
|
-
--background-hover: var(--token-bg-neutral-subtlest-press, var(--token-primitives-neutral-200, #
|
|
199
|
+
--background-hover: var(--token-bg-neutral-subtlest-press, var(--token-primitives-neutral-200, #ebeef2));
|
|
201
200
|
--background-hover-opacity: 1;
|
|
202
|
-
--background-activated: var(--token-bg-neutral-subtlest-press, var(--token-primitives-neutral-200, #
|
|
201
|
+
--background-activated: var(--token-bg-neutral-subtlest-press, var(--token-primitives-neutral-200, #ebeef2));
|
|
203
202
|
--background-activated-opacity: 1;
|
|
204
203
|
--border-radius: var(--token-border-radius-400, var(--token-scale-400, 16px));
|
|
205
204
|
}
|
|
206
205
|
|
|
207
206
|
ion-toolbar {
|
|
207
|
+
font-family: var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");
|
|
208
208
|
font-size: var(--token-font-size-450, 1.125rem);
|
|
209
209
|
font-weight: var(--token-font-weight-medium, 500);
|
|
210
|
-
letter-spacing: var(--token-font-letter-spacing-0, 0
|
|
211
|
-
line-height: var(--token-font-line-height-700,
|
|
212
|
-
text-decoration: none;
|
|
213
|
-
text-transform: none;
|
|
210
|
+
letter-spacing: var(--token-font-letter-spacing-0, 0);
|
|
211
|
+
line-height: var(--token-font-line-height-700, 1.75rem);
|
|
214
212
|
}
|
|
215
213
|
|
|
216
214
|
ion-list ion-radio::part(container) {
|
|
@@ -228,17 +226,16 @@ ion-list ion-radio::part(label) {
|
|
|
228
226
|
|
|
229
227
|
ion-list ion-radio::part(label),
|
|
230
228
|
ion-list ion-checkbox::part(label) {
|
|
229
|
+
font-family: var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");
|
|
231
230
|
font-size: var(--token-font-size-400, 1rem);
|
|
232
231
|
font-weight: var(--token-font-weight-medium, 500);
|
|
233
|
-
letter-spacing: var(--token-font-letter-spacing-0, 0
|
|
234
|
-
line-height: var(--token-font-line-height-600,
|
|
235
|
-
text-decoration: none;
|
|
236
|
-
text-transform: none;
|
|
232
|
+
letter-spacing: var(--token-font-letter-spacing-0, 0);
|
|
233
|
+
line-height: var(--token-font-line-height-600, 1.5rem);
|
|
237
234
|
}
|
|
238
235
|
|
|
239
236
|
.item-radio-checked,
|
|
240
237
|
.item-checkbox-checked {
|
|
241
|
-
--background: var(--token-bg-primary-subtle-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #
|
|
238
|
+
--background: var(--token-bg-primary-subtle-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #f0f2ff)));
|
|
242
239
|
}
|
|
243
240
|
|
|
244
241
|
ion-content {
|