From d95979729e1e1b9e57a02cdd3f8ad7246dcc2150 Mon Sep 17 00:00:00 2001 From: Jacob Bell <228905018+OS-jacobbell@users.noreply.github.com> Date: Mon, 23 Mar 2026 09:51:46 -0600 Subject: [PATCH 1/5] chore(deps): update to react 18 --- packages/react/package-lock.json | 161 +++++++----------- packages/react/package.json | 11 +- packages/react/src/components/IonIcon.tsx | 1 + packages/react/src/components/IonPage.tsx | 1 + .../react/src/components/IonRouterOutlet.tsx | 1 + .../components/createControllerComponent.tsx | 2 +- .../src/components/createOverlayComponent.tsx | 2 +- .../src/components/navigation/IonNav.tsx | 1 + .../src/components/navigation/IonTabBar.tsx | 1 + .../src/components/navigation/IonTabs.tsx | 2 +- .../react-component-lib/createComponent.tsx | 1 + .../createOverlayComponent.tsx | 2 +- .../react-component-lib/utils/index.tsx | 2 +- packages/react/src/components/utils/index.tsx | 15 +- packages/react/src/routing/NavManager.tsx | 1 + .../react/src/routing/OutletPageManager.tsx | 1 + packages/react/src/routing/PageManager.tsx | 1 + .../src/routing/ViewLifeCycleManager.tsx | 1 + 18 files changed, 83 insertions(+), 124 deletions(-) diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 8f1dccb8a17..2732a5c693c 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -18,12 +18,11 @@ "@ionic/prettier-config": "^2.0.0", "@rollup/plugin-typescript": "^11.1.5", "@testing-library/jest-dom": "^5.11.6", - "@testing-library/react": "^12.1.5", - "@testing-library/react-hooks": "^7.0.1", + "@testing-library/react": "~13.4.0", "@types/jest": "^26.0.15", "@types/node": "^14.0.14", - "@types/react": "^17.0.79", - "@types/react-dom": "^17.0.25", + "@types/react": "~18.3.28", + "@types/react-dom": "~18.3.7", "@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/parser": "^5.48.2", "eslint": "^7.32.0", @@ -32,8 +31,8 @@ "jest-environment-jsdom": "^29.7.0", "np": "^6.4.0", "prettier": "^2.8.3", - "react": "^17.0.2", - "react-dom": "^17.0.2", + "react": "~18.3.1", + "react-dom": "~18.3.1", "rimraf": "^3.0.2", "rollup": "^4.2.0", "ts-jest": "^29.1.3", @@ -99,6 +98,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", @@ -801,6 +801,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", "dev": true, + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "4.33.0", "@typescript-eslint/types": "4.33.0", @@ -1960,50 +1961,22 @@ } }, "node_modules/@testing-library/react": { - "version": "12.1.5", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz", - "integrity": "sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==", + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "<18.0.0" + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" }, "engines": { "node": ">=12" }, "peerDependencies": { - "react": "<18.0.0", - "react-dom": "<18.0.0" - } - }, - "node_modules/@testing-library/react-hooks": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-7.0.2.tgz", - "integrity": "sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "@types/react": ">=16.9.0", - "@types/react-dom": ">=16.9.0", - "@types/react-test-renderer": ">=16.9.0", - "react-error-boundary": "^3.1.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0", - "react-test-renderer": ">=16.9.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-test-renderer": { - "optional": true - } + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, "node_modules/@tootallnate/once": { @@ -2208,32 +2181,25 @@ "dev": true }, "node_modules/@types/react": { - "version": "17.0.79", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.79.tgz", - "integrity": "sha512-gavKA8AwJAML9zWHuiQRASjrrPJHbT/zrUDHiUGUf+l5a3pkEd6atvjjq+8y2vfRHBJLQJjFpxSa9I8qe9zHAw==", + "version": "18.3.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", + "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" + "csstype": "^3.2.2" } }, "node_modules/@types/react-dom": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz", - "integrity": "sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==", - "dev": true, - "dependencies": { - "@types/react": "^17" - } - }, - "node_modules/@types/react-test-renderer": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.5.tgz", - "integrity": "sha512-PsnmF4Hpi61PTRX+dTxkjgDdtZ09kFFgPXczoF+yBfOVxn7xBLPvKP1BUrSasYHmerj33rhoJuvpIMsJuyRqHw==", + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "dev": true, - "dependencies": { - "@types/react": "*" + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" } }, "node_modules/@types/responselike": { @@ -2245,12 +2211,6 @@ "@types/node": "*" } }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", - "dev": true - }, "node_modules/@types/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", @@ -2457,6 +2417,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -2618,6 +2579,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3249,6 +3211,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001646", "electron-to-chromium": "^1.5.4", @@ -3809,10 +3772,11 @@ "dev": true }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" }, "node_modules/data-urls": { "version": "3.0.2", @@ -4473,6 +4437,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", @@ -6693,6 +6658,7 @@ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -9867,6 +9833,7 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "peer": true, "bin": { "prettier": "bin-prettier.js" }, @@ -10077,46 +10044,32 @@ } }, "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-error-boundary": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz", - "integrity": "sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - }, - "peerDependencies": { - "react": ">=16.13.1" + "react": "^18.3.1" } }, "node_modules/react-is": { @@ -10391,6 +10344,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.3.0.tgz", "integrity": "sha512-scIi1NrKLDIYSPK66jjECtII7vIgdAMFmFo8h6qm++I6nN9qDSV35Ku6erzGVqYjx+lj+j5wkusRMr++8SyDZg==", "dev": true, + "peer": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -10515,13 +10469,13 @@ } }, "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dev": true, + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, "node_modules/scoped-regex": { @@ -11393,6 +11347,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true, + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/packages/react/package.json b/packages/react/package.json index 50b178266bd..2e61e7f3804 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -53,12 +53,11 @@ "@ionic/prettier-config": "^2.0.0", "@rollup/plugin-typescript": "^11.1.5", "@testing-library/jest-dom": "^5.11.6", - "@testing-library/react": "^12.1.5", - "@testing-library/react-hooks": "^7.0.1", + "@testing-library/react": "~13.4.0", "@types/jest": "^26.0.15", "@types/node": "^14.0.14", - "@types/react": "^17.0.79", - "@types/react-dom": "^17.0.25", + "@types/react": "~18.3.28", + "@types/react-dom": "~18.3.7", "@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/parser": "^5.48.2", "eslint": "^7.32.0", @@ -67,8 +66,8 @@ "jest-environment-jsdom": "^29.7.0", "np": "^6.4.0", "prettier": "^2.8.3", - "react": "^17.0.2", - "react-dom": "^17.0.2", + "react": "~18.3.1", + "react-dom": "~18.3.1", "rimraf": "^3.0.2", "rollup": "^4.2.0", "ts-jest": "^29.1.3", diff --git a/packages/react/src/components/IonIcon.tsx b/packages/react/src/components/IonIcon.tsx index a873f3c4577..cf02827e838 100644 --- a/packages/react/src/components/IonIcon.tsx +++ b/packages/react/src/components/IonIcon.tsx @@ -21,6 +21,7 @@ interface IonIconProps { type InternalProps = IonIconProps & { forwardedRef?: React.ForwardedRef; + children: React.ReactNode; }; class IonIconContainer extends React.PureComponent { diff --git a/packages/react/src/components/IonPage.tsx b/packages/react/src/components/IonPage.tsx index 6b0b05b5be6..67e6dadfbec 100644 --- a/packages/react/src/components/IonPage.tsx +++ b/packages/react/src/components/IonPage.tsx @@ -11,6 +11,7 @@ interface IonPageProps extends IonicReactProps {} interface IonPageInternalProps extends IonPageProps { forwardedRef?: React.ForwardedRef; + children: React.ReactNode; } class IonPageInternal extends React.Component { diff --git a/packages/react/src/components/IonRouterOutlet.tsx b/packages/react/src/components/IonRouterOutlet.tsx index d7c75b13189..d5eba02dd3f 100644 --- a/packages/react/src/components/IonRouterOutlet.tsx +++ b/packages/react/src/components/IonRouterOutlet.tsx @@ -16,6 +16,7 @@ type Props = LocalJSX.IonRouterOutlet & { interface InternalProps extends Props { forwardedRef?: React.ForwardedRef; + children: React.ReactNode; } // eslint-disable-next-line @typescript-eslint/no-empty-interface diff --git a/packages/react/src/components/createControllerComponent.tsx b/packages/react/src/components/createControllerComponent.tsx index 15688a7f3b9..63631caf130 100644 --- a/packages/react/src/components/createControllerComponent.tsx +++ b/packages/react/src/components/createControllerComponent.tsx @@ -122,6 +122,6 @@ export const createControllerComponent = ((props, ref) => { - return ; + return ; }); }; diff --git a/packages/react/src/components/createOverlayComponent.tsx b/packages/react/src/components/createOverlayComponent.tsx index 701d8b8214e..7109685c462 100644 --- a/packages/react/src/components/createOverlayComponent.tsx +++ b/packages/react/src/components/createOverlayComponent.tsx @@ -139,6 +139,6 @@ export const createOverlayComponent = ((props, ref) => { - return ; + return ; }); }; diff --git a/packages/react/src/components/navigation/IonNav.tsx b/packages/react/src/components/navigation/IonNav.tsx index 8d2ca03e3ae..7859b311f10 100644 --- a/packages/react/src/components/navigation/IonNav.tsx +++ b/packages/react/src/components/navigation/IonNav.tsx @@ -15,6 +15,7 @@ const IonNavInner = createReactComponent; + children?: React.ReactNode; }; // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/packages/react/src/components/navigation/IonTabBar.tsx b/packages/react/src/components/navigation/IonTabBar.tsx index 124b00f6990..3f25e697963 100644 --- a/packages/react/src/components/navigation/IonTabBar.tsx +++ b/packages/react/src/components/navigation/IonTabBar.tsx @@ -24,6 +24,7 @@ interface InternalProps extends IonTabBarProps { onSetCurrentTab: (tab: string, routeInfo: RouteInfo) => void; routeInfo: RouteInfo; tabsContext?: IonTabsContextState; + children?: React.ReactNode; } interface TabUrls { diff --git a/packages/react/src/components/navigation/IonTabs.tsx b/packages/react/src/components/navigation/IonTabs.tsx index 445c1f3a714..b8d5a25566f 100644 --- a/packages/react/src/components/navigation/IonTabs.tsx +++ b/packages/react/src/components/navigation/IonTabs.tsx @@ -42,7 +42,7 @@ type ChildFunction = (ionTabContext: IonTabsContextState) => React.ReactNode; interface Props extends LocalJSX.IonTabs { className?: string; - children: ChildFunction | React.ReactNode; + children: React.ReactNode; onIonTabsWillChange?: (event: CustomEvent<{ tab: string }>) => void; onIonTabsDidChange?: (event: CustomEvent<{ tab: string }>) => void; } diff --git a/packages/react/src/components/react-component-lib/createComponent.tsx b/packages/react/src/components/react-component-lib/createComponent.tsx index 7c7415a29d8..d2c15574cfc 100644 --- a/packages/react/src/components/react-component-lib/createComponent.tsx +++ b/packages/react/src/components/react-component-lib/createComponent.tsx @@ -80,6 +80,7 @@ export const createReactComponent = < ...propsToPass, ref: mergeRefs(forwardedRef, this.setComponentElRef), style, + children }; /** diff --git a/packages/react/src/components/react-component-lib/createOverlayComponent.tsx b/packages/react/src/components/react-component-lib/createOverlayComponent.tsx index 288c38dd54c..c1e371f5706 100644 --- a/packages/react/src/components/react-component-lib/createOverlayComponent.tsx +++ b/packages/react/src/components/react-component-lib/createOverlayComponent.tsx @@ -137,6 +137,6 @@ export const createOverlayComponent = ((props, ref) => { - return ; + return ; }); }; diff --git a/packages/react/src/components/react-component-lib/utils/index.tsx b/packages/react/src/components/react-component-lib/utils/index.tsx index a66bd02de76..591cf175665 100644 --- a/packages/react/src/components/react-component-lib/utils/index.tsx +++ b/packages/react/src/components/react-component-lib/utils/index.tsx @@ -30,7 +30,7 @@ export const mergeRefs = ( export const createForwardRef = (ReactComponent: any, displayName: string) => { const forwardRef = ( - props: StencilReactExternalProps, + props: React.PropsWithoutRef>, ref: StencilReactForwardedRef ) => { return ; diff --git a/packages/react/src/components/utils/index.tsx b/packages/react/src/components/utils/index.tsx index f399802cd14..36a3ef6c915 100644 --- a/packages/react/src/components/utils/index.tsx +++ b/packages/react/src/components/utils/index.tsx @@ -5,22 +5,17 @@ import React from 'react'; import type { IonicReactProps } from '../IonicReactProps'; export type IonicReactExternalProps = PropType & - /** - * TODO: FW-5753 - * - * The `placeholder` property was removed from `HTMLAttributes` in @types/react@18.2.43 - * https://github.com/DefinitelyTyped/DefinitelyTyped/commit/b954269038de46b4b2f1756a9f2f020cbc66a326 - * - * This is a temporary workaround until @ionic/react is updated to >=18.2.43. - */ - Omit, 'style' | 'placeholder'> & + Omit, 'style'> & IonicReactProps; export const createForwardRef = ( ReactComponent: any, // TODO(FW-2959): type displayName: string ) => { - const forwardRef = (props: IonicReactExternalProps, ref: React.ForwardedRef) => { + const forwardRef = ( + props: React.PropsWithoutRef>, + ref: React.ForwardedRef + ) => { return ; }; forwardRef.displayName = displayName; diff --git a/packages/react/src/routing/NavManager.tsx b/packages/react/src/routing/NavManager.tsx index 27396947800..3f59f89fd5f 100644 --- a/packages/react/src/routing/NavManager.tsx +++ b/packages/react/src/routing/NavManager.tsx @@ -34,6 +34,7 @@ interface NavManagerProps { ionRoute: any; stackManager: any; locationHistory: LocationHistory; + children: React.ReactNode; } export class NavManager extends React.PureComponent { diff --git a/packages/react/src/routing/OutletPageManager.tsx b/packages/react/src/routing/OutletPageManager.tsx index 0e0d1f9ea08..4f0726d4c69 100644 --- a/packages/react/src/routing/OutletPageManager.tsx +++ b/packages/react/src/routing/OutletPageManager.tsx @@ -10,6 +10,7 @@ import { StackContext } from './StackContext'; interface OutletPageManagerProps { className?: string; forwardedRef?: React.ForwardedRef; + children: React.ReactNode; routeInfo?: RouteInfo; StackManager: any; // TODO(FW-2959): type } diff --git a/packages/react/src/routing/PageManager.tsx b/packages/react/src/routing/PageManager.tsx index 19a184a6364..3918fd4e867 100644 --- a/packages/react/src/routing/PageManager.tsx +++ b/packages/react/src/routing/PageManager.tsx @@ -9,6 +9,7 @@ import { StackContext } from './StackContext'; interface PageManagerProps { className?: string; forwardedRef?: React.ForwardedRef; + children: React.ReactNode; routeInfo?: RouteInfo; } diff --git a/packages/react/src/routing/ViewLifeCycleManager.tsx b/packages/react/src/routing/ViewLifeCycleManager.tsx index 78b83f295a4..30564db4486 100644 --- a/packages/react/src/routing/ViewLifeCycleManager.tsx +++ b/packages/react/src/routing/ViewLifeCycleManager.tsx @@ -5,6 +5,7 @@ import { DefaultIonLifeCycleContext, IonLifeCycleContext } from '../contexts/Ion interface ViewTransitionManagerProps { removeView: () => void; mount: boolean; + children: React.ReactNode; } interface ViewTransitionManagerState { From 2f8d51a269a33da4df7a8b1896abf4c1d681d332 Mon Sep 17 00:00:00 2001 From: Jacob Bell <228905018+OS-jacobbell@users.noreply.github.com> Date: Tue, 24 Mar 2026 08:21:56 -0600 Subject: [PATCH 2/5] chore(deps): update stencil-react-output-target --- core/package-lock.json | 434 ++++- core/package.json | 2 +- core/stencil.config.ts | 6 +- packages/react/package-lock.json | 326 +++- packages/react/package.json | 1 + packages/react/src/components/components.ts | 1431 +++++++++++++++++ packages/react/src/components/index.ts | 2 +- .../src/components/navigation/IonTabs.tsx | 2 +- packages/react/src/components/proxies.ts | 152 -- 9 files changed, 2141 insertions(+), 215 deletions(-) create mode 100644 packages/react/src/components/components.ts delete mode 100644 packages/react/src/components/proxies.ts diff --git a/core/package-lock.json b/core/package-lock.json index 25fb63480d2..a74c305f423 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -25,7 +25,7 @@ "@rollup/plugin-node-resolve": "^8.4.0", "@rollup/plugin-virtual": "^2.0.3", "@stencil/angular-output-target": "^0.10.0", - "@stencil/react-output-target": "0.5.3", + "@stencil/react-output-target": "~1.4.2", "@stencil/sass": "^3.0.9", "@stencil/vue-output-target": "0.10.8", "@types/jest": "^29.5.6", @@ -93,6 +93,7 @@ "version": "7.16.12", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.16.7", "@babel/generator": "^7.16.8", @@ -632,6 +633,7 @@ "integrity": "sha512-UfMBMWc1v7J+14AhH03QmeNwV3HZx3qnOWhpwnHfzALEwAwlV/itQOQqcasMQYhOHWL0tiymc5ByaLTn7KKQxw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.1.0" } @@ -666,6 +668,13 @@ "@capacitor/core": ">=8.0.0" } }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "dev": true, + "license": "MIT" + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "dev": true, @@ -850,6 +859,7 @@ "version": "4.33.0", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "4.33.0", "@typescript-eslint/types": "4.33.0", @@ -1563,6 +1573,16 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@lit/react": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.8.tgz", + "integrity": "sha512-p2+YcF+JE67SRX3mMlJ1TKCSTsgyOVdAwd/nxp3NuV1+Cb6MWALbN6nT7Ld4tpmYofcE5kcaSY1YBB9erY+6fw==", + "dev": true, + "license": "BSD-3-Clause", + "peerDependencies": { + "@types/react": "17 || 18 || 19" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.3", "dev": true, @@ -1789,6 +1809,7 @@ "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.43.0.tgz", "integrity": "sha512-6Uj2Z3lzLuufYAE7asZ6NLKgSwsB9uxl84Eh34PASnUjfj32GkrP4DtKK7fNeh1WFGGyffsTDka3gwtl+4reUg==", "license": "MIT", + "peer": true, "bin": { "stencil": "bin/stencil" }, @@ -1808,11 +1829,32 @@ } }, "node_modules/@stencil/react-output-target": { - "version": "0.5.3", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@stencil/react-output-target/-/react-output-target-1.4.2.tgz", + "integrity": "sha512-XH/kRsfBbEbBYYCCVpDsuw/bpfEvq7YSDoKy2yOmf/GI4iGxwZbOml0IHpgMOwa6ggL/lCwA1GuwH+T3wla8Fg==", "dev": true, "license": "MIT", + "dependencies": { + "@lit/react": "^1.0.7", + "html-react-parser": "^5.2.2", + "react-style-stringify": "^1.2.0", + "ts-morph": "^22.0.0" + }, "peerDependencies": { - "@stencil/core": ">=2.0.0 || >=3 || >= 4.0.0-beta.0 || >= 4.0.0" + "@stencil/core": ">=3 || >= 4.0.0-beta.0 || >= 4.0.0", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@stencil/core": { + "optional": false + }, + "react": { + "optional": false + }, + "react-dom": { + "optional": false + } } }, "node_modules/@stencil/sass": { @@ -1860,6 +1902,45 @@ "postcss-syntax": ">=0.36.2" } }, + "node_modules/@ts-morph/common": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.23.0.tgz", + "integrity": "sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "^3.3.2", + "minimatch": "^9.0.3", + "mkdirp": "^3.0.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@ts-morph/common/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@types/babel__core": { "version": "7.20.3", "dev": true, @@ -1978,6 +2059,17 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "csstype": "^3.2.2" + } + }, "node_modules/@types/resolve": { "version": "1.17.1", "dev": true, @@ -2213,6 +2305,7 @@ "version": "6.7.2", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "6.7.2", "@typescript-eslint/types": "6.7.2", @@ -2438,7 +2531,6 @@ "integrity": "sha512-vay5/oQJdsNHmliWoZfHPoVZZRmnSWhug0BYT34njkYTPqClh3DNWLkZNJBVSjsNMrg0CCrBfoKkjZQPM/QVUw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.28.5", "@vue/shared": "3.5.25", @@ -2453,7 +2545,6 @@ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=0.12" }, @@ -2466,8 +2557,7 @@ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@vue/compiler-dom": { "version": "3.5.25", @@ -2475,7 +2565,6 @@ "integrity": "sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-core": "3.5.25", "@vue/shared": "3.5.25" @@ -2487,7 +2576,6 @@ "integrity": "sha512-PUgKp2rn8fFsI++lF2sO7gwO2d9Yj57Utr5yEsDf3GNaQcowCLKL7sf+LvVFvtJDXUp/03+dC6f2+LCv5aK1ag==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.28.5", "@vue/compiler-core": "3.5.25", @@ -2505,8 +2593,7 @@ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@vue/compiler-sfc/node_modules/postcss": { "version": "8.5.6", @@ -2528,7 +2615,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -2544,7 +2630,6 @@ "integrity": "sha512-ritPSKLBcParnsKYi+GNtbdbrIE1mtuFEJ4U1sWeuOMlIziK5GtOL85t5RhsNy4uWIXPgk+OUdpnXiTdzn8o3A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.25", "@vue/shared": "3.5.25" @@ -2556,7 +2641,6 @@ "integrity": "sha512-5xfAypCQepv4Jog1U4zn8cZIcbKKFka3AgWHEFQeK65OW+Ys4XybP6z2kKgws4YB43KGpqp5D/K3go2UPPunLA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/shared": "3.5.25" } @@ -2567,7 +2651,6 @@ "integrity": "sha512-Z751v203YWwYzy460bzsYQISDfPjHTl+6Zzwo/a3CsAf+0ccEjQ8c+0CdX1WsumRTHeywvyUFtW6KvNukT/smA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/reactivity": "3.5.25", "@vue/shared": "3.5.25" @@ -2579,7 +2662,6 @@ "integrity": "sha512-a4WrkYFbb19i9pjkz38zJBg8wa/rboNERq3+hRRb0dHiJh13c+6kAbgqCPfMaJ2gg4weWD3APZswASOfmKwamA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/reactivity": "3.5.25", "@vue/runtime-core": "3.5.25", @@ -2593,7 +2675,6 @@ "integrity": "sha512-UJaXR54vMG61i8XNIzTSf2Q7MOqZHpp8+x3XLGtE3+fL+nQd+k7O5+X3D/uWrnQXOdMw5VPih+Uremcw+u1woQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-ssr": "3.5.25", "@vue/shared": "3.5.25" @@ -2607,8 +2688,7 @@ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.25.tgz", "integrity": "sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@zeit/schemas": { "version": "2.21.0", @@ -2631,6 +2711,7 @@ "version": "7.4.0", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3617,6 +3698,13 @@ "node": ">= 0.12.0" } }, + "node_modules/code-block-writer": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", + "dev": true, + "license": "MIT" + }, "node_modules/collect-v8-coverage": { "version": "1.0.2", "dev": true, @@ -3791,8 +3879,7 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/debug": { "version": "2.6.9", @@ -4086,6 +4173,7 @@ "version": "7.32.0", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", @@ -5141,11 +5229,194 @@ "dev": true, "license": "ISC" }, + "node_modules/html-dom-parser": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-5.1.8.tgz", + "integrity": "sha512-MCIUng//mF2qTtGHXJWr6OLfHWmg3Pm8ezpfiltF83tizPWY17JxT4dRLE8lykJ5bChJELoY3onQKPbufJHxYA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/remarkablemark" + } + ], + "license": "MIT", + "dependencies": { + "domhandler": "5.0.3", + "htmlparser2": "10.1.0" + } + }, + "node_modules/html-dom-parser/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/html-dom-parser/node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/html-dom-parser/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/html-dom-parser/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/html-dom-parser/node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/html-dom-parser/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/html-dom-parser/node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, "node_modules/html-escaper": { "version": "2.0.2", "dev": true, "license": "MIT" }, + "node_modules/html-react-parser": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-5.2.17.tgz", + "integrity": "sha512-m+K/7Moq1jodAB4VL0RXSOmtwLUYoAsikZhwd+hGQe5Vtw2dbWfpFd60poxojMU0Tsh9w59mN1QLEcoHz0Dx9w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/remarkablemark" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/html-react-parser" + } + ], + "license": "MIT", + "dependencies": { + "domhandler": "5.0.3", + "html-dom-parser": "5.1.8", + "react-property": "2.0.2", + "style-to-js": "1.1.21" + }, + "peerDependencies": { + "@types/react": "0.14 || 15 || 16 || 17 || 18 || 19", + "react": "0.14 || 15 || 16 || 17 || 18 || 19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/html-react-parser/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/html-react-parser/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, "node_modules/html-tags": { "version": "3.1.0", "dev": true, @@ -5267,6 +5538,13 @@ "node": "*" } }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "dev": true, + "license": "MIT" + }, "node_modules/internal-slot": { "version": "1.0.3", "dev": true, @@ -7281,7 +7559,6 @@ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } @@ -7586,6 +7863,22 @@ "node": ">= 6" } }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ms": { "version": "2.1.2", "dev": true, @@ -7603,7 +7896,6 @@ } ], "license": "MIT", - "peer": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -7853,6 +8145,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, "node_modules/path-exists": { "version": "3.0.0", "dev": true, @@ -7958,6 +8257,7 @@ "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "playwright-core": "cli.js" }, @@ -7969,6 +8269,7 @@ "version": "7.0.35", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", @@ -8074,6 +8375,7 @@ "version": "0.36.2", "dev": true, "license": "MIT", + "peer": true, "peerDependencies": { "postcss": ">=5.0.0" } @@ -8122,6 +8424,7 @@ "version": "2.6.1", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin-prettier.js" }, @@ -8229,11 +8532,56 @@ "rc": "cli.js" } }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + } + }, "node_modules/react-is": { "version": "18.2.0", "dev": true, "license": "MIT" }, + "node_modules/react-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.2.tgz", + "integrity": "sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-style-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/react-style-stringify/-/react-style-stringify-1.2.0.tgz", + "integrity": "sha512-88JZckqgbfXJaGcDQoTFKRmBwHBF0Ddaxz3PL9Q+vywAJruBY+NdN+ZiKSBe7r/pWtjbt0naZdtH5oNI1X3FLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emotion/unitless": "^0.10.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/read-pkg": { "version": "5.2.0", "dev": true, @@ -8479,6 +8827,7 @@ "version": "2.35.1", "dev": true, "license": "MIT", + "peer": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -8539,6 +8888,13 @@ "node": ">=8.9.0" } }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "dev": true, + "license": "MIT" + }, "node_modules/semver": { "version": "5.7.1", "dev": true, @@ -8700,7 +9056,6 @@ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -8909,6 +9264,26 @@ "dev": true, "license": "ISC" }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.7" + } + }, "node_modules/stylelint": { "version": "13.13.1", "dev": true, @@ -9274,6 +9649,17 @@ "typescript": ">=4.2.0" } }, + "node_modules/ts-morph": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-22.0.0.tgz", + "integrity": "sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ts-morph/common": "~0.23.0", + "code-block-writer": "^13.0.1" + } + }, "node_modules/tsconfig-paths": { "version": "3.14.1", "dev": true, diff --git a/core/package.json b/core/package.json index 66977ebbaf1..ab60cb94fca 100644 --- a/core/package.json +++ b/core/package.json @@ -50,7 +50,7 @@ "@rollup/plugin-node-resolve": "^8.4.0", "@rollup/plugin-virtual": "^2.0.3", "@stencil/angular-output-target": "^0.10.0", - "@stencil/react-output-target": "0.5.3", + "@stencil/react-output-target": "~1.4.2", "@stencil/sass": "^3.0.9", "@stencil/vue-output-target": "0.10.8", "@types/jest": "^29.5.6", diff --git a/core/stencil.config.ts b/core/stencil.config.ts index 8a090b65bff..1630e3a6f2d 100644 --- a/core/stencil.config.ts +++ b/core/stencil.config.ts @@ -125,11 +125,7 @@ export const config: Config = { ], outputTargets: [ reactOutputTarget({ - componentCorePackage, - includeImportCustomElements: true, - includePolyfills: false, - includeDefineCustomElements: false, - proxiesFile: '../packages/react/src/components/proxies.ts', + outDir: '../packages/react/src/components', excludeComponents: [ // Routing 'ion-router', diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 2732a5c693c..18d01250f4f 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -10,6 +10,7 @@ "license": "MIT", "dependencies": { "@ionic/core": "^8.8.0", + "@stencil/react-output-target": "~1.4.2", "ionicons": "^8.0.13", "tslib": "*" }, @@ -662,6 +663,12 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -1425,11 +1432,19 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@lit/react": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.8.tgz", + "integrity": "sha512-p2+YcF+JE67SRX3mMlJ1TKCSTsgyOVdAwd/nxp3NuV1+Cb6MWALbN6nT7Ld4tpmYofcE5kcaSY1YBB9erY+6fw==", + "license": "BSD-3-Clause", + "peerDependencies": { + "@types/react": "17 || 18 || 19" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -1442,7 +1457,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "engines": { "node": ">= 8" } @@ -1451,7 +1465,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1856,6 +1869,34 @@ "win32" ] }, + "node_modules/@stencil/react-output-target": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@stencil/react-output-target/-/react-output-target-1.4.2.tgz", + "integrity": "sha512-XH/kRsfBbEbBYYCCVpDsuw/bpfEvq7YSDoKy2yOmf/GI4iGxwZbOml0IHpgMOwa6ggL/lCwA1GuwH+T3wla8Fg==", + "license": "MIT", + "dependencies": { + "@lit/react": "^1.0.7", + "html-react-parser": "^5.2.2", + "react-style-stringify": "^1.2.0", + "ts-morph": "^22.0.0" + }, + "peerDependencies": { + "@stencil/core": ">=3 || >= 4.0.0-beta.0 || >= 4.0.0", + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + }, + "peerDependenciesMeta": { + "@stencil/core": { + "optional": false + }, + "react": { + "optional": false + }, + "react-dom": { + "optional": false + } + } + }, "node_modules/@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -1988,6 +2029,42 @@ "node": ">= 10" } }, + "node_modules/@ts-morph/common": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.23.0.tgz", + "integrity": "sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==", + "license": "MIT", + "dependencies": { + "fast-glob": "^3.3.2", + "minimatch": "^9.0.3", + "mkdirp": "^3.0.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@ts-morph/common/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -2177,14 +2254,12 @@ "node_modules/@types/prop-types": { "version": "15.7.9", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz", - "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==", - "dev": true + "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==" }, "node_modules/@types/react": { "version": "18.3.28", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -3136,8 +3211,7 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/boxen": { "version": "4.2.0", @@ -3184,7 +3258,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -3567,6 +3640,12 @@ "node": ">= 0.12.0" } }, + "node_modules/code-block-writer": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", + "license": "MIT" + }, "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -3775,7 +3854,6 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "dev": true, "license": "MIT" }, "node_modules/data-urls": { @@ -4113,6 +4191,32 @@ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, "node_modules/domexception": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", @@ -4126,6 +4230,35 @@ "node": ">=12" } }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -4218,7 +4351,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, "engines": { "node": ">=0.12" }, @@ -4887,7 +5019,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -4915,7 +5046,6 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -4999,7 +5129,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -5256,7 +5385,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -5544,6 +5672,22 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/html-dom-parser": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-5.1.8.tgz", + "integrity": "sha512-MCIUng//mF2qTtGHXJWr6OLfHWmg3Pm8ezpfiltF83tizPWY17JxT4dRLE8lykJ5bChJELoY3onQKPbufJHxYA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/remarkablemark" + } + ], + "license": "MIT", + "dependencies": { + "domhandler": "5.0.3", + "htmlparser2": "10.1.0" + } + }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -5562,6 +5706,68 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "node_modules/html-react-parser": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-5.2.17.tgz", + "integrity": "sha512-m+K/7Moq1jodAB4VL0RXSOmtwLUYoAsikZhwd+hGQe5Vtw2dbWfpFd60poxojMU0Tsh9w59mN1QLEcoHz0Dx9w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/remarkablemark" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/html-react-parser" + } + ], + "license": "MIT", + "dependencies": { + "domhandler": "5.0.3", + "html-dom-parser": "5.1.8", + "react-property": "2.0.2", + "style-to-js": "1.1.21" + }, + "peerDependencies": { + "@types/react": "0.14 || 15 || 16 || 17 || 18 || 19", + "react": "0.14 || 15 || 16 || 17 || 18 || 19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", @@ -5709,6 +5915,12 @@ "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", "dev": true }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, "node_modules/inquirer": { "version": "7.3.3", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", @@ -6155,7 +6367,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -6182,7 +6393,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -6243,7 +6453,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -7940,8 +8149,7 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { "version": "3.14.1", @@ -8646,7 +8854,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -8796,7 +9003,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "engines": { "node": ">= 8" } @@ -8805,7 +9011,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -8900,6 +9105,21 @@ "node": ">= 6" } }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -9693,6 +9913,12 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -9751,7 +9977,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -9994,7 +10219,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -10047,7 +10271,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -10061,7 +10284,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -10078,6 +10300,24 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, + "node_modules/react-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.2.tgz", + "integrity": "sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==", + "license": "MIT" + }, + "node_modules/react-style-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/react-style-stringify/-/react-style-stringify-1.2.0.tgz", + "integrity": "sha512-88JZckqgbfXJaGcDQoTFKRmBwHBF0Ddaxz3PL9Q+vywAJruBY+NdN+ZiKSBe7r/pWtjbt0naZdtH5oNI1X3FLA==", + "license": "MIT", + "dependencies": { + "@emotion/unitless": "^0.10.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -10318,7 +10558,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -10381,7 +10620,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -10472,7 +10710,6 @@ "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dev": true, "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -10865,6 +11102,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.7" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11066,7 +11321,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -11176,6 +11430,16 @@ "node": ">=12" } }, + "node_modules/ts-morph": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-22.0.0.tgz", + "integrity": "sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==", + "license": "MIT", + "dependencies": { + "@ts-morph/common": "~0.23.0", + "code-block-writer": "^13.0.1" + } + }, "node_modules/tsconfig-paths": { "version": "3.14.2", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", diff --git a/packages/react/package.json b/packages/react/package.json index 2e61e7f3804..a67d248f6c7 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -41,6 +41,7 @@ ], "dependencies": { "@ionic/core": "^8.8.0", + "@stencil/react-output-target": "~1.4.2", "ionicons": "^8.0.13", "tslib": "*" }, diff --git a/packages/react/src/components/components.ts b/packages/react/src/components/components.ts new file mode 100644 index 00000000000..46f1e19abbc --- /dev/null +++ b/packages/react/src/components/components.ts @@ -0,0 +1,1431 @@ +'use client'; + +/** + * This file was automatically generated by the Stencil React Output Target. + * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. + */ + +/* eslint-disable */ + +import { + type AccordionGroupChangeEventDetail, + type BreadcrumbCollapsedClickEventDetail, + type CheckboxChangeEventDetail, + type DatetimeChangeEventDetail, + type InputChangeEventDetail, + type InputInputEventDetail, + type InputOtpChangeEventDetail, + type InputOtpCompleteEventDetail, + type InputOtpInputEventDetail, + type IonAccordionGroupCustomEvent, + type IonBackdropCustomEvent, + type IonBreadcrumbsCustomEvent, + type IonCheckboxCustomEvent, + type IonContentCustomEvent, + type IonDatetimeCustomEvent, + type IonImgCustomEvent, + type IonInfiniteScrollCustomEvent, + type IonInputCustomEvent, + type IonInputOtpCustomEvent, + type IonItemOptionsCustomEvent, + type IonItemSlidingCustomEvent, + type IonMenuCustomEvent, + type IonNavCustomEvent, + type IonPickerColumnCustomEvent, + type IonRadioCustomEvent, + type IonRadioGroupCustomEvent, + type IonRangeCustomEvent, + type IonRefresherCustomEvent, + type IonReorderGroupCustomEvent, + type IonSearchbarCustomEvent, + type IonSegmentCustomEvent, + type IonSegmentViewCustomEvent, + type IonSelectCustomEvent, + type IonSplitPaneCustomEvent, + type IonTextareaCustomEvent, + type IonToggleCustomEvent, + type ItemReorderEventDetail, + type MenuCloseEventDetail, + type PickerColumnChangeEventDetail, + type RadioGroupChangeEventDetail, + type RangeChangeEventDetail, + type RangeKnobMoveEndEventDetail, + type RangeKnobMoveStartEventDetail, + type RefresherEventDetail, + type RefresherPullEndEventDetail, + type ReorderEndEventDetail, + type ReorderMoveEventDetail, + type ScrollBaseDetail, + type ScrollDetail, + type SearchbarChangeEventDetail, + type SearchbarInputEventDetail, + type SegmentChangeEventDetail, + type SegmentViewScrollEvent, + type SelectChangeEventDetail, + type TextareaChangeEventDetail, + type TextareaInputEventDetail, + type ToggleChangeEventDetail, +} from '@ionic/core'; +import { + IonAccordionGroup as IonAccordionGroupElement, + defineCustomElement as defineIonAccordionGroup, +} from '@ionic/core/components/ion-accordion-group.js'; +import { + IonAccordion as IonAccordionElement, + defineCustomElement as defineIonAccordion, +} from '@ionic/core/components/ion-accordion.js'; +import { + IonAvatar as IonAvatarElement, + defineCustomElement as defineIonAvatar, +} from '@ionic/core/components/ion-avatar.js'; +import { + IonBackdrop as IonBackdropElement, + defineCustomElement as defineIonBackdrop, +} from '@ionic/core/components/ion-backdrop.js'; +import { + IonBadge as IonBadgeElement, + defineCustomElement as defineIonBadge, +} from '@ionic/core/components/ion-badge.js'; +import { + IonBreadcrumbs as IonBreadcrumbsElement, + defineCustomElement as defineIonBreadcrumbs, +} from '@ionic/core/components/ion-breadcrumbs.js'; +import { + IonButtons as IonButtonsElement, + defineCustomElement as defineIonButtons, +} from '@ionic/core/components/ion-buttons.js'; +import { + IonCardContent as IonCardContentElement, + defineCustomElement as defineIonCardContent, +} from '@ionic/core/components/ion-card-content.js'; +import { + IonCardHeader as IonCardHeaderElement, + defineCustomElement as defineIonCardHeader, +} from '@ionic/core/components/ion-card-header.js'; +import { + IonCardSubtitle as IonCardSubtitleElement, + defineCustomElement as defineIonCardSubtitle, +} from '@ionic/core/components/ion-card-subtitle.js'; +import { + IonCardTitle as IonCardTitleElement, + defineCustomElement as defineIonCardTitle, +} from '@ionic/core/components/ion-card-title.js'; +import { + IonCheckbox as IonCheckboxElement, + defineCustomElement as defineIonCheckbox, +} from '@ionic/core/components/ion-checkbox.js'; +import { IonChip as IonChipElement, defineCustomElement as defineIonChip } from '@ionic/core/components/ion-chip.js'; +import { IonCol as IonColElement, defineCustomElement as defineIonCol } from '@ionic/core/components/ion-col.js'; +import { + IonContent as IonContentElement, + defineCustomElement as defineIonContent, +} from '@ionic/core/components/ion-content.js'; +import { + IonDatetimeButton as IonDatetimeButtonElement, + defineCustomElement as defineIonDatetimeButton, +} from '@ionic/core/components/ion-datetime-button.js'; +import { + IonDatetime as IonDatetimeElement, + defineCustomElement as defineIonDatetime, +} from '@ionic/core/components/ion-datetime.js'; +import { + IonFabList as IonFabListElement, + defineCustomElement as defineIonFabList, +} from '@ionic/core/components/ion-fab-list.js'; +import { IonFab as IonFabElement, defineCustomElement as defineIonFab } from '@ionic/core/components/ion-fab.js'; +import { + IonFooter as IonFooterElement, + defineCustomElement as defineIonFooter, +} from '@ionic/core/components/ion-footer.js'; +import { IonGrid as IonGridElement, defineCustomElement as defineIonGrid } from '@ionic/core/components/ion-grid.js'; +import { + IonHeader as IonHeaderElement, + defineCustomElement as defineIonHeader, +} from '@ionic/core/components/ion-header.js'; +import { IonImg as IonImgElement, defineCustomElement as defineIonImg } from '@ionic/core/components/ion-img.js'; +import { + IonInfiniteScrollContent as IonInfiniteScrollContentElement, + defineCustomElement as defineIonInfiniteScrollContent, +} from '@ionic/core/components/ion-infinite-scroll-content.js'; +import { + IonInfiniteScroll as IonInfiniteScrollElement, + defineCustomElement as defineIonInfiniteScroll, +} from '@ionic/core/components/ion-infinite-scroll.js'; +import { + IonInputOtp as IonInputOtpElement, + defineCustomElement as defineIonInputOtp, +} from '@ionic/core/components/ion-input-otp.js'; +import { + IonInputPasswordToggle as IonInputPasswordToggleElement, + defineCustomElement as defineIonInputPasswordToggle, +} from '@ionic/core/components/ion-input-password-toggle.js'; +import { + IonInput as IonInputElement, + defineCustomElement as defineIonInput, +} from '@ionic/core/components/ion-input.js'; +import { + IonItemDivider as IonItemDividerElement, + defineCustomElement as defineIonItemDivider, +} from '@ionic/core/components/ion-item-divider.js'; +import { + IonItemGroup as IonItemGroupElement, + defineCustomElement as defineIonItemGroup, +} from '@ionic/core/components/ion-item-group.js'; +import { + IonItemOptions as IonItemOptionsElement, + defineCustomElement as defineIonItemOptions, +} from '@ionic/core/components/ion-item-options.js'; +import { + IonItemSliding as IonItemSlidingElement, + defineCustomElement as defineIonItemSliding, +} from '@ionic/core/components/ion-item-sliding.js'; +import { + IonLabel as IonLabelElement, + defineCustomElement as defineIonLabel, +} from '@ionic/core/components/ion-label.js'; +import { + IonListHeader as IonListHeaderElement, + defineCustomElement as defineIonListHeader, +} from '@ionic/core/components/ion-list-header.js'; +import { IonList as IonListElement, defineCustomElement as defineIonList } from '@ionic/core/components/ion-list.js'; +import { + IonMenuButton as IonMenuButtonElement, + defineCustomElement as defineIonMenuButton, +} from '@ionic/core/components/ion-menu-button.js'; +import { + IonMenuToggle as IonMenuToggleElement, + defineCustomElement as defineIonMenuToggle, +} from '@ionic/core/components/ion-menu-toggle.js'; +import { IonMenu as IonMenuElement, defineCustomElement as defineIonMenu } from '@ionic/core/components/ion-menu.js'; +import { + IonNavLink as IonNavLinkElement, + defineCustomElement as defineIonNavLink, +} from '@ionic/core/components/ion-nav-link.js'; +import { IonNav as IonNavElement, defineCustomElement as defineIonNav } from '@ionic/core/components/ion-nav.js'; +import { IonNote as IonNoteElement, defineCustomElement as defineIonNote } from '@ionic/core/components/ion-note.js'; +import { + IonPickerColumnOption as IonPickerColumnOptionElement, + defineCustomElement as defineIonPickerColumnOption, +} from '@ionic/core/components/ion-picker-column-option.js'; +import { + IonPickerColumn as IonPickerColumnElement, + defineCustomElement as defineIonPickerColumn, +} from '@ionic/core/components/ion-picker-column.js'; +import { + IonPicker as IonPickerElement, + defineCustomElement as defineIonPicker, +} from '@ionic/core/components/ion-picker.js'; +import { + IonProgressBar as IonProgressBarElement, + defineCustomElement as defineIonProgressBar, +} from '@ionic/core/components/ion-progress-bar.js'; +import { + IonRadioGroup as IonRadioGroupElement, + defineCustomElement as defineIonRadioGroup, +} from '@ionic/core/components/ion-radio-group.js'; +import { + IonRadio as IonRadioElement, + defineCustomElement as defineIonRadio, +} from '@ionic/core/components/ion-radio.js'; +import { + IonRange as IonRangeElement, + defineCustomElement as defineIonRange, +} from '@ionic/core/components/ion-range.js'; +import { + IonRefresherContent as IonRefresherContentElement, + defineCustomElement as defineIonRefresherContent, +} from '@ionic/core/components/ion-refresher-content.js'; +import { + IonRefresher as IonRefresherElement, + defineCustomElement as defineIonRefresher, +} from '@ionic/core/components/ion-refresher.js'; +import { + IonReorderGroup as IonReorderGroupElement, + defineCustomElement as defineIonReorderGroup, +} from '@ionic/core/components/ion-reorder-group.js'; +import { + IonReorder as IonReorderElement, + defineCustomElement as defineIonReorder, +} from '@ionic/core/components/ion-reorder.js'; +import { + IonRippleEffect as IonRippleEffectElement, + defineCustomElement as defineIonRippleEffect, +} from '@ionic/core/components/ion-ripple-effect.js'; +import { IonRow as IonRowElement, defineCustomElement as defineIonRow } from '@ionic/core/components/ion-row.js'; +import { + IonSearchbar as IonSearchbarElement, + defineCustomElement as defineIonSearchbar, +} from '@ionic/core/components/ion-searchbar.js'; +import { + IonSegmentButton as IonSegmentButtonElement, + defineCustomElement as defineIonSegmentButton, +} from '@ionic/core/components/ion-segment-button.js'; +import { + IonSegmentContent as IonSegmentContentElement, + defineCustomElement as defineIonSegmentContent, +} from '@ionic/core/components/ion-segment-content.js'; +import { + IonSegmentView as IonSegmentViewElement, + defineCustomElement as defineIonSegmentView, +} from '@ionic/core/components/ion-segment-view.js'; +import { + IonSegment as IonSegmentElement, + defineCustomElement as defineIonSegment, +} from '@ionic/core/components/ion-segment.js'; +import { + IonSelectModal as IonSelectModalElement, + defineCustomElement as defineIonSelectModal, +} from '@ionic/core/components/ion-select-modal.js'; +import { + IonSelectOption as IonSelectOptionElement, + defineCustomElement as defineIonSelectOption, +} from '@ionic/core/components/ion-select-option.js'; +import { + IonSelect as IonSelectElement, + defineCustomElement as defineIonSelect, +} from '@ionic/core/components/ion-select.js'; +import { + IonSkeletonText as IonSkeletonTextElement, + defineCustomElement as defineIonSkeletonText, +} from '@ionic/core/components/ion-skeleton-text.js'; +import { + IonSpinner as IonSpinnerElement, + defineCustomElement as defineIonSpinner, +} from '@ionic/core/components/ion-spinner.js'; +import { + IonSplitPane as IonSplitPaneElement, + defineCustomElement as defineIonSplitPane, +} from '@ionic/core/components/ion-split-pane.js'; +import { IonTab as IonTabElement, defineCustomElement as defineIonTab } from '@ionic/core/components/ion-tab.js'; +import { IonText as IonTextElement, defineCustomElement as defineIonText } from '@ionic/core/components/ion-text.js'; +import { + IonTextarea as IonTextareaElement, + defineCustomElement as defineIonTextarea, +} from '@ionic/core/components/ion-textarea.js'; +import { + IonThumbnail as IonThumbnailElement, + defineCustomElement as defineIonThumbnail, +} from '@ionic/core/components/ion-thumbnail.js'; +import { + IonTitle as IonTitleElement, + defineCustomElement as defineIonTitle, +} from '@ionic/core/components/ion-title.js'; +import { + IonToggle as IonToggleElement, + defineCustomElement as defineIonToggle, +} from '@ionic/core/components/ion-toggle.js'; +import { + IonToolbar as IonToolbarElement, + defineCustomElement as defineIonToolbar, +} from '@ionic/core/components/ion-toolbar.js'; +import type { EventName, StencilReactComponent } from '@stencil/react-output-target/runtime'; +import { createComponent } from '@stencil/react-output-target/runtime'; +import React from 'react'; + +export type IonAccordionEvents = NonNullable; + +export const IonAccordion: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-accordion', + elementClass: IonAccordionElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonAccordionEvents, + defineCustomElement: defineIonAccordion, + }); + +export type IonAccordionGroupEvents = { + onIonChange: EventName>; +}; + +export const IonAccordionGroup: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-accordion-group', + elementClass: IonAccordionGroupElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { onIonChange: 'ionChange' } as IonAccordionGroupEvents, + defineCustomElement: defineIonAccordionGroup, + }); + +export type IonAvatarEvents = NonNullable; + +export const IonAvatar: StencilReactComponent = /*@__PURE__*/ createComponent< + IonAvatarElement, + IonAvatarEvents +>({ + tagName: 'ion-avatar', + elementClass: IonAvatarElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonAvatarEvents, + defineCustomElement: defineIonAvatar, +}); + +export type IonBackdropEvents = { onIonBackdropTap: EventName> }; + +export const IonBackdrop: StencilReactComponent = /*@__PURE__*/ createComponent< + IonBackdropElement, + IonBackdropEvents +>({ + tagName: 'ion-backdrop', + elementClass: IonBackdropElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { onIonBackdropTap: 'ionBackdropTap' } as IonBackdropEvents, + defineCustomElement: defineIonBackdrop, +}); + +export type IonBadgeEvents = NonNullable; + +export const IonBadge: StencilReactComponent = /*@__PURE__*/ createComponent< + IonBadgeElement, + IonBadgeEvents +>({ + tagName: 'ion-badge', + elementClass: IonBadgeElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonBadgeEvents, + defineCustomElement: defineIonBadge, +}); + +export type IonBreadcrumbsEvents = { + onIonCollapsedClick: EventName>; +}; + +export const IonBreadcrumbs: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-breadcrumbs', + elementClass: IonBreadcrumbsElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { onIonCollapsedClick: 'ionCollapsedClick' } as IonBreadcrumbsEvents, + defineCustomElement: defineIonBreadcrumbs, + }); + +export type IonButtonsEvents = NonNullable; + +export const IonButtons: StencilReactComponent = /*@__PURE__*/ createComponent< + IonButtonsElement, + IonButtonsEvents +>({ + tagName: 'ion-buttons', + elementClass: IonButtonsElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonButtonsEvents, + defineCustomElement: defineIonButtons, +}); + +export type IonCardContentEvents = NonNullable; + +export const IonCardContent: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-card-content', + elementClass: IonCardContentElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonCardContentEvents, + defineCustomElement: defineIonCardContent, + }); + +export type IonCardHeaderEvents = NonNullable; + +export const IonCardHeader: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-card-header', + elementClass: IonCardHeaderElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonCardHeaderEvents, + defineCustomElement: defineIonCardHeader, + }); + +export type IonCardSubtitleEvents = NonNullable; + +export const IonCardSubtitle: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-card-subtitle', + elementClass: IonCardSubtitleElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonCardSubtitleEvents, + defineCustomElement: defineIonCardSubtitle, + }); + +export type IonCardTitleEvents = NonNullable; + +export const IonCardTitle: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-card-title', + elementClass: IonCardTitleElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonCardTitleEvents, + defineCustomElement: defineIonCardTitle, + }); + +export type IonCheckboxEvents = { + onIonChange: EventName>; + onIonFocus: EventName>; + onIonBlur: EventName>; +}; + +export const IonCheckbox: StencilReactComponent = /*@__PURE__*/ createComponent< + IonCheckboxElement, + IonCheckboxEvents +>({ + tagName: 'ion-checkbox', + elementClass: IonCheckboxElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonChange: 'ionChange', + onIonFocus: 'ionFocus', + onIonBlur: 'ionBlur', + } as IonCheckboxEvents, + defineCustomElement: defineIonCheckbox, +}); + +export type IonChipEvents = NonNullable; + +export const IonChip: StencilReactComponent = /*@__PURE__*/ createComponent< + IonChipElement, + IonChipEvents +>({ + tagName: 'ion-chip', + elementClass: IonChipElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonChipEvents, + defineCustomElement: defineIonChip, +}); + +export type IonColEvents = NonNullable; + +export const IonCol: StencilReactComponent = /*@__PURE__*/ createComponent< + IonColElement, + IonColEvents +>({ + tagName: 'ion-col', + elementClass: IonColElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonColEvents, + defineCustomElement: defineIonCol, +}); + +export type IonContentEvents = { + onIonScrollStart: EventName>; + onIonScroll: EventName>; + onIonScrollEnd: EventName>; +}; + +export const IonContent: StencilReactComponent = /*@__PURE__*/ createComponent< + IonContentElement, + IonContentEvents +>({ + tagName: 'ion-content', + elementClass: IonContentElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonScrollStart: 'ionScrollStart', + onIonScroll: 'ionScroll', + onIonScrollEnd: 'ionScrollEnd', + } as IonContentEvents, + defineCustomElement: defineIonContent, +}); + +export type IonDatetimeEvents = { + onIonCancel: EventName>; + onIonChange: EventName>; + onIonFocus: EventName>; + onIonBlur: EventName>; +}; + +export const IonDatetime: StencilReactComponent = /*@__PURE__*/ createComponent< + IonDatetimeElement, + IonDatetimeEvents +>({ + tagName: 'ion-datetime', + elementClass: IonDatetimeElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonCancel: 'ionCancel', + onIonChange: 'ionChange', + onIonFocus: 'ionFocus', + onIonBlur: 'ionBlur', + } as IonDatetimeEvents, + defineCustomElement: defineIonDatetime, +}); + +export type IonDatetimeButtonEvents = NonNullable; + +export const IonDatetimeButton: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-datetime-button', + elementClass: IonDatetimeButtonElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonDatetimeButtonEvents, + defineCustomElement: defineIonDatetimeButton, + }); + +export type IonFabEvents = NonNullable; + +export const IonFab: StencilReactComponent = /*@__PURE__*/ createComponent< + IonFabElement, + IonFabEvents +>({ + tagName: 'ion-fab', + elementClass: IonFabElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonFabEvents, + defineCustomElement: defineIonFab, +}); + +export type IonFabListEvents = NonNullable; + +export const IonFabList: StencilReactComponent = /*@__PURE__*/ createComponent< + IonFabListElement, + IonFabListEvents +>({ + tagName: 'ion-fab-list', + elementClass: IonFabListElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonFabListEvents, + defineCustomElement: defineIonFabList, +}); + +export type IonFooterEvents = NonNullable; + +export const IonFooter: StencilReactComponent = /*@__PURE__*/ createComponent< + IonFooterElement, + IonFooterEvents +>({ + tagName: 'ion-footer', + elementClass: IonFooterElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonFooterEvents, + defineCustomElement: defineIonFooter, +}); + +export type IonGridEvents = NonNullable; + +export const IonGrid: StencilReactComponent = /*@__PURE__*/ createComponent< + IonGridElement, + IonGridEvents +>({ + tagName: 'ion-grid', + elementClass: IonGridElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonGridEvents, + defineCustomElement: defineIonGrid, +}); + +export type IonHeaderEvents = NonNullable; + +export const IonHeader: StencilReactComponent = /*@__PURE__*/ createComponent< + IonHeaderElement, + IonHeaderEvents +>({ + tagName: 'ion-header', + elementClass: IonHeaderElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonHeaderEvents, + defineCustomElement: defineIonHeader, +}); + +export type IonImgEvents = { + onIonImgWillLoad: EventName>; + onIonImgDidLoad: EventName>; + onIonError: EventName>; +}; + +export const IonImg: StencilReactComponent = /*@__PURE__*/ createComponent< + IonImgElement, + IonImgEvents +>({ + tagName: 'ion-img', + elementClass: IonImgElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonImgWillLoad: 'ionImgWillLoad', + onIonImgDidLoad: 'ionImgDidLoad', + onIonError: 'ionError', + } as IonImgEvents, + defineCustomElement: defineIonImg, +}); + +export type IonInfiniteScrollEvents = { onIonInfinite: EventName> }; + +export const IonInfiniteScroll: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-infinite-scroll', + elementClass: IonInfiniteScrollElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { onIonInfinite: 'ionInfinite' } as IonInfiniteScrollEvents, + defineCustomElement: defineIonInfiniteScroll, + }); + +export type IonInfiniteScrollContentEvents = NonNullable; + +export const IonInfiniteScrollContent: StencilReactComponent< + IonInfiniteScrollContentElement, + IonInfiniteScrollContentEvents +> = /*@__PURE__*/ createComponent({ + tagName: 'ion-infinite-scroll-content', + elementClass: IonInfiniteScrollContentElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonInfiniteScrollContentEvents, + defineCustomElement: defineIonInfiniteScrollContent, +}); + +export type IonInputEvents = { + onIonInput: EventName>; + onIonChange: EventName>; + onIonBlur: EventName>; + onIonFocus: EventName>; +}; + +export const IonInput: StencilReactComponent = /*@__PURE__*/ createComponent< + IonInputElement, + IonInputEvents +>({ + tagName: 'ion-input', + elementClass: IonInputElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonInput: 'ionInput', + onIonChange: 'ionChange', + onIonBlur: 'ionBlur', + onIonFocus: 'ionFocus', + } as IonInputEvents, + defineCustomElement: defineIonInput, +}); + +export type IonInputOtpEvents = { + onIonInput: EventName>; + onIonChange: EventName>; + onIonComplete: EventName>; + onIonBlur: EventName>; + onIonFocus: EventName>; +}; + +export const IonInputOtp: StencilReactComponent = /*@__PURE__*/ createComponent< + IonInputOtpElement, + IonInputOtpEvents +>({ + tagName: 'ion-input-otp', + elementClass: IonInputOtpElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonInput: 'ionInput', + onIonChange: 'ionChange', + onIonComplete: 'ionComplete', + onIonBlur: 'ionBlur', + onIonFocus: 'ionFocus', + } as IonInputOtpEvents, + defineCustomElement: defineIonInputOtp, +}); + +export type IonInputPasswordToggleEvents = NonNullable; + +export const IonInputPasswordToggle: StencilReactComponent< + IonInputPasswordToggleElement, + IonInputPasswordToggleEvents +> = /*@__PURE__*/ createComponent({ + tagName: 'ion-input-password-toggle', + elementClass: IonInputPasswordToggleElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonInputPasswordToggleEvents, + defineCustomElement: defineIonInputPasswordToggle, +}); + +export type IonItemDividerEvents = NonNullable; + +export const IonItemDivider: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-item-divider', + elementClass: IonItemDividerElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonItemDividerEvents, + defineCustomElement: defineIonItemDivider, + }); + +export type IonItemGroupEvents = NonNullable; + +export const IonItemGroup: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-item-group', + elementClass: IonItemGroupElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonItemGroupEvents, + defineCustomElement: defineIonItemGroup, + }); + +export type IonItemOptionsEvents = { onIonSwipe: EventName> }; + +export const IonItemOptions: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-item-options', + elementClass: IonItemOptionsElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { onIonSwipe: 'ionSwipe' } as IonItemOptionsEvents, + defineCustomElement: defineIonItemOptions, + }); + +export type IonItemSlidingEvents = { onIonDrag: EventName> }; + +export const IonItemSliding: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-item-sliding', + elementClass: IonItemSlidingElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { onIonDrag: 'ionDrag' } as IonItemSlidingEvents, + defineCustomElement: defineIonItemSliding, + }); + +export type IonLabelEvents = NonNullable; + +export const IonLabel: StencilReactComponent = /*@__PURE__*/ createComponent< + IonLabelElement, + IonLabelEvents +>({ + tagName: 'ion-label', + elementClass: IonLabelElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonLabelEvents, + defineCustomElement: defineIonLabel, +}); + +export type IonListEvents = NonNullable; + +export const IonList: StencilReactComponent = /*@__PURE__*/ createComponent< + IonListElement, + IonListEvents +>({ + tagName: 'ion-list', + elementClass: IonListElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonListEvents, + defineCustomElement: defineIonList, +}); + +export type IonListHeaderEvents = NonNullable; + +export const IonListHeader: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-list-header', + elementClass: IonListHeaderElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonListHeaderEvents, + defineCustomElement: defineIonListHeader, + }); + +export type IonMenuEvents = { + onIonWillOpen: EventName>; + onIonWillClose: EventName>; + onIonDidOpen: EventName>; + onIonDidClose: EventName>; +}; + +export const IonMenu: StencilReactComponent = /*@__PURE__*/ createComponent< + IonMenuElement, + IonMenuEvents +>({ + tagName: 'ion-menu', + elementClass: IonMenuElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonWillOpen: 'ionWillOpen', + onIonWillClose: 'ionWillClose', + onIonDidOpen: 'ionDidOpen', + onIonDidClose: 'ionDidClose', + } as IonMenuEvents, + defineCustomElement: defineIonMenu, +}); + +export type IonMenuButtonEvents = NonNullable; + +export const IonMenuButton: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-menu-button', + elementClass: IonMenuButtonElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonMenuButtonEvents, + defineCustomElement: defineIonMenuButton, + }); + +export type IonMenuToggleEvents = NonNullable; + +export const IonMenuToggle: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-menu-toggle', + elementClass: IonMenuToggleElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonMenuToggleEvents, + defineCustomElement: defineIonMenuToggle, + }); + +export type IonNavEvents = { + onIonNavWillChange: EventName>; + onIonNavDidChange: EventName>; +}; + +export const IonNav: StencilReactComponent = /*@__PURE__*/ createComponent< + IonNavElement, + IonNavEvents +>({ + tagName: 'ion-nav', + elementClass: IonNavElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonNavWillChange: 'ionNavWillChange', + onIonNavDidChange: 'ionNavDidChange', + } as IonNavEvents, + defineCustomElement: defineIonNav, +}); + +export type IonNavLinkEvents = NonNullable; + +export const IonNavLink: StencilReactComponent = /*@__PURE__*/ createComponent< + IonNavLinkElement, + IonNavLinkEvents +>({ + tagName: 'ion-nav-link', + elementClass: IonNavLinkElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonNavLinkEvents, + defineCustomElement: defineIonNavLink, +}); + +export type IonNoteEvents = NonNullable; + +export const IonNote: StencilReactComponent = /*@__PURE__*/ createComponent< + IonNoteElement, + IonNoteEvents +>({ + tagName: 'ion-note', + elementClass: IonNoteElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonNoteEvents, + defineCustomElement: defineIonNote, +}); + +export type IonPickerEvents = NonNullable; + +export const IonPicker: StencilReactComponent = /*@__PURE__*/ createComponent< + IonPickerElement, + IonPickerEvents +>({ + tagName: 'ion-picker', + elementClass: IonPickerElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonPickerEvents, + defineCustomElement: defineIonPicker, +}); + +export type IonPickerColumnEvents = { + onIonChange: EventName>; +}; + +export const IonPickerColumn: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-picker-column', + elementClass: IonPickerColumnElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { onIonChange: 'ionChange' } as IonPickerColumnEvents, + defineCustomElement: defineIonPickerColumn, + }); + +export type IonPickerColumnOptionEvents = NonNullable; + +export const IonPickerColumnOption: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-picker-column-option', + elementClass: IonPickerColumnOptionElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonPickerColumnOptionEvents, + defineCustomElement: defineIonPickerColumnOption, + }); + +export type IonProgressBarEvents = NonNullable; + +export const IonProgressBar: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-progress-bar', + elementClass: IonProgressBarElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonProgressBarEvents, + defineCustomElement: defineIonProgressBar, + }); + +export type IonRadioEvents = { + onIonFocus: EventName>; + onIonBlur: EventName>; +}; + +export const IonRadio: StencilReactComponent = /*@__PURE__*/ createComponent< + IonRadioElement, + IonRadioEvents +>({ + tagName: 'ion-radio', + elementClass: IonRadioElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonFocus: 'ionFocus', + onIonBlur: 'ionBlur', + } as IonRadioEvents, + defineCustomElement: defineIonRadio, +}); + +export type IonRadioGroupEvents = { onIonChange: EventName> }; + +export const IonRadioGroup: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-radio-group', + elementClass: IonRadioGroupElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { onIonChange: 'ionChange' } as IonRadioGroupEvents, + defineCustomElement: defineIonRadioGroup, + }); + +export type IonRangeEvents = { + onIonChange: EventName>; + onIonInput: EventName>; + onIonFocus: EventName>; + onIonBlur: EventName>; + onIonKnobMoveStart: EventName>; + onIonKnobMoveEnd: EventName>; +}; + +export const IonRange: StencilReactComponent = /*@__PURE__*/ createComponent< + IonRangeElement, + IonRangeEvents +>({ + tagName: 'ion-range', + elementClass: IonRangeElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonChange: 'ionChange', + onIonInput: 'ionInput', + onIonFocus: 'ionFocus', + onIonBlur: 'ionBlur', + onIonKnobMoveStart: 'ionKnobMoveStart', + onIonKnobMoveEnd: 'ionKnobMoveEnd', + } as IonRangeEvents, + defineCustomElement: defineIonRange, +}); + +export type IonRefresherEvents = { + onIonRefresh: EventName>; + onIonPull: EventName>; + onIonStart: EventName>; + onIonPullStart: EventName>; + onIonPullEnd: EventName>; +}; + +export const IonRefresher: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-refresher', + elementClass: IonRefresherElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonRefresh: 'ionRefresh', + onIonPull: 'ionPull', + onIonStart: 'ionStart', + onIonPullStart: 'ionPullStart', + onIonPullEnd: 'ionPullEnd', + } as IonRefresherEvents, + defineCustomElement: defineIonRefresher, + }); + +export type IonRefresherContentEvents = NonNullable; + +export const IonRefresherContent: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-refresher-content', + elementClass: IonRefresherContentElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonRefresherContentEvents, + defineCustomElement: defineIonRefresherContent, + }); + +export type IonReorderEvents = NonNullable; + +export const IonReorder: StencilReactComponent = /*@__PURE__*/ createComponent< + IonReorderElement, + IonReorderEvents +>({ + tagName: 'ion-reorder', + elementClass: IonReorderElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonReorderEvents, + defineCustomElement: defineIonReorder, +}); + +export type IonReorderGroupEvents = { + onIonItemReorder: EventName>; + onIonReorderStart: EventName>; + onIonReorderMove: EventName>; + onIonReorderEnd: EventName>; +}; + +export const IonReorderGroup: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-reorder-group', + elementClass: IonReorderGroupElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonItemReorder: 'ionItemReorder', + onIonReorderStart: 'ionReorderStart', + onIonReorderMove: 'ionReorderMove', + onIonReorderEnd: 'ionReorderEnd', + } as IonReorderGroupEvents, + defineCustomElement: defineIonReorderGroup, + }); + +export type IonRippleEffectEvents = NonNullable; + +export const IonRippleEffect: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-ripple-effect', + elementClass: IonRippleEffectElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonRippleEffectEvents, + defineCustomElement: defineIonRippleEffect, + }); + +export type IonRowEvents = NonNullable; + +export const IonRow: StencilReactComponent = /*@__PURE__*/ createComponent< + IonRowElement, + IonRowEvents +>({ + tagName: 'ion-row', + elementClass: IonRowElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonRowEvents, + defineCustomElement: defineIonRow, +}); + +export type IonSearchbarEvents = { + onIonInput: EventName>; + onIonChange: EventName>; + onIonCancel: EventName>; + onIonClear: EventName>; + onIonBlur: EventName>; + onIonFocus: EventName>; +}; + +export const IonSearchbar: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-searchbar', + elementClass: IonSearchbarElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonInput: 'ionInput', + onIonChange: 'ionChange', + onIonCancel: 'ionCancel', + onIonClear: 'ionClear', + onIonBlur: 'ionBlur', + onIonFocus: 'ionFocus', + } as IonSearchbarEvents, + defineCustomElement: defineIonSearchbar, + }); + +export type IonSegmentEvents = { onIonChange: EventName> }; + +export const IonSegment: StencilReactComponent = /*@__PURE__*/ createComponent< + IonSegmentElement, + IonSegmentEvents +>({ + tagName: 'ion-segment', + elementClass: IonSegmentElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { onIonChange: 'ionChange' } as IonSegmentEvents, + defineCustomElement: defineIonSegment, +}); + +export type IonSegmentButtonEvents = NonNullable; + +export const IonSegmentButton: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-segment-button', + elementClass: IonSegmentButtonElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonSegmentButtonEvents, + defineCustomElement: defineIonSegmentButton, + }); + +export type IonSegmentContentEvents = NonNullable; + +export const IonSegmentContent: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-segment-content', + elementClass: IonSegmentContentElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonSegmentContentEvents, + defineCustomElement: defineIonSegmentContent, + }); + +export type IonSegmentViewEvents = { + onIonSegmentViewScroll: EventName>; +}; + +export const IonSegmentView: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-segment-view', + elementClass: IonSegmentViewElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { onIonSegmentViewScroll: 'ionSegmentViewScroll' } as IonSegmentViewEvents, + defineCustomElement: defineIonSegmentView, + }); + +export type IonSelectEvents = { + onIonChange: EventName>; + onIonCancel: EventName>; + onIonDismiss: EventName>; + onIonFocus: EventName>; + onIonBlur: EventName>; +}; + +export const IonSelect: StencilReactComponent = /*@__PURE__*/ createComponent< + IonSelectElement, + IonSelectEvents +>({ + tagName: 'ion-select', + elementClass: IonSelectElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonChange: 'ionChange', + onIonCancel: 'ionCancel', + onIonDismiss: 'ionDismiss', + onIonFocus: 'ionFocus', + onIonBlur: 'ionBlur', + } as IonSelectEvents, + defineCustomElement: defineIonSelect, +}); + +export type IonSelectModalEvents = NonNullable; + +export const IonSelectModal: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-select-modal', + elementClass: IonSelectModalElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonSelectModalEvents, + defineCustomElement: defineIonSelectModal, + }); + +export type IonSelectOptionEvents = NonNullable; + +export const IonSelectOption: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-select-option', + elementClass: IonSelectOptionElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonSelectOptionEvents, + defineCustomElement: defineIonSelectOption, + }); + +export type IonSkeletonTextEvents = NonNullable; + +export const IonSkeletonText: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-skeleton-text', + elementClass: IonSkeletonTextElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonSkeletonTextEvents, + defineCustomElement: defineIonSkeletonText, + }); + +export type IonSpinnerEvents = NonNullable; + +export const IonSpinner: StencilReactComponent = /*@__PURE__*/ createComponent< + IonSpinnerElement, + IonSpinnerEvents +>({ + tagName: 'ion-spinner', + elementClass: IonSpinnerElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonSpinnerEvents, + defineCustomElement: defineIonSpinner, +}); + +export type IonSplitPaneEvents = { onIonSplitPaneVisible: EventName> }; + +export const IonSplitPane: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-split-pane', + elementClass: IonSplitPaneElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { onIonSplitPaneVisible: 'ionSplitPaneVisible' } as IonSplitPaneEvents, + defineCustomElement: defineIonSplitPane, + }); + +export type IonTabEvents = NonNullable; + +export const IonTab: StencilReactComponent = /*@__PURE__*/ createComponent< + IonTabElement, + IonTabEvents +>({ + tagName: 'ion-tab', + elementClass: IonTabElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonTabEvents, + defineCustomElement: defineIonTab, +}); + +export type IonTextEvents = NonNullable; + +export const IonText: StencilReactComponent = /*@__PURE__*/ createComponent< + IonTextElement, + IonTextEvents +>({ + tagName: 'ion-text', + elementClass: IonTextElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonTextEvents, + defineCustomElement: defineIonText, +}); + +export type IonTextareaEvents = { + onIonChange: EventName>; + onIonInput: EventName>; + onIonBlur: EventName>; + onIonFocus: EventName>; +}; + +export const IonTextarea: StencilReactComponent = /*@__PURE__*/ createComponent< + IonTextareaElement, + IonTextareaEvents +>({ + tagName: 'ion-textarea', + elementClass: IonTextareaElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonChange: 'ionChange', + onIonInput: 'ionInput', + onIonBlur: 'ionBlur', + onIonFocus: 'ionFocus', + } as IonTextareaEvents, + defineCustomElement: defineIonTextarea, +}); + +export type IonThumbnailEvents = NonNullable; + +export const IonThumbnail: StencilReactComponent = + /*@__PURE__*/ createComponent({ + tagName: 'ion-thumbnail', + elementClass: IonThumbnailElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonThumbnailEvents, + defineCustomElement: defineIonThumbnail, + }); + +export type IonTitleEvents = NonNullable; + +export const IonTitle: StencilReactComponent = /*@__PURE__*/ createComponent< + IonTitleElement, + IonTitleEvents +>({ + tagName: 'ion-title', + elementClass: IonTitleElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonTitleEvents, + defineCustomElement: defineIonTitle, +}); + +export type IonToggleEvents = { + onIonChange: EventName>; + onIonFocus: EventName>; + onIonBlur: EventName>; +}; + +export const IonToggle: StencilReactComponent = /*@__PURE__*/ createComponent< + IonToggleElement, + IonToggleEvents +>({ + tagName: 'ion-toggle', + elementClass: IonToggleElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: { + onIonChange: 'ionChange', + onIonFocus: 'ionFocus', + onIonBlur: 'ionBlur', + } as IonToggleEvents, + defineCustomElement: defineIonToggle, +}); + +export type IonToolbarEvents = NonNullable; + +export const IonToolbar: StencilReactComponent = /*@__PURE__*/ createComponent< + IonToolbarElement, + IonToolbarEvents +>({ + tagName: 'ion-toolbar', + elementClass: IonToolbarElement, + // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project. + react: React, + events: {} as IonToolbarEvents, + defineCustomElement: defineIonToolbar, +}); diff --git a/packages/react/src/components/index.ts b/packages/react/src/components/index.ts index 12ce0320d76..2c4ea3d5704 100644 --- a/packages/react/src/components/index.ts +++ b/packages/react/src/components/index.ts @@ -99,7 +99,7 @@ export { TransitionOptions, } from '@ionic/core/components'; -export * from './proxies'; +export * from './components'; export * from './routing-proxies'; // createControllerComponent diff --git a/packages/react/src/components/navigation/IonTabs.tsx b/packages/react/src/components/navigation/IonTabs.tsx index b8d5a25566f..135e51fec08 100644 --- a/packages/react/src/components/navigation/IonTabs.tsx +++ b/packages/react/src/components/navigation/IonTabs.tsx @@ -6,8 +6,8 @@ import { NavContext } from '../../contexts/NavContext'; import PageManager from '../../routing/PageManager'; import { HTMLElementSSR } from '../../utils/HTMLElementSSR'; import { IonRouterOutlet } from '../IonRouterOutlet'; +import { IonTab } from '../components'; import { IonTabsInner } from '../inner-proxies'; -import { IonTab } from '../proxies'; import type { IonTabsContextState } from './IonTabsContext'; import { IonTabsContext } from './IonTabsContext'; diff --git a/packages/react/src/components/proxies.ts b/packages/react/src/components/proxies.ts deleted file mode 100644 index 7fa7626bbc4..00000000000 --- a/packages/react/src/components/proxies.ts +++ /dev/null @@ -1,152 +0,0 @@ -/* eslint-disable */ -/* tslint:disable */ -/* auto-generated react proxies */ -import { createReactComponent } from './react-component-lib'; - -import type { JSX } from '@ionic/core/components'; - -import { defineCustomElement as defineIonAccordion } from '@ionic/core/components/ion-accordion.js'; -import { defineCustomElement as defineIonAccordionGroup } from '@ionic/core/components/ion-accordion-group.js'; -import { defineCustomElement as defineIonAvatar } from '@ionic/core/components/ion-avatar.js'; -import { defineCustomElement as defineIonBackdrop } from '@ionic/core/components/ion-backdrop.js'; -import { defineCustomElement as defineIonBadge } from '@ionic/core/components/ion-badge.js'; -import { defineCustomElement as defineIonBreadcrumbs } from '@ionic/core/components/ion-breadcrumbs.js'; -import { defineCustomElement as defineIonButtons } from '@ionic/core/components/ion-buttons.js'; -import { defineCustomElement as defineIonCardContent } from '@ionic/core/components/ion-card-content.js'; -import { defineCustomElement as defineIonCardHeader } from '@ionic/core/components/ion-card-header.js'; -import { defineCustomElement as defineIonCardSubtitle } from '@ionic/core/components/ion-card-subtitle.js'; -import { defineCustomElement as defineIonCardTitle } from '@ionic/core/components/ion-card-title.js'; -import { defineCustomElement as defineIonCheckbox } from '@ionic/core/components/ion-checkbox.js'; -import { defineCustomElement as defineIonChip } from '@ionic/core/components/ion-chip.js'; -import { defineCustomElement as defineIonCol } from '@ionic/core/components/ion-col.js'; -import { defineCustomElement as defineIonContent } from '@ionic/core/components/ion-content.js'; -import { defineCustomElement as defineIonDatetime } from '@ionic/core/components/ion-datetime.js'; -import { defineCustomElement as defineIonDatetimeButton } from '@ionic/core/components/ion-datetime-button.js'; -import { defineCustomElement as defineIonFab } from '@ionic/core/components/ion-fab.js'; -import { defineCustomElement as defineIonFabList } from '@ionic/core/components/ion-fab-list.js'; -import { defineCustomElement as defineIonFooter } from '@ionic/core/components/ion-footer.js'; -import { defineCustomElement as defineIonGrid } from '@ionic/core/components/ion-grid.js'; -import { defineCustomElement as defineIonHeader } from '@ionic/core/components/ion-header.js'; -import { defineCustomElement as defineIonImg } from '@ionic/core/components/ion-img.js'; -import { defineCustomElement as defineIonInfiniteScroll } from '@ionic/core/components/ion-infinite-scroll.js'; -import { defineCustomElement as defineIonInfiniteScrollContent } from '@ionic/core/components/ion-infinite-scroll-content.js'; -import { defineCustomElement as defineIonInput } from '@ionic/core/components/ion-input.js'; -import { defineCustomElement as defineIonInputOtp } from '@ionic/core/components/ion-input-otp.js'; -import { defineCustomElement as defineIonInputPasswordToggle } from '@ionic/core/components/ion-input-password-toggle.js'; -import { defineCustomElement as defineIonItemDivider } from '@ionic/core/components/ion-item-divider.js'; -import { defineCustomElement as defineIonItemGroup } from '@ionic/core/components/ion-item-group.js'; -import { defineCustomElement as defineIonItemOptions } from '@ionic/core/components/ion-item-options.js'; -import { defineCustomElement as defineIonItemSliding } from '@ionic/core/components/ion-item-sliding.js'; -import { defineCustomElement as defineIonLabel } from '@ionic/core/components/ion-label.js'; -import { defineCustomElement as defineIonList } from '@ionic/core/components/ion-list.js'; -import { defineCustomElement as defineIonListHeader } from '@ionic/core/components/ion-list-header.js'; -import { defineCustomElement as defineIonMenu } from '@ionic/core/components/ion-menu.js'; -import { defineCustomElement as defineIonMenuButton } from '@ionic/core/components/ion-menu-button.js'; -import { defineCustomElement as defineIonMenuToggle } from '@ionic/core/components/ion-menu-toggle.js'; -import { defineCustomElement as defineIonNav } from '@ionic/core/components/ion-nav.js'; -import { defineCustomElement as defineIonNavLink } from '@ionic/core/components/ion-nav-link.js'; -import { defineCustomElement as defineIonNote } from '@ionic/core/components/ion-note.js'; -import { defineCustomElement as defineIonPicker } from '@ionic/core/components/ion-picker.js'; -import { defineCustomElement as defineIonPickerColumn } from '@ionic/core/components/ion-picker-column.js'; -import { defineCustomElement as defineIonPickerColumnOption } from '@ionic/core/components/ion-picker-column-option.js'; -import { defineCustomElement as defineIonProgressBar } from '@ionic/core/components/ion-progress-bar.js'; -import { defineCustomElement as defineIonRadio } from '@ionic/core/components/ion-radio.js'; -import { defineCustomElement as defineIonRadioGroup } from '@ionic/core/components/ion-radio-group.js'; -import { defineCustomElement as defineIonRange } from '@ionic/core/components/ion-range.js'; -import { defineCustomElement as defineIonRefresher } from '@ionic/core/components/ion-refresher.js'; -import { defineCustomElement as defineIonRefresherContent } from '@ionic/core/components/ion-refresher-content.js'; -import { defineCustomElement as defineIonReorder } from '@ionic/core/components/ion-reorder.js'; -import { defineCustomElement as defineIonReorderGroup } from '@ionic/core/components/ion-reorder-group.js'; -import { defineCustomElement as defineIonRippleEffect } from '@ionic/core/components/ion-ripple-effect.js'; -import { defineCustomElement as defineIonRow } from '@ionic/core/components/ion-row.js'; -import { defineCustomElement as defineIonSearchbar } from '@ionic/core/components/ion-searchbar.js'; -import { defineCustomElement as defineIonSegment } from '@ionic/core/components/ion-segment.js'; -import { defineCustomElement as defineIonSegmentButton } from '@ionic/core/components/ion-segment-button.js'; -import { defineCustomElement as defineIonSegmentContent } from '@ionic/core/components/ion-segment-content.js'; -import { defineCustomElement as defineIonSegmentView } from '@ionic/core/components/ion-segment-view.js'; -import { defineCustomElement as defineIonSelect } from '@ionic/core/components/ion-select.js'; -import { defineCustomElement as defineIonSelectModal } from '@ionic/core/components/ion-select-modal.js'; -import { defineCustomElement as defineIonSelectOption } from '@ionic/core/components/ion-select-option.js'; -import { defineCustomElement as defineIonSkeletonText } from '@ionic/core/components/ion-skeleton-text.js'; -import { defineCustomElement as defineIonSpinner } from '@ionic/core/components/ion-spinner.js'; -import { defineCustomElement as defineIonSplitPane } from '@ionic/core/components/ion-split-pane.js'; -import { defineCustomElement as defineIonTab } from '@ionic/core/components/ion-tab.js'; -import { defineCustomElement as defineIonText } from '@ionic/core/components/ion-text.js'; -import { defineCustomElement as defineIonTextarea } from '@ionic/core/components/ion-textarea.js'; -import { defineCustomElement as defineIonThumbnail } from '@ionic/core/components/ion-thumbnail.js'; -import { defineCustomElement as defineIonTitle } from '@ionic/core/components/ion-title.js'; -import { defineCustomElement as defineIonToggle } from '@ionic/core/components/ion-toggle.js'; -import { defineCustomElement as defineIonToolbar } from '@ionic/core/components/ion-toolbar.js'; - -export const IonAccordion = /*@__PURE__*/createReactComponent('ion-accordion', undefined, undefined, defineIonAccordion); -export const IonAccordionGroup = /*@__PURE__*/createReactComponent('ion-accordion-group', undefined, undefined, defineIonAccordionGroup); -export const IonAvatar = /*@__PURE__*/createReactComponent('ion-avatar', undefined, undefined, defineIonAvatar); -export const IonBackdrop = /*@__PURE__*/createReactComponent('ion-backdrop', undefined, undefined, defineIonBackdrop); -export const IonBadge = /*@__PURE__*/createReactComponent('ion-badge', undefined, undefined, defineIonBadge); -export const IonBreadcrumbs = /*@__PURE__*/createReactComponent('ion-breadcrumbs', undefined, undefined, defineIonBreadcrumbs); -export const IonButtons = /*@__PURE__*/createReactComponent('ion-buttons', undefined, undefined, defineIonButtons); -export const IonCardContent = /*@__PURE__*/createReactComponent('ion-card-content', undefined, undefined, defineIonCardContent); -export const IonCardHeader = /*@__PURE__*/createReactComponent('ion-card-header', undefined, undefined, defineIonCardHeader); -export const IonCardSubtitle = /*@__PURE__*/createReactComponent('ion-card-subtitle', undefined, undefined, defineIonCardSubtitle); -export const IonCardTitle = /*@__PURE__*/createReactComponent('ion-card-title', undefined, undefined, defineIonCardTitle); -export const IonCheckbox = /*@__PURE__*/createReactComponent('ion-checkbox', undefined, undefined, defineIonCheckbox); -export const IonChip = /*@__PURE__*/createReactComponent('ion-chip', undefined, undefined, defineIonChip); -export const IonCol = /*@__PURE__*/createReactComponent('ion-col', undefined, undefined, defineIonCol); -export const IonContent = /*@__PURE__*/createReactComponent('ion-content', undefined, undefined, defineIonContent); -export const IonDatetime = /*@__PURE__*/createReactComponent('ion-datetime', undefined, undefined, defineIonDatetime); -export const IonDatetimeButton = /*@__PURE__*/createReactComponent('ion-datetime-button', undefined, undefined, defineIonDatetimeButton); -export const IonFab = /*@__PURE__*/createReactComponent('ion-fab', undefined, undefined, defineIonFab); -export const IonFabList = /*@__PURE__*/createReactComponent('ion-fab-list', undefined, undefined, defineIonFabList); -export const IonFooter = /*@__PURE__*/createReactComponent('ion-footer', undefined, undefined, defineIonFooter); -export const IonGrid = /*@__PURE__*/createReactComponent('ion-grid', undefined, undefined, defineIonGrid); -export const IonHeader = /*@__PURE__*/createReactComponent('ion-header', undefined, undefined, defineIonHeader); -export const IonImg = /*@__PURE__*/createReactComponent('ion-img', undefined, undefined, defineIonImg); -export const IonInfiniteScroll = /*@__PURE__*/createReactComponent('ion-infinite-scroll', undefined, undefined, defineIonInfiniteScroll); -export const IonInfiniteScrollContent = /*@__PURE__*/createReactComponent('ion-infinite-scroll-content', undefined, undefined, defineIonInfiniteScrollContent); -export const IonInput = /*@__PURE__*/createReactComponent('ion-input', undefined, undefined, defineIonInput); -export const IonInputOtp = /*@__PURE__*/createReactComponent('ion-input-otp', undefined, undefined, defineIonInputOtp); -export const IonInputPasswordToggle = /*@__PURE__*/createReactComponent('ion-input-password-toggle', undefined, undefined, defineIonInputPasswordToggle); -export const IonItemDivider = /*@__PURE__*/createReactComponent('ion-item-divider', undefined, undefined, defineIonItemDivider); -export const IonItemGroup = /*@__PURE__*/createReactComponent('ion-item-group', undefined, undefined, defineIonItemGroup); -export const IonItemOptions = /*@__PURE__*/createReactComponent('ion-item-options', undefined, undefined, defineIonItemOptions); -export const IonItemSliding = /*@__PURE__*/createReactComponent('ion-item-sliding', undefined, undefined, defineIonItemSliding); -export const IonLabel = /*@__PURE__*/createReactComponent('ion-label', undefined, undefined, defineIonLabel); -export const IonList = /*@__PURE__*/createReactComponent('ion-list', undefined, undefined, defineIonList); -export const IonListHeader = /*@__PURE__*/createReactComponent('ion-list-header', undefined, undefined, defineIonListHeader); -export const IonMenu = /*@__PURE__*/createReactComponent('ion-menu', undefined, undefined, defineIonMenu); -export const IonMenuButton = /*@__PURE__*/createReactComponent('ion-menu-button', undefined, undefined, defineIonMenuButton); -export const IonMenuToggle = /*@__PURE__*/createReactComponent('ion-menu-toggle', undefined, undefined, defineIonMenuToggle); -export const IonNav = /*@__PURE__*/createReactComponent('ion-nav', undefined, undefined, defineIonNav); -export const IonNavLink = /*@__PURE__*/createReactComponent('ion-nav-link', undefined, undefined, defineIonNavLink); -export const IonNote = /*@__PURE__*/createReactComponent('ion-note', undefined, undefined, defineIonNote); -export const IonPicker = /*@__PURE__*/createReactComponent('ion-picker', undefined, undefined, defineIonPicker); -export const IonPickerColumn = /*@__PURE__*/createReactComponent('ion-picker-column', undefined, undefined, defineIonPickerColumn); -export const IonPickerColumnOption = /*@__PURE__*/createReactComponent('ion-picker-column-option', undefined, undefined, defineIonPickerColumnOption); -export const IonProgressBar = /*@__PURE__*/createReactComponent('ion-progress-bar', undefined, undefined, defineIonProgressBar); -export const IonRadio = /*@__PURE__*/createReactComponent('ion-radio', undefined, undefined, defineIonRadio); -export const IonRadioGroup = /*@__PURE__*/createReactComponent('ion-radio-group', undefined, undefined, defineIonRadioGroup); -export const IonRange = /*@__PURE__*/createReactComponent('ion-range', undefined, undefined, defineIonRange); -export const IonRefresher = /*@__PURE__*/createReactComponent('ion-refresher', undefined, undefined, defineIonRefresher); -export const IonRefresherContent = /*@__PURE__*/createReactComponent('ion-refresher-content', undefined, undefined, defineIonRefresherContent); -export const IonReorder = /*@__PURE__*/createReactComponent('ion-reorder', undefined, undefined, defineIonReorder); -export const IonReorderGroup = /*@__PURE__*/createReactComponent('ion-reorder-group', undefined, undefined, defineIonReorderGroup); -export const IonRippleEffect = /*@__PURE__*/createReactComponent('ion-ripple-effect', undefined, undefined, defineIonRippleEffect); -export const IonRow = /*@__PURE__*/createReactComponent('ion-row', undefined, undefined, defineIonRow); -export const IonSearchbar = /*@__PURE__*/createReactComponent('ion-searchbar', undefined, undefined, defineIonSearchbar); -export const IonSegment = /*@__PURE__*/createReactComponent('ion-segment', undefined, undefined, defineIonSegment); -export const IonSegmentButton = /*@__PURE__*/createReactComponent('ion-segment-button', undefined, undefined, defineIonSegmentButton); -export const IonSegmentContent = /*@__PURE__*/createReactComponent('ion-segment-content', undefined, undefined, defineIonSegmentContent); -export const IonSegmentView = /*@__PURE__*/createReactComponent('ion-segment-view', undefined, undefined, defineIonSegmentView); -export const IonSelect = /*@__PURE__*/createReactComponent('ion-select', undefined, undefined, defineIonSelect); -export const IonSelectModal = /*@__PURE__*/createReactComponent('ion-select-modal', undefined, undefined, defineIonSelectModal); -export const IonSelectOption = /*@__PURE__*/createReactComponent('ion-select-option', undefined, undefined, defineIonSelectOption); -export const IonSkeletonText = /*@__PURE__*/createReactComponent('ion-skeleton-text', undefined, undefined, defineIonSkeletonText); -export const IonSpinner = /*@__PURE__*/createReactComponent('ion-spinner', undefined, undefined, defineIonSpinner); -export const IonSplitPane = /*@__PURE__*/createReactComponent('ion-split-pane', undefined, undefined, defineIonSplitPane); -export const IonTab = /*@__PURE__*/createReactComponent('ion-tab', undefined, undefined, defineIonTab); -export const IonText = /*@__PURE__*/createReactComponent('ion-text', undefined, undefined, defineIonText); -export const IonTextarea = /*@__PURE__*/createReactComponent('ion-textarea', undefined, undefined, defineIonTextarea); -export const IonThumbnail = /*@__PURE__*/createReactComponent('ion-thumbnail', undefined, undefined, defineIonThumbnail); -export const IonTitle = /*@__PURE__*/createReactComponent('ion-title', undefined, undefined, defineIonTitle); -export const IonToggle = /*@__PURE__*/createReactComponent('ion-toggle', undefined, undefined, defineIonToggle); -export const IonToolbar = /*@__PURE__*/createReactComponent('ion-toolbar', undefined, undefined, defineIonToolbar); From 67d7ac4f713de5fd3539b01280f0d56bc91dc83d Mon Sep 17 00:00:00 2001 From: Jacob Bell <228905018+OS-jacobbell@users.noreply.github.com> Date: Fri, 27 Mar 2026 08:33:59 -0600 Subject: [PATCH 3/5] chore(deps): fix package version ranges --- core/package-lock.json | 95 ++++++++++++++++++++------------ core/package.json | 4 +- packages/react/package-lock.json | 13 +++-- packages/react/package.json | 12 ++-- 4 files changed, 75 insertions(+), 49 deletions(-) diff --git a/core/package-lock.json b/core/package-lock.json index a74c305f423..7cea4cfe297 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -9,7 +9,7 @@ "version": "8.8.0", "license": "MIT", "dependencies": { - "@stencil/core": "4.43.0", + "@stencil/core": "~4.43.3-dev.1774589685.074c620", "ionicons": "^8.0.13", "tslib": "^2.1.0" }, @@ -25,7 +25,7 @@ "@rollup/plugin-node-resolve": "^8.4.0", "@rollup/plugin-virtual": "^2.0.3", "@stencil/angular-output-target": "^0.10.0", - "@stencil/react-output-target": "~1.4.2", + "@stencil/react-output-target": "1.4.2", "@stencil/sass": "^3.0.9", "@stencil/vue-output-target": "0.10.8", "@types/jest": "^29.5.6", @@ -1674,7 +1674,9 @@ } }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.9", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.0.tgz", + "integrity": "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==", "cpu": [ "arm64" ], @@ -1685,9 +1687,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz", - "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.0.tgz", + "integrity": "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==", "cpu": [ "x64" ], @@ -1698,9 +1700,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz", - "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.0.tgz", + "integrity": "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==", "cpu": [ "arm64" ], @@ -1711,9 +1713,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz", - "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.0.tgz", + "integrity": "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==", "cpu": [ "arm64" ], @@ -1724,9 +1726,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz", - "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.0.tgz", + "integrity": "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==", "cpu": [ "x64" ], @@ -1737,9 +1739,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz", - "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.0.tgz", + "integrity": "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==", "cpu": [ "x64" ], @@ -1750,9 +1752,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz", - "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.0.tgz", + "integrity": "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==", "cpu": [ "arm64" ], @@ -1763,9 +1765,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz", - "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.0.tgz", + "integrity": "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==", "cpu": [ "x64" ], @@ -1805,9 +1807,9 @@ } }, "node_modules/@stencil/core": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.43.0.tgz", - "integrity": "sha512-6Uj2Z3lzLuufYAE7asZ6NLKgSwsB9uxl84Eh34PASnUjfj32GkrP4DtKK7fNeh1WFGGyffsTDka3gwtl+4reUg==", + "version": "4.43.3-dev.1774589685.074c620", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.43.3-dev.1774589685.074c620.tgz", + "integrity": "sha512-sFXMu+toQE6wgXJkoZDHufWpgoaenEJP2jNkQPbRSeEetbSmDw0H/yR9b1jAmUaTC3lyA0xvZuWDtXNuXJG6GQ==", "license": "MIT", "peer": true, "bin": { @@ -1818,14 +1820,14 @@ "npm": ">=7.10.0" }, "optionalDependencies": { - "@rollup/rollup-darwin-arm64": "4.34.9", - "@rollup/rollup-darwin-x64": "4.34.9", - "@rollup/rollup-linux-arm64-gnu": "4.34.9", - "@rollup/rollup-linux-arm64-musl": "4.34.9", - "@rollup/rollup-linux-x64-gnu": "4.34.9", - "@rollup/rollup-linux-x64-musl": "4.34.9", - "@rollup/rollup-win32-arm64-msvc": "4.34.9", - "@rollup/rollup-win32-x64-msvc": "4.34.9" + "@rollup/rollup-darwin-arm64": "4.44.0", + "@rollup/rollup-darwin-x64": "4.44.0", + "@rollup/rollup-linux-arm64-gnu": "4.44.0", + "@rollup/rollup-linux-arm64-musl": "4.44.0", + "@rollup/rollup-linux-x64-gnu": "4.44.0", + "@rollup/rollup-linux-x64-musl": "4.44.0", + "@rollup/rollup-win32-arm64-msvc": "4.44.0", + "@rollup/rollup-win32-x64-msvc": "4.44.0" } }, "node_modules/@stencil/react-output-target": { @@ -5565,6 +5567,29 @@ "@stencil/core": "^4.35.3" } }, + "node_modules/ionicons/node_modules/@stencil/core": { + "version": "4.43.3", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.43.3.tgz", + "integrity": "sha512-w41W6txhGULvvEfa5AEgwfNGAbK3YGowQYMTWuRvXSIbnkiyRDGLogsYSYtHDlz1JJe645JJIK9Lvh5uquFiSw==", + "license": "MIT", + "bin": { + "stencil": "bin/stencil" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.10.0" + }, + "optionalDependencies": { + "@rollup/rollup-darwin-arm64": "4.44.0", + "@rollup/rollup-darwin-x64": "4.44.0", + "@rollup/rollup-linux-arm64-gnu": "4.44.0", + "@rollup/rollup-linux-arm64-musl": "4.44.0", + "@rollup/rollup-linux-x64-gnu": "4.44.0", + "@rollup/rollup-linux-x64-musl": "4.44.0", + "@rollup/rollup-win32-arm64-msvc": "4.44.0", + "@rollup/rollup-win32-x64-msvc": "4.44.0" + } + }, "node_modules/is-alphabetical": { "version": "1.0.4", "dev": true, diff --git a/core/package.json b/core/package.json index ab60cb94fca..7aa9d48d03e 100644 --- a/core/package.json +++ b/core/package.json @@ -34,7 +34,7 @@ "loader/" ], "dependencies": { - "@stencil/core": "4.43.0", + "@stencil/core": "~4.43.3-dev.1774589685.074c620", "ionicons": "^8.0.13", "tslib": "^2.1.0" }, @@ -50,7 +50,7 @@ "@rollup/plugin-node-resolve": "^8.4.0", "@rollup/plugin-virtual": "^2.0.3", "@stencil/angular-output-target": "^0.10.0", - "@stencil/react-output-target": "~1.4.2", + "@stencil/react-output-target": "1.4.2", "@stencil/sass": "^3.0.9", "@stencil/vue-output-target": "0.10.8", "@types/jest": "^29.5.6", diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 18d01250f4f..47bac007107 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@ionic/core": "^8.8.0", - "@stencil/react-output-target": "~1.4.2", + "@stencil/react-output-target": "1.4.2", "ionicons": "^8.0.13", "tslib": "*" }, @@ -19,11 +19,11 @@ "@ionic/prettier-config": "^2.0.0", "@rollup/plugin-typescript": "^11.1.5", "@testing-library/jest-dom": "^5.11.6", - "@testing-library/react": "~13.4.0", + "@testing-library/react": "^13.4.0", "@types/jest": "^26.0.15", "@types/node": "^14.0.14", - "@types/react": "~18.3.28", - "@types/react-dom": "~18.3.7", + "@types/react": "^18.3.28", + "@types/react-dom": "^18.3.7", "@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/parser": "^5.48.2", "eslint": "^7.32.0", @@ -32,8 +32,8 @@ "jest-environment-jsdom": "^29.7.0", "np": "^6.4.0", "prettier": "^2.8.3", - "react": "~18.3.1", - "react-dom": "~18.3.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", "rimraf": "^3.0.2", "rollup": "^4.2.0", "ts-jest": "^29.1.3", @@ -1747,6 +1747,7 @@ "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.43.0.tgz", "integrity": "sha512-6Uj2Z3lzLuufYAE7asZ6NLKgSwsB9uxl84Eh34PASnUjfj32GkrP4DtKK7fNeh1WFGGyffsTDka3gwtl+4reUg==", "license": "MIT", + "peer": true, "bin": { "stencil": "bin/stencil" }, diff --git a/packages/react/package.json b/packages/react/package.json index a67d248f6c7..858042def34 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -41,7 +41,7 @@ ], "dependencies": { "@ionic/core": "^8.8.0", - "@stencil/react-output-target": "~1.4.2", + "@stencil/react-output-target": "1.4.2", "ionicons": "^8.0.13", "tslib": "*" }, @@ -54,11 +54,11 @@ "@ionic/prettier-config": "^2.0.0", "@rollup/plugin-typescript": "^11.1.5", "@testing-library/jest-dom": "^5.11.6", - "@testing-library/react": "~13.4.0", + "@testing-library/react": "^13.4.0", "@types/jest": "^26.0.15", "@types/node": "^14.0.14", - "@types/react": "~18.3.28", - "@types/react-dom": "~18.3.7", + "@types/react": "^18.3.28", + "@types/react-dom": "^18.3.7", "@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/parser": "^5.48.2", "eslint": "^7.32.0", @@ -67,8 +67,8 @@ "jest-environment-jsdom": "^29.7.0", "np": "^6.4.0", "prettier": "^2.8.3", - "react": "~18.3.1", - "react-dom": "~18.3.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", "rimraf": "^3.0.2", "rollup": "^4.2.0", "ts-jest": "^29.1.3", From 4ca2cb7cab13842264887c3fd8e89ad7d6dee1a7 Mon Sep 17 00:00:00 2001 From: Jacob Bell <228905018+OS-jacobbell@users.noreply.github.com> Date: Fri, 27 Mar 2026 08:42:25 -0600 Subject: [PATCH 4/5] chore(deps): save exact stencil version --- core/package-lock.json | 95 ++++++++++++++++-------------------------- core/package.json | 2 +- 2 files changed, 37 insertions(+), 60 deletions(-) diff --git a/core/package-lock.json b/core/package-lock.json index 7cea4cfe297..fd0ef5222ab 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -9,7 +9,7 @@ "version": "8.8.0", "license": "MIT", "dependencies": { - "@stencil/core": "~4.43.3-dev.1774589685.074c620", + "@stencil/core": "4.43.0", "ionicons": "^8.0.13", "tslib": "^2.1.0" }, @@ -1674,9 +1674,9 @@ } }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.0.tgz", - "integrity": "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz", + "integrity": "sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==", "cpu": [ "arm64" ], @@ -1687,9 +1687,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.0.tgz", - "integrity": "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz", + "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==", "cpu": [ "x64" ], @@ -1700,9 +1700,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.0.tgz", - "integrity": "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz", + "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==", "cpu": [ "arm64" ], @@ -1713,9 +1713,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.0.tgz", - "integrity": "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz", + "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==", "cpu": [ "arm64" ], @@ -1726,9 +1726,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.0.tgz", - "integrity": "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz", + "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==", "cpu": [ "x64" ], @@ -1739,9 +1739,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.0.tgz", - "integrity": "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz", + "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==", "cpu": [ "x64" ], @@ -1752,9 +1752,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.0.tgz", - "integrity": "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz", + "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==", "cpu": [ "arm64" ], @@ -1765,9 +1765,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.44.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.0.tgz", - "integrity": "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==", + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz", + "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==", "cpu": [ "x64" ], @@ -1807,9 +1807,9 @@ } }, "node_modules/@stencil/core": { - "version": "4.43.3-dev.1774589685.074c620", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.43.3-dev.1774589685.074c620.tgz", - "integrity": "sha512-sFXMu+toQE6wgXJkoZDHufWpgoaenEJP2jNkQPbRSeEetbSmDw0H/yR9b1jAmUaTC3lyA0xvZuWDtXNuXJG6GQ==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.43.0.tgz", + "integrity": "sha512-6Uj2Z3lzLuufYAE7asZ6NLKgSwsB9uxl84Eh34PASnUjfj32GkrP4DtKK7fNeh1WFGGyffsTDka3gwtl+4reUg==", "license": "MIT", "peer": true, "bin": { @@ -1820,14 +1820,14 @@ "npm": ">=7.10.0" }, "optionalDependencies": { - "@rollup/rollup-darwin-arm64": "4.44.0", - "@rollup/rollup-darwin-x64": "4.44.0", - "@rollup/rollup-linux-arm64-gnu": "4.44.0", - "@rollup/rollup-linux-arm64-musl": "4.44.0", - "@rollup/rollup-linux-x64-gnu": "4.44.0", - "@rollup/rollup-linux-x64-musl": "4.44.0", - "@rollup/rollup-win32-arm64-msvc": "4.44.0", - "@rollup/rollup-win32-x64-msvc": "4.44.0" + "@rollup/rollup-darwin-arm64": "4.34.9", + "@rollup/rollup-darwin-x64": "4.34.9", + "@rollup/rollup-linux-arm64-gnu": "4.34.9", + "@rollup/rollup-linux-arm64-musl": "4.34.9", + "@rollup/rollup-linux-x64-gnu": "4.34.9", + "@rollup/rollup-linux-x64-musl": "4.34.9", + "@rollup/rollup-win32-arm64-msvc": "4.34.9", + "@rollup/rollup-win32-x64-msvc": "4.34.9" } }, "node_modules/@stencil/react-output-target": { @@ -5567,29 +5567,6 @@ "@stencil/core": "^4.35.3" } }, - "node_modules/ionicons/node_modules/@stencil/core": { - "version": "4.43.3", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.43.3.tgz", - "integrity": "sha512-w41W6txhGULvvEfa5AEgwfNGAbK3YGowQYMTWuRvXSIbnkiyRDGLogsYSYtHDlz1JJe645JJIK9Lvh5uquFiSw==", - "license": "MIT", - "bin": { - "stencil": "bin/stencil" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.10.0" - }, - "optionalDependencies": { - "@rollup/rollup-darwin-arm64": "4.44.0", - "@rollup/rollup-darwin-x64": "4.44.0", - "@rollup/rollup-linux-arm64-gnu": "4.44.0", - "@rollup/rollup-linux-arm64-musl": "4.44.0", - "@rollup/rollup-linux-x64-gnu": "4.44.0", - "@rollup/rollup-linux-x64-musl": "4.44.0", - "@rollup/rollup-win32-arm64-msvc": "4.44.0", - "@rollup/rollup-win32-x64-msvc": "4.44.0" - } - }, "node_modules/is-alphabetical": { "version": "1.0.4", "dev": true, diff --git a/core/package.json b/core/package.json index 7aa9d48d03e..d32fa8d0b39 100644 --- a/core/package.json +++ b/core/package.json @@ -34,7 +34,7 @@ "loader/" ], "dependencies": { - "@stencil/core": "~4.43.3-dev.1774589685.074c620", + "@stencil/core": "4.43.0", "ionicons": "^8.0.13", "tslib": "^2.1.0" }, From 228163efc6770889c59c2c8ac160fcf2da280d4e Mon Sep 17 00:00:00 2001 From: Jacob Bell <228905018+OS-jacobbell@users.noreply.github.com> Date: Fri, 3 Apr 2026 14:24:08 -0600 Subject: [PATCH 5/5] fix(ion-radio): continue to render radio value prop in html by enabling reflection --- core/api.txt | 2 +- core/src/components/radio/radio.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/api.txt b/core/api.txt index d9e586ffd33..6a61b5a591f 100644 --- a/core/api.txt +++ b/core/api.txt @@ -1421,7 +1421,7 @@ ion-radio,prop,justify,"end" | "space-between" | "start" | undefined,undefined,f ion-radio,prop,labelPlacement,"end" | "fixed" | "stacked" | "start",'start',false,false ion-radio,prop,mode,"ios" | "md",undefined,false,false ion-radio,prop,name,string,this.inputId,false,false -ion-radio,prop,value,any,undefined,false,false +ion-radio,prop,value,any,undefined,false,true ion-radio,event,ionBlur,void,true ion-radio,event,ionFocus,void,true ion-radio,css-prop,--border-radius,ios diff --git a/core/src/components/radio/radio.tsx b/core/src/components/radio/radio.tsx index bb343c8c858..9268c66b247 100644 --- a/core/src/components/radio/radio.tsx +++ b/core/src/components/radio/radio.tsx @@ -61,7 +61,7 @@ export class Radio implements ComponentInterface { /** * the value of the radio. */ - @Prop() value?: any | null; + @Prop({ reflect: true }) value?: any | null; @Watch('value') valueChanged() {