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
|
@@ -62,7 +62,9 @@
|
|
|
62
62
|
&__actions {
|
|
63
63
|
display: flex;
|
|
64
64
|
align-items: center;
|
|
65
|
-
|
|
65
|
+
// Density-aware: `touch` widens it so adjacent actions do not crowd a
|
|
66
|
+
// fingertip, `sm` tightens it. `md` resolves to the 8px it always was.
|
|
67
|
+
gap: calc(0.5rem * var(--wr-density-gap, 1));
|
|
66
68
|
flex-wrap: wrap;
|
|
67
69
|
flex: 0 0 auto;
|
|
68
70
|
|
|
@@ -84,6 +86,40 @@
|
|
|
84
86
|
}
|
|
85
87
|
}
|
|
86
88
|
|
|
89
|
+
// The documented actions shape is ONE wrapper around the buttons —
|
|
90
|
+
// `<div wrPageHeaderActions><wr-btn>…</wr-btn><wr-btn>…</wr-btn></div>` — and the
|
|
91
|
+
// `gap` above spaces the region's CHILDREN, which is that wrapper alone, so the
|
|
92
|
+
// buttons inside it met edge to edge (0px, measured in Chromium). A BARE wrapper
|
|
93
|
+
// is laid out the way the region is, taking the region's own gap through
|
|
94
|
+
// `inherit`, so both shapes — one wrapper, or the attribute on each button —
|
|
95
|
+
// space the same and a density change moves them together. What BARE excludes,
|
|
96
|
+
// and why:
|
|
97
|
+
//
|
|
98
|
+
// - A `class` or a `style`. Zero specificity alone does not keep a consumer's
|
|
99
|
+
// layout: ngwr ships unlayered CSS, and unlayered CSS beats every cascade
|
|
100
|
+
// layer whatever its specificity, so a Tailwind v4 `hidden` or `space-x-2` on
|
|
101
|
+
// the wrapper lost to this rule and a hidden wrapper came back. A wrapper with
|
|
102
|
+
// a class or a style is the consumer's, and nothing here touches it — not
|
|
103
|
+
// `display`, not `align-items`, not `flex-wrap`. An EMPTY one still counts as
|
|
104
|
+
// bare, because `class=""` / `style=""` is what a `[class.x]` / `[style.x]`
|
|
105
|
+
// binding leaves behind when it switches off, and the same state must not lay
|
|
106
|
+
// out two ways.
|
|
107
|
+
// - Anything but a `div`. A button projected directly is already a child of the
|
|
108
|
+
// region and spaced by its gap, and must not become a flex container itself.
|
|
109
|
+
// - `[hidden]`. An author rule outranks the user agent's
|
|
110
|
+
// `[hidden] { display: none }` at any specificity.
|
|
111
|
+
//
|
|
112
|
+
// The extra row is deliberately NOT given the same rule: it is where metadata
|
|
113
|
+
// prose lives, and a flex row would turn the words and links of a bare `<div>`
|
|
114
|
+
// into separate items. Tags go in as its children instead, through an
|
|
115
|
+
// `<ng-container wrPageHeaderExtra>`, which the class JSDoc shows.
|
|
116
|
+
:where(.wr-page-header__actions > div:not([hidden], [class]:not([class='']), [style]:not([style='']))) {
|
|
117
|
+
display: flex;
|
|
118
|
+
align-items: center;
|
|
119
|
+
flex-wrap: wrap;
|
|
120
|
+
gap: inherit;
|
|
121
|
+
}
|
|
122
|
+
|
|
87
123
|
// Responsive headers stack the title above the actions when their own box is
|
|
88
124
|
// too narrow to sit them side by side (regardless of viewport).
|
|
89
125
|
@container wr-page-header (max-width: 32rem) {
|
|
@@ -108,11 +108,15 @@
|
|
|
108
108
|
&__size {
|
|
109
109
|
min-width: 0;
|
|
110
110
|
|
|
111
|
-
// The 10rem floor
|
|
112
|
-
//
|
|
113
|
-
//
|
|
114
|
-
|
|
115
|
-
|
|
111
|
+
// The select's 10rem width floor is sized for a standalone field. Here it
|
|
112
|
+
// only ever holds "20 / page", so the pager was reserving 160px for a ~75px
|
|
113
|
+
// label — the single widest thing in the control. Through the hook, since
|
|
114
|
+
// the floor lives on the select's host and a `min-width` on its trigger no
|
|
115
|
+
// longer reaches it — and compounded with `.wr-select`, which declares the
|
|
116
|
+
// default on this same element, so the override does not hang on which
|
|
117
|
+
// stylesheet loads last.
|
|
118
|
+
&.wr-select {
|
|
119
|
+
--wr-select-min-width: 0;
|
|
116
120
|
}
|
|
117
121
|
}
|
|
118
122
|
|
|
@@ -72,6 +72,46 @@
|
|
|
72
72
|
// API, and the arrow is the pane's business rather than the chip's.
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
+
// The chip a chart's hover tooltip renders into (`useChartTooltip()`, used by
|
|
76
|
+
// every chart but `wr-line-chart`, which draws its own). It carries `.wr-tooltip`
|
|
77
|
+
// as well, so everything above is its look and the arrow below is its arrow; this
|
|
78
|
+
// only lays out the inside.
|
|
79
|
+
//
|
|
80
|
+
// The label is told from the value by WEIGHT, not by a muted colour. The chip's
|
|
81
|
+
// colours are the two `--wr-tooltip-*` hooks, and the documented way to invert
|
|
82
|
+
// them makes the chip dark — a muted grey picked against the light surface would
|
|
83
|
+
// be the one thing that did not follow.
|
|
84
|
+
.wr-chart-tooltip {
|
|
85
|
+
display: inline-flex;
|
|
86
|
+
// Its own text's width, up to the tooltip's `max-width`, whatever room the pane has
|
|
87
|
+
// left. The CDK pushes a chip against the viewport edge by its ROUNDED width, which
|
|
88
|
+
// can leave the absolutely positioned pane a fraction of a pixel short, and the chip
|
|
89
|
+
// for the last week of a year then wrapped `Sep 19, 2026: 0` onto a second line at
|
|
90
|
+
// 375px, over two more rows of days.
|
|
91
|
+
flex-shrink: 0;
|
|
92
|
+
width: max-content;
|
|
93
|
+
align-items: center;
|
|
94
|
+
gap: 0.375rem;
|
|
95
|
+
|
|
96
|
+
&__swatch {
|
|
97
|
+
flex: 0 0 auto;
|
|
98
|
+
width: 0.5rem;
|
|
99
|
+
height: 0.5rem;
|
|
100
|
+
border-radius: 50%;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
&__value {
|
|
104
|
+
font-weight: var(--wr-font-weight-semibold);
|
|
105
|
+
font-variant-numeric: tabular-nums;
|
|
106
|
+
|
|
107
|
+
// Alone, with no label or swatch beside it, the value is a whole sentence (a
|
|
108
|
+
// heatmap day's), and a sentence in semibold reads as shouting.
|
|
109
|
+
&:only-child {
|
|
110
|
+
font-weight: inherit;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
75
115
|
// Arrow for both modes.
|
|
76
116
|
//
|
|
77
117
|
// Popover: the pane wraps whatever the author projected, so the panel selector
|
|
@@ -84,18 +124,46 @@
|
|
|
84
124
|
$border: var(--wr-color-outline)
|
|
85
125
|
);
|
|
86
126
|
|
|
87
|
-
// Tooltip: a known child,
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
//
|
|
127
|
+
// Tooltip: a known child, with the chip's border carried onto the arrow's outward
|
|
128
|
+
// faces. Painted from the `--wr-tooltip-border` HOOK rather than the outline token:
|
|
129
|
+
// the square is the chip's own pseudo-element, so a chip retinted per instance
|
|
130
|
+
// retints its arrow with it. Without the faces the chip's outline stopped at the
|
|
131
|
+
// arrow's base and the tip read as a notch cut out of the border. The arrow points
|
|
132
|
+
// AT the trigger and overlaps it, so it is the one inert piece: a hittable arrow
|
|
133
|
+
// would eat clicks meant for the control the tooltip describes.
|
|
92
134
|
@include arrow.anchored-arrow(
|
|
93
135
|
$pane: '.wr-tooltip-overlay',
|
|
94
136
|
$panel: '.wr-tooltip',
|
|
95
137
|
$background: var(--wr-tooltip-bg),
|
|
138
|
+
$border: var(--wr-tooltip-border),
|
|
96
139
|
$inert: true
|
|
97
140
|
);
|
|
98
141
|
|
|
142
|
+
// A chart's chip keeps the edge the placement gives its arrow and moves the arrow
|
|
143
|
+
// ALONG that edge, onto the section it describes. The chip is not always centred on
|
|
144
|
+
// its anchor — `withPush` slides the one for a heatmap's first week along the
|
|
145
|
+
// viewport edge — so `useChartTooltip()` measures where the anchor falls on the chip
|
|
146
|
+
// and writes it to `--wr-chart-tooltip-arrow`, in px from the padding edge. Unset,
|
|
147
|
+
// before anything is measured, it is the middle, where the rule above puts it.
|
|
148
|
+
// After that rule on purpose: same specificity, so source order decides.
|
|
149
|
+
.wr-tooltip-overlay--top,
|
|
150
|
+
.wr-tooltip-overlay--bottom {
|
|
151
|
+
.wr-chart-tooltip::after {
|
|
152
|
+
inset-inline: auto;
|
|
153
|
+
margin-inline: 0;
|
|
154
|
+
// rtl-ok: a length measured from the chip's physical left edge in viewport pixels
|
|
155
|
+
left: calc(var(--wr-chart-tooltip-arrow, 50%) - #{arrow.$half});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.wr-tooltip-overlay--left,
|
|
160
|
+
.wr-tooltip-overlay--right {
|
|
161
|
+
.wr-chart-tooltip::after {
|
|
162
|
+
top: calc(var(--wr-chart-tooltip-arrow, 50%) - #{arrow.$half});
|
|
163
|
+
margin-top: 0;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
99
167
|
@media (prefers-reduced-motion: reduce) {
|
|
100
168
|
.wr-tooltip {
|
|
101
169
|
animation: none;
|
|
@@ -30,6 +30,10 @@
|
|
|
30
30
|
transition: width var(--wr-transition-base);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
// color-ok: the VALUE is the bar's length and its `aria-valuenow`; the intent
|
|
34
|
+
// only tints it. A host that uses `danger` to mean "failed" has to say so in
|
|
35
|
+
// words — the `ariaLabel`, the text beside the bar — because six intents
|
|
36
|
+
// share one lightness and the bar has no second channel for a status.
|
|
33
37
|
@each $name in theme.$colors {
|
|
34
38
|
&--#{$name} {
|
|
35
39
|
--wr-progress-track: rgba(var(--wr-color-#{$name}-rgb), 0.2);
|
package/radio/styles/_index.scss
CHANGED
|
@@ -95,12 +95,15 @@
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
// color-ok: the cue is the glyph arriving — `.wr-radio__icon` goes from
|
|
98
|
-
// `opacity: 0` to `1`
|
|
98
|
+
// `opacity: 0` to `1` in the `--checked` rule below. This fill only backs it,
|
|
99
99
|
// since `--has-icon` turns the default dot off.
|
|
100
100
|
&--has-icon.wr-radio--checked {
|
|
101
101
|
--wr-radio-bg: var(--wr-color-primary);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
// color-ok: the cue is the inner dot arriving — `.wr-radio__dot::after` goes
|
|
105
|
+
// from `scale(0)` to `scale(1)` below, or the icon fades in under
|
|
106
|
+
// `--has-icon`. The ring and dot colours only back it.
|
|
104
107
|
&--checked {
|
|
105
108
|
--wr-radio-border: var(--wr-color-primary);
|
|
106
109
|
--wr-radio-dot: var(--wr-color-primary);
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
"WrDropdown": "ngwr/dropdown",
|
|
80
80
|
"WrDropdownMenu": "ngwr/dropdown",
|
|
81
81
|
"WrDropdownItem": "ngwr/dropdown",
|
|
82
|
+
"WrEditor": "ngwr/editor",
|
|
82
83
|
"WrEmpty": "ngwr/empty",
|
|
83
84
|
"WrEventCalendar": "ngwr/event-calendar",
|
|
84
85
|
"WrCalendarEventTemplate": "ngwr/event-calendar",
|
|
@@ -11,17 +11,49 @@
|
|
|
11
11
|
--wr-select-font-size: var(--wr-control-font-size-md);
|
|
12
12
|
--wr-select-line-height: var(--wr-control-line-height-md);
|
|
13
13
|
// The floor that keeps a bare `<wr-select>` from collapsing to its
|
|
14
|
-
// placeholder.
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
14
|
+
// placeholder. Despite the name it is a DEFAULT width rather than a minimum:
|
|
15
|
+
// an explicit `width`, `width: 100%` in a narrow parent, a `minmax(0, 1fr)`
|
|
16
|
+
// cell and a shrinking flex item all win over it (see `::after` below). Set
|
|
17
|
+
// it to 0 to size a bare select to its content alone. This hook is the only
|
|
18
|
+
// way to lower it: a `min-width` on `.wr-select__trigger`, the override that
|
|
19
|
+
// did it before the hook existed, no longer reaches the floor.
|
|
20
20
|
--wr-select-min-width: 10rem;
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
// One column that shrinks to whatever the layout gives it and, left to size
|
|
23
|
+
// itself, grows to the widest thing in it — the trigger's content or the
|
|
24
|
+
// floor. The floor used to be a `min-width` on the trigger, which no width on
|
|
25
|
+
// the host could beat: `<wr-select size="sm" style="width: 9rem">` drew a
|
|
26
|
+
// 160px trigger in a 144px host and ran 16px into the next control, and in a
|
|
27
|
+
// 200px flex row beside a 120px sibling the select overflowed the row by
|
|
28
|
+
// 88px. `minmax(0, …)` is also what drops the trigger's text from the host's
|
|
29
|
+
// min-content, so the host shrinks as a flex item the way `[wrInput]` and
|
|
30
|
+
// `<wr-date-picker>` already do, and the label truncates instead.
|
|
31
|
+
display: inline-grid;
|
|
32
|
+
grid-template-columns: minmax(0, 1fr);
|
|
33
|
+
// The spacer below lands in a row of its own, and it must be a FIXED 0 rather
|
|
34
|
+
// than an implicit `auto` one: a grid shares height beyond its content among
|
|
35
|
+
// its auto rows, so a host stretched by a taller flex or grid row, or given a
|
|
36
|
+
// `height`, drew a 45px trigger in a 60px host with an empty band beneath it.
|
|
37
|
+
grid-template-rows: auto 0;
|
|
23
38
|
vertical-align: middle;
|
|
24
39
|
|
|
40
|
+
// The floor as a zero-height spacer in the same column. A grid track's
|
|
41
|
+
// max-content is its widest item, so a host sized to its content is at least
|
|
42
|
+
// `--wr-select-min-width` wide; `max-width: 100%` is ignored while that size
|
|
43
|
+
// is being worked out and applies once the column exists, so a narrower host
|
|
44
|
+
// caps the spacer instead of the spacer stretching the host. `flex: 0 0 0`
|
|
45
|
+
// keeps it from taking room beside the trigger if a consumer turns the host
|
|
46
|
+
// into a flex container (the floor is then inert, never in the way).
|
|
47
|
+
// The template renders exactly one element into the host — the trigger — so
|
|
48
|
+
// this is the column's only other item, and the zero row is the spacer's.
|
|
49
|
+
&::after {
|
|
50
|
+
content: '';
|
|
51
|
+
flex: 0 0 0;
|
|
52
|
+
width: var(--wr-select-min-width);
|
|
53
|
+
max-width: 100%;
|
|
54
|
+
height: 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
25
57
|
// Sizes — share the `--wr-control-*` contract (22 / 30 / 36 px). Multi/tag
|
|
26
58
|
// min-height and the search/tag inputs all read these vars, so every mode
|
|
27
59
|
// tracks the size. Declared before `--rounded` so the pill modifier wins.
|
|
@@ -73,7 +105,10 @@
|
|
|
73
105
|
align-items: center;
|
|
74
106
|
gap: 0.5rem;
|
|
75
107
|
width: 100%;
|
|
76
|
-
|
|
108
|
+
// Not the floor — that lives on the host, where a width can beat it. Zero
|
|
109
|
+
// lets the trigger follow the host down and the value / placeholder
|
|
110
|
+
// ellipsis take the difference.
|
|
111
|
+
min-width: 0;
|
|
77
112
|
appearance: none;
|
|
78
113
|
background: var(--wr-select-bg);
|
|
79
114
|
color: var(--wr-select-color);
|
|
@@ -117,7 +152,7 @@
|
|
|
117
152
|
}
|
|
118
153
|
|
|
119
154
|
&__placeholder {
|
|
120
|
-
color: var(--wr-color-
|
|
155
|
+
color: var(--wr-color-placeholder);
|
|
121
156
|
}
|
|
122
157
|
|
|
123
158
|
// The selected option's leading visual on a single-mode button trigger. Never
|
|
@@ -208,7 +243,7 @@
|
|
|
208
243
|
line-height: var(--wr-select-line-height);
|
|
209
244
|
|
|
210
245
|
&::placeholder {
|
|
211
|
-
color: var(--wr-color-
|
|
246
|
+
color: var(--wr-color-placeholder);
|
|
212
247
|
}
|
|
213
248
|
|
|
214
249
|
&:disabled {
|
|
@@ -228,7 +263,11 @@
|
|
|
228
263
|
|
|
229
264
|
&__tag-input {
|
|
230
265
|
flex: 1 0 6rem;
|
|
231
|
-
|
|
266
|
+
// Both capped by the chip row, which can now be as narrow as the host: with
|
|
267
|
+
// no 10rem trigger floor underneath, a bare 4rem minimum and an unshrinkable
|
|
268
|
+
// 6rem basis ran the field 9px past the border of a 100px tag select.
|
|
269
|
+
min-width: min(4rem, 100%);
|
|
270
|
+
max-width: 100%;
|
|
232
271
|
border: 0;
|
|
233
272
|
outline: 0;
|
|
234
273
|
padding: 0.125rem 0.25rem;
|
|
@@ -239,7 +278,7 @@
|
|
|
239
278
|
line-height: var(--wr-select-line-height);
|
|
240
279
|
|
|
241
280
|
&::placeholder {
|
|
242
|
-
color: var(--wr-color-
|
|
281
|
+
color: var(--wr-color-placeholder);
|
|
243
282
|
}
|
|
244
283
|
|
|
245
284
|
// At `maxItems` the input goes READONLY rather than disabled — it is the
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
@use '../../theme/styles' as theme;
|
|
2
2
|
|
|
3
3
|
.wr-sidebar {
|
|
4
|
+
// The outer inset, what `--wr-dropdown-padding` is to a menu. Every row paints
|
|
5
|
+
// its hover and active tint across the host's full width, and at 0 that tint
|
|
6
|
+
// met whatever frames the nav: the bordered card of a demo, the border of a
|
|
7
|
+
// `wr-layout-sider`, which pads nothing either. 8px on every side keeps each
|
|
8
|
+
// tint, nested rows included, off the frame in both directions, and leaves an
|
|
9
|
+
// outset focus ring room inside a sider that clips (`overflow: hidden`). Where
|
|
10
|
+
// the container already provides the inset, set it to 0 on `.wr-sidebar`, not
|
|
11
|
+
// on the container: this declaration shadows anything inherited.
|
|
12
|
+
--wr-sidebar-padding: 0.5rem;
|
|
13
|
+
|
|
4
14
|
display: block;
|
|
15
|
+
padding: var(--wr-sidebar-padding);
|
|
5
16
|
font-family: var(--wr-font-family-base);
|
|
6
17
|
color: var(--wr-color-on-surface);
|
|
7
18
|
|
|
@@ -41,6 +52,11 @@
|
|
|
41
52
|
}
|
|
42
53
|
}
|
|
43
54
|
|
|
55
|
+
// color-ok: the resting entry paints no background, so the active one
|
|
56
|
+
// differs in LIGHTNESS as well as hue — a filled tint, 1.17:1 light and
|
|
57
|
+
// 1.12:1 dark against the surface under it, measured in the built showcase.
|
|
58
|
+
// Weak, and it is the whole cue: a top-level entry has no rail for the bar a
|
|
59
|
+
// nested `__item` draws, and `pointer-events: none` paints nothing.
|
|
44
60
|
&--active {
|
|
45
61
|
color: var(--wr-color-primary-ink);
|
|
46
62
|
background: var(--wr-color-primary-soft);
|
|
@@ -83,6 +99,13 @@
|
|
|
83
99
|
border: 0;
|
|
84
100
|
border-radius: var(--wr-border-radius-sm);
|
|
85
101
|
color: var(--wr-color-on-surface);
|
|
102
|
+
// A `<button>` inherits no type. The UA's 13.33px and `line-height: normal`
|
|
103
|
+
// made this row 33px under the 36px link beside it, and shrank the icon and
|
|
104
|
+
// the chevron, which size from `em` — so the same type as `__entry`.
|
|
105
|
+
font: inherit;
|
|
106
|
+
font-size: var(--wr-text-sm);
|
|
107
|
+
font-weight: var(--wr-font-weight-semibold);
|
|
108
|
+
line-height: 1.25rem;
|
|
86
109
|
cursor: pointer;
|
|
87
110
|
text-align: start;
|
|
88
111
|
transition: background var(--wr-transition-base);
|
|
@@ -152,12 +175,22 @@
|
|
|
152
175
|
border-inline-start: 1px solid var(--wr-color-outline);
|
|
153
176
|
}
|
|
154
177
|
|
|
178
|
+
// The list's 6px bottom margin spaces an open group from the row after it. On
|
|
179
|
+
// the LAST group there is no such row, and the margin stacked onto the host's
|
|
180
|
+
// inset: 14px under the final nested row against 8px above the first row.
|
|
181
|
+
&__group:last-child &__list {
|
|
182
|
+
margin-block-end: 0;
|
|
183
|
+
}
|
|
184
|
+
|
|
155
185
|
&__item {
|
|
156
186
|
position: relative;
|
|
157
187
|
display: flex;
|
|
158
188
|
align-items: center;
|
|
159
189
|
gap: 0.5rem;
|
|
160
|
-
|
|
190
|
+
// 6px around the 20px line: a 32px row, the geometry of a dropdown item. At
|
|
191
|
+
// 5px the hover and active tint sat closer to the text than anywhere else in
|
|
192
|
+
// the nav, and a badge row came out 2px taller than its neighbours.
|
|
193
|
+
padding: 0.375rem 0.75rem;
|
|
161
194
|
border-radius: var(--wr-border-radius-sm);
|
|
162
195
|
color: var(--wr-color-on-surface);
|
|
163
196
|
font-size: var(--wr-text-sm);
|
|
@@ -193,6 +226,11 @@
|
|
|
193
226
|
}
|
|
194
227
|
}
|
|
195
228
|
|
|
229
|
+
// color-ok: the `::before` above is transparent on every other row, so this
|
|
230
|
+
// draws a 2px bar over the group's 1px rail beside the active row — a width
|
|
231
|
+
// the rail does not have, and 4.89:1 light / 4.07:1 dark against the
|
|
232
|
+
// surface. Under `prefers-contrast: more` the rail deepens to within 1.41:1
|
|
233
|
+
// of the bar in light and 1.14:1 in dark, and the width is what is left.
|
|
196
234
|
&--active {
|
|
197
235
|
color: var(--wr-color-primary-ink);
|
|
198
236
|
background: var(--wr-color-primary-soft);
|
|
@@ -223,7 +261,10 @@
|
|
|
223
261
|
|
|
224
262
|
&__badge {
|
|
225
263
|
flex: 0 0 auto;
|
|
226
|
-
|
|
264
|
+
// 16px line plus 2px either side is the row's own 20px line box, so a badge
|
|
265
|
+
// never makes its row taller: it inherited the row's 20px line and came out
|
|
266
|
+
// 22px, which grew `__entry` from 36px to 38px and `__item` by the same 2px.
|
|
267
|
+
padding: 0.125rem 0.375rem;
|
|
227
268
|
// The row's corner, not a pill: the badge sits inside `__entry` / `__item`,
|
|
228
269
|
// which both read `--wr-border-radius-sm`, and a stadium nested in a 6px row
|
|
229
270
|
// reads as a foreign shape rather than a part of it.
|
|
@@ -232,6 +273,7 @@
|
|
|
232
273
|
color: var(--wr-color-on-surface-muted);
|
|
233
274
|
font-size: var(--wr-text-xs);
|
|
234
275
|
font-weight: var(--wr-font-weight-semibold);
|
|
276
|
+
line-height: 1rem;
|
|
235
277
|
text-transform: uppercase;
|
|
236
278
|
letter-spacing: var(--wr-tracking-wide);
|
|
237
279
|
}
|
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
// Tint strength: 12.5% reads as "nothing" on a white card — the
|
|
31
31
|
// placeholder has to be obviously present, so the base sits at 50%
|
|
32
32
|
// with the shimmer band sweeping visibly above it.
|
|
33
|
+
// color-ok: decoration — a skeleton is a placeholder, announced through
|
|
34
|
+
// `aria-busy`, and its default is the neutral `light`; an intent only matches
|
|
35
|
+
// it to the content about to load.
|
|
33
36
|
@each $name in theme.$colors {
|
|
34
37
|
&--#{$name} {
|
|
35
38
|
background: rgba(var(--wr-color-#{$name}-rgb), 0.5);
|
package/skills/ngwr/SKILL.md
CHANGED
|
@@ -5,7 +5,7 @@ description: Build Angular UIs with the ngwr component library (standalone, sign
|
|
|
5
5
|
|
|
6
6
|
# ngwr
|
|
7
7
|
|
|
8
|
-
An Angular 22 UI library:
|
|
8
|
+
An Angular 22 UI library: 229 tree-shakable entry points, 114 of them shipping a selector.
|
|
9
9
|
Standalone, signals-first, zoneless, `ViewEncapsulation.None`. One runtime
|
|
10
10
|
dependency (`tslib`).
|
|
11
11
|
|
|
@@ -20,8 +20,8 @@ reaching for:
|
|
|
20
20
|
export per entry point.
|
|
21
21
|
3. Any docs page as markdown: append `.md` to the URL, e.g.
|
|
22
22
|
`https://ngwr.dev/reference/components/select.md`.
|
|
23
|
-
4. `npx ngwr-mcp` — the bundled MCP server, when the agent speaks
|
|
24
|
-
`search_ngwr`, `get_ngwr_component`, `get_ngwr_api`, `get_ngwr_setup`.
|
|
23
|
+
4. `npx -y -p ngwr ngwr-mcp` — the bundled MCP server, when the agent speaks
|
|
24
|
+
MCP: `search_ngwr`, `get_ngwr_component`, `get_ngwr_api`, `get_ngwr_setup`.
|
|
25
25
|
|
|
26
26
|
Exact input / output signatures are in the shipped `.d.ts` files. Do not invent
|
|
27
27
|
an input name; read one.
|
|
@@ -89,8 +89,8 @@ Each of these compiles fine and then does nothing, with no error naming the
|
|
|
89
89
|
cause.
|
|
90
90
|
|
|
91
91
|
- `provideWrOverlay() // from 'ngwr/overlay'`
|
|
92
|
-
—
|
|
93
|
-
— needed by: `WrDialog`, `WrDrawer`, `WrToast`, `WrPopover`, `WrPopconfirm`, `WrContextMenu`, `WrSelect`, `WrDropdown`, `WrCommandPalette`, `WrCascader`, `WrMention`, `WrDatePicker`, `WrTour`, `WrLightbox`
|
|
92
|
+
— gives ngwr overlays their own container, so they never collide with other CDK overlays
|
|
93
|
+
— needed by: `WrDialog`, `WrDrawer`, `WrToast`, `WrPopover`, `WrPopconfirm`, `WrContextMenu`, `WrSelect`, `WrDropdown`, `WrCommandPalette`, `WrCascader`, `WrMention`, `WrDatePicker`, `WrTour`, `WrLightbox`, `WrEditor`
|
|
94
94
|
- `provideWrIcons(lucideIcons({ … })) // from 'ngwr/icon' + 'ngwr/icon/adapters/lucide'`
|
|
95
95
|
— icons resolve by name from a registry you populate
|
|
96
96
|
— needed by: `WrIcon`
|
|
@@ -72,6 +72,8 @@ root barrel for components.
|
|
|
72
72
|
| `ngwr/drawer/testing` | `import { WrDrawerHarness } from 'ngwr/drawer/testing'` | — |
|
|
73
73
|
| `ngwr/dropdown` | `import { WrDropdown } from 'ngwr/dropdown'` | `wr-dropdown-item` `wr-dropdown-menu` `[wrDropdown]` |
|
|
74
74
|
| `ngwr/dropdown/testing` | `import { WrDropdownHarness } from 'ngwr/dropdown/testing'` | — |
|
|
75
|
+
| `ngwr/editor` | `import { WrEditor } from 'ngwr/editor'` | `wr-editor` |
|
|
76
|
+
| `ngwr/editor/testing` | `import { WrEditorHarness } from 'ngwr/editor/testing'` | — |
|
|
75
77
|
| `ngwr/empty` | `import { WrEmpty } from 'ngwr/empty'` | `wr-empty` |
|
|
76
78
|
| `ngwr/event-calendar` | `import { WrEventCalendar } from 'ngwr/event-calendar'` | `ng-template[wrCalendarEvent]` `wr-event-calendar` |
|
|
77
79
|
| `ngwr/event-calendar/testing` | `import { WrEventCalendarChipHarness } from 'ngwr/event-calendar/testing'` | — |
|
|
@@ -46,7 +46,7 @@ points that ship no stylesheet (the `/testing` harnesses, `ngwr/utils`) have no
|
|
|
46
46
|
|
|
47
47
|
### `provideWrOverlay() // from 'ngwr/overlay'`
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
Gives ngwr overlays their own container, so they never collide with other CDK overlays. Needed by `WrDialog`, `WrDrawer`, `WrToast`, `WrPopover`, `WrPopconfirm`, `WrContextMenu`, `WrSelect`, `WrDropdown`, `WrCommandPalette`, `WrCascader`, `WrMention`, `WrDatePicker`, `WrTour`, `WrLightbox`, `WrEditor`.
|
|
50
50
|
|
|
51
51
|
### `provideWrIcons(lucideIcons({ … })) // from 'ngwr/icon' + 'ngwr/icon/adapters/lucide'`
|
|
52
52
|
|
|
@@ -69,9 +69,9 @@ The pipe and directive read from a catalog you provide. Register ngwr's with `pr
|
|
|
69
69
|
- `provideWrConfig({ button: { size: 'sm' } })` — component defaults. A bound
|
|
70
70
|
value always wins, including a bound `false` over a configured `true`.
|
|
71
71
|
- `provideWrDensity({ defaultDensity: 'sm' })` — one control size for the whole
|
|
72
|
-
app; `'sm' | 'md' | 'lg' | 'touch'`. It scales the paddings of the
|
|
72
|
+
app; `'sm' | 'md' | 'lg' | 'touch'`. It scales the paddings of the ten
|
|
73
73
|
stylesheets that read the multipliers — button, input, textarea, select,
|
|
74
|
-
cascader, tree, list, table, badge/tag — so `touch` grows those together. A
|
|
74
|
+
cascader, tree, list, table, badge/tag, editor — so `touch` grows those together. A
|
|
75
75
|
control with fixed geometry (checkbox, switch, radio, slider, rating,
|
|
76
76
|
segmented) does not move; its ≥44px target comes from the `touch-target` mixin
|
|
77
77
|
under `@media (pointer: coarse)` instead.
|
|
@@ -1,9 +1,28 @@
|
|
|
1
|
+
@use '../../popover/styles'; // the `.wr-tooltip` chip the hover tooltip renders into
|
|
2
|
+
|
|
1
3
|
.wr-sparkline {
|
|
2
4
|
display: inline-block;
|
|
5
|
+
// The hover marker is placed in percentages of this box, which is the drawing's.
|
|
6
|
+
position: relative;
|
|
3
7
|
line-height: 0;
|
|
4
8
|
|
|
5
9
|
svg {
|
|
6
10
|
display: block;
|
|
7
11
|
overflow: visible;
|
|
8
12
|
}
|
|
13
|
+
|
|
14
|
+
// The point the hover tooltip is reading. Placed by the component in SVG
|
|
15
|
+
// coordinates, which do not flip with `direction`, and never hittable: it sits
|
|
16
|
+
// under the pointer, and taking the `mousemove` would lose the line.
|
|
17
|
+
&__marker {
|
|
18
|
+
position: absolute;
|
|
19
|
+
width: 0.5rem;
|
|
20
|
+
height: 0.5rem;
|
|
21
|
+
border: 2px solid var(--wr-color-surface);
|
|
22
|
+
border-radius: 50%;
|
|
23
|
+
box-sizing: content-box;
|
|
24
|
+
// rtl-ok: SVG coordinates, see above
|
|
25
|
+
transform: translate(-50%, -50%);
|
|
26
|
+
pointer-events: none;
|
|
27
|
+
}
|
|
9
28
|
}
|
package/styles.scss
CHANGED
package/table/styles/_index.scss
CHANGED
|
@@ -900,6 +900,13 @@
|
|
|
900
900
|
color: var(--wr-color-on-surface);
|
|
901
901
|
font: inherit;
|
|
902
902
|
font-size: var(--wr-text-sm);
|
|
903
|
+
|
|
904
|
+
// Written, where it used to be left to the browser: Chromium's own #757575
|
|
905
|
+
// is one grey for both themes, 4.60:1 on white and 4.08:1 on the dark
|
|
906
|
+
// canvas, and it was the one placeholder in the catalog no token reached.
|
|
907
|
+
&::placeholder {
|
|
908
|
+
color: var(--wr-color-placeholder);
|
|
909
|
+
}
|
|
903
910
|
}
|
|
904
911
|
|
|
905
912
|
&__list {
|
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
// Defaults
|
|
8
8
|
--wr-textarea-color: var(--wr-color-on-surface);
|
|
9
|
-
|
|
9
|
+
// The placeholder role — the same 0.7 alpha `[wrInput]` carried, at the same
|
|
10
|
+
// 2.91:1, until both moved onto the theme's one placeholder token.
|
|
11
|
+
--wr-textarea-placeholder: var(--wr-color-placeholder);
|
|
10
12
|
--wr-textarea-bg: var(--wr-color-surface);
|
|
11
13
|
--wr-textarea-border: var(--wr-color-outline);
|
|
12
14
|
--wr-textarea-radius: var(--wr-control-radius-md);
|
|
@@ -107,7 +109,10 @@
|
|
|
107
109
|
// in light. A resize grip is an interactive affordance, so WCAG 1.4.11 asks
|
|
108
110
|
// 3:1 of it — the faint tier is documented as "decorative by design", and
|
|
109
111
|
// this is not decorative. The full-strength role is 5.35:1 light and 7.64:1
|
|
110
|
-
// dark.
|
|
112
|
+
// dark (8.16 / 8.30 under `prefers-contrast: more`), and the surface is the
|
|
113
|
+
// only ground it is drawn on: `--disabled` is the one state that repaints the
|
|
114
|
+
// field, and `showHandle()` hides the grip there. No gate reports this: axe
|
|
115
|
+
// ships no non-text-contrast rule.
|
|
111
116
|
color: var(--wr-color-on-surface-muted);
|
|
112
117
|
touch-action: none;
|
|
113
118
|
transition: color var(--wr-transition-base);
|
|
@@ -134,8 +139,12 @@
|
|
|
134
139
|
height: 0.875rem;
|
|
135
140
|
}
|
|
136
141
|
|
|
142
|
+
// One step up from rest. This repeated the rest colour from the day the rest
|
|
143
|
+
// moved off the faint tier, so hovering the grip changed nothing on screen;
|
|
144
|
+
// `-on-surface` is the next role up, 17.85:1 light and 15.73:1 dark against
|
|
145
|
+
// the 5.35 and 7.64 at rest.
|
|
137
146
|
&:hover {
|
|
138
|
-
color: var(--wr-color-on-surface
|
|
147
|
+
color: var(--wr-color-on-surface);
|
|
139
148
|
}
|
|
140
149
|
}
|
|
141
150
|
}
|