ngwr 11.2.0 → 12.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 +7 -7
- package/burger/styles/_index.scss +1 -1
- package/button/styles/_index.scss +2 -2
- package/calendar/styles/_index.scss +32 -12
- package/calendar-heatmap/styles/_index.scss +20 -0
- package/carousel/styles/_index.scss +23 -1
- package/cascader/styles/_index.scss +15 -3
- package/checkbox/styles/_index.scss +2 -2
- package/collapse/styles/_index.scss +2 -2
- package/color-picker/styles/_index.scss +3 -3
- package/compare/styles/_index.scss +18 -2
- package/context-menu/styles/_index.scss +21 -2
- package/date-picker/styles/_index.scss +5 -5
- package/descriptions/styles/_index.scss +1 -1
- package/drag-drop/styles/_index.scss +28 -1
- package/drawer/styles/_index.scss +37 -0
- package/dropdown/styles/_index.scss +2 -2
- package/event-calendar/styles/_index.scss +67 -10
- package/fesm2022/ngwr-action-sheet.mjs +3 -3
- package/fesm2022/ngwr-affix.mjs +3 -3
- package/fesm2022/ngwr-alert.mjs +3 -3
- package/fesm2022/ngwr-anchor.mjs +3 -3
- package/fesm2022/ngwr-aurora.mjs +3 -3
- package/fesm2022/ngwr-avatar.mjs +3 -3
- package/fesm2022/ngwr-back-top.mjs +3 -3
- package/fesm2022/ngwr-badge.mjs +6 -6
- package/fesm2022/ngwr-bar-chart-testing.mjs +20 -2
- package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-bar-chart.mjs +3 -3
- package/fesm2022/ngwr-blur-text.mjs +3 -3
- package/fesm2022/ngwr-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 +29 -17
- package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngwr-burger.mjs +3 -3
- package/fesm2022/ngwr-button.mjs +6 -6
- package/fesm2022/ngwr-calendar-heatmap.mjs +17 -5
- package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
- package/fesm2022/ngwr-calendar-testing.mjs +1 -1
- package/fesm2022/ngwr-calendar-testing.mjs.map +1 -1
- package/fesm2022/ngwr-calendar.mjs +187 -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.mjs +124 -24
- package/fesm2022/ngwr-carousel.mjs.map +1 -1
- package/fesm2022/ngwr-cascader.mjs +48 -5
- package/fesm2022/ngwr-cascader.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox.mjs +6 -6
- package/fesm2022/ngwr-circular-text.mjs +4 -4
- package/fesm2022/ngwr-circular-text.mjs.map +1 -1
- package/fesm2022/ngwr-click-spark.mjs +27 -7
- package/fesm2022/ngwr-click-spark.mjs.map +1 -1
- package/fesm2022/ngwr-clipboard.mjs +3 -3
- package/fesm2022/ngwr-collapse.mjs +9 -9
- package/fesm2022/ngwr-color-picker-testing.mjs +26 -6
- package/fesm2022/ngwr-color-picker-testing.mjs.map +1 -1
- package/fesm2022/ngwr-color-picker.mjs +98 -8
- package/fesm2022/ngwr-color-picker.mjs.map +1 -1
- package/fesm2022/ngwr-command-palette.mjs +14 -5
- package/fesm2022/ngwr-command-palette.mjs.map +1 -1
- package/fesm2022/ngwr-compare.mjs +3 -3
- package/fesm2022/ngwr-confetti.mjs +31 -6
- package/fesm2022/ngwr-confetti.mjs.map +1 -1
- package/fesm2022/ngwr-config.mjs +9 -0
- package/fesm2022/ngwr-config.mjs.map +1 -1
- package/fesm2022/ngwr-context-menu-testing.mjs +30 -11
- package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -1
- package/fesm2022/ngwr-context-menu.mjs +333 -43
- package/fesm2022/ngwr-context-menu.mjs.map +1 -1
- package/fesm2022/ngwr-cookie.mjs +3 -3
- package/fesm2022/ngwr-counter.mjs +25 -9
- package/fesm2022/ngwr-counter.mjs.map +1 -1
- package/fesm2022/{ngwr-date-adapter-fns.mjs → ngwr-date-adapters-fns.mjs} +37 -10
- package/fesm2022/ngwr-date-adapters-fns.mjs.map +1 -0
- package/fesm2022/{ngwr-date-adapter-luxon.mjs → ngwr-date-adapters-luxon.mjs} +5 -5
- package/fesm2022/ngwr-date-adapters-luxon.mjs.map +1 -0
- package/fesm2022/ngwr-date-picker-testing.mjs +11 -6
- package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -1
- package/fesm2022/ngwr-date-picker.mjs +119 -37
- package/fesm2022/ngwr-date-picker.mjs.map +1 -1
- package/fesm2022/{ngwr-date-adapter.mjs → ngwr-date.mjs} +36 -10
- package/fesm2022/ngwr-date.mjs.map +1 -0
- package/fesm2022/ngwr-decrypt-text.mjs +3 -3
- package/fesm2022/ngwr-density.mjs +6 -6
- package/fesm2022/ngwr-descriptions.mjs +6 -6
- package/fesm2022/ngwr-dialog.mjs +73 -18
- package/fesm2022/ngwr-dialog.mjs.map +1 -1
- package/fesm2022/ngwr-directives.mjs +12 -12
- package/fesm2022/ngwr-divider.mjs +52 -5
- package/fesm2022/ngwr-divider.mjs.map +1 -1
- package/fesm2022/ngwr-donut-chart-testing.mjs +8 -4
- package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-donut-chart.mjs +7 -7
- package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
- package/fesm2022/ngwr-drag-drop.mjs +160 -11
- package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
- package/fesm2022/ngwr-drawer.mjs +121 -58
- package/fesm2022/ngwr-drawer.mjs.map +1 -1
- package/fesm2022/ngwr-dropdown.mjs +26 -10
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-empty.mjs +3 -3
- package/fesm2022/ngwr-event-calendar.mjs +28 -15
- package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-falling-text-testing.mjs +5 -3
- package/fesm2022/ngwr-falling-text-testing.mjs.map +1 -1
- package/fesm2022/ngwr-falling-text.mjs +75 -46
- package/fesm2022/ngwr-falling-text.mjs.map +1 -1
- package/fesm2022/ngwr-file-upload.mjs +3 -3
- package/fesm2022/ngwr-form.mjs +32 -15
- package/fesm2022/ngwr-form.mjs.map +1 -1
- package/fesm2022/ngwr-fuzzy-text.mjs +21 -11
- package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
- package/fesm2022/ngwr-gauge.mjs +3 -3
- package/fesm2022/ngwr-glitch-text-testing.mjs +51 -17
- package/fesm2022/ngwr-glitch-text-testing.mjs.map +1 -1
- package/fesm2022/ngwr-glitch-text.mjs +7 -7
- package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
- package/fesm2022/ngwr-gradient-text-testing.mjs +46 -11
- package/fesm2022/ngwr-gradient-text-testing.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 +24 -9
- package/fesm2022/ngwr-hotkey.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-en.mjs +73 -1
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ru.mjs +55 -1
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
- package/fesm2022/ngwr-i18n.mjs +26 -15
- package/fesm2022/ngwr-i18n.mjs.map +1 -1
- package/fesm2022/ngwr-icon.mjs +6 -6
- package/fesm2022/ngwr-image-cropper-testing.mjs +53 -9
- package/fesm2022/ngwr-image-cropper-testing.mjs.map +1 -1
- package/fesm2022/ngwr-image-cropper.mjs +150 -12
- package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
- package/fesm2022/ngwr-input-number-testing.mjs +15 -10
- package/fesm2022/ngwr-input-number-testing.mjs.map +1 -1
- package/fesm2022/ngwr-input-number.mjs +17 -10
- package/fesm2022/ngwr-input-number.mjs.map +1 -1
- package/fesm2022/ngwr-input-otp-testing.mjs +12 -6
- package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -1
- package/fesm2022/ngwr-input-otp.mjs +24 -5
- package/fesm2022/ngwr-input-otp.mjs.map +1 -1
- package/fesm2022/ngwr-input.mjs +15 -15
- package/fesm2022/ngwr-keyboard.mjs +3 -3
- package/fesm2022/ngwr-knob.mjs +3 -3
- package/fesm2022/ngwr-layout.mjs +15 -15
- package/fesm2022/ngwr-lightbox.mjs +4 -4
- package/fesm2022/ngwr-lightbox.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart.mjs +73 -26
- package/fesm2022/ngwr-line-chart.mjs.map +1 -1
- package/fesm2022/ngwr-list.mjs +7 -7
- package/fesm2022/ngwr-list.mjs.map +1 -1
- package/fesm2022/ngwr-loading-bar.mjs +7 -7
- package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
- package/fesm2022/ngwr-markdown.mjs +66 -8
- package/fesm2022/ngwr-markdown.mjs.map +1 -1
- package/fesm2022/ngwr-marquee.mjs +4 -4
- package/fesm2022/ngwr-marquee.mjs.map +1 -1
- package/fesm2022/ngwr-media.mjs +3 -3
- package/fesm2022/ngwr-mention.mjs +108 -13
- package/fesm2022/ngwr-mention.mjs.map +1 -1
- package/fesm2022/ngwr-meta.mjs +6 -6
- package/fesm2022/ngwr-meter-group-testing.mjs +26 -6
- package/fesm2022/ngwr-meter-group-testing.mjs.map +1 -1
- package/fesm2022/ngwr-meter-group.mjs +3 -3
- package/fesm2022/ngwr-overlay.mjs +6 -6
- package/fesm2022/ngwr-page-header.mjs +3 -3
- package/fesm2022/ngwr-pagination-testing.mjs +6 -6
- package/fesm2022/ngwr-pagination-testing.mjs.map +1 -1
- package/fesm2022/ngwr-pagination.mjs +17 -13
- package/fesm2022/ngwr-pagination.mjs.map +1 -1
- package/fesm2022/ngwr-pipes.mjs +39 -26
- package/fesm2022/ngwr-pipes.mjs.map +1 -1
- package/fesm2022/ngwr-platform.mjs +9 -9
- package/fesm2022/ngwr-popconfirm.mjs +6 -6
- package/fesm2022/ngwr-popover-testing.mjs +7 -2
- package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
- package/fesm2022/ngwr-popover.mjs +155 -33
- package/fesm2022/ngwr-popover.mjs.map +1 -1
- package/fesm2022/ngwr-progress.mjs +3 -3
- package/fesm2022/ngwr-pull-to-refresh.mjs +3 -3
- package/fesm2022/ngwr-qr.mjs +42 -5
- package/fesm2022/ngwr-qr.mjs.map +1 -1
- package/fesm2022/ngwr-radio.mjs +6 -6
- package/fesm2022/ngwr-rating.mjs +3 -3
- package/fesm2022/ngwr-result.mjs +21 -30
- package/fesm2022/ngwr-result.mjs.map +1 -1
- package/fesm2022/ngwr-rotating-text.mjs +3 -3
- package/fesm2022/ngwr-scroll.mjs +3 -3
- package/fesm2022/ngwr-segmented-testing.mjs +14 -1
- package/fesm2022/ngwr-segmented-testing.mjs.map +1 -1
- package/fesm2022/ngwr-segmented.mjs +29 -6
- package/fesm2022/ngwr-segmented.mjs.map +1 -1
- package/fesm2022/ngwr-select.mjs +159 -34
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-shiny-text.mjs +11 -9
- package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
- package/fesm2022/ngwr-sidebar.mjs +31 -16
- package/fesm2022/ngwr-sidebar.mjs.map +1 -1
- package/fesm2022/ngwr-skeleton.mjs +3 -3
- package/fesm2022/ngwr-slider.mjs +100 -9
- package/fesm2022/ngwr-slider.mjs.map +1 -1
- package/fesm2022/ngwr-sparkline.mjs +3 -3
- package/fesm2022/ngwr-speed-dial-testing.mjs +15 -13
- package/fesm2022/ngwr-speed-dial-testing.mjs.map +1 -1
- package/fesm2022/ngwr-speed-dial.mjs +27 -12
- package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
- package/fesm2022/ngwr-spinner.mjs +3 -3
- package/fesm2022/ngwr-splash-cursor.mjs +3 -3
- package/fesm2022/ngwr-split-text.mjs +17 -5
- package/fesm2022/ngwr-split-text.mjs.map +1 -1
- package/fesm2022/ngwr-splitter.mjs +3 -3
- 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 +9 -9
- package/fesm2022/ngwr-stepper-testing.mjs +8 -8
- package/fesm2022/ngwr-stepper-testing.mjs.map +1 -1
- package/fesm2022/ngwr-stepper.mjs +33 -8
- package/fesm2022/ngwr-stepper.mjs.map +1 -1
- package/fesm2022/ngwr-storage.mjs +17 -5
- package/fesm2022/ngwr-storage.mjs.map +1 -1
- package/fesm2022/ngwr-switch.mjs +3 -3
- package/fesm2022/ngwr-table.mjs +99 -39
- package/fesm2022/ngwr-table.mjs.map +1 -1
- package/fesm2022/ngwr-tabs-testing.mjs +11 -10
- package/fesm2022/ngwr-tabs-testing.mjs.map +1 -1
- package/fesm2022/ngwr-tabs.mjs +36 -10
- package/fesm2022/ngwr-tabs.mjs.map +1 -1
- package/fesm2022/ngwr-textarea.mjs +3 -3
- package/fesm2022/ngwr-theme.mjs +181 -4
- package/fesm2022/ngwr-theme.mjs.map +1 -1
- 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.mjs +9 -9
- package/fesm2022/ngwr-toolbar.mjs +3 -3
- package/fesm2022/ngwr-tour.mjs +34 -10
- package/fesm2022/ngwr-tour.mjs.map +1 -1
- package/fesm2022/ngwr-transfer.mjs +3 -3
- package/fesm2022/ngwr-tree.mjs +28 -10
- package/fesm2022/ngwr-tree.mjs.map +1 -1
- package/fesm2022/ngwr-typewriter-testing.mjs +15 -1
- package/fesm2022/ngwr-typewriter-testing.mjs.map +1 -1
- package/fesm2022/ngwr-typewriter.mjs +13 -5
- package/fesm2022/ngwr-typewriter.mjs.map +1 -1
- package/fesm2022/ngwr-typography.mjs +3 -3
- package/fesm2022/ngwr-utils.mjs +5 -2
- package/fesm2022/ngwr-utils.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 +4 -4
- package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
- package/fesm2022/ngwr-waves.mjs +4 -4
- package/fesm2022/ngwr-waves.mjs.map +1 -1
- package/fesm2022/ngwr-window.mjs +94 -24
- package/fesm2022/ngwr-window.mjs.map +1 -1
- package/file-upload/styles/_index.scss +2 -2
- package/glitch-text/styles/_index.scss +27 -12
- package/i18n/en.json +56 -6
- package/i18n/ru.json +56 -6
- package/image-cropper/styles/_index.scss +19 -0
- package/input/styles/_index.scss +2 -2
- package/input-number/styles/_index.scss +2 -2
- package/input-otp/styles/_index.scss +9 -2
- package/knob/styles/_index.scss +1 -1
- package/lightbox/styles/_index.scss +16 -2
- package/line-chart/styles/_index.scss +28 -14
- package/list/styles/_index.scss +1 -1
- package/llms-full.txt +18 -23
- package/llms.txt +22 -6
- package/markdown/styles/_index.scss +3 -3
- package/mcp/api.js +6 -4
- package/mcp/catalog.js +40 -3
- package/mcp/providers.js +16 -3
- package/mcp/tools.js +21 -1
- package/meter-group/styles/_index.scss +1 -1
- package/overlay/styles/_index.scss +33 -1
- package/package.json +17 -12
- package/pagination/styles/_index.scss +23 -1
- package/popover/styles/_index.scss +16 -7
- package/progress/styles/_index.scss +1 -1
- package/radio/styles/_index.scss +2 -2
- package/rating/styles/_index.scss +1 -1
- package/schematics/collection.json +1 -1
- package/schematics/migrations/v12/index.js +65 -0
- package/schematics/migrations/v7/index.js +12 -1
- package/schematics/migrations/v8/index.js +10 -1
- package/schematics/migrations.json +5 -0
- package/schematics/ng-add/index.js +8 -3
- package/schematics/provider/index.js +80 -13
- package/schematics/use/index.js +9 -129
- package/schematics/use/rule.js +206 -0
- package/schematics/use/symbol-map.json +4 -4
- package/segmented/styles/_index.scss +14 -3
- package/select/styles/_index.scss +14 -2
- package/sidebar/styles/_index.scss +12 -10
- package/skills/ngwr/SKILL.md +7 -5
- package/skills/ngwr/references/catalog.md +9 -9
- package/skills/ngwr/references/setup.md +10 -5
- package/slider/styles/_index.scss +1 -1
- package/speed-dial/styles/_index.scss +1 -1
- package/stepper/styles/_index.scss +12 -3
- package/switch/styles/_index.scss +2 -2
- package/table/styles/_index.scss +61 -12
- package/tabs/styles/_index.scss +1 -1
- package/textarea/styles/_index.scss +1 -1
- package/theme/styles/_colors.scss +142 -56
- package/theme/styles/_dark.scss +46 -3
- package/theme/styles/_focus.scss +28 -5
- package/theme/styles/_mixins.scss +1 -1
- package/theme/styles/_variables.scss +67 -0
- package/transfer/styles/_index.scss +26 -3
- package/tree/styles/_index.scss +29 -6
- package/types/ngwr-bar-chart-testing.d.ts +9 -1
- package/types/ngwr-blur-text.d.ts +8 -4
- package/types/ngwr-breadcrumbs.d.ts +17 -10
- package/types/ngwr-calendar-testing.d.ts +1 -1
- package/types/ngwr-calendar.d.ts +66 -0
- package/types/ngwr-carousel.d.ts +85 -6
- package/types/ngwr-cascader.d.ts +17 -0
- package/types/ngwr-click-spark.d.ts +4 -0
- package/types/ngwr-color-picker-testing.d.ts +8 -0
- package/types/ngwr-color-picker.d.ts +21 -1
- package/types/ngwr-confetti.d.ts +8 -0
- package/types/ngwr-config.d.ts +10 -1
- package/types/ngwr-context-menu-testing.d.ts +24 -11
- package/types/ngwr-context-menu.d.ts +56 -0
- package/types/ngwr-counter.d.ts +1 -0
- package/types/{ngwr-date-adapter-fns.d.ts → ngwr-date-adapters-fns.d.ts} +33 -6
- package/types/{ngwr-date-adapter-luxon.d.ts → ngwr-date-adapters-luxon.d.ts} +1 -1
- package/types/ngwr-date-picker-testing.d.ts +11 -6
- package/types/ngwr-date-picker.d.ts +8 -4
- package/types/{ngwr-date-adapter.d.ts → ngwr-date.d.ts} +24 -5
- package/types/ngwr-dialog.d.ts +38 -1
- package/types/ngwr-divider.d.ts +25 -0
- package/types/ngwr-donut-chart-testing.d.ts +7 -3
- package/types/ngwr-donut-chart.d.ts +3 -3
- package/types/ngwr-drag-drop.d.ts +56 -2
- package/types/ngwr-drawer.d.ts +56 -5
- package/types/ngwr-event-calendar.d.ts +8 -2
- package/types/ngwr-falling-text-testing.d.ts +5 -3
- package/types/ngwr-falling-text.d.ts +1 -1
- package/types/ngwr-form.d.ts +12 -2
- package/types/ngwr-glitch-text-testing.d.ts +37 -8
- package/types/ngwr-gradient-text-testing.d.ts +16 -3
- package/types/ngwr-i18n.d.ts +13 -4
- package/types/ngwr-image-cropper-testing.d.ts +49 -10
- package/types/ngwr-image-cropper.d.ts +70 -5
- package/types/ngwr-input-number-testing.d.ts +15 -10
- package/types/ngwr-input-number.d.ts +11 -4
- package/types/ngwr-input-otp-testing.d.ts +12 -6
- package/types/ngwr-input-otp.d.ts +15 -1
- package/types/ngwr-line-chart.d.ts +20 -3
- package/types/ngwr-markdown.d.ts +11 -0
- package/types/ngwr-mention.d.ts +32 -0
- package/types/ngwr-meter-group-testing.d.ts +12 -2
- package/types/ngwr-overlay.d.ts +1 -0
- package/types/ngwr-pagination-testing.d.ts +4 -4
- package/types/ngwr-pipes.d.ts +1 -1
- package/types/ngwr-popover-testing.d.ts +7 -2
- package/types/ngwr-popover.d.ts +1 -0
- package/types/ngwr-result.d.ts +6 -0
- package/types/ngwr-segmented-testing.d.ts +9 -0
- package/types/ngwr-segmented.d.ts +21 -1
- package/types/ngwr-select.d.ts +68 -6
- package/types/ngwr-shiny-text.d.ts +4 -2
- package/types/ngwr-sidebar.d.ts +14 -5
- package/types/ngwr-slider.d.ts +69 -1
- package/types/ngwr-speed-dial-testing.d.ts +15 -11
- package/types/ngwr-speed-dial.d.ts +22 -3
- package/types/ngwr-split-text.d.ts +9 -0
- package/types/ngwr-stepper-testing.d.ts +5 -5
- package/types/ngwr-stepper.d.ts +8 -0
- package/types/ngwr-storage.d.ts +1 -0
- package/types/ngwr-table.d.ts +104 -11
- package/types/ngwr-tabs-testing.d.ts +11 -10
- package/types/ngwr-tabs.d.ts +2 -0
- package/types/ngwr-theme.d.ts +82 -1
- package/types/ngwr-tour.d.ts +22 -4
- package/types/ngwr-tree.d.ts +5 -4
- package/types/ngwr-typewriter-testing.d.ts +10 -0
- package/types/ngwr-utils.d.ts +5 -2
- package/types/ngwr-version.d.ts +1 -1
- package/types/ngwr-window.d.ts +39 -11
- package/typography/styles/_index.scss +1 -1
- package/window/styles/_index.scss +72 -26
- package/fesm2022/ngwr-date-adapter-fns.mjs.map +0 -1
- package/fesm2022/ngwr-date-adapter-luxon.mjs.map +0 -1
- package/fesm2022/ngwr-date-adapter.mjs.map +0 -1
package/llms-full.txt
CHANGED
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
## ngwr/blur-text
|
|
73
73
|
- import: `import { WrBlurText } from 'ngwr/blur-text'`
|
|
74
74
|
- selector: `wr-blur-text`
|
|
75
|
-
- exports: WrBlurText
|
|
75
|
+
- exports: WrBlurText, WrBlurTextDirection, WrBlurTextUnit
|
|
76
76
|
- Reveals text by blurring each piece in from a coloured offset, through a half-blurred mid-step, into the steady state. Triggers on viewport entry. Dependency-free port — uses `IntersectionObserver` + Web Animations API.
|
|
77
77
|
|
|
78
78
|
## ngwr/blur-text/testing
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
## ngwr/carousel
|
|
141
141
|
- import: `import { WrCarousel } from 'ngwr/carousel'`
|
|
142
142
|
- selector: `wr-carousel-slide`, `wr-carousel`
|
|
143
|
-
- exports: WrCarousel, WrCarouselSlide
|
|
143
|
+
- exports: WrCarousel, WrCarouselSlide, WR_CAROUSEL, WrCarouselContext
|
|
144
144
|
- Slide carousel with prev/next, dots, and optional autoplay. Autoplay holds while the pointer is over it, while focus is inside it, and while a drag is in flight — hovering is not a way to stop moving content for someone who never uses a mouse, which is what WCAG 2.2.2 asks for.
|
|
145
145
|
|
|
146
146
|
## ngwr/carousel/testing
|
|
@@ -206,7 +206,6 @@
|
|
|
206
206
|
|
|
207
207
|
## ngwr/color-picker/testing
|
|
208
208
|
- import: `import { WrColorPickerHarness } from 'ngwr/color-picker/testing'`
|
|
209
|
-
- selector: `.wr-color-picker__tabs`
|
|
210
209
|
- exports: WrColorPickerHarness, WrColorPickerTriggerHarness, WrColorPickerHarnessFilters, WrColorPickerTab, WrColorPickerThumbs, WrColorPickerTriggerHarnessFilters
|
|
211
210
|
|
|
212
211
|
## ngwr/command-palette
|
|
@@ -255,18 +254,10 @@
|
|
|
255
254
|
- exports: WrCounter, WrCounterMode, WrCountUp, WrCountUpDirection, WrCountUpEasing, WrCountUpTrigger
|
|
256
255
|
- Animated number display. Use **odometer** mode for rolling-digit motion (mechanical counter look) or **tween** mode for an eased count-up from the previous value.
|
|
257
256
|
|
|
258
|
-
## ngwr/date
|
|
259
|
-
- import: `import { WrDateAdapter } from 'ngwr/date
|
|
257
|
+
## ngwr/date
|
|
258
|
+
- import: `import { WrDateAdapter } from 'ngwr/date'`
|
|
260
259
|
- exports: WrDateAdapter, WrNativeDateAdapter, provideWrDateAdapter, WrDateAdapterOptions, WR_DATE_LOCALE, WrDateFormat, isNamedFormat
|
|
261
260
|
|
|
262
|
-
## ngwr/date-adapter-fns
|
|
263
|
-
- import: `import { WrDateFnsAdapter } from 'ngwr/date-adapter-fns'`
|
|
264
|
-
- exports: WrDateFnsAdapter, provideWrDateFnsAdapter
|
|
265
|
-
|
|
266
|
-
## ngwr/date-adapter-luxon
|
|
267
|
-
- import: `import { WrLuxonAdapter } from 'ngwr/date-adapter-luxon'`
|
|
268
|
-
- exports: WrLuxonAdapter, provideWrLuxonAdapter
|
|
269
|
-
|
|
270
261
|
## ngwr/date-picker
|
|
271
262
|
- import: `import { WrDatePicker } from 'ngwr/date-picker'`
|
|
272
263
|
- selector: `wr-date-picker`, `wr-date-range-picker`
|
|
@@ -277,6 +268,14 @@
|
|
|
277
268
|
- import: `import { WrDatePickerDayHarness } from 'ngwr/date-picker/testing'`
|
|
278
269
|
- exports: WrDatePickerDayHarness, WrDatePickerHarness, WrDateRangePickerHarness, WrDatePickerDayHarnessFilters, WrDatePickerHarnessFilters, WrDatePickerTimeFields, WrDateRangePickerHarnessFilters
|
|
279
270
|
|
|
271
|
+
## ngwr/date/adapters/fns
|
|
272
|
+
- import: `import { WrDateFnsAdapter } from 'ngwr/date/adapters/fns'`
|
|
273
|
+
- exports: WrDateFnsAdapter, provideWrDateFnsAdapter
|
|
274
|
+
|
|
275
|
+
## ngwr/date/adapters/luxon
|
|
276
|
+
- import: `import { WrLuxonAdapter } from 'ngwr/date/adapters/luxon'`
|
|
277
|
+
- exports: WrLuxonAdapter, provideWrLuxonAdapter
|
|
278
|
+
|
|
280
279
|
## ngwr/decrypt-text
|
|
281
280
|
- import: `import { WrDecryptText } from 'ngwr/decrypt-text'`
|
|
282
281
|
- selector: `wr-decrypt-text`
|
|
@@ -370,7 +369,6 @@
|
|
|
370
369
|
|
|
371
370
|
## ngwr/event-calendar/testing
|
|
372
371
|
- import: `import { WrEventCalendarChipHarness } from 'ngwr/event-calendar/testing'`
|
|
373
|
-
- selector: `.wr-event-calendar__view`
|
|
374
372
|
- exports: WrEventCalendarChipHarness, WrEventCalendarHarness, WrEventCalendarChipHarnessFilters, WrEventCalendarHarnessFilters
|
|
375
373
|
|
|
376
374
|
## ngwr/falling-text
|
|
@@ -485,7 +483,7 @@
|
|
|
485
483
|
|
|
486
484
|
## ngwr/image-cropper/testing
|
|
487
485
|
- import: `import { WrImageCropperHarness } from 'ngwr/image-cropper/testing'`
|
|
488
|
-
- exports: WrImageCropperHarness, WrImageCropperHarnessFilters
|
|
486
|
+
- exports: WrImageCropperHarness, WrCropArrow, WrCropWindowBox, WrImageCropperHarnessFilters
|
|
489
487
|
|
|
490
488
|
## ngwr/input
|
|
491
489
|
- import: `import { WrInput } from 'ngwr/input'`
|
|
@@ -624,7 +622,7 @@
|
|
|
624
622
|
|
|
625
623
|
## ngwr/overlay
|
|
626
624
|
- import: `import { WrOutsideClick } from 'ngwr/overlay'`
|
|
627
|
-
- exports: wrAppendOverlayClose, wrMirrorOffsets, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, wrPresentAsSheet
|
|
625
|
+
- exports: wrAppendOverlayClose, wrMirrorOffsets, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, wrPresentAsSheet, WrResponsiveOverlaysConfig
|
|
628
626
|
|
|
629
627
|
## ngwr/page-header
|
|
630
628
|
- import: `import { WrPageHeader } from 'ngwr/page-header'`
|
|
@@ -640,7 +638,6 @@
|
|
|
640
638
|
|
|
641
639
|
## ngwr/pagination/testing
|
|
642
640
|
- import: `import { WrPaginationHarness } from 'ngwr/pagination/testing'`
|
|
643
|
-
- selector: `.wr-pagination__page`, `.wr-pagination__nav > wr-btn:not(.wr-pagination__page)`, `.wr-pagination__size`, `.wr-pagination__page[aria-current="page"]`
|
|
644
641
|
- exports: WrPaginationHarness, WrPaginationHarnessFilters
|
|
645
642
|
|
|
646
643
|
## ngwr/pipes
|
|
@@ -899,7 +896,7 @@
|
|
|
899
896
|
## ngwr/table
|
|
900
897
|
- import: `import { WrTable } from 'ngwr/table'`
|
|
901
898
|
- selector: `[wrTableCell]`, `ng-template[wrTableExpand]`, `wr-table-filter`, `ng-template[wrTableGroupHeader]`, `wr-table-sort`, `wr-table`
|
|
902
|
-
- exports: WrTable, WrTableCell, WrTableExpand, WrTableGroupHeader, WrTableSort, WrTableFilter, WrTableCellContext, WrTableColumn, WrTableColumns, WrTableCsvOptions, WrTableExpandContext, WrTableFilterChange, WrTableFilterItem, WrTableGroupContext, WrTableSortState, WrTableSortDirection, WrTableSummary
|
|
899
|
+
- exports: WrTable, WrTableCell, WrTableExpand, WrTableGroupHeader, WrTableSort, WrTableFilter, WrTableCellContext, WrTableColumn, WrTableColumns, WrTableCsvOptions, WrTableExpandContext, WrTableFilterChange, WrTableFilterItem, WrTableGroupContext, WrTableRow, WrTableSortState, WrTableSortDirection, WrTableSummary
|
|
903
900
|
- Data table with sortable / filterable headers and custom cell templates.
|
|
904
901
|
|
|
905
902
|
## ngwr/table/testing
|
|
@@ -928,7 +925,7 @@
|
|
|
928
925
|
|
|
929
926
|
## ngwr/theme
|
|
930
927
|
- import: `import { WrTheme } from 'ngwr/theme'`
|
|
931
|
-
- exports: WR_COLORS, WrColor, WrTheme, provideWrTheme, WR_THEME_CONFIG, DEFAULT_WR_THEME_CONFIG, WrResolvedTheme, WrThemeMode, WrThemeConfig
|
|
928
|
+
- exports: WR_COLORS, wrContrastFor, wrIntentTokens, wrThemeTokens, WrColor, WrTheme, provideWrTheme, WR_THEME_CONFIG, DEFAULT_WR_THEME_CONFIG, WrResolvedTheme, WrThemeMode, WrThemeConfig
|
|
932
929
|
- Light / dark theme manager. Writes `[data-theme]` on `<html>`, persists the chosen mode to localStorage. `auto` mode follows `WrPlatform.prefersDark`.
|
|
933
930
|
|
|
934
931
|
## ngwr/tilt-card
|
|
@@ -949,7 +946,6 @@
|
|
|
949
946
|
|
|
950
947
|
## ngwr/toast
|
|
951
948
|
- import: `import { WrToast } from 'ngwr/toast'`
|
|
952
|
-
- selector: `wr-toast-host`, `wr-toast`
|
|
953
949
|
- exports: WrToast, WrToastRef, provideWrToastConfig, DEFAULT_TOAST_CONFIG, WR_TOAST_CONFIG, WrToastConfig, WrToastMode, WrToastOptions, WrToastPosition, WrToastType
|
|
954
950
|
- Stack of dismissible notifications anchored to a viewport corner. Service-driven; rendered in a single shared CDK overlay.
|
|
955
951
|
|
|
@@ -971,7 +967,6 @@
|
|
|
971
967
|
|
|
972
968
|
## ngwr/tour/testing
|
|
973
969
|
- import: `import { WrTourHarness } from 'ngwr/tour/testing'`
|
|
974
|
-
- selector: `.wr-tour-popup__action--next`, `.wr-tour-popup__action--skip`, `.wr-tour-popup__action--back`
|
|
975
970
|
- exports: WrTourHarness, WrTourHarnessFilters, WrTourProgress
|
|
976
971
|
|
|
977
972
|
## ngwr/transfer
|
|
@@ -1040,8 +1035,8 @@
|
|
|
1040
1035
|
|
|
1041
1036
|
## ngwr/window
|
|
1042
1037
|
- import: `import { WrWindowManager } from 'ngwr/window'`
|
|
1043
|
-
- selector: `wr-window-
|
|
1044
|
-
- exports: WR_WINDOW_DATA, WR_WINDOW_REF, WrWindowManager, WrWindowBeforeCloseHook, WrWindowRef, WrWindowTaskbar, WrWindowChromeSize, WrWindowConfig, WrWindowOs, WrWindowPersistMode, WrWindowSize, WrWindowSnap, WrWindowState, WrWindowStorageConfig
|
|
1038
|
+
- selector: `wr-window-taskbar`
|
|
1039
|
+
- exports: WR_WINDOW_DATA, WR_WINDOW_REF, WrWindowManager, WrWindowBeforeCloseHook, WrWindowRef, WrWindowTaskbar, WrWindowChromeSize, WrWindowConfig, WrWindowLayoutSnapshot, WrWindowOs, WrWindowPersistMode, WrWindowSize, WrWindowSnap, WrWindowState, WrWindowStorageConfig
|
|
1045
1040
|
- Free-floating OS-style window opened programmatically via `WrWindowManager`. Drag the header to move, drag any edge or corner to resize, minimize to the taskbar. There is no declarative `<wr-window>` component — the manager is the only entry point so the API stays single-track. Need a backdrop + focus trap? That's `WrDialog`, not this.
|
|
1046
1041
|
|
|
1047
1042
|
## ngwr/window/testing
|
package/llms.txt
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# ngwr
|
|
2
2
|
|
|
3
3
|
> Angular UI library — standalone, signals-first, zoneless, fully tree-shakable.
|
|
4
|
-
> 202 secondary entry points,
|
|
4
|
+
> 202 secondary entry points, 187 component and directive classes, built on
|
|
5
5
|
> `@angular/cdk` primitives. The only runtime dependency is `tslib`. Docs and
|
|
6
6
|
> live demos: https://ngwr.dev — source: https://github.com/thekhegay/ngwr
|
|
7
7
|
|
|
@@ -56,8 +56,8 @@ Add from their entry points as needed:
|
|
|
56
56
|
`color` key — a bound `[color]="null"` means "no intent", which a default cannot
|
|
57
57
|
express without inventing a sentinel.
|
|
58
58
|
- `provideWrI18n(...)` + `provideWrI18nStaticLoader(...)` — localization.
|
|
59
|
-
- `provideWrDateAdapter(...)` — calendar + date-picker (`ngwr/date
|
|
60
|
-
or `ngwr/date
|
|
59
|
+
- `provideWrDateAdapter(...)` — calendar + date-picker (`ngwr/date/adapters/fns`
|
|
60
|
+
or `ngwr/date/adapters/luxon`).
|
|
61
61
|
|
|
62
62
|
Injected rather than provided: `WrTour` (`ngwr/tour`) runs a guided onboarding
|
|
63
63
|
tour — `tour.start([{ target: '[data-tour="save"]', content: '…' }])` spotlights
|
|
@@ -75,6 +75,21 @@ one element at a time; a step whose target is missing is skipped, not floated.
|
|
|
75
75
|
- `ng g ngwr:page <form|table|dashboard>` — starter page wired with ngwr.
|
|
76
76
|
- `ng update ngwr` — runs upgrade migrations.
|
|
77
77
|
|
|
78
|
+
## Upgrading to v12
|
|
79
|
+
|
|
80
|
+
Two breaking changes, and only one is codemoddable.
|
|
81
|
+
|
|
82
|
+
- **Date entry points nest under `ngwr/date`.** `ngwr/date-adapter` →
|
|
83
|
+
`ngwr/date`, `ngwr/date-adapter-fns` → `ngwr/date/adapters/fns`,
|
|
84
|
+
`ngwr/date-adapter-luxon` → `ngwr/date/adapters/luxon`. Import paths only —
|
|
85
|
+
every symbol keeps its name. `ng update ngwr@12` rewrites them.
|
|
86
|
+
- **`readI18nText()` returns `Signal<string>`.** Add `()` at every read. No
|
|
87
|
+
codemod: adding the call means knowing which identifiers hold the result, and
|
|
88
|
+
the type error already names every site. `useI18nText`, the `wrT` pipe and the
|
|
89
|
+
`[wrT]` directive are unchanged.
|
|
90
|
+
|
|
91
|
+
Full guide, with diffs: https://ngwr.dev/start/migration
|
|
92
|
+
|
|
78
93
|
## Use ngwr — don't hand-roll
|
|
79
94
|
|
|
80
95
|
The catalog is large: prefer an ngwr component, util, pipe, or validator over raw
|
|
@@ -207,9 +222,10 @@ before writing your own. Full catalog: https://ngwr.dev/reference/components.
|
|
|
207
222
|
https://ngwr.dev/guides/agent-skill
|
|
208
223
|
- **Registry — an open format for shareable theme presets and blocks.** One
|
|
209
224
|
installable unit per JSON file, hosted anywhere; the contract is
|
|
210
|
-
https://ngwr.dev/registry/schema.json and
|
|
211
|
-
`/registry/items
|
|
212
|
-
`ngwr/*` subpaths, and a `files[].target`
|
|
225
|
+
https://ngwr.dev/registry/schema.json and four worked examples sit beside it
|
|
226
|
+
at `/registry/items/` — three theme presets and one block. `cssVars` keys are
|
|
227
|
+
`--wr-*` tokens, `entryPoints` names `ngwr/*` subpaths, and a `files[].target`
|
|
228
|
+
is always relative:
|
|
213
229
|
https://ngwr.dev/guides/registry
|
|
214
230
|
- All site URLs (for crawlers): https://ngwr.dev/sitemap.xml
|
|
215
231
|
- Source, README, per-component `.d.ts` types: https://github.com/thekhegay/ngwr
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
&__code-inline {
|
|
78
78
|
padding: 0.15em 0.35em;
|
|
79
79
|
border-radius: var(--wr-border-radius-sm);
|
|
80
|
-
background:
|
|
80
|
+
background: var(--wr-color-fill);
|
|
81
81
|
// `-ink`, not the bare intent: code on a tint is text, and the bare colour
|
|
82
82
|
// fails AA there. The share in `$ink-mix` is calibrated against this tint.
|
|
83
83
|
color: var(--wr-color-dark-ink);
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
padding: 0.75rem;
|
|
96
96
|
overflow-x: auto;
|
|
97
97
|
border-radius: var(--wr-border-radius-base);
|
|
98
|
-
background:
|
|
98
|
+
background: var(--wr-color-fill);
|
|
99
99
|
tab-size: 2;
|
|
100
100
|
}
|
|
101
101
|
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
}
|
|
258
258
|
|
|
259
259
|
&__th {
|
|
260
|
-
background:
|
|
260
|
+
background: var(--wr-color-fill);
|
|
261
261
|
font-weight: var(--wr-font-weight-semibold);
|
|
262
262
|
}
|
|
263
263
|
|
package/mcp/api.js
CHANGED
|
@@ -7,10 +7,12 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* Angular's signal wrappers, behind whichever namespace alias ng-packagr used.
|
|
9
9
|
*
|
|
10
|
-
* BOTH aliases, which is not decoration:
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* BOTH aliases, which is not decoration: ng-packagr writes `_angular_core` for
|
|
11
|
+
* most of the shipped declarations and `i0` for a couple of dozen of them, and
|
|
12
|
+
* which file gets which moves with every entry point added — so the rule is here
|
|
13
|
+
* and the census deliberately is not. Matching the first alias alone hid every
|
|
14
|
+
* binding in the `i0` files, `WrIcon` among them, whose single required input is
|
|
15
|
+
* the entire component.
|
|
14
16
|
*/
|
|
15
17
|
const SIGNAL_WRAPPER = /^(?:[A-Za-z_$][\w$]*\.)?(InputSignal|InputSignalWithTransform|ModelSignal|OutputEmitterRef)</;
|
|
16
18
|
/** Modifiers that may precede a member name in a `.d.ts`. */
|
package/mcp/catalog.js
CHANGED
|
@@ -11,7 +11,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
11
11
|
* The catalog, read from the files the package already ships.
|
|
12
12
|
*
|
|
13
13
|
* **No second copy of anything, and that is the design constraint this whole
|
|
14
|
-
* server was built under.** `llms-full.txt` (
|
|
14
|
+
* server was built under.** `llms-full.txt` (~57 KB, 202 entry points) and
|
|
15
15
|
* `schematics/use/symbol-map.json` (215 symbols) are already in the tarball for
|
|
16
16
|
* other reasons, and the `.d.ts` bundle carries every signature. A server that
|
|
17
17
|
* embedded its own index would be a fourth copy to keep in step with the library,
|
|
@@ -19,7 +19,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
19
19
|
*
|
|
20
20
|
* What it adds on top is the part none of those files have: a way to ASK. An
|
|
21
21
|
* agent that does not already know an entry point's name cannot use a `.d.ts`,
|
|
22
|
-
* and reading
|
|
22
|
+
* and reading ~57 KB of catalog to answer "what renders markdown" is the cost this
|
|
23
23
|
* exists to remove.
|
|
24
24
|
*/
|
|
25
25
|
class Catalog {
|
|
@@ -51,10 +51,15 @@ class Catalog {
|
|
|
51
51
|
/**
|
|
52
52
|
* Does this entry point ship a stylesheet?
|
|
53
53
|
*
|
|
54
|
-
* Read from the package's own `exports` map rather than assumed:
|
|
54
|
+
* Read from the package's own `exports` map rather than assumed: 94 of the 202
|
|
55
55
|
* entry points ship no `styles/_index.scss` — the testing harnesses, the
|
|
56
56
|
* services, the adapters — and telling a consumer to `@use` one of those breaks
|
|
57
57
|
* their Sass build.
|
|
58
|
+
*
|
|
59
|
+
* Count them with `hasStyles()` rather than by tallying `sass` conditions in the
|
|
60
|
+
* `exports` map: six of those keys are not catalog entry points at all (the root
|
|
61
|
+
* plus `animations`, `breakpoints`, `grid`, `reset`, `typography-utilities`), so
|
|
62
|
+
* that arithmetic comes out six short.
|
|
58
63
|
*/
|
|
59
64
|
hasStyles(path) {
|
|
60
65
|
this.exports ??= (() => {
|
|
@@ -94,6 +99,38 @@ class Catalog {
|
|
|
94
99
|
const file = join('types', `${path.replace(/\//g, '-')}.d.ts`);
|
|
95
100
|
return this.read(file);
|
|
96
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Whether `symbol` is something Angular accepts in `imports: []`.
|
|
104
|
+
*
|
|
105
|
+
* Read from the SHIPPED declaration file rather than from a table, because the
|
|
106
|
+
* compiler already wrote the answer there: a component, directive or pipe gets
|
|
107
|
+
* a `static ɵcmp` / `ɵdir` / `ɵpipe` whose first type argument is the class. A
|
|
108
|
+
* service gets `ɵprov` instead. So this needs no second copy of anything, and
|
|
109
|
+
* cannot drift — which matters, because the alternative was a hand-kept list
|
|
110
|
+
* and `ng g ngwr:use` now REFUSES a non-declarable: recommending the command
|
|
111
|
+
* for `WrDialog` would hand an agent a line that errors.
|
|
112
|
+
*
|
|
113
|
+
* `null` when the types are not there to read, so a caller can tell "not
|
|
114
|
+
* declarable" from "cannot say".
|
|
115
|
+
*/
|
|
116
|
+
declarable(symbol, path) {
|
|
117
|
+
const source = this.types(path);
|
|
118
|
+
if (!source)
|
|
119
|
+
return null;
|
|
120
|
+
// Ask for the declarable markers FIRST and separately. A single alternation
|
|
121
|
+
// over all five answers with whichever appears earliest in the file, and
|
|
122
|
+
// `ɵfac` is always emitted above `ɵcmp` — so the combined form calls every
|
|
123
|
+
// component a non-declarable, while a fixture with no markers at all hides
|
|
124
|
+
// it. Two passes, no ordering assumption.
|
|
125
|
+
const declarable = new RegExp(`static ɵ(?:cmp|dir|pipe): [^;]*<${symbol}[,>]`);
|
|
126
|
+
if (declarable.test(source))
|
|
127
|
+
return true;
|
|
128
|
+
// Only claim "no" for a symbol this file actually declares; a `.d.ts` that
|
|
129
|
+
// merely mentions the name is not evidence, which is the difference between
|
|
130
|
+
// "not declarable" and "cannot say".
|
|
131
|
+
const declared = new RegExp(`static ɵ(?:prov|fac): [^;]*<${symbol}[,>]`);
|
|
132
|
+
return declared.test(source) ? false : null;
|
|
133
|
+
}
|
|
97
134
|
read(relative) {
|
|
98
135
|
const file = join(this.root, relative);
|
|
99
136
|
return existsSync(file) ? readFileSync(file, 'utf8') : null;
|
package/mcp/providers.js
CHANGED
|
@@ -17,12 +17,25 @@ const REQUIRED_PROVIDERS = [
|
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
test: /^WrDatePicker|^WrCalendar|^WrEventCalendar/,
|
|
20
|
-
|
|
20
|
+
// The one-line wrapper, not `provideWrDateAdapter({ adapter: WrDateFnsAdapter })`:
|
|
21
|
+
// both compile, but this is one import from one entry point, and it is the form
|
|
22
|
+
// the docs recommend. It used to read `provideWrDateAdapter(wrDateFnsAdapter)`,
|
|
23
|
+
// which is wrong three ways at once — `ngwr/date/adapters/fns` exports neither
|
|
24
|
+
// identifier, and the real `provideWrDateAdapter` takes an options object.
|
|
25
|
+
provider: "provideWrDateFnsAdapter() // from 'ngwr/date/adapters/fns'",
|
|
21
26
|
why: 'every date mode goes through an adapter; there is no built-in default',
|
|
22
27
|
},
|
|
23
28
|
{
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
// Spelled out rather than `^WrT(Pipe|Directive)$`: `describeTest` in the
|
|
30
|
+
// skill generator only names alternatives that are bare symbols, so a group
|
|
31
|
+
// here would print "symbols matching …" instead of the two names. It used to
|
|
32
|
+
// read `^WrT$`: `WrT` is a symbol ngwr has never exported, and anchored at
|
|
33
|
+
// both ends it matched neither `WrTPipe` nor `WrTDirective` — so the one rule
|
|
34
|
+
// whose `why` names the pipe and the directive fired for neither of them.
|
|
35
|
+
test: /^WrTPipe$|^WrTDirective$|^WrI18n/,
|
|
36
|
+
// Two entry points, and the comment has to say so: the catalog `wrEn` is
|
|
37
|
+
// `ngwr/i18n/en`, not `ngwr/i18n`, which exports neither catalog.
|
|
38
|
+
provider: "provideWrI18n() + provideWrI18nStaticLoader({ en: wrEn }) // from 'ngwr/i18n' + 'ngwr/i18n/en'",
|
|
26
39
|
why: 'the pipe and directive read from a catalog you provide',
|
|
27
40
|
},
|
|
28
41
|
];
|
package/mcp/tools.js
CHANGED
|
@@ -295,6 +295,13 @@ function setup(catalog, symbols) {
|
|
|
295
295
|
const missing = found.filter(hit => !hit.entry).map(hit => hit.symbol);
|
|
296
296
|
const resolved = found.filter((hit) => hit.entry !== null);
|
|
297
297
|
const providers = REQUIRED_PROVIDERS.filter(required => resolved.some(hit => required.test.test(hit.symbol)));
|
|
298
|
+
// `ng g ngwr:use` refuses anything outside `schematics/use/symbol-map.json`
|
|
299
|
+
// ("ngwr:use: unknown symbol"), and `find()` resolves far more than that — it
|
|
300
|
+
// matches any name on an entry point's `exports:` line, so every harness class
|
|
301
|
+
// and every exported type came back as a command that fails. Ask the same map
|
|
302
|
+
// the schematic asks; the rest get the import line they actually need, since a
|
|
303
|
+
// type or a harness must never go into a component's `imports: []` anyway.
|
|
304
|
+
const knows = catalog.symbolMap();
|
|
298
305
|
return [
|
|
299
306
|
'# Setting these up',
|
|
300
307
|
'',
|
|
@@ -303,7 +310,20 @@ function setup(catalog, symbols) {
|
|
|
303
310
|
'(prompts for styles, date adapter, density and theme, and prints a bootstrap snippet)',
|
|
304
311
|
'',
|
|
305
312
|
'## 2. Wire each symbol into the component that uses it',
|
|
306
|
-
...resolved.map(hit =>
|
|
313
|
+
...resolved.map(hit => {
|
|
314
|
+
// Two questions, and the schematic answers "no" to either one. It has to
|
|
315
|
+
// KNOW the symbol, and the symbol has to be declarable — `ng g ngwr:use`
|
|
316
|
+
// refuses a service or a token now rather than splicing it into an
|
|
317
|
+
// `imports: []` where it would not compile. `declarable()` reads the
|
|
318
|
+
// shipped `.d.ts`, so this needs no copy of that list.
|
|
319
|
+
const known = typeof knows[hit.symbol] === 'string';
|
|
320
|
+
const declarable = catalog.declarable(hit.symbol, hit.entry.path);
|
|
321
|
+
if (known && declarable !== false) {
|
|
322
|
+
return `ng g ngwr:use ${hit.symbol} --path src/app/some.component.ts # ${hit.entry.path}`;
|
|
323
|
+
}
|
|
324
|
+
const why = known ? 'not a declarable — inject or call it' : 'ng g ngwr:use does not know this symbol';
|
|
325
|
+
return `import { ${hit.symbol} } from '${hit.entry.path}'; // by hand — ${why}`;
|
|
326
|
+
}),
|
|
307
327
|
'',
|
|
308
328
|
'`--path` is a NAMED option, not positional — passing it bare fails with `Unknown argument`.',
|
|
309
329
|
'',
|
|
@@ -23,11 +23,43 @@
|
|
|
23
23
|
padding-bottom: env(safe-area-inset-bottom);
|
|
24
24
|
// Lift the bottom-pinned sheet clear of the keyboard. margin (not transform)
|
|
25
25
|
// so it doesn't fight the slide-up animation; transitions smoothly.
|
|
26
|
-
|
|
26
|
+
// `!important` here for a different reason than the rest of this block: all
|
|
27
|
+
// four sheet users (dialog, select, dropdown, popover) pin the pane with a
|
|
28
|
+
// `GlobalPositionStrategy…bottom('0')`, and `apply()` writes that offset out
|
|
29
|
+
// as an INLINE `margin-bottom: 0px` on this very element, on every
|
|
30
|
+
// `updatePosition`. Without it the lift can never compute to anything but 0.
|
|
31
|
+
margin-bottom: var(--wr-keyboard-inset, 0px) !important;
|
|
27
32
|
transition: margin-bottom var(--wr-overlay-duration, 0.2s) var(--wr-overlay-ease, ease-out);
|
|
28
33
|
animation: wr-overlay-sheet-up var(--wr-overlay-duration, 0.2s) var(--wr-overlay-ease, ease-out) !important;
|
|
29
34
|
}
|
|
30
35
|
|
|
36
|
+
// The pane above is the sheet, but only the dialog PAINTS it — there the pane
|
|
37
|
+
// IS the panel. For select, dropdown and popover the pane is a transparent
|
|
38
|
+
// wrapper and the visible surface is its child, so everything above lands on a
|
|
39
|
+
// box nobody can see: the child keeps its own content width and its own
|
|
40
|
+
// all-round radius. `.cdk-overlay-pane` is a row flexbox, so an unsized child
|
|
41
|
+
// shrinks to fit its content and sits against the inline-start edge — dropdown
|
|
42
|
+
// rendered a 160px card in a 375px sheet, popover a 288px one, while
|
|
43
|
+
// `.wr-select-panel` filled it only because select declares `width: 100%` for
|
|
44
|
+
// itself. Stretching every sheet child here is what makes that a property of
|
|
45
|
+
// the sheet rather than a per-component opt-in the next one forgets.
|
|
46
|
+
//
|
|
47
|
+
// The two bottom corners go with it: a sheet is docked flush against the
|
|
48
|
+
// bottom of the screen, so a rounded corner there is a wedge of backdrop
|
|
49
|
+
// sitting on the screen edge. The pane's own `0 0` above says the same thing
|
|
50
|
+
// for the dialog.
|
|
51
|
+
//
|
|
52
|
+
// `.wr-dialog__close` is the one direct child that is NOT a sheet surface —
|
|
53
|
+
// the dialog service parks it absolutely in the panel's corner, at its own
|
|
54
|
+
// 24px box and its own radius. `dialog/styles/_index.scss` excludes it from
|
|
55
|
+
// its sibling rule for the same reason.
|
|
56
|
+
.wr-overlay-sheet > *:not(.wr-dialog__close) {
|
|
57
|
+
width: 100% !important;
|
|
58
|
+
max-width: 100% !important;
|
|
59
|
+
border-bottom-left-radius: 0 !important;
|
|
60
|
+
border-bottom-right-radius: 0 !important;
|
|
61
|
+
}
|
|
62
|
+
|
|
31
63
|
// Dim + blur behind a sheet — for overlays that otherwise have no backdrop.
|
|
32
64
|
.wr-overlay-backdrop {
|
|
33
65
|
background: var(--wr-color-overlay);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngwr",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.0.0",
|
|
4
4
|
"bin": {
|
|
5
5
|
"ngwr-mcp": "./mcp/server.js"
|
|
6
6
|
},
|
|
@@ -43,13 +43,18 @@
|
|
|
43
43
|
"@angular/cdk": ">=22.0.0",
|
|
44
44
|
"@angular/common": ">=22.0.0",
|
|
45
45
|
"@angular/core": ">=22.0.0",
|
|
46
|
+
"@angular/forms": ">=22.0.0",
|
|
46
47
|
"@angular/platform-browser": ">=22.0.0",
|
|
48
|
+
"@angular/router": ">=22.0.0",
|
|
47
49
|
"rxjs": "^7.0.0",
|
|
48
50
|
"date-fns": "^3.0.0 || ^4.0.0",
|
|
49
51
|
"luxon": "^3.0.0",
|
|
50
52
|
"lucide": ">=1.0.0"
|
|
51
53
|
},
|
|
52
54
|
"peerDependenciesMeta": {
|
|
55
|
+
"@angular/router": {
|
|
56
|
+
"optional": true
|
|
57
|
+
},
|
|
53
58
|
"date-fns": {
|
|
54
59
|
"optional": true
|
|
55
60
|
},
|
|
@@ -712,22 +717,22 @@
|
|
|
712
717
|
"types": "./types/ngwr-cookie.d.ts",
|
|
713
718
|
"default": "./fesm2022/ngwr-cookie.mjs"
|
|
714
719
|
},
|
|
715
|
-
"./date
|
|
716
|
-
"types": "./types/ngwr-date
|
|
717
|
-
"default": "./fesm2022/ngwr-date
|
|
718
|
-
},
|
|
719
|
-
"./date-adapter-fns": {
|
|
720
|
-
"types": "./types/ngwr-date-adapter-fns.d.ts",
|
|
721
|
-
"default": "./fesm2022/ngwr-date-adapter-fns.mjs"
|
|
722
|
-
},
|
|
723
|
-
"./date-adapter-luxon": {
|
|
724
|
-
"types": "./types/ngwr-date-adapter-luxon.d.ts",
|
|
725
|
-
"default": "./fesm2022/ngwr-date-adapter-luxon.mjs"
|
|
720
|
+
"./date": {
|
|
721
|
+
"types": "./types/ngwr-date.d.ts",
|
|
722
|
+
"default": "./fesm2022/ngwr-date.mjs"
|
|
726
723
|
},
|
|
727
724
|
"./date-picker/testing": {
|
|
728
725
|
"types": "./types/ngwr-date-picker-testing.d.ts",
|
|
729
726
|
"default": "./fesm2022/ngwr-date-picker-testing.mjs"
|
|
730
727
|
},
|
|
728
|
+
"./date/adapters/fns": {
|
|
729
|
+
"types": "./types/ngwr-date-adapters-fns.d.ts",
|
|
730
|
+
"default": "./fesm2022/ngwr-date-adapters-fns.mjs"
|
|
731
|
+
},
|
|
732
|
+
"./date/adapters/luxon": {
|
|
733
|
+
"types": "./types/ngwr-date-adapters-luxon.d.ts",
|
|
734
|
+
"default": "./fesm2022/ngwr-date-adapters-luxon.mjs"
|
|
735
|
+
},
|
|
731
736
|
"./decrypt-text/testing": {
|
|
732
737
|
"types": "./types/ngwr-decrypt-text-testing.d.ts",
|
|
733
738
|
"default": "./fesm2022/ngwr-decrypt-text-testing.mjs"
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
padding-block: 0.5rem;
|
|
10
10
|
|
|
11
11
|
&--disabled {
|
|
12
|
-
opacity:
|
|
12
|
+
opacity: var(--wr-disabled-opacity);
|
|
13
13
|
pointer-events: none;
|
|
14
14
|
}
|
|
15
15
|
|
|
@@ -48,6 +48,17 @@
|
|
|
48
48
|
display: flex;
|
|
49
49
|
align-items: center;
|
|
50
50
|
gap: 0.25rem;
|
|
51
|
+
// `__inner` wraps, but the whole numbered strip is ONE of its children, so
|
|
52
|
+
// that wrap could never help: at `size="lg"` the strip is 9 cells of 2.5rem
|
|
53
|
+
// plus gaps = 392px, which at 375px left the last page number cut off at the
|
|
54
|
+
// screen edge and the next-page arrow off it entirely. Wrap the cells
|
|
55
|
+
// themselves. A pager scrolls badly — page 12 is the one you cannot reach —
|
|
56
|
+
// and a second row costs nothing when the first one fits.
|
|
57
|
+
flex-wrap: wrap;
|
|
58
|
+
// A wrapped row has to follow the pager's own alignment: `__inner` carries
|
|
59
|
+
// it, and a centred or end-aligned pager whose second row packed to the
|
|
60
|
+
// start would read as a different control.
|
|
61
|
+
justify-content: inherit;
|
|
51
62
|
|
|
52
63
|
.wr-btn {
|
|
53
64
|
min-width: var(--wr-pagination-cell, 2rem);
|
|
@@ -62,6 +73,17 @@
|
|
|
62
73
|
}
|
|
63
74
|
}
|
|
64
75
|
|
|
76
|
+
// `__nav` is a plain flex row, so it already mirrors: under `dir="rtl"` the
|
|
77
|
+
// previous button lays out at the right edge. Its chevron is drawn pointing
|
|
78
|
+
// physically left, though, so it ends up aiming at the pages it moves AWAY
|
|
79
|
+
// from. Turn the glyphs around with the strip, the same way the carousel's
|
|
80
|
+
// arrows do — "previous" is the inline start in both directions.
|
|
81
|
+
&__nav-btn {
|
|
82
|
+
[dir='rtl'] & svg {
|
|
83
|
+
transform: scaleX(-1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
65
87
|
&__ellipsis {
|
|
66
88
|
display: inline-flex;
|
|
67
89
|
min-width: var(--wr-pagination-cell, 2rem);
|
|
@@ -77,10 +77,12 @@ $_arrow-placement: (
|
|
|
77
77
|
/// `originX: start | end` — plain `top` / `bottom` use `center`, which mirrors
|
|
78
78
|
/// to itself — and CDK resolves start / end against `Directionality`. So under
|
|
79
79
|
/// `dir="rtl"` the panel lands on the mirrored side of the trigger while the
|
|
80
|
-
/// modifier class keeps its
|
|
81
|
-
///
|
|
82
|
-
///
|
|
83
|
-
///
|
|
80
|
+
/// modifier class keeps its LTR name, and the arrow has to travel with the
|
|
81
|
+
/// panel. Same for the `-start` / `-end` alignment along a horizontal edge.
|
|
82
|
+
///
|
|
83
|
+
/// The class names the placement the panel ACTUALLY took, not the requested one:
|
|
84
|
+
/// each entry in `WR_POPOVER_FALLBACKS` carries its own `panelClass`, so a flip
|
|
85
|
+
/// swaps the modifier and this loop moves the arrow with it.
|
|
84
86
|
@mixin _arrow-at($edge, $align, $pull) {
|
|
85
87
|
@if $edge == left {
|
|
86
88
|
inset-inline-start: -$pull;
|
|
@@ -197,9 +199,12 @@ $_arrow-placement: (
|
|
|
197
199
|
// `<… [wrPopover]="'text'" mode="tooltip">` instead.)
|
|
198
200
|
//
|
|
199
201
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
202
|
+
// The pane is deliberately NOT `pointer-events: none`. WCAG 1.4.13 asks that a
|
|
203
|
+
// tooltip stay up while the pointer is moved onto it — someone reading a long
|
|
204
|
+
// hint at 400% zoom has to be able to reach the text — and an inert pane makes
|
|
205
|
+
// the `mouseenter` that keeps it open impossible to fire. It does mean the chip
|
|
206
|
+
// now intercepts what is under it, which is the area it draws on and no more;
|
|
207
|
+
// the one part of that worth avoiding is the arrow, opted back out below.
|
|
203
208
|
|
|
204
209
|
.wr-tooltip {
|
|
205
210
|
// Follows the theme instead of inverting against it: on a dark canvas the
|
|
@@ -238,6 +243,10 @@ $_arrow-placement: (
|
|
|
238
243
|
height: $_arrow;
|
|
239
244
|
background: var(--wr-tooltip-bg);
|
|
240
245
|
transform: rotate(45deg);
|
|
246
|
+
// The one piece that stays inert: the arrow points AT the trigger and
|
|
247
|
+
// overlaps it, so a hittable arrow would eat clicks meant for the control
|
|
248
|
+
// the tooltip describes.
|
|
249
|
+
pointer-events: none;
|
|
241
250
|
}
|
|
242
251
|
}
|
|
243
252
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// Defaults — color modifiers override the bar color.
|
|
9
9
|
--wr-progress-height: 0.5rem;
|
|
10
10
|
--wr-progress-radius: var(--wr-border-radius-pill);
|
|
11
|
-
--wr-progress-track:
|
|
11
|
+
--wr-progress-track: var(--wr-color-fill);
|
|
12
12
|
--wr-progress-bar: var(--wr-color-primary);
|
|
13
13
|
|
|
14
14
|
// `flex: 1 1 100%` here would claim 100% basis on the flex MAIN axis —
|
package/radio/styles/_index.scss
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
white-space: nowrap;
|
|
37
37
|
|
|
38
38
|
&:focus-visible + .wr-radio__dot {
|
|
39
|
-
|
|
39
|
+
@include theme.focus-ring;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
&--disabled {
|
|
116
116
|
--wr-radio-color: var(--wr-color-on-surface-muted);
|
|
117
117
|
pointer-events: none;
|
|
118
|
-
opacity:
|
|
118
|
+
opacity: var(--wr-disabled-opacity);
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"schema": "./use/schema.json"
|
|
19
19
|
},
|
|
20
20
|
"provider": {
|
|
21
|
-
"description": "Add a `provideWr*()` call to your bootstrap providers (overlay / icons / toast / i18n / date-adapter / density /
|
|
21
|
+
"description": "Add a `provideWr*()` call to your bootstrap providers (overlay / icons / toast / i18n / date-adapter / density / storage / theme).",
|
|
22
22
|
"factory": "./provider/index#default",
|
|
23
23
|
"schema": "./provider/schema.json"
|
|
24
24
|
},
|