Skip to content

Commit 4e03ce3

Browse files
feat(core): mark input, output and model APIs as stable
This commit marks the input, output and model APIs as stable (along with the associated APIs) and thus exits the dev preview phase for those APIs.
1 parent 3ebe6b4 commit 4e03ce3

10 files changed

Lines changed: 17 additions & 24 deletions

File tree

adev/src/content/guide/components/output-function.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
The `output()` function declares an output in a directive or component.
44
Outputs allow you to emit values to parent components.
55

6-
HELPFUL: The `output()` function is currently in [developer preview](/reference/releases#developer-preview).
7-
86
<docs-code language="ts" highlight="[[5], [8]]">
97
import {Component, output} from '@angular/core';
108

adev/src/content/guide/signals/inputs.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
Signal inputs allow values to be bound from parent components.
44
Those values are exposed using a `Signal` and can change during the lifecycle of your component.
55

6-
HELPFUL: Signal inputs are currently in [developer preview](/reference/releases#developer-preview).
7-
86
Angular supports two variants of inputs:
97

108
**Optional inputs**

adev/src/content/guide/signals/model.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
**Model inputs** are a special type of input that enable a component to propagate new values
44
back to another component.
55

6-
HELPFUL: Model inputs are currently in [developer preview](/reference/releases#developer-preview).
7-
86
When creating a component, you can define a model input similarly to how you create a standard
97
input.
108

packages/core/src/authoring/input/input.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export function inputRequiredFunction<ReadT, WriteT = ReadT>(
4040
* The function exposes an API for also declaring required inputs via the
4141
* `input.required` function.
4242
*
43-
* @developerPreview
43+
* @publicAPI
4444
* @docsPrivate Ignored because `input` is the canonical API entry.
4545
*/
4646
export interface InputFunction {
@@ -81,7 +81,7 @@ export interface InputFunction {
8181
* Consumers of your directive/component need to bind to this
8282
* input. If unset, a compile time error will be reported.
8383
*
84-
* @developerPreview
84+
* @publicAPI
8585
*/
8686
required: {
8787
/** Declares a required input of type `T`. */
@@ -143,7 +143,7 @@ export interface InputFunction {
143143
* <span>{{firstName()}}</span>
144144
* ```
145145
*
146-
* @developerPreview
146+
* @publicAPI
147147
* @initializerApiFunction
148148
*/
149149
export const input: InputFunction = (() => {

packages/core/src/authoring/input/input_signal.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {Signal} from '../../render3/reactivity/api';
1414
import {INPUT_SIGNAL_NODE, InputSignalNode, REQUIRED_UNSET_VALUE} from './input_signal_node';
1515

1616
/**
17-
* @developerPreview
17+
* @publicAPI
1818
*
1919
* Options for signal inputs.
2020
*/
@@ -37,15 +37,15 @@ export interface InputOptions<T, TransformT> {
3737
/**
3838
* Signal input options without the transform option.
3939
*
40-
* @developerPreview
40+
* @publicAPI
4141
*/
4242
export type InputOptionsWithoutTransform<T> =
4343
// Note: We still keep a notion of `transform` for auto-completion.
4444
Omit<InputOptions<T, T>, 'transform'> & {transform?: undefined};
4545
/**
4646
* Signal input options with the transform option required.
4747
*
48-
* @developerPreview
48+
* @publicAPI
4949
*/
5050
export type InputOptionsWithTransform<T, TransformT> = Required<
5151
Pick<InputOptions<T, TransformT>, 'transform'>
@@ -77,7 +77,7 @@ export const ɵINPUT_SIGNAL_BRAND_WRITE_TYPE = /* @__PURE__ */ Symbol();
7777
*
7878
* @see {@link InputSignal} for additional information.
7979
*
80-
* @developerPreview
80+
* @publicAPI
8181
*/
8282
export interface InputSignalWithTransform<T, TransformT> extends Signal<T> {
8383
[SIGNAL]: InputSignalNode<T, TransformT>;
@@ -94,7 +94,7 @@ export interface InputSignalWithTransform<T, TransformT> extends Signal<T> {
9494
*
9595
* @see {@link InputOptionsWithTransform} for inputs with transforms.
9696
*
97-
* @developerPreview
97+
* @publicAPI
9898
*/
9999
export interface InputSignal<T> extends InputSignalWithTransform<T, T> {}
100100

packages/core/src/authoring/model/model.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export function modelRequiredFunction<T>(): ModelSignal<T> {
3131
* The function exposes an API for also declaring required models via the
3232
* `model.required` function.
3333
*
34-
* @developerPreview
34+
* @publicAPI
3535
* @docsPrivate Ignored because `model` is the canonical API entry.
3636
*/
3737
export interface ModelFunction {
@@ -98,7 +98,7 @@ export interface ModelFunction {
9898
* }
9999
* ```
100100
*
101-
* @developerPreview
101+
* @publicAPI
102102
* @initializerApiFunction
103103
*/
104104
export const model: ModelFunction = (() => {

packages/core/src/authoring/model/model_signal.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import {OutputEmitterRef} from '../output/output_emitter_ref';
2525
import {OutputRef} from '../output/output_ref';
2626

2727
/**
28-
* @developerPreview
28+
* @publicAPI
2929
*
3030
* Options for model signals.
3131
*/
@@ -43,7 +43,7 @@ export interface ModelOptions {
4343
* A model signal is a writeable signal that can be exposed as an output.
4444
* Whenever its value is updated, it emits to the output.
4545
*
46-
* @developerPreview
46+
* @publicAPI
4747
*/
4848
export interface ModelSignal<T> extends WritableSignal<T>, InputSignal<T>, OutputRef<T> {
4949
[SIGNAL]: InputSignalNode<T, T>;

packages/core/src/authoring/output/output.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {OutputEmitterRef} from './output_emitter_ref';
1313
/**
1414
* Options for declaring an output.
1515
*
16-
* @developerPreview
16+
* @publicAPI
1717
*/
1818
export interface OutputOptions {
1919
alias?: string;
@@ -58,9 +58,8 @@ export interface OutputOptions {
5858
* this.nameChange.emit(newName);
5959
* }
6060
* ```
61-
*
62-
* @developerPreview
6361
* @initializerApiFunction {"showTypesInSignaturePreview": true}
62+
* @publicAPI
6463
*/
6564
export function output<T = void>(opts?: OutputOptions): OutputEmitterRef<T> {
6665
ngDevMode && assertInInjectionContext(output);

packages/core/src/authoring/output/output_emitter_ref.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import {OutputRef, OutputRefSubscription} from './output_ref';
2626
* <my-comp (valueChange)="processNewValue($event)" />
2727
* ```
2828
*
29-
* @developerPreview
29+
* @publicAPI
3030
*/
3131
export class OutputEmitterRef<T> implements OutputRef<T> {
3232
private destroyed = false;

packages/core/src/authoring/output/output_ref.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {DestroyRef} from '../../linker/destroy_ref';
1515
* Note: Angular will automatically clean up subscriptions
1616
* when the directive/component of the output is destroyed.
1717
*
18-
* @developerPreview
18+
* @publicAPI
1919
*/
2020
export interface OutputRefSubscription {
2121
unsubscribe(): void;
@@ -24,7 +24,7 @@ export interface OutputRefSubscription {
2424
/**
2525
* A reference to an Angular output.
2626
*
27-
* @developerPreview
27+
* @publicAPI
2828
*/
2929
export interface OutputRef<T> {
3030
/**

0 commit comments

Comments
 (0)