ngwr 10.2.0 → 11.0.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 +39 -19
- package/anchor/styles/_index.scss +4 -4
- package/back-top/styles/_index.scss +6 -1
- package/blur-text/styles/_index.scss +13 -0
- package/button/styles/_index.scss +11 -6
- package/carousel/styles/_index.scss +13 -2
- package/cascader/styles/_index.scss +2 -2
- package/circular-text/styles/_index.scss +2 -0
- package/collapse/styles/_index.scss +1 -1
- package/color-picker/styles/_index.scss +6 -1
- package/compare/styles/_index.scss +1 -2
- package/context-menu/styles/_index.scss +6 -1
- package/descriptions/styles/_index.scss +2 -2
- package/dialog/styles/_index.scss +38 -0
- package/drawer/styles/_index.scss +20 -1
- package/dropdown/styles/_index.scss +19 -5
- package/empty/styles/_index.scss +10 -0
- package/fesm2022/ngwr-action-sheet.mjs +15 -5
- package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
- package/fesm2022/ngwr-affix.mjs +43 -16
- package/fesm2022/ngwr-affix.mjs.map +1 -1
- package/fesm2022/ngwr-alert.mjs +3 -3
- package/fesm2022/ngwr-anchor.mjs +20 -8
- package/fesm2022/ngwr-anchor.mjs.map +1 -1
- package/fesm2022/ngwr-aurora.mjs +4 -4
- package/fesm2022/ngwr-aurora.mjs.map +1 -1
- package/fesm2022/ngwr-avatar.mjs +33 -9
- package/fesm2022/ngwr-avatar.mjs.map +1 -1
- package/fesm2022/ngwr-back-top.mjs +8 -4
- package/fesm2022/ngwr-back-top.mjs.map +1 -1
- package/fesm2022/ngwr-badge.mjs +6 -6
- package/fesm2022/ngwr-badge.mjs.map +1 -1
- package/fesm2022/ngwr-bar-chart.mjs +32 -11
- package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
- package/fesm2022/ngwr-blur-text.mjs +4 -4
- package/fesm2022/ngwr-blur-text.mjs.map +1 -1
- package/fesm2022/ngwr-border-glow.mjs +4 -4
- package/fesm2022/ngwr-border-glow.mjs.map +1 -1
- package/fesm2022/ngwr-breadcrumbs.mjs +9 -8
- package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngwr-burger.mjs +11 -6
- package/fesm2022/ngwr-burger.mjs.map +1 -1
- package/fesm2022/ngwr-button-testing.mjs +96 -0
- package/fesm2022/ngwr-button-testing.mjs.map +1 -0
- package/fesm2022/ngwr-button.mjs +89 -24
- package/fesm2022/ngwr-button.mjs.map +1 -1
- package/fesm2022/ngwr-calendar-heatmap.mjs +42 -10
- package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
- package/fesm2022/ngwr-calendar.mjs +108 -9
- package/fesm2022/ngwr-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-card.mjs +10 -10
- package/fesm2022/ngwr-card.mjs.map +1 -1
- package/fesm2022/ngwr-carousel-testing.mjs +377 -0
- package/fesm2022/ngwr-carousel-testing.mjs.map +1 -0
- package/fesm2022/ngwr-carousel.mjs +72 -18
- package/fesm2022/ngwr-carousel.mjs.map +1 -1
- package/fesm2022/ngwr-cascader-testing.mjs +534 -0
- package/fesm2022/ngwr-cascader-testing.mjs.map +1 -0
- package/fesm2022/ngwr-cascader.mjs +4 -4
- package/fesm2022/ngwr-cascader.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox-testing.mjs +90 -0
- package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -0
- package/fesm2022/ngwr-checkbox.mjs +15 -9
- package/fesm2022/ngwr-checkbox.mjs.map +1 -1
- package/fesm2022/ngwr-circular-text.mjs +4 -4
- package/fesm2022/ngwr-circular-text.mjs.map +1 -1
- package/fesm2022/ngwr-click-spark.mjs +4 -4
- package/fesm2022/ngwr-click-spark.mjs.map +1 -1
- package/fesm2022/ngwr-clipboard.mjs +18 -4
- package/fesm2022/ngwr-clipboard.mjs.map +1 -1
- package/fesm2022/ngwr-collapse-testing.mjs +368 -0
- package/fesm2022/ngwr-collapse-testing.mjs.map +1 -0
- package/fesm2022/ngwr-collapse.mjs +9 -9
- package/fesm2022/ngwr-color-picker.mjs +139 -19
- package/fesm2022/ngwr-color-picker.mjs.map +1 -1
- package/fesm2022/ngwr-command-palette-testing.mjs +589 -0
- package/fesm2022/ngwr-command-palette-testing.mjs.map +1 -0
- package/fesm2022/ngwr-command-palette.mjs +60 -10
- package/fesm2022/ngwr-command-palette.mjs.map +1 -1
- package/fesm2022/ngwr-compare.mjs +105 -15
- package/fesm2022/ngwr-compare.mjs.map +1 -1
- package/fesm2022/ngwr-confetti.mjs +3 -3
- package/fesm2022/ngwr-config.mjs +106 -0
- package/fesm2022/ngwr-config.mjs.map +1 -0
- package/fesm2022/ngwr-context-menu-testing.mjs +631 -0
- package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -0
- package/fesm2022/ngwr-context-menu.mjs +104 -18
- package/fesm2022/ngwr-context-menu.mjs.map +1 -1
- package/fesm2022/ngwr-cookie.mjs +8 -4
- package/fesm2022/ngwr-cookie.mjs.map +1 -1
- package/fesm2022/ngwr-counter.mjs +17 -9
- package/fesm2022/ngwr-counter.mjs.map +1 -1
- package/fesm2022/ngwr-date-adapter-fns.mjs +3 -3
- package/fesm2022/ngwr-date-adapter-luxon.mjs +55 -7
- package/fesm2022/ngwr-date-adapter-luxon.mjs.map +1 -1
- package/fesm2022/ngwr-date-adapter.mjs +57 -11
- package/fesm2022/ngwr-date-adapter.mjs.map +1 -1
- package/fesm2022/ngwr-date-picker-testing.mjs +766 -0
- package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -0
- package/fesm2022/ngwr-date-picker.mjs +409 -57
- package/fesm2022/ngwr-date-picker.mjs.map +1 -1
- package/fesm2022/ngwr-decrypt-text.mjs +30 -12
- package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
- package/fesm2022/ngwr-density.mjs +6 -6
- package/fesm2022/ngwr-descriptions.mjs +6 -6
- package/fesm2022/ngwr-dialog-testing.mjs +89 -0
- package/fesm2022/ngwr-dialog-testing.mjs.map +1 -0
- package/fesm2022/ngwr-dialog.mjs +33 -17
- package/fesm2022/ngwr-dialog.mjs.map +1 -1
- package/fesm2022/ngwr-directives.mjs +48 -24
- package/fesm2022/ngwr-directives.mjs.map +1 -1
- package/fesm2022/ngwr-divider.mjs +3 -3
- package/fesm2022/ngwr-donut-chart.mjs +24 -7
- package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
- package/fesm2022/ngwr-drag-drop.mjs +7 -7
- package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
- package/fesm2022/ngwr-drawer-testing.mjs +250 -0
- package/fesm2022/ngwr-drawer-testing.mjs.map +1 -0
- package/fesm2022/ngwr-drawer.mjs +37 -19
- package/fesm2022/ngwr-drawer.mjs.map +1 -1
- package/fesm2022/ngwr-dropdown-testing.mjs +291 -0
- package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -0
- package/fesm2022/ngwr-dropdown.mjs +19 -11
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-empty.mjs +26 -9
- package/fesm2022/ngwr-empty.mjs.map +1 -1
- package/fesm2022/ngwr-event-calendar.mjs +62 -15
- package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-falling-text.mjs +4 -4
- package/fesm2022/ngwr-falling-text.mjs.map +1 -1
- package/fesm2022/ngwr-file-upload-testing.mjs +332 -0
- package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -0
- package/fesm2022/ngwr-file-upload.mjs +3 -3
- package/fesm2022/ngwr-form-testing.mjs +451 -0
- package/fesm2022/ngwr-form-testing.mjs.map +1 -0
- package/fesm2022/ngwr-form.mjs +28 -12
- package/fesm2022/ngwr-form.mjs.map +1 -1
- package/fesm2022/ngwr-fuzzy-text.mjs +11 -4
- package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
- package/fesm2022/ngwr-gauge.mjs +21 -7
- package/fesm2022/ngwr-gauge.mjs.map +1 -1
- package/fesm2022/ngwr-glitch-text.mjs +4 -4
- package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
- package/fesm2022/ngwr-gradient-text.mjs +4 -4
- package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
- package/fesm2022/ngwr-hotkey.mjs +31 -10
- package/fesm2022/ngwr-hotkey.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-en.mjs +61 -0
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ru.mjs +59 -0
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
- package/fesm2022/ngwr-i18n.mjs +9 -9
- package/fesm2022/ngwr-icon.mjs +6 -6
- package/fesm2022/ngwr-image-cropper.mjs +26 -3
- package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
- package/fesm2022/ngwr-input-number-testing.mjs +306 -0
- package/fesm2022/ngwr-input-number-testing.mjs.map +1 -0
- package/fesm2022/ngwr-input-number.mjs +37 -5
- package/fesm2022/ngwr-input-number.mjs.map +1 -1
- package/fesm2022/ngwr-input-otp-testing.mjs +419 -0
- package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -0
- package/fesm2022/ngwr-input-otp.mjs +39 -8
- package/fesm2022/ngwr-input-otp.mjs.map +1 -1
- package/fesm2022/ngwr-input-testing.mjs +102 -0
- package/fesm2022/ngwr-input-testing.mjs.map +1 -0
- package/fesm2022/ngwr-input.mjs +62 -25
- package/fesm2022/ngwr-input.mjs.map +1 -1
- package/fesm2022/ngwr-keyboard.mjs +3 -3
- package/fesm2022/ngwr-knob.mjs +46 -10
- package/fesm2022/ngwr-knob.mjs.map +1 -1
- package/fesm2022/ngwr-layout.mjs +36 -20
- package/fesm2022/ngwr-layout.mjs.map +1 -1
- package/fesm2022/ngwr-lightbox.mjs +35 -8
- package/fesm2022/ngwr-lightbox.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart.mjs +19 -6
- package/fesm2022/ngwr-line-chart.mjs.map +1 -1
- package/fesm2022/ngwr-list.mjs +14 -9
- package/fesm2022/ngwr-list.mjs.map +1 -1
- package/fesm2022/ngwr-loading-bar.mjs +71 -31
- package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
- package/fesm2022/ngwr-markdown-testing.mjs +516 -0
- package/fesm2022/ngwr-markdown-testing.mjs.map +1 -0
- package/fesm2022/ngwr-markdown.mjs +1492 -0
- package/fesm2022/ngwr-markdown.mjs.map +1 -0
- package/fesm2022/ngwr-marquee.mjs +19 -8
- package/fesm2022/ngwr-marquee.mjs.map +1 -1
- package/fesm2022/ngwr-media.mjs +3 -3
- package/fesm2022/ngwr-mention-testing.mjs +513 -0
- package/fesm2022/ngwr-mention-testing.mjs.map +1 -0
- package/fesm2022/ngwr-mention.mjs +16 -7
- package/fesm2022/ngwr-mention.mjs.map +1 -1
- package/fesm2022/ngwr-meta.mjs +28 -13
- package/fesm2022/ngwr-meta.mjs.map +1 -1
- package/fesm2022/ngwr-meter-group.mjs +22 -8
- package/fesm2022/ngwr-meter-group.mjs.map +1 -1
- package/fesm2022/ngwr-overlay.mjs +57 -8
- package/fesm2022/ngwr-overlay.mjs.map +1 -1
- package/fesm2022/ngwr-page-header.mjs +3 -3
- package/fesm2022/ngwr-pagination-testing.mjs +389 -0
- package/fesm2022/ngwr-pagination-testing.mjs.map +1 -0
- package/fesm2022/ngwr-pagination.mjs +27 -11
- 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-testing.mjs +309 -0
- package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -0
- package/fesm2022/ngwr-popconfirm.mjs +99 -21
- package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
- package/fesm2022/ngwr-popover-testing.mjs +316 -0
- package/fesm2022/ngwr-popover-testing.mjs.map +1 -0
- package/fesm2022/ngwr-popover.mjs +48 -10
- package/fesm2022/ngwr-popover.mjs.map +1 -1
- package/fesm2022/ngwr-progress.mjs +3 -3
- package/fesm2022/ngwr-pull-to-refresh.mjs +19 -4
- package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -1
- package/fesm2022/ngwr-qr.mjs +15 -5
- package/fesm2022/ngwr-qr.mjs.map +1 -1
- package/fesm2022/ngwr-radio-testing.mjs +392 -0
- package/fesm2022/ngwr-radio-testing.mjs.map +1 -0
- package/fesm2022/ngwr-radio.mjs +16 -9
- package/fesm2022/ngwr-radio.mjs.map +1 -1
- package/fesm2022/ngwr-rating-testing.mjs +384 -0
- package/fesm2022/ngwr-rating-testing.mjs.map +1 -0
- package/fesm2022/ngwr-rating.mjs +40 -5
- package/fesm2022/ngwr-rating.mjs.map +1 -1
- package/fesm2022/ngwr-result.mjs +12 -12
- package/fesm2022/ngwr-rotating-text.mjs +3 -3
- package/fesm2022/ngwr-scroll.mjs +3 -3
- package/fesm2022/ngwr-segmented-testing.mjs +512 -0
- package/fesm2022/ngwr-segmented-testing.mjs.map +1 -0
- package/fesm2022/ngwr-segmented.mjs +3 -3
- package/fesm2022/ngwr-select-testing.mjs +268 -0
- package/fesm2022/ngwr-select-testing.mjs.map +1 -0
- package/fesm2022/ngwr-select.mjs +96 -25
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-shiny-text.mjs +7 -7
- package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
- package/fesm2022/ngwr-sidebar.mjs +67 -14
- package/fesm2022/ngwr-sidebar.mjs.map +1 -1
- package/fesm2022/ngwr-skeleton.mjs +3 -3
- package/fesm2022/ngwr-slider-testing.mjs +478 -0
- package/fesm2022/ngwr-slider-testing.mjs.map +1 -0
- package/fesm2022/ngwr-slider.mjs +59 -15
- package/fesm2022/ngwr-slider.mjs.map +1 -1
- package/fesm2022/ngwr-sparkline.mjs +28 -8
- package/fesm2022/ngwr-sparkline.mjs.map +1 -1
- package/fesm2022/ngwr-speed-dial.mjs +39 -6
- package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
- package/fesm2022/ngwr-spinner.mjs +14 -5
- package/fesm2022/ngwr-spinner.mjs.map +1 -1
- package/fesm2022/ngwr-splash-cursor.mjs +4 -4
- package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
- package/fesm2022/ngwr-split-text.mjs +4 -4
- package/fesm2022/ngwr-split-text.mjs.map +1 -1
- package/fesm2022/ngwr-splitter.mjs +72 -11
- package/fesm2022/ngwr-splitter.mjs.map +1 -1
- package/fesm2022/ngwr-spotlight-card.mjs +7 -7
- package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
- package/fesm2022/ngwr-squircle.mjs +6 -6
- package/fesm2022/ngwr-star-border.mjs +4 -4
- package/fesm2022/ngwr-star-border.mjs.map +1 -1
- package/fesm2022/ngwr-statistic.mjs +33 -16
- package/fesm2022/ngwr-statistic.mjs.map +1 -1
- package/fesm2022/ngwr-stepper-testing.mjs +477 -0
- package/fesm2022/ngwr-stepper-testing.mjs.map +1 -0
- package/fesm2022/ngwr-stepper.mjs +6 -6
- package/fesm2022/ngwr-storage.mjs +27 -17
- package/fesm2022/ngwr-storage.mjs.map +1 -1
- package/fesm2022/ngwr-switch-testing.mjs +77 -0
- package/fesm2022/ngwr-switch-testing.mjs.map +1 -0
- package/fesm2022/ngwr-switch.mjs +12 -6
- package/fesm2022/ngwr-switch.mjs.map +1 -1
- package/fesm2022/ngwr-table-testing.mjs +580 -0
- package/fesm2022/ngwr-table-testing.mjs.map +1 -0
- package/fesm2022/ngwr-table.mjs +105 -44
- package/fesm2022/ngwr-table.mjs.map +1 -1
- package/fesm2022/ngwr-tabs-testing.mjs +617 -0
- package/fesm2022/ngwr-tabs-testing.mjs.map +1 -0
- package/fesm2022/ngwr-tabs.mjs +44 -12
- package/fesm2022/ngwr-tabs.mjs.map +1 -1
- package/fesm2022/ngwr-textarea-testing.mjs +238 -0
- package/fesm2022/ngwr-textarea-testing.mjs.map +1 -0
- package/fesm2022/ngwr-textarea.mjs +35 -7
- package/fesm2022/ngwr-textarea.mjs.map +1 -1
- package/fesm2022/ngwr-theme.mjs +3 -3
- package/fesm2022/ngwr-tilt-card.mjs +7 -7
- package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
- package/fesm2022/ngwr-timeline.mjs +6 -6
- package/fesm2022/ngwr-toast-testing.mjs +101 -0
- package/fesm2022/ngwr-toast-testing.mjs.map +1 -0
- package/fesm2022/ngwr-toast.mjs +55 -21
- package/fesm2022/ngwr-toast.mjs.map +1 -1
- package/fesm2022/ngwr-toolbar.mjs +3 -3
- package/fesm2022/ngwr-tour.mjs +67 -15
- package/fesm2022/ngwr-tour.mjs.map +1 -1
- package/fesm2022/ngwr-transfer-testing.mjs +538 -0
- package/fesm2022/ngwr-transfer-testing.mjs.map +1 -0
- package/fesm2022/ngwr-transfer.mjs +47 -16
- package/fesm2022/ngwr-transfer.mjs.map +1 -1
- package/fesm2022/ngwr-tree-testing.mjs +734 -0
- package/fesm2022/ngwr-tree-testing.mjs.map +1 -0
- package/fesm2022/ngwr-tree.mjs +75 -9
- package/fesm2022/ngwr-tree.mjs.map +1 -1
- package/fesm2022/ngwr-typewriter.mjs +7 -5
- package/fesm2022/ngwr-typewriter.mjs.map +1 -1
- 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 +33 -7
- package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
- package/fesm2022/ngwr-waves.mjs +5 -5
- package/fesm2022/ngwr-waves.mjs.map +1 -1
- package/fesm2022/ngwr-window.mjs +88 -18
- package/fesm2022/ngwr-window.mjs.map +1 -1
- package/gauge/styles/_index.scss +1 -1
- package/glitch-text/styles/_index.scss +4 -0
- package/i18n/en.json +56 -0
- package/i18n/ru.json +56 -0
- package/image-cropper/styles/_index.scss +13 -1
- package/input/styles/_index.scss +2 -2
- package/input-number/styles/_index.scss +7 -2
- package/knob/styles/_index.scss +8 -1
- package/layout/styles/_index.scss +3 -3
- package/lightbox/styles/_index.scss +10 -2
- package/line-chart/styles/_index.scss +6 -0
- package/llms-full.txt +151 -4
- package/llms.txt +57 -8
- package/loading-bar/styles/_index.scss +1 -2
- package/markdown/styles/_index.scss +296 -0
- package/marquee/styles/_index.scss +12 -0
- package/mcp/api.js +512 -0
- package/mcp/catalog.js +157 -0
- package/mcp/server.js +273 -0
- package/mcp/tools.js +366 -0
- package/meter-group/styles/_index.scss +1 -1
- package/package.json +186 -35
- package/pagination/styles/_index.scss +6 -6
- package/popover/styles/_index.scss +37 -5
- package/rating/styles/_index.scss +10 -0
- package/schematics/use/symbol-map.json +2 -0
- package/segmented/styles/_index.scss +7 -0
- package/select/styles/_index.scss +29 -9
- package/sidebar/styles/_index.scss +30 -5
- package/slider/styles/_index.scss +15 -0
- package/speed-dial/styles/_index.scss +20 -0
- package/split-text/styles/_index.scss +13 -0
- package/star-border/styles/_index.scss +2 -0
- package/stepper/styles/_index.scss +1 -1
- package/styles/_grid.scss +4 -4
- package/styles.scss +1 -0
- package/switch/styles/_index.scss +5 -3
- package/table/styles/_index.scss +22 -11
- package/tabs/styles/_index.scss +11 -1
- package/textarea/styles/_index.scss +5 -0
- package/theme/styles/_colors.scss +29 -13
- package/theme/styles/_dark.scss +11 -3
- package/theme/styles/_mixins.scss +3 -0
- package/timeline/styles/_index.scss +2 -2
- package/toast/styles/_index.scss +17 -8
- package/toolbar/styles/_index.scss +3 -3
- package/tour/styles/_index.scss +7 -1
- package/tree/styles/_index.scss +5 -3
- package/types/ngwr-action-sheet.d.ts +9 -1
- package/types/ngwr-affix.d.ts +7 -1
- package/types/ngwr-anchor.d.ts +8 -1
- package/types/ngwr-avatar.d.ts +13 -3
- package/types/ngwr-bar-chart.d.ts +16 -0
- package/types/ngwr-burger.d.ts +6 -2
- package/types/ngwr-button-testing.d.ts +85 -0
- package/types/ngwr-button.d.ts +58 -10
- package/types/ngwr-calendar-heatmap.d.ts +16 -2
- package/types/ngwr-calendar.d.ts +37 -1
- package/types/ngwr-carousel-testing.d.ts +257 -0
- package/types/ngwr-carousel.d.ts +20 -4
- package/types/ngwr-cascader-testing.d.ts +392 -0
- package/types/ngwr-checkbox-testing.d.ts +77 -0
- package/types/ngwr-checkbox.d.ts +7 -2
- package/types/ngwr-clipboard.d.ts +8 -1
- package/types/ngwr-collapse-testing.d.ts +290 -0
- package/types/ngwr-color-picker.d.ts +20 -11
- package/types/ngwr-command-palette-testing.d.ts +437 -0
- package/types/ngwr-command-palette.d.ts +25 -2
- package/types/ngwr-compare.d.ts +50 -2
- package/types/ngwr-config.d.ts +176 -0
- package/types/ngwr-context-menu-testing.d.ts +401 -0
- package/types/ngwr-context-menu.d.ts +65 -17
- package/types/ngwr-counter.d.ts +6 -1
- package/types/ngwr-date-adapter-luxon.d.ts +26 -0
- package/types/ngwr-date-picker-testing.d.ts +518 -0
- package/types/ngwr-date-picker.d.ts +128 -8
- package/types/ngwr-dialog-testing.d.ts +79 -0
- package/types/ngwr-dialog.d.ts +13 -0
- package/types/ngwr-directives.d.ts +10 -1
- package/types/ngwr-donut-chart.d.ts +8 -1
- package/types/ngwr-drawer-testing.d.ts +196 -0
- package/types/ngwr-drawer.d.ts +15 -0
- package/types/ngwr-dropdown-testing.d.ts +202 -0
- package/types/ngwr-dropdown.d.ts +7 -1
- package/types/ngwr-empty.d.ts +19 -4
- package/types/ngwr-event-calendar.d.ts +26 -1
- package/types/ngwr-file-upload-testing.d.ts +194 -0
- package/types/ngwr-form-testing.d.ts +379 -0
- package/types/ngwr-form.d.ts +17 -0
- package/types/ngwr-gauge.d.ts +13 -1
- package/types/ngwr-hotkey.d.ts +2 -0
- package/types/ngwr-image-cropper.d.ts +10 -0
- package/types/ngwr-input-number-testing.d.ts +226 -0
- package/types/ngwr-input-number.d.ts +29 -1
- package/types/ngwr-input-otp-testing.d.ts +299 -0
- package/types/ngwr-input-otp.d.ts +23 -2
- package/types/ngwr-input-testing.d.ts +84 -0
- package/types/ngwr-input.d.ts +20 -6
- package/types/ngwr-knob.d.ts +18 -0
- package/types/ngwr-layout.d.ts +1 -0
- package/types/ngwr-lightbox.d.ts +17 -3
- package/types/ngwr-line-chart.d.ts +9 -2
- package/types/ngwr-list.d.ts +7 -2
- package/types/ngwr-loading-bar.d.ts +4 -7
- package/types/ngwr-markdown-testing.d.ts +462 -0
- package/types/ngwr-markdown.d.ts +534 -0
- package/types/ngwr-marquee.d.ts +12 -2
- package/types/ngwr-mention-testing.d.ts +359 -0
- package/types/ngwr-meta.d.ts +4 -2
- package/types/ngwr-meter-group.d.ts +11 -1
- package/types/ngwr-overlay.d.ts +33 -2
- package/types/ngwr-pagination-testing.d.ts +291 -0
- package/types/ngwr-pagination.d.ts +7 -1
- package/types/ngwr-popconfirm-testing.d.ts +235 -0
- package/types/ngwr-popconfirm.d.ts +31 -21
- package/types/ngwr-popover-testing.d.ts +221 -0
- package/types/ngwr-popover.d.ts +19 -2
- package/types/ngwr-pull-to-refresh.d.ts +7 -0
- package/types/ngwr-qr.d.ts +9 -1
- package/types/ngwr-radio-testing.d.ts +296 -0
- package/types/ngwr-radio.d.ts +8 -2
- package/types/ngwr-rating-testing.d.ts +291 -0
- package/types/ngwr-rating.d.ts +23 -0
- package/types/ngwr-segmented-testing.d.ts +401 -0
- package/types/ngwr-select-testing.d.ts +175 -0
- package/types/ngwr-select.d.ts +45 -4
- package/types/ngwr-sidebar.d.ts +17 -2
- package/types/ngwr-slider-testing.d.ts +329 -0
- package/types/ngwr-slider.d.ts +35 -1
- package/types/ngwr-sparkline.d.ts +12 -2
- package/types/ngwr-speed-dial.d.ts +17 -18
- package/types/ngwr-spinner.d.ts +8 -1
- package/types/ngwr-splitter.d.ts +24 -1
- package/types/ngwr-statistic.d.ts +12 -2
- package/types/ngwr-stepper-testing.d.ts +346 -0
- package/types/ngwr-storage.d.ts +10 -1
- package/types/ngwr-switch-testing.d.ts +66 -0
- package/types/ngwr-switch.d.ts +7 -2
- package/types/ngwr-table-testing.d.ts +423 -0
- package/types/ngwr-table.d.ts +42 -0
- package/types/ngwr-tabs-testing.d.ts +470 -0
- package/types/ngwr-tabs.d.ts +9 -0
- package/types/ngwr-textarea-testing.d.ts +184 -0
- package/types/ngwr-textarea.d.ts +7 -2
- package/types/ngwr-toast-testing.d.ts +80 -0
- package/types/ngwr-toast.d.ts +19 -4
- package/types/ngwr-tour.d.ts +27 -0
- package/types/ngwr-transfer-testing.d.ts +444 -0
- package/types/ngwr-transfer.d.ts +16 -1
- package/types/ngwr-tree-testing.d.ts +501 -0
- package/types/ngwr-tree.d.ts +33 -0
- package/types/ngwr-version.d.ts +1 -1
- package/types/ngwr-virtual-scroll.d.ts +13 -1
- package/types/ngwr-window.d.ts +23 -2
- package/typewriter/styles/_index.scss +1 -1
- package/typography/styles/_index.scss +1 -1
- package/window/styles/_index.scss +32 -9
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @license
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/** Narrows which `[wrMention]` field a harness query matches. */
|
|
11
|
+
interface WrMentionHarnessFilters extends BaseHarnessFilters {
|
|
12
|
+
/** Match the field's current text. A string is an exact match, a RegExp is tested. */
|
|
13
|
+
readonly value?: string | RegExp;
|
|
14
|
+
/**
|
|
15
|
+
* Match the field's placeholder — usually the only thing telling two mention
|
|
16
|
+
* fields apart in a fixture, since the host is a plain `<textarea>` / `<input>`
|
|
17
|
+
* with no label of its own. A string is an exact match, a RegExp is tested.
|
|
18
|
+
*/
|
|
19
|
+
readonly placeholder?: string | RegExp;
|
|
20
|
+
/** Match only fields currently offering suggestions (`true`), or only those not (`false`). */
|
|
21
|
+
readonly open?: boolean;
|
|
22
|
+
}
|
|
23
|
+
/** Narrows which suggestion inside a mention panel a harness query matches. */
|
|
24
|
+
interface WrMentionOptionHarnessFilters extends BaseHarnessFilters {
|
|
25
|
+
/** Match the suggestion's label — a string is an exact match, a RegExp is tested. */
|
|
26
|
+
readonly text?: string | RegExp;
|
|
27
|
+
/** Match only the active suggestion (`true`), or only the ones the cursor is not on (`false`). */
|
|
28
|
+
readonly active?: boolean;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @license
|
|
33
|
+
*
|
|
34
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
35
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Test harness for one suggestion inside a `[wrMention]` panel.
|
|
40
|
+
*
|
|
41
|
+
* Reach these through {@link WrMentionHarness.getOptions}, never off the document:
|
|
42
|
+
* the panel is a portal in the shared overlay container, so a bare query answers
|
|
43
|
+
* with whichever mention field opened first.
|
|
44
|
+
*
|
|
45
|
+
* @see https://ngwr.dev/guides/testing
|
|
46
|
+
*/
|
|
47
|
+
declare class WrMentionOptionHarness extends ComponentHarness {
|
|
48
|
+
/** One `<li role="option">` in the panel's listbox. */
|
|
49
|
+
static hostSelector: string;
|
|
50
|
+
/** Build a predicate that narrows the query. */
|
|
51
|
+
static with(options?: WrMentionOptionHarnessFilters): HarnessPredicate<WrMentionOptionHarness>;
|
|
52
|
+
/** The suggestion's label — whatever `displayWith` returned for the item. */
|
|
53
|
+
getText(): Promise<string>;
|
|
54
|
+
/**
|
|
55
|
+
* Whether the cursor is on this suggestion.
|
|
56
|
+
*
|
|
57
|
+
* Read from `aria-selected` rather than from the `--active` modifier class. The
|
|
58
|
+
* two are set from the same index, so they agree — but the ARIA state is what a
|
|
59
|
+
* screen reader is told, and the class is only what the highlight is painted
|
|
60
|
+
* with.
|
|
61
|
+
*/
|
|
62
|
+
isActive(): Promise<boolean>;
|
|
63
|
+
/**
|
|
64
|
+
* The suggestion's id — the value the field names in `aria-activedescendant`.
|
|
65
|
+
*
|
|
66
|
+
* The only link between the two DOM trees: the panel is in the overlay
|
|
67
|
+
* container, not inside the field, so this id is how the reference reaches it
|
|
68
|
+
* at all.
|
|
69
|
+
*/
|
|
70
|
+
getId(): Promise<string | null>;
|
|
71
|
+
/**
|
|
72
|
+
* Pick this suggestion with the mouse.
|
|
73
|
+
*
|
|
74
|
+
* Needs no layout, so it works here: the panel commits on `mousedown` —
|
|
75
|
+
* deliberately, so the field never loses focus and the caret stays put — and
|
|
76
|
+
* the CDK's no-arg click dispatches `mousedown` at the head of its sequence
|
|
77
|
+
* without any hit test.
|
|
78
|
+
*/
|
|
79
|
+
click(): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Move the pointer onto this suggestion, which makes it the active one.
|
|
82
|
+
*
|
|
83
|
+
* Hover and the arrow keys drive the same single cursor, so a spec can assert
|
|
84
|
+
* the mouse path through {@link WrMentionHarness.getActiveOptionLabel} exactly
|
|
85
|
+
* as it does the keyboard one.
|
|
86
|
+
*/
|
|
87
|
+
hover(): Promise<void>;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @license
|
|
92
|
+
*
|
|
93
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
94
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
95
|
+
*/
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Test harness for `[wrMention]` — the field, and the suggestion panel it opens
|
|
99
|
+
* at the caret.
|
|
100
|
+
*
|
|
101
|
+
* The harness matches the FIELD, because that is the only part of a mention in the
|
|
102
|
+
* fixture: the panel is a `ComponentPortal` in the shared overlay container, a
|
|
103
|
+
* sibling of the whole app. Suggestions are read through the document root, scoped
|
|
104
|
+
* by the id the field publishes as `aria-controls` — which is what keeps two
|
|
105
|
+
* mention fields on one page from answering with each other's suggestions.
|
|
106
|
+
*
|
|
107
|
+
* **The field is not a combobox, and it has no `aria-expanded`.** Both are
|
|
108
|
+
* deliberate (the source spells out why: it holds prose, `role="combobox"` is
|
|
109
|
+
* disallowed on `<textarea>` and would drop `aria-multiline`, and `aria-expanded`
|
|
110
|
+
* is not a supported state of `role="textbox"`), and both shape this harness.
|
|
111
|
+
* `aria-controls` is STATIC — it names the listbox even while there is no listbox —
|
|
112
|
+
* so {@link isOpen} asks whether the listbox EXISTS instead of reading a state
|
|
113
|
+
* flag, and "a list appeared" reaches a screen reader through the live region that
|
|
114
|
+
* {@link getStatusMessage} reads.
|
|
115
|
+
*
|
|
116
|
+
* **The panel's POSITION is not testable in jsdom, so nothing here reports it.**
|
|
117
|
+
* `caret.ts` places the panel by measuring a mirror `<div>` with
|
|
118
|
+
* `getBoundingClientRect`, and jsdom has no layout: every rect is zeros, so the
|
|
119
|
+
* measurement collapses to the origin. The overlay still lands on finite numbers —
|
|
120
|
+
* `line-height` computes to `normal` there, so `caret.ts` falls back to
|
|
121
|
+
* `font-size * 1.2` and the pane is offset by that alone (a measured
|
|
122
|
+
* `margin-top: 23.2px`, `margin-left: 0px` on a default fixture) — which is
|
|
123
|
+
* precisely the problem: every one of them is an artefact of the environment
|
|
124
|
+
* rather than a fact about the component. Assert placement in a real browser.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```ts
|
|
128
|
+
* const mention = await loader.getHarness(WrMentionHarness);
|
|
129
|
+
*
|
|
130
|
+
* await mention.type('hey @al');
|
|
131
|
+
* expect(await mention.getOptionLabels()).toEqual(['Alan Turing', 'Linus Torvalds']);
|
|
132
|
+
*
|
|
133
|
+
* await mention.commit();
|
|
134
|
+
* expect(await mention.getValue()).toBe('hey @Alan Turing ');
|
|
135
|
+
* ```
|
|
136
|
+
*
|
|
137
|
+
* @see https://ngwr.dev/guides/testing
|
|
138
|
+
*/
|
|
139
|
+
declare class WrMentionHarness extends ComponentHarness {
|
|
140
|
+
/** The directive's host. Both tags, since the directive drives either one. */
|
|
141
|
+
static hostSelector: string;
|
|
142
|
+
/** Build a predicate that narrows the query — pass to `getHarness` / `getAllHarnesses`. */
|
|
143
|
+
static with(options?: WrMentionHarnessFilters): HarnessPredicate<WrMentionHarness>;
|
|
144
|
+
/** The field's whole text, mention fragments and prose alike. */
|
|
145
|
+
getValue(): Promise<string>;
|
|
146
|
+
/** The field's placeholder, or `''` when it has none. */
|
|
147
|
+
getPlaceholder(): Promise<string>;
|
|
148
|
+
/**
|
|
149
|
+
* Type into the field one keystroke at a time, APPENDING to whatever is there.
|
|
150
|
+
*
|
|
151
|
+
* The realistic path, and the one that exercises detection the way a person
|
|
152
|
+
* does: the directive re-reads the text before the caret on every `input`, so
|
|
153
|
+
* `type('hey @al')` opens the panel on the `@` and then narrows it twice.
|
|
154
|
+
*
|
|
155
|
+
* Focuses the field, which BLURS whatever was focused before — and a blurred
|
|
156
|
+
* mention field closes its own panel. Use {@link setValue} when a spec needs two
|
|
157
|
+
* fields suggesting at the same time.
|
|
158
|
+
*/
|
|
159
|
+
type(text: string): Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* Replace the field's whole text and let the directive detect once.
|
|
162
|
+
*
|
|
163
|
+
* The `input` event is dispatched by hand rather than through keystrokes so the
|
|
164
|
+
* field is never focused — which is the only way to get two mention panels open
|
|
165
|
+
* at once, since focusing one field blurs the other and blur closes its panel.
|
|
166
|
+
* The caret lands at the end of the new text, where detection looks.
|
|
167
|
+
*/
|
|
168
|
+
setValue(text: string): Promise<void>;
|
|
169
|
+
/** Empty the field. The panel goes with it — there is no trigger char left to detect. */
|
|
170
|
+
clear(): Promise<void>;
|
|
171
|
+
/**
|
|
172
|
+
* Click the field.
|
|
173
|
+
*
|
|
174
|
+
* Re-opens the suggestions when the caret is still sitting inside a mention —
|
|
175
|
+
* the directive re-detects on click, which is how a user who pressed Escape (or
|
|
176
|
+
* clicked away and back) gets the panel again without retyping. Needs no layout:
|
|
177
|
+
* the CDK dispatches the event on the element rather than hit-testing a point.
|
|
178
|
+
*/
|
|
179
|
+
click(): Promise<void>;
|
|
180
|
+
/**
|
|
181
|
+
* Whether the panel is offering suggestions.
|
|
182
|
+
*
|
|
183
|
+
* Asks whether this field's listbox exists, because the field publishes no
|
|
184
|
+
* open/closed state to read: `aria-expanded` is not a supported state of
|
|
185
|
+
* `role="textbox"` (axe rates it a critical violation), and `aria-controls` is
|
|
186
|
+
* static here, so its presence says nothing.
|
|
187
|
+
*/
|
|
188
|
+
isOpen(): Promise<boolean>;
|
|
189
|
+
/**
|
|
190
|
+
* The field's `aria-autocomplete` — `'list'`, permanently.
|
|
191
|
+
*
|
|
192
|
+
* A capability, not a state: ARIA says authors should not toggle it to signal
|
|
193
|
+
* that suggestions are showing, and being static is what makes the feature
|
|
194
|
+
* discoverable on focus, before a trigger char is ever typed. {@link isOpen}
|
|
195
|
+
* answers the state.
|
|
196
|
+
*/
|
|
197
|
+
getAutocomplete(): Promise<string | null>;
|
|
198
|
+
/**
|
|
199
|
+
* The role the field PROMISES its popup will announce, from `aria-haspopup` —
|
|
200
|
+
* `'listbox'`. Required alongside `aria-autocomplete="list"`, and it has to name
|
|
201
|
+
* the popup's real role, which {@link getListboxRole} reads back off the panel.
|
|
202
|
+
*/
|
|
203
|
+
getPopupRole(): Promise<string | null>;
|
|
204
|
+
/** The role the open panel announces — `'listbox'`. Throws while the panel is closed. */
|
|
205
|
+
getListboxRole(): Promise<string | null>;
|
|
206
|
+
/**
|
|
207
|
+
* The panel's accessible name.
|
|
208
|
+
*
|
|
209
|
+
* ARIA requires a `role="listbox"` to have one, and a consumer never renders the
|
|
210
|
+
* panel themselves — so the directive supplies it from the i18n catalog
|
|
211
|
+
* (`mention.listbox`).
|
|
212
|
+
*/
|
|
213
|
+
getListboxLabel(): Promise<string | null>;
|
|
214
|
+
/**
|
|
215
|
+
* The suggestions on offer, in DOM order.
|
|
216
|
+
*
|
|
217
|
+
* The whole list a user can reach, not a window onto a longer one: the directive
|
|
218
|
+
* slices the matches at `maxResults` (8 by default) before rendering, which is
|
|
219
|
+
* why this panel needs no virtualisation.
|
|
220
|
+
*
|
|
221
|
+
* Throws while the panel is closed — the options do not exist anywhere until the
|
|
222
|
+
* portal is attached, and an empty array reads like a panel that rendered
|
|
223
|
+
* nothing.
|
|
224
|
+
*/
|
|
225
|
+
getOptions(filters?: WrMentionOptionHarnessFilters): Promise<WrMentionOptionHarness[]>;
|
|
226
|
+
/** The labels of the suggestions on offer, in DOM order. */
|
|
227
|
+
getOptionLabels(): Promise<string[]>;
|
|
228
|
+
/**
|
|
229
|
+
* The id the field names in `aria-activedescendant`, or `null` when it names
|
|
230
|
+
* nothing.
|
|
231
|
+
*
|
|
232
|
+
* The strict half of the field's two references. `aria-controls` is allowed to
|
|
233
|
+
* dangle (see {@link isOpen}); this one is not — naming an element that is not
|
|
234
|
+
* in the document is an author error no browser reports, it simply stops
|
|
235
|
+
* announcing options. So `null` is the CORRECT answer while the panel is closed,
|
|
236
|
+
* and worth asserting there.
|
|
237
|
+
*/
|
|
238
|
+
getActiveOptionId(): Promise<string | null>;
|
|
239
|
+
/**
|
|
240
|
+
* The label a screen reader announces as the active suggestion.
|
|
241
|
+
*
|
|
242
|
+
* Resolved through `aria-activedescendant` the way an assistive technology
|
|
243
|
+
* would, rather than by hunting for the active class — which is why it throws on
|
|
244
|
+
* a reference that resolves to nothing instead of quietly reporting what the
|
|
245
|
+
* class says.
|
|
246
|
+
*/
|
|
247
|
+
getActiveOptionLabel(): Promise<string>;
|
|
248
|
+
/**
|
|
249
|
+
* Where the active suggestion sits in {@link getOptions}, 0-based.
|
|
250
|
+
*
|
|
251
|
+
* Matched by id rather than counted by class, so the answer is the one
|
|
252
|
+
* `aria-activedescendant` actually points at.
|
|
253
|
+
*/
|
|
254
|
+
getActiveOptionIndex(): Promise<number>;
|
|
255
|
+
/**
|
|
256
|
+
* Move the cursor down one suggestion, wrapping past the last back to the first.
|
|
257
|
+
*
|
|
258
|
+
* ArrowDown — and `aria-activedescendant` is the whole navigation model here,
|
|
259
|
+
* because the options are never focused: focus stays in the field so the user can
|
|
260
|
+
* keep typing the query.
|
|
261
|
+
*
|
|
262
|
+
* Throws while the panel is closed, where ArrowDown belongs to the field.
|
|
263
|
+
*/
|
|
264
|
+
nextOption(): Promise<void>;
|
|
265
|
+
/** Move the cursor up one suggestion, wrapping past the first round to the last. */
|
|
266
|
+
previousOption(): Promise<void>;
|
|
267
|
+
/**
|
|
268
|
+
* Insert the active suggestion with Enter.
|
|
269
|
+
*
|
|
270
|
+
* The trigger char and the query are replaced by `valueWith(item, trigger)`
|
|
271
|
+
* (`@Label` by default) plus a trailing space, the caret lands after that space,
|
|
272
|
+
* the panel closes and `(wrMentionSelected)` fires with the item, the trigger
|
|
273
|
+
* char and the query.
|
|
274
|
+
*
|
|
275
|
+
* Throws while the panel is closed — Enter is the field's own key there (a
|
|
276
|
+
* newline in a `<textarea>`), and swallowing it would be the bug.
|
|
277
|
+
*/
|
|
278
|
+
commit(): Promise<void>;
|
|
279
|
+
/**
|
|
280
|
+
* Insert the active suggestion with Tab instead.
|
|
281
|
+
*
|
|
282
|
+
* The same commit: the directive takes Tab as a second confirm key and
|
|
283
|
+
* `preventDefault`s it, so focus stays in the field rather than leaving for the
|
|
284
|
+
* next control.
|
|
285
|
+
*/
|
|
286
|
+
commitWithTab(): Promise<void>;
|
|
287
|
+
/**
|
|
288
|
+
* Pick the first suggestion matching the filters, with the mouse.
|
|
289
|
+
*
|
|
290
|
+
* Opens nothing by itself — type a trigger char first. Names what the panel does
|
|
291
|
+
* offer when nothing matches, since a silent no-op here surfaces as an
|
|
292
|
+
* unexplained unchanged field further down the spec.
|
|
293
|
+
*/
|
|
294
|
+
pick(filters: WrMentionOptionHarnessFilters): Promise<void>;
|
|
295
|
+
/**
|
|
296
|
+
* Dismiss the panel with Escape, leaving the typed text — trigger char and
|
|
297
|
+
* query included — exactly as it is. A closed panel is left alone.
|
|
298
|
+
*
|
|
299
|
+
* Sends the WHOLE keystroke, keydown and keyup, as a real Escape is. That
|
|
300
|
+
* matters here: the caret has not moved, so a keyup the directive re-detected on
|
|
301
|
+
* would reopen the panel this just closed, and a harness that dispatched only
|
|
302
|
+
* the keydown would report a dismissal the user never got.
|
|
303
|
+
*/
|
|
304
|
+
dismiss(): Promise<void>;
|
|
305
|
+
/**
|
|
306
|
+
* Blur the field and wait for the panel to go.
|
|
307
|
+
*
|
|
308
|
+
* The close is deferred by 120ms so a `mousedown` on a suggestion lands first,
|
|
309
|
+
* and that is a real `setTimeout`: under zoneless change detection nothing
|
|
310
|
+
* flushes it for us, so this waits out REAL time. A spec on fake timers should
|
|
311
|
+
* drive its own clock and read {@link isOpen} instead of calling this.
|
|
312
|
+
*/
|
|
313
|
+
blur(timeout?: number): Promise<void>;
|
|
314
|
+
/**
|
|
315
|
+
* What the live region currently says.
|
|
316
|
+
*
|
|
317
|
+
* This is the announcement channel the field has INSTEAD of ARIA state, and
|
|
318
|
+
* three things reach a screen reader only through it: how many suggestions
|
|
319
|
+
* appeared, that NOTHING matched — the panel closes in that case, so there is no
|
|
320
|
+
* DOM left to inspect and no state on the field to read — and what was inserted
|
|
321
|
+
* on commit.
|
|
322
|
+
*
|
|
323
|
+
* Throws when more than one mention field is mounted. The region is parked on
|
|
324
|
+
* `<body>` rather than in the panel (which is disposed on every keystroke that
|
|
325
|
+
* leaves a mention, and a live region has to pre-exist its own text to be
|
|
326
|
+
* announced at all), and it carries no id tying it to a field — so with two
|
|
327
|
+
* fields around, the harness genuinely cannot tell which region is this one's.
|
|
328
|
+
* Answering with whichever came first would be worse than refusing: assert
|
|
329
|
+
* announcements in a fixture holding a single mention field.
|
|
330
|
+
*/
|
|
331
|
+
getStatusMessage(): Promise<string>;
|
|
332
|
+
/** Move keyboard focus to the field. Focusing alone opens nothing — the panel needs a trigger char. */
|
|
333
|
+
focus(): Promise<void>;
|
|
334
|
+
/** Whether the field holds keyboard focus. It keeps it while the panel is open, by design. */
|
|
335
|
+
isFocused(): Promise<boolean>;
|
|
336
|
+
/**
|
|
337
|
+
* A loader scoped to THIS field's listbox.
|
|
338
|
+
*
|
|
339
|
+
* Scoped by the id the field publishes as `aria-controls`, never by
|
|
340
|
+
* `.wr-mention-panel`: the overlay container is shared by every mention on the
|
|
341
|
+
* page, so a class query would answer with whichever field opened first.
|
|
342
|
+
*/
|
|
343
|
+
private listboxLoader;
|
|
344
|
+
/** This field's listbox in the overlay. Throws when the panel is closed. */
|
|
345
|
+
private listbox;
|
|
346
|
+
/** This field's listbox, or `null` when the panel is closed. */
|
|
347
|
+
private listboxOrNull;
|
|
348
|
+
/** The id the field names in `aria-controls`, which its listbox carries. */
|
|
349
|
+
private listboxId;
|
|
350
|
+
/** The element `aria-activedescendant` points at, or a targeted failure. */
|
|
351
|
+
private activeOption;
|
|
352
|
+
/** The active option's id, or a targeted failure. */
|
|
353
|
+
private requireActiveOptionId;
|
|
354
|
+
/** Refuse a keystroke that would mean something else entirely with the panel closed. */
|
|
355
|
+
private requireOpen;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
export { WrMentionHarness, WrMentionOptionHarness };
|
|
359
|
+
export type { WrMentionHarnessFilters, WrMentionOptionHarnessFilters };
|
package/types/ngwr-meta.d.ts
CHANGED
|
@@ -54,8 +54,10 @@ interface WrMetaHandle {
|
|
|
54
54
|
* Layers merge via shallow merge for scalars and a one-level deep merge
|
|
55
55
|
* for `og` / `twitter` groups.
|
|
56
56
|
*
|
|
57
|
-
* The
|
|
58
|
-
*
|
|
57
|
+
* The title and the canonical link are diffed against the last applied
|
|
58
|
+
* snapshot and only rewritten when they actually change; the `<meta>` tags
|
|
59
|
+
* are re-resolved by selector on every apply, so an existing tag is updated
|
|
60
|
+
* in place rather than duplicated.
|
|
59
61
|
*
|
|
60
62
|
* @example
|
|
61
63
|
* ```ts
|
|
@@ -43,12 +43,22 @@ declare class WrMeterGroup {
|
|
|
43
43
|
readonly max: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
44
44
|
/** Show the labelled legend under the bar. @default true */
|
|
45
45
|
readonly showLegend: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
46
|
-
/** Show each segment's
|
|
46
|
+
/** Show each segment's value in the legend, next to its label. @default true */
|
|
47
47
|
readonly showValues: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
48
|
+
/**
|
|
49
|
+
* A segment's contribution, floored at `0` and with anything non-finite read
|
|
50
|
+
* as `0`. One `NaN` used to poison the whole bar: the sum is `NaN` as soon as
|
|
51
|
+
* one value is, so the total fell back to `1` and every OTHER segment was
|
|
52
|
+
* asked for a width of `value * 100`%, while `aria-valuenow` announced `NaN`.
|
|
53
|
+
*/
|
|
54
|
+
private static amount;
|
|
48
55
|
protected readonly resolvedMax: _angular_core.Signal<number>;
|
|
49
56
|
/**
|
|
50
57
|
* Sum of the segments, for `aria-valuenow`. `role="progressbar"` without it
|
|
51
58
|
* announces no value at all, so the bar was invisible to assistive tech.
|
|
59
|
+
*
|
|
60
|
+
* Capped at the total, because segments summing past an explicit `max` used
|
|
61
|
+
* to announce a value outside the range they were announced against.
|
|
52
62
|
*/
|
|
53
63
|
protected readonly totalValue: _angular_core.Signal<number>;
|
|
54
64
|
protected readonly slices: _angular_core.Signal<{
|
package/types/ngwr-overlay.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OverlayRef, OverlayContainer, Overlay } from '@angular/cdk/overlay';
|
|
1
|
+
import { ConnectedPosition, OverlayRef, OverlayContainer, Overlay } from '@angular/cdk/overlay';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { EnvironmentProviders, InjectionToken } from '@angular/core';
|
|
@@ -28,6 +28,37 @@ import { EnvironmentProviders, InjectionToken } from '@angular/core';
|
|
|
28
28
|
*/
|
|
29
29
|
declare function wrAppendOverlayClose(host: HTMLElement, className: string, label: string, onClose: () => void): HTMLButtonElement;
|
|
30
30
|
|
|
31
|
+
/**
|
|
32
|
+
* @license
|
|
33
|
+
*
|
|
34
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
35
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Mirror the horizontal offsets of a connected-position list for RTL.
|
|
40
|
+
*
|
|
41
|
+
* The CDK mirrors `originX` / `overlayX` under `dir="rtl"` — a `start` anchor
|
|
42
|
+
* resolves to the origin's right edge — but it does NOT mirror `offsetX`, which
|
|
43
|
+
* it adds to the final PHYSICAL x (`_getOffset` returns `position.offsetX`
|
|
44
|
+
* verbatim). So a position that meant "sit to the inline-start of the trigger,
|
|
45
|
+
* 8px clear of it" keeps its `-8` under RTL, where the panel is now on the
|
|
46
|
+
* right: the gap becomes an 8px OVERLAP, and the panel sits on top of the thing
|
|
47
|
+
* it is describing.
|
|
48
|
+
*
|
|
49
|
+
* Nothing in the CDK will do this for us, and the amount is per position, so
|
|
50
|
+
* every ngwr overlay that offsets along the inline axis passes its list through
|
|
51
|
+
* here. `offsetY` is untouched: the block axis does not flip.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* const dir = inject(Directionality, { optional: true });
|
|
56
|
+
*
|
|
57
|
+
* strategy.withPositions(wrMirrorOffsets(WR_POPOVER_POSITIONS[position], dir?.value === 'rtl'));
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
declare function wrMirrorOffsets(positions: readonly ConnectedPosition[], isRtl: boolean): ConnectedPosition[];
|
|
61
|
+
|
|
31
62
|
/**
|
|
32
63
|
* @license
|
|
33
64
|
*
|
|
@@ -253,4 +284,4 @@ declare const WR_OVERLAY: InjectionToken<Overlay>;
|
|
|
253
284
|
*/
|
|
254
285
|
declare const WR_OVERLAY_CONTAINER: InjectionToken<OverlayContainer>;
|
|
255
286
|
|
|
256
|
-
export { WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, wrAppendOverlayClose, wrPresentAsSheet };
|
|
287
|
+
export { WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, wrAppendOverlayClose, wrMirrorOffsets, wrPresentAsSheet };
|