API
Référence de l’API JavaScript exportée par @rdlabo/ionic-theme-ios27 v1.2.0. Les points d’entrée CSS et Sass restent documentés dans le README.
Effets
function registerTabBarEffect
(targetElement: HTMLElement) => registeredEffect | undefined
Enregistre l’effet de sélection Liquid Glass pour une barre d’onglets Ionic.
function registerSegmentEffect
(targetElement: HTMLElement) => registeredEffect | undefined
Enregistre l’effet de sélection Liquid Glass pour un segment Ionic.
interface registeredEffect
| Membre | Type | Description |
|---|---|---|
destroy |
() => void |
Supprime les écouteurs et les éléments d’effet créés lors de l’enregistrement. |
interface EffectScales
| Propriété | Type | Description |
|---|---|---|
small |
string |
Petite échelle d’effet. |
medium |
string |
Échelle d’effet moyenne. |
large |
string |
Grande échelle d’effet. |
xlarge |
string |
Très grande échelle d’effet. |
Barre d’onglets avec recherche
function attachTabBarSearchable
(ionTabBar: HTMLElement, ionFabButton: HTMLElement, ionFooter: HTMLElement) => TabBarSearchableFunction
Attache la transition de la barre d’onglets avec recherche et renvoie son gestionnaire d’événements.
enum TabBarSearchableType
| Membre | Valeur | Description |
|---|---|---|
Enter |
"enter" |
Active le mode recherche. |
Leave |
"leave" |
Quitte le mode recherche. |
type alias TabBarSearchableFunction
(event: Event, type: TabBarSearchableType) => Promise<void>
Animations
function withNativeUIShellTransition
(builder: AnimationBuilder) => AnimationBuilder
Enveloppe un constructeur d’animation de navigation Ionic pour coordonner le retrait des contrôles natifs, la progression du glissement et l’annulation, tout en conservant l’animation renvoyée. Exporté depuis la racine du package et /vertical-bars. Enregistrez-le comme navAnimation ; utilisez une nouvelle Animation à chaque navigation. L’iosTransitionAnimation du package inclut déjà cet adaptateur. Consultez la configuration avec un thème existant pour les constructeurs Ionic par défaut et personnalisés.
function iosTransitionAnimation
(navEl: HTMLElement, opts: TransitionOptions) => Animation
Construit la transition de navigation iOS du package.
function setConfig
(config: Partial<IosTransitionConfig>) => void
Définit le rayon de la transition de page. Il vaut 0 par défaut ; les applications natives peuvent fournir le rayon mesuré de la WebView.
interface IosTransitionConfig
| Propriété | Type | Description |
|---|---|---|
radius |
number |
Rayon des coins de la transition de page. |
function popoverEnterAnimation
(baseEl: HTMLElement, opts?: any) => Animation
Construit l’animation d’entrée des popovers iOS.
function popoverLeaveAnimation
(baseEl: HTMLElement) => Animation
Construit l’animation de sortie des popovers iOS.
Barre de recherche
function supportSeachbarCancelButtonIcon
(searchbar: HTMLIonSearchbarElement) => SearchbarCancelButtonIconSupport
Prise en charge temporaire du rendu de cancelButtonIcon d’Ionic en mode iOS. Importez Seachbar avec cette orthographe, telle qu’exportée par le package. Transmettez un élément initialisé.
interface SearchbarCancelButtonIconSupport
| Membre | Type | Description |
|---|---|---|
refresh |
() => void |
Relire cancelButtonIcon après avoir changé la propriété JavaScript. |
destroy |
() => void |
Supprimer l’observateur et l’icône insérée, puis restaurer le texte. |
Native UI Shell (préversion)
Importez ces API et types depuis @rdlabo/ionic-theme-ios27/native. Consultez le guide Native UI Shell pour les prérequis et le comportement de repli.
function enableNativeUIShell
(options?: NativeUIShellOptions) => Promise<NativeUIShellHandle>
Appelez une seule fois au démarrage. Les appels répétés avec la même configuration partagent le moteur actif ; une configuration différente pendant son activité lève une erreur. Les environnements non pris en charge renvoient un handle dans l’état Web. Définissez enabled: false pour arrêter la projection active et utiliser les contrôles Web.
function configureNativeTransition
() => Promise<WebViewMetrics>
Lit le rayon de la WebView native et l’applique aux transitions de pages sans activer les contrôles natifs. Sur les autres plateformes, le rayon vaut 0.
interface NativeUIShellOptions
Étend VerticalControlAreaOptions ; consultez les options de projection de boutons verticaux ci-dessous.
| Propriété | Type | Description |
|---|---|---|
enabled |
boolean |
Activer globalement la projection native ; vaut true par défaut. |
controls |
NativeUIShellControls |
Lorsque cette option est définie, seuls les contrôles explicitement définis à true sont admissibles. |
interface NativeUIShellControls
| Propriété | Type | Description |
|---|---|---|
tabs |
boolean |
Barres d’onglets et recherche native. |
toolbar |
boolean |
Boutons de barre d’outils, de retour et de menu. |
segment |
boolean |
Segments. |
fab |
boolean |
Boutons d’action flottants. |
interface NativeUIShellHandle
| Membre | Type | Description |
|---|---|---|
getStatus |
() => NativeUIShellStatus |
Lire l’état actuel. |
suspend |
() => Promise<NativeUIShellSuspension> |
Restaurer les contrôles sur le Web jusqu’à la reprise de la suspension. |
destroy |
() => Promise<void> |
Restaurer le rendu Web et libérer les contrôles natifs et le moteur. |
interface NativeUIShellSuspension
| Membre | Type | Description |
|---|---|---|
resume |
() => Promise<void> |
Libérer cette suspension. La projection native reprend une fois toutes les suspensions actives libérées. |
interface WebViewMetrics
| Propriété | Type | Description |
|---|---|---|
radius |
number |
Rayon des coins de la WebView native. |
interface NativeUIShellStatus
interface NativeUIShellStatus {
state: 'web' | 'native' | 'stopped';
projected: number;
updates: number;
reason?: string;
}
projected compte les contrôles projetés, updates les mises à jour, et reason explique le repli Web ou l’arrêt. Un moteur stopped ne se reconnecte pas automatiquement après une défaillance du pont ; détruisez le handle avant une nouvelle activation.
type alias NativeUIShellComponent
'ion-button' | 'ion-buttons' | 'ion-back-button' | 'ion-menu-button' | 'ion-tab-bar' | 'ion-segment' | 'ion-fab'
Union des balises de composants gérés par le moteur. Consultez le guide pour les conditions d’admissibilité de chaque composant.
iPhone Duo / Vertical Control Area (préversion)
Importez ces API depuis @rdlabo/ionic-theme-ios27/vertical-bars ou @rdlabo/ionic-theme-ios27/native. Le point d’entrée autonome fonctionne sans le thème iOS 27 ni le Native UI Shell complet. Consultez Prise en charge d’iPhone Duo pour la configuration, les prérequis de l’outillage et le repli Web.
function enableVerticalControlArea
(options?: VerticalControlAreaOptions) => Promise<VerticalControlAreaHandle>
Démarre le moteur uniquement pour les contrôles de la zone verticale. Démarrez ce moteur ou enableNativeUIShell(). Les appels répétés avec la même configuration le partagent ; une configuration active différente lève une erreur.
interface VerticalControlAreaOptions
| Propriété | Type | Description |
|---|---|---|
buttonProjection |
'source' | 'system' |
Apparence des boutons verticaux natifs. Vaut system (SwiftUI) par défaut ; source projette le remplissage Ionic et les couleurs calculées. |
buttonDefaultFill |
'solid' | null |
Remplissage par défaut lorsqu’il est omis pour les boutons source hors d’ion-buttons. Vaut null par défaut, pour le verre du thème ; le groupe conserve le remplissage clear par défaut. |
N’affecte pas les contrôles horizontaux ni les clones Web. Consultez Barres verticales pour les remplacements locaux data-projection et la priorité des remplissages. Définissez buttonProjection: 'source' pour conserver l’apparence des releases expérimentales.
function setVerticalControlAreaPlacement
(placement: VerticalBarEdge | VerticalBarPlacement, rtl?: boolean) => void
Applique le positionnement choisi par l’application au CSS et aux contrôles Web/natifs après le montage d’ion-app. Les bords logiques sont déterminés par l’attribut dir le plus proche ou un rtl explicite. Transmettez null pour restaurer la disposition ordinaire.
function applyFoldStateClasses
(root: HTMLElement, fold: FoldState) => void
Importez depuis @rdlabo/ionic-theme-ios27/vertical-bars. Transmettez l’état de Foldable.getFoldState() / foldStateChange pour appliquer exactement une des classes ios-theme-fold-flat, ios-theme-fold-half-opened et ios-theme-fold-closed à la racine. Applique aussi ios-theme-fold-expanded lorsque l’appareil est à moitié ouvert ou à plat avec une géométrie de charnière, et l’efface sinon. Conserve les autres classes. Ne s’abonne pas aux événements de l’appareil et ne change pas le when du split-pane. FoldState est la structure avec state: 'flat' | 'half-opened' | 'closed' et le champ facultatif hingeBounds: { x: number; y: number; width: number; height: number }.
interface VerticalControlAreaHandle
Étend NativeUIShellHandle avec setPlacement, la même fonction que setVerticalControlAreaPlacement.
| Membre | Type | Description |
|---|---|---|
setPlacement |
(placement: VerticalBarEdge | VerticalBarPlacement, rtl?: boolean) => void |
Appliquer le positionnement aux contrôles Web et natifs. |
type alias VerticalBarEdge
'leading' | 'trailing' | null
Bord logique dans le sens de lecture ; null signifie l’absence de rail vertical.
interface VerticalBarPlacement
| Propriété | Type | Description |
|---|---|---|
edge |
VerticalBarEdge |
Bord logique du rail. |
inset |
number |
Largeur explicite du rail en pixels CSS ; omise pour utiliser les règles CSS de zone sûre. |
nativeEdge |
VerticalBarEdge |
Bord logique natif fourni par l’application. Null ou un bord non enregistré utilise un rail Web en mode verticalBarsOnly, ou la disposition ordinaire de Native UI Shell dans les autres cas. L’omission conserve la dernière valeur. |
module IonicNativeUIShell
Le plugin Capacitor inclus fournit les mesures de WebView pour le rendu. Il n’a pas d’implémentation Web ; protégez les appels avec Capacitor.getPlatform() === 'ios'. Utilisez @erkamyaman/capacitor-foldable dans l’application pour l’état de charnière et le positionnement des barres. Consultez Prise en charge d’iPhone Duo.
| Membre | Type | Description |
|---|---|---|
getWebViewMetrics |
() => Promise<WebViewMetrics> |
Lire le rayon effectif des coins de la WebView. |
addListener |
(name: 'webViewMetricsChange', listener: (event: WebViewMetrics) => void) => Promise<PluginListenerHandle> |
S’abonner aux changements de mesures de WebView ; supprimer l’écouteur à la fin. |
Les méthodes d’instantané du pont et d’activation sont des détails d’implémentation internes. Les anciennes API DeviceLayout, HingeStatus, getDeviceLayout() et de suivi de disposition de l’appareil ont été supprimées.