ngwr 10.2.0 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -19
- package/anchor/styles/_index.scss +4 -4
- package/back-top/styles/_index.scss +6 -1
- package/blur-text/styles/_index.scss +13 -0
- package/button/styles/_index.scss +11 -6
- package/carousel/styles/_index.scss +13 -2
- package/cascader/styles/_index.scss +2 -2
- package/circular-text/styles/_index.scss +2 -0
- package/collapse/styles/_index.scss +1 -1
- package/color-picker/styles/_index.scss +6 -1
- package/compare/styles/_index.scss +1 -2
- package/context-menu/styles/_index.scss +6 -1
- package/descriptions/styles/_index.scss +2 -2
- package/dialog/styles/_index.scss +38 -0
- package/drawer/styles/_index.scss +20 -1
- package/dropdown/styles/_index.scss +19 -5
- package/empty/styles/_index.scss +10 -0
- package/fesm2022/ngwr-action-sheet.mjs +15 -5
- package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
- package/fesm2022/ngwr-affix.mjs +43 -16
- package/fesm2022/ngwr-affix.mjs.map +1 -1
- package/fesm2022/ngwr-alert.mjs +3 -3
- package/fesm2022/ngwr-anchor.mjs +20 -8
- package/fesm2022/ngwr-anchor.mjs.map +1 -1
- package/fesm2022/ngwr-aurora.mjs +4 -4
- package/fesm2022/ngwr-aurora.mjs.map +1 -1
- package/fesm2022/ngwr-avatar.mjs +33 -9
- package/fesm2022/ngwr-avatar.mjs.map +1 -1
- package/fesm2022/ngwr-back-top.mjs +8 -4
- package/fesm2022/ngwr-back-top.mjs.map +1 -1
- package/fesm2022/ngwr-badge.mjs +6 -6
- package/fesm2022/ngwr-badge.mjs.map +1 -1
- package/fesm2022/ngwr-bar-chart.mjs +32 -11
- package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
- package/fesm2022/ngwr-blur-text.mjs +4 -4
- package/fesm2022/ngwr-blur-text.mjs.map +1 -1
- package/fesm2022/ngwr-border-glow.mjs +4 -4
- package/fesm2022/ngwr-border-glow.mjs.map +1 -1
- package/fesm2022/ngwr-breadcrumbs.mjs +9 -8
- package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngwr-burger.mjs +11 -6
- package/fesm2022/ngwr-burger.mjs.map +1 -1
- package/fesm2022/ngwr-button-testing.mjs +96 -0
- package/fesm2022/ngwr-button-testing.mjs.map +1 -0
- package/fesm2022/ngwr-button.mjs +89 -24
- package/fesm2022/ngwr-button.mjs.map +1 -1
- package/fesm2022/ngwr-calendar-heatmap.mjs +42 -10
- package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
- package/fesm2022/ngwr-calendar.mjs +108 -9
- package/fesm2022/ngwr-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-card.mjs +10 -10
- package/fesm2022/ngwr-card.mjs.map +1 -1
- package/fesm2022/ngwr-carousel-testing.mjs +377 -0
- package/fesm2022/ngwr-carousel-testing.mjs.map +1 -0
- package/fesm2022/ngwr-carousel.mjs +72 -18
- package/fesm2022/ngwr-carousel.mjs.map +1 -1
- package/fesm2022/ngwr-cascader-testing.mjs +534 -0
- package/fesm2022/ngwr-cascader-testing.mjs.map +1 -0
- package/fesm2022/ngwr-cascader.mjs +4 -4
- package/fesm2022/ngwr-cascader.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox-testing.mjs +90 -0
- package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -0
- package/fesm2022/ngwr-checkbox.mjs +15 -9
- package/fesm2022/ngwr-checkbox.mjs.map +1 -1
- package/fesm2022/ngwr-circular-text.mjs +4 -4
- package/fesm2022/ngwr-circular-text.mjs.map +1 -1
- package/fesm2022/ngwr-click-spark.mjs +4 -4
- package/fesm2022/ngwr-click-spark.mjs.map +1 -1
- package/fesm2022/ngwr-clipboard.mjs +18 -4
- package/fesm2022/ngwr-clipboard.mjs.map +1 -1
- package/fesm2022/ngwr-collapse-testing.mjs +368 -0
- package/fesm2022/ngwr-collapse-testing.mjs.map +1 -0
- package/fesm2022/ngwr-collapse.mjs +9 -9
- package/fesm2022/ngwr-color-picker.mjs +139 -19
- package/fesm2022/ngwr-color-picker.mjs.map +1 -1
- package/fesm2022/ngwr-command-palette-testing.mjs +589 -0
- package/fesm2022/ngwr-command-palette-testing.mjs.map +1 -0
- package/fesm2022/ngwr-command-palette.mjs +60 -10
- package/fesm2022/ngwr-command-palette.mjs.map +1 -1
- package/fesm2022/ngwr-compare.mjs +105 -15
- package/fesm2022/ngwr-compare.mjs.map +1 -1
- package/fesm2022/ngwr-confetti.mjs +3 -3
- package/fesm2022/ngwr-config.mjs +106 -0
- package/fesm2022/ngwr-config.mjs.map +1 -0
- package/fesm2022/ngwr-context-menu-testing.mjs +631 -0
- package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -0
- package/fesm2022/ngwr-context-menu.mjs +104 -18
- package/fesm2022/ngwr-context-menu.mjs.map +1 -1
- package/fesm2022/ngwr-cookie.mjs +8 -4
- package/fesm2022/ngwr-cookie.mjs.map +1 -1
- package/fesm2022/ngwr-counter.mjs +17 -9
- package/fesm2022/ngwr-counter.mjs.map +1 -1
- package/fesm2022/ngwr-date-adapter-fns.mjs +3 -3
- package/fesm2022/ngwr-date-adapter-luxon.mjs +55 -7
- package/fesm2022/ngwr-date-adapter-luxon.mjs.map +1 -1
- package/fesm2022/ngwr-date-adapter.mjs +57 -11
- package/fesm2022/ngwr-date-adapter.mjs.map +1 -1
- package/fesm2022/ngwr-date-picker-testing.mjs +766 -0
- package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -0
- package/fesm2022/ngwr-date-picker.mjs +409 -57
- package/fesm2022/ngwr-date-picker.mjs.map +1 -1
- package/fesm2022/ngwr-decrypt-text.mjs +30 -12
- package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
- package/fesm2022/ngwr-density.mjs +6 -6
- package/fesm2022/ngwr-descriptions.mjs +6 -6
- package/fesm2022/ngwr-dialog-testing.mjs +89 -0
- package/fesm2022/ngwr-dialog-testing.mjs.map +1 -0
- package/fesm2022/ngwr-dialog.mjs +33 -17
- package/fesm2022/ngwr-dialog.mjs.map +1 -1
- package/fesm2022/ngwr-directives.mjs +48 -24
- package/fesm2022/ngwr-directives.mjs.map +1 -1
- package/fesm2022/ngwr-divider.mjs +3 -3
- package/fesm2022/ngwr-donut-chart.mjs +24 -7
- package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
- package/fesm2022/ngwr-drag-drop.mjs +7 -7
- package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
- package/fesm2022/ngwr-drawer-testing.mjs +250 -0
- package/fesm2022/ngwr-drawer-testing.mjs.map +1 -0
- package/fesm2022/ngwr-drawer.mjs +37 -19
- package/fesm2022/ngwr-drawer.mjs.map +1 -1
- package/fesm2022/ngwr-dropdown-testing.mjs +291 -0
- package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -0
- package/fesm2022/ngwr-dropdown.mjs +19 -11
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-empty.mjs +26 -9
- package/fesm2022/ngwr-empty.mjs.map +1 -1
- package/fesm2022/ngwr-event-calendar.mjs +62 -15
- package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-falling-text.mjs +4 -4
- package/fesm2022/ngwr-falling-text.mjs.map +1 -1
- package/fesm2022/ngwr-file-upload-testing.mjs +332 -0
- package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -0
- package/fesm2022/ngwr-file-upload.mjs +3 -3
- package/fesm2022/ngwr-form-testing.mjs +451 -0
- package/fesm2022/ngwr-form-testing.mjs.map +1 -0
- package/fesm2022/ngwr-form.mjs +28 -12
- package/fesm2022/ngwr-form.mjs.map +1 -1
- package/fesm2022/ngwr-fuzzy-text.mjs +11 -4
- package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
- package/fesm2022/ngwr-gauge.mjs +21 -7
- package/fesm2022/ngwr-gauge.mjs.map +1 -1
- package/fesm2022/ngwr-glitch-text.mjs +4 -4
- package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
- package/fesm2022/ngwr-gradient-text.mjs +4 -4
- package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
- package/fesm2022/ngwr-hotkey.mjs +31 -10
- package/fesm2022/ngwr-hotkey.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-en.mjs +61 -0
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ru.mjs +59 -0
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
- package/fesm2022/ngwr-i18n.mjs +9 -9
- package/fesm2022/ngwr-icon.mjs +6 -6
- package/fesm2022/ngwr-image-cropper.mjs +26 -3
- package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
- package/fesm2022/ngwr-input-number-testing.mjs +306 -0
- package/fesm2022/ngwr-input-number-testing.mjs.map +1 -0
- package/fesm2022/ngwr-input-number.mjs +37 -5
- package/fesm2022/ngwr-input-number.mjs.map +1 -1
- package/fesm2022/ngwr-input-otp-testing.mjs +419 -0
- package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -0
- package/fesm2022/ngwr-input-otp.mjs +39 -8
- package/fesm2022/ngwr-input-otp.mjs.map +1 -1
- package/fesm2022/ngwr-input-testing.mjs +102 -0
- package/fesm2022/ngwr-input-testing.mjs.map +1 -0
- package/fesm2022/ngwr-input.mjs +62 -25
- package/fesm2022/ngwr-input.mjs.map +1 -1
- package/fesm2022/ngwr-keyboard.mjs +3 -3
- package/fesm2022/ngwr-knob.mjs +46 -10
- package/fesm2022/ngwr-knob.mjs.map +1 -1
- package/fesm2022/ngwr-layout.mjs +36 -20
- package/fesm2022/ngwr-layout.mjs.map +1 -1
- package/fesm2022/ngwr-lightbox.mjs +35 -8
- package/fesm2022/ngwr-lightbox.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart.mjs +19 -6
- package/fesm2022/ngwr-line-chart.mjs.map +1 -1
- package/fesm2022/ngwr-list.mjs +14 -9
- package/fesm2022/ngwr-list.mjs.map +1 -1
- package/fesm2022/ngwr-loading-bar.mjs +71 -31
- package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
- package/fesm2022/ngwr-markdown-testing.mjs +516 -0
- package/fesm2022/ngwr-markdown-testing.mjs.map +1 -0
- package/fesm2022/ngwr-markdown.mjs +1492 -0
- package/fesm2022/ngwr-markdown.mjs.map +1 -0
- package/fesm2022/ngwr-marquee.mjs +19 -8
- package/fesm2022/ngwr-marquee.mjs.map +1 -1
- package/fesm2022/ngwr-media.mjs +3 -3
- package/fesm2022/ngwr-mention-testing.mjs +513 -0
- package/fesm2022/ngwr-mention-testing.mjs.map +1 -0
- package/fesm2022/ngwr-mention.mjs +16 -7
- package/fesm2022/ngwr-mention.mjs.map +1 -1
- package/fesm2022/ngwr-meta.mjs +28 -13
- package/fesm2022/ngwr-meta.mjs.map +1 -1
- package/fesm2022/ngwr-meter-group.mjs +22 -8
- package/fesm2022/ngwr-meter-group.mjs.map +1 -1
- package/fesm2022/ngwr-overlay.mjs +57 -8
- package/fesm2022/ngwr-overlay.mjs.map +1 -1
- package/fesm2022/ngwr-page-header.mjs +3 -3
- package/fesm2022/ngwr-pagination-testing.mjs +389 -0
- package/fesm2022/ngwr-pagination-testing.mjs.map +1 -0
- package/fesm2022/ngwr-pagination.mjs +27 -11
- package/fesm2022/ngwr-pagination.mjs.map +1 -1
- package/fesm2022/ngwr-pipes.mjs +21 -21
- package/fesm2022/ngwr-platform.mjs +9 -9
- package/fesm2022/ngwr-popconfirm-testing.mjs +309 -0
- package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -0
- package/fesm2022/ngwr-popconfirm.mjs +99 -21
- package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
- package/fesm2022/ngwr-popover-testing.mjs +316 -0
- package/fesm2022/ngwr-popover-testing.mjs.map +1 -0
- package/fesm2022/ngwr-popover.mjs +48 -10
- package/fesm2022/ngwr-popover.mjs.map +1 -1
- package/fesm2022/ngwr-progress.mjs +3 -3
- package/fesm2022/ngwr-pull-to-refresh.mjs +19 -4
- package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -1
- package/fesm2022/ngwr-qr.mjs +15 -5
- package/fesm2022/ngwr-qr.mjs.map +1 -1
- package/fesm2022/ngwr-radio-testing.mjs +392 -0
- package/fesm2022/ngwr-radio-testing.mjs.map +1 -0
- package/fesm2022/ngwr-radio.mjs +16 -9
- package/fesm2022/ngwr-radio.mjs.map +1 -1
- package/fesm2022/ngwr-rating-testing.mjs +384 -0
- package/fesm2022/ngwr-rating-testing.mjs.map +1 -0
- package/fesm2022/ngwr-rating.mjs +40 -5
- package/fesm2022/ngwr-rating.mjs.map +1 -1
- package/fesm2022/ngwr-result.mjs +12 -12
- package/fesm2022/ngwr-rotating-text.mjs +3 -3
- package/fesm2022/ngwr-scroll.mjs +3 -3
- package/fesm2022/ngwr-segmented-testing.mjs +512 -0
- package/fesm2022/ngwr-segmented-testing.mjs.map +1 -0
- package/fesm2022/ngwr-segmented.mjs +3 -3
- package/fesm2022/ngwr-select-testing.mjs +268 -0
- package/fesm2022/ngwr-select-testing.mjs.map +1 -0
- package/fesm2022/ngwr-select.mjs +96 -25
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-shiny-text.mjs +7 -7
- package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
- package/fesm2022/ngwr-sidebar.mjs +67 -14
- package/fesm2022/ngwr-sidebar.mjs.map +1 -1
- package/fesm2022/ngwr-skeleton.mjs +3 -3
- package/fesm2022/ngwr-slider-testing.mjs +478 -0
- package/fesm2022/ngwr-slider-testing.mjs.map +1 -0
- package/fesm2022/ngwr-slider.mjs +59 -15
- package/fesm2022/ngwr-slider.mjs.map +1 -1
- package/fesm2022/ngwr-sparkline.mjs +28 -8
- package/fesm2022/ngwr-sparkline.mjs.map +1 -1
- package/fesm2022/ngwr-speed-dial.mjs +39 -6
- package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
- package/fesm2022/ngwr-spinner.mjs +14 -5
- package/fesm2022/ngwr-spinner.mjs.map +1 -1
- package/fesm2022/ngwr-splash-cursor.mjs +4 -4
- package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
- package/fesm2022/ngwr-split-text.mjs +4 -4
- package/fesm2022/ngwr-split-text.mjs.map +1 -1
- package/fesm2022/ngwr-splitter.mjs +72 -11
- package/fesm2022/ngwr-splitter.mjs.map +1 -1
- package/fesm2022/ngwr-spotlight-card.mjs +7 -7
- package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
- package/fesm2022/ngwr-squircle.mjs +6 -6
- package/fesm2022/ngwr-star-border.mjs +4 -4
- package/fesm2022/ngwr-star-border.mjs.map +1 -1
- package/fesm2022/ngwr-statistic.mjs +33 -16
- package/fesm2022/ngwr-statistic.mjs.map +1 -1
- package/fesm2022/ngwr-stepper-testing.mjs +477 -0
- package/fesm2022/ngwr-stepper-testing.mjs.map +1 -0
- package/fesm2022/ngwr-stepper.mjs +6 -6
- package/fesm2022/ngwr-storage.mjs +27 -17
- package/fesm2022/ngwr-storage.mjs.map +1 -1
- package/fesm2022/ngwr-switch-testing.mjs +77 -0
- package/fesm2022/ngwr-switch-testing.mjs.map +1 -0
- package/fesm2022/ngwr-switch.mjs +12 -6
- package/fesm2022/ngwr-switch.mjs.map +1 -1
- package/fesm2022/ngwr-table-testing.mjs +580 -0
- package/fesm2022/ngwr-table-testing.mjs.map +1 -0
- package/fesm2022/ngwr-table.mjs +105 -44
- package/fesm2022/ngwr-table.mjs.map +1 -1
- package/fesm2022/ngwr-tabs-testing.mjs +617 -0
- package/fesm2022/ngwr-tabs-testing.mjs.map +1 -0
- package/fesm2022/ngwr-tabs.mjs +44 -12
- package/fesm2022/ngwr-tabs.mjs.map +1 -1
- package/fesm2022/ngwr-textarea-testing.mjs +238 -0
- package/fesm2022/ngwr-textarea-testing.mjs.map +1 -0
- package/fesm2022/ngwr-textarea.mjs +35 -7
- package/fesm2022/ngwr-textarea.mjs.map +1 -1
- package/fesm2022/ngwr-theme.mjs +3 -3
- package/fesm2022/ngwr-tilt-card.mjs +7 -7
- package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
- package/fesm2022/ngwr-timeline.mjs +6 -6
- package/fesm2022/ngwr-toast-testing.mjs +101 -0
- package/fesm2022/ngwr-toast-testing.mjs.map +1 -0
- package/fesm2022/ngwr-toast.mjs +55 -21
- package/fesm2022/ngwr-toast.mjs.map +1 -1
- package/fesm2022/ngwr-toolbar.mjs +3 -3
- package/fesm2022/ngwr-tour.mjs +67 -15
- package/fesm2022/ngwr-tour.mjs.map +1 -1
- package/fesm2022/ngwr-transfer-testing.mjs +538 -0
- package/fesm2022/ngwr-transfer-testing.mjs.map +1 -0
- package/fesm2022/ngwr-transfer.mjs +47 -16
- package/fesm2022/ngwr-transfer.mjs.map +1 -1
- package/fesm2022/ngwr-tree-testing.mjs +734 -0
- package/fesm2022/ngwr-tree-testing.mjs.map +1 -0
- package/fesm2022/ngwr-tree.mjs +75 -9
- package/fesm2022/ngwr-tree.mjs.map +1 -1
- package/fesm2022/ngwr-typewriter.mjs +7 -5
- package/fesm2022/ngwr-typewriter.mjs.map +1 -1
- package/fesm2022/ngwr-typography.mjs +3 -3
- package/fesm2022/ngwr-version.mjs +1 -1
- package/fesm2022/ngwr-version.mjs.map +1 -1
- package/fesm2022/ngwr-virtual-scroll.mjs +33 -7
- package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
- package/fesm2022/ngwr-waves.mjs +5 -5
- package/fesm2022/ngwr-waves.mjs.map +1 -1
- package/fesm2022/ngwr-window.mjs +88 -18
- package/fesm2022/ngwr-window.mjs.map +1 -1
- package/gauge/styles/_index.scss +1 -1
- package/glitch-text/styles/_index.scss +4 -0
- package/i18n/en.json +56 -0
- package/i18n/ru.json +56 -0
- package/image-cropper/styles/_index.scss +13 -1
- package/input/styles/_index.scss +2 -2
- package/input-number/styles/_index.scss +7 -2
- package/knob/styles/_index.scss +8 -1
- package/layout/styles/_index.scss +3 -3
- package/lightbox/styles/_index.scss +10 -2
- package/line-chart/styles/_index.scss +6 -0
- package/llms-full.txt +151 -4
- package/llms.txt +57 -8
- package/loading-bar/styles/_index.scss +1 -2
- package/markdown/styles/_index.scss +296 -0
- package/marquee/styles/_index.scss +12 -0
- package/mcp/api.js +512 -0
- package/mcp/catalog.js +157 -0
- package/mcp/server.js +273 -0
- package/mcp/tools.js +366 -0
- package/meter-group/styles/_index.scss +1 -1
- package/package.json +186 -35
- package/pagination/styles/_index.scss +6 -6
- package/popover/styles/_index.scss +37 -5
- package/rating/styles/_index.scss +10 -0
- package/schematics/use/symbol-map.json +2 -0
- package/segmented/styles/_index.scss +7 -0
- package/select/styles/_index.scss +29 -9
- package/sidebar/styles/_index.scss +30 -5
- package/slider/styles/_index.scss +15 -0
- package/speed-dial/styles/_index.scss +20 -0
- package/split-text/styles/_index.scss +13 -0
- package/star-border/styles/_index.scss +2 -0
- package/stepper/styles/_index.scss +1 -1
- package/styles/_grid.scss +4 -4
- package/styles.scss +1 -0
- package/switch/styles/_index.scss +5 -3
- package/table/styles/_index.scss +22 -11
- package/tabs/styles/_index.scss +11 -1
- package/textarea/styles/_index.scss +5 -0
- package/theme/styles/_colors.scss +29 -13
- package/theme/styles/_dark.scss +11 -3
- package/theme/styles/_mixins.scss +3 -0
- package/timeline/styles/_index.scss +2 -2
- package/toast/styles/_index.scss +17 -8
- package/toolbar/styles/_index.scss +3 -3
- package/tour/styles/_index.scss +7 -1
- package/tree/styles/_index.scss +5 -3
- package/types/ngwr-action-sheet.d.ts +9 -1
- package/types/ngwr-affix.d.ts +7 -1
- package/types/ngwr-anchor.d.ts +8 -1
- package/types/ngwr-avatar.d.ts +13 -3
- package/types/ngwr-bar-chart.d.ts +16 -0
- package/types/ngwr-burger.d.ts +6 -2
- package/types/ngwr-button-testing.d.ts +85 -0
- package/types/ngwr-button.d.ts +58 -10
- package/types/ngwr-calendar-heatmap.d.ts +16 -2
- package/types/ngwr-calendar.d.ts +37 -1
- package/types/ngwr-carousel-testing.d.ts +257 -0
- package/types/ngwr-carousel.d.ts +20 -4
- package/types/ngwr-cascader-testing.d.ts +392 -0
- package/types/ngwr-checkbox-testing.d.ts +77 -0
- package/types/ngwr-checkbox.d.ts +7 -2
- package/types/ngwr-clipboard.d.ts +8 -1
- package/types/ngwr-collapse-testing.d.ts +290 -0
- package/types/ngwr-color-picker.d.ts +20 -11
- package/types/ngwr-command-palette-testing.d.ts +437 -0
- package/types/ngwr-command-palette.d.ts +25 -2
- package/types/ngwr-compare.d.ts +50 -2
- package/types/ngwr-config.d.ts +176 -0
- package/types/ngwr-context-menu-testing.d.ts +401 -0
- package/types/ngwr-context-menu.d.ts +65 -17
- package/types/ngwr-counter.d.ts +6 -1
- package/types/ngwr-date-adapter-luxon.d.ts +26 -0
- package/types/ngwr-date-picker-testing.d.ts +518 -0
- package/types/ngwr-date-picker.d.ts +128 -8
- package/types/ngwr-dialog-testing.d.ts +79 -0
- package/types/ngwr-dialog.d.ts +13 -0
- package/types/ngwr-directives.d.ts +10 -1
- package/types/ngwr-donut-chart.d.ts +8 -1
- package/types/ngwr-drawer-testing.d.ts +196 -0
- package/types/ngwr-drawer.d.ts +15 -0
- package/types/ngwr-dropdown-testing.d.ts +202 -0
- package/types/ngwr-dropdown.d.ts +7 -1
- package/types/ngwr-empty.d.ts +19 -4
- package/types/ngwr-event-calendar.d.ts +26 -1
- package/types/ngwr-file-upload-testing.d.ts +194 -0
- package/types/ngwr-form-testing.d.ts +379 -0
- package/types/ngwr-form.d.ts +17 -0
- package/types/ngwr-gauge.d.ts +13 -1
- package/types/ngwr-hotkey.d.ts +2 -0
- package/types/ngwr-image-cropper.d.ts +10 -0
- package/types/ngwr-input-number-testing.d.ts +226 -0
- package/types/ngwr-input-number.d.ts +29 -1
- package/types/ngwr-input-otp-testing.d.ts +299 -0
- package/types/ngwr-input-otp.d.ts +23 -2
- package/types/ngwr-input-testing.d.ts +84 -0
- package/types/ngwr-input.d.ts +20 -6
- package/types/ngwr-knob.d.ts +18 -0
- package/types/ngwr-layout.d.ts +1 -0
- package/types/ngwr-lightbox.d.ts +17 -3
- package/types/ngwr-line-chart.d.ts +9 -2
- package/types/ngwr-list.d.ts +7 -2
- package/types/ngwr-loading-bar.d.ts +4 -7
- package/types/ngwr-markdown-testing.d.ts +462 -0
- package/types/ngwr-markdown.d.ts +534 -0
- package/types/ngwr-marquee.d.ts +12 -2
- package/types/ngwr-mention-testing.d.ts +359 -0
- package/types/ngwr-meta.d.ts +4 -2
- package/types/ngwr-meter-group.d.ts +11 -1
- package/types/ngwr-overlay.d.ts +33 -2
- package/types/ngwr-pagination-testing.d.ts +291 -0
- package/types/ngwr-pagination.d.ts +7 -1
- package/types/ngwr-popconfirm-testing.d.ts +235 -0
- package/types/ngwr-popconfirm.d.ts +31 -21
- package/types/ngwr-popover-testing.d.ts +221 -0
- package/types/ngwr-popover.d.ts +19 -2
- package/types/ngwr-pull-to-refresh.d.ts +7 -0
- package/types/ngwr-qr.d.ts +9 -1
- package/types/ngwr-radio-testing.d.ts +296 -0
- package/types/ngwr-radio.d.ts +8 -2
- package/types/ngwr-rating-testing.d.ts +291 -0
- package/types/ngwr-rating.d.ts +23 -0
- package/types/ngwr-segmented-testing.d.ts +401 -0
- package/types/ngwr-select-testing.d.ts +175 -0
- package/types/ngwr-select.d.ts +45 -4
- package/types/ngwr-sidebar.d.ts +17 -2
- package/types/ngwr-slider-testing.d.ts +329 -0
- package/types/ngwr-slider.d.ts +35 -1
- package/types/ngwr-sparkline.d.ts +12 -2
- package/types/ngwr-speed-dial.d.ts +17 -18
- package/types/ngwr-spinner.d.ts +8 -1
- package/types/ngwr-splitter.d.ts +24 -1
- package/types/ngwr-statistic.d.ts +12 -2
- package/types/ngwr-stepper-testing.d.ts +346 -0
- package/types/ngwr-storage.d.ts +10 -1
- package/types/ngwr-switch-testing.d.ts +66 -0
- package/types/ngwr-switch.d.ts +7 -2
- package/types/ngwr-table-testing.d.ts +423 -0
- package/types/ngwr-table.d.ts +42 -0
- package/types/ngwr-tabs-testing.d.ts +470 -0
- package/types/ngwr-tabs.d.ts +9 -0
- package/types/ngwr-textarea-testing.d.ts +184 -0
- package/types/ngwr-textarea.d.ts +7 -2
- package/types/ngwr-toast-testing.d.ts +80 -0
- package/types/ngwr-toast.d.ts +19 -4
- package/types/ngwr-tour.d.ts +27 -0
- package/types/ngwr-transfer-testing.d.ts +444 -0
- package/types/ngwr-transfer.d.ts +16 -1
- package/types/ngwr-tree-testing.d.ts +501 -0
- package/types/ngwr-tree.d.ts +33 -0
- package/types/ngwr-version.d.ts +1 -1
- package/types/ngwr-virtual-scroll.d.ts +13 -1
- package/types/ngwr-window.d.ts +23 -2
- package/typewriter/styles/_index.scss +1 -1
- package/typography/styles/_index.scss +1 -1
- package/window/styles/_index.scss +32 -9
|
@@ -38,6 +38,11 @@
|
|
|
38
38
|
top: 50%;
|
|
39
39
|
width: var(--wr-slider-thumb-size);
|
|
40
40
|
height: var(--wr-slider-thumb-size);
|
|
41
|
+
// The inline half of the centring pair follows the inset it centres:
|
|
42
|
+
// `slider.html` positions the thumb with `inset-inline-start`, which is the
|
|
43
|
+
// RIGHT edge under `dir="rtl"`, so a fixed `-50%` would drag the thumb — and
|
|
44
|
+
// the 44px tap area pinned to it — a whole thumb-width past its own value.
|
|
45
|
+
// The block half is symmetric and stays put.
|
|
41
46
|
transform: translate(-50%, -50%);
|
|
42
47
|
appearance: none;
|
|
43
48
|
background: var(--wr-slider-thumb);
|
|
@@ -60,6 +65,16 @@
|
|
|
60
65
|
cursor: grabbing;
|
|
61
66
|
transform: translate(-50%, -50%) scale(1.1);
|
|
62
67
|
}
|
|
68
|
+
|
|
69
|
+
// Mirrored last, and with the `:active` pair spelled out, so the RTL rules
|
|
70
|
+
// outrank the LTR ones they replace at every state.
|
|
71
|
+
[dir='rtl'] & {
|
|
72
|
+
transform: translate(50%, -50%);
|
|
73
|
+
|
|
74
|
+
&:active {
|
|
75
|
+
transform: translate(50%, -50%) scale(1.1);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
63
78
|
}
|
|
64
79
|
|
|
65
80
|
&__label {
|
|
@@ -19,9 +19,14 @@
|
|
|
19
19
|
padding-top: env(safe-area-inset-top);
|
|
20
20
|
}
|
|
21
21
|
&--safe-area.wr-speed-dial--left {
|
|
22
|
+
// Pads toward the physical fan direction below, and
|
|
23
|
+
// `env(safe-area-inset-right)` names the device's own edge — it does not
|
|
24
|
+
// flip with direction, so it has to stay on the side it describes.
|
|
25
|
+
// rtl-ok: physical fan direction, physical `env()` inset
|
|
22
26
|
padding-right: env(safe-area-inset-right);
|
|
23
27
|
}
|
|
24
28
|
&--safe-area.wr-speed-dial--right {
|
|
29
|
+
// rtl-ok: same pair as above — physical fan direction, physical inset.
|
|
25
30
|
padding-left: env(safe-area-inset-left);
|
|
26
31
|
}
|
|
27
32
|
|
|
@@ -90,11 +95,13 @@
|
|
|
90
95
|
&--up {
|
|
91
96
|
.wr-speed-dial__actions {
|
|
92
97
|
bottom: 100%;
|
|
98
|
+
// rtl-ok: centred with a physical translateX, so the pair must stay physical
|
|
93
99
|
left: 50%;
|
|
94
100
|
transform: translateX(-50%);
|
|
95
101
|
}
|
|
96
102
|
.wr-speed-dial__action-wrap {
|
|
97
103
|
bottom: 0;
|
|
104
|
+
// rtl-ok: centred with a physical translate(-50%, …), so the pair must stay physical
|
|
98
105
|
left: 50%;
|
|
99
106
|
transform: translate(-50%, 0.5rem);
|
|
100
107
|
}
|
|
@@ -107,11 +114,13 @@
|
|
|
107
114
|
&--down {
|
|
108
115
|
.wr-speed-dial__actions {
|
|
109
116
|
top: 100%;
|
|
117
|
+
// rtl-ok: centred with a physical translateX, so the pair must stay physical
|
|
110
118
|
left: 50%;
|
|
111
119
|
transform: translateX(-50%);
|
|
112
120
|
}
|
|
113
121
|
.wr-speed-dial__action-wrap {
|
|
114
122
|
top: 0;
|
|
123
|
+
// rtl-ok: centred with a physical translate(-50%, …), so the pair must stay physical
|
|
115
124
|
left: 50%;
|
|
116
125
|
transform: translate(-50%, -0.5rem);
|
|
117
126
|
}
|
|
@@ -123,11 +132,18 @@
|
|
|
123
132
|
|
|
124
133
|
&--left {
|
|
125
134
|
.wr-speed-dial__actions {
|
|
135
|
+
// The anchor and the fan offset are one pair — the actions travel on a
|
|
136
|
+
// physical `translateX` (`translate(calc(-1 * $offset), -50%)` below,
|
|
137
|
+
// which no logical property can mirror). Flip only the anchor and the
|
|
138
|
+
// dial fans back over its own trigger in RTL. A direction-aware fan is a
|
|
139
|
+
// TS/`Directionality` change, out of scope for this CSS sweep.
|
|
140
|
+
// rtl-ok: anchor paired with a physical translateX fan
|
|
126
141
|
right: 100%;
|
|
127
142
|
top: 50%;
|
|
128
143
|
transform: translateY(-50%);
|
|
129
144
|
}
|
|
130
145
|
.wr-speed-dial__action-wrap {
|
|
146
|
+
// rtl-ok: same anchor/transform pair as above.
|
|
131
147
|
right: 0;
|
|
132
148
|
top: 50%;
|
|
133
149
|
transform: translate(0.5rem, -50%);
|
|
@@ -140,11 +156,15 @@
|
|
|
140
156
|
|
|
141
157
|
&--right {
|
|
142
158
|
.wr-speed-dial__actions {
|
|
159
|
+
// Anchor paired with the physical `translate($offset, -50%)` fan below —
|
|
160
|
+
// see `--left` for why converting one half breaks the other.
|
|
161
|
+
// rtl-ok: anchor paired with a physical translateX fan
|
|
143
162
|
left: 100%;
|
|
144
163
|
top: 50%;
|
|
145
164
|
transform: translateY(-50%);
|
|
146
165
|
}
|
|
147
166
|
.wr-speed-dial__action-wrap {
|
|
167
|
+
// rtl-ok: same anchor/transform pair as above.
|
|
148
168
|
left: 0;
|
|
149
169
|
top: 50%;
|
|
150
170
|
transform: translate(-0.5rem, -50%);
|
|
@@ -9,6 +9,19 @@
|
|
|
9
9
|
overflow-wrap: break-word;
|
|
10
10
|
will-change: transform, opacity;
|
|
11
11
|
|
|
12
|
+
// Same shape as `wr-rotating-text`: the animated pieces are per-character
|
|
13
|
+
// spans, which a screen reader may read out one letter at a time, so the real
|
|
14
|
+
// string is carried once here and the pieces are taken out of the tree.
|
|
15
|
+
&__sr-only {
|
|
16
|
+
position: absolute;
|
|
17
|
+
width: 1px;
|
|
18
|
+
height: 1px;
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
clip: rect(0 0 0 0);
|
|
21
|
+
clip-path: inset(50%);
|
|
22
|
+
white-space: nowrap;
|
|
23
|
+
}
|
|
24
|
+
|
|
12
25
|
&__piece {
|
|
13
26
|
display: inline-block;
|
|
14
27
|
will-change: transform, opacity;
|
|
@@ -39,11 +39,13 @@
|
|
|
39
39
|
|
|
40
40
|
&--bottom {
|
|
41
41
|
bottom: -12px;
|
|
42
|
+
// rtl-ok: the comet's off-screen start mark — `wr-star-border-bottom` sweeps it by `translate(-100%, 0%)`
|
|
42
43
|
right: -250%;
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
&--top {
|
|
46
47
|
top: -12px;
|
|
48
|
+
// rtl-ok: the comet's off-screen start mark — `wr-star-border-top` sweeps it by `translate(100%, 0%)`
|
|
47
49
|
left: -250%;
|
|
48
50
|
animation-name: wr-star-border-top;
|
|
49
51
|
}
|
package/styles/_grid.scss
CHANGED
|
@@ -18,10 +18,10 @@ $gutter: var(--wr-grid-gutter);
|
|
|
18
18
|
.container,
|
|
19
19
|
.container-fluid {
|
|
20
20
|
width: 100%;
|
|
21
|
-
padding-
|
|
22
|
-
padding-
|
|
23
|
-
margin-
|
|
24
|
-
margin-
|
|
21
|
+
padding-inline-end: calc(#{$gutter} * 0.5);
|
|
22
|
+
padding-inline-start: calc(#{$gutter} * 0.5);
|
|
23
|
+
margin-inline-start: auto;
|
|
24
|
+
margin-inline-end: auto;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
@each $name, $max-width in bp.$container-widths {
|
package/styles.scss
CHANGED
|
@@ -55,14 +55,16 @@
|
|
|
55
55
|
&__thumb {
|
|
56
56
|
position: absolute;
|
|
57
57
|
top: 50%;
|
|
58
|
-
|
|
58
|
+
inset-inline-start: calc((var(--wr-switch-track-height) - var(--wr-switch-thumb-size)) / 2);
|
|
59
59
|
transform: translateY(-50%);
|
|
60
60
|
width: var(--wr-switch-thumb-size);
|
|
61
61
|
height: var(--wr-switch-thumb-size);
|
|
62
62
|
background: var(--wr-switch-thumb);
|
|
63
63
|
border-radius: 50%;
|
|
64
64
|
box-shadow: var(--wr-shadow-xs);
|
|
65
|
-
transition: left
|
|
65
|
+
// Follows the property above — a `transition: left` would no longer name the
|
|
66
|
+
// property that moves, and the thumb would snap instead of glide.
|
|
67
|
+
transition: inset-inline-start var(--wr-transition-base);
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
// Sizes — track, thumb, label font + line-height scale together.
|
|
@@ -86,7 +88,7 @@
|
|
|
86
88
|
--wr-switch-bg: var(--wr-switch-bg-checked);
|
|
87
89
|
|
|
88
90
|
.wr-switch__thumb {
|
|
89
|
-
|
|
91
|
+
inset-inline-start: calc(
|
|
90
92
|
var(--wr-switch-track-width) - var(--wr-switch-thumb-size) -
|
|
91
93
|
((var(--wr-switch-track-height) - var(--wr-switch-thumb-size)) / 2)
|
|
92
94
|
);
|
package/table/styles/_index.scss
CHANGED
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
&__th,
|
|
55
55
|
&__td {
|
|
56
56
|
padding: calc(0.625rem * var(--wr-density-y, 1)) calc(0.875rem * var(--wr-density-x, 1));
|
|
57
|
-
text-align:
|
|
57
|
+
text-align: start;
|
|
58
58
|
vertical-align: middle;
|
|
59
59
|
border-bottom: 1px solid var(--wr-table-border);
|
|
60
60
|
}
|
|
@@ -91,7 +91,11 @@
|
|
|
91
91
|
&__resize-handle {
|
|
92
92
|
position: absolute;
|
|
93
93
|
top: 0;
|
|
94
|
-
|
|
94
|
+
// The grab edge is the side a growing width extends toward, and `table.ts`
|
|
95
|
+
// now signs that travel from `Directionality` (`resizeDelta()`): rightward
|
|
96
|
+
// in LTR, leftward in RTL. The two are a pair — flipping one without the
|
|
97
|
+
// other leaves the grip standing still while the column resizes.
|
|
98
|
+
inset-inline-end: 0;
|
|
95
99
|
z-index: 1;
|
|
96
100
|
width: 0.5rem;
|
|
97
101
|
height: 100%;
|
|
@@ -103,7 +107,9 @@
|
|
|
103
107
|
content: '';
|
|
104
108
|
position: absolute;
|
|
105
109
|
inset: 20% 0.1875rem;
|
|
106
|
-
|
|
110
|
+
// Cancels the inline-START inset so the grip bar hugs the handle's own
|
|
111
|
+
// grab edge, whichever physical side that lands on.
|
|
112
|
+
inset-inline-start: auto;
|
|
107
113
|
width: 2px;
|
|
108
114
|
border-radius: 1px;
|
|
109
115
|
background: var(--wr-color-outline);
|
|
@@ -315,14 +321,19 @@
|
|
|
315
321
|
background-image: linear-gradient(var(--wr-table-row-hover), var(--wr-table-row-hover));
|
|
316
322
|
}
|
|
317
323
|
|
|
318
|
-
// Separating shadow on the inner edge of each pinned group.
|
|
324
|
+
// Separating shadow on the inner edge of each pinned group. `box-shadow` has
|
|
325
|
+
// no logical form — its offset is always physical — and the cell it belongs to
|
|
326
|
+
// is anchored by `[style.left.px]` / `[style.right.px]` in table.html, written
|
|
327
|
+
// from `leftPin()` / `rightPin()`. The shadow leans the way the offset pins.
|
|
319
328
|
&__th--pin-edge-left,
|
|
320
329
|
&__td--pin-edge-left {
|
|
330
|
+
// rtl-ok: physical offset matching the physical `left` pin set by the component
|
|
321
331
|
box-shadow: 0.375rem 0 0.375rem -0.25rem rgba(0, 0, 0, 0.18);
|
|
322
332
|
}
|
|
323
333
|
|
|
324
334
|
&__th--pin-edge-right,
|
|
325
335
|
&__td--pin-edge-right {
|
|
336
|
+
// rtl-ok: physical offset matching the physical `right` pin set by the component
|
|
326
337
|
box-shadow: -0.375rem 0 0.375rem -0.25rem rgba(0, 0, 0, 0.18);
|
|
327
338
|
}
|
|
328
339
|
|
|
@@ -398,10 +409,10 @@
|
|
|
398
409
|
}
|
|
399
410
|
|
|
400
411
|
// The band cell is full table width, so a sticky inline box inside it rides
|
|
401
|
-
// horizontal scroll and keeps the label at the
|
|
412
|
+
// horizontal scroll and keeps the label at the leading edge. No measurement.
|
|
402
413
|
&__group-inner {
|
|
403
414
|
position: sticky;
|
|
404
|
-
|
|
415
|
+
inset-inline-start: 0;
|
|
405
416
|
display: inline-flex;
|
|
406
417
|
align-items: center;
|
|
407
418
|
gap: 0.5rem;
|
|
@@ -586,7 +597,7 @@
|
|
|
586
597
|
gap: 1rem;
|
|
587
598
|
padding: 0.25rem 0.875rem;
|
|
588
599
|
border-bottom: 0;
|
|
589
|
-
text-align:
|
|
600
|
+
text-align: end;
|
|
590
601
|
}
|
|
591
602
|
|
|
592
603
|
.wr-table--responsive .wr-table__td::before {
|
|
@@ -600,7 +611,7 @@
|
|
|
600
611
|
// so a consumer who opted out still got capitals on mobile.
|
|
601
612
|
letter-spacing: var(--wr-table-head-letter-spacing);
|
|
602
613
|
text-transform: var(--wr-table-head-transform);
|
|
603
|
-
text-align:
|
|
614
|
+
text-align: start;
|
|
604
615
|
white-space: nowrap;
|
|
605
616
|
}
|
|
606
617
|
|
|
@@ -653,7 +664,7 @@
|
|
|
653
664
|
|
|
654
665
|
.wr-table--responsive .wr-table__group-toggle {
|
|
655
666
|
flex: 1 1 auto;
|
|
656
|
-
text-align:
|
|
667
|
+
text-align: start;
|
|
657
668
|
}
|
|
658
669
|
|
|
659
670
|
// Per-group subtotals don't translate to cards either — hide like the grand footer.
|
|
@@ -769,7 +780,7 @@
|
|
|
769
780
|
color: var(--wr-color-on-surface);
|
|
770
781
|
font: inherit;
|
|
771
782
|
font-size: var(--wr-text-sm);
|
|
772
|
-
text-align:
|
|
783
|
+
text-align: start;
|
|
773
784
|
cursor: pointer;
|
|
774
785
|
|
|
775
786
|
&:hover {
|
|
@@ -817,7 +828,7 @@
|
|
|
817
828
|
font: inherit;
|
|
818
829
|
font-size: var(--wr-text-sm);
|
|
819
830
|
cursor: pointer;
|
|
820
|
-
text-align:
|
|
831
|
+
text-align: start;
|
|
821
832
|
|
|
822
833
|
&:hover {
|
|
823
834
|
background: var(--wr-color-primary-soft);
|
package/tabs/styles/_index.scss
CHANGED
|
@@ -57,13 +57,23 @@
|
|
|
57
57
|
--wr-tabs-fade: 1.5rem;
|
|
58
58
|
--wr-tabs-fade-start: 0px;
|
|
59
59
|
--wr-tabs-fade-end: 0px;
|
|
60
|
+
// A gradient has no logical direction keyword, so the axis is a variable the
|
|
61
|
+
// RTL rule below turns around. The two stops are LOGICAL — `updateFades()`
|
|
62
|
+
// measures the distance from the inline start — and the inline start is the
|
|
63
|
+
// right edge under `dir="rtl"`, so the gradient has to run the other way for
|
|
64
|
+
// the fade to land on the edge that still has tabs behind it.
|
|
65
|
+
--wr-tabs-fade-axis: to right;
|
|
60
66
|
mask-image: linear-gradient(
|
|
61
|
-
|
|
67
|
+
var(--wr-tabs-fade-axis),
|
|
62
68
|
transparent 0,
|
|
63
69
|
#000 var(--wr-tabs-fade-start),
|
|
64
70
|
#000 calc(100% - var(--wr-tabs-fade-end)),
|
|
65
71
|
transparent 100%
|
|
66
72
|
);
|
|
73
|
+
|
|
74
|
+
[dir='rtl'] & {
|
|
75
|
+
--wr-tabs-fade-axis: to left;
|
|
76
|
+
}
|
|
67
77
|
}
|
|
68
78
|
|
|
69
79
|
&--fade-start &__strip {
|
|
@@ -94,6 +94,11 @@
|
|
|
94
94
|
// cursor follow the `resize` direction.
|
|
95
95
|
&__resize {
|
|
96
96
|
position: absolute;
|
|
97
|
+
// `textarea.ts` starts the drag from `event.clientX` and applies
|
|
98
|
+
// `startWidth + (clientX - startX)`, so the grip has to sit on the physical
|
|
99
|
+
// side a growing width extends toward. Flip it only together with that sign,
|
|
100
|
+
// once the drag maths itself reads `Directionality`.
|
|
101
|
+
// rtl-ok: paired with the physical clientX drag maths in textarea.ts
|
|
97
102
|
right: 0.25rem;
|
|
98
103
|
bottom: 0.25rem;
|
|
99
104
|
display: inline-flex;
|
|
@@ -9,15 +9,27 @@
|
|
|
9
9
|
// $base-colors: (primary: #...)
|
|
10
10
|
// );
|
|
11
11
|
|
|
12
|
+
// Five intents are deliberately deeper than their "brand" tone, and the reason is
|
|
13
|
+
// arithmetic rather than taste. `_contrast()` picks whichever of black / white
|
|
14
|
+
// scores HIGHER against the fill, and those two are equal at √21 ≈ 4.58 — so an
|
|
15
|
+
// intent lighter than that gets a black label whatever anyone prefers. At the old
|
|
16
|
+
// tones white measured 3.10–3.99 (below AA) and black 5.26–6.77, so black won on
|
|
17
|
+
// merit and the labels read muddy on a saturated mid-tone.
|
|
18
|
+
//
|
|
19
|
+
// Each of the five now sits just past the flip: white 4.60–4.64, black 4.52–4.56.
|
|
20
|
+
// The shift is 8–20% of the previous tone. `warning` and `light` are NOT in that
|
|
21
|
+
// set and cannot be — white needs `#906900` on warning, which is brown, not a
|
|
22
|
+
// warning colour; those two keep their black label, which is correct at 12.28 and
|
|
23
|
+
// 14.14.
|
|
12
24
|
$base-colors: (
|
|
13
25
|
primary: #3969e2,
|
|
14
|
-
secondary: #
|
|
15
|
-
success: #
|
|
26
|
+
secondary: #e21a62,
|
|
27
|
+
success: #008800,
|
|
16
28
|
warning: #ffba00,
|
|
17
|
-
danger: #
|
|
18
|
-
info: #
|
|
29
|
+
danger: #dc3137,
|
|
30
|
+
info: #3472d9,
|
|
19
31
|
light: #cbd5e1,
|
|
20
|
-
medium: #
|
|
32
|
+
medium: #6a7683,
|
|
21
33
|
dark: #0f172a,
|
|
22
34
|
) !default;
|
|
23
35
|
|
|
@@ -139,9 +151,10 @@ $contrast-light: #ffffff !default;
|
|
|
139
151
|
// Muted TEXT, deliberately its own token rather than an alias of the `medium`
|
|
140
152
|
// intent. The two roles pull in opposite directions and cannot share a value:
|
|
141
153
|
// as text it needs >= 4.5:1 against the lightest surface (#ebeff4), while as a
|
|
142
|
-
//
|
|
143
|
-
//
|
|
144
|
-
// (
|
|
154
|
+
// fill it has to clear the bar the other way, against its own label. v11 pulled
|
|
155
|
+
// them further apart rather than closer — the `medium` fill went deeper
|
|
156
|
+
// (#6a7683, whose label is now white at 4.63) while this token stayed where a
|
|
157
|
+
// light canvas needs it. Aliasing them left secondary text at 2.69:1.
|
|
145
158
|
--wr-color-muted-text: #5f6c7d;
|
|
146
159
|
--wr-color-muted-text-rgb: 95, 108, 125;
|
|
147
160
|
|
|
@@ -230,11 +243,14 @@ $contrast-light: #ffffff !default;
|
|
|
230
243
|
// `-ink`: the intent used as TEXT on `--wr-color-surface`.
|
|
231
244
|
//
|
|
232
245
|
// v10 fixed the opposite direction — `-contrast`, the label ON a filled
|
|
233
|
-
// intent. The inverse was never covered
|
|
234
|
-
//
|
|
235
|
-
//
|
|
236
|
-
//
|
|
237
|
-
//
|
|
246
|
+
// intent. The inverse was never covered: an outlined / bordered variant paints
|
|
247
|
+
// the hue as its own label, and on a TINTED surface the light theme still
|
|
248
|
+
// fails there. Measured on #ebeff4, the lightest surface, after v11 deepened
|
|
249
|
+
// five of them: medium 4.01, success 4.02, danger 4.01, info and secondary
|
|
250
|
+
// 3.99 — all under the 4.5 bar — and warning 1.48, which nothing rescues.
|
|
251
|
+
// (On pure white those five now clear it at 4.61–4.64; the tint is what makes
|
|
252
|
+
// `-ink` necessary rather than optional.) Dark passes on all of them, because
|
|
253
|
+
// its bases are lighter for a dark canvas and that happens to be the
|
|
238
254
|
// accessible direction.
|
|
239
255
|
//
|
|
240
256
|
// Same recipe as `-soft-contrast`: mixing toward `--wr-color-dark` darkens in
|
package/theme/styles/_dark.scss
CHANGED
|
@@ -13,10 +13,15 @@
|
|
|
13
13
|
// FULL symmetric shade set — the hand blocks used to ship only base+rgb,
|
|
14
14
|
// leaving -light/-dark/-lighter/-darker baked from the LIGHT palette.
|
|
15
15
|
// (primary keeps its hand-tuned block; info stays its light values.)
|
|
16
|
+
// `success` and `danger` are past the black/white flip point here too — see the
|
|
17
|
+
// note above `$base-colors`. The dark canvas wants a LIGHTER fill, so the deepening
|
|
18
|
+
// costs more here than in the light theme (33% and 21%), and that is the trade:
|
|
19
|
+
// a duller green, in exchange for a label that is legible rather than muddy.
|
|
20
|
+
// `warning` stays as it is — white cannot reach it at any tone worth shipping.
|
|
16
21
|
$dark-intents: (
|
|
17
|
-
success: #
|
|
22
|
+
success: #23863c,
|
|
18
23
|
warning: #ffcc33,
|
|
19
|
-
danger: #
|
|
24
|
+
danger: #ca4949,
|
|
20
25
|
);
|
|
21
26
|
|
|
22
27
|
// The surface / ink bases below are re-tuned for the dark canvas too, but they
|
|
@@ -25,7 +30,10 @@ $dark-intents: (
|
|
|
25
30
|
// the shade derivations read from the value that actually ships, instead of
|
|
26
31
|
// being re-typed next to it.
|
|
27
32
|
$_light: #262f44;
|
|
28
|
-
|
|
33
|
+
// The medium FILL, past the flip point. Not the muted-text role: that reads from
|
|
34
|
+
// `--wr-color-muted-text` below, which stays #9aa6b8 — it is text on the canvas,
|
|
35
|
+
// where lighter is what makes it legible, the opposite direction from a fill.
|
|
36
|
+
$_medium: #6d7682;
|
|
29
37
|
$_dark: #e6ebf3;
|
|
30
38
|
|
|
31
39
|
[data-theme='dark'] {
|
|
@@ -93,6 +93,9 @@
|
|
|
93
93
|
content: '';
|
|
94
94
|
position: absolute;
|
|
95
95
|
top: 50%;
|
|
96
|
+
// rtl-ok: centred with a physical `translate(-50%, -50%)` below, so the
|
|
97
|
+
// pair must stay physical — mirroring only this half would shift the
|
|
98
|
+
// hit area off the control by its own width under `dir="rtl"`.
|
|
96
99
|
left: 50%;
|
|
97
100
|
width: 100%;
|
|
98
101
|
height: 100%;
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
&::before {
|
|
89
89
|
content: '';
|
|
90
90
|
position: absolute;
|
|
91
|
-
|
|
91
|
+
inset-inline-start: 0.34375rem;
|
|
92
92
|
top: 1rem;
|
|
93
93
|
bottom: -1.25rem;
|
|
94
94
|
width: 1.5px;
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
position: absolute;
|
|
120
120
|
// Dot centre: margin-top 0.125rem + half of the 0.75rem dot = 0.5rem.
|
|
121
121
|
top: 0.5rem;
|
|
122
|
-
|
|
122
|
+
inset-inline-start: 50%;
|
|
123
123
|
width: calc(100% + 2rem);
|
|
124
124
|
height: 1.5px;
|
|
125
125
|
background: var(--wr-color-outline);
|
package/toast/styles/_index.scss
CHANGED
|
@@ -26,6 +26,10 @@ $toast-colors: (
|
|
|
26
26
|
// Safe-area: fold each inset into the matching padding side so toasts clear
|
|
27
27
|
// notches / the home indicator / rounded corners on mobile, whichever edge
|
|
28
28
|
// the host is anchored to. env() is 0 without insets, so desktop stays 1rem.
|
|
29
|
+
// `env(safe-area-inset-left/right)` report the device's own edges and do NOT
|
|
30
|
+
// flip with direction, so each inset must stay on the side it describes. The
|
|
31
|
+
// 1rem base is equal on both sides, so the shorthand reads the same either way.
|
|
32
|
+
// rtl-ok: physical shorthand carrying physical `env()` insets
|
|
29
33
|
padding: calc(1rem + env(safe-area-inset-top)) calc(1rem + env(safe-area-inset-right))
|
|
30
34
|
calc(1rem + env(safe-area-inset-bottom)) calc(1rem + env(safe-area-inset-left));
|
|
31
35
|
pointer-events: none;
|
|
@@ -57,8 +61,7 @@ $toast-colors: (
|
|
|
57
61
|
.wr-toast {
|
|
58
62
|
--wr-toast-i: var(--wr-toast-stack-index, 0);
|
|
59
63
|
position: absolute;
|
|
60
|
-
|
|
61
|
-
right: 1rem;
|
|
64
|
+
inset-inline: 1rem;
|
|
62
65
|
width: auto;
|
|
63
66
|
max-width: calc(100% - 2rem);
|
|
64
67
|
transition:
|
|
@@ -98,31 +101,33 @@ $toast-colors: (
|
|
|
98
101
|
|
|
99
102
|
&--top {
|
|
100
103
|
top: 0;
|
|
104
|
+
// rtl-ok: centred with a physical translateX, so the pair must stay physical
|
|
101
105
|
left: 50%;
|
|
102
106
|
transform: translateX(-50%);
|
|
103
107
|
}
|
|
104
108
|
&--top-start {
|
|
105
109
|
top: 0;
|
|
106
|
-
|
|
110
|
+
inset-inline-start: 0;
|
|
107
111
|
}
|
|
108
112
|
&--top-end {
|
|
109
113
|
top: 0;
|
|
110
|
-
|
|
114
|
+
inset-inline-end: 0;
|
|
111
115
|
}
|
|
112
116
|
&--bottom {
|
|
113
117
|
bottom: 0;
|
|
118
|
+
// rtl-ok: centred with a physical translateX, so the pair must stay physical
|
|
114
119
|
left: 50%;
|
|
115
120
|
transform: translateX(-50%);
|
|
116
121
|
flex-direction: column-reverse;
|
|
117
122
|
}
|
|
118
123
|
&--bottom-start {
|
|
119
124
|
bottom: 0;
|
|
120
|
-
|
|
125
|
+
inset-inline-start: 0;
|
|
121
126
|
flex-direction: column-reverse;
|
|
122
127
|
}
|
|
123
128
|
&--bottom-end {
|
|
124
129
|
bottom: 0;
|
|
125
|
-
|
|
130
|
+
inset-inline-end: 0;
|
|
126
131
|
flex-direction: column-reverse;
|
|
127
132
|
}
|
|
128
133
|
}
|
|
@@ -143,7 +148,7 @@ $toast-colors: (
|
|
|
143
148
|
border: 1px solid var(--wr-toast-border);
|
|
144
149
|
// Capture horizontal swipe-to-dismiss; let vertical scroll pass through.
|
|
145
150
|
touch-action: pan-y;
|
|
146
|
-
border-
|
|
151
|
+
border-inline-start: 3px solid var(--wr-toast-accent);
|
|
147
152
|
@include theme.smooth-br(var(--wr-border-radius-base));
|
|
148
153
|
box-shadow: var(--wr-shadow-overlay);
|
|
149
154
|
font-family: var(--wr-font-family-base);
|
|
@@ -201,9 +206,13 @@ $toast-colors: (
|
|
|
201
206
|
&__progress {
|
|
202
207
|
position: absolute;
|
|
203
208
|
bottom: 0;
|
|
204
|
-
|
|
209
|
+
inset-inline-start: 0;
|
|
205
210
|
height: 2px;
|
|
206
211
|
width: 100%;
|
|
212
|
+
// `transform-origin` has no logical keyword, and the drain is a physical
|
|
213
|
+
// `scaleX`. Flipping the bar to drain from the reader's start needs a
|
|
214
|
+
// direction-aware rule, not a property rename.
|
|
215
|
+
// rtl-ok: origin is one half of a physical scaleX pair
|
|
207
216
|
transform-origin: left;
|
|
208
217
|
background: var(--wr-toast-accent);
|
|
209
218
|
animation: wr-toast-progress linear forwards;
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
|
|
52
52
|
&--end {
|
|
53
53
|
flex: 0 0 auto;
|
|
54
|
-
margin-
|
|
54
|
+
margin-inline-start: auto;
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
&::before {
|
|
65
65
|
content: '';
|
|
66
66
|
position: absolute;
|
|
67
|
-
|
|
67
|
+
inset-inline-start: -0.5rem;
|
|
68
68
|
top: 50%;
|
|
69
69
|
transform: translateY(-50%);
|
|
70
70
|
height: 1.25rem;
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
.wr-toolbar--responsive .wr-toolbar__zone--end {
|
|
85
|
-
margin-
|
|
85
|
+
margin-inline-start: 0;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
// The vertical hairline dividers are a horizontal-row affordance — drop them
|
package/tour/styles/_index.scss
CHANGED
|
@@ -5,7 +5,13 @@
|
|
|
5
5
|
// covered, so it stays readable and clickable.
|
|
6
6
|
.wr-tour__spotlight {
|
|
7
7
|
position: fixed;
|
|
8
|
-
|
|
8
|
+
// Below CDK's `.cdk-overlay-container` (1000), deliberately. Both are fixed
|
|
9
|
+
// children of `<body>`, so at equal z-index the DOM order decides — and the
|
|
10
|
+
// service appends a fresh cut-out on every step while the container stays put, so
|
|
11
|
+
// from the second step on the dimming shadow painted OVER the tour's own card.
|
|
12
|
+
// `.wr-tour-overlay { z-index: 1001 }` cannot help: it sits on the pane INSIDE the
|
|
13
|
+
// container, whose own stacking context scopes it.
|
|
14
|
+
z-index: 999;
|
|
9
15
|
pointer-events: none;
|
|
10
16
|
border-radius: var(--wr-border-radius-base);
|
|
11
17
|
box-shadow: 0 0 0 9999px rgba(var(--wr-color-backdrop-rgb), 0.55);
|
package/tree/styles/_index.scss
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
align-items: center;
|
|
20
20
|
gap: 0.375rem;
|
|
21
21
|
padding: 0.3125rem 0.5rem;
|
|
22
|
-
padding-
|
|
22
|
+
padding-inline-start: calc(0.5rem + var(--wr-tree-depth, 0) * var(--wr-tree-indent));
|
|
23
23
|
border-radius: var(--wr-border-radius-sm);
|
|
24
24
|
cursor: pointer;
|
|
25
25
|
user-select: none;
|
|
@@ -156,7 +156,7 @@
|
|
|
156
156
|
font-size: var(--wr-tree-trigger-font-size);
|
|
157
157
|
line-height: var(--wr-tree-trigger-line-height);
|
|
158
158
|
cursor: pointer;
|
|
159
|
-
text-align:
|
|
159
|
+
text-align: start;
|
|
160
160
|
transition:
|
|
161
161
|
border-color var(--wr-transition-base),
|
|
162
162
|
box-shadow var(--wr-transition-base);
|
|
@@ -243,7 +243,9 @@
|
|
|
243
243
|
align-items: center;
|
|
244
244
|
gap: 0.125rem;
|
|
245
245
|
max-width: 100%;
|
|
246
|
-
|
|
246
|
+
// Roomier on the label side, tighter where the remove (×) sits.
|
|
247
|
+
padding-block: 0.125rem;
|
|
248
|
+
padding-inline: 0.5rem 0.25rem;
|
|
247
249
|
border-radius: 999px;
|
|
248
250
|
background: var(--wr-color-primary-soft);
|
|
249
251
|
color: var(--wr-color-primary);
|
|
@@ -60,6 +60,14 @@ declare class WrActionSheet {
|
|
|
60
60
|
readonly actions: _angular_core.InputSignal<readonly WrActionSheetAction[]>;
|
|
61
61
|
/** Optional bold heading above the rows. */
|
|
62
62
|
readonly title: _angular_core.InputSignal<string>;
|
|
63
|
+
/**
|
|
64
|
+
* Name announced for the dialog when there is no visible `title`. Falls back to
|
|
65
|
+
* `actionSheet.label`, then `'Actions'` — it used to be that English string,
|
|
66
|
+
* written into the template of a component whose every other string comes from
|
|
67
|
+
* the caller.
|
|
68
|
+
*/
|
|
69
|
+
readonly titleFallback: _angular_core.InputSignal<string | null>;
|
|
70
|
+
protected readonly resolvedTitleFallback: _angular_core.Signal<string>;
|
|
63
71
|
/** Optional muted sub-heading under the title. */
|
|
64
72
|
readonly message: _angular_core.InputSignal<string>;
|
|
65
73
|
/** Fires with the chosen row (never fires on a dismiss). */
|
|
@@ -68,7 +76,7 @@ declare class WrActionSheet {
|
|
|
68
76
|
protected readonly cancelActions: _angular_core.Signal<WrActionSheetAction[]>;
|
|
69
77
|
protected select(item: WrActionSheetAction): void;
|
|
70
78
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrActionSheet, never>;
|
|
71
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrActionSheet, "wr-action-sheet", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "action": "action"; }, never, never, true, never>;
|
|
79
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrActionSheet, "wr-action-sheet", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "titleFallback": { "alias": "titleFallback"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "action": "action"; }, never, never, true, never>;
|
|
72
80
|
}
|
|
73
81
|
|
|
74
82
|
export { WrActionSheet };
|