@cdevhub/ngx-tw 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +264 -49
- package/fesm2022/cdevhub-ngx-tw-accordion.mjs +11 -7
- package/fesm2022/cdevhub-ngx-tw-accordion.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-alert.mjs +43 -29
- package/fesm2022/cdevhub-ngx-tw-alert.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-aspect-ratio.mjs +103 -0
- package/fesm2022/cdevhub-ngx-tw-aspect-ratio.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-avatar.mjs +56 -31
- package/fesm2022/cdevhub-ngx-tw-avatar.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-badge.mjs +61 -35
- package/fesm2022/cdevhub-ngx-tw-badge.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-breadcrumbs.mjs +154 -93
- package/fesm2022/cdevhub-ngx-tw-breadcrumbs.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-button.mjs +35 -22
- package/fesm2022/cdevhub-ngx-tw-button.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-calendar-luxon.mjs +3 -3
- package/fesm2022/cdevhub-ngx-tw-calendar-luxon.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-calendar.mjs +416 -216
- package/fesm2022/cdevhub-ngx-tw-calendar.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-card.mjs +33 -24
- package/fesm2022/cdevhub-ngx-tw-card.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-carousel.mjs +152 -81
- package/fesm2022/cdevhub-ngx-tw-carousel.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-checkbox.mjs +99 -47
- package/fesm2022/cdevhub-ngx-tw-checkbox.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-code-block.mjs +42 -29
- package/fesm2022/cdevhub-ngx-tw-code-block.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-collapsible.mjs +46 -29
- package/fesm2022/cdevhub-ngx-tw-collapsible.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-combobox.mjs +205 -110
- package/fesm2022/cdevhub-ngx-tw-combobox.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-command-palette.mjs +141 -74
- package/fesm2022/cdevhub-ngx-tw-command-palette.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-core.mjs +16 -11
- package/fesm2022/cdevhub-ngx-tw-core.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-date-picker.mjs +395 -149
- package/fesm2022/cdevhub-ngx-tw-date-picker.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-date-range-picker.mjs +305 -150
- package/fesm2022/cdevhub-ngx-tw-date-range-picker.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-dialog.mjs +56 -43
- package/fesm2022/cdevhub-ngx-tw-dialog.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-empty-state.mjs +51 -33
- package/fesm2022/cdevhub-ngx-tw-empty-state.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-file-upload.mjs +905 -0
- package/fesm2022/cdevhub-ngx-tw-file-upload.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-flip-card.mjs +49 -26
- package/fesm2022/cdevhub-ngx-tw-flip-card.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-form-field.mjs +133 -74
- package/fesm2022/cdevhub-ngx-tw-form-field.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-icon-lucide.mjs +2 -2
- package/fesm2022/cdevhub-ngx-tw-icon-lucide.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-icon.mjs +28 -17
- package/fesm2022/cdevhub-ngx-tw-icon.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-input.mjs +37 -21
- package/fesm2022/cdevhub-ngx-tw-input.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-item.mjs +33 -24
- package/fesm2022/cdevhub-ngx-tw-item.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-menu.mjs +63 -48
- package/fesm2022/cdevhub-ngx-tw-menu.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-number-input.mjs +622 -0
- package/fesm2022/cdevhub-ngx-tw-number-input.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-paginator.mjs +142 -72
- package/fesm2022/cdevhub-ngx-tw-paginator.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-popover.mjs +101 -46
- package/fesm2022/cdevhub-ngx-tw-popover.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-progress-bar.mjs +57 -30
- package/fesm2022/cdevhub-ngx-tw-progress-bar.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-radio.mjs +108 -57
- package/fesm2022/cdevhub-ngx-tw-radio.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-segmented-control.mjs +46 -26
- package/fesm2022/cdevhub-ngx-tw-segmented-control.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-select.mjs +227 -122
- package/fesm2022/cdevhub-ngx-tw-select.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-separator.mjs +21 -12
- package/fesm2022/cdevhub-ngx-tw-separator.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-sheet.mjs +58 -44
- package/fesm2022/cdevhub-ngx-tw-sheet.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-skeleton.mjs +25 -14
- package/fesm2022/cdevhub-ngx-tw-skeleton.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-slider.mjs +155 -79
- package/fesm2022/cdevhub-ngx-tw-slider.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-sort.mjs +47 -25
- package/fesm2022/cdevhub-ngx-tw-sort.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-spinner.mjs +29 -16
- package/fesm2022/cdevhub-ngx-tw-spinner.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-split.mjs +72 -42
- package/fesm2022/cdevhub-ngx-tw-split.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-stat.mjs +107 -64
- package/fesm2022/cdevhub-ngx-tw-stat.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-stepper.mjs +113 -47
- package/fesm2022/cdevhub-ngx-tw-stepper.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-switch.mjs +61 -32
- package/fesm2022/cdevhub-ngx-tw-switch.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-tab-nav.mjs +88 -42
- package/fesm2022/cdevhub-ngx-tw-tab-nav.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-table.mjs +266 -118
- package/fesm2022/cdevhub-ngx-tw-table.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-tabs.mjs +102 -52
- package/fesm2022/cdevhub-ngx-tw-tabs.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-tags-input.mjs +798 -0
- package/fesm2022/cdevhub-ngx-tw-tags-input.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-textarea.mjs +16 -8
- package/fesm2022/cdevhub-ngx-tw-textarea.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-theme.mjs +22 -14
- package/fesm2022/cdevhub-ngx-tw-theme.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-time-picker.mjs +243 -95
- package/fesm2022/cdevhub-ngx-tw-time-picker.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-timeline.mjs +149 -82
- package/fesm2022/cdevhub-ngx-tw-timeline.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-toast.mjs +100 -55
- package/fesm2022/cdevhub-ngx-tw-toast.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-tooltip.mjs +50 -28
- package/fesm2022/cdevhub-ngx-tw-tooltip.mjs.map +1 -1
- package/fesm2022/cdevhub-ngx-tw-transfer.mjs +1129 -0
- package/fesm2022/cdevhub-ngx-tw-transfer.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw-tree.mjs +554 -0
- package/fesm2022/cdevhub-ngx-tw-tree.mjs.map +1 -0
- package/fesm2022/cdevhub-ngx-tw.mjs +7 -0
- package/fesm2022/cdevhub-ngx-tw.mjs.map +1 -1
- package/package.json +45 -17
- package/theme/_dark.css +16 -12
- package/theme/_semantic.css +3 -2
- package/theme/index.css +10 -2
- package/types/cdevhub-ngx-tw-aspect-ratio.d.ts +40 -0
- package/types/cdevhub-ngx-tw-calendar.d.ts +39 -8
- package/types/cdevhub-ngx-tw-code-block.d.ts +8 -7
- package/types/cdevhub-ngx-tw-command-palette.d.ts +7 -0
- package/types/cdevhub-ngx-tw-date-picker.d.ts +36 -10
- package/types/cdevhub-ngx-tw-file-upload.d.ts +250 -0
- package/types/cdevhub-ngx-tw-form-field.d.ts +22 -3
- package/types/cdevhub-ngx-tw-icon-lucide.d.ts +21 -3
- package/types/cdevhub-ngx-tw-number-input.d.ts +130 -0
- package/types/cdevhub-ngx-tw-popover.d.ts +8 -0
- package/types/cdevhub-ngx-tw-select.d.ts +1 -1
- package/types/cdevhub-ngx-tw-stepper.d.ts +30 -2
- package/types/cdevhub-ngx-tw-tab-nav.d.ts +8 -0
- package/types/cdevhub-ngx-tw-table.d.ts +30 -1
- package/types/cdevhub-ngx-tw-tabs.d.ts +8 -0
- package/types/cdevhub-ngx-tw-tags-input.d.ts +217 -0
- package/types/cdevhub-ngx-tw-time-picker.d.ts +31 -6
- package/types/cdevhub-ngx-tw-toast.d.ts +1 -1
- package/types/cdevhub-ngx-tw-transfer.d.ts +330 -0
- package/types/cdevhub-ngx-tw-tree.d.ts +189 -0
- package/types/cdevhub-ngx-tw.d.ts +7 -0
|
@@ -11,6 +11,9 @@ import { tv } from 'tailwind-variants';
|
|
|
11
11
|
* Per-call configuration for {@link ToastService} methods. Also used as the
|
|
12
12
|
* payload of {@link TW_TOAST_DEFAULT_OPTIONS} for app-wide defaults.
|
|
13
13
|
*/
|
|
14
|
+
// `R` is a phantom result-type kept for parity with `ToastRef<D, R>` / service
|
|
15
|
+
// generics — consumers pass it through `ToastConfig<D, R>` so the resulting
|
|
16
|
+
// `ToastRef.afterClosed()` is correctly typed.
|
|
14
17
|
class ToastConfig {
|
|
15
18
|
/** Severity of the toast. Defaults to `'info'`. */
|
|
16
19
|
severity = 'info';
|
|
@@ -119,10 +122,10 @@ class ToastIconDirective {
|
|
|
119
122
|
toast = inject(ToastComponent);
|
|
120
123
|
/** @internal */
|
|
121
124
|
classes = this.toast.iconClasses;
|
|
122
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
123
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
125
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
126
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ToastIconDirective, isStandalone: true, selector: "[twToastIcon]", host: { attributes: { "aria-hidden": "true" }, properties: { "class": "classes()" } }, ngImport: i0 });
|
|
124
127
|
}
|
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastIconDirective, decorators: [{
|
|
126
129
|
type: Directive,
|
|
127
130
|
args: [{
|
|
128
131
|
selector: '[twToastIcon]',
|
|
@@ -137,10 +140,10 @@ class ToastTitleDirective {
|
|
|
137
140
|
toast = inject(ToastComponent);
|
|
138
141
|
/** @internal */
|
|
139
142
|
classes = this.toast.titleClasses;
|
|
140
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
141
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
143
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
144
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ToastTitleDirective, isStandalone: true, selector: "[twToastTitle]", host: { properties: { "class": "classes()" } }, ngImport: i0 });
|
|
142
145
|
}
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastTitleDirective, decorators: [{
|
|
144
147
|
type: Directive,
|
|
145
148
|
args: [{
|
|
146
149
|
selector: '[twToastTitle]',
|
|
@@ -154,10 +157,10 @@ class ToastDescriptionDirective {
|
|
|
154
157
|
toast = inject(ToastComponent);
|
|
155
158
|
/** @internal */
|
|
156
159
|
classes = this.toast.descriptionClasses;
|
|
157
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
158
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
160
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastDescriptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
161
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ToastDescriptionDirective, isStandalone: true, selector: "[twToastDescription]", host: { properties: { "class": "classes()" } }, ngImport: i0 });
|
|
159
162
|
}
|
|
160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastDescriptionDirective, decorators: [{
|
|
161
164
|
type: Directive,
|
|
162
165
|
args: [{
|
|
163
166
|
selector: '[twToastDescription]',
|
|
@@ -175,10 +178,10 @@ class ToastActionDirective {
|
|
|
175
178
|
onClick() {
|
|
176
179
|
this.toast.actionClicked.emit();
|
|
177
180
|
}
|
|
178
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
179
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
181
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastActionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
182
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ToastActionDirective, isStandalone: true, selector: "[twToastAction]", host: { attributes: { "type": "button" }, listeners: { "click": "onClick()" }, properties: { "class": "classes()" } }, ngImport: i0 });
|
|
180
183
|
}
|
|
181
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastActionDirective, decorators: [{
|
|
182
185
|
type: Directive,
|
|
183
186
|
args: [{
|
|
184
187
|
selector: '[twToastAction]',
|
|
@@ -196,11 +199,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
196
199
|
*/
|
|
197
200
|
class ToastComponent {
|
|
198
201
|
/** Severity variant. Drives color palette, default icon, and ARIA role / live politeness. Defaults to `'info'`. */
|
|
199
|
-
severity = input('info',
|
|
202
|
+
severity = input('info', /* @ts-ignore */
|
|
203
|
+
...(ngDevMode ? [{ debugName: "severity" }] : /* istanbul ignore next */ []));
|
|
200
204
|
// Default true: mirrors `ToastConfig.dismissible` — toasts must offer an escape
|
|
201
205
|
// hatch by default; opt-out only for ephemeral progress markers paired with `duration`.
|
|
202
206
|
/** Whether to render the close button. Defaults to `true`. */
|
|
203
|
-
dismissible = input(true,
|
|
207
|
+
dismissible = input(true, /* @ts-ignore */
|
|
208
|
+
...(ngDevMode ? [{ debugName: "dismissible" }] : /* istanbul ignore next */ []));
|
|
204
209
|
/**
|
|
205
210
|
* Icon override. Pass a string to render as text inside the icon slot, or
|
|
206
211
|
* `false` to hide the built-in severity icon. Ignored when a `[twToastIcon]`
|
|
@@ -208,41 +213,55 @@ class ToastComponent {
|
|
|
208
213
|
*
|
|
209
214
|
* For arbitrary icon markup, project a `[twToastIcon]` child instead.
|
|
210
215
|
*/
|
|
211
|
-
icon = input(undefined,
|
|
216
|
+
icon = input(undefined, /* @ts-ignore */
|
|
217
|
+
...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
212
218
|
/** Explicit aria-label for the toast wrapper. When omitted, text content is used by assistive tech. */
|
|
213
|
-
ariaLabel = input(undefined,
|
|
219
|
+
ariaLabel = input(undefined, /* @ts-ignore */
|
|
220
|
+
...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
214
221
|
/** Fires when the close button is clicked. */
|
|
215
222
|
dismissed = output();
|
|
216
223
|
/** Fires when a `[twToastAction]` button is clicked. */
|
|
217
224
|
actionClicked = output();
|
|
218
225
|
/** @internal */
|
|
219
|
-
projectedIcon = contentChild(ToastIconDirective,
|
|
226
|
+
projectedIcon = contentChild(ToastIconDirective, /* @ts-ignore */
|
|
227
|
+
...(ngDevMode ? [{ debugName: "projectedIcon" }] : /* istanbul ignore next */ []));
|
|
220
228
|
/** @internal */
|
|
221
|
-
hasProjectedIcon = computed(() => !!this.projectedIcon(),
|
|
222
|
-
|
|
229
|
+
hasProjectedIcon = computed(() => !!this.projectedIcon(), /* @ts-ignore */
|
|
230
|
+
...(ngDevMode ? [{ debugName: "hasProjectedIcon" }] : /* istanbul ignore next */ []));
|
|
231
|
+
variantResult = computed(() => toastVariants({ severity: this.severity() }), /* @ts-ignore */
|
|
232
|
+
...(ngDevMode ? [{ debugName: "variantResult" }] : /* istanbul ignore next */ []));
|
|
223
233
|
/** @internal */
|
|
224
234
|
rootClasses = computed(() => {
|
|
225
235
|
const base = this.variantResult().root();
|
|
226
236
|
return this.dismissible() ? `${base} pr-10` : base;
|
|
227
|
-
},
|
|
237
|
+
}, /* @ts-ignore */
|
|
238
|
+
...(ngDevMode ? [{ debugName: "rootClasses" }] : /* istanbul ignore next */ []));
|
|
228
239
|
/** @internal */
|
|
229
|
-
iconClasses = computed(() => this.variantResult().icon(),
|
|
240
|
+
iconClasses = computed(() => this.variantResult().icon(), /* @ts-ignore */
|
|
241
|
+
...(ngDevMode ? [{ debugName: "iconClasses" }] : /* istanbul ignore next */ []));
|
|
230
242
|
/** @internal */
|
|
231
|
-
titleClasses = computed(() => this.variantResult().title(),
|
|
243
|
+
titleClasses = computed(() => this.variantResult().title(), /* @ts-ignore */
|
|
244
|
+
...(ngDevMode ? [{ debugName: "titleClasses" }] : /* istanbul ignore next */ []));
|
|
232
245
|
/** @internal */
|
|
233
|
-
descriptionClasses = computed(() => this.variantResult().description(),
|
|
246
|
+
descriptionClasses = computed(() => this.variantResult().description(), /* @ts-ignore */
|
|
247
|
+
...(ngDevMode ? [{ debugName: "descriptionClasses" }] : /* istanbul ignore next */ []));
|
|
234
248
|
/** @internal */
|
|
235
|
-
contentClasses = computed(() => this.variantResult().content(),
|
|
249
|
+
contentClasses = computed(() => this.variantResult().content(), /* @ts-ignore */
|
|
250
|
+
...(ngDevMode ? [{ debugName: "contentClasses" }] : /* istanbul ignore next */ []));
|
|
236
251
|
/** @internal */
|
|
237
|
-
actionClasses = computed(() => this.variantResult().action(),
|
|
252
|
+
actionClasses = computed(() => this.variantResult().action(), /* @ts-ignore */
|
|
253
|
+
...(ngDevMode ? [{ debugName: "actionClasses" }] : /* istanbul ignore next */ []));
|
|
238
254
|
/** @internal */
|
|
239
|
-
dismissClasses = computed(() => this.variantResult().dismiss(),
|
|
255
|
+
dismissClasses = computed(() => this.variantResult().dismiss(), /* @ts-ignore */
|
|
256
|
+
...(ngDevMode ? [{ debugName: "dismissClasses" }] : /* istanbul ignore next */ []));
|
|
240
257
|
/** @internal */
|
|
241
|
-
roleAttr = computed(() => this.severity() === 'error' ? 'alert' : 'status',
|
|
258
|
+
roleAttr = computed(() => this.severity() === 'error' ? 'alert' : 'status', /* @ts-ignore */
|
|
259
|
+
...(ngDevMode ? [{ debugName: "roleAttr" }] : /* istanbul ignore next */ []));
|
|
242
260
|
/** @internal */
|
|
243
|
-
ariaLiveAttr = computed(() => this.severity() === 'error' ? 'assertive' : 'polite',
|
|
244
|
-
|
|
245
|
-
static
|
|
261
|
+
ariaLiveAttr = computed(() => this.severity() === 'error' ? 'assertive' : 'polite', /* @ts-ignore */
|
|
262
|
+
...(ngDevMode ? [{ debugName: "ariaLiveAttr" }] : /* istanbul ignore next */ []));
|
|
263
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
264
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: ToastComponent, isStandalone: true, selector: "tw-toast", inputs: { severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dismissed: "dismissed", actionClicked: "actionClicked" }, host: { attributes: { "aria-atomic": "true" }, properties: { "class": "rootClasses()", "attr.role": "roleAttr()", "attr.aria-live": "ariaLiveAttr()", "attr.aria-label": "ariaLabel() || null", "attr.data-severity": "severity()" } }, queries: [{ propertyName: "projectedIcon", first: true, predicate: ToastIconDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
246
265
|
@if (hasProjectedIcon()) {
|
|
247
266
|
<ng-content select="[twToastIcon]" />
|
|
248
267
|
} @else if (icon() !== false) {
|
|
@@ -296,7 +315,7 @@ class ToastComponent {
|
|
|
296
315
|
}
|
|
297
316
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
298
317
|
}
|
|
299
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
318
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastComponent, decorators: [{
|
|
300
319
|
type: Component,
|
|
301
320
|
args: [{
|
|
302
321
|
selector: 'tw-toast',
|
|
@@ -400,14 +419,17 @@ const SWIPE_MAX_OPACITY_FADE = 0.6;
|
|
|
400
419
|
*/
|
|
401
420
|
class ToastContainerComponent {
|
|
402
421
|
/** Per-position stacking anchor. Mutated from {@link ToastService} via `.instance.position.set(...)`. */
|
|
403
|
-
position = signal('bottom-right',
|
|
422
|
+
position = signal('bottom-right', /* @ts-ignore */
|
|
423
|
+
...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
|
|
404
424
|
/** Accessible label applied to the `role="region"` host. Mutated from the service on init. */
|
|
405
|
-
regionLabel = signal('Notifications',
|
|
425
|
+
regionLabel = signal('Notifications', /* @ts-ignore */
|
|
426
|
+
...(ngDevMode ? [{ debugName: "regionLabel" }] : /* istanbul ignore next */ []));
|
|
406
427
|
/**
|
|
407
428
|
* Toasts currently assigned to this container. The service pushes toasts
|
|
408
429
|
* into this signal; the container filters by state to drive `animate.leave`.
|
|
409
430
|
*/
|
|
410
|
-
visibleRefs = signal([],
|
|
431
|
+
visibleRefs = signal([], /* @ts-ignore */
|
|
432
|
+
...(ngDevMode ? [{ debugName: "visibleRefs" }] : /* istanbul ignore next */ []));
|
|
411
433
|
injector = inject(Injector);
|
|
412
434
|
liveAnnouncer = inject(LiveAnnouncer);
|
|
413
435
|
host = inject((ElementRef));
|
|
@@ -427,16 +449,19 @@ class ToastContainerComponent {
|
|
|
427
449
|
enterClass: enter,
|
|
428
450
|
leaveClass: leave,
|
|
429
451
|
}));
|
|
430
|
-
},
|
|
452
|
+
}, /* @ts-ignore */
|
|
453
|
+
...(ngDevMode ? [{ debugName: "entries" }] : /* istanbul ignore next */ []));
|
|
431
454
|
orderedEntries = computed(() => {
|
|
432
455
|
const list = this.entries();
|
|
433
456
|
return POSITION_ORDER_REVERSED[this.position()] ? [...list].reverse() : list;
|
|
434
|
-
},
|
|
457
|
+
}, /* @ts-ignore */
|
|
458
|
+
...(ngDevMode ? [{ debugName: "orderedEntries" }] : /* istanbul ignore next */ []));
|
|
435
459
|
hostClasses = computed(() => {
|
|
436
460
|
const base = 'flex flex-col gap-2 w-full max-w-sm';
|
|
437
461
|
const align = POSITION_HOST_CLASSES[this.position()];
|
|
438
462
|
return `${base} ${align}`;
|
|
439
|
-
},
|
|
463
|
+
}, /* @ts-ignore */
|
|
464
|
+
...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
|
|
440
465
|
/** @internal Called by the service right after attaching a new toast. Runs `LiveAnnouncer`. */
|
|
441
466
|
_announceOpen(ref) {
|
|
442
467
|
const politeness = this.resolvePoliteness(ref);
|
|
@@ -595,9 +620,13 @@ class ToastContainerComponent {
|
|
|
595
620
|
return host.textContent?.trim() ?? '';
|
|
596
621
|
return this.host.nativeElement.textContent?.trim() ?? '';
|
|
597
622
|
}
|
|
598
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
599
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
623
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
624
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: ToastContainerComponent, isStandalone: true, selector: "tw-toast-container", host: { attributes: { "role": "region" }, properties: { "class": "hostClasses()", "attr.aria-label": "regionLabel()", "attr.data-position": "position()" } }, ngImport: i0, template: `
|
|
600
625
|
@for (entry of orderedEntries(); track entry.ref.id) {
|
|
626
|
+
<!-- Toast entry wrapper; the projected <tw-toast> is the focusable affordance.
|
|
627
|
+
This element only forwards pointer/focus events so the container can
|
|
628
|
+
pause auto-dismiss while the user is interacting. -->
|
|
629
|
+
<!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus -->
|
|
601
630
|
<div
|
|
602
631
|
class="pointer-events-auto w-full max-w-sm"
|
|
603
632
|
[attr.data-toast-id]="entry.ref.id"
|
|
@@ -661,7 +690,7 @@ class ToastContainerComponent {
|
|
|
661
690
|
}
|
|
662
691
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: ToastComponent, selector: "tw-toast", inputs: ["severity", "dismissible", "icon", "ariaLabel"], outputs: ["dismissed", "actionClicked"] }, { kind: "directive", type: ToastActionDirective, selector: "[twToastAction]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
663
692
|
}
|
|
664
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
693
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastContainerComponent, decorators: [{
|
|
665
694
|
type: Component,
|
|
666
695
|
args: [{
|
|
667
696
|
selector: 'tw-toast-container',
|
|
@@ -676,6 +705,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
676
705
|
},
|
|
677
706
|
template: `
|
|
678
707
|
@for (entry of orderedEntries(); track entry.ref.id) {
|
|
708
|
+
<!-- Toast entry wrapper; the projected <tw-toast> is the focusable affordance.
|
|
709
|
+
This element only forwards pointer/focus events so the container can
|
|
710
|
+
pause auto-dismiss while the user is interacting. -->
|
|
711
|
+
<!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus -->
|
|
679
712
|
<div
|
|
680
713
|
class="pointer-events-auto w-full max-w-sm"
|
|
681
714
|
[attr.data-toast-id]="entry.ref.id"
|
|
@@ -784,11 +817,14 @@ class ToastRef {
|
|
|
784
817
|
/** Reactive data payload — re-read by the container to update `TW_TOAST_DATA`. */
|
|
785
818
|
data;
|
|
786
819
|
/** @internal Reactive "transient" class applied by swipe gestures (e.g. `translate3d(...)`). */
|
|
787
|
-
swipeTransform = signal(null,
|
|
820
|
+
swipeTransform = signal(null, /* @ts-ignore */
|
|
821
|
+
...(ngDevMode ? [{ debugName: "swipeTransform" }] : /* istanbul ignore next */ []));
|
|
788
822
|
/** @internal Reactive opacity applied during swipe gestures. */
|
|
789
|
-
swipeOpacity = signal(null,
|
|
823
|
+
swipeOpacity = signal(null, /* @ts-ignore */
|
|
824
|
+
...(ngDevMode ? [{ debugName: "swipeOpacity" }] : /* istanbul ignore next */ []));
|
|
790
825
|
/** @internal Leave-animation class override. When non-null, container uses this instead of the position default. */
|
|
791
|
-
leaveAnimationOverride = signal(null,
|
|
826
|
+
leaveAnimationOverride = signal(null, /* @ts-ignore */
|
|
827
|
+
...(ngDevMode ? [{ debugName: "leaveAnimationOverride" }] : /* istanbul ignore next */ []));
|
|
792
828
|
/** @internal Portal for component-class content. Set by the service; null for string / template content. */
|
|
793
829
|
_portal = null;
|
|
794
830
|
/** @internal True while the pointer hovers this toast. */
|
|
@@ -797,7 +833,8 @@ class ToastRef {
|
|
|
797
833
|
_focused = false;
|
|
798
834
|
/** @internal Set by the service so the ref can reach the CDK-owned OverlayRef if it needs to. */
|
|
799
835
|
_overlayPanelElement = null;
|
|
800
|
-
stateSignal = signal('entering',
|
|
836
|
+
stateSignal = signal('entering', /* @ts-ignore */
|
|
837
|
+
...(ngDevMode ? [{ debugName: "stateSignal" }] : /* istanbul ignore next */ []));
|
|
801
838
|
severitySignal;
|
|
802
839
|
dismissibleSignal;
|
|
803
840
|
iconSignal;
|
|
@@ -821,13 +858,20 @@ class ToastRef {
|
|
|
821
858
|
this.dismissCallback = dismissCallback;
|
|
822
859
|
this.id = id;
|
|
823
860
|
this.config = config;
|
|
824
|
-
this.severitySignal = signal(config.severity ?? 'info',
|
|
825
|
-
|
|
826
|
-
this.
|
|
827
|
-
|
|
828
|
-
this.
|
|
829
|
-
|
|
830
|
-
this.
|
|
861
|
+
this.severitySignal = signal(config.severity ?? 'info', /* @ts-ignore */
|
|
862
|
+
...(ngDevMode ? [{ debugName: "severitySignal" }] : /* istanbul ignore next */ []));
|
|
863
|
+
this.dismissibleSignal = signal(config.dismissible ?? true, /* @ts-ignore */
|
|
864
|
+
...(ngDevMode ? [{ debugName: "dismissibleSignal" }] : /* istanbul ignore next */ []));
|
|
865
|
+
this.iconSignal = signal(typeof config.icon === 'string' || config.icon === false ? config.icon : undefined, /* @ts-ignore */
|
|
866
|
+
...(ngDevMode ? [{ debugName: "iconSignal" }] : /* istanbul ignore next */ []));
|
|
867
|
+
this.contentSignal = signal(content, /* @ts-ignore */
|
|
868
|
+
...(ngDevMode ? [{ debugName: "contentSignal" }] : /* istanbul ignore next */ []));
|
|
869
|
+
this.actionSignal = signal(config.action, /* @ts-ignore */
|
|
870
|
+
...(ngDevMode ? [{ debugName: "actionSignal" }] : /* istanbul ignore next */ []));
|
|
871
|
+
this.ariaLabelSignal = signal(config.ariaLabel, /* @ts-ignore */
|
|
872
|
+
...(ngDevMode ? [{ debugName: "ariaLabelSignal" }] : /* istanbul ignore next */ []));
|
|
873
|
+
this.dataSignal = signal(config.data ?? null, /* @ts-ignore */
|
|
874
|
+
...(ngDevMode ? [{ debugName: "dataSignal" }] : /* istanbul ignore next */ []));
|
|
831
875
|
this.state = this.stateSignal.asReadonly();
|
|
832
876
|
this.severity = this.severitySignal.asReadonly();
|
|
833
877
|
this.dismissible = this.dismissibleSignal.asReadonly();
|
|
@@ -1044,7 +1088,8 @@ class ToastService {
|
|
|
1044
1088
|
defaultOptions = inject(TW_TOAST_DEFAULT_OPTIONS, { optional: true }) ?? {};
|
|
1045
1089
|
parent = inject(ToastService, { optional: true, skipSelf: true });
|
|
1046
1090
|
positionOverlays = new Map();
|
|
1047
|
-
activeRefsAtThisLevel = signal([],
|
|
1091
|
+
activeRefsAtThisLevel = signal([], /* @ts-ignore */
|
|
1092
|
+
...(ngDevMode ? [{ debugName: "activeRefsAtThisLevel" }] : /* istanbul ignore next */ []));
|
|
1048
1093
|
afterOpenedSubject = new Subject();
|
|
1049
1094
|
afterAllDismissedSubject = new Subject();
|
|
1050
1095
|
/** Reactive list of every toast that has not yet fully dismissed. */
|
|
@@ -1269,10 +1314,10 @@ class ToastService {
|
|
|
1269
1314
|
getAfterAllDismissedSource() {
|
|
1270
1315
|
return this.parent ? this.parent.getAfterAllDismissedSource() : this.afterAllDismissedSubject;
|
|
1271
1316
|
}
|
|
1272
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1273
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1317
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1318
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastService });
|
|
1274
1319
|
}
|
|
1275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1320
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToastService, decorators: [{
|
|
1276
1321
|
type: Injectable
|
|
1277
1322
|
}] });
|
|
1278
1323
|
function isComponentConstructor(value) {
|