ngwr 10.2.1 → 11.1.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/action-sheet/styles/_index.scss +4 -1
- package/anchor/styles/_index.scss +6 -5
- package/back-top/styles/_index.scss +6 -1
- package/blur-text/styles/_index.scss +13 -0
- package/button/styles/_index.scss +11 -6
- package/calendar/styles/_index.scss +11 -2
- package/carousel/styles/_index.scss +13 -2
- package/cascader/styles/_index.scss +5 -3
- package/circular-text/styles/_index.scss +2 -0
- package/collapse/styles/_index.scss +1 -1
- package/color-picker/styles/_index.scss +6 -1
- package/command-palette/styles/_index.scss +2 -1
- package/compare/styles/_index.scss +1 -2
- package/context-menu/styles/_index.scss +8 -2
- package/descriptions/styles/_index.scss +2 -2
- package/dialog/styles/_index.scss +7 -0
- package/drawer/styles/_index.scss +20 -1
- package/dropdown/styles/_index.scss +19 -5
- package/empty/styles/_index.scss +10 -0
- package/falling-text/styles/_index.scss +2 -1
- package/fesm2022/ngwr-action-sheet.mjs +13 -3
- package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
- package/fesm2022/ngwr-affix.mjs +40 -13
- package/fesm2022/ngwr-affix.mjs.map +1 -1
- package/fesm2022/ngwr-anchor.mjs +18 -6
- package/fesm2022/ngwr-anchor.mjs.map +1 -1
- package/fesm2022/ngwr-aurora.mjs +2 -2
- package/fesm2022/ngwr-aurora.mjs.map +1 -1
- package/fesm2022/ngwr-avatar.mjs +31 -7
- package/fesm2022/ngwr-avatar.mjs.map +1 -1
- package/fesm2022/ngwr-back-top.mjs +6 -2
- package/fesm2022/ngwr-back-top.mjs.map +1 -1
- package/fesm2022/ngwr-badge.mjs +1 -1
- package/fesm2022/ngwr-badge.mjs.map +1 -1
- package/fesm2022/ngwr-bar-chart.mjs +30 -9
- package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
- package/fesm2022/ngwr-blur-text.mjs +2 -2
- package/fesm2022/ngwr-blur-text.mjs.map +1 -1
- package/fesm2022/ngwr-border-glow.mjs +2 -2
- 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-burger.mjs +9 -4
- 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 +31 -14
- package/fesm2022/ngwr-button.mjs.map +1 -1
- package/fesm2022/ngwr-calendar-heatmap.mjs +40 -8
- package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
- package/fesm2022/ngwr-calendar.mjs +20 -1
- 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-testing.mjs +377 -0
- package/fesm2022/ngwr-carousel-testing.mjs.map +1 -0
- package/fesm2022/ngwr-carousel.mjs +67 -13
- 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 +2 -2
- 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 +9 -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-click-spark.mjs +2 -2
- package/fesm2022/ngwr-click-spark.mjs.map +1 -1
- package/fesm2022/ngwr-collapse-testing.mjs +368 -0
- package/fesm2022/ngwr-collapse-testing.mjs.map +1 -0
- package/fesm2022/ngwr-color-picker.mjs +134 -14
- 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 +58 -8
- package/fesm2022/ngwr-command-palette.mjs.map +1 -1
- package/fesm2022/ngwr-compare.mjs +103 -13
- package/fesm2022/ngwr-compare.mjs.map +1 -1
- 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 +94 -8
- package/fesm2022/ngwr-context-menu.mjs.map +1 -1
- package/fesm2022/ngwr-cookie.mjs +5 -1
- package/fesm2022/ngwr-cookie.mjs.map +1 -1
- package/fesm2022/ngwr-counter.mjs +11 -3
- package/fesm2022/ngwr-counter.mjs.map +1 -1
- package/fesm2022/ngwr-date-adapter-luxon.mjs +52 -4
- package/fesm2022/ngwr-date-adapter-luxon.mjs.map +1 -1
- package/fesm2022/ngwr-date-adapter.mjs +54 -8
- 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 +73 -3
- package/fesm2022/ngwr-date-picker.mjs.map +1 -1
- package/fesm2022/ngwr-decrypt-text.mjs +27 -9
- package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
- package/fesm2022/ngwr-dialog-testing.mjs +89 -0
- package/fesm2022/ngwr-dialog-testing.mjs.map +1 -0
- package/fesm2022/ngwr-directives.mjs +36 -12
- package/fesm2022/ngwr-directives.mjs.map +1 -1
- package/fesm2022/ngwr-donut-chart.mjs +22 -5
- package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
- package/fesm2022/ngwr-drag-drop.mjs +2 -2
- 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-dropdown-testing.mjs +291 -0
- package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -0
- package/fesm2022/ngwr-dropdown.mjs +10 -2
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-empty.mjs +24 -7
- package/fesm2022/ngwr-empty.mjs.map +1 -1
- package/fesm2022/ngwr-event-calendar.mjs +57 -10
- package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-falling-text.mjs +2 -2
- 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-form-testing.mjs +451 -0
- package/fesm2022/ngwr-form-testing.mjs.map +1 -0
- package/fesm2022/ngwr-form.mjs +19 -3
- package/fesm2022/ngwr-form.mjs.map +1 -1
- package/fesm2022/ngwr-fuzzy-text.mjs +9 -2
- package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
- package/fesm2022/ngwr-gauge.mjs +19 -5
- 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 +50 -0
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ru.mjs +48 -0
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
- package/fesm2022/ngwr-image-cropper.mjs +23 -0
- 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 +35 -3
- 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 +36 -5
- 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 +47 -10
- package/fesm2022/ngwr-input.mjs.map +1 -1
- package/fesm2022/ngwr-knob.mjs +44 -8
- package/fesm2022/ngwr-knob.mjs.map +1 -1
- package/fesm2022/ngwr-layout.mjs +21 -5
- package/fesm2022/ngwr-layout.mjs.map +1 -1
- package/fesm2022/ngwr-lightbox.mjs +33 -6
- package/fesm2022/ngwr-lightbox.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart.mjs +17 -4
- 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-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 +17 -6
- package/fesm2022/ngwr-marquee.mjs.map +1 -1
- package/fesm2022/ngwr-mention-testing.mjs +513 -0
- package/fesm2022/ngwr-mention-testing.mjs.map +1 -0
- package/fesm2022/ngwr-mention.mjs +10 -1
- package/fesm2022/ngwr-mention.mjs.map +1 -1
- package/fesm2022/ngwr-meta.mjs +22 -7
- package/fesm2022/ngwr-meta.mjs.map +1 -1
- package/fesm2022/ngwr-meter-group.mjs +19 -5
- package/fesm2022/ngwr-meter-group.mjs.map +1 -1
- package/fesm2022/ngwr-overlay.mjs +41 -1
- package/fesm2022/ngwr-overlay.mjs.map +1 -1
- package/fesm2022/ngwr-pagination-testing.mjs +389 -0
- package/fesm2022/ngwr-pagination-testing.mjs.map +1 -0
- package/fesm2022/ngwr-pagination.mjs +14 -2
- package/fesm2022/ngwr-pagination.mjs.map +1 -1
- package/fesm2022/ngwr-popconfirm-testing.mjs +309 -0
- package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -0
- package/fesm2022/ngwr-popconfirm.mjs +95 -17
- 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 +21 -3
- package/fesm2022/ngwr-popover.mjs.map +1 -1
- package/fesm2022/ngwr-pull-to-refresh.mjs +17 -2
- package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -1
- package/fesm2022/ngwr-qr.mjs +13 -3
- 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 +10 -3
- 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 +37 -2
- package/fesm2022/ngwr-rating.mjs.map +1 -1
- package/fesm2022/ngwr-segmented-testing.mjs +512 -0
- package/fesm2022/ngwr-segmented-testing.mjs.map +1 -0
- package/fesm2022/ngwr-select-testing.mjs +268 -0
- package/fesm2022/ngwr-select-testing.mjs.map +1 -0
- package/fesm2022/ngwr-select.mjs +87 -16
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-shiny-text.mjs +2 -2
- package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
- package/fesm2022/ngwr-sidebar.mjs +65 -12
- package/fesm2022/ngwr-sidebar.mjs.map +1 -1
- package/fesm2022/ngwr-slider-testing.mjs +478 -0
- package/fesm2022/ngwr-slider-testing.mjs.map +1 -0
- package/fesm2022/ngwr-slider.mjs +57 -13
- package/fesm2022/ngwr-slider.mjs.map +1 -1
- package/fesm2022/ngwr-sparkline.mjs +26 -6
- package/fesm2022/ngwr-sparkline.mjs.map +1 -1
- package/fesm2022/ngwr-speed-dial.mjs +37 -4
- package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
- package/fesm2022/ngwr-spinner.mjs +12 -3
- package/fesm2022/ngwr-spinner.mjs.map +1 -1
- package/fesm2022/ngwr-splash-cursor.mjs +2 -2
- package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
- package/fesm2022/ngwr-split-text.mjs +2 -2
- package/fesm2022/ngwr-split-text.mjs.map +1 -1
- package/fesm2022/ngwr-splitter.mjs +70 -9
- package/fesm2022/ngwr-splitter.mjs.map +1 -1
- package/fesm2022/ngwr-spotlight-card.mjs +2 -2
- package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
- package/fesm2022/ngwr-star-border.mjs +2 -2
- package/fesm2022/ngwr-star-border.mjs.map +1 -1
- package/fesm2022/ngwr-statistic.mjs +24 -7
- 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-switch-testing.mjs +77 -0
- package/fesm2022/ngwr-switch-testing.mjs.map +1 -0
- package/fesm2022/ngwr-switch.mjs +9 -3
- 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 +87 -14
- 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 +38 -6
- 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 +32 -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-toast-testing.mjs +101 -0
- package/fesm2022/ngwr-toast-testing.mjs.map +1 -0
- package/fesm2022/ngwr-toast.mjs +2 -2
- package/fesm2022/ngwr-toast.mjs.map +1 -1
- package/fesm2022/ngwr-tour.mjs +61 -9
- 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 +45 -14
- 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 +73 -7
- package/fesm2022/ngwr-tree.mjs.map +1 -1
- package/fesm2022/ngwr-typewriter.mjs +5 -3
- package/fesm2022/ngwr-typewriter.mjs.map +1 -1
- package/fesm2022/ngwr-version.mjs +1 -1
- package/fesm2022/ngwr-version.mjs.map +1 -1
- package/fesm2022/ngwr-virtual-scroll.mjs +31 -5
- package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
- package/fesm2022/ngwr-waves.mjs +3 -3
- package/fesm2022/ngwr-waves.mjs.map +1 -1
- package/fesm2022/ngwr-window.mjs +8 -0
- package/fesm2022/ngwr-window.mjs.map +1 -1
- package/file-upload/styles/_index.scss +7 -2
- package/gauge/styles/_index.scss +1 -1
- package/glitch-text/styles/_index.scss +4 -0
- package/i18n/en.json +48 -0
- package/i18n/ru.json +48 -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/result/styles/_index.scss +3 -1
- package/schematics/use/symbol-map.json +2 -0
- package/segmented/styles/_index.scss +12 -1
- package/select/styles/_index.scss +32 -10
- 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 +19 -3
- package/styles/_grid.scss +4 -4
- package/styles.scss +1 -0
- package/switch/styles/_index.scss +5 -3
- package/table/styles/_index.scss +25 -12
- package/tabs/styles/_index.scss +11 -1
- package/textarea/styles/_index.scss +5 -0
- package/theme/styles/_colors.scss +44 -15
- package/theme/styles/_dark.scss +35 -15
- 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 +9 -5
- 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 +26 -10
- package/types/ngwr-calendar-heatmap.d.ts +16 -2
- package/types/ngwr-calendar.d.ts +10 -0
- 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-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 +4 -0
- package/types/ngwr-dialog-testing.d.ts +79 -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-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-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-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 +1 -0
- 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 +9 -0
- 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-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-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/typewriter/styles/_index.scss +1 -1
- package/typography/styles/_index.scss +1 -1
- package/window/styles/_index.scss +32 -9
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
&::before {
|
|
89
89
|
content: '';
|
|
90
90
|
position: absolute;
|
|
91
|
-
|
|
91
|
+
inset-inline-start: 0.34375rem;
|
|
92
92
|
top: 1rem;
|
|
93
93
|
bottom: -1.25rem;
|
|
94
94
|
width: 1.5px;
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
position: absolute;
|
|
120
120
|
// Dot centre: margin-top 0.125rem + half of the 0.75rem dot = 0.5rem.
|
|
121
121
|
top: 0.5rem;
|
|
122
|
-
|
|
122
|
+
inset-inline-start: 50%;
|
|
123
123
|
width: calc(100% + 2rem);
|
|
124
124
|
height: 1.5px;
|
|
125
125
|
background: var(--wr-color-outline);
|
package/toast/styles/_index.scss
CHANGED
|
@@ -26,6 +26,10 @@ $toast-colors: (
|
|
|
26
26
|
// Safe-area: fold each inset into the matching padding side so toasts clear
|
|
27
27
|
// notches / the home indicator / rounded corners on mobile, whichever edge
|
|
28
28
|
// the host is anchored to. env() is 0 without insets, so desktop stays 1rem.
|
|
29
|
+
// `env(safe-area-inset-left/right)` report the device's own edges and do NOT
|
|
30
|
+
// flip with direction, so each inset must stay on the side it describes. The
|
|
31
|
+
// 1rem base is equal on both sides, so the shorthand reads the same either way.
|
|
32
|
+
// rtl-ok: physical shorthand carrying physical `env()` insets
|
|
29
33
|
padding: calc(1rem + env(safe-area-inset-top)) calc(1rem + env(safe-area-inset-right))
|
|
30
34
|
calc(1rem + env(safe-area-inset-bottom)) calc(1rem + env(safe-area-inset-left));
|
|
31
35
|
pointer-events: none;
|
|
@@ -57,8 +61,7 @@ $toast-colors: (
|
|
|
57
61
|
.wr-toast {
|
|
58
62
|
--wr-toast-i: var(--wr-toast-stack-index, 0);
|
|
59
63
|
position: absolute;
|
|
60
|
-
|
|
61
|
-
right: 1rem;
|
|
64
|
+
inset-inline: 1rem;
|
|
62
65
|
width: auto;
|
|
63
66
|
max-width: calc(100% - 2rem);
|
|
64
67
|
transition:
|
|
@@ -98,31 +101,33 @@ $toast-colors: (
|
|
|
98
101
|
|
|
99
102
|
&--top {
|
|
100
103
|
top: 0;
|
|
104
|
+
// rtl-ok: centred with a physical translateX, so the pair must stay physical
|
|
101
105
|
left: 50%;
|
|
102
106
|
transform: translateX(-50%);
|
|
103
107
|
}
|
|
104
108
|
&--top-start {
|
|
105
109
|
top: 0;
|
|
106
|
-
|
|
110
|
+
inset-inline-start: 0;
|
|
107
111
|
}
|
|
108
112
|
&--top-end {
|
|
109
113
|
top: 0;
|
|
110
|
-
|
|
114
|
+
inset-inline-end: 0;
|
|
111
115
|
}
|
|
112
116
|
&--bottom {
|
|
113
117
|
bottom: 0;
|
|
118
|
+
// rtl-ok: centred with a physical translateX, so the pair must stay physical
|
|
114
119
|
left: 50%;
|
|
115
120
|
transform: translateX(-50%);
|
|
116
121
|
flex-direction: column-reverse;
|
|
117
122
|
}
|
|
118
123
|
&--bottom-start {
|
|
119
124
|
bottom: 0;
|
|
120
|
-
|
|
125
|
+
inset-inline-start: 0;
|
|
121
126
|
flex-direction: column-reverse;
|
|
122
127
|
}
|
|
123
128
|
&--bottom-end {
|
|
124
129
|
bottom: 0;
|
|
125
|
-
|
|
130
|
+
inset-inline-end: 0;
|
|
126
131
|
flex-direction: column-reverse;
|
|
127
132
|
}
|
|
128
133
|
}
|
|
@@ -143,7 +148,7 @@ $toast-colors: (
|
|
|
143
148
|
border: 1px solid var(--wr-toast-border);
|
|
144
149
|
// Capture horizontal swipe-to-dismiss; let vertical scroll pass through.
|
|
145
150
|
touch-action: pan-y;
|
|
146
|
-
border-
|
|
151
|
+
border-inline-start: 3px solid var(--wr-toast-accent);
|
|
147
152
|
@include theme.smooth-br(var(--wr-border-radius-base));
|
|
148
153
|
box-shadow: var(--wr-shadow-overlay);
|
|
149
154
|
font-family: var(--wr-font-family-base);
|
|
@@ -201,9 +206,13 @@ $toast-colors: (
|
|
|
201
206
|
&__progress {
|
|
202
207
|
position: absolute;
|
|
203
208
|
bottom: 0;
|
|
204
|
-
|
|
209
|
+
inset-inline-start: 0;
|
|
205
210
|
height: 2px;
|
|
206
211
|
width: 100%;
|
|
212
|
+
// `transform-origin` has no logical keyword, and the drain is a physical
|
|
213
|
+
// `scaleX`. Flipping the bar to drain from the reader's start needs a
|
|
214
|
+
// direction-aware rule, not a property rename.
|
|
215
|
+
// rtl-ok: origin is one half of a physical scaleX pair
|
|
207
216
|
transform-origin: left;
|
|
208
217
|
background: var(--wr-toast-accent);
|
|
209
218
|
animation: wr-toast-progress linear forwards;
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
|
|
52
52
|
&--end {
|
|
53
53
|
flex: 0 0 auto;
|
|
54
|
-
margin-
|
|
54
|
+
margin-inline-start: auto;
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
&::before {
|
|
65
65
|
content: '';
|
|
66
66
|
position: absolute;
|
|
67
|
-
|
|
67
|
+
inset-inline-start: -0.5rem;
|
|
68
68
|
top: 50%;
|
|
69
69
|
transform: translateY(-50%);
|
|
70
70
|
height: 1.25rem;
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
.wr-toolbar--responsive .wr-toolbar__zone--end {
|
|
85
|
-
margin-
|
|
85
|
+
margin-inline-start: 0;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
// The vertical hairline dividers are a horizontal-row affordance — drop them
|
package/tour/styles/_index.scss
CHANGED
|
@@ -5,7 +5,13 @@
|
|
|
5
5
|
// covered, so it stays readable and clickable.
|
|
6
6
|
.wr-tour__spotlight {
|
|
7
7
|
position: fixed;
|
|
8
|
-
|
|
8
|
+
// Below CDK's `.cdk-overlay-container` (1000), deliberately. Both are fixed
|
|
9
|
+
// children of `<body>`, so at equal z-index the DOM order decides — and the
|
|
10
|
+
// service appends a fresh cut-out on every step while the container stays put, so
|
|
11
|
+
// from the second step on the dimming shadow painted OVER the tour's own card.
|
|
12
|
+
// `.wr-tour-overlay { z-index: 1001 }` cannot help: it sits on the pane INSIDE the
|
|
13
|
+
// container, whose own stacking context scopes it.
|
|
14
|
+
z-index: 999;
|
|
9
15
|
pointer-events: none;
|
|
10
16
|
border-radius: var(--wr-border-radius-base);
|
|
11
17
|
box-shadow: 0 0 0 9999px rgba(var(--wr-color-backdrop-rgb), 0.55);
|
package/tree/styles/_index.scss
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
align-items: center;
|
|
20
20
|
gap: 0.375rem;
|
|
21
21
|
padding: 0.3125rem 0.5rem;
|
|
22
|
-
padding-
|
|
22
|
+
padding-inline-start: calc(0.5rem + var(--wr-tree-depth, 0) * var(--wr-tree-indent));
|
|
23
23
|
border-radius: var(--wr-border-radius-sm);
|
|
24
24
|
cursor: pointer;
|
|
25
25
|
user-select: none;
|
|
@@ -34,7 +34,8 @@
|
|
|
34
34
|
|
|
35
35
|
&--selected {
|
|
36
36
|
background: var(--wr-color-primary-soft);
|
|
37
|
-
|
|
37
|
+
// Text on the `-soft` tint: `-ink`. Bare measured 4.19:1 light / 3.63:1 dark.
|
|
38
|
+
color: var(--wr-color-primary-ink);
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
// Visible ring only when the row truly has keyboard focus — not
|
|
@@ -156,7 +157,7 @@
|
|
|
156
157
|
font-size: var(--wr-tree-trigger-font-size);
|
|
157
158
|
line-height: var(--wr-tree-trigger-line-height);
|
|
158
159
|
cursor: pointer;
|
|
159
|
-
text-align:
|
|
160
|
+
text-align: start;
|
|
160
161
|
transition:
|
|
161
162
|
border-color var(--wr-transition-base),
|
|
162
163
|
box-shadow var(--wr-transition-base);
|
|
@@ -243,10 +244,13 @@
|
|
|
243
244
|
align-items: center;
|
|
244
245
|
gap: 0.125rem;
|
|
245
246
|
max-width: 100%;
|
|
246
|
-
|
|
247
|
+
// Roomier on the label side, tighter where the remove (×) sits.
|
|
248
|
+
padding-block: 0.125rem;
|
|
249
|
+
padding-inline: 0.5rem 0.25rem;
|
|
247
250
|
border-radius: 999px;
|
|
248
251
|
background: var(--wr-color-primary-soft);
|
|
249
|
-
|
|
252
|
+
// The chip wraps a label, so this paints text on the chip's own tint.
|
|
253
|
+
color: var(--wr-color-primary-ink);
|
|
250
254
|
font-size: var(--wr-text-sm);
|
|
251
255
|
line-height: 1.4;
|
|
252
256
|
user-select: none;
|
|
@@ -60,6 +60,14 @@ declare class WrActionSheet {
|
|
|
60
60
|
readonly actions: _angular_core.InputSignal<readonly WrActionSheetAction[]>;
|
|
61
61
|
/** Optional bold heading above the rows. */
|
|
62
62
|
readonly title: _angular_core.InputSignal<string>;
|
|
63
|
+
/**
|
|
64
|
+
* Name announced for the dialog when there is no visible `title`. Falls back to
|
|
65
|
+
* `actionSheet.label`, then `'Actions'` — it used to be that English string,
|
|
66
|
+
* written into the template of a component whose every other string comes from
|
|
67
|
+
* the caller.
|
|
68
|
+
*/
|
|
69
|
+
readonly titleFallback: _angular_core.InputSignal<string | null>;
|
|
70
|
+
protected readonly resolvedTitleFallback: _angular_core.Signal<string>;
|
|
63
71
|
/** Optional muted sub-heading under the title. */
|
|
64
72
|
readonly message: _angular_core.InputSignal<string>;
|
|
65
73
|
/** Fires with the chosen row (never fires on a dismiss). */
|
|
@@ -68,7 +76,7 @@ declare class WrActionSheet {
|
|
|
68
76
|
protected readonly cancelActions: _angular_core.Signal<WrActionSheetAction[]>;
|
|
69
77
|
protected select(item: WrActionSheetAction): void;
|
|
70
78
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrActionSheet, never>;
|
|
71
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrActionSheet, "wr-action-sheet", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "action": "action"; }, never, never, true, never>;
|
|
79
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrActionSheet, "wr-action-sheet", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "titleFallback": { "alias": "titleFallback"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "action": "action"; }, never, never, true, never>;
|
|
72
80
|
}
|
|
73
81
|
|
|
74
82
|
export { WrActionSheet };
|
package/types/ngwr-affix.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Stick-on-scroll directive. Combines native CSS `position: sticky` with
|
|
5
|
-
* an `IntersectionObserver`-driven
|
|
5
|
+
* an `IntersectionObserver`-driven `wr-affix--active` state class, so consumers
|
|
6
6
|
* can style the element differently while it's pinned (e.g. add a
|
|
7
7
|
* shadow, change the background, shrink the height).
|
|
8
8
|
*
|
|
@@ -35,6 +35,12 @@ declare class WrAffix {
|
|
|
35
35
|
private readonly host;
|
|
36
36
|
private readonly destroyRef;
|
|
37
37
|
private readonly isBrowser;
|
|
38
|
+
/**
|
|
39
|
+
* `afterNextRender`'s callback is not an injection context, and the observer
|
|
40
|
+
* cannot exist before the sentinel it watches — so the effect that rebuilds it
|
|
41
|
+
* is handed the injector explicitly.
|
|
42
|
+
*/
|
|
43
|
+
private readonly injector;
|
|
38
44
|
constructor();
|
|
39
45
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrAffix, never>;
|
|
40
46
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WrAffix, "[wrAffix]", never, { "offsetTop": { "alias": "wrAffixOffsetTop"; "required": false; "isSignal": true; }; }, { "affixChange": "wrAffixChange"; }, never, never, true, never>;
|
package/types/ngwr-anchor.d.ts
CHANGED
|
@@ -32,6 +32,13 @@ interface WrAnchorLink {
|
|
|
32
32
|
*/
|
|
33
33
|
declare class WrAnchor {
|
|
34
34
|
readonly links: _angular_core.InputSignal<readonly WrAnchorLink[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Accessible name for the navigation landmark. Falls back to `anchor.label`,
|
|
37
|
+
* then `'Table of contents'` — it used to be that English string, hard-coded
|
|
38
|
+
* on the host, in a landmark a screen reader reads out on every page.
|
|
39
|
+
*/
|
|
40
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
41
|
+
protected readonly resolvedAriaLabel: _angular_core.Signal<string>;
|
|
35
42
|
/** Pixel offset subtracted on scroll — for sticky headers. @default 0 */
|
|
36
43
|
readonly offset: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
37
44
|
/** Highlight an item when its target's top is within this many px of the offset line. @default 80 */
|
|
@@ -46,7 +53,7 @@ declare class WrAnchor {
|
|
|
46
53
|
constructor();
|
|
47
54
|
protected onClick(id: string, event: MouseEvent): void;
|
|
48
55
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrAnchor, never>;
|
|
49
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrAnchor, "wr-anchor", never, { "links": { "alias": "links"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "hitArea": { "alias": "hitArea"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
56
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrAnchor, "wr-anchor", never, { "links": { "alias": "links"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "hitArea": { "alias": "hitArea"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
50
57
|
}
|
|
51
58
|
|
|
52
59
|
export { WrAnchor };
|
package/types/ngwr-avatar.d.ts
CHANGED
|
@@ -58,11 +58,13 @@ declare class WrAvatar {
|
|
|
58
58
|
*/
|
|
59
59
|
readonly url: _angular_core.InputSignal<string | null>;
|
|
60
60
|
/**
|
|
61
|
-
* Alt text for the image.
|
|
61
|
+
* Alt text for the image. Falls back to `avatar.alt`, then `'Avatar'` — pass
|
|
62
|
+
* the person's name where you have it, since that is what a reader wants.
|
|
62
63
|
*
|
|
63
|
-
* @default
|
|
64
|
+
* @default null
|
|
64
65
|
*/
|
|
65
|
-
readonly alt: _angular_core.InputSignal<string>;
|
|
66
|
+
readonly alt: _angular_core.InputSignal<string | null>;
|
|
67
|
+
protected readonly resolvedAlt: _angular_core.Signal<string>;
|
|
66
68
|
/**
|
|
67
69
|
* Corner treatment. `rounded` (default) is a soft rounded square,
|
|
68
70
|
* `circle` is the classic profile avatar, `squircle` is the iOS look.
|
|
@@ -77,11 +79,19 @@ declare class WrAvatar {
|
|
|
77
79
|
*/
|
|
78
80
|
readonly size: _angular_core.InputSignal<WrAvatarSize>;
|
|
79
81
|
protected readonly loaded: _angular_core.WritableSignal<boolean>;
|
|
82
|
+
/**
|
|
83
|
+
* Whether the image failed. Without this the spinner spun forever on a broken
|
|
84
|
+
* URL — the one state where an avatar is guaranteed to have projected initials
|
|
85
|
+
* worth showing instead.
|
|
86
|
+
*/
|
|
87
|
+
protected readonly failed: _angular_core.WritableSignal<boolean>;
|
|
88
|
+
constructor();
|
|
80
89
|
protected readonly resolved: _angular_core.Signal<ResolvedCssSize>;
|
|
81
90
|
protected readonly cssSize: _angular_core.Signal<string>;
|
|
82
91
|
protected readonly pxSize: _angular_core.Signal<number | null>;
|
|
83
92
|
protected readonly classes: _angular_core.Signal<string>;
|
|
84
93
|
protected onImageLoad(): void;
|
|
94
|
+
protected onImageError(): void;
|
|
85
95
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrAvatar, never>;
|
|
86
96
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrAvatar, "wr-avatar", never, { "url": { "alias": "url"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
87
97
|
}
|
|
@@ -32,12 +32,28 @@ declare class WrBarChart {
|
|
|
32
32
|
readonly height: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
33
33
|
/** Explicit max value. `0` = auto. @default 0 */
|
|
34
34
|
readonly max: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
35
|
+
/**
|
|
36
|
+
* A datum's value, with anything non-finite read as `0`.
|
|
37
|
+
*
|
|
38
|
+
* One `NaN` used to take out the whole chart rather than its own bar:
|
|
39
|
+
* `Math.max(...values)` is `NaN` as soon as one value is, so the scale fell
|
|
40
|
+
* back to `1` and every OTHER bar was asked for a height of `value * 100`%.
|
|
41
|
+
* The bad bar also printed the literal text `NaN` above itself.
|
|
42
|
+
*/
|
|
43
|
+
private static value;
|
|
35
44
|
protected readonly resolvedMax: _angular_core.Signal<number>;
|
|
36
45
|
protected readonly bars: _angular_core.Signal<{
|
|
37
46
|
label: string;
|
|
38
47
|
value: number;
|
|
39
48
|
color: string;
|
|
40
49
|
heightPercent: number;
|
|
50
|
+
/**
|
|
51
|
+
* The bar's accessible name. The label and the value sit in separate
|
|
52
|
+
* rows, so a screen reader read every number and then every label with
|
|
53
|
+
* nothing tying the two together — and with `showValues` off the
|
|
54
|
+
* numbers were not in the accessible tree at all.
|
|
55
|
+
*/
|
|
56
|
+
name: string;
|
|
41
57
|
}[]>;
|
|
42
58
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrBarChart, never>;
|
|
43
59
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrBarChart, "wr-bar-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "showValues": { "alias": "showValues"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
package/types/ngwr-burger.d.ts
CHANGED
|
@@ -20,8 +20,12 @@ import * as _angular_core from '@angular/core';
|
|
|
20
20
|
declare class WrBurger {
|
|
21
21
|
/** Two-way bindable open state. Drives the hamburger ↔ close morph. @default false */
|
|
22
22
|
readonly open: _angular_core.ModelSignal<boolean>;
|
|
23
|
-
/**
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Accessible name for the toggle button. Falls back to `burger.label`, then
|
|
25
|
+
* `'Toggle menu'`.
|
|
26
|
+
*/
|
|
27
|
+
readonly label: _angular_core.InputSignal<string | null>;
|
|
28
|
+
protected readonly resolvedLabel: _angular_core.Signal<string>;
|
|
25
29
|
/** Disable the toggle. @default false */
|
|
26
30
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
27
31
|
protected readonly classes: _angular_core.Signal<{
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
|
|
2
|
+
import { WrColor } from 'ngwr/theme';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @license
|
|
6
|
+
*
|
|
7
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
8
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/** Narrows which `<wr-btn>` a harness query matches. */
|
|
12
|
+
interface WrButtonHarnessFilters extends BaseHarnessFilters {
|
|
13
|
+
/** Match the button's visible label — a string is an exact match, a RegExp is tested. */
|
|
14
|
+
readonly text?: string | RegExp;
|
|
15
|
+
/** Match only enabled (`false`) or only disabled (`true`) buttons. */
|
|
16
|
+
readonly disabled?: boolean;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @license
|
|
21
|
+
*
|
|
22
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
23
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Test harness for `<wr-btn>` — drive a button from a consumer's spec without
|
|
28
|
+
* knowing how it is built.
|
|
29
|
+
*
|
|
30
|
+
* Everything this reads is public API: the `wr-btn` selector, the
|
|
31
|
+
* `.wr-btn__label` element, the `wr-btn--*` modifiers and the disabled attributes.
|
|
32
|
+
* `<wr-btn>` is deliberately NOT always a native `<button>` — the element form
|
|
33
|
+
* exists so a link or a custom host can be one — which is why the disabled state
|
|
34
|
+
* is answered from the ATTRIBUTES rather than from `el.disabled`, a property half
|
|
35
|
+
* of those shapes do not have.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* const loader = TestbedHarnessEnvironment.loader(fixture);
|
|
40
|
+
* const save = await loader.getHarness(WrButtonHarness.with({ text: 'Save' }));
|
|
41
|
+
*
|
|
42
|
+
* expect(await save.isDisabled()).toBe(false);
|
|
43
|
+
* await save.click();
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @see https://ngwr.dev/guides/testing
|
|
47
|
+
*/
|
|
48
|
+
declare class WrButtonHarness extends ComponentHarness {
|
|
49
|
+
/** Every shape the button ships in: the element, and the two attribute forms. */
|
|
50
|
+
static hostSelector: string;
|
|
51
|
+
/** Build a predicate that narrows the query — pass to `getHarness` / `getAllHarnesses`. */
|
|
52
|
+
static with(options?: WrButtonHarnessFilters): HarnessPredicate<WrButtonHarness>;
|
|
53
|
+
/** The button's visible label, trimmed. Icons and the spinner are not part of it. */
|
|
54
|
+
getText(): Promise<string>;
|
|
55
|
+
/**
|
|
56
|
+
* Whether the button refuses interaction.
|
|
57
|
+
*
|
|
58
|
+
* Both signals are read, because the component sets them for different reasons:
|
|
59
|
+
* `disabled` lands on every shape (it is inert on a custom element, which is
|
|
60
|
+
* exactly why `aria-disabled` exists as well, but it is the attribute that is
|
|
61
|
+
* always there). A button that is merely LOADING also answers `true` here, and
|
|
62
|
+
* that is not a quirk — by default a loading button refuses clicks.
|
|
63
|
+
*/
|
|
64
|
+
isDisabled(): Promise<boolean>;
|
|
65
|
+
/** Whether the button is showing its loading spinner. */
|
|
66
|
+
isLoading(): Promise<boolean>;
|
|
67
|
+
/**
|
|
68
|
+
* The intent colour, or `null` when the button carries none.
|
|
69
|
+
*
|
|
70
|
+
* Matched against `WR_COLORS` rather than "the first `wr-btn--*` class": the
|
|
71
|
+
* modifier list also carries the size, the shape, `outlined`, `block`, `loading`
|
|
72
|
+
* and the icon position, so a pattern match answers `icon` as readily as
|
|
73
|
+
* `primary`.
|
|
74
|
+
*/
|
|
75
|
+
getColor(): Promise<WrColor | null>;
|
|
76
|
+
/** Click the button. A disabled button is still clicked — assert, do not assume. */
|
|
77
|
+
click(): Promise<void>;
|
|
78
|
+
/** Move keyboard focus to the button. */
|
|
79
|
+
focus(): Promise<void>;
|
|
80
|
+
/** Whether the button currently has focus. */
|
|
81
|
+
isFocused(): Promise<boolean>;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export { WrButtonHarness };
|
|
85
|
+
export type { WrButtonHarnessFilters };
|
package/types/ngwr-button.d.ts
CHANGED
|
@@ -68,13 +68,26 @@ type WrButtonIconPosition = 'start' | 'end';
|
|
|
68
68
|
* @see https://ngwr.dev/reference/components/button
|
|
69
69
|
*/
|
|
70
70
|
declare class WrButton {
|
|
71
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* Color variant. Omit for the neutral default style.
|
|
73
|
+
*
|
|
74
|
+
* Deliberately NOT configurable app-wide: the library's own chrome binds
|
|
75
|
+
* `[color]="isCurrent ? 'primary' : null"`, where `null` means neutral, and a
|
|
76
|
+
* configured intent would repaint every one of those buttons. See `WrConfig`.
|
|
77
|
+
*
|
|
78
|
+
* @default null
|
|
79
|
+
*/
|
|
72
80
|
readonly color: _angular_core.InputSignal<"primary" | "secondary" | "success" | "warning" | "danger" | "info" | "light" | "medium" | "dark" | null>;
|
|
73
|
-
/** Size variant. @default 'md' */
|
|
74
|
-
readonly size: _angular_core.InputSignal<WrButtonSize>;
|
|
75
81
|
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
82
|
+
* Size variant. Unset, it resolves through
|
|
83
|
+
* `provideWrConfig({ button: { size } })` and then to `md`.
|
|
84
|
+
*
|
|
85
|
+
* @default 'md'
|
|
86
|
+
*/
|
|
87
|
+
readonly size: _angular_core.InputSignal<WrButtonSize | null>;
|
|
88
|
+
/**
|
|
89
|
+
* Corner treatment — `rounded`, `pill` or `squircle`. `null` (default) falls
|
|
90
|
+
* back to `rounded`. Inside a `<wr-btn-group shape="…">`, the group's shape
|
|
78
91
|
* ALWAYS wins over this input — the group enforces a consistent corner
|
|
79
92
|
* treatment across its members.
|
|
80
93
|
*
|
|
@@ -106,13 +119,16 @@ declare class WrButton {
|
|
|
106
119
|
*/
|
|
107
120
|
readonly isDisabledWhenLoading: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
108
121
|
private readonly group;
|
|
122
|
+
/** The size, or the app-wide default, or `md`. @see useConfigValue */
|
|
123
|
+
protected readonly resolvedSize: _angular_core.Signal<WrButtonSize>;
|
|
109
124
|
/**
|
|
110
|
-
* Resolved shape. Inside a `<wr-btn-group>`, the group ALWAYS wins —
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
125
|
+
* Resolved shape. Inside a `<wr-btn-group>`, the group ALWAYS wins — child
|
|
126
|
+
* `[shape]` is ignored entirely so the group reads as one coherent control.
|
|
127
|
+
* Outside a group, the button's own `[shape]` is used, falling back to
|
|
128
|
+
* `rounded`. Not config-resolved: see `WrConfig` for why a boolean cannot
|
|
129
|
+
* express this three-valued input.
|
|
114
130
|
*/
|
|
115
|
-
protected readonly
|
|
131
|
+
protected readonly resolvedShape: _angular_core.Signal<WrButtonShape>;
|
|
116
132
|
private readonly hostEl;
|
|
117
133
|
/**
|
|
118
134
|
* Whether this instance is the `<wr-btn>` ELEMENT rather than the attribute
|
|
@@ -27,6 +27,13 @@ interface Cell {
|
|
|
27
27
|
*/
|
|
28
28
|
declare class WrCalendarHeatmap {
|
|
29
29
|
readonly data: _angular_core.InputSignal<readonly WrHeatmapDatum[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Accessible name of the whole grid. Its cells are bare spans whose `title` a screen
|
|
32
|
+
* reader on a role-less element does not read, so the map used to be several hundred
|
|
33
|
+
* anonymous nodes with no name. Falls back to `calendarHeatmap.label`.
|
|
34
|
+
*/
|
|
35
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
36
|
+
protected readonly resolvedAriaLabel: _angular_core.Signal<string>;
|
|
30
37
|
/** Last day to render. @default today */
|
|
31
38
|
readonly endDate: _angular_core.InputSignal<string | Date | null>;
|
|
32
39
|
/** Number of weeks (columns) to render. @default 53 */
|
|
@@ -41,7 +48,14 @@ declare class WrCalendarHeatmap {
|
|
|
41
48
|
readonly emptyColor: _angular_core.InputSignal<string>;
|
|
42
49
|
/** Show the weekday + month labels around the grid. @default true */
|
|
43
50
|
readonly showLabels: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
44
|
-
|
|
51
|
+
private readonly locale;
|
|
52
|
+
/**
|
|
53
|
+
* Weekday names from the locale rather than a hard-coded English list — the row order is
|
|
54
|
+
* Sunday-first, matching the grid's own alignment, so 7 Jan 2024 (a Sunday) is the
|
|
55
|
+
* reference. Rows without a label stay blank on purpose: seven labels do not fit.
|
|
56
|
+
*/
|
|
57
|
+
protected readonly weekdayLabels: _angular_core.Signal<readonly string[]>;
|
|
58
|
+
private readonly monthNames;
|
|
45
59
|
protected readonly cells: _angular_core.Signal<readonly Cell[]>;
|
|
46
60
|
protected readonly monthLabels: _angular_core.Signal<{
|
|
47
61
|
label: string;
|
|
@@ -51,7 +65,7 @@ declare class WrCalendarHeatmap {
|
|
|
51
65
|
protected colorFor(intensity: number): string;
|
|
52
66
|
protected opacityFor(intensity: number): number;
|
|
53
67
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrCalendarHeatmap, never>;
|
|
54
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCalendarHeatmap, "wr-calendar-heatmap", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "endDate": { "alias": "endDate"; "required": false; "isSignal": true; }; "weeks": { "alias": "weeks"; "required": false; "isSignal": true; }; "cellSize": { "alias": "cellSize"; "required": false; "isSignal": true; }; "cellGap": { "alias": "cellGap"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "emptyColor": { "alias": "emptyColor"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
68
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCalendarHeatmap, "wr-calendar-heatmap", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "endDate": { "alias": "endDate"; "required": false; "isSignal": true; }; "weeks": { "alias": "weeks"; "required": false; "isSignal": true; }; "cellSize": { "alias": "cellSize"; "required": false; "isSignal": true; }; "cellGap": { "alias": "cellGap"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "emptyColor": { "alias": "emptyColor"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
55
69
|
}
|
|
56
70
|
|
|
57
71
|
export { WrCalendarHeatmap };
|
package/types/ngwr-calendar.d.ts
CHANGED
|
@@ -68,6 +68,7 @@ declare class WrCalendar {
|
|
|
68
68
|
/** Disable interaction entirely. @default false */
|
|
69
69
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
70
70
|
private readonly adapter;
|
|
71
|
+
private readonly dir;
|
|
71
72
|
private readonly host;
|
|
72
73
|
private readonly injector;
|
|
73
74
|
/** Currently displayed month (any date inside it). */
|
|
@@ -134,6 +135,15 @@ declare class WrCalendar {
|
|
|
134
135
|
private focusActiveCell;
|
|
135
136
|
/** Used by the template's `track` expression. */
|
|
136
137
|
protected trackByTime(_: number, date: Date): number;
|
|
138
|
+
/**
|
|
139
|
+
* The key as the GRID sees it.
|
|
140
|
+
*
|
|
141
|
+
* Arrow keys follow visual order, and a calendar grid mirrors under
|
|
142
|
+
* `dir="rtl"`: the day to the visual right of today is yesterday. Only the
|
|
143
|
+
* inline pair swaps — Up/Down step a week either way, and PageUp/PageDown and
|
|
144
|
+
* Home/End are semantic rather than physical.
|
|
145
|
+
*/
|
|
146
|
+
private inlineKey;
|
|
137
147
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrCalendar, never>;
|
|
138
148
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCalendar, "wr-calendar", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "range": { "alias": "range"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "dateFilter": { "alias": "dateFilter"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "date": "dateChange"; "range": "rangeChange"; }, never, never, true, never>;
|
|
139
149
|
}
|