ngwr 14.7.0 → 14.9.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 +66 -332
- package/alert/styles/_index.scss +10 -0
- package/avatar/styles/_index.scss +18 -7
- package/badge/styles/_index.scss +7 -0
- package/badge/styles/_tag.scss +7 -1
- package/bar-chart/styles/_index.scss +1 -0
- package/button/styles/_index.scss +6 -0
- package/calendar-heatmap/styles/_index.scss +1 -0
- package/cascader/styles/_rules.scss +87 -15
- package/checkbox/styles/_index.scss +4 -0
- package/command-palette/styles/_index.scss +1 -1
- package/date-picker/styles/_index.scss +30 -0
- package/density/styles/_index.scss +4 -2
- package/divider/styles/_index.scss +2 -0
- package/donut-chart/styles/_index.scss +10 -0
- package/dropdown/styles/_index.scss +67 -5
- package/editor/styles/_index.scss +441 -0
- package/event-calendar/styles/_index.scss +209 -35
- package/fesm2022/ngwr-action-sheet-testing.mjs.map +1 -1
- package/fesm2022/ngwr-action-sheet.mjs +3 -3
- package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
- package/fesm2022/ngwr-affix.mjs +3 -3
- package/fesm2022/ngwr-affix.mjs.map +1 -1
- package/fesm2022/ngwr-alert.mjs +3 -3
- package/fesm2022/ngwr-alert.mjs.map +1 -1
- package/fesm2022/ngwr-anchor.mjs +3 -3
- package/fesm2022/ngwr-anchor.mjs.map +1 -1
- package/fesm2022/ngwr-aurora.mjs +3 -3
- package/fesm2022/ngwr-aurora.mjs.map +1 -1
- package/fesm2022/ngwr-avatar.mjs +3 -3
- package/fesm2022/ngwr-avatar.mjs.map +1 -1
- package/fesm2022/ngwr-back-top.mjs +3 -3
- package/fesm2022/ngwr-back-top.mjs.map +1 -1
- package/fesm2022/ngwr-badge.mjs +28 -13
- package/fesm2022/ngwr-badge.mjs.map +1 -1
- package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-bar-chart.mjs +31 -6
- package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
- package/fesm2022/ngwr-blur-text-testing.mjs.map +1 -1
- package/fesm2022/ngwr-blur-text.mjs +3 -3
- package/fesm2022/ngwr-blur-text.mjs.map +1 -1
- package/fesm2022/ngwr-border-glow-testing.mjs.map +1 -1
- package/fesm2022/ngwr-border-glow.mjs +3 -3
- package/fesm2022/ngwr-border-glow.mjs.map +1 -1
- package/fesm2022/ngwr-breadcrumbs.mjs +6 -6
- package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngwr-burger.mjs +3 -3
- package/fesm2022/ngwr-burger.mjs.map +1 -1
- package/fesm2022/ngwr-button-testing.mjs.map +1 -1
- package/fesm2022/ngwr-button.mjs +6 -6
- package/fesm2022/ngwr-button.mjs.map +1 -1
- package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +1 -1
- package/fesm2022/ngwr-calendar-heatmap.mjs +61 -6
- package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
- package/fesm2022/ngwr-calendar-testing.mjs.map +1 -1
- package/fesm2022/ngwr-calendar.mjs +3 -3
- package/fesm2022/ngwr-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-card.mjs +9 -9
- package/fesm2022/ngwr-card.mjs.map +1 -1
- package/fesm2022/ngwr-carousel-testing.mjs.map +1 -1
- package/fesm2022/ngwr-carousel.mjs +6 -6
- package/fesm2022/ngwr-carousel.mjs.map +1 -1
- package/fesm2022/ngwr-cascader-testing.mjs.map +1 -1
- package/fesm2022/ngwr-cascader.mjs +4 -4
- package/fesm2022/ngwr-cascader.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox.mjs +18 -8
- package/fesm2022/ngwr-checkbox.mjs.map +1 -1
- package/fesm2022/ngwr-circular-text-testing.mjs.map +1 -1
- package/fesm2022/ngwr-circular-text.mjs +3 -3
- package/fesm2022/ngwr-circular-text.mjs.map +1 -1
- package/fesm2022/ngwr-click-spark.mjs +3 -3
- package/fesm2022/ngwr-click-spark.mjs.map +1 -1
- package/fesm2022/ngwr-clipboard.mjs +3 -3
- package/fesm2022/ngwr-clipboard.mjs.map +1 -1
- package/fesm2022/ngwr-collapse-testing.mjs.map +1 -1
- package/fesm2022/ngwr-collapse.mjs +9 -9
- package/fesm2022/ngwr-collapse.mjs.map +1 -1
- package/fesm2022/ngwr-color-picker-testing.mjs.map +1 -1
- package/fesm2022/ngwr-color-picker.mjs +6 -6
- package/fesm2022/ngwr-color-picker.mjs.map +1 -1
- package/fesm2022/ngwr-command-palette-testing.mjs.map +1 -1
- package/fesm2022/ngwr-command-palette.mjs +3 -3
- package/fesm2022/ngwr-command-palette.mjs.map +1 -1
- package/fesm2022/ngwr-compare.mjs +3 -3
- package/fesm2022/ngwr-compare.mjs.map +1 -1
- package/fesm2022/ngwr-confetti.mjs +3 -3
- package/fesm2022/ngwr-confetti.mjs.map +1 -1
- package/fesm2022/ngwr-config.mjs.map +1 -1
- package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -1
- package/fesm2022/ngwr-context-menu.mjs +12 -12
- package/fesm2022/ngwr-context-menu.mjs.map +1 -1
- package/fesm2022/ngwr-cookie.mjs +3 -3
- package/fesm2022/ngwr-cookie.mjs.map +1 -1
- package/fesm2022/ngwr-counter.mjs +6 -6
- package/fesm2022/ngwr-counter.mjs.map +1 -1
- package/fesm2022/ngwr-date-adapters-fns.mjs +3 -3
- package/fesm2022/ngwr-date-adapters-fns.mjs.map +1 -1
- package/fesm2022/ngwr-date-adapters-luxon.mjs +3 -3
- package/fesm2022/ngwr-date-adapters-luxon.mjs.map +1 -1
- package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -1
- package/fesm2022/ngwr-date-picker.mjs +721 -62
- package/fesm2022/ngwr-date-picker.mjs.map +1 -1
- package/fesm2022/ngwr-date.mjs +3 -3
- package/fesm2022/ngwr-date.mjs.map +1 -1
- package/fesm2022/ngwr-decrypt-text-testing.mjs.map +1 -1
- package/fesm2022/ngwr-decrypt-text.mjs +3 -3
- package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
- package/fesm2022/ngwr-density.mjs +6 -6
- package/fesm2022/ngwr-density.mjs.map +1 -1
- package/fesm2022/ngwr-descriptions.mjs +6 -6
- package/fesm2022/ngwr-descriptions.mjs.map +1 -1
- package/fesm2022/ngwr-dialog-testing.mjs.map +1 -1
- package/fesm2022/ngwr-dialog.mjs +15 -15
- package/fesm2022/ngwr-dialog.mjs.map +1 -1
- package/fesm2022/ngwr-directives.mjs +12 -12
- package/fesm2022/ngwr-directives.mjs.map +1 -1
- package/fesm2022/ngwr-divider.mjs +3 -3
- package/fesm2022/ngwr-divider.mjs.map +1 -1
- package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-donut-chart.mjs +48 -6
- package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
- package/fesm2022/ngwr-drag-drop.mjs +6 -6
- package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
- package/fesm2022/ngwr-drawer-testing.mjs.map +1 -1
- package/fesm2022/ngwr-drawer.mjs +18 -18
- package/fesm2022/ngwr-drawer.mjs.map +1 -1
- package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -1
- package/fesm2022/ngwr-dropdown.mjs +174 -25
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-editor-testing.mjs +568 -0
- package/fesm2022/ngwr-editor-testing.mjs.map +1 -0
- package/fesm2022/ngwr-editor.mjs +2601 -0
- package/fesm2022/ngwr-editor.mjs.map +1 -0
- package/fesm2022/ngwr-empty.mjs +3 -3
- package/fesm2022/ngwr-empty.mjs.map +1 -1
- package/fesm2022/ngwr-event-calendar-testing.mjs.map +1 -1
- package/fesm2022/ngwr-event-calendar.mjs +14 -7
- package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-falling-text-testing.mjs.map +1 -1
- package/fesm2022/ngwr-falling-text.mjs +3 -3
- package/fesm2022/ngwr-falling-text.mjs.map +1 -1
- package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -1
- package/fesm2022/ngwr-file-upload.mjs +3 -3
- package/fesm2022/ngwr-file-upload.mjs.map +1 -1
- package/fesm2022/ngwr-form-testing.mjs.map +1 -1
- package/fesm2022/ngwr-form.mjs +61 -10
- package/fesm2022/ngwr-form.mjs.map +1 -1
- package/fesm2022/ngwr-fuzzy-text-testing.mjs.map +1 -1
- package/fesm2022/ngwr-fuzzy-text.mjs +3 -3
- package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
- package/fesm2022/ngwr-gauge-testing.mjs.map +1 -1
- package/fesm2022/ngwr-gauge.mjs +35 -6
- package/fesm2022/ngwr-gauge.mjs.map +1 -1
- package/fesm2022/ngwr-glitch-text-testing.mjs.map +1 -1
- package/fesm2022/ngwr-glitch-text.mjs +3 -3
- package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
- package/fesm2022/ngwr-gradient-text-testing.mjs.map +1 -1
- package/fesm2022/ngwr-gradient-text.mjs +3 -3
- package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
- package/fesm2022/ngwr-graph-testing.mjs.map +1 -1
- package/fesm2022/ngwr-graph.mjs +6 -6
- package/fesm2022/ngwr-graph.mjs.map +1 -1
- package/fesm2022/ngwr-hotkey.mjs +6 -6
- package/fesm2022/ngwr-hotkey.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ar.mjs +31 -0
- package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-cs.mjs +31 -0
- package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-de.mjs +31 -0
- package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-en.mjs +39 -0
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-es.mjs +31 -0
- package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-fr.mjs +31 -0
- package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-he.mjs +31 -0
- package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-hi.mjs +31 -0
- package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-id.mjs +31 -0
- package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-it.mjs +31 -0
- package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ja.mjs +31 -0
- package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ko.mjs +31 -0
- package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-nl.mjs +31 -0
- package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-pl.mjs +31 -0
- package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-pt.mjs +31 -0
- package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ru.mjs +31 -0
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-sv.mjs +31 -0
- package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-tr.mjs +31 -0
- package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-uk.mjs +31 -0
- package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-vi.mjs +31 -0
- package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-zh-TW.mjs +31 -0
- package/fesm2022/ngwr-i18n-zh-TW.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-zh.mjs +31 -0
- package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
- package/fesm2022/ngwr-i18n.mjs +9 -9
- package/fesm2022/ngwr-i18n.mjs.map +1 -1
- package/fesm2022/ngwr-icon-adapters-feather.mjs.map +1 -1
- package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +1 -1
- package/fesm2022/ngwr-icon.mjs +6 -6
- package/fesm2022/ngwr-icon.mjs.map +1 -1
- package/fesm2022/ngwr-image-cropper-testing.mjs.map +1 -1
- package/fesm2022/ngwr-image-cropper.mjs +3 -3
- package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
- package/fesm2022/ngwr-input-number-testing.mjs.map +1 -1
- package/fesm2022/ngwr-input-number.mjs +15 -3
- package/fesm2022/ngwr-input-number.mjs.map +1 -1
- package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -1
- package/fesm2022/ngwr-input-otp.mjs +3 -3
- package/fesm2022/ngwr-input-otp.mjs.map +1 -1
- package/fesm2022/ngwr-input-testing.mjs.map +1 -1
- package/fesm2022/ngwr-input.mjs +15 -15
- package/fesm2022/ngwr-input.mjs.map +1 -1
- package/fesm2022/ngwr-keyboard.mjs +3 -3
- package/fesm2022/ngwr-keyboard.mjs.map +1 -1
- package/fesm2022/ngwr-knob-testing.mjs.map +1 -1
- package/fesm2022/ngwr-knob.mjs +3 -3
- package/fesm2022/ngwr-knob.mjs.map +1 -1
- package/fesm2022/ngwr-layout.mjs +15 -15
- package/fesm2022/ngwr-layout.mjs.map +1 -1
- package/fesm2022/ngwr-lightbox-testing.mjs.map +1 -1
- package/fesm2022/ngwr-lightbox.mjs +3 -3
- package/fesm2022/ngwr-lightbox.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart.mjs +18 -7
- package/fesm2022/ngwr-line-chart.mjs.map +1 -1
- package/fesm2022/ngwr-list.mjs +6 -6
- package/fesm2022/ngwr-list.mjs.map +1 -1
- package/fesm2022/ngwr-loading-bar-router.mjs.map +1 -1
- package/fesm2022/ngwr-loading-bar.mjs +6 -6
- package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
- package/fesm2022/ngwr-markdown-testing.mjs.map +1 -1
- package/fesm2022/ngwr-markdown.mjs +798 -17
- package/fesm2022/ngwr-markdown.mjs.map +1 -1
- package/fesm2022/ngwr-marquee-testing.mjs.map +1 -1
- package/fesm2022/ngwr-marquee.mjs +3 -3
- package/fesm2022/ngwr-marquee.mjs.map +1 -1
- package/fesm2022/ngwr-media.mjs +3 -3
- package/fesm2022/ngwr-media.mjs.map +1 -1
- package/fesm2022/ngwr-mention-testing.mjs.map +1 -1
- package/fesm2022/ngwr-mention.mjs +6 -6
- package/fesm2022/ngwr-mention.mjs.map +1 -1
- package/fesm2022/ngwr-meta.mjs +6 -6
- package/fesm2022/ngwr-meta.mjs.map +1 -1
- package/fesm2022/ngwr-meter-group-testing.mjs +7 -3
- package/fesm2022/ngwr-meter-group-testing.mjs.map +1 -1
- package/fesm2022/ngwr-meter-group.mjs +26 -6
- package/fesm2022/ngwr-meter-group.mjs.map +1 -1
- package/fesm2022/ngwr-overlay.mjs +6 -6
- package/fesm2022/ngwr-overlay.mjs.map +1 -1
- package/fesm2022/ngwr-page-header.mjs +13 -5
- package/fesm2022/ngwr-page-header.mjs.map +1 -1
- package/fesm2022/ngwr-pagination-testing.mjs.map +1 -1
- package/fesm2022/ngwr-pagination.mjs +3 -3
- package/fesm2022/ngwr-pagination.mjs.map +1 -1
- package/fesm2022/ngwr-pipes.mjs +21 -21
- package/fesm2022/ngwr-pipes.mjs.map +1 -1
- package/fesm2022/ngwr-platform.mjs +9 -9
- package/fesm2022/ngwr-platform.mjs.map +1 -1
- package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -1
- package/fesm2022/ngwr-popconfirm.mjs +6 -6
- package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
- package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
- package/fesm2022/ngwr-popover.mjs +578 -16
- package/fesm2022/ngwr-popover.mjs.map +1 -1
- package/fesm2022/ngwr-progress.mjs +3 -3
- package/fesm2022/ngwr-progress.mjs.map +1 -1
- package/fesm2022/ngwr-pull-to-refresh.mjs +3 -3
- package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -1
- package/fesm2022/ngwr-qr.mjs +3 -3
- package/fesm2022/ngwr-qr.mjs.map +1 -1
- package/fesm2022/ngwr-radio-testing.mjs.map +1 -1
- package/fesm2022/ngwr-radio.mjs +6 -6
- package/fesm2022/ngwr-radio.mjs.map +1 -1
- package/fesm2022/ngwr-rating-testing.mjs.map +1 -1
- package/fesm2022/ngwr-rating.mjs +3 -3
- package/fesm2022/ngwr-rating.mjs.map +1 -1
- package/fesm2022/ngwr-result.mjs +12 -12
- package/fesm2022/ngwr-result.mjs.map +1 -1
- package/fesm2022/ngwr-rotating-text-testing.mjs.map +1 -1
- package/fesm2022/ngwr-rotating-text.mjs +3 -3
- package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
- package/fesm2022/ngwr-schema-form.mjs +3 -3
- package/fesm2022/ngwr-schema-form.mjs.map +1 -1
- package/fesm2022/ngwr-scroll.mjs +3 -3
- package/fesm2022/ngwr-scroll.mjs.map +1 -1
- package/fesm2022/ngwr-segmented-testing.mjs.map +1 -1
- package/fesm2022/ngwr-segmented.mjs +3 -3
- package/fesm2022/ngwr-segmented.mjs.map +1 -1
- package/fesm2022/ngwr-select-testing.mjs.map +1 -1
- package/fesm2022/ngwr-select.mjs +12 -12
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-shiny-text-testing.mjs.map +1 -1
- package/fesm2022/ngwr-shiny-text.mjs +6 -6
- package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
- package/fesm2022/ngwr-sidebar.mjs +10 -3
- package/fesm2022/ngwr-sidebar.mjs.map +1 -1
- package/fesm2022/ngwr-skeleton.mjs +3 -3
- package/fesm2022/ngwr-skeleton.mjs.map +1 -1
- package/fesm2022/ngwr-slider-testing.mjs.map +1 -1
- package/fesm2022/ngwr-slider.mjs +3 -3
- package/fesm2022/ngwr-slider.mjs.map +1 -1
- package/fesm2022/ngwr-sparkline-testing.mjs.map +1 -1
- package/fesm2022/ngwr-sparkline.mjs +84 -10
- package/fesm2022/ngwr-sparkline.mjs.map +1 -1
- package/fesm2022/ngwr-speed-dial-testing.mjs.map +1 -1
- package/fesm2022/ngwr-speed-dial.mjs +3 -3
- package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
- package/fesm2022/ngwr-spinner.mjs +3 -3
- package/fesm2022/ngwr-spinner.mjs.map +1 -1
- package/fesm2022/ngwr-splash-cursor-testing.mjs.map +1 -1
- package/fesm2022/ngwr-splash-cursor.mjs +3 -3
- package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
- package/fesm2022/ngwr-split-text-testing.mjs.map +1 -1
- package/fesm2022/ngwr-split-text.mjs +3 -3
- package/fesm2022/ngwr-split-text.mjs.map +1 -1
- package/fesm2022/ngwr-splitter-testing.mjs.map +1 -1
- package/fesm2022/ngwr-splitter.mjs +3 -3
- package/fesm2022/ngwr-splitter.mjs.map +1 -1
- package/fesm2022/ngwr-spotlight-card-testing.mjs.map +1 -1
- package/fesm2022/ngwr-spotlight-card.mjs +6 -6
- package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
- package/fesm2022/ngwr-squircle.mjs +6 -6
- package/fesm2022/ngwr-squircle.mjs.map +1 -1
- package/fesm2022/ngwr-star-border-testing.mjs.map +1 -1
- package/fesm2022/ngwr-star-border.mjs +3 -3
- package/fesm2022/ngwr-star-border.mjs.map +1 -1
- package/fesm2022/ngwr-statistic.mjs +9 -9
- package/fesm2022/ngwr-statistic.mjs.map +1 -1
- package/fesm2022/ngwr-stepper-testing.mjs.map +1 -1
- package/fesm2022/ngwr-stepper.mjs +6 -6
- package/fesm2022/ngwr-stepper.mjs.map +1 -1
- package/fesm2022/ngwr-storage.mjs +3 -3
- package/fesm2022/ngwr-storage.mjs.map +1 -1
- package/fesm2022/ngwr-switch-testing.mjs.map +1 -1
- package/fesm2022/ngwr-switch.mjs +3 -3
- package/fesm2022/ngwr-switch.mjs.map +1 -1
- package/fesm2022/ngwr-table-testing.mjs.map +1 -1
- package/fesm2022/ngwr-table.mjs +18 -18
- package/fesm2022/ngwr-table.mjs.map +1 -1
- package/fesm2022/ngwr-tabs-router.mjs +3 -3
- package/fesm2022/ngwr-tabs-router.mjs.map +1 -1
- package/fesm2022/ngwr-tabs-testing.mjs.map +1 -1
- package/fesm2022/ngwr-tabs.mjs +6 -6
- package/fesm2022/ngwr-tabs.mjs.map +1 -1
- package/fesm2022/ngwr-textarea-testing.mjs.map +1 -1
- package/fesm2022/ngwr-textarea.mjs +3 -3
- package/fesm2022/ngwr-textarea.mjs.map +1 -1
- package/fesm2022/ngwr-theme.mjs +3 -3
- package/fesm2022/ngwr-theme.mjs.map +1 -1
- package/fesm2022/ngwr-tilt-card-testing.mjs.map +1 -1
- package/fesm2022/ngwr-tilt-card.mjs +6 -6
- package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
- package/fesm2022/ngwr-timeline.mjs +6 -6
- package/fesm2022/ngwr-timeline.mjs.map +1 -1
- package/fesm2022/ngwr-toast-testing.mjs.map +1 -1
- package/fesm2022/ngwr-toast.mjs +9 -9
- package/fesm2022/ngwr-toast.mjs.map +1 -1
- package/fesm2022/ngwr-toolbar.mjs +10 -3
- package/fesm2022/ngwr-toolbar.mjs.map +1 -1
- package/fesm2022/ngwr-tour-testing.mjs.map +1 -1
- package/fesm2022/ngwr-tour.mjs +6 -6
- package/fesm2022/ngwr-tour.mjs.map +1 -1
- package/fesm2022/ngwr-transfer-testing.mjs.map +1 -1
- package/fesm2022/ngwr-transfer.mjs +3 -3
- package/fesm2022/ngwr-transfer.mjs.map +1 -1
- package/fesm2022/ngwr-tree-testing.mjs.map +1 -1
- package/fesm2022/ngwr-tree.mjs +3 -3
- package/fesm2022/ngwr-tree.mjs.map +1 -1
- package/fesm2022/ngwr-typewriter-testing.mjs.map +1 -1
- package/fesm2022/ngwr-typewriter.mjs +3 -3
- package/fesm2022/ngwr-typewriter.mjs.map +1 -1
- package/fesm2022/ngwr-typography.mjs +7 -3
- package/fesm2022/ngwr-typography.mjs.map +1 -1
- package/fesm2022/ngwr-utils.mjs.map +1 -1
- package/fesm2022/ngwr-validators.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 +3 -3
- package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
- package/fesm2022/ngwr-waves-testing.mjs.map +1 -1
- package/fesm2022/ngwr-waves.mjs +3 -3
- package/fesm2022/ngwr-waves.mjs.map +1 -1
- package/fesm2022/ngwr-window-testing.mjs.map +1 -1
- package/fesm2022/ngwr-window.mjs +12 -12
- package/fesm2022/ngwr-window.mjs.map +1 -1
- package/form/styles/_index.scss +16 -1
- package/gauge/styles/_index.scss +1 -0
- package/i18n/ar.json +32 -1
- package/i18n/cs.json +32 -1
- package/i18n/de.json +32 -1
- package/i18n/en.json +32 -1
- package/i18n/es.json +32 -1
- package/i18n/fr.json +32 -1
- package/i18n/he.json +32 -1
- package/i18n/hi.json +32 -1
- package/i18n/id.json +32 -1
- package/i18n/it.json +32 -1
- package/i18n/ja.json +32 -1
- package/i18n/ko.json +32 -1
- package/i18n/nl.json +32 -1
- package/i18n/pl.json +32 -1
- package/i18n/pt.json +32 -1
- package/i18n/ru.json +32 -1
- package/i18n/sv.json +32 -1
- package/i18n/tr.json +32 -1
- package/i18n/uk.json +32 -1
- package/i18n/vi.json +32 -1
- package/i18n/zh-TW.json +32 -1
- package/i18n/zh.json +32 -1
- package/input/styles/_index.scss +24 -1
- package/input-number/styles/_index.scss +69 -0
- package/input-otp/styles/_index.scss +5 -5
- package/line-chart/styles/_index.scss +30 -2
- package/llms-full.txt +14 -4
- package/llms.txt +188 -132
- package/mcp/providers.js +2 -2
- package/mcp/server.js +1 -1
- package/meter-group/styles/_index.scss +1 -0
- package/overlay/styles/_arrow.scss +30 -2
- package/package.json +43 -2
- package/page-header/styles/_index.scss +37 -1
- package/pagination/styles/_index.scss +9 -5
- package/popover/styles/_index.scss +73 -5
- package/progress/styles/_index.scss +4 -0
- package/radio/styles/_index.scss +4 -1
- package/schematics/use/symbol-map.json +1 -0
- package/select/styles/_index.scss +51 -12
- package/sidebar/styles/_index.scss +44 -2
- package/skeleton/styles/_index.scss +3 -0
- package/skills/ngwr/SKILL.md +5 -5
- package/skills/ngwr/references/catalog.md +2 -0
- package/skills/ngwr/references/setup.md +3 -3
- package/sparkline/styles/_index.scss +19 -0
- package/styles.scss +1 -0
- package/table/styles/_index.scss +7 -0
- package/textarea/styles/_index.scss +12 -3
- package/theme/styles/_colors.scss +39 -13
- package/theme/styles/_contrast.scss +9 -7
- package/toast/styles/_index.scss +4 -0
- package/toolbar/styles/_index.scss +35 -1
- package/tree/styles/_index.scss +46 -7
- package/types/ngwr-badge.d.ts +22 -7
- package/types/ngwr-bar-chart.d.ts +19 -1
- package/types/ngwr-calendar-heatmap.d.ts +29 -1
- package/types/ngwr-checkbox.d.ts +2 -0
- package/types/ngwr-config.d.ts +12 -0
- package/types/ngwr-date-picker.d.ts +308 -43
- package/types/ngwr-donut-chart.d.ts +24 -1
- package/types/ngwr-dropdown.d.ts +22 -2
- package/types/ngwr-editor-testing.d.ts +378 -0
- package/types/ngwr-editor.d.ts +449 -0
- package/types/ngwr-event-calendar.d.ts +8 -0
- package/types/ngwr-form.d.ts +35 -5
- package/types/ngwr-gauge.d.ts +20 -1
- package/types/ngwr-input-number.d.ts +7 -0
- package/types/ngwr-line-chart.d.ts +9 -1
- package/types/ngwr-markdown.d.ts +61 -2
- package/types/ngwr-meter-group-testing.d.ts +3 -2
- package/types/ngwr-meter-group.d.ts +14 -1
- package/types/ngwr-page-header.d.ts +10 -2
- package/types/ngwr-popover.d.ts +154 -3
- package/types/ngwr-sidebar.d.ts +7 -0
- package/types/ngwr-sparkline.d.ts +43 -1
- package/types/ngwr-toolbar.d.ts +7 -0
- package/types/ngwr-typography.d.ts +4 -0
- package/types/ngwr-version.d.ts +1 -1
- package/typography/styles/_index.scss +16 -0
package/types/ngwr-markdown.d.ts
CHANGED
|
@@ -475,7 +475,11 @@ declare function parseMarkdown(source: string, options?: WrMarkdownParseOptions)
|
|
|
475
475
|
*
|
|
476
476
|
* Whitespace and control characters are stripped before the scheme is read,
|
|
477
477
|
* because `java\nscript:` and `java script:` are the same URL to a browser and
|
|
478
|
-
* different strings to a naive check.
|
|
478
|
+
* different strings to a naive check. So are character references:
|
|
479
|
+
* `javascript:` has no scheme to this check, but a CommonMark renderer
|
|
480
|
+
* decodes it in a destination, so any markdown the URL is written into — an
|
|
481
|
+
* editor's output, say — hands a browser `javascript:`. The scheme is read from
|
|
482
|
+
* the decoded form; what comes back is still the URL as written.
|
|
479
483
|
*/
|
|
480
484
|
declare function safeMarkdownUrl(raw: string, kind: 'link' | 'image'): string | null;
|
|
481
485
|
/** Inline markdown to nodes. */
|
|
@@ -483,6 +487,61 @@ declare function parseInlines(source: string, options?: WrMarkdownParseOptions):
|
|
|
483
487
|
/** Text content of an inline tree — for `alt` and for heading slugs. */
|
|
484
488
|
declare function plainText(inlines: readonly WrMarkdownInline[]): string;
|
|
485
489
|
|
|
490
|
+
/**
|
|
491
|
+
* @license
|
|
492
|
+
*
|
|
493
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
494
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
495
|
+
*/
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* A block tree back to markdown — the inverse of {@link parseMarkdown}.
|
|
499
|
+
*
|
|
500
|
+
* **Written against this library's parser, not against CommonMark.** The two
|
|
501
|
+
* disagree in places (no setext headings, no indented code, no entities, a
|
|
502
|
+
* simplified reading of emphasis), and a serializer that escapes for the wrong
|
|
503
|
+
* dialect writes text that comes back as something else. So every escape here is
|
|
504
|
+
* derived from a question `parseMarkdown` actually asks — several of them by
|
|
505
|
+
* calling the parser's own predicates — and the spec holds the pair to one
|
|
506
|
+
* property: `parseMarkdown(serializeMarkdown(tree))` returns `tree`.
|
|
507
|
+
*
|
|
508
|
+
* **What markdown cannot say is normalised, never guessed at.** The output is the
|
|
509
|
+
* nearest document this dialect can express, and reading it back gives a tree
|
|
510
|
+
* that serializes to the same string. The losses, all of them structural:
|
|
511
|
+
*
|
|
512
|
+
* - Whitespace at the edges of a paragraph, heading or cell is dropped, and so is
|
|
513
|
+
* whitespace just inside `**` / `*` / `~~` — a delimiter next to a space is not
|
|
514
|
+
* a delimiter. A soft line break inside a text node becomes a space, and a hard
|
|
515
|
+
* break at the very end of a block (a trailing `\` stays literal) is dropped;
|
|
516
|
+
* inside a heading or a table cell every hard break becomes a space.
|
|
517
|
+
* - An empty paragraph, an empty list and a table with no header cell vanish.
|
|
518
|
+
* - Two adjacent lists of the same kind merge on the way back — there is no
|
|
519
|
+
* raw-HTML comment to put between them. A single-item list with one block
|
|
520
|
+
* cannot be loose, and a loose list nested in a tight one loosens it. Nesting
|
|
521
|
+
* deeper than the parser's twelve levels reads back as text.
|
|
522
|
+
* - Inline marks are rewritten in one canonical nesting — link outside strong
|
|
523
|
+
* outside strikethrough outside emphasis — which is also how a mark SET, the
|
|
524
|
+
* shape an editor holds, becomes a tree. An image carries no emphasis (none of
|
|
525
|
+
* it paints on an image); where an emphasis run touches a strong one and
|
|
526
|
+
* neither can switch to `_`, the emphasis is dropped rather than written as
|
|
527
|
+
* markup that reads back as literal asterisks.
|
|
528
|
+
* - A link or image whose URL `safeMarkdownUrl` refuses is written as its text,
|
|
529
|
+
* exactly as the renderer would show it. A destination is percent-encoded
|
|
530
|
+
* where this parser cannot carry a character (`<`, `>`, an unbalanced
|
|
531
|
+
* parenthesis, a `\` it would read as an escape — and `[`, `]`, a backtick for
|
|
532
|
+
* an image inside a link label), loses a tab or line break the way a browser's
|
|
533
|
+
* URL parser does, a title that cannot be delimited is dropped, and a link
|
|
534
|
+
* whose label is too long for the parser's label cap is written as plain text.
|
|
535
|
+
* - A fence's info string keeps its first word, lowercased, and `closed` is not
|
|
536
|
+
* written: a serialized fence is always closed. A tab that indents a line reads
|
|
537
|
+
* back as four spaces, as the parser expands it. Heading ids are the parser's,
|
|
538
|
+
* recomputed on the way back.
|
|
539
|
+
*
|
|
540
|
+
* @param blocks a block tree, typically from {@link parseMarkdown} or an editor
|
|
541
|
+
* @returns markdown, with no trailing newline; `''` for an empty tree
|
|
542
|
+
*/
|
|
543
|
+
declare function serializeMarkdown(blocks: readonly WrMarkdownBlock[]): string;
|
|
544
|
+
|
|
486
545
|
/**
|
|
487
546
|
* @license
|
|
488
547
|
*
|
|
@@ -541,5 +600,5 @@ declare function provideWrMarkdownHighlighter(highlighter: WrMarkdownHighlighter
|
|
|
541
600
|
*/
|
|
542
601
|
declare const WR_MARKDOWN_HIGHLIGHTER: InjectionToken<WrMarkdownHighlighter | null>;
|
|
543
602
|
|
|
544
|
-
export { WR_MARKDOWN_HIGHLIGHTER, WrMarkdown, WrMarkdownHighlight, parseInlines, parseMarkdown, plainText, provideWrMarkdownHighlighter, safeMarkdownUrl };
|
|
603
|
+
export { WR_MARKDOWN_HIGHLIGHTER, WrMarkdown, WrMarkdownHighlight, parseInlines, parseMarkdown, plainText, provideWrMarkdownHighlighter, safeMarkdownUrl, serializeMarkdown };
|
|
545
604
|
export type { WrHighlightLine, WrHighlightSpan, WrMarkdownAlign, WrMarkdownBlock, WrMarkdownCell, WrMarkdownHighlighter, WrMarkdownInline, WrMarkdownListItem, WrMarkdownParseOptions };
|
|
@@ -33,8 +33,9 @@ interface WrMeterGroupSlice {
|
|
|
33
33
|
* Test harness for `<wr-meter-group>` — one bar divided into labelled bands.
|
|
34
34
|
*
|
|
35
35
|
* **The bar is a single `progressbar`, and its value is the TOTAL.** The bands
|
|
36
|
-
* themselves announce nothing: they carry a
|
|
37
|
-
*
|
|
36
|
+
* themselves announce nothing: they carry a hover tooltip (or, with `tooltip` off, a
|
|
37
|
+
* `title`) for a mouse and their share as an inline width, and the legend is where
|
|
38
|
+
* their labels and values are readable. So a
|
|
38
39
|
* spec that wants "how much of each" reads {@link getSlices} for the shares or
|
|
39
40
|
* {@link getLegendLabels} / {@link getLegendValues} for what is printed, and one that
|
|
40
41
|
* wants "how full" reads {@link getValue}.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as ngwr_popover from 'ngwr/popover';
|
|
1
2
|
import * as _angular_core from '@angular/core';
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -45,6 +46,13 @@ declare class WrMeterGroup {
|
|
|
45
46
|
readonly showLegend: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
46
47
|
/** Show each segment's value in the legend, next to its label. @default true */
|
|
47
48
|
readonly showValues: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
49
|
+
/**
|
|
50
|
+
* Show a tooltip with the segment's label and value on hover. It replaces the
|
|
51
|
+
* band's `title`, which is written only while this is off — or the browser would
|
|
52
|
+
* open a second copy a moment later. @default true
|
|
53
|
+
*/
|
|
54
|
+
readonly tooltip: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
55
|
+
private readonly sliceEls;
|
|
48
56
|
/**
|
|
49
57
|
* A segment's contribution, floored at `0` and with anything non-finite read
|
|
50
58
|
* as `0`. One `NaN` used to poison the whole bar: the sum is `NaN` as soon as
|
|
@@ -67,8 +75,13 @@ declare class WrMeterGroup {
|
|
|
67
75
|
color: string;
|
|
68
76
|
percent: number;
|
|
69
77
|
}[]>;
|
|
78
|
+
/**
|
|
79
|
+
* One tooltip for the whole bar, pointing at the hovered band, with the value as
|
|
80
|
+
* the legend prints it.
|
|
81
|
+
*/
|
|
82
|
+
protected readonly tip: ngwr_popover.WrChartTooltip;
|
|
70
83
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrMeterGroup, never>;
|
|
71
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrMeterGroup, "wr-meter-group", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "segments": { "alias": "segments"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "showValues": { "alias": "showValues"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
84
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrMeterGroup, "wr-meter-group", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "segments": { "alias": "segments"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "showValues": { "alias": "showValues"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
72
85
|
}
|
|
73
86
|
|
|
74
87
|
export { WrMeterGroup };
|
|
@@ -6,6 +6,14 @@ import * as _angular_core from '@angular/core';
|
|
|
6
6
|
* side), `[wrPageHeaderExtra]` (bottom row of tags / metadata). Title +
|
|
7
7
|
* subtitle come from inputs.
|
|
8
8
|
*
|
|
9
|
+
* A bare `<div>` wrapper in the actions slot, one with no `class` and no
|
|
10
|
+
* `style`, is laid out as a wrapping row with the actions region's own gap, so
|
|
11
|
+
* the buttons inside it are spaced exactly like buttons projected one by one.
|
|
12
|
+
* The gap follows `--wr-density-gap`. Give the wrapper a class or a style and
|
|
13
|
+
* its layout is yours: the header sets nothing on it. The extra row spaces its
|
|
14
|
+
* own children and leaves a wrapper alone, since that is where metadata prose
|
|
15
|
+
* goes, so project tags through an `<ng-container>` as below.
|
|
16
|
+
*
|
|
9
17
|
* @example
|
|
10
18
|
* ```html
|
|
11
19
|
* <wr-page-header title="Settings" subtitle="Manage your workspace">
|
|
@@ -14,10 +22,10 @@ import * as _angular_core from '@angular/core';
|
|
|
14
22
|
* <button wr-btn>Invite</button>
|
|
15
23
|
* <button wr-btn color="primary">Save</button>
|
|
16
24
|
* </div>
|
|
17
|
-
* <
|
|
25
|
+
* <ng-container wrPageHeaderExtra>
|
|
18
26
|
* <wr-tag>v2.4</wr-tag>
|
|
19
27
|
* <wr-tag color="success">Stable</wr-tag>
|
|
20
|
-
* </
|
|
28
|
+
* </ng-container>
|
|
21
29
|
* </wr-page-header>
|
|
22
30
|
* ```
|
|
23
31
|
*
|
package/types/ngwr-popover.d.ts
CHANGED
|
@@ -1,7 +1,79 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { TemplateRef } from '@angular/core';
|
|
2
|
+
import { Signal, TemplateRef } from '@angular/core';
|
|
3
3
|
import { BooleanInput } from '@angular/cdk/coercion';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* @license
|
|
7
|
+
*
|
|
8
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
9
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* What a chart's hover tooltip says about one section.
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
interface WrChartTooltipDatum {
|
|
18
|
+
/** The series or category name. Omitted where `value` is already a whole sentence. */
|
|
19
|
+
readonly label?: string;
|
|
20
|
+
/** The value, formatted the way the chart already prints it. */
|
|
21
|
+
readonly value: string;
|
|
22
|
+
/** The section's own paint, drawn as a swatch. Omitted where colour says nothing. */
|
|
23
|
+
readonly color?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Where the tooltip for one section points, and what it says.
|
|
27
|
+
*
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
interface WrChartTooltipTarget {
|
|
31
|
+
readonly datum: WrChartTooltipDatum;
|
|
32
|
+
/**
|
|
33
|
+
* What the chip points at: an element, or a box in viewport pixels for a section
|
|
34
|
+
* that is not one — a zero-size point on a donut's arc. The chip sits on `side` of
|
|
35
|
+
* it with its arrow on the middle of that edge, and flips for room. Point at the
|
|
36
|
+
* section itself, not at something near it: the arrow is what tells a reader which
|
|
37
|
+
* of forty squares the chip is about. `null` while the element is not rendered —
|
|
38
|
+
* the tooltip stays closed rather than pointing at nothing.
|
|
39
|
+
*/
|
|
40
|
+
readonly anchor: Element | {
|
|
41
|
+
readonly x: number;
|
|
42
|
+
readonly y: number;
|
|
43
|
+
readonly width?: number;
|
|
44
|
+
readonly height?: number;
|
|
45
|
+
} | null;
|
|
46
|
+
/**
|
|
47
|
+
* Which PHYSICAL side of the anchor the chip goes, before a flip for room — the
|
|
48
|
+
* side the section faces. A chart's geometry does not mirror with `direction`, so
|
|
49
|
+
* neither does this: `right` is the right in RTL too. `top` and `bottom` flip to
|
|
50
|
+
* each other; `left` and `right` try above and below rather than the far side,
|
|
51
|
+
* which is the chart itself. @default 'top'
|
|
52
|
+
*/
|
|
53
|
+
readonly side?: 'top' | 'bottom' | 'left' | 'right';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The handle {@link useChartTooltip} returns to a chart.
|
|
57
|
+
*
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
interface WrChartTooltip {
|
|
61
|
+
/** The section the tooltip is showing, or `null`. Always `null` while the chart opted out. */
|
|
62
|
+
readonly active: Signal<number | null>;
|
|
63
|
+
/**
|
|
64
|
+
* The pointer is over section `index`. Switches straight to it when another is up —
|
|
65
|
+
* unless the pointer is between that one's anchor and its chip, on its way onto the
|
|
66
|
+
* chip, where the switch waits out the same grace as `leave`.
|
|
67
|
+
*/
|
|
68
|
+
enter(index: number): void;
|
|
69
|
+
/**
|
|
70
|
+
* The pointer left the sections. Hides after a short grace period, so a pointer
|
|
71
|
+
* can cross the gap onto the tooltip — WCAG 1.4.13 (Hoverable) — and so moving
|
|
72
|
+
* between two sections through a gap does not blink it.
|
|
73
|
+
*/
|
|
74
|
+
leave(event?: MouseEvent): void;
|
|
75
|
+
}
|
|
76
|
+
|
|
5
77
|
/**
|
|
6
78
|
* @license
|
|
7
79
|
*
|
|
@@ -11,6 +83,85 @@ import { BooleanInput } from '@angular/cdk/coercion';
|
|
|
11
83
|
|
|
12
84
|
type WrPopoverPosition = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
|
|
13
85
|
|
|
86
|
+
/**
|
|
87
|
+
* @license
|
|
88
|
+
*
|
|
89
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
90
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
91
|
+
*/
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* A hover tooltip for a chart's sections, with ONE overlay per chart.
|
|
95
|
+
*
|
|
96
|
+
* **Why not `[wrPopover] mode="tooltip"` on every section.** It fits the look
|
|
97
|
+
* and not the shape. A year of `wr-calendar-heatmap` is 371 days, and a directive
|
|
98
|
+
* per day is 371 focus monitors and 371 overlays-in-waiting for a tooltip only
|
|
99
|
+
* one of them can show; and most sections are not an element a directive could
|
|
100
|
+
* point at — a donut's slice is a `<path>` whose box is most of the ring, a
|
|
101
|
+
* sparkline's point is a coordinate. So the chart says which section is under
|
|
102
|
+
* the pointer and where to point, and this owns the single overlay, the timers
|
|
103
|
+
* and the teardown. What IS shared with the directive is everything a reader
|
|
104
|
+
* sees: the `.wr-tooltip` chip, its arrow, the placements with their flip, and
|
|
105
|
+
* Escape.
|
|
106
|
+
*
|
|
107
|
+
* **The chip points AT the section it describes**, with its arrow on the anchor:
|
|
108
|
+
* above a heatmap's day, above a bar's top edge, off the outside of a donut's arc.
|
|
109
|
+
* The arrow is placed from a measurement rather than centred, because the chip is
|
|
110
|
+
* not always centred on its anchor — `withPush` slides it along the viewport edge
|
|
111
|
+
* for the first and last week of a year — and an arrow at the chip's middle would
|
|
112
|
+
* then point at a neighbour. The measurement is written to
|
|
113
|
+
* `--wr-chart-tooltip-arrow` on the chip, and the stylesheet puts the arrow there.
|
|
114
|
+
*
|
|
115
|
+
* **A chip at its section sits over the sections beside it**, and it is hoverable
|
|
116
|
+
* (below), so the way onto it can cross another section: straight up from a heatmap
|
|
117
|
+
* day runs through the day above. Switching the moment that day reported itself
|
|
118
|
+
* would move the chip away from a pointer on its way to it — WCAG 1.4.13 with extra
|
|
119
|
+
* steps. So the strip between the anchor and the chip is a bridge: another section
|
|
120
|
+
* reported from inside it waits out the same grace a leave does, a pointer still
|
|
121
|
+
* closing in on the chip starts that grace again however slowly it moves, and
|
|
122
|
+
* landing on the chip cancels the switch. Anywhere else a new section switches at
|
|
123
|
+
* once, so scanning a row of days does not lag. The cost is in the other direction: a
|
|
124
|
+
* pointer that keeps on going up a heatmap's column is moving onto the chip, so it
|
|
125
|
+
* passes over it and the days under it read out only once it comes out the far side.
|
|
126
|
+
*
|
|
127
|
+
* **Why an overlay and not a positioned child, the way `wr-line-chart` draws its
|
|
128
|
+
* own.** A child is clipped by every `overflow` between it and the page, and a
|
|
129
|
+
* chart sits inside those constantly: `wr-calendar-heatmap` IS a scroll
|
|
130
|
+
* container, and a sparkline in a `wr-table` cell sits under two more.
|
|
131
|
+
*
|
|
132
|
+
* **Pointer only, deliberately.** No section of any chart is a tab stop, and
|
|
133
|
+
* this does not make one — a year of days in the tab order would be the defect.
|
|
134
|
+
* The pane is `aria-hidden`: every value it shows is already the section's
|
|
135
|
+
* accessible name or the chart's own, and an orphan tooltip nothing describes
|
|
136
|
+
* reads as a stray line at the end of the document. It is never the only way to
|
|
137
|
+
* a value.
|
|
138
|
+
*
|
|
139
|
+
* SSR-safe: nothing here touches the DOM until a pointer event has moved a
|
|
140
|
+
* section, and the render effect that opens the overlay never runs on a server.
|
|
141
|
+
*
|
|
142
|
+
* Call from an injection context — a chart's field initialiser.
|
|
143
|
+
*
|
|
144
|
+
* @param enabled The chart's `tooltip` input. Turning it off closes an open tooltip.
|
|
145
|
+
* @param resolve What to show for section `index`, and where. It runs after
|
|
146
|
+
* render, so it may read the DOM the section just drew; the signals it reads
|
|
147
|
+
* are tracked, so a data change under an open tooltip re-reads it, and a
|
|
148
|
+
* section that no longer exists (`null`) closes it. It runs again whenever the
|
|
149
|
+
* chart may have moved under an open chip — a scroll anywhere, a viewport
|
|
150
|
+
* resize, the chart or its anchor element changing size.
|
|
151
|
+
* @param sectionAt For a chart whose sections are chosen by POSITION rather than by
|
|
152
|
+
* element — a sparkline picks the point nearest the pointer's x, anywhere over the
|
|
153
|
+
* drawing — the section at a viewport point, or `null` off the drawing. The chip
|
|
154
|
+
* points at the point from inside the drawing, so without this a pointer scrubbing
|
|
155
|
+
* above the line lands on the chip and the chart stops hearing it: measured in
|
|
156
|
+
* Chromium, a scrub along the top of a sparkline showed 9 of its 12 values. Asked on
|
|
157
|
+
* every pointer event while a chip is up, wherever the pointer is over the chart or its
|
|
158
|
+
* own chip; straight up from a point onto its chip stays on that point, so the chip is
|
|
159
|
+
* still hoverable. Anywhere else the chip closes after the usual grace.
|
|
160
|
+
*
|
|
161
|
+
* @internal
|
|
162
|
+
*/
|
|
163
|
+
declare function useChartTooltip(enabled: Signal<boolean>, resolve: (index: number) => WrChartTooltipTarget | null, sectionAt?: (x: number, y: number) => number | null): WrChartTooltip;
|
|
164
|
+
|
|
14
165
|
declare class WrPopover {
|
|
15
166
|
/**
|
|
16
167
|
* Content to render inside the panel.
|
|
@@ -150,5 +301,5 @@ declare class WrPopover {
|
|
|
150
301
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<WrPopover, "[wrPopover]", ["wrPopover"], { "content": { "alias": "wrPopover"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "showDelay": { "alias": "showDelay"; "required": false; "isSignal": true; }; "hideDelay": { "alias": "hideDelay"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
151
302
|
}
|
|
152
303
|
|
|
153
|
-
export { WrPopover };
|
|
154
|
-
export type { WrPopoverPosition };
|
|
304
|
+
export { WrPopover, useChartTooltip };
|
|
305
|
+
export type { WrChartTooltip, WrChartTooltipDatum, WrChartTooltipTarget, WrPopoverPosition };
|
package/types/ngwr-sidebar.d.ts
CHANGED
|
@@ -36,6 +36,13 @@ declare function isGroup(entry: WrSidebarEntry): entry is WrSidebarGroup;
|
|
|
36
36
|
* `WrSidebarItem`s (direct links) or `WrSidebarGroup`s (expand to reveal
|
|
37
37
|
* child items). Active route auto-expands its containing group.
|
|
38
38
|
*
|
|
39
|
+
* The host pads its rows by `--wr-sidebar-padding` (`0.5rem`), so a hovered or
|
|
40
|
+
* active row's tint stays off the edge of whatever holds the nav, a bordered
|
|
41
|
+
* card or a `<wr-layout-sider>`, which pads nothing itself. Where the container
|
|
42
|
+
* already supplies the inset, set the hook to `0` on the sidebar, not on the
|
|
43
|
+
* container: the host declares its own default, which shadows an inherited one
|
|
44
|
+
* (`.my-panel .wr-sidebar { --wr-sidebar-padding: 0 }`, or inline).
|
|
45
|
+
*
|
|
39
46
|
* @example
|
|
40
47
|
* ```html
|
|
41
48
|
* <wr-sidebar [entries]="[
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as ngwr_popover from 'ngwr/popover';
|
|
1
2
|
import * as _angular_core from '@angular/core';
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -36,9 +37,24 @@ declare class WrSparkline {
|
|
|
36
37
|
readonly width: _angular_core.InputSignal<string>;
|
|
37
38
|
/** CSS height. @default '2rem' */
|
|
38
39
|
readonly height: _angular_core.InputSignal<string>;
|
|
40
|
+
/**
|
|
41
|
+
* Show a tooltip with the value of the point nearest the pointer, marking that
|
|
42
|
+
* point, and named by `ariaLabel` when one is given. Pointer only. @default true
|
|
43
|
+
*/
|
|
44
|
+
readonly tooltip: _angular_core.InputSignalWithTransform<boolean, any>;
|
|
45
|
+
private readonly svg;
|
|
46
|
+
private readonly marker;
|
|
39
47
|
private readonly vbW;
|
|
40
48
|
private readonly vbH;
|
|
41
49
|
private readonly padding;
|
|
50
|
+
/**
|
|
51
|
+
* The data as drawn. Non-finite values are dropped rather than scaled: every
|
|
52
|
+
* `min`/`max` comparison against a NaN is false, so it survived into the scale and
|
|
53
|
+
* `toFixed(2)` wrote the literal text `NaN` into the path `d` — invalid geometry,
|
|
54
|
+
* and the line vanishes. The tooltip reads this list too, so the value it shows is
|
|
55
|
+
* the one under the point it marks.
|
|
56
|
+
*/
|
|
57
|
+
private readonly values;
|
|
42
58
|
/** Mapped `{ x, y }` points for the path. */
|
|
43
59
|
protected readonly points: _angular_core.Signal<readonly {
|
|
44
60
|
x: number;
|
|
@@ -51,8 +67,34 @@ declare class WrSparkline {
|
|
|
51
67
|
y: number;
|
|
52
68
|
} | null>;
|
|
53
69
|
protected readonly viewBox: string;
|
|
70
|
+
/**
|
|
71
|
+
* One tooltip, pointing at the hovered point: above its marker, below it when there
|
|
72
|
+
* is no room. The marker is the anchor element itself, drawn for the point the
|
|
73
|
+
* tooltip reads — it renders before this runs, since both follow `tip.active()`.
|
|
74
|
+
*
|
|
75
|
+
* The chip sits INSIDE the drawing, over the stretch of line above the marker, so the
|
|
76
|
+
* helper is also told which point any spot over the drawing reads: a pointer scrubbing
|
|
77
|
+
* along the top of a sparkline would otherwise land on the chip and stop there.
|
|
78
|
+
*/
|
|
79
|
+
protected readonly tip: ngwr_popover.WrChartTooltip;
|
|
80
|
+
/**
|
|
81
|
+
* The marker's place, as percentages of the box the drawing stretches to. An
|
|
82
|
+
* element rather than a `<circle>`: the drawing stretches to any box with
|
|
83
|
+
* `preserveAspectRatio="none"`, which would squash a circle into an ellipse.
|
|
84
|
+
*/
|
|
85
|
+
protected readonly markerAt: _angular_core.Signal<{
|
|
86
|
+
x: number;
|
|
87
|
+
y: number;
|
|
88
|
+
} | null>;
|
|
89
|
+
protected onPointerMove(event: MouseEvent): void;
|
|
90
|
+
/**
|
|
91
|
+
* The point nearest the pointer, along x only — the points are evenly spaced, so
|
|
92
|
+
* that is a rounding rather than a search. A box with no width (nothing laid out
|
|
93
|
+
* yet) answers nothing rather than a NaN index.
|
|
94
|
+
*/
|
|
95
|
+
private indexAt;
|
|
54
96
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrSparkline, never>;
|
|
55
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrSparkline, "wr-sparkline", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "showArea": { "alias": "showArea"; "required": false; "isSignal": true; }; "showTip": { "alias": "showTip"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
97
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrSparkline, "wr-sparkline", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "showArea": { "alias": "showArea"; "required": false; "isSignal": true; }; "showTip": { "alias": "showTip"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
56
98
|
}
|
|
57
99
|
|
|
58
100
|
export { WrSparkline };
|
package/types/ngwr-toolbar.d.ts
CHANGED
|
@@ -4,6 +4,13 @@ import * as i0 from '@angular/core';
|
|
|
4
4
|
* Action bar with three named zones — `[wrToolbarStart]`,
|
|
5
5
|
* `[wrToolbarCenter]`, `[wrToolbarEnd]`. Use any one or all three.
|
|
6
6
|
*
|
|
7
|
+
* A bare `<div>` wrapper in a zone, one with no `class` and no `style`, is laid
|
|
8
|
+
* out as a wrapping row with the zone's own gap, so the controls inside it are
|
|
9
|
+
* spaced exactly like controls projected one by one. The gap follows
|
|
10
|
+
* `--wr-density-gap`. Give the wrapper a class or a style and its layout is
|
|
11
|
+
* yours: the toolbar sets nothing on it. Put running text in a `<span>` or a
|
|
12
|
+
* `<p>`, which stay in inline flow.
|
|
13
|
+
*
|
|
7
14
|
* @example
|
|
8
15
|
* ```html
|
|
9
16
|
* <wr-toolbar>
|
|
@@ -39,6 +39,10 @@ declare class WrTypography {
|
|
|
39
39
|
/**
|
|
40
40
|
* Color tone. `null` (default) keeps the variant's own color — the base
|
|
41
41
|
* dark for headings/body, medium for lead/caption, primary for links.
|
|
42
|
+
* Emphasis only: a tone never carries a state on its own. Six of the nine
|
|
43
|
+
* intents share one lightness, and `success` against `danger` is 1.05:1 as
|
|
44
|
+
* text, so the words have to name the state (`500 Server Error`, not a red
|
|
45
|
+
* `Request`) — or reach for `<wr-alert>`, which draws a glyph per type.
|
|
42
46
|
*/
|
|
43
47
|
readonly tone: _angular_core.InputSignal<WrTypographyTone | null>;
|
|
44
48
|
/** Horizontal alignment. */
|
package/types/ngwr-version.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ import { InjectionToken } from '@angular/core';
|
|
|
16
16
|
* Distinct from `Version` exported by `@angular/core`, which reports the
|
|
17
17
|
* loaded Angular runtime version (e.g. `'22.0.0'`), not ngwr's.
|
|
18
18
|
*/
|
|
19
|
-
declare const NGWR_VERSION = "14.
|
|
19
|
+
declare const NGWR_VERSION = "14.9.0";
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* @license
|
|
@@ -186,21 +186,37 @@
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
// Tones
|
|
189
|
+
// color-ok: a text ROLE, not a state — body copy. Like every tone it is
|
|
190
|
+
// emphasis only, and the words carry whatever state there is.
|
|
189
191
|
&--tone-dark {
|
|
190
192
|
color: var(--wr-color-on-surface);
|
|
191
193
|
}
|
|
194
|
+
// color-ok: a text ROLE, not a state — muted prose rather than body copy.
|
|
195
|
+
// Like every tone it is emphasis only.
|
|
192
196
|
&--tone-medium {
|
|
193
197
|
color: var(--wr-color-on-surface-muted);
|
|
194
198
|
}
|
|
199
|
+
// color-ok: emphasis only, never the sole carrier of a state — the words
|
|
200
|
+
// carry it, as "500 Server Error" does, because `success` against `danger` is
|
|
201
|
+
// 1.05:1 as text in light.
|
|
195
202
|
&--tone-primary {
|
|
196
203
|
color: var(--wr-color-primary-ink);
|
|
197
204
|
}
|
|
205
|
+
// color-ok: emphasis only, never the sole carrier of a state — the words
|
|
206
|
+
// carry it, as "500 Server Error" does, because `success` against `danger` is
|
|
207
|
+
// 1.05:1 as text in light.
|
|
198
208
|
&--tone-success {
|
|
199
209
|
color: var(--wr-color-success-ink);
|
|
200
210
|
}
|
|
211
|
+
// color-ok: emphasis only, never the sole carrier of a state — the words
|
|
212
|
+
// carry it, as "500 Server Error" does, because `success` against `danger` is
|
|
213
|
+
// 1.05:1 as text in light.
|
|
201
214
|
&--tone-warning {
|
|
202
215
|
color: var(--wr-color-warning-ink);
|
|
203
216
|
}
|
|
217
|
+
// color-ok: emphasis only, never the sole carrier of a state — the words
|
|
218
|
+
// carry it, as "500 Server Error" does, because `success` against `danger` is
|
|
219
|
+
// 1.05:1 as text in light.
|
|
204
220
|
&--tone-danger {
|
|
205
221
|
color: var(--wr-color-danger-ink);
|
|
206
222
|
}
|