ngwr 14.3.0 → 14.4.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 +1 -1
- package/avatar/styles/_index.scss +4 -2
- package/badge/styles/_index.scss +4 -1
- package/badge/styles/_tag.scss +3 -0
- package/cascader/styles/_rules.scss +3 -0
- package/command-palette/styles/_index.scss +23 -0
- package/context-menu/styles/_index.scss +13 -1
- package/fesm2022/ngwr-action-sheet.mjs +3 -3
- package/fesm2022/ngwr-affix.mjs +17 -4
- package/fesm2022/ngwr-affix.mjs.map +1 -1
- package/fesm2022/ngwr-alert.mjs +4 -4
- package/fesm2022/ngwr-alert.mjs.map +1 -1
- package/fesm2022/ngwr-anchor.mjs +3 -3
- package/fesm2022/ngwr-aurora.mjs +3 -3
- package/fesm2022/ngwr-avatar.mjs +3 -3
- package/fesm2022/ngwr-back-top.mjs +3 -3
- package/fesm2022/ngwr-badge.mjs +6 -6
- package/fesm2022/ngwr-bar-chart-testing.mjs +18 -2
- package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-bar-chart.mjs +3 -3
- package/fesm2022/ngwr-blur-text.mjs +3 -3
- package/fesm2022/ngwr-border-glow.mjs +3 -3
- package/fesm2022/ngwr-breadcrumbs.mjs +6 -6
- package/fesm2022/ngwr-burger.mjs +3 -3
- package/fesm2022/ngwr-button.mjs +6 -6
- package/fesm2022/ngwr-calendar-heatmap-testing.mjs +12 -9
- package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +1 -1
- package/fesm2022/ngwr-calendar-heatmap.mjs +35 -7
- package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
- package/fesm2022/ngwr-calendar.mjs +32 -4
- package/fesm2022/ngwr-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-card.mjs +9 -9
- package/fesm2022/ngwr-carousel.mjs +6 -6
- package/fesm2022/ngwr-cascader-testing.mjs +87 -17
- package/fesm2022/ngwr-cascader-testing.mjs.map +1 -1
- package/fesm2022/ngwr-cascader.mjs +63 -4
- package/fesm2022/ngwr-cascader.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox-testing.mjs +13 -2
- package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox.mjs +42 -7
- package/fesm2022/ngwr-checkbox.mjs.map +1 -1
- package/fesm2022/ngwr-circular-text.mjs +3 -3
- package/fesm2022/ngwr-click-spark.mjs +3 -3
- package/fesm2022/ngwr-clipboard.mjs +3 -3
- package/fesm2022/ngwr-collapse.mjs +9 -9
- package/fesm2022/ngwr-color-picker.mjs +6 -6
- package/fesm2022/ngwr-command-palette.mjs +16 -3
- package/fesm2022/ngwr-command-palette.mjs.map +1 -1
- package/fesm2022/ngwr-compare.mjs +3 -3
- package/fesm2022/ngwr-confetti.mjs +3 -3
- package/fesm2022/ngwr-context-menu.mjs +12 -12
- package/fesm2022/ngwr-cookie.mjs +3 -3
- package/fesm2022/ngwr-counter.mjs +6 -6
- package/fesm2022/ngwr-date-adapters-fns.mjs +3 -3
- package/fesm2022/ngwr-date-adapters-luxon.mjs +3 -3
- package/fesm2022/ngwr-date-picker.mjs +81 -26
- package/fesm2022/ngwr-date-picker.mjs.map +1 -1
- package/fesm2022/ngwr-date.mjs +3 -3
- package/fesm2022/ngwr-decrypt-text.mjs +3 -3
- package/fesm2022/ngwr-density.mjs +6 -6
- package/fesm2022/ngwr-descriptions.mjs +6 -6
- package/fesm2022/ngwr-dialog.mjs +15 -15
- package/fesm2022/ngwr-directives.mjs +12 -12
- package/fesm2022/ngwr-divider.mjs +3 -3
- package/fesm2022/ngwr-donut-chart-testing.mjs +18 -2
- package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-donut-chart.mjs +4 -4
- package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
- package/fesm2022/ngwr-drag-drop.mjs +6 -6
- package/fesm2022/ngwr-drawer.mjs +18 -18
- package/fesm2022/ngwr-dropdown.mjs +32 -14
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-empty.mjs +3 -3
- package/fesm2022/ngwr-event-calendar.mjs +6 -6
- package/fesm2022/ngwr-falling-text.mjs +3 -3
- package/fesm2022/ngwr-file-upload.mjs +18 -5
- package/fesm2022/ngwr-file-upload.mjs.map +1 -1
- package/fesm2022/ngwr-form.mjs +66 -14
- package/fesm2022/ngwr-form.mjs.map +1 -1
- package/fesm2022/ngwr-fuzzy-text.mjs +3 -3
- package/fesm2022/ngwr-gauge-testing.mjs +16 -2
- package/fesm2022/ngwr-gauge-testing.mjs.map +1 -1
- package/fesm2022/ngwr-gauge.mjs +3 -3
- package/fesm2022/ngwr-glitch-text.mjs +3 -3
- package/fesm2022/ngwr-gradient-text.mjs +3 -3
- package/fesm2022/ngwr-hotkey.mjs +6 -6
- package/fesm2022/ngwr-i18n-ar.mjs +2 -0
- package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-cs.mjs +2 -0
- package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-de.mjs +2 -0
- package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-en.mjs +14 -2
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-es.mjs +2 -0
- package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-fr.mjs +2 -0
- package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-he.mjs +2 -0
- package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-hi.mjs +2 -0
- package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-id.mjs +2 -0
- package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-it.mjs +2 -0
- package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ja.mjs +2 -0
- package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ko.mjs +2 -0
- package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-nl.mjs +2 -0
- package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-pl.mjs +2 -0
- package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-pt.mjs +2 -0
- package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ru.mjs +2 -0
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-sv.mjs +2 -0
- package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-tr.mjs +2 -0
- package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-uk.mjs +2 -0
- package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-vi.mjs +2 -0
- package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-zh-TW.mjs +2 -0
- package/fesm2022/ngwr-i18n-zh-TW.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-zh.mjs +2 -0
- package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
- package/fesm2022/ngwr-i18n.mjs +9 -9
- package/fesm2022/ngwr-icon.mjs +6 -6
- package/fesm2022/ngwr-image-cropper.mjs +3 -3
- package/fesm2022/ngwr-input-number.mjs +15 -6
- package/fesm2022/ngwr-input-number.mjs.map +1 -1
- package/fesm2022/ngwr-input-otp.mjs +38 -6
- package/fesm2022/ngwr-input-otp.mjs.map +1 -1
- package/fesm2022/ngwr-input.mjs +15 -15
- package/fesm2022/ngwr-keyboard.mjs +3 -3
- package/fesm2022/ngwr-knob-testing.mjs +11 -3
- package/fesm2022/ngwr-knob-testing.mjs.map +1 -1
- package/fesm2022/ngwr-knob.mjs +19 -4
- package/fesm2022/ngwr-knob.mjs.map +1 -1
- package/fesm2022/ngwr-layout.mjs +15 -15
- package/fesm2022/ngwr-lightbox.mjs +3 -3
- package/fesm2022/ngwr-line-chart-testing.mjs +18 -2
- package/fesm2022/ngwr-line-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart.mjs +22 -4
- package/fesm2022/ngwr-line-chart.mjs.map +1 -1
- package/fesm2022/ngwr-list.mjs +6 -6
- package/fesm2022/ngwr-loading-bar.mjs +6 -6
- package/fesm2022/ngwr-markdown.mjs +6 -6
- package/fesm2022/ngwr-marquee.mjs +3 -3
- package/fesm2022/ngwr-media.mjs +3 -3
- package/fesm2022/ngwr-mention.mjs +6 -6
- package/fesm2022/ngwr-meta.mjs +6 -6
- package/fesm2022/ngwr-meter-group.mjs +3 -3
- package/fesm2022/ngwr-overlay.mjs +6 -6
- package/fesm2022/ngwr-page-header.mjs +3 -3
- package/fesm2022/ngwr-pagination.mjs +33 -6
- package/fesm2022/ngwr-pagination.mjs.map +1 -1
- package/fesm2022/ngwr-pipes.mjs +21 -21
- package/fesm2022/ngwr-platform.mjs +9 -9
- package/fesm2022/ngwr-popconfirm.mjs +6 -6
- package/fesm2022/ngwr-popover.mjs +29 -11
- package/fesm2022/ngwr-popover.mjs.map +1 -1
- package/fesm2022/ngwr-progress.mjs +3 -3
- package/fesm2022/ngwr-pull-to-refresh.mjs +3 -3
- package/fesm2022/ngwr-qr.mjs +3 -3
- package/fesm2022/ngwr-radio.mjs +6 -6
- package/fesm2022/ngwr-rating-testing.mjs +12 -3
- package/fesm2022/ngwr-rating-testing.mjs.map +1 -1
- package/fesm2022/ngwr-rating.mjs +19 -4
- package/fesm2022/ngwr-rating.mjs.map +1 -1
- package/fesm2022/ngwr-result.mjs +13 -13
- package/fesm2022/ngwr-result.mjs.map +1 -1
- package/fesm2022/ngwr-rotating-text.mjs +3 -3
- package/fesm2022/ngwr-schema-form.mjs +40 -4
- package/fesm2022/ngwr-schema-form.mjs.map +1 -1
- package/fesm2022/ngwr-scroll.mjs +3 -3
- package/fesm2022/ngwr-segmented.mjs +3 -3
- package/fesm2022/ngwr-select.mjs +9 -9
- package/fesm2022/ngwr-shiny-text.mjs +6 -6
- package/fesm2022/ngwr-sidebar.mjs +3 -3
- package/fesm2022/ngwr-skeleton.mjs +3 -3
- package/fesm2022/ngwr-slider.mjs +18 -5
- package/fesm2022/ngwr-slider.mjs.map +1 -1
- package/fesm2022/ngwr-sparkline.mjs +3 -3
- package/fesm2022/ngwr-speed-dial.mjs +3 -3
- package/fesm2022/ngwr-spinner.mjs +3 -3
- package/fesm2022/ngwr-splash-cursor.mjs +3 -3
- package/fesm2022/ngwr-split-text.mjs +3 -3
- package/fesm2022/ngwr-splitter.mjs +3 -3
- package/fesm2022/ngwr-spotlight-card.mjs +6 -6
- package/fesm2022/ngwr-squircle.mjs +28 -9
- package/fesm2022/ngwr-squircle.mjs.map +1 -1
- package/fesm2022/ngwr-star-border.mjs +3 -3
- package/fesm2022/ngwr-statistic.mjs +20 -13
- package/fesm2022/ngwr-statistic.mjs.map +1 -1
- package/fesm2022/ngwr-stepper.mjs +6 -6
- package/fesm2022/ngwr-storage.mjs +3 -3
- package/fesm2022/ngwr-switch.mjs +3 -3
- package/fesm2022/ngwr-table.mjs +18 -18
- package/fesm2022/ngwr-tabs-router.mjs +3 -3
- package/fesm2022/ngwr-tabs.mjs +6 -6
- package/fesm2022/ngwr-textarea.mjs +3 -3
- package/fesm2022/ngwr-theme.mjs +3 -3
- package/fesm2022/ngwr-tilt-card.mjs +6 -6
- package/fesm2022/ngwr-timeline.mjs +6 -6
- package/fesm2022/ngwr-toast.mjs +10 -10
- package/fesm2022/ngwr-toast.mjs.map +1 -1
- package/fesm2022/ngwr-toolbar.mjs +3 -3
- package/fesm2022/ngwr-tour.mjs +6 -6
- package/fesm2022/ngwr-transfer.mjs +88 -11
- package/fesm2022/ngwr-transfer.mjs.map +1 -1
- package/fesm2022/ngwr-tree-testing.mjs +24 -0
- package/fesm2022/ngwr-tree-testing.mjs.map +1 -1
- package/fesm2022/ngwr-tree.mjs +72 -7
- package/fesm2022/ngwr-tree.mjs.map +1 -1
- package/fesm2022/ngwr-typewriter.mjs +3 -3
- package/fesm2022/ngwr-typography.mjs +3 -3
- package/fesm2022/ngwr-version.mjs +1 -1
- package/fesm2022/ngwr-version.mjs.map +1 -1
- package/fesm2022/ngwr-virtual-scroll.mjs +3 -3
- package/fesm2022/ngwr-waves.mjs +3 -3
- package/fesm2022/ngwr-window.mjs +12 -12
- package/form/styles/_index.scss +63 -0
- package/i18n/ar.json +4 -2
- package/i18n/cs.json +4 -2
- package/i18n/de.json +4 -2
- package/i18n/en.json +6 -4
- package/i18n/es.json +4 -2
- package/i18n/fr.json +4 -2
- package/i18n/he.json +4 -2
- package/i18n/hi.json +4 -2
- package/i18n/id.json +4 -2
- package/i18n/it.json +4 -2
- package/i18n/ja.json +4 -2
- package/i18n/ko.json +4 -2
- package/i18n/nl.json +4 -2
- package/i18n/pl.json +4 -2
- package/i18n/pt.json +4 -2
- package/i18n/ru.json +4 -2
- package/i18n/sv.json +4 -2
- package/i18n/tr.json +4 -2
- package/i18n/uk.json +4 -2
- package/i18n/vi.json +4 -2
- package/i18n/zh-TW.json +4 -2
- package/i18n/zh.json +4 -2
- package/input-otp/styles/_index.scss +5 -1
- package/line-chart/styles/_index.scss +5 -3
- package/llms-full.txt +1 -1
- package/markdown/styles/_index.scss +4 -1
- package/mention/styles/_index.scss +22 -1
- package/package.json +1 -1
- package/radio/styles/_index.scss +3 -0
- package/result/styles/_index.scss +12 -0
- package/schematics/migrations/v14/index.js +6 -3
- package/schematics/migrations.json +1 -1
- package/schematics/ng-add/index.js +34 -5
- package/segmented/styles/_index.scss +4 -1
- package/select/styles/_index.scss +20 -1
- package/statistic/styles/_index.scss +4 -0
- package/stepper/styles/_index.scss +36 -0
- package/switch/styles/_index.scss +3 -0
- package/table/styles/_index.scss +12 -0
- package/tabs/styles/_index.scss +4 -1
- package/textarea/styles/_index.scss +6 -1
- package/theme/styles/_colors.scss +11 -0
- package/theme/styles/_contrast.scss +136 -0
- package/theme/styles/_index.scss +1 -0
- package/theme/styles/_mixins.scss +15 -8
- package/timeline/styles/_index.scss +28 -1
- package/toast/styles/_index.scss +11 -0
- package/tree/styles/_index.scss +27 -1
- package/types/ngwr-badge.d.ts +1 -1
- package/types/ngwr-bar-chart-testing.d.ts +11 -1
- package/types/ngwr-button.d.ts +1 -1
- package/types/ngwr-calendar-heatmap-testing.d.ts +10 -5
- package/types/ngwr-calendar-heatmap.d.ts +22 -0
- package/types/ngwr-calendar.d.ts +21 -0
- package/types/ngwr-cascader-testing.d.ts +74 -17
- package/types/ngwr-cascader.d.ts +28 -0
- package/types/ngwr-checkbox-testing.d.ts +12 -1
- package/types/ngwr-checkbox.d.ts +10 -0
- package/types/ngwr-clipboard.d.ts +1 -1
- package/types/ngwr-confetti.d.ts +1 -1
- package/types/ngwr-cookie.d.ts +1 -1
- package/types/ngwr-date-adapters-fns.d.ts +1 -1
- package/types/ngwr-date-adapters-luxon.d.ts +1 -1
- package/types/ngwr-date.d.ts +9 -3
- package/types/ngwr-density.d.ts +1 -1
- package/types/ngwr-dialog.d.ts +1 -1
- package/types/ngwr-donut-chart-testing.d.ts +11 -1
- package/types/ngwr-drawer.d.ts +1 -1
- package/types/ngwr-dropdown.d.ts +16 -0
- package/types/ngwr-file-upload.d.ts +11 -0
- package/types/ngwr-form.d.ts +25 -0
- package/types/ngwr-gauge-testing.d.ts +9 -1
- package/types/ngwr-hotkey.d.ts +1 -1
- package/types/ngwr-i18n.d.ts +1 -1
- package/types/ngwr-input-number.d.ts +12 -2
- package/types/ngwr-input-otp.d.ts +12 -0
- package/types/ngwr-knob-testing.d.ts +11 -3
- package/types/ngwr-knob.d.ts +13 -0
- package/types/ngwr-line-chart-testing.d.ts +11 -1
- package/types/ngwr-line-chart.d.ts +18 -0
- package/types/ngwr-loading-bar.d.ts +1 -1
- package/types/ngwr-markdown.d.ts +1 -1
- package/types/ngwr-media.d.ts +1 -1
- package/types/ngwr-meta.d.ts +1 -1
- package/types/ngwr-overlay.d.ts +2 -2
- package/types/ngwr-pagination.d.ts +16 -0
- package/types/ngwr-platform.d.ts +3 -3
- package/types/ngwr-popover.d.ts +16 -0
- package/types/ngwr-rating-testing.d.ts +12 -3
- package/types/ngwr-rating.d.ts +13 -0
- package/types/ngwr-scroll.d.ts +1 -1
- package/types/ngwr-squircle.d.ts +22 -3
- package/types/ngwr-statistic.d.ts +0 -1
- package/types/ngwr-storage.d.ts +1 -1
- package/types/ngwr-theme.d.ts +1 -1
- package/types/ngwr-toast.d.ts +1 -1
- package/types/ngwr-tour.d.ts +1 -1
- package/types/ngwr-transfer.d.ts +52 -0
- package/types/ngwr-tree-testing.d.ts +20 -0
- package/types/ngwr-tree.d.ts +41 -0
- package/types/ngwr-version.d.ts +1 -1
- package/types/ngwr-window.d.ts +1 -1
- package/typography/styles/_index.scss +26 -4
package/types/ngwr-squircle.d.ts
CHANGED
|
@@ -41,6 +41,20 @@ type WrSquircleCornerMask = 'all' | 'left' | 'right' | 'top' | 'bottom' | 'none'
|
|
|
41
41
|
* Apply a Figma-style smooth-corner ("squircle") `clip-path` to the host
|
|
42
42
|
* element. Re-computes the path whenever the element resizes.
|
|
43
43
|
*
|
|
44
|
+
* @deprecated Use the native route instead — `@use 'ngwr/theme'` and the
|
|
45
|
+
* `smooth-br` mixin, which 31 entry points already ride by default. This
|
|
46
|
+
* directive exists because `corner-shape` was Chromium-only, and that reason
|
|
47
|
+
* has an expiry date: WebKit has it in Technology Preview. It will be removed
|
|
48
|
+
* in the major after Safari stable ships the property.
|
|
49
|
+
*
|
|
50
|
+
* It is deprecated rather than removed today because it is still the only
|
|
51
|
+
* DETERMINISTIC squircle — the native property reaches roughly two thirds of
|
|
52
|
+
* users and the rest see a rounded corner. If that difference matters to a
|
|
53
|
+
* design, this is still the way to get it, with the costs stated: a hand-ported
|
|
54
|
+
* superellipse, a `ResizeObserver` and a `getBoundingClientRect` per host on
|
|
55
|
+
* every resize, square corners until hydration under SSR, no test harness, and
|
|
56
|
+
* a clip that `box-shadow`, `border-image` and the focus ring do not follow.
|
|
57
|
+
*
|
|
44
58
|
* Borders: pass `[borderWidth]` (px) + `[borderColor]` and the directive
|
|
45
59
|
* paints a `::before` pseudo with an *inset* squircle path on top of the
|
|
46
60
|
* host. The visible border is the host's own background colour, so set
|
|
@@ -92,9 +106,11 @@ declare class WrSquircle {
|
|
|
92
106
|
* only the two corners on the named side and leave the other two at
|
|
93
107
|
* 90°. `'none'` is equivalent to disabling the directive.
|
|
94
108
|
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
109
|
+
* A `model()` rather than an `input()` so a parent composing the directive
|
|
110
|
+
* can flip it imperatively. Nothing in the library does today: this line
|
|
111
|
+
* used to name `WrButtonGroup` as the consumer, and that component has
|
|
112
|
+
* carried no squircle reference for several releases — `wr-btn--squircle`
|
|
113
|
+
* is plain CSS now.
|
|
98
114
|
*
|
|
99
115
|
* @default 'all'
|
|
100
116
|
*/
|
|
@@ -122,6 +138,9 @@ declare class WrSquircle {
|
|
|
122
138
|
* ```
|
|
123
139
|
*
|
|
124
140
|
* @see https://ngwr.dev/reference/components/squircle
|
|
141
|
+
*
|
|
142
|
+
* @deprecated Follows `[wrSquircle]`, which it wraps — see that directive
|
|
143
|
+
* for why, and for the native route to use instead.
|
|
125
144
|
*/
|
|
126
145
|
declare class WrSquircleHost {
|
|
127
146
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrSquircleHost, never>;
|
|
@@ -128,7 +128,6 @@ declare class WrStatisticCountdown {
|
|
|
128
128
|
readonly tickMs: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
129
129
|
/** Fires once when the countdown crosses zero. */
|
|
130
130
|
readonly countdownEnd: _angular_core.OutputEmitterRef<void>;
|
|
131
|
-
private readonly destroyRef;
|
|
132
131
|
private readonly isBrowser;
|
|
133
132
|
private readonly targetMs;
|
|
134
133
|
/**
|
package/types/ngwr-storage.d.ts
CHANGED
|
@@ -94,7 +94,7 @@ declare class WrStorage {
|
|
|
94
94
|
private rawKeys;
|
|
95
95
|
private installCrossTabListener;
|
|
96
96
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrStorage, never>;
|
|
97
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
97
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
/**
|
package/types/ngwr-theme.d.ts
CHANGED
|
@@ -219,7 +219,7 @@ declare class WrTheme {
|
|
|
219
219
|
private readPersisted;
|
|
220
220
|
private persist;
|
|
221
221
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrTheme, never>;
|
|
222
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
222
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
223
223
|
}
|
|
224
224
|
|
|
225
225
|
/**
|
package/types/ngwr-toast.d.ts
CHANGED
|
@@ -238,7 +238,7 @@ declare class WrToast {
|
|
|
238
238
|
private pushToHost;
|
|
239
239
|
private disposeHost;
|
|
240
240
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrToast, never>;
|
|
241
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
241
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
/**
|
package/types/ngwr-tour.d.ts
CHANGED
|
@@ -126,7 +126,7 @@ declare class WrTour {
|
|
|
126
126
|
*/
|
|
127
127
|
private isRtl;
|
|
128
128
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrTour, never>;
|
|
129
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
129
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
/** What the popup needs from the running tour, without importing the service (cycle). */
|
package/types/ngwr-transfer.d.ts
CHANGED
|
@@ -114,6 +114,17 @@ declare class WrTransfer implements FormValueControl<readonly unknown[]> {
|
|
|
114
114
|
protected readonly resolvedSearch: _angular_core.Signal<string>;
|
|
115
115
|
protected readonly resolvedEmpty: _angular_core.Signal<string>;
|
|
116
116
|
protected readonly resolvedSelectAll: _angular_core.Signal<string>;
|
|
117
|
+
/**
|
|
118
|
+
* The select-all checkbox's accessible name, composed IN THE CATALOG.
|
|
119
|
+
*
|
|
120
|
+
* It used to be a template literal — `` `${title} — ${selectAll}` `` — which
|
|
121
|
+
* froze both the separator and the operand order into English. A translator
|
|
122
|
+
* could change each half and not the sentence they make, which is the exact
|
|
123
|
+
* defect the calendar and event-calendar catalogs were rewritten to remove.
|
|
124
|
+
* The key ships as `{{pane}} — {{action}}` in every locale, so nothing reads
|
|
125
|
+
* differently today and every locale can now reorder it without a code change.
|
|
126
|
+
*/
|
|
127
|
+
protected readonly selectAllAria: (params?: ngwr_i18n.WrI18nParams) => string;
|
|
117
128
|
protected readonly resolvedToTarget: _angular_core.Signal<string>;
|
|
118
129
|
protected readonly resolvedToSource: _angular_core.Signal<string>;
|
|
119
130
|
/** `{{checked}} / {{total}}` under each heading. @internal */
|
|
@@ -129,6 +140,23 @@ declare class WrTransfer implements FormValueControl<readonly unknown[]> {
|
|
|
129
140
|
private readonly valueSet;
|
|
130
141
|
protected readonly source: _angular_core.Signal<PaneState>;
|
|
131
142
|
protected readonly target: _angular_core.Signal<PaneState>;
|
|
143
|
+
/**
|
|
144
|
+
* Say something when `value` holds a value no `items` entry matches.
|
|
145
|
+
*
|
|
146
|
+
* Such a value is in NEITHER pane — the left one filters out anything already
|
|
147
|
+
* selected and the right one can only render rows it found — and the header
|
|
148
|
+
* counts the rows it shows, so nothing on screen contradicts anything. The
|
|
149
|
+
* result is a value the user can neither see nor remove, and no sign that it
|
|
150
|
+
* is there.
|
|
151
|
+
*
|
|
152
|
+
* A warning rather than an invented row, which matches how the library treats
|
|
153
|
+
* the same question elsewhere: `wr-select` renders a value outside its option
|
|
154
|
+
* list only under an explicit `freeText`, so an unmatched value is a mode a
|
|
155
|
+
* consumer opts into, not a shape a component guesses at. It also stays quiet
|
|
156
|
+
* about the common transient case — `items` arriving after `value` — because
|
|
157
|
+
* the message names the values and a developer can see them settle.
|
|
158
|
+
*/
|
|
159
|
+
private warnAboutOrphans;
|
|
132
160
|
protected readonly canMoveRight: _angular_core.Signal<boolean>;
|
|
133
161
|
protected readonly canMoveLeft: _angular_core.Signal<boolean>;
|
|
134
162
|
protected readonly classes: _angular_core.Signal<string>;
|
|
@@ -137,6 +165,30 @@ declare class WrTransfer implements FormValueControl<readonly unknown[]> {
|
|
|
137
165
|
/** Header checkbox — stages or clears every enabled row the filter shows. */
|
|
138
166
|
protected toggleAll(pane: 'source' | 'target', checked: boolean): void;
|
|
139
167
|
protected onSearch(pane: 'source' | 'target', event: Event): void;
|
|
168
|
+
private readonly host;
|
|
169
|
+
private readonly injector;
|
|
170
|
+
/**
|
|
171
|
+
* Keep focus in the widget after a move.
|
|
172
|
+
*
|
|
173
|
+
* A move empties the pane's staging set, which is exactly what disables the
|
|
174
|
+
* button that was just pressed — so the element holding DOM focus went
|
|
175
|
+
* `disabled` as a RESULT of its own activation and the browser dropped focus
|
|
176
|
+
* to `<body>`. From there the next Tab restarts at the top of the document,
|
|
177
|
+
* which for a keyboard user is being thrown out of a control they were in the
|
|
178
|
+
* middle of using.
|
|
179
|
+
*
|
|
180
|
+
* The landing is the FIRST ROW OF THE PANE THE ROWS ARRIVED IN, and the
|
|
181
|
+
* obvious alternative does not work: after a move BOTH buttons are disabled,
|
|
182
|
+
* because each needs something ticked and the move cleared the tick on one
|
|
183
|
+
* side and arrived unticked on the other. The rows that just moved are where
|
|
184
|
+
* the user's attention is and where the next action lives, so that is where
|
|
185
|
+
* focus goes.
|
|
186
|
+
*
|
|
187
|
+
* `afterNextRender`, not `queueMicrotask`: under zoneless CD the microtask
|
|
188
|
+
* runs before the moved rows are in the DOM, so the focus call would land on
|
|
189
|
+
* the pane as it was before the move.
|
|
190
|
+
*/
|
|
191
|
+
private restoreFocusAfterMove;
|
|
140
192
|
protected moveRight(): void;
|
|
141
193
|
protected moveLeft(): void;
|
|
142
194
|
/** Filter, then derive the header state from what survived. */
|
|
@@ -358,6 +358,26 @@ declare class WrTreeHarness extends ContentContainerComponentHarness {
|
|
|
358
358
|
removeChip(label: string): Promise<void>;
|
|
359
359
|
/** Click the clear (×) control on the trigger. */
|
|
360
360
|
clear(): Promise<void>;
|
|
361
|
+
/**
|
|
362
|
+
* Backspace on the closed overlay trigger — the keyboard route to the ×.
|
|
363
|
+
*
|
|
364
|
+
* In single mode it clears (only while `clearable` is on); in multi mode it
|
|
365
|
+
* drops the LAST chip, one per call, whatever `clearable` says. Both ×
|
|
366
|
+
* controls are `tabindex="-1"` spans inside the trigger, so a key can never
|
|
367
|
+
* reach them directly. In single mode this is the ONLY keyboard route back to
|
|
368
|
+
* no selection; in multi mode a keyboard user can also toggle a row off in the
|
|
369
|
+
* panel ({@link selectNode} with `additive`). {@link clear} / {@link removeChip}
|
|
370
|
+
* prove the pointer path and nothing more.
|
|
371
|
+
*
|
|
372
|
+
* The key is honoured only on the CLOSED trigger, so an open panel is closed
|
|
373
|
+
* first with Escape — the step a keyboard user takes too, since focus sits in
|
|
374
|
+
* the panel while it is up.
|
|
375
|
+
*
|
|
376
|
+
* Does nothing, rather than throwing, where the component does nothing —
|
|
377
|
+
* nothing selected, disabled or read-only — so a spec asserts the outcome on
|
|
378
|
+
* the value.
|
|
379
|
+
*/
|
|
380
|
+
clearByKeyboard(): Promise<void>;
|
|
361
381
|
/**
|
|
362
382
|
* The nodes currently rendered, in the order they are shown.
|
|
363
383
|
*
|
package/types/ngwr-tree.d.ts
CHANGED
|
@@ -291,7 +291,48 @@ declare class WrTree<TId = string> implements FormValueControl<unknown> {
|
|
|
291
291
|
protected onKeydown(event: KeyboardEvent): void;
|
|
292
292
|
protected onTriggerClick(): void;
|
|
293
293
|
/** Trigger blur — mark the bound field touched. */
|
|
294
|
+
/**
|
|
295
|
+
* Leaving an INLINE tree marks it touched.
|
|
296
|
+
*
|
|
297
|
+
* `onBlur` below belongs to the overlay trigger, which only renders under
|
|
298
|
+
* `openOn="overlay"` — so an inline tree emitted `touch` on SELECTION and
|
|
299
|
+
* nowhere else. Focusing it and walking away without choosing anything left
|
|
300
|
+
* the control neither touched nor dirty, which is exactly the state a
|
|
301
|
+
* `<wr-form-field>` waits for before it will show a message: a `required`
|
|
302
|
+
* tree the user considered and skipped stayed silent, and the form looked
|
|
303
|
+
* fine while being invalid.
|
|
304
|
+
*
|
|
305
|
+
* `relatedTarget` inside the host means focus only moved BETWEEN rows, which
|
|
306
|
+
* is not leaving. A `null` one — clicking the page background, or a browser
|
|
307
|
+
* that withholds it — counts as leaving, which is the safe direction: marking
|
|
308
|
+
* touched too eagerly shows a message the field already had grounds for.
|
|
309
|
+
*/
|
|
310
|
+
protected onFocusOut(event: FocusEvent): void;
|
|
294
311
|
protected onBlur(): void;
|
|
312
|
+
/**
|
|
313
|
+
* Backspace on the CLOSED overlay trigger — the keyboard twin of the two ×
|
|
314
|
+
* controls inside it.
|
|
315
|
+
*
|
|
316
|
+
* Both the clear × and every chip's remove × are `tabindex="-1"` spans inside
|
|
317
|
+
* this `<button>`, and they carried `(keydown.enter)` / `(keydown.space)`
|
|
318
|
+
* bindings that could never fire: a keydown goes to the focused element, and
|
|
319
|
+
* those spans cannot be focused. The spans stay unfocusable, since a focusable
|
|
320
|
+
* child of a button is `nested-interactive`.
|
|
321
|
+
*
|
|
322
|
+
* What that cost differs by mode, and the difference is worth keeping straight.
|
|
323
|
+
* In SINGLE mode it was a real WCAG 2.1.1 failure: Enter on the selected row
|
|
324
|
+
* re-selects it, so the × was the only way back to nothing. In MULTI mode it
|
|
325
|
+
* was not — Ctrl/Cmd+Enter on a row in the panel toggles it off, which is the
|
|
326
|
+
* route {@link WrTreeHarness.selectNode} drives with `additive`. The multi
|
|
327
|
+
* branch below is parity with `wr-select` and a shorter path, not a repair.
|
|
328
|
+
*
|
|
329
|
+
* The same key and the same split `wr-select` uses, so the two read alike:
|
|
330
|
+
* in MULTI mode Backspace drops the last chip — chip removal is its own
|
|
331
|
+
* control, not gated on `clearable()` — and in SINGLE mode it clears, gated on
|
|
332
|
+
* `clearable()`, because that input IS the clear control. Only while closed:
|
|
333
|
+
* an open panel owns the keyboard.
|
|
334
|
+
*/
|
|
335
|
+
protected onTriggerKey(event: KeyboardEvent): void;
|
|
295
336
|
protected removeChip(id: TId, event: Event): void;
|
|
296
337
|
protected clearSelection(event: Event): void;
|
|
297
338
|
private toggleExpanded;
|
package/types/ngwr-version.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ import { InjectionToken } from '@angular/core';
|
|
|
16
16
|
* Distinct from `Version` exported by `@angular/core`, which reports the
|
|
17
17
|
* loaded Angular runtime version (e.g. `'22.0.0'`), not ngwr's.
|
|
18
18
|
*/
|
|
19
|
-
declare const NGWR_VERSION = "14.
|
|
19
|
+
declare const NGWR_VERSION = "14.4.0";
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* @license
|
package/types/ngwr-window.d.ts
CHANGED
|
@@ -467,7 +467,7 @@ declare class WrWindowManager {
|
|
|
467
467
|
/** Drop a saved workspace. */
|
|
468
468
|
clearLayout(name: string): void;
|
|
469
469
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrWindowManager, never>;
|
|
470
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
470
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
471
471
|
}
|
|
472
472
|
|
|
473
473
|
/**
|
|
@@ -149,17 +149,39 @@
|
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
// Links
|
|
153
|
-
//
|
|
152
|
+
// Links are underlined ALWAYS, and the underline is the whole point rather
|
|
153
|
+
// than a style preference.
|
|
154
|
+
//
|
|
155
|
+
// WCAG technique G183 lets a link be marked by colour alone only when it
|
|
156
|
+
// clears 3:1 against the prose around it. `--wr-color-primary-ink` on
|
|
157
|
+
// `--wr-color-on-surface` measures 2.72:1 in LIGHT, so it never did — the
|
|
158
|
+
// underline was the missing half, and putting it on `:hover` gave it to a
|
|
159
|
+
// mouse and to nobody else. `ngwr/markdown` had this right all along, which
|
|
160
|
+
// made the library disagree with itself about its own links.
|
|
161
|
+
//
|
|
162
|
+
// The dark figure is deliberately not quoted here: `-ink` is a `color-mix`
|
|
163
|
+
// there, so it cannot be read off the source, and a hand-composited guess is
|
|
164
|
+
// the mistake `_colors.scss` already warns about. `check:contrast` measures
|
|
165
|
+
// it in a browser; the underline does not depend on the answer either way.
|
|
166
|
+
//
|
|
167
|
+
// Hover thickens rather than adds, so the interaction still answers. And the
|
|
168
|
+
// focus ring is here because it was nowhere: this variant is the one piece of
|
|
169
|
+
// typography that is reliably INTERACTIVE, and it had no `:focus-visible`
|
|
170
|
+
// rule at all, so a keyboard reached it and nothing on screen said so.
|
|
154
171
|
&--link {
|
|
155
172
|
font-weight: var(--wr-font-weight-medium);
|
|
156
173
|
color: var(--wr-color-primary-ink);
|
|
157
|
-
text-decoration:
|
|
174
|
+
text-decoration: underline;
|
|
175
|
+
text-decoration-thickness: 1px;
|
|
158
176
|
text-underline-offset: 2px;
|
|
159
177
|
cursor: pointer;
|
|
160
178
|
|
|
161
179
|
&:hover {
|
|
162
|
-
text-decoration:
|
|
180
|
+
text-decoration-thickness: 2px;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
&:focus-visible {
|
|
184
|
+
@include theme.focus-ring;
|
|
163
185
|
}
|
|
164
186
|
}
|
|
165
187
|
|