ngwr 10.0.0 → 10.2.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 +9 -8
- package/action-sheet/styles/_index.scss +6 -1
- package/alert/styles/_index.scss +7 -3
- package/badge/styles/_index.scss +1 -1
- package/badge/styles/_tag.scss +2 -2
- package/border-glow/styles/_index.scss +5 -0
- package/breadcrumbs/styles/_index.scss +1 -1
- package/button/styles/_index.scss +6 -6
- package/calendar/styles/_index.scss +9 -1
- package/circular-text/styles/_index.scss +6 -1
- package/density/styles/_index.scss +3 -1
- package/dialog/styles/_index.scss +1 -2
- package/drag-drop/styles/_index.scss +20 -7
- package/event-calendar/styles/_index.scss +284 -0
- package/falling-text/styles/_index.scss +5 -0
- package/fesm2022/ngwr-alert.mjs +8 -3
- package/fesm2022/ngwr-alert.mjs.map +1 -1
- package/fesm2022/ngwr-back-top.mjs +6 -4
- package/fesm2022/ngwr-back-top.mjs.map +1 -1
- package/fesm2022/ngwr-border-glow.mjs +12 -9
- package/fesm2022/ngwr-border-glow.mjs.map +1 -1
- package/fesm2022/ngwr-breadcrumbs.mjs +2 -2
- package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngwr-calendar.mjs +5 -3
- package/fesm2022/ngwr-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-card.mjs +2 -2
- package/fesm2022/ngwr-card.mjs.map +1 -1
- package/fesm2022/ngwr-carousel.mjs +17 -4
- package/fesm2022/ngwr-carousel.mjs.map +1 -1
- package/fesm2022/ngwr-cascader.mjs +31 -4
- package/fesm2022/ngwr-cascader.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox.mjs +12 -3
- package/fesm2022/ngwr-checkbox.mjs.map +1 -1
- package/fesm2022/ngwr-circular-text.mjs +2 -2
- package/fesm2022/ngwr-circular-text.mjs.map +1 -1
- package/fesm2022/ngwr-command-palette.mjs +7 -3
- package/fesm2022/ngwr-command-palette.mjs.map +1 -1
- package/fesm2022/ngwr-counter.mjs +9 -1
- package/fesm2022/ngwr-counter.mjs.map +1 -1
- package/fesm2022/ngwr-date-picker.mjs +23 -6
- package/fesm2022/ngwr-date-picker.mjs.map +1 -1
- package/fesm2022/ngwr-descriptions.mjs +5 -4
- package/fesm2022/ngwr-descriptions.mjs.map +1 -1
- package/fesm2022/ngwr-drag-drop.mjs +2 -2
- package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
- package/fesm2022/ngwr-dropdown.mjs +4 -0
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-event-calendar.mjs +723 -0
- package/fesm2022/ngwr-event-calendar.mjs.map +1 -0
- package/fesm2022/ngwr-falling-text.mjs +2 -2
- package/fesm2022/ngwr-falling-text.mjs.map +1 -1
- package/fesm2022/ngwr-file-upload.mjs +2 -2
- package/fesm2022/ngwr-file-upload.mjs.map +1 -1
- package/fesm2022/ngwr-form.mjs +258 -42
- package/fesm2022/ngwr-form.mjs.map +1 -1
- package/fesm2022/ngwr-fuzzy-text.mjs +15 -1
- package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
- package/fesm2022/ngwr-gauge.mjs +8 -3
- package/fesm2022/ngwr-gauge.mjs.map +1 -1
- package/fesm2022/ngwr-glitch-text.mjs +2 -2
- package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
- package/fesm2022/ngwr-gradient-text.mjs +2 -2
- package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-en.mjs +73 -5
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ru.mjs +73 -5
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
- package/fesm2022/ngwr-i18n.mjs +20 -2
- package/fesm2022/ngwr-i18n.mjs.map +1 -1
- package/fesm2022/ngwr-icon.mjs +5 -0
- package/fesm2022/ngwr-icon.mjs.map +1 -1
- package/fesm2022/ngwr-input-number.mjs +19 -3
- package/fesm2022/ngwr-input-number.mjs.map +1 -1
- package/fesm2022/ngwr-input.mjs +48 -6
- package/fesm2022/ngwr-input.mjs.map +1 -1
- package/fesm2022/ngwr-knob.mjs +8 -3
- package/fesm2022/ngwr-knob.mjs.map +1 -1
- package/fesm2022/ngwr-lightbox.mjs +32 -3
- package/fesm2022/ngwr-lightbox.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart.mjs +3 -3
- package/fesm2022/ngwr-line-chart.mjs.map +1 -1
- package/fesm2022/ngwr-list.mjs +2 -2
- package/fesm2022/ngwr-list.mjs.map +1 -1
- package/fesm2022/ngwr-loading-bar.mjs +2 -2
- package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
- package/fesm2022/ngwr-marquee.mjs +2 -2
- package/fesm2022/ngwr-marquee.mjs.map +1 -1
- package/fesm2022/ngwr-media.mjs +3 -0
- package/fesm2022/ngwr-media.mjs.map +1 -1
- package/fesm2022/ngwr-meter-group.mjs +14 -3
- package/fesm2022/ngwr-meter-group.mjs.map +1 -1
- package/fesm2022/ngwr-page-header.mjs +2 -2
- package/fesm2022/ngwr-page-header.mjs.map +1 -1
- package/fesm2022/ngwr-pagination.mjs +1 -1
- package/fesm2022/ngwr-pagination.mjs.map +1 -1
- package/fesm2022/ngwr-progress.mjs +8 -2
- package/fesm2022/ngwr-progress.mjs.map +1 -1
- package/fesm2022/ngwr-qr.mjs.map +1 -1
- package/fesm2022/ngwr-rating.mjs +6 -4
- package/fesm2022/ngwr-rating.mjs.map +1 -1
- package/fesm2022/ngwr-result.mjs +19 -12
- package/fesm2022/ngwr-result.mjs.map +1 -1
- package/fesm2022/ngwr-segmented.mjs +2 -2
- package/fesm2022/ngwr-segmented.mjs.map +1 -1
- package/fesm2022/ngwr-select.mjs +28 -8
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-shiny-text.mjs +4 -6
- package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
- package/fesm2022/ngwr-speed-dial.mjs +11 -3
- package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
- package/fesm2022/ngwr-spotlight-card.mjs +2 -2
- package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
- package/fesm2022/ngwr-squircle.mjs +1 -1
- package/fesm2022/ngwr-squircle.mjs.map +1 -1
- package/fesm2022/ngwr-star-border.mjs +2 -2
- package/fesm2022/ngwr-star-border.mjs.map +1 -1
- package/fesm2022/ngwr-switch.mjs +10 -3
- package/fesm2022/ngwr-switch.mjs.map +1 -1
- package/fesm2022/ngwr-table.mjs +233 -19
- package/fesm2022/ngwr-table.mjs.map +1 -1
- package/fesm2022/ngwr-tabs.mjs +21 -4
- package/fesm2022/ngwr-tabs.mjs.map +1 -1
- package/fesm2022/ngwr-textarea.mjs +20 -4
- package/fesm2022/ngwr-textarea.mjs.map +1 -1
- package/fesm2022/ngwr-tilt-card.mjs +2 -2
- package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
- package/fesm2022/ngwr-toolbar.mjs +2 -2
- package/fesm2022/ngwr-toolbar.mjs.map +1 -1
- package/fesm2022/ngwr-tour.mjs +264 -0
- package/fesm2022/ngwr-tour.mjs.map +1 -0
- package/fesm2022/ngwr-transfer.mjs +184 -0
- package/fesm2022/ngwr-transfer.mjs.map +1 -0
- package/fesm2022/ngwr-tree.mjs +23 -6
- package/fesm2022/ngwr-tree.mjs.map +1 -1
- package/fesm2022/ngwr-typewriter.mjs +2 -2
- package/fesm2022/ngwr-typewriter.mjs.map +1 -1
- package/fesm2022/ngwr-validators.mjs +118 -2
- package/fesm2022/ngwr-validators.mjs.map +1 -1
- package/fesm2022/ngwr-version.mjs +2 -2
- package/fesm2022/ngwr-version.mjs.map +1 -1
- package/fesm2022/ngwr-virtual-scroll.mjs +2 -2
- package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
- package/fesm2022/ngwr-waves.mjs +2 -2
- package/fesm2022/ngwr-waves.mjs.map +1 -1
- package/form/styles/_index.scss +8 -4
- package/glitch-text/styles/_index.scss +5 -0
- package/gradient-text/styles/_index.scss +5 -0
- package/i18n/en.json +74 -6
- package/i18n/ru.json +74 -6
- package/icon/styles/_index.scss +5 -0
- package/keyboard/styles/_index.scss +5 -0
- package/llms-full.txt +123 -62
- package/llms.txt +29 -8
- package/loading-bar/styles/_index.scss +5 -0
- package/marquee/styles/_index.scss +7 -2
- package/overlay/styles/_index.scss +5 -0
- package/package.json +13 -1
- package/popover/styles/_index.scss +48 -12
- package/pull-to-refresh/styles/_index.scss +5 -0
- package/result/styles/_index.scss +3 -3
- package/schematics/icon-set/index.js +80 -34
- package/schematics/icon-set/schema.json +8 -3
- package/schematics/ng-add/index.js +5 -2
- package/schematics/page/templates.js +17 -21
- package/schematics/provider/index.js +31 -13
- package/schematics/provider/schema.json +40 -24
- package/schematics/use/index.js +5 -1
- package/schematics/use/schema.json +8 -3
- package/schematics/use/symbol-map.json +6 -177
- package/segmented/styles/_index.scss +1 -1
- package/select/styles/_index.scss +7 -3
- package/shiny-text/styles/_index.scss +5 -0
- package/sidebar/styles/_index.scss +3 -3
- package/speed-dial/styles/_index.scss +12 -1
- package/spotlight-card/styles/_index.scss +5 -0
- package/squircle/styles/_index.scss +5 -0
- package/star-border/styles/_index.scss +5 -0
- package/statistic/styles/_index.scss +2 -2
- package/stepper/styles/_index.scss +3 -3
- package/styles/_animations.scss +6 -0
- package/styles.scss +3 -0
- package/table/styles/_index.scss +100 -2
- package/tabs/styles/_index.scss +1 -1
- package/theme/styles/_colors.scss +65 -2
- package/theme/styles/_dark.scss +18 -6
- package/theme/styles/_focus.scss +2 -8
- package/tilt-card/styles/_index.scss +5 -0
- package/toast/styles/_index.scss +6 -3
- package/tour/styles/_index.scss +63 -0
- package/transfer/styles/_index.scss +105 -0
- package/types/ngwr-alert.d.ts +4 -1
- package/types/ngwr-avatar.d.ts +1 -1
- package/types/ngwr-back-top.d.ts +3 -2
- package/types/ngwr-badge.d.ts +1 -1
- package/types/ngwr-border-glow.d.ts +0 -1
- package/types/ngwr-carousel.d.ts +10 -1
- package/types/ngwr-cascader.d.ts +12 -1
- package/types/ngwr-checkbox.d.ts +9 -1
- package/types/ngwr-command-palette.d.ts +4 -1
- package/types/ngwr-date-picker.d.ts +9 -1
- package/types/ngwr-density.d.ts +1 -1
- package/types/ngwr-divider.d.ts +1 -1
- package/types/ngwr-event-calendar.d.ts +358 -0
- package/types/ngwr-form.d.ts +177 -20
- package/types/ngwr-fuzzy-text.d.ts +8 -0
- package/types/ngwr-gauge.d.ts +4 -1
- package/types/ngwr-i18n.d.ts +15 -0
- package/types/ngwr-input-number.d.ts +8 -1
- package/types/ngwr-input.d.ts +50 -20
- package/types/ngwr-knob.d.ts +4 -1
- package/types/ngwr-lightbox.d.ts +7 -1
- package/types/ngwr-line-chart.d.ts +1 -1
- package/types/ngwr-media.d.ts +1 -1
- package/types/ngwr-meter-group.d.ts +9 -1
- package/types/ngwr-page-header.d.ts +2 -2
- package/types/ngwr-pagination.d.ts +1 -1
- package/types/ngwr-progress.d.ts +4 -1
- package/types/ngwr-rating.d.ts +3 -2
- package/types/ngwr-result.d.ts +12 -6
- package/types/ngwr-segmented.d.ts +6 -0
- package/types/ngwr-select.d.ts +13 -7
- package/types/ngwr-shiny-text.d.ts +2 -4
- package/types/ngwr-speed-dial.d.ts +7 -1
- package/types/ngwr-squircle.d.ts +1 -1
- package/types/ngwr-switch.d.ts +7 -1
- package/types/ngwr-table.d.ts +126 -6
- package/types/ngwr-tabs.d.ts +1 -4
- package/types/ngwr-textarea.d.ts +8 -1
- package/types/ngwr-toolbar.d.ts +2 -2
- package/types/ngwr-tour.d.ts +132 -0
- package/types/ngwr-transfer.d.ts +118 -0
- package/types/ngwr-tree.d.ts +10 -2
- package/types/ngwr-validators.d.ts +62 -2
- package/types/ngwr-version.d.ts +2 -2
- package/typewriter/styles/_index.scss +5 -0
- package/typography/styles/_index.scss +5 -5
- package/virtual-scroll/styles/_index.scss +6 -1
- package/waves/styles/_index.scss +5 -0
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
|
|
70
70
|
&:hover:not(:disabled) .wr-stepper__indicator {
|
|
71
71
|
border-color: var(--wr-color-primary);
|
|
72
|
-
color: var(--wr-color-primary);
|
|
72
|
+
color: var(--wr-color-primary-ink);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
|
|
95
95
|
&__header--active &__indicator {
|
|
96
96
|
border-color: var(--wr-color-primary);
|
|
97
|
-
color: var(--wr-color-primary);
|
|
97
|
+
color: var(--wr-color-primary-ink);
|
|
98
98
|
background: var(--wr-color-primary-soft);
|
|
99
99
|
}
|
|
100
100
|
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
&__header--active &__label {
|
|
117
|
-
color: var(--wr-color-primary);
|
|
117
|
+
color: var(--wr-color-primary-ink);
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
&__optional,
|
package/styles/_animations.scss
CHANGED
|
@@ -106,6 +106,12 @@
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
// Literal curves on purpose. `animation-timing-function` inside a keyframe is
|
|
110
|
+
// resolved when the keyframe is parsed, not against the animated element, so a
|
|
111
|
+
// `var(--wr-ease-*)` here silently evaluates to the element's own
|
|
112
|
+
// animation-timing-function instead — verified in Chrome: the tokenised version
|
|
113
|
+
// reports the element's `steps(4)` where a literal reports the curve. These two
|
|
114
|
+
// are the only motion values in the library that cannot read the token layer.
|
|
109
115
|
@keyframes wr-bounce {
|
|
110
116
|
0%,
|
|
111
117
|
100% {
|
package/styles.scss
CHANGED
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
@forward './divider/styles';
|
|
52
52
|
@forward './donut-chart/styles';
|
|
53
53
|
@forward './drag-drop/styles';
|
|
54
|
+
@forward './event-calendar/styles';
|
|
54
55
|
@forward './drawer/styles';
|
|
55
56
|
@forward './dropdown/styles';
|
|
56
57
|
@forward './empty/styles';
|
|
@@ -112,6 +113,8 @@
|
|
|
112
113
|
@forward './timeline/styles';
|
|
113
114
|
@forward './toast/styles';
|
|
114
115
|
@forward './toolbar/styles';
|
|
116
|
+
@forward './tour/styles';
|
|
117
|
+
@forward './transfer/styles';
|
|
115
118
|
@forward './tree/styles';
|
|
116
119
|
@forward './typewriter/styles';
|
|
117
120
|
@forward './typography/styles';
|
package/table/styles/_index.scss
CHANGED
|
@@ -126,8 +126,67 @@
|
|
|
126
126
|
opacity: 0.35;
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
// NOTE: `.cdk-drag-animating` is NOT here. CDK puts it on the preview clone,
|
|
130
|
+
// which lives in `<body>` — see the rule at the end of this file.
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
// --- Tree rows ------------------------------------------------------------
|
|
134
|
+
// Depth lives on the `<tr>` as `--wr-table-depth` and is spent inside the tree
|
|
135
|
+
// column's cell, not as a lead column: a new column would break `columnOrder`
|
|
136
|
+
// indexes and the pin measurements, and a child would stop being an ordinary
|
|
137
|
+
// `<tr>` going through the same cell loop.
|
|
138
|
+
&__tree-lead {
|
|
139
|
+
display: inline-flex;
|
|
140
|
+
align-items: center;
|
|
141
|
+
vertical-align: middle;
|
|
142
|
+
margin-inline-end: 0.25rem;
|
|
143
|
+
padding-inline-start: calc(var(--wr-table-depth, 0) * var(--wr-table-indent, 1.25rem));
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
&__tree-toggle {
|
|
147
|
+
appearance: none;
|
|
148
|
+
flex: 0 0 auto;
|
|
149
|
+
display: inline-flex;
|
|
150
|
+
align-items: center;
|
|
151
|
+
justify-content: center;
|
|
152
|
+
width: 1.25rem;
|
|
153
|
+
height: 1.25rem;
|
|
154
|
+
padding: 0;
|
|
155
|
+
background: transparent;
|
|
156
|
+
border: 0;
|
|
157
|
+
border-radius: var(--wr-border-radius-sm);
|
|
158
|
+
color: var(--wr-color-on-surface-muted);
|
|
159
|
+
cursor: pointer;
|
|
160
|
+
|
|
161
|
+
&:hover {
|
|
162
|
+
background: var(--wr-color-hover);
|
|
163
|
+
color: var(--wr-color-on-surface);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// A leaf keeps the slot so labels line up down a column, but is not a
|
|
167
|
+
// button and is hidden from assistive tech.
|
|
168
|
+
&--leaf {
|
|
169
|
+
cursor: default;
|
|
170
|
+
visibility: hidden;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
&__tree-icon {
|
|
175
|
+
width: 0.875rem;
|
|
176
|
+
height: 0.875rem;
|
|
177
|
+
transition: transform var(--wr-transition-base);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
&__tree-toggle--open &__tree-icon,
|
|
181
|
+
&__tree-toggle--open .wr-table__tree-icon {
|
|
182
|
+
transform: rotate(90deg);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Card mode stacks label / value with `justify-content: space-between`, so an
|
|
186
|
+
// extra inline child would strand the chevron mid-row. Fold the lead into the
|
|
187
|
+
// value side instead.
|
|
188
|
+
&--responsive &__tree-lead {
|
|
189
|
+
margin-inline-end: 0.375rem;
|
|
131
190
|
}
|
|
132
191
|
|
|
133
192
|
// --- Row selection --------------------------------------------------------
|
|
@@ -206,6 +265,9 @@
|
|
|
206
265
|
}
|
|
207
266
|
|
|
208
267
|
// --- Summary / footer row -------------------------------------------------
|
|
268
|
+
// `&__foot-cell--lead` is emitted on the selection / expand footer cells and
|
|
269
|
+
// carries no styles of its own — it exists as a public hook so consumers can
|
|
270
|
+
// target those two cells without matching on position.
|
|
209
271
|
&__foot-cell {
|
|
210
272
|
padding: calc(0.625rem * var(--wr-density-y, 1)) calc(0.875rem * var(--wr-density-x, 1));
|
|
211
273
|
background: var(--wr-table-head-bg);
|
|
@@ -762,3 +824,39 @@
|
|
|
762
824
|
}
|
|
763
825
|
}
|
|
764
826
|
}
|
|
827
|
+
|
|
828
|
+
// The dragged header's preview is a clone CDK moves to `document.body`, so it
|
|
829
|
+
// leaves `.wr-table` behind and no ancestor selector reaches it — the clone's
|
|
830
|
+
// own `wr-table__th` class does. Declared here rather than inherited: until the
|
|
831
|
+
// drag-drop entry point's rules were scoped, this preview silently wore
|
|
832
|
+
// `wr-sortable-list`'s lift shadow, and scoping them without this would have
|
|
833
|
+
// left the column preview with no chrome at all.
|
|
834
|
+
.cdk-drag-preview.wr-table__th {
|
|
835
|
+
box-sizing: border-box;
|
|
836
|
+
display: flex;
|
|
837
|
+
align-items: center;
|
|
838
|
+
// Every value has to resolve in `<body>`: the `--wr-table-*` tokens are
|
|
839
|
+
// declared on `.wr-table`, which the preview has left, so they are passed with
|
|
840
|
+
// the same defaults that block sets. `--wr-density-*` and `--wr-color-*` are
|
|
841
|
+
// root-level and resolve as-is.
|
|
842
|
+
padding: calc(0.625rem * var(--wr-density-y, 1)) calc(0.875rem * var(--wr-density-x, 1));
|
|
843
|
+
background: var(--wr-table-head-bg, rgba(var(--wr-color-outline-rgb), 0.25));
|
|
844
|
+
color: var(--wr-color-on-surface-muted);
|
|
845
|
+
font-family: var(--wr-font-family-base);
|
|
846
|
+
font-weight: 600;
|
|
847
|
+
font-size: var(--wr-text-xs);
|
|
848
|
+
letter-spacing: var(--wr-table-head-letter-spacing, var(--wr-tracking-normal));
|
|
849
|
+
text-transform: var(--wr-table-head-transform, none);
|
|
850
|
+
white-space: nowrap;
|
|
851
|
+
border-radius: var(--wr-border-radius-sm);
|
|
852
|
+
box-shadow: 0 8px 12px rgba(var(--wr-color-backdrop-rgb), 0.24);
|
|
853
|
+
// The preview must track the cursor 1:1 — never animate its transform.
|
|
854
|
+
transition: none;
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
// The settle animation after a drop. Same element as the rule above — CDK adds
|
|
858
|
+
// `cdk-drag-animating` to the preview while it flies back to the drop slot — so
|
|
859
|
+
// it must come after it to beat that `transition: none` at equal specificity.
|
|
860
|
+
.cdk-drag-animating.wr-table__th {
|
|
861
|
+
transition: transform 0.18s var(--wr-ease-out);
|
|
862
|
+
}
|
package/tabs/styles/_index.scss
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
--wr-tabs-border: var(--wr-color-outline);
|
|
5
5
|
--wr-tabs-color: var(--wr-color-on-surface-muted);
|
|
6
6
|
--wr-tabs-color-hover: var(--wr-color-on-surface);
|
|
7
|
-
--wr-tabs-color-active: var(--wr-color-primary);
|
|
7
|
+
--wr-tabs-color-active: var(--wr-color-primary-ink);
|
|
8
8
|
--wr-tabs-indicator: var(--wr-color-primary);
|
|
9
9
|
--wr-tabs-font-size: var(--wr-control-font-size-md);
|
|
10
10
|
--wr-tabs-line-height: var(--wr-control-line-height-md);
|
|
@@ -28,7 +28,15 @@ $base-colors: (
|
|
|
28
28
|
$contrast-threshold: 150 !default;
|
|
29
29
|
|
|
30
30
|
// Dark text used on light backgrounds.
|
|
31
|
-
|
|
31
|
+
//
|
|
32
|
+
// Pure black, not a near-black. `_contrast()` does not blend — it picks
|
|
33
|
+
// whichever of these two candidates scores higher against the fill — so this
|
|
34
|
+
// value IS the ceiling for every intent whose label comes out dark, and a
|
|
35
|
+
// softer black spends contrast that cannot be recovered anywhere else.
|
|
36
|
+
// Measured: #171616 cost between 0.74 and 1.95 across the ramp, and left
|
|
37
|
+
// `secondary` clearing AA by 0.02 when 5.26:1 was available. On a saturated
|
|
38
|
+
// chip the two are hard to tell apart; the ratio is not.
|
|
39
|
+
$contrast-dark: #000000 !default;
|
|
32
40
|
|
|
33
41
|
// Light text used on dark backgrounds.
|
|
34
42
|
$contrast-light: #ffffff !default;
|
|
@@ -141,7 +149,11 @@ $contrast-light: #ffffff !default;
|
|
|
141
149
|
// labels / captions / placeholders read consistently. One place each.
|
|
142
150
|
// Only the full-opacity token above is AA-safe for body text; these two are
|
|
143
151
|
// decorative by design (0.85 reaches ~3.5:1, 0.6 ~2.3:1 on a light surface).
|
|
144
|
-
|
|
152
|
+
// 0.95, not 0.85: the role itself is 5.35:1 on the light surface, but wrapping
|
|
153
|
+
// it at 0.85 composited to #778291 — 3.90:1, under the AA bar. 0.95 is the
|
|
154
|
+
// most softening that still clears it (4.81), which leaves this token barely
|
|
155
|
+
// distinguishable from the flat role it wraps.
|
|
156
|
+
--wr-color-text-muted: rgba(var(--wr-color-muted-text-rgb), 0.95);
|
|
145
157
|
--wr-color-text-faint: rgba(var(--wr-color-muted-text-rgb), 0.6);
|
|
146
158
|
|
|
147
159
|
// Neutral gray ramp — a FIXED primitive scale (slate). Each step is a stable
|
|
@@ -214,6 +226,57 @@ $contrast-light: #ffffff !default;
|
|
|
214
226
|
--wr-color-#{$name}-soft-contrast: color-mix(in srgb, var(--wr-color-#{$name}) 62%, var(--wr-color-dark));
|
|
215
227
|
--wr-color-#{$name}-active: rgba(var(--wr-color-#{$name}-rgb), 0.2);
|
|
216
228
|
}
|
|
229
|
+
|
|
230
|
+
// `-ink`: the intent used as TEXT on `--wr-color-surface`.
|
|
231
|
+
//
|
|
232
|
+
// v10 fixed the opposite direction — `-contrast`, the label ON a filled
|
|
233
|
+
// intent. The inverse was never covered, and the light theme fails WCAG AA
|
|
234
|
+
// everywhere an outlined / bordered variant paints the hue as its own label:
|
|
235
|
+
// warning lands at 1.71:1 against a 4.5 bar, medium 3.10, success 3.33,
|
|
236
|
+
// danger and info 3.68, secondary 3.99. Dark passes on all of them, because
|
|
237
|
+
// its bases were retuned lighter for a dark canvas and that happens to be the
|
|
238
|
+
// accessible direction.
|
|
239
|
+
//
|
|
240
|
+
// Same recipe as `-soft-contrast`: mixing toward `--wr-color-dark` darkens in
|
|
241
|
+
// light and lightens in dark from ONE declaration, because that token itself
|
|
242
|
+
// flips. The share is per intent rather than uniform — warning has to travel
|
|
243
|
+
// furthest (a yellow readable on white is not yellow), and forcing every
|
|
244
|
+
// intent to warning's share would drag primary to near-navy for no reason.
|
|
245
|
+
// Each is the measured minimum that clears 4.5:1 in BOTH themes on the surface
|
|
246
|
+
// and on the tag's 6% / 10% tints, with 3pp of headroom.
|
|
247
|
+
// Calibrated against the `-soft` TINT, not the plain surface — it is the
|
|
248
|
+
// darker of the two backgrounds `-ink` is documented for, in both themes, so
|
|
249
|
+
// it is the binding one.
|
|
250
|
+
//
|
|
251
|
+
// Each share is the LARGEST (most saturated) value that still reaches 5.0:1
|
|
252
|
+
// there. Targeting AA's 4.5 exactly is what the first pass did, and it left
|
|
253
|
+
// every intent between 4.59 and 4.83 — inside rounding distance of the line.
|
|
254
|
+
// Anything that shifted the background a little then pushed it under:
|
|
255
|
+
// `wr-typography--code` measured 4.24 with `success-ink`, `wr-tag--primary`
|
|
256
|
+
// 4.42. Half a point of headroom absorbs that, for 2–7 points of share.
|
|
257
|
+
//
|
|
258
|
+
// Going further is not free: 5.25 costs 7–11 points and 5.5 up to 14, which
|
|
259
|
+
// on `primary` means 93% -> 79% and a visibly muddier blue.
|
|
260
|
+
$ink-mix: (
|
|
261
|
+
primary: 86%,
|
|
262
|
+
secondary: 75%,
|
|
263
|
+
success: 67%,
|
|
264
|
+
warning: 48%,
|
|
265
|
+
danger: 72%,
|
|
266
|
+
info: 71%,
|
|
267
|
+
medium: 65%,
|
|
268
|
+
);
|
|
269
|
+
|
|
270
|
+
@each $name, $share in $ink-mix {
|
|
271
|
+
--wr-color-#{$name}-ink: color-mix(in srgb, var(--wr-color-#{$name}) #{$share}, var(--wr-color-dark));
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// `light` is a surface tone by definition — a hair off the page background in
|
|
275
|
+
// either theme — so there is no darkening that keeps it recognisable AND
|
|
276
|
+
// readable. It borrows the page's own ink; the border still carries the
|
|
277
|
+
// intent. `dark` already IS the ink.
|
|
278
|
+
--wr-color-light-ink: var(--wr-color-on-surface);
|
|
279
|
+
--wr-color-dark-ink: var(--wr-color-dark);
|
|
217
280
|
}
|
|
218
281
|
|
|
219
282
|
// Public SCSS list
|
package/theme/styles/_dark.scss
CHANGED
|
@@ -38,7 +38,8 @@ $_dark: #e6ebf3;
|
|
|
38
38
|
// Text
|
|
39
39
|
// Softer than pure-white — easier on the eyes for long reading.
|
|
40
40
|
--wr-color-dark: #{$_dark};
|
|
41
|
-
--wr-color-dark-rgb:
|
|
41
|
+
--wr-color-dark-rgb:
|
|
42
|
+
#{color.channel($_dark, 'red')}, #{color.channel($_dark, 'green')}, #{color.channel($_dark, 'blue')};
|
|
42
43
|
// `*-contrast` values are baked at SCSS compile time from the light
|
|
43
44
|
// palette, so they don't auto-flip when `--wr-color-dark` /
|
|
44
45
|
// `--wr-color-white` are reassigned for dark mode. Tooltip-style
|
|
@@ -50,8 +51,16 @@ $_dark: #e6ebf3;
|
|
|
50
51
|
// palette's near-black ink, so `.wr-btn--dark:hover` painted itself almost
|
|
51
52
|
// black while keeping the near-black `-contrast` text. `dark` is an INK token,
|
|
52
53
|
// so unlike `light` below its shades mean exactly what they say.
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
// `color.scale`, not `color.adjust`, for the two lighter steps. In dark mode
|
|
55
|
+
// `dark` IS the near-white ink (#e6ebf3, L 92.7%), so `adjust(+10%)` asks for
|
|
56
|
+
// L 102.7% — out of gamut. Sass then cannot emit rgb and falls back to legacy
|
|
57
|
+
// comma-hsl with an out-of-range lightness, which browsers clamp: the token
|
|
58
|
+
// silently became pure white instead of a controlled step. `scale` moves a
|
|
59
|
+
// percentage of the REMAINING headroom, so it approaches white without ever
|
|
60
|
+
// leaving the gamut. 70% reproduces the previous `-light` to within a rounding
|
|
61
|
+
// step; 85% is the distinct step beyond it.
|
|
62
|
+
--wr-color-dark-light: #{color.scale($_dark, $lightness: 70%)};
|
|
63
|
+
--wr-color-dark-lighter: #{color.scale($_dark, $lightness: 85%)};
|
|
55
64
|
--wr-color-dark-dark: #{color.adjust($_dark, $lightness: -5%)};
|
|
56
65
|
--wr-color-dark-darker: #{color.adjust($_dark, $lightness: -10%)};
|
|
57
66
|
|
|
@@ -63,7 +72,8 @@ $_dark: #e6ebf3;
|
|
|
63
72
|
// divider on cards / inputs without shouting — matches what Vercel
|
|
64
73
|
// and shadcn ship for the same job.
|
|
65
74
|
--wr-color-light: #{$_light};
|
|
66
|
-
--wr-color-light-rgb:
|
|
75
|
+
--wr-color-light-rgb:
|
|
76
|
+
#{color.channel($_light, 'red')}, #{color.channel($_light, 'green')}, #{color.channel($_light, 'blue')};
|
|
67
77
|
// The baked contrast pairs with the LIGHT value (#cbd5e1 → dark text);
|
|
68
78
|
// the dark surface above needs light text instead.
|
|
69
79
|
--wr-color-light-contrast: #e6ebf3;
|
|
@@ -89,7 +99,8 @@ $_dark: #e6ebf3;
|
|
|
89
99
|
// Lifted from slate-400 → slate-300-ish for better legibility on
|
|
90
100
|
// the deeper canvas.
|
|
91
101
|
--wr-color-medium: #{$_medium};
|
|
92
|
-
--wr-color-medium-rgb:
|
|
102
|
+
--wr-color-medium-rgb:
|
|
103
|
+
#{color.channel($_medium, 'red')}, #{color.channel($_medium, 'green')}, #{color.channel($_medium, 'blue')};
|
|
93
104
|
// This block shipped base + rgb only, so contrast and all four shades still
|
|
94
105
|
// came from the light palette's slate. Ink token, plain shades.
|
|
95
106
|
--wr-color-medium-contrast: #{colors.contrast($_medium)};
|
|
@@ -125,7 +136,8 @@ $_dark: #e6ebf3;
|
|
|
125
136
|
// Re-derived, not inherited: the light-palette token would pair the wrong
|
|
126
137
|
// foreground with a re-tuned base.
|
|
127
138
|
--wr-color-#{$name}-contrast: #{colors.contrast($base)};
|
|
128
|
-
--wr-color-#{$name}-rgb:
|
|
139
|
+
--wr-color-#{$name}-rgb:
|
|
140
|
+
#{color.channel($base, 'red')}, #{color.channel($base, 'green')}, #{color.channel($base, 'blue')};
|
|
129
141
|
--wr-color-#{$name}-light: #{color.adjust($base, $lightness: 5%)};
|
|
130
142
|
--wr-color-#{$name}-lighter: #{color.adjust($base, $lightness: 10%)};
|
|
131
143
|
--wr-color-#{$name}-dark: #{color.adjust($base, $lightness: -5%)};
|
package/theme/styles/_focus.scss
CHANGED
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
// Mention option rows
|
|
40
|
-
.wr-
|
|
40
|
+
.wr-mention-panel__option:focus-visible {
|
|
41
41
|
@include focus-ring;
|
|
42
42
|
}
|
|
43
43
|
|
|
@@ -64,13 +64,7 @@
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
// Stepper step headers
|
|
67
|
-
.wr-
|
|
68
|
-
@include focus-ring;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Toast close/copy
|
|
72
|
-
.wr-toast__close:focus-visible,
|
|
73
|
-
.wr-toast__copy:focus-visible {
|
|
67
|
+
.wr-stepper__header:focus-visible {
|
|
74
68
|
@include focus-ring;
|
|
75
69
|
}
|
|
76
70
|
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
// Pull the whole theme so a standalone `@use 'ngwr/<name>'` brings in every
|
|
2
|
+
// design token this stylesheet references. Sass deduplicates `@use` per
|
|
3
|
+
// compilation, so the umbrella sheet still emits the theme only once.
|
|
4
|
+
@use '../../theme/styles' as theme;
|
|
5
|
+
|
|
1
6
|
// 3D mouse-tilt card. The transform is set imperatively by `[wrTilt]`,
|
|
2
7
|
// so this stylesheet just covers the card chrome + the optional glare
|
|
3
8
|
// overlay that the directive appends when `[glare]="true"`.
|
package/toast/styles/_index.scss
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
@use '../../theme/styles' as theme;
|
|
2
2
|
|
|
3
|
+
// `info` mapped to `primary` before the `info` intent existed; alert has used
|
|
4
|
+
// the real intent since it landed, so the same toast and alert read as two
|
|
5
|
+
// different colours for the same meaning.
|
|
3
6
|
$toast-colors: (
|
|
4
|
-
info:
|
|
7
|
+
info: info,
|
|
5
8
|
success: success,
|
|
6
9
|
warning: warning,
|
|
7
10
|
danger: danger,
|
|
@@ -59,7 +62,7 @@ $toast-colors: (
|
|
|
59
62
|
width: auto;
|
|
60
63
|
max-width: calc(100% - 2rem);
|
|
61
64
|
transition:
|
|
62
|
-
transform 240ms
|
|
65
|
+
transform 240ms var(--wr-ease-out),
|
|
63
66
|
opacity 240ms ease,
|
|
64
67
|
box-shadow 240ms ease;
|
|
65
68
|
transform-origin: center top;
|
|
@@ -89,7 +92,7 @@ $toast-colors: (
|
|
|
89
92
|
|
|
90
93
|
&--stack.wr-toast-host--expanded .wr-toast {
|
|
91
94
|
transition:
|
|
92
|
-
transform 240ms
|
|
95
|
+
transform 240ms var(--wr-ease-out),
|
|
93
96
|
opacity 240ms ease;
|
|
94
97
|
}
|
|
95
98
|
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
@use '../../theme/styles' as theme;
|
|
2
|
+
|
|
3
|
+
// The cut-out. A bare box sized to the spotlit element, dimming everything
|
|
4
|
+
// around it with one enormous spread shadow — the target itself is never
|
|
5
|
+
// covered, so it stays readable and clickable.
|
|
6
|
+
.wr-tour__spotlight {
|
|
7
|
+
position: fixed;
|
|
8
|
+
z-index: 1000;
|
|
9
|
+
pointer-events: none;
|
|
10
|
+
border-radius: var(--wr-border-radius-base);
|
|
11
|
+
box-shadow: 0 0 0 9999px rgba(var(--wr-color-backdrop-rgb), 0.55);
|
|
12
|
+
transition:
|
|
13
|
+
top var(--wr-transition-base),
|
|
14
|
+
left var(--wr-transition-base),
|
|
15
|
+
width var(--wr-transition-base),
|
|
16
|
+
height var(--wr-transition-base);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.wr-tour-popup {
|
|
20
|
+
display: block;
|
|
21
|
+
max-width: 20rem;
|
|
22
|
+
padding: 1rem;
|
|
23
|
+
background: var(--wr-color-surface);
|
|
24
|
+
color: var(--wr-color-on-surface);
|
|
25
|
+
border: 1px solid var(--wr-color-outline);
|
|
26
|
+
@include theme.smooth-br(var(--wr-border-radius-base));
|
|
27
|
+
box-shadow: 0 12px 24px rgba(var(--wr-color-backdrop-rgb), 0.24);
|
|
28
|
+
font-family: var(--wr-font-family-base);
|
|
29
|
+
|
|
30
|
+
&__progress {
|
|
31
|
+
margin: 0 0 0.375rem;
|
|
32
|
+
font-size: var(--wr-text-xs);
|
|
33
|
+
color: var(--wr-color-on-surface-muted);
|
|
34
|
+
font-variant-numeric: tabular-nums;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&__title {
|
|
38
|
+
margin: 0 0 0.375rem;
|
|
39
|
+
font-size: var(--wr-text-base);
|
|
40
|
+
font-weight: var(--wr-font-weight-semibold);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&__content {
|
|
44
|
+
margin: 0 0 0.875rem;
|
|
45
|
+
font-size: var(--wr-text-sm);
|
|
46
|
+
line-height: var(--wr-leading-normal);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&__actions {
|
|
50
|
+
display: flex;
|
|
51
|
+
align-items: center;
|
|
52
|
+
gap: 0.5rem;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&__spacer {
|
|
56
|
+
flex: 1 1 auto;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// The popup rides above the cut-out.
|
|
61
|
+
.wr-tour-overlay {
|
|
62
|
+
z-index: 1001;
|
|
63
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
@use '../../theme/styles' as theme;
|
|
2
|
+
|
|
3
|
+
.wr-transfer {
|
|
4
|
+
--wr-transfer-pane-width: 14rem;
|
|
5
|
+
--wr-transfer-pane-height: 15rem;
|
|
6
|
+
|
|
7
|
+
display: flex;
|
|
8
|
+
align-items: stretch;
|
|
9
|
+
gap: 0.75rem;
|
|
10
|
+
font-family: var(--wr-font-family-base);
|
|
11
|
+
color: var(--wr-color-on-surface);
|
|
12
|
+
|
|
13
|
+
&--disabled {
|
|
14
|
+
opacity: 0.6;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&__pane {
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
flex: 1 1 var(--wr-transfer-pane-width);
|
|
21
|
+
min-width: 0;
|
|
22
|
+
border: 1px solid var(--wr-color-outline);
|
|
23
|
+
@include theme.smooth-br(var(--wr-border-radius-base));
|
|
24
|
+
background: var(--wr-color-surface);
|
|
25
|
+
overflow: hidden;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&__head {
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
gap: 0.5rem;
|
|
32
|
+
padding: 0.5rem 0.625rem;
|
|
33
|
+
border-bottom: 1px solid var(--wr-color-outline);
|
|
34
|
+
background: rgba(var(--wr-color-outline-rgb), 0.25);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&__title {
|
|
38
|
+
flex: 1 1 auto;
|
|
39
|
+
min-width: 0;
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
text-overflow: ellipsis;
|
|
42
|
+
white-space: nowrap;
|
|
43
|
+
font-size: var(--wr-text-sm);
|
|
44
|
+
font-weight: var(--wr-font-weight-medium);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&__count {
|
|
48
|
+
flex: 0 0 auto;
|
|
49
|
+
font-size: var(--wr-text-xs);
|
|
50
|
+
color: var(--wr-color-on-surface-muted);
|
|
51
|
+
font-variant-numeric: tabular-nums;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&__search {
|
|
55
|
+
padding: 0.5rem 0.625rem;
|
|
56
|
+
border-bottom: 1px solid var(--wr-color-outline);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&__list {
|
|
60
|
+
flex: 1 1 auto;
|
|
61
|
+
margin: 0;
|
|
62
|
+
padding: 0.25rem;
|
|
63
|
+
list-style: none;
|
|
64
|
+
overflow-y: auto;
|
|
65
|
+
max-height: var(--wr-transfer-pane-height);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
&__item {
|
|
69
|
+
padding: 0.25rem 0.375rem;
|
|
70
|
+
border-radius: var(--wr-border-radius-sm);
|
|
71
|
+
|
|
72
|
+
&:hover {
|
|
73
|
+
background: var(--wr-color-hover);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
&--disabled:hover {
|
|
77
|
+
background: transparent;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
&__empty {
|
|
82
|
+
padding: 1rem 0.375rem;
|
|
83
|
+
text-align: center;
|
|
84
|
+
font-size: var(--wr-text-sm);
|
|
85
|
+
color: var(--wr-color-on-surface-muted);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&__actions {
|
|
89
|
+
display: flex;
|
|
90
|
+
flex-direction: column;
|
|
91
|
+
justify-content: center;
|
|
92
|
+
gap: 0.5rem;
|
|
93
|
+
flex: 0 0 auto;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
&__move .wr-icon__svg {
|
|
97
|
+
width: 1rem;
|
|
98
|
+
height: 1rem;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// No container query here on purpose: `@container` only styles DESCENDANTS, so
|
|
102
|
+
// a rule that reflows `.wr-transfer` itself could never match its own query.
|
|
103
|
+
// Doing it properly means the house `responsive` opt-in modifier (a wrapper
|
|
104
|
+
// that establishes the container) — not yet shipped for this component.
|
|
105
|
+
}
|
package/types/ngwr-alert.d.ts
CHANGED
|
@@ -23,6 +23,9 @@ type WrAlertType = 'info' | 'success' | 'warning' | 'danger' | 'neutral' | 'offl
|
|
|
23
23
|
* @see https://ngwr.dev/reference/components/alert
|
|
24
24
|
*/
|
|
25
25
|
declare class WrAlert {
|
|
26
|
+
/** Accessible name. Falls back to `alert.close`, then `'Close alert'`. */
|
|
27
|
+
readonly closeLabel: _angular_core.InputSignal<string | null>;
|
|
28
|
+
protected readonly resolvedCloseLabel: _angular_core.Signal<string>;
|
|
26
29
|
/**
|
|
27
30
|
* Optional headline shown at the top of the alert.
|
|
28
31
|
*
|
|
@@ -71,7 +74,7 @@ declare class WrAlert {
|
|
|
71
74
|
protected readonly liveLevel: _angular_core.Signal<"assertive" | "polite" | null>;
|
|
72
75
|
protected onClose(): void;
|
|
73
76
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrAlert, never>;
|
|
74
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrAlert, "wr-alert", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "closeable": { "alias": "closeable"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, never, true, never>;
|
|
77
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrAlert, "wr-alert", never, { "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "closeable": { "alias": "closeable"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, never, true, never>;
|
|
75
78
|
}
|
|
76
79
|
|
|
77
80
|
export { WrAlert };
|
package/types/ngwr-avatar.d.ts
CHANGED
package/types/ngwr-back-top.d.ts
CHANGED
|
@@ -20,8 +20,9 @@ declare class WrBackTop {
|
|
|
20
20
|
readonly visibilityThreshold: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
21
21
|
/** Pixel offset subtracted from the scroll target — for sticky headers. @default 0 */
|
|
22
22
|
readonly offset: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
23
|
-
/** Accessible label for the button.
|
|
24
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
23
|
+
/** Accessible label for the button. Falls back to `backTop.label`, then `'Back to top'`. */
|
|
24
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
25
|
+
protected readonly resolvedAriaLabel: _angular_core.Signal<string>;
|
|
25
26
|
protected readonly visible: _angular_core.WritableSignal<boolean>;
|
|
26
27
|
private readonly scroll;
|
|
27
28
|
private readonly platform;
|
package/types/ngwr-badge.d.ts
CHANGED
|
@@ -50,7 +50,6 @@ declare class WrBorderGlow {
|
|
|
50
50
|
readonly animated: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
51
51
|
private readonly el;
|
|
52
52
|
private readonly platform;
|
|
53
|
-
private readonly destroyRef;
|
|
54
53
|
private readonly isBrowser;
|
|
55
54
|
/** Inline CSS variable bag — recomputed when colour / radius / sensitivity inputs change. */
|
|
56
55
|
protected readonly cssVars: _angular_core.Signal<Record<string, string>>;
|
package/types/ngwr-carousel.d.ts
CHANGED
|
@@ -26,6 +26,15 @@ declare class WrCarouselSlide {
|
|
|
26
26
|
*/
|
|
27
27
|
declare class WrCarousel {
|
|
28
28
|
/** Active slide index. Two-way bindable. @default 0 */
|
|
29
|
+
/** Accessible name of the previous-slide button. Falls back to `carousel.prev`. */
|
|
30
|
+
readonly prevLabel: _angular_core.InputSignal<string | null>;
|
|
31
|
+
/** Accessible name of the next-slide button. Falls back to `carousel.next`. */
|
|
32
|
+
readonly nextLabel: _angular_core.InputSignal<string | null>;
|
|
33
|
+
/** Accessible name of the dot group. Falls back to `carousel.pagination`. */
|
|
34
|
+
readonly paginationLabel: _angular_core.InputSignal<string | null>;
|
|
35
|
+
protected readonly resolvedPrevLabel: _angular_core.Signal<string>;
|
|
36
|
+
protected readonly resolvedNextLabel: _angular_core.Signal<string>;
|
|
37
|
+
protected readonly resolvedPaginationLabel: _angular_core.Signal<string>;
|
|
29
38
|
readonly active: _angular_core.ModelSignal<number>;
|
|
30
39
|
/** Show prev / next arrow buttons. @default true */
|
|
31
40
|
readonly showArrows: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
@@ -58,7 +67,7 @@ declare class WrCarousel {
|
|
|
58
67
|
protected onSwipeMove(event: TouchEvent): void;
|
|
59
68
|
protected onSwipeEnd(event: TouchEvent, viewport: HTMLElement): void;
|
|
60
69
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrCarousel, never>;
|
|
61
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCarousel, "wr-carousel", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "showArrows": { "alias": "showArrows"; "required": false; "isSignal": true; }; "showDots": { "alias": "showDots"; "required": false; "isSignal": true; }; "autoplay": { "alias": "autoplay"; "required": false; "isSignal": true; }; "intervalMs": { "alias": "intervalMs"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, ["slides"], ["*"], true, never>;
|
|
70
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCarousel, "wr-carousel", never, { "prevLabel": { "alias": "prevLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "paginationLabel": { "alias": "paginationLabel"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "showArrows": { "alias": "showArrows"; "required": false; "isSignal": true; }; "showDots": { "alias": "showDots"; "required": false; "isSignal": true; }; "autoplay": { "alias": "autoplay"; "required": false; "isSignal": true; }; "intervalMs": { "alias": "intervalMs"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, ["slides"], ["*"], true, never>;
|
|
62
71
|
}
|
|
63
72
|
|
|
64
73
|
export { WrCarousel, WrCarouselSlide };
|