ngwr 10.2.1 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -19
- package/action-sheet/styles/_index.scss +4 -1
- package/anchor/styles/_index.scss +6 -5
- package/back-top/styles/_index.scss +6 -1
- package/blur-text/styles/_index.scss +13 -0
- package/button/styles/_index.scss +11 -6
- package/calendar/styles/_index.scss +11 -2
- package/carousel/styles/_index.scss +13 -2
- package/cascader/styles/_index.scss +5 -3
- package/circular-text/styles/_index.scss +2 -0
- package/collapse/styles/_index.scss +1 -1
- package/color-picker/styles/_index.scss +6 -1
- package/command-palette/styles/_index.scss +2 -1
- package/compare/styles/_index.scss +1 -2
- package/context-menu/styles/_index.scss +8 -2
- package/descriptions/styles/_index.scss +2 -2
- package/dialog/styles/_index.scss +7 -0
- package/drawer/styles/_index.scss +20 -1
- package/dropdown/styles/_index.scss +19 -5
- package/empty/styles/_index.scss +10 -0
- package/falling-text/styles/_index.scss +2 -1
- package/fesm2022/ngwr-action-sheet.mjs +13 -3
- package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
- package/fesm2022/ngwr-affix.mjs +40 -13
- package/fesm2022/ngwr-affix.mjs.map +1 -1
- package/fesm2022/ngwr-anchor.mjs +18 -6
- package/fesm2022/ngwr-anchor.mjs.map +1 -1
- package/fesm2022/ngwr-aurora.mjs +2 -2
- package/fesm2022/ngwr-aurora.mjs.map +1 -1
- package/fesm2022/ngwr-avatar.mjs +31 -7
- package/fesm2022/ngwr-avatar.mjs.map +1 -1
- package/fesm2022/ngwr-back-top.mjs +6 -2
- package/fesm2022/ngwr-back-top.mjs.map +1 -1
- package/fesm2022/ngwr-badge.mjs +1 -1
- package/fesm2022/ngwr-badge.mjs.map +1 -1
- package/fesm2022/ngwr-bar-chart.mjs +30 -9
- package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
- package/fesm2022/ngwr-blur-text.mjs +2 -2
- package/fesm2022/ngwr-blur-text.mjs.map +1 -1
- package/fesm2022/ngwr-border-glow.mjs +2 -2
- package/fesm2022/ngwr-border-glow.mjs.map +1 -1
- package/fesm2022/ngwr-breadcrumbs.mjs +2 -2
- package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngwr-burger.mjs +9 -4
- package/fesm2022/ngwr-burger.mjs.map +1 -1
- package/fesm2022/ngwr-button-testing.mjs +96 -0
- package/fesm2022/ngwr-button-testing.mjs.map +1 -0
- package/fesm2022/ngwr-button.mjs +31 -14
- package/fesm2022/ngwr-button.mjs.map +1 -1
- package/fesm2022/ngwr-calendar-heatmap.mjs +40 -8
- package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
- package/fesm2022/ngwr-calendar.mjs +20 -1
- package/fesm2022/ngwr-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-card.mjs +2 -2
- package/fesm2022/ngwr-card.mjs.map +1 -1
- package/fesm2022/ngwr-carousel-testing.mjs +377 -0
- package/fesm2022/ngwr-carousel-testing.mjs.map +1 -0
- package/fesm2022/ngwr-carousel.mjs +67 -13
- package/fesm2022/ngwr-carousel.mjs.map +1 -1
- package/fesm2022/ngwr-cascader-testing.mjs +534 -0
- package/fesm2022/ngwr-cascader-testing.mjs.map +1 -0
- package/fesm2022/ngwr-cascader.mjs +2 -2
- package/fesm2022/ngwr-cascader.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox-testing.mjs +90 -0
- package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -0
- package/fesm2022/ngwr-checkbox.mjs +9 -3
- package/fesm2022/ngwr-checkbox.mjs.map +1 -1
- package/fesm2022/ngwr-circular-text.mjs +2 -2
- package/fesm2022/ngwr-circular-text.mjs.map +1 -1
- package/fesm2022/ngwr-click-spark.mjs +2 -2
- package/fesm2022/ngwr-click-spark.mjs.map +1 -1
- package/fesm2022/ngwr-collapse-testing.mjs +368 -0
- package/fesm2022/ngwr-collapse-testing.mjs.map +1 -0
- package/fesm2022/ngwr-color-picker.mjs +134 -14
- package/fesm2022/ngwr-color-picker.mjs.map +1 -1
- package/fesm2022/ngwr-command-palette-testing.mjs +589 -0
- package/fesm2022/ngwr-command-palette-testing.mjs.map +1 -0
- package/fesm2022/ngwr-command-palette.mjs +58 -8
- package/fesm2022/ngwr-command-palette.mjs.map +1 -1
- package/fesm2022/ngwr-compare.mjs +103 -13
- package/fesm2022/ngwr-compare.mjs.map +1 -1
- package/fesm2022/ngwr-config.mjs +106 -0
- package/fesm2022/ngwr-config.mjs.map +1 -0
- package/fesm2022/ngwr-context-menu-testing.mjs +631 -0
- package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -0
- package/fesm2022/ngwr-context-menu.mjs +94 -8
- package/fesm2022/ngwr-context-menu.mjs.map +1 -1
- package/fesm2022/ngwr-cookie.mjs +5 -1
- package/fesm2022/ngwr-cookie.mjs.map +1 -1
- package/fesm2022/ngwr-counter.mjs +11 -3
- package/fesm2022/ngwr-counter.mjs.map +1 -1
- package/fesm2022/ngwr-date-adapter-luxon.mjs +52 -4
- package/fesm2022/ngwr-date-adapter-luxon.mjs.map +1 -1
- package/fesm2022/ngwr-date-adapter.mjs +54 -8
- package/fesm2022/ngwr-date-adapter.mjs.map +1 -1
- package/fesm2022/ngwr-date-picker-testing.mjs +766 -0
- package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -0
- package/fesm2022/ngwr-date-picker.mjs +73 -3
- package/fesm2022/ngwr-date-picker.mjs.map +1 -1
- package/fesm2022/ngwr-decrypt-text.mjs +27 -9
- package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
- package/fesm2022/ngwr-dialog-testing.mjs +89 -0
- package/fesm2022/ngwr-dialog-testing.mjs.map +1 -0
- package/fesm2022/ngwr-directives.mjs +36 -12
- package/fesm2022/ngwr-directives.mjs.map +1 -1
- package/fesm2022/ngwr-donut-chart.mjs +22 -5
- package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
- package/fesm2022/ngwr-drag-drop.mjs +2 -2
- package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
- package/fesm2022/ngwr-drawer-testing.mjs +250 -0
- package/fesm2022/ngwr-drawer-testing.mjs.map +1 -0
- package/fesm2022/ngwr-dropdown-testing.mjs +291 -0
- package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -0
- package/fesm2022/ngwr-dropdown.mjs +10 -2
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-empty.mjs +24 -7
- package/fesm2022/ngwr-empty.mjs.map +1 -1
- package/fesm2022/ngwr-event-calendar.mjs +57 -10
- package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-falling-text.mjs +2 -2
- package/fesm2022/ngwr-falling-text.mjs.map +1 -1
- package/fesm2022/ngwr-file-upload-testing.mjs +332 -0
- package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -0
- package/fesm2022/ngwr-form-testing.mjs +451 -0
- package/fesm2022/ngwr-form-testing.mjs.map +1 -0
- package/fesm2022/ngwr-form.mjs +19 -3
- package/fesm2022/ngwr-form.mjs.map +1 -1
- package/fesm2022/ngwr-fuzzy-text.mjs +9 -2
- package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
- package/fesm2022/ngwr-gauge.mjs +19 -5
- package/fesm2022/ngwr-gauge.mjs.map +1 -1
- package/fesm2022/ngwr-glitch-text.mjs +2 -2
- package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
- package/fesm2022/ngwr-gradient-text.mjs +2 -2
- package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-en.mjs +50 -0
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ru.mjs +48 -0
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
- package/fesm2022/ngwr-image-cropper.mjs +23 -0
- package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
- package/fesm2022/ngwr-input-number-testing.mjs +306 -0
- package/fesm2022/ngwr-input-number-testing.mjs.map +1 -0
- package/fesm2022/ngwr-input-number.mjs +35 -3
- package/fesm2022/ngwr-input-number.mjs.map +1 -1
- package/fesm2022/ngwr-input-otp-testing.mjs +419 -0
- package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -0
- package/fesm2022/ngwr-input-otp.mjs +36 -5
- package/fesm2022/ngwr-input-otp.mjs.map +1 -1
- package/fesm2022/ngwr-input-testing.mjs +102 -0
- package/fesm2022/ngwr-input-testing.mjs.map +1 -0
- package/fesm2022/ngwr-input.mjs +47 -10
- package/fesm2022/ngwr-input.mjs.map +1 -1
- package/fesm2022/ngwr-knob.mjs +44 -8
- package/fesm2022/ngwr-knob.mjs.map +1 -1
- package/fesm2022/ngwr-layout.mjs +21 -5
- package/fesm2022/ngwr-layout.mjs.map +1 -1
- package/fesm2022/ngwr-lightbox.mjs +33 -6
- package/fesm2022/ngwr-lightbox.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart.mjs +17 -4
- package/fesm2022/ngwr-line-chart.mjs.map +1 -1
- package/fesm2022/ngwr-list.mjs +2 -2
- package/fesm2022/ngwr-list.mjs.map +1 -1
- package/fesm2022/ngwr-loading-bar.mjs +2 -2
- package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
- package/fesm2022/ngwr-markdown-testing.mjs +516 -0
- package/fesm2022/ngwr-markdown-testing.mjs.map +1 -0
- package/fesm2022/ngwr-markdown.mjs +1492 -0
- package/fesm2022/ngwr-markdown.mjs.map +1 -0
- package/fesm2022/ngwr-marquee.mjs +17 -6
- package/fesm2022/ngwr-marquee.mjs.map +1 -1
- package/fesm2022/ngwr-mention-testing.mjs +513 -0
- package/fesm2022/ngwr-mention-testing.mjs.map +1 -0
- package/fesm2022/ngwr-mention.mjs +10 -1
- package/fesm2022/ngwr-mention.mjs.map +1 -1
- package/fesm2022/ngwr-meta.mjs +22 -7
- package/fesm2022/ngwr-meta.mjs.map +1 -1
- package/fesm2022/ngwr-meter-group.mjs +19 -5
- package/fesm2022/ngwr-meter-group.mjs.map +1 -1
- package/fesm2022/ngwr-overlay.mjs +41 -1
- package/fesm2022/ngwr-overlay.mjs.map +1 -1
- package/fesm2022/ngwr-pagination-testing.mjs +389 -0
- package/fesm2022/ngwr-pagination-testing.mjs.map +1 -0
- package/fesm2022/ngwr-pagination.mjs +14 -2
- package/fesm2022/ngwr-pagination.mjs.map +1 -1
- package/fesm2022/ngwr-popconfirm-testing.mjs +309 -0
- package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -0
- package/fesm2022/ngwr-popconfirm.mjs +95 -17
- package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
- package/fesm2022/ngwr-popover-testing.mjs +316 -0
- package/fesm2022/ngwr-popover-testing.mjs.map +1 -0
- package/fesm2022/ngwr-popover.mjs +21 -3
- package/fesm2022/ngwr-popover.mjs.map +1 -1
- package/fesm2022/ngwr-pull-to-refresh.mjs +17 -2
- package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -1
- package/fesm2022/ngwr-qr.mjs +13 -3
- package/fesm2022/ngwr-qr.mjs.map +1 -1
- package/fesm2022/ngwr-radio-testing.mjs +392 -0
- package/fesm2022/ngwr-radio-testing.mjs.map +1 -0
- package/fesm2022/ngwr-radio.mjs +10 -3
- package/fesm2022/ngwr-radio.mjs.map +1 -1
- package/fesm2022/ngwr-rating-testing.mjs +384 -0
- package/fesm2022/ngwr-rating-testing.mjs.map +1 -0
- package/fesm2022/ngwr-rating.mjs +37 -2
- package/fesm2022/ngwr-rating.mjs.map +1 -1
- package/fesm2022/ngwr-segmented-testing.mjs +512 -0
- package/fesm2022/ngwr-segmented-testing.mjs.map +1 -0
- package/fesm2022/ngwr-select-testing.mjs +268 -0
- package/fesm2022/ngwr-select-testing.mjs.map +1 -0
- package/fesm2022/ngwr-select.mjs +87 -16
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-shiny-text.mjs +2 -2
- package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
- package/fesm2022/ngwr-sidebar.mjs +65 -12
- package/fesm2022/ngwr-sidebar.mjs.map +1 -1
- package/fesm2022/ngwr-slider-testing.mjs +478 -0
- package/fesm2022/ngwr-slider-testing.mjs.map +1 -0
- package/fesm2022/ngwr-slider.mjs +57 -13
- package/fesm2022/ngwr-slider.mjs.map +1 -1
- package/fesm2022/ngwr-sparkline.mjs +26 -6
- package/fesm2022/ngwr-sparkline.mjs.map +1 -1
- package/fesm2022/ngwr-speed-dial.mjs +37 -4
- package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
- package/fesm2022/ngwr-spinner.mjs +12 -3
- package/fesm2022/ngwr-spinner.mjs.map +1 -1
- package/fesm2022/ngwr-splash-cursor.mjs +2 -2
- package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
- package/fesm2022/ngwr-split-text.mjs +2 -2
- package/fesm2022/ngwr-split-text.mjs.map +1 -1
- package/fesm2022/ngwr-splitter.mjs +70 -9
- package/fesm2022/ngwr-splitter.mjs.map +1 -1
- package/fesm2022/ngwr-spotlight-card.mjs +2 -2
- package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
- package/fesm2022/ngwr-star-border.mjs +2 -2
- package/fesm2022/ngwr-star-border.mjs.map +1 -1
- package/fesm2022/ngwr-statistic.mjs +24 -7
- package/fesm2022/ngwr-statistic.mjs.map +1 -1
- package/fesm2022/ngwr-stepper-testing.mjs +477 -0
- package/fesm2022/ngwr-stepper-testing.mjs.map +1 -0
- package/fesm2022/ngwr-switch-testing.mjs +77 -0
- package/fesm2022/ngwr-switch-testing.mjs.map +1 -0
- package/fesm2022/ngwr-switch.mjs +9 -3
- package/fesm2022/ngwr-switch.mjs.map +1 -1
- package/fesm2022/ngwr-table-testing.mjs +580 -0
- package/fesm2022/ngwr-table-testing.mjs.map +1 -0
- package/fesm2022/ngwr-table.mjs +87 -14
- package/fesm2022/ngwr-table.mjs.map +1 -1
- package/fesm2022/ngwr-tabs-testing.mjs +617 -0
- package/fesm2022/ngwr-tabs-testing.mjs.map +1 -0
- package/fesm2022/ngwr-tabs.mjs +38 -6
- package/fesm2022/ngwr-tabs.mjs.map +1 -1
- package/fesm2022/ngwr-textarea-testing.mjs +238 -0
- package/fesm2022/ngwr-textarea-testing.mjs.map +1 -0
- package/fesm2022/ngwr-textarea.mjs +32 -4
- package/fesm2022/ngwr-textarea.mjs.map +1 -1
- package/fesm2022/ngwr-tilt-card.mjs +2 -2
- package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
- package/fesm2022/ngwr-toast-testing.mjs +101 -0
- package/fesm2022/ngwr-toast-testing.mjs.map +1 -0
- package/fesm2022/ngwr-toast.mjs +2 -2
- package/fesm2022/ngwr-toast.mjs.map +1 -1
- package/fesm2022/ngwr-tour.mjs +61 -9
- package/fesm2022/ngwr-tour.mjs.map +1 -1
- package/fesm2022/ngwr-transfer-testing.mjs +538 -0
- package/fesm2022/ngwr-transfer-testing.mjs.map +1 -0
- package/fesm2022/ngwr-transfer.mjs +45 -14
- package/fesm2022/ngwr-transfer.mjs.map +1 -1
- package/fesm2022/ngwr-tree-testing.mjs +734 -0
- package/fesm2022/ngwr-tree-testing.mjs.map +1 -0
- package/fesm2022/ngwr-tree.mjs +73 -7
- package/fesm2022/ngwr-tree.mjs.map +1 -1
- package/fesm2022/ngwr-typewriter.mjs +5 -3
- package/fesm2022/ngwr-typewriter.mjs.map +1 -1
- package/fesm2022/ngwr-version.mjs +1 -1
- package/fesm2022/ngwr-version.mjs.map +1 -1
- package/fesm2022/ngwr-virtual-scroll.mjs +31 -5
- package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
- package/fesm2022/ngwr-waves.mjs +3 -3
- package/fesm2022/ngwr-waves.mjs.map +1 -1
- package/fesm2022/ngwr-window.mjs +8 -0
- package/fesm2022/ngwr-window.mjs.map +1 -1
- package/file-upload/styles/_index.scss +7 -2
- package/gauge/styles/_index.scss +1 -1
- package/glitch-text/styles/_index.scss +4 -0
- package/i18n/en.json +48 -0
- package/i18n/ru.json +48 -0
- package/image-cropper/styles/_index.scss +13 -1
- package/input/styles/_index.scss +2 -2
- package/input-number/styles/_index.scss +7 -2
- package/knob/styles/_index.scss +8 -1
- package/layout/styles/_index.scss +3 -3
- package/lightbox/styles/_index.scss +10 -2
- package/line-chart/styles/_index.scss +6 -0
- package/llms-full.txt +151 -4
- package/llms.txt +57 -8
- package/loading-bar/styles/_index.scss +1 -2
- package/markdown/styles/_index.scss +296 -0
- package/marquee/styles/_index.scss +12 -0
- package/mcp/api.js +512 -0
- package/mcp/catalog.js +157 -0
- package/mcp/server.js +273 -0
- package/mcp/tools.js +366 -0
- package/meter-group/styles/_index.scss +1 -1
- package/package.json +186 -35
- package/pagination/styles/_index.scss +6 -6
- package/popover/styles/_index.scss +37 -5
- package/rating/styles/_index.scss +10 -0
- package/result/styles/_index.scss +3 -1
- package/schematics/use/symbol-map.json +2 -0
- package/segmented/styles/_index.scss +12 -1
- package/select/styles/_index.scss +32 -10
- package/sidebar/styles/_index.scss +30 -5
- package/slider/styles/_index.scss +15 -0
- package/speed-dial/styles/_index.scss +20 -0
- package/split-text/styles/_index.scss +13 -0
- package/star-border/styles/_index.scss +2 -0
- package/stepper/styles/_index.scss +19 -3
- package/styles/_grid.scss +4 -4
- package/styles.scss +1 -0
- package/switch/styles/_index.scss +5 -3
- package/table/styles/_index.scss +25 -12
- package/tabs/styles/_index.scss +11 -1
- package/textarea/styles/_index.scss +5 -0
- package/theme/styles/_colors.scss +44 -15
- package/theme/styles/_dark.scss +35 -15
- package/theme/styles/_mixins.scss +3 -0
- package/timeline/styles/_index.scss +2 -2
- package/toast/styles/_index.scss +17 -8
- package/toolbar/styles/_index.scss +3 -3
- package/tour/styles/_index.scss +7 -1
- package/tree/styles/_index.scss +9 -5
- package/types/ngwr-action-sheet.d.ts +9 -1
- package/types/ngwr-affix.d.ts +7 -1
- package/types/ngwr-anchor.d.ts +8 -1
- package/types/ngwr-avatar.d.ts +13 -3
- package/types/ngwr-bar-chart.d.ts +16 -0
- package/types/ngwr-burger.d.ts +6 -2
- package/types/ngwr-button-testing.d.ts +85 -0
- package/types/ngwr-button.d.ts +26 -10
- package/types/ngwr-calendar-heatmap.d.ts +16 -2
- package/types/ngwr-calendar.d.ts +10 -0
- package/types/ngwr-carousel-testing.d.ts +257 -0
- package/types/ngwr-carousel.d.ts +20 -4
- package/types/ngwr-cascader-testing.d.ts +392 -0
- package/types/ngwr-checkbox-testing.d.ts +77 -0
- package/types/ngwr-checkbox.d.ts +7 -2
- package/types/ngwr-collapse-testing.d.ts +290 -0
- package/types/ngwr-color-picker.d.ts +20 -11
- package/types/ngwr-command-palette-testing.d.ts +437 -0
- package/types/ngwr-command-palette.d.ts +25 -2
- package/types/ngwr-compare.d.ts +50 -2
- package/types/ngwr-config.d.ts +176 -0
- package/types/ngwr-context-menu-testing.d.ts +401 -0
- package/types/ngwr-context-menu.d.ts +65 -17
- package/types/ngwr-counter.d.ts +6 -1
- package/types/ngwr-date-adapter-luxon.d.ts +26 -0
- package/types/ngwr-date-picker-testing.d.ts +518 -0
- package/types/ngwr-date-picker.d.ts +4 -0
- package/types/ngwr-dialog-testing.d.ts +79 -0
- package/types/ngwr-directives.d.ts +10 -1
- package/types/ngwr-donut-chart.d.ts +8 -1
- package/types/ngwr-drawer-testing.d.ts +196 -0
- package/types/ngwr-dropdown-testing.d.ts +202 -0
- package/types/ngwr-dropdown.d.ts +7 -1
- package/types/ngwr-empty.d.ts +19 -4
- package/types/ngwr-event-calendar.d.ts +26 -1
- package/types/ngwr-file-upload-testing.d.ts +194 -0
- package/types/ngwr-form-testing.d.ts +379 -0
- package/types/ngwr-form.d.ts +17 -0
- package/types/ngwr-gauge.d.ts +13 -1
- package/types/ngwr-image-cropper.d.ts +10 -0
- package/types/ngwr-input-number-testing.d.ts +226 -0
- package/types/ngwr-input-number.d.ts +29 -1
- package/types/ngwr-input-otp-testing.d.ts +299 -0
- package/types/ngwr-input-otp.d.ts +23 -2
- package/types/ngwr-input-testing.d.ts +84 -0
- package/types/ngwr-input.d.ts +20 -6
- package/types/ngwr-knob.d.ts +18 -0
- package/types/ngwr-layout.d.ts +1 -0
- package/types/ngwr-lightbox.d.ts +17 -3
- package/types/ngwr-line-chart.d.ts +9 -2
- package/types/ngwr-markdown-testing.d.ts +462 -0
- package/types/ngwr-markdown.d.ts +534 -0
- package/types/ngwr-marquee.d.ts +12 -2
- package/types/ngwr-mention-testing.d.ts +359 -0
- package/types/ngwr-meta.d.ts +4 -2
- package/types/ngwr-meter-group.d.ts +11 -1
- package/types/ngwr-overlay.d.ts +33 -2
- package/types/ngwr-pagination-testing.d.ts +291 -0
- package/types/ngwr-pagination.d.ts +1 -0
- package/types/ngwr-popconfirm-testing.d.ts +235 -0
- package/types/ngwr-popconfirm.d.ts +31 -21
- package/types/ngwr-popover-testing.d.ts +221 -0
- package/types/ngwr-popover.d.ts +9 -0
- package/types/ngwr-pull-to-refresh.d.ts +7 -0
- package/types/ngwr-qr.d.ts +9 -1
- package/types/ngwr-radio-testing.d.ts +296 -0
- package/types/ngwr-radio.d.ts +8 -2
- package/types/ngwr-rating-testing.d.ts +291 -0
- package/types/ngwr-rating.d.ts +23 -0
- package/types/ngwr-segmented-testing.d.ts +401 -0
- package/types/ngwr-select-testing.d.ts +175 -0
- package/types/ngwr-select.d.ts +45 -4
- package/types/ngwr-sidebar.d.ts +17 -2
- package/types/ngwr-slider-testing.d.ts +329 -0
- package/types/ngwr-slider.d.ts +35 -1
- package/types/ngwr-sparkline.d.ts +12 -2
- package/types/ngwr-speed-dial.d.ts +17 -18
- package/types/ngwr-spinner.d.ts +8 -1
- package/types/ngwr-splitter.d.ts +24 -1
- package/types/ngwr-statistic.d.ts +12 -2
- package/types/ngwr-stepper-testing.d.ts +346 -0
- package/types/ngwr-switch-testing.d.ts +66 -0
- package/types/ngwr-switch.d.ts +7 -2
- package/types/ngwr-table-testing.d.ts +423 -0
- package/types/ngwr-table.d.ts +42 -0
- package/types/ngwr-tabs-testing.d.ts +470 -0
- package/types/ngwr-tabs.d.ts +9 -0
- package/types/ngwr-textarea-testing.d.ts +184 -0
- package/types/ngwr-textarea.d.ts +7 -2
- package/types/ngwr-toast-testing.d.ts +80 -0
- package/types/ngwr-tour.d.ts +27 -0
- package/types/ngwr-transfer-testing.d.ts +444 -0
- package/types/ngwr-transfer.d.ts +16 -1
- package/types/ngwr-tree-testing.d.ts +501 -0
- package/types/ngwr-tree.d.ts +33 -0
- package/types/ngwr-version.d.ts +1 -1
- package/types/ngwr-virtual-scroll.d.ts +13 -1
- package/typewriter/styles/_index.scss +1 -1
- package/typography/styles/_index.scss +1 -1
- package/window/styles/_index.scss +32 -9
|
@@ -49,6 +49,15 @@
|
|
|
49
49
|
.wr-sidebar__icon {
|
|
50
50
|
color: var(--wr-color-primary);
|
|
51
51
|
}
|
|
52
|
+
|
|
53
|
+
// The badge measured 3.97:1 on the active row. Its own outline wash over
|
|
54
|
+
// the primary tint is what broke the pairing: `-ink` is calibrated against
|
|
55
|
+
// `-soft` ITSELF, so the fix is to let the row's tint show through and
|
|
56
|
+
// inherit the colour that was calibrated for it.
|
|
57
|
+
.wr-sidebar__badge {
|
|
58
|
+
color: inherit;
|
|
59
|
+
background: transparent;
|
|
60
|
+
}
|
|
52
61
|
}
|
|
53
62
|
|
|
54
63
|
&--disabled {
|
|
@@ -75,7 +84,7 @@
|
|
|
75
84
|
border-radius: var(--wr-border-radius-sm);
|
|
76
85
|
color: var(--wr-color-on-surface);
|
|
77
86
|
cursor: pointer;
|
|
78
|
-
text-align:
|
|
87
|
+
text-align: start;
|
|
79
88
|
transition: background var(--wr-transition-base);
|
|
80
89
|
|
|
81
90
|
&:hover {
|
|
@@ -118,18 +127,27 @@
|
|
|
118
127
|
}
|
|
119
128
|
|
|
120
129
|
&__group--collapsed &__chevron {
|
|
130
|
+
// Disclosure affordance, and it IS reading-order: the collapsed chevron
|
|
131
|
+
// should point at the trailing edge. `rotate` has no logical form, so under
|
|
132
|
+
// RTL the chevron-down still swings to point right — into the sidebar's
|
|
133
|
+
// content rather than away from it. Flipping it needs a `[dir]` rule (or a
|
|
134
|
+
// direction-aware sign from sidebar.ts), which is beyond a property-level
|
|
135
|
+
// rewrite; same call as the segmented thumb and the button seam.
|
|
136
|
+
// rtl-ok: transform rotation has no logical equivalent — see above
|
|
121
137
|
transform: rotate(-90deg);
|
|
122
138
|
}
|
|
123
139
|
|
|
124
140
|
// Child items (inside an expanded group)
|
|
125
141
|
&__list {
|
|
126
142
|
list-style: none;
|
|
127
|
-
margin: 0.125rem 0 0.375rem
|
|
128
|
-
|
|
143
|
+
margin: 0.125rem 0 0.375rem;
|
|
144
|
+
margin-inline-start: 0.5rem;
|
|
145
|
+
padding: 0;
|
|
146
|
+
padding-inline-start: 0.625rem;
|
|
129
147
|
display: flex;
|
|
130
148
|
flex-direction: column;
|
|
131
149
|
gap: 0.0625rem;
|
|
132
|
-
border-
|
|
150
|
+
border-inline-start: 1px solid var(--wr-color-outline);
|
|
133
151
|
}
|
|
134
152
|
|
|
135
153
|
&__item {
|
|
@@ -153,7 +171,7 @@
|
|
|
153
171
|
position: absolute;
|
|
154
172
|
top: 0.125rem;
|
|
155
173
|
bottom: 0.125rem;
|
|
156
|
-
|
|
174
|
+
inset-inline-start: -0.6875rem;
|
|
157
175
|
width: 2px;
|
|
158
176
|
border-radius: 1px;
|
|
159
177
|
background: transparent;
|
|
@@ -178,6 +196,13 @@
|
|
|
178
196
|
background: var(--wr-color-primary-soft);
|
|
179
197
|
pointer-events: none;
|
|
180
198
|
|
|
199
|
+
// Same reasoning as the flat entry above: `-ink` on the row's own tint is
|
|
200
|
+
// the calibrated pairing, and the badge's wash is what pushed it under.
|
|
201
|
+
.wr-sidebar__badge {
|
|
202
|
+
color: inherit;
|
|
203
|
+
background: transparent;
|
|
204
|
+
}
|
|
205
|
+
|
|
181
206
|
&::before {
|
|
182
207
|
background: var(--wr-color-primary);
|
|
183
208
|
}
|
|
@@ -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
|
}
|
|
@@ -45,8 +45,17 @@
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
// A column, because the connector is a SIBLING of the button inside the `<li>`:
|
|
49
|
+
// in a row it lands to the right of the label, where nothing connects. The
|
|
50
|
+
// giveaway was already in the connector's own rule — a `margin-left` of half
|
|
51
|
+
// the indicator only means anything when the line runs beneath the circle.
|
|
52
|
+
// `flex-start` rather than `stretch`: in a column that is the horizontal axis,
|
|
53
|
+
// so stretch would pull the button to full width and unstick the label from its
|
|
54
|
+
// circle. `gap: 0` because the base rule's 0.75rem would break the line.
|
|
48
55
|
&--vertical &__header {
|
|
49
|
-
|
|
56
|
+
flex-direction: column;
|
|
57
|
+
align-items: flex-start;
|
|
58
|
+
gap: 0;
|
|
50
59
|
flex: 0 0 auto;
|
|
51
60
|
}
|
|
52
61
|
|
|
@@ -60,7 +69,7 @@
|
|
|
60
69
|
gap: 0.625rem;
|
|
61
70
|
color: var(--wr-color-on-surface);
|
|
62
71
|
cursor: pointer;
|
|
63
|
-
text-align:
|
|
72
|
+
text-align: start;
|
|
64
73
|
flex: 0 0 auto;
|
|
65
74
|
|
|
66
75
|
&:disabled {
|
|
@@ -141,6 +150,10 @@
|
|
|
141
150
|
|
|
142
151
|
&--vertical &__connector {
|
|
143
152
|
width: 1.5px;
|
|
153
|
+
// The shared rule's `min-width: 1rem` is a minimum LENGTH for the horizontal
|
|
154
|
+
// line, and it outranks `width` — so without this reset the vertical connector
|
|
155
|
+
// paints as a 16px block instead of a 1.5px thread.
|
|
156
|
+
min-width: 0;
|
|
144
157
|
min-height: 1.25rem;
|
|
145
158
|
height: auto;
|
|
146
159
|
margin: 0.25rem 0 0.25rem calc(var(--wr-stepper-indicator-size) / 2);
|
|
@@ -167,12 +180,15 @@
|
|
|
167
180
|
}
|
|
168
181
|
|
|
169
182
|
.wr-stepper--responsive:not(.wr-stepper--vertical) .wr-stepper__header {
|
|
170
|
-
|
|
183
|
+
flex-direction: column;
|
|
184
|
+
align-items: flex-start;
|
|
185
|
+
gap: 0;
|
|
171
186
|
flex: 0 0 auto;
|
|
172
187
|
}
|
|
173
188
|
|
|
174
189
|
.wr-stepper--responsive:not(.wr-stepper--vertical) .wr-stepper__connector {
|
|
175
190
|
width: 1.5px;
|
|
191
|
+
min-width: 0;
|
|
176
192
|
min-height: 1.25rem;
|
|
177
193
|
height: auto;
|
|
178
194
|
margin: 0.25rem 0 0.25rem calc(var(--wr-stepper-indicator-size) / 2);
|
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 {
|
|
@@ -813,11 +824,13 @@
|
|
|
813
824
|
border: 0;
|
|
814
825
|
padding: 0.375rem 0.5rem;
|
|
815
826
|
border-radius: var(--wr-border-radius-sm);
|
|
816
|
-
|
|
827
|
+
// A real "Reset" text button, so `-ink`. The sort / filter GLYPHS above keep
|
|
828
|
+
// the bare intent: graphics are held to 3:1, which they clear.
|
|
829
|
+
color: var(--wr-color-primary-ink);
|
|
817
830
|
font: inherit;
|
|
818
831
|
font-size: var(--wr-text-sm);
|
|
819
832
|
cursor: pointer;
|
|
820
|
-
text-align:
|
|
833
|
+
text-align: start;
|
|
821
834
|
|
|
822
835
|
&:hover {
|
|
823
836
|
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
|
|
@@ -256,9 +272,22 @@ $contrast-light: #ffffff !default;
|
|
|
256
272
|
// 4.42. Half a point of headroom absorbs that, for 2–7 points of share.
|
|
257
273
|
//
|
|
258
274
|
// Going further is not free: 5.25 costs 7–11 points and 5.5 up to 14, which
|
|
259
|
-
// on `primary`
|
|
275
|
+
// on `primary` meant 93% -> 79% and a visibly muddier blue. (That trade was
|
|
276
|
+
// priced on the PRE-v11 bases; moving a base reprices it, as `primary` below
|
|
277
|
+
// shows — 78% now buys 5.0, not 5.5.)
|
|
278
|
+
//
|
|
279
|
+
// `primary` was re-derived when the DARK base deepened to #3567ff so its label
|
|
280
|
+
// could go white: a deeper base makes the ink deeper too, which on a dark tint
|
|
281
|
+
// is the losing direction. axe measured the old 86% at 4.48:1 on the sidebar's
|
|
282
|
+
// own tint — under AA, never mind the target. 78% is the most saturated share
|
|
283
|
+
// that reaches 5.0 there (5.04), and it only helps the light theme, where a
|
|
284
|
+
// lower share means MORE `--wr-color-dark` and a deeper ink on a pale tint.
|
|
285
|
+
// Solved against the exact pair axe resolved on the page (#4e79fd on #0f1a36),
|
|
286
|
+
// because a hand-rolled composite of the tint over the canvas does not
|
|
287
|
+
// reproduce what the browser paints — this file's own numbers are arithmetic,
|
|
288
|
+
// and `pnpm check:contrast` is the authority.
|
|
260
289
|
$ink-mix: (
|
|
261
|
-
primary:
|
|
290
|
+
primary: 78%,
|
|
262
291
|
secondary: 75%,
|
|
263
292
|
success: 67%,
|
|
264
293
|
warning: 48%,
|
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'] {
|
|
@@ -116,18 +124,30 @@ $_dark: #e6ebf3;
|
|
|
116
124
|
--wr-color-muted-text-rgb: 154, 166, 184;
|
|
117
125
|
|
|
118
126
|
// Brand-color retune
|
|
119
|
-
// The default primary (#3969e2) reads a touch dim on the deep
|
|
120
|
-
//
|
|
121
|
-
//
|
|
122
|
-
|
|
123
|
-
//
|
|
124
|
-
//
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
127
|
+
// The default primary (#3969e2) reads a touch dim on the deep canvas. What
|
|
128
|
+
// carries here is SATURATION, not lightness: #3567ff is only ~7% more luminous
|
|
129
|
+
// than the light base but runs the blue channel to 255, and the shades follow it
|
|
130
|
+
// so hover / focus rings stay visible against slate-900.
|
|
131
|
+
//
|
|
132
|
+
// Deep enough for a WHITE label, and no deeper. `_contrast()` takes whichever
|
|
133
|
+
// of black / white scores higher, and the two are equal at √21 ≈ 4.58 — the
|
|
134
|
+
// previous #5b85ff sat at white 3.36 / black 6.24, so it took a BLACK label
|
|
135
|
+
// while the light theme's primary took white: one intent labelled two
|
|
136
|
+
// different ways across the themes. #3567ff reads white 4.63 / black 4.54.
|
|
137
|
+
//
|
|
138
|
+
// Saturation stays at 100%. Scaling the channels toward black reaches the same
|
|
139
|
+
// ratio at #4c6fd6, but that is S 63% — duller, which is the opposite of what
|
|
140
|
+
// this block exists for. Dropping lightness at full saturation keeps the colour
|
|
141
|
+
// vivid, and keeps it distinct from the light theme's #3969e2 rather than
|
|
142
|
+
// collapsing onto it.
|
|
143
|
+
--wr-color-primary: #3567ff;
|
|
144
|
+
--wr-color-primary-contrast: #{colors.contrast(#3567ff)};
|
|
145
|
+
--wr-color-primary-rgb: 53, 103, 255;
|
|
146
|
+
// The same lightness steps as before, taken off the new base.
|
|
147
|
+
--wr-color-primary-light: #547eff;
|
|
148
|
+
--wr-color-primary-dark: #2848aa;
|
|
149
|
+
--wr-color-primary-lighter: #7396ff;
|
|
150
|
+
--wr-color-primary-darker: #183179;
|
|
131
151
|
|
|
132
152
|
// success / warning / danger — retuned bases now get the FULL symmetric
|
|
133
153
|
// shade set in dark too (generated, so no intent can silently drift).
|
|
@@ -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%;
|