Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
995f4c0
feat(angular): allow per-component standalone import paths for better…
OS-jacobbell Jul 28, 2026
539e40b
enable source maps
OS-jacobbell Jul 29, 2026
fe5aaa8
clean up package.json
OS-jacobbell Jul 29, 2026
26201b7
update package-lock.json
OS-jacobbell Jul 29, 2026
58bd658
update clean script
OS-jacobbell Jul 29, 2026
5f68379
update eslint config
OS-jacobbell Jul 29, 2026
2d6e853
update prettierignore
OS-jacobbell Jul 29, 2026
b5264c9
update ci build core action
OS-jacobbell Jul 29, 2026
af46f51
update build angular ci action
OS-jacobbell Jul 29, 2026
75bc9f7
enable ngc compatibility mode
OS-jacobbell Jul 29, 2026
dbdd22e
explicitly export components
OS-jacobbell Jul 30, 2026
f41b13b
update release workflow
OS-jacobbell Jul 31, 2026
d0256fd
apply feedback
OS-jacobbell Aug 5, 2026
7dafe0f
apply suggestions to build-schematics.js
OS-jacobbell Aug 6, 2026
3de3261
apply suggestions to clean.js
OS-jacobbell Aug 6, 2026
3d91f91
add options back to tsconfig.json
OS-jacobbell Aug 6, 2026
c50afdf
remove outdated workaround for ngpackagr
OS-jacobbell Aug 6, 2026
7f4b40d
Merge branch 'major-9.0' into FW-6470
OS-jacobbell Aug 6, 2026
fd94742
extend packages/angular/tsconfig.json from core/tsconfig.base.json
OS-jacobbell Aug 6, 2026
279dc45
lint
OS-jacobbell Aug 10, 2026
49e9730
apply feedback
OS-jacobbell Aug 12, 2026
cabd257
update `npm pack` paths
OS-jacobbell Aug 13, 2026
ee72baf
update component-guide
OS-jacobbell Aug 13, 2026
d61e2fe
remove tsc npm script
OS-jacobbell Aug 13, 2026
34822f3
apply feedback
OS-jacobbell Aug 14, 2026
3153a47
validate that all simple exports exist
OS-jacobbell Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/actions/build-angular/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,4 @@ runs:
with:
name: ionic-angular
output: ./packages/angular/AngularBuild.zip
paths: ./packages/angular/dist
paths: ./packages/angular/dist ./packages/angular/css
2 changes: 1 addition & 1 deletion .github/workflows/actions/build-core/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,4 @@ runs:
output: core/CoreBuild.zip
# Include generated proxy files from Stencil output targets so
# framework builds can detect when they need to be updated
paths: core/dist core/components core/css core/hydrate core/loader core/src/components.d.ts core/api.txt packages/angular/src/directives/proxies.ts packages/angular/src/directives/proxies-list.ts packages/angular/standalone/src/directives/proxies.ts packages/vue/src/proxies.ts packages/react/src/components/proxies.ts packages/react/src/components/inner-proxies.ts packages/react/src/components/routing-proxies.ts
paths: core/dist core/components core/css core/hydrate core/loader core/src/components.d.ts core/api.txt packages/angular/src/lazy/directives/proxies.ts packages/angular/src/lazy/directives/proxies-list.ts packages/angular/src/standalone/directives packages/vue/src/proxies.ts packages/react/src/components/proxies.ts packages/react/src/components/inner-proxies.ts packages/react/src/components/routing-proxies.ts
3 changes: 1 addition & 2 deletions .github/workflows/release-ionic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,13 +81,12 @@ jobs:
version: ${{ inputs.version }}
preid: ${{ inputs.preid }}
working-directory: 'packages/angular'
Comment thread
OS-jacobbell marked this conversation as resolved.
folder: './dist'
- name: Cache Built @ionic/angular
uses: ./.github/workflows/actions/upload-archive
with:
name: ionic-angular
output: packages/angular/AngularBuild.zip
paths: packages/angular/dist
paths: packages/angular/dist packages/angular/css

release-react:
needs: [release-core]
Expand Down
8 changes: 5 additions & 3 deletions core/stencil.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ const getAngularOutputTargets = () => {
return [
angularOutputTarget({
componentCorePackage,
directivesProxyFile: '../packages/angular/lazy/src/directives/proxies.ts',
directivesArrayFile: '../packages/angular/lazy/src/directives/proxies-list.ts',
directivesProxyFile: '../packages/angular/src/lazy/directives/proxies.ts',
directivesArrayFile: '../packages/angular/src/lazy/directives/proxies-list.ts',
excludeComponents,
outputType: 'component',
}),
angularOutputTarget({
componentCorePackage,
directivesProxyFile: '../packages/angular/standalone/src/directives/proxies.ts',
directivesProxyFile: '../packages/angular/src/standalone/directives/proxies.ts',
Comment thread
ShaneK marked this conversation as resolved.
excludeComponents: [
...excludeComponents,
/**
Expand All @@ -64,6 +64,8 @@ const getAngularOutputTargets = () => {

],
outputType: 'standalone',
// Emit each component in a separate file rather than putting them all in one large file.
esModules: true,
Comment thread
OS-jacobbell marked this conversation as resolved.
})
];
}
Expand Down
12 changes: 6 additions & 6 deletions docs/component-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -853,21 +853,21 @@ registerOnChange(fn: (_: number | null) => void): void {

#### Standalone Directive

For standalone components, create a directive in the [standalone package](/packages/angular/standalone/src/directives). Look at the implementation of the most similar existing component as a reference:
For standalone components, create a directive in the [standalone package](/packages/angular/src/standalone/directives). Look at the implementation of the most similar existing component as a reference:

- For text/numeric inputs: See [ion-input](/packages/angular/standalone/src/directives/input.ts) or [ion-input-otp](/packages/angular/standalone/src/directives/input-otp.ts)
- For boolean inputs: See [ion-checkbox](/packages/angular/standalone/src/directives/checkbox.ts) or [ion-toggle](/packages/angular/standalone/src/directives/toggle.ts)
- For select-like inputs: See [ion-select](/packages/angular/standalone/src/directives/select.ts) or [ion-radio-group](/packages/angular/standalone/src/directives/radio-group.ts)
- For text/numeric inputs: See [ion-input](/packages/angular/src/standalone/directives/input.ts) or [ion-input-otp](/packages/angular/src/standalone/directives/input-otp.ts)
- For boolean inputs: See [ion-checkbox](/packages/angular/src/standalone/directives/checkbox.ts) or [ion-toggle](/packages/angular/src/standalone/directives/toggle.ts)
- For select-like inputs: See [ion-select](/packages/angular/src/standalone/directives/select.ts) or [ion-radio-group](/packages/angular/src/standalone/directives/radio-group.ts)

After creating the directive, you need to export it in two places:

1. First, add your component to the directives export group in [`packages/angular/standalone/src/directives/index.ts`](/packages/angular/standalone/src/directives/index.ts):
1. First, add your component to the directives export group in [`packages/angular/src/standalone/directives/index.ts`](/packages/angular/src/standalone/directives/index.ts):

```typescript
export { IonNewComponent } from './new-component';
```

2. Then, add it to the main standalone package's index file in [`packages/angular/standalone/src/index.ts`](/packages/angular/standalone/src/index.ts):
2. Then, add it to the main standalone package's index file in [`packages/angular/src/standalone/index.ts`](/packages/angular/src/standalone/index.ts):

```typescript
export {
Expand Down
3 changes: 2 additions & 1 deletion packages/angular/.prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ dist
scripts
test
proxies.ts
lazy/src/directives/proxies-list.ts
src/lazy/directives/proxies-list.ts
src/standalone/directives/ion-*.ts
**/*/angular-component-lib/utils.ts
1 change: 0 additions & 1 deletion packages/angular/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ This guide shows you how to test the local Ionic Framework build with a new Angu

5. Create a tarball:
```sh
cd dist
npm pack
```

Expand Down
5 changes: 0 additions & 5 deletions packages/angular/common/ng-package.json

This file was deleted.

4 changes: 2 additions & 2 deletions packages/angular/eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ const tsConfigs = [...compat.extends('@ionic/eslint-config/recommended'), ...ang

module.exports = [
{
ignores: ['dist/**', 'build/**', 'scripts/**', '**/proxies.ts', 'test/**'],
ignores: ['dist/**', 'build/**', 'scripts/**', '**/proxies.ts', 'test/**', 'src/standalone/directives/ion-*.ts'],
},
...tsConfigs,
{
Expand All @@ -32,7 +32,7 @@ module.exports = [
// inferred project for them (the ts-eslint 8 equivalent of the old
// createDefaultProgram option).
projectService: {
allowDefaultProject: ['lazy/src/ionic-core.ts', 'schematics/add/*.ts', 'schematics/utils/*.ts'],
allowDefaultProject: ['src/lazy/ionic-core.ts', 'schematics/add/*.ts', 'schematics/utils/*.ts'],
},
tsconfigRootDir: __dirname,
},
Expand Down
5 changes: 0 additions & 5 deletions packages/angular/lazy/ng-package.json

This file was deleted.

7 changes: 0 additions & 7 deletions packages/angular/ng-package.json

This file was deleted.

Loading
Loading